Documentation
¶
Index ¶
- Variables
- func ParseErrorWith(errstr string, lineno int) error
- func ParseHint(input string, sqlMode mysql.SQLMode, initPos Pos) ([]*ast.TableOptimizerHint, []error)
- type CharsetConnection
- type CollationConnection
- type ParseParam
- type Parser
- func (parser *Parser) EnableWindowFunc(val bool)
- func (parser *Parser) Parse(sql, charset, collation string) (stmt []ast.StmtNode, warns []error, err error)
- func (parser *Parser) ParseOneStmt(sql, charset, collation string) (ast.StmtNode, error)
- func (parser *Parser) ParseSQL(sql string, params ...ParseParam) (stmt []ast.StmtNode, warns []error, err error)
- func (parser *Parser) Reset()
- func (parser *Parser) SetParserConfig(config ParserConfig)
- func (parser *Parser) SetSQLMode(mode mysql.SQLMode)
- func (parser *Parser) SetStrictDoubleTypeCheck(val bool)
- type ParserConfig
- type Pos
- type Scanner
- func (s *Scanner) AppendError(err error)
- func (s *Scanner) AppendWarn(err error)
- func (s *Scanner) EnableWindowFunc(val bool)
- func (s *Scanner) Errorf(format string, a ...interface{}) (err error)
- func (s *Scanner) Errors() (warns []error, errs []error)
- func (s *Scanner) GetSQLMode() mysql.SQLMode
- func (s *Scanner) InheritScanner(sql string) *Scanner
- func (s *Scanner) Lex(v *yySymType) int
- func (s *Scanner) LexLiteral() interface{}
- func (s *Scanner) SetSQLMode(mode mysql.SQLMode)
Constants ¶
This section is empty.
Variables ¶
var ( ErrWarnOptimizerHintUnsupportedHint = mysql.NewStdErr("parser", mysql.ErrWarnOptimizerHintUnsupportedHint) ErrWarnOptimizerHintInvalidToken = mysql.NewStdErr("parser", mysql.ErrWarnOptimizerHintInvalidToken) ErrWarnOptimizerHintParseError = mysql.NewStdErr("parser", mysql.ErrWarnOptimizerHintParseError) ErrWarnOptimizerHintInvalidInteger = mysql.NewStdErr("parser", mysql.ErrWarnOptimizerHintInvalidInteger) ErrWarnOptimizerHintWrongPos = mysql.NewStdErr("parser", mysql.ErrWarnOptimizerHintWrongPos) )
var ( // ErrSyntax returns for sql syntax error. ErrSyntax = mysql.NewStdErr("parser", mysql.ErrSyntax) // ErrParse returns for sql parse error. ErrParse = mysql.NewStdErr("parser", mysql.ErrParse) // ErrUnknownCharacterSet returns for no character set found error. ErrUnknownCharacterSet = mysql.NewStdErr("parser", mysql.ErrUnknownCharacterSet) // ErrInvalidYearColumnLength returns for illegal column length for year type. ErrInvalidYearColumnLength = mysql.NewStdErr("parser", mysql.ErrInvalidYearColumnLength) // ErrWrongArguments returns for illegal argument. ErrWrongArguments = mysql.NewStdErr("parser", mysql.ErrWrongArguments) // ErrWrongFieldTerminators returns for illegal field terminators. ErrWrongFieldTerminators = mysql.NewStdErr("parser", mysql.ErrWrongFieldTerminators) // ErrTooBigDisplayWidth returns for data display width exceed limit . ErrTooBigDisplayWidth = mysql.NewStdErr("parser", mysql.ErrTooBigDisplaywidth) // ErrTooBigPrecision returns for data precision exceed limit. ErrTooBigPrecision = mysql.NewStdErr("parser", mysql.ErrTooBigPrecision) // ErrUnknownAlterLock returns for no alter lock type found error. ErrUnknownAlterLock = mysql.NewStdErr("parser", mysql.ErrUnknownAlterLock) // ErrUnknownAlterAlgorithm returns for no alter algorithm found error. ErrUnknownAlterAlgorithm = mysql.NewStdErr("parser", mysql.ErrUnknownAlterAlgorithm) // ErrWrongValue returns for wrong value ErrWrongValue = mysql.NewStdErr("parser", mysql.ErrWrongValue) // ErrWarnDeprecatedSyntax return when the syntax was deprecated ErrWarnDeprecatedSyntax = mysql.NewStdErr("parser", mysql.ErrWarnDeprecatedSyntax) // ErrWarnDeprecatedSyntaxNoReplacement return when the syntax was deprecated and there is no replacement. ErrWarnDeprecatedSyntaxNoReplacement = mysql.NewStdErr("parser", mysql.ErrWarnDeprecatedSyntaxNoReplacement) // ErrWrongUsage returns for incorrect usages. ErrWrongUsage = mysql.NewStdErr("parser", mysql.ErrWrongUsage) // ErrWrongDBName returns for incorrect DB name. ErrWrongDBName = mysql.NewStdErr("parser", mysql.ErrWrongDBName) // ErrDataOutOfRange returns for incorrect range. ErrDataOutOfRange = mysql.NewStdErr("parser", mysql.ErrDataOutOfRange) )
Functions ¶
func ParseErrorWith ¶
ParseErrorWith returns "You have a syntax error near..." error message compatible with mysql.
Types ¶
type CharsetConnection ¶
type CharsetConnection string
CharsetConnection is used for literals specified without a character set.
func (CharsetConnection) ApplyOn ¶
func (c CharsetConnection) ApplyOn(p *Parser) error
ApplyOn implements ParseParam interface.
type CollationConnection ¶
type CollationConnection string
CollationConnection is used for literals specified without a collation.
func (CollationConnection) ApplyOn ¶
func (c CollationConnection) ApplyOn(p *Parser) error
ApplyOn implements ParseParam interface.
type ParseParam ¶
ParseParam represents the parameter of parsing.
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
Parser represents a parser instance. Some temporary objects are stored in it to reduce object allocation during Parse function.
func (*Parser) EnableWindowFunc ¶
EnableWindowFunc controls whether the parser to parse syntax related with window function.
func (*Parser) Parse ¶
func (parser *Parser) Parse(sql, charset, collation string) (stmt []ast.StmtNode, warns []error, err error)
Parse parses a query string to raw ast.StmtNode. If charset or collation is "", default charset and collation will be used.
func (*Parser) ParseOneStmt ¶
ParseOneStmt parses a query and returns an ast.StmtNode. The query must have one statement, otherwise ErrSyntax is returned.
func (*Parser) ParseSQL ¶
func (parser *Parser) ParseSQL(sql string, params ...ParseParam) (stmt []ast.StmtNode, warns []error, err error)
ParseSQL parses a query string to raw ast.StmtNode.
func (*Parser) SetParserConfig ¶
func (parser *Parser) SetParserConfig(config ParserConfig)
SetParserConfig sets the parser config.
func (*Parser) SetSQLMode ¶
SetSQLMode sets the SQL mode for parser.
func (*Parser) SetStrictDoubleTypeCheck ¶
SetStrictDoubleTypeCheck enables/disables strict double type check.
type ParserConfig ¶
type ParserConfig struct {
EnableWindowFunction bool
EnableStrictDoubleTypeCheck bool
SkipPositionRecording bool
}
ParserConfig is the parser config.
type Scanner ¶
type Scanner struct {
// contains filtered or unexported fields
}
Scanner implements the yyLexer interface.
func (*Scanner) AppendError ¶
AppendError sets error into scanner. Scanner satisfies yyLexer interface which need this function.
func (*Scanner) AppendWarn ¶
AppendWarn sets warning into scanner.
func (*Scanner) EnableWindowFunc ¶
EnableWindowFunc controls whether the scanner recognize the keywords of window function.
func (*Scanner) Errorf ¶
Errorf tells scanner something is wrong. Scanner satisfies yyLexer interface which need this function.
func (*Scanner) GetSQLMode ¶
GetSQLMode return the SQL mode of scanner.
func (*Scanner) InheritScanner ¶
InheritScanner returns a new scanner object which inherits configurations from the parent scanner.
func (*Scanner) Lex ¶
Lex returns a token and store the token value in v. Scanner satisfies yyLexer interface. 0 and invalid are special token id this function would return: return 0 tells parser that scanner meets EOF, return invalid tells parser that scanner meets illegal character.
func (*Scanner) LexLiteral ¶
func (s *Scanner) LexLiteral() interface{}
LexLiteral returns the value of the converted literal
func (*Scanner) SetSQLMode ¶
SetSQLMode sets the SQL mode for scanner.