Skip to content

Latest commit

 

History

History
138 lines (101 loc) · 5.37 KB

File metadata and controls

138 lines (101 loc) · 5.37 KB

Changelog

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

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.2.1 - 2026-05-05

Added

  • Implement TableProvider::statistics() on DuckLakeTable, populating total_byte_size from per-file metadata cached on the table (#112). Mirrors DuckLake's ducklake_table_info aggregate exactly. Marked Precision::Inexact since the catalog tracks compressed parquet bytes while DataFusion documents total_byte_size as uncompressed Arrow output. Enables cost-based optimisation hints and provides a cheap surface for size-aware consumers (e.g. pre-flight ingest guards).

Changed

  • README: revise Discord community link (#111)

0.2.0 - 2026-04-22

Changed

  • Upgraded DataFusion 52.2→53, Arrow/Parquet 57→58, object_store 0.12→0.13 (#108)

Added

  • Discord community link in README (#105)

0.1.2 - 2026-04-13

Added

  • Allow dynamic linking against system libduckdb (#103)

Fixed

  • Update workflow actions for Node.js 24 compatibility (#100)
  • Pin 3rd party GitHub Actions to specific SHAs for supply-chain security (#97, #98, #99)

0.1.1 - 2026-04-01

Added

  • Support for list/array column types in DuckLake type mapping (#89)

Fixed

  • Missing end_snapshot IS NULL filter in Postgres and MySQL get_table_structure() (#88)

Changed

  • Updated transitive dependencies for security fixes (#94)

0.1.0 - 2026-03-11

Changed

  • Upgraded DataFusion to 52.2, Arrow/Parquet 57

Fixed

  • Validate catalog entity names to reject empty, control chars, and overlength
  • Normalize type aliases and add promotion rules for schema evolution
  • Validate record_count metadata to reject negative values
  • Reject zero-column table creation
  • Validate type strings in ColumnDef constructor to reject invalid types early

0.0.7 - 2026-02-24

Fixed

  • Validate numeric metadata casts (footer_size, file_size_bytes) to prevent silent truncation
  • Error on missing delete files instead of silent data corruption
  • Harden path resolver against path traversal, null bytes, encoded slash bypass, and unicode edge cases
  • Validate decimal type string parsing and precision/scale bounds
  • Handle empty catalogs where data directory does not yet exist
  • Reject column_id values exceeding i32 range

0.0.6 - 2026-02-13

Added

  • S3/ObjectStore write support for DuckLake catalogs

Changed

  • Upgraded DataFusion 50→51, Arrow/Parquet 56→57

0.0.5 - 2026-02-04

Added

  • Write support with streaming API for DuckLake catalogs (write feature flag)
  • SQL write support with INSERT INTO statements (write feature flag)
  • Schema evolution support
  • TPC-H and TPC-DS benchmarks comparing DuckDB-DuckLake vs DataFusion-DuckLake
  • Benchmark test workflow for CI

Changed

  • Reuse DuckDB connection for metadata queries instead of creating new connection per call (performance improvement)

0.0.4 - 2026-01-14

Added

  • SQLite metadata provider (metadata-sqlite feature flag)
  • Delete file CDC support in ducklake_table_changes() function

0.0.3 - 2026-01-09

Added

  • PostgreSQL metadata provider (metadata-postgres feature flag)
  • MySQL metadata provider (metadata-mysql feature flag)
  • Parquet Modular Encryption (PME) support for reading encrypted files (encryption feature flag)
  • ducklake_table_changes() table function returning actual row data from Parquet files
  • Feature flags for metadata providers
  • SQLLogicTest runner for DuckDB test files

Fixed

  • Empty table queries now return empty results instead of errors
  • Snapshot filtering for complete row deletion scenarios
  • Column renaming via Parquet field_id → DuckLake column_id mapping
  • Pinned rustc version to 1.92.0 for build stability

0.0.2 - 2025-12-17

Added

  • DuckDB-style table functions for catalog introspection:
    • ducklake_snapshots(), ducklake_schemas(), ducklake_tables()
    • ducklake_columns(), ducklake_data_files(), ducklake_delete_files()
  • Snapshot-pinned catalog ensuring consistent reads across a query session

0.0.1 - 2025-10-25

Initial release.

Added

  • Read-only SQL queries against DuckLake catalogs via DataFusion
  • Support for local filesystem and S3/MinIO object stores
  • Row-level delete support (merge-on-read)
  • Filter pushdown to Parquet
  • Query-scoped snapshot isolation