You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by gi...@apache.org on 2025/06/02 18:42:21 UTC

(iceberg) branch dependabot/gradle/guava-33.4.8-jre updated (0d7e49dace -> 5ee466b728)

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a change to branch dependabot/gradle/guava-33.4.8-jre
in repository https://gitbox.apache.org/repos/asf/iceberg.git


 discard 0d7e49dace Build: Bump guava from 33.4.7-jre to 33.4.8-jre
     add 268661af25 Flink: Add DynamicRecord / DynamicRecordInternal / DynamicRecordInternalSerializer (#12996)
     add cb33ec16d0 Common: Reduce visibility of deprecated method since 1.7.0 (#13053)
     add 71cbe17cea Spark: Move 3.5 as 4.0
     add 8353ac8f80 Spark: Copy back 4.0 as 3.5
     add 6c98a9e470 Spark: initial support for Spark 4.0
     add 66b60b7b5c Build: Remove JUnit4 dependency (#12938)
     add 31c315f695 Flink: Support zookeeper lock in TableMaintenance (#12810)
     add a25f9938ca [SPARK] Fix add_files type conversion exception and incorrect partition value when handling null partitions (#12886)
     add cbbc8728e2 Core: Use baseTableLocation() instead of hardcoded table location in CatalogTests (#13071)
     add 8511a37ce4 Flink: Backport support zookeeper lock in TableMaintenance (#13063)
     add acffd4dc5d Kafka Connect: Add BigQuery Metastore catalog (#13041)
     add b050314a03 Flink: Fix watermark no pass in TaskResultAggregator (#13069)
     add c2478968e6 Core: Add max files rewrite option for RewriteAction  (#12824)
     add b08b241aa3 Build: Bump mkdocs-material from 9.6.13 to 9.6.14 (#13090)
     add a44ec8d1c3 Spec: Clarify writer requirements to prevent orphan DVs (#13042)
     add 1b30216307 API: Reorder as() calls in Tests (#13083)
     add a491ce9356 Build: Bump software.amazon.awssdk:bom from 2.31.35 to 2.31.45 (#13088)
     add a654f3f91c Build: Bump nessie from 0.103.6 to 0.104.1 (#13025)
     add 4ca3f10832 Flink: Backport fix watermark no pass in TaskResultAggregator to Flink 1.19 and 1.20 (#13085)
     add a7f3dc79a2 Core: Copy ByteBuffers when Copying GenericRecord(#12855)
     add dfa5a97943 Spark 4: Migrate tests implementing SparkCatalogTestBase to Junit5 (#13096)
     add 09a531740c Spark, Flink: Backport add max files rewrite option for RewriteAction (#13082)
     add 8a38f5ae2b Spark 3.5: Structured Streaming read limit support follow-up (#12260)
     add 018710edd5 Parquet: Fix redundant type conversion in parquet schema (#13114)
     add 6550486f0c Spark 3.4: Structured Streaming read limit support follow-up (#13099)
     add e139dbc7ee Build: increase gradle jvm heap size from 1 GB to 1.5 GB.
     add 1911c94ea6 Spark 4.0: Structured Streaming read limit support follow-up (#13095)
     add 91dff9886e Parquet: Log corrupted parquet filenames to trace bad nodes that may have written them. (#13108)
     add 14493784a6 AWS: Support multiple storage credential prefixes (#12799)
     add 0379c434e0 Spec: Add details on GZIP compressed metadata files (#12598)
     add d32ba358c0 Flink: Remove the MiniClusterWithClientResource dependency (#13021)
     add b47f207d1f Docs: Update spec version for write modes (#13138)
     add 793f6cd062 AWS: Skip cleanup of analytics accelerator when disabled (#13134)
     add 419284989b Flink: Fix npe in TaskResultAggregator when job recovery (#13086)
     add b504f9c51c Spark 4.0: Bump to Official Release
     add e95d778c79 Flink: Backport fix npe in TaskResultAggregator when job recovery (#13140)
     add dd7fa01bd5 AWS: Close the S3SeekableInputStreamFactory before removing from cache (#12891)
     add 5a096b764f Docs: Add Tinybird to the list of vendors and blog posts (#13128)
     add 69b0bb05aa Build: Upgrade to Gradle 8.14.1 (#13149)
     add d8d9753eb6 Build: Bump com.palantir.gradle.gitversion:gradle-git-version (#13144)
     add 0e9b364fe2 Build: Bump software.amazon.awssdk:bom from 2.31.45 to 2.31.50 (#13148)
     add 2b3559b454 Build: Bump org.apache.httpcomponents.client5:httpclient5 (#13147)
     add d46acf9147 Build: Bump com.google.cloud:libraries-bom from 26.60.0 to 26.61.0 (#13146)
     add 52a72dea81 Core, AWS, Spark: use loopback address explicitly in tests to work in more restrictive firewall env on dev machines (#13101)
     add cab0decbb0 REST Spec: Add row lineage fields (#13010)
     add c3eaaf5c88 Flink: Backport remove the MiniClusterWithClientResource dependency (#13165)
     add 6be7cd76e3 Docs: Fix Flink upsert doc on equality fields requirement (#13127)
     add e2de07bac3 Spark 3.4: streaming-skip-overwrite-snapshots fix (#13168)
     add 8eb476f4b8 Infra: Set Latest Release to  1.9.1 (#13177)
     add 4e0207ad10 Site: Updates for 1.9.1 Release (#13176)
     add 2ada622509 Core: Fix incremental compute of partition stats for various edge cases (#13163)
     add 4927610d1d Core: Avoid table corruption from 409 on self conflicts after 5xx retries by throwing CommitStateUnknown (#12818)
     add 0ae9394077 Spec: Mark version 3 as completed (#13175)
     add 0f3257c59b Build: Bump kafka from 3.9.0 to 3.9.1 (#13145)
     add ff4799afcd API: Add Variant toString for time/nano timestamps type (#13151)
     add a8b42450d1 AWS: Configure Default s3Async credentials the same as s3 (#13132)
     add 3469cf30f2 API: Make PartitionSpec.Builder::identity public (#12975)
     add 8192a6cd83 Spark 3.5: Update to Spark 3.5.6 (#13142)
     add a5a0b8af84 Spark: clean up obsoleted/unused writer classes (#13193)
     add 2cdff36698 chore: Update status.md (#13182)
     add ee82cdf287 Docs: Reorganize Spark Time Travel Doc (#13113)
     add 4218554f37 AWS: update test cases to verify credentials for the prefixed S3 client (#13118)
     add a4b2a0dab0 API, Core: Rename RowDelta deleteFile() to removeRows() (#13184)
     add 08bed1303e Build: Bump testcontainers from 1.21.0 to 1.21.1 (#13199)
     add 5ee466b728 Build: Bump guava from 33.4.7-jre to 33.4.8-jre

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (0d7e49dace)
            \
             N -- N -- N   refs/heads/dependabot/gradle/guava-33.4.8-jre (5ee466b728)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .baseline/checkstyle/checkstyle-suppressions.xml   |   3 +
 .baseline/checkstyle/checkstyle.xml                |  10 +-
 .github/ISSUE_TEMPLATE/iceberg_bug_report.yml      |   3 +-
 .github/workflows/java-ci.yml                      |   4 +-
 .github/workflows/publish-snapshot.yml             |   2 +-
 .github/workflows/spark-ci.yml                     |   6 +-
 .gitignore                                         |   2 +
 .palantir/revapi.yml                               |   7 +
 api/src/main/java/org/apache/iceberg/DataFile.java |   6 +-
 .../java/org/apache/iceberg/PartitionSpec.java     |   2 +-
 api/src/main/java/org/apache/iceberg/RowDelta.java |   4 +-
 .../apache/iceberg/variants/VariantPrimitive.java  |   6 +
 .../java/org/apache/iceberg/TestIcebergBuild.java  |   8 +-
 .../org/apache/iceberg/aws/s3/TestS3FileIO.java    | 307 ++++++++++++++++++---
 .../iceberg/aws/s3/signer/TestS3RestSigner.java    |   4 +-
 .../org/apache/iceberg/aws/AwsClientFactories.java |   6 +-
 .../iceberg/aws/s3/AnalyticsAcceleratorUtil.java   |  24 +-
 .../apache/iceberg/aws/s3/PrefixedS3Client.java    | 123 +++++++++
 .../java/org/apache/iceberg/aws/s3/S3FileIO.java   | 210 +++++++-------
 .../apache/iceberg/aws/s3/S3FileIOProperties.java  |  24 +-
 .../org/apache/iceberg/aws/s3/S3InputFile.java     |  44 +++
 .../org/apache/iceberg/aws/s3/S3OutputFile.java    |  24 ++
 .../iceberg/aws/s3/TestPrefixedS3Client.java       |  28 +-
 build.gradle                                       |   7 +-
 .../org/apache/iceberg/common/DynConstructors.java |   6 +-
 .../java/org/apache/iceberg/common/DynMethods.java |   6 +-
 .../main/java/org/apache/iceberg/BaseRowDelta.java |  12 +-
 .../org/apache/iceberg/PartitionStatsHandler.java  |  44 +--
 .../iceberg/actions/BinPackRewriteFilePlanner.java |  80 ++++--
 .../org/apache/iceberg/data/GenericRecord.java     |  17 +-
 .../org/apache/iceberg/rest/ErrorHandlers.java     |  14 +-
 .../rest/ExponentialHttpRequestRetryStrategy.java  |  12 +-
 .../java/org/apache/iceberg/rest/HTTPClient.java   |  25 +-
 .../iceberg/rest/responses/ErrorResponse.java      |  17 +-
 .../iceberg/PartitionStatsHandlerTestBase.java     |  92 +++++-
 .../test/java/org/apache/iceberg/TestRowDelta.java |  28 +-
 .../actions/TestBinPackRewriteFilePlanner.java     |  93 ++++++-
 .../org/apache/iceberg/catalog/CatalogTests.java   |   4 +-
 .../TestExponentialHttpRequestRetryStrategy.java   |  23 +-
 .../org/apache/iceberg/rest/TestRESTCatalog.java   |  24 +-
 .../apache/iceberg/rest/TestRESTViewCatalog.java   |   4 +-
 .../TestRESTViewCatalogWithAssumedViewSupport.java |   4 +-
 .../org/apache/iceberg/data/DeleteReadTests.java   | 105 ++++++-
 .../apache/iceberg/data/GenericAppenderHelper.java |  15 -
 .../iceberg/data/TestGenericReaderDeletes.java     |   6 +-
 .../org/apache/iceberg/data/TestGenericRecord.java |  25 ++
 doap.rdf                                           |   6 +-
 docs/docs/configuration.md                         |   6 +-
 docs/docs/flink-writes.md                          |   8 +-
 docs/docs/kafka-connect.md                         |  15 +-
 docs/docs/spark-procedures.md                      |   3 +-
 docs/docs/spark-queries.md                         |  56 ++--
 docs/mkdocs.yml                                    |   1 +
 flink/v1.19/build.gradle                           |   1 -
 .../flink/maintenance/api/RewriteDataFiles.java    |  12 +
 .../flink/maintenance/api/ZkLockFactory.java       | 178 ++++++++++++
 .../maintenance/operator/TaskResultAggregator.java |  29 +-
 .../org/apache/iceberg/flink/sink/FlinkSink.java   |   6 +-
 .../org/apache/iceberg/flink/sink/IcebergSink.java |   7 +-
 .../flink/maintenance/api/TestZkLockFactory.java   |  39 ++-
 .../maintenance/operator/OperatorTestBase.java     |   2 +
 .../operator/TestTaskResultAggregator.java         |  78 ++++++
 .../flink/sink/TestFlinkIcebergSinkV2Base.java     |   2 +-
 .../apache/iceberg/flink/sink/TestIcebergSink.java |   7 +-
 .../flink/source/TestIcebergSourceFailover.java    |  54 ++--
 flink/v1.20/build.gradle                           |   1 -
 .../flink/maintenance/api/RewriteDataFiles.java    |  12 +
 .../flink/maintenance/api/ZkLockFactory.java       | 178 ++++++++++++
 .../maintenance/operator/TaskResultAggregator.java |  29 +-
 .../org/apache/iceberg/flink/sink/FlinkSink.java   |   6 +-
 .../org/apache/iceberg/flink/sink/IcebergSink.java |   7 +-
 .../flink/maintenance/api/TestZkLockFactory.java   |  39 ++-
 .../maintenance/operator/OperatorTestBase.java     |   2 +
 .../operator/TestTaskResultAggregator.java         |  78 ++++++
 .../flink/sink/TestFlinkIcebergSinkV2Base.java     |   2 +-
 .../apache/iceberg/flink/sink/TestIcebergSink.java |   7 +-
 .../flink/source/TestIcebergSourceFailover.java    |  54 ++--
 flink/v2.0/build.gradle                            |   4 +-
 .../flink/maintenance/api/RewriteDataFiles.java    |  12 +
 .../flink/maintenance/api/ZkLockFactory.java       | 178 ++++++++++++
 .../maintenance/operator/TaskResultAggregator.java |  29 +-
 .../org/apache/iceberg/flink/sink/FlinkSink.java   |   6 +-
 .../org/apache/iceberg/flink/sink/IcebergSink.java |   7 +-
 .../iceberg/flink/sink/dynamic/DynamicRecord.java  | 130 +++++++++
 .../flink/sink/dynamic/DynamicRecordInternal.java  | 166 +++++++++++
 .../dynamic/DynamicRecordInternalSerializer.java   | 296 ++++++++++++++++++++
 .../sink/dynamic/DynamicRecordInternalType.java    |  96 +++++++
 .../flink/sink/dynamic/TableSerializerCache.java   | 135 +++++++++
 .../flink/maintenance/api/TestZkLockFactory.java   |  39 ++-
 .../maintenance/operator/OperatorTestBase.java     |   2 +
 .../operator/TestTaskResultAggregator.java         |  78 ++++++
 .../flink/sink/TestFlinkIcebergSinkV2Base.java     |   2 +-
 .../apache/iceberg/flink/sink/TestIcebergSink.java |   7 +-
 .../DynamicRecordInternalSerializerTestBase.java   |  96 +++++++
 ...DynamicRecordInternalSerializerWriteSchema.java |  14 +-
 ...namicRecordInternalSerializerWriteSchemaId.java |  14 +-
 .../sink/dynamic/TestTableSerializerCache.java     | 124 +++++++++
 .../flink/source/TestIcebergSourceFailover.java    |  54 ++--
 format/spec.md                                     |  12 +-
 gradle.properties                                  |   6 +-
 gradle/libs.versions.toml                          |  19 +-
 gradle/wrapper/gradle-wrapper.properties           |   4 +-
 gradlew                                            |   2 +-
 .../org/apache/iceberg/hive/TestHiveMetastore.java |   1 +
 jmh.gradle                                         |   5 +
 kafka-connect/build.gradle                         |   3 +
 open-api/rest-catalog-open-api.py                  |  15 +
 open-api/rest-catalog-open-api.yaml                |  12 +
 .../iceberg/TestOrcPartitionStatsHandler.java      |  14 +
 .../org/apache/iceberg/parquet/ParquetReader.java  |  38 ++-
 .../apache/iceberg/parquet/TypeToMessageType.java  |   4 +-
 settings.gradle                                    |  12 +
 site/docs/blogs.md                                 |   5 +
 site/docs/releases.md                              |  21 +-
 site/docs/status.md                                |  22 +-
 site/docs/vendors.md                               |   8 +
 site/mkdocs.yml                                    |   2 +-
 site/nav.yml                                       |   1 +
 site/requirements.txt                              |   2 +-
 spark/build.gradle                                 |   4 +
 spark/v3.4/build.gradle                            |   3 -
 .../spark/extensions/TestAddFilesProcedure.java    | 108 ++++++++
 .../java/org/apache/iceberg/spark/Spark3Util.java  |   3 +-
 .../spark/actions/RewriteDataFilesSparkAction.java |   3 +-
 .../spark/source/SparkMicroBatchStream.java        |  81 +++++-
 .../spark/source/SparkPartitionedFanoutWriter.java |  55 ----
 .../spark/source/SparkPartitionedWriter.java       |  55 ----
 .../org/apache/iceberg/rest/RESTServerRule.java    | 107 -------
 .../java/org/apache/iceberg/spark/TestBase.java    |   2 +
 .../TestSparkShufflingDataRewritePlanner.java      |   3 +-
 .../apache/iceberg/spark/source/ScanTestBase.java  |   7 +-
 .../spark/source/TestStructuredStreamingRead3.java | 152 +++++++++-
 spark/v3.5/build.gradle                            |   1 -
 .../spark/extensions/TestAddFilesProcedure.java    | 108 ++++++++
 .../java/org/apache/iceberg/spark/Spark3Util.java  |   3 +-
 .../spark/actions/RewriteDataFilesSparkAction.java |   3 +-
 .../spark/source/SparkMicroBatchStream.java        |  52 +++-
 .../spark/source/SparkPartitionedFanoutWriter.java |  55 ----
 .../spark/source/SparkPartitionedWriter.java       |  55 ----
 .../java/org/apache/iceberg/spark/TestBase.java    |   2 +
 .../TestSparkShufflingDataRewritePlanner.java      |   3 +-
 .../apache/iceberg/spark/source/ScanTestBase.java  |   7 +-
 .../spark/source/TestStructuredStreamingRead3.java |  44 ++-
 spark/{v3.5 => v4.0}/build.gradle                  |  19 +-
 .../apache/iceberg/DeleteFileIndexBenchmark.java   |   4 +-
 .../spark/MergeCardinalityCheckBenchmark.java      |   4 +-
 .../apache/iceberg/spark/PlanningBenchmark.java    |   4 +-
 .../iceberg/spark/TaskGroupPlanningBenchmark.java  |   4 +-
 .../iceberg/spark/UpdateProjectionBenchmark.java   |   0
 .../IcebergSqlExtensions.g4                        |   0
 .../extensions/IcebergSparkSessionExtensions.scala |   6 -
 .../spark/sql/catalyst/analysis/CheckViews.scala   |   5 +-
 .../analysis/ProcedureArgumentCoercion.scala       |   7 +-
 .../sql/catalyst/analysis/ResolveProcedures.scala  |  19 +-
 .../spark/sql/catalyst/analysis/ResolveViews.scala |   6 +-
 .../catalyst/analysis/RewriteViewCommands.scala    |  13 +-
 .../spark/sql/catalyst/analysis/ViewUtil.scala     |   0
 .../catalyst/optimizer/ReplaceStaticInvoke.scala   |   2 +-
 .../IcebergSparkSqlExtensionsParser.scala          |  13 +-
 .../IcebergSqlExtensionsAstBuilder.scala           |   8 +-
 .../catalyst/plans/logical/AddPartitionField.scala |   0
 .../sql/catalyst/plans/logical/BranchOptions.scala |   0
 .../plans/logical/CreateOrReplaceBranch.scala      |   0
 .../plans/logical/CreateOrReplaceTag.scala         |   0
 .../sql/catalyst/plans/logical/DropBranch.scala    |   0
 .../plans/logical/DropIdentifierFields.scala       |   0
 .../plans/logical/DropPartitionField.scala         |   0
 .../spark/sql/catalyst/plans/logical/DropTag.scala |   0
 .../sql/catalyst/plans/logical/IcebergCall.scala}  |   4 +-
 .../plans/logical/ReplacePartitionField.scala      |   0
 .../plans/logical/SetIdentifierFields.scala        |   0
 .../sql/catalyst/plans/logical/TagOptions.scala    |   0
 .../sql/catalyst/plans/logical/statements.scala    |   0
 .../plans/logical/views/CreateIcebergView.scala    |   0
 .../plans/logical/views/DropIcebergView.scala      |   0
 .../plans/logical/views/ResolvedV2View.scala       |   0
 .../plans/logical/views/ShowIcebergViews.scala     |   0
 .../datasources/v2/AddPartitionFieldExec.scala     |   0
 .../v2/AlterV2ViewSetPropertiesExec.scala          |   0
 .../v2/AlterV2ViewUnsetPropertiesExec.scala        |   3 +-
 .../sql/execution/datasources/v2/CallExec.scala    |   0
 .../datasources/v2/CreateOrReplaceBranchExec.scala |   0
 .../datasources/v2/CreateOrReplaceTagExec.scala    |   0
 .../datasources/v2/CreateV2ViewExec.scala          |   4 +-
 .../datasources/v2/DescribeV2ViewExec.scala        |   0
 .../execution/datasources/v2/DropBranchExec.scala  |   0
 .../datasources/v2/DropIdentifierFieldsExec.scala  |   0
 .../datasources/v2/DropPartitionFieldExec.scala    |   0
 .../sql/execution/datasources/v2/DropTagExec.scala |   0
 .../execution/datasources/v2/DropV2ViewExec.scala  |   0
 .../v2/ExtendedDataSourceV2Strategy.scala          |  12 +-
 .../datasources/v2/RenameV2ViewExec.scala          |   0
 .../datasources/v2/ReplacePartitionFieldExec.scala |   0
 .../datasources/v2/SetIdentifierFieldsExec.scala   |   0
 .../v2/SetWriteDistributionAndOrderingExec.scala   |   0
 .../datasources/v2/ShowCreateV2ViewExec.scala      |   0
 .../datasources/v2/ShowV2ViewPropertiesExec.scala  |   0
 .../execution/datasources/v2/ShowV2ViewsExec.scala |   3 +-
 .../apache/iceberg/spark/extensions/Employee.java  |   0
 .../spark/extensions/ExtensionsTestBase.java       |   2 +-
 .../iceberg/spark/extensions/ProcedureUtil.java    |   0
 .../iceberg/spark/extensions/SparkPlanUtil.java    |   0
 .../SparkRowLevelOperationsTestBase.java           |   0
 .../spark/extensions/TestAddFilesProcedure.java    | 108 ++++++++
 .../extensions/TestAlterTablePartitionFields.java  |   0
 .../spark/extensions/TestAlterTableSchema.java     |   0
 .../spark/extensions/TestAncestorsOfProcedure.java |   0
 .../iceberg/spark/extensions/TestBranchDDL.java    |   0
 .../spark/extensions/TestCallStatementParser.java  |  13 -
 .../spark/extensions/TestChangelogTable.java       |   0
 .../TestCherrypickSnapshotProcedure.java           |  12 +-
 .../extensions/TestComputeTableStatsProcedure.java |   0
 .../spark/extensions/TestConflictValidation.java   |   0
 .../spark/extensions/TestCopyOnWriteDelete.java    |   0
 .../spark/extensions/TestCopyOnWriteMerge.java     |   0
 .../spark/extensions/TestCopyOnWriteUpdate.java    |   0
 .../TestCreateChangelogViewProcedure.java          |   0
 .../iceberg/spark/extensions/TestDelete.java       |   0
 .../extensions/TestExpireSnapshotsProcedure.java   |  11 +-
 .../extensions/TestFastForwardBranchProcedure.java |  11 +-
 .../apache/iceberg/spark/extensions/TestMerge.java |  30 +-
 .../spark/extensions/TestMergeOnReadDelete.java    |   0
 .../spark/extensions/TestMergeOnReadMerge.java     |   0
 .../spark/extensions/TestMergeOnReadUpdate.java    |   0
 .../TestMetaColumnProjectionWithStageScan.java     |   0
 .../spark/extensions/TestMetadataTables.java       |   0
 .../extensions/TestMigrateTableProcedure.java      |   0
 .../extensions/TestPublishChangesProcedure.java    |  12 +-
 .../extensions/TestRegisterTableProcedure.java     |   0
 .../extensions/TestRemoveOrphanFilesProcedure.java |  12 +-
 .../spark/extensions/TestReplaceBranch.java        |   0
 .../TestRequiredDistributionAndOrdering.java       |   0
 .../extensions/TestRewriteDataFilesProcedure.java  |  13 +-
 .../extensions/TestRewriteManifestsProcedure.java  |  11 +-
 .../extensions/TestRewritePositionDeleteFiles.java |   0
 .../TestRewritePositionDeleteFilesProcedure.java   |   2 +-
 .../extensions/TestRewriteTablePathProcedure.java  |   0
 .../TestRollbackToSnapshotProcedure.java           |  12 +-
 .../TestRollbackToTimestampProcedure.java          |  12 +-
 .../TestSetCurrentSnapshotProcedure.java           |  12 +-
 .../TestSetWriteDistributionAndOrdering.java       |   0
 .../extensions/TestSnapshotTableProcedure.java     |   0
 ...toragePartitionedJoinsInRowLevelOperations.java |   0
 .../extensions/TestSystemFunctionPushDownDQL.java  |   0
 ...SystemFunctionPushDownInRowLevelOperations.java |  23 +-
 .../iceberg/spark/extensions/TestTagDDL.java       |   0
 .../iceberg/spark/extensions/TestUpdate.java       |  12 +-
 .../apache/iceberg/spark/extensions/TestViews.java |  27 +-
 .../iceberg/spark/extensions/TestWriteAborts.java  |   0
 .../org/apache/iceberg/spark/source/PlanUtils.java |   0
 spark/{v3.4 => v4.0}/spark-runtime/LICENSE         |   0
 spark/{v3.4 => v4.0}/spark-runtime/NOTICE          |   0
 .../java/org/apache/iceberg/spark/SmokeTest.java   |   0
 .../apache/iceberg/spark/SparkBenchmarkUtil.java   |   0
 .../spark/action/DeleteOrphanFilesBenchmark.java   |   4 +-
 .../action/IcebergSortCompactionBenchmark.java     |   0
 .../iceberg/spark/action/RandomGeneratingUDF.java  |   0
 .../SparkParquetReadersFlatDataBenchmark.java      |   4 +-
 .../SparkParquetReadersNestedDataBenchmark.java    |   4 +-
 .../SparkParquetWritersFlatDataBenchmark.java      |   4 +-
 .../SparkParquetWritersNestedDataBenchmark.java    |   4 +-
 .../org/apache/iceberg/spark/source/Action.java    |   0
 .../iceberg/spark/source/DVReaderBenchmark.java    |   0
 .../iceberg/spark/source/DVWriterBenchmark.java    |   0
 .../spark/source/IcebergSourceBenchmark.java       |   0
 .../spark/source/IcebergSourceDeleteBenchmark.java |   0
 .../source/IcebergSourceFlatDataBenchmark.java     |   0
 .../source/IcebergSourceNestedDataBenchmark.java   |   0
 .../IcebergSourceNestedListDataBenchmark.java      |   0
 .../iceberg/spark/source/WritersBenchmark.java     |   0
 .../spark/source/avro/AvroWritersBenchmark.java    |   4 +-
 .../IcebergSourceFlatAvroDataReadBenchmark.java    |   4 +-
 .../IcebergSourceNestedAvroDataReadBenchmark.java  |   4 +-
 .../orc/IcebergSourceFlatORCDataBenchmark.java     |   0
 .../orc/IcebergSourceFlatORCDataReadBenchmark.java |   4 +-
 ...ebergSourceNestedListORCDataWriteBenchmark.java |   4 +-
 .../IcebergSourceNestedORCDataReadBenchmark.java   |   4 +-
 ...cebergSourceFlatParquetDataFilterBenchmark.java |   4 +-
 .../IcebergSourceFlatParquetDataReadBenchmark.java |   4 +-
 ...IcebergSourceFlatParquetDataWriteBenchmark.java |   4 +-
 ...gSourceNestedListParquetDataWriteBenchmark.java |   4 +-
 ...bergSourceNestedParquetDataFilterBenchmark.java |   4 +-
 ...cebergSourceNestedParquetDataReadBenchmark.java |   4 +-
 ...ebergSourceNestedParquetDataWriteBenchmark.java |   4 +-
 .../IcebergSourceParquetEqDeleteBenchmark.java     |   4 +-
 ...ebergSourceParquetMultiDeleteFileBenchmark.java |   4 +-
 .../IcebergSourceParquetPosDeleteBenchmark.java    |   4 +-
 ...gSourceParquetWithUnrelatedDeleteBenchmark.java |   4 +-
 .../source/parquet/ParquetWritersBenchmark.java    |   4 +-
 ...dDictionaryEncodedFlatParquetDataBenchmark.java |   4 +-
 .../VectorizedReadFlatParquetDataBenchmark.java    |   4 +-
 .../VectorizedReadParquetDecimalBenchmark.java     |   4 +-
 .../apache/iceberg/SparkDistributedDataScan.java   |   0
 .../java/org/apache/iceberg/spark/BaseCatalog.java |   0
 .../iceberg/spark/BaseFileRewriteCoordinator.java  |   0
 .../apache/iceberg/spark/ChangelogIterator.java    |   0
 .../org/apache/iceberg/spark/CommitMetadata.java   |   0
 .../iceberg/spark/ComputeUpdateIterator.java       |   0
 .../org/apache/iceberg/spark/ExtendedParser.java   |   0
 .../iceberg/spark/FileRewriteCoordinator.java      |   0
 .../org/apache/iceberg/spark/IcebergSpark.java     |   0
 .../org/apache/iceberg/spark/JobGroupInfo.java     |   0
 .../org/apache/iceberg/spark/JobGroupUtils.java    |   0
 .../org/apache/iceberg/spark/OrcBatchReadConf.java |   0
 .../apache/iceberg/spark/ParquetBatchReadConf.java |   0
 .../apache/iceberg/spark/ParquetReaderType.java    |   0
 .../org/apache/iceberg/spark/PathIdentifier.java   |   0
 .../spark/PositionDeletesRewriteCoordinator.java   |   0
 .../spark/PruneColumnsWithoutReordering.java       |   0
 .../iceberg/spark/RemoveCarryoverIterator.java     |   0
 .../iceberg/spark/RemoveNetCarryoverIterator.java  |   0
 .../apache/iceberg/spark/RollbackStagedTable.java  |   0
 .../apache/iceberg/spark/ScanTaskSetManager.java   |   0
 .../org/apache/iceberg/spark/SortOrderToSpark.java |   0
 .../java/org/apache/iceberg/spark/Spark3Util.java  |   3 +-
 .../org/apache/iceberg/spark/SparkAggregates.java  |   0
 .../iceberg/spark/SparkCachedTableCatalog.java     |   0
 .../org/apache/iceberg/spark/SparkCatalog.java     |  26 +-
 .../apache/iceberg/spark/SparkCompressionUtil.java |   0
 .../org/apache/iceberg/spark/SparkConfParser.java  |   2 +-
 .../org/apache/iceberg/spark/SparkContentFile.java |   0
 .../org/apache/iceberg/spark/SparkDataFile.java    |   0
 .../org/apache/iceberg/spark/SparkDeleteFile.java  |   0
 .../apache/iceberg/spark/SparkExceptionUtil.java   |   0
 .../apache/iceberg/spark/SparkExecutorCache.java   |   0
 .../org/apache/iceberg/spark/SparkFilters.java     |   0
 .../org/apache/iceberg/spark/SparkFixupTypes.java  |   0
 .../apache/iceberg/spark/SparkFunctionCatalog.java |   0
 .../org/apache/iceberg/spark/SparkReadConf.java    |   0
 .../org/apache/iceberg/spark/SparkReadOptions.java |   0
 .../apache/iceberg/spark/SparkSQLProperties.java   |   0
 .../org/apache/iceberg/spark/SparkSchemaUtil.java  |   0
 .../apache/iceberg/spark/SparkSessionCatalog.java  |  39 +--
 .../org/apache/iceberg/spark/SparkStructLike.java  |   0
 .../org/apache/iceberg/spark/SparkTableCache.java  |   0
 .../org/apache/iceberg/spark/SparkTableUtil.java   |  16 +-
 .../org/apache/iceberg/spark/SparkTypeToType.java  |   0
 .../org/apache/iceberg/spark/SparkTypeVisitor.java |   0
 .../java/org/apache/iceberg/spark/SparkUtil.java   |   3 +-
 .../org/apache/iceberg/spark/SparkV2Filters.java   |   0
 .../apache/iceberg/spark/SparkValueConverter.java  |   0
 .../org/apache/iceberg/spark/SparkWriteConf.java   |   0
 .../apache/iceberg/spark/SparkWriteOptions.java    |   0
 .../iceberg/spark/SparkWriteRequirements.java      |   0
 .../org/apache/iceberg/spark/SparkWriteUtil.java   |   0
 .../apache/iceberg/spark/SupportsFunctions.java    |   4 +-
 .../apache/iceberg/spark/SupportsReplaceView.java  |   0
 .../org/apache/iceberg/spark/TypeToSparkType.java  |   0
 .../actions/BaseSnapshotUpdateSparkAction.java     |   0
 .../iceberg/spark/actions/BaseSparkAction.java     |   0
 .../actions/BaseTableCreationSparkAction.java      |   0
 .../actions/ComputeTableStatsSparkAction.java      |   0
 .../actions/DeleteOrphanFilesSparkAction.java      |   0
 .../actions/DeleteReachableFilesSparkAction.java   |   0
 .../spark/actions/ExpireSnapshotsSparkAction.java  |   0
 .../org/apache/iceberg/spark/actions/FileInfo.java |   0
 .../iceberg/spark/actions/ManifestFileBean.java    |   0
 .../spark/actions/MigrateTableSparkAction.java     |   0
 .../iceberg/spark/actions/NDVSketchUtil.java       |   3 +-
 .../actions/RemoveDanglingDeletesSparkAction.java  |   0
 .../spark/actions/RewriteDataFilesSparkAction.java |   5 +-
 .../spark/actions/RewriteManifestsSparkAction.java |   0
 .../RewritePositionDeleteFilesSparkAction.java     |   0
 .../spark/actions/RewriteTablePathSparkAction.java |   0
 .../iceberg/spark/actions/SetAccumulator.java      |   0
 .../spark/actions/SnapshotTableSparkAction.java    |   0
 .../apache/iceberg/spark/actions/SparkActions.java |   0
 .../actions/SparkBinPackFileRewriteRunner.java     |   0
 .../spark/actions/SparkDataFileRewriteRunner.java  |   0
 .../actions/SparkRewritePositionDeleteRunner.java  |   2 +-
 .../iceberg/spark/actions/SparkRewriteRunner.java  |   0
 .../actions/SparkShufflingDataRewritePlanner.java  |   0
 .../actions/SparkShufflingFileRewriteRunner.java   |  15 +-
 .../spark/actions/SparkSortFileRewriteRunner.java  |   0
 .../actions/SparkZOrderFileRewriteRunner.java      |   0
 .../iceberg/spark/actions/SparkZOrderUDF.java      |   0
 .../spark/data/AvroWithSparkSchemaVisitor.java     |   0
 .../spark/data/ParquetWithSparkSchemaVisitor.java  |   0
 .../apache/iceberg/spark/data/SparkAvroWriter.java |   0
 .../apache/iceberg/spark/data/SparkOrcReader.java  |   0
 .../iceberg/spark/data/SparkOrcValueReaders.java   |   0
 .../iceberg/spark/data/SparkOrcValueWriters.java   |   0
 .../apache/iceberg/spark/data/SparkOrcWriter.java  |   0
 .../iceberg/spark/data/SparkParquetReaders.java    |   6 +
 .../iceberg/spark/data/SparkParquetWriters.java    |   0
 .../iceberg/spark/data/SparkPlannedAvroReader.java |   0
 .../iceberg/spark/data/SparkValueReaders.java      |   0
 .../iceberg/spark/data/SparkValueWriters.java      |   0
 .../vectorized/ArrowVectorAccessorFactory.java     |   0
 .../data/vectorized/ArrowVectorAccessors.java      |   0
 .../spark/data/vectorized/ColumnVectorBuilder.java |   0
 .../data/vectorized/ColumnVectorWithFilter.java    |   0
 .../spark/data/vectorized/ColumnarBatchReader.java |   0
 .../spark/data/vectorized/ColumnarBatchUtil.java   |   0
 .../spark/data/vectorized/CometColumnReader.java   |   0
 .../data/vectorized/CometColumnarBatchReader.java  |   0
 .../data/vectorized/CometConstantColumnReader.java |   0
 .../data/vectorized/CometDeleteColumnReader.java   |   0
 .../data/vectorized/CometPositionColumnReader.java |   0
 .../vectorized/CometVectorizedReaderBuilder.java   |   0
 .../data/vectorized/ConstantColumnVector.java      |   0
 .../spark/data/vectorized/DeletedColumnVector.java |   0
 .../data/vectorized/IcebergArrowColumnVector.java  |   0
 .../data/vectorized/RowPositionColumnVector.java   |   0
 .../data/vectorized/VectorizedSparkOrcReaders.java |   0
 .../vectorized/VectorizedSparkParquetReaders.java  |   0
 .../spark/functions/BaseScalarFunction.java        |   0
 .../iceberg/spark/functions/BucketFunction.java    |   0
 .../iceberg/spark/functions/DaysFunction.java      |   0
 .../iceberg/spark/functions/HoursFunction.java     |   0
 .../spark/functions/IcebergVersionFunction.java    |   0
 .../iceberg/spark/functions/MonthsFunction.java    |   0
 .../iceberg/spark/functions/SparkFunctions.java    |   0
 .../iceberg/spark/functions/TruncateFunction.java  |   0
 .../spark/functions/UnaryUnboundFunction.java      |   0
 .../iceberg/spark/functions/YearsFunction.java     |   0
 .../spark/procedures/AddFilesProcedure.java        |   0
 .../spark/procedures/AncestorsOfProcedure.java     |   0
 .../iceberg/spark/procedures/BaseProcedure.java    |   2 +-
 .../procedures/CherrypickSnapshotProcedure.java    |   0
 .../procedures/ComputeTableStatsProcedure.java     |   0
 .../procedures/CreateChangelogViewProcedure.java   |  16 +-
 .../spark/procedures/ExpireSnapshotsProcedure.java |   0
 .../procedures/FastForwardBranchProcedure.java     |   0
 .../spark/procedures/MigrateTableProcedure.java    |   0
 .../iceberg/spark/procedures/ProcedureInput.java   |   0
 .../spark/procedures/PublishChangesProcedure.java  |   0
 .../spark/procedures/RegisterTableProcedure.java   |   0
 .../procedures/RemoveOrphanFilesProcedure.java     |   0
 .../procedures/RewriteDataFilesProcedure.java      |   0
 .../procedures/RewriteManifestsProcedure.java      |   0
 .../RewritePositionDeleteFilesProcedure.java       |   0
 .../procedures/RewriteTablePathProcedure.java      |   0
 .../procedures/RollbackToSnapshotProcedure.java    |   0
 .../procedures/RollbackToTimestampProcedure.java   |   0
 .../procedures/SetCurrentSnapshotProcedure.java    |   0
 .../spark/procedures/SnapshotTableProcedure.java   |   0
 .../iceberg/spark/procedures/SparkProcedures.java  |   0
 .../iceberg/spark/source/BaseBatchReader.java      |   0
 .../apache/iceberg/spark/source/BaseReader.java    |   0
 .../apache/iceberg/spark/source/BaseRowReader.java |   0
 .../iceberg/spark/source/BatchDataReader.java      |   0
 .../iceberg/spark/source/ChangelogRowReader.java   |   0
 .../apache/iceberg/spark/source/DVIterator.java    |   0
 .../spark/source/EqualityDeleteRowReader.java      |   0
 .../iceberg/spark/source/HasIcebergCatalog.java    |   0
 .../apache/iceberg/spark/source/IcebergSource.java |   4 +-
 .../iceberg/spark/source/InternalRowWrapper.java   |   0
 .../spark/source/PositionDeletesRowReader.java     |   0
 .../apache/iceberg/spark/source/RowDataReader.java |   0
 .../spark/source/SerializableTableWithSize.java    |   0
 .../apache/iceberg/spark/source/SparkBatch.java    |   0
 .../iceberg/spark/source/SparkBatchQueryScan.java  |   0
 .../iceberg/spark/source/SparkChangelogScan.java   |   0
 .../iceberg/spark/source/SparkChangelogTable.java  |   2 +-
 .../iceberg/spark/source/SparkCleanupUtil.java     |   0
 .../spark/source/SparkColumnStatistics.java        |   0
 .../spark/source/SparkColumnarReaderFactory.java   |   0
 .../spark/source/SparkCopyOnWriteOperation.java    |   0
 .../iceberg/spark/source/SparkCopyOnWriteScan.java |   0
 .../spark/source/SparkFileWriterFactory.java       |   0
 .../iceberg/spark/source/SparkInputPartition.java  |   0
 .../iceberg/spark/source/SparkLocalScan.java       |   0
 .../iceberg/spark/source/SparkMetadataColumn.java  |   0
 .../spark/source/SparkMicroBatchStream.java        |  52 +++-
 .../spark/source/SparkPartitioningAwareScan.java   |   0
 .../iceberg/spark/source/SparkPlanningUtil.java    |   0
 .../spark/source/SparkPositionDeletesRewrite.java  |   0
 .../source/SparkPositionDeletesRewriteBuilder.java |   0
 .../spark/source/SparkPositionDeltaOperation.java  |   5 +
 .../spark/source/SparkPositionDeltaWrite.java      |   0
 .../source/SparkPositionDeltaWriteBuilder.java     |   8 +-
 .../source/SparkRowLevelOperationBuilder.java      |   0
 .../spark/source/SparkRowReaderFactory.java        |   0
 .../org/apache/iceberg/spark/source/SparkScan.java |   0
 .../iceberg/spark/source/SparkScanBuilder.java     |   0
 .../iceberg/spark/source/SparkStagedScan.java      |   0
 .../spark/source/SparkStagedScanBuilder.java       |   0
 .../apache/iceberg/spark/source/SparkTable.java    |  29 +-
 .../org/apache/iceberg/spark/source/SparkView.java |   0
 .../apache/iceberg/spark/source/SparkWrite.java    |   0
 .../iceberg/spark/source/SparkWriteBuilder.java    |   1 +
 .../iceberg/spark/source/StagedSparkTable.java     |   0
 .../org/apache/iceberg/spark/source/Stats.java     |   0
 .../iceberg/spark/source/StreamingOffset.java      |   0
 .../iceberg/spark/source/StructInternalRow.java    |   6 +
 .../spark/source/metrics/EqualityDeleteFiles.java  |   0
 .../spark/source/metrics/IndexedDeleteFiles.java   |   0
 .../iceberg/spark/source/metrics/NumDeletes.java   |   0
 .../iceberg/spark/source/metrics/NumSplits.java    |   0
 .../source/metrics/PositionalDeleteFiles.java      |   0
 .../spark/source/metrics/ResultDataFiles.java      |   0
 .../spark/source/metrics/ResultDeleteFiles.java    |   0
 .../spark/source/metrics/ScannedDataManifests.java |   0
 .../source/metrics/ScannedDeleteManifests.java     |   0
 .../spark/source/metrics/SkippedDataFiles.java     |   0
 .../spark/source/metrics/SkippedDataManifests.java |   0
 .../spark/source/metrics/SkippedDeleteFiles.java   |   0
 .../source/metrics/SkippedDeleteManifests.java     |   0
 .../source/metrics/TaskEqualityDeleteFiles.java    |   0
 .../source/metrics/TaskIndexedDeleteFiles.java     |   0
 .../spark/source/metrics/TaskNumDeletes.java       |   0
 .../spark/source/metrics/TaskNumSplits.java        |   0
 .../source/metrics/TaskPositionalDeleteFiles.java  |   0
 .../spark/source/metrics/TaskResultDataFiles.java  |   0
 .../source/metrics/TaskResultDeleteFiles.java      |   0
 .../source/metrics/TaskScannedDataManifests.java   |   0
 .../source/metrics/TaskScannedDeleteManifests.java |   0
 .../spark/source/metrics/TaskSkippedDataFiles.java |   0
 .../source/metrics/TaskSkippedDataManifests.java   |   0
 .../source/metrics/TaskSkippedDeleteFiles.java     |   0
 .../source/metrics/TaskSkippedDeleteManifests.java |   0
 .../source/metrics/TaskTotalDataFileSize.java      |   0
 .../source/metrics/TaskTotalDataManifests.java     |   0
 .../source/metrics/TaskTotalDeleteFileSize.java    |   0
 .../source/metrics/TaskTotalDeleteManifests.java   |   0
 .../source/metrics/TaskTotalPlanningDuration.java  |   0
 .../spark/source/metrics/TotalDataFileSize.java    |   0
 .../spark/source/metrics/TotalDataManifests.java   |   0
 .../spark/source/metrics/TotalDeleteFileSize.java  |   0
 .../spark/source/metrics/TotalDeleteManifests.java |   0
 .../source/metrics/TotalPlanningDuration.java      |   0
 .../analysis/IcebergAnalysisException.java}        |   9 +-
 .../analysis/NoSuchProcedureException.java         |   0
 .../sql/connector/iceberg/catalog/Procedure.java   |   0
 .../iceberg/catalog/ProcedureCatalog.java          |   0
 .../iceberg/catalog/ProcedureParameter.java        |   0
 .../iceberg/catalog/ProcedureParameterImpl.java    |   0
 ...org.apache.spark.sql.sources.DataSourceRegister |   0
 .../plans/logical/OrderAwareCoalesce.scala         |   0
 .../logical/SetWriteDistributionAndOrdering.scala  |   0
 .../plans/logical/SortOrderParserUtil.scala        |   0
 .../spark/sql/catalyst/utils/PlanUtils.scala       |   0
 .../sql/execution/OrderAwareCoalesceExec.scala     |   0
 .../datasources/SparkExpressionConverter.scala     |  12 +-
 .../apache/spark/sql/stats/ThetaSketchAgg.scala    |   3 +-
 .../test/java/org/apache/iceberg/KryoHelpers.java  |   0
 .../iceberg/SparkDistributedDataScanTestBase.java  |   0
 .../java/org/apache/iceberg/TaskCheckHelper.java   |   0
 .../apache/iceberg/TestDataFileSerialization.java  |   0
 .../apache/iceberg/TestFileIOSerialization.java    |   0
 .../TestHadoopMetricsContextSerialization.java     |   0
 .../iceberg/TestManifestFileSerialization.java     |   0
 .../apache/iceberg/TestScanTaskSerialization.java  |   0
 .../TestSparkDistributedDataScanDeletes.java       |   0
 .../TestSparkDistributedDataScanFilterFiles.java   |   0
 ...tSparkDistributedDataScanJavaSerialization.java |   0
 ...tSparkDistributedDataScanKryoSerialization.java |   0
 .../TestSparkDistributedDataScanReporting.java     |   0
 .../org/apache/iceberg/TestTableSerialization.java |   0
 .../java/org/apache/iceberg/ValidationHelpers.java |   0
 .../org/apache/iceberg/spark/CatalogTestBase.java  |   0
 .../java/org/apache/iceberg/spark/Employee.java    |   0
 .../apache/iceberg/spark/SparkCatalogConfig.java   |   0
 .../apache/iceberg/spark/SparkTestHelperBase.java  |   0
 .../spark/SystemFunctionPushDownHelper.java        |   0
 .../java/org/apache/iceberg/spark/TestBase.java    |   2 +
 .../apache/iceberg/spark/TestBaseWithCatalog.java  |   0
 .../iceberg/spark/TestChangelogIterator.java       |   0
 .../iceberg/spark/TestFileRewriteCoordinator.java  |   0
 .../apache/iceberg/spark/TestFunctionCatalog.java  |   8 +-
 .../org/apache/iceberg/spark/TestSpark3Util.java   |   0
 .../iceberg/spark/TestSparkCachedTableCatalog.java |   0
 .../iceberg/spark/TestSparkCatalogOperations.java  |   0
 .../iceberg/spark/TestSparkCompressionUtil.java    |   0
 .../TestSparkDistributionAndOrderingUtil.java      |   0
 .../iceberg/spark/TestSparkExecutorCache.java      |   0
 .../org/apache/iceberg/spark/TestSparkFilters.java |   0
 .../apache/iceberg/spark/TestSparkSchemaUtil.java  |   0
 .../iceberg/spark/TestSparkSessionCatalog.java     |   0
 .../apache/iceberg/spark/TestSparkTableUtil.java   |   0
 .../apache/iceberg/spark/TestSparkV2Filters.java   |   0
 .../iceberg/spark/TestSparkValueConverter.java     |   0
 .../apache/iceberg/spark/TestSparkWriteConf.java   |   0
 .../spark/actions/TestComputeTableStatsAction.java |   9 +-
 .../iceberg/spark/actions/TestCreateActions.java   |   0
 .../actions/TestDeleteReachableFilesAction.java    |   0
 .../spark/actions/TestExpireSnapshotsAction.java   |   0
 .../spark/actions/TestMigrateTableAction.java      |   0
 .../actions/TestRemoveDanglingDeleteAction.java    |   0
 .../spark/actions/TestRemoveOrphanFilesAction.java |   0
 .../actions/TestRemoveOrphanFilesAction3.java      |   0
 .../spark/actions/TestRewriteDataFilesAction.java  |   1 +
 .../spark/actions/TestRewriteManifestsAction.java  |   0
 .../TestRewritePositionDeleteFilesAction.java      |   0
 .../spark/actions/TestRewriteTablePathsAction.java |   0
 .../spark/actions/TestSnapshotTableAction.java     |   0
 .../spark/actions/TestSparkFileRewriteRunners.java |   0
 .../TestSparkShufflingDataRewritePlanner.java      |   3 +-
 .../apache/iceberg/spark/data/AvroDataTest.java    |   0
 .../apache/iceberg/spark/data/GenericsHelpers.java |   0
 .../org/apache/iceberg/spark/data/RandomData.java  |   0
 .../org/apache/iceberg/spark/data/TestHelpers.java |   0
 .../apache/iceberg/spark/data/TestOrcWrite.java    |   0
 .../iceberg/spark/data/TestParquetAvroReader.java  |   0
 .../iceberg/spark/data/TestParquetAvroWriter.java  |   0
 .../iceberg/spark/data/TestSparkAvroEnums.java     |   0
 .../iceberg/spark/data/TestSparkAvroReader.java    |   0
 .../iceberg/spark/data/TestSparkDateTimes.java     |   0
 .../data/TestSparkOrcReadMetadataColumns.java      |   0
 .../iceberg/spark/data/TestSparkOrcReader.java     |   0
 .../data/TestSparkParquetReadMetadataColumns.java  |   0
 .../iceberg/spark/data/TestSparkParquetReader.java |   0
 .../iceberg/spark/data/TestSparkParquetWriter.java |   0
 .../spark/data/TestSparkRecordOrcReaderWriter.java |   0
 .../spark/data/TestVectorizedOrcDataReader.java    |   0
 ...estParquetDictionaryEncodedVectorizedReads.java |   0
 ...naryFallbackToPlainEncodingVectorizedReads.java |   0
 .../vectorized/TestParquetVectorizedReads.java     |   0
 .../spark/functions/TestSparkFunctions.java        |   0
 .../apache/iceberg/spark/source/ComplexRecord.java |   0
 .../spark/source/DataFrameWriteTestBase.java       |   9 +-
 .../spark/source/FilePathLastModifiedRecord.java   |   0
 .../iceberg/spark/source/FourColumnRecord.java     |   0
 .../apache/iceberg/spark/source/LogMessage.java    |   0
 .../apache/iceberg/spark/source/ManualSource.java  |   0
 .../apache/iceberg/spark/source/NestedRecord.java  |   0
 .../apache/iceberg/spark/source/ScanTestBase.java  |   7 +-
 .../apache/iceberg/spark/source/SimpleRecord.java  |   0
 .../spark/source/SparkSQLExecutionHelper.java      |   0
 .../spark/source/TestAvroDataFrameWrite.java       |   0
 .../apache/iceberg/spark/source/TestAvroScan.java  |   0
 .../iceberg/spark/source/TestBaseReader.java       |   0
 .../iceberg/spark/source/TestChangelogReader.java  |   0
 .../spark/source/TestCompressionSettings.java      |   0
 .../spark/source/TestDataFrameWriterV2.java        |   8 +-
 .../source/TestDataFrameWriterV2Coercion.java      |   0
 .../spark/source/TestDataSourceOptions.java        |   0
 .../iceberg/spark/source/TestFilteredScan.java     |   0
 .../spark/source/TestForwardCompatibility.java     |   2 +-
 .../iceberg/spark/source/TestIcebergSource.java    |   0
 .../source/TestIcebergSourceHadoopTables.java      |   0
 .../spark/source/TestIcebergSourceHiveTables.java  |   0
 .../spark/source/TestIcebergSourceTablesBase.java  |   0
 .../iceberg/spark/source/TestIcebergSpark.java     |   0
 .../spark/source/TestIdentityPartitionData.java    |   0
 .../spark/source/TestInternalRowWrapper.java       |   0
 .../source/TestMetadataTableReadableMetrics.java   |   0
 .../TestMetadataTablesWithPartitionEvolution.java  |   0
 .../spark/source/TestORCDataFrameWrite.java        |   0
 .../spark/source/TestParquetDataFrameWrite.java    |   0
 .../iceberg/spark/source/TestParquetScan.java      |   0
 .../spark/source/TestParquetVectorizedScan.java    |   0
 .../iceberg/spark/source/TestPartitionPruning.java |  11 +-
 .../iceberg/spark/source/TestPartitionValues.java  |   0
 .../iceberg/spark/source/TestPathIdentifier.java   |   0
 .../spark/source/TestPositionDeletesReader.java    |   0
 .../spark/source/TestPositionDeletesTable.java     |  27 +-
 .../iceberg/spark/source/TestReadProjection.java   |   0
 .../TestRequiredDistributionAndOrdering.java       |   0
 .../iceberg/spark/source/TestRuntimeFiltering.java |   0
 .../spark/source/TestSnapshotSelection.java        |   0
 .../iceberg/spark/source/TestSparkAggregates.java  |   0
 .../iceberg/spark/source/TestSparkCatalog.java     |   0
 .../source/TestSparkCatalogCacheExpiration.java    |   0
 .../source/TestSparkCatalogHadoopOverrides.java    |   0
 .../iceberg/spark/source/TestSparkDVWriters.java   |   0
 .../iceberg/spark/source/TestSparkDataFile.java    |  11 +-
 .../iceberg/spark/source/TestSparkDataWrite.java   |   0
 .../spark/source/TestSparkFileWriterFactory.java   |   0
 .../spark/source/TestSparkMetadataColumns.java     |  32 ++-
 .../spark/source/TestSparkPartitioningWriters.java |   0
 .../spark/source/TestSparkPlanningUtil.java        |   0
 .../source/TestSparkPositionDeltaWriters.java      |   0
 .../iceberg/spark/source/TestSparkReadMetrics.java |   0
 .../spark/source/TestSparkReadProjection.java      |   0
 .../spark/source/TestSparkReaderDeletes.java       |   0
 .../source/TestSparkReaderWithBloomFilter.java     |   0
 .../spark/source/TestSparkRollingFileWriters.java  |   0
 .../apache/iceberg/spark/source/TestSparkScan.java |   0
 .../iceberg/spark/source/TestSparkStagedScan.java  |   0
 .../iceberg/spark/source/TestSparkTable.java       |   0
 .../spark/source/TestSparkWriterMetrics.java       |   0
 .../iceberg/spark/source/TestStreamingOffset.java  |   0
 .../spark/source/TestStructuredStreaming.java      |   0
 .../spark/source/TestStructuredStreamingRead3.java |  44 ++-
 .../apache/iceberg/spark/source/TestTables.java    |   0
 .../spark/source/TestTimestampWithoutZone.java     |   0
 .../spark/source/TestWriteMetricsConfig.java       |   9 +-
 .../iceberg/spark/source/ThreeColumnRecord.java    |   0
 .../spark/sql/PartitionedWritesTestBase.java       |   0
 .../iceberg/spark/sql/TestAggregatePushDown.java   |   2 +-
 .../apache/iceberg/spark/sql/TestAlterTable.java   |   0
 .../apache/iceberg/spark/sql/TestCreateTable.java  |   0
 .../iceberg/spark/sql/TestCreateTableAsSelect.java |   0
 .../apache/iceberg/spark/sql/TestDeleteFrom.java   |   0
 .../apache/iceberg/spark/sql/TestDropTable.java    |   0
 .../iceberg/spark/sql/TestFilterPushDown.java      |   0
 .../apache/iceberg/spark/sql/TestNamespaceSQL.java |   0
 .../iceberg/spark/sql/TestPartitionedWrites.java   |   0
 .../spark/sql/TestPartitionedWritesAsSelect.java   |   0
 .../spark/sql/TestPartitionedWritesToBranch.java   |   0
 .../sql/TestPartitionedWritesToWapBranch.java      |   0
 .../apache/iceberg/spark/sql/TestRefreshTable.java |   8 +-
 .../org/apache/iceberg/spark/sql/TestSelect.java   |   0
 .../iceberg/spark/sql/TestSparkBucketFunction.java |  23 +-
 .../iceberg/spark/sql/TestSparkDaysFunction.java   |   0
 .../iceberg/spark/sql/TestSparkHoursFunction.java  |   0
 .../iceberg/spark/sql/TestSparkMonthsFunction.java |   4 +-
 .../spark/sql/TestSparkTruncateFunction.java       |  20 +-
 .../iceberg/spark/sql/TestSparkYearsFunction.java  |   4 +-
 .../spark/sql/TestStoragePartitionedJoins.java     |   9 +-
 .../spark/sql/TestTimestampWithoutZone.java        |   0
 .../iceberg/spark/sql/TestUnpartitionedWrites.java |   0
 .../spark/sql/TestUnpartitionedWritesToBranch.java |   0
 .../spark/sql/UnpartitionedWritesTestBase.java     |   0
 .../decimal_dict_and_plain_encoding.parquet        | Bin
 707 files changed, 4738 insertions(+), 1425 deletions(-)
 create mode 100644 aws/src/main/java/org/apache/iceberg/aws/s3/PrefixedS3Client.java
 copy gcp/src/test/java/org/apache/iceberg/gcp/gcs/TestPrefixedStorage.java => aws/src/test/java/org/apache/iceberg/aws/s3/TestPrefixedS3Client.java (62%)
 create mode 100644 flink/v1.19/flink/src/main/java/org/apache/iceberg/flink/maintenance/api/ZkLockFactory.java
 copy spark/v3.4/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWritesToBranch.java => flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/TestZkLockFactory.java (55%)
 create mode 100644 flink/v1.19/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/TestTaskResultAggregator.java
 create mode 100644 flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/api/ZkLockFactory.java
 copy spark/v3.4/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWritesToBranch.java => flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/TestZkLockFactory.java (55%)
 create mode 100644 flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/TestTaskResultAggregator.java
 create mode 100644 flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/maintenance/api/ZkLockFactory.java
 create mode 100644 flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/dynamic/DynamicRecord.java
 create mode 100644 flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/dynamic/DynamicRecordInternal.java
 create mode 100644 flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/dynamic/DynamicRecordInternalSerializer.java
 create mode 100644 flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/dynamic/DynamicRecordInternalType.java
 create mode 100644 flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/dynamic/TableSerializerCache.java
 copy spark/v3.4/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWritesToBranch.java => flink/v2.0/flink/src/test/java/org/apache/iceberg/flink/maintenance/api/TestZkLockFactory.java (55%)
 create mode 100644 flink/v2.0/flink/src/test/java/org/apache/iceberg/flink/maintenance/operator/TestTaskResultAggregator.java
 create mode 100644 flink/v2.0/flink/src/test/java/org/apache/iceberg/flink/sink/dynamic/DynamicRecordInternalSerializerTestBase.java
 copy api/src/main/java/org/apache/iceberg/view/ViewRepresentation.java => flink/v2.0/flink/src/test/java/org/apache/iceberg/flink/sink/dynamic/TestDynamicRecordInternalSerializerWriteSchema.java (74%)
 copy api/src/main/java/org/apache/iceberg/view/ViewRepresentation.java => flink/v2.0/flink/src/test/java/org/apache/iceberg/flink/sink/dynamic/TestDynamicRecordInternalSerializerWriteSchemaId.java (73%)
 create mode 100644 flink/v2.0/flink/src/test/java/org/apache/iceberg/flink/sink/dynamic/TestTableSerializerCache.java
 delete mode 100644 spark/v3.4/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitionedFanoutWriter.java
 delete mode 100644 spark/v3.4/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitionedWriter.java
 delete mode 100644 spark/v3.4/spark/src/test/java/org/apache/iceberg/rest/RESTServerRule.java
 delete mode 100644 spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitionedFanoutWriter.java
 delete mode 100644 spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitionedWriter.java
 copy spark/{v3.5 => v4.0}/build.gradle (95%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/jmh/java/org/apache/iceberg/DeleteFileIndexBenchmark.java (98%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/jmh/java/org/apache/iceberg/spark/MergeCardinalityCheckBenchmark.java (98%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/jmh/java/org/apache/iceberg/spark/PlanningBenchmark.java (99%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/jmh/java/org/apache/iceberg/spark/TaskGroupPlanningBenchmark.java (98%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/jmh/java/org/apache/iceberg/spark/UpdateProjectionBenchmark.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/antlr/org.apache.spark.sql.catalyst.parser.extensions/IcebergSqlExtensions.g4 (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/iceberg/spark/extensions/IcebergSparkSessionExtensions.scala (81%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckViews.scala (95%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/ProcedureArgumentCoercion.scala (90%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveProcedures.scala (88%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveViews.scala (97%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/RewriteViewCommands.scala (94%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/ViewUtil.scala (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/optimizer/ReplaceStaticInvoke.scala (98%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/parser/extensions/IcebergSparkSqlExtensionsParser.scala (96%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/parser/extensions/IcebergSqlExtensionsAstBuilder.scala (98%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/AddPartitionField.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/BranchOptions.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/CreateOrReplaceBranch.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/CreateOrReplaceTag.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/DropBranch.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/DropIdentifierFields.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/DropPartitionField.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/DropTag.scala (100%)
 copy spark/{v3.5/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/Call.scala => v4.0/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/IcebergCall.scala} (87%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/ReplacePartitionField.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/SetIdentifierFields.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/TagOptions.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/statements.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/views/CreateIcebergView.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/views/DropIcebergView.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/views/ResolvedV2View.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/views/ShowIcebergViews.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/AddPartitionFieldExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/AlterV2ViewSetPropertiesExec.scala (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/AlterV2ViewUnsetPropertiesExec.scala (91%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/CallExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/CreateOrReplaceBranchExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/CreateOrReplaceTagExec.scala (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/CreateV2ViewExec.scala (96%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DescribeV2ViewExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DropBranchExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DropIdentifierFieldsExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DropPartitionFieldExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DropTagExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DropV2ViewExec.scala (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ExtendedDataSourceV2Strategy.scala (96%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/RenameV2ViewExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ReplacePartitionFieldExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/SetIdentifierFieldsExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/SetWriteDistributionAndOrderingExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ShowCreateV2ViewExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ShowV2ViewPropertiesExec.scala (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ShowV2ViewsExec.scala (96%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/Employee.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/ExtensionsTestBase.java (99%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/ProcedureUtil.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/SparkPlanUtil.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/SparkRowLevelOperationsTestBase.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAddFilesProcedure.java (92%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAlterTablePartitionFields.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAlterTableSchema.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAncestorsOfProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestBranchDDL.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCallStatementParser.java (94%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestChangelogTable.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCherrypickSnapshotProcedure.java (92%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestComputeTableStatsProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestConflictValidation.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCopyOnWriteDelete.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCopyOnWriteMerge.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCopyOnWriteUpdate.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCreateChangelogViewProcedure.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestDelete.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestExpireSnapshotsProcedure.java (97%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestFastForwardBranchProcedure.java (95%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMerge.java (99%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMergeOnReadDelete.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMergeOnReadMerge.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMergeOnReadUpdate.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMetaColumnProjectionWithStageScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMetadataTables.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMigrateTableProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestPublishChangesProcedure.java (92%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRegisterTableProcedure.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRemoveOrphanFilesProcedure.java (98%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestReplaceBranch.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRequiredDistributionAndOrdering.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewriteDataFilesProcedure.java (98%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewriteManifestsProcedure.java (97%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewritePositionDeleteFiles.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewritePositionDeleteFilesProcedure.java (99%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewriteTablePathProcedure.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRollbackToSnapshotProcedure.java (94%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRollbackToTimestampProcedure.java (95%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSetCurrentSnapshotProcedure.java (95%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSetWriteDistributionAndOrdering.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSnapshotTableProcedure.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestStoragePartitionedJoinsInRowLevelOperations.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSystemFunctionPushDownDQL.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSystemFunctionPushDownInRowLevelOperations.java (92%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestTagDDL.java (100%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestUpdate.java (99%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestViews.java (98%)
 copy spark/{v3.5 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestWriteAborts.java (100%)
 copy spark/{v3.4 => v4.0}/spark-extensions/src/test/java/org/apache/iceberg/spark/source/PlanUtils.java (100%)
 copy spark/{v3.4 => v4.0}/spark-runtime/LICENSE (100%)
 copy spark/{v3.4 => v4.0}/spark-runtime/NOTICE (100%)
 copy spark/{v3.4 => v4.0}/spark-runtime/src/integration/java/org/apache/iceberg/spark/SmokeTest.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/SparkBenchmarkUtil.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/action/DeleteOrphanFilesBenchmark.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/action/IcebergSortCompactionBenchmark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/action/RandomGeneratingUDF.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetReadersFlatDataBenchmark.java (98%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetReadersNestedDataBenchmark.java (98%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetWritersFlatDataBenchmark.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetWritersNestedDataBenchmark.java (97%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/Action.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/DVReaderBenchmark.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/DVWriterBenchmark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceBenchmark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceDeleteBenchmark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceFlatDataBenchmark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceNestedDataBenchmark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceNestedListDataBenchmark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/WritersBenchmark.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/AvroWritersBenchmark.java (91%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/IcebergSourceFlatAvroDataReadBenchmark.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/IcebergSourceNestedAvroDataReadBenchmark.java (97%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceFlatORCDataBenchmark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceFlatORCDataReadBenchmark.java (98%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceNestedListORCDataWriteBenchmark.java (96%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceNestedORCDataReadBenchmark.java (98%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceFlatParquetDataFilterBenchmark.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceFlatParquetDataReadBenchmark.java (97%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceFlatParquetDataWriteBenchmark.java (96%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedListParquetDataWriteBenchmark.java (95%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedParquetDataFilterBenchmark.java (97%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedParquetDataReadBenchmark.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedParquetDataWriteBenchmark.java (95%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetEqDeleteBenchmark.java (95%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetMultiDeleteFileBenchmark.java (95%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetPosDeleteBenchmark.java (95%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetWithUnrelatedDeleteBenchmark.java (95%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/ParquetWritersBenchmark.java (91%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/vectorized/VectorizedReadDictionaryEncodedFlatParquetDataBenchmark.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/vectorized/VectorizedReadFlatParquetDataBenchmark.java (98%)
 copy spark/{v3.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/vectorized/VectorizedReadParquetDecimalBenchmark.java (98%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/SparkDistributedDataScan.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/BaseCatalog.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/BaseFileRewriteCoordinator.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/ChangelogIterator.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/CommitMetadata.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/ComputeUpdateIterator.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/ExtendedParser.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/FileRewriteCoordinator.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/IcebergSpark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/JobGroupInfo.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/JobGroupUtils.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/OrcBatchReadConf.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/ParquetBatchReadConf.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/ParquetReaderType.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/PathIdentifier.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/PositionDeletesRewriteCoordinator.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/PruneColumnsWithoutReordering.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/RemoveCarryoverIterator.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/RemoveNetCarryoverIterator.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/RollbackStagedTable.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/ScanTaskSetManager.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SortOrderToSpark.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/Spark3Util.java (99%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkAggregates.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkCachedTableCatalog.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkCatalog.java (98%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkCompressionUtil.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkConfParser.java (99%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkContentFile.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkDataFile.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkDeleteFile.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkExceptionUtil.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkExecutorCache.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkFilters.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkFixupTypes.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkFunctionCatalog.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkReadConf.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkReadOptions.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkSQLProperties.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkSchemaUtil.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkSessionCatalog.java (95%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkStructLike.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkTableCache.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java (98%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkTypeVisitor.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkUtil.java (99%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkV2Filters.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkValueConverter.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkWriteConf.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkWriteOptions.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkWriteRequirements.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SparkWriteUtil.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SupportsFunctions.java (93%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/SupportsReplaceView.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/TypeToSparkType.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/BaseSnapshotUpdateSparkAction.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/BaseSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/BaseTableCreationSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/ComputeTableStatsSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/DeleteOrphanFilesSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/DeleteReachableFilesSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/ExpireSnapshotsSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/FileInfo.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/ManifestFileBean.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/MigrateTableSparkAction.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/NDVSketchUtil.java (96%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/RemoveDanglingDeletesSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/RewriteDataFilesSparkAction.java (99%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/RewriteManifestsSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/RewritePositionDeleteFilesSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/RewriteTablePathSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SetAccumulator.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SnapshotTableSparkAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkActions.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkBinPackFileRewriteRunner.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkDataFileRewriteRunner.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkRewritePositionDeleteRunner.java (98%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkRewriteRunner.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkShufflingDataRewritePlanner.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkShufflingFileRewriteRunner.java (92%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkSortFileRewriteRunner.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkZOrderFileRewriteRunner.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkZOrderUDF.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/AvroWithSparkSchemaVisitor.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/ParquetWithSparkSchemaVisitor.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkAvroWriter.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkOrcReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkOrcValueReaders.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkOrcValueWriters.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkOrcWriter.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkParquetReaders.java (99%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkParquetWriters.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkPlannedAvroReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkValueReaders.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/SparkValueWriters.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ArrowVectorAccessorFactory.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ArrowVectorAccessors.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ColumnVectorBuilder.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ColumnVectorWithFilter.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ColumnarBatchReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ColumnarBatchUtil.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/CometColumnReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/CometColumnarBatchReader.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/CometConstantColumnReader.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/CometDeleteColumnReader.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/CometPositionColumnReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/CometVectorizedReaderBuilder.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ConstantColumnVector.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/DeletedColumnVector.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/IcebergArrowColumnVector.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/RowPositionColumnVector.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/VectorizedSparkOrcReaders.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/VectorizedSparkParquetReaders.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/BaseScalarFunction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/BucketFunction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/DaysFunction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/HoursFunction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/IcebergVersionFunction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/MonthsFunction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/SparkFunctions.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/TruncateFunction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/UnaryUnboundFunction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/functions/YearsFunction.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/AddFilesProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/AncestorsOfProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/BaseProcedure.java (99%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/CherrypickSnapshotProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/ComputeTableStatsProcedure.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.java (95%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/ExpireSnapshotsProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/FastForwardBranchProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/MigrateTableProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/ProcedureInput.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/PublishChangesProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/RegisterTableProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/RemoveOrphanFilesProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/RewriteDataFilesProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/RewriteManifestsProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/RewritePositionDeleteFilesProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/RewriteTablePathProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/RollbackToSnapshotProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/RollbackToTimestampProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/SetCurrentSnapshotProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/SnapshotTableProcedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/procedures/SparkProcedures.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/BaseBatchReader.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/BaseReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/BaseRowReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/BatchDataReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/ChangelogRowReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/DVIterator.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/EqualityDeleteRowReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/HasIcebergCatalog.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/IcebergSource.java (98%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/InternalRowWrapper.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/PositionDeletesRowReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/RowDataReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SerializableTableWithSize.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkBatch.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkBatchQueryScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkChangelogScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkChangelogTable.java (99%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkCleanupUtil.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkColumnStatistics.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkColumnarReaderFactory.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkCopyOnWriteOperation.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkCopyOnWriteScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkFileWriterFactory.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkInputPartition.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkLocalScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkMetadataColumn.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkMicroBatchStream.java (91%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitioningAwareScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPlanningUtil.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeletesRewrite.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeletesRewriteBuilder.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeltaOperation.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeltaWrite.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeltaWriteBuilder.java (93%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkRowLevelOperationBuilder.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkRowReaderFactory.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkScanBuilder.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkStagedScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkStagedScanBuilder.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkTable.java (93%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkView.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkWrite.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkWriteBuilder.java (99%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/StagedSparkTable.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/Stats.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/StreamingOffset.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/StructInternalRow.java (98%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/EqualityDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/IndexedDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/NumDeletes.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/NumSplits.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/PositionalDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/ResultDataFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/ResultDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/ScannedDataManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/ScannedDeleteManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/SkippedDataFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/SkippedDataManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/SkippedDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/SkippedDeleteManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskEqualityDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskIndexedDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskNumDeletes.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskNumSplits.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskPositionalDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskResultDataFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskResultDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskScannedDataManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskScannedDeleteManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskSkippedDataFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskSkippedDataManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskSkippedDeleteFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskSkippedDeleteManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskTotalDataFileSize.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskTotalDataManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskTotalDeleteFileSize.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskTotalDeleteManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskTotalPlanningDuration.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TotalDataFileSize.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TotalDataManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TotalDeleteFileSize.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TotalDeleteManifests.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TotalPlanningDuration.java (100%)
 copy spark/{v3.5/spark/src/main/java/org/apache/spark/sql/catalyst/analysis/NoSuchProcedureException.java => v4.0/spark/src/main/java/org/apache/spark/sql/catalyst/analysis/IcebergAnalysisException.java} (82%)
 copy spark/{v3.5 => v4.0}/spark/src/main/java/org/apache/spark/sql/catalyst/analysis/NoSuchProcedureException.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/spark/sql/connector/iceberg/catalog/Procedure.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/spark/sql/connector/iceberg/catalog/ProcedureCatalog.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/spark/sql/connector/iceberg/catalog/ProcedureParameter.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/spark/sql/connector/iceberg/catalog/ProcedureParameterImpl.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/resources/META-INF/services/org.apache.spark.sql.sources.DataSourceRegister (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/OrderAwareCoalesce.scala (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/SetWriteDistributionAndOrdering.scala (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/SortOrderParserUtil.scala (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/scala/org/apache/spark/sql/catalyst/utils/PlanUtils.scala (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/scala/org/apache/spark/sql/execution/OrderAwareCoalesceExec.scala (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/scala/org/apache/spark/sql/execution/datasources/SparkExpressionConverter.scala (89%)
 copy spark/{v3.4 => v4.0}/spark/src/main/scala/org/apache/spark/sql/stats/ThetaSketchAgg.scala (97%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/KryoHelpers.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/SparkDistributedDataScanTestBase.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/TaskCheckHelper.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/TestDataFileSerialization.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/TestFileIOSerialization.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/TestHadoopMetricsContextSerialization.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/TestManifestFileSerialization.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/TestScanTaskSerialization.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/TestSparkDistributedDataScanDeletes.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/TestSparkDistributedDataScanFilterFiles.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/TestSparkDistributedDataScanJavaSerialization.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/TestSparkDistributedDataScanKryoSerialization.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/TestSparkDistributedDataScanReporting.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/TestTableSerialization.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/ValidationHelpers.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/CatalogTestBase.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/Employee.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/SparkCatalogConfig.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/SparkTestHelperBase.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/SystemFunctionPushDownHelper.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestBase.java (98%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestBaseWithCatalog.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestChangelogIterator.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestFileRewriteCoordinator.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestFunctionCatalog.java (94%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSpark3Util.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkCachedTableCatalog.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkCatalogOperations.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkCompressionUtil.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkDistributionAndOrderingUtil.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkExecutorCache.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkFilters.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkSchemaUtil.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkSessionCatalog.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkTableUtil.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkV2Filters.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkValueConverter.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkWriteConf.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestComputeTableStatsAction.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestCreateActions.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestDeleteReachableFilesAction.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestExpireSnapshotsAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestMigrateTableAction.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRemoveDanglingDeleteAction.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRemoveOrphanFilesAction.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRemoveOrphanFilesAction3.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRewriteDataFilesAction.java (99%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRewriteManifestsAction.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRewritePositionDeleteFilesAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRewriteTablePathsAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestSnapshotTableAction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestSparkFileRewriteRunners.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/actions/TestSparkShufflingDataRewritePlanner.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/AvroDataTest.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/GenericsHelpers.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/RandomData.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestHelpers.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestOrcWrite.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestParquetAvroReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestParquetAvroWriter.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkAvroEnums.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkAvroReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkDateTimes.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkOrcReadMetadataColumns.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkOrcReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkParquetReadMetadataColumns.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkParquetReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkParquetWriter.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkRecordOrcReaderWriter.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestVectorizedOrcDataReader.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/parquet/vectorized/TestParquetDictionaryEncodedVectorizedReads.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/parquet/vectorized/TestParquetDictionaryFallbackToPlainEncodingVectorizedReads.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/parquet/vectorized/TestParquetVectorizedReads.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/functions/TestSparkFunctions.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/ComplexRecord.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/DataFrameWriteTestBase.java (92%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/FilePathLastModifiedRecord.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/FourColumnRecord.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/LogMessage.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/ManualSource.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/NestedRecord.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/ScanTestBase.java (95%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/SimpleRecord.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/SparkSQLExecutionHelper.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestAvroDataFrameWrite.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestAvroScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestBaseReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestChangelogReader.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestCompressionSettings.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestDataFrameWriterV2.java (97%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestDataFrameWriterV2Coercion.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestDataSourceOptions.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestFilteredScan.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestForwardCompatibility.java (99%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSource.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSourceHadoopTables.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSourceHiveTables.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSourceTablesBase.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSpark.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestIdentityPartitionData.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestInternalRowWrapper.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestMetadataTableReadableMetrics.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestMetadataTablesWithPartitionEvolution.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestORCDataFrameWrite.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestParquetDataFrameWrite.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestParquetScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestParquetVectorizedScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestPartitionPruning.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestPartitionValues.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestPathIdentifier.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestPositionDeletesReader.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestPositionDeletesTable.java (99%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestReadProjection.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestRequiredDistributionAndOrdering.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestRuntimeFiltering.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSnapshotSelection.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkAggregates.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkCatalog.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkCatalogCacheExpiration.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkCatalogHadoopOverrides.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkDVWriters.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkDataFile.java (96%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkDataWrite.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkFileWriterFactory.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkMetadataColumns.java (91%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkPartitioningWriters.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkPlanningUtil.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkPositionDeltaWriters.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkReadMetrics.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkReadProjection.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkReaderDeletes.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkReaderWithBloomFilter.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkRollingFileWriters.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkScan.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkStagedScan.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkTable.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkWriterMetrics.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestStreamingOffset.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestStructuredStreaming.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestStructuredStreamingRead3.java (95%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestTables.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestTimestampWithoutZone.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestWriteMetricsConfig.java (96%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/ThreeColumnRecord.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/PartitionedWritesTestBase.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestAggregatePushDown.java (99%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestAlterTable.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestCreateTable.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestCreateTableAsSelect.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestDeleteFrom.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestDropTable.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestFilterPushDown.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestNamespaceSQL.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWrites.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWritesAsSelect.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWritesToBranch.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWritesToWapBranch.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestRefreshTable.java (89%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSelect.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkBucketFunction.java (93%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkDaysFunction.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkHoursFunction.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkMonthsFunction.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkTruncateFunction.java (95%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkYearsFunction.java (97%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestStoragePartitionedJoins.java (98%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestTimestampWithoutZone.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestUnpartitionedWrites.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/TestUnpartitionedWritesToBranch.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/sql/UnpartitionedWritesTestBase.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/resources/decimal_dict_and_plain_encoding.parquet (100%)