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

[iceberg] branch dependabot/gradle/org.apache.avro-avro-1.11.1 updated (a943528eb8 -> 20148706d8)

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

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


 discard a943528eb8 Bump avro from 1.9.2 to 1.11.1
     add f76e9cb2b7 Python: Initialize the properties with an empty dict (#5465)
     add 3f5f2cd802 AWS: Cleanup warning about Lambda should be method reference (#5476)
     add 4ef56d72a2 Build: Bump nebula.dependency-recommender from 9.0.2 to 11.0.0 (#5474)
     add b1ab35d66c Python: Bump pyarrow from 8.0.0 to 9.0.0 in /python (#5455)
     add eef306c10b Core: Partition filter pushdown for entries table (#5443)
     add 17c5e2033b AWS: Fix/Suppress ErrorProne warnings (#5368)
     add c172d5a968 Build: Bump hiveVersion from 3.1.2 to 3.1.3 (#5470)
     add fb5abd3aa7 Doc: Update Flink unit test URL (#5484)
     add c443828941 Python: Validate identifiers in REST catalog (#5485)
     add 4c5dc6fb6e Spark 3.3: Use typed beans in BaseSparkAction (#5469)
     add c77d3aa754 Python: Fix docstring (#5489)
     add 739b8c5b8c Core: Prevent potential NPEs when retrieving JSON fields (#5438)
     add d9f789b027 Spark 3.2: Count delete files in DeleteReachableFiles (#5491)
     add e79206158d Spark 3.2: Use typed beans in BaseSparkAction (#5494)
     add 3c6878fe16 AWS: S3FIleIO will by default use thread pool when performing batch deletion (#5379)
     add 5a15efc070 Core, API: Performing operations on a snapshot branch ref (#4926)
     add 6a5051b25d Spark 3.3: Support truncate in FunctionCatalog (#5431)
     add bc4a9b7b16 Python: Add __str__ implementation to SortOrder and SortField (#5490)
     add 9d069a7c02 Spark 3.1: Port #3721 to Spark 3.1 (#5497)
     add 43315e24c1 Spark 3.1: Port #3287 #4381 #3535 #4419 to Spark 3.1 (#5498)
     add c21918a919 Spark 3.1: Port #4198 to Spark 3.1 (#5499)
     add fd4dd10571 Spark 3.1: Port #3373 to Spark 3.1 (#5500)
     add 39c89ae34c Spark 3.1: Port #3491 to Spark 3.1 (#5502)
     add 41a71524ba Spark 3.1: Validate table columns don't conflict with metadata columns (#5501)
     add a52488c978 Spark 3.2: Support truncate in FunctionCatalog (#5514)
     add e50fcace6f Build: Bump spotless-plugin-gradle from 6.8.0 to 6.9.1 (#5521)
     add ce5128f09c Build: Bump pydantic from 1.9.1 to 1.9.2 in /python (#5522)
     add c550e792e9 Core: Commit empty operations from SetSnapshotOperation (#5536)
     add 67a47b06fd AWS: Support preload S3 client mode for S3FileIO (#5508)
     add 5b55d0082c Python: Implement Hive create and load table (#5447)
     add 667d56c251 Python: Add support for hierarchical namespaces (#5467)
     add d4c012e899 Python: Add a CLI to interact with catalogs (#5417)
     add 2997934843 Python: Fix typo metadataLocation -> metadata-location (#5448)
     add 5f5c9235c1 Build: Resolve unchecked Map type cast in TestAvroNameMapping (#5541)
     add 2a2cf150ad Fix linter and test failures (#5542)
     add 1171772049 Flink 1.13&1.14: Port #5050 to Flink 1.13&1.14 (#5531)
     add 0a13fb2577 Python: Remove unused `# type: ignore` (#5534)
     add a5411dd8b8 Python: Bump pre-commit to the latest version (#5466)
     add 747d2b0ef1 API: Deprecate generic Counter<T extends Number>, replace with long Counter (#5505)
     add e752f72347 API, Core: Add ScanReportResult related parsers (#5427)
     add ec53846a16 Build: Bump gradle-git-version from 0.12.3 to 0.15.0 (#5532)
     add c608f16442 Core: Put property names at the end in JsonUtil error messages (#5434)
     add c965af5d48 API, Core: Replace deprecated Counter with new Counter API (#5506)
     add 4d5e37a986 Spark 3.1: Port #3505 to Spark 3.1 (#5503)
     add 7e12d1e750 Python: Write the column docs as well (#5547)
     add b3062e4438 Flink: Suppress Nanosecond Warning for TimestampTz ORC value writer in Flink 1.13 to match later Flink versions (#5552)
     add a0cb091085 Core: Add tests for JsonUtil, reduce duplication (#5526)
     add 5c7a5ead85 AWS: Support S3 acceleration mode (#5555)
     add c73c7729b2 Spark 3.3: Reduce serialization in DeleteOrphanFilesSparkAction (#5495)
     add 16dbdeee8c Python: Implement __repr__ for SnapshotRefType (#5564)
     add eff2fee901 Python: Implement __repr__ for Summary and Operation (#5563)
     add 1741e4dae8 API: Remove counter name (#5559)
     add 69bcf05eff Spark 3.3: Support bucket in FunctionCatalog (#5513)
     add 83bef371bc Spark 3.2: Support bucket in FunctionCatalog (#5571)
     add 585fd0cbd2 Core: Fix snapshot log with intermediate transaction snapshots (#5568)
     add ebecc94772 Flink: fix the bug where metrics are registered in split reader. Also updated reader metric group to be more consistent with Flink metrics style. (#5554)
     add 39df59308c Spark 3.3: Align formatting in bucket and truncate functions (#5573)
     add dd5bb49717 Spark 3.2: Reduce serialization in DeleteOrphanFilesSparkAction (#5572)
     add fd36d59a71 ORC: Upgrade to 1.7.6 (#5580)
     add 827e758249 Python: Update copy_on_model_validation (#5583)
     add 615f0c6615 Spark 3.2: Delete deprecated action classes (#5575)
     add 34b8349399 Build: Bump gradle-processors from 3.3.0 to 3.7.0 (#5582)
     add 58368f5b69 Spark 3.2: Align formatting in bucket and truncate functions (#5574)
     add 124d5a9f2d Core: Add alias for REST catalog (#5570)
     add 24a057f830 Flink: Add monitor metrics for Flink sink (#5410)
     add 62a95cfd72 Python: Add Table API methods (#5562)
     add ea22967433 API: Add Histogram metric type (#5348)
     add 28cfbef900 Flink 1.14: Add sink monitoring metrics (#5589)
     add a060bec73b Python: Add wrapper to handle CLI exit code (#5546)
     add 460124eb68 Python: Add configuration (#5488)
     add 6b10b43c43 Build: Bump jackson-annotations from 2.6.5 to 2.13.3 (#5596)
     add 84d2de762c Build: Bump coverage from 6.4.3 to 6.4.4 in /python (#5599)
     add 20148706d8 Bump avro from 1.9.2 to 1.11.1

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

 * -- * -- B -- O -- O -- O   (a943528eb8)
            \
             N -- N -- N   refs/heads/dependabot/gradle/org.apache.avro-avro-1.11.1 (20148706d8)

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

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

No new revisions were added by this update.

Summary of changes:
 .palantir/revapi.yml                               |   3 +
 .../apache/iceberg/aliyun/oss/OSSInputStream.java  |  13 +-
 .../apache/iceberg/aliyun/oss/OSSOutputStream.java |  13 +-
 .../java/org/apache/iceberg/SnapshotUpdate.java    |  12 +
 .../org/apache/iceberg/io/CloseableIterable.java   |  18 +-
 .../org/apache/iceberg/io/CloseableIterator.java   |   5 +-
 .../apache/iceberg/io/SupportsBulkOperations.java  |   2 +-
 .../java/org/apache/iceberg/metrics/Counter.java   |  69 ++
 .../org/apache/iceberg/metrics/DefaultCounter.java | 152 ++++
 .../iceberg/metrics/DefaultMetricsContext.java     |  19 +-
 .../org/apache/iceberg/metrics/DefaultTimer.java   |  12 +-
 .../iceberg/metrics/FixedReservoirHistogram.java   | 151 ++++
 .../java/org/apache/iceberg/metrics/Histogram.java |  61 ++
 .../org/apache/iceberg/metrics/IntCounter.java     |  95 ---
 .../org/apache/iceberg/metrics/LongCounter.java    |  95 ---
 .../org/apache/iceberg/metrics/MetricsContext.java |  45 +-
 .../org/apache/iceberg/metrics/ScanReport.java     | 396 ++++++++--
 .../java/org/apache/iceberg/metrics/Timer.java     |  27 +-
 .../java/org/apache/iceberg/transforms/Bucket.java |  40 +-
 .../org/apache/iceberg/transforms/Truncate.java    |  21 +-
 .../java/org/apache/iceberg/util/BinaryUtil.java   |  14 +
 .../java/org/apache/iceberg/util/BucketUtil.java   |  88 +++
 .../java/org/apache/iceberg/util/TruncateUtil.java |  75 ++
 .../apache/iceberg/io/TestCloseableIterable.java   |  13 +-
 .../apache/iceberg/metrics/TestDefaultCounter.java |  62 ++
 .../iceberg/metrics/TestDefaultMetricsContext.java |  37 +-
 .../apache/iceberg/metrics/TestDefaultTimer.java   |  41 +-
 .../metrics/TestFixedReservoirHistogram.java       | 152 ++++
 .../org/apache/iceberg/metrics/TestScanReport.java |  41 +-
 .../apache/iceberg/transforms/TestBucketing.java   |  19 +
 .../TestLakeFormationMetadataOperations.java       |   2 +-
 .../iceberg/aws/s3/TestS3FileIOIntegration.java    |   6 +-
 .../org/apache/iceberg/aws/AwsClientFactories.java |  13 +-
 .../java/org/apache/iceberg/aws/AwsProperties.java |  34 +
 .../java/org/apache/iceberg/aws/s3/S3FileIO.java   | 120 +--
 .../org/apache/iceberg/aws/s3/S3InputStream.java   |  13 +-
 .../org/apache/iceberg/aws/s3/S3OutputStream.java  |  13 +-
 .../org/apache/iceberg/aws/s3/TestS3FileIO.java    |   6 +
 build.gradle                                       |  13 +-
 .../java/org/apache/iceberg/AllEntriesTable.java   |  34 +-
 ...festEntriesTable.java => BaseEntriesTable.java} | 103 ++-
 .../org/apache/iceberg/BaseOverwriteFiles.java     |   2 +-
 .../org/apache/iceberg/BaseReplacePartitions.java  |   6 +-
 .../java/org/apache/iceberg/BaseRewriteFiles.java  |   2 +-
 .../org/apache/iceberg/BaseRewriteManifests.java   |   2 +-
 .../main/java/org/apache/iceberg/BaseRowDelta.java |   2 +-
 .../java/org/apache/iceberg/BaseTableScan.java     |   1 -
 .../main/java/org/apache/iceberg/CatalogUtil.java  |   8 +-
 .../org/apache/iceberg/CherryPickOperation.java    |   2 +-
 .../java/org/apache/iceberg/DataTableScan.java     |   4 +-
 .../main/java/org/apache/iceberg/FastAppend.java   |  12 +-
 .../org/apache/iceberg/ManifestEntriesTable.java   |  96 +--
 .../java/org/apache/iceberg/ManifestGroup.java     |   2 +-
 .../apache/iceberg/MergingSnapshotProducer.java    |   8 +-
 .../org/apache/iceberg/MetadataUpdateParser.java   |  13 +-
 .../org/apache/iceberg/PartitionSpecParser.java    |   2 +-
 .../main/java/org/apache/iceberg/SchemaParser.java |  11 +-
 .../org/apache/iceberg/SetSnapshotOperation.java   |  10 +-
 .../java/org/apache/iceberg/SnapshotProducer.java  |  46 +-
 .../java/org/apache/iceberg/SortOrderParser.java   |   2 +-
 .../java/org/apache/iceberg/TableMetadata.java     |   9 +-
 .../org/apache/iceberg/TableMetadataParser.java    |   8 +-
 .../iceberg/hadoop/HadoopMetricsContext.java       |  47 ++
 .../iceberg/metrics/CounterResultParser.java       |  93 +++
 .../iceberg/metrics/ScanMetricsResultParser.java   | 113 +++
 .../apache/iceberg/metrics/ScanReportParser.java   |  84 +++
 .../apache/iceberg/metrics/TimerResultParser.java  | 134 ++++
 .../apache/iceberg/puffin/FileMetadataParser.java  |   6 +-
 .../rest/responses/ErrorResponseParser.java        |   4 +-
 .../java/org/apache/iceberg/util/JsonUtil.java     |  62 +-
 .../java/org/apache/iceberg/TestFastAppend.java    |  50 ++
 .../apache/iceberg/TestMetadataTableFilters.java   | 140 ++--
 .../apache/iceberg/TestMetadataUpdateParser.java   |   2 +-
 .../java/org/apache/iceberg/TestOverwrite.java     |  13 +
 .../org/apache/iceberg/TestReplacePartitions.java  |   9 +
 .../org/apache/iceberg/TestRewriteManifests.java   |  14 +
 .../test/java/org/apache/iceberg/TestRowDelta.java |  16 +
 .../iceberg/TestScanPlanningAndReporting.java      |   1 -
 .../org/apache/iceberg/TestSnapshotManager.java    |  11 +
 .../org/apache/iceberg/TestSnapshotRefParser.java  |   8 +-
 .../java/org/apache/iceberg/TestTransaction.java   |  21 +-
 .../apache/iceberg/avro/TestAvroNameMapping.java   |   1 +
 .../iceberg/catalog/TestTableIdentifierParser.java |   8 +-
 .../iceberg/metrics/TestCounterResultParser.java   |  82 +++
 .../metrics/TestScanMetricsResultParser.java       | 314 ++++++++
 .../iceberg/metrics/TestScanReportParser.java      | 266 +++++++
 .../iceberg/metrics/TestTimerResultParser.java     | 145 ++++
 .../iceberg/puffin/TestFileMetadataParser.java     |   2 +-
 .../rest/requests/TestRenameTableRequest.java      |   8 +-
 .../rest/responses/TestOAuthTokenResponse.java     |   8 +-
 .../java/org/apache/iceberg/util/TestJsonUtil.java | 192 +++++
 .../org/apache/iceberg/util/TestTruncateUtil.java  |  28 +-
 .../iceberg/dell/ecs/EcsAppendOutputStream.java    |  13 +-
 .../iceberg/dell/ecs/EcsSeekableInputStream.java   |  13 +-
 docs/aws.md                                        |  17 +
 docs/flink-getting-started.md                      |   2 +-
 .../iceberg/flink/FlinkDynamicTableFactory.java    |   6 +-
 .../org/apache/iceberg/flink/IcebergTableSink.java |   7 +-
 .../apache/iceberg/flink/data/FlinkOrcWriters.java |   1 +
 .../org/apache/iceberg/flink/TestFlinkUpsert.java  |  47 ++
 flink/v1.14/build.gradle                           |   5 +
 .../iceberg/flink/FlinkDynamicTableFactory.java    |   6 +-
 .../org/apache/iceberg/flink/IcebergTableSink.java |   9 +-
 .../apache/iceberg/flink/sink/CommitSummary.java   |  93 +++
 .../iceberg/flink/sink/IcebergFilesCommitter.java  | 167 ++---
 .../flink/sink/IcebergFilesCommitterMetrics.java   |  65 ++
 .../iceberg/flink/sink/IcebergStreamWriter.java    |  20 +-
 .../flink/sink/IcebergStreamWriterMetrics.java     |  89 +++
 .../apache/iceberg/flink/source/IcebergSource.java |   5 +-
 .../flink/source/reader/IcebergSourceReader.java   |   6 +-
 .../source/reader/IcebergSourceReaderMetrics.java  |  61 ++
 .../source/reader/IcebergSourceSplitReader.java    |  31 +-
 .../org/apache/iceberg/flink/TestFlinkUpsert.java  |  47 ++
 .../source/reader/ReaderFunctionTestBase.java      |  68 +-
 .../iceberg/flink/source/reader/ReaderUtil.java    |  34 +
 .../source/reader/TestIcebergSourceReader.java     | 112 +++
 .../flink/source/reader/TestingMetricGroup.java    | 102 +++
 flink/v1.15/build.gradle                           |   6 +
 .../apache/iceberg/flink/sink/CommitSummary.java   |  93 +++
 .../iceberg/flink/sink/IcebergFilesCommitter.java  | 167 ++---
 .../flink/sink/IcebergFilesCommitterMetrics.java   |  65 ++
 .../iceberg/flink/sink/IcebergStreamWriter.java    |  20 +-
 .../flink/sink/IcebergStreamWriterMetrics.java     |  89 +++
 .../apache/iceberg/flink/source/IcebergSource.java |   5 +-
 .../flink/source/reader/IcebergSourceReader.java   |   6 +-
 .../source/reader/IcebergSourceReaderMetrics.java  |  61 ++
 .../source/reader/IcebergSourceSplitReader.java    |  31 +-
 .../source/reader/ReaderFunctionTestBase.java      |  68 +-
 .../iceberg/flink/source/reader/ReaderUtil.java    |  34 +
 .../source/reader/TestIcebergSourceReader.java     | 112 +++
 .../flink/source/reader/TestingMetricGroup.java    | 102 +++
 .../org/apache/iceberg/gcp/gcs/GCSInputStream.java |  13 +-
 .../apache/iceberg/gcp/gcs/GCSOutputStream.java    |  13 +-
 hive3/build.gradle                                 |   4 +-
 mr/build.gradle                                    |   2 +-
 python/.pre-commit-config.yaml                     |   6 +-
 python/poetry.lock                                 | 450 ++++++-----
 python/pyiceberg/catalog/__init__.py               | 133 +++-
 python/pyiceberg/catalog/hive.py                   | 177 +++--
 python/pyiceberg/catalog/rest.py                   | 104 +--
 python/pyiceberg/{avro => cli}/__init__.py         |   0
 python/pyiceberg/cli/console.py                    | 364 +++++++++
 python/pyiceberg/cli/output.py                     | 162 ++++
 python/pyiceberg/exceptions.py                     |   8 +
 python/pyiceberg/io/__init__.py                    |  12 +
 python/pyiceberg/schema.py                         |  26 +
 python/pyiceberg/serializers.py                    |   4 +-
 python/pyiceberg/table/__init__.py                 |  73 +-
 python/pyiceberg/table/metadata.py                 |  19 +-
 python/pyiceberg/table/refs.py                     |   3 +
 python/pyiceberg/table/snapshots.py                |  17 +
 python/pyiceberg/table/sorting.py                  |  30 +-
 python/pyiceberg/typedef.py                        |  20 +-
 python/pyiceberg/utils/config.py                   | 146 ++++
 python/pyiceberg/utils/iceberg_base_model.py       |   1 -
 python/pyproject.toml                              |  21 +-
 python/tests/catalog/test_base.py                  |  23 +-
 python/tests/catalog/test_hive.py                  | 337 ++++++++-
 python/tests/catalog/test_rest.py                  | 149 +++-
 python/tests/{avro => cli}/__init__.py             |   0
 python/tests/cli/test_console.py                   | 820 +++++++++++++++++++++
 .../tests/{avro/__init__.py => cli/test_output.py} |   0
 python/tests/conftest.py                           |  70 +-
 python/tests/table/test_init.py                    | 180 +++++
 python/tests/table/test_metadata.py                | 122 +--
 .../table/__init__.py => tests/table/test_refs.py} |  26 +-
 python/tests/table/test_snapshots.py               |  94 +--
 python/tests/table/test_sorting.py                 |  56 +-
 python/tests/test_schema.py                        |   7 +-
 .../typedef.py => tests/test_typedef.py}           |  17 +-
 python/tests/utils/test_config.py                  |  54 ++
 .../spark/source/IcebergSourceBenchmark.java       |   5 +
 .../spark/source/IcebergSourceDeleteBenchmark.java | 219 ++++++
 .../IcebergSourceParquetDeleteBenchmark.java       |  60 ++
 ...ebergSourceParquetMultiDeleteFileBenchmark.java |  57 ++
 ...gSourceParquetWithUnrelatedDeleteBenchmark.java |  64 ++
 .../java/org/apache/iceberg/spark/Spark3Util.java  |  43 --
 .../org/apache/iceberg/spark/SparkConfParser.java  |  13 +
 .../org/apache/iceberg/spark/SparkReadConf.java    |  22 +
 .../org/apache/iceberg/spark/SparkSchemaUtil.java  |  19 +
 .../org/apache/iceberg/spark/SparkWriteConf.java   |  10 +-
 .../apache/iceberg/spark/SparkWriteOptions.java    |   2 +
 .../actions/BaseDeleteOrphanFilesSparkAction.java  |   8 +-
 .../BaseDeleteReachableFilesSparkAction.java       |   8 +-
 .../actions/BaseExpireSnapshotsSparkAction.java    |  10 +-
 .../iceberg/spark/actions/BaseSparkAction.java     |   3 +-
 .../data/vectorized/ColumnVectorWithFilter.java    | 105 +++
 .../spark/data/vectorized/ColumnarBatchReader.java |  86 ++-
 .../data/vectorized/IcebergArrowColumnVector.java  |   8 +
 .../vectorized/VectorizedSparkParquetReaders.java  |  48 ++
 .../iceberg/spark/source/BaseDataReader.java       |   4 +
 .../iceberg/spark/source/BatchDataReader.java      |  34 +-
 .../iceberg/spark/source/SparkBatchQueryScan.java  |  16 +-
 .../iceberg/spark/source/SparkBatchScan.java       |  25 +-
 .../iceberg/spark/source/SparkFilesScan.java       |  13 +-
 .../spark/source/SparkFilesScanBuilder.java        |   6 +-
 .../iceberg/spark/source/SparkMergeScan.java       |  11 +-
 .../iceberg/spark/source/SparkMetadataColumn.java  |   0
 .../iceberg/spark/source/SparkScanBuilder.java     |  21 +-
 .../apache/iceberg/spark/source/SparkTable.java    |  20 +-
 .../apache/iceberg/spark/source/SparkWrite.java    |  14 +-
 .../data/TestSparkParquetReadMetadataColumns.java  |  75 ++
 .../iceberg/spark/source/TestSparkCatalog.java     |  19 +-
 .../spark/source/TestSparkMetadataColumns.java     |  45 +-
 .../spark/source/TestSparkReaderDeletes.java       |  53 +-
 .../actions/BaseDeleteOrphanFilesSparkAction.java  |  69 --
 .../BaseDeleteReachableFilesSparkAction.java       |  38 -
 .../actions/BaseExpireSnapshotsSparkAction.java    |  71 --
 .../actions/BaseSnapshotTableSparkAction.java      |  37 -
 .../iceberg/spark/actions/BaseSparkAction.java     | 220 ++++--
 .../actions/DeleteOrphanFilesSparkAction.java      | 374 ++++++----
 .../actions/DeleteReachableFilesSparkAction.java   |  91 +--
 .../spark/actions/ExpireSnapshotsSparkAction.java  | 135 ++--
 ...riteManifestsSparkAction.java => FileInfo.java} |  41 +-
 .../iceberg/spark/actions/ManifestFileBean.java    |   4 +
 .../apache/iceberg/spark/actions/SparkActions.java |  14 +-
 .../iceberg/spark/functions/BucketFunction.java    | 323 ++++++++
 .../iceberg/spark/functions/SparkFunctions.java    |   5 +-
 .../iceberg/spark/functions/TruncateFunction.java  | 357 +++++++++
 .../actions/TestDeleteReachableFilesAction.java    |  74 +-
 .../spark/actions/TestExpireSnapshotsAction.java   |  43 +-
 .../spark/actions/TestRemoveOrphanFilesAction.java |  10 +-
 .../spark/actions/TestRewriteDataFilesAction.java  | 150 ++--
 .../iceberg/spark/sql/TestSparkBucketFunction.java | 361 +++++++++
 .../spark/sql/TestSparkTruncateFunction.java       | 470 ++++++++++++
 .../iceberg/spark/actions/BaseSparkAction.java     | 117 ++-
 .../actions/DeleteOrphanFilesSparkAction.java      | 374 ++++++----
 .../actions/DeleteReachableFilesSparkAction.java   |  28 +-
 .../spark/actions/ExpireSnapshotsSparkAction.java  |  66 +-
 .../apache/iceberg/spark/actions/FileInfo.java}    |  41 +-
 .../iceberg/spark/actions/ManifestFileBean.java    |   4 +
 .../iceberg/spark/functions/BucketFunction.java    | 323 ++++++++
 .../iceberg/spark/functions/SparkFunctions.java    |   5 +-
 .../iceberg/spark/functions/TruncateFunction.java  | 357 +++++++++
 .../TestHadoopMetricsContextSerialization.java     |   4 +-
 .../spark/actions/TestExpireSnapshotsAction.java   |  43 +-
 .../spark/actions/TestRemoveOrphanFilesAction.java |  10 +-
 .../iceberg/spark/sql/TestSparkBucketFunction.java | 361 +++++++++
 .../spark/sql/TestSparkTruncateFunction.java       | 470 ++++++++++++
 versions.props                                     |   2 +-
 240 files changed, 13249 insertions(+), 2915 deletions(-)
 create mode 100644 api/src/main/java/org/apache/iceberg/metrics/Counter.java
 create mode 100644 api/src/main/java/org/apache/iceberg/metrics/DefaultCounter.java
 create mode 100644 api/src/main/java/org/apache/iceberg/metrics/FixedReservoirHistogram.java
 create mode 100644 api/src/main/java/org/apache/iceberg/metrics/Histogram.java
 delete mode 100644 api/src/main/java/org/apache/iceberg/metrics/IntCounter.java
 delete mode 100644 api/src/main/java/org/apache/iceberg/metrics/LongCounter.java
 create mode 100644 api/src/main/java/org/apache/iceberg/util/BucketUtil.java
 create mode 100644 api/src/main/java/org/apache/iceberg/util/TruncateUtil.java
 create mode 100644 api/src/test/java/org/apache/iceberg/metrics/TestDefaultCounter.java
 create mode 100644 api/src/test/java/org/apache/iceberg/metrics/TestFixedReservoirHistogram.java
 copy core/src/main/java/org/apache/iceberg/{ManifestEntriesTable.java => BaseEntriesTable.java} (64%)
 create mode 100644 core/src/main/java/org/apache/iceberg/metrics/CounterResultParser.java
 create mode 100644 core/src/main/java/org/apache/iceberg/metrics/ScanMetricsResultParser.java
 create mode 100644 core/src/main/java/org/apache/iceberg/metrics/ScanReportParser.java
 create mode 100644 core/src/main/java/org/apache/iceberg/metrics/TimerResultParser.java
 create mode 100644 core/src/test/java/org/apache/iceberg/metrics/TestCounterResultParser.java
 create mode 100644 core/src/test/java/org/apache/iceberg/metrics/TestScanMetricsResultParser.java
 create mode 100644 core/src/test/java/org/apache/iceberg/metrics/TestScanReportParser.java
 create mode 100644 core/src/test/java/org/apache/iceberg/metrics/TestTimerResultParser.java
 create mode 100644 core/src/test/java/org/apache/iceberg/util/TestJsonUtil.java
 rename spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/actions/BaseMigrateTableSparkAction.java => core/src/test/java/org/apache/iceberg/util/TestTruncateUtil.java (55%)
 create mode 100644 flink/v1.14/flink/src/main/java/org/apache/iceberg/flink/sink/CommitSummary.java
 create mode 100644 flink/v1.14/flink/src/main/java/org/apache/iceberg/flink/sink/IcebergFilesCommitterMetrics.java
 create mode 100644 flink/v1.14/flink/src/main/java/org/apache/iceberg/flink/sink/IcebergStreamWriterMetrics.java
 create mode 100644 flink/v1.14/flink/src/main/java/org/apache/iceberg/flink/source/reader/IcebergSourceReaderMetrics.java
 create mode 100644 flink/v1.14/flink/src/test/java/org/apache/iceberg/flink/source/reader/TestIcebergSourceReader.java
 create mode 100644 flink/v1.14/flink/src/test/java/org/apache/iceberg/flink/source/reader/TestingMetricGroup.java
 create mode 100644 flink/v1.15/flink/src/main/java/org/apache/iceberg/flink/sink/CommitSummary.java
 create mode 100644 flink/v1.15/flink/src/main/java/org/apache/iceberg/flink/sink/IcebergFilesCommitterMetrics.java
 create mode 100644 flink/v1.15/flink/src/main/java/org/apache/iceberg/flink/sink/IcebergStreamWriterMetrics.java
 create mode 100644 flink/v1.15/flink/src/main/java/org/apache/iceberg/flink/source/reader/IcebergSourceReaderMetrics.java
 create mode 100644 flink/v1.15/flink/src/test/java/org/apache/iceberg/flink/source/reader/TestIcebergSourceReader.java
 create mode 100644 flink/v1.15/flink/src/test/java/org/apache/iceberg/flink/source/reader/TestingMetricGroup.java
 copy python/pyiceberg/{avro => cli}/__init__.py (100%)
 create mode 100644 python/pyiceberg/cli/console.py
 create mode 100644 python/pyiceberg/cli/output.py
 create mode 100644 python/pyiceberg/utils/config.py
 copy python/tests/{avro => cli}/__init__.py (100%)
 create mode 100644 python/tests/cli/test_console.py
 copy python/tests/{avro/__init__.py => cli/test_output.py} (100%)
 create mode 100644 python/tests/table/test_init.py
 copy python/{pyiceberg/table/__init__.py => tests/table/test_refs.py} (55%)
 copy python/{pyiceberg/typedef.py => tests/test_typedef.py} (71%)
 create mode 100644 python/tests/utils/test_config.py
 create mode 100644 spark/v3.1/spark/src/jmh/java/org/apache/iceberg/spark/source/IcebergSourceDeleteBenchmark.java
 create mode 100644 spark/v3.1/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetDeleteBenchmark.java
 create mode 100644 spark/v3.1/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetMultiDeleteFileBenchmark.java
 create mode 100644 spark/v3.1/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetWithUnrelatedDeleteBenchmark.java
 create mode 100644 spark/v3.1/spark/src/main/java/org/apache/iceberg/spark/data/vectorized/ColumnVectorWithFilter.java
 copy spark/{v3.2 => v3.1}/spark/src/main/java/org/apache/iceberg/spark/source/SparkMetadataColumn.java (100%)
 delete mode 100644 spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/actions/BaseDeleteOrphanFilesSparkAction.java
 delete mode 100644 spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/actions/BaseDeleteReachableFilesSparkAction.java
 delete mode 100644 spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/actions/BaseExpireSnapshotsSparkAction.java
 delete mode 100644 spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/actions/BaseSnapshotTableSparkAction.java
 rename spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/actions/{BaseRewriteManifestsSparkAction.java => FileInfo.java} (60%)
 create mode 100644 spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/functions/BucketFunction.java
 create mode 100644 spark/v3.2/spark/src/main/java/org/apache/iceberg/spark/functions/TruncateFunction.java
 create mode 100644 spark/v3.2/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkBucketFunction.java
 create mode 100644 spark/v3.2/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkTruncateFunction.java
 rename spark/{v3.2/spark/src/main/java/org/apache/iceberg/spark/actions/BaseRewriteDataFilesSparkAction.java => v3.3/spark/src/main/java/org/apache/iceberg/spark/actions/FileInfo.java} (60%)
 create mode 100644 spark/v3.3/spark/src/main/java/org/apache/iceberg/spark/functions/BucketFunction.java
 create mode 100644 spark/v3.3/spark/src/main/java/org/apache/iceberg/spark/functions/TruncateFunction.java
 create mode 100644 spark/v3.3/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkBucketFunction.java
 create mode 100644 spark/v3.3/spark/src/test/java/org/apache/iceberg/spark/sql/TestSparkTruncateFunction.java