[workspace]
members = [".", "sea-query-derive"]

[package]
name = "sea-query"
version = "1.0.1"
authors = [
    "Chris Tsang <chris.2y3@outlook.com>",
    "Billy Chan <ccw.billy.123@gmail.com>",
    "Ivan Krivosheev <py.krivosheev@gmail.com>",
]
edition = "2024"
description = "🔱 A dynamic query builder for MySQL, Postgres and SQLite"
license = "MIT OR Apache-2.0"
documentation = "https://docs.rs/sea-query"
repository = "https://github.com/SeaQL/sea-query"
categories = ["database"]
keywords = ["database", "sql", "mysql", "postgres", "sqlite"]
rust-version = "1.88.0"
# STUB

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lib]
name = "sea_query"
path = "src/lib.rs"

[dependencies]
sea-query-derive = { version = "1.0.0", path = "sea-query-derive", optional = true }
sea-query-postgres-types = { version = "0.1.1", path = "sea-query-postgres-types", optional = true }
serde = { version = "1", default-features = false, optional = true, features = ["std", "derive", "rc"] }
serde_json = { version = "1", default-features = false, optional = true, features = ["std"] }
chrono = { version = "0.4.40", default-features = false, optional = true, features = ["clock"] }
pgvector = { version = "0.4", default-features = false, optional = true }
rust_decimal = { version = "1", default-features = false, optional = true }
bigdecimal = { version = "0.4", default-features = false, optional = true }
uuid = { version = "1", default-features = false, optional = true }
time = { version = "0.3.47", default-features = false, optional = true, features = ["macros", "formatting"] }
jiff = { version = "0.2.15", default-features = false, optional = true, features = ["std", "perf-inline"] }
ipnetwork = { version = "0.21.1", default-features = false, optional = true }
mac_address = { version = "1.1", default-features = false, optional = true }
ordered-float = { version = "4.6", default-features = false, optional = true }
itoa = { version = "1.0.15", optional = true }

[dev-dependencies]
sea-query = { path = ".", features = ["tests-cfg"] }
criterion = { version = "0.3" }
pretty_assertions = { version = "1" }

[features]
# STUB
audit = []
backend-mysql = []
backend-postgres = []
backend-sqlite = []
default = ["derive", "audit", "backend-mysql", "backend-postgres", "backend-sqlite", "itoa"]
derive = ["sea-query-derive"]
attr = ["sea-query-derive"]
hashable-value = ["ordered-float"]
postgres-array = []
postgres-vector = ["pgvector"]
postgres-interval = []
postgres-range = ["sea-query-postgres-types/range"]
serde = [
    "dep:serde",
    "chrono?/serde",
    "time?/serde",
    "jiff?/serde",
    "uuid?/serde",
    "bigdecimal?/serde",
    "rust_decimal?/serde",
    "ipnetwork?/serde",
    "mac_address?/serde",
    "pgvector?/serde",
    "sea-query-postgres-types?/serde",
]
thread-safe = []
with-chrono = ["chrono"]
with-json = ["serde_json"]
with-rust_decimal = ["rust_decimal"]
with-bigdecimal = ["bigdecimal"]
with-uuid = ["uuid"]
with-time = ["time"]
with-jiff = ["jiff"]
with-ipnetwork = ["ipnetwork"]
with-mac_address = ["mac_address"]
sqlx-utils = ["derive"]
sea-orm = ["sea-query-derive"]
tests-cfg = []
all-features = [
    "all-types",
    "attr",
    "audit",
    "backend-mysql",
    "backend-postgres",
    "backend-sqlite",
    "derive",
    "hashable-value",
    "serde",
    "sqlx-utils",
    "thread-safe",
] # everything except option-*
all-types = [
    "postgres-array",
    "postgres-interval",
    "postgres-vector",
    "postgres-range",
    "with-chrono",
    "with-json",
    "with-rust_decimal",
    "with-bigdecimal",
    "with-uuid",
    "with-time",
    "with-jiff",
    "with-ipnetwork",
    "with-mac_address",
]
option-more-parentheses = []
option-sqlite-exact-column-type = []
option-postgres-use-serial = []
itoa = ["dep:itoa"]

[[test]]
name = "test-derive"
path = "tests/derive.rs"
required-features = ["derive"]

[[test]]
name = "test-error"
path = "tests/error.rs"
required-features = ["tests-cfg"]

[[test]]
name = "test-mysql"
path = "tests/mysql/mod.rs"
required-features = ["tests-cfg", "backend-mysql", "audit"]

[[test]]
name = "test-postgres"
path = "tests/postgres/mod.rs"
required-features = ["tests-cfg", "backend-postgres", "audit"]

[[test]]
name = "test-sqlite"
path = "tests/sqlite/mod.rs"
required-features = ["tests-cfg", "backend-sqlite", "audit"]

[[test]]
name = "option-more-parentheses"
path = "tests/more-parentheses.rs"
required-features = ["tests-cfg", "option-more-parentheses", "backend-mysql"]

[[test]]
name = "test-raw-sql"
path = "tests/raw_sql.rs"
required-features = ["derive"]

[[bench]]
name = "basic"
harness = false

[[bench]]
name = "value"
harness = false
