PawSQL 在 6 月持续推进语法解析、索引优化与 T-SQL 审核支持的深度与广度。特别是在 SQL Server 的适配、复杂语法的兼容处理、索引推荐引擎修复与 DML 审核智能化方面,展现出强劲的产品演进能力。
一、T-SQL语法全面增强
6 月中旬,PawSQL 推出针对 SQL Server(MSSQL) 的重大语法支持更新,涵盖常见与边缘特性:
✅ 关键支持包括:
-
[varchar](32)
形式的数据类型解析 -
db..table
跨库引用语法 -
SET col1 += col2
运算支持 -
INSERT INTO ... EXEC ...
的嵌套调用语法 -
支持
columnstore
索引 -
支持
table hint
、query hint
-
识别
UNIQUEIDENTIFIER
、char(max)
数据类型 -
支持
NEXT VALUE FOR
变量生成语法 -
支持
abc::method()
类型函数调用 -
支持 基于游标(cursor) 的
DELETE/UPDATE
-
支持 MSSQL 远程表引用
-
百分比常量
10%
支持
二、索引推荐引擎优化
✅ 更新亮点:
-
修复覆盖索引候选列遗漏:即使字段被函数包裹(如
IFNULL(col,0)
),也能识别为可索引字段。 -
优化
index on expression
场景的解析,识别表达式导致索引失效的情况。 -
若
SELECT *
出现在EXISTS
子查询中,也能作为indexonly
候选。 -
修复候选索引合并逻辑缺陷,提升 JOIN 列上的推荐准确性。
-
当 SQL 中没有任何索引相关信息时,不再展示冗余的索引分析段落。
三、SQL 解析器增强
✅ 解析精度提升:
-
初始化 SQL 解析时引入表对象栈,为复杂嵌套解析打下基础。
-
如果脚本仅包含单表、且列未标明表前缀,将智能赋予默认归属表。
-
修复文件起始即为分隔符时的边界解析 bug。
-
对 Oracle/PostgreSQL
$
符号的标识符做兼容支持。
四、SQL 审核策略优化
✅ 审核粒度更精细:
-
审核视图时,仅检查其内部 SQL 语句,不再对视图定义本体做多余检查。
-
对 SQL Server 临时表(
#temp
)的支持强化,并排除部分不适用的审核规则,如:-
命名规范强校验
-
删除对象限制
-
字段注释与默认值要求
-
表主键/字段完整性要求等
-
🎯 这意味着 PawSQL 可更智能区分“业务性表”与“临时性对象”,避免误报与过审约束。
✅ 审核规则增强:
-
在基于游标的 DML 操作中,若未显式条件,审计将不再误报“无条件 DML 警告”,体现对业务语义的更好理解。