What's Changed
- Build: Designate a single Gradle cache writer across CI workflows by @kevinjqliu in #16356
- Core: Fix ByteBufferInputStream.read() to return -1 at EOF by @sachinnn99 in #16167
- Website: remove duplicated entries from search by @MaxNevermind in #16368
- Build: Bump pymarkdownlnt from 0.9.36 to 0.9.37 by @dependabot[bot] in #16372
- Build: Bump datamodel-code-generator from 0.56.1 to 0.57.0 by @dependabot[bot] in #16373
- Build: Bump jetty from 12.1.8 to 12.1.9 by @dependabot[bot] in #16374
- Build: Bump org.xerial:sqlite-jdbc from 3.53.0.0 to 3.53.1.0 by @dependabot[bot] in #16379
- Build: Bump github/codeql-action from 4.35.1 to 4.35.4 by @dependabot[bot] in #16375
- Build: Bump actions/labeler from 6.0.1 to 6.1.0 by @dependabot[bot] in #16378
- Core, Flink: Add UUID to DataTestBase SUPPORTED_PRIMITIVES by @joyhaldar in #16364
- Spark: Fix NPE in RemoveOrphanFiles with prefix_listing for root table location(#16350) by @liuliquan-marshal in #16351
- Core: Use ArrayList for manifest list materialization by @manuzhang in #15640
- Spec: Clarify non-default CRS conventions by @milastdbx in #15834
- Flink: Add decimal write/read roundtrip test for FlinkParquetReaders by @wombatu-kun in #16346
- Build: Bump gradle-wrapper from 8.14.4 to 8.14.5 by @huaxingao in #16381
- Spark: Add compaction only benchmark - rewrite data files by @varun-lakhyani in #16219
- Build: Speed up Spark CI with parallel test execution by @kevinjqliu in #16357
- OpenAPI: Add CatalogObjectIdentifier schema by @stevenzwu in #16144
- Docs: switch default docs version from nightly to latest by @MaxNevermind in #16398
- Kafka Connect: Surface commit failures instead of silently swallowing them by @yadavay-amzn in #16237
- infra: add 1.10.2 to issue template by @amogh-jahagirdar in #16404
- Doap: Update Doap to reference 1.10.2 by @amogh-jahagirdar in #16405
- Docs: Add release notes for 1.10.2 by @amogh-jahagirdar in #16406
- Docs: Fix duplicate search results by moving versioned docs out of docs_dir by @kevinjqliu in #16371
- Build: Bump com.google.cloud:libraries-bom from 26.80.0 to 26.81.0 by @huaxingao in #16382
- Docs: add more to 1.10.2 release notes by @kevinjqliu in #16410
- Core: Remove redundant string concatenation by @ebyhr in #16409
- Build: Let revapi compare against 1.11.0 by @aihuaxu in #16412
- infra: add 1.11.0 to issue template by @aihuaxu in #16413
- Doap: Update DOAP to reference 1.11.0 by @aihuaxu in #16415
- Flink: Allow setting slot sharing group for fine-grained resource management in DynamicSink by @sqd in #16065
- Build: Use major.minor versions in runtime-deps baselines by @kevinjqliu in #16233
- CI: Make CVE scan blocking on PRs, informational on main by @kevinjqliu in #16287
- Spec: Add content stats to spec by @nastra in #14234
- Spark: Remove Spark 3.4 support by @kevinjqliu in #14122
- Flink: Fix ALTER TABLE to add column to specific position by @SteveStevenpoor in #16419
- Flink: Backport #16065 to Flink v2.0 and v1.20 by @sqd in #16429
- Docs: Add release notes for 1.11.0 by @aihuaxu in #16431
- Arrow: Fix ClassCastException in vectorized reader on int-to-long pro… by @xndai in #16343
- Flink: Backport #16419 to Flink v2.0 and v1.20 by @SteveStevenpoor in #16447
- Site: Add version URL alias hook for docs by @kevinjqliu in #16496
- Encrypting IO as a
DelegateFileIOby @smaheshwar-pltr in #14876 - Flink: Handle table comments in FlinkSQL by @SteveStevenpoor in #16423
- Docs: Update information about metrics mode by @psvri in #16391
- Build: Ban Preconditions.checkState with %d placeholder by @ebyhr in #16407
- Flink: Backport table comments fix to flink v1.20, v2.0 by @SteveStevenpoor in #16503
- Build: Skip spotlessCheck in core-tests by @ebyhr in #16505
- Revapi: Fix order in the revapi file by @gaborkaszab in #16511
- Docs: Drop manual deploy step from release instructions by @stevenzwu in #16495
- Flink: Support writing shredded variant in Flink by @Guosmilesmile in #15596
- Core, Orc: Remove deprecated partition stats read functionality by @gaborkaszab in #14998
- Kafka Connect: Fix CME in IcebergSinkConfig causing flaky multi-table tests by @wombatu-kun in #16438
- Infra: Add
.claude/to .gitignore by @xndai in #16533 - ci: only run site-ci deploy job for apache/iceberg by @kevinjqliu in #16535
- Spark: Backport Add _row_id and _last_updated_sequence_number reader in Orc to support lineage by @Guosmilesmile in #16534
- Core, Parquet: Allow for Writing Parquet/Avro Manifests in V4 by @RussellSpitzer in #15634
- Kafka Connect: Add end-to-end test for commit failure propagation by @yadavay-amzn in #16432
- Core: Skip testAddManyFilesWithConsistentOrdering if WORKER_THREAD_POOL_SIZE < 3 by @ebyhr in #16506
- [SPEC] Add relative paths to v4 spec by @danielcweeks in #15630
- Core: Add V4 location relativization utilities by @anoopj in #16174
- Core: Fix SerializableTable.sortOrders() throwing on historical sort orders with dropped fields (#16519) by @MonkeyCanCode in #16521
- Build: Bump software.amazon.awssdk:bom from 2.44.4 to 2.44.7 by @dependabot[bot] in #16555
- Build: Bump github/codeql-action from 4.35.4 to 4.35.5 by @dependabot[bot] in #16554
- Build: Bump com.diffplug.spotless:spotless-plugin-gradle from 8.4.0 to 8.5.1 by @dependabot[bot] in #16552
- Build: Bump slf4j from 2.0.17 to 2.0.18 by @dependabot[bot] in #16553
- Build: Bump zizmorcore/zizmor-action from 0.5.3 to 0.5.6 by @dependabot[bot] in #16550
- Build: Bump com.google.cloud:libraries-bom from 26.81.0 to 26.83.0 by @dependabot[bot] in #16551
- Arrow: Fix int96 timestamp offset in arrow dictionary decode by @sungwy in #16435
- Core: Replace deprecated CloseableHttpClient.execute by @ebyhr in #16149
- Data: Remove Flag FEATURE_META_ROW_LINEAGE in BaseFormatModelTests by @Guosmilesmile in #16529
- REST Spec: Add unregister table endpoint by @rdblue in #16400
- Flink: Fix flaky TestMonitorSource.testStateRestore by @wombatu-kun in #16548
- Spark: Trim row-level test parameter rows from 6 to 3 by @stevenzwu in #16549
- Spark: Trim TestStructuredStreamingRead3 parameter rows from 8 to 2 by @stevenzwu in #16559
- Docs: Document adaptive split sizing configurations by @pratham76 in #16557
- Core: Fix flaky test by ensuring generateContentLength returns positive value by @lilei1128 in #16539
- Flink: Honor schema identifier fields in dynamic-sink record routing by @jordepic in #16243
- Core: Cache PartitionData template in PartitionsTable to avoid rebuilding Avro schema per partition by @Wenjun7J in #16208
- Flink: Honor schema identifier fields in dynamic-sink record routing (backport) by @jordepic in #16597
- Docs: Publish Iceberg security model by @sungwy in #16538
- API, Core, Orc: Implement project() for partition statistics scan API by @gaborkaszab in #16569
- Spark: Compact IcebergSortCompactionBenchmark to use base compaction class by @varun-lakhyani in #16593
- Core: Fix optionalOAuthParams dropped during non-exchange token refresh by @bharos in #16023
- Core: Validate non-string elements in JsonUtil.getStringArray by @stevenzwu in #16586
- Spark: Deprecate SparkFilters in favor of SparkV2Filters by @huaxingao in #16616
- Build: Bump io.netty:netty-buffer from 4.2.13.Final to 4.2.14.Final by @dependabot[bot] in #16628
- Build: Bump org.immutables:value from 2.12.1 to 2.12.2 by @dependabot[bot] in #16636
- Build: Bump github/codeql-action from 4.35.5 to 4.36.0 by @dependabot[bot] in #16635
- Build: Bump openapi-spec-validator from 0.8.5 to 0.9.0 by @dependabot[bot] in #16629
- Build: Bump actions/stale from 10.2.0 to 10.3.0 by @dependabot[bot] in #16630
- Build: Bump docker/build-push-action from 7.1.0 to 7.2.0 by @dependabot[bot] in #16631
- Build: Bump docker/setup-buildx-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #16632
- Build: Bump software.amazon.awssdk:bom from 2.44.7 to 2.44.12 by @dependabot[bot] in #16634
- Build: Bump com.azure:azure-sdk-bom from 1.3.6 to 1.3.7 by @ebyhr in #16637
- Flink: Fix duplicate commits in DynamicCommitter when Flink jobId changes on restart by @lrsb in #16011
- Arrow: Fix truncation of decimals with precision larger than 18 by @wombatu-kun in #16627
- Flink: Backport DynamicCommitter jobId fix to v1.20 and v2.0 by @lrsb in #16648
- Spark 4.1: Upgrade to Spark 4.1.2 by @manuzhang in #16365
- Core: v4 table metadata location should be optional by @rambleraptor in #16572
- Core: implement writeManifestsWith executor on SnapshotUpdate by @dramaticlly in #16108
- Parquet: Fix timestamp_ns and timestamptz_ns predicate pushdown by @wombatu-kun in #16619
- Arrow: Fix vectorized reads of decimal columns with default values by @harperjiang in #16501
- Site: Add Iceberg-Go 0.6.0 release blog post by @nssalian in #16649
- Core: Refactor v4 struct builders to improve validation by @anoopj in #16408
- ORC: Remove ORC tests for partition statistics by @gaborkaszab in #16676
- Infra: Update collaborators list by @stevenzwu in #16678
- Site: Add 1.11.0 release blog post by @aihuaxu in #16516
- API, Core: Add CatalogObjectIdentifier by @stevenzwu in #16160
- API, Spark 4.1: Add ignore_missing_files to migrate procedure by @drexler-sky in #16643
- Data: Add TCK for Writer builder in FileFormat API by @Guosmilesmile in #16575
- Spark 3.5, 4.0: Add ignore_missing_files to migrate procedure by @drexler-sky in #16684
- GCS, S3, ADLS: Handle EOF in inputStreams by @vladislav-sidorovich in #16055
- Spark 4.1: Bind parameters in IcebergSparkSqlExtensionsParser by @j1wonpark in #16626
- Spark: Fix time-travel filter on renamed columns in distributed planning mode by @lilei1128 in #16523
- REST spec: add list/load function endpoints to OpenAPI spec by @huaxingao in #15180
- Core: Skip unnecessary manifest scans during expire snapshots metadata cleanup by @zhongyujiang in #16691
- Parquet: Add opt-in uncompressed row group size tracking by @nssalian in #16327
- Build: Bump jackson-bom from 2.21.3 to 2.21.4 by @dependabot[bot] in #16702
- Build: Bump nessie from 0.107.5 to 0.107.6 by @dependabot[bot] in #16703
- Build: Bump docker/setup-qemu-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #16704
- Build: Bump com.gradleup.shadow:shadow-gradle-plugin from 8.3.10 to 8.3.11 by @dependabot[bot] in #16705
- Build: Bump com.diffplug.spotless:spotless-plugin-gradle from 8.5.1 to 8.6.0 by @dependabot[bot] in #16706
- API, Core: Implement filter() for partition statistics scan API by @gaborkaszab in #16582
- Docs: adding Dataddo to the vendor list by @cenotee in #16443
- Data: Add comprehensive data type tests to Format Model TCK by @rambleraptor in #15795
- Parquet: Pre-size row-group filter maps to the column count by @wombatu-kun in #16723
- Docs: Add Apache Iceberg Summit 2026 Playlist by @ebyhr in #16712
- Core: Align content stats fields with latest Spec changes by @nastra in #16439
- Spark: Fix first row ID carry over for manifest rewrite by @amogh-jahagirdar in #16699
- Core: Preserve DV encryption metadata in merges by @manuzhang in #15911
- Core: Adjust calculations for reserved field IDs by @nastra in #16441
- Flink: implement wakeup method to fix thread/memory leak by @shanzi in #16545
- API, Spark 4.1: Add ignore_missing_files to snapshot procedure by @drexler-sky in #16710
- Parquet: Avoid intermediate BigInteger in int and long decimal readers by @wombatu-kun in #16722
- Mumbling: Add draft Mumbling Bitmap spec by @rdblue in #16518
- Build: Bump Netty pin to 4.2.15.Final for Trivy fixes by @nssalian in #16749
- Data: Add TCK coverage for reader default values by @joyhaldar in #16638
- Flink: Backport source fetcher thread leak fix to v1.20 and v2.0 (#16545) by @shanzi in #16745
- Docs: Add Javadoc guidance to AGENTS.md by @stevenzwu in #16764
- Core: Fix RESTMetricsReporter.report() blocking the calling thread by @turboFei in #16695
- Flink: Validate missing watermark column in column stats watermark extractor by @jackylee-ch in #16774
- Spark 3.5, 4.0: Add ignore_missing_files to snapshot procedure by @drexler-sky in #16754
- Docs: Clarify Spark
spark.sql.adaptive.advisoryPartitionSizeInBytesby @pan3793 in #16721 - API, Core: Reuse VariantUtil methods through ByteBuffers by @rdblue in #16748
- Core: Add EntryStatus.MODIFIED and TrackingBuilder status derivation by @anoopj in #16689
- Core: Add v4 TrackedFileAdapters to bridge Data/Delete Files by @anoopj in #16100
- API: Single-value binary serialization for geometry and geography by @huan233usc in #16607
- Spark 4.0: Upgrade to Spark 4.0.3 by @manuzhang in #16717
- CI: Retry Trivy scanner image pull to absorb transient Docker Hub timeouts by @wombatu-kun in #16660
- Spark: add rest.catalog-purge property to delegate DROP TABLE PURGE to REST catalogs by @felixschneider99 in #15614
- Build: Bump datamodel-code-generator from 0.57.0 to 0.59.0 by @huaxingao in #16708
- Build: Bump software.amazon.awssdk:bom from 2.44.12 to 2.45.1 by @huaxingao in #16709
- Spec: clarify Avro encoding for day partition transform in manifests by @laskoviymishka in #16446
- Core: Disallow setting main branch ref to a tag by @rahulsmahadev in #16753
- Build: Bump astral-sh/setup-uv from 8.1.0 to 8.2.0 by @dependabot[bot] in #16803
- Data: Skip equality-delete filter when there are no equality deletes by @wombatu-kun in #16742
- Build: Bump jetty from 12.1.9 to 12.1.10 by @dependabot[bot] in #16813
- Build: Bump github/codeql-action from 4.36.0 to 4.36.2 by @dependabot[bot] in #16812
- Build: Bump org.xerial:sqlite-jdbc from 3.53.1.0 to 3.53.2.0 by @dependabot[bot] in #16811
- Build: Bump calcite from 1.41.0 to 1.42.0 by @dependabot[bot] in #16809
- Build: Bump nessie from 0.107.6 to 0.107.9 by @dependabot[bot] in #16807
- Build: Bump actions/checkout from 6.0.2 to 6.0.3 by @dependabot[bot] in #16806
- Build: Bump datamodel-code-generator from 0.59.0 to 0.60.0 by @dependabot[bot] in #16805
- Build: Bump com.fasterxml.jackson.core:jackson-annotations from 2.21 to 2.22 by @dependabot[bot] in #16804
- Build: Bump com.aliyun:tea from 1.4.1 to 1.4.2 by @dependabot[bot] in #16802
- Build: Bump com.google.cloud.gcs.analytics:gcs-analytics-core by @ebyhr in #16814
- Build: Bump jackson-bom from 2.21.4 to 2.22.0 by @ebyhr in #16815
- Build: Bump software.amazon.awssdk:bom from 2.45.1 to 2.46.5 by @ebyhr in #16816
- Docs: add blog post for C++ 0.3.0 release by @zhjwpku in #16817
- Docs: Add guidelines for tests by @ebyhr in #16784
- Spark: Cap RandomData collection size to speed up nested tests by @Baunsgaard in #16696
- Core: extract parallel manifest write logic out of SnapshotProducer by @dramaticlly in #16730
- Spark: Reduce TestSparkDataFile row count to speed up partitioned cases by @Baunsgaard in #16821
- Parquet: Variant shredding follow-ups from PR #14297 by @nssalian in #16818
- Flink: Add data model and key serialization for equality delete conversion by @mxm in #16831
- Spark: Return session catalog views by @manuzhang in #16845
- Spark: Spark tests cache rewrite input by @Baunsgaard in #16740
- Flink: Backport: Add data model and key serialization for equality delete conversion (#16831) by @mxm in #16842
- CI: Limit CVE scan runs to relevant changes by @kevinjqliu in #16513
- Data: Improve format model test coverage and diagnostics by @Guosmilesmile in #16832
- Kafka Connect: Add metric for partial commit failures by @yadavay-amzn in #16433
- Kafka Connect: Make CommitState.isCommitReady() O(1) by @HenryCaiHaiying in #16453
- Flink: Add equality delete conversion operators by @mxm in #16844
- Core: Cache manifest list files in manifest content cache by @rahulsmahadev in #16762
- docs: add a "AI-Generated PR Disclosure" section to AGENTS.md by @kevinjqliu in #15758
- Core: Add writer_format_version field to TrackedFile by @gaborkaszab in #16688
- Kafka Connect: Pre-size collections in RecordConverter list/map conversion by @wombatu-kun in #16657
- Flink: Backport: Add equality delete conversion operators (#16844) by @mxm in #16857
- Flink: Add equality delete conversion DV resolution and writing by @mxm in #16858
- Core, AWS, GCP, Dell, Hive: Fix FileIO leaks and standardize close() across Catalog implementations by @mateusaubin in #16862
- Core: Parquet per column dictionary encoding by @Gerrrr in #16713
- Build: Remove duplicate jackson.databind declaration by @Fezinvirtual in #16879
- Flink: Backport: Add equality delete conversion DV resolution and writing (#16858) by @mxm in #16869
- Spec: Clarify geography type serialization by @kevinjqliu in #16799
- Flink: Add equality delete conversion committer by @mxm in #16874
- Flink: Backport: Add equality delete conversion committer (#16874) by @mxm in #16888
- Aliyun: Pass known file length through OSSFileIO.newInputFile by @thswlsqls in #16870
- Parquet: Fix variant metrics crash when value column has no stats by @nssalian in #16585
- Build: Bump com.google.cloud.gcs.analytics:gcs-analytics-core from 1.3.0 to 1.3.1 by @dependabot[bot] in #16904
- Build: Bump org.openapitools:openapi-generator-gradle-plugin from 7.22.0 to 7.23.0 by @dependabot[bot] in #16903
- Build: Bump io.grpc:grpc-netty-shaded from 1.81.0 to 1.82.0 by @dependabot[bot] in #16902
- Build: Bump software.amazon.awssdk:bom from 2.46.5 to 2.46.10 by @dependabot[bot] in #16901
- Build: Bump com.google.errorprone:error_prone_annotations from 2.49.0 to 2.50.0 by @dependabot[bot] in #16900
- Build: Bump gradle/actions from 5.0.2 to 6.2.0 by @dependabot[bot] in #16899
- Build: Bump nessie from 0.107.9 to 0.108.0 by @dependabot[bot] in #16897
- Build: Bump pymarkdownlnt from 0.9.37 to 0.9.38 by @dependabot[bot] in #16895
- Build: Bump datamodel-code-generator from 0.60.0 to 0.63.0 by @ebyhr in #16907
- Docs: Clarify test method naming guidance by @manuzhang in #16866
- Spark 4.1: Throw on unsupported complex types in SparkValueConverter by @thswlsqls in #16924
- Spark 3.5, 4.0: Throw on unsupported complex types in SparkValueConverter by @ebyhr in #16925
- Revert "Spark: Spark tests cache rewrite input" by @laskoviymishka in #16912
- CI: Check ASF action allowlist on every PR by @manuzhang in #16926
- Kafka Connect: evolve table schema when record schema is updated but value is null by @twthorn in #16826
- Core: Introduce builder for TrackedFile by @gaborkaszab in #16769
- ORC: Fix lower/upper bounds for timestamp_ns columns in OrcMetrics by @thswlsqls in #16922
- Data: Add TCK for Encrypt in FileFormat API by @Guosmilesmile in #16724
- Data: Add metrics reporter to generic scan builder by @alexandrefimov in #16664
- Parquet: Skip geo footer bounds by @huan233usc in #16850
- AWS: Handle duplicate column names in IcebergToGlueConverter comment map by @Wyatt-Hawes in #16853
- Flink: Add equality delete conversion planner by @mxm in #16889
- Build: Bump com.google.cloud:libraries-bom from 26.83.0 to 26.84.0 by @ebyhr in #16906
- Core: Migrate switch statements to switch expressions by @nssalian in #16881
- Flink 2.1: Fix file offset mismatch in DataIterator.seek() when files are skipped by @zhongyujiang in #16929
- ORC: Remove unused conf field from OrcFileAppender by @wombatu-kun in #16345
- Flink: Backport: Add equality delete conversion planner (#16889) by @mxm in #16944
- Revert "Core: Migrate switch statements to switch expressions (#16881)" by @nastra in #16953
- Core: Remove encryption key from keysById first to avoid removeIf by @tom-s-powell in #16860
- Build: Align Jackson versions to fix CVE by @nastra in #16954
- Core: Rename TrackedFile's writer_format_version to format_version by @gaborkaszab in #16952
- Flink: SQL: Pass only white-listed Catalog properties for Table LIKE by @swapna267 in #16728
- Kafka Connect: Fix avro schema conversion for UUID by @twthorn in #16828
- Flink: Throw UnsupportedOperationException for materialized tables by @rmoff in #16079
- Flink 1.20, 2.0: Fix file offset mismatch in DataIterator.seek() when files are skipped by @zhongyujiang in #16950
- Core: Set scan planning mode when initializing client by @gaborkaszab in #15903
- Flink: Add equality delete conversion API and integration tests by @mxm in #16948
- Flink: Backport improved createTable error message to 1.20 and 2.0 by @rmoff in #16959
- Flink: Backport Pass only white-listed Catalog properties to 1.20,2.0 by @swapna267 in #16966
- Flink: Backport: Add equality delete conversion API and integration tests (#16948) by @mxm in #16969
- Build: Support toggling log levels in iceberg-rest-fixture Docker image by @sejal-gupta-ksolves in #16725
- API, Parquet: Map geometry and geography to Parquet logical types by @huan233usc in #16765
- Core: update manifest delete file size after rewrite table action by @mbutrovich in #15470
- Flink: Fix monitor source rate limit for sub-second intervals by @mxm in #16979
- Build: Bump org.codehaus.jettison:jettison from 1.5.5 to 1.5.6 by @dependabot[bot] in #16988
- Build: Bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #16986
- Build: Bump actions/setup-java from 5.2.0 to 5.3.0 by @dependabot[bot] in #16991
- Build: Bump com.diffplug.spotless:spotless-plugin-gradle from 8.6.0 to 8.7.0 by @dependabot[bot] in #16990
- Flink: Backport: Fix monitor source rate limit for sub-second intervals (#16979) by @mxm in #16992
- Build: Bump datamodel-code-generator from 0.63.0 to 0.64.1 by @drexler-sky in #16993
- Build: Bump software.amazon.awssdk:bom from 2.46.10 to 2.46.15 by @dependabot[bot] in #16989
- Spec: Add spec for expressions by @rdblue in #16652
- Core, Spark: Migrate Spark table properties to Spark module by @szehon-ho in #15875
- OpenAPI: Fix schema of data-access object in REST spec by @adutra in #16594
- CVE Scan: Test PR failure reporting UI by @kevinjqliu in #16962
- Core: Include row lineage and key-id in snapshot value methods by @manuzhang in #17015
- API: Add indexStatsNames to create field names for content stats by @rdblue in #17010
- Core: Remove unused TestTrackedFileStruct.CONTENT_STATS_ORDINAL by @gaborkaszab in #17031
- Spec: Add optional specific-name to UDF definition model by @szehon-ho in #16727
- Docs: Document nightly snapshots by @wombatu-kun in #16544
- Parquet: Read and write geometry and geography WKB values by @huan233usc in #16982
- Spark 4.1: Map geo Spark types by @huan233usc in #16851
- Flink: Hold back equality delete converter watermark until completion by @mxm in #17038
- Flink: Backport: Hold back equality delete converter watermark until completion (#17038) by @mxm in #17067
- Core: Fix thread conflict when deleting duplicate files in manifest by @HuaHuaY in #16686
- Build: Bump software.amazon.awssdk:bom from 2.46.15 to 2.46.17 by @dependabot[bot] in #17099
- Build: Bump io.grpc:grpc-netty-shaded from 1.82.0 to 1.82.1 by @dependabot[bot] in #17103
- Build: Bump nessie from 0.108.0 to 0.108.1 by @dependabot[bot] in #17101
- Core: Extend org.apache.iceberg.hadoop.Configurable in HadoopConfigurable by @ebyhr in #16736
- Build: Bump actions/setup-java from 5.3.0 to 5.4.0 by @dependabot[bot] in #17104
- Build: Bump actions/setup-python from 6.2.0 to 6.3.0 by @dependabot[bot] in #17105
- Build: Bump datamodel-code-generator from 0.64.1 to 0.66.0 by @dependabot[bot] in #17100
- Core: Handle ExceptionInInitializerError & NoClassDefFoundError invoke-time failures in DynMethods callers by @nastra in #16611
- Build: Bump com.google.cloud.gcs.analytics:gcs-analytics-core by @ebyhr in #17108
- Docs: Fix reversed Flink binary/varbinary to Iceberg type mapping by @thswlsqls in #17090
- ORC: Fix garbled exception message for invalid timestamp unit attribute by @thswlsqls in #17098
- Flink: Resolve unpartitioned equality deletes across all partitions by @mxm in #17018
- Core: Add id tracking to MetricsConfig by @rdblue in #17022
- Core: Cleanup some of the TrackedFile tests by @amogh-jahagirdar in #17035
- Flink: Backport: Resolve unpartitioned equality deletes across all partitions (#17018) by @mxm in #17129
- Parquet: Fix variant shredding of large decimals (precision > 18) by @xiaoxuandev in #17002
- Parquet: Refactor ParquetMetrics to produce field stats by @rdblue in #17116
- Docs: Improve inline comment guidance by @kevinjqliu in #16998
- Core: Make partition field in TrackedFile optional by @gaborkaszab in #17000
- CI: Use one Java version for PR checks by @ajantha-bhat in #16945
- Core: Cleanup of TrackingStruct tests by @gaborkaszab in #17041
- Spark 4.1: Read and write geometry and geography values in Parquet by @huan233usc in #17073
- Core: Test geometry and geography metrics keep counts without bounds by @huan233usc in #17131
- Docs: Add doc for flink table maintenance ConvertEqualityDeletes by @Guosmilesmile in #17113
- Revert "Core: Test geometry and geography metrics keep counts without bounds (#17131)" by @pvary in #17141
- Core: Fix row lineage last updated sequence inheritance by @wgtmac in #17039
- AWS: Use assumed-role credentials for REST SigV4 signing by @GabrielBBaldez in #16794
- Flink: Integrate ConvertEqualityDeletes with IcebergSink by @mxm in #17142
- Docs: Fix catalog properties links after docs refactor of #15848 by @szlta in #17153
- Flink: Backport: Integrate ConvertEqualityDeletes with IcebergSink (#17142) by @mxm in #17156
- Core: Reland test for geometry and geography metrics keeping counts without bounds by @huan233usc in #17147
- Core: Fix OAuthTokenResponse.addScope error to show the invalid scope by @anxkhn in #17126
- Parquet: Cache adjacent identical metadata in variant reader by @nssalian in #16852
- Build: Bump github/codeql-action/upload-sarif from 4.36.2 to 4.36.3 by @dependabot[bot] in #17172
- Build: Bump org.apache.httpcomponents.client5:httpclient5 from 5.6.1 to 5.6.2 by @dependabot[bot] in #17170
- Build: Bump software.amazon.awssdk:bom from 2.46.17 to 2.46.21 by @dependabot[bot] in #17168
- Build: Bump com.diffplug.spotless:spotless-plugin-gradle from 8.7.0 to 8.8.0 by @dependabot[bot] in #17167
- Build: Bump datamodel-code-generator from 0.66.0 to 0.67.0 by @dependabot[bot] in #17166
- Build: Bump docker/setup-qemu-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #17165
- API: Guard against null in IN/NOT_IN predicates to avoid NPE by @ebyhr in #17014
- Arrow: Fix dict-encoded VARCHAR/VARBINARY read for direct ByteBuffers by @thswlsqls in #17055
- Flink: handle simultaneous schema evolution and data conversion by @sqd in #17024
- Parquet: add adaptive bloom filter sizing (PARQUET-2254) by @raghav-reglobe in #16363
- Core: Add EagerInputFile and EagerInputStream to buffer files below a size threshold by @varun-lakhyani in #16729
- Flink: Remove converted equality deletes for same-branch conversion by @mxm in #17189
- Core: Use mocks in TrackedFile tests by @rdblue in #17133
- Flink: Backport: Remove converted equality deletes for same-branch conversion (#17189) by @mxm in #17190
- Flink: Backport: handle simultaneous schema evolution and data conversion (#17024) by @sqd in #17191
- Docs: add Collate to vendors.md by @Schlitzohr101 in #17123
- Spark 4.0: Add Spark REST_CATALOG_PURGE property to delegate DROP TABLE PURGE to REST catalogs by @jackylee-ch in #17185
- Spark 4.1: Add Spark REST_CATALOG_PURGE property to delegate DROP TABLE PURGE to REST catalogs by @jackylee-ch in #17186
- Spark: Add session-level split size override by @gerashegalov in #16154
- Spark 4.1: Test geometry and geography DML and fall back from vectorized reads by @huan233usc in #17149
- Spark: Backport split-size session conf to 3.5 and 4.0 by @gerashegalov in #17199
- Flink: Fix timestamp-micros conversion in AvroToRowDataConverters by @kinolaev in #17194
- Flink: Fix watermark extractor error message showing field id instead of file by @anxkhn in #17124
- Flink: Backport timestamp-micros conversion fix to 1.20 and 2.0 by @kinolaev in #17212
- Spark 4.1: Implement listTableSummaries by @drexler-sky in #16891
- Infra: Group github/codeql-action bumps into a single dependabot PR by @ebyhr in #17160
- Build: Bump actions/labeler from 6.1.0 to 6.2.0 by @dependabot[bot] in #17229
- Build: Bump jetty from 12.1.10 to 12.1.11 by @dependabot[bot] in #17220
- Build: Bump jackson-bom from 2.22.0 to 2.22.1 by @dependabot[bot] in #17224
- Build: Bump orc from 1.9.8 to 1.9.9 by @dependabot[bot] in #17225
- Build: Bump at.yawk.lz4:lz4-java from 1.11.0 to 1.11.1 by @dependabot[bot] in #17226
- Build: Bump io.netty:netty-buffer from 4.2.15.Final to 4.2.16.Final by @dependabot[bot] in #17227
- Build: Bump the codeql-action group with 3 updates by @dependabot[bot] in #17228
- Build: Bump actions/setup-java from 5.4.0 to 5.5.0 by @dependabot[bot] in #17230
- Build: Bump docker/build-push-action from 7.2.0 to 7.3.0 by @dependabot[bot] in #17231
- Core: Clean up TestTrackedFileAdapters and drop TrackedFileBuilder by @gaborkaszab in #17144
- Build: Upgrade to Spark 4.0.4 by @manuzhang in #17181
- Build: Bump datamodel-code-generator from 0.67.0 to 0.68.1 by @ebyhr in #17239
- Build: Bump software.amazon.awssdk:bom from 2.46.21 to 2.47.2 by @ebyhr in #17238
- Build: Bump com.google.cloud:libraries-bom from 26.84.0 to 26.85.0 by @ebyhr in #17237
- Kafka Connect: Add bounded retry for transient commit exceptions by @yadavay-amzn in #16434
- Docs: Add StarTree to vendors documentation by @jamesdilworth in #17197
- Docs: Add stackable to vendors list by @Jimvin in #17136
- Core: Fix ShreddedObject.put not clearing prior remove marker by @thswlsqls in #17066
- Site: add Iceberg Rust and DataFusion Comet blog post by @mbutrovich in #17162
- Core: Read and write geometry and geography values in Avro by @huan233usc in #17119
- Flink: Fix TableMaintenance operator uid instability that breaks savepoint restore by @Guosmilesmile in #17210
- API: Harden variant binary parsing against malformed input by @nssalian in #16568
- Build: Upgrade to Spark 4.1.3 by @manuzhang in #17182
- Build: Upgrade to Spark 3.5.9 by @manuzhang in #17180
- Core: Refactor ContentStats and FieldStats by @rdblue in #17159
- API, Core: Make variant classes serializable by @rdblue in #17260
- API, Core: Only fall back to unknown partition type for source-dependent transforms by @anoopj in #17262
- Flink: BackPort Fix TableMaintenance operator uid instability that breaks savepoint restore to 2.0 and 1.20 by @Guosmilesmile in #17283
- API: Fix incorrect Javadoc on ManageSnapshots tag methods by @thswlsqls in #17243
- Build: Bump pymarkdownlnt from 0.9.38 to 0.9.39 by @dependabot[bot] in #17289
- Build: Bump org.roaringbitmap:RoaringBitmap from 1.6.14 to 1.6.15 by @dependabot[bot] in #17290
- Build: Bump software.amazon.awssdk:bom from 2.47.2 to 2.47.5 by @dependabot[bot] in #17291
- Build: Bump io.grpc:grpc-netty-shaded from 1.82.1 to 1.82.2 by @dependabot[bot] in #17292
- Build: Bump astral-sh/setup-uv from 8.2.0 to 8.3.2 by @dependabot[bot] in #17293
- Build: Bump docker/setup-buildx-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #17294
- Build: Bump actions/stale from 10.3.0 to 10.4.0 by @dependabot[bot] in #17295
- Spark: Add vectorized Parquet reads for variant columns by @nssalian in #16292
- Core: Precompute sorted entries in ShreddedObject SerializationState by @nssalian in #17114
- Parquet: Fix initial-default rows dropped when filtering on the defaulted column by @cbb330 in #16692
- API: Shorten dropped source type comment in PartitionSpec by @anoopj in #17303
- Kafka Connect: Set engine metadata in EnvironmentContext by @ajreid21 in #17195
- Flink: Add plannedGroups counter metric and log for DataFileRewritePlanner by @Guosmilesmile in #17316
- API: Add tests for DateTimeUtil.microsToMillis by @vishnuprakaz in #16773
- Parquet: Fix variant BINARY upper bound to truncate up by @vishnuprakaz in #16880
- Build: Fix Trivy failures by @pvary in #17344
- Flink: BackPort Add plannedGroups counter metric and log for DataFileRewritePlanner to 2.0 and 1.20 by @Guosmilesmile in #17335
- API: Extract superclass from InclusiveMetricsEvaluator by @rdblue in #17201
- Flink: SQL: Add variant avro dynamic record generator by @swapna267 in #16450
- Hive: Use server-side filter to list Iceberg tables in HiveCatalog by @terrytlu in #17317
- Flink: Avoid unnecessary TableLoader.loadTable() in IcebergCommitter subtasks > 0 by @Guosmilesmile in #17251
- Hive: Fix integer overflow in HMS createTime and lastAccessTime by @wombatu-kun in #16620
- Doc: Fix incorrect weight value description for range-distribution-sort-key-base-weight in Flink by @Guosmilesmile in #17351
- Flink: Backport Avoid unnecessary TableLoader.loadTable() in IcebergCommitter subtasks > 0 to 2.0 and 1.20 by @Guosmilesmile in #17356
- Core: Fix flaky TestHadoopCommits.testConcurrentFastAppends by @wombatu-kun in #16770
- Core: present v4 ContentStats as legacy stat maps via ContentStatsBackedMap by @stevenzwu in #17322
- Core: Remove redundant toString() in NoSuchTableException message by @uros-b in #17362
- API: Add test for DateTimeUtil.formatTimestampMillis by @uros-b in #17361
- Docs: Recommend switch expressions in AGENTS.md code style by @stevenzwu in #17357
- Build: Bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #17373
- Build: Bump actions/setup-python from 6.3.0 to 7.0.0 by @dependabot[bot] in #17372
- Build: Bump actions/labeler from 6.2.0 to 7.0.0 by @dependabot[bot] in #17371
- Build: Bump the codeql-action group with 3 updates by @dependabot[bot] in #17370
- Build: Bump nessie from 0.108.1 to 0.108.2 by @dependabot[bot] in #17367
- Build: Bump com.google.cloud:libraries-bom from 26.85.0 to 26.85.1 by @dependabot[bot] in #17368
- Docs: Fix duplicated word in Flink end-tag option description by @uros-b in #17363
- BigQuery: Use pattern-matching instanceof in BigQueryMetastoreClientImpl by @uros-b in #17380
- Infra: Fix labeler.yml indentation for actions/labeler v7 by @uros-b in #17382
- BigQuery: Convert statement switch to arrow switch in BigQueryMetastoreClientImpl by @uros-b in #17381
- BigQuery: Remove commented-out duplicate internalUpdate method by @uros-b in #17379
- Docs: Update write.metadata.path in view configuration by @nhuantho in #17211
- Docs: Add Teradata to the Vendors page by @jb185048 in #17353
- AWS, GCP: Remove unused logger by @uros-b in #17383
- OpenAPI: Update REST spec expressions to match new expressions spec by @singhpk234 in #17138
- Build: Bump bouncycastle from 1.84 to 1.85 by @ebyhr in #17386
- Core, Flink, Spark: Fix unsupported error placeholders by @anxkhn in #17110
- API: Add tests for NaNUtil by @vishnuprakaz in #16834
- MINOR: Update Slack invitation link by @Fokko in #17398
- Build: bump Jackson to fix CVE GHSA-r7wm-3cxj-wff9 by @Guosmilesmile in #17336
- Spark 4.1: Add streaming-merge-append-enabled write config by @amogh-jahagirdar in #17347
- BigQuery: Use imported Map instead of fully-qualified name by @uros-b in #17407
- Spark: fix flaky testReadingStreamFromFutureTimestamp by switching to Awaitility.await by @dramaticlly in #17405
- Spark 4.1, 4.0, 3.5: Rename streaming merge-append write option and backport #17347 to 3.5/4.0 by @amogh-jahagirdar in #17403
- Site: Add blog post for iceberg-rust 0.10.0 by @dannycjones in #17032
- Docs: Centralize Slack invitation URL by @kevinjqliu in #17402
- Core: Drop test prefix from v4 struct test methods by @anoopj in #17409
- Build: Remove unused Jackson dependency from iceberg-delta-lake by @uros-b in #17395
- Spec: Track avg_value_size_in_bytes for Geo types by @nastra in #17313
- API: Propagate allowMissing to nested structs in StructProjection by @thswlsqls in #17052
- Flink: Fix NPE in ExpireSnapshots config when retain-last is unset by @thswlsqls in #17277
- API: Fix null/Nan counts in evaluator test by @nastra in #17419
- Core: Add v4 manifest reader by @anoopj in #16958
- OpenAPI: Formalize remote signing configuration by @adutra in #16822
- Core: Fix time-travel snapshot lookup to not assume snapshot-log orde… by @xndai in #17360
- REST: Add specific-name to UDF definition by @szehon-ho in #17364
- Core: fix typo in BaseEntriesTable by @yangshangqing95 in #17441
- Docs: Fix invalid StructType.of call in Java API example by @uros-b in #17408
- Flink: Fix RANGE distribution ignoring user-specified equality fields by @thswlsqls in #17276
- Parquet: Track avg_value_size_in_bytes for Geo types by @huan233usc in #17333
- API, Core: Add missing @return Javadoc by @uros-b in #17394
- Core: Preserve manifest content pruning when ignoring residuals by @yangshangqing95 in #17443
- API, AWS, BigQuery, Core, Flink, Hive, Nessie, ORC, Parquet, Spark: Use Locale.ROOT instead of Locale.ENGLISH for case conversion by @uros-b in #17442
- Core: Fix incorrect delete manifest pruning in entries metadata tables by @yangshangqing95 in #17440
- Core: Fix pruning for negated all_manifests filters by @yangshangqing95 in #17346
- Core: Keep NETFLIX_UNSAFE_PARQUET_ID_FALLBACK_ENABLED until 2.0 release by @dramaticlly in #17444
- Flink: Backport fix for RANGE distribution ignoring user-specified equality fields to 1.20 and 2.0 by @thswlsqls in #17459
- Build: Fix empty tarball name in source-release.sh log message by @uros-b in #17384
- API: Fix struct metrics in nested struct evaluator test by @nastra in #17412
- Core: Drop test prefix from metadata table test methods by @szehon-ho in #17460
- Spec: Clarify variant type classification and primitive type scoping by @zhjwpku in #16836
- Spec: Clarify decimal type serialization by @kevinjqliu in #16798
- INFRA: Update ASF allowlist check action dependency to track versioned releases by @kevinjqliu in #17466
- Flink: Backport fix NPE in ExpireSnapshots config when retain-last is unset to 2.0 and 1.20 by @thswlsqls in #17458
- Build: Bump zizmorcore/zizmor-action from 0.5.6 to 0.6.1 by @dependabot[bot] in #17374
- Build: Bump astral-sh/setup-uv from 8.3.2 to 9.0.0 by @dependabot[bot] in #17481
- Build: Bump actions/setup-java from 5.5.0 to 5.6.0 by @dependabot[bot] in #17480
- Build: Bump the codeql-action group with 3 updates by @dependabot[bot] in #17479
- Build: Bump org.xerial:sqlite-jdbc from 3.53.2.0 to 3.53.2.1 by @dependabot[bot] in #17478
- Build: Bump org.codehaus.jettison:jettison from 1.5.6 to 1.5.7 by @dependabot[bot] in #17476
- Build: Bump org.roaringbitmap:RoaringBitmap from 1.6.15 to 1.6.18 by @dependabot[bot] in #17475
- Build: Bump org.openapitools:openapi-generator-gradle-plugin from 7.23.0 to 7.24.0 by @dependabot[bot] in #17474
- Build: Bump datamodel-code-generator from 0.68.1 to 0.71.0 by @dependabot[bot] in #17472
- OpenAPI: Add VariantType to the REST catalog spec by @nssalian in #17256
- Build: Bump io.grpc:grpc-netty-shaded from 1.82.2 to 1.83.0 by @ebyhr in #17487
- API: Fix duplicated word in TestProjection comment by @uros-b in #17483
- Build: Bump com.azure:azure-sdk-bom from 1.3.7 to 1.3.8 by @ebyhr in #17486
- Core: Tolerate explicit null config fields across REST parsers by @thswlsqls in #17250
- Kafka Connect: Fix invalid decimal type inferred for some BigDecimal values by @wombatu-kun in #16606
- Core: Don't override equals() and hashCode() in V4 DeletionVector by @gaborkaszab in #17447
- Parquet: Add round-trip test for encrypted shredded variant columns by @nssalian in #17469
- Docs: Add Fivetran to Integrations list by @fivetran-jacklowery in #17496
- Build: Bump nessie from 0.108.2 to 0.108.3 by @dependabot[bot] in #17473
- Parquet: Extract nested/variant type check in ParquetMetricsRowGroupFilter by @uros-b in #17377
- Parquet: Honor column metrics truncate length for variant shredded bounds by @nssalian in #17342
- Core: Extend V4 DeletionVector with key_metadata field by @gaborkaszab in #17438
- Core: Fix a typo in the comment by @hsiang-c in #17503
- Core: Collapse redundant nested if statements by @uros-b in #17491
- Build: Bump software.amazon.awssdk:bom from 2.47.5 to 2.49.3 by @ebyhr in #17488
- CI: Run PR title check after pushes by @manuzhang in #17516
- INFRA: Use PR titles for squash commits by @kevinjqliu in #17517
- Site: Update iceberg-rust 0.10 blog post for 0.10.1 by @dannycjones in #17530
- Core: Resolve relative paths in V4 manifest reader by @anoopj in #17434
- Core: Remove dead commented-out code in Avro ValueReaders by @uros-b in #17529
- Core: Reuse ops in BaseMetastoreViewCatalog.loadView by @thswlsqls in #17069
- Build: Bump caffeine from 2.9.3 to 3.2.0 by @moomindani in #16680
- API: Define RepairManifests action interface by @rahulsmahadev in #17399
- Core, OpenAPI: Add RCK coverage for variant columns by @nssalian in #17500
- Build: Bump joda-time:joda-time from 2.14.2 to 2.14.3 by @dependabot[bot] in #17567
- Build: Bump org.apache.httpcomponents.client5:httpclient5 from 5.6.2 to 5.6.3 by @dependabot[bot] in #17570
- Build: Bump nessie from 0.108.3 to 0.108.4 by @dependabot[bot] in #17568
- API: Add tests for UnicodeUtil by @uros-b in #17528
- Parquet: Fix variant STRING metrics bounds to use UTF-8 byte order by @vishnuprakaz in #17397
- Build: Bump com.google.cloud:libraries-bom from 26.85.1 to 26.86.0 by @ebyhr in #17584
- Build: Bump software.amazon.awssdk:bom from 2.49.3 to 2.50.2 by @ebyhr in #17583
- Build: Bump com.github.ben-manes.caffeine:caffeine from 3.2.0 to 3.2.4 by @ebyhr in #17582
- Build: Bump actions/stale from 10.4.0 to 11.0.0 by @dependabot[bot] in #17576
- Build: Bump zizmorcore/zizmor-action from 0.6.1 to 0.6.2 by @dependabot[bot] in #17575
- Build: Bump gradle/actions/setup-gradle from 6.2.0 to 6.3.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17574
- Build: Bump actions/setup-java from 5.6.0 to 5.7.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17573
- Build: Bump com.diffplug.spotless:spotless-plugin-gradle from 8.8.0 to 8.9.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17569
- Build: Bump the codeql-action group with 3 updates by @dependabot[bot] in https://github.com/apache/iceberg/pull/17572
- Data, Spark: Support byte[] binary values in InternalRowConverter by @joyhaldar in https://github.com/apache/iceberg/pull/17482
- Flink: Reuse the catalog in the dynamic sink serializer cache by @vishnuprakaz in https://github.com/apache/iceberg/pull/17437
- Flink: Fix read split table properties being ignored by @vishnuprakaz in https://github.com/apache/iceberg/pull/17445
- Flink: Remove unused logger in TestIcebergCommitter by @uros-b in https://github.com/apache/iceberg/pull/17587
- Flink: Backport dynamic sink serializer cache catalog reuse to 2.0 and 1.20 (#17437) by @vishnuprakaz in https://github.com/apache/iceberg/pull/17590
- Flink: Avoid per-row field getter allocation in RowDataWrapper by @wombatu-kun in https://github.com/apache/iceberg/pull/16789
- Flink: Backport read split table properties fix to 2.0 and 1.20 (#17445) by @vishnuprakaz in https://github.com/apache/iceberg/pull/17591
- Flink: Backport RowDataWrapper per-row getter allocation fix to 2.0 and 1.20 (#16789) by @wombatu-kun in https://github.com/apache/iceberg/pull/17606
- Core, REST: Fix delete file references for DVs in the same Puffin file by @williamhyun in https://github.com/apache/iceberg/pull/17497
- Docs: Document missing read table properties in configuration by @uros-b in https://github.com/apache/iceberg/pull/17554
- Core: Support metrics with nested field in AppendBenchmark and FileGenerationUtil by @dramaticlly in https://github.com/apache/iceberg/pull/17391
- Core: Include CRC values in DV deserialization error message by @uros-b in https://github.com/apache/iceberg/pull/17393
- Site: Add blog post introducing the Variant type by @nssalian in https://github.com/apache/iceberg/pull/17537
- Core: Add max-file-group-input-files to valid rewrite options by @rahulsmahadev in https://github.com/apache/iceberg/pull/17544
- API: Respect plaintext files in EncryptingFileIO bulkDecrypt by @tom-s-powell in https://github.com/apache/iceberg/pull/17592
- Core: Fix AvroEncoderUtil header error printing literal %02X by @anxkhn in https://github.com/apache/iceberg/pull/17125
- Flink: Remove deprecated RewriteDataFiles.Builder.filter(Expression) by @dramaticlly in https://github.com/apache/iceberg/pull/17624
- Core: Fix Z-order byte encoding for floating-point values by @eye-gu in https://github.com/apache/iceberg/pull/17071
- Parquet: Fix notNaN for columns missing from files by @yangshangqing95 in https://github.com/apache/iceberg/pull/17633
- Spark: Remove deprecated and unused methods in SparkRead/WriteConf and SparkSchemaUtil by @dramaticlly in https://github.com/apache/iceberg/pull/17626
- Site: Update the variant blog with Apache Arrow variant support by @nssalian in https://github.com/apache/iceberg/pull/17640
- Data: Add Variant Support for file format tck by @Guosmilesmile in https://github.com/apache/iceberg/pull/17617
- Core: Call close on iterables returned by ManifestReader.liveEntries() in ManifestFilterManager by @kinolaev in https://github.com/apache/iceberg/pull/15713
- Parquet, Spark, Flink: Type uniformity for variant shredding by @nssalian in https://github.com/apache/iceberg/pull/17424
- API: Avoid intermediate collections in IN predicate metrics evaluation by @anoopj in https://github.com/apache/iceberg/pull/17659
- Core: Add content stats evaluator by @nastra in https://github.com/apache/iceberg/pull/17413
- API: Avoid intermediate collections in NOT IN strict metrics evaluation by @anoopj in https://github.com/apache/iceberg/pull/17661
- Core: Use TrackedFile constants for partition and content_stats fields by @nastra in https://github.com/apache/iceberg/pull/17649
- Kafka Connect: Remove deprecated TableReference and IcebergWriterResult members by @dramaticlly in https://github.com/apache/iceberg/pull/17623
- BigQuery: Remove deprecated catalog property constants by @dramaticlly in https://github.com/apache/iceberg/pull/17625
- API: Add Javadoc for the Metrics constructor parameters by @uros-b in https://github.com/apache/iceberg/pull/17608
- Build: Bump datamodel-code-generator from 0.71.0 to 0.72.2 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17673
- Build: Bump org.apache.httpcomponents.client5:httpclient5 from 5.6.3 to 5.6.4 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17674
- Build: Bump at.yawk.lz4:lz4-java from 1.11.1 to 1.11.2 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17675
- Build: Bump org.roaringbitmap:RoaringBitmap from 1.6.18 to 1.6.20 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17677
- Build: Bump jetty from 12.1.11 to 12.1.12 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17678
- Build: Bump io.netty:netty-buffer from 4.2.16.Final to 4.2.17.Final by @dependabot[bot] in https://github.com/apache/iceberg/pull/17679
- Build: Bump the codeql-action group with 3 updates by @dependabot[bot] in https://github.com/apache/iceberg/pull/17681
- Docs: Update Apache Fluss documentation link to correct path by @xxubai in https://github.com/apache/iceberg/pull/17647
- Arrow: Fix direct memory leak in row lineage vectorized readers by @Neuw84 in https://github.com/apache/iceberg/pull/17296
- Build: Bump software.amazon.awssdk:bom from 2.50.2 to 2.51.3 by @ebyhr in https://github.com/apache/iceberg/pull/17686
- Build: Bump com.google.cloud.gcs.analytics:gcs-analytics-core from 1.4.0 to 1.5.0 by @ebyhr in https://github.com/apache/iceberg/pull/17687
- Parquet: Fix notStartsWith skipping row groups with null values by @SEPURI-SAI-KRISHNA in https://github.com/apache/iceberg/pull/17656
- API: Extract superclass from StrictMetricsEvaluator by @nastra in https://github.com/apache/iceberg/pull/17511
- Core: Preserve snapshot pruning when ignoring residuals in AllManifestsTable by @yangshangqing95 in https://github.com/apache/iceberg/pull/17522
- Core: Simplify PartitionData.hashCode to avoid per-call allocations by @anoopj in https://github.com/apache/iceberg/pull/17666
- Core: Simplify list handling in manifest read and write paths by @uros-b in https://github.com/apache/iceberg/pull/17581
- Spark: Remove deprecated SparkFilters by @dramaticlly in https://github.com/apache/iceberg/pull/17702
- Docs: Align Flink docs with current engine by @daviddallakyan2005 in https://github.com/apache/iceberg/pull/17695
- Data: Remove deprecated GenericAppenderFactory and BaseFileWriterFactory by @dramaticlly in https://github.com/apache/iceberg/pull/17696
- Spark: Reduce TestRewriteDataFilesAction data volume to speed up CI by @wombatu-kun in https://github.com/apache/iceberg/pull/16565
- Build: Remove unused Avro dependency from iceberg-orc by @uros-b in https://github.com/apache/iceberg/pull/17694
- Core: Treat path prefixes as literals in RewriteTablePathUtil.replacePaths by @uros-b in https://github.com/apache/iceberg/pull/17521
- Spark 4.0/4.1: Remove deprecated SparkTableUtil methods by @dramaticlly in https://github.com/apache/iceberg/pull/17703
- Docs: Fix "refer" grammar in maintenance, AWS, and Nessie docs by @uros-b in https://github.com/apache/iceberg/pull/17580
- Data, Kafka Connect: Enable Parquet variant shredding for Kafka Connect and generic Record writes by @nssalian in https://github.com/apache/iceberg/pull/17520
- Core: Remove deprecated methods and fields scheduled for 1.12.0 removal by @dramaticlly in https://github.com/apache/iceberg/pull/17700
- Docs: Align Spark docs with current engine by @daviddallakyan2005 in https://github.com/apache/iceberg/pull/17688
- AWS: Remove deprecated S3 signer classes and properties by @dramaticlly in https://github.com/apache/iceberg/pull/17627
- Build: Fix OpenAPI test fixtures runtime dependency by @manuzhang in https://github.com/apache/iceberg/pull/17519
- Core: Remove deprecated DataReader in favor of PlannedDataReader by @dramaticlly in https://github.com/apache/iceberg/pull/17699
- API: Add tests for BinaryUtil by @uros-b in https://github.com/apache/iceberg/pull/17692
- Arrow: Fix vectorized read of all-null DELTA-encoded Parquet pages by @raunaqmorarka in https://github.com/apache/iceberg/pull/17017
- Data: Split BaseFormatModelTests into read and read-write test classes by @joyhaldar in https://github.com/apache/iceberg/pull/17711
- AWS, Core: Implement RemoteSigningConfig by @adutra in https://github.com/apache/iceberg/pull/17709
- Flink: Support variant for Avro readers and writers by @Guosmilesmile in https://github.com/apache/iceberg/pull/17737
- Docs: Fix duplicated word in Spark merge-schema description by @uros-b in https://github.com/apache/iceberg/pull/17746
- Core: Remove deprecated REST namespace encoding helpers by @dramaticlly in https://github.com/apache/iceberg/pull/17697
- Core: Use transaction metadata for post-commit file cleanup by @raunaqmorarka in https://github.com/apache/iceberg/pull/17708
- Core: Fail scans when position deletes/DVs don't match data file partition by @grantatspothero in https://github.com/apache/iceberg/pull/16957
- Build: Bump mkdocs-exclude-search from 0.6.6 to 0.6.7 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17775
- Build: Bump datamodel-code-generator from 0.72.2 to 0.73.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17776
- Build: Bump io.delta:delta-standalone_2.12 from 3.3.2 to 3.3.3 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17779
- Build: Bump astral-sh/setup-uv from 9.0.0 to 10.0.1 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17782
- Build: Bump the codeql-action group with 3 updates by @dependabot[bot] in https://github.com/apache/iceberg/pull/17781
- Build: Bump io.delta:delta-spark_2.12 from 3.3.2 to 3.3.3 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17780
- Parquet: Make createStructReader with fieldId abstract by @dramaticlly in https://github.com/apache/iceberg/pull/17698
- Flink: Avoid per-record Set allocation in the dynamic sink forward check by @sqd in https://github.com/apache/iceberg/pull/17618
- Core: Include valid range in BasePartitionStatistics position error by @uros-b in https://github.com/apache/iceberg/pull/17546
- Build: Bump software.amazon.awssdk:bom from 2.51.3 to 2.53.1 by @ebyhr in https://github.com/apache/iceberg/pull/17787
- Docs: Add MinIO AIStor to vendors.md by @harshavardhana in https://github.com/apache/iceberg/pull/17760
- Docs: Add OptimaFlo to vendors.md by @evanrosa in https://github.com/apache/iceberg/pull/17725
- Core: Remove deprecated HadoopFileIO(SerializableSupplier) constructor by @dramaticlly in https://github.com/apache/iceberg/pull/17704
- Connect: Fix idColumns are not read correctly from table config by @rainerschamm in https://github.com/apache/iceberg/pull/17152
- Site: Expand Variant intro blog with Iceberg table-level details by @nssalian in https://github.com/apache/iceberg/pull/17705
- API, Core, Spark: Add Hilbert-curve clustering strategy for
rewrite_data_filesby @GGraziadei in https://github.com/apache/iceberg/pull/16827 - Core, Spark: Fix stale manifest_length in rewrite_table_path manifest lists by @wombatu-kun in https://github.com/apache/iceberg/pull/16910
- Parquet: Fix misleading AlwaysFalse placeholder exception message by @yangshangqing95 in https://github.com/apache/iceberg/pull/17816
- Core: Add dv_count column to PartitionsTable metadata table by @hemanthboyina in https://github.com/apache/iceberg/pull/16125
- ORC: Fix timestamp nano predicate pushdown by @yangshangqing95 in https://github.com/apache/iceberg/pull/17750
- Revert "Core: Add dv_count column to PartitionsTable metadata table" by @gaborkaszab in https://github.com/apache/iceberg/pull/17825
- Core: Reduce visibility on scan planning response builder for specsById and deleteFiles by @dramaticlly in https://github.com/apache/iceberg/pull/17638
- Core: Add geometry bounds builder by @huan233usc in https://github.com/apache/iceberg/pull/17509
- API: Add a builder usage example to PartitionSpec Javadoc by @uros-b in https://github.com/apache/iceberg/pull/17747
- Build: Clean up shaded-jar LICENSE/NOTICE and add missing third-party notices by @wombatu-kun in https://github.com/apache/iceberg/pull/16543
- Spark: Make the view stored-schema cast configurable by @bmorck in https://github.com/apache/iceberg/pull/17499
- Core, Data, Spark, Flink: Remove of position delete files with row data by @dramaticlly in https://github.com/apache/iceberg/pull/17706
- Spec: Clarify content file uniqueness within a snapshot by @RussellSpitzer in https://github.com/apache/iceberg/pull/17198
- Core: Preserve trailing slash on table location in V4 manifest reader by @anoopj in https://github.com/apache/iceberg/pull/17807
- Spark: Backport view schema binding mode to Spark 3.5 and 4.0 by @bmorck in https://github.com/apache/iceberg/pull/17838
- API, Core, Parquet: Carry avg value sizes for v4 content stats by @huan233usc in https://github.com/apache/iceberg/pull/17451
- API, AWS, Azure, GCP: Track read metrics for positioned, vectored, and accelerated reads by @dbtsai in https://github.com/apache/iceberg/pull/17236
- Docs: Flink DDL documentation correction by @talatuyarer in https://github.com/apache/iceberg/pull/17854
- Flink: Upgrade to latest supported Flink versions 2.2 and 2.3 without dropping 2.1 by @talatuyarer in https://github.com/apache/iceberg/pull/17849
- Flink: Catalog type refactor in Test and add support for REST catalog in CatalogTestBase by @talatuyarer in https://github.com/apache/iceberg/pull/17861
- Build: Add descriptions to OpenAPI spec validation tasks by @uros-b in https://github.com/apache/iceberg/pull/17799
- Core: Read delete manifests correctly during snapshot expiration by @dramaticlly in https://github.com/apache/iceberg/pull/17763
- Spark: Fix map value decoding in test helpers by @charliec05 in https://github.com/apache/iceberg/pull/17721
- Docs: Update documentation Flink versions and Flink lifecycle maintenance. by @talatuyarer in https://github.com/apache/iceberg/pull/17869
- Flink: Catalog type refactor in Test and add support for REST catalog in CatalogTestBase backport 1.20 by @talatuyarer in https://github.com/apache/iceberg/pull/17867
- Flink: Catalog type refactor in Test and add support for REST catalog in CatalogTestBase forward port 2.3 by @talatuyarer in https://github.com/apache/iceberg/pull/17866
- Flink: Catalog type refactor in Test and add support for REST catalog in CatalogTestBase forward port 2.2 by @talatuyarer in https://github.com/apache/iceberg/pull/17865
- Flink: Fix deleted rows reappearing after a failed eq-delete conversion cycle by @vishnuprakaz in https://github.com/apache/iceberg/pull/17630
- Build: Bump Avro Version to Avro 1.12.2 by @steveloughran in https://github.com/apache/iceberg/pull/17188
- Docs: Fix duplicate 'type' key in Nessie Flink Python example by @thswlsqls in https://github.com/apache/iceberg/pull/17091
- Flink: Backport eq-delete conversion replan reindex fix to 1.20, 2.2 and 2.3 by @vishnuprakaz in https://github.com/apache/iceberg/pull/17875
- Build: Bump software.amazon.awssdk:bom from 2.53.1 to 2.54.2 by @ebyhr in https://github.com/apache/iceberg/pull/17887
- Build: Bump docker/setup-buildx-action from 4.2.0 to 4.3.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17886
- Build: Bump com.diffplug.spotless:spotless-plugin-gradle from 8.9.0 to 8.10.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17883
- Build: Bump the codeql-action group with 3 updates by @dependabot[bot] in https://github.com/apache/iceberg/pull/17885
- Build: Bump datamodel-code-generator from 0.73.0 to 0.74.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17880
- Build: Bump jackson-bom from 2.22.1 to 2.22.2 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17881
- API, Core: Fix typos in test comments by @damansingh1313 in https://github.com/apache/iceberg/pull/17889
- Docs, Core, AWS, BigQuery, Flink: Fix miscellaneous typos in comments and docs by @Akanksha-kedia in https://github.com/apache/iceberg/pull/17898
- Docs: Run
generateRuntimeDepson all modules by @Fokko in https://github.com/apache/iceberg/pull/17323 - Docs: Fix grammatical typo in Spark module description by @Akanksha-kedia in https://github.com/apache/iceberg/pull/17897
- Core: Fix geo bounds in v4 legacy stat maps by @vishnuprakaz in https://github.com/apache/iceberg/pull/17493
- Spark 4.1: Mark overrides of deprecated Spark API as deprecated by @manuzhang in https://github.com/apache/iceberg/pull/16028
- Core: Remove ThreadPools.WORKER_THREAD_POOL_SIZE_PROP update warning log message by @dramaticlly in https://github.com/apache/iceberg/pull/17812
- Dell: Preserve known ECS input file lengths by @charliec05 in https://github.com/apache/iceberg/pull/17870
- Core: Add Eager fetch to parquet read path by @varun-lakhyani in https://github.com/apache/iceberg/pull/17284
- Spark 4.1: Add rewrite option to enable executor cache for delete files by @anuragmantri in https://github.com/apache/iceberg/pull/17868
- Spark 4.0: Add rewrite option to enable executor cache for delete files by @anuragmantri in https://github.com/apache/iceberg/pull/17907
- Spark 3.5: Add rewrite option to enable executor cache for delete files by @anuragmantri in https://github.com/apache/iceberg/pull/17909
- Core: Clean up TestTrackingBuilder by @gaborkaszab in https://github.com/apache/iceberg/pull/17145
- Core, API, Parquet: Collapse redundant nested if statements by @damansingh1313 in https://github.com/apache/iceberg/pull/17905
- Docs: Add max-file-group-input-files to rewrite options tables in spark-procedures.md by @anshulbaliga7 in https://github.com/apache/iceberg/pull/17707
- Docs: Bump site Flink version to 2.3 by @talatuyarer in https://github.com/apache/iceberg/pull/17936
- Docs: Fix wrong config keys in Flink maintenance docs by @talatuyarer in https://github.com/apache/iceberg/pull/17935
- Core, Open-API, Spark, Flink: Use String.replace for literal replacements by @uros-b in https://github.com/apache/iceberg/pull/17484
- API: Document supported transform names in Transforms.fromString by @uros-b in https://github.com/apache/iceberg/pull/17693
- Spec: Add finer grained read restrictions as part of loadTable by @singhpk234 in https://github.com/apache/iceberg/pull/13879
- Build: Bump mkdocs-material from 9.7.5 to 9.7.7 in /site by @dependabot[bot] in https://github.com/apache/iceberg/pull/17942
- API: Fix grammatical typos in UpdatePartitionSpec Javadoc by @uros-b in https://github.com/apache/iceberg/pull/17941
- Core, Hive, Spark: Auto close JsonGenerator using try-with-resources by @dramaticlly in https://github.com/apache/iceberg/pull/17931
- Core, OpenAPI: Preserve avg value sizes in REST JSON by @huan233usc in https://github.com/apache/iceberg/pull/17855
- Core, Flink, Spark, Build: Replace Guava Queues with plain JDK and bump guava from 33.6.0-jre to 33.7.1-jre by @ebyhr in https://github.com/apache/iceberg/pull/17888
- Core: Fix commit validation when a data file has multiple DVs across snapshots by @xiaoxuandev in https://github.com/apache/iceberg/pull/17764
- API, Core: Expose co-located deletion vector through DataFile by @anoopj in https://github.com/apache/iceberg/pull/17928
- API: Add contextual load apis by @singhpk234 in https://github.com/apache/iceberg/pull/15895
- Spark: Add support for 4.2.0 by @manuzhang in https://github.com/apache/iceberg/pull/14984
- Spark 4.2: Fix build failures from missed cleanups by @huaxingao in https://github.com/apache/iceberg/pull/17952
- Docs: Note that REST catalog credentials should be redacted by engines by @huaxingao in https://github.com/apache/iceberg/pull/17920
- Core: Avoid per-row path rehashing in toPositionIndexes by @kinolaev in https://github.com/apache/iceberg/pull/17864
- API, Core: Add ManifestFile adapter for v4 tracked files by @anoopj in https://github.com/apache/iceberg/pull/17932
- Build: Bump zizmorcore/zizmor-action from 0.6.2 to 0.6.3 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17976
- Build: Bump actions/setup-java from 5.7.0 to 6.0.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17975
- Build: Bump the codeql-action group with 3 updates by @dependabot[bot] in https://github.com/apache/iceberg/pull/17974
- Build: Bump org.openapitools:openapi-generator-gradle-plugin from 7.24.0 to 7.25.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17973
- Build: Bump org.xerial:sqlite-jdbc from 3.53.2.1 to 3.53.4.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17972
- Build: Bump com.diffplug.spotless:spotless-plugin-gradle from 8.10.0 to 8.10.1 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17970
- Build: Bump software.amazon.awssdk:bom from 2.54.2 to 2.54.7 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17969
- Build: Bump datamodel-code-generator from 0.74.0 to 0.76.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/17968
- Build: Bump com.google.cloud:libraries-bom from 26.86.0 to 26.87.0 by @ebyhr in https://github.com/apache/iceberg/pull/17981
- Flink: Fix microsecond truncation for timestamps in arrays and maps by @jackylee-ch in https://github.com/apache/iceberg/pull/18001
- Docs, Flink: Update Flink configuration and write options in Iceberg documentation by @talatuyarer in https://github.com/apache/iceberg/pull/17938
- Core: Defensively copy TableMetadata.encryptionKeys to an immutable list by @smaheshwar-pltr in https://github.com/apache/iceberg/pull/17985
- Kafka Connect: Track control topic offsets as a high-water mark by @vbhanuchander-lang in https://github.com/apache/iceberg/pull/17933
- kafka connect: coordinator only commits offsets when greater than existing offsets by @twthorn in https://github.com/apache/iceberg/pull/17552
- Spark: Restore 4.2 commit history by @manuzhang in https://github.com/apache/iceberg/pull/17967
- Core, Hive: Fix NPE in commit status check when a create commit fails by @superdiaodiao in https://github.com/apache/iceberg/pull/17464
- Core: Fix partition info display in RewritePositionDeleteFilesSparkAction by @manuzhang in https://github.com/apache/iceberg/pull/15175
- Docs: Add dedicated page for REST Catalog documentation by @talatuyarer in https://github.com/apache/iceberg/pull/17940
- Common: Add missing Javadoc for Dyn* utility classes by @uros-b in https://github.com/apache/iceberg/pull/17922
- REST Spec: add labels field for catalog metadata enrichment by @laskoviymishka in https://github.com/apache/iceberg/pull/15750
- Build: Include Spark 4.2 in source releases by @manuzhang in https://github.com/apache/iceberg/pull/18024
- Docker: Use WAL mode for the REST fixture's SQLite backend by @kevinjqliu in https://github.com/apache/iceberg/pull/18044
- Core: (Nit) Encrypt manifest output files directly by @smaheshwar-pltr in https://github.com/apache/iceberg/pull/18014
- Parquet: Fix nested initial default applied when ancestor struct is null by @amogh-jahagirdar in https://github.com/apache/iceberg/pull/17320
- API, Core: Read V4 manifests through ManifestFile by @anoopj in https://github.com/apache/iceberg/pull/18021
- Core: Make tracked v4 file adapters serializable by @anoopj in https://github.com/apache/iceberg/pull/18031
- Core: Retry requests with an Idempotency-Key on retriable errors by @HotSushi in https://github.com/apache/iceberg/pull/17947
- ORC: Fix filter pushdown on tables with a variant column by @jackylee-ch in https://github.com/apache/iceberg/pull/17998
- Flink: Build nested field getters once in RowDataProjection by @wombatu-kun in https://github.com/apache/iceberg/pull/16790
- Flink: Backport building nested field getters once in RowDataProjection to 1.20, 2.2 and 2.3 (#16790) by @wombatu-kun in https://github.com/apache/iceberg/pull/18058
- Core, REST: Fix path segment encoding to use RFC 3986 percent-encoding by @adutra in https://github.com/apache/iceberg/pull/15989
- Spark, Flink: Remove Joda from
SparkUtil.javaand tests by @Fokko in https://github.com/apache/iceberg/pull/17579 - Spark: Encrypt manifests written by
rewrite_manifestsby @smaheshwar-pltr in https://github.com/apache/iceberg/pull/17987 - Spark: Fix Z-order NPE on null booleans and case-insensitive column resolution by @GGraziadei in https://github.com/apache/iceberg/pull/17669
- Core, Parquet: Fix null counting for parquet that doesn't have null_count stats by @xndai in https://github.com/apache/iceberg/pull/17557
- Parquet: parse row-group size as long by @pritampan in https://github.com/apache/iceberg/pull/18055
- Parquet: Compute geometry bounding box metrics by @huan233usc in https://github.com/apache/iceberg/pull/17161
- Build: Pull MinIO images from Quay by @smaheshwar-pltr in https://github.com/apache/iceberg/pull/18071
- Docs: Add SeaweedFS to vendors and third-party catalogs nav by @chrislusf in https://github.com/apache/iceberg/pull/17605
- Parquet: Decode ENUM/JSON columns as UTF-8 in row-group filter conversions by @edgarRd in https://github.com/apache/iceberg/pull/17157
- Spark: Backport Z-order null boolean and case-insensitive column fixes to 3.5, 4.0 and 4.2 by @GGraziadei in https://github.com/apache/iceberg/pull/18077
- Spark: Reject
rewrite_table_pathfor encrypted tables by @smaheshwar-pltr in https://github.com/apache/iceberg/pull/17988 - Build: Fix Spark publication and CI configuration by @manuzhang in https://github.com/apache/iceberg/pull/18042
- Build: Bump docker/setup-qemu-action from 4.2.0 to 4.3.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18091
- Build: Bump software.amazon.awssdk:bom from 2.54.7 to 2.54.13 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18089
- Build: Bump com.diffplug.spotless:spotless-plugin-gradle from 8.10.1 to 8.10.2 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18085
- Build: Bump org.roaringbitmap:RoaringBitmap from 1.6.20 to 1.6.21 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18084
- Build: Bump datamodel-code-generator from 0.76.0 to 0.76.2 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18083
- Build: Bump io.grpc:grpc-netty-shaded from 1.83.0 to 1.84.0 by @ebyhr in https://github.com/apache/iceberg/pull/18093
- Build: Bump com.google.cloud:libraries-bom from 26.87.0 to 26.88.0 by @ebyhr in https://github.com/apache/iceberg/pull/18094
- Core: Make REST scan planning poll retries configurable by @Bartekszost in https://github.com/apache/iceberg/pull/17846
- Kafka Connect: Fix MongoDataConverter array conversion of timestamp and date types by @wombatu-kun in https://github.com/apache/iceberg/pull/16604
- Flink: Preserve RowKind in DynamicIcebergSink's DataConverter by @lucasgameiroborges in https://github.com/apache/iceberg/pull/18101
- Flink: Support reading Iceberg views in SQL by @talatuyarer in https://github.com/apache/iceberg/pull/17859
- Core, AWS: Fix case-insensitive handling of REST response header field names by @moomindani in https://github.com/apache/iceberg/pull/17979
- MR: Pass partition constants to the format model read builder by @thswlsqls in https://github.com/apache/iceberg/pull/18037
- Flink: Backport view read support to 2.2, 2.1 and 1.20 by @talatuyarer in https://github.com/apache/iceberg/pull/18104
- Spark 3.5, 4.0: Add sort_by parameter to rewrite_manifests procedure by @hemanthboyina in https://github.com/apache/iceberg/pull/18065
- Parquet: Preserve geometry CRS in writer metrics by @huan233usc in https://github.com/apache/iceberg/pull/18072
- Core, Spark: scan based remove dangling delete action by @kinolaev in https://github.com/apache/iceberg/pull/15727
- Spark 4.2: Add insert, update, and delete write summaries to snapshot summary by @rahulsmahadev in https://github.com/apache/iceberg/pull/17955
- Flink: Tolerate catalogs that reject view operations at runtime by @talatuyarer in https://github.com/apache/iceberg/pull/18106
- Docs: Fix grammar and spacing typos in Delta Lake migration and Flink maintenance docs by @uros-b in https://github.com/apache/iceberg/pull/18127
- Flink: Backport view-incapable catalog handling to 2.2, 2.1 and 1.20 by @talatuyarer in https://github.com/apache/iceberg/pull/18128
- Docs: Add blog post for Iceberg-Python 0.12.0 release by @rambleraptor in https://github.com/apache/iceberg/pull/17948
- Parquet: Remove dead commented-out dictionary binding in PageIterator by @uros-b in https://github.com/apache/iceberg/pull/18136
- Parquet: Document and test iterator reuse in repeated value writers by @wombatu-kun in https://github.com/apache/iceberg/pull/18133
- Flink: Avoid per-row allocations in Parquet array and map writers by @wombatu-kun in https://github.com/apache/iceberg/pull/16791
- Core: Add a read-only Mumbling bitmap implementation by @rdblue in https://github.com/apache/iceberg/pull/16747
- Flink: Backport avoiding per-row allocations in Parquet array and map writers to 1.20, 2.1 and 2.2 (#16791) by @wombatu-kun in https://github.com/apache/iceberg/pull/18137
- Flink: Support CREATE VIEW, DROP VIEW and ALTER VIEW RENAME in FlinkCatalog by @talatuyarer in https://github.com/apache/iceberg/pull/17873
- Flink: Backport view CREATE, DROP, ALTER VIEW RENAME support to 2.2, 2.1 and 1.20 by @talatuyarer in https://github.com/apache/iceberg/pull/18139
- Site: fix the malformed StarTree Docs URL by @simpleqt in https://github.com/apache/iceberg/pull/18143
- Core: [2/N] Send the referenced-by view chain to REST catalogs by @singhpk234 in https://github.com/apache/iceberg/pull/18015
- Core: Read content stats from v4 Manifest by @rdblue in https://github.com/apache/iceberg/pull/18109
- Core, Hive: Commit manifest list encryption keys with the snapshot that uses them by @smaheshwar-pltr in https://github.com/apache/iceberg/pull/17984
- Core, Spark 4.2: Validate snapshot when removing dangling deletes by @manuzhang in https://github.com/apache/iceberg/pull/18061
- GCP: Reject invalid GCS buffered read ranges by @charliec05 in https://github.com/apache/iceberg/pull/17961
- Core: Implement stats filtering in V4ManifestReader by @rdblue in https://github.com/apache/iceberg/pull/18147
- Format: fix the malformed inline link to Appendix A by @simpleqt in https://github.com/apache/iceberg/pull/18141
- Docs: fix dead anchors in the docs site by @simpleqt in https://github.com/apache/iceberg/pull/18140
- Spark: Fix RemoveDanglingDeleteFilesAction with Kryo by @kinolaev in https://github.com/apache/iceberg/pull/18130
- Core: add labels to the load table/view read path by @laskoviymishka in https://github.com/apache/iceberg/pull/18045
- site: Add mumbling bitmaps to the list of links by @Fokko in https://github.com/apache/iceberg/pull/18129
- Core: ManifestListWriter cleanup around encryption keys by @gaborkaszab in https://github.com/apache/iceberg/pull/18150
- Kafka Connect: Fix coordinator potentially committing files from prior commit in certain rebalance scenarios by @ajreid21 in https://github.com/apache/iceberg/pull/17713
- Spark: backport RemoveDanglingDeleteFilesAction tests by @kinolaev in https://github.com/apache/iceberg/pull/18152
- Core: Use ManifestBitmap for manifest deletion vector in ManifestInfo by @anoopj in https://github.com/apache/iceberg/pull/18138
- Spark 4.2: Extract streaming initial offset store by @huan233usc in https://github.com/apache/iceberg/pull/18092
- REST: Quote ETag headers in REST catalog adapter by @piotrrzysko in https://github.com/apache/iceberg/pull/17598
- Core: Add test coverage for NPE and deep copy bug in stats by @nastra in https://github.com/apache/iceberg/pull/18060
- Build: Bump astral-sh/setup-uv from 10.0.1 to 10.1.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18186
- Build: Bump actions/setup-java from 6.0.0 to 6.0.1 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18185
- Build: Bump io.netty:netty-buffer from 4.2.17.Final to 4.2.18.Final by @dependabot[bot] in https://github.com/apache/iceberg/pull/18182
- Build: Bump at.yawk.lz4:lz4-java from 1.11.2 to 1.11.3 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18180
- Build: Bump org.roaringbitmap:RoaringBitmap from 1.6.21 to 1.6.23 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18179
- Build: Bump com.google.cloud:libraries-bom from 26.88.0 to 26.88.1 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18176
- Build: Bump jetty from 12.1.12 to 12.1.13 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18175
- Build: Bump datamodel-code-generator from 0.76.2 to 0.80.0 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18174
- Build: Bump the codeql-action group with 3 updates by @dependabot[bot] in https://github.com/apache/iceberg/pull/18183
- Docs: Enhance maintenance documentation with new actions by @talatuyarer in https://github.com/apache/iceberg/pull/17939
- Build: Bump nessie from 0.108.4 to 0.108.8 by @dependabot[bot] in https://github.com/apache/iceberg/pull/18177
- Docs: Fix catalog properties link in terms.md by @anishmehta24 in https://github.com/apache/iceberg/pull/18192
- Docs: Rewrite AGENTS.md comment and Javadoc guidance by @pvary in https://github.com/apache/iceberg/pull/18167
- Docs: Add testing guidance to AGENTS.md by @pvary in https://github.com/apache/iceberg/pull/18166
- Build: exclude site/ from the source release archive by @nssalian in https://github.com/apache/iceberg/pull/18193
- Core, Spark 4.2: Add PositionDeleteIndex.forEachInRange and use it in vectorized delete checks by @JeonDaehong in https://github.com/apache/iceberg/pull/18027
- Flink: Backport RowKind fix in DynamicIcebergSink's DataConverter to 1.20/2.1/2.2 by @lucasgameiroborges in https://github.com/apache/iceberg/pull/18196
- Build: Bump bouncycastle from 1.85 to 1.86 by @ebyhr in https://github.com/apache/iceberg/pull/18194
- Parquet: Fix incorrect pruning for nested fields in optional structs by @szehon-ho in https://github.com/apache/iceberg/pull/18069
- Spec: Align the decimal type string with the canonical form by @moomindani in https://github.com/apache/iceberg/pull/18145
- Core: expose catalog labels on the loaded table via SupportsLabels by @laskoviymishka in https://github.com/apache/iceberg/pull/18046
- Docs: Fix replaceSortOrder example in evolution.md by @Rango-2017 in https://github.com/apache/iceberg/pull/18201
- Build: Bump AWS SDK to 2.54.17 and migrate to Apache HttpClient 5 by @ebyhr in https://github.com/apache/iceberg/pull/18195
- Docs: Add AI contribution and disclosure rules to AGENTS.md by @pvary in https://github.com/apache/iceberg/pull/18168
- Parquet: Fix Variant conversion in default Avro writer by @2dmurali in https://github.com/apache/iceberg/pull/17944
- Core: Add inheritance to V4ManifestReader by @rdblue in https://github.com/apache/iceberg/pull/18171
- Parquet: Remove commons-lang3 usage from ParquetVariantReaders by @GGraziadei in https://github.com/apache/iceberg/pull/18208
- Spark: Fix RewriteManifestsSparkAction sortBy() for dotted partition field names by @agnes-xinyi-lu in https://github.com/apache/iceberg/pull/17428
- Core: Avoid redundant SplitScanTask wrapper for files that fit in a single split by @wangyum in https://github.com/apache/iceberg/pull/18002
- Spark 4.2: Push down opaque partition predicates by @szehon-ho in https://github.com/apache/iceberg/pull/17956
- Spark: Backport forEachInRange vectorized delete checks to 3.5, 4.0 and 4.1 by @JeonDaehong in https://github.com/apache/iceberg/pull/18207
- GCP: Add Caffeine to the gcp-bundle LICENSE by @Kurtiscwright in https://github.com/apache/iceberg/pull/18218
- Build: Add Jackson's Schubfach and fast_double_parser to runtime LICENSE and NOTICE by @kevinjqliu in https://github.com/apache/iceberg/pull/18227
- GCP: Add CEL-Java to the gcp-bundle LICENSE by @kevinjqliu in https://github.com/apache/iceberg/pull/18226
- Core: Implement v4 first row ID assignment by @rdblue in https://github.com/apache/iceberg/pull/18225
- Core: Do not retry Tasks after interrupt by @huaxingao in https://github.com/apache/iceberg/pull/18213
- Build: Replace MinIO with RustFS in integration tests by @smaheshwar-pltr in https://github.com/apache/iceberg/pull/18247
New Contributors
- @liuliquan-marshal made their first contribution in #16351
- @milastdbx made their first contribution in #15834
- @SteveStevenpoor made their first contribution in #16419
- @xndai made their first contribution in #16343
- @MonkeyCanCode made their first contribution in #16521
- @pratham76 made their first contribution in #16557
- @Wenjun7J made their first contribution in #16208
- @lrsb made their first contribution in #16011
- @harperjiang made their first contribution in #16501
- @j1wonpark made their first contribution in #16626
- @cenotee made their first contribution in #16443
- @turboFei made their first contribution in #16695
- @huan233usc made their first contribution in #16607
- @felixschneider99 made their first contribution in #15614
- @laskoviymishka made their first contribution in #16446
- @HenryCaiHaiying made their first contribution in #16453
- @mateusaubin made their first contribution in #16862
- @Gerrrr made their first contribution in #16713
- @Fezinvirtual made their first contribution in #16879
- @twthorn made their first contribution in #16826
- @alexandrefimov made their first contribution in #16664
- @Wyatt-Hawes made their first contribution in #16853
- @sejal-gupta-ksolves made their first contribution in #16725
- @HuaHuaY made their first contribution in #16686
- @GabrielBBaldez made their first contribution in #16794
- @anxkhn made their first contribution in #17126
- @raghav-reglobe made their first contribution in #16363
- @Schlitzohr101 made their first contribution in #17123
- @gerashegalov made their first contribution in #16154
- @jamesdilworth made their first contribution in #17197
- @Jimvin made their first contribution in #17136
- @cbb330 made their first contribution in #16692
- @terrytlu made their first contribution in #17317
- @jb185048 made their first contribution in #17353
- @dannycjones made their first contribution in #17032
- @yangshangqing95 made their first contribution in #17441
- @fivetran-jacklowery made their first contribution in #17496
- @eye-gu made their first contribution in https://github.com/apache/iceberg/pull/17071
- @SEPURI-SAI-KRISHNA made their first contribution in https://github.com/apache/iceberg/pull/17656
- @daviddallakyan2005 made their first contribution in https://github.com/apache/iceberg/pull/17695
- @harshavardhana made their first contribution in https://github.com/apache/iceberg/pull/17760
- @evanrosa made their first contribution in https://github.com/apache/iceberg/pull/17725
- @rainerschamm made their first contribution in https://github.com/apache/iceberg/pull/17152
- @GGraziadei made their first contribution in https://github.com/apache/iceberg/pull/16827
- @bmorck made their first contribution in https://github.com/apache/iceberg/pull/17499
- @dbtsai made their first contribution in https://github.com/apache/iceberg/pull/17236
- @damansingh1313 made their first contribution in https://github.com/apache/iceberg/pull/17889
- @Akanksha-kedia made their first contribution in https://github.com/apache/iceberg/pull/17898
- @vbhanuchander-lang made their first contribution in https://github.com/apache/iceberg/pull/17933
- @superdiaodiao made their first contribution in https://github.com/apache/iceberg/pull/17464
- @chrislusf made their first contribution in https://github.com/apache/iceberg/pull/17605
- @Bartekszost made their first contribution in https://github.com/apache/iceberg/pull/17846
- @lucasgameiroborges made their first contribution in https://github.com/apache/iceberg/pull/18101
- @simpleqt made their first contribution in https://github.com/apache/iceberg/pull/18143
- @piotrrzysko made their first contribution in https://github.com/apache/iceberg/pull/17598
- @anishmehta24 made their first contribution in https://github.com/apache/iceberg/pull/18192
- @Rango-2017 made their first contribution in https://github.com/apache/iceberg/pull/18201
- @2dmurali made their first contribution in https://github.com/apache/iceberg/pull/17944
Full Changelog: apache-iceberg-1.11.0...apache-iceberg-1.12.0