Skip to content

[CALCITE-6730] Add CONVERT function(enabled in Oracle library) #14374

[CALCITE-6730] Add CONVERT function(enabled in Oracle library)

[CALCITE-6730] Add CONVERT function(enabled in Oracle library) #14374

Workflow file for this run

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to you 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.
# The default workflow for GitHub Actions that is used for continuous
# integration. A configuration file that is used to control when, where,
# and how different CI jobs are executed.
# For more information on how to modify this file check the following link:
# https://help.github.com/en/actions/automating-your-workflow-with-github-actions
name: CI
on:
push:
paths-ignore:
- 'site/**'
branches:
- '*'
pull_request:
types: [opened, synchronize, reopened, labeled]
paths-ignore:
- 'site/**'
branches:
- '*'
concurrency:
# On main/release, we don't want any jobs cancelled so the sha is used to name the group
# On PR branches, we cancel the job if new commits are pushed
# More info: https://stackoverflow.com/a/68422069/253468
group: ${{ (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release' ) && format('ci-main-{0}', github.sha) || format('ci-main-{0}', github.ref) }}
cancel-in-progress: true
# Throw OutOfMemoryError in case less than 35% is free after full GC
# This avoids never-ending GC trashing if memory gets too low in case of a memory leak
env:
_JAVA_OPTIONS: '-XX:GCTimeLimit=90 -XX:GCHeapFreeLimit=35'
DEVELOCITY_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
GUAVA_MIN: '21.0' # oldest supported Guava version
GUAVA_MAX: '33.3.0-jre' # latest supported Guava version
GUAVA: '21.0' # most jobs test against oldest Guava version
jobs:
windows-jdk8:
if: github.event.action != 'labeled'
name: 'Windows (JDK 8)'
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 8'
uses: actions/setup-java@v2
with:
java-version: 8
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon build javadoc
- name: 'sqlline and sqllsh'
shell: cmd
run: |
call sqlline.bat -e '!quit'
echo.
echo Sqlline example/csv
call example/csv/sqlline.bat --verbose -u jdbc:calcite:model=example/csv/src/test/resources/model.json -n admin -p admin -f example/csv/src/test/resources/smoke_test.sql
echo.
echo sqlsh
call sqlsh.bat -o headers "select count(*) commits, author from (select substring(author, 1, position(' <' in author)-1) author from git_commits) group by author order by count(*) desc, author limit 20"
windows-jdk17:
if: github.event.action != 'labeled'
name: 'Windows (JDK 17)'
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 17'
uses: actions/setup-java@v2
with:
java-version: 17
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon build
- name: 'sqlline and sqllsh'
shell: cmd
run: |
call sqlline.bat -e '!quit'
echo.
echo Sqlline example/csv
call example/csv/sqlline.bat --verbose -u jdbc:calcite:model=example/csv/src/test/resources/model.json -n admin -p admin -f example/csv/src/test/resources/smoke_test.sql
echo.
echo sqlsh
call sqlsh.bat -o headers "select count(*) commits, author from (select substring(author, 1, position(' <' in author)-1) author from git_commits) group by author order by count(*) desc, author limit 20"
windows-jdk21:
if: github.event.action != 'labeled'
name: 'Windows (JDK 21)'
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 21'
uses: actions/setup-java@v2
with:
java-version: 21
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon build
- name: 'sqlline and sqllsh'
shell: cmd
run: |
call sqlline.bat -e '!quit'
echo.
echo Sqlline example/csv
call example/csv/sqlline.bat --verbose -u jdbc:calcite:model=example/csv/src/test/resources/model.json -n admin -p admin -f example/csv/src/test/resources/smoke_test.sql
echo.
echo sqlsh
call sqlsh.bat -o headers "select count(*) commits, author from (select substring(author, 1, position(' <' in author)-1) author from git_commits) group by author order by count(*) desc, author limit 20"
linux-jdk8-oldest-guava-tz:
if: github.event.action != 'labeled'
name: 'Linux (JDK 8, oldest Guava, America/New_York Timezone)'
runs-on: ubuntu-latest
env:
TZ: 'America/New_York' # flips between −05:00 and −04:00
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 8'
uses: actions/setup-java@v2
with:
java-version: 8
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon -Pguava.version=${{ env.GUAVA_MIN }} build
linux-jdk8-latest-guava-tz:
if: github.event.action != 'labeled'
name: 'Linux (JDK 8, latest Guava, America/New_York Timezone)'
runs-on: ubuntu-latest
env:
TZ: 'America/New_York' # flips between −05:00 and −04:00
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 8'
uses: actions/setup-java@v2
with:
java-version: 8
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon -Pguava.version=${{ env.GUAVA_MAX }} tasks build
linux-jdk11-tz:
if: github.event.action != 'labeled'
name: 'Linux (JDK 11, Pacific/Chatham Timezone)'
runs-on: ubuntu-latest
env:
TZ: 'Pacific/Chatham' # flips between +12:45 and +13:45
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 11'
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon build
linux-jdk17: # LTS JDK version, don't remove until EOL
if: github.event.action != 'labeled'
name: 'Linux (JDK 17)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 17'
uses: actions/setup-java@v2
with:
java-version: 17
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon -Pguava.version=${{ env.GUAVA }} build
linux-jdk121: # LTS JDK version, don't remove until EOL
if: github.event.action != 'labeled'
name: 'Linux (JDK 21)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 21'
uses: actions/setup-java@v2
with:
java-version: 21
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon -Pguava.version=${{ env.GUAVA }} build
linux-jdk23: # latest JDK version supported by ForbiddenAPIs plugin, keep this updated (see https://jdk.java.net/)
if: github.event.action != 'labeled'
name: 'Linux (JDK 23)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 23'
uses: actions/setup-java@v2
with:
java-version: 23
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon -Pguava.version=${{ env.GUAVA }} tasks build
linux-avatica:
if: github.event.action != 'labeled'
name: 'Linux (JDK 11, Avatica main)'
runs-on: ubuntu-latest
steps:
- name: 'Set up JDK 11'
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'zulu'
- name: 'Clone Avatica to Maven Local repository'
run: |
git clone --branch main --depth 100 https://github.com/apache/calcite-avatica.git ../calcite-avatica
- uses: burrunan/gradle-cache-action@v1
name: Build Avatica
with:
job-id: avatica-jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
build-root-directory: ../calcite-avatica
arguments: publishToMavenLocal
properties: |
calcite.avatica.version=1.0.0-dev-main
skipJavadoc=
- uses: actions/checkout@v3
with:
fetch-depth: 50
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk${{ matrix.jdk }}
remote-build-cache-proxy-enabled: false
execution-only-caches: true
arguments: --scan --no-parallel --no-daemon build javadoc
properties: |
calcite.avatica.version=1.0.0-dev-main-SNAPSHOT
enableMavenLocal=
mac:
if: github.event.action != 'labeled'
name: 'macOS (JDK 21)'
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 21'
uses: actions/setup-java@v2
with:
java-version: 21
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk21
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon build javadoc
- name: 'sqlline and sqllsh'
run: |
./sqlline -e '!quit'
echo
echo Sqlline example/csv
./example/csv/sqlline --verbose -u jdbc:calcite:model=example/csv/src/test/resources/model.json -n admin -p admin -f example/csv/src/test/resources/smoke_test.sql
echo
echo sqlsh
./sqlsh -o headers "select count(*) commits, author from (select substring(author, 1, position(' <' in author)-1) author from git_commits) group by author order by count(*) desc, author limit 20"
errorprone-guava-latest:
if: github.event.action != 'labeled'
name: 'ErrorProne (JDK 11, latest Guava)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 11'
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: errprone
remote-build-cache-proxy-enabled: false
# ErrorProne checks for Beta APIs, so use the latest supported Guava version
arguments: --scan --no-parallel --no-daemon -Pguava.version=${{ env.GUAVA_MAX }} -PenableErrorprone classes
linux-checkerframework:
name: 'CheckerFramework (JDK 11)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 11'
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'zulu'
- name: 'Run CheckerFramework'
uses: burrunan/gradle-cache-action@v1
with:
job-id: checkerframework-jdk11
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon -PenableCheckerframework :linq4j:classes :core:classes :server:classes
linux-checkerframework-oldest-guava:
name: 'CheckerFramework (JDK 11, oldest Guava)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 11'
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'zulu'
- name: 'Run CheckerFramework'
uses: burrunan/gradle-cache-action@v1
with:
job-id: checkerframework-jdk11
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon -Pguava.version=${{ env.GUAVA_MIN }} -PenableCheckerframework :linq4j:classes :core:classes :server:classes
linux-slow:
# Run slow tests when the commit is on main or it is requested explicitly by adding an
# appropriate label in the PR
if: github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'slow-tests-needed')
name: 'Linux (JDK 8) Slow Tests'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: 'Set up JDK 8'
uses: actions/setup-java@v2
with:
java-version: 8
distribution: 'zulu'
- uses: burrunan/gradle-cache-action@v1
name: Test
with:
job-id: jdk8
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon testSlow
linux-druid:
if: github.event.action != 'labeled'
name: 'Druid Tests'
runs-on: ubuntu-latest
steps:
- name: 'Set up JDK 17'
uses: actions/setup-java@v2
with:
java-version: 17
distribution: 'zulu'
- name: 'Checkout Druid dataset'
uses: actions/checkout@v3
with:
repository: zabetak/calcite-druid-dataset
fetch-depth: 1
path: druid-dataset
- name: 'Start Druid containers'
working-directory: ./druid-dataset
run: |
chmod -R 777 storage
docker compose up -d
- name: 'Wait Druid nodes to startup'
run: |
until docker logs coordinator | grep "Successfully started lifecycle \[module\]"; do sleep 1s; done
until docker logs router | grep "Successfully started lifecycle \[module\]"; do sleep 1s; done
until docker logs historical | grep "Successfully started lifecycle \[module\]"; do sleep 1s; done
until docker logs middlemanager | grep "Successfully started lifecycle \[module\]"; do sleep 1s; done
until docker logs broker | grep "Successfully started lifecycle \[module\]"; do sleep 1s; done
- name: 'Index Foodmart/Wikipedia datasets'
working-directory: ./druid-dataset
run: ./index.sh 30s
- uses: actions/checkout@v3
with:
fetch-depth: 1
path: calcite
- uses: burrunan/gradle-cache-action@v1
name: 'Run Druid tests'
timeout-minutes: 10
with:
build-root-directory: ./calcite
job-id: Druid8
remote-build-cache-proxy-enabled: false
arguments: --scan --no-parallel --no-daemon :druid:test -Dcalcite.test.druid=true