You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by am...@apache.org on 2025/05/08 05:18:31 UTC

(iceberg) branch main updated (8cf996188a -> ad7f5c439b)

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

amoghj pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git


    from 8cf996188a AWS, Core, Flink, Parquet: Remove deprecations for 1.10.0 (#12909)
     add ad7f5c439b Spark: Spark 4.0 initial support (#12494)

No new revisions were added by this update.

Summary of changes:
 .github/workflows/java-ci.yml                      |   4 +--
 .github/workflows/jmh-benchmarks.yml               |   4 +--
 .github/workflows/publish-snapshot.yml             |   2 +-
 .github/workflows/recurring-jmh-benchmarks.yml     |   2 +-
 .github/workflows/spark-ci.yml                     |   6 +++-
 .gitignore                                         |   2 ++
 build.gradle                                       |   3 ++
 .../java/org/apache/iceberg/MetadataColumns.java   |   2 +-
 gradle.properties                                  |   4 +--
 gradle/libs.versions.toml                          |   4 +++
 .../org/apache/iceberg/hive/TestHiveMetastore.java |   1 +
 jmh.gradle                                         |   5 +++
 settings.gradle                                    |  12 +++++++
 spark/build.gradle                                 |   4 +++
 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          |   4 +--
 .../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    |   0
 .../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  |   0
 .../org/apache/iceberg/spark/SparkAggregates.java  |   0
 .../iceberg/spark/SparkCachedTableCatalog.java     |   0
 .../org/apache/iceberg/spark/SparkCatalog.java     |  36 ++++++++++---------
 .../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 |   2 +-
 .../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  |   0
 .../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        |   0
 .../spark/source/SparkPartitionedFanoutWriter.java |   0
 .../spark/source/SparkPartitionedWriter.java       |   0
 .../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     |   1 +
 .../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    |   0
 .../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      |   0
 .../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  |   0
 .../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     |  23 ++++++++++++
 .../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 |   0
 .../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
 580 files changed, 493 insertions(+), 428 deletions(-)
 copy spark/{v3.5 => v4.0}/build.gradle (96%)
 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 (98%)
 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 (100%)
 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.4 => v4.0}/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetWritersFlatDataBenchmark.java (97%)
 copy spark/{v3.4 => 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.5 => 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 (100%)
 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 (97%)
 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 (100%)
 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 (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitionedFanoutWriter.java (100%)
 copy spark/{v3.4 => v4.0}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitionedWriter.java (100%)
 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 (99%)
 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 (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestBaseWithCatalog.java (100%)
 copy spark/{v3.5 => 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.5 => 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.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkTableUtil.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/TestSparkV2Filters.java (100%)
 copy spark/{v3.5 => 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.5 => 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 (100%)
 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.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestOrcWrite.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestParquetAvroReader.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestParquetAvroWriter.java (100%)
 copy spark/{v3.5 => 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.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkDateTimes.java (100%)
 copy spark/{v3.5 => 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.5 => 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.5 => 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.4 => 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 (100%)
 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.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestBaseReader.java (100%)
 copy spark/{v3.5 => 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.5 => 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.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSourceHadoopTables.java (100%)
 copy spark/{v3.5 => 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.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSpark.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestIdentityPartitionData.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestInternalRowWrapper.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestMetadataTableReadableMetrics.java (100%)
 copy spark/{v3.5 => 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.5 => 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.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestRuntimeFiltering.java (100%)
 copy spark/{v3.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSnapshotSelection.java (100%)
 copy spark/{v3.5 => 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.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkCatalogCacheExpiration.java (100%)
 copy spark/{v3.5 => 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.5 => 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.5 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkReadMetrics.java (100%)
 copy spark/{v3.5 => 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.5 => 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.5 => 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.5 => 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 (100%)
 copy spark/{v3.4 => v4.0}/spark/src/test/java/org/apache/iceberg/spark/source/TestTables.java (100%)
 copy spark/{v3.5 => 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.5 => 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.4 => 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%)