marino

module
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2026 License: Apache-2.0

README

Marino - A MySQL Compatible SQL Parser

TODO

About

The goal of this project is to build a Golang parser that is fully compatible with MySQL syntax, easy to extend, and high performance. Currently, features supported by parser are as follows:

  • Highly compatible with MySQL: it supports almost all features of MySQL.
  • Extensible: the grammar is hand-written recursive descent — adding a new syntax is a few lines of ordinary Go.
  • Good performance: a single-pass hand-written parser with a streaming lexer and no parser-generator runtime.

Acknowledgments

Marino is a hard fork of pingcap/parser, the MySQL-compatible SQL parser developed as part of TiDB. Huge thanks to the TiDB team and all the upstream contributors whose work this project is built on.

License

Marino is under the Apache 2.0 license. See the LICENSE file for details.

Directories

Path Synopsis
Package ast is the abstract syntax tree parsed from a SQL statement by parser.
Package ast is the abstract syntax tree parsed from a SQL statement by parser.
Package duration provides a customized duration, which supports unit 'd', 'h' and 'm'
Package duration provides a customized duration, which supports unit 'd', 'h' and 'm'
internal
dump
Package dump renders AST nodes as deterministic, human-reviewable trees.
Package dump renders AST nodes as deterministic, human-reviewable trees.
panics
Package panics exists because the parser package's generated token constants include `any` and `recover` (the MySQL keywords), shadowing the Go builtins at package scope.
Package panics exists because the parser package's generated token constants include `any` and `recover` (the MySQL keywords), shadowing the Go builtins at package scope.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL