- PartitionSession.Stop uses committedOffset to complete commit tasks when stopPartitionSessionRequest.Graceful is true.
- Changed batch type: IReadOnlyCollection<Message> -> IReadOnlyList<Message>.
- Invoking TryReadRequestBytes before deserializing message.
- Updated Ydb.Protos 1.0.6 -> 1.1.0: Updated version of the Grpc.Net.Client library to 2.67.0.
- Fixed: YdbDataReader.GetDataTypeName for optional values.
- Added support for "Columns" collectionName in YdbConnection.GetSchema(Async).
- GetUint64(int ordinal) returns a ulong for Uint8, Uint16, Uint32, Uint64 YDB types.
- GetInt64(int ordinal) returns a int for Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32 YDB types.
- GetUint32(int ordinal) returns a uint for Uint8, Uint16, Uint32 YDB types.
- GetInt32(int ordinal) returns a int for Int8, Int16, Int32, Uint8, Uint16 YDB types.
- GetUint16(int ordinal) returns a ushort for Uint8, Uint16 YDB types.
- GetInt16(int ordinal) returns a short for Int8, Int16, Uint8 YDB types.
- GetDouble(int ordinal) returns a double for Float and Double YDB types.
- Throw InvalidCastException on string.Empty in
GetChar(int ordinal)
. - Changed Ydb.Sdk.Value.InvalidTypeException to InvalidCastException in YdbValueParser.
- Changed InvalidCastException to InvalidOperationException in YdbParameter.
- Added specification tests: YdbCommandTests and YdbParameterTests.
- YdbConnection.Database returns string.Empty if ConnectionStringBuilder is null.
- Propagated cancellationToken in Execute[.*]Async methods.
- When YdbCommand has an open data reader, it throws InvalidOperationException on the setters: CommandText, DbConnection.
- Added checkers to YdbCommand.Prepare().
- CommandText getter doesn't throw an exception if the CommandText property has not been initialized.
- Fix bug: GetValue(int ordinal) return DBNull.Value if fetched NULL value.
- Fix: NextResult() moves to the next result and skip the first ResultSet.
- Added specification DbDataReaderTests.
- If dataOffset is larger than the length of data, GetChars and GetBytes methods will return 0.
- If YdbDataReader is closed:
throw new InvalidOperationException("The reader is closed")
. - InvalidOperationException on ConnectionString property has not been initialized.
- One YdbTransaction per YdbConnection. Otherwise, throw an exception: InvalidOperationException("A transaction is already in progress; nested/concurrent transactions aren't supported.").
- ConnectionString returns an empty.String when it is not set.
- When a YdbDataReader is closed, if stream is not empty, a YdbTransaction fails if it is not null. A session also fails due to a possible error SessionBusy race condition with the server.
- Fixed bug: Fetch txId from the last result set.
- YdbTransaction CheckDisposed() (invoke rollback if transaction hasn't been committed).
- Dev: Added specification tests for YdbTransaction.
- Fixed bug in Topic Writer: race condition when session fails, then write operation starts on previous session and new session is created. Messages may be lost.
- Supported in ADO.NET GetSchema(Async). CollectionNames:
- Tables
- TablesWithCollections
- DataSourceInformation
- MetaDataCollections
- Restrictions
- Rename field _onStatus -> _onNotSuccessStatus in YdbDataReader
- If session is not active, do not invoke DeleteNotActiveSession(session)
- AttachStream: connect stream using NodeId
- PoolManager: change pool properties on field
- Delete *Settings.DefaultInstance because it's a singleton object that's changed by tasks when NodeId is set
- DbConnection.Session.OnStatus(status) in YdbTransaction
- Do not pessimize the node on Grpc.Core.StatusCode.Cancelled and Grpc.Core.StatusCode.DeadlineExceeded.
- Dispose of WriterSession using dispose CancellationToken.
- BidirectionalStream is internal class.
- Move Metadata class to Ydb.Sdk.Services.Topic.
- Fixed memory leak CancellationTokenRegistration.
- Cancel writing tasks after disposing of Writer.
- Fixed bug in Topic Writer: worker is stopped by disposeCts
- Fixed bug in sql parser ADO.NET: deduplication declare param in YQL query
- Deleted property BufferOverflowRetryTimeoutMs
- Fixed bug: delete deadline grpc timeout on AttachStream
- Update log level on AttachStream
- Writer client for YDB topics
- Fixed bug: delete default timeout grpc.deadline
- Topic Writer updated release candidate:
- Do not send messages that have a timeout by cancelToken.
- If your value serializer throws an exception, this will be wrapped in a WriterException with unspecified status.
- Added BufferOverflowRetryTimeoutMs to the next try write.
- Rename _disposeTokenSource -> _disposeCts.
- Optimize write worker: if (_toSendBuffer.IsEmpty) continue.
- On RPC errors create DummyWriterSession.
- Message has been skipped because its sequence number is less than or equal to the last processed server's SeqNo.
- Calculate the next sequence number from the calculated previous messages.
- Topic Writer release candidate:
- Updated CAS semantics for enqueuing in the buffer.
- Processed buffer overflow on WriteAsync.
- Setting NotStartedWriterSession with a fail reason on RPC and more errors.
- New initialization strategy for WriterSession (background task).
- Supported cancellation token for sending tasks.
- Fixed setting the SeqNo field in the message (in-flight buffer already has a seqNo) and added a check on canceled TCS.
- Using BitConverter for Serializer / Deserializer.
- Fixed: grpc requests go via proxy on Grpc.NET.Client >= 2.44
- Fixed bug on commit with fail, no set failed flag for rollback invocation
- Supported UUID (Guid)
- Fixed YdbDataReader: extract Json / Yson types
- Fixed YdbDataReader:
GetValue()
returnsDbNull.Value
if field is null - YdbOperationInProgressException extends YdbException
- If an error happened in the transaction, allow one empty rollback
- Parsed @param then prepared for use with $ prefix (@p -> $p)
- Fully integrated with Dapper
- Fixed bug: parameter type mismatch, when setting optional with null
- Fixed bug: adding correct placeholders to all logging calls with parameters
- Check status of the transport or server for an invalidated session
- Fixed NPE in DescribeTable
- ADO.NET over query-service
- Add EndpointPool
- Add SessionPool 2.0
- Fix bug: rounding down when inserting a Timestamp YDB type
- ChannelCache has been implemented using ChannelPool and EndpointPool
- Make KeepAlive method public for TableClient
- Fix error: Access denied without user token
- Add rollback transaction API
- Passed logger to TxControl.ToProto
- Retry discovery on driver initialize
- Added MakeTablePath, CopyTable, CopyTables, DescribeTable methods for TableClient
- Add logging for transactions
- Fix timeout error on create session
- Fix transport error on delete session
- Add exception throwing when results truncated
- lint: add line feed at file end
- Add static auth
- Add static code analysis
- Add CodeQL analysis
- Add linter
- Apply uniform code style and fix all warnings
- Add support of decimal type
- Remove support for .NET Core 3.1
- Add support for .NET 7.0
- Fixed version number
- Add methods for castion to c# nullable to YQL Optional
- Add explicit cast operator for some types
- Tests refactoring
- Add Bool type support