V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
abbychau
V2EX  ›  MySQL

跨平台的 MySQL Parser

  •  
  •   abbychau · 4 天前 · 1311 次点击
    我剛搞好了一個 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/
    6 条回复    2025-07-04 16:26:10 +08:00
    emric
        1
    emric  
       4 天前
    赞 👍
    c4pt0r
        2
    c4pt0r  
       4 天前   ❤️ 2
    cool, yet another...其实并不是设计的,在 tidb 的历史上,你做的事情其实干过好几次,但是每次都是好景不长,过了 1 年又纠缠在一起了。。。
    abbychau
        3
    abbychau  
    OP
       4 天前
    @c4pt0r 大哥的主頁好像掛了?
    c4pt0r
        4
    c4pt0r  
       3 天前
    @abbychau 哪个?我的 blog ?很久没更新了,我放问下还行(北美)
    abbychau
        5
    abbychau  
    OP
       2 天前
    @c4pt0r 可以了,可能之前有點連接有點波動。我還留了一個言也發不出去 orz...

    那 issue 開了三年,一開始只是 build deps 的問題,現在索性越嵌越深了 wwww
    abbychau
        6
    abbychau  
    OP
       21 小时 5 分钟前
    更新一下:Mist 的面向 mysql 的 compatibility 也七七八八了:

    https://mist.abby.md/mysql_compatibility.html
    https://mist.abby.md/playground.html
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2565 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 05:31 · PVG 13:31 · LAX 22:31 · JFK 01:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.