github.com/ydb-platform/ydb-go-sdk/v3@v3.57.0/CHANGELOG.md (about) 1 ## v3.57.0 2 * Added experimental implementation of query service client 3 * Fixed sometime panic on topic writer closing 4 * Added experimental query parameters builder `ydb.ParamsBuilder()` 5 * Changed types of `table/table.{QueryParameters,ParameterOption}` to aliases on `internal/params.{Parameters,NamedValue}` 6 * Fixed bug with optional decimal serialization 7 8 ## v3.56.2 9 * Fixed return private error for commit to stopped partition in topic reader. 10 * Stopped wrapping err error as transport error at topic streams (internals) 11 12 ## v3.56.1 13 * Fixed fixenv usage (related to tests only) 14 15 ## v3.56.0 16 * Fixed handle of operational errors in topic streams 17 * The minimum version of Go in `ydb-go-sdk` has been raised to `go1.21` 18 * Fixed topic writer infinite reconnections in some cases 19 * Refactored nil on err `internal/grpcwrapper/rawydb/issues.go`, when golangci-lint nilerr enabled 20 * Refactored nil on err `internal/grpcwrapper/rawtopic/describe_topic.go`, when golangci-lint nilerr enabled 21 22 ## v3.55.3 23 * Fixed handle of operational errors in topic streams (backported fix only) 24 25 ## v3.55.2 26 * Fixed init info in topic writer, when autoseq num turned off. 27 28 ## v3.55.1 29 * Supported column name prefix `__discard_column_` for discard columns in result sets 30 * Made `StatusIds_SESSION_EXPIRED` retriable for idempotent operations 31 32 ## v3.55.0 33 * Refactored `internal/value/intervalValue.Yql()` 34 * The minimum version of Go in `ydb-go-sdk` has been raised to `go1.20` 35 36 ## v3.54.3 37 * Added per message metadata support for topic api 38 * Context for call options now have same lifetime as driver (previous - same lifetime as context for call Open function). 39 * Extended metrics (fill database.sql callbacks, recognize TLI error) 40 * Refactored config prefix in metrics 41 * Removed excess status labels from metrics 42 * Implement `fmt.Stringer` interface for `Driver` struct 43 44 ## v3.54.2 45 * Added context to some internal methods for better tracing 46 * Added `trace.FunctionID` helper and `FunctionID` field to trace start info's 47 * Replaced lazy initialization of ydb clients (table, topic, etc.) to explicit initialization on `ydb.Open` step 48 49 ## v3.54.1 50 * Fixed inconsistent labels in `metrics` 51 52 ## v3.54.0 53 * Allowed `sql.LevelSerializable` isolation level in read-write mode in `database/sql` transactions 54 * Refactored traces and metrics 55 * Added `{retry,table}.WithLabel` options for mark retriers calls 56 * Added `ydb.WithTraceRetry` option 57 * Moved `internal/allocator.Buffers` to package `internal/xstring` 58 * Bumped `golang.org/x/sync` to `v0.3.0` 59 * Bumped `google.golang.org/protobuf` to `v1.31.0` 60 * Bumped `google.golang.org/grpc` to `v1.57.1` 61 * Allowed grpc status error as arg in `internal/xerrors.TransportError(err)` 62 * Added `interanl/xtest.CurrentFileLine()` helper for table tests 63 * Added `internal/credentials.IsAccessError(err)` helper for check access errors 64 * Changed period for re-fresh static credentials token from `1/2` to `1/10` to expiration time 65 * Added `table.SnapshotReadOnlyTxControl()` helper for get transaction control with snapshot read-only 66 67 ## v3.53.4 68 * Downgrade `golang.org/x/net` from `0.17.0` to `0.15.0` 69 * Downgrade `golang.org/x/sys` from `v0.13.0` to `v0.12.0` 70 * Downgrade `golang.org/x/crypto` from `v0.14.0` to `v0.13.0` 71 72 ## v3.53.3 73 * Refactored credentials options (from funcs to interfaces and types) 74 * Fixed stringification of credentials object 75 76 ## v3.53.2 77 * Fixed panic when try to unwrap values with more than 127 columns with custom ydb unmarshaler 78 79 ## v3.53.1 80 * Bumps `github.com/ydb-platform/ydb-go-genproto` for support `query` service 81 * Bumps `golang.org/x/net` from `0.7.0` to `0.17.0` 82 * Bumps `golang.org/x/sys` from `v0.5.0` to `v0.13.0` 83 * Bumps `golang.org/x/text` from `v0.7.0` to `v0.13.0` 84 85 ## v3.53.0 86 * Removed `internal/backoff.Backoff.Wait` interface method for exclude resource leak with bug-provoked usage of `time.After` method 87 * Marked as deprecated `retry.WithDoRetryOptions` and `retry.WithDoTxRetryOptions` 88 * Added receiving first result set on construct `internal/table/scanner.NewStream()` 89 * Added experimental package `metrics` with SDK metrics 90 * Fixed redundant trace call for finished `database/sql` transactions 91 * Added repeater event type to wake-up func context 92 * Refactored default logger format 93 * Refactored `internal/conn.coonError` format 94 * Fixed data race on `internal/conn.conn.cc` access 95 96 ## v3.52.3 97 * Removed almost all experimental marks from topic api. 98 * Rename some topic APIs (old names was deprecated and will be removed in one of next versions). 99 * Deprecated topic options (the option will be removed): min size of read messages batch 100 * Deprecated WithOnWriterFirstConnected callback, use Writer.WaitInitInfo instead. 101 * Changed topic Codec base type from int to int32 (was experimental code) 102 * Added `WaitInit` and `WaitInitInfo` method to the topic reader and writer 103 * Remove extra allocations in `types.TupleValue`, `types.ListValue` and `types.SetValue` 104 105 ## v3.52.2 106 * Removed support of placeholder "_" for ignoring columns in `database/sql` result sets 107 108 ## v3.52.1 109 * Merged `internal/xsql/conn.{GetTables,GetAllTables}` methods for `DRY` 110 * Replaced `internal/xsql.Connector.PathNormalizer` default from `nopPathNormalizer` to `bind.TablePathPrefix` with database name as path prefix 111 * Supported placeholder "_" for ignored column names in `database/sql` result sets 112 113 ## v3.52.0 114 * Added `table.Session.CopyTables` method 115 * Added `x-ydb-trace-id` header into grpc calls 116 * Improved topic reader logs 117 * Fixed `internal/xstring` package with deprecated warning in `go1.21` about `reflect.{String,Slice}Header` 118 119 ## v3.51.3 120 * Added `internal/xstring.{FromBytes([]byte),ToBytes(string)` for increase performance on `string` from/to `[]byte` conversion 121 122 ## v3.51.2 123 * Added `table/options.ReadFromSnapshot(bool)` option for `session.StreamReadTable()` 124 125 ## v3.51.1 126 * Added checking condition for `tx.Rollback()` in `retry.DoTx` 127 128 ## v3.51.0 129 * Added node info to grpc errors 130 131 ## v3.50.0 132 * Added methods `TotalCPUTime()` and `TotalDuration()` to `table/stats/QueryStats` interface 133 * Added check if commit order is bad in sync mode 134 135 ## v3.49.1 136 * Added `table.options.WithIgnoreTruncated` option for `session.Execute` method 137 * Added `table.result.ErrTruncated` error for check it with `errors.Is()` outside of `ydb-go-sdk` 138 139 ## v3.49.0 140 * Added `table.Session.ReadRows` method for getting rows by keys 141 * Added `table/options.ChangefeedFormatDynamoDBStreamsJSON` format of `DynamoDB` change feeds 142 143 ## v3.48.8 144 * Fixed `sugar.RemoveRecursive()` for column table type 145 146 ## v3.48.7 147 * Added `sugar.StackRecord()` helper for stringification of current file path and line 148 * Updated `google.golang.org/grpc` from `v1.49.0` to `v1.53.0` due to vulnerability 149 * Updated `google.golang.org/protobuf` from `v1.28.0` to `v1.28.1` due to vulnerability 150 * Implemented implicit standard interface `driver.RowsColumnTypeNullable` in `internal/xsql.rows` 151 * Upgraded errors description from `retry.Retry` with attempts info 152 153 ## v3.48.6 154 * Added builder for topic reader message (usable for tests) 155 156 ## v3.48.5 157 * Removed `log.Secret` helper as unnessesarry in public API after refactoring logging subsystem 158 * Enriched the error with important details from initial discovery 159 * Added `internal.{secret,stack}` packages 160 * Implemented `fmt.Stringer` interface in credential types 161 162 ## v3.48.4 163 * Added `ydb.IsOperationErrorTransactionLocksInvalidated(err)` helper for checks `TLI` flag in err 164 165 ## v3.48.3 166 * Added `table/types.IsOptional()` helper 167 168 ## v3.48.2 169 * Refactored tests 170 171 ## v3.48.1 172 * Added `sugar.Is{Entry,ColumnTable}Exists` helper 173 174 ## v3.48.0 175 * Fixed stopping topic reader by grpc stream shutdown 176 * Fixed `database/sql` driver for get and parse container ydb types 177 * Changed `table/scanner.scanner.Any()` behaviour: for non-primitive types returns raw `table/types.Value` instead nil from previous behaviour 178 * Added `table/types.{ListItems,VariantValue,DictValues}` helpers for get internal content of abstract `table/types.Value` 179 * Marked as deprecated `table/types.DictFields` (use `table/types.DictValues` instead) 180 181 ## v3.47.5 182 * Added `scheme.Entry.IsColumnTable()` helper 183 184 ## v3.47.4 185 * Disabled check of node exists with `balancers.SingleConn` 186 * Improved code with `go-critic` linter 187 * Added session info into `database/sql` event `connected` 188 189 ## v3.47.3 190 * Added `table/options.Description.Tiering` field 191 192 ## v3.47.2 193 * Refactored `internal/cmd/gtrace` tool (prefer pointers instead trace struct copies) for bust performance 194 * Fixed usage of generated traces in code 195 196 ## v3.47.1 197 * Removed test artifacts from repository 198 199 ## v3.47.0 200 * Added `table/types.ToDecimal()` converter from `table/types.Value` to `table/types.Decimal` 201 202 ## v3.46.1 203 * Implemented `internal/xcontext.With{Cancel,Timeout}` with stack record and switched all usages from standard `context.With{Cancel,Timeout}` 204 205 ## v3.46.0 206 * Refactored package `log` for support typed fields in log messages 207 208 ## v3.45.0 209 * Added `table/options.WithPartitions` for configure partitioning policy 210 * Marked as deprecated `table/options.WithPartitioningPolicy{UniformPartitions,ExplicitPartitions}` (use `table/options.With{UniformPartitions,ExplicitPartitions}` instead) 211 212 ## v3.44.3 213 * Fixed bug of processing endpoint with `node_id=0` 214 * Refactored of checking node ID in cluster discovery before `Get` and during in `Put` of session into session pool 215 216 ## v3.44.2 217 * Removed debug print 218 219 ## v3.44.1 220 * Fixed bug with returning session into pool before second discovery 221 222 ## v3.44.0 223 * Added `table/options.WithCallOptions` options for append custom grpc call options into `session.{BulkUpsert,Execute,StreamExecuteScanQuery}` 224 * Supported fake transactions in `database/sql` driver over connector option `ydb.WithFakeTx(queryMode)` and connection string param `go_fake_tx` 225 * Removed `testutil/timeutil` package (all usages replaced with `clockwork` package) 226 * Changed behaviour of retryer on transport errors `cancelled` and `deadline exceeded` - will retry idempotent operation if context is not done 227 * Added address of node to operation error description as optional 228 * Fixed bug with put session from unknown node 229 * Fixed bug with parsing of `TzTimestamp` without microseconds 230 * Fixed code -1 of retryable error if wrapped error with code 231 * Added `ydb.MustOpen` and `ydb.MustConnector` helpers 232 * Fixed `internal/xerrors.Transport` error wrapping for case when given error is not transport error 233 * Added grpc and operation codes to errors string description 234 * Extend `scheme.Client` interface with method `Database` 235 * Removed `driver.ResultNoRows` in `internal/xsql` 236 * Added `ydb.{WithTablePathPrefix,WithAutoDeclare,WithPositionalArgs,WithNumericalArgs}` query modifiers options 237 * Supported binding parameters for `database/sql` driver over connector option `ydb.WithAutoBind()` and connection string params `go_auto_bind={table_path_prefix(path),declare,numeric,positional}` 238 * Added `testutil.QueryBind` test helper 239 * Fixed topic retry policy callback call: not call it with nil error 240 * Fixed bug with no checking operation error on `discovery.Client` calls 241 * Allowed zero create session timeout in `ydb.WithSessionPoolCreateSessionTimeout(timeout)` (less than or equal to zero - no used timeout on create session request) 242 * Added examples with own `go.mod` 243 * Marked as deprecated `ydb.WithErrWriter(w)` and `ydb.WithOutWriter(w)` logger options 244 * Added `ydb.WithWriter(w)` logger option 245 246 ## v3.43.0 247 **Small broken changes** 248 249 Most users can skip there notes and upgrade as usual because build break rare used methods (expiremental API and api for special cases, not need for common use YDB) and this version has no any behavior changes. 250 251 Changes for experimental topic API: 252 * Moved `producer_id` from required positional argument to option `WithProducerID` (and it is optional now) 253 * Removed `WithMessageGroupID` option (because not supported now) 254 255 Changes in ydb connection: 256 * Publish internal private struct `ydb.connection` as `ydb.Driver` (it is implement `ydb.Connection`) 257 * `ydb.Connection` marked as deprecated 258 * Changed return type of `ydb.Open(...)` from `ydb.Connection` to `*ydb.Driver` 259 * Changed return type of `ydb.New(...)` from `ydb.Connection` to `*ydb.Driver` 260 * Changed argument type for `ydb.GRPCConn` from `ydb.Connection` to `*ydb.Driver` 261 * Removed method `With` from `ydb.Connection` (use `*Driver.With` instead). 262 263 Changes in package `sugar`: 264 * Changed a type of database arg in `sugar.{MakeRecursive,RemoveRecursive}` from `ydb.Connection` to minimal required local interface 265 266 Dependencies: 267 * Up minimal supported version of `go` to `1.17` for update dependencies (new `golang.org/x` doesn't compiled for `go1.16`) 268 * Upgrade `golang.org/x/...` for prevent issues: `CVE-2021-33194`, `CVE-2022-27664`, `CVE-2021-31525`, `CVE-2022-41723` 269 270 ## v3.42.15 271 * Fixed checking `nil` error with `internal/xerrors.Is` 272 273 ## v3.42.14 274 * Supported `scheme.EntryTopic` path child entry in `sugar.RemoveRecursive` 275 276 ## v3.42.13 277 * Fixed default state of `internal/xerrors.retryableError`: it inherit properties from parent error as possible 278 * Marked event `grpc/stats.End` as ignored at observing status of grpc connection 279 280 ## v3.42.12 281 * Replaced the balancer connection to discovery service from short-lived grpc connection to `internal/conn` lazy connection (revert related changes from `v3.42.6`) 282 * Marked as deprecated `trace.Driver.OnBalancerDialEntrypoint` event callback 283 * Deprecated `trace.Driver.OnConnTake` event callback 284 * Added `trace.Driver.OnConnDial` event callback 285 286 ## v3.42.11 287 * Fixed validation error for `topicoptions.WithPartitionID` option of start topic writer. 288 289 ## v3.42.10 290 * Added exit from retryer if got grpc-error `Unauthenticated` on `discovery/ListEndpoints` call 291 292 ## v3.42.9 293 * Added `internal/xerrors.Errorf` error for wrap multiple errors and check them with `errors.Is` of `errors.As` 294 * Fixed corner cases of `internal/wait.Wait` 295 * Added check of port in connection string and error throw 296 * Fixed bug with initialization of connection pool before apply static credentials 297 * Refactored of applying grpc dial options with defaults 298 * Added `trace.Driver.{OnBalancerDialEntrypoint,OnBalancerClusterDiscoveryAttempt}` trace events 299 * Fixed compilation of package `internal/xresolver` with `google.golang.org/grpc@v1.53` 300 * Fixed returning `io.EOF` on `rows.Next` and `rows.NextResultSet` 301 * Added wrapping of errors from unary and stream results 302 * Added error throw on `database/sql.Conn.BeginTx()`, `*sql.Tx.ExecContext` and `*sql.Tx.QueryContext` if query mode is not `ydb.DataQueryMode` 303 * Added test for `database/sql` scan-query 304 305 ## v3.42.8 306 * Fixed `internal/scheme/helpers/IsDirectoryExists(..)` recursive bug 307 308 ## v3.42.7 309 * Fixed `sugar.IsTableExists` with recursive check directory exists 310 * Added `sugar.IsDirectoryExists` 311 * Changed type of `table/options.IndexType` for type checks 312 * Added constants `table/options.IndexTypeGlobal` and `table/options.IndexTypeGlobalAsync` 313 * Added `table/options.IndexDescription.Type` field with `table/options.IndexType` type 314 315 ## v3.42.6 316 * Implemented `driver.RowsColumnTypeDatabaseTypeName` interface in `internal/xsql.rows` struct 317 * Extended `internal/xsql.conn` struct with methods for getting `YDB` metadata 318 * Added `scheme.Client` to `internal/xsql.connection` interface 319 * Added `helpers` package with method for checking existence of table, refactored `sugar.IsTableExists()` 320 * Added checks for nil option to all opts range loops 321 * Moved content of package `internal/ctxlabels` into `internal/xcontext` 322 * Implemented `GRPCStatus` method in `internal/xerrors/transportError` 323 * Added different implementations of stacktrace error for grpc errors and other 324 * Dropped `internal/xnet` package as useless 325 * Fixed default grpc dial options 326 * Replaced single connection for discovery repeater into connection which creates each time for discovery request 327 * Fixed retry of cluster discovery on initialization 328 * Fixed dial timeout processing 329 330 ## v3.42.5 331 * Fixed closing of `database/sql` connection (aka `YDB` session) 332 * Made `session.Close()` as `nop` for idled session 333 * Implemented goroutine for closing idle connection in `database/sql` driver 334 * Separated errors of commit from other reader and to expired session 335 * Fixed wrapping error in `internal/balancer/Balancer.wrapCall()` 336 337 ## v3.42.4 338 * Added `ydb.WithDisableServerBalancer()` database/sql connector option 339 340 ## v3.42.3 341 * Added `credentials.NewStaticCredentials()` static credentials constructor 342 * Changed `internal/credentials.NewStaticCredentials()` signature and behaviour for create grpc connection on each call to auth service 343 * Downgrade `google.golang.org/grpc` to `v1.49.0` 344 345 ## v3.42.2 346 * Added `trace.Details.Details()` method for use external detailer 347 348 ## v3.42.1 349 * Fixed lazy transaction example for `godoc` 350 351 ## v3.42.0 352 * Added retry policy options for topics: `topic/topicoptions.WithReaderCheckRetryErrorFunction`, `topic/topicoptions.WithReaderStartTimeout`, `topic/topicoptions.WithWriterCheckRetryErrorFunction`, `topic/topicoptions.WithWriterStartTimeout` 353 * Refactored `internal/conn` middlewares 354 * Added `trace.tableSessionInfo.LastUsage()` method for get last usage timestamp 355 * Reverted `tx.WithCommit()` changes for fix unstable behaviour of lazy transactions 356 * Added `options.WithCommit()` option for execute query with auto-commit flag 357 * Removed `trace.TableTransactionExecuteStartInfo.KeepInCache` field as redundant 358 359 ## v3.41.0 360 * Added option for set interval of auth token update in topic streams 361 * Supported internal allocator in `{session,statement}.Execute` for decrease memory usage 362 * Fixed typo in `topic/README.md` 363 * Upgraded `ydb-go-genproto` dependency 364 * Fixed duplicating of traces in `table.Client.Do()` call 365 * Supported `table.Transaction.WithCommit()` method for execute query and auto-commit after 366 * Added `DataColumns` to `table.options.IndexDescription` 367 * Added `scheme.EntryColumnStore` and `scheme.EntryColumnColumn` entry types 368 * Added `table.options.WithPartitioningBy(columns)` option 369 370 ## v3.40.1 371 * Added constructor of `options.TimeToLiveSettings` and fluent modifiers 372 373 ## v3.40.0 374 * Added `options.WithAddAttribute` and `options.WithDropAttribute` options for `session.AlterTable` request 375 * Added `options.WithAddIndex` and `options.WithDropIndex` options for `session.AlterTable` request 376 * Added return error while create topic writer with not equal producer id and message group id. 377 * Added package `meta` with methods about `YDB` metadata 378 * Added `meta.WithTrailerCallback(ctx, callback)` context modifier for attaching callback function which will be called on incoming metadata 379 * Added `meta.ConsumedUnits(metadata.MD)` method for getting consumed units from metadata 380 * Added `NestedCall` field to retry trace start infos for alarm on nested calls 381 * Added `topicoptions.WithWriterTrace` option for attach tracer into separated writer 382 * Added `sugar.IsTableExists()` helper for check existence of table 383 384 ## v3.39.0 385 * Removed message level partitioning from experimental topic API. It is unavailable on server side yet. 386 * Supported `NullValue` type as received type from `YDB` 387 * Supported `types.SetValue` type 388 * Added `types.CastTo(types.Value, destination)` public method for cast `types.Value` to golang native type value destination 389 * Added `types.TupleItem(types.Value)`, `types.StructFields(types.Value)` and `types.DictValues(types.Value)` funcs (extractors of internal fields of tuple, struct and dict values) 390 * Added `types.Value.Yql()` func for getting values string representation as `YQL` literal 391 * Added `types.Type.Yql()` func for getting `YQL` representation of type 392 * Marked `table/types.WriteTypeStringTo` as deprecated 393 * Added `table/options.WithDataColumns` for supporting covering indexes 394 * Supported `balancer` query string parameter in `DSN` 395 * Fixed bug with scanning `YSON` value from result set 396 * Added certificate caching in `WithCertificatesFromFile` and `WithCertificatesFromPem` 397 398 ## v3.38.5 399 * Fixed bug from scan unexpected column name 400 401 ## v3.38.4 402 * Changed type of `table/options.{Create,Alter,Drop}TableOption` from func to interface 403 * Added implementations of `table/options.{Create,Alter,Drop}Option` 404 * Changed type of `topic/topicoptions.{Create,Alter,Drop}Option` from func to interface 405 * Added implementations of `topic/topicoptions.{Create,Alter}Option` 406 * Fix internal race-condition bugs in internal background worker 407 408 ## v3.38.3 409 * Added retries to initial discovering 410 411 ## v3.38.2 412 * Added missing `RetentionPeriod` parameter for topic description 413 * Fixed reconnect problem for topic client 414 * Added queue limit for sent messages and split large grpc messages while send to topic service 415 * Improved control plane for topic services: allow list topic in schema, read cdc feeds in table, retry on contol plane operations in topic client, full info in topic describe result 416 * Allowed writing zero messages to topic writer 417 418 ## v3.38.1 419 * Fixed deadlock with implicit usage of `internal.table.Client.internalPoolAsyncCloseSession` 420 421 ## v3.38.0 422 * Fixed commit errors for experimental topic reader 423 * Updated `ydb-go-genproto` dependency 424 * Added `table.WithSnapshotReadOnly()` `TxOption` for supporting `SnapshotReadOnly` transaction control 425 * Fixed bug in `db.Scripting()` queries (not checked operation results) 426 * Added `sugar.ToYdbParam(sql.NamedArg)` helper for converting `sql.NamedArg` to `table.ParameterOption` 427 * Changed type `table.ParameterOption` for getting name and value from `table.ParameterOption` instance 428 * Added topic writer experimental api with internal logger 429 430 ## v3.37.8 431 * Refactored the internal closing behaviour of table client 432 * Implemented the `sql.driver.Validator` interface 433 * Fixed update token for topic reader 434 * Marked sessions which creates from `database/sql` driver as supported server-side session balancing 435 436 ## v3.37.7 437 * Changed type of truncated result error from `StreamExecuteScanQuery` to retryable error 438 * Added closing sessions if node removed from discovery results 439 * Moved session status type from `table/options` package to `table` 440 * Changed session status source type from `uint32` to `string` alias 441 442 ## v3.37.6 443 * Added to balancer notifying mechanism for listening in table client event about removing some nodes and closing sessions on them 444 * Removed from public client interfaces `closer.Closer` (for exclude undefined behaviour on client-side) 445 446 ## v3.37.5 447 * Refactoring of `xsql` errors checking 448 449 ## v3.37.4 450 * Revert the marking of context errors as required to delete session 451 452 ## v3.37.3 453 * Fixed alter topic request - stop send empty setSupportedCodecs if customer not set them 454 * Marked the context errors as required to delete session 455 * Added log topic api reader for internal logger 456 457 ## v3.37.2 458 * Fixed nil pointer exception in topic reader if reconnect failed 459 460 ## v3.37.1 461 * Refactored the `xsql.badconn.Error` 462 463 ## v3.37.0 464 * Supported read-only `sql.LevelSnapshot` isolation with fake transaction and `OnlineReadOnly` transaction control (transient, while YDB clusters are not updated with true snapshot isolation mode) 465 * Supported the `*sql.Conn` as input type `ydb.Unwrap` helper for go's 1.18 466 467 ## v3.36.2 468 * Changed output of `sugar.GenerateDeclareSection` (added error as second result) 469 * Specified `sugar.GenerateDeclareSection` for `go1.18` (supports input types `*table.QueryParameters` `[]table.ParameterOption` or `[]sql.NamedArg`) 470 * Supports different go's primitive value types as arg of `sql.Named("name", value)` 471 * Added `database/sql` example and docs 472 473 ## v3.36.1 474 * Fixed `xsql.Rows` error checking 475 476 ## v3.36.0 477 * Changed behavior on `result.Err()` on truncated result (returns non-retryable error now, exclude `StreamExecuteScanQuery`) 478 * Added `ydb.WithIgnoreTruncated` option for disabling errors on truncated flag 479 * Added simple transaction control constructors `table.OnlineReadOnlyTxControl()` and `table.StaleReadOnlyTxControl()` 480 * Added transaction control specifier with context `ydb.WithTxControl` 481 * Added value constructors `types.BytesValue`, `types.BytesValueFromString`, `types.TextValue` 482 * Removed auto-prepending declare section on `xsql` queries 483 * Supports `time.Time` as type destination in `xsql` queries 484 * Defined default dial timeout (5 seconds) 485 486 ## v3.35.1 487 * Removed the deprecation warning for `ydb.WithSessionPoolIdleThreshold` option 488 489 ## v3.35.0 490 * Replaced internal table client background worker to plain wait group for control spawned goroutines 491 * Replaced internal table client background session keeper to internal background session garbage collector for idle sessions 492 * Extended the `DescribeTopicResult` struct 493 494 ## v3.34.2 495 * Added some description to error message from table pool get 496 * Moved implementation `sugar.GenerateDeclareSection` to `internal/table` 497 * Added transaction trace callbacks and internal logging with them 498 * Stored context from `BeginTx` to `internal/xsql` transaction 499 * Added automatically generated declare section to query text in `database/sql` usage 500 * Removed supports `sql.LevelSerializable` 501 * Added `retry.Do` helper for retry custom lambda with `database/sql` without transactions 502 * Removed `retry.WithTxOptions` option (only default isolation supports) 503 504 ## v3.34.1 505 * Changed `database/sql` driver `prepare` behaviour to `nop` with proxing call to conn exec/query with keep-in-cache flag 506 * Added metadata to `trace.Driver.OnInvoke` and `trace.Driver.OnNewStream` done events 507 508 ## v3.34.0 509 * Improved the `xsql` errors mapping to `driver.ErrBadConn` 510 * Extended `retry.DoTx` test for to achieve equivalence with `retry.Retry` behaviour 511 * Added `database/sql` events for tracing `database/sql` driver events 512 * Added internal logging for `database/sql` events 513 * Supports `YDB_LOG_DETAILS` environment variable for specify scope of log messages 514 * Removed support of `YDB_LOG_NO_COLOR` environment variable 515 * Changed default behaviour of internal logger to without coloring 516 * Fixed coloring (to true) with environment variable `YDB_LOG_SEVERITY_LEVEL` 517 * Added `ydb.WithStaticCredentials(user, password)` option for make static credentials 518 * Supports static credentials as part of connection string (dsn - data source name) 519 * Changed minimal supported version of go from 1.14 to 1.16 (required for jwt library) 520 521 522 ## v3.33.0 523 * Added `retry.DoTx` helper for retrying `database/sql` transactions 524 * Implemented `database/sql` driver over `ydb-go-sdk` 525 * Marked as deprecated `trace.Table.OnPoolSessionNew` and `trace.Table.OnPoolSessionClose` events 526 * Added `trace.Table.OnPoolSessionAdd` and `trace.Table.OnPoolSessionRemove` events 527 * Refactored session lifecycle in session pool for fix flaked `TestTable` 528 * Fixed deadlock in topicreader batcher, while add and read raw server messages 529 * Fixed bug in `db.Topic()` with send response to stop partition message 530 531 ## v3.32.1 532 * Fixed flaky TestTable 533 * Renamed topic events in `trace.Details` enum 534 535 ## v3.32.0 536 * Refactored `trace.Topic` (experimental) handlers 537 * Fixed signature and names of helpers in `topic/topicsugar` package 538 * Allowed parallel reading and committing topic messages 539 540 ## v3.31.0 541 * Extended the `ydb.Connection` interface with experimental `db.Topic()` client (control plane and reader API) 542 * Removed `ydb.RegisterParser()` function (was needed for `database/sql` driver outside `ydb-go-sdk` repository, necessity of `ydb.RegisterParser()` disappeared with implementation `database/sql` driver in same repository) 543 * Refactored `db.Table().CreateSession(ctx)` (maked retryable with internal create session timeout) 544 * Refactored `internal/table/client.createSession(ctx)` (got rid of unnecessary goroutine) 545 * Supported many user-agent records 546 547 ## v3.30.0 548 * Added `ydb.RegisterParser(name string, parser func(value string) []ydb.Option)` function for register parser of specified param name (supporting additional params in connection string) 549 * Fixed writing `KeepInCacheFlag` in table traces 550 551 ## v3.29.5 552 * Fixed regression of `table/types.WriteTypeStringTo` 553 554 ## v3.29.4 555 * Added touching of last updated timestamp in existing conns on stage of applying new endpoint list 556 557 ## v3.29.3 558 * Reverted `xerrors.IsTransportError(err)` behaviour for raw grpc errors to false 559 560 ## v3.29.2 561 * Enabled server-side session balancing for sessions created from internal session pool 562 * Removed unused public `meta.Meta` methods 563 * Renamed `meta.Meta.Meta(ctx)` public method to `meta.Meta.Context(ctx)` 564 * Reverted default balancer to `balancers.RandomChoice()` 565 566 ## v3.29.1 567 * Changed default balancer to `balancers.PreferLocalDC(balancers.RandomChoice())` 568 569 ## v3.29.0 570 * Refactored `internal/value` package for decrease CPU and memory workload with GC 571 * Added `table/types.Equal(lhs, rhs)` helper for check equal for two types 572 573 ## v3.28.3 574 * Fixed false-positive node pessimization on receiving from stream io.EOF 575 576 ## v3.28.2 577 * Upgraded dependencies (grpc, protobuf, testify) 578 579 ## v3.28.1 580 * Marked dial errors as retryable 581 * Supported node pessimization on dialing errors 582 * Marked error from `Invoke` and `NewStream` as retryable if request not sended to server 583 584 ## v3.28.0 585 * Added `sugar.GenerateDeclareSection()` helper for make declare section in `YQL` 586 * Added check when parameter name not started from `$` and automatically prepends it to name 587 * Refactored connection closing 588 589 ## v3.27.0 590 * Added internal experimental packages `internal/value/exp` and `internal/value/exp/allocator` with alternative value implementations with zero-allocation model 591 * Supported parsing of database name from connection string URI path 592 * Added `options.WithExecuteScanQueryStats` option 593 * Added to query stats plan and AST 594 * Changed behaviour of `result.Stats()` (if query result have no stats - returns `nil`) 595 * Added context cancel with specific error 596 * Added mutex wrapper for mutex, rwmutex for guarantee unlock and better show critical section 597 598 ## v3.26.10 599 * Fixed syntax mistake in `trace.TablePooStateChangeInfo` to `trace.TablePoolStateChangeInfo` 600 601 ## v3.26.9 602 * Fixed bug with convert ydb value to `time.Duration` in `result.Scan[WithDefaults,Named]()` 603 * Fixed bug with make ydb value from `time.Duration` in `types.IntervalValueFromDuration(d)` 604 * Marked `table/types.{IntervalValue,NullableIntervalValue}` as deprecated 605 606 ## v3.26.8 607 * Removed the processing of trailer metadata on stream calls 608 609 ## v3.26.7 610 * Updated the `ydb-go-genproto` dependency 611 612 ## v3.26.6 613 * Defined the `SerializableReadWrite` isolation level by default in `db.Table.DoTx(ctx, func(ctx, tx))` 614 * Updated the `ydb-go-genproto` dependency 615 616 ## v3.26.5 617 * Disabled the `KeepInCache` policy for queries without params 618 619 ## v3.26.4 620 * Updated the indirect dependency to `gopkg.in/yaml.v3` 621 622 ## v3.26.3 623 * Removed `Deprecated` mark from `table/session.Prepare` method 624 * Added comments for `table/session.Execute` method 625 626 ## v3.26.2 627 * Refactored of making permissions from scheme entry 628 629 ## v3.26.1 630 * Removed deprecated traces 631 632 ## v3.26.0 633 * Fixed data race on session stream queries 634 * Renamed `internal/router` package to `internal/balancer` for unambiguous understanding of package mission 635 * Implemented detection of local data-center with measuring tcp dial RTT 636 * Added `trace.Driver.OnBalancer{Init,Close,ChooseEndpoint,Update}` events 637 * Marked the driver cluster events as deprecated 638 * Simplified the balancing logic 639 640 ## v3.25.3 641 * Changed primary license to `Apache2.0` for auto-detect license 642 * Refactored `types.Struct` value creation 643 644 ## v3.25.2 645 * Fixed repeater initial force timeout from 500 to 0.5 second 646 647 ## v3.25.1 648 * Fixed bug with unexpected failing of call `Invoke` and `NewStream` on closed cluster 649 * Fixed bug with releasing `internal/conn/conn.Pool` in cluster 650 * Replaced interface `internal/conn/conn.Pool` to struct `internal/conn/conn.Pool` 651 652 ## v3.25.0 653 * Added `ydb.GRPCConn(ydb.Connection)` helper for connect to driver-unsupported YDB services 654 * Marked as deprecated `session.Prepare` callback 655 * Marked as deprecated `options.WithQueryCachePolicyKeepInCache` and `options.WithQueryCachePolicy` options 656 * Added `options.WithKeepInCache` option 657 * Enabled by default keep-in-cache policy for data queries 658 * Removed from `ydb.Connection` embedding of `grpc.ClientConnInterface` 659 * Fixed stopping of repeater 660 * Added log backoff between force repeater wake up's (from 500ms to 32s) 661 * Renamed `trace.DriverRepeaterTick{Start,Done}Info` to `trace.DriverRepeaterWakeUp{Start,Done}Info` 662 * Fixed unexpected `NullFlag` while parse nil `JSONDocument` value 663 * Removed `internal/conn/conn.streamUsages` and `internal/conn/conn.usages` (`internal/conn.conn` always touching last usage timestamp on API calls) 664 * Removed auto-reconnecting for broken conns 665 * Renamed `internal/database` package to `internal/router` for unambiguous understanding of package mission 666 * Refactored applying actual endpoints list after re-discovery (replaced diff-merge logic to swap cluster struct, cluster and balancers are immutable now) 667 * Added `trace.Driver.OnUnpessimizeNode` trace event 668 669 ## v3.24.2 670 * Changed default balancer to `RandomChoice()` because `PreferLocalDC()` balancer works incorrectly with DNS-balanced call `Discovery/ListEndpoints` 671 672 ## v3.24.1 673 * Refactored initialization of coordination, ratelimiter, scheme, scripting and table clients from `internal/lazy` package to each client initialization with `sync.Once` 674 * Removed `internal/lazy` package 675 * Added retry option `retry.WithStackTrace` for wrapping errors with stacktrace 676 677 ## v3.24.0 678 * Fixed re-opening case after close lazy-initialized clients 679 * Removed dependency of call context for initializing lazy table client 680 * Added `config.AutoRetry()` flag with `true` value by default. `config.AutoRetry()` affects how to errors handle in sub-clients calls. 681 * Added `config.WithNoAutoRetry` for disabling auto-retry on errors in sub-clients calls 682 * Refactored `internal/lazy` package (supported check `config.AutoRetry()`, removed all error wrappings with stacktrace) 683 684 ## v3.23.0 685 * Added `WithTLSConfig` option for redefine TLS config 686 * Added `sugar.LoadCertificatesFromFile` and `sugar.LoadCertificatesFromPem` helpers 687 688 ## v3.22.0 689 * Supported `json.Unmarshaler` type for scanning row to values 690 * Reimplemented `sugar.DSN` with `net/url` 691 692 ## v3.21.0 693 * Fixed gtrace tool generation code style bug with leading spaces 694 * Removed accounting load factor (unused field) in balancers 695 * Enabled by default anonymous credentials 696 * Enabled by default internal dns resolver 697 * Removed from defaults `grpc.WithBlock()` option 698 * Added `ydb.Open` method with required param connection string 699 * Marked `ydb.New` method as deprecated 700 * Removed package `dsn` 701 * Added `sugar.DSN` helper for make dsn (connection string) 702 * Refactored package `retry` (moved `retryBackoff` and `retryMode` implementations to `internal`) 703 * Refactored `config.Config` (remove interface `Config`, renamed private struct `config` to `Config`) 704 * Moved `discovery/config` to `internal/discovery/config` 705 * Moved `coordination/config` to `internal/coordination/config` 706 * Moved `scheme/config` to `internal/scheme/config` 707 * Moved `scripting/config` to `internal/scripting/config` 708 * Moved `table/config` to `internal/table/config` 709 * Moved `ratelimiter/config` to `internal/ratelimiter/config` 710 711 ## v3.20.2 712 * Fixed race condition on lazy clients first call 713 714 ## v3.20.1 715 * Fixed gofumpt linter issue on `credentials/credentials.go` 716 717 ## v3.20.0 718 * Added `table.DefaultTxControl()` transaction control creator with serializable read-write isolation mode and auto-commit 719 * Fixed passing nil query parameters 720 * Fixed locking of cluster during call `cluster.Get` 721 722 ## v3.19.1 723 * Simplified README.md for godoc documentation in pkg.go.dev 724 725 ## v3.19.0 726 * Added public package `dsn` for making piped data source name (connection string) 727 * Marked `ydb.WithEndpoint`, `ydb.WithDatabase`, `ydb.WithSecure`, `ydb.WithInsecure` options as deprecated 728 * Moved `ydb.RegisterParser` to package `dsn` 729 * Added version into all error and warn log messages 730 731 ## v3.18.5 732 * Fixed duplicating `WithPanicCallback` proxying to table config options 733 * Fixed comments for `xerrros.Is` and `xerrros.As` 734 735 ## v3.18.4 736 * Renamed internal packages `errors`, `net` and `resolver` to `xerrors`, `xnet` and `xresolver` for excluding ambiguous interpretation 737 * Renamed internal error wrapper `xerrors.New` to `xerrors.Wrap` 738 739 ## v3.18.3 740 * Added `WithPanicCallback` option to all service configs (discovery, coordination, ratelimiter, scheme, scripting, table) and auto-applying from `ydb.WithPanicCallback` 741 * Added panic recovering (if defined `ydb.WithPanicCallback` option) which thrown from retry operation 742 743 ## v3.18.2 744 * Refactored balancers (makes concurrent-safe) 745 * Excluded separate balancers lock from cluster 746 * Refactored `cluster.Cluster` interface (`Insert` and `Remove` returning nothing now) 747 * Replaced unsafe `cluster.close` boolean flag to `cluster.done` chan for listening close event 748 * Added internal checker `cluster.isClosed()` for check cluster state 749 * Extracted getting available conn from balancer to internal helper `cluster.get` (called inside `cluster.Get` as last effort) 750 * Added checking `conn.Conn` availability with `conn.Ping()` in prefer nodeID case 751 752 ## v3.18.1 753 * Added `conn.Ping(ctx)` method for check availability of `conn.Conn` 754 * Refactored `cluster.Cluster.Get(ctx)` to return only available connection (instead of returning any connection from balancer) 755 * Added address to error description thrown from `conn.take()` 756 * Renamed package `internal/db` to `internal/database` to exclude collisions with variable name `db` 757 758 ## v3.18.0 759 * Added `go1.18` to test matrix 760 * Added `ydb.WithOperationTimeout` and `ydb.WithOperationCancelAfter` context modifiers 761 762 ## v3.17.0 763 * Removed redundant `trace.With{Table,Driver,Retry}` and `trace.Context{Table,Driver,Retry}` funcs 764 * Moved `gtrace` tool from `./cmd/gtrace` to `./internal/cmd/gtrace` 765 * Refactored `gtrace` tool for generate `Compose` options 766 * Added panic recover on trace calls in `Compose` call step 767 * Added `trace.With{Discovery,Driver,Coordination,Ratelimiter,Table,Scheme,Scripting}PanicCallback` options 768 * Added `ydb.WithPanicCallback` option 769 770 ## v3.16.12 771 * Fixed bug with check acquire error over `ydb.IsRatelimiterAcquireError` 772 * Added full changelog link to github release description 773 774 ## v3.16.11 775 * Added stacktrace to errors with issues 776 777 ## v3.16.10 778 * Refactored `cluster.Cluster` and `balancer.Balancer` interfaces (removed `Update` method) 779 * Replaced `cluster.Update` with `cluster.Remove` and `cluster.Insert` calls 780 * Removed `trace.Driver.OnClusterUpdate` event 781 * Fixed bug with unexpected changing of local datacenter flag in endpoint 782 * Refactored errors wrapping (stackedError are not ydb error now, checking `errors.IsYdb(err)` with `errors.As` now) 783 * Wrapped retry operation errors with `errors.WithStackTrace(err)` 784 * Changed `trace.RetryLoopStartInfo.Context` type from `context.Context` to `*context.Context` 785 786 ## v3.16.9 787 * Refactored internal operation and transport errors 788 789 ## v3.16.8 790 * Added `config.ExcludeGRPCCodesForPessimization()` opttion for exclude some grpc codes from pessimization rules 791 * Refactored pessimization node conditions 792 * Added closing of ticker in `conn.Conn.connParker` 793 * Removed `config.WithSharedPool` and usages it 794 * Removed `conn.Creator` interface and usage it 795 * Removed unnecessary options append in `ydb.With` 796 797 ## v3.16.7 798 * Added closing `conn.Conn` if discovery client build failure 799 * Added wrapping errors with stacktrace 800 * Added discharging banned state of `conn.Conn` on `cluster.Update` step 801 802 ## v3.16.6 803 * Rollback moving `meta.Meta` call to conn exclusively from `internal/db` and `internal/discovery` 804 * Added `WithMeta()` discovery config option 805 806 ## v3.16.5 807 * Added `config.SharedPool()` setting and `config.WithSharedPool()` option 808 * Added management of shared pool flag on change dial timeout and credentials 809 * Removed explicit checks of conditions for use (or not) shared pool in `ydb.With()` 810 * Renamed `internal/db` interfaces 811 * Changed signature of `conn.Conn.Release` (added error as result) 812 813 ## v3.16.4 814 * Removed `WithMeta()` discovery config option 815 * Moved `meta.Meta` call to conn exclusively 816 817 ## v3.16.3 818 * Replaced panic on cluster close to error issues 819 820 ## v3.16.2 821 * Fixed bug in `types.Nullable()` 822 * Refactored package `meta` 823 * Removed explicit call meta in `db.New()` 824 825 ## v3.16.1 826 * Added `WithMeta()` discovery config option 827 * Fixed bug with credentials on discovery 828 829 ## v3.16.0 830 * Refactored internal dns-resolver 831 * Added option `config.WithInternalDNSResolver` for use internal dns-resolver and use resolved IP-address for dialing instead FQDN-address 832 833 ## v3.15.1 834 * Removed all conditions for trace retry errors 835 * Fixed background color of warn messages 836 * Added to log messages additional information about error, such as retryable (or not), delete session (or not), etc. 837 838 ## v3.15.0 839 * Added github action for publish release tags 840 * Refactored version constant (split to major, minor and patch constants) 841 * Added `table.types.Nullable{*}Value` helpers and `table.types.Nullable()` common helper 842 * Fixed race on check trailer on closing table grpc-stream 843 * Refactored traces (start and done struct names have prefix about trace) 844 * Replaced `errors.Error`, `errors.Errorf` and `errors.ErrorfSkip` to single `errors.WithStackTrace` 845 * Refactored table client options 846 * Declared and implemented interface `errors.isYdbError` for checking ybd/non-ydb errors 847 * Fixed double tracing table do events 848 * Added `retry.WithFastBackoff` and `retry.WithFastBackoff` options 849 * Refactored `table.CreateSession` as retry operation with options 850 * Moved log level from root of repository to package `log` 851 * Added details and address to transport error 852 * Fixed `recursive` param in `ratelimiter.ListResource` 853 * Added counting stream usages for exclude park connection if it in use 854 * Added `trace.Driver` events about change stream usage and `conn.Release()` call 855 856 ## 3.14.4 857 * Implemented auto-removing `conn.Conn` from `conn.Pool` with counting usages of `conn.Conn` 858 * Refactored naming of source files which declares service client interfaces 859 860 ## 3.14.3 861 * Fixed bug with update balancer element with nil handle 862 863 ## 3.14.2 864 * Refactored internal error wrapping (with file and line identification) - replaced `fmt.Printf("%w", err)` error wrapping to internal `stackError` 865 866 ## 3.14.1 867 * Added `balacers.CreateFromConfig` balancer creator 868 * Added `Create` method to interface `balancer.Balancer` 869 870 ## 3.14.0 871 * Added `balacers.FromConfig` balancer creator 872 873 ## 3.13.3 874 * Fixed linter issues 875 876 ## 3.13.2 877 * Fixed race with read/write pool conns on closing conn 878 879 ## 3.13.1 880 * Improved error messages 881 * Defended `cluster.balancer` with `sync.RWMutex` on `cluster.Insert`, `cluster.Update`, `cluster.Remove` and `cluster.Get` 882 * Excluded `Close` and `Park` methods from `conn.Conn` interface 883 * Fixed bug with `Multi` balancer `Create()` 884 * Improved `errors.IsTransportError` (check a few transport error codes instead check single transport error code) 885 * Improved `errors.Is` (check a few errors instead check single error) 886 * Refactored YDB errors checking API on client-side 887 * Implemented of scripting traces 888 889 ## 3.13.0 890 * Refactored `Connection` interface 891 * Removed `CustomOption` and taking client with custom options 892 * Removed `proxy` package 893 * Improved `db.With()` helper for child connections creation 894 * Set shared `conn.Pool` for all children `ydb.Connection` 895 * Fixed bug with `RoundRobin` and `RandomChoice` balancers `Create()` 896 897 ## 3.12.1 898 * Added `trace.Driver.OnConnPark` event 899 * Added `trace.Driver.OnConnClose` event 900 * Fixed bug with closing nil session in table retryer 901 * Restored repeater `Force` call on pessimize event 902 * Changed mutex type in `conn.Conn` from `sync.Mutex` to `sync.RWMutex` for exclude deadlocks 903 * Reverted applying empty `discovery` results to `cluster` 904 905 ## 3.12.0 906 * Added `balancers.Prefer` and `balancers.PreferWithFallback` constructors 907 908 ## 3.11.13 909 * Added `trace.Driver.OnRepeaterWakeUp` event 910 * Refactored package `repeater` 911 912 ## 3.11.12 913 * Added `trace.ClusterInsertDoneInfo.Inserted` boolean flag for notify about success of insert endpoint into balancer 914 * Added `trace.ClusterRemoveDoneInfo.Removed` boolean flag for notify about success of remove endpoint from balancer 915 916 ## 3.11.11 917 * Reverted usage of `math/rand` (instead `crypto/rand`) 918 919 ## 3.11.10 920 * Imported tool gtrace to `./cmd/gtrace` 921 * Changed minimal version of go from 1.13 to 1.14 922 923 ## 3.11.9 924 * Fixed composing of service traces 925 * Fixed end-call of `trace.Driver.OnConnStateChange` 926 927 ## 3.11.8 928 * Added `trace.EndpointInfo.LastUpdated()` timestamp 929 * Refactored `endpoint.Endpoint` (split to struct `endopint` and interface `Endpoint`) 930 * Returned safe-thread copy of `endpoint.Endpoint` to trace callbacks 931 * Added `endpoint.Endpoint.Touch()` func for refresh endpoint info 932 * Added `conn.conn.onClose` slice for call optional funcs on close step 933 * Added removing `conn.Conn` from `conn.Pool` on `conn.Conn.Close()` call 934 * Checked cluster close/empty on keeper goroutine 935 * Fixed `internal.errors.New` wrapping depth 936 * Added context flag for no wrapping operation results as error 937 * Refactored `trace.Driver` conn events 938 939 ## 3.11.7 940 * Removed internal alias-type `errors.IssuesIterator` 941 942 ## 3.11.6 943 * Changed `trace.GetCredentialsDoneInfo` token representation from bool to string 944 * Added `log.Secret` helper for mask token 945 946 ## 3.11.5 947 * Replaced meta in `proxyConnection.Invoke` and `proxyConnection.NewStream` 948 949 ## 3.11.4 950 * Refactored `internal/cluster.Cluster` (add option for notify about external lock, lock cluster for update cluster endpoints) 951 * Reverted `grpc.ClientConnInterface` API to `ydb.Connection` 952 953 ## 3.11.3 954 * Replaced in `table/types/compare_test.go` checking error by error message to checking with `errors.Is()` 955 956 ## 3.11.2 957 * Wrapped internal errors in retry operations 958 959 ## 3.11.1 960 * Excluded error wrapping from retry operations 961 962 ## 3.11.0 963 * Added `ydb.WithTLSSInsecureSkipVerify()` option 964 * Added `trace.Table.OnPoolStateChange` event 965 * Wrapped internal errors with print <func, file, line> 966 * Removed `trace.Table.OnPoolTake` event (unused) 967 * Refactored `trace.Details` matching by string pattern 968 * Added resolver trace callback 969 * Refactored initialization step of grpc dial options 970 * Added internal package `net` with `net.Conn` proxy object 971 * Fixed closing proxy clients 972 * Added `ydb.Connection.With(opts ...ydb.CustomOption)` for taking proxy `ydb.Connection` with some redefined options 973 * Added `ydb.MetaRequestType` and `ydb.MetaTraceID` aliases to internal `meta` package constants 974 * Added `ydb.WithCustomCredentials()` option 975 * Refactored `ydb.Ratelimiter().AcquireResource()` method (added options for defining type of acquire request) 976 * Removed single point to define operation mode params (each grpc-call with `OperationParams` must explicit define `OperationParams`) 977 * Removed defining operation params over context 978 * Removed `config.RequestTimeout` and `config.StreamTimeout` (each grpc-call must manage context instead define `config.RequestTimeout` or `config.StreamTimeout`) 979 * Added internal `OperationTimeout` and `OperationCancelAfter` to each client (ratelimiter, coordination, table, scheme, scripting, discovery) config. `OperationTimeout` and `OperationCancelAfter` config params defined from root config 980 981 ## 3.10.0 982 * Extended `trace.Details` constants for support per-service events 983 * Added `trace.Discovery` struct for traces discovery events 984 * Added `trace.Ratelimiter`, `trace.Coordination`, `trace.Scripting`, `trace.Scheme` stubs (will be implements in the future) 985 * Added `ratelimiter/config`, `coordination/config`, `scripting/config`, `scheme/config`, `discovery/config` packages for specify per-service configs 986 * Removed `trace.Driver.OnDiscovery` callback (moved to `trace.Discovery`) 987 * Refactored initialization step (firstly makes discovery client) 988 * Removed `internal/lazy.Discovery` (discovery client always initialized) 989 * Fixed `trace.Table` event structs 990 * Refactored grpc options for define dns-balancing configuration 991 * Refactored `retry.Retry` signature (added `retry.WithID`, `retry.WithTrace` and `retry.WithIdempotent` opt-in args, required param `isIdempotentOperation` removed) 992 * Refactored package `internal/repeater` 993 994 ## 3.9.4 995 * Fixed data race on closing session pool 996 997 ## 3.9.3 998 * Fixed busy loop on call internal logger with external logger implementation of `log.Logger` 999 1000 ## 3.9.2 1001 * Fixed `WithDiscoveryInterval()` option with negative argument (must use `SingleConn` balancer) 1002 1003 ## 3.9.1 1004 * Added `WithMinTLSVersion` option 1005 1006 ## 3.9.0 1007 * Removed `ydb.EndpointDatabase`, `ydb.ConnectionString` and `ydb.MustConnectionString` helpers 1008 * Removed `ydb.ConnectParams` struct and `ydb.WithConnectParams` option creator 1009 * Added internal package `dsn` for register external parsers and parse connection string 1010 * Added `ydb.RegisterParser` method for registering external parser of connection string 1011 1012 ## 3.8.12 1013 * Unwrap sub-tests called as `t.Run(...)` in integration tests 1014 * Updated `grpc` dependency (from `v1.38.0` to `v1.43.0`) 1015 * Updated `protobuf` dependency (from `v1.26.0` to `v1.27.1`) 1016 * Added internal retryers into `lazy.Ratelimiter` 1017 * Added internal retryers into `lazy.Coordination` 1018 * Added internal retryers into `lazy.Discovery` 1019 * Added internal retryers into `lazy.Scheme` 1020 * Added internal retryers into `lazy.Scripting` 1021 * Added internal retryer into `lazy.Table.CreateSession` 1022 1023 ## 3.8.11 1024 * Fixed version 1025 1026 ## 3.8.10 1027 * Fixed misspell linter issue 1028 1029 ## 3.8.9 1030 * Removed debug print to log 1031 1032 ## 3.8.8 1033 * Refactored session shutdown test 1034 1035 ## 3.8.7 1036 * Ignored session shutdown test if no defined `YDB_SHUTDOWN_URLS` environment variable 1037 1038 ## 3.8.6 1039 * Added `ydb.WithInsecure()` option 1040 1041 ## 3.8.5 1042 * Fixed version 1043 1044 ## 3.8.4 1045 * Fixed syntax error in `CHANGELOG.md` 1046 1047 ## 3.8.3 1048 * Fixed `CHANGELOG.md` 1049 1050 ## 3.8.2 1051 * Updated `github.com/ydb-platform/ydb-go-genproto` 1052 1053 ## 3.8.1 1054 * Fixed `trace.Table.OnPoolDoTx` - added `Idempotent` flag to `trace.PoolDoTxStartInfo` 1055 1056 ## 3.8.0 1057 * Added `table.result.Result.ScanNamed()` scan function 1058 * Changed connection secure to `true` by default 1059 * Renamed public package `balancer` to `balancers` (this package contains only constructors of balancers) 1060 * Moved interfaces from package `internal/balancer/ibalancer` to `internal/balancer` 1061 * Added `NextResultSetErr()` func for select next result set and return error 1062 * Added package `table/result/indexed` with interfaces `indexed.Required`, `indexed.Optional`, `indexed.RequiredOrOptional` 1063 * Replaced abstract `interface{}` in `Scan` to `indexed.RequiredOrOptional` 1064 * Replaced abstract `interface{}` in `ScanWithDefaults` to `indexed.Required` 1065 * Replaced `trace.Table.OnPoolRetry` callback to `trace.Table.OnPoolDo` and `trace.Table.OnPoolDoTx` callbacks 1066 * Supports server hint `session-close` for gracefully shutdown session 1067 1068 ## 3.7.2 1069 * Retry remove directory in `sugar.RemoveRecursive()` for retryable error 1070 1071 ## 3.7.1 1072 * Fixed panic on `result.Reset(nil)` 1073 1074 ## 3.7.0 1075 * Replaced `Option` to `CustomOption` on `Connection` interface methods 1076 * Implements `WithCustom[Token,Database]` options for redefine database and token 1077 * Removed experimental `balancer.PreferEndpoints[WithFallback][RegEx]` balancers 1078 * Supported connections `TTL` with `Option` `WithConnectionTTL` 1079 * Remove unnecessary `WithFastDial` option (lazy connections are always fast inserts into cluster) 1080 * Added `Scripting` service client with API methods `Execute()`, `StreamExecute()` and `Explain()` 1081 * Added `String()` method to `table.types.Type` interface 1082 * Added `With[Custom]UserAgent()` `Option` and `CustomOption` constructors 1083 * Refactored `log.Logger` interface and internal implementation 1084 * Added `retry.RetryableError()` for returns user-defined error which must be retryed 1085 * Renamed internal type `internal.errors.OperationCompleted` to `internal.errors.OperationStatus` 1086 * Added `String()` method to `table.KeyRange` and `table.Value` types 1087 * Replaced creation of goroutine on each stream call to explicit call stream.Recv() on NextResultSet() 1088 1089 ## 3.6.2 1090 * Refactored table retry helpers 1091 * Added new `PreferLocations[WithFallback][RegEx]` balancers 1092 * Added `trace.Details.String()` and `trace.Details.Strings()` helpers 1093 * Added `trace.DetailsFromString(s)` and `trace.DetailsFromStrings(s)` helper 1094 1095 ## 3.6.1 1096 * Switched closing cluster after closing all sub-services 1097 * Added windows and macOS runtimes to unit and integration tests 1098 1099 ## 3.6.0 1100 * Added `config/balancer` package with popular balancers 1101 * Added new `PreferEndpoints[WithFallback][RegEx]` balancers 1102 * Removed `config.BalancerConfig` struct 1103 * Refactored internal packages (tree to flat, split balancers to different packages) 1104 * Moved a taking conn to start of `conn.Invoke` /` conn.NewStream` for applying timeouts to alive conn instead lazy conn (previous logic applied timeouts to all request including dialing on lazy conn) 1105 1106 ## 3.5.4 1107 * Added auto-close stream result on end of stream 1108 1109 ## 3.5.3 1110 * Changed `Logger` interface for support custom loggers 1111 * Added public type `LoggerOption` for proxies to internal `logger.Option` 1112 * Fixed deadlock on table stream requests 1113 1114 ## 3.5.2 1115 * Fixed data race on closing table result 1116 * Added custom dns-resolver to grpc options for use dns-balancing with round_robin balancing policy 1117 * Wrapped with `recover()` system panic on getting system certificates pool 1118 * Added linters and fixed issues from them 1119 * Changed API of `sugar` package 1120 1121 ## 3.5.1 1122 * Added system certificates for `darwin` system 1123 * Fixed `table.StreamResult` finishing 1124 * Fixes `sugar.MakePath()` 1125 * Added helper `ydb.MergeOptions()` for merge several `ydb.Option` to single `ydb.Option` 1126 1127 ## 3.5.0 1128 * Added `ClosabelSession` interface which extends `Session` interface and provide `Close` method 1129 * Added `CreateSession` method into `table.Client` interface 1130 * Added `Context` field into `trace.Driver.Net{Dial,Read,Write,Close}StartInfo` structs 1131 * Added `Address` field into `trace.Driver.DiscoveryStartInfo` struct 1132 * Improved logger options (provide err and out writers, provide external logger) 1133 * Renamed package `table.resultset` to `table.result` 1134 * Added `trace.Driver.{OnInit,OnClose}` events 1135 * Changed unit/integration tests running 1136 * Fixed/added YDB error checkers 1137 * Dropped `ydb.WithDriverConfigOptions` (duplicate of `ydb.With`) 1138 * Fixed freeze on closing driver 1139 * Fixed `CGO` race on `Darwin` system when driver tried to expand tilde on certificates path 1140 * Removed `EnsurePathExists` and `CleanupDatabase` from API of `scheme.Client` 1141 * Added helpers `MakePath` and `CleanPath` to root of package `ydb-go-sdk` 1142 * Removed call `types.Scanner.UnmarshalYDB()` inside `scanner.setDefaults()` 1143 * Added `DoTx()` API method into `table.Client` 1144 * Added `String()` method into `ConnectParams` for serialize params to connection string 1145 * Added early exit from Rollback for committed transaction 1146 * Moved `HasNextResultSet()` method from `Result` interface to common `result` interface. It provides access to `HasNextResultSet()` on both result interfaces (unary and stream results) 1147 * Added public credentials constructors `credentials.NewAnonymousCredentials()` and `credentials.NewAccessTokenCredentials(token)` 1148 1149 ## 3.4.4 1150 * Prefer `ydb.table.types.Scanner` scanner implementation over `sql.Scanner`, when both available. 1151 1152 ## 3.4.3 1153 * Forced `round_robin` grpc load balancing instead default `pick_first` 1154 * Added checker `IsTransportErrorCancelled` 1155 1156 ## 3.4.2 1157 * Simplified `Is{Transport,Operation}Error` 1158 * Added `IsYdbError` helper 1159 1160 ## 3.4.1 1161 * Fixed retry reaction on operation error NotFound (non-retryable now) 1162 1163 ## 3.4.0 1164 * Fixed logic bug in `trace.Table.ExecuteDataQuery{Start,Done}Info` 1165 1166 ## 3.3.3 1167 * Cleared repeater context for discovery goroutine 1168 * Fixed type of `trace.Details` 1169 1170 ## 3.3.2 1171 * Added `table.options.WithPartitioningSettings` 1172 1173 ## 3.3.1 1174 * Added `trace.DriverConnEvents` constant 1175 1176 ## 3.3.0 1177 * Stored node ID into `endpoint.Endpoint` struct 1178 * Simplified <Host,Port> in `endpoint.Endpoint` to single fqdn Address 1179 * On table session requests now preferred the endpoint by `ID` extracted from session `ID`. If 1180 endpoint by `ID` not found - using the endpoint from balancer 1181 * Upgraded internal logger for print colored messages 1182 1183 ## 3.2.7 1184 * Fixed compare endpoints func 1185 1186 ## 3.2.6 1187 * Reverted `NodeID` as key for link between session and endpoint because yandex-cloud YDB 1188 installation not supported `Endpoint.ID` entity 1189 1190 ## 3.2.5 1191 * Dropped endpoint.Addr entity as unused. After change link type between session and endpoint 1192 to NodeID endpoint.Addr became unnecessary for internal logic of driver 1193 * Enabled integration test table pool health 1194 * Fixed race on session stream requests 1195 1196 ## 3.2.4 1197 * Returned context error when context is done on `session.StreamExecuteScanQuery` 1198 and `session.StreamReadTable` 1199 1200 ## 3.2.3 1201 * Fixed bug of interpret tilda in path of certificates file 1202 * Added chapter to `README.md` about ecosystem of debug tools over `ydb-go-sdk` 1203 1204 ## 3.2.2 1205 * Fixed result type of `RawValue.String` (ydb string compatible) 1206 * Fixed scans ydb types into string and slice byte receivers 1207 1208 ## 3.2.1 1209 * Upgraded dependencies 1210 * Added `WithEndpoint` and `WithDatabase` Option constructors 1211 1212 ## 3.2.0 1213 * added package `log` with interface `log.Logger` 1214 * implements `trace.Driver` and `trace.Table` with `log.Logger` 1215 * added internal leveled logger which implement interface `log.Logger` 1216 * supported environment variable `YDB_LOG_SEVERITY_LEVEL` 1217 * changed name of the field `RetryAttempts` to` Attempts` in the structure `trace.PoolGetDoneInfo`. 1218 This change reduces back compatibility, but there are no external uses of v3 sdk, so this change is 1219 fine. We are sorry if this change broke your code 1220 1221 ## 3.1.0 1222 * published scheme Client interface 1223 1224 ## 3.0.1 1225 * refactored integration tests 1226 * fixed table retry trace calls 1227 1228 ## 3.0.0 1229 * Refactored sources for splitting public interfaces and internal 1230 implementation for core changes in the future without change major version 1231 * Refactored of transport level of driver - now we use grpc code generation by stock `protoc-gen-go` instead internal protoc codegen. New API provide operate from codegen grpc-clients with driver as a single grpc client connection. But driver hide inside self a pool of grpc connections to different cluster endpoints YDB. All communications with YDB (base services includes to driver: table, discovery, coordiantion and ratelimiter) provides stock codegen grpc-clients now. 1232 * Much changed API of driver for easy usage. 1233 * Dropped package `ydbsql` (moved to external project) 1234 * Extracted yandex-cloud authentication to external project 1235 * Extracted examples to external project 1236 * Changed of traces API for next usage in jaeger и prometheus 1237 * Dropped old APIs marked as `deprecated` 1238 * Added integration tests with docker ydb container 1239 * Changed table session and endpoint link type from string address to integer NodeID 1240 1241 ## 2.11.0 1242 * Added possibility to override `x-ydb-database` metadata value 1243 1244 ## 2.10.9 1245 * Fixed context cancellation inside repeater loop 1246 1247 ## 2.10.8 1248 * Fixed data race on cluster get/pessimize 1249 1250 ## 2.10.7 1251 * Dropped internal cluster connections tracker 1252 * Switched initial connect to all endpoints after discovery to lazy connect 1253 * Added reconnect for broken conns 1254 1255 ## 2.10.6 1256 * Thrown context without deadline into discovery goroutine 1257 * Added `Address` param to `DiscoveryStartInfo` struct 1258 * Forced `round_bobin` grpc load balancing config instead default `pick_first` 1259 * Fixed applying driver trace from context in `connect.New` 1260 * Excluded using session pool usage for create/take sessions in `database/sql` 1261 driver implementation. Package `ydbsql` with `database/sql` driver implementation 1262 used direct `CreateSession` table client call in the best effort loop 1263 1264 ## 2.10.5 1265 * Fixed panic when ready conns is zero 1266 1267 ## 2.10.4 1268 * Initialized repeater permanently regardless of the value `DriverConfig.DiscoveryInterval` 1269 This change allow forcing re-discovery depends on cluster state 1270 1271 ## 2.10.3 1272 * Returned context error when context is done on `StreamExecuteScanQuery` 1273 1274 ## 2.10.2 1275 * Fixed `mapBadSessionError()` in `ydbsql` package 1276 1277 ## 2.10.1 1278 * Fixed race on `ydbsql` concurrent connect. This hotfix only for v2 version 1279 1280 ## 2.10.0 1281 * Added `GlobalAsyncIndex` implementation of index interface 1282 1283 ## 2.9.6 1284 * Replaced `<session, endpoint>` link type from raw conn to plain endpoint address 1285 * Moved checking linked endpoint from `driver.{Call,StreamRead}` to `cluster.Get` 1286 * Added pessimization endpoint code for `driver.StreamRead` if transport error received 1287 * Setted transport error `Cancelled` as needs to remove session from pool 1288 * Deprecated connection use policy (used auto policy) 1289 * Fixed goroutines leak on StreamRead call 1290 * Fixed force re-discover on receive error after 1 second 1291 * Added timeout to context in `cluster.Get` if context deadline not defined 1292 1293 ## 2.9.5 1294 * Renamed context idempotent operation flag 1295 1296 ## 2.9.4 1297 * Forced cancelled transport error as retriable (only idempotent operations) 1298 * Renamed some internal retry mode types 1299 1300 ## 2.9.3 1301 * Forced grpc keep-alive PermitWithoutStream parameter to true 1302 1303 ## 2.9.2 1304 * Added errors without panic 1305 1306 ## 2.9.1 1307 * Added check nil grpc.ClientConn connection 1308 * Processed nil connection error in keeper loop 1309 1310 ## 2.9.0 1311 * Added RawValue and supported ydb.Scanner in Scan 1312 1313 ## 2.8.0 1314 * Added NextResultSet for both streaming and non-streaming operations 1315 1316 ## 2.7.0 1317 * Dropped busy checker logic 1318 * Refactoring of `RetryMode`, `RetryChecker` and `Retryer` 1319 * Added fast/slow retry logic 1320 * Supported context param for retry operation with no idempotent errors 1321 * Added secondary indexes info to table describing method 1322 1323 ## 2.6.1 1324 * fix panic on lazy put to full pool 1325 1326 ## 2.6.0 1327 * Exported `SessionProvider.CloseSession` func 1328 * Implements by default async closing session and putting busy 1329 session into pool 1330 * Added some session pool trace funcs for execution control of 1331 goroutines in tests 1332 * Switched internal session pool boolean field closed from atomic 1333 usage to mutex-locked usage 1334 1335 ## 2.5.7 1336 * Added panic on double scan per row 1337 1338 ## 2.5.6 1339 * Supported nil and time conventions for scanner 1340 1341 ## 2.5.5 1342 * Reverted adds async sessionGet and opDo into `table.Retry`. 1343 * Added `sessionClose()` func into `SessionProvider` interface. 1344 1345 ## 2.5.4 1346 * Remove ready queue from session pool 1347 1348 ## 2.5.3 1349 * Fix put session into pool 1350 1351 ## 2.5.2 1352 * Fix panic on operate with result scanner 1353 1354 ## 2.5.1 1355 * Fix lock on write to chan in case when context is done 1356 1357 ## 2.5.0 1358 * Added `ScanRaw` for scan results as struct, list, tuple, map 1359 * Created `RawScanner` interface in order to generate method With 1360 1361 ## 2.4.1 1362 * Fixed deadlock in the session pool 1363 1364 ## 2.4.0 1365 * Added new scanner API. 1366 * Fixed dualism of interpret data (default values were deprecated for optional values) 1367 1368 ## 2.3.3 1369 * Fixed `internal/stats/series.go` (index out of range) 1370 * Optimized rotate buckets in the `Series` 1371 1372 ## 2.3.2 1373 * Moved `api/wrap.go` to root for next replacement api package to external genproto 1374 1375 ## 2.3.1 1376 * Correct session pool tests 1377 * Fixed conditions with KeepAliveMinSize and `IdleKeepAliveThreshold` 1378 1379 ## 2.3.0 1380 * Added credentials connect options: 1381 - `connect.WithAccessTokenCredentials(accessToken)` 1382 - `connect.WithAnonymousCredentials()` 1383 - `connect.WithMetadataCredentials(ctx)` 1384 - `connect.WithServiceAccountKeyFileCredentiials(serviceAccountKeyFile)` 1385 * Added auth examples: 1386 - `example/auth/environ` 1387 - `example/auth/access_token_credentials` 1388 - `example/auth/anonymous_credentials` 1389 - `example/auth/metadata_credentials` 1390 - `example/auth/service_account_credentials` 1391 1392 ## 2.2.1 1393 * Fixed returning error from `table.StreamExecuteScanQuery` 1394 1395 ## 2.2.0 1396 * Supported loading certs from file using `YDB_SSL_ROOT_CERTIFICATES_FILE` environment variable 1397 1398 ## 2.1.0 1399 * Fixed erasing session from pool if session keep-alive count great then `IdleKeepAliveThreshold` 1400 * Add major session pool config params as `connect.WithSessionPool*()` options 1401 1402 ## 2.0.3 1403 * Added panic for wrong `NextSet`/`NextStreamSet` call 1404 1405 ## 2.0.2 1406 * Fixed infinite keep alive session on transport errors `Cancelled` and `DeadlineExceeded` 1407 1408 ## 2.0.1 1409 * Fixed parser of connection string 1410 * Fixed `EnsurePathExists` and `CleanupDatabase` methods 1411 * Fixed `basic_example_v1` 1412 * Renamed example cli flag `-link=connectionString` to `-ydb=connectionString` for connection string to YDB 1413 * Added `-connect-timeout` flag to example cli 1414 * Fixed some linter issues 1415 1416 ## 2.0.0 1417 * Renamed package ydbx to connect. New usage semantic: `connect.New()` instead `ydbx.Connect()` 1418 * Added `healthcheck` example 1419 * Fixed all examples with usage connect package 1420 * Dropped `example/internal/ydbutil` package 1421 * Simplified API of Traces - replace all pairs start/done to single handler with closure. 1422 1423 ## 1.5.2 1424 * Fixed `WithYdbCA` at nil certPool case 1425 1426 ## 1.5.1 1427 * Fixed package name of `ydbx` 1428 1429 ## 1.5.0 1430 * Added `ydbx` package 1431 1432 ## 1.4.1 1433 * Fixed `fmt.Errorf` error wrapping and some linter issues 1434 1435 ## 1.4.0 1436 * Added helper for create credentials from environ 1437 * Added anonymous credentials 1438 * Move YDB Certificate Authority from auth/iam package to root package. YDB CA need to dial with 1439 dedicated YDB and not need to dial with IAM. YDB CA automatically added to all grpc calling 1440 1441 ## 1.3.0 1442 * Added `Compose` method to traces 1443 1444 ## 1.2.0 1445 * Load YDB certificates by default with TLS connection 1446 1447 ## 1.1.0 1448 * Support scan-query method in `ydbsql` (database/sql API) 1449 1450 ## 1.0.7 1451 * Use `github.com/golang-jwt/jwt` instead of `github.com/dgrijalva/jwt-go` 1452 1453 ## 1.0.6 1454 * Append (if not exits) SYNC Operation mode on table calls: *Session, *DataQuery, *Transaction, KeepAlive 1455 1456 ## 1.0.5 1457 * Remove unused ContextDeadlineMapping driver config (always used default value) 1458 * Simplify operation params logic 1459 * Append (if not exits) SYNC Operation mode on ExecuteDataQuery call 1460 1461 ## 1.0.4 1462 * Fixed timeout and cancellation setting for YDB operations 1463 * Introduced possibility to use `ContextDeadlineNoMapping` once again 1464 1465 ## 1.0.3 1466 * Negative `table.Client.MaxQueryCacheSize` will disable a client query cache now 1467 * Refactoring of `meta.go` for simple adding in the future new headers to requests 1468 * Added support `x-ydb-trace-id` as standard SDK header 1469 1470 ## 1.0.2 1471 * Implements smart lazy createSession for best control of create/delete session balance. This feature fix leakage of forgotten sessions on server-side 1472 * Some imporvements of session pool stats 1473 1474 ## 1.0.1 1475 * Fix closing sessions on PutBusy() 1476 * Force setting operation timeout from client context timeout (if this timeout less then default operation timeout) 1477 * Added helper `ydb.ContextWithoutDeadline` for clearing existing context from any deadlines 1478 1479 ## 1.0.0 1480 * SDK versioning switched to `Semantic Versioning 2.0.0` 1481 1482 ## 2021.04.1 1483 * Added `table.TimeToLiveSettings` struct and corresponding 1484 `table.WithTimeToLiveSettings`, `table.WithSetTimeToLive` 1485 and `table.WithDropTimeToLive` options. 1486 * Deprecated `table.TTLSettings` struct alongside with 1487 `table.WithTTL`, `table.WithSetTTL` and `table.WithDropTTL` functions. 1488 1489 ## 2021.03.2 1490 * Add Truncated flag support. 1491 1492 ## 2021.03.1 1493 * Fixed a race between `SessionPool.Put` and `SessionPool.Get`, where the latter 1494 would end up waiting forever for a session that is already in the pool. 1495 1496 ## 2021.02.1 1497 * Changed semantics of `table.Result.O...` methods (e.g., `OUTF8`): 1498 it will not fail if current item is non-optional primitive. 1499 1500 ## 2020.12.1 1501 * added CommitTx method, which returns QueryStats 1502 1503 ## 2020.11.4 1504 * re-implementation of ydb.Value comparison 1505 * fix basic examples 1506 1507 ## 2020.11.3 1508 * increase default and minimum `Dialer.KeepAlive` setting 1509 1510 ## 2020.11.2 1511 * added `ydbsql/connector` options to configure default list of `ExecDataQueryOption` 1512 1513 ## 2020.11.1 1514 * tune `grpc.Conn` behaviour 1515 1516 ## 2020.10.4 1517 * function to compare two ydb.Value 1518 1519 ## 2020.10.3 1520 * support scan query execution 1521 1522 ## 2020.10.2 1523 * add table Ttl options 1524 1525 ## 2020.10.1 1526 * added `KeyBloomFilter` support for `CreateTable`, `AlterTable` and `DescribeTalbe` 1527 * added `PartitioningSettings` support for `CreateTable`, `AlterTable` and `DescribeTalbe`. Move to `PartitioningSettings` object 1528 1529 ## 2020.09.3 1530 * add `FastDial` option to `DriverConfig`. 1531 This will allow `Dialer` to return `Driver` as soon as the 1st connection is ready. 1532 1533 ## 2020.09.2 1534 * parallelize endpoint operations 1535 1536 ## 2020.09.1 1537 * added `ProcessCPUTime` method to `QueryStats` 1538 * added `ReadReplicasSettings` support for `CreateTable`, `AlterTable` and `DescribeTalbe` 1539 * added `StorageSettings` support for `CreateTable`, `AlterTable` and `DescribeTalbe` 1540 1541 ## 2020.08.2 1542 * added `PartitioningSettings` support for `CreateTable` and `AlterTable` 1543 1544 ## 2020.08.1 1545 * added `CPUTime` and `AffectedShards` fields to `QueryPhase` struct 1546 * added `CompilationStats` statistics 1547 1548 ## 2020.07.7 1549 * support manage table attributes 1550 1551 ## 2020.07.6 1552 * support Column Families 1553 1554 ## 2020.07.5 1555 * support new types: DyNumber, JsonDocument 1556 1557 ## 2020.07.4 1558 * added coordination service 1559 * added rate_limiter service 1560 1561 ## 2020.07.3 1562 * made `api` wrapper for `internal` api subset 1563 1564 ## 2020.07.2 1565 * return TableStats and PartitionStats on DescribeTable request with options 1566 * added `ydbsql/connector` option to configure `DefaultTxControl` 1567 1568 ## 2020.07.1 1569 * support go modules tooling for ydbgen 1570 1571 ## 2020.06.2 1572 * refactored `InstanceServiceAccount`: refresh token in background. 1573 Also, will never produce error on creation 1574 * added getting `ydb.Credentials` examples 1575 1576 ## 2020.06.1 1577 1578 * exported internal `api.Wrap`/`api.Unwrap` methods and linked structures 1579 1580 ## 2020.04.5 1581 1582 * return on discovery only endpoints that match SSL status of driver 1583 1584 ## 2020.04.4 1585 1586 * added GCP metadata auth style with `InstanceServiceAccount` in `auth.iam` 1587 1588 ## 2020.04.3 1589 1590 * fix race in `auth.metadata` 1591 * fix races in test hooks 1592 1593 ## 2020.04.2 1594 1595 * set limits to grpc `MaxCallRecvMsgSize` and `MaxCallSendMsgSize` to 64MB 1596 * remove deprecated IAM (jwt) `Client` structure 1597 * fix panic on nil dereference while accessing optional fields of `IssueMessage` message 1598 1599 ## 2020.04.1 1600 1601 * added options to `DescribeTable` request 1602 * added `ydbsql/connector` options to configure `pool`s `KeepAliveBatchSize`, `KeepAliveTimeout`, `CreateSessionTimeout`, `DeleteTimeout` 1603 1604 ## 2020.03.2 1605 1606 * set session keepAlive period to 5 min - same as in other SDKs 1607 * fix panic on access to index after pool close 1608 1609 ## 2020.03.1 1610 1611 * added session pre-creation limit check in pool 1612 * added discovery trigger on more then half unhealthy transport connects 1613 * await transport connect only if no healthy connections left 1614 1615 ## 2020.02 1616 1617 * support cloud IAM (jwt) authorization from service account file 1618 * minimum version of Go become 1.13. Started support of new `errors` features