Skip to content
Open
Show file tree
Hide file tree
Changes from 195 commits
Commits
Show all changes
199 commits
Select commit Hold shift + click to select a range
2bd1e59
update datafusion-federation dependency (#84)
hozan23 Sep 6, 2024
5ecb121
Add license and description to Cargo.toml
phillipleblanc Sep 6, 2024
58531df
use datafusion::Unparser for converting datafusion Expr to SQL (#99)
hozan23 Sep 15, 2024
2c2ad24
[flight] Coerce flight data into target schema if needed
ccciudatu Sep 15, 2024
5bbbb32
use quote style for column and table names based on the sql dialect (…
hozan23 Sep 16, 2024
60cf8ae
Add feature flag to disable postgres federation
Sevenannn Sep 6, 2024
51096f4
Only disable federation for tableproviderfactory
Sevenannn Sep 6, 2024
28d2409
DuckDB streaming (#41)
y-f-u Sep 4, 2024
df09d7f
fix: Disable federation in memory mode databases (#86)
peasee Sep 6, 2024
b5faa36
SQLite: Validate expected indexes when attaching local datasets (#88)
sgrebnov Sep 7, 2024
ba76625
SQLite: Validate expected primary keys when attaching local datasets …
sgrebnov Sep 9, 2024
dc9223e
Change to use Spice AI fork of sea_query for SQLite decimal support (…
phillipleblanc Sep 9, 2024
f0e8467
fix: Don't silence blocking task errors (#91)
peasee Sep 10, 2024
996cef0
fix: Re-attach databases on each DuckDB query (#92)
peasee Sep 10, 2024
9cb103c
Correctly handle mysql timestamp() and datetime() types (#96)
Sevenannn Sep 14, 2024
7017b03
Postgres enum support (#100)
Sevenannn Sep 15, 2024
1bd4ed3
Fix SQLite Invalid column type Real bug (#98)
sgrebnov Sep 15, 2024
2a92a77
Prevent SQLite from writing incomplete data on errors (#101)
sgrebnov Sep 15, 2024
a5d60a6
cargo fmt
hozan23 Sep 19, 2024
4d0b67b
minor fix to the integration postgres test
hozan23 Sep 19, 2024
6e33170
use the latest version of sea-query crate
hozan23 Sep 19, 2024
21b42b9
DuckDBTableProviderFactory keeps track of opened instances (#105)
phillipleblanc Sep 16, 2024
2acb5c7
Ignore CHECKPOINT errors (#107)
phillipleblanc Sep 16, 2024
afcddc8
Don't attempt to CHECKPOINT after writing to DuckDB (#108)
phillipleblanc Sep 16, 2024
311c8b5
SqliteTableProviderFactory keeps track of opened instances (#109)
phillipleblanc Sep 17, 2024
a989de0
Support all time() types in MySQL (#97)
Sevenannn Sep 18, 2024
c4b6c70
Upgrade to Arrow 53, DataFusion 42 and DuckDB 1.1 (#111)
phillipleblanc Sep 19, 2024
a0492fc
Handle inconsistent scale in Postgres Numeric Type data (#110)
Sevenannn Sep 19, 2024
d71e9d9
Verify MySQL parameters and connections before creating connection po…
Sevenannn Sep 20, 2024
fc710fa
minor fix: upgrade datafusion to 42
hozan23 Sep 24, 2024
aacc461
Update dependencies (#129)
ccciudatu Oct 9, 2024
55cfc67
Bump version to 0.2.0
phillipleblanc Oct 10, 2024
496487e
Propagate MySQL wrong table error (#114)
Sevenannn Sep 24, 2024
fb7376e
Fix MySQL timestamp type (#116)
Sevenannn Sep 25, 2024
a397212
Postgres should respect target decimal precision and scale (#120)
sgrebnov Sep 26, 2024
83a5295
Update row -> arrow conversion for all MYSQL_TYPE_VAR_STRING and MYSQ…
Sevenannn Sep 26, 2024
d4e0bd2
Use Decimal256 instead of Decimal128 for MySQL decimal type (#115)
Sevenannn Sep 26, 2024
1b5af50
Fix mysql blob & text types (#117)
Sevenannn Sep 28, 2024
5e6f163
Add sqlite_busytimeout parameter as user configurable param (#121)
Sevenannn Sep 30, 2024
d3a37bd
Use arrow dictionary type for mysql enum type (#119)
Sevenannn Sep 30, 2024
7595f8c
Remove prefix for sqlite busy timeout param (#123)
Sevenannn Sep 30, 2024
e6717ec
Support parsing sqlite busy_timeout durations with units (#124)
Sevenannn Sep 30, 2024
a6b1446
Support retries when writing data to SQLite (#125)
sgrebnov Oct 2, 2024
409b6af
Implement write retry for DuckDB (#128)
Sevenannn Oct 2, 2024
ee073c7
Preserve records batch order (update datafusion-federation) (#130)
sgrebnov Oct 9, 2024
441510c
cargo fmt
hozan23 Oct 11, 2024
2cf7ade
update duckdb version to 1.1.1
hozan23 Oct 11, 2024
9332074
Merge branch 'main' into rebase-spiceai-main-branches
hozan23 Oct 11, 2024
8f2a63f
Merge pull request #112 from hozan23/rebase-spiceai-main-branches
phillipleblanc Oct 11, 2024
0397fed
Bump version to 0.2.1
phillipleblanc Oct 11, 2024
dc793b1
use datafusion plan_to_sql function instead of expr_to_sql (#106)
hozan23 Oct 11, 2024
cf95309
update version to 0.2.2
phillipleblanc Oct 11, 2024
ce93f2c
Add note on federation in the README (#132)
phillipleblanc Oct 12, 2024
9e28cf4
Create dependabot.yml (#135)
lukekim Oct 19, 2024
a7aa648
[flight] Customizable gRPC message size limits with unbounded defaults
ccciudatu Oct 16, 2024
ccbf17d
[flight] Enable TLS for tonic 0.12
ccciudatu Oct 16, 2024
e9a53cf
fix tests
ccciudatu Oct 16, 2024
3a21ab7
make the datafusion-federation dependency optional (#145)
ccciudatu Oct 19, 2024
53182e0
[flight] make the enforce_schema function public (#147)
ccciudatu Oct 20, 2024
8366e72
With latest datafusion, TableProviders must be Debug (#146)
ccciudatu Oct 20, 2024
4fd6046
[cosmetic] use the arrow Result type alias
ccciudatu Oct 21, 2024
8dbaca9
[build] Add PR validation for flight
ccciudatu Oct 21, 2024
f7887a9
cargo fmt
ccciudatu Oct 21, 2024
8a3b7d0
bump version to 0.2.3
phillipleblanc Oct 23, 2024
125c00d
Update geozero requirement from 0.13.0 to 0.14.0 (#140)
dependabot[bot] Oct 23, 2024
63cdcfa
Update bollard requirement from 0.16.1 to 0.17.1 (#142)
dependabot[bot] Oct 23, 2024
2693633
tests: Ensure all tests run on PRs, try to fix flaky DuckDB test (#150)
peasee Oct 23, 2024
a9e1469
Implement native schema inference for PostgreSQL (#151) (#153)
phillipleblanc Oct 25, 2024
4635e79
[flight] Enhanced customizability (#168)
ccciudatu Nov 13, 2024
3920c32
Add DB CatalogProvider (#175)
holicc Nov 20, 2024
ac822bd
Update rstest requirement from 0.22.0 to 0.23.0 (#156)
dependabot[bot] Nov 21, 2024
9865b42
Upgrade dafafusion to 43.0.0 (#176)
holicc Nov 21, 2024
8dbae51
Remove a flaky test case. (#178)
holicc Nov 21, 2024
72e8e58
Free up disk space for integration test (#179)
phillipleblanc Nov 22, 2024
86cd13c
feat: preliminary support odbc (#177)
xhwhis Nov 22, 2024
6e42290
Add MySQL write support (#134)
gengteng Nov 25, 2024
00a2af6
add ODBC usage to README & simplify dependency management (#189)
xhwhis Dec 4, 2024
f392b09
feat: support oid & name type for postgres (#204)
xhwhis Dec 24, 2024
0375432
feat: add some types from pg_catalog (#216)
xhwhis Jan 8, 2025
aae31d2
Fix MySQL docker image for PR tests (#225)
phillipleblanc Jan 14, 2025
e7838c3
chore: upgrade datafusion and and some other crates (#219)
xhwhis Jan 14, 2025
5d6ca44
bump to 0.2.4
phillipleblanc Jan 14, 2025
927e654
fix: Use chrono >= 0.4.34, < 0.4.40 to avoid build error (#249)
sgrebnov Mar 10, 2025
54a9d61
Upgrade datafusion to version 45 (#247)
nuno-faria Mar 11, 2025
f2072b4
Add bundled feature to SQLite (#246)
nuno-faria Mar 11, 2025
4ce0a1e
Check in Cargo.lock (#253)
phillipleblanc Mar 11, 2025
780e719
Update arrow-odbc requirement from =14.0.1 to =15.1.1 (#250)
dependabot[bot] Mar 11, 2025
238e655
Update rand requirement from 0.8 to 0.9 (#230)
dependabot[bot] Mar 11, 2025
c103906
Merge branch 'spiceai' into phillip/250312-merge-spiceai-changes
phillipleblanc Mar 12, 2025
c11684a
cargo lock
phillipleblanc Mar 12, 2025
424ee5c
fix merge
phillipleblanc Mar 12, 2025
2be1aec
compiling
phillipleblanc Mar 12, 2025
6170261
Fix lint and test issues
phillipleblanc Mar 12, 2025
ad14a5d
Fix unit tests
phillipleblanc Mar 12, 2025
7bbdb22
Fix integration tests
phillipleblanc Mar 12, 2025
dbcff60
Merge spiceai changes from the past 6 months (#255)
phillipleblanc Mar 12, 2025
354d679
Prepare for 0.3.0
phillipleblanc Mar 12, 2025
e36daba
Upgrade secrecy crate (#256)
phillipleblanc Mar 12, 2025
72b58f0
Upgrade Duckdb to 1.2.1 (#257)
phillipleblanc Mar 12, 2025
96e551a
Bump tokio from 1.44.0 to 1.44.1 (#270)
dependabot[bot] Mar 18, 2025
c5642ba
Bump async-trait from 0.1.87 to 0.1.88 (#269)
dependabot[bot] Mar 18, 2025
e6e5fca
Add test for DuckDB memory_limit option #273)
sgrebnov Mar 19, 2025
06b0159
Add indexes and primary keys mismatch detection for DuckDB (#272)
sgrebnov Mar 19, 2025
5390f37
feat: Add python FFI interface and expose sqlite and duckdb table pro…
crystalxyz Mar 24, 2025
5216fa8
Bump reqwest from 0.12.12 to 0.12.15 (#286)
dependabot[bot] Mar 25, 2025
29fc968
Bump geo-types from 0.7.15 to 0.7.16 (#285)
dependabot[bot] Mar 25, 2025
c434250
Bump rstest from 0.24.0 to 0.25.0 (#284)
dependabot[bot] Mar 25, 2025
06f4fa7
Bump uuid from 1.15.1 to 1.16.0 (#283)
dependabot[bot] Mar 26, 2025
840438d
Bump time from 0.3.39 to 0.3.41 (#282)
dependabot[bot] Mar 26, 2025
55a612d
Bump sea-query from 0.32.2 to 0.32.3 (#295)
dependabot[bot] Mar 31, 2025
3769a58
Upgrade to DataFusion 46 (#309)
phillipleblanc Apr 10, 2025
fb675d2
Bump bigdecimal from 0.4.7 to 0.4.8 (#306)
dependabot[bot] Apr 10, 2025
7274963
Bump openssl from 0.10.71 to 0.10.72 in the cargo group (#303)
dependabot[bot] Apr 10, 2025
78c4ff2
Bump tokio from 1.44.1 to 1.44.2 (#307)
dependabot[bot] Apr 10, 2025
6fd7aa2
Bump odbc-api from 11.1.1 to 12.0.0 (#308)
dependabot[bot] Apr 10, 2025
23ab4b6
Merge branch 'spiceai' into phillip/250410-spiceai-upstream
phillipleblanc Apr 10, 2025
a37be8f
Fixing merge issues + use spiceai_duckdb_fork
phillipleblanc Apr 10, 2025
bc7c00c
Improve DuckDB insert performance; support Postgres materialized view…
phillipleblanc Apr 10, 2025
d8276cd
feat: Implement Python ODBC, MySQL, Postgres, Flight table providers …
crystalxyz Apr 10, 2025
606c284
Bump crossbeam-channel from 0.5.14 to 0.5.15 in the cargo group (#312)
dependabot[bot] Apr 11, 2025
44e0e9d
bump to 0.4.0
phillipleblanc Apr 10, 2025
a5d6f6b
Bump anyhow from 1.0.97 to 1.0.98 (#314)
dependabot[bot] Apr 15, 2025
2d3b586
Bump odbc-api from 12.0.0 to 12.0.1 (#313)
dependabot[bot] Apr 15, 2025
abcd1d2
Fix schema for projection with no columns (#315)
phillipleblanc Apr 16, 2025
9576e7d
Postgres: Make json/jsonb schema type and record types consistent (Ut…
sgrebnov Apr 19, 2025
5189715
Bump arrow-odbc from 16.0.0 to 16.0.1 (#321)
dependabot[bot] Apr 22, 2025
159ab59
Fix unused warnings (#325)
trueleo Apr 24, 2025
dd12c1c
Bump sea-query from 0.32.3 to 0.32.4 (#323)
dependabot[bot] Apr 24, 2025
cc612fa
Bump rand from 0.9.0 to 0.9.1 (#322)
dependabot[bot] Apr 24, 2025
b5e65df
feat: Create Python integration testing (#320)
crystalxyz Apr 25, 2025
fa2198d
Bump odbc-api from 12.0.1 to 12.0.2 (#326)
dependabot[bot] Apr 29, 2025
d318e61
Bump insta from 1.42.2 to 1.43.1 (#331)
dependabot[bot] May 7, 2025
48e4c3b
Bump sha2 from 0.10.8 to 0.10.9 (#332)
dependabot[bot] May 7, 2025
860774b
Bump chrono from 0.4.40 to 0.4.41 (#330)
dependabot[bot] May 7, 2025
d8b2e66
Bump mysql_async from 0.35.1 to 0.36.0 (#327)
dependabot[bot] May 7, 2025
b5cda32
Python feature flags (#337)
ccciudatu May 13, 2025
aa8f444
Bump sea-query from 0.32.4 to 0.32.5 (#338)
dependabot[bot] May 13, 2025
633d7ba
Bump tokio from 1.44.2 to 1.45.0 (#339)
dependabot[bot] May 14, 2025
469959d
Bump tempfile from 3.19.1 to 3.20.0 (#342)
dependabot[bot] May 16, 2025
0888b06
Upgrade datafusion to 47 and datafusion-federation to 0.4.2 (#324)
nuno-faria Jun 5, 2025
7ac5659
DuckDB: don't use ArrowVTab while creating the table (more types supp…
sgrebnov Apr 20, 2025
9ccf9e8
Add application_name parameter to postgres options (#335)
phillipleblanc May 11, 2025
409fda2
MySQL: Set the `character_set_results`/`character_set_client`/`charac…
Sevenannn May 12, 2025
fb753bd
Don't display bb8 Postgres pool errors by default (#336)
phillipleblanc May 12, 2025
745700a
Make DuckDB database attachments logic more robust (#344)
sgrebnov May 15, 2025
fe1bb98
Allow custom DuckDB settings to be defined by library users (#362)
phillipleblanc Jun 2, 2025
6578771
Upgrade dependencies (#363)
phillipleblanc Jun 5, 2025
d694b4a
Merge spiceai changes since 0.4: Custom DuckDB settings, more robust …
phillipleblanc Jun 5, 2025
47208d9
Don't pushdown filters with subqueries (#316)
phillipleblanc Jun 5, 2025
fcdf489
bump to 0.5.0
phillipleblanc Jun 5, 2025
b5a5e9a
Bump prost from 0.13.5 to 0.14.0 (#367)
dependabot[bot] Jun 17, 2025
d896227
Bump bollard from 0.19.0 to 0.19.1 (#366)
dependabot[bot] Jun 17, 2025
04985bd
Bump reqwest from 0.12.19 to 0.12.20 (#365)
dependabot[bot] Jun 17, 2025
903c64f
upd datafusion 48, federation to 0.4.3 (#370)
askarbozcan Jun 23, 2025
c8b5527
bump version to 0.6.0
phillipleblanc Jun 23, 2025
3356c7e
Clickhouse: Add read only table provider for clickhouse (#369)
trueleo Jun 23, 2025
1d42b65
Constraint Clickhouse version (#371)
trueleo Jun 24, 2025
0ff693f
Bump prost from 0.14.0 to 0.14.1 (#372)
dependabot[bot] Jun 24, 2025
c2ae045
bump version to 0.6.1
phillipleblanc Jun 24, 2025
d21b18d
Clickhouse: Remove unused AstAnalyzer from executor (#373)
trueleo Jun 25, 2025
2d7afb1
Clickhouse: Remove unused pub attribute (#376)
trueleo Jun 30, 2025
6cfef49
Bump arrow-array from 55.1.0 to 55.2.0 (#381)
dependabot[bot] Jul 1, 2025
92ec04e
Bump test-log from 0.2.17 to 0.2.18 (#380)
dependabot[bot] Jul 1, 2025
2e8f630
Bump reqwest from 0.12.20 to 0.12.21 (#379)
dependabot[bot] Jul 1, 2025
b85b685
Bump arrow-schema from 55.1.0 to 55.2.0 (#378)
dependabot[bot] Jul 1, 2025
3035525
Apply doc_auto_cfg on all features during docsrs build (#375)
trueleo Jul 7, 2025
2d7db7b
Bump datafusion-federation to 0.4.5 (#383)
nuno-faria Jul 13, 2025
8140b55
bump to 0.6.2
phillipleblanc Jul 13, 2025
2144ab7
feat: Add temporary option to CreateTableBuilder (#398)
nuno-faria Jul 20, 2025
cad911b
Bump datafusion-federation to 0.4.6 (#401)
nuno-faria Jul 23, 2025
dd29536
bump version to 0.6.3
phillipleblanc Jul 23, 2025
e56af46
Bump tokio from 1.45.1 to 1.46.1 (#393)
dependabot[bot] Jul 24, 2025
2064c60
Upgrade datafusion to version 49, datafusion-federation to version 0.…
nuno-faria Aug 4, 2025
55d0e24
bump version to 0.7.0
phillipleblanc Aug 4, 2025
3641a8a
Bump uuid from 1.17.0 to 1.18.0 (#417)
dependabot[bot] Aug 14, 2025
bf78a9e
Bump rand from 0.9.1 to 0.9.2 (#415)
dependabot[bot] Aug 14, 2025
c742a50
Bump rstest from 0.25.0 to 0.26.1 (#414)
dependabot[bot] Aug 14, 2025
08feee8
Bump dyn-clone from 1.0.19 to 1.0.20 (#413)
dependabot[bot] Aug 14, 2025
40aba79
Bump prost from 0.13.5 to 0.14.1 (#412)
dependabot[bot] Aug 14, 2025
1ccaf09
ClickHouse: Add python module (#418)
trueleo Aug 14, 2025
997108a
Upgrade datafusion to version 50 (#437)
nuno-faria Sep 19, 2025
c4086ec
bump version to 0.8.0
phillipleblanc Sep 19, 2025
d70ba8b
Improve the read performance of Postgres' Decimals (#438)
nuno-faria Sep 22, 2025
409868a
bump version to 0.8.1
phillipleblanc Sep 26, 2025
90054dc
feat: [sqlite] Delegate supports_filters_pushdown to read provider (#…
lukekim Oct 10, 2025
1259e99
Bump insta from 1.43.1 to 1.43.2 (#445)
dependabot[bot] Oct 18, 2025
75ef7f3
Bump serde_json from 1.0.140 to 1.0.145 (#447)
dependabot[bot] Oct 18, 2025
b7c75fa
Bump bollard from 0.19.1 to 0.19.3 (#449)
dependabot[bot] Oct 19, 2025
10c974b
Bump serde from 1.0.225 to 1.0.228 (#448)
dependabot[bot] Oct 19, 2025
de40c71
feat: [sqlite] Batch insert using prepared statements (#453)
lukekim Oct 19, 2025
e3c4232
Upgrade Rust toolchain from 1.86 to 1.89 (#456)
lukekim Oct 19, 2025
cbfa97c
Use a Acitons feature matrix to improve build times (#458)
lukekim Oct 20, 2025
6159f97
Add Rust caching to PR workflow to improve performance (#460)
lukekim Oct 20, 2025
6d419c1
Merge branch 'main' into lukim/merge-from-main
lukekim Oct 20, 2025
97b38f9
Formatting
lukekim Oct 20, 2025
c9ebd28
Fix MongoDB
lukekim Oct 20, 2025
6c08f16
Bump astral-sh/setup-uv from 5 to 7 (#461)
dependabot[bot] Oct 20, 2025
3fa4769
Fix filter, projections, and limit
lukekim Oct 20, 2025
b4c7d63
Merge branch 'spiceai' into lukim/merge-from-main
lukekim Oct 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: 'github-actions' # See documentation for possible values
directory: '/' # Location of package manifests
schedule:
interval: 'weekly'

- package-ecosystem: 'cargo' # See documentation for possible values
directory: '/' # Location of package manifests
schedule:
interval: 'weekly'
190 changes: 93 additions & 97 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- uses: dtolnay/rust-toolchain@stable

- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2

- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
Expand All @@ -25,132 +28,125 @@ jobs:
- run: cargo clippy --all-features -- -D warnings

build:
name: Build
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable

# Putting this into a GitHub Actions matrix will run a separate job per matrix item, whereas in theory
# this can re-use the existing build cache to go faster.
- name: Build without default features
run: cargo check --no-default-features

- name: Build with only duckdb
run: cargo check --no-default-features --features duckdb

- name: Build with only postgres
run: cargo check --no-default-features --features postgres

- name: Build with only sqlite
run: cargo check --no-default-features --features sqlite

- name: Build with only mysql
run: cargo check --no-default-features --features mysql

integration-test-mysql:
name: Tests mysql
name: Build (${{ matrix.features }})
runs-on: ubuntu-latest

env:
MYSQL_DOCKER_IMAGE: public.ecr.aws/ubuntu/mysql:8.0-22.04_beta
strategy:
matrix:
features:
- 'no-default-features'
- 'clickhouse'
- 'duckdb'
- 'postgres'
- 'sqlite'
- 'mysql'
- 'flight'

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- uses: dtolnay/rust-toolchain@stable

- name: Pull the MySQL images
run: |
docker pull ${{ env.MYSQL_DOCKER_IMAGE }}
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2

- uses: ./.github/actions/setup-integration-test

- name: Run tests
run: cargo test --features mysql

integration-test-postgres:
name: Tests postgres
- name: Build with ${{ matrix.features }}
run: |
if [ "${{ matrix.features }}" = "no-default-features" ]; then
cargo check --no-default-features
else
cargo check --no-default-features --features ${{ matrix.features }}
fi

integration-test:
name: Tests
runs-on: ubuntu-latest

env:
PG_DOCKER_IMAGE: public.ecr.aws/docker/library/postgres:latest
PG_DOCKER_IMAGE: ghcr.io/cloudnative-pg/postgresql:16-bookworm
MYSQL_DOCKER_IMAGE: public.ecr.aws/ubuntu/mysql:8.0-22.04_beta

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- uses: dtolnay/rust-toolchain@stable

- uses: ./.github/actions/setup-integration-test
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2

- name: Pull the Postgres images
- name: Pull the Postgres/MySQL images
run: |
docker pull ${{ env.PG_DOCKER_IMAGE }}
docker pull ${{ env.MYSQL_DOCKER_IMAGE }}

- name: Run tests
run: cargo test --features postgres

integration-test-sqlite:
name: Tests sqlite
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable

- uses: ./.github/actions/setup-integration-test

- name: Run tests
run: cargo test --features sqlite

integration-test-duckdb:
name: Tests duckdb
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable

- uses: ./.github/actions/setup-integration-test
- name: Free Disk Space
run: |
sudo docker rmi $(docker image ls -aq) >/dev/null 2>&1 || true
sudo rm -rf \
/usr/share/dotnet /usr/local/lib/android /opt/ghc \
/usr/local/share/powershell /usr/share/swift /usr/local/.ghcup \
/usr/lib/jvm || true
echo "some directories deleted"
sudo apt install aptitude -y >/dev/null 2>&1
sudo aptitude purge aria2 ansible azure-cli shellcheck rpm xorriso zsync \
esl-erlang firefox gfortran-8 gfortran-9 google-chrome-stable \
google-cloud-sdk imagemagick \
libmagickcore-dev libmagickwand-dev libmagic-dev ant ant-optional kubectl \
mercurial apt-transport-https mono-complete libmysqlclient \
yarn chrpath libssl-dev libxft-dev \
libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev \
snmp pollinate libpq-dev postgresql-client powershell ruby-full \
sphinxsearch subversion mongodb-org azure-cli microsoft-edge-stable \
-y -f >/dev/null 2>&1
sudo aptitude purge google-cloud-sdk -f -y >/dev/null 2>&1
sudo aptitude purge microsoft-edge-stable -f -y >/dev/null 2>&1 || true
sudo apt purge microsoft-edge-stable -f -y >/dev/null 2>&1 || true
sudo aptitude purge '~n ^php' -f -y >/dev/null 2>&1
sudo aptitude purge '~n ^dotnet' -f -y >/dev/null 2>&1
sudo apt-get autoremove -y >/dev/null 2>&1
sudo apt-get autoclean -y >/dev/null 2>&1
echo "some packages purged"
df -h

- name: Install ODBC & Sqlite
run: |
sudo apt-get install -y unixodbc-dev
sudo apt-get install -y libsqlite3-dev

- name: Run tests
run: cargo test --features duckdb
run: make test

integration-test-flight:
name: Tests flight
python-integration-test:
name: Python Tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- uses: dtolnay/rust-toolchain@stable

- uses: ./.github/actions/setup-integration-test

- name: Run tests
run: cargo test --features flight

integration-test-mongodb:
name: Tests mongoDB
runs-on: ubuntu-latest

env:
MONGODB_DOCKER_IMAGE: public.ecr.aws/docker/library/mongo:7

steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: |
.
python

- uses: ./.github/actions/setup-integration-test
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: 'python/pyproject.toml'

- name: Pull the MongoDB images
- name: Install ODBC, Sqlite and Roapi
run: |
docker pull ${{ env.MONGODB_DOCKER_IMAGE }}
sudo apt-get install -y unixodbc-dev libsqliteodbc
sudo apt-get install -y libsqlite3-dev
cargo install --locked --git https://github.com/roapi/roapi --branch main --bins roapi

- name: Run tests
run: cargo test --features mongodb
- name: Build Python package and run tests
run: |
cd python
uv sync --dev --no-install-package datafusion
uv run --no-project maturin develop --uv --release
cd python/tests
uv run --no-project pytest -v .
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# will have compiled files and executables
debug/
target/
.cargo

# These are backup files generated by rustfmt
**/*.rs.bk
Expand All @@ -17,3 +18,4 @@ target/
.DS_Store

.idea
.vscode
Loading
Loading