重新格式化(PL /)SQL代码的语义等价

背景

系统中的数百个数据库对象(视图,包,存储过程等)没有格式化,也没有源代码注释.我们想:

>自动重新格式化代码(使用General SQL Parser).
>自动将标准注释标题复制到每个对象的源文件中.

问题

我们不能在没有经过测试的情况下将这种彻底的变化推向生产.

您如何验证重新格式化的源代码在功能上与未格式化的代码相同?

谢谢!

最佳答案 简单:

>针对新的新数据库运行未格式化的代码
>对新的新数据库运行格式化代码
>完全导出两者并比较两个文件

它们应该完全相同.

它们应该完全相同的原因是postgres将SQL解析为其标准的规范形式,因此即使添加不必要的括号,例如也应该导致相同的内部版本的代码.

点赞