Skip to main content

Module sql_route

Module sql_route 

Source
Expand description

SQL 路由工具:从查询 SQL 中识别命名 provider 前缀并剥离。

OML 查询如 select country_name from geo.public.ip_geo_city where ip_num = :ip_num 中,首个表引用第一段 geo 指向已安装的命名 provider,geo. 前缀会被剥离后 再交给 PostgreSQL(否则 PG 会把三段名当作 catalog.schema.table 并报跨库错误)。

Functions§

first_table_name
返回 SQL 中首个 FROM 表引用(跳过字符串与注释,递归处理子查询)。
route_provider_sql
从 SQL 中提取路由信息:若首个表引用第一段命中已安装的命名 provider, 返回 (provider_name, 剥离前缀后的 SQL);否则返回 None(走默认 provider)。
strip_provider_prefix
引号感知地剥离 SQL 中所有 <name>. 前缀(仅当处于标识符起始位置, 即前一个字符不是标识符或 .,且 <name>. 后紧跟标识符)。