Skip to main content

Module raw

Module raw 

Source
Expand description

原生 SQL 语句编译:命名占位符(:name)→ 方言占位符 + 读写推断(纯逻辑,无 IO)。

为宿主 execute_raw 的「两档」能力提供 core 侧唯一实现:

  • 位置档(params 为数组/null):SQL 原样透传,占位符由调用方手写方言原生风格 (对标 SQLAlchemy exec_driver_sql());
  • 命名档(params 为对象)::name 按出现顺序编译为 Backend::placeholder, 参数按引用顺序重排、同名复用(对标 SQLAlchemy text())。

跳过边界(R4)保证字符串/注释/PG cast 内的冒号不被误编译;读写推断(R7)以 「默认写」为安全方向——误判为写至多路由主库,误判为读会读到旧数据。

Structs§

RawStmt
编译产物:最终 SQL + 重排后参数 + 读写标记

Functions§

compile_raw_stmt
原生 SQL 语句编译。