- Add support for RethinkDB 2.4.
- Add support for write hooks.
- Add support for bit-wise operators.
- Issue #146 - Better support for
CancellationToken
. Clean up of token registrations that may produce exceptions whenCancellationTokenSource.Cancel()
is called.
- Issue #143 -
ConnectionPool.Builder.ConnectAsync()
now respects.InitialTimeout()
parameter.CancellationToken
also supported.
- First batch of expired commercial licenses have been banned for use.
- Issue #139 - New
.RunUnsafeAsync
run helper that runs a query on the server and returns the rawResponse
object in an unsafe way with minimal client-side processing. The unbridled use of this method can lead to memory leaks on both the client and server. Use with extreme caution. This method should only be used in well-understood and advanced scenarios. - POSSIBLE BREAKING CHANGE:
.RunResult
forResult
(DML) type responses that correspond to inserts, deletes, updates has been renamed to.RunWrite
. Please use the new method name instead. Note: The.RunResult<T>
forT
type responses will not be obsoleted. The reason for the former.RunResult
method rename is to avoid confusion between.RunResult
and.RunResult<T>
. The obsoleted methods produce compiler warnings in this version. If no compiler warnings are produced, no changes are necessary. The obsolete methods will be removed in the next major RethinkDB driver release (2.4).
- Issue #138 - Better error handling in cursors.
- POSSIBLE BREAKING CHANGE: Previously, when an error response was received during cursor enumeration a
NotSupportedException
was thrown. Issue #138 changes this behavior by throwing more detailed (and more specific) exception based on the response from the server. For example, the driver will throw aReqlOpFailedError
exception if a cursor change feed is interrupted behind a RethinkDB proxy instead of throwing a genericNotSupportedException
.
- Issue #128 - NullReferenceException when executing query after failed reconnect.
- Renamed
val
parameters onConnection.Builder
for better readability and IntelliSense.
- Issue #125 - Fixed LINQ provider not using Newtonsoft.Json naming strategy.
- ReGrid: Renamed bucket method
DestroyAsync
toPergeAsync
to be consistent with non-asyncPurge
call.
- Upgrade Newtonsoft dependency to v10.0.3.
- Migration to .NET Standard 2.0.
- Issue 113: Allow client-side generation of ReGrid file ids.
- Use some C# 7 features in AST composition for faster performance.
- Issue 112: Fixed
NotSupportedException
when connecting to an IPv6 address.
- Move to Visual Studio 2017 RTM Build Tools
- .NET Core Tooling and Framework Reference Update
ConnectionPool
now supports SSL/TLS connections
- Initial support for SSL/TLS connections to RethinkDB Server (and consequently compose.io).
- SSL/TLS APIs require a commercial license and can be purchased here: https://www.bitarmory.com/payments/rethinkdb
- Issue 97 - Fixed
OutOfMemoryException
in rare cases with very large (~130MB) queries.
- Issue #91 - Some error message improvements.
- Issue #94 - Fixed
Connection.Server
throwing exception in proxy mode.Server.Id
is nowstring
, notGuid
.
- Issue #87 - Fixed missing
.User(user,pass)
parameters onConnectionPool
builder. - Fixed some synchronous methods not unwrapping
AggregateException
. - Issue #86 - Fixes
RunGrouping
whereGroup("Field").Count()
reductions are values.
- Added
ConnectionPool.AnyOpen
to check if any node is available in the host pool.
- XML documentation updated.
- Fixed Issue #78:
Run<JToken>
not working. - Fixed PR #80: Make
Run*
methods respect customized serializer settings whenJObject
is involved.
- Added support for
Change<T>.Type
changefeedinclude_types
OptArg.
- Newtonsoft.Json 9.0.1 dependency update.
- Added
async
methods onIDao
andRethinkDao
- 💥 .NET Core 1.0 RTM support.
- Better initial
ConnectionPool
handling when all nodes are down. - Added
ConnectionPool.InitialTimeout
to initially timeout if all nodes are down. - Fixed null reference exception edge case when accessing for
Connection.Open
property. - New feature: ReQL Expressions can now be serialized cross app boundaries. See docs.
- Roll-up Release for Full .NET Framework since last non-beta release.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Added
Connection.RemoteEndpoint
for symmetry. - Fixed :bettle: bug in
Connection
code that failed to reconnect to cluster node. - BREAKING:
ConnectionPool.Seed(...)
now acceptsSeed
object. - Obsoleted
.Seed(stirng[] "IPAddress:Port")
seed strings.
- Roll-up Release for Full .NET Framework since last non-beta release.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Added
RethinkDb.Driver.Extras.Dao
: A set of Data/Document Access objects for DAL architectures. Slick yo.
- BREAKING on CoreCLR: Issue 66: Makes
DateTime.MinValue
consistent cross-platform on Windows and Linux.
- Simplified edge case when using
RunAtom<JObject>
and result isnull
, returns nativenull
.
Connection.Connect/ConnectAsync
now throw underlying exception without AggregateException- Fixed Issue 63 - "Can't connect on Linux with RC2"/"Sockets on this platform are invalid".
- Roll-up Release for Full .NET Framework since last non-beta release.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Issue 62 - Fixed "An address incompatible with the requested protocol was used" on Azure
- Roll-up Release for Full .NET Framework since last non-beta release.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Connection now exposes ClientLocalEndpoint.
- Better .NET Standard 1.3 and .NET Core RC2 compatibility.
- Compatibility with .NET Standard 1.3 and .NET Core RC2.
- Experimental LINQ to ReQL provider support.
- BREAKING: Issue 39 - Pseudo types are now converted by default in JToken types (JObject, JArray).
- You'll need to specify .Run*(conn, new { time_format:
raw
}) to keep raw types - from being converted. Other raw types: binary_format and group_format.
- BREAKING: Issue 49 - Handle DateTime and DateTimeOffset with ReqlDateTimeConverter
- instead of Iso8601 AST term.
- Compatibility with RethinkDB 2.3 and new user/pass authentication system.
- New
Grant
AST term added. - New permission exception types.
- Issue 41 - Synchronous Run Helpers now throw expected exceptions (unwrapped AggregateException).
- Roll-up Release for Full .NET Framework since last non-beta release.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Fixed Issue 36: Inconsistency between AND and OR method signatures.
- Added Fold Term (Note: Not usable until RethinkDB Server 2.3 is released).
- Added support for Union interleave OptArg.
- Added Proxy field to Server:conn.Server().
- BREAKING: .optArg now named .OptArg to follow .NET conventions (My apologies, I missed this one).
- Roll-up Release for Full .NET Framework since v2.2.8.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Improved JObject and POCO serialization.
- Added helper overloads for GetAll, HasFields, WithFields, Pluck, Without, IndexStatus, IndexWait.
- Roll-up Release for Full .NET Framework since v2.2.7.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Improved [] operator overloading in AST. Term[
bracket
]. Sometimes wouldn`t get called.
- Promoted anonymous types to expressions. R.Expr(new {keya="vala"}).Keys()
- Fixed null reference exception in ReGrid.OpenDownloadStreamAsync()
- Issue 32: Adding back
dnx451
,dnxcore50
.
- Issue 32: Switch to new
dotnet
target framework monikers for CoreCLR.
- Roll-up Release for Full .NET Framework since v2.2.5.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- All public API are squeaky clean.
- Added more more convenience CancellationToken Run*().
- Fixed Cursor.IsFeed bug always false.
- Added more XML docs.
- Inverted the AST generation for faster query composition.
- Fixed some async bugs.
- Roll-up Release for Full .NET Framework since v2.2.4.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- BREAKING CHANGES:
- -- ReGrid specification update: chunks using: file_id and num fields.
- -- ReQL AST now using .NET naming conventions. AST is now PascalCase.
- Completely reimplemented Cursor from the ground up. Better, faster, stronger, simpler.
- Async APIs now accept CancellationTokens.
- Issue 31: Handle null byte[] properly.
- BREAKING CHANGES:
- -- ReGrid specification update: chunks using: file_id and num fields.
- -- ReQL AST now using .NET naming conventions. AST is now PascalCase.
- -- RethinkDBConstants using .NET naming conventions.
- Fixed ReGrid bug with large uploads.
- Fixed possible memory leak in Cursor.close()
- Some minor Cursor changes to make MoveNextAsync work better
- Connection and ConnectionPool are now IDisposable.
- Introducing ReGrid: The RethinkDB Large Object File Store. See docs for more info.
- Added Connection.ConnectionError event. Better for connection pooling.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Roll-up Release for Full .NET Framework since v2.2.3.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Issue 24 - Aggregate / NullReference after .connect() and immediate .run().
- Roll-up Release for Full .NET Framework since v2.2.2.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- runResult() now takes IConnection instead of strongly typed Connection.
- Added runResult[T] for SUCCESS_ATOM or SUCCESS_SEQUENCE responses.
- Fixed nullable DateTime? and DateTimeOffset? not converting to reql_type:TIME pesudo type.
- Make ConnectionPool more reliable. Unstable ConnectionPool arised when driver threw errors due to syntax.
- Fixed bug in ReqlBinaryConverter preventing ser/deserialization of 0xFF
- Roll-up Release for .NET Framework since v2.2.1.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Issue #21: Fixed nested array types in JObject serialization.
- Notice: ReqlDateTimeConverter serialization implementation changed (non-breaking).
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Issue #21: Allow driver usage of JObject in API. Example: r.table().insert(JObject).run().
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Roll-up Release for .NET Framework since v2.2.0.
- CoreCLR users please continue using latest beta release until CoreCLR is RTM.
- Newtonsoft v8.0.2 compatibility.
- Added remaining top-level aggregation terms.
- Release for .NET 4.5 Framework (CoreCLR users please continue using latest beta release until CoreCLR is RTM.).
- ConnectAsync
- ReconnectAsync
- Connection Pooling: RoundRobin and EpsilonGreedy connection pools.
- conn.server() and conn.serverAsync(): SERVER_INFO implemented.
- TopLevel AST adjustments for Table: rebalance, reconfigure, and wait_
- Slight adjustment to System.Dynamic.Runtime dependency so no fallback source is needed.
- async/await run() implementations.
- Database connection thread-safety.
- EnsureSuccess() renamed to AssertNoErrors()
- Assert: Deleted(), Inserted(), skipped(), replaced, etc.. helpers.
- Better Reactive Extension (Rx) semantic compatibility.
- Added Cursor.MoveNext(Timeout) for manual cursor movement.
- Added new helper: runGrouping<TKey,TItem>()
- Added new helper: runAtom()
- See project documentation wiki
- Added run helpers: runResult(), runChanges()
- Added EnsureSuccess() to help ensure query execution has no errors. Example: insert().runResult().EnsureSuccess(); throws if errors.
- Change[T] class helper to help with change feeds.
- Reactive Extensions .ToObservable() compatibility with .NET 4.5 framework and change feeds.
- Issue 13: Fixed POCO:byte[] not serializing correctly
- Better DNX compatibility with dnx451 and dnxcore50.
- Requires DNX RC1.
- Allow logging in CoreCLR - In startup: loggerFactory.EnableRethinkDbLogging();
- .map() projections with anonymous types. IE: r.filter().map( g => new {points = g["points"]} )
- Converter.Serializer main configuration point for Newtonsoft.
- Fixed POCO serialization issues
- ReqlExpr[] uses r.bracket() instead of r.getField();
- More work on Result helper.
- Feature: .getField() overload helper. Example: .get("id")["Name"] returns field Name.
- Feature: +,-,*,/,>,< etc.. expression operator overloading.
- Feature: Implicit operator overrides. Example: (r.expr(1) + 1).run().
- ChangeFeeds unit tests passing.
- MetaDbs unit tests passing.
- Better support for POCO byte[] binary.
- Fixed bug in Cursor[T].BufferedItems. Respects native reql_type.
- Better support for group()-ed results.
- Moved reql_type converters to Newtonsoft's JsonConverter engine.
- Fixed #8: NullReference exception when querying non-existent DB.
- AST: added uuid(expr)
- Feature: Anonymous typed args. Example: getAll(...)[new {index = "foo"}].run()
- Fixed bugs in r.binary() when building AST.
- Fixed bugs in geometry deserialization.
- Fixed Cursor bug in cursor continuation.
- Binary unit tests passing.
- Times Constructors unit tests passing.
- DatumNumber unit tests passing.
- Default unit tests passing.
- DatumObject unit tests passing.
- Json unit tests passing.
- Geo constructors unit tests passing.
- GeoGeo json unit tests passing.
- GeoOperations unit tests passing.
- GeoPrimitives unit tests passing.
- Match unit tests passing.
- Cursor support for sequence / partial results (example getAll).
- Make .run dynamic.
- Added faster .runCursor for queries expecting a cursor.
- Implemented driver prefetching.
- Support for inserting POCO objects in tables.
- Support for retrieving POCO objects from tables.
- More accurate DateTime conversions.
- Support for .NET Core / DNX Runtime.
- Support for Mono / Linux Runtime.
- Convert Func0 in AST.
- Fixed bug in Reql Function lambda FUNCALL AST ordering.
- Best practice - avoid using C# "is" operator in Util.ToReqlAst.
- AST Update
- More signatures for table.indexCreate.
- Allow JavaScript in places for ReqlFunction1.
- r.desc and r.desc can accept functions
- Ensure latest Common.Logging is used.
- Removed unnecessary dependency on extension methods utility.
- Added a toplevel r.array and r.hashMap utility
- AST now using proper C# lambdas.
- More refined AST signatures.
- PR#2: Fix null reference exception: JObject.FromObject before objects to JArray list. -cadabloom
- Fixed recursion in MakeObject
- optArg now explicitly included where needed.
- Added IntelliSense XML documentation.
- Refined serialization.
- DB methods fixed.
- Create/Delete database working.
- RethinkDB PesudoType conversion working.
- Connection to RethinkDB working.
- Initial port from Josh's Java Driver.