Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/skade

skade-sql/Cargo.toml

# skade-sql — the DataFusion SQL surface that skade itself cannot carry.
#
# WHY THIS CRATE EXISTS
# ---------------------
# skade moved to arrow 59. No PUBLISHED datafusion is on arrow 59 — 54.1.0, the
# newest release, resolves arrow 58 — so the only datafusion that works is
# datafusion 55 from crates.io. This was an apache/datafusion GIT rev, pinned
# because 54.1.0-at-that-commit was "the only build on arrow 59" — which stopped
# being true when datafusion 55.0.0 was released ON arrow 59.2.0. The git pin was
# what made this crate unpublishable; released 55 is byte-for-byte the same
# arrow major and the suite is unchanged (80 passed).
#
# A git dependency without a version cannot be published: `cargo publish` refuses
# with "all dependencies must have a version requirement specified". While
# datafusion sat in skade's own manifest, behind the optional `sql` feature or
# not, skade as a whole was unpublishable — and an unpublishable skade means knut
# keeps resolving the crates.io copy, which is still arrow 58, which is a second
# arrow_array major in knut's graph.
#
# So the datafusion edge lives HERE, in a crate that is deliberately never
# published, and skade's manifest is clean. skade publishes; skade-sql is
# consumed by path from inside this repo.
#
# Detached workspace, same pattern as ../skade and ../bench.
[package]
name = "skade-sql"
version = "0.2.1"
edition = "2024"
rust-version = "1.92"
description = "DataFusion SQL over a skade Iceberg warehouse. Kept out of `skade`'s own manifest so skade stays publishable independently of the query engine."
license = "Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/skade"
# Publishable as of 2026-08-23: the git pin the comment above describes is gone,
# so the reason for this line went with it. Driven by the release cascade —
# modgunn 0.0.6 needs skade-sql in the index, and nornir 0.5.5 needs modgunn.
publish = true

[dependencies]
skade = { version = "0.7.0", path = "../skade" }
iceberg = { package = "iceberg-arrow59", version = "0.11.0", path = "../vendor/iceberg-arrow59" }
arrow-array = "59"
async-trait = "0.1"

# The two edges that make this crate unpublishable, and the reason it is a
# crate. Pinned by rev rather than branch so the API cannot move under a plain
# `cargo update` — this code is ported against exactly this revision.
datafusion = "55"
iceberg-datafusion = { package = "iceberg-datafusion-arrow59", version = "0.11.0", path = "../vendor/iceberg-datafusion-arrow59" }

# For `tests/merge_into.rs` — the MERGE INTO red→green suite.
[dev-dependencies]
anyhow = "1"
arrow-schema = "59"
futures = "0.3"
tempfile = "3"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }

[workspace]