You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by ao...@apache.org on 2023/09/18 22:12:16 UTC

[iceberg] branch master updated (e627dea157 -> 4e5d2a19cf)

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

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


    from e627dea157 Arrow: Propagate correct field info while reading metadata columns (#8568)
     add 31e31fd819 Spark 3.5: Move 3.4 as 3.5
     add 6d88320ee3 Spark 3.4: Copy back 3.5 as 3.4
     add 4e5d2a19cf Spark 3.5: Initial support

No new revisions were added by this update.

Summary of changes:
 .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 +
 gradle.properties                                  |    4 +-
 gradle/libs.versions.toml                          |    7 +-
 jmh.gradle                                         |    5 +
 settings.gradle                                    |   12 +
 spark/build.gradle                                 |    4 +
 spark/v3.1/build.gradle                            |   11 +-
 spark/v3.2/build.gradle                            |   11 +-
 spark/{v3.2 => v3.5}/build.gradle                  |   23 +-
 .../apache/iceberg/DeleteFileIndexBenchmark.java   |  304 ++
 .../spark/MergeCardinalityCheckBenchmark.java      |  231 ++
 .../apache/iceberg/spark/PlanningBenchmark.java    |  343 +++
 .../iceberg/spark/TaskGroupPlanningBenchmark.java  |  314 +++
 .../iceberg/spark/UpdateProjectionBenchmark.java   |    0
 .../IcebergSqlExtensions.g4                        |    0
 .../extensions/IcebergSparkSessionExtensions.scala |   45 +
 .../analysis/ProcedureArgumentCoercion.scala       |    0
 .../sql/catalyst/analysis/ResolveProcedures.scala  |    0
 .../catalyst/optimizer/ReplaceStaticInvoke.scala   |    0
 .../IcebergSparkSqlExtensionsParser.scala          |  367 +++
 .../IcebergSqlExtensionsAstBuilder.scala           |    0
 .../catalyst/plans/logical/AddPartitionField.scala |    0
 .../sql/catalyst/plans/logical/BranchOptions.scala |    0
 .../spark/sql/catalyst/plans/logical/Call.scala}   |   25 +-
 .../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
 .../plans/logical/ReplacePartitionField.scala      |    0
 .../plans/logical/SetIdentifierFields.scala        |    0
 .../sql/catalyst/plans/logical/TagOptions.scala    |    0
 .../sql/catalyst/plans/logical/statements.scala    |    0
 .../datasources/v2/AddPartitionFieldExec.scala     |    0
 .../sql/execution/datasources/v2/CallExec.scala    |    0
 .../datasources/v2/CreateOrReplaceBranchExec.scala |    0
 .../datasources/v2/CreateOrReplaceTagExec.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
 .../v2/ExtendedDataSourceV2Strategy.scala          |  117 +
 .../datasources/v2/ReplacePartitionFieldExec.scala |    0
 .../datasources/v2/SetIdentifierFieldsExec.scala   |    0
 .../v2/SetWriteDistributionAndOrderingExec.scala   |    0
 .../apache/iceberg/spark/extensions/Employee.java  |    0
 .../spark/extensions/SparkExtensionsTestBase.java  |    0
 .../iceberg/spark/extensions/SparkPlanUtil.java    |    0
 .../SparkRowLevelOperationsTestBase.java           |    0
 .../spark/extensions/TestAddFilesProcedure.java    | 1138 ++++++++
 .../extensions/TestAlterTablePartitionFields.java  |    0
 .../spark/extensions/TestAlterTableSchema.java     |    0
 .../spark/extensions/TestAncestorsOfProcedure.java |    0
 .../iceberg/spark/extensions/TestBranchDDL.java    |    0
 .../spark/extensions/TestCallStatementParser.java  |    0
 .../spark/extensions/TestChangelogTable.java       |    0
 .../TestCherrypickSnapshotProcedure.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       | 1382 ++++++++++
 .../extensions/TestExpireSnapshotsProcedure.java   |    0
 .../extensions/TestFastForwardBranchProcedure.java |    0
 .../apache/iceberg/spark/extensions/TestMerge.java | 2906 ++++++++++++++++++++
 .../spark/extensions/TestMergeOnReadDelete.java    |    0
 .../spark/extensions/TestMergeOnReadMerge.java     |    0
 .../spark/extensions/TestMergeOnReadUpdate.java    |    0
 .../spark/extensions/TestMetadataTables.java       |    0
 .../extensions/TestMigrateTableProcedure.java      |    0
 .../extensions/TestPublishChangesProcedure.java    |    0
 .../extensions/TestRegisterTableProcedure.java     |    0
 .../extensions/TestRemoveOrphanFilesProcedure.java |    0
 .../spark/extensions/TestReplaceBranch.java        |    0
 .../TestRequiredDistributionAndOrdering.java       |    0
 .../extensions/TestRewriteDataFilesProcedure.java  |    0
 .../extensions/TestRewriteManifestsProcedure.java  |    0
 .../extensions/TestRewritePositionDeleteFiles.java |    0
 .../TestRewritePositionDeleteFilesProcedure.java   |    0
 .../TestRollbackToSnapshotProcedure.java           |    0
 .../TestRollbackToTimestampProcedure.java          |    0
 .../TestSetCurrentSnapshotProcedure.java           |    0
 .../TestSetWriteDistributionAndOrdering.java       |    0
 .../extensions/TestSnapshotTableProcedure.java     |  224 ++
 ...toragePartitionedJoinsInRowLevelOperations.java |  319 +++
 .../extensions/TestSystemFunctionPushDownDQL.java  |    0
 .../iceberg/spark/extensions/TestTagDDL.java       |    0
 .../iceberg/spark/extensions/TestUpdate.java       | 1541 +++++++++++
 .../iceberg/spark/extensions/TestWriteAborts.java  |    0
 .../org/apache/iceberg/spark/source/PlanUtils.java |    0
 spark/{v3.2 => v3.5}/spark-runtime/LICENSE         |    0
 spark/{v3.1 => v3.5}/spark-runtime/NOTICE          |    0
 .../java/org/apache/iceberg/spark/SmokeTest.java   |  175 ++
 .../apache/iceberg/spark/SparkBenchmarkUtil.java   |   58 +
 .../spark/action/DeleteOrphanFilesBenchmark.java   |  179 ++
 .../action/IcebergSortCompactionBenchmark.java     |    0
 .../iceberg/spark/action/RandomGeneratingUDF.java  |    0
 .../SparkParquetReadersFlatDataBenchmark.java      |  229 ++
 .../SparkParquetReadersNestedDataBenchmark.java    |  227 ++
 .../SparkParquetWritersFlatDataBenchmark.java      |  130 +
 .../SparkParquetWritersNestedDataBenchmark.java    |  130 +
 .../org/apache/iceberg/spark/source/Action.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}   |   32 +-
 .../IcebergSourceFlatAvroDataReadBenchmark.java    |  142 +
 .../IcebergSourceNestedAvroDataReadBenchmark.java  |  142 +
 .../orc/IcebergSourceFlatORCDataBenchmark.java     |    0
 .../orc/IcebergSourceFlatORCDataReadBenchmark.java |  210 ++
 ...ebergSourceNestedListORCDataWriteBenchmark.java |  109 +
 .../IcebergSourceNestedORCDataReadBenchmark.java   |  183 ++
 ...cebergSourceFlatParquetDataFilterBenchmark.java |  129 +
 .../IcebergSourceFlatParquetDataReadBenchmark.java |  165 ++
 ...IcebergSourceFlatParquetDataWriteBenchmark.java |   89 +
 ...gSourceNestedListParquetDataWriteBenchmark.java |   89 +
 ...bergSourceNestedParquetDataFilterBenchmark.java |  128 +
 ...cebergSourceNestedParquetDataReadBenchmark.java |  166 ++
 ...ebergSourceNestedParquetDataWriteBenchmark.java |   88 +
 .../IcebergSourceParquetEqDeleteBenchmark.java     |   57 +
 ...ebergSourceParquetMultiDeleteFileBenchmark.java |   57 +
 .../IcebergSourceParquetPosDeleteBenchmark.java    |   60 +
 ...gSourceParquetWithUnrelatedDeleteBenchmark.java |   64 +
 .../source/parquet/ParquetWritersBenchmark.java}   |   32 +-
 ...dDictionaryEncodedFlatParquetDataBenchmark.java |  127 +
 .../VectorizedReadFlatParquetDataBenchmark.java    |  355 +++
 .../VectorizedReadParquetDecimalBenchmark.java     |  207 ++
 .../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/PathIdentifier.java   |    0
 .../spark/PositionDeletesRewriteCoordinator.java   |    0
 .../iceberg/spark/PruneColumnsWithReordering.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  | 1023 +++++++
 .../org/apache/iceberg/spark/SparkAggregates.java  |    0
 .../iceberg/spark/SparkCachedTableCatalog.java     |    0
 .../org/apache/iceberg/spark/SparkCatalog.java     |    0
 .../org/apache/iceberg/spark/SparkConfParser.java  |    0
 .../org/apache/iceberg/spark/SparkDataFile.java    |    0
 .../apache/iceberg/spark/SparkExceptionUtil.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  |    0
 .../org/apache/iceberg/spark/SparkStructLike.java  |    0
 .../org/apache/iceberg/spark/SparkTableCache.java  |    0
 .../org/apache/iceberg/spark/SparkTableUtil.java   |    0
 .../org/apache/iceberg/spark/SparkTypeToType.java  |    0
 .../org/apache/iceberg/spark/SparkTypeVisitor.java |    0
 .../java/org/apache/iceberg/spark/SparkUtil.java   |    0
 .../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    |    0
 .../org/apache/iceberg/spark/TypeToSparkType.java  |    0
 .../actions/BaseSnapshotUpdateSparkAction.java     |    0
 .../iceberg/spark/actions/BaseSparkAction.java     |    0
 .../actions/BaseTableCreationSparkAction.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
 .../spark/actions/RewriteDataFilesSparkAction.java |    0
 .../spark/actions/RewriteManifestsSparkAction.java |    0
 .../RewritePositionDeleteFilesSparkAction.java     |    0
 .../iceberg/spark/actions/SetAccumulator.java      |    0
 .../spark/actions/SnapshotTableSparkAction.java    |    0
 .../apache/iceberg/spark/actions/SparkActions.java |    0
 .../spark/actions/SparkBinPackDataRewriter.java    |    0
 .../SparkBinPackPositionDeletesRewriter.java       |    0
 .../spark/actions/SparkShufflingDataRewriter.java  |    0
 .../spark/actions/SparkSizeBasedDataRewriter.java  |    0
 .../spark/actions/SparkSortDataRewriter.java       |    0
 .../spark/actions/SparkZOrderDataRewriter.java     |    0
 .../iceberg/spark/actions/SparkZOrderUDF.java      |    0
 .../spark/data/AvroWithSparkSchemaVisitor.java     |    0
 .../spark/data/ParquetWithSparkSchemaVisitor.java  |    0
 .../apache/iceberg/spark/data/SparkAvroReader.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    |    0
 .../iceberg/spark/data/SparkParquetWriters.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
 .../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
 .../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    |    0
 .../procedures/CherrypickSnapshotProcedure.java    |    0
 .../procedures/CreateChangelogViewProcedure.java   |  300 ++
 .../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/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
 .../spark/source/EqualityDeleteRowReader.java      |    0
 .../iceberg/spark/source/HasIcebergCatalog.java    |    0
 .../apache/iceberg/spark/source/IcebergSource.java |    0
 .../iceberg/spark/source/InternalRowWrapper.java   |    0
 .../spark/source/PositionDeletesRowReader.java     |    0
 .../apache/iceberg/spark/source/RowDataReader.java |    0
 .../spark/source/SerializableTableWithSize.java    |    0
 .../iceberg/spark/source/SparkAppenderFactory.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/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
 .../spark/source/SparkPositionDeletesRewrite.java  |    0
 .../source/SparkPositionDeletesRewriteBuilder.java |    0
 .../spark/source/SparkPositionDeltaOperation.java  |  115 +
 .../spark/source/SparkPositionDeltaWrite.java      |    0
 .../source/SparkPositionDeltaWriteBuilder.java     |    0
 .../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    |    0
 .../apache/iceberg/spark/source/SparkWrite.java    |    0
 .../iceberg/spark/source/SparkWriteBuilder.java    |    0
 .../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    |    0
 .../iceberg/spark/source/metrics/NumDeletes.java   |    0
 .../iceberg/spark/source/metrics/NumSplits.java    |    0
 .../spark/source/metrics/ScannedDataFiles.java     |    0
 .../spark/source/metrics/ScannedDataManifests.java |    0
 .../spark/source/metrics/SkippedDataFiles.java     |    0
 .../spark/source/metrics/SkippedDataManifests.java |    0
 .../spark/source/metrics/TaskNumDeletes.java       |    0
 .../spark/source/metrics/TaskNumSplits.java        |    0
 .../spark/source/metrics/TaskScannedDataFiles.java |    0
 .../source/metrics/TaskScannedDataManifests.java   |    0
 .../spark/source/metrics/TaskSkippedDataFiles.java |    0
 .../source/metrics/TaskSkippedDataManifests.java   |    0
 .../spark/source/metrics/TaskTotalFileSize.java    |    0
 .../source/metrics/TaskTotalPlanningDuration.java  |    0
 .../spark/source/metrics/TotalFileSize.java        |    0
 .../source/metrics/TotalPlanningDuration.java      |    0
 .../analysis/NoSuchProcedureException.java}        |   33 +-
 .../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     |    0
 .../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
 .../org/apache/iceberg/TestTableSerialization.java |    0
 .../java/org/apache/iceberg/ValidationHelpers.java |    0
 .../apache/iceberg/spark/SparkCatalogConfig.java   |    0
 .../apache/iceberg/spark/SparkCatalogTestBase.java |    0
 .../org/apache/iceberg/spark/SparkTestBase.java    |    0
 .../iceberg/spark/SparkTestBaseWithCatalog.java    |    0
 .../apache/iceberg/spark/SparkTestHelperBase.java  |    0
 .../spark/SystemFunctionPushDownHelper.java        |    0
 .../iceberg/spark/TestChangelogIterator.java       |    0
 .../iceberg/spark/TestFileRewriteCoordinator.java  |    0
 .../apache/iceberg/spark/TestFunctionCatalog.java  |    0
 .../org/apache/iceberg/spark/TestSpark3Util.java   |    0
 .../iceberg/spark/TestSparkCachedTableCatalog.java |    0
 .../iceberg/spark/TestSparkCatalogOperations.java  |    0
 .../TestSparkDistributionAndOrderingUtil.java      |    0
 .../org/apache/iceberg/spark/TestSparkFilters.java |    0
 .../apache/iceberg/spark/TestSparkSchemaUtil.java  |   85 +
 .../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
 .../iceberg/spark/actions/TestCreateActions.java   | 1040 +++++++
 .../actions/TestDeleteReachableFilesAction.java    |    0
 .../spark/actions/TestExpireSnapshotsAction.java   |    0
 .../spark/actions/TestRemoveOrphanFilesAction.java |    0
 .../actions/TestRemoveOrphanFilesAction3.java      |    0
 .../spark/actions/TestRewriteDataFilesAction.java  |    0
 .../spark/actions/TestRewriteManifestsAction.java  |    0
 .../TestRewritePositionDeleteFilesAction.java      |    0
 .../spark/actions/TestSparkFileRewriter.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/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/SimpleRecord.java  |    0
 .../spark/source/SparkSQLExecutionHelper.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        |  212 ++
 .../iceberg/spark/source/TestDataFrameWrites.java  |  423 +++
 .../spark/source/TestDataSourceOptions.java        |    0
 .../iceberg/spark/source/TestFilteredScan.java     |    0
 .../spark/source/TestForwardCompatibility.java     |    0
 .../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
 .../iceberg/spark/source/TestParquetScan.java      |    0
 .../iceberg/spark/source/TestPartitionPruning.java |    0
 .../iceberg/spark/source/TestPartitionValues.java  |    0
 .../iceberg/spark/source/TestPathIdentifier.java   |    0
 .../spark/source/TestPositionDeletesTable.java     |    0
 .../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
 .../spark/source/TestSparkAppenderFactory.java     |    0
 .../iceberg/spark/source/TestSparkCatalog.java     |    0
 .../source/TestSparkCatalogCacheExpiration.java    |    0
 .../source/TestSparkCatalogHadoopOverrides.java    |    0
 .../iceberg/spark/source/TestSparkDataFile.java    |    0
 .../iceberg/spark/source/TestSparkDataWrite.java   |    0
 .../spark/source/TestSparkFileWriterFactory.java   |    0
 .../spark/source/TestSparkMergingMetrics.java      |    0
 .../spark/source/TestSparkMetadataColumns.java     |    0
 .../spark/source/TestSparkPartitioningWriters.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       |    0
 .../iceberg/spark/source/ThreeColumnRecord.java    |    0
 .../spark/sql/PartitionedWritesTestBase.java       |    0
 .../iceberg/spark/sql/TestAggregatePushDown.java   |    0
 .../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 |    0
 .../org/apache/iceberg/spark/sql/TestSelect.java   |    0
 .../iceberg/spark/sql/TestSparkBucketFunction.java |    0
 .../iceberg/spark/sql/TestSparkDaysFunction.java   |    0
 .../iceberg/spark/sql/TestSparkHoursFunction.java  |    0
 .../iceberg/spark/sql/TestSparkMonthsFunction.java |    0
 .../spark/sql/TestSparkTruncateFunction.java       |    0
 .../iceberg/spark/sql/TestSparkYearsFunction.java  |    0
 .../spark/sql/TestStoragePartitionedJoins.java     |  664 +++++
 .../spark/sql/TestTimestampWithoutZone.java        |    0
 .../iceberg/spark/sql/TestUnpartitionedWrites.java |    0
 .../spark/sql/TestUnpartitionedWritesToBranch.java |    0
 .../spark/sql/UnpartitionedWritesTestBase.java     |    0
 487 files changed, 16916 insertions(+), 87 deletions(-)
 copy spark/{v3.2 => v3.5}/build.gradle (96%)
 create mode 100644 spark/v3.5/spark-extensions/src/jmh/java/org/apache/iceberg/DeleteFileIndexBenchmark.java
 create mode 100644 spark/v3.5/spark-extensions/src/jmh/java/org/apache/iceberg/spark/MergeCardinalityCheckBenchmark.java
 create mode 100644 spark/v3.5/spark-extensions/src/jmh/java/org/apache/iceberg/spark/PlanningBenchmark.java
 create mode 100644 spark/v3.5/spark-extensions/src/jmh/java/org/apache/iceberg/spark/TaskGroupPlanningBenchmark.java
 copy spark/{v3.4 => v3.5}/spark-extensions/src/jmh/java/org/apache/iceberg/spark/UpdateProjectionBenchmark.java (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/main/antlr/org.apache.spark.sql.catalyst.parser.extensions/IcebergSqlExtensions.g4 (100%)
 create mode 100644 spark/v3.5/spark-extensions/src/main/scala/org/apache/iceberg/spark/extensions/IcebergSparkSessionExtensions.scala
 copy spark/{v3.1 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/ProcedureArgumentCoercion.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveProcedures.scala (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/optimizer/ReplaceStaticInvoke.scala (100%)
 create mode 100644 spark/v3.5/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/parser/extensions/IcebergSparkSqlExtensionsParser.scala
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/parser/extensions/IcebergSqlExtensionsAstBuilder.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/AddPartitionField.scala (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/BranchOptions.scala (100%)
 copy spark/{build.gradle => v3.5/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/Call.scala} (54%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/CreateOrReplaceBranch.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/CreateOrReplaceTag.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/DropBranch.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/DropIdentifierFields.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/DropPartitionField.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/DropTag.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/ReplacePartitionField.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/SetIdentifierFields.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/TagOptions.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/statements.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/AddPartitionFieldExec.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/CallExec.scala (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/CreateOrReplaceBranchExec.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/CreateOrReplaceTagExec.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DropBranchExec.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DropIdentifierFieldsExec.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DropPartitionFieldExec.scala (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/DropTagExec.scala (100%)
 create mode 100644 spark/v3.5/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ExtendedDataSourceV2Strategy.scala
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ReplacePartitionFieldExec.scala (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/SetIdentifierFieldsExec.scala (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/SetWriteDistributionAndOrderingExec.scala (100%)
 copy spark/{v3.1 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/Employee.java (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/SparkExtensionsTestBase.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/SparkPlanUtil.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/SparkRowLevelOperationsTestBase.java (100%)
 create mode 100644 spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAddFilesProcedure.java
 copy spark/{v3.3 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAlterTablePartitionFields.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAlterTableSchema.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAncestorsOfProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestBranchDDL.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCallStatementParser.java (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestChangelogTable.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCherrypickSnapshotProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestConflictValidation.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCopyOnWriteDelete.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCopyOnWriteMerge.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCopyOnWriteUpdate.java (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestCreateChangelogViewProcedure.java (100%)
 create mode 100644 spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestDelete.java
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestExpireSnapshotsProcedure.java (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestFastForwardBranchProcedure.java (100%)
 create mode 100644 spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMerge.java
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMergeOnReadDelete.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMergeOnReadMerge.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMergeOnReadUpdate.java (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMetadataTables.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMigrateTableProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestPublishChangesProcedure.java (100%)
 copy spark/{v3.2 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRegisterTableProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRemoveOrphanFilesProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestReplaceBranch.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRequiredDistributionAndOrdering.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewriteDataFilesProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewriteManifestsProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewritePositionDeleteFiles.java (100%)
 copy spark/{v3.3 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewritePositionDeleteFilesProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRollbackToSnapshotProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRollbackToTimestampProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSetCurrentSnapshotProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSetWriteDistributionAndOrdering.java (100%)
 create mode 100644 spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSnapshotTableProcedure.java
 create mode 100644 spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestStoragePartitionedJoinsInRowLevelOperations.java
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSystemFunctionPushDownDQL.java (100%)
 copy spark/{v3.1 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestTagDDL.java (100%)
 create mode 100644 spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestUpdate.java
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestWriteAborts.java (100%)
 copy spark/{v3.4 => v3.5}/spark-extensions/src/test/java/org/apache/iceberg/spark/source/PlanUtils.java (100%)
 copy spark/{v3.2 => v3.5}/spark-runtime/LICENSE (100%)
 copy spark/{v3.1 => v3.5}/spark-runtime/NOTICE (100%)
 create mode 100644 spark/v3.5/spark-runtime/src/integration/java/org/apache/iceberg/spark/SmokeTest.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/SparkBenchmarkUtil.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/action/DeleteOrphanFilesBenchmark.java
 copy spark/{v3.4 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/action/IcebergSortCompactionBenchmark.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/action/RandomGeneratingUDF.java (100%)
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetReadersFlatDataBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetReadersNestedDataBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetWritersFlatDataBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetWritersNestedDataBenchmark.java
 copy spark/{v3.1 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/source/Action.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceBenchmark.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceDeleteBenchmark.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceFlatDataBenchmark.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceNestedDataBenchmark.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceNestedListDataBenchmark.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/source/WritersBenchmark.java (100%)
 copy spark/{build.gradle => v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/AvroWritersBenchmark.java} (56%)
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/IcebergSourceFlatAvroDataReadBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/IcebergSourceNestedAvroDataReadBenchmark.java
 copy spark/{v3.1 => v3.5}/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceFlatORCDataBenchmark.java (100%)
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceFlatORCDataReadBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceNestedListORCDataWriteBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceNestedORCDataReadBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceFlatParquetDataFilterBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceFlatParquetDataReadBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceFlatParquetDataWriteBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedListParquetDataWriteBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedParquetDataFilterBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedParquetDataReadBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedParquetDataWriteBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetEqDeleteBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetMultiDeleteFileBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetPosDeleteBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetWithUnrelatedDeleteBenchmark.java
 copy spark/{build.gradle => v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/ParquetWritersBenchmark.java} (55%)
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/vectorized/VectorizedReadDictionaryEncodedFlatParquetDataBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/vectorized/VectorizedReadFlatParquetDataBenchmark.java
 create mode 100644 spark/v3.5/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/vectorized/VectorizedReadParquetDecimalBenchmark.java
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/SparkDistributedDataScan.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/BaseCatalog.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/BaseFileRewriteCoordinator.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/ChangelogIterator.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/CommitMetadata.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/ComputeUpdateIterator.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/ExtendedParser.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/FileRewriteCoordinator.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/IcebergSpark.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/JobGroupInfo.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/JobGroupUtils.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/PathIdentifier.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/PositionDeletesRewriteCoordinator.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/PruneColumnsWithReordering.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/PruneColumnsWithoutReordering.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/RemoveCarryoverIterator.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/RemoveNetCarryoverIterator.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/RollbackStagedTable.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/ScanTaskSetManager.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SortOrderToSpark.java (100%)
 create mode 100644 spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/Spark3Util.java
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkAggregates.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkCachedTableCatalog.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkCatalog.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkConfParser.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkDataFile.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkExceptionUtil.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkFilters.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkFixupTypes.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkFunctionCatalog.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkReadConf.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkReadOptions.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkSQLProperties.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkSchemaUtil.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkSessionCatalog.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkStructLike.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkTableCache.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkTableUtil.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkTypeToType.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkTypeVisitor.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkUtil.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkV2Filters.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkValueConverter.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkWriteConf.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkWriteOptions.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkWriteRequirements.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SparkWriteUtil.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/SupportsFunctions.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/TypeToSparkType.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/BaseSnapshotUpdateSparkAction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/BaseSparkAction.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/BaseTableCreationSparkAction.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/DeleteOrphanFilesSparkAction.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/DeleteReachableFilesSparkAction.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/ExpireSnapshotsSparkAction.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/FileInfo.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/ManifestFileBean.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/MigrateTableSparkAction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/RewriteDataFilesSparkAction.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/RewriteManifestsSparkAction.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/RewritePositionDeleteFilesSparkAction.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SetAccumulator.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SnapshotTableSparkAction.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkActions.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkBinPackDataRewriter.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkBinPackPositionDeletesRewriter.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkShufflingDataRewriter.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkSizeBasedDataRewriter.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkSortDataRewriter.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkZOrderDataRewriter.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/actions/SparkZOrderUDF.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/AvroWithSparkSchemaVisitor.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/ParquetWithSparkSchemaVisitor.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkAvroReader.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkAvroWriter.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkOrcReader.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkOrcValueReaders.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkOrcValueWriters.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkOrcWriter.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkParquetReaders.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkParquetWriters.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkValueReaders.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/SparkValueWriters.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ArrowVectorAccessorFactory.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ArrowVectorAccessors.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ColumnVectorBuilder.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ColumnVectorWithFilter.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ColumnarBatchReader.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ConstantColumnVector.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/DeletedColumnVector.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/IcebergArrowColumnVector.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/RowPositionColumnVector.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/VectorizedSparkOrcReaders.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/VectorizedSparkParquetReaders.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/functions/BucketFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/functions/DaysFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/functions/HoursFunction.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/functions/IcebergVersionFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/functions/MonthsFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/functions/SparkFunctions.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/functions/TruncateFunction.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/functions/UnaryUnboundFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/functions/YearsFunction.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/AddFilesProcedure.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/AncestorsOfProcedure.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/BaseProcedure.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/CherrypickSnapshotProcedure.java (100%)
 create mode 100644 spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.java
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/ExpireSnapshotsProcedure.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/FastForwardBranchProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/MigrateTableProcedure.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/ProcedureInput.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/PublishChangesProcedure.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/RegisterTableProcedure.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/RemoveOrphanFilesProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/RewriteDataFilesProcedure.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/RewriteManifestsProcedure.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/RewritePositionDeleteFilesProcedure.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/RollbackToSnapshotProcedure.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/RollbackToTimestampProcedure.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/SetCurrentSnapshotProcedure.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/SnapshotTableProcedure.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/procedures/SparkProcedures.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/BaseBatchReader.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/BaseReader.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/BaseRowReader.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/BatchDataReader.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/ChangelogRowReader.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/EqualityDeleteRowReader.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/HasIcebergCatalog.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/IcebergSource.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/InternalRowWrapper.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/PositionDeletesRowReader.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/RowDataReader.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SerializableTableWithSize.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkAppenderFactory.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkBatch.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkBatchQueryScan.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkChangelogScan.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkChangelogTable.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkCleanupUtil.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkColumnarReaderFactory.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkCopyOnWriteOperation.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkCopyOnWriteScan.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkFileWriterFactory.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkInputPartition.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkLocalScan.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkMetadataColumn.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkMicroBatchStream.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitionedFanoutWriter.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitionedWriter.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPartitioningAwareScan.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeletesRewrite.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeletesRewriteBuilder.java (100%)
 create mode 100644 spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeltaOperation.java
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeltaWrite.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkPositionDeltaWriteBuilder.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkRowLevelOperationBuilder.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkRowReaderFactory.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkScan.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkScanBuilder.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkStagedScan.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkStagedScanBuilder.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkTable.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkWrite.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/SparkWriteBuilder.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/StagedSparkTable.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/Stats.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/StreamingOffset.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/StructInternalRow.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/NumDeletes.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/NumSplits.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/ScannedDataFiles.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/ScannedDataManifests.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/SkippedDataFiles.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/SkippedDataManifests.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskNumDeletes.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskNumSplits.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskScannedDataFiles.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskScannedDataManifests.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskSkippedDataFiles.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskSkippedDataManifests.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskTotalFileSize.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TaskTotalPlanningDuration.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TotalFileSize.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/java/org/apache/iceberg/spark/source/metrics/TotalPlanningDuration.java (100%)
 copy spark/{build.gradle => v3.5/spark/src/main/java/org/apache/spark/sql/catalyst/analysis/NoSuchProcedureException.java} (57%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/spark/sql/connector/iceberg/catalog/Procedure.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/spark/sql/connector/iceberg/catalog/ProcedureCatalog.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/spark/sql/connector/iceberg/catalog/ProcedureParameter.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/java/org/apache/spark/sql/connector/iceberg/catalog/ProcedureParameterImpl.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/resources/META-INF/services/org.apache.spark.sql.sources.DataSourceRegister (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/OrderAwareCoalesce.scala (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/SetWriteDistributionAndOrdering.scala (100%)
 copy spark/{v3.1 => v3.5}/spark/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/SortOrderParserUtil.scala (100%)
 copy spark/{v3.2 => v3.5}/spark/src/main/scala/org/apache/spark/sql/catalyst/utils/PlanUtils.scala (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/scala/org/apache/spark/sql/execution/OrderAwareCoalesceExec.scala (100%)
 copy spark/{v3.4 => v3.5}/spark/src/main/scala/org/apache/spark/sql/execution/datasources/SparkExpressionConverter.scala (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/KryoHelpers.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/SparkDistributedDataScanTestBase.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/TaskCheckHelper.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/TestDataFileSerialization.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/TestFileIOSerialization.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/TestHadoopMetricsContextSerialization.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/TestManifestFileSerialization.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/TestScanTaskSerialization.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/TestSparkDistributedDataScanDeletes.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/TestSparkDistributedDataScanFilterFiles.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/TestSparkDistributedDataScanJavaSerialization.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/TestSparkDistributedDataScanKryoSerialization.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/TestTableSerialization.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/ValidationHelpers.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/SparkCatalogConfig.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/SparkCatalogTestBase.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/SparkTestBase.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/SparkTestBaseWithCatalog.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/SparkTestHelperBase.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/SystemFunctionPushDownHelper.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestChangelogIterator.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestFileRewriteCoordinator.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestFunctionCatalog.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSpark3Util.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSparkCachedTableCatalog.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSparkCatalogOperations.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSparkDistributionAndOrderingUtil.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSparkFilters.java (100%)
 create mode 100644 spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/TestSparkSchemaUtil.java
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSparkSessionCatalog.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSparkTableUtil.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSparkV2Filters.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSparkValueConverter.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/TestSparkWriteConf.java (100%)
 create mode 100644 spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/actions/TestCreateActions.java
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/actions/TestDeleteReachableFilesAction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/actions/TestExpireSnapshotsAction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRemoveOrphanFilesAction.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRemoveOrphanFilesAction3.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRewriteDataFilesAction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRewriteManifestsAction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/actions/TestRewritePositionDeleteFilesAction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/actions/TestSparkFileRewriter.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/AvroDataTest.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/GenericsHelpers.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/RandomData.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestHelpers.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestOrcWrite.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestParquetAvroReader.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestParquetAvroWriter.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkAvroEnums.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkAvroReader.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkDateTimes.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkOrcReadMetadataColumns.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkOrcReader.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkParquetReadMetadataColumns.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkParquetReader.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkParquetWriter.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkRecordOrcReaderWriter.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/TestVectorizedOrcDataReader.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/parquet/vectorized/TestParquetDictionaryEncodedVectorizedReads.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/parquet/vectorized/TestParquetDictionaryFallbackToPlainEncodingVectorizedReads.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/data/parquet/vectorized/TestParquetVectorizedReads.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/functions/TestSparkFunctions.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/ComplexRecord.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/FilePathLastModifiedRecord.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/FourColumnRecord.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/LogMessage.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/ManualSource.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/NestedRecord.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/SimpleRecord.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/SparkSQLExecutionHelper.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestAvroScan.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestBaseReader.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestChangelogReader.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestCompressionSettings.java (100%)
 create mode 100644 spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/source/TestDataFrameWriterV2.java
 create mode 100644 spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/source/TestDataFrameWrites.java
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestDataSourceOptions.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestFilteredScan.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestForwardCompatibility.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSource.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSourceHadoopTables.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSourceHiveTables.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSourceTablesBase.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSpark.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestIdentityPartitionData.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestInternalRowWrapper.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestMetadataTableReadableMetrics.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestMetadataTablesWithPartitionEvolution.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestParquetScan.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestPartitionPruning.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestPartitionValues.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestPathIdentifier.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestPositionDeletesTable.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestReadProjection.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestRequiredDistributionAndOrdering.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestRuntimeFiltering.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSnapshotSelection.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkAggregates.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkAppenderFactory.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkCatalog.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkCatalogCacheExpiration.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkCatalogHadoopOverrides.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkDataFile.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkDataWrite.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkFileWriterFactory.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkMergingMetrics.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkMetadataColumns.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkPartitioningWriters.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkPositionDeltaWriters.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkReadMetrics.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkReadProjection.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkReaderDeletes.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkReaderWithBloomFilter.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkRollingFileWriters.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkScan.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkStagedScan.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkTable.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestSparkWriterMetrics.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestStreamingOffset.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestStructuredStreaming.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestStructuredStreamingRead3.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestTables.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestTimestampWithoutZone.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/TestWriteMetricsConfig.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/source/ThreeColumnRecord.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/PartitionedWritesTestBase.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestAggregatePushDown.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestAlterTable.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestCreateTable.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestCreateTableAsSelect.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestDeleteFrom.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestDropTable.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestFilterPushDown.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestNamespaceSQL.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWrites.java (100%)
 copy spark/{v3.2 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWritesAsSelect.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWritesToBranch.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestPartitionedWritesToWapBranch.java (100%)
 copy spark/{v3.1 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestRefreshTable.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSelect.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkBucketFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkDaysFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkHoursFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkMonthsFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkTruncateFunction.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkYearsFunction.java (100%)
 create mode 100644 spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/sql/TestStoragePartitionedJoins.java
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestTimestampWithoutZone.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestUnpartitionedWrites.java (100%)
 copy spark/{v3.3 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/TestUnpartitionedWritesToBranch.java (100%)
 copy spark/{v3.4 => v3.5}/spark/src/test/java/org/apache/iceberg/spark/sql/UnpartitionedWritesTestBase.java (100%)