Skip to content

Apache Iceberg C++ 0.4.0

Latest

Choose a tag to compare

@wgtmac wgtmac released this 26 Sep 15:28
· 2 commits to main since this release
64dc66f

What's Changed

  • fix: make git run watch optional in release_rc.sh by @wgtmac in #720
  • feat(auth): implement SigV4 authentication for REST catalog by @plusplusjiajia in #616
  • Revert "chore: remove spdlog dependency (#459)" by @kamcheungting-db in #718
  • chore: bump version to 0.4.0-SNAPSHOT by @zhjwpku in #733
  • chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 by @dependabot[bot] in #734
  • chore(deps): bump actions/cache from 4.3.0 to 5.0.5 by @dependabot[bot] in #735
  • chore(deps): bump github/codeql-action from 4.36.0 to 4.36.2 by @dependabot[bot] in #736
  • feat(arrow): resolve S3-compatible schemes in ArrowFileSystemFileIO by @plusplusjiajia in #703
  • fix: fix URL encoding for non-ASCII bytes by @fallintoplace in #738
  • fix: allow avro date reads from plain int by @zhjwpku in #728
  • doc: add release history for release v0.3.0 by @zhjwpku in #743
  • feat(inspect): add base metadata table interface by @All-less in #607
  • refactor: harden FileCleanupStrategy with retry and parallel deletes by @shangxinli in #649
  • feat(logging): add LogLevel severity enum (1/6) by @kamcheungting-db in #722
  • feat: Collect Parquet NaN metrics during writes by @WZhuo in #727
  • fix: align rest table update serde with java/spec by @wgtmac in #716
  • fix: Handle unknown record_count better by @goel-skd in #747
  • fix: reject tag refs for main snapshot ref by @zhjwpku in #745
  • feat: implement RenameTable in InMemoryCatalog by @WZhuo in #742
  • feat(hive): vendor Hive Metastore IDL and generated bindings by @MisterRaindrop in #749
  • feat(rest): add session-aware REST catalog by @wgtmac in #750
  • fix(rest): reject empty namespace separators by @fallintoplace in #740
  • fix: validate truncate widths in utility entrypoints by @fallintoplace in #739
  • fix: cast to unsigned char in ASCII case conversion (1/2) by @goel-skd in #748
  • feat: implement purge support in DropTable for InMemoryCatalog and SqlCatalog by @WZhuo in #744
  • fix: fast append should not contain deleted file during retry process by @HuaHuaY in #706
  • fix: skip only null partition value rows in ParseDataFile by @WZhuo in #756
  • feat: add uniqueValue optimization for notEq/notIn in InclusiveMetricsEvaluator by @WZhuo in #754
  • fix: MergingSnapshotUpdate should not contain deleted file during retry by @HuaHuaY in #707
  • chore(ci): enable sccache for Meson Windows builds by @zhjwpku in #761
  • feat: add merge append by @zhjwpku in #699
  • fix(rest): avoid default catalog reference cycle by @lishuxu in #764
  • feat: add DeleteFiles update API by @manuzhang in #709
  • chore: make pre-commit and ci clang-format version consistent by @HuaHuaY in #769
  • feat: parallelize reading manifests by @HuaHuaY in #697
  • feat(logging): add Logger interface and default logger (2/6) by @kamcheungting-db in #723
  • ci: cache vcpkg packages on Windows builds by @abnobdoss in #766
  • ci: cancel superseded runs in remaining workflows by @abnobdoss in #767
  • CI: Check ASF action allowlist on every PR by @ebyhr in #772
  • fix(rest): align error handlers with Java implementation by @zhjwpku in #763
  • ci: cache the sccache directory across C++ test builds by @abnobdoss in #765
  • feat: add Iceberg v3 type definitions by @zhjwpku in #752
  • fix: allow historical sort orders with dropped fields by @zhjwpku in #762
  • feat: add StoredLength method to PositionOutputStream by @HuaHuaY in #773
  • ci: upgrade to ubuntu-26.04 image by @HuaHuaY in #771
  • feat: add row delta update by @manuzhang in #721
  • feat(update): add OverwriteFiles for overwrite snapshot commits by @lishuxu in #741
  • feat: parallelize update and scan processing by @HuaHuaY in #770
  • fix(update): clean up delete files from expired manifests by @wgtmac in #779
  • feat(logging): add CerrLogger std::cerr backend (3/6) by @kamcheungting-db in #724
  • feat(hive): add iceberg_hive library with bundled/system thrift dependency by @MisterRaindrop in #753
  • ci: cache cpp-linter build by @zhjwpku in #782
  • build: add Makefile clean target by @manuzhang in #784
  • chore: align table metadata JSON fixtures with Java by @zhjwpku in #781
  • refactor(serde): return Result from ToJson schema/type/metadata serializers by @huan233usc in #785
  • feat(rest): parse storage-credentials and bind a per-table FileIO from vended credentials by @plusplusjiajia in #719
  • fix: invalidate table scan schema cache by @fallintoplace in #758
  • chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #789
  • build: silence benign MSVC C4251/C4275 dll-interface warnings by @abnobdoss in #768
  • ci: key Windows sccache cache on MSVC version by @abnobdoss in #787
  • chore(deps): bump zizmorcore/zizmor-action from 0.5.6 to 0.5.7 by @dependabot[bot] in #788
  • feat(schema): represent, serialize and validate v3 column default values (1/4) by @huan233usc in #746
  • feat: parallelize writing manifests by @HuaHuaY in #778
  • fix(scan): reject missing column stats fields by @fallintoplace in #759
  • feat: write snapshot v3 row lineage fields at top level by @wgtmac in #791
  • feat: implement RewriteFiles operation by @WZhuo in #751
  • feat: Support UUID values across row and file IO by @zhjwpku in #790
  • feat: add ArrowRowBuilder for materializing Arrow batches by @WZhuo in #780
  • feat: retry stale v3 snapshot row-lineage validation by @wgtmac in #794
  • fix: use correct API in merge append test by @zhjwpku in #797
  • test: refactor minimal metadata selection in update tests by @zhjwpku in #798
  • feat(parquet): apply column default values when reading missing fields (2/4) by @huan233usc in #792
  • ci: scope push trigger to main to drop redundant PR runs by @abnobdoss in #802
  • chore(deps): bump actions/setup-python from 6.2.0 to 6.3.0 by @dependabot[bot] in #813
  • chore(deps): bump actions/cache from 5.0.5 to 6.1.0 by @dependabot[bot] in #814
  • chore(deps): bump actions/cache/restore from 5.0.5 to 6.1.0 by @dependabot[bot] in #815
  • chore(deps): bump actions/cache/save from 5.0.5 to 6.1.0 by @dependabot[bot] in #816
  • refactor: move typed arrow Append helpers to ArrowRowBuilder by @WZhuo in #821
  • build: scope warnings-as-error to project targets, not FetchContent subprojects by @yadavay-amzn in #819
  • Infra: Group github/codeql-action bumps into a single dependabot PR by @ebyhr in #826
  • feat: make ToLower Unicode-aware via utf8proc by @goel-skd in #760
  • fix: generate public API docs correctly by @zhjwpku in #804
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #827
  • fix: return error for reserved property keys in UpdateProperties::Set() by @WZhuo in #817
  • feat: support v3 column default values in UpdateSchema (3/4) by @huan233usc in #793
  • ci: add RelWithDebInfo build and fix free-nonheap-object error by @zhjwpku in #812
  • refactor: use decimal high and low for Arrow scalar by @zhjwpku in #803
  • build: add benchmark build scaffolding by @timothyw553 in #825
  • build: enable clang-tidy misc-include-cleaner for include hygiene by @yadavay-amzn in #820
  • ci: retry build dir cleanup on Windows by @abnobdoss in #807
  • ci: build Windows test leg in Debug by @abnobdoss in #806
  • feat(puffin): support deletion-vector-v1 blob read/write by @zhaoxuan1994 in #777
  • fix: use kLegacyPartitionDataIdStart as partition field ID baseline by @WZhuo in #832
  • feat: MergingSnapshotUpdate merges multiple DVs by @HuaHuaY in #708
  • chore: update ASF GitHub collaborators by @wgtmac in #830
  • feat: read v3 row lineage metadata columns by @wgtmac in #822
  • ci: enable ASF Copilot code review by @wgtmac in #833
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #835
  • build: move GTest and Google Benchmark setup into IcebergThirdpartyToolchain by @LuciferYang in #836
  • fix: reject non-finite floating-point default values by @huan233usc in #810
  • feat(logging): add logging macros (4/6) by @kamcheungting-db in #725
  • fix: validate transform parameters in metadata by @fallintoplace in #757
  • ci: check for duplicate pull requests by @manuzhang in #837
  • ci: replace cpp-linter-action with cpp-linter CLI by @LuciferYang in #838
  • ci: share sccache setup across workflows by @abnobdoss in #811
  • fix: compare transform function parameters by @WZhuo in #840
  • ci: scope pull request checks to relevant paths by @manuzhang in #839
  • feat(hive): add HmsClient connection lifecycle and URI parsing by @MisterRaindrop in #796
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #848
  • chore(deps): bump zizmorcore/zizmor-action from 0.5.7 to 0.6.0 by @dependabot[bot] in #849
  • chore(deps): bump actions/cache/restore from 5.0.5 to 6.1.0 by @dependabot[bot] in #850
  • chore(deps): bump actions/cache/save from 5.0.5 to 6.1.0 by @dependabot[bot] in #851
  • chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0 by @dependabot[bot] in #852
  • fix: detect system Thrift in CONFIG mode by @abnobdoss in #855
  • fix: validate decimal default fits the field precision by @huan233usc in #809
  • chore: upgrade arrow to 25.0.0 by @HuaHuaY in #858
  • fix: guard equality delete bounds against missing fields by @LuciferYang in #857
  • feat: add ReplacePartitions core class (PR1 of 2 for #637) by @shangxinli in #776
  • feat: metrics integration for commit and scan by @evindj in #701
  • chore(ci): Update ASF allowlist check action dependency to track versioned releases by @kevinjqliu in #863
  • fix: order -NaN below +NaN in Literal comparison by @LuciferYang in #861
  • feat(avro): apply column default values when reading missing fields by @huan233usc in #800
  • fix: reject malformed commit property integers by @fallintoplace in #843
  • chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #866
  • chore(deps): bump zizmorcore/zizmor-action from 0.6.0 to 0.6.1 by @dependabot[bot] in #865
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #864
  • fix(arrow): release schema after conversion failure by @WZhuo in #862
  • test: complete v3 row lineage test coverage by @wgtmac in #869
  • INFRA: Use PR titles for squash commits by @kevinjqliu in #870
  • feat(expression): cast numeric literals to decimal type by @huan233usc in #805
  • chore: upgrade nanoarrow from 0.8.0 to 0.9.0 by @HuaHuaY in #871
  • ci: enable Copilot draft reviews and skip unrelated checks by @manuzhang in #886
  • test: verify MergingSnapshotUpdate commit reports by @manuzhang in #884
  • chore(deps): bump mozilla-actions/sccache-action from 0.0.10 to 0.0.11 by @dependabot[bot] in #883
  • chore(deps): bump zizmorcore/zizmor-action from 0.6.1 to 0.6.2 by @dependabot[bot] in #882
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #881
  • test: cover write, evolve and read back of a defaulted column end to end by @huan233usc in #874
  • feat(logging): add spdlog backend behind ICEBERG_SPDLOG (5/6) by @kamcheungting-db in #726
  • fix: reject out-of-range integers when parsing JSON literals by @LuciferYang in #878
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #888
  • feat(io): add ResolvingFileIO to resolve FileIO by location scheme and forward vended credentials by @plusplusjiajia in #828
  • feat: add v3 geometry and geography support by @wgtmac in #880
  • refactor(io): make FileIO resolution registry-driven by @wgtmac in #889
  • refactor: protect merging snapshot update hooks by @manuzhang in #885
  • fix: parse boolean properties case-insensitively by @fallintoplace in #847
  • feat: add lru cache by @HuaHuaY in #891
  • feat(logging): add Loggers registry (6/6) by @kamcheungting-db in #737
  • fix: reject malformed metadata file versions by @fallintoplace in #846
  • feat(rest): support OAuth2 token exchange sessions by @lishuxu in #867
  • test(io): stop probing the EC2 metadata service in S3 tests by @plusplusjiajia in #897
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #895
  • feat(io): restore the oss scheme with a round trip test and docs by @plusplusjiajia in #893
  • refactor: move Puffin & DV support into core iceberg library by @wgtmac in #900
  • chore: add support for stale PR workflow by @HuaHuaY in #901
  • fix: reject malformed Arrow field IDs by @fallintoplace in #845
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #903
  • fix(cmake): generate version.h under PROJECT_BINARY_DIR to support add_subdirectory() builds by @Angelia-Wang in #906
  • chore(deps): bump mkdocs-material from 9.6.22 to 9.7.7 by @dependabot[bot] in #908
  • feat: add fallible iterator utility by @manuzhang in #905
  • fix: correct mismatched class and struct declarations by @zhjwpku in #911
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #922
  • chore(deps): bump zizmorcore/zizmor-action from 0.6.2 to 0.6.3 by @dependabot[bot] in #923
  • chore(deps): bump apache/skywalking-eyes from 0.8.0 to 0.9.0 by @dependabot[bot] in #924
  • feat: expose ReplacePartitions on Table and Transaction by @shangxinli in #925
  • build: install the public headers under iceberg/catalog by @plusplusjiajia in #927
  • feat(parquet): support reading list columns as Arrow large_list by @rahulsmahadev in #714
  • chore(test): run REST fixture's SQLite backend in WAL mode by @kevinjqliu in #931
  • ci: use Quay and GitHub releases for MinIO by @smaheshwar-pltr in #933
  • refactor: expose snapshot utilities in a public header by @zhjwpku in #932
  • fix: track batch position delete references by @u70b3 in #842
  • fix(manifest): write null instead of empty list/map for unset optional DataFile fields by @Angelia-Wang in #934
  • feat(inspect): implement streaming SnapshotsTable scans by @WZhuo in #801
  • feat: add lazy scan planning streams by @manuzhang in #873
  • build: remove Meson build support by @zhjwpku in #935
  • fix: make table updates retryable and cleanup-safe by @zhjwpku in #868
  • feat(logging): add transaction commit lifecycle logging by @kamcheungting-db in #890
  • docs: clarify contribution conventions for agents by @zhjwpku in #910
  • refactor: rename SnapshotCache to SnapshotReader by @zhjwpku in #945
  • chore(deps): bump the codeql-action group with 2 updates by @dependabot[bot] in #949
  • chore(deps): bump zizmorcore/zizmor-action from 0.6.3 to 0.6.4 by @dependabot[bot] in #950
  • fix(manifest): preserve snapshot ID inheritance semantics by @wgtmac in #947
  • fix: align boolean parsing with Iceberg Java by @manuzhang in #951
  • chore: prepare 0.4.0 release version by @manuzhang in #953
  • chore: bump avro to 209a373 to preserve adjust-to-utc on primitives by @manuzhang in #954

New Contributors

Full Changelog: v0.3.0...v0.4.0