This is an automated email from the ASF dual-hosted git repository.
sungwy pushed a change to branch sungwy-operation
in repository https://gitbox.apache.org/repos/asf/iceberg.git
from dde05cdf7d DOCS: Explicitly specify `operation` as a _required_ field
of `summary` field
add d4f0d7e803 Flink: Add IcebergSinkBuilder interface allowed unification
of most of operations on FlinkSink and IcebergSink Builders (#11305)
add b8c2b20237 Build: Bump parquet from 1.13.1 to 1.14.3 (#11264)
add de48a74263 Build: Bump com.palantir.baseline:gradle-baseline-java
(#11362)
add 181476471a Build: Bump com.google.errorprone:error_prone_annotations
(#11360)
add 0640a38b6b Build: Bump software.amazon.awssdk:bom from 2.28.21 to
2.28.26 (#11359)
add ce75f52719 Build: Bump com.google.cloud:libraries-bom from 26.48.0 to
26.49.0 (#11363)
add c16cefa501 Core: Move deleteRemovedMetadataFiles(..) to CatalogUtil
(#11352)
add d0a7ff915e Arrow: Fix indexing in Parquet dictionary encoded values
readers (#11247)
add a19896658c Spark 3.5: Update Spark to use planned Avro reads (#11299)
add a8ec43d975 Core, Spark 3.5: Remove dangling deletes as part of
RewriteDataFilesAction (#9724)
add 97946088a8 Spark: Randomize view/function names in testing (#11381)
add 60181f9a76 Spark 3.4: Randomize view/function names in testing (#11382)
add 9c0a806846 Spark 3.4: Action to remove dangling deletes (#11377)
add 043757c0a1 Spark 3.5: Reset Spark Conf for each test in
TestCompressionSettings (#11333)
add 02a988b09a Spec: Adds Row Lineage (#11130)
add 4850b622c7 AWS: Support S3 directory bucket listing (#11021)
add 1cb88a64f8 Core: Add LoadCredentialsResponse class/parser (#11339)
add 35a02d035e OpenAPI: Add endpoint for refreshing vended credentials
(#11281)
add 6ba1a1f578 AWS: Use testcontainers-minio instead of S3Mock (#11349)
add 12ac3ee5d3 Kafka Connect: Include third party licenses and notices in
distribution (#10829)
add fdc2c223ef Deprecate iceberg-pig (#11379)
add 6b04a6d000 Core: Track data files by spec id instead of full
PartitionSpec (#11323)
add 32e9f40468 Spark 3.5: Don't change table distribution when only
altering local order (#10774)
add 7738e1d722 Spec: Fix table of content generation (#11067)
add 9ecd97bf45 [KafkaConnect] Fix RecordConverter for UUID and Fixed Types
(#11346)
add 7ad11b2df1 Core: Snapshot `summary` map must have `operation` key
(#11354)
add 2b55fef7cc Core: Update TableMetadataParser to ensure all streams
closed (#11220)
add e3bbcac852 Build: Bump Spark 3.4 to 3.4.4 (#11366)
add b4d178fa05 Build: Bump junit from 5.11.1 to 5.11.3 (#11401)
add 9565b9c401 Build: Bump software.amazon.awssdk:bom from 2.28.26 to
2.29.1 (#11400)
add 681b09ddc9 Core: Move Javadoc about commit retries to SnapshotProducer
(#10995)
add 9fc9c052b5 Build: Bump junit-platform from 1.11.2 to 1.11.3 (#11402)
add 68a7102073 Build: Bump org.xerial:sqlite-jdbc from 3.46.1.3 to
3.47.0.0 (#11407)
add 48acaadcf9 Build: Bump
software.amazon.s3.accessgrants:aws-s3-accessgrants-java-plugin (#11405)
add c3191eecd9 Build: Bump net.snowflake:snowflake-jdbc from 3.19.0 to
3.19.1 (#11406)
add 6e911e0ea3 Build: Bump testcontainers from 1.20.2 to 1.20.3 (#11404)
add d10e67d422 Build: Bump com.google.errorprone:error_prone_annotations
(#11403)
add b4b0bdc543 Build: Bump mkdocs-macros-plugin from 1.2.0 to 1.3.7
(#11399)
add 696204392c Build: Bump mkdocs-material from 9.5.39 to 9.5.42 (#11398)
add 86a8560315 Flink: Fix disabling flaky range distribution bucketing
tests (#11410)
add a6503f573c Bump Azurite to the latest version (#11411)
add a28ebf748c Build: Bump datamodel-code-generator from 0.26.1 to 0.26.2
(#11356)
add 6c58f5bb7f Revert "Core: Snapshot `summary` map must have `operation`
key (#11354)" (#11409)
add e013c67f24 Aliyun: Remove spring-boot dependency (#11291)
add 7ac617a5a8 Build: Bump com.azure:azure-sdk-bom from 1.2.25 to 1.2.28
(#11267)
add 47eac5221b Spark: Flaky test due temp directory (#10811)
add 1e3ee1e4e8 Core: Add portable Roaring bitmap for row positions (#11372)
add 602c2b2dbe Flink 1.20: Update Flink to use planned Avro reads (#11386)
add 740d4e7b1c open-api: Fix `testFixtures` dependencies (#11422)
add 469c5560b2 Core: use ManifestFiles.open when possible (#11414)
add 5359bea71b GCS: Refresh vended credentials (#11282)
add bedc71167b Docs: Add 21 blogs / fix one broken link (#11424)
add 9e895cb6df AWS: Refresh vended credentials (#11389)
add 7c39086193 Build: Bump Hadoop to 3.4.1 (#11428)
add dec84c0549 Core: Remove credentials from LoadViewResponse (#11432)
add f4b36a5e55 OpenAPI: Remove credentials from LoadViewResult (#11433)
add 91e04c9c88 API: Add compatibility checks for Schemas with default
values (#11434)
add 57fb6d5658 Doc: Update rewrite data files spark procedure (#11396)
add ea61ee46db Docs: warn `parallelism > 1` doesn't work for migration
procedures (#11417)
add 1d4df34d7b Core: Log retry sleep time (#11413)
add caf424a373 Core: Use RoaringPositionBitmap in position index (#11441)
add fe23584fc3 Core: Add validation for table commit properties (#11437)
add 8b4ebc66e1 Core: Add cardinality to PositionDeleteIndex (#11442)
add b9ebc71fbc Puffin: Add deletion-vector-v1 blob type (#11238)
add d368a5f844 Spec: Add deletion vectors to the table spec (#11240)
add d9b9768766 API, Core: Add data file reference to DeleteFile (#11443)
add e47fa6a581 Build: Bump software.amazon.awssdk:bom from 2.29.1 to
2.29.6 (#11454)
add 29ee906496 Build: Bump com.gradleup.shadow:shadow-gradle-plugin from
8.3.3 to 8.3.5 (#11452)
add 7ffb6a3de7 Build: Bump com.google.cloud:libraries-bom from 26.49.0 to
26.50.0 (#11451)
add aa27d9057d Build: Bump org.apache.httpcomponents.client5:httpclient5
(#11450)
add c7f0f80e03 Build: Bump com.azure:azure-sdk-bom from 1.2.28 to 1.2.29
(#11453)
add 0669bcbad7 Flink: Maintenance - TableManager + ExpireSnapshots (#11144)
add ec0eef45eb Build: Bump mkdocs-material from 9.5.42 to 9.5.43 (#11455)
add 8357f65d23 Build: Bump net.snowflake:snowflake-jdbc from 3.19.1 to
3.20.0 (#11447)
add 329846875d Build: Bump kafka from 3.8.0 to 3.8.1 (#11449)
add 9dcf0d3d32 Build: Bump jackson-bom from 2.18.0 to 2.18.1 (#11448)
add af5be32fbe Core: Fix generated position delete file spec (#11458)
add ec269ee3ec API, Core: Add content offset and size to DeleteFile
(#11446)
add 7cc16fa94d Revert "Build: Bump parquet from 1.13.1 to 1.14.3 (#11264)"
(#11462)
add d0cca384a0 Spark 3.5: Preserve data file reference during manifest
rewrites (#11457)
add 43b2f7d007 Core: Make PositionDeleteIndex serializable (#11463)
add 592b3b1c51 Spark 3.5: Preserve content offset and size during manifest
rewrites (#11469)
add 20e0e3dae5 Spark 3.5: Fix flaky test due to temp directory not empty
during delete (#11470)
add 67ee082595 Core, Data, Flink, Spark: Improve tableDir initialization
for tests (#11460)
add 5bd314bdf6 Core: Support DVs in DeleteFileIndex (#11467)
add 549674b3fc Core: Adapt commit, scan, and snapshot stats for DVs
(#11464)
add ad24d4bf85 Spark: Synchronously merge new position deletes with old
deletes (#11273)
add 9be7f00dd6 Fix ADLSLocation file parsing (#11395)
add 2ffd3b02a2 open-api: Build runtime jar for test fixture (#11279)
add 7938403a43 Core, Puffin: Add DV file writer (#11476)
add 1e82c476df Flink: Fix config key typo in error message of
SplitComparators (#11482)
add 11e7230b67 API: Removes Explicit Parameterization of Schema Tests
(#11444)
add 5c8a5d68d4 Docs: Fix verifying release candidate with Spark and Flink
(#11461)
add 3da64d37d0 Flink: Port #11144 to v1.19 (#11473)
add fff9ec3bbc Docs: Fix format of verifying release candidate with Flink
(#11487)
add 166edc7298 Core: Support DVs in DeleteLoader (#11481)
add dda62154e6 Infra: Update DOAP.RDF for Apache Iceberg 1.7.0 (#11492)
add 6a16340947 Docs: Site Update for 1.7.0 Release (#11494)
add bbc0d9aad5 Infra: Add 1.7.0 to issue template (#11491)
add df0917d553 Build: Let revapi compare against 1.7.0 (#11490)
add cd25937dc7 Docs: Adds Release notes for 1.6.1 (#11500)
add dfee4cb35e Docs: Fixes Release Formatting for 1.7.0 Release Notes
(#11499)
add 978cf1a5ae Merge branch 'main' into sungwy-operation
No new revisions were added by this update.
Summary of changes:
.github/ISSUE_TEMPLATE/iceberg_bug_report.yml | 3 +-
LICENSE | 1 +
.../org/apache/iceberg/aliyun/TestUtility.java | 2 +-
.../iceberg/aliyun/oss/TestOSSOutputStream.java | 2 +-
.../iceberg/aliyun/oss/mock/AliyunOSSMock.java | 569 ++++++
.../iceberg/aliyun/oss/mock/AliyunOSSMockApp.java | 158 --
.../aliyun/oss/mock/AliyunOSSMockExtension.java | 23 +-
.../oss/mock/AliyunOSSMockLocalController.java | 522 ------
.../aliyun/oss/mock/AliyunOSSMockLocalStore.java | 14 +-
.../java/org/apache/iceberg/AddedRowsScanTask.java | 3 +-
api/src/main/java/org/apache/iceberg/DataFile.java | 22 +-
.../main/java/org/apache/iceberg/DeleteFile.java | 33 +
.../apache/iceberg/DeletedDataFileScanTask.java | 3 +-
.../org/apache/iceberg/DeletedRowsScanTask.java | 7 +-
.../main/java/org/apache/iceberg/FileFormat.java | 1 +
.../main/java/org/apache/iceberg/FileScanTask.java | 3 +-
api/src/main/java/org/apache/iceberg/Schema.java | 44 +-
.../apache/iceberg/actions/ActionsProvider.java | 6 +
.../iceberg/actions/RemoveDanglingDeleteFiles.java | 20 +-
.../apache/iceberg/actions/RewriteDataFiles.java | 16 +
.../org/apache/iceberg/util/DeleteFileSet.java | 7 +-
.../java/org/apache/iceberg/util/ScanTaskUtil.java | 50 +
.../test/java/org/apache/iceberg/TestHelpers.java | 3 +
.../test/java/org/apache/iceberg/TestSchema.java | 160 ++
.../org/apache/iceberg/util/TestScanTaskUtil.java | 56 +
...orizedDictionaryEncodedParquetValuesReader.java | 22 +-
.../org/apache/iceberg/aws/AwsIntegTestUtil.java | 47 +-
.../org/apache/iceberg/aws/glue/GlueTestBase.java | 2 +-
.../iceberg/aws/s3/TestS3FileIOIntegration.java | 73 +-
.../iceberg/aws/s3/TestS3MultipartUpload.java | 2 +-
.../apache/iceberg/aws/AwsClientProperties.java | 34 +-
.../java/org/apache/iceberg/aws/s3/S3FileIO.java | 8 +-
.../apache/iceberg/aws/s3/S3FileIOProperties.java | 44 +
.../main/java/org/apache/iceberg/aws/s3/S3URI.java | 33 +
.../iceberg/aws/s3/VendedCredentialsProvider.java | 138 ++
.../iceberg/aws/AwsClientPropertiesTest.java | 29 +
.../apache/iceberg/aws/TestS3FileIOProperties.java | 8 +
.../org/apache/iceberg/aws/s3/MinioContainer.java | 68 -
.../java/org/apache/iceberg/aws/s3/MinioUtil.java | 65 +
.../org/apache/iceberg/aws/s3/TestMinioUtil.java | 75 +
.../org/apache/iceberg/aws/s3/TestS3FileIO.java | 116 +-
.../apache/iceberg/aws/s3/TestS3InputStream.java | 13 +-
.../apache/iceberg/aws/s3/TestS3OutputStream.java | 13 +-
.../java/org/apache/iceberg/aws/s3/TestS3URI.java | 43 +
.../aws/s3/TestVendedCredentialsProvider.java | 323 ++++
.../iceberg/aws/s3/signer/S3SignerServlet.java | 6 +-
.../iceberg/aws/s3/signer/TestS3RestSigner.java | 18 +-
.../apache/iceberg/azure/adlsv2/ADLSLocation.java | 13 +-
.../iceberg/azure/adlsv2/ADLSLocationTest.java | 24 +-
.../iceberg/azure/adlsv2/AzuriteContainer.java | 2 +-
build.gradle | 69 +-
.../deletes/RoaringPositionBitmapBenchmark.java | 162 ++
.../src/main/java/org/apache/iceberg/BaseFile.java | 47 +-
.../java/org/apache/iceberg/BaseFileScanTask.java | 9 +-
.../java/org/apache/iceberg/BaseFilesTable.java | 10 +-
.../iceberg/BaseMetastoreTableOperations.java | 49 +-
.../src/main/java/org/apache/iceberg/BaseScan.java | 3 +
.../main/java/org/apache/iceberg/CatalogUtil.java | 45 +
.../java/org/apache/iceberg/ContentFileParser.java | 27 +-
.../java/org/apache/iceberg/DeleteFileIndex.java | 62 +-
.../main/java/org/apache/iceberg/FastAppend.java | 8 +-
.../main/java/org/apache/iceberg/FileMetadata.java | 36 +-
.../java/org/apache/iceberg/GenericDataFile.java | 5 +-
.../java/org/apache/iceberg/GenericDeleteFile.java | 10 +-
.../main/java/org/apache/iceberg/MergeAppend.java | 8 +-
.../apache/iceberg/MergingSnapshotProducer.java | 23 +-
.../java/org/apache/iceberg/PropertiesUpdate.java | 9 +-
.../main/java/org/apache/iceberg/ScanSummary.java | 3 +-
.../java/org/apache/iceberg/SnapshotProducer.java | 21 +
.../java/org/apache/iceberg/SnapshotSummary.java | 30 +-
.../java/org/apache/iceberg/StreamingDelete.java | 8 +-
.../java/org/apache/iceberg/TableMetadata.java | 6 +
.../org/apache/iceberg/TableMetadataParser.java | 12 +-
.../main/java/org/apache/iceberg/V2Metadata.java | 9 +-
.../main/java/org/apache/iceberg/V3Metadata.java | 23 +-
.../actions/BaseRemoveDanglingDeleteFiles.java | 20 +-
.../iceberg/actions/BaseRewriteDataFiles.java | 6 +
.../iceberg/avro/AvroWithPartnerVisitor.java | 2 +-
.../java/org/apache/iceberg/avro/ValueReaders.java | 4 +-
.../apache/iceberg/deletes/BaseDVFileWriter.java | 194 ++
.../iceberg/deletes/BitmapPositionDeleteIndex.java | 150 +-
.../org/apache/iceberg/deletes/DVFileWriter.java | 46 +
.../iceberg/deletes/PositionDeleteIndex.java | 26 +
.../iceberg/deletes/RoaringPositionBitmap.java | 318 ++++
.../deletes/SortingPositionOnlyDeleteWriter.java | 6 +-
.../iceberg/hadoop/HadoopTableOperations.java | 40 +-
.../java/org/apache/iceberg/io/BaseTaskWriter.java | 3 +-
.../org/apache/iceberg/io/ClusteredWriter.java | 5 +-
.../java/org/apache/iceberg/io/FanoutWriter.java | 3 +-
.../java/org/apache/iceberg/io/StructCopy.java | 8 +-
.../iceberg/metrics/CommitMetricsResult.java | 16 +
.../iceberg/metrics/CommitMetricsResultParser.java | 12 +
.../org/apache/iceberg/metrics/ScanMetrics.java | 6 +
.../apache/iceberg/metrics/ScanMetricsResult.java | 7 +
.../iceberg/metrics/ScanMetricsResultParser.java | 6 +
.../apache/iceberg/metrics/ScanMetricsUtil.java | 10 +-
.../java/org/apache/iceberg/puffin/Puffin.java | 5 +
.../org/apache/iceberg/puffin/PuffinWriter.java | 16 +-
.../apache/iceberg/puffin/StandardBlobTypes.java | 3 +
.../org/apache/iceberg/rest/RESTSerializers.java | 29 +-
.../rest/responses/LoadCredentialsResponse.java | 29 +-
.../responses/LoadCredentialsResponseParser.java | 77 +
.../rest/responses/LoadTableResponseParser.java | 8 +-
.../iceberg/rest/responses/LoadViewResponse.java | 8 -
.../rest/responses/LoadViewResponseParser.java | 22 -
.../org/apache/iceberg/util/ContentFileUtil.java | 27 +
.../java/org/apache/iceberg/util/PropertyUtil.java | 50 +
.../org/apache/iceberg/util/StructLikeUtil.java | 67 +
.../org/apache/iceberg/util/TableScanUtil.java | 4 +-
.../main/java/org/apache/iceberg/util/Tasks.java | 6 +-
.../apache/iceberg/DeleteFileIndexTestBase.java | 57 +-
.../org/apache/iceberg/FileGenerationUtil.java | 47 +-
.../org/apache/iceberg/FilterFilesTestBase.java | 10 +-
.../test/java/org/apache/iceberg/ScanTestBase.java | 15 +-
.../src/test/java/org/apache/iceberg/TestBase.java | 16 +
.../org/apache/iceberg/TestContentFileParser.java | 65 +-
.../org/apache/iceberg/TestCreateTransaction.java | 29 -
.../java/org/apache/iceberg/TestFastAppend.java | 25 +
.../org/apache/iceberg/TestManifestEncryption.java | 5 +-
.../org/apache/iceberg/TestManifestReader.java | 46 +-
.../apache/iceberg/TestManifestWriterVersions.java | 3 +
.../org/apache/iceberg/TestMetadataTableScans.java | 2 -
...stMetadataTableScansWithPartitionEvolution.java | 4 -
.../test/java/org/apache/iceberg/TestMetrics.java | 10 +-
.../java/org/apache/iceberg/TestMetricsModes.java | 11 +-
.../java/org/apache/iceberg/TestOverwrite.java | 5 -
.../iceberg/TestOverwriteWithValidation.java | 4 -
.../TestPartitionSpecBuilderCaseSensitivity.java | 14 -
.../org/apache/iceberg/TestPartitionSpecInfo.java | 12 +-
.../java/org/apache/iceberg/TestPartitioning.java | 12 +-
.../org/apache/iceberg/TestReplacePartitions.java | 11 -
.../org/apache/iceberg/TestReplaceTransaction.java | 7 -
.../org/apache/iceberg/TestSnapshotSummary.java | 72 +
.../java/org/apache/iceberg/TestSortOrder.java | 13 +-
.../java/org/apache/iceberg/TestSplitPlanning.java | 3 -
.../java/org/apache/iceberg/TestTableMetadata.java | 3 +-
.../apache/iceberg/TestTimestampPartitions.java | 5 -
.../java/org/apache/iceberg/TestTransaction.java | 18 +
.../deletes/TestBitmapPositionDeleteIndex.java | 105 ++
.../iceberg/deletes/TestRoaringPositionBitmap.java | 515 +++++
.../metrics/TestCommitMetricsResultParser.java | 12 +
.../metrics/TestScanMetricsResultParser.java | 7 +
.../iceberg/metrics/TestScanReportParser.java | 6 +
.../TestLoadCredentialsResponseParser.java | 112 ++
.../rest/responses/TestLoadViewResponseParser.java | 111 --
.../org/apache/iceberg/util/TestSnapshotUtil.java | 2 -
.../org/apache/iceberg/util/TestTableScanUtil.java | 16 +
.../org/apache/iceberg/deletes/64map32bitvals.bin | Bin 0 -> 48 bytes
.../org/apache/iceberg/deletes/64mapempty.bin | Bin 0 -> 8 bytes
.../org/apache/iceberg/deletes/64maphighvals.bin | Bin 0 -> 1086 bytes
.../org/apache/iceberg/deletes/64mapspreadvals.bin | Bin 0 -> 408 bytes
.../deletes/all-container-types-position-index.bin | Bin 0 -> 94 bytes
.../iceberg/deletes/empty-position-index.bin | Bin 0 -> 20 bytes
.../small-alternating-values-position-index.bin | Bin 0 -> 50 bytes
.../small-and-large-values-position-index.bin | Bin 0 -> 56 bytes
.../org/apache/iceberg/data/BaseDeleteLoader.java | 82 +
.../java/org/apache/iceberg/data/DeleteLoader.java | 5 +-
.../java/org/apache/iceberg/TestSplitScan.java | 6 +-
.../iceberg/data/TestGenericReaderDeletes.java | 8 +-
.../org/apache/iceberg/io/TestAppenderFactory.java | 4 -
.../org/apache/iceberg/io/TestBaseTaskWriter.java | 3 -
.../java/org/apache/iceberg/io/TestDVWriters.java | 342 ++++
.../apache/iceberg/io/TestFileWriterFactory.java | 4 -
.../apache/iceberg/io/TestPartitioningWriters.java | 4 -
.../iceberg/io/TestPositionDeltaWriters.java | 4 -
.../apache/iceberg/io/TestRollingFileWriters.java | 4 -
.../iceberg/io/TestTaskEqualityDeltaWriter.java | 3 -
.../org/apache/iceberg/io/TestWriterMetrics.java | 12 +-
deploy.gradle | 1 +
doap.rdf | 6 +-
docs/docs/spark-procedures.md | 20 +-
.../apache/iceberg/flink/sink/CommitSummary.java | 4 +-
.../flink/sink/IcebergStreamWriterMetrics.java | 3 +-
.../flink/source/split/SplitComparators.java | 4 +-
.../iceberg/flink/sink/TestDeltaTaskWriter.java | 3 -
.../flink/sink/TestIcebergFilesCommitter.java | 3 -
.../flink/source/TestStreamingMonitorFunction.java | 3 -
.../flink/source/TestStreamingReaderOperator.java | 3 -
.../TestFileSequenceNumberBasedSplitAssigner.java | 2 +-
.../flink/maintenance/api/ExpireSnapshots.java | 125 ++
.../flink/maintenance/api}/JdbcLockFactory.java | 7 +-
.../maintenance/api/MaintenanceTaskBuilder.java | 227 +++
.../flink/maintenance/api/TableMaintenance.java | 330 ++++
.../maintenance/{operator => api}/TaskResult.java | 7 +-
.../iceberg/flink/maintenance/api}/Trigger.java | 31 +-
.../{operator => api}/TriggerLockFactory.java | 9 +-
.../maintenance/operator/DeleteFilesProcessor.java | 130 ++
.../operator/ExpireSnapshotsProcessor.java | 129 ++
.../flink/maintenance/operator/LockRemover.java | 25 +-
.../flink/maintenance/operator/MonitorSource.java | 4 +-
.../flink/maintenance/operator/TableChange.java | 10 +-
.../operator/TableMaintenanceMetrics.java | 10 +-
.../maintenance/operator/TriggerEvaluator.java | 8 +-
.../flink/maintenance/operator/TriggerManager.java | 54 +-
.../apache/iceberg/flink/sink/CommitSummary.java | 4 +-
.../flink/sink/IcebergStreamWriterMetrics.java | 3 +-
.../flink/source/split/SplitComparators.java | 4 +-
.../api/MaintenanceTaskInfraExtension.java | 78 +
.../maintenance/api/MaintenanceTaskTestBase.java | 64 +
.../flink/maintenance/api/TestExpireSnapshots.java | 254 +++
.../{operator => api}/TestJdbcLockFactory.java | 4 +-
.../{operator => api}/TestLockFactoryBase.java | 2 +-
.../flink/maintenance/api/TestMaintenanceE2E.java | 67 +
.../maintenance/api/TestTableMaintenance.java | 460 +++++
.../flink/maintenance/operator/CollectingSink.java | 6 +-
.../maintenance/operator/FlinkSqlExtension.java | 135 --
.../operator/FlinkStreamingTestUtils.java | 73 -
.../flink/maintenance/operator/ManualSource.java | 12 +-
.../operator/MetricsReporterFactoryForTests.java | 65 +-
.../maintenance/operator/OperatorTestBase.java | 184 +-
.../operator/TestDeleteFilesProcessor.java | 116 ++
.../operator/TestExpireSnapshotsProcessor.java | 80 +
.../maintenance/operator/TestLockRemover.java | 120 +-
.../maintenance/operator/TestMonitorSource.java | 72 +-
.../maintenance/operator/TestTriggerManager.java | 152 +-
.../iceberg/flink/sink/TestDeltaTaskWriter.java | 3 -
...FlinkIcebergSinkRangeDistributionBucketing.java | 4 +-
.../flink/sink/TestIcebergFilesCommitter.java | 3 -
.../flink/source/TestStreamingMonitorFunction.java | 3 -
.../flink/source/TestStreamingReaderOperator.java | 3 -
.../TestFileSequenceNumberBasedSplitAssigner.java | 2 +-
.../apache/iceberg/flink/data/FlinkAvroReader.java | 12 +
...AvroReader.java => FlinkPlannedAvroReader.java} | 83 +-
.../iceberg/flink/data/FlinkValueReaders.java | 32 +
.../flink/maintenance/api/ExpireSnapshots.java | 125 ++
.../flink/maintenance/api}/JdbcLockFactory.java | 7 +-
.../maintenance/api/MaintenanceTaskBuilder.java | 227 +++
.../flink/maintenance/api/TableMaintenance.java | 330 ++++
.../maintenance/{operator => api}/TaskResult.java | 7 +-
.../iceberg/flink/maintenance/api}/Trigger.java | 31 +-
.../{operator => api}/TriggerLockFactory.java | 9 +-
.../maintenance/operator/DeleteFilesProcessor.java | 130 ++
.../operator/ExpireSnapshotsProcessor.java | 129 ++
.../flink/maintenance/operator/LockRemover.java | 25 +-
.../flink/maintenance/operator/MonitorSource.java | 4 +-
.../flink/maintenance/operator/TableChange.java | 10 +-
.../operator/TableMaintenanceMetrics.java | 10 +-
.../maintenance/operator/TriggerEvaluator.java | 8 +-
.../flink/maintenance/operator/TriggerManager.java | 54 +-
.../apache/iceberg/flink/sink/CommitSummary.java | 4 +-
.../org/apache/iceberg/flink/sink/FlinkSink.java | 14 +-
.../org/apache/iceberg/flink/sink/IcebergSink.java | 14 +-
.../iceberg/flink/sink/IcebergSinkBuilder.java | 83 +
.../flink/sink/IcebergStreamWriterMetrics.java | 3 +-
.../flink/source/RowDataFileScanTaskReader.java | 4 +-
.../flink/source/split/SplitComparators.java | 4 +-
.../flink/data/TestFlinkAvroReaderWriter.java | 2 +-
.../iceberg/flink/data/TestRowProjection.java | 2 +-
.../api/MaintenanceTaskInfraExtension.java | 78 +
.../maintenance/api/MaintenanceTaskTestBase.java | 64 +
.../flink/maintenance/api/TestExpireSnapshots.java | 254 +++
.../{operator => api}/TestJdbcLockFactory.java | 4 +-
.../{operator => api}/TestLockFactoryBase.java | 2 +-
.../flink/maintenance/api/TestMaintenanceE2E.java | 67 +
.../maintenance/api/TestTableMaintenance.java | 460 +++++
.../flink/maintenance/operator/CollectingSink.java | 6 +-
.../maintenance/operator/FlinkSqlExtension.java | 135 --
.../operator/FlinkStreamingTestUtils.java | 73 -
.../flink/maintenance/operator/ManualSource.java | 12 +-
.../operator/MetricsReporterFactoryForTests.java | 65 +-
.../maintenance/operator/OperatorTestBase.java | 184 +-
.../operator/TestDeleteFilesProcessor.java | 116 ++
.../operator/TestExpireSnapshotsProcessor.java | 80 +
.../maintenance/operator/TestLockRemover.java | 120 +-
.../maintenance/operator/TestMonitorSource.java | 72 +-
.../maintenance/operator/TestTriggerManager.java | 152 +-
.../iceberg/flink/sink/TestDeltaTaskWriter.java | 3 -
...FlinkIcebergSinkRangeDistributionBucketing.java | 4 +-
.../flink/sink/TestIcebergFilesCommitter.java | 3 -
.../flink/source/TestStreamingMonitorFunction.java | 3 -
.../flink/source/TestStreamingReaderOperator.java | 3 -
.../TestFileSequenceNumberBasedSplitAssigner.java | 2 +-
format/puffin-spec.md | 55 +
format/spec.md | 439 +++--
.../java/org/apache/iceberg/gcp/GCPProperties.java | 20 +
.../java/org/apache/iceberg/gcp/gcs/GCSFileIO.java | 12 +-
.../gcp/gcs/OAuth2RefreshCredentialsHandler.java | 99 +
.../org/apache/iceberg/gcp/GCPPropertiesTest.java | 30 +
.../org/apache/iceberg/gcp/gcs/GCSFileIOTest.java | 47 +
.../gcs/OAuth2RefreshCredentialsHandlerTest.java | 264 +++
gradle/libs.versions.toml | 39 +-
kafka-connect/build.gradle | 6 +-
kafka-connect/kafka-connect-runtime/LICENSE | 1970 ++++++++++++++++++++
kafka-connect/kafka-connect-runtime/NOTICE | 1723 +++++++++++++++++
.../iceberg/connect/data/RecordConverter.java | 25 +-
.../iceberg/connect/data/RecordConverterTest.java | 32 +-
LICENSE => open-api/LICENSE | 221 ++-
open-api/NOTICE | 226 +++
open-api/requirements.txt | 2 +-
open-api/rest-catalog-open-api.py | 26 +-
open-api/rest-catalog-open-api.yaml | 73 +-
.../apache/iceberg/pig/IcebergPigInputFormat.java | 5 +
.../org/apache/iceberg/pig/IcebergStorage.java | 8 +
.../org/apache/iceberg/pig/PigParquetReader.java | 13 +-
.../java/org/apache/iceberg/pig/SchemaUtil.java | 4 +
site/docs/blogs.md | 133 +-
site/docs/how-to-release.md | 11 +-
site/docs/releases.md | 94 +-
site/mkdocs.yml | 2 +-
site/nav.yml | 1 +
site/requirements.txt | 4 +-
.../apache/iceberg/spark/extensions/TestViews.java | 169 +-
.../org/apache/iceberg/spark/SparkContentFile.java | 7 +-
.../actions/RemoveDanglingDeletesSparkAction.java | 171 ++
.../spark/actions/RewriteDataFilesSparkAction.java | 33 +-
.../apache/iceberg/spark/actions/SparkActions.java | 6 +
.../actions/TestRemoveDanglingDeleteAction.java | 426 +++++
.../spark/actions/TestRewriteDataFilesAction.java | 193 +-
.../IcebergSqlExtensionsAstBuilder.scala | 10 +-
.../v2/SetWriteDistributionAndOrderingExec.scala | 10 +-
.../spark/extensions/TestMergeOnReadDelete.java | 83 +
.../spark/extensions/TestMergeOnReadUpdate.java | 99 +-
.../TestSetWriteDistributionAndOrdering.java | 29 +-
.../apache/iceberg/spark/extensions/TestViews.java | 169 +-
.../iceberg/spark/source/DVWriterBenchmark.java | 251 +++
.../org/apache/iceberg/spark/SparkContentFile.java | 34 +-
.../actions/RemoveDanglingDeletesSparkAction.java | 179 ++
.../spark/actions/RewriteDataFilesSparkAction.java | 34 +-
.../apache/iceberg/spark/actions/SparkActions.java | 6 +
.../apache/iceberg/spark/data/SparkAvroReader.java | 12 +
...AvroReader.java => SparkPlannedAvroReader.java} | 80 +-
.../iceberg/spark/data/SparkValueReaders.java | 38 +
.../apache/iceberg/spark/source/BaseRowReader.java | 4 +-
.../iceberg/spark/source/SparkBatchQueryScan.java | 21 +
.../spark/source/SparkPositionDeltaWrite.java | 111 +-
.../logical/SetWriteDistributionAndOrdering.scala | 2 +-
.../apache/iceberg/TestScanTaskSerialization.java | 2 +-
.../iceberg/spark/actions/TestCreateActions.java | 8 +-
.../actions/TestDeleteReachableFilesAction.java | 4 +-
.../spark/actions/TestExpireSnapshotsAction.java | 3 +-
.../actions/TestRemoveDanglingDeleteAction.java | 445 +++++
.../spark/actions/TestRemoveOrphanFilesAction.java | 4 +-
.../spark/actions/TestRewriteDataFilesAction.java | 217 ++-
.../spark/actions/TestRewriteManifestsAction.java | 101 +-
.../TestRewritePositionDeleteFilesAction.java | 3 +-
.../org/apache/iceberg/spark/data/TestHelpers.java | 15 +
.../iceberg/spark/data/TestSparkAvroEnums.java | 2 +-
.../iceberg/spark/data/TestSparkAvroReader.java | 2 +-
...estParquetDictionaryEncodedVectorizedReads.java | 92 +
.../spark/source/TestCompressionSettings.java | 19 +
.../iceberg/spark/source/TestDataFrameWrites.java | 61 +-
.../source/TestIcebergSourceHadoopTables.java | 7 +-
.../iceberg/spark/source/TestSparkDVWriters.java | 69 +
.../iceberg/spark/source/TestSparkDataFile.java | 4 +-
.../apache/iceberg/spark/sql/TestCreateTable.java | 42 +
.../decimal_dict_and_plain_encoding.parquet | Bin 0 -> 3685 bytes
346 files changed, 18927 insertions(+), 3161 deletions(-)
create mode 100644
aliyun/src/test/java/org/apache/iceberg/aliyun/oss/mock/AliyunOSSMock.java
delete mode 100644
aliyun/src/test/java/org/apache/iceberg/aliyun/oss/mock/AliyunOSSMockApp.java
delete mode 100644
aliyun/src/test/java/org/apache/iceberg/aliyun/oss/mock/AliyunOSSMockLocalController.java
rename
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/ConstantsForTests.java
=> api/src/main/java/org/apache/iceberg/actions/RemoveDanglingDeleteFiles.java
(61%)
create mode 100644 api/src/main/java/org/apache/iceberg/util/ScanTaskUtil.java
create mode 100644 api/src/test/java/org/apache/iceberg/TestSchema.java
create mode 100644
api/src/test/java/org/apache/iceberg/util/TestScanTaskUtil.java
create mode 100644
aws/src/main/java/org/apache/iceberg/aws/s3/VendedCredentialsProvider.java
delete mode 100644
aws/src/test/java/org/apache/iceberg/aws/s3/MinioContainer.java
create mode 100644 aws/src/test/java/org/apache/iceberg/aws/s3/MinioUtil.java
create mode 100644
aws/src/test/java/org/apache/iceberg/aws/s3/TestMinioUtil.java
create mode 100644
aws/src/test/java/org/apache/iceberg/aws/s3/TestVendedCredentialsProvider.java
create mode 100644
core/src/jmh/java/org/apache/iceberg/deletes/RoaringPositionBitmapBenchmark.java
rename
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/ConstantsForTests.java
=>
core/src/main/java/org/apache/iceberg/actions/BaseRemoveDanglingDeleteFiles.java
(64%)
create mode 100644
core/src/main/java/org/apache/iceberg/deletes/BaseDVFileWriter.java
create mode 100644
core/src/main/java/org/apache/iceberg/deletes/DVFileWriter.java
create mode 100644
core/src/main/java/org/apache/iceberg/deletes/RoaringPositionBitmap.java
rename aliyun/src/test/java/org/apache/iceberg/aliyun/oss/mock/Range.java =>
core/src/main/java/org/apache/iceberg/rest/responses/LoadCredentialsResponse.java
(68%)
create mode 100644
core/src/main/java/org/apache/iceberg/rest/responses/LoadCredentialsResponseParser.java
create mode 100644
core/src/main/java/org/apache/iceberg/util/StructLikeUtil.java
create mode 100644
core/src/test/java/org/apache/iceberg/deletes/TestRoaringPositionBitmap.java
create mode 100644
core/src/test/java/org/apache/iceberg/rest/responses/TestLoadCredentialsResponseParser.java
create mode 100644
core/src/test/resources/org/apache/iceberg/deletes/64map32bitvals.bin
create mode 100644
core/src/test/resources/org/apache/iceberg/deletes/64mapempty.bin
create mode 100644
core/src/test/resources/org/apache/iceberg/deletes/64maphighvals.bin
create mode 100644
core/src/test/resources/org/apache/iceberg/deletes/64mapspreadvals.bin
create mode 100644
core/src/test/resources/org/apache/iceberg/deletes/all-container-types-position-index.bin
create mode 100644
core/src/test/resources/org/apache/iceberg/deletes/empty-position-index.bin
create mode 100644
core/src/test/resources/org/apache/iceberg/deletes/small-alternating-values-position-index.bin
create mode 100644
core/src/test/resources/org/apache/iceberg/deletes/small-and-large-values-position-index.bin
create mode 100644 data/src/test/java/org/apache/iceberg/io/TestDVWriters.java
create mode 100644
flink/v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/api/ExpireSnapshots.java
rename
flink/{v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator
=>
v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/api}/JdbcLockFactory.java
(98%)
create mode 100644
flink/v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/api/MaintenanceTaskBuilder.java
create mode 100644
flink/v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/api/TableMaintenance.java
rename
flink/v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/{operator
=> api}/TaskResult.java (93%)
rename
flink/{v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator
=>
v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/api}/Trigger.java
(67%)
rename
flink/v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/{operator
=> api}/TriggerLockFactory.java (86%)
create mode 100644
flink/v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/DeleteFilesProcessor.java
create mode 100644
flink/v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/ExpireSnapshotsProcessor.java
create mode 100644
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/MaintenanceTaskInfraExtension.java
create mode 100644
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/MaintenanceTaskTestBase.java
create mode 100644
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/TestExpireSnapshots.java
rename
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/{operator
=> api}/TestJdbcLockFactory.java (92%)
rename
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/{operator
=> api}/TestLockFactoryBase.java (97%)
create mode 100644
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/TestMaintenanceE2E.java
create mode 100644
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/TestTableMaintenance.java
delete mode 100644
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/FlinkSqlExtension.java
delete mode 100644
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/FlinkStreamingTestUtils.java
create mode 100644
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/TestDeleteFilesProcessor.java
create mode 100644
flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/TestExpireSnapshotsProcessor.java
copy
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/data/{FlinkAvroReader.java
=> FlinkPlannedAvroReader.java} (61%)
create mode 100644
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/api/ExpireSnapshots.java
rename
flink/{v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator
=>
v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/api}/JdbcLockFactory.java
(98%)
create mode 100644
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/api/MaintenanceTaskBuilder.java
create mode 100644
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/api/TableMaintenance.java
rename
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/{operator
=> api}/TaskResult.java (93%)
rename
flink/{v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator
=>
v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/api}/Trigger.java
(67%)
rename
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/{operator
=> api}/TriggerLockFactory.java (86%)
create mode 100644
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/DeleteFilesProcessor.java
create mode 100644
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/ExpireSnapshotsProcessor.java
create mode 100644
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/sink/IcebergSinkBuilder.java
create mode 100644
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/MaintenanceTaskInfraExtension.java
create mode 100644
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/MaintenanceTaskTestBase.java
create mode 100644
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/TestExpireSnapshots.java
rename
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/{operator
=> api}/TestJdbcLockFactory.java (92%)
rename
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/{operator
=> api}/TestLockFactoryBase.java (97%)
create mode 100644
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/TestMaintenanceE2E.java
create mode 100644
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/TestTableMaintenance.java
delete mode 100644
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/FlinkSqlExtension.java
delete mode 100644
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/FlinkStreamingTestUtils.java
create mode 100644
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/TestDeleteFilesProcessor.java
create mode 100644
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/TestExpireSnapshotsProcessor.java
create mode 100644
gcp/src/main/java/org/apache/iceberg/gcp/gcs/OAuth2RefreshCredentialsHandler.java
create mode 100644
gcp/src/test/java/org/apache/iceberg/gcp/gcs/OAuth2RefreshCredentialsHandlerTest.java
create mode 100644 kafka-connect/kafka-connect-runtime/LICENSE
create mode 100644 kafka-connect/kafka-connect-runtime/NOTICE
copy LICENSE => open-api/LICENSE (58%)
create mode 100644 open-api/NOTICE
create mode 100644
spark/v3.4/spark/src/main/java/org/apache/iceberg/spark/actions/RemoveDanglingDeletesSparkAction.java
create mode 100644
spark/v3.4/spark/src/test/java/org/apache/iceberg/spark/actions/TestRemoveDanglingDeleteAction.java
create mode 100644
spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/DVWriterBenchmark.java
create mode 100644
spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/actions/RemoveDanglingDeletesSparkAction.java
copy
spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/data/{SparkAvroReader.java
=> SparkPlannedAvroReader.java} (62%)
create mode 100644
spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/actions/TestRemoveDanglingDeleteAction.java
create mode 100644
spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkDVWriters.java
create mode 100644
spark/v3.5/spark/src/test/resources/decimal_dict_and_plain_encoding.parquet