Categorygithub.com/shadow-linux/parser
modulepackage
3.1.2+incompatible
Repository: https://github.com/shadow-linux/parser.git
Documentation: pkg.go.dev

# README

Parser

Go Report Card CircleCI Status GoDoc codecov

TiDB SQL Parser

How to use it

See https://godoc.org/github.com/pingcap/parser

How to update parser for TiDB

Assuming that you want to file a PR (pull request) to TiDB, and your PR includes a change in the parser, follow these steps to update the parser in TiDB.

Step 1: Make changes in your parser repository

Fork this repository to your own account and commit the changes to your repository.

Note:

  • Don't forget to run make test before you commit!
  • Make sure parser.go is updated.

Suppose the forked repository is https://github.com/your-repo/parser.

Step 2: Make your parser changes take effect in TiDB and run CI

  1. In your TiDB repository, execute the replace instruction to make your parser changes take effect:

    GO111MODULE=on go mod edit -replace github.com/pingcap/parser=github.com/your-repo/parser@your-branch
    
  2. make dev to run CI in TiDB.

  3. File a PR to TiDB.

Step 3: Merge the PR about the parser to this repository

File a PR to this repository. Link the related PR in TiDB in your PR description or comment.

This PR will be reviewed, and if everything goes well, it will be merged.

Step 4: Update TiDB to use the latest parser

In your TiDB pull request, modify the go.mod file manually or use this command:

GO111MODULE=on go get -u github.com/pingcap/parser@master

Make sure the replace instruction is changed back to the require instruction and the version is the latest.

# Packages

Package ast is the abstract syntax tree parsed from a SQL statement by parser.
No description provided by the author
No description provided by the author
No description provided by the author
Goyacc is a version of yacc generating Go parsers.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

DigestHash generates the digest of statements.
DigestNormalized generates the digest of a normalized sql.
New returns a Parser object.
NewScanner returns a new scanner object.
Normalize generates the normalized statements.
NormalizeDigest combines Normalize and DigestNormalized into one method.
ParseErrorWith returns "You have a syntax error near..." error message compatible with mysql.
ParseHint parses an optimizer hint (the interior of `/*+ ..
TrimComment trim comment for special comment code of MySQL.

# Variables

ErrInvalidYearColumnLength returns for illegal column length for year type.
ErrParse returns for sql parse error.
ErrSyntax returns for sql syntax error.
ErrTooBigDisplayWidth returns for data display width exceed limit .
ErrUnknownAlterAlgorithm returns for no alter algorithm found error.
ErrUnknownAlterLock returns for no alter lock type found error.
ErrUnknownCharacterSet returns for no character set found error.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
ErrWrongArguments returns for illegal argument.
ErrWrongFieldTerminators returns for illegal field terminators.
SpecFieldPattern special result field pattern.
SpecialCommentsController controls whether special comments like `/*T![xxx] yyy */` can be parsed as `yyy`.

# Structs

Parser represents a parser instance.
Pos represents the position of a token.
Scanner implements the yyLexer interface.