# postgres-syntax
This crate provides simple compile-time syntax checking of PostgreSQL queries using the [pg_query](https://github.com/pganalyze/pg_query.rs) crate (currently version 5.1 which uses libpg_query 16-5.1.0).
It doesn't know anything about your schema, so it doesn't do type-checking or verify that tables you reference actually exist. It's just checking that the SQL syntax is valid. If you want type and name checking, you might prefer [sqlx](https://github.com/launchbadge/sqlx).
[![Crate](https://img.shields.io/crates/v/postgres-syntax.svg)](https://crates.io/crates/postgres-syntax)
# Example
The crate provides one macro, `postgres_syntax::sql`, which takes a string literal and passes it through if it's valid SQL syntax, or emits a compiler error if it's not valid SQL.
```rust
use postgres_syntax::sql;
let _ = sql!("SELECT name, email_address FROM user WHERE id = $1 BLARG");
```
```
error: failed to parse SQL query: syntax error at or near "BLARG"
--> examples/bad_syntax.rs:4:11
|
|
```
## License
`postgres-syntax` is licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
## Contribution
Any kinds of contributions are welcome as a pull request.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in these crates by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
## Acknowledgements
`postgres-syntax` development is sponsored by [AVStack](https://www.avstack.io/). We provide globally-distributed, scalable, managed A/V infrastructure.