Skip to content

Commit e019ffc

Browse files
authored
Merge pull request #736 from splitgraph/datafusion-43-upgrade
Upgrade to DataFusion 43
2 parents d24aecd + 6297d45 commit e019ffc

32 files changed

Lines changed: 511 additions & 453 deletions

Cargo.lock

Lines changed: 355 additions & 314 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 21 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,51 +2,40 @@
22
members = ["clade", "object_store_factory"]
33

44
[workspace.dependencies]
5-
arrow = { version = "52.2.0", features = ["test_utils"] }
6-
arrow-buffer = "52.2.0"
7-
arrow-csv = "52.2.0"
8-
arrow-flight = "52.2.0"
5+
arrow = { version = "53.2.0", features = ["test_utils"] }
6+
arrow-buffer = "53.2.0"
7+
arrow-csv = "53.2.0"
8+
arrow-flight = "53.2.0"
99
# For the JSON format support
1010
# https://github.com/apache/arrow-rs/pull/2868
1111
# https://github.com/apache/arrow-rs/pull/2724
12-
arrow-integration-test = "52.2.0"
13-
arrow-row = "52.2.0"
14-
arrow-schema = "52.2.0"
12+
arrow-integration-test = "53.2.0"
13+
arrow-row = "53.2.0"
14+
arrow-schema = "53.2.0"
1515
async-trait = "0.1.83"
1616

17-
datafusion = { version = "41.0.0", features = ["backtrace"] }
18-
datafusion-common = "41.0.0"
19-
datafusion-expr = "41.0.0"
20-
datafusion-functions-nested = "41.0.0"
17+
datafusion = { version = "43.0.0", features = ["backtrace"] }
18+
datafusion-common = "43.0.0"
19+
datafusion-expr = "43.0.0"
20+
datafusion-functions-nested = "43.0.0"
2121

2222
futures = "0.3"
2323

2424
itertools = ">=0.10.0"
25-
object_store = { version = "0.10.2", features = ["aws", "azure", "gcp"] }
26-
prost = "0.12.6"
25+
object_store = { version = "0.11", features = ["aws", "azure", "gcp"] }
26+
prost = "0.13"
2727

2828
serde = "1.0.213"
2929
serde_json = "1.0.132"
3030

3131
tempfile = "3"
3232
tokio = { version = "1.40", features = ["macros", "rt", "rt-multi-thread", "signal", "process"] }
33+
tonic = "0.12"
3334
tracing = { version = "0.1", features = ["log"] }
3435
tracing-log = "0.2"
3536
tracing-subscriber = { version = "0.3.18", features = ["json", "env-filter"] }
3637
url = "2.5"
3738

38-
[patch.crates-io]
39-
arrow = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
40-
arrow-array = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
41-
arrow-buffer = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
42-
arrow-csv = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
43-
arrow-data = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
44-
arrow-flight = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
45-
arrow-integration-test = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
46-
arrow-ipc = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
47-
arrow-row = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
48-
arrow-schema = { git = "https://github.com/splitgraph/arrow-rs", branch = "backport-pr6729" }
49-
5039
[package]
5140
name = "seafowl"
5241
build = "build.rs"
@@ -95,8 +84,8 @@ clap = { version = "4.5.21", features = [ "derive" ] }
9584
config = "0.14.0"
9685

9786
# PG wire protocol support
98-
convergence = { git = "https://github.com/splitgraph/convergence", branch = "datafusion-41-upgrade", optional = true }
99-
convergence-arrow = { git = "https://github.com/splitgraph/convergence", branch = "datafusion-41-upgrade", optional = true }
87+
convergence = { git = "https://github.com/splitgraph/convergence", branch = "datafusion-43-upgrade", optional = true }
88+
convergence-arrow = { git = "https://github.com/splitgraph/convergence", branch = "datafusion-43-upgrade", optional = true }
10089

10190
dashmap = "6.1.0"
10291

@@ -107,8 +96,7 @@ datafusion-functions-nested = { workspace = true }
10796

10897
datafusion-remote-tables = { path = "./datafusion_remote_tables", optional = true }
10998

110-
# pr-2975-backport, pick up https://github.com/delta-io/delta-rs/pull/2975
111-
deltalake = { git = "https://github.com/splitgraph/delta-rs", branch = "pr-2975-with-arrow-pr-6729-backport", features = ["datafusion"] }
99+
deltalake = { git = "https://github.com/splitgraph/delta-rs", branch = "fix-decimal-stat-overflow", features = ["datafusion"] }
112100

113101
futures = "0.3"
114102
hex = ">=0.4.0"
@@ -118,7 +106,7 @@ lazy_static = ">=1.4.0"
118106
metrics = { version = "0.23.0" }
119107
metrics-exporter-prometheus = { version = "0.15.3" }
120108
moka = { version = "0.12.5", default-features = false, features = ["future", "atomic64", "quanta"] }
121-
object_store = { version = "0.10.2", features = ["aws", "azure", "gcp"] }
109+
object_store = { workspace = true }
122110
object_store_factory = { path = "object_store_factory" }
123111
percent-encoding = "2.2.0"
124112
prost = { workspace = true }
@@ -135,15 +123,15 @@ rustyline = "14.0"
135123
serde = { workspace = true }
136124
serde_json = { workspace = true }
137125
sha2 = ">=0.10.1"
138-
sqlparser = { version = "0.49", features = ["visitor"] }
126+
sqlparser = { version = "0.51", features = ["visitor"] }
139127
sqlx = { version = "0.7.1", features = [ "runtime-tokio-rustls", "sqlite", "any", "uuid" ] }
140128
strum = ">=0.24"
141129
strum_macros = ">=0.24"
142130
tempfile = "3"
143131
thiserror = "2"
144132
tokio = { workspace = true }
145133
tokio-graceful-shutdown = { version = "0.15" }
146-
tonic = { version = "0.11.0", optional = true }
134+
tonic = { workspace = true, optional = true }
147135
tower = "0.5"
148136
tracing = { workspace = true }
149137
tracing-log = "0.2"
@@ -165,7 +153,7 @@ aws-credential-types = { version = "1.2.1", features = ["hardcoded-credentials"]
165153
aws-sdk-sts = { version = "1.46.0", features = ["behavior-version-latest"] }
166154
rstest = "*"
167155
serial_test = "3"
168-
tonic-reflection = "0.11"
156+
tonic-reflection = "0.12"
169157
wiremock = "0.6"
170158

171159
[build-dependencies]

clade/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ license = "Apache-2.0"
77
[dependencies]
88
arrow-flight = { workspace = true }
99
prost = { workspace = true }
10-
tonic = "0.11"
10+
tonic = { workspace = true }
1111

1212
[build-dependencies]
13-
tonic-build = "0.11"
13+
tonic-build = "0.12"

clade/build.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
88
.build_server(true)
99
.build_client(true)
1010
.type_attribute("clade.sync.ColumnDescriptor", "#[derive(Eq, Hash)]")
11-
.compile(&["proto/schema.proto", "proto/sync.proto"], &["proto"])?;
11+
.compile_protos(&["proto/schema.proto", "proto/sync.proto"], &["proto"])?;
1212

1313
Ok(())
1414
}

datafusion_remote_tables/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ arrow-schema = { workspace = true }
1919
async-trait = { workspace = true }
2020

2121
# Remote query execution for a variety of DBs
22-
connectorx = { git = "https://github.com/splitgraph/connector-x", branch = "datafusion-41-upgrade", features = [ "dst_arrow", "src_postgres", "src_mysql", "src_sqlite" ] }
22+
connectorx = { git = "https://github.com/splitgraph/connector-x", branch = "datafusion-43-upgrade", features = [ "dst_arrow", "src_postgres", "src_mysql", "src_sqlite" ] }
2323

2424
datafusion = { workspace = true }
2525
datafusion-common = { workspace = true }

datafusion_remote_tables/src/factory.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use std::ops::Deref;
99
use std::sync::Arc;
1010

1111
/// Factory for creating remote tables
12+
#[derive(Debug)]
1213
pub struct RemoteTableFactory {}
1314

1415
#[async_trait]

datafusion_remote_tables/src/provider.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use tokio::task;
2323
use tracing::debug;
2424

2525
// Implementation of a remote table, capable of querying Postgres, MySQL, SQLite, etc...
26+
#[derive(Debug)]
2627
pub struct RemoteTable {
2728
// We manually escape the field names during scans, but expect the user to escape the table name
2829
// appropriately in the remote table definition

src/catalog/empty.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use clade::schema::ListSchemaResponse;
99

1010
use super::CatalogError;
1111

12-
#[derive(Clone)]
12+
#[derive(Debug, Clone)]
1313
pub struct EmptyStore {}
1414

1515
#[async_trait]

src/catalog/external.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use tonic::transport::{channel::Channel, Endpoint, Error};
88
use tonic::Request;
99

1010
// An external store, facilitated via a remote clade server implementation
11-
#[derive(Clone)]
11+
#[derive(Debug, Clone)]
1212
pub struct ExternalStore {
1313
client: SchemaStoreServiceClient<Channel>,
1414
}

src/catalog/memory.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::catalog::{
44
use crate::repository::interface::AllDatabaseFunctionsResult;
55
use clade::schema::ListSchemaResponse;
66

7-
#[derive(Clone)]
7+
#[derive(Debug, Clone)]
88
pub struct MemoryStore {
99
pub schemas: ListSchemaResponse,
1010
}

0 commit comments

Comments
 (0)