Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

2.0.14.1 (2026-04-12)

Changed

  • using new adbc-driver-vastdb package

2.0.14 (2026-02-24)

Added

  • Added pyarrow range support for up to 23.0.1

  • Fix vector api backwards compatibility

2.0.13 (2026-02-15)

Fixed

  • vast_protobuf import error

2.0.12 (2026-02-12)

Added

  • Support for loading column names only in Table.columns() and Table.reload_schema()

  • Support for configuration the page size for entities (schemas, tables, columns, etc…) pagination in Session()

  • Support specifying data_endpoints config for import files

2.0.11 (2026-02-05)

  • revert 2.0.7 and 2.0.8

2.0.10 (2026-02-05)

Added

  • Support for both Table.add_sorting_key and Schema.create_table to take a list of column names as a sorting key

Changed

  • Dead code was removed (topic functionallity) from internal module (_internal.py)

2.0.9 (2026-02-04)

Added

  • Blob expansion API added.

2.0.8 (2026-01-21)

Changed

  • populate _metadata._vector_index from list_tables response.

2.0.7 (2026-01-19)

Added

  • Vector Index table support (ORION-276190):

    • sorting_key_enabled field in TableInfo is now exclusive to Elysium tables (no longer true for vector index tables)

    • Vector index tables are now classified as TableType.Regular instead of TableType.Elysium

    • Requires VAST Cluster with ORION-276190 support

  • Vector Index metadata fields in TableInfo (conditioned on include_vector_index_metadata):

    • vector_index_enabled: boolean flag indicating vector index presence

    • vector_index_column_name: name of the column with vector index

    • vector_index_distance_metric: distance metric used (L2, COSINE, etc.)

    • vector_index_sql_function_name: SQL function name for distance calculation (e.g., “array_distance”)

2.0.6 (2026-01-19)

Added

  • Float16 (half-precision floating point) type support

    • Schema serialization for float16 columns with precision.half

    • Predicate literal handling for float16 values

    • Fixes ‘unsupported column type halffloat’ error when creating tables with float16 columns

[2.0.5] (2025-01-08)

Added

  • end-user impersonation for adbc connection configurable via Session

2.0.4 (2025-01-06)

Changed

  • Fix race condition in select (get data) mechanism

2.0.3 (2025-11-25)

Added

  • Support for vastdb’s adbc driver

    • Session now gets an Optional[AdbcDriver]

    • AdbcDriver is created out of a local path to a driver .so (shared library) or a url

  • Vector Search capability

    • Table.vector_search - Approximate Top-N closest vectors

2.0.2 (2025-10-22)

Fixed

  • Get correct rows count and size in bytes when asking for a table projections

2.0.1 (2025-10-22)

Fixed

  • Performance improvement in query data flow - sending only required columns instead of entire schema

2.0.0 (2025-09-17)

BREAKING CHANGE

  • Removed properties Table.bucket and Table.schema

  • Removed properties Projection.bucket and Projection.schema

  • Removed official support for Python 3.9

  • Added hard requirement for pyarrow~=18.0

Added

  • ITable - partial VAST tables interface (no DDL)

  • TableMetadata - table metadata allowing for reuse / or refraining from loading bucket/schema/table metadata on every transaction

  • Transaction.table_from_metadata allows creating ITable from TableMetadata inside a transaction

    • This table is only for DQL and DML (query and manipulation)

  • Official support for Python 3.13

1.4.0 (2025-07-28)

Added

  • Support for inserting rows by columns

1.3.11 (2025-07-10)

Added

  • Support Tables with FixedSizeListArray of Numerics

Fixed

  • Table insert with no rows

  • Boolean predicates

  • List tables with pagination

  • Amount of threads used for parallel queries

1.3.10 (2025-05-11)

Added

  • Support limit on query data

  • Support for timestamp with timezone

Fixed

  • Don’t modify the user-passed config

  • Name the feature logger

1.3.9 (2025-04-22)

Fixed

  • Elysium-check validation

  • Fix logging level

Added

  • Support elysium new stats

  • Exposing sorting_done flag for Elysium tables (for other tables, sorting_done() will always return false)

1.3.8 (2025-03-31)

Fixed

  • Support InsufficientCapacity (fixes internal issue)

Added

  • Add server feature supported checks

  • Support zip import

  • Add split estimation for sorted tables

  • Support Update & Delete for Sorted Tables

  • Support Elysium DDL for the pysdk

Changed

  • Move vast_flatbuf under vastdb

1.3.7 (2024-12-23)

Fixed

  • Fix creating kafka schema before calling create table.

1.3.6 (2024-12-23)

Fixed

  • Fix missing api call.

1.3.5 (2024-12-16)

Added

  • Separated Kafka Topic specific APIs

1.3.4 (2024-12-11)

Added

  • Support predicate pushdown on unsigned integers

1.3.3 (2024-11-18)

Added

  • Detect non-VAST DB server responses

Fixed

  • Fetch table statistics when constructing a Table objects and accessing Table.stats

1.3.2 (2024-10-07)

Fixed

  • Fix broken links in https://vastdb-sdk.readthedocs.io

  • Document vastdb_rowid column

  • Document prefix match operator

1.3.1 (2024-09-10)

Fixed

  • Retry in case HEAD request fails

1.3.0 (2024-09-01)

Added

  • Support startswith pushdown over string columns

1.2.0 (2024-08-19)

Added

  • Allow listing tables’ names without fetching columns

1.1.2 (2024-08-19)

Fixed

  • Fix Table.update() when column names are not specified #66

1.1.1 (2024-08-11)

Fixed

  • Combine record batches when inserting pyarrow.Table

Changed

  • Don’t require boto3 for checking bucket existence

  • Improve documentation

1.1.0 (2024-07-25)

Fixed

  • Close internal sessions in select and import

Added

  • VastDB/Parquet performance benchmark harness

  • Support predicate pushdown over subfields

1.0.0 (2024-07-21)

Added

  • Add CLA (CONTRIBUTING.md)

  • Support setting HTTP timeouts

0.1.11 (2024-07-17)

Fixed

  • Revert timezone check to keep previous SDK behaviour

Added

  • Use Sphinx for building documentation

Changed

  • Defer imports to optimize initial import latency

0.1.10 (2024-07-09)

Fixed

  • Support responses with no record batches

  • Document supported Arrow data types

0.1.9 (2024-07-01)

Fixed

  • Don’t drop timezone information when creating a table

  • Clarify the catalog example

0.1.8 (2024-06-26)

Fixed

  • Allow retries also during query response parsing

  • Don’t retrieve stats during Table.select() if not needed

  • Log successful server-side file import

0.1.7 (2024-06-03)

Added

  • Retry idempotent requests in case of retriable errors

  • Allow setting Table.select() RPC queue priority

  • Send SDK version via Tabular RPC

  • Support external row IDs allocation

  • Document required VAST release

  • Add a helper function for defining a range of VIPs

Changed

  • Update ibis-framework dependency to 9.0.0

  • Refactor internal RPC client to support retries

  • Refactor request invocation and result handling

Fixed

  • Sort record batch according to internal row ID column for updates/deletes

  • Don’t use ListBuckets RPC to probe for server’s version

  • Don’t fail on an empty batch

  • Don’t use ‘us-east-1’ region name

Removed

  • Remove unused internal methods

0.1.6 (2024-05-23)

Added

  • Allow listing and querying Catalog snapshots

  • Support nested schemas

  • Use automatic split estimation

Fixed

  • Allow using specific semi-sorted projection (needs VAST 5.1+ release)

  • Add a client-side check for too large requests

0.1.5 (2024-05-16)

Added

  • Allow passing ssl_verify via Session c-tor

  • Retry requests.exceptions.ConnectionError

  • Document QueryConfig properties

  • Support “deferred” ibis predicates using Underscore (_) API

Fixed

  • Fix predicate pushdown when nested columns are present

  • Attach original traceback to MissingBucket exception

0.1.4 (2024-05-13)

Added

  • Resume Table.select() on HTTP 503 code

  • Allow pushing down True/False boolean literals

  • Support between predicate pushdown

  • Support inserting wide rows (larger than 5MB)

0.1.3 (2024-05-05)

Added

  • Document predicate pushdown support

  • Access imports’ table (for VAST 5.2+)

  • Support is_in predicate pushdown

  • Document table.py

Fixed

  • Freeze ibis dependency at 8.0.0

  • Support snapshot-based access

  • Optimize RecordBatch slicing

0.1.2 (2024-04-25)

Added

Fixed

  • Fix handling HTTPS endpoints #50

  • Optimize Table.select() performance

  • Use GET request to retrieve cluster version

  • Enable ruff preview mode

  • Make sure DuckDB integration fails gracefully when transaction is closed prematurely

Removed

  • Don’t return row IDs from Table.insert()

0.1.1 (2024-04-15)

Added

  • Support date & timestamp predicate pushdown #25

Fixed

  • Add missing requirements.txt file to released tarball #47

0.1.0 (2024-04-11)

Added

  • Transactions are implemented using context managers

  • Database entities are derived from a specific transaction

  • Predicate pushdown is using ibis-like expressions

  • Public SDK test suite

  • Internal CI with Python 3.9 - 3.12

  • Using ruff for linting and code formatting

  • Improved README.md with new API examples

Removed

  • Old SDK classes and methods are deprecated

0.0.5.3 (2024-03-24)

Added

  • Allow changing default max list_columns page size #43

Fixed

  • Fixing insert function to use the correct tx while listing columns #42

0.0.5.2 (2024-03-19)

Added

  • Support retrieving row IDs via VastdbApi.query() #31

Fixed

  • Fixed several functions that didn’t use the correct txid #30

  • Fix graceful cancellation for VastdbApi.query_iterator() #33

Removed

  • Remove vast_protobuf package and protobuf dependency #29

0.0.5.1 (2024-03-01)

Fixed

  • Support latest Python (3.11+) by not requiring too old dependencies. #16

0.0.5.0 (2024-02-25)

Added

  • Created a CHANGELOG

Fixed

  • Wait until all files are processed during import

  • Sync with internal api.py code

0.0.4.0 (2024-02-14)

Added

  • Allow creating a table using the schema of an existing Parquet file via create_table_from_parquet_schema()

  • Allow inserting RecordBatch into DB via insert()

Changed

  • Rename vastdb_api module to api

Fixed

  • Fix concurrent.futures import error