Expand description
原生 SQL 语句编译:命名占位符(:name)→ 方言占位符 + 读写推断(纯逻辑,无 IO)。
为宿主 execute_raw 的「两档」能力提供 core 侧唯一实现:
- 位置档(params 为数组/null):SQL 原样透传,占位符由调用方手写方言原生风格
(对标 SQLAlchemy
exec_driver_sql()); - 命名档(params 为对象):
:name按出现顺序编译为Backend::placeholder, 参数按引用顺序重排、同名复用(对标 SQLAlchemytext())。
跳过边界(R4)保证字符串/注释/PG cast 内的冒号不被误编译;读写推断(R7)以 「默认写」为安全方向——误判为写至多路由主库,误判为读会读到旧数据。
Structs§
- RawStmt
- 编译产物:最终 SQL + 重排后参数 + 读写标记
Functions§
- compile_
raw_ stmt - 原生 SQL 语句编译。