Skip to content

ORC-1767: [C++] Improve writing performance of encoded string column and support EncodedStringVectorBatch for StringColumnWriter #4193

ORC-1767: [C++] Improve writing performance of encoded string column and support EncodedStringVectorBatch for StringColumnWriter

ORC-1767: [C++] Improve writing performance of encoded string column and support EncodedStringVectorBatch for StringColumnWriter #4193

Workflow file for this run

name: Build and test
on:
push:
paths-ignore:
- 'site/**'
- 'conan/**'
branches:
- main
pull_request:
paths-ignore:
- 'site/**'
- 'conan/**'
branches:
- main
# Cancel previous PR build and test
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.number || github.sha }}
cancel-in-progress: true
jobs:
docker:
name: "Docker ${{ matrix.os }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os:
- debian11
- debian12
- ubuntu24
- fedora37
- oraclelinux9
steps:
- name: Checkout
uses: actions/checkout@v2
- name: "Test"
run: |
cd docker
./run-one.sh local main ${{ matrix.os }}
build:
name: "Java ${{ matrix.java }} and ${{ matrix.cxx }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-24.04
- macos-12
- macos-13
- macos-14
java:
- 17
- 21
cxx:
- clang++
include:
- os: ubuntu-22.04
java: 17
cxx: g++
env:
MAVEN_OPTS: -Xmx2g
MAVEN_SKIP_RC: true
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Java ${{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: ${{ matrix.java }}
cache: 'maven'
- name: "Test"
run: |
mkdir -p ~/.m2
mkdir build
cd build
cmake -DANALYZE_JAVA=ON -DOPENSSL_ROOT_DIR=`brew --prefix [email protected]` ..
make package test-out
- name: Step on failure
if: ${{ failure() }}
run: |
cat /home/runner/work/orc/orc/build/java/rat.txt
windows:
name: "C++ ${{ matrix.simd }} Test on Windows"
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
simd:
- General
- AVX512
env:
ORC_USER_SIMD_LEVEL: AVX512
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Add msbuild to PATH
uses: microsoft/[email protected]
with:
msbuild-architecture: x64
- name: "Test"
shell: bash
run: |
mkdir build
cd build
if [ "${{ matrix.simd }}" = "General" ]; then
cmake .. -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Debug -DBUILD_LIBHDFSPP=OFF -DBUILD_TOOLS=OFF -DBUILD_JAVA=OFF
else
cmake .. -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Debug -DBUILD_LIBHDFSPP=OFF -DBUILD_TOOLS=OFF -DBUILD_JAVA=OFF -DBUILD_ENABLE_AVX512=ON
fi
cmake --build . --config Debug
ctest -C Debug --output-on-failure
simdUbuntu:
name: "SIMD programming using C++ intrinsic functions on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
cxx:
- clang++
env:
ORC_USER_SIMD_LEVEL: AVX512
steps:
- name: Checkout
uses: actions/checkout@v2
- name: "Test"
run: |
mkdir -p ~/.m2
mkdir build
cd build
cmake -DBUILD_JAVA=OFF -DBUILD_ENABLE_AVX512=ON ..
make package test-out
doc:
name: "Javadoc generation"
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Java 17
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
cache: 'maven'
- name: "javadoc"
run: |
mkdir -p ~/.m2
cd java
./mvnw install -DskipTests
./mvnw javadoc:javadoc
formatting-check:
name: "C++ format check"
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run build
run: |
mkdir build
cd build
cmake .. -DBUILD_JAVA=OFF -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DSTOP_BUILD_ON_WARNING=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DBUILD_CPP_ENABLE_METRICS=1
make
- name: Check clang-tidy
run: cd build && make check-clang-tidy
- name: Check clang-format
run: cd build && make check-format
license-check:
name: "License Check"
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Check license header
uses: apache/skywalking-eyes@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
config: .github/.licenserc.yaml
macos-cpp-check:
name: "C++ Test on macOS"
strategy:
fail-fast: false
matrix:
version: [12, 13, 14]
runs-on: macos-${{ matrix.version }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
brew update
brew install protobuf
- name: Test
run: |
CMAKE_PREFIX_PATH=$(brew --prefix protobuf)
mkdir -p build
cd build
cmake .. -DBUILD_JAVA=OFF -DPROTOBUF_HOME=${CMAKE_PREFIX_PATH}
make package test-out