- Support YDB_USER and YDB_PASSWORD in the environment
- Retry SessionExpired in topic streams
- Make fail to create session log warn
- Fix GrpcWrapperAsyncIO.close for OpenTelemetry intercepted streams
- Fix possible race condition in topic common
- Fix discovery timeout
- Basic mypy support and extended typehints
- Drop compatibility with python 3.7
- Add protobuf 6 support
- Use session's node_id as preferred endpoint
- Fix attach stream finish logic
- Refactor session lifecycle
- Make DeadlineExceeded not retriable
- Allow rollback after TLI
- Make attach session error readable
- QuerySessionPool: Cancel queue.get in case of cancel of parent coroutine
- Added SysView scheme type
- Coordination Service experimental support
- Update default keepalive time to 10s
- Make commit_offset call retryable
- Make use_all_nodes True by default
- Fix crash on discovery thread
- Support Arrow format of result sets in QueryService
- Fixed bug with param read_from for topic reader
- Refactor auth token refresh logic
- Fix getattr propagation to wrapped stream
- Fix is_view, is_resource_pool for SchemeEntryType
- Fix stream error handling
- Add method explain for explain query to QuerySession and QuerySessionPool classes
- Fix: convert gRPC stream termination to YDB errors in async query client
- Remove default timeout from topic stream
- Wrap prepare execute request exceptions to ydb.Error
- Add async methods to QuerySessionPool
- Add default grpc keepalive value
- Add detailed debug logs to topic instances
- Ability to create Date type from datetime
- Add index to resultsets
- Rename indexes feature
- Add disable_discovery option to DriverConfig
- Support Date32, Datetime64, Timestamp64, Interval64
- Reader without Consumer
- CommitOffset feature
- QueryService stats support
- Add missing fields to tablestats
- Return topic destructors
- Transactions between topics and tables
- Remove QuerySessionPool desctuctors
- Add consumer_stats to PublicConsumer
- Fix async query pool acquire race condition
- Fix dynconfig proto usage
- protobuf 5 compatibility
- Fix empty result sets from stream
- Partition autosplit feature
- Transactional retryer
- Ignore AttributeError in ydb/import_client.py
- add missing scheme entry types
- Topic metadata feature
- Fix cancel logic during SessionPool.acquire
- Fix empty tx_id in tx meta
- Fix aio auth credentials
- Make created_at utc in topic writer
- Update protofiles
- Revert "Add backslash to database name if needed"
- Add backslash to database name if needed
- Fix attach session timeouts
- Refactor aio tableclient destructor
- Add an ability to pass custom event loop to QuerySessionPool
- Add missing ability to configure QueryClientSettings
- Fix table_client desctructor
- Fix table_client desctructor
- Hide session management for table client methods
- Add build method to QueryOnlineReadOnly mode
- Fix compatibility with arcadia
- Add an ability to use both driver config and driver args
- Added new way to create StaticCredentials
- Ability to batch messages in topic reader
- Implement max_messages on recieve_batch
- Added badge for API reference
- Remove experimental warn from query service
- Remove asyncio task names for python below 3.8
- Add data_columns support in TableIndex
- New autogenerated docs
- Add an ability to create async index
- Query Session Pool redesign
- SLO tests for query service
- Fix connection close mechanism
- Async implementation of Query Service SDK
- New basic example with Query Service SDK
- Query service client support
- Add dunder version to ydb package
- OAuth 2.0 token exchange. Allow multiple resource parameters in according to https://www.rfc-editor.org/rfc/rfc8693
- Added load OAuth 2.0 token exchange credentials provider from config file
- Moved grpc draft imports to draft folder
- Added alter topic method
- Fixed leak sessions on asyncio timeout
- Fixed missed parameter in internal stream_reader.close() - reader hungs up
- Added support ydb github repo with own auth protobuf
- Fixed error while read the account key from a file (release version)
- Fixed error while read the account key from a file
- Supported service account key from memory, additional to file path
- Added missing returns to time converters for topic options
- Fixed datetime timezone aware usage
- Fixed hungup topic reader on unknown codec
- fixed unexpected require requests module on import
- Implemented OAuth 2.0 Token Exchange credentials provider
- Added is_column_store to SchemeEntryType and SchemeEntry classes
yanked bad api release
yanked bad api release
- Fixed to handle deadline on topic stream in async driver.
- Added clients for draft.BaseDynamicConfig service
- Updated protobuf generated code
- Added ExternalError issue
- Added with_use_type_v3 to ExportToS3Settings
- Set 1 thread as default for encode/decode messages, was 4
- Added comments about calls encoders/decoders in parallel from multiply threads
- Fixed access to connection if connection cannot be found by node id
- Added functions for check column table type table of any type of scheme entry
- Add to public topic reader api: TopicReaderBatch, wait_message
- Added copy of locals() dicts at internals
- Added list type to converter from result to native type (fix problem with get list result in dbapi/sqlalchemy)
- Fixed use positional argument instead of named in WriterAsyncIO.del
- Fixed release buffer while read topic by one messages
- Fixed race condition between commit_with_ack and reconnect in topic writer
- Fixed handle stop partition request from server
- Fixed hang while write messages to closed driver
- Removed fixed version of aiohttp
- Fix keep DataQuery in local cache and set flag keep_in_cache for server
- Fix exception for convert sync to async iterator
- Fixed start many sync writers/readers in parallel
- Added support to set many topics and topic reader settings for read in one reader
- Added ydb.TopicWriterInitInfo, ydb.TopicWriteResult as public types
- Check possible of create init message on create reader (faster fail with some bad params)
- Raise exception for get session from stopped session pool
- Add extend path for ydb (allow install other packages with names in ydb namespace
- Fixed set keep_in_cache algorithm
- Fixed ydb.credentials_from_env_variables, now it will use Metadata credentials by default (instead of anonymous).
- Added return result for topic writer.write_with_ack
- Fixed bug with ModuleNotFoundError while import ydb
COMPLETE CHANGELOG FROM v2:
- Add api for topic service
BREAKING CHANGES:
- deny any action in transaction after commit/rollback (switch to old behaviour with ydb.global_allow_split_transactions(True))
- raise exception for truncated response by default (switch to old behavior with ydb.global_allow_truncated_result(True))
- drop support python 2
- Use anonymous credentials for auth by default instead of iam metadata (use ydb.driver.credentials_from_env_variables for creds by env var)
- Fixed commit for sync reader
- Group messages while send to server
- Prevent stop topic client by GC while reader/writer alived
- Added flush reader commits on reader close
- Fix stop executor in python 3.8
- Fix handle background errors
- Fixed global_allow_split_transactions
- Added reader.receive_message() method
- Swap topic_path and consumer arguments in topic_client.reader method
- fixed sqlalchemy get_columns method with not null columns
- fixed requirements.txt
- Add function for global revert broken behaviour: ydb.global_allow_truncated_result, ydb.global_allow_split_transactions
- Change argument names from deny_split_transactions to allow_split_transactions (with reverse value
- Fixed check retriable for idempotent error
- Reader codecs
- Read one message
- fixed sqlalchemy get_columns method with not null columns
- Fixed exception while create ResultSet with None table_settings
- BROKEN CHANGE: deny any action in transaction after commit/rollback
- BROKEN CHANGE: raise exception for truncated response by default
- Compatible protobaf detection for arcadia
- Add codecs support for topic writer
- BROKEN CHANGES: remove writer.write(mess1, mess2) variant, use list instead: writer.write([mess1, mess2])
- BROKEN CHANGES: change names of public method in topic client
- BROKEN CHANGES: rename parameter producer_and_message_group_id to producer_id
- producer_id is optional now
- Remove six package from code and dependencies (remove support python2)
- Use anonymous credentials by default instead of iam metadata (use ydb.driver.credentials_from_env_variables for creds by env var)
- Close grpc streams while closing readers/writers
- Add control plane operations for topic api: create, drop
- Add six package to requirements
- Initial implementation of topic reader
- Fix error of check retriable error for idempotent operations (error exist since 2.12.1)
- Add initial topic writer
- start 3.0 beta branch
- fixed sqlalchemy get_columns method with not null columns
- fixed use transaction object when commit with flag
- fix snapshot attribute in class _ResultSet
- fixed set version in ydb_version file
- fixed in to make compressed backups possible
- Add snapshot to read table responses
- Added functions for global change behaviour for compatible with future sdk version: ydb.global_allow_truncated_result and global_allow_split_transactions
- Flag for deny split transaction
- Add six package to requirements
- Fixed error while passing date parameter in execute
- Fix error of check retriable error for idempotent operations (error exist since 2.12.1)
- Supported
TYPE_UNSPECIFIEDitem type to scheme ls - Fixed error while request iam token with bad content type in metadata
- Fixed error message while get token from metadata with asyncio iam
- Add
SnapshotReadOnlytransaction mode support tosession.transaction
- Regenerate protobuf code from public api protos (some private protobufs was removed)
- Remove internal S3 client code
- removed unused experimental client from ydb python sdk.
- fixed double quoting issue in sqlalchemy
- fixed minor issue in SDK imports for Python 2.
- fixes in TxContext in ydb.aio module.
- support
with_native_interval_in_result_setsflag in the table client. - support
with_native_timestamp_in_result_setsflag in the table client.
- support query stats in scan query
- allow to refer endpoints by node id
- support null type in queries
- support session balancer feature
- add compression support to ydb sdk
- alias
kikimr.public.sdk.python.clientis deprecated. useimport ydbinstead. - alias
kikimr.public.apiis deprecated, useydb.public.apiinstead. - method
construct_credentials_from_environis now deprecated and will be removed in the future.
- override the default load balancing policy for discovery endpoint to the
round_robinpolicy.
- support session graceful shutdown protocol.
- speedup driver initialization and first driver.wait
- add methods to request
_apis.TableService.RenameTablescall - by now the call is disabled at the server side
- it will be enabled soon
- remove useless
from_bytesfor PY3 - improve performance of column parser
- fix bug with prepare in aio
- allow specifying column labels in group by in the sqlalchemy dialect
- add SEQUENCE to known schema types
- add
retry_operationtoaio.SessionPool
- ydb.aio supports retry operation helper.
- storage class support
- add async
SessionPoolsupport
- minor change in dbapi
- add asyncio support
- add some custom datatypes for sqlalchemy
- change error format for sqlalchemy
- add
ValueSinceUnixEpochModeSettingssupport toTtlSettings
- add default credentials constructor
- pass issues to dbapi errors
- allow custom user agent
- load YDB certificates by default
- allow to fail fast on driver wait
- disable client query cache by default
- support uuid type
- Support
store_sizein describe of table.
- Start initial changelog.