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