perf: avoid arrow IPC & unneeded steps when flushing delta #77
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Compatibility Test for Clients | |
on: | |
push: | |
branches: | |
- main | |
- compatibility | |
- test | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
test-mysql: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.23' | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '16' | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Install system packages | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: bats cpanminus libmysqlclient-dev dotnet-sdk-8.0 dotnet-runtime-8.0 php-mysql r-base-core | |
version: 1.0 | |
- name: Install dependencies | |
run: | | |
go get . | |
pip3 install "sqlglot[rs]" | |
curl -LJO https://github.com/duckdb/duckdb/releases/download/v1.1.3/duckdb_cli-linux-amd64.zip | |
unzip duckdb_cli-linux-amd64.zip | |
chmod +x duckdb | |
sudo mv duckdb /usr/local/bin | |
cd compatibility/mysql/ | |
curl -L -o ./java/mysql-connector-java-8.0.30.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar | |
npm install mysql | |
sudo cpanm --notest DBD::mysql | |
pip3 install mysql-connector-python | |
sudo R -e "install.packages('RMySQL', repos='http://cran.r-project.org')" | |
sudo gem install mysql2 | |
- name: Build | |
run: go build -v | |
- name: Start MyDuck Server | |
run: | | |
./myduckserver & | |
sleep 5 | |
- name: Run the Compatibility Test for MySQL Client | |
run: | | |
bats ./compatibility/mysql/test.bats | |
test-postgresql: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.23' | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '16' | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Install system packages | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: bats cpanminus libpq-dev postgresql-client dotnet-sdk-8.0 dotnet-runtime-8.0 r-base-core r-cran-rpostgresql | |
version: 1.0 | |
- name: Install dependencies | |
run: | | |
go get . | |
pip3 install "sqlglot[rs]" | |
curl -LJO https://github.com/duckdb/duckdb/releases/download/v1.1.3/duckdb_cli-linux-amd64.zip | |
unzip duckdb_cli-linux-amd64.zip | |
chmod +x duckdb | |
sudo mv duckdb /usr/local/bin | |
cd compatibility/pg/ | |
# curl -L -o ./java/postgresql-42.7.4.jar https://jdbc.postgresql.org/download/postgresql-42.7.4.jar | |
npm install pg | |
sudo cpanm --notest DBD::Pg | |
pip3 install psycopg pandas pyarrow polars | |
# sudo R -e "install.packages('RPostgres', repos='http://cran.r-project.org')" | |
sudo gem install pg | |
- name: Build | |
run: go build -v | |
- name: Start MyDuck Server | |
run: | | |
./myduckserver & | |
sleep 5 | |
- name: Run the Compatibility Test for PostgreSQL Client | |
run: | | |
bats ./compatibility/pg/test.bats | |
- name: Run the Compatibility Test for Python Data Tools | |
run: | | |
bats ./compatibility/pg-pytools/test.bats |