rust-postgres-macros
====================
A set of support macros for Rust-Postgres.
[](https://travis-ci.org/sfackler/rust-postgres-macros)
You can integrate rust-postgres-macros into your project through the [releases on crates.io](https://crates.io/crates/postgres_macros):
```toml
# Cargo.toml
[dependencies]
postgres_macros = "0.1"
```
sql!
====
The `sql!` macro will validate that its string literal argument parses as a
valid Postgres query.
```rust
#![feature(plugin)]
#![plugin(postgres_macros)]
fn main() {
let query = sql!("SELECT * FROM users WHERE name = $1");
let bad_query = sql!("SELECT * FORM users WEHRE name = $1");
}
```
```
test.rs:8:26: 8:63 error: Invalid syntax at position 10: syntax error at or near "FORM"
test.rs:8 let bad_query = sql!("SELECT * FORM users WEHRE name = $1");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
```
Credits
=======
Major thanks to [pganalyze](http://pganalyze.com) for their
[writeup](https://pganalyze.com/blog/parse-postgresql-queries-in-ruby.html) on
how to link to the Postgres query parser directly!
## License
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
Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the Apache-2.0
license, shall be dual licensed as above, without any additional terms or
conditions.