使用PEG实现运行时可扩展SQL解析器

2024-11-23

本文讨论了如何利用解析表达式语法(PEG)改进SQL解析器,使其支持运行时扩展。传统SQL解析器基于过时的技术,难以适应新的语法和语言扩展。PEG解析器允许动态修改语法,支持语法扩展、新语句甚至全新查询语言,例如将dplyr集成到SQL解析器中。文章通过实验验证了PEG的可行性,并展示了其在添加UNPIVOT语句、扩展SQL/PGQ图模式以及改进错误消息方面的应用。虽然PEG解析器在原型阶段的性能略逊于传统解析器,但其灵活性和可扩展性为SQL解析器现代化提供了 promising 的方向。