|
1 | | -* Fixed: YdbDataReader.GetDataTypeName for optional values. |
2 | | -* Added support for "Columns" collectionName in YdbConnection.GetSchema(Async). |
| 1 | +## v0.14.1 |
| 2 | +- Fixed bug: public key presented not for certificate signature. |
| 3 | +- Fixed: YdbDataReader does not throw YdbException when CloseAsync is called for UPDATE/INSERT statements with no |
| 4 | + result. |
| 5 | + |
| 6 | +## v0.14.0 |
| 7 | + |
| 8 | +- Reader client for YDB topics |
| 9 | +- Fixed: send PartitionIds in InitRequest. |
| 10 | +- Do a committed offset on StopPartitionSessionRequest event anyway. |
| 11 | +- Added log info on StopPartitionSessionRequest event. |
| 12 | +- PartitioningSettings were changed to change the PartitionCountLimit to MaxActivePartitions. |
| 13 | +- Dev: updated System.IdentityModel.Tokens.Jwt from version 0.7.0 to version 8.5.0. |
| 14 | +- PartitionSession.Stop uses committedOffset to complete commit tasks. |
| 15 | +- Changed batch type: IReadOnlyCollection<Message<TValue>> -> IReadOnlyList<Message<TValue>>. |
| 16 | +- Invoking TryReadRequestBytes before deserializing message. |
| 17 | +- Updated Ydb.Protos 1.0.6 -> 1.1.1: Updated version of the Grpc.Net.Client library to 2.67.0 and proto messages. |
| 18 | +- Fixed: YdbDataReader.GetDataTypeName for optional values. |
| 19 | +- Added support for "Columns" collectionName in YdbConnection.GetSchema(Async). |
3 | 20 |
|
4 | 21 | ## v0.12.0 |
5 | | -* GetUint64(int ordinal) returns a ulong for Uint8, Uint16, Uint32, Uint64 YDB types. |
6 | | -* GetInt64(int ordinal) returns a int for Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32 YDB types. |
7 | | -* GetUint32(int ordinal) returns a uint for Uint8, Uint16, Uint32 YDB types. |
8 | | -* GetInt32(int ordinal) returns a int for Int8, Int16, Int32, Uint8, Uint16 YDB types. |
9 | | -* GetUint16(int ordinal) returns a ushort for Uint8, Uint16 YDB types. |
10 | | -* GetInt16(int ordinal) returns a short for Int8, Int16, Uint8 YDB types. |
11 | | -* GetDouble(int ordinal) returns a double for Float and Double YDB types. |
12 | | -* Throw InvalidCastException on string.Empty in `GetChar(int ordinal)`. |
13 | | -* Changed Ydb.Sdk.Value.InvalidTypeException to InvalidCastException in YdbValueParser. |
14 | | -* Changed InvalidCastException to InvalidOperationException in YdbParameter. |
15 | | -* Added specification tests: YdbCommandTests and YdbParameterTests. |
16 | | -* YdbConnection.Database returns string.Empty if ConnectionStringBuilder is null. |
17 | | -* Propagated cancellationToken in Execute[.*]Async methods. |
18 | | -* When YdbCommand has an open data reader, it throws InvalidOperationException on the setters: CommandText, DbConnection. |
19 | | -* Added checkers to YdbCommand.Prepare(). |
20 | | -* CommandText getter doesn't throw an exception if the CommandText property has not been initialized. |
| 22 | + |
| 23 | +- GetUint64(int ordinal) returns a ulong for Uint8, Uint16, Uint32, Uint64 YDB types. |
| 24 | +- GetInt64(int ordinal) returns a int for Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32 YDB types. |
| 25 | +- GetUint32(int ordinal) returns a uint for Uint8, Uint16, Uint32 YDB types. |
| 26 | +- GetInt32(int ordinal) returns a int for Int8, Int16, Int32, Uint8, Uint16 YDB types. |
| 27 | +- GetUint16(int ordinal) returns a ushort for Uint8, Uint16 YDB types. |
| 28 | +- GetInt16(int ordinal) returns a short for Int8, Int16, Uint8 YDB types. |
| 29 | +- GetDouble(int ordinal) returns a double for Float and Double YDB types. |
| 30 | +- Throw InvalidCastException on string.Empty in `GetChar(int ordinal)`. |
| 31 | +- Changed Ydb.Sdk.Value.InvalidTypeException to InvalidCastException in YdbValueParser. |
| 32 | +- Changed InvalidCastException to InvalidOperationException in YdbParameter. |
| 33 | +- Added specification tests: YdbCommandTests and YdbParameterTests. |
| 34 | +- YdbConnection.Database returns string.Empty if ConnectionStringBuilder is null. |
| 35 | +- Propagated cancellationToken in Execute[.*]Async methods. |
| 36 | +- When YdbCommand has an open data reader, it throws InvalidOperationException on the setters: CommandText, |
| 37 | + DbConnection. |
| 38 | +- Added checkers to YdbCommand.Prepare(). |
| 39 | +- CommandText getter doesn't throw an exception if the CommandText property has not been initialized. |
21 | 40 |
|
22 | 41 | ## v0.11.0 |
23 | | -* Fix bug: GetValue(int ordinal) return DBNull.Value if fetched NULL value. |
24 | | -* Fix: NextResult() moves to the next result and skip the first ResultSet. |
25 | | -* Added specification DbDataReaderTests. |
26 | | -* If dataOffset is larger than the length of data, GetChars and GetBytes methods will return 0. |
27 | | -* If YdbDataReader is closed: `throw new InvalidOperationException("The reader is closed")`. |
28 | | -* InvalidOperationException on ConnectionString property has not been initialized. |
29 | | -* One YdbTransaction per YdbConnection. Otherwise, throw an exception: InvalidOperationException("A transaction is already in progress; nested/concurrent transactions aren't supported."). |
30 | | -* ConnectionString returns an empty.String when it is not set. |
31 | | -* 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. |
32 | | -* Fixed bug: Fetch txId from the last result set. |
33 | | -* YdbTransaction CheckDisposed() (invoke rollback if transaction hasn't been committed). |
34 | | -* Dev: Added specification tests for YdbTransaction. |
| 42 | + |
| 43 | +- Fix bug: GetValue(int ordinal) return DBNull.Value if fetched NULL value. |
| 44 | +- Fix: NextResult() moves to the next result and skip the first ResultSet. |
| 45 | +- Added specification DbDataReaderTests. |
| 46 | +- If dataOffset is larger than the length of data, GetChars and GetBytes methods will return 0. |
| 47 | +- If YdbDataReader is closed: `throw new InvalidOperationException("The reader is closed")`. |
| 48 | +- InvalidOperationException on ConnectionString property has not been initialized. |
| 49 | +- One YdbTransaction per YdbConnection. Otherwise, throw an exception: InvalidOperationException("A transaction is |
| 50 | + already in progress; nested/concurrent transactions aren't supported."). |
| 51 | +- ConnectionString returns an empty.String when it is not set. |
| 52 | +- When a YdbDataReader is closed, if stream is not empty, a YdbTransaction fails if it is not null. A session also fails |
| 53 | + due to a possible error SessionBusy race condition with the server. |
| 54 | +- Fixed bug: Fetch txId from the last result set. |
| 55 | +- YdbTransaction CheckDisposed() (invoke rollback if transaction hasn't been committed). |
| 56 | +- Dev: Added specification tests for YdbTransaction. |
35 | 57 |
|
36 | 58 | ## v0.10.0 |
37 | | -- 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. |
38 | | -- Supported in ADO.NET GetSchema(Async). CollectionNames: |
39 | | - * Tables |
40 | | - * TablesWithCollections |
41 | | - * DataSourceInformation |
42 | | - * MetaDataCollections |
43 | | - * Restrictions |
| 59 | + |
| 60 | +- Fixed bug in Topic Writer: race condition when session fails, then write operation starts on previous session and new |
| 61 | + session is created. Messages may be lost. |
| 62 | +- Supported in ADO.NET GetSchema(Async). CollectionNames: |
| 63 | + * Tables |
| 64 | + * TablesWithCollections |
| 65 | + * DataSourceInformation |
| 66 | + * MetaDataCollections |
| 67 | + * Restrictions |
44 | 68 | - Rename field _onStatus -> _onNotSuccessStatus in YdbDataReader |
45 | 69 | - If session is not active, do not invoke DeleteNotActiveSession(session) |
46 | 70 | - AttachStream: connect stream using NodeId |
|
49 | 73 | - DbConnection.Session.OnStatus(status) in YdbTransaction |
50 | 74 |
|
51 | 75 | ## v0.9.4 |
| 76 | + |
52 | 77 | - Do not pessimize the node on Grpc.Core.StatusCode.Cancelled and Grpc.Core.StatusCode.DeadlineExceeded. |
53 | 78 | - Dispose of WriterSession using dispose CancellationToken. |
54 | 79 | - BidirectionalStream is internal class. |
|
57 | 82 | - Cancel writing tasks after disposing of Writer. |
58 | 83 |
|
59 | 84 | ## v0.9.3 |
| 85 | + |
60 | 86 | - Fixed bug in Topic Writer: worker is stopped by disposeCts |
61 | | -- Fixed bug in sql parser ADO.NET: deduplication declare param in YQL query |
| 87 | +- Fixed bug in sql parser ADO.NET: deduplication declare param in YQL query |
62 | 88 | - Deleted property BufferOverflowRetryTimeoutMs |
63 | 89 |
|
64 | 90 | ## v0.9.2 |
| 91 | + |
65 | 92 | - Fixed bug: delete deadline grpc timeout on AttachStream |
66 | 93 |
|
67 | 94 | ## v0.9.1 |
| 95 | + |
68 | 96 | - Update log level on AttachStream |
69 | 97 |
|
70 | 98 | ## v0.9.0 |
| 99 | + |
71 | 100 | - Writer client for YDB topics |
72 | | -- Fixed bug: delete default timeout grpc.deadline |
| 101 | +- Fixed bug: delete default timeout grpc.deadline |
73 | 102 |
|
74 | 103 | ## v0.9.0-rc1 |
| 104 | + |
75 | 105 | - Topic Writer updated release candidate: |
76 | | - * Do not send messages that have a timeout by cancelToken. |
77 | | - * If your value serializer throws an exception, this will be wrapped in a WriterException with unspecified status. |
78 | | - * Added BufferOverflowRetryTimeoutMs to the next try write. |
79 | | - * Rename _disposeTokenSource -> _disposeCts. |
80 | | - * Optimize write worker: if (_toSendBuffer.IsEmpty) continue. |
81 | | - * On RPC errors create DummyWriterSession. |
82 | | - * Message has been skipped because its sequence number is less than or equal to the last processed server's SeqNo. |
83 | | - * Calculate the next sequence number from the calculated previous messages. |
| 106 | + * Do not send messages that have a timeout by cancelToken. |
| 107 | + * If your value serializer throws an exception, this will be wrapped in a WriterException with unspecified status. |
| 108 | + * Added BufferOverflowRetryTimeoutMs to the next try write. |
| 109 | + * Rename _disposeTokenSource -> _disposeCts. |
| 110 | + * Optimize write worker: if (_toSendBuffer.IsEmpty) continue. |
| 111 | + * On RPC errors create DummyWriterSession. |
| 112 | + * Message has been skipped because its sequence number is less than or equal to the last processed server's SeqNo. |
| 113 | + * Calculate the next sequence number from the calculated previous messages. |
84 | 114 |
|
85 | 115 | ## v0.9.0-rc0 |
| 116 | + |
86 | 117 | - Topic Writer release candidate: |
87 | | - * Updated CAS semantics for enqueuing in the buffer. |
88 | | - * Processed buffer overflow on WriteAsync. |
89 | | - * Setting NotStartedWriterSession with a fail reason on RPC and more errors. |
90 | | - * New initialization strategy for WriterSession (background task). |
91 | | - * Supported cancellation token for sending tasks. |
92 | | - * Fixed setting the SeqNo field in the message (in-flight buffer already has a seqNo) and added a check on canceled TCS. |
93 | | - * Using BitConverter for Serializer / Deserializer. |
94 | | -- Fixed: grpc requests go via proxy on Grpc.NET.Client >= 2.44 |
| 118 | + * Updated CAS semantics for enqueuing in the buffer. |
| 119 | + * Processed buffer overflow on WriteAsync. |
| 120 | + * Setting NotStartedWriterSession with a fail reason on RPC and more errors. |
| 121 | + * New initialization strategy for WriterSession (background task). |
| 122 | + * Supported cancellation token for sending tasks. |
| 123 | + * Fixed setting the SeqNo field in the message (in-flight buffer already has a seqNo) and added a check on canceled |
| 124 | + TCS. |
| 125 | + * Using BitConverter for Serializer / Deserializer. |
| 126 | +- Fixed: grpc requests go via proxy on Grpc.NET.Client >= 2.44 |
95 | 127 |
|
96 | 128 | ## v0.8.0 |
97 | | -- Fixed bug on commit with fail, no set failed flag for rollback invocation |
| 129 | + |
| 130 | +- Fixed bug on commit with fail, no set failed flag for rollback invocation |
98 | 131 | - Supported UUID (Guid) |
99 | 132 |
|
100 | 133 | ## v0.7.3 |
| 134 | + |
101 | 135 | - Fixed YdbDataReader: extract Json / Yson types |
102 | 136 |
|
103 | 137 | ## v0.7.2 |
| 138 | + |
104 | 139 | - Fixed YdbDataReader: `GetValue()` returns `DbNull.Value` if field is null |
105 | 140 | - YdbOperationInProgressException extends YdbException |
106 | 141 |
|
107 | 142 | ## v0.7.1 |
| 143 | + |
108 | 144 | - If an error happened in the transaction, allow one empty rollback |
109 | 145 |
|
110 | 146 | ## v0.7.0 |
| 147 | + |
111 | 148 | - Parsed @param then prepared for use with $ prefix (@p -> $p) |
112 | 149 | - Fully integrated with Dapper |
113 | 150 |
|
114 | 151 | ## v0.6.3 |
| 152 | + |
115 | 153 | - Fixed bug: parameter type mismatch, when setting optional with null |
116 | 154 |
|
117 | 155 | ## v0.6.2 |
| 156 | + |
118 | 157 | - Fixed bug: adding correct placeholders to all logging calls with parameters |
119 | 158 |
|
120 | 159 | ## v0.6.1 |
| 160 | + |
121 | 161 | - Check status of the transport or server for an invalidated session |
122 | 162 | - Fixed NPE in DescribeTable |
123 | 163 |
|
124 | 164 | ## v0.6.0 |
| 165 | + |
125 | 166 | - ADO.NET over query-service |
126 | 167 | - Add EndpointPool |
127 | 168 | - Add SessionPool 2.0 |
128 | 169 |
|
129 | 170 | ## v0.4.0 |
| 171 | + |
130 | 172 | - Fix bug: rounding down when inserting a Timestamp YDB type |
131 | 173 | - ChannelCache has been implemented using ChannelPool and EndpointPool |
132 | 174 |
|
133 | 175 | ## v0.3.2 |
| 176 | + |
134 | 177 | - Make KeepAlive method public for TableClient |
135 | 178 |
|
136 | 179 | ## v0.3.1 |
| 180 | + |
137 | 181 | - Fix error: Access denied without user token |
138 | 182 |
|
139 | 183 | ## v0.3.0 |
| 184 | + |
140 | 185 | - Add rollback transaction API |
141 | 186 |
|
142 | 187 | ## v0.2.2 |
| 188 | + |
143 | 189 | - Passed logger to TxControl.ToProto |
144 | 190 |
|
145 | 191 | ## v0.2.1 |
| 192 | + |
146 | 193 | - Retry discovery on driver initialize |
147 | 194 |
|
148 | 195 | ## v0.2.0 |
| 196 | + |
149 | 197 | - Added MakeTablePath, CopyTable, CopyTables, DescribeTable methods for TableClient |
150 | 198 | - Add logging for transactions |
151 | 199 |
|
152 | 200 | ## v0.1.5 |
| 201 | + |
153 | 202 | - Fix timeout error on create session |
154 | 203 | - Fix transport error on delete session |
155 | 204 |
|
156 | 205 | ## v0.1.4 |
| 206 | + |
157 | 207 | - Add exception throwing when results truncated |
158 | 208 | - lint: add line feed at file end |
159 | 209 |
|
160 | 210 | ## v0.1.3 |
| 211 | + |
161 | 212 | - Add static auth |
| 213 | + |
162 | 214 | ## v0.1.1 |
| 215 | + |
163 | 216 | - Add static code analysis |
164 | 217 | - Add CodeQL analysis |
165 | 218 | - Add linter |
166 | 219 | - Apply uniform code style and fix all warnings |
| 220 | + |
167 | 221 | ## v0.1.0 |
| 222 | + |
168 | 223 | - Add support of decimal type |
| 224 | + |
169 | 225 | ## v0.0.9 |
| 226 | + |
170 | 227 | - Remove support for .NET Core 3.1 |
171 | 228 | - Add support for .NET 7.0 |
172 | | -- |
| 229 | +- |
| 230 | + |
173 | 231 | ## v0.0.8 |
| 232 | + |
174 | 233 | - Fixed version number |
175 | 234 |
|
176 | 235 | ## v0.0.6 |
177 | | -- Add methods for castion to c# nullable to YQL Optional |
| 236 | + |
| 237 | +- Add methods for castion to c# nullable to YQL Optional |
178 | 238 | - Add explicit cast operator for some types |
179 | 239 | - Tests refactoring |
180 | 240 | - Add Bool type support |
0 commit comments