#postgresql #sql-query #syntax #compile-time #checking #syntax-error

postgres-syntax

编译时检查 PostgreSQL 查询的语法

5个不稳定版本

0.3.0 2024年2月21日
0.2.0 2023年5月15日
0.1.3 2022年12月1日
0.1.2 2021年10月10日

#15#syntax-error

每月44次下载

MIT/Apache

13KB

postgres-syntax

本crate使用pg_query crate(目前版本5.1,使用libpg_query 16-5.1.0)提供简单的编译时检查 PostgreSQL 查询的语法。

它不知道你的模式,所以它不会做类型检查或验证你引用的表是否存在。它只是检查 SQL 语法是否有效。如果你想要类型和名称检查,你可能更喜欢 sqlx

Crate

示例

crate提供了一个宏,postgres_syntax::sql,它接受一个字符串字面量,如果它是有效的 SQL 语法,则将其传递,如果它不是有效的 SQL,则发出编译器错误。

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
  |
4 |   let _ = sql!("SELECT name, email_address FROM user WHERE id = $1 BLARG");
  |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |

许可证

postgres-syntax许可协议为以下之一

任选其一。

贡献

欢迎以pull request形式提供各种类型的贡献。

除非你明确表示,否则根据Apache-2.0许可证定义,你故意提交给这些crate的任何贡献都应按上述方式双重许可,不附加任何额外条款或条件。

致谢

postgres-syntax的开发由AVStack赞助。我们提供全球分布式、可扩展、托管的视频/音频基础设施。

依赖关系

~23MB
~446K SLoC