Skip to content

Apache Iceberg C++ 0.2.0

Latest

Choose a tag to compare

@liurenjie1024 liurenjie1024 released this 26 Jan 04:44
· 15 commits to main since this release
883a43f

What's Changed

  • chore: use new package name avro-cpp by @wgtmac in #208
  • fix: fix windows test ci by add fail-fast strategy label by @HeartLinked in #213
  • refactor: remove -isystem on local include header files by @HuaHuaY in #211
  • feat: support installed nlohmann-json and nanoarrow by @nullccxsy in #209
  • chore: enhance README with logo and badges by @wgtmac in #218
  • fix: address feedback from initial release by @wgtmac in #223
  • chore: bump project version to 0.2.0 by @HeartLinked in #224
  • feat: read data from FileScanTask as Arrow C Stream by @HeartLinked in #214
  • feat: add decimal value representation by @zhjwpku in #182
  • feat: add CRoaring dependency by @nullccxsy in #231
  • fix: disable CRoaring tests and microbenchmarks by @zhjwpku in #241
  • chore(deps): bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #220
  • chore(deps): bump actions/setup-python from 5 to 6 by @dependabot[bot] in #210
  • feat: lazy init for Schema and StructType by @nullccxsy in #227
  • feat: implement schema selection and projection methods by @nullccxsy in #207
  • feat: add Metadata method to Reader and its implementations by @nullccxsy in #235
  • refactor: use ICEBERG_CHECK where possible by @zhjwpku in #244
  • feat: add cpr dependency for rest catalog client by @HeartLinked in #236
  • feat: avro schema add sanitize field name by @MisterRaindrop in #190
  • feat: add version header generation support by @HeartLinked in #245
  • refactor: unify enum string conversion by @HeartLinked in #248
  • chore: Align LICENSE and NOTICE with ASF policy by @HeartLinked in #243
  • feat: add UUID representation by @zhjwpku in #242
  • refactor: Move test directory into src/iceberg tree by @WillAyd in #247
  • refactor: extract JSON utilities for code reuse by @HeartLinked in #249
  • feat: define table properties with default values by @wgtmac in #212
  • feat: add row-based immutable data structure by @wgtmac in #181
  • feat: scaffolding work for expression by @wgtmac in #177
  • refactor: Restructure catalog module by @HeartLinked in #230
  • feat: implement literal expressions with binary serialization support by @HeartLinked in #185
  • feat: Literal adapt Uuid representation by @zhjwpku in #253
  • feat: Implement Type Casting and toString for Literals by @HeartLinked in #206
  • feat: Add support for Meson build system by @WillAyd in #233
  • feat: update ci macOS version from 15 to 26 by @HuaHuaY in #259
  • chore(deps): bump actions/setup-python from 5 to 6 by @dependabot[bot] in #260
  • feat: implement manifest and manifest list writer adapter (cont'd) by @dongxiao1198 in #216
  • feat: add metadata updates and requirements interface by @gty404 in #257
  • fix: Handle null values in GetJsonValueXXX by @HeartLinked in #258
  • feat: write manifest avro metadata by @dongxiao1198 in #261
  • test: add more table metadata interop test by @wgtmac in #262
  • feat: support decimal literal and refactor transform utilities by @zhjwpku in #238
  • chore: remove fetch-depth: 0 of checkout action by @zhjwpku in #263
  • refactor: use decimal literal in manifest reader test by @zhjwpku in #264
  • feat: add initial documentation website by @nullccxsy in #237
  • refactor: package once_flag and LazyInitWithCallOnce by @HuaHuaY in #266
  • fix: missing | in docs.yml by @wgtmac in #269
  • test: construct temporal values from structural inputs by @zhjwpku in #267
  • feat: add literal cast to date by @zhjwpku in #270
  • refactor(test): use full path for test header includes by @HeartLinked in #274
  • chore: some warning worth fixing by @zhjwpku in #276
  • feat: add basic REST Catalog request/response models by @HeartLinked in #272
  • feat: fix literal comparison operator by @zhjwpku in #275
  • feat: implement TableMetadataBuilder with AssignUUID by @gty404 in #268
  • chore(deps): bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #278
  • chore(deps): bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #277
  • feat: add not expression by @wgtmac in #279
  • feat: add json serde for REST Catalog request/response models by @HeartLinked in #251
  • feat:update apache arrow version to 22.0.0 by @HeartLinked in #288
  • feat: Add validation for AssertCurrentSchemaID by @shangxinli in #286
  • fix: result type of DayTransform should be date by @zhjwpku in #285
  • feat: implement all functions of bound predicates by @wgtmac in #280
  • refactor: use fluent api in the expressions factory and throw ExpressionError by @HeartLinked in #283
  • refactor: simplify test structure for rest catalog models by @wgtmac in #290
  • feat: add satisfies order for SortField/SortOrder and Transform by @zhjwpku in #284
  • feat: add config, error and validation for rest types by @HeartLinked in #292
  • refactor: use StructType instead of Schema for partition schema by @HeartLinked in #298
  • chore(deps): bump cpp-linter/cpp-linter-action from 2.15.0 to 2.16.6 by @dependabot[bot] in #282
  • feat: add SortOrder::Make and SortOrder::Validate by @zhjwpku in #300
  • test: add manifest list test cases by @wgtmac in #293
  • refactor: use fluent api in the predicate factory by @HeartLinked in #301
  • refactor: change PartitionSpec to be independent of Schema by @HeartLinked in #299
  • feat: clang-tidy checks private and protected member suffix by @HuaHuaY in #309
  • refactor: trivial improvements and minor fixes by @HeartLinked in #308
  • fix: correct clang-tidy HeaderFilterRegex to match Posix ERE by @HuaHuaY in #310
  • refactor: make SortOrder constructor private by @zhjwpku in #305
  • feat: implement validation for table update requirements by @shangxinli in #294
  • feat: add rename table interface to catalog by @lishuxu in #281
  • refactor: remove Validator and add Validate methods directly to rest models by @HeartLinked in #304
  • feat: make avro and parquet reader writer more configurable by @wgtmac in #315
  • feat: add devcontainer by @zhjwpku in #313
  • refactor: make PartitionSpec ctor private and add factory methods with validation by @HeartLinked in #316
  • chore(deps): bump actions/checkout from 5.0.0 to 5.0.1 by @dependabot[bot] in #325
  • feat: add expression visitors by @wgtmac in #311
  • feat: add eval support to bound term by @wgtmac in #320
  • infra: notify on github workflow failure by @kevinjqliu in #323
  • fix: shared library uses hidden visibility by default by @HuaHuaY in #338
  • feat: implement expression evaluator by @wgtmac in #327
  • chore(deps): bump actions/checkout from 5.0.1 to 6.0.0 by @dependabot[bot] in #339
  • chore: add support to customize download url of vendored dependencies by @Subham-KRLX in #319
  • feat: add partition summary and write added/existing/deleted entries to manifest writer by @zhjwpku in #317
  • feat: add PendingUpdate interface for table changes by @shangxinli in #334
  • refactor(test): reorganize table metadata test suite by @HeartLinked in #343
  • fix: macos ci warning ignore duplicate libraries by @HuaHuaY in #346
  • refactor: unify lazy init for table by @wgtmac in #344
  • feat: scaffolding work of rest catalog client by @HeartLinked in #296
  • fix: UnboundPredicateImpl::Make failed to check op type by @zhjwpku in #348
  • refactor: add final when class will not be inherited by @HuaHuaY in #356
  • refactor: use gcc-14 in ubuntu ci by @HuaHuaY in #355
  • feat: add aggregate expressions and evaluator by @SuKi2cn in #335
  • refactor: clean TableBuilder in catalog by @lishuxu in #366
  • fix: clang-tidy in cpplint should compile header files in C++23 by @HuaHuaY in #367
  • refactor: consolidate rest error response model by @wgtmac in #359
  • feat: implement struct like for partition values by @wgtmac in #354
  • refactor: make ConfigBase subclass constructors private by @HeartLinked in #368
  • refactor: add a manifest dir to hold all manifest related files by @zhjwpku in #372
  • infra: automatically delete head branches after merge by @kevinjqliu in #369
  • fix: BoundVisitor should accept Bound instead of BoundTerm by @wgtmac in #375
  • refactor: move type visitor classes to type_util by @HeartLinked in #347
  • chore: remove unnecessary manifest reader/writer test cases by @zhjwpku in #377
  • chore: remove pending_update_test by @WZhuo in #379
  • feat: Add error collection pattern to PendingUpdate by @shangxinli in #358
  • refactor(test): unify test resource by @wgtmac in #381
  • feat: implement table requirements by @HeartLinked in #380
  • feat: add inclusive metrics evaluator by @dongxiao1198 in #357
  • refactor: use std::ranges::to in ToUpper and ToLower by @zhjwpku in #382
  • feat: add transform project by @zhjwpku in #371
  • feat: add update table properties support by @WZhuo in #363
  • test: add rest catalog integration test by @HeartLinked in #361
  • feat: implement table requirement context by @HeartLinked in #385
  • feat: add sort order to table metadata builder by @HeartLinked in #345
  • feat: add Transform::ProjectStrict by @zhjwpku in #387
  • feat: add strict metrics evaluator by @dongxiao1198 in #383
  • chore(deps): bump actions/checkout from 6.0.0 to 6.0.1 by @dependabot[bot] in #384
  • refactor: use lock_guard instead of unique_lock when available by @HuaHuaY in #398
  • feat: add DataFile aggregate evaluation by @SuKi2cn in #400
  • feat: add residual evaluator by @zhjwpku in #402
  • feat: add manifest evaluator by @dongxiao1198 in #403
  • feat: implement REST catalog namespace operations by @HeartLinked in #404
  • feat: add projection evaluators for expression by @zhjwpku in #399
  • refactor: optimize with shared_lock/unique_lock for InMemoryCatalog by @WZhuo in #405
  • fix(doc): numbering error in README by @slfan1989 in #409
  • refactor: adapt table metadata to use table properties by @wgtmac in #407
  • chore(deps): bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #410
  • chore(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 by @dependabot[bot] in #411
  • feat: eliminate GenericDatum in Avro reader for performance by @shangxinli in #374
  • feat(rest): respect server-provided endpoints by @HeartLinked in #406
  • chore: disable timeout in meson test cases by @zhjwpku in #413
  • feat: implement InMemoryCatalog's UpdateTable by @WZhuo in #386
  • refactor: optimize Table accessors and TimePoint passing by @wgtmac in #414
  • refactor(rest): add equality operators to REST types by @HeartLinked in #422
  • chore: add readability-isolate-declaration to .clang-tidy by @HuaHuaY in #419
  • feat: implement transaction api by @wgtmac in #418
  • fix: dangling span capture in StructLikeAccessor by @HeartLinked in #423
  • feat(rest): implement create table by @HeartLinked in #417
  • chore: remove stale path in licenserc.yaml by @zhjwpku in #425
  • refactor: improve error collector by @wgtmac in #424
  • feat: manifest evaluator support build for row filter by @dongxiao1198 in #428
  • feat: add snapshot util by @zhjwpku in #420
  • fix: prevent double-commit in Transaction by @shangxinli in #427
  • fix: correct errors in update properties implementation by @HeartLinked in #429
  • feat: assign fresh field ids for new schema by @WZhuo in #430
  • feat(writer): support length() for both open and closed writers by @wgtmac in #433
  • refactor: move TableMetadataBuilder's methods into impl class by @WZhuo in #434
  • feat: add update sort order by @HeartLinked in #432
  • feat: enhance ManifestReader with projection and filtering support by @wgtmac in #431
  • refactor: simplify UpdateSortOrder::Apply() return type by @HeartLinked in #436
  • feat: update partition spec by @zhjwpku in #401
  • feat: add TableRequirement::Kind by @WZhuo in #439
  • chore: refactor some obvious non optimal coding style by @zhjwpku in #440
  • feat: add schema update to table metadata builder by @gty404 in #437
  • feat: implement delete file index by @wgtmac in #435
  • refactor: remove obsolete format string workaround by @shangxinli in #448
  • fix: make Avro reader buffer size configurable by @shangxinli in #447
  • feat: implement ValidateRedundantPartitions for PartitionSpec by @gty404 in #442
  • fix: correct grammar errors in schema.h comment by @shangxinli in #454
  • feat: InMemoryCatalog::CreateTable & StageCreateTable api by @WZhuo in #416
  • feat: add rolling manifest writer by @zhjwpku in #443
  • feat: add snapshot cached manifests by @zhjwpku in #444
  • feat: make schema id non-optional with default value by @gty404 in #449
  • chore: move kInvalidSnapshotId to iceberg/constants.h by @zhjwpku in #456
  • feat: add FileWriter base interface for data file writers by @shangxinli in #446
  • fix: add identifier-field-ids JSON serialization/deserialization by @shangxinli in #451
  • feat: implement direct Avro encoder for performance by @shangxinli in #445
  • chore: remove spdlog dependency by @zhjwpku in #459
  • refactor(avro): use polymorphism for reader/writer backends by @wgtmac in #458
  • fix: Validate identifier fields in Schema::Make by @WZhuo in #450
  • fix: make static_assert template-dependent in ByteSwap by @shangxinli in #464
  • fix: properly propagate errors in MetricsConfig validation by @shangxinli in #465
  • refactor: simplify avro test and use mock fs by @wgtmac in #462
  • feat: implement manifest group by @wgtmac in #455
  • feat: Add UpdateSchema interface skeleton by @gty404 in #460
  • refactor: use template function for manifest reader by @wgtmac in #461
  • chore: optimize windows ci by using sccache by @wgtmac in #466
  • feat(rest): implement load table and drop table by @HeartLinked in #438
  • refactor: split lazy initialized fields into dedicated cache classes by @zhjwpku in #477
  • fix: use /v1/config endpoint for catalog config by @plusplusjiajia in #481
  • fix(rest): use correct order to merge config by @plusplusjiajia in #483
  • refactor: change DataFile.partition_spec_id to be optional by @wgtmac in #480
  • feat: add support to read metadata columns by @wgtmac in #478
  • refactor: use common template function in manifest_reader.cc by @HuaHuaY in #469
  • feat(avro): support writing multiple blocks by @wgtmac in #470
  • refactor: replace Status::OK with more appropriate words. by @zhjwpku in #487
  • feat: add simple url encoder & decoder by @WZhuo in #457
  • rest: build resource paths from final config by @plusplusjiajia in #482
  • feat(rest): implement list table and update table by @HeartLinked in #484
  • feat(rest): implement stage-create table by @HeartLinked in #485
  • feat: extend table scan to support v2 deletes by @wgtmac in #489
  • feat: implement add column/delete column by @gty404 in #486
  • refactor: use remove_cvref_t instead of decay_t to get exact type by @HuaHuaY in #494
  • fix: YearTransform return years since 1970 by @WZhuo in #495
  • feat: impl PartitionSpec::PartitionPath by @WZhuo in #500
  • feat: Add factory functions for ManifestWriter and ManifestListWriter by @zhjwpku in #493
  • docs: Fix naming conventions documentation by @zhjwpku in #504
  • feat: impl metrics config by @WZhuo in #488
  • feat: add utility to print transformed value as human string by @WZhuo in #501
  • feat: implement location provider by @WZhuo in #467
  • feat: add snapshot update by @zhjwpku in #408
  • feat: implement reference visitor by @wgtmac in #491
  • chore: change return type of TimePointMsFromUnix* functions by @zhjwpku in #507
  • feat: expose location_provider interface for Table by @WZhuo in #506
  • feat: impl Transform::ToHumanString by @WZhuo in #505
  • chore: fix IsBoundVisitor to error on AlwaysTrue & AlwaysFalse by @zhjwpku in #503
  • feat: support expire snapshots by @dongxiao1198 in #490
  • feat: Add support for Arrow LargeListArray in Parquet data projection by @callmepandey in #510
  • feat: add tentative data & delete writer api by @shangxinli in #463
  • feat: implement update column by @gty404 in #498
  • feat: implement update location by @HeartLinked in #508
  • feat: add SnapshotSummaryBuilder by @zhjwpku in #515
  • feat: add restcatalog authentication api by @lishuxu in #479
  • feat: implement move column by @gty404 in #517
  • feat: add FastAppend by @zhjwpku in #516
  • chore: add missing snapshot summary fields by @zhjwpku in #520
  • feat: implement set snapshot by @HeartLinked in #509
  • chore: refactor DataFileSet and make WriteManifests to accept span by @zhjwpku in #519
  • feat: add non-validated version of FromJson for SortOrder and PartitionSpec by @HeartLinked in #518
  • feat: add update table stats by @HeartLinked in #511
  • feat: add compression config to writer properties by @wgtmac in #524
  • feat: add UpdateSnapshotReference by @zhjwpku in #512
  • chore: add missing license header to docs.yml by @wgtmac in #525
  • chore: fix rc.yml to download dependencies by @wgtmac in #526

New Contributors

Full Changelog: v0.1.0...v0.2.0