kyrias/sqlx-conditional-queries

Conditional compile-time verified queries with SQLx

Rust

65

49 commits

updated Jul 3, 2026

See the code

README

Conditional compile-time verified queries with SQLx

github crates.io docs.rs

This crate provides a macro for generating conditional compile-time verified queries while using the SQLx query_as! macro. This allows you to have parts of the query conditional in ways in which your chosen database doesn't allow by emitting multiple query_as! invocations that are chosen over by a match statement.

The currently supported SQLx version is 0.9.

Variant growth

Note that this means that we end up emitting as many query_as! invocations as there are elements in the Cartesian product of all of the different conditionals. This means that the number of variants increase very rapidly!

Features

Which database type should be supported is specified by activating one of the following features. If more than one feature is activated then the first one in the list takes precedence.

  • postgres
  • mysql
  • sqlite

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Contributors

kyrias

43 commits

m-nawa

2 commits

felixonmars

1 commits

Ltrlg

1 commits

kyrias/sqlx-conditional-queries

Conditional compile-time verified queries with SQLx

Rust

65

49 commits

updated Jul 3, 2026

See the code

README

Conditional compile-time verified queries with SQLx

github crates.io docs.rs

This crate provides a macro for generating conditional compile-time verified queries while using the SQLx query_as! macro. This allows you to have parts of the query conditional in ways in which your chosen database doesn't allow by emitting multiple query_as! invocations that are chosen over by a match statement.

The currently supported SQLx version is 0.9.

Variant growth

Note that this means that we end up emitting as many query_as! invocations as there are elements in the Cartesian product of all of the different conditionals. This means that the number of variants increase very rapidly!

Features

Which database type should be supported is specified by activating one of the following features. If more than one feature is activated then the first one in the list takes precedence.

  • postgres
  • mysql
  • sqlite

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Contributors

kyrias

43 commits

m-nawa

2 commits

felixonmars

1 commits

Ltrlg

1 commits

Languages

Rust

100.0%