Cargo.toml
Rama main · réplica de lectura del repositorio original.
[workspace.package]
version = "0.1.0"
authors = ["Databend Authors <opensource@datafuselabs.com>"]
license = "Apache-2.0"
publish = false
edition = "2024"
[workspace]
resolver = "2"
members = [
"src/bendpy",
"src/bendsave",
"src/binaries",
"src/meta/api",
"src/meta/app",
"src/meta/app-storage",
"src/meta/binaries",
"src/meta/plugins/cache",
"src/meta/cli-config",
"src/meta/control",
"src/meta/ee",
"src/meta/admin",
"src/meta/process",
"src/meta/proto-conv",
"src/meta/protos",
"src/meta/kv-tests",
"src/meta/runtime",
"src/meta/schema-api-test-suite",
"src/meta/schema-api-tests",
"src/meta/plugins/semaphore",
"src/meta/store",
"src/meta/ver",
"src/query/codegen",
"src/tests/planner_replay",
"src/query/storages/paimon",
"tests/sqllogictests",
]
default-members = [
"src/bendsave",
"src/binaries",
"src/meta/api",
"src/meta/app",
"src/meta/app-storage",
"src/meta/binaries",
"src/meta/plugins/cache",
"src/meta/cli-config",
"src/meta/control",
"src/meta/ee",
"src/meta/admin",
"src/meta/process",
"src/meta/proto-conv",
"src/meta/protos",
"src/meta/kv-tests",
"src/meta/runtime",
"src/meta/schema-api-test-suite",
"src/meta/schema-api-tests",
"src/meta/plugins/semaphore",
"src/meta/store",
"src/meta/ver",
"src/query/codegen",
"src/tests/planner_replay",
"tests/sqllogictests",
]
# Workspace dependencies
[workspace.dependencies]
databend-common-ast = { path = "src/query/ast" }
databend-common-ast-visit-derive = { path = "src/query/ast/visit_derive" }
databend-common-base = { path = "src/common/base" }
databend-common-building = { path = "src/common/building" }
databend-common-cache = { path = "src/common/cache" }
databend-common-catalog = { path = "src/query/catalog" }
databend-common-cloud-control = { path = "src/common/cloud_control" }
databend-common-column = { path = "src/common/column" }
databend-common-component = { path = "src/query/common/component" }
databend-common-compress = { path = "src/common/compress" }
databend-common-config = { path = "src/query/config" }
databend-common-datavalues = { path = "src/query/datavalues" }
databend-common-exception = { path = "src/common/exception" }
databend-common-expression = { path = "src/query/expression" }
databend-common-expression-test-support = { path = "src/query/expression/test-support" }
databend-common-formats = { path = "src/query/formats" }
databend-common-frozen-api = { path = "src/common/frozen_api" }
databend-common-functions = { path = "src/query/functions" }
databend-common-grpc = { path = "src/common/grpc" }
databend-common-hashtable = { path = "src/common/hashtable" }
databend-common-http = { path = "src/common/http" }
databend-common-io = { path = "src/common/io" }
databend-common-license = { path = "src/common/license" }
databend-common-management = { path = "src/query/management" }
databend-common-meta-api = { path = "src/meta/api" }
databend-common-meta-app = { path = "src/meta/app" }
databend-common-meta-app-storage = { path = "src/meta/app-storage" }
databend-common-meta-control = { path = "src/meta/control" }
databend-common-meta-process = { path = "src/meta/process" }
databend-common-meta-schema-api-test-suite = { path = "src/meta/schema-api-test-suite" }
databend-common-meta-store = { path = "src/meta/store" }
databend-common-metrics = { path = "src/common/metrics" }
databend-common-pipeline = { path = "src/query/pipeline" }
databend-common-pipeline-transforms = { path = "src/query/pipeline/transforms" }
databend-common-proto-conv = { path = "src/meta/proto-conv" }
databend-common-protos = { path = "src/meta/protos" }
databend-common-script = { path = "src/query/script" }
databend-common-settings = { path = "src/query/settings" }
databend-common-sql = { path = "src/query/sql" }
databend-common-sql-test-support = { path = "src/query/sql/test-support" }
databend-common-statistics = { path = "src/common/statistics" }
databend-common-storage = { path = "src/common/storage" }
databend-common-storages-basic = { path = "src/query/storages/basic" }
databend-common-storages-factory = { path = "src/query/storages/factory" }
databend-common-storages-fuse = { path = "src/query/storages/fuse" }
databend-common-storages-iceberg = { path = "src/query/storages/iceberg" }
databend-common-storages-information-schema = { path = "src/query/storages/information_schema" }
databend-common-storages-orc = { path = "src/query/storages/orc" }
databend-common-storages-paimon = { path = "src/query/storages/paimon" }
databend-common-storages-parquet = { path = "src/query/storages/parquet" }
databend-common-storages-stage = { path = "src/query/storages/stage" }
databend-common-storages-stream = { path = "src/query/storages/stream" }
databend-common-storages-system = { path = "src/query/storages/system" }
databend-common-telemetry = { path = "src/common/telemetry" }
databend-common-timezone = { path = "src/common/timezone" }
databend-common-tracing = { path = "src/common/tracing" }
databend-common-users = { path = "src/query/users" }
databend-common-vector = { path = "src/common/vector" }
databend-common-version = { path = "src/common/version" }
databend-enterprise-attach-table = { path = "src/query/ee_features/attach_table" }
databend-enterprise-data-mask-feature = { path = "src/query/ee_features/data_mask" }
databend-enterprise-data-sharing = { path = "src/query/ee_features/data_sharing" }
databend-enterprise-fail-safe = { path = "src/query/ee_features/fail_safe" }
databend-enterprise-materialized-view = { path = "src/query/ee_features/materialized_view" }
databend-enterprise-query = { path = "src/query/ee" }
databend-enterprise-resources-management = { path = "src/query/ee_features/resources_management" }
databend-enterprise-row-access-policy-feature = { path = "src/query/ee_features/row_access_policy" }
databend-enterprise-storage-encryption = { path = "src/query/ee_features/storage_encryption" }
databend-enterprise-stream-handler = { path = "src/query/ee_features/stream_handler" }
databend-enterprise-table-ref-handler = { path = "src/query/ee_features/table_ref_handler" }
databend-enterprise-vacuum-handler = { path = "src/query/ee_features/vacuum_handler" }
databend-functions-scalar-arithmetic = { path = "src/query/functions/src/scalars/arithmetic" }
databend-functions-scalar-datetime = { path = "src/query/functions/src/scalars/timestamp" }
databend-functions-scalar-decimal = { path = "src/query/functions/src/scalars/decimal" }
databend-functions-scalar-geo = { path = "src/query/functions/src/scalars/geographic" }
databend-functions-scalar-integer-basic-arithmetic = { path = "src/query/functions/src/scalars/integer_arithmetic" }
databend-functions-scalar-math = { path = "src/query/functions/src/scalars/mathematics" }
databend-functions-scalar-numeric-basic-arithmetic = { path = "src/query/functions/src/scalars/numeric_basic_arithmetic" }
databend-meta-admin = { path = "src/meta/admin" }
databend-meta-cli-config = { path = "src/meta/cli-config" }
databend-meta-plugin-cache = { path = "src/meta/plugins/cache" }
databend-meta-plugin-semaphore = { path = "src/meta/plugins/semaphore" }
databend-meta-runtime = { path = "src/meta/runtime" }
databend-meta-ver = { path = "src/meta/ver" }
databend-query = { path = "src/query/service" }
databend-query-script-udf-support = { path = "src/query/script_udf_support" }
databend-query-storage-stage-support = { path = "src/query/storage_stage_support" }
databend-query-task-support = { path = "src/query/task_support" }
databend-storages-common-blocks = { path = "src/query/storages/common/blocks" }
databend-storages-common-cache = { path = "src/query/storages/common/cache" }
databend-storages-common-index = { path = "src/query/storages/common/index" }
databend-storages-common-io = { path = "src/query/storages/common/io" }
databend-storages-common-pruner = { path = "src/query/storages/common/pruner" }
databend-storages-common-session = { path = "src/query/storages/common/session" }
databend-storages-common-stage = { path = "src/query/storages/common/stage" }
databend-storages-common-table-meta = { path = "src/query/storages/common/table_meta" }
# External meta service
databend-meta = "260629.7.0"
databend-meta-test-harness = "260629.7.0"
# External meta client
databend-meta-client = "260205.13.5"
structkey = "0.1.1"
# Crates.io dependencies
ahash = { version = "0.8", features = ["no-rng"] }
aho-corasick = { version = "1.0.1" }
anyerror = { version = "=0.1.13" }
anyhow = { version = "1.0.65" }
apache-avro = { version = "0.21.0", features = ["snappy", "zstandard", "xz", "bzip"] }
approx = "0.5.1"
argminmax = { version = "0.7.1", default-features = false, features = ["float"] }
arrow = { version = "58.4.0" }
arrow-array = { version = "58.4.0" }
arrow-buffer = { version = "58.4.0" }
arrow-cast = { version = "58.4.0", features = ["prettyprint"] }
arrow-data = { version = "58.4.0" }
arrow-flight = { version = "58.4.0", features = ["flight-sql-experimental", "tls-ring"] }
arrow-ipc = { version = "58.4.0", features = ["lz4", "zstd"] }
arrow-json = { version = "58.4.0" }
arrow-ord = { version = "58.4.0" }
arrow-schema = { version = "58.4.0", features = ["serde"] }
arrow-select = { version = "58.4.0" }
# `javascript-runtime` rather than `javascript`: the latter also pulls in `javascript-fetch`,
# which requires reqwest (with native-tls by default) for a `fetch()` API we never enable —
# `Runtime::enable_fetch()` is not called anywhere.
arrow-udf-python-worker = { git = "https://github.com/datafuse-extras/arrow-udf.git", rev = "6a49de9d03e85722313f32b202edddb2456ca865" }
arrow-udf-runtime = { version = "0.8.0", default-features = false, features = ["javascript-runtime", "wasm"] }
async-backtrace = "0.2"
async-channel = "2.3.1"
async-compat = { version = "0.2" }
async-compression = { version = "0.4.39", features = ["futures-io", "gzip", "zlib"] }
async-recursion = "1.1.1"
async-stream = "0.3.3"
async-trait = { version = "0.1.89" }
backoff = { version = "0.4", features = ["futures", "tokio"] } # FIXME: use backon to replace this.
backon = "1"
backtrace = { version = "0.3.73", features = [
"std",
"serialize-serde",
] }
base2histogram = "0.2.3"
base64 = "0.22"
bincode = { version = "2.0.0-rc.3", features = ["serde", "std", "alloc"] }
bincode_v1 = { package = "bincode", version = "1.3.3" }
bitvec = "1.0.1"
blake3 = "1.3.1"
bollard = { version = "0.17" }
borsh = { version = "1.2.1", features = ["derive"] }
bstr = "1"
buf-list = "1.0.3"
bumpalo = "3.12.0"
bytemuck = { version = "1", features = ["derive", "extern_crate_alloc", "must_cast", "transparentwrapper_extra"] }
byteorder = "1.5.0"
bytes = "1.5.0"
bytesize = "2"
cbordata = { version = "0.6.0" }
cfg-if = "1.0.0"
chrono = { version = "0.4.45", features = ["serde"] }
chrono-tz = { version = "0.10.4", features = ["serde"] }
cidr = { version = "0.3.1" }
clap = { version = "4.4.2", features = ["derive"] }
codeq = { version = "0.5.2" }
comfy-table = "7"
# Pinned: 0.4.40+ moves to zstd 0.14, while arrow/parquet still use zstd 0.13.
compression-codecs = { version = "=0.4.39", features = [
"brotli",
"bzip2",
"deflate",
"gzip",
"lzma",
"xz",
"zlib",
"zstd",
] }
concurrent-queue = "2.5.0"
convert_case = "0.6.0"
cookie = "0.18.1"
crc32fast = "1.3.2"
cron = "0.12.0"
crossbeam-channel = "0.5.6"
csv-core = "0.1.13"
ctor = "0.2"
dashmap = { version = "6.1.0", features = ["serde"] }
databend-base = "0.4.0"
defer = "0.2"
derive-visitor = { version = "0.4.0", features = ["std-types-drive"] }
derive_more = { version = "1.0.0", features = ["full"] }
display-more = { version = "0.2.1" }
divan = "0.1.21"
dtparse = { git = "https://github.com/datafuse-extras/dtparse.git", rev = "7a9e40f" }
dyn-clone = "1.0.9"
educe = { version = "1.0.0", features = ["default", "full"], package = "databend_educe" }
either = "1.9"
encoding_rs = "0.8.35"
enquote = "1.1.0"
enum-as-inner = "0.6"
enum_dispatch = "0.3.13"
enumflags2 = { version = "0.7.7", features = ["serde"] }
ethnum = { version = "1.5.2", features = ["serde", "macros"] }
feistel-permutation-rs = "0.1.1"
flatbuffers = "25" # Must use the same version with arrow-ipc
foreign_vec = "0.1.0"
form_urlencoded = { version = "1" }
futures = "0.3.24"
futures-util = "0.3.24"
geo = { version = "0.32.0", features = ["use-serde"] }
geo-index = "0.3.4"
geohash = "0.13.1"
# Pinned to a git rev to include https://github.com/georust/geozero/pull/278
geozero = { git = "https://github.com/georust/geozero.git", rev = "bda4d03", features = [
"with-geo",
"with-geojson",
"with-wkb",
"with-wkt",
] }
gimli = "0.31.0"
glob = "0.3.0"
globiter = "0.1"
goldenfile = "1.4"
h3o = "0.9.4"
half = "2.7.1"
hashbrown = { version = "0.15.2", default-features = false }
hashlink = "0.10"
headers = "0.4.0"
hex = "0.4.3"
hickory-resolver = "0.25"
hmac = "0.12.1"
http = "1"
http-body-util = "0.1"
humantime = "2.1.0"
hyper = "1"
hyper-util = { version = "0.1.9", features = ["client", "client-legacy", "tokio", "service"] }
lru = "0.12"
lz4_flex = { version = "0.13", default-features = false, features = ["std"] }
perf-event2 = "0.7.4"
proc-macro2 = "1.0"
quote = "1.0"
## Arrow 58 compatible variant metadata support.
iceberg = { version = "0.8.0", git = "https://github.com/databendlabs/iceberg-rust", branch = "dev", features = [
"storage-all",
# Not in iceberg-rust's `storage-all`: without it every abfs[s]:// table fails to load.
"storage-azdls",
] }
iceberg-catalog-glue = { version = "0.8.0", git = "https://github.com/databendlabs/iceberg-rust", branch = "dev" }
iceberg-catalog-hms = { version = "0.8.0", git = "https://github.com/databendlabs/iceberg-rust", branch = "dev" }
iceberg-catalog-rest = { version = "0.8.0", git = "https://github.com/databendlabs/iceberg-rust", branch = "dev" }
iceberg-catalog-s3tables = { version = "0.8.0", git = "https://github.com/databendlabs/iceberg-rust", branch = "dev" }
paimon = { version = "=0.2.0", default-features = false, features = ["storage-fs", "storage-s3", "storage-oss"] }
indexmap = "2.0.0"
inferno = { version = "0.11", default-features = false, features = ["nameattr"] }
itertools = "0.13.0"
jaq-core = "3.1.0"
jaq-json = "2.0.1"
jaq-std = "3.0.1"
jiff = { version = "0.2.16", features = ["serde", "tzdb-bundle-always"] }
jsonb = "0.5.6"
jsonwebtoken = "9.3.1"
jwt-simple = { version = "0.12.12", default-features = false, features = ["pure-rust"] }
lenient_semver = "0.4.2"
lexical-core = "1"
libc = { version = "0.2.158" }
libm = "0.2.6"
limits-rs = "0.2.0"
lindera = { version = "5.0.1", features = ["embed-ipadic"] }
lindera-analysis = "5.0.1"
lindera-tantivy = { version = "5.0.1", features = ["embed-ipadic"] }
logforth = { git = "https://github.com/datafuse-extras/logforth", branch = "dev", features = [
'json',
'rolling-file',
'opentelemetry',
'fastrace',
] }
maplit = "1.0.2"
match-template = "0.0.1"
md-5 = "0.10.5"
memchr = { version = "2", default-features = false }
micromarshal = "0.7.0"
mlua = { version = "0.11", features = ["lua54", "vendored", "async", "serialize"] }
mysql_async = { version = "0.37.1", default-features = false, features = [
"minimal-rust",
"rustls-tls",
"ring",
"tls12",
] }
naive-cityhash = "0.2.0"
ndarray = "0.15.6"
num = { version = "0.4.0", features = ["std"] }
num-bigint = "0.4.6"
num-derive = "0.4.2"
num-traits = "0.2.19"
num_cpus = "1.17"
object = "0.36.5"
once_cell = "1.15.0"
opendal = { version = "0.55.0", features = [
"layers-fastrace",
"layers-prometheus-client",
"layers-async-backtrace",
"services-s3",
"services-fs",
"services-gcs",
"services-cos",
"services-obs",
"services-oss",
"services-azblob",
"services-azdls",
"services-ipfs",
"services-http",
"services-webhdfs",
"services-huggingface",
] }
opensrv-mysql = { git = "https://github.com/databendlabs/opensrv.git", branch = "main", features = [
"tls",
] }
orc-rust = "0.8.0"
ordered-float = { version = "5.1.0", default-features = false }
p256 = "0.13"
parking_lot = "0.12.1"
parquet = { version = "58.1.0", features = ["async"] }
passwords = { version = "3.1.16" }
paste = "1.0.15"
percent-encoding = "2.3.1"
petgraph = { version = "0.8.3", features = ["serde-1"] }
pin-project = "1"
pin-project-lite = "0.2.9"
poem = { version = "3.0", features = ["server", "multipart", "compression", "cookie"] }
pprof = { git = "https://github.com/datafuse-extras/pprof-rs", rev = "edecd74", features = [
"flamegraph",
"protobuf-codec",
"protobuf",
] }
pretty_assertions = "1.3.0"
procfs = { version = "0.17.0" }
proj4rs = { version = "0.1.10", features = ["geo-types", "crs-definitions"] }
proptest = { version = "1", default-features = false, features = ["std"] }
prost = { version = "0.14.3" }
prost-build = { version = "0.14.3" }
prqlc = { version = "0.11.3", default-features = false }
raft-log = "0.4.6"
rand = { version = "0.8.5", features = ["small_rng", "serde1"] }
rand_distr = "0.4.3"
rayon = "1.9.0"
recursive = "0.1.1"
redis = { version = "0.27.5", features = ["tokio-comp", "connection-manager"] }
regex = "1.8.1"
replace_with = "0.1.7"
reqsign = { version = "0.16.5", default-features = false, features = ["services-aws"] }
reqwest = { version = "0.12", default-features = false, features = [
"json",
"http2",
"rustls-tls-native-roots",
"cookies",
] }
reqwest-hickory-resolver = "0.2"
rmp-serde = "1.1.1"
roaring = { version = "^0.10", features = ["serde"] }
rust_decimal = "1.26"
rustc-hash = "2.1.0"
rustix = { version = "0.38.37", features = ["fs"] }
rustls = { version = "0.23.27", features = ["ring", "tls12"], default-features = false }
rustls-pemfile = "2"
rustls-pki-types = "1"
scroll = "0.12.0"
self_cell = "1.2.0"
semver = "1.0.14"
seq-marked = { version = "0.3.5", features = ["seq-marked-serde", "seq-marked-bincode", "seqv-serde"] }
serde = { version = "1.0.164", features = ["derive", "rc"] }
serde_derive = "1"
serde_ignored = "0.1.10"
serde_json = { version = "1.0.85", default-features = false, features = ["preserve_order", "unbounded_depth"] }
serde_repr = "0.1.9"
serde_stacker = "0.1"
serde_test = "1.0"
serde_urlencoded = "0.7.1"
serde_with = { version = "3.8.1" }
serde_yaml = { version = "0.9.34" }
serfig = { git = "https://github.com/datafuse-extras/serfig", rev = "610ac6d" }
sha1 = "0.10.5"
sha2 = "0.10.8"
simdutf8 = "0.1.4"
similar = "2.7.0"
simple_hll = { version = "0.0.4", features = ["serde_borsh"] }
simsearch = "0.2"
siphasher = "0.3"
smallvec = "1.13.2"
snailquote = "0.3.1"
snap = "1"
socket2 = "0.5.3"
sqlx = { version = "0.8", default-features = false, features = ["mysql", "runtime-tokio"] }
stacker = "0.1.21"
state = "0.6.0"
strength_reduce = "0.2.4"
stringslice = "0.2.0"
strum = "0.24.1"
sub-cache = "0.2.1"
syn = { version = "2.0", features = ["full"] }
sys-info = "0.9"
sysinfo = "0.34.2"
tantivy = { version = "0.26.2", features = ["quickwit"] }
tantivy-common = "0.11.0"
tantivy-jieba = "0.20.0"
tantivy-query-grammar = "0.26.0"
temp-env = "0.3.0"
tempfile = "3.4.0"
terminal_size = "0.4.2"
test-harness = "0.3.0"
testcontainers = "0.23"
thiserror = { version = "1" }
thrift = "0.17.0"
tikv-jemalloc-ctl = { version = "0.6.0", features = ["use_std", "stats"] }
tikv-jemalloc-sys = "0.6.0"
tokio = { version = "1.54.1", features = ["full"] }
tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring", "tls12"] }
tokio-stream = { version = "0.1.11", features = ["net"] }
tokio-util = { version = "0.7.13" }
toml = { version = "0.8", features = ["parse"] }
tonic = { version = "0.14.5", features = ["transport", "codegen", "tls-native-roots"] }
tonic-prost = { version = "0.14.5" }
tonic-prost-build = { version = "0.14.5" }
tower = { version = "0.5.1", features = ["util"] }
tower-service = "0.3.3"
twox-hash = "1.6.3"
typetag = "0.2.3"
unicase = "2.8.0"
unicode-segmentation = "1.10.1"
unindent = "0.2"
url = "2.5.4"
uuid = { version = "1.10.0", features = ["std", "serde", "v4", "v7"] }
walkdir = "2.3.2"
wiremock = "0.6"
wkt = "0.14.0"
xorf = "0.12.0"
xorfilter-rs = { version = "0.5", features = ["cbordata"] }
zerocopy = { version = "0.8.26", features = ["derive"] }
zip = { version = "9.0.1", default-features = false, features = [
"aes-crypto",
"bzip2",
"deflate",
"deflate64",
"lzma",
"time",
"xz",
"zstd",
] }
zmij = "1.0"
zstd = "0.13.3"
# AST needed
cargo_metadata = "0.19"
fast-float2 = "0.2.3"
indent = "0.1.1"
inventory = "0.3.15"
logos = "0.12.1"
nom = "8.0.0"
nom-rule = "0.5.1"
pratt = "0.4.0"
rspack-codespan-reporting = "0.11"
rustc-demangle = "0.1"
strsim = "0.10"
strum_macros = "0.24"
vergen-gitcl = { version = "1.0.8", features = ["build", "cargo", "rustc"] }
# Observability
env_logger = "0.11"
fastrace = { version = "0.7.14", features = ["enable"] }
fastrace-opentelemetry = "0.14"
log = { version = "0.4.27", features = ["serde", "kv_serde", "kv_unstable_std"] }
logcall = "0.1.9"
opentelemetry = { version = "0.31", features = ["trace", "logs"] }
opentelemetry-otlp = { version = "0.31", default-features = false, features = [
"trace",
"logs",
"metrics",
"internal-logs",
"grpc-tonic",
"gzip-tonic",
"http-proto",
# otlp drives the log exporter with futures_executor::block_on, outside any tokio
# runtime, so the async reqwest client panics there ("no reactor running"). The
# blocking client is the combination the sdk documents for logs, and the two
# client features are mutually exclusive, so it has to be this one everywhere.
"reqwest-blocking-client",
"reqwest-rustls",
] }
opentelemetry_sdk = { version = "0.31", features = ["trace", "logs", "rt-tokio"] }
prometheus-client = "0.22"
prometheus-parse = "0.2.3"
# Databend Integration Test
quickcheck = "1.0"
sqllogictest = "0.28.4"
[workspace.lints.rust]
async_fn_in_trait = "allow"
[workspace.lints.clippy]
useless_format = "allow"
mutable_key_type = "allow"
result_large_err = "allow"
map_entry = "allow"
[profile.release]
debug = "line-tables-only"
lto = "thin"
overflow-checks = false
opt-level = "s" # defaults to be 3
incremental = false
codegen-units = 1 ## better performance see below comment
## DONT'T DELETE THIS: If we want best performance, we should use this profile but it will take longer time to compile.
## Test SQL:
## select sum(number) from numbers_mt(10000000000); ~ 3x performance
## select max(number) from numbers_mt(10000000000); ~ 3x performance
[profile.ci]
inherits = "release"
overflow-checks = true
incremental = false
debug-assertions = true
# Service / entrypoint crates: no hot vectorized kernels live here (those stay at
# codegen-units = 1 above). Single-unit codegen of databend-query (~19 min) and
# the ThinLTO link of databend-binaries (~15 min) dominate release build time.
[profile.release.package]
databend-query = { codegen-units = 4 }
databend-binaries = { codegen-units = 4 }
[profile.dev]
# Full debuginfo roughly doubles codegen and link time of the big crates and adds ~13GB to
# target/. Line tables keep file:line in backtraces and profilers; for full variable/type info
# in a debugger, build with `CARGO_PROFILE_DEV_DEBUG=true`. `cargo test` uses [profile.test].
debug = "line-tables-only"
split-debuginfo = "unpacked"
overflow-checks = true
# Incremental only pays off for repeated rebuilds. For a from-scratch build (fresh clone, branch
# switch, CI) use `CARGO_INCREMENTAL=0`: on 24 cores that is 209s instead of 249s and 14GB
# instead of 24GB of target/.
incremental = true
[profile.dev.package]
addr2line = { opt-level = 3 }
adler = { opt-level = 3 }
gimli = { opt-level = 3 }
miniz_oxide = { opt-level = 3 }
object = { opt-level = 3 }
rustc-demangle = { opt-level = 3 }
databend-common-exception = { opt-level = 3 }
[profile.bench]
debug = true
overflow-checks = false
debug-assertions = true
[profile.test]
opt-level = 0
# Same as `profile.dev`: backtraces keep file and line, but test builds skip the full type and
# variable info. Set `CARGO_PROFILE_TEST_DEBUG=true` to debug a test in a debugger.
debug = "line-tables-only"
codegen-units = 16
lto = false
debug-assertions = true
overflow-checks = true
rpath = true
[patch."https://github.com/datafuse-extras/arrow-rs.git"]
arrow-array = { version = "=58.4.0" }
arrow-buffer = { version = "=58.4.0" }
arrow-cast = { version = "=58.4.0" }
arrow-data = { version = "=58.4.0" }
arrow-ipc = { version = "=58.4.0" }
arrow-schema = { version = "=58.4.0" }
arrow-select = { version = "=58.4.0" }
[patch.crates-io]
# Kept from main: crates.io 0.8.0 does not resolve here (pyo3 0.24 vs bendpy's 0.28).
arrow-udf-runtime = { git = "https://github.com/datafuse-extras/arrow-udf.git", rev = "6a49de9d03e85722313f32b202edddb2456ca865" }
async-backtrace = { git = "https://github.com/datafuse-extras/async-backtrace.git", rev = "dea4553" }
async-recursion = { git = "https://github.com/datafuse-extras/async-recursion.git", rev = "a353334" }
backtrace = { git = "https://github.com/rust-lang/backtrace-rs.git", rev = "72265be" }
csv-core = { git = "https://github.com/youngsofun/rust-csv.git", rev = "44a0b3c" }
databend-base = { git = "https://github.com/databendlabs/databend-base", tag = "v0.4.0" }
databend-meta = { git = "https://github.com/databendlabs/databend-meta.git", tag = "v260629.7.0" }
databend-meta-client = { git = "https://github.com/databendlabs/databend-meta.git", tag = "v260205.13.5" }
databend-meta-test-harness = { git = "https://github.com/databendlabs/databend-meta.git", tag = "v260629.7.0" }
jsonb = { git = "https://github.com/databendlabs/jsonb.git", rev = "fba895c" }
map-api = { git = "https://github.com/databendlabs/map-api", tag = "v0.5.0" }
# dev: v0.2.0 plus the reqwest rustls fix (datafuse-extras/paimon-rust#1).
paimon = { git = "https://github.com/datafuse-extras/paimon-rust", branch = "dev" }
parquet = { git = "https://github.com/datafuse-extras/arrow-rs.git", rev = "221c744" }
recursive = { git = "https://github.com/datafuse-extras/recursive.git", rev = "16e433a" }
reqwest-hickory-resolver = { git = "https://github.com/datafuse-extras/reqwest-hickory-resolver", rev = "5ad03257a3c702d34b9643878efb5a3536323d2d" }
# Explicit unit return type in PromiseFuture::poll is required by never-type fallback.
rquickjs-core = { git = "https://github.com/DelSkayn/rquickjs.git", rev = "526317e574e1b4ac5dd0b0eb17def3e9f9011381" }
sled = { git = "https://github.com/datafuse-extras/sled", tag = "v0.34.7-datafuse.1" }
state-machine-api = { git = "https://github.com/databendlabs/state-machine-api.git", tag = "v0.4.0" }
sub-cache = { git = "https://github.com/databendlabs/sub-cache", tag = "v0.2.1" }
watcher = { git = "https://github.com/databendlabs/watcher", tag = "v0.5.0" }
xorfilter-rs = { git = "https://github.com/datafuse-extras/xorfilter", tag = "databend-alpha.4" }