diff --git a/.github/workflows/presto-release-prepare.yml b/.github/workflows/presto-release-prepare.yml index acd9ebdbbc2cc..4dec92d148417 100644 --- a/.github/workflows/presto-release-prepare.yml +++ b/.github/workflows/presto-release-prepare.yml @@ -37,6 +37,16 @@ jobs: show-progress: false fetch-depth: 5 + - name: Ensure checkout latest code + run: | + git fetch origin ${{ github.ref_name }} + if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/${{ github.ref_name }})" ]; then + echo "Branch ${{ github.ref_name }} has new commits. Resetting to latest." + git reset --hard origin/${{ github.ref_name }} + else + echo "Branch ${{ github.ref_name }} is already up to date." + fi + - name: Set up JDK ${{ env.JAVA_DISTRIBUTION }}/${{ env.JAVA_VERSION }} uses: actions/setup-java@v4 with: @@ -106,7 +116,9 @@ jobs: - name: Checkout presto source uses: actions/checkout@v4 with: + fetch-tags: true show-progress: false + fetch-depth: 0 - name: Set up JDK ${{ env.JAVA_DISTRIBUTION }}/${{ env.JAVA_VERSION }} uses: actions/setup-java@v4 diff --git a/README.md b/README.md index 004cbe80ad6b3..6fe5509de25af 100644 --- a/README.md +++ b/README.md @@ -137,3 +137,7 @@ Please refer to the [contribution guidelines](https://github.com/prestodb/presto By contributing to Presto, you agree that your contributions will be licensed under the [Apache License Version 2.0 (APLv2)](LICENSE). + +## Testing + +TODO diff --git a/pom.xml b/pom.xml index dd70d9bb351f6..d27948df35897 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT pom presto-root diff --git a/presto-accumulo/pom.xml b/presto-accumulo/pom.xml index 7b7d7ac63baee..69c013d831842 100644 --- a/presto-accumulo/pom.xml +++ b/presto-accumulo/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-accumulo diff --git a/presto-analyzer/pom.xml b/presto-analyzer/pom.xml index 4235cab079cf9..9f7701eb7b329 100644 --- a/presto-analyzer/pom.xml +++ b/presto-analyzer/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-analyzer diff --git a/presto-atop/pom.xml b/presto-atop/pom.xml index d9c86ad51210d..c8070fa5253aa 100644 --- a/presto-atop/pom.xml +++ b/presto-atop/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-atop diff --git a/presto-base-arrow-flight/pom.xml b/presto-base-arrow-flight/pom.xml index 1ae8b087050b0..0dac0755fcd06 100644 --- a/presto-base-arrow-flight/pom.xml +++ b/presto-base-arrow-flight/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-base-arrow-flight diff --git a/presto-base-jdbc/pom.xml b/presto-base-jdbc/pom.xml index e1ca899ecd3a3..31fc572dcaeed 100644 --- a/presto-base-jdbc/pom.xml +++ b/presto-base-jdbc/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-base-jdbc diff --git a/presto-benchmark-driver/pom.xml b/presto-benchmark-driver/pom.xml index 9993320fd15fd..7af8a14ae9d7c 100644 --- a/presto-benchmark-driver/pom.xml +++ b/presto-benchmark-driver/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-benchmark-driver diff --git a/presto-benchmark-runner/pom.xml b/presto-benchmark-runner/pom.xml index a284e063e945a..58cfab2984565 100644 --- a/presto-benchmark-runner/pom.xml +++ b/presto-benchmark-runner/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-benchmark-runner diff --git a/presto-benchmark/pom.xml b/presto-benchmark/pom.xml index 1dacb5a2dc586..690e6659f1118 100644 --- a/presto-benchmark/pom.xml +++ b/presto-benchmark/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-benchmark diff --git a/presto-benchto-benchmarks/pom.xml b/presto-benchto-benchmarks/pom.xml index 2d6e17f48fd9f..120b775ac3942 100644 --- a/presto-benchto-benchmarks/pom.xml +++ b/presto-benchto-benchmarks/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-benchto-benchmarks diff --git a/presto-bigquery/pom.xml b/presto-bigquery/pom.xml index 7224ac7d815a9..22b581a0c4f7c 100644 --- a/presto-bigquery/pom.xml +++ b/presto-bigquery/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-bigquery diff --git a/presto-blackhole/pom.xml b/presto-blackhole/pom.xml index b830cc037edb7..8990b311c8043 100644 --- a/presto-blackhole/pom.xml +++ b/presto-blackhole/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-blackhole diff --git a/presto-bytecode/pom.xml b/presto-bytecode/pom.xml index dcb28ba9daf36..e287dbb45985e 100644 --- a/presto-bytecode/pom.xml +++ b/presto-bytecode/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-bytecode diff --git a/presto-cache/pom.xml b/presto-cache/pom.xml index b5e21ff666572..97cfa14a3964e 100644 --- a/presto-cache/pom.xml +++ b/presto-cache/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-cache diff --git a/presto-cassandra/pom.xml b/presto-cassandra/pom.xml index 2bbaf0c908cd6..67815513be8ca 100644 --- a/presto-cassandra/pom.xml +++ b/presto-cassandra/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-cassandra diff --git a/presto-cli/pom.xml b/presto-cli/pom.xml index e777cd7f9ec10..f87cd6835062e 100644 --- a/presto-cli/pom.xml +++ b/presto-cli/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-cli diff --git a/presto-clickhouse/pom.xml b/presto-clickhouse/pom.xml index f29e4c00fa131..5ff87642387c6 100755 --- a/presto-clickhouse/pom.xml +++ b/presto-clickhouse/pom.xml @@ -4,7 +4,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-clickhouse diff --git a/presto-client/pom.xml b/presto-client/pom.xml index b9ad140464626..28510e1b098c0 100644 --- a/presto-client/pom.xml +++ b/presto-client/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-client diff --git a/presto-cluster-ttl-providers/pom.xml b/presto-cluster-ttl-providers/pom.xml index 13cca1be09776..023de343b199f 100644 --- a/presto-cluster-ttl-providers/pom.xml +++ b/presto-cluster-ttl-providers/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-common/pom.xml b/presto-common/pom.xml index 44d3fca2e7713..53fa83d4fb464 100644 --- a/presto-common/pom.xml +++ b/presto-common/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-common diff --git a/presto-delta/pom.xml b/presto-delta/pom.xml index c2f3a14f92c95..d6b28387e5480 100644 --- a/presto-delta/pom.xml +++ b/presto-delta/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-delta diff --git a/presto-docs/pom.xml b/presto-docs/pom.xml index a3fb539a35bb5..2ee36b2cdfbb1 100644 --- a/presto-docs/pom.xml +++ b/presto-docs/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-docs diff --git a/presto-docs/src/main/sphinx/release.rst b/presto-docs/src/main/sphinx/release.rst index 7d4aa77f92e0b..4582e1c1c4e4d 100644 --- a/presto-docs/src/main/sphinx/release.rst +++ b/presto-docs/src/main/sphinx/release.rst @@ -5,6 +5,7 @@ Release Notes .. toctree:: :maxdepth: 1 + Release-0.294 [2025-06-19] Release-0.293 [2025-05-29] Release-0.292 [2025-03-28] Release-0.291 [2025-01-27] diff --git a/presto-docs/src/main/sphinx/release/release-0.294.rst b/presto-docs/src/main/sphinx/release/release-0.294.rst new file mode 100644 index 0000000000000..45e363197f419 --- /dev/null +++ b/presto-docs/src/main/sphinx/release/release-0.294.rst @@ -0,0 +1,95 @@ +============= +Release 0.294 +============= + +**Highlights** +============== + +**Details** +=========== + +General Changes +_______________ +* Fix error classification for unsupported array comparison with null elements, converting it as a user error. `#25187 `_ +* Fix: Revert the move of boostrap fromm presto-main to presto-bytecode. `#25260 `_ +* Improve semi join performance for large filtering tables. `#25236 `_ +* Add a function to Constraint to return the input arguments for the predicate. `#25248 `_ +* Add a new optimization `MinMaxByToWindowFunction` to rewrite min_by/max_by aggregations with row_number window function. `#25190 `_ +* Add a session property to disable the ReplicateSemiJoinInDelete optimizer. `#25256 `_ +* Add an optimizer to add distinct aggregation on build side of semi join. `#25238 `_ +* Add mixed case support for schema and table names. `#24551 `_ +* Add property ```native_query_memory_reclaimer_priority``` which controls which queries are killed first when a worker is running low on memory. Higher value means lower priority to be consistent with velox memory reclaimer's convention. `#25325 `_ +* Add pushdownSubfieldArgIndex parameter to ComplexTypeFunctionDescriptor for subfield optimization during query planning. `#25175 `_ +* Adds aggregation tests from ``presto-tests`` to run with native query runner in ``presto-native-tests``. `#24809 `_ +* Replace the parameters in router schedulers to use `RouterRequestInfo` to get the URL destination. `#25244 `_ +* ... `#25223 `_ +* ... `#25223 `_ +* Extend MergePartialAggregationsWithFilter to work for queries where all aggregations have mask. `#25171 `_ +* Update ProtocolToThrift files to be generated for cpp thrift serde. `#25162 `_ +* Update router UI to eliminate vulnerabilities. `#25206 `_ + +General Change Changes +______________________ +* Improve memory usage in writer by feeing unused buffers. `#23724 `_ + +Prestissimo (Native Execution) Changes +______________________________________ +* Fix Native Plan Checker for CTAS and Insert queries. `#25115 `_ +* Fix PrestoExchangeSource 400 Bad Request by adding the "Host" header. `#25272 `_ + +Prestissimo (native Execution) Changes +______________________________________ +* Add BinarySortableSerializer::serializedSizeInBytes method that returns the serialized byte size of a given input row at 'rowId'. This allows us to pre-allocated the exact output buffer size needed for serialization, avoiding wasted memory space. `#25359 `_ +* Add sidecar in presto-native-tests module. `#25174 `_ + +Security Changes +________________ +* Upgrade commons-beanutils dependency to address 'CVE-2025-48734 '. `#25235 `_ + +JDBC Driver Changes +___________________ +* Improve type mapping API to add WriteMapping functionality. `#25124 `_ +* Add mixed case support related catalog property in JDBC connector ``case-sensitive-name-matching``. `#24551 `_ + +Hive Connector Changes +______________________ +* Fix incorrectly ignoring computed table statistics in `ANALYZE`. `#24973 `_ + +Iceberg Connector Changes +_________________________ +* Fix error querying ``$data_sequence_number`` metadata column for table with equality deletes. `#25293 `_ +* Fix the remove_orphan_files procedure after deletion operations. `#25220 `_ +* Add support of ``rename view`` for Iceberg connector when configured with ``REST`` and ``NESSIE``. `#25202 `_ + +JDBC Connector Changes +______________________ +* Add skippable-schemas config option for jdbc connectors. `#24994 `_ + +Mongodb Connector Changes +_________________________ +* Add support for Json type in MongoDB. `#25089 `_ + +Mysql Connector Changes +_______________________ +* Add support for mixed-case in MySQL. It can be enabled by setting ``case-sensitive-name-matching=true`` configuration in the catalog configuration. `#24551 `_ + +Redshift Connector Changes +__________________________ +* Fix Redshift connector runtime failure due to missing dependency on ``com.amazonaws.util.StringUtils``. Add ``aws-java-sdk-core`` as a runtime dependency to support Redshift JDBC driver (v2.1.0.32) which relies on this class for metadata operations. `#25265 `_ + +Documentation Changes +_____________________ +* Add :ref:`connector/hive:Avro Configuration Properties` to Hive Connector documentation. `#25311 `_ + +Arrow Flight Connector Template Changes +_______________________________________ +* Added support for mTLS authentication in Arrow Flight client. `#25179 `_ + +Router Changes +______________ +* Add a new custom router scheduler plugin, the `Presto Plan Checker Router Scheduler Plugin `_. `#25035 `_ + +**Credits** +=========== + +Aditi Pandit, Ajay Kharat, Amit Dutta, Anant Aneja, Andrew Xie, Andrii Rosa, Arjun Gupta, Auden Woolfson, Beinan, Chandra Vankayalapati, Chandrashekhar Kumar Singh, Chen Yang, Christian Zentgraf, Deepak Majeti, Denodo Research Labs, Elbin Pallimalil, Emily (Xuetong) Sun, Facebook Community Bot, Feilong Liu, Hazmi, HeidiHan0000, Jalpreet Singh Nanda, Jay Narale, Jialiang Tan, Ke Wang, Kevin Tang, Li Zhou, Mariam Almesfer, NivinCS, Ping Liu, Pramod Satya, Pratik Joseph Dabre, Rebecca Schlussel, Sergey Pershin, Sergii Druzkin, Shahim Sharafudeen, Shakyan Kushwaha, Shang Ma, Shelton Cai, Steve Burnett, Thanzeel Hassan, Tim Meehan, XiaoDu, Xiaoxuan, Yihong Wang, Ying, Zac Blanco, Zac Wen, Zhiying Liang, lingbin, martinsander00, mima0000, pratyakshsharma, vhsu14, wangd diff --git a/presto-druid/pom.xml b/presto-druid/pom.xml index 8301aa7f22ac3..53bab79fa16d2 100644 --- a/presto-druid/pom.xml +++ b/presto-druid/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-druid diff --git a/presto-elasticsearch/pom.xml b/presto-elasticsearch/pom.xml index 24aa90c84e766..b912fbd7b9032 100644 --- a/presto-elasticsearch/pom.xml +++ b/presto-elasticsearch/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-elasticsearch Presto - Elasticsearch Connector diff --git a/presto-example-http/pom.xml b/presto-example-http/pom.xml index 29b9c95e64c5c..649f61366f329 100644 --- a/presto-example-http/pom.xml +++ b/presto-example-http/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-example-http diff --git a/presto-expressions/pom.xml b/presto-expressions/pom.xml index f2eb436d46c4f..ae3a0b39d275f 100644 --- a/presto-expressions/pom.xml +++ b/presto-expressions/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-expressions diff --git a/presto-function-namespace-managers-common/pom.xml b/presto-function-namespace-managers-common/pom.xml index 5a3847f622ec0..883946534b835 100644 --- a/presto-function-namespace-managers-common/pom.xml +++ b/presto-function-namespace-managers-common/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT diff --git a/presto-function-namespace-managers/pom.xml b/presto-function-namespace-managers/pom.xml index b38a0bfb0fb03..e99f9d2c4f224 100644 --- a/presto-function-namespace-managers/pom.xml +++ b/presto-function-namespace-managers/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-function-server/pom.xml b/presto-function-server/pom.xml index 0abd6ffa2073e..26bfc4671fb9a 100644 --- a/presto-function-server/pom.xml +++ b/presto-function-server/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-function-server diff --git a/presto-geospatial-toolkit/pom.xml b/presto-geospatial-toolkit/pom.xml index d52dd35ba9936..4d16132cb460d 100644 --- a/presto-geospatial-toolkit/pom.xml +++ b/presto-geospatial-toolkit/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-geospatial-toolkit diff --git a/presto-google-sheets/pom.xml b/presto-google-sheets/pom.xml index 092cc07b6d453..e83a73c69999b 100644 --- a/presto-google-sheets/pom.xml +++ b/presto-google-sheets/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-google-sheets diff --git a/presto-grpc-api/pom.xml b/presto-grpc-api/pom.xml index 7cb5c5eaae464..001bfd79d8e39 100644 --- a/presto-grpc-api/pom.xml +++ b/presto-grpc-api/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-grpc-testing-udf-server/pom.xml b/presto-grpc-testing-udf-server/pom.xml index ca7dbc4e05d59..d39607c07ff74 100644 --- a/presto-grpc-testing-udf-server/pom.xml +++ b/presto-grpc-testing-udf-server/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-hana/pom.xml b/presto-hana/pom.xml index 5f49aee9a0a58..83612c37676de 100644 --- a/presto-hana/pom.xml +++ b/presto-hana/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-hana diff --git a/presto-hdfs-core/pom.xml b/presto-hdfs-core/pom.xml index 01f8e994d5deb..edd929f778868 100644 --- a/presto-hdfs-core/pom.xml +++ b/presto-hdfs-core/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT diff --git a/presto-hive-common/pom.xml b/presto-hive-common/pom.xml index 854d59f6a4b8c..7d4ce3782a500 100644 --- a/presto-hive-common/pom.xml +++ b/presto-hive-common/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT diff --git a/presto-hive-function-namespace/pom.xml b/presto-hive-function-namespace/pom.xml index 158e091fb8d58..9deee7af907a5 100644 --- a/presto-hive-function-namespace/pom.xml +++ b/presto-hive-function-namespace/pom.xml @@ -4,7 +4,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-hive-function-namespace diff --git a/presto-hive-hadoop2/pom.xml b/presto-hive-hadoop2/pom.xml index 27a7df95b685b..cfb700918ab81 100644 --- a/presto-hive-hadoop2/pom.xml +++ b/presto-hive-hadoop2/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-hive-hadoop2 diff --git a/presto-hive-metastore/pom.xml b/presto-hive-metastore/pom.xml index 804312a3c0567..d7e118017ab1f 100644 --- a/presto-hive-metastore/pom.xml +++ b/presto-hive-metastore/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-hive-metastore diff --git a/presto-hive/pom.xml b/presto-hive/pom.xml index f234abf4508fe..28d002ed6ee34 100644 --- a/presto-hive/pom.xml +++ b/presto-hive/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-hive diff --git a/presto-hudi/pom.xml b/presto-hudi/pom.xml index c63e52671e117..73e3420911b56 100644 --- a/presto-hudi/pom.xml +++ b/presto-hudi/pom.xml @@ -4,7 +4,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-hudi Presto - Hudi Connector diff --git a/presto-i18n-functions/pom.xml b/presto-i18n-functions/pom.xml index a2161270e9379..03b33af1cdba7 100644 --- a/presto-i18n-functions/pom.xml +++ b/presto-i18n-functions/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-i18n-functions diff --git a/presto-iceberg/pom.xml b/presto-iceberg/pom.xml index e836bbc2c6772..195a32f6bb98f 100644 --- a/presto-iceberg/pom.xml +++ b/presto-iceberg/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-iceberg Presto - Iceberg Connector diff --git a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergPartitionField.java b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergPartitionField.java new file mode 100644 index 0000000000000..9fd48b4474488 --- /dev/null +++ b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergPartitionField.java @@ -0,0 +1,161 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.facebook.presto.iceberg; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.Objects; +import java.util.OptionalInt; + +import static java.util.Objects.requireNonNull; + +public class IcebergPartitionField +{ + private final int sourceId; + private final int fieldId; + private final OptionalInt parameter; + private final PartitionTransformType transform; + private final String name; + + @JsonCreator + public IcebergPartitionField( + @JsonProperty("sourceId") int sourceId, + @JsonProperty("fieldId") int fieldId, + @JsonProperty("parameter") OptionalInt parameter, + @JsonProperty("transform") PartitionTransformType transform, + @JsonProperty("name") String name) + { + this.sourceId = sourceId; + this.fieldId = fieldId; + this.parameter = requireNonNull(parameter, "parameter is null"); + this.transform = requireNonNull(transform, "transform is null"); + this.name = requireNonNull(name, "name is null"); + } + + @JsonProperty + public int getSourceId() + { + return sourceId; + } + + @JsonProperty + public int getFieldId() + { + return fieldId; + } + + @JsonProperty + public OptionalInt getParameter() + { + return parameter; + } + + @JsonProperty + public PartitionTransformType getTransform() + { + return transform; + } + + @JsonProperty + public String getName() + { + return name; + } + + @Override + public boolean equals(Object o) + { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IcebergPartitionField that = (IcebergPartitionField) o; + return transform == that.transform && + Objects.equals(name, that.name) && + sourceId == that.sourceId && + fieldId == that.fieldId && + parameter == that.parameter; + } + + @Override + public int hashCode() + { + return Objects.hash(sourceId, fieldId, parameter, transform, name); + } + + @Override + public String toString() + { + return "IcebergPartitionField{" + + "sourceId=" + sourceId + + ", fieldId=" + fieldId + + ", parameter=" + (parameter.isPresent() ? String.valueOf(parameter.getAsInt()) : "null") + + ", transform=" + transform + + ", name='" + name + '\'' + + '}'; + } + + public static Builder builder() + { + return new Builder(); + } + + public static class Builder + { + private int sourceId; + private int fieldId; + private OptionalInt parameter; + private PartitionTransformType transform; + private String name; + + public Builder setSourceId(int sourceId) + { + this.sourceId = sourceId; + return this; + } + + public Builder setFieldId(int fieldId) + { + this.fieldId = fieldId; + return this; + } + + public Builder setTransform(PartitionTransformType transform) + { + this.transform = transform; + return this; + } + + public Builder setName(String name) + { + this.name = name; + return this; + } + + public Builder setParameter(OptionalInt parameter) + { + this.parameter = parameter; + return this; + } + + public IcebergPartitionField build() + { + return new IcebergPartitionField(sourceId, fieldId, parameter == null ? OptionalInt.empty() : parameter, transform, name); + } + } +} diff --git a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionFields.java b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionFields.java index eb6a2463a50ff..7668efea0f791 100644 --- a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionFields.java +++ b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionFields.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.iceberg; +import com.google.common.annotations.VisibleForTesting; import org.apache.iceberg.PartitionField; import org.apache.iceberg.PartitionSpec; import org.apache.iceberg.Schema; @@ -22,6 +23,7 @@ import java.util.List; import java.util.Optional; +import java.util.OptionalInt; import java.util.function.Consumer; import java.util.regex.MatchResult; import java.util.regex.Matcher; @@ -78,12 +80,25 @@ public static PartitionSpec parsePartitionFields(Schema schema, List fie .orElseGet(() -> PartitionSpec.builderFor(schema)); for (String field : fields) { - parsePartitionField(builder, field); + buildPartitionField(builder, field); } return builder.build(); } - public static void parsePartitionField(PartitionSpec.Builder builder, String field) + public static PartitionSpec parseIcebergPartitionFields(Schema schema, List fields, @Nullable Integer specId) + { + PartitionSpec.Builder builder = Optional.ofNullable(specId) + .map(id -> PartitionSpec.builderFor(schema).withSpecId(id)) + .orElseGet(() -> PartitionSpec.builderFor(schema)); + + for (IcebergPartitionField field : fields) { + buildPartitionSpec(builder, field); + } + return builder.build(); + } + + @VisibleForTesting + static void buildPartitionField(PartitionSpec.Builder builder, String field) { @SuppressWarnings("PointlessBooleanExpression") boolean matched = false || @@ -99,6 +114,35 @@ public static void parsePartitionField(PartitionSpec.Builder builder, String fie } } + private static void buildPartitionSpec(PartitionSpec.Builder builder, IcebergPartitionField partitionField) + { + String field = partitionField.getName(); + PartitionTransformType type = partitionField.getTransform(); + OptionalInt parameter = partitionField.getParameter(); + switch (type) { + case IDENTITY: + builder.identity(field); + break; + case YEAR: + builder.year(field); + break; + case MONTH: + builder.month(field); + break; + case DAY: + builder.day(field); + break; + case HOUR: + builder.hour(field); + break; + case BUCKET: + builder.bucket(field, parameter.getAsInt()); + break; + case TRUNCATE: + builder.truncate(field, parameter.getAsInt()); + } + } + private static boolean tryMatch(CharSequence value, Pattern pattern, Consumer match) { Matcher matcher = pattern.matcher(value); @@ -116,6 +160,41 @@ public static List toPartitionFields(PartitionSpec spec) .collect(toImmutableList()); } + private static String toPartitionField(PartitionSpec spec, PartitionField field) + { + String name = spec.schema().findColumnName(field.sourceId()); + String transform = field.transform().toString(); + + switch (transform) { + case "identity": + return name; + case "year": + case "month": + case "day": + case "hour": + return format("%s(%s)", transform, name); + } + + Matcher matcher = ICEBERG_BUCKET_PATTERN.matcher(transform); + if (matcher.matches()) { + return format("bucket(%s, %s)", name, matcher.group(1)); + } + + matcher = ICEBERG_TRUNCATE_PATTERN.matcher(transform); + if (matcher.matches()) { + return format("truncate(%s, %s)", name, matcher.group(1)); + } + + throw new UnsupportedOperationException("Unsupported partition transform: " + field); + } + + public static List toIcebergPartitionFields(PartitionSpec spec) + { + return spec.fields().stream() + .map(field -> toIcebergPartitionField(spec, field)) + .collect(toImmutableList()); + } + // Keep consistency with PartitionSpec.Builder protected static String getPartitionColumnName(String columnName, String transform) { @@ -170,32 +249,23 @@ protected static Term getTransformTerm(String columnName, String transform) throw new UnsupportedOperationException("Unknown partition transform: " + transform); } - private static String toPartitionField(PartitionSpec spec, PartitionField field) + private static IcebergPartitionField toIcebergPartitionField(PartitionSpec spec, PartitionField field) { String name = spec.schema().findColumnName(field.sourceId()); String transform = field.transform().toString(); - - switch (transform) { - case "identity": - return name; - case "year": - case "month": - case "day": - case "hour": - return format("%s(%s)", transform, name); - } - + IcebergPartitionField.Builder builder = IcebergPartitionField.builder(); + builder.setTransform(PartitionTransformType.fromStringOrFail(transform)).setFieldId(field.fieldId()).setSourceId(field.sourceId()).setName(name); Matcher matcher = ICEBERG_BUCKET_PATTERN.matcher(transform); if (matcher.matches()) { - return format("bucket(%s, %s)", name, matcher.group(1)); + builder.setParameter(OptionalInt.of(Integer.parseInt(matcher.group(1)))); + return builder.build(); } - matcher = ICEBERG_TRUNCATE_PATTERN.matcher(transform); if (matcher.matches()) { - return format("truncate(%s, %s)", name, matcher.group(1)); + builder.setParameter(OptionalInt.of(Integer.parseInt(matcher.group(1)))); + return builder.build(); } - - throw new UnsupportedOperationException("Unsupported partition transform: " + field); + return builder.build(); } public static String quotedName(String name) diff --git a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionSpecConverter.java b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionSpecConverter.java index 921168870dc9e..cc191ca6f1be0 100644 --- a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionSpecConverter.java +++ b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionSpecConverter.java @@ -16,8 +16,8 @@ import com.facebook.presto.common.type.TypeManager; import org.apache.iceberg.PartitionSpec; -import static com.facebook.presto.iceberg.PartitionFields.parsePartitionFields; -import static com.facebook.presto.iceberg.PartitionFields.toPartitionFields; +import static com.facebook.presto.iceberg.PartitionFields.parseIcebergPartitionFields; +import static com.facebook.presto.iceberg.PartitionFields.toIcebergPartitionFields; import static com.facebook.presto.iceberg.SchemaConverter.toIcebergSchema; import static com.facebook.presto.iceberg.SchemaConverter.toPrestoSchema; @@ -30,12 +30,12 @@ public static PrestoIcebergPartitionSpec toPrestoPartitionSpec(PartitionSpec spe return new PrestoIcebergPartitionSpec( spec.specId(), toPrestoSchema(spec.schema(), typeManager), - toPartitionFields(spec)); + toIcebergPartitionFields(spec)); } public static PartitionSpec toIcebergPartitionSpec(PrestoIcebergPartitionSpec spec) { - return parsePartitionFields( + return parseIcebergPartitionFields( toIcebergSchema(spec.getSchema()), spec.getFields(), spec.getSpecId()); diff --git a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionTransformType.java b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionTransformType.java new file mode 100644 index 0000000000000..f72c8dd061158 --- /dev/null +++ b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionTransformType.java @@ -0,0 +1,101 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.iceberg; + +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +public enum PartitionTransformType +{ + IDENTITY("identity", 0), + YEAR("year", 1), + MONTH("month", 2), + DAY("day", 3), + HOUR("hour", 4), + BUCKET("bucket", 5), + TRUNCATE("truncate", 6); + + private static final Map TRANSFORM_MAP = new HashMap<>(); + private static final Map CODE_MAP = new HashMap<>(); + + static { + for (PartitionTransformType type : values()) { + TRANSFORM_MAP.put(type.transform, type); + CODE_MAP.put(type.code, type); + } + } + + private final String transform; + private final int code; + + PartitionTransformType(String transform, int code) + { + this.transform = transform; + this.code = code; + } + + public String getTransform() + { + return transform; + } + + public int getCode() + { + return code; + } + + public static Optional fromString(String transform) + { + if (transform == null) { + return Optional.empty(); + } + + PartitionTransformType type = TRANSFORM_MAP.get(transform); + if (type != null) { + return Optional.of(type); + } + + // Handle bucket and truncate transforms with parameters + if (transform.startsWith(BUCKET.transform + "[")) { + return Optional.of(BUCKET); + } + if (transform.startsWith(TRUNCATE.transform + "[")) { + return Optional.of(TRUNCATE); + } + + return Optional.empty(); + } + + public static PartitionTransformType fromCode(int code) + { + PartitionTransformType type = CODE_MAP.get(code); + if (type == null) { + throw new IllegalArgumentException("Unknown transform code: " + code); + } + return type; + } + + public static PartitionTransformType fromStringOrFail(String transform) + { + return fromString(transform) + .orElseThrow(() -> new IllegalArgumentException("Unsupported transform type: " + transform)); + } + + @Override + public String toString() + { + return transform; + } +} diff --git a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PrestoIcebergPartitionSpec.java b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PrestoIcebergPartitionSpec.java index 119a819868f2f..38039b2643568 100644 --- a/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PrestoIcebergPartitionSpec.java +++ b/presto-iceberg/src/main/java/com/facebook/presto/iceberg/PrestoIcebergPartitionSpec.java @@ -26,13 +26,13 @@ public class PrestoIcebergPartitionSpec { private final int specId; private final PrestoIcebergSchema schema; - private final List fields; + private final List fields; @JsonCreator public PrestoIcebergPartitionSpec( @JsonProperty("specId") int specId, @JsonProperty("schema") PrestoIcebergSchema schema, - @JsonProperty("fields") List fields) + @JsonProperty("fields") List fields) { this.specId = specId; this.schema = requireNonNull(schema, "schema is null"); @@ -52,7 +52,7 @@ public PrestoIcebergSchema getSchema() } @JsonProperty - public List getFields() + public List getFields() { return fields; } diff --git a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionFields.java b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionFields.java index 1f3a859e2a342..29f9705d40408 100644 --- a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionFields.java +++ b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionFields.java @@ -26,10 +26,8 @@ import java.util.function.Consumer; -import static com.facebook.presto.iceberg.PartitionFields.parsePartitionField; -import static com.facebook.presto.iceberg.PartitionFields.toPartitionFields; +import static com.facebook.presto.iceberg.PartitionFields.buildPartitionField; import static com.facebook.presto.testing.assertions.Assert.assertEquals; -import static com.google.common.collect.Iterables.getOnlyElement; import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; public class TestPartitionFields @@ -60,7 +58,6 @@ private static void assertParse(String value, PartitionSpec expected) { assertEquals(expected.fields().size(), 1); assertEquals(parseField(value), expected); - assertEquals(getOnlyElement(toPartitionFields(expected)), value); } private static void assertInvalid(String value, String message) @@ -75,7 +72,7 @@ private static void assertInvalid(String value, String message) private static PartitionSpec parseField(String value) { - return partitionSpec(builder -> parsePartitionField(builder, value)); + return partitionSpec(builder -> buildPartitionField(builder, value)); } private static PartitionSpec partitionSpec(Consumer consumer) diff --git a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionSpecConverter.java b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionSpecConverter.java index 41b3556956820..938819231b4f4 100644 --- a/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionSpecConverter.java +++ b/presto-iceberg/src/test/java/com/facebook/presto/iceberg/TestPartitionSpecConverter.java @@ -20,13 +20,13 @@ import java.util.ArrayList; import java.util.List; +import java.util.OptionalInt; import static com.facebook.presto.iceberg.PartitionSpecConverter.toIcebergPartitionSpec; import static com.facebook.presto.iceberg.PartitionSpecConverter.toPrestoPartitionSpec; import static com.facebook.presto.iceberg.TestSchemaConverter.prestoIcebergSchema; import static com.facebook.presto.iceberg.TestSchemaConverter.schema; import static com.facebook.presto.metadata.FunctionAndTypeManager.createTestFunctionAndTypeManager; -import static java.lang.String.format; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; @@ -46,26 +46,6 @@ public static Object[][] testAllTransforms() }; } - @Test(dataProvider = "allTransforms") - public void testToPrestoPartitionSpec(String transform, String name) - { - // Create a test TypeManager - TypeManager typeManager = createTestFunctionAndTypeManager(); - - // Create a mock PartitionSpec - PartitionSpec partitionSpec = partitionSpec(transform, name); - - PrestoIcebergPartitionSpec expectedPrestoPartitionSpec = prestoIcebergPartitionSpec(transform, name, typeManager); - - // Convert Iceberg PartitionSpec to Presto Iceberg Partition Spec - PrestoIcebergPartitionSpec prestoIcebergPartitionSpec = toPrestoPartitionSpec(partitionSpec, typeManager); - - // Check that the result is not null - assertNotNull(prestoIcebergPartitionSpec); - - assertEquals(prestoIcebergPartitionSpec, expectedPrestoPartitionSpec); - } - @Test(dataProvider = "allTransforms") public void testToIcebergPartitionSpec(String transform, String name) { @@ -110,23 +90,35 @@ public void validateConversion(String transform, String name) private static PrestoIcebergPartitionSpec prestoIcebergPartitionSpec(String transform, String name, TypeManager typeManager) { - List fields = new ArrayList<>(); - + List fields = new ArrayList<>(); + IcebergPartitionField.Builder builder = IcebergPartitionField.builder(); + builder.setName(name); switch (transform) { case "identity": - fields.add(name); + builder.setTransform(PartitionTransformType.IDENTITY); break; case "year": + builder.setTransform(PartitionTransformType.YEAR); + break; case "month": + builder.setTransform(PartitionTransformType.MONTH); + break; case "day": - fields.add(format("%s(%s)", transform, name)); + builder.setTransform(PartitionTransformType.DAY); + break; + case "hour": + builder.setTransform(PartitionTransformType.HOUR); break; case "bucket": + builder.setTransform(PartitionTransformType.BUCKET) + .setParameter(OptionalInt.of(3)); + break; case "truncate": - fields.add(format("%s(%s, 3)", transform, name)); + builder.setTransform(PartitionTransformType.TRUNCATE) + .setParameter(OptionalInt.of(3)); break; } - + fields.add(builder.build()); return new PrestoIcebergPartitionSpec(0, prestoIcebergSchema(typeManager), fields); } diff --git a/presto-jdbc/pom.xml b/presto-jdbc/pom.xml index 16e79b7bb77c0..0874168b47043 100644 --- a/presto-jdbc/pom.xml +++ b/presto-jdbc/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-jdbc diff --git a/presto-jmx/pom.xml b/presto-jmx/pom.xml index 8041c7d9d27f9..0f9d281a7e2dd 100644 --- a/presto-jmx/pom.xml +++ b/presto-jmx/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-jmx diff --git a/presto-kafka/pom.xml b/presto-kafka/pom.xml index 4b3483a5c5b9e..d7091f38fd46d 100644 --- a/presto-kafka/pom.xml +++ b/presto-kafka/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-kafka diff --git a/presto-kudu/pom.xml b/presto-kudu/pom.xml index 5d6755ac23f92..20ca847cf4a0a 100644 --- a/presto-kudu/pom.xml +++ b/presto-kudu/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-kudu diff --git a/presto-lark-sheets/pom.xml b/presto-lark-sheets/pom.xml index dfbba4c89f81c..4a9b5f42726cb 100644 --- a/presto-lark-sheets/pom.xml +++ b/presto-lark-sheets/pom.xml @@ -3,7 +3,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-local-file/pom.xml b/presto-local-file/pom.xml index 59a2674e16a9e..e2cfa76dd90e4 100644 --- a/presto-local-file/pom.xml +++ b/presto-local-file/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-local-file diff --git a/presto-main-base/pom.xml b/presto-main-base/pom.xml index a0d05d6c23f02..d6015d585090f 100644 --- a/presto-main-base/pom.xml +++ b/presto-main-base/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-main-base diff --git a/presto-main/pom.xml b/presto-main/pom.xml index 4f1989b31fc75..7ab36a666ddcf 100644 --- a/presto-main/pom.xml +++ b/presto-main/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-main diff --git a/presto-matching/pom.xml b/presto-matching/pom.xml index 623c64487eb7d..46d1641407842 100644 --- a/presto-matching/pom.xml +++ b/presto-matching/pom.xml @@ -18,7 +18,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-matching diff --git a/presto-memory-context/pom.xml b/presto-memory-context/pom.xml index eef59a7ffa24b..c749c5576ff61 100644 --- a/presto-memory-context/pom.xml +++ b/presto-memory-context/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-memory-context diff --git a/presto-memory/pom.xml b/presto-memory/pom.xml index 0bb8a137fc103..0c41b83037579 100644 --- a/presto-memory/pom.xml +++ b/presto-memory/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-memory diff --git a/presto-ml/pom.xml b/presto-ml/pom.xml index 37c6263547a60..8a27c1b2d094b 100644 --- a/presto-ml/pom.xml +++ b/presto-ml/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-ml diff --git a/presto-mongodb/pom.xml b/presto-mongodb/pom.xml index 4d7fbaab9dcfd..e41b9d88f91e5 100644 --- a/presto-mongodb/pom.xml +++ b/presto-mongodb/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-mongodb diff --git a/presto-mysql/pom.xml b/presto-mysql/pom.xml index b1c233059f2a7..3eeff9dc1ee1d 100644 --- a/presto-mysql/pom.xml +++ b/presto-mysql/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-mysql diff --git a/presto-native-execution/pom.xml b/presto-native-execution/pom.xml index cc69d2dd26e9c..9c198484e2b8a 100644 --- a/presto-native-execution/pom.xml +++ b/presto-native-execution/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-native-execution diff --git a/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.cpp b/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.cpp index fdfed953d088c..c8e6cfef182f3 100644 --- a/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.cpp +++ b/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.cpp @@ -504,6 +504,88 @@ void from_json(const json& j, IcebergTableName& p) { } } // namespace facebook::presto::protocol::iceberg namespace facebook::presto::protocol::iceberg { +// Loosly copied this here from NLOHMANN_JSON_SERIALIZE_ENUM() + +// NOLINTNEXTLINE: cppcoreguidelines-avoid-c-arrays +static const std::pair + PartitionTransformType_enum_table[] = + { // NOLINT: cert-err58-cpp + {PartitionTransformType::IDENTITY, "IDENTITY"}, + {PartitionTransformType::YEAR, "YEAR"}, + {PartitionTransformType::MONTH, "MONTH"}, + {PartitionTransformType::DAY, "DAY"}, + {PartitionTransformType::HOUR, "HOUR"}, + {PartitionTransformType::BUCKET, "BUCKET"}, + {PartitionTransformType::TRUNCATE, "TRUNCATE"}}; +void to_json(json& j, const PartitionTransformType& e) { + static_assert( + std::is_enum::value, + "PartitionTransformType must be an enum!"); + const auto* it = std::find_if( + std::begin(PartitionTransformType_enum_table), + std::end(PartitionTransformType_enum_table), + [e](const std::pair& ej_pair) -> bool { + return ej_pair.first == e; + }); + j = ((it != std::end(PartitionTransformType_enum_table)) + ? it + : std::begin(PartitionTransformType_enum_table)) + ->second; +} +void from_json(const json& j, PartitionTransformType& e) { + static_assert( + std::is_enum::value, + "PartitionTransformType must be an enum!"); + const auto* it = std::find_if( + std::begin(PartitionTransformType_enum_table), + std::end(PartitionTransformType_enum_table), + [&j](const std::pair& ej_pair) -> bool { + return ej_pair.second == j; + }); + e = ((it != std::end(PartitionTransformType_enum_table)) + ? it + : std::begin(PartitionTransformType_enum_table)) + ->first; +} +} // namespace facebook::presto::protocol::iceberg +namespace facebook::presto::protocol::iceberg { + +void to_json(json& j, const IcebergPartitionField& p) { + j = json::object(); + to_json_key( + j, "sourceId", p.sourceId, "IcebergPartitionField", "int", "sourceId"); + to_json_key( + j, "fieldId", p.fieldId, "IcebergPartitionField", "int", "fieldId"); + to_json_key( + j, "parameter", p.parameter, "IcebergPartitionField", "int", "parameter"); + to_json_key( + j, + "transform", + p.transform, + "IcebergPartitionField", + "PartitionTransformType", + "transform"); + to_json_key(j, "name", p.name, "IcebergPartitionField", "String", "name"); +} + +void from_json(const json& j, IcebergPartitionField& p) { + from_json_key( + j, "sourceId", p.sourceId, "IcebergPartitionField", "int", "sourceId"); + from_json_key( + j, "fieldId", p.fieldId, "IcebergPartitionField", "int", "fieldId"); + from_json_key( + j, "parameter", p.parameter, "IcebergPartitionField", "int", "parameter"); + from_json_key( + j, + "transform", + p.transform, + "IcebergPartitionField", + "PartitionTransformType", + "transform"); + from_json_key(j, "name", p.name, "IcebergPartitionField", "String", "name"); +} +} // namespace facebook::presto::protocol::iceberg +namespace facebook::presto::protocol::iceberg { void to_json(json& j, const PrestoIcebergNestedField& p) { j = json::object(); @@ -634,7 +716,7 @@ void to_json(json& j, const PrestoIcebergPartitionSpec& p) { "fields", p.fields, "PrestoIcebergPartitionSpec", - "List", + "List", "fields"); } @@ -653,7 +735,7 @@ void from_json(const json& j, PrestoIcebergPartitionSpec& p) { "fields", p.fields, "PrestoIcebergPartitionSpec", - "List", + "List", "fields"); } } // namespace facebook::presto::protocol::iceberg diff --git a/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.h b/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.h index 76193419e26d2..a4048e0f6707c 100644 --- a/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.h +++ b/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.h @@ -129,6 +129,30 @@ void to_json(json& j, const IcebergTableName& p); void from_json(const json& j, IcebergTableName& p); } // namespace facebook::presto::protocol::iceberg namespace facebook::presto::protocol::iceberg { +enum class PartitionTransformType { + IDENTITY, + YEAR, + MONTH, + DAY, + HOUR, + BUCKET, + TRUNCATE +}; +extern void to_json(json& j, const PartitionTransformType& e); +extern void from_json(const json& j, PartitionTransformType& e); +} // namespace facebook::presto::protocol::iceberg +namespace facebook::presto::protocol::iceberg { +struct IcebergPartitionField { + int sourceId = {}; + int fieldId = {}; + std::shared_ptr parameter = {}; + PartitionTransformType transform = {}; + String name = {}; +}; +void to_json(json& j, const IcebergPartitionField& p); +void from_json(const json& j, IcebergPartitionField& p); +} // namespace facebook::presto::protocol::iceberg +namespace facebook::presto::protocol::iceberg { struct PrestoIcebergNestedField { bool optional = {}; int id = {}; @@ -154,7 +178,7 @@ namespace facebook::presto::protocol::iceberg { struct PrestoIcebergPartitionSpec { int specId = {}; PrestoIcebergSchema schema = {}; - List fields = {}; + List fields = {}; }; void to_json(json& j, const PrestoIcebergPartitionSpec& p); void from_json(const json& j, PrestoIcebergPartitionSpec& p); diff --git a/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.yml b/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.yml index 197b713b25ae0..c66f1294de180 100644 --- a/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.yml +++ b/presto-native-execution/presto_cpp/presto_protocol/connector/iceberg/presto_protocol_iceberg.yml @@ -69,6 +69,8 @@ JavaClasses: - presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergInsertTableHandle.java - presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergColumnHandle.java - presto-iceberg/src/main/java/com/facebook/presto/iceberg/ColumnIdentity.java + - presto-iceberg/src/main/java/com/facebook/presto/iceberg/IcebergPartitionField.java + - presto-iceberg/src/main/java/com/facebook/presto/iceberg/PartitionTransformType.java - presto-iceberg/src/main/java/com/facebook/presto/iceberg/PrestoIcebergPartitionSpec.java - presto-iceberg/src/main/java/com/facebook/presto/iceberg/PrestoIcebergNestedField.java - presto-iceberg/src/main/java/com/facebook/presto/iceberg/delete/DeleteFile.java diff --git a/presto-native-sidecar-plugin/pom.xml b/presto-native-sidecar-plugin/pom.xml index 8473f10f08332..284bb52623ce1 100644 --- a/presto-native-sidecar-plugin/pom.xml +++ b/presto-native-sidecar-plugin/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-native-sidecar-plugin @@ -158,7 +158,7 @@ presto-tests test test-jar - 0.294-SNAPSHOT + 0.295-SNAPSHOT @@ -172,7 +172,7 @@ presto-native-execution test test-jar - 0.294-SNAPSHOT + 0.295-SNAPSHOT diff --git a/presto-native-tests/pom.xml b/presto-native-tests/pom.xml index 8304698c4a83d..27843ea4810a5 100644 --- a/presto-native-tests/pom.xml +++ b/presto-native-tests/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-native-tests diff --git a/presto-node-ttl-fetchers/pom.xml b/presto-node-ttl-fetchers/pom.xml index 0d99e3cec2034..718cb207a1223 100644 --- a/presto-node-ttl-fetchers/pom.xml +++ b/presto-node-ttl-fetchers/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-node-ttl-fetchers diff --git a/presto-open-telemetry/pom.xml b/presto-open-telemetry/pom.xml index 73050a87914c8..441020127e2c0 100644 --- a/presto-open-telemetry/pom.xml +++ b/presto-open-telemetry/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-open-telemetry diff --git a/presto-openapi/pom.xml b/presto-openapi/pom.xml index 980e2c3f1c1ab..f98756b3b6cc2 100644 --- a/presto-openapi/pom.xml +++ b/presto-openapi/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-openapi diff --git a/presto-oracle/pom.xml b/presto-oracle/pom.xml index 1ca9195a23158..8b2c897f1fff0 100644 --- a/presto-oracle/pom.xml +++ b/presto-oracle/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-oracle diff --git a/presto-orc/pom.xml b/presto-orc/pom.xml index f096bcb41c567..ead647e3b93f8 100644 --- a/presto-orc/pom.xml +++ b/presto-orc/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-orc diff --git a/presto-parquet/pom.xml b/presto-parquet/pom.xml index fff2a5f761e91..fc1c5beb487cc 100644 --- a/presto-parquet/pom.xml +++ b/presto-parquet/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-parquet diff --git a/presto-parser/pom.xml b/presto-parser/pom.xml index 98723b452ffe6..899b89f64915a 100644 --- a/presto-parser/pom.xml +++ b/presto-parser/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-parser diff --git a/presto-password-authenticators/pom.xml b/presto-password-authenticators/pom.xml index 4ba330776b95d..804c590891211 100644 --- a/presto-password-authenticators/pom.xml +++ b/presto-password-authenticators/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-password-authenticators diff --git a/presto-pinot-toolkit/pom.xml b/presto-pinot-toolkit/pom.xml index 4cc64de9260bb..2b306101e0f81 100644 --- a/presto-pinot-toolkit/pom.xml +++ b/presto-pinot-toolkit/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-pinot-toolkit diff --git a/presto-pinot/pom.xml b/presto-pinot/pom.xml index 774ef37f59f43..1da6659136c18 100644 --- a/presto-pinot/pom.xml +++ b/presto-pinot/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-pinot diff --git a/presto-plan-checker-router-plugin/pom.xml b/presto-plan-checker-router-plugin/pom.xml index 86f4c73ffed24..9ba94e0001038 100644 --- a/presto-plan-checker-router-plugin/pom.xml +++ b/presto-plan-checker-router-plugin/pom.xml @@ -5,12 +5,12 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT com.facebook.presto.router presto-plan-checker-router-plugin - 0.294-SNAPSHOT + 0.295-SNAPSHOT jar presto-plan-checker-router-plugin Presto plan checker router plugin diff --git a/presto-plugin-toolkit/pom.xml b/presto-plugin-toolkit/pom.xml index c37ceb896b904..b3af5b98f01fd 100644 --- a/presto-plugin-toolkit/pom.xml +++ b/presto-plugin-toolkit/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-plugin-toolkit diff --git a/presto-postgresql/pom.xml b/presto-postgresql/pom.xml index 250295c650f6d..e9b4ec55b24aa 100644 --- a/presto-postgresql/pom.xml +++ b/presto-postgresql/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-postgresql diff --git a/presto-product-tests/pom.xml b/presto-product-tests/pom.xml index 92d107619fae2..a9ffa317fda2f 100644 --- a/presto-product-tests/pom.xml +++ b/presto-product-tests/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-product-tests diff --git a/presto-prometheus/pom.xml b/presto-prometheus/pom.xml index 9e27c2489575f..8ce657629669f 100644 --- a/presto-prometheus/pom.xml +++ b/presto-prometheus/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-prometheus diff --git a/presto-proxy/pom.xml b/presto-proxy/pom.xml index 48aed211f6008..71d8b314953cc 100644 --- a/presto-proxy/pom.xml +++ b/presto-proxy/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-proxy diff --git a/presto-rcfile/pom.xml b/presto-rcfile/pom.xml index 6fd7b6894e15a..96da04cb80df1 100644 --- a/presto-rcfile/pom.xml +++ b/presto-rcfile/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-rcfile diff --git a/presto-record-decoder/pom.xml b/presto-record-decoder/pom.xml index 88d018ee5a53c..be1d5d7b477ef 100644 --- a/presto-record-decoder/pom.xml +++ b/presto-record-decoder/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-record-decoder diff --git a/presto-redis/pom.xml b/presto-redis/pom.xml index 7092a63f83736..56bcc3888a03d 100644 --- a/presto-redis/pom.xml +++ b/presto-redis/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-redis diff --git a/presto-redshift/pom.xml b/presto-redshift/pom.xml index 2afcbb4b20eab..c4fd045f9a237 100644 --- a/presto-redshift/pom.xml +++ b/presto-redshift/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-redshift diff --git a/presto-resource-group-managers/pom.xml b/presto-resource-group-managers/pom.xml index a9a4ea1cbf158..7d2e0cb0bb339 100644 --- a/presto-resource-group-managers/pom.xml +++ b/presto-resource-group-managers/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-resource-group-managers diff --git a/presto-router-example-plugin-scheduler/pom.xml b/presto-router-example-plugin-scheduler/pom.xml index 28b2fa3902c5c..3377ca423f854 100644 --- a/presto-router-example-plugin-scheduler/pom.xml +++ b/presto-router-example-plugin-scheduler/pom.xml @@ -5,12 +5,12 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT com.facebook.presto.router presto-router-example-plugin-scheduler - 0.294-SNAPSHOT + 0.295-SNAPSHOT jar presto-router-example-plugin-scheduler Presto-router example custom plugin scheduler diff --git a/presto-router/pom.xml b/presto-router/pom.xml index 55e3c614fc634..dbfa6d1bf179f 100755 --- a/presto-router/pom.xml +++ b/presto-router/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-router diff --git a/presto-server/pom.xml b/presto-server/pom.xml index 0b9822851e903..bc19364baf70d 100644 --- a/presto-server/pom.xml +++ b/presto-server/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-server diff --git a/presto-session-property-managers/pom.xml b/presto-session-property-managers/pom.xml index 8aa3847c0bfe9..c576e99bf6527 100644 --- a/presto-session-property-managers/pom.xml +++ b/presto-session-property-managers/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-session-property-managers diff --git a/presto-singlestore/pom.xml b/presto-singlestore/pom.xml index 7cf58669d9fe0..9bdd431b8ea55 100644 --- a/presto-singlestore/pom.xml +++ b/presto-singlestore/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-singlestore diff --git a/presto-spark-base/pom.xml b/presto-spark-base/pom.xml index f87490571a6d9..f85df42dbc65c 100644 --- a/presto-spark-base/pom.xml +++ b/presto-spark-base/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-spark-classloader-interface/pom.xml b/presto-spark-classloader-interface/pom.xml index eecde0fa81386..a91291f4d1a21 100644 --- a/presto-spark-classloader-interface/pom.xml +++ b/presto-spark-classloader-interface/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-spark-common/pom.xml b/presto-spark-common/pom.xml index a350ec18bbb84..94657e653ec0f 100644 --- a/presto-spark-common/pom.xml +++ b/presto-spark-common/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-spark-common diff --git a/presto-spark-launcher/pom.xml b/presto-spark-launcher/pom.xml index ade39abbac0b1..8d55fece3e680 100644 --- a/presto-spark-launcher/pom.xml +++ b/presto-spark-launcher/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-spark-package/pom.xml b/presto-spark-package/pom.xml index e3fd312cc17a0..4ba3bd2c9c70c 100644 --- a/presto-spark-package/pom.xml +++ b/presto-spark-package/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-spark-package diff --git a/presto-spark-testing/pom.xml b/presto-spark-testing/pom.xml index a4a0a522aadc8..de4db24f6adb2 100644 --- a/presto-spark-testing/pom.xml +++ b/presto-spark-testing/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-spark/pom.xml b/presto-spark/pom.xml index b5fcde4bd9445..ce7af67899b33 100644 --- a/presto-spark/pom.xml +++ b/presto-spark/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-spi/pom.xml b/presto-spi/pom.xml index 3ce1ae4f0a676..694817922ad20 100644 --- a/presto-spi/pom.xml +++ b/presto-spi/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-spi diff --git a/presto-sqlserver/pom.xml b/presto-sqlserver/pom.xml index 411b60c8ae78a..1474457fe9fde 100644 --- a/presto-sqlserver/pom.xml +++ b/presto-sqlserver/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT 4.0.0 diff --git a/presto-teradata-functions/pom.xml b/presto-teradata-functions/pom.xml index 4e1d8417090e4..de602b281cedb 100644 --- a/presto-teradata-functions/pom.xml +++ b/presto-teradata-functions/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-teradata-functions diff --git a/presto-test-coverage/pom.xml b/presto-test-coverage/pom.xml index 4cdbe1fd9c2e8..cd28a2768531a 100644 --- a/presto-test-coverage/pom.xml +++ b/presto-test-coverage/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-test-coverage diff --git a/presto-testing-docker/pom.xml b/presto-testing-docker/pom.xml index 2805590bf864f..07a9f23ec34e1 100644 --- a/presto-testing-docker/pom.xml +++ b/presto-testing-docker/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-testing-docker diff --git a/presto-testing-server-launcher/pom.xml b/presto-testing-server-launcher/pom.xml index e1d311ca29079..46375e02c304a 100644 --- a/presto-testing-server-launcher/pom.xml +++ b/presto-testing-server-launcher/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-testing-server-launcher diff --git a/presto-testng-services/pom.xml b/presto-testng-services/pom.xml index a5c52e7da414e..a2b6c06ebc1ee 100644 --- a/presto-testng-services/pom.xml +++ b/presto-testng-services/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-testng-services diff --git a/presto-tests/pom.xml b/presto-tests/pom.xml index 3877a9654b5b3..531235ff0ebcc 100644 --- a/presto-tests/pom.xml +++ b/presto-tests/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-tests diff --git a/presto-thrift-api/pom.xml b/presto-thrift-api/pom.xml index f1ed911244cf9..7f4010f500721 100644 --- a/presto-thrift-api/pom.xml +++ b/presto-thrift-api/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-thrift-api diff --git a/presto-thrift-connector/pom.xml b/presto-thrift-connector/pom.xml index d0cb107d80e3a..1dd7f23d6485e 100644 --- a/presto-thrift-connector/pom.xml +++ b/presto-thrift-connector/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-thrift-connector diff --git a/presto-thrift-spec/pom.xml b/presto-thrift-spec/pom.xml index dd940450f1433..884507f59a9d6 100644 --- a/presto-thrift-spec/pom.xml +++ b/presto-thrift-spec/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-thrift-spec diff --git a/presto-thrift-testing-server/pom.xml b/presto-thrift-testing-server/pom.xml index a62df0d45dd91..b8c169e8c4bab 100644 --- a/presto-thrift-testing-server/pom.xml +++ b/presto-thrift-testing-server/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-thrift-testing-server diff --git a/presto-thrift-testing-udf-server/pom.xml b/presto-thrift-testing-udf-server/pom.xml index 186c06a7f8b24..115950c2be050 100644 --- a/presto-thrift-testing-udf-server/pom.xml +++ b/presto-thrift-testing-udf-server/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-thrift-testing-udf-server diff --git a/presto-tpcds/pom.xml b/presto-tpcds/pom.xml index 597393e03f8e5..a58b2d6a6f0d1 100644 --- a/presto-tpcds/pom.xml +++ b/presto-tpcds/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-tpcds diff --git a/presto-tpch/pom.xml b/presto-tpch/pom.xml index f7746bfd8c59c..126b987a37fd1 100644 --- a/presto-tpch/pom.xml +++ b/presto-tpch/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-tpch diff --git a/presto-ui/pom.xml b/presto-ui/pom.xml index 0b9349ae0a35f..3f759a7137f31 100644 --- a/presto-ui/pom.xml +++ b/presto-ui/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-ui diff --git a/presto-verifier/pom.xml b/presto-verifier/pom.xml index 4075332ac8910..28d3b592ce10d 100644 --- a/presto-verifier/pom.xml +++ b/presto-verifier/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.294-SNAPSHOT + 0.295-SNAPSHOT presto-verifier diff --git a/redis-hbo-provider/pom.xml b/redis-hbo-provider/pom.xml index 7c5fd34a88b94..451b171b57758 100644 --- a/redis-hbo-provider/pom.xml +++ b/redis-hbo-provider/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.294-SNAPSHOT + 0.295-SNAPSHOT