Skip to content

Commit de96771

Browse files
authored
GEOMESA-3591 Add Trino support (#3573)
* Add a Trino-based datastore with custom Trino connector plugin supporting spatial queries with Z2/XZ2-pruning
1 parent 1cee4f5 commit de96771

84 files changed

Lines changed: 14644 additions & 20 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/assembly.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ permissions: # added using https://github.com/step-security/secure-repo
1414

1515
env:
1616
JAVA_VERSION: 17
17+
TRINO_JAVA_VERSION: 25
1718
MAVEN_CLI_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false --batch-mode -Dlicense.skip=true
1819
MAVEN_COMPILE_NO_OP_ARGS: clean install -Dmaven.test.skip -Dmaven.assembly.skip=true -Dmaven.source.skip -Pskip-spark-runtimes -Dmaven.main.skip
1920
MAVEN_ASSEMBLY_ARGS: assembly:single@make-assembly -Dassembly.ignoreMissingDescriptor=true
@@ -31,7 +32,9 @@ jobs:
3132
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
3233
with:
3334
distribution: temurin
34-
java-version: "${{ env.JAVA_VERSION }}"
35+
java-version: |
36+
${{ env.TRINO_JAVA_VERSION }}
37+
${{ env.JAVA_VERSION }}
3538
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
3639
with:
3740
key: ${{ hashFiles('**/pom.xml') }}-assembly-${{ matrix.scala-version }}

.github/workflows/build-and-test.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ permissions: # added using https://github.com/step-security/secure-repo
1414

1515
env:
1616
JAVA_VERSION: 17
17+
TRINO_JAVA_VERSION: 25
1718
MAVEN_CLI_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false --batch-mode -Dlicense.skip=true
1819
MAVEN_COMPILE_ARGS: clean install -Dmaven.test.skip -Dmaven.assembly.skip=true -Dmaven.source.skip -Pskip-spark-runtimes
1920
MAVEN_TEST_ARGS: test -Dmaven.main.skip
@@ -73,12 +74,16 @@ jobs:
7374
list: geomesa-spark/geomesa_pyspark,geomesa-spark/geomesa-spark-converter,geomesa-spark/geomesa-spark-core,geomesa-spark/geomesa-spark-jts,geomesa-spark/geomesa-spark-jupyter-leaflet,geomesa-spark/geomesa-spark-sql,geomesa-spark/geomesa-spark-test-with-sedona
7475
- name: utils
7576
list: geomesa-utils-parent/geomesa-bom,geomesa-utils-parent/geomesa-hadoop-utils,geomesa-utils-parent/geomesa-utils
77+
- name: trino
78+
list: geomesa-trino/geomesa-trino-plugin,geomesa-trino/geomesa-trino-datastore
7679
steps:
7780
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
7881
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
7982
with:
8083
distribution: temurin
81-
java-version: "${{ env.JAVA_VERSION }}"
84+
java-version: |
85+
${{ matrix.projects.name == 'trino' && env.TRINO_JAVA_VERSION || env.JAVA_VERSION }}
86+
${{ env.JAVA_VERSION }}
8287
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
8388
with:
8489
key: ${{ hashFiles('**/pom.xml') }}-build-${{ matrix.scala-version }}-${{ matrix.projects.name }}

.github/workflows/build-release.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ permissions: # added using https://github.com/step-security/secure-repo
88

99
env:
1010
JAVA_VERSION: 17
11+
TRINO_JAVA_VERSION: 25
1112
MAVEN_CLI_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false --batch-mode -Dlicense.skip=true
1213
MAVEN_RELEASE_ARGS: clean deploy -Prelease,docs,python -Dmaven.test.skip -Daether.checksums.algorithms=MD5,SHA-1,SHA-256
1314
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -44,7 +45,9 @@ jobs:
4445
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
4546
with:
4647
distribution: temurin
47-
java-version: "${{ env.JAVA_VERSION }}"
48+
java-version: |
49+
${{ env.TRINO_JAVA_VERSION }}
50+
${{ env.JAVA_VERSION }}
4851
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 #v6.2.0
4952
with:
5053
python-version: "3.10"

.github/workflows/dash.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ permissions: # added using https://github.com/step-security/secure-repo
1111

1212
env:
1313
JAVA_VERSION: 17
14+
TRINO_JAVA_VERSION: 25
1415
MAVEN_CLI_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false --batch-mode -Dlicense.skip=true
1516
MAVEN_COMPILE_NO_OP_ARGS: clean install -Dmaven.test.skip -Dmaven.assembly.skip=true -Dmaven.source.skip -Pskip-spark-runtimes -Dmaven.main.skip
1617
MAVEN_DASH_ARGS: org.eclipse.dash:license-tool-plugin:license-check -Ddash.fail=true -Ddash.projectId=locationtech.geomesa -DexcludeGroupIds=org.locationtech.geomesa
@@ -24,7 +25,9 @@ jobs:
2425
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
2526
with:
2627
distribution: temurin
27-
java-version: "${{ env.JAVA_VERSION }}"
28+
java-version: |
29+
${{ env.TRINO_JAVA_VERSION }}
30+
${{ env.JAVA_VERSION }}
2831
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
2932
with:
3033
key: ${{ hashFiles('**/pom.xml') }}-dash

.github/workflows/eclipse-snapshots.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ permissions: # added using https://github.com/step-security/secure-repo
1111

1212
env:
1313
JAVA_VERSION: 17
14+
TRINO_JAVA_VERSION: 25
1415
MAVEN_CLI_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false --batch-mode
1516

1617
jobs:
@@ -26,7 +27,9 @@ jobs:
2627
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
2728
with:
2829
distribution: temurin
29-
java-version: "${{ env.JAVA_VERSION }}"
30+
java-version: |
31+
${{ env.TRINO_JAVA_VERSION }}
32+
${{ env.JAVA_VERSION }}
3033
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
3134
with:
3235
key: ${{ hashFiles('**/pom.xml') }}-eclipse-snapshots-${{ matrix.version }}

.github/workflows/javadocs.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ permissions: # added using https://github.com/step-security/secure-repo
1010

1111
env:
1212
JAVA_VERSION: 17
13+
TRINO_JAVA_VERSION: 25
1314
MAVEN_CLI_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false --batch-mode -Dlicense.skip=true
1415
MAVEN_COMPILE_ARGS: clean install -Dmaven.test.skip -Dmaven.assembly.skip=true -Dmaven.source.skip -Pskip-spark-runtimes
1516
MAVEN_SCALADOC_ARGS: generate-sources scala:doc-jar javadoc:jar -Psite
@@ -56,12 +57,17 @@ jobs:
5657
list: geomesa-spark/geomesa_pyspark,geomesa-spark/geomesa-spark-converter,geomesa-spark/geomesa-spark-core,geomesa-spark/geomesa-spark-jts,geomesa-spark/geomesa-spark-jupyter-leaflet,geomesa-spark/geomesa-spark-sql,geomesa-spark/geomesa-spark-test-with-sedona
5758
- name: utils
5859
list: geomesa-utils-parent/geomesa-bom,geomesa-utils-parent/geomesa-hadoop-utils,geomesa-utils-parent/geomesa-utils
60+
- name: trino
61+
list: geomesa-trino/geomesa-trino-plugin,geomesa-trino/geomesa-trino-datastore
62+
scaladoc: "false"
5963
steps:
6064
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
6165
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
6266
with:
6367
distribution: temurin
64-
java-version: "${{ env.JAVA_VERSION }}"
68+
java-version: |
69+
${{ matrix.projects.name == 'trino' && env.TRINO_JAVA_VERSION || env.JAVA_VERSION }}
70+
${{ env.JAVA_VERSION }}
6571
- name: Generate cache key
6672
run: echo "MOD_SELECTOR=$(echo '${{ matrix.projects.list }}' | sed 's/[^a-zA-Z0-9_.-]/-/g' | head -c 256)" >> "$GITHUB_ENV"
6773
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
@@ -88,9 +94,10 @@ jobs:
8894
exit 1
8995
fi
9096
- name: Build scaladocs
97+
if: ${{ matrix.projects.scaladoc != 'false' }}
9198
run: mvn $MAVEN_SCALADOC_ARGS $MAVEN_CLI_OPTS -pl ${{ matrix.projects.list }}
9299
- name: Build javadocs
93-
run: mvn $MAVEN_JAVADOC_ARGS $MAVEN_CLI_OPTS -pl geomesa-arrow/geomesa-arrow-jts
100+
run: mvn $MAVEN_JAVADOC_ARGS $MAVEN_CLI_OPTS -pl ${{ matrix.projects.scaladoc == 'false' && matrix.projects.list || 'geomesa-arrow/geomesa-arrow-jts' }}
94101
- name: Remove geomesa artifacts
95102
if: success() || failure()
96103
run: rm -rf ~/.m2/repository/org/locationtech/geomesa

.github/workflows/tag-release.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ permissions:
1717

1818
env:
1919
JAVA_VERSION: 17
20+
TRINO_JAVA_VERSION: 25
2021
MAVEN_CLI_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false --batch-mode -Dlicense.skip=true
2122
MAVEN_PREPARE_ARGS: release:prepare -DdryRun=true -DautoVersionSubmodules=true
2223
MAVEN_BUILD_ARGS: -Dmaven.test.skip -Dmaven.assembly.skip=true -Dmaven.source.skip -Pskip-spark-runtimes -Dmaven.main.skip -Dmaven.javadoc.skip=true
@@ -36,7 +37,9 @@ jobs:
3637
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
3738
with:
3839
distribution: temurin
39-
java-version: "${{ env.JAVA_VERSION }}"
40+
java-version: |
41+
${{ env.TRINO_JAVA_VERSION }}
42+
${{ env.JAVA_VERSION }}
4043
- name: Run release plugin
4144
run: |
4245
# use the maven release plugin to prep the pom changes but use dryRun to skip commit and tag

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,15 @@ git clone git@github.com:locationtech/geomesa.git
189189
cd geomesa
190190
```
191191

192-
The project is built using Maven. To build, run:
192+
The project is built using Maven, with Maven Toolchains to manage various target JVM version requirements.
193+
Current required JDKs: 17, 25
194+
195+
A script has been provided to create/update the toolchains configuration to support these requirements:
196+
```bash
197+
./build/scripts/update-maven-toolchains.sh
198+
```
199+
200+
To build, run:
193201

194202
```bash
195203
mvn clean install -Dmaven.test.skip

0 commit comments

Comments
 (0)