vitess-sqlparser

适用于 Go 的简单 SQL 解析器(由 vitess 和 TiDB 提供)。「simply SQL Parser for Go ( powered by vitess and TiDB )」

Github星跟踪图

vitess-sqlparser

用于 Go 的简单 SQL 和 DDL 解析器(由 vitess 和 TiDB 提供)这个库的灵感来自于 https://github.com/xwb1989/sqlparser

(原始来源:https://github.com/youtube/vitess/tree/master/go/vt/sqlparser)

为什么

xwb1989/sqlparser 是 Go 中著名的 sql 解析器。

但是它无法解析某些查询(例如偏移量或批量插入...),因为它自定义了 vitess 的 sql 解析器。

另外,某些库直接从 vitess sql 解析器中使用。但是 vitess 的 sql 解析器仅部分支持 DDL 解析。

我们希望完美地支持 SQL 和 DDL 的解析。

因此,我们直接使用 vitess sql 解析器,也使用 TiDB 解析器进行 DDL 解析。

比较 Go 中的 SQL 解析器库

library supports offset (or other complexity) query supports DDL
xwb1989/sqlparser
zhenjl/sqlparser
knocknote/vitess-sqlparser

安装

[注意] 要求 Go 版本高于 1.9。
go get -u github.com/knocknote/vitess-sqlparser

示例

package main

import (
     "fmt"
    "github.com/knocknote/vitess-sqlparser/sqlparser"
)

func main() {
    stmt, err := sqlparser.Parse("select * from user_items where user_id=1 order by created_at limit 3 offset 10")
    if err != nil {
        panic(err)
    }
    fmt.Printf("stmt = %+v\n", stmt)
}


(The first version translated by vz on 2020.08.12)

主要指标

概览
名称与所有者blastrain/vitess-sqlparser
主编程语言Go
编程语言Go (语言数: 2)
平台Linux, Mac, Windows
许可证Apache License 2.0
所有者活动
创建于2017-08-09 08:32:20
推送于2022-11-14 17:12:15
最后一次提交2017-08-09 17:32:21
发布数0
用户参与
星数470
关注者数21
派生数81
提交数60
已启用问题?
问题数23
打开的问题数18
拉请求数15
打开的拉请求数1
关闭的拉请求数2
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?

vitess-sqlparser

Simply SQL and DDL parser for Go (powered by vitess and TiDB )
this library inspired by https://github.com/xwb1989/sqlparser

(original source : https://github.com/youtube/vitess/tree/master/go/vt/sqlparser)

Why

xwb1989/sqlparser is famous sql parser in Go.
But it cannot parse some query (like offset or bulk insert...) because it customizes vitess's sql parser.

Also, some libraries use from vitess sql parser directly. But vitess's sql parser only partial supports DDL parsing.

We want to perfectly support parsing for SQL and DDL.
Therefore we use vitess sql parser directly and also use TiDB parser for DDL parsing.

Compare SQL parser libraries in Go