Closed zhi-zhi-zhi closed 11 months ago
对于不同版本的问题,我们也很头疼,目前采取的策略是,语法文件和对应的单元测试根据最新的官方文档编写,同时兼容部分低版本的语法,比如mysql的支持 8.x 语法,同时兼容了 5.x 的语法 。Flink 和 Trino 稍微特殊一点,Flink 支持的版本是 Flink 1.16 (目前此版本应用最广泛), Trino 支持的版本是 385。
需要兼容低版本的语法的情况并不太多,sql 很少会有对某种语法破坏性变更(破坏性变更包括废弃语法和修改原有语法)绝大多数情况下新版本相比于旧版本都是新增语法,另外,我们会有选择性的进行兼容,有一些只在很低版本支持的语法,我们也并没有做兼容。这样做是因为我们需要在维护成本和支持度上取得平衡。
如果你需要其他版本的支持,你可以fork本项目自行修改语法文件,并运行 npm run antlr4
命令重新编译语法文件。
谢谢解答! @HaydenOrz
PostgreSQL 看了一下里面的 comment,有提到 PostgreSQL 14,请问 PostgreSQL 支持的大版本是到 14 了吗?
PostgreSQL 看了一下里面的 comment,有提到 PostgreSQL 14,请问 PostgreSQL 支持的大版本是到 14 了吗?
pgsql 目前支持到 16.1 即最新版本, 你可以通过 postgresql 的官方文档查看到版本信息 https://www.postgresql.org/docs/
另外 dt-sql-parser 中 pgsql 的grammar文件也注释了文档链接
如题