跨平台的 MySQL Parser

5 天前
 abbychau
我剛搞好了一個 MySQL 解析器,之後會用在 MIST 裡面。

事情是這樣的:TiDB 的 MySQL 解析器是目前最兼容 MySQL 的解析器了,但它要完美運行, 要依賴一個叫 "parser\_driver" 的包。Parser Driver 裡面有 TiDB 的類型,但 TiDB 官方貌似不打算把這些跟 TiDB 糾纏很深的 MySQL 類型單獨拆出來做成獨立的 Go 包。GitHub issue: 16381

我覺得 TiDB 現在就是把所有開源模組全部混在一起,搞成一個 opininated monolith 。

我在把 MIST 移植到 WASM 的時候,TiDB 的系統調用會被莫名其妙地包進來一起編譯,結果在編譯 WASM 的時候靜態鏈接就掛了。

所以我花了幾天把現有的 parser 包和 parser driver 給拆出來,把那些糾纏不清的 TiDB 類型重新整理成一個真正能用的 MySQL 解析器 Go 包,這個包可以跨平台編譯,也能移植到 WASM 。

代碼庫: https://github.com/abbychau/mysql-parser
在線解析器演示: https://abbychau.github.io/mysql-parser/
1342 次点击
所在节点    MySQL
6 条回复
emric
5 天前
赞 👍
c4pt0r
5 天前
cool, yet another...其实并不是设计的,在 tidb 的历史上,你做的事情其实干过好几次,但是每次都是好景不长,过了 1 年又纠缠在一起了。。。
abbychau
5 天前
@c4pt0r 大哥的主頁好像掛了?
c4pt0r
4 天前
@abbychau 哪个?我的 blog ?很久没更新了,我放问下还行(北美)
abbychau
3 天前
@c4pt0r 可以了,可能之前有點連接有點波動。我還留了一個言也發不出去 orz...

那 issue 開了三年,一開始只是 build deps 的問題,現在索性越嵌越深了 wwww
abbychau
1 天前
更新一下:Mist 的面向 mysql 的 compatibility 也七七八八了:

https://mist.abby.md/mysql_compatibility.html
https://mist.abby.md/playground.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1142073

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX