提交 840a5cee 编写于 作者: martianzhang's avatar martianzhang

update vendor support more mysql syntax

上级 50a0bc2e
...@@ -610,6 +610,7 @@ var tokenMap = map[string]int{ ...@@ -610,6 +610,7 @@ var tokenMap = map[string]int{
"TRIM": trim, "TRIM": trim,
"TRUE": trueKwd, "TRUE": trueKwd,
"TRUNCATE": truncate, "TRUNCATE": truncate,
"TYPE": tp,
"UNBOUNDED": unbounded, "UNBOUNDED": unbounded,
"UNCOMMITTED": uncommitted, "UNCOMMITTED": uncommitted,
"UNDEFINED": undefined, "UNDEFINED": undefined,
......
...@@ -267,6 +267,9 @@ const ( ...@@ -267,6 +267,9 @@ const (
MaxDurationWidthNoFsp = 10 // HH:MM:SS MaxDurationWidthNoFsp = 10 // HH:MM:SS
MaxDurationWidthWithFsp = 15 // HH:MM:SS[.fraction] MaxDurationWidthWithFsp = 15 // HH:MM:SS[.fraction]
MaxBlobWidth = 16777216 MaxBlobWidth = 16777216
MaxBitDisplayWidth = 64
MaxFloatPrecisionLength = 24
MaxDoublePrecisionLength = 53
) )
// MySQL max type field length. // MySQL max type field length.
......
...@@ -883,6 +883,7 @@ const ( ...@@ -883,6 +883,7 @@ const (
ErrRowInWrongPartition = 1863 ErrRowInWrongPartition = 1863
ErrErrorLast = 1863 ErrErrorLast = 1863
ErrMaxExecTimeExceeded = 1907 ErrMaxExecTimeExceeded = 1907
ErrInvalidFieldSize = 3013
ErrInvalidJSONData = 3069 ErrInvalidJSONData = 3069
ErrGeneratedColumnFunctionIsNotAllowed = 3102 ErrGeneratedColumnFunctionIsNotAllowed = 3102
ErrBadGeneratedColumn = 3105 ErrBadGeneratedColumn = 3105
......
...@@ -885,6 +885,7 @@ var MySQLErrName = map[uint16]string{ ...@@ -885,6 +885,7 @@ var MySQLErrName = map[uint16]string{
ErrDependentByGeneratedColumn: "Column '%s' has a generated column dependency.", ErrDependentByGeneratedColumn: "Column '%s' has a generated column dependency.",
ErrGeneratedColumnFunctionIsNotAllowed: "Expression of generated column '%s' contains a disallowed function.", ErrGeneratedColumnFunctionIsNotAllowed: "Expression of generated column '%s' contains a disallowed function.",
ErrGeneratedColumnRefAutoInc: "Generated column '%s' cannot refer to auto-increment column.", ErrGeneratedColumnRefAutoInc: "Generated column '%s' cannot refer to auto-increment column.",
ErrInvalidFieldSize: "Invalid size for column '%s'.",
ErrInvalidJSONData: "Invalid JSON data provided to function %s: %s", ErrInvalidJSONData: "Invalid JSON data provided to function %s: %s",
ErrInvalidJSONText: "Invalid JSON text: %-.192s", ErrInvalidJSONText: "Invalid JSON text: %-.192s",
ErrInvalidJSONPath: "Invalid JSON path expression %s.", ErrInvalidJSONPath: "Invalid JSON path expression %s.",
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
...@@ -491,6 +491,7 @@ import ( ...@@ -491,6 +491,7 @@ import (
transaction "TRANSACTION" transaction "TRANSACTION"
triggers "TRIGGERS" triggers "TRIGGERS"
truncate "TRUNCATE" truncate "TRUNCATE"
tp "TYPE"
unbounded "UNBOUNDED" unbounded "UNBOUNDED"
uncommitted "UNCOMMITTED" uncommitted "UNCOMMITTED"
unknown "UNKNOWN" unknown "UNKNOWN"
...@@ -845,11 +846,13 @@ import ( ...@@ -845,11 +846,13 @@ import (
IndexKeyTypeOpt "index key type" IndexKeyTypeOpt "index key type"
IndexLockAndAlgorithmOpt "index lock and algorithm" IndexLockAndAlgorithmOpt "index lock and algorithm"
IndexName "index name" IndexName "index name"
IndexNameAndTypeOpt "index name and index type"
IndexNameList "index name list" IndexNameList "index name list"
IndexOption "Index Option" IndexOption "Index Option"
IndexOptionList "Index Option List or empty" IndexOptionList "Index Option List or empty"
IndexType "index type" IndexType "index type"
IndexTypeOpt "Optional index type" IndexTypeName "index type name"
IndexTypeOpt "optional index type"
InsertValues "Rest part of INSERT/REPLACE INTO statement" InsertValues "Rest part of INSERT/REPLACE INTO statement"
JoinTable "join table" JoinTable "join table"
JoinType "join type" JoinType "join type"
...@@ -2440,20 +2443,20 @@ ColumnOptionListOpt: ...@@ -2440,20 +2443,20 @@ ColumnOptionListOpt:
} }
ConstraintElem: ConstraintElem:
"PRIMARY" "KEY" IndexName IndexTypeOpt '(' IndexColNameList ')' IndexOptionList "PRIMARY" "KEY" IndexNameAndTypeOpt '(' IndexColNameList ')' IndexOptionList
{ {
c := &ast.Constraint{ c := &ast.Constraint{
Tp: ast.ConstraintPrimaryKey, Tp: ast.ConstraintPrimaryKey,
Keys: $6.([]*ast.IndexColName), Keys: $5.([]*ast.IndexColName),
} }
if $8 != nil { if $7 != nil {
c.Option = $8.(*ast.IndexOption) c.Option = $7.(*ast.IndexOption)
} }
if $4 != nil { if indexType := $3.([]interface{})[1]; indexType != nil {
if c.Option == nil { if c.Option == nil {
c.Option = &ast.IndexOption{} c.Option = &ast.IndexOption{}
} }
c.Option.Tp = $4.(model.IndexType) c.Option.Tp = indexType.(model.IndexType)
} }
$$ = c $$ = c
} }
...@@ -2469,40 +2472,40 @@ ConstraintElem: ...@@ -2469,40 +2472,40 @@ ConstraintElem:
} }
$$ = c $$ = c
} }
| KeyOrIndex IfNotExists IndexName IndexTypeOpt '(' IndexColNameList ')' IndexOptionList | KeyOrIndex IfNotExists IndexNameAndTypeOpt '(' IndexColNameList ')' IndexOptionList
{ {
c := &ast.Constraint{ c := &ast.Constraint{
IfNotExists: $2.(bool), IfNotExists: $2.(bool),
Tp: ast.ConstraintIndex, Tp: ast.ConstraintIndex,
Keys: $6.([]*ast.IndexColName), Keys: $5.([]*ast.IndexColName),
Name: $3.(string),
} }
if $8 != nil { if $7 != nil {
c.Option = $8.(*ast.IndexOption) c.Option = $7.(*ast.IndexOption)
} }
if $4 != nil { c.Name = $3.([]interface{})[0].(string)
if indexType := $3.([]interface{})[1]; indexType != nil {
if c.Option == nil { if c.Option == nil {
c.Option = &ast.IndexOption{} c.Option = &ast.IndexOption{}
} }
c.Option.Tp = $4.(model.IndexType) c.Option.Tp = indexType.(model.IndexType)
} }
$$ = c $$ = c
} }
| "UNIQUE" KeyOrIndexOpt IndexName IndexTypeOpt '(' IndexColNameList ')' IndexOptionList | "UNIQUE" KeyOrIndexOpt IndexNameAndTypeOpt '(' IndexColNameList ')' IndexOptionList
{ {
c := &ast.Constraint{ c := &ast.Constraint{
Tp: ast.ConstraintUniq, Tp: ast.ConstraintUniq,
Keys: $6.([]*ast.IndexColName), Keys: $5.([]*ast.IndexColName),
Name: $3.(string),
} }
if $8 != nil { if $7 != nil {
c.Option = $8.(*ast.IndexOption) c.Option = $7.(*ast.IndexOption)
} }
if $4 != nil { c.Name = $3.([]interface{})[0].(string)
if indexType := $3.([]interface{})[1]; indexType != nil {
if c.Option == nil { if c.Option == nil {
c.Option = &ast.IndexOption{} c.Option = &ast.IndexOption{}
} }
c.Option.Tp = $4.(model.IndexType) c.Option.Tp = indexType.(model.IndexType)
} }
$$ = c $$ = c
} }
...@@ -2692,6 +2695,8 @@ NumLiteral: ...@@ -2692,6 +2695,8 @@ NumLiteral:
/**************************************CreateIndexStmt*************************************** /**************************************CreateIndexStmt***************************************
* See https://dev.mysql.com/doc/refman/8.0/en/create-index.html * See https://dev.mysql.com/doc/refman/8.0/en/create-index.html
* *
* TYPE type_name is recognized as a synonym for USING type_name. However, USING is the preferred form.
*
* CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name * CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
* [index_type] * [index_type]
* ON tbl_name (key_part,...) * ON tbl_name (key_part,...)
...@@ -4195,7 +4200,6 @@ IndexOptionList: ...@@ -4195,7 +4200,6 @@ IndexOptionList:
} }
} }
IndexOption: IndexOption:
"KEY_BLOCK_SIZE" EqOpt LengthNum "KEY_BLOCK_SIZE" EqOpt LengthNum
{ {
...@@ -4230,18 +4234,37 @@ IndexOption: ...@@ -4230,18 +4234,37 @@ IndexOption:
} }
} }
IndexType: /*
"USING" "BTREE" See: https://github.com/mysql/mysql-server/blob/8.0/sql/sql_yacc.yy#L7179
The syntax for defining an index is:
... INDEX [index_name] [USING|TYPE] <index_type> ...
The problem is that whereas USING is a reserved word, TYPE is not. We can
still handle it if an index name is supplied, i.e.:
... INDEX type TYPE <index_type> ...
here the index's name is unmbiguously 'type', but for this:
... INDEX TYPE <index_type> ...
it's impossible to know what this actually mean - is 'type' the name or the
type? For this reason we accept the TYPE syntax only if a name is supplied.
*/
IndexNameAndTypeOpt:
IndexName
{ {
$$ = model.IndexTypeBtree $$ = []interface{}{$1, nil}
} }
| "USING" "HASH" | IndexName "USING" IndexTypeName
{ {
$$ = model.IndexTypeHash $$ = []interface{}{$1, $3}
} }
| "USING" "RTREE" | Identifier "TYPE" IndexTypeName
{ {
$$ = model.IndexTypeRtree $$ = []interface{}{$1, $3}
} }
IndexTypeOpt: IndexTypeOpt:
...@@ -4253,6 +4276,30 @@ IndexTypeOpt: ...@@ -4253,6 +4276,30 @@ IndexTypeOpt:
$$ = $1 $$ = $1
} }
IndexType:
"USING" IndexTypeName
{
$$ = $2
}
| "TYPE" IndexTypeName
{
$$ = $2
}
IndexTypeName:
"BTREE"
{
$$ = model.IndexTypeBtree
}
| "HASH"
{
$$ = model.IndexTypeHash
}
| "RTREE"
{
$$ = model.IndexTypeRtree
}
IndexInvisible: IndexInvisible:
"VISIBLE" "VISIBLE"
{ {
...@@ -4284,7 +4331,7 @@ UnReservedKeyword: ...@@ -4284,7 +4331,7 @@ UnReservedKeyword:
| "RECOVER" | "CIPHER" | "SUBJECT" | "ISSUER" | "X509" | "NEVER" | "EXPIRE" | "ACCOUNT" | "INCREMENTAL" | "CPU" | "MEMORY" | "BLOCK" | "IO" | "CONTEXT" | "SWITCHES" | "PAGE" | "FAULTS" | "IPC" | "SWAPS" | "SOURCE" | "RECOVER" | "CIPHER" | "SUBJECT" | "ISSUER" | "X509" | "NEVER" | "EXPIRE" | "ACCOUNT" | "INCREMENTAL" | "CPU" | "MEMORY" | "BLOCK" | "IO" | "CONTEXT" | "SWITCHES" | "PAGE" | "FAULTS" | "IPC" | "SWAPS" | "SOURCE"
| "TRADITIONAL" | "SQL_BUFFER_RESULT" | "DIRECTORY" | "HISTORY" | "LIST" | "NODEGROUP" | "SYSTEM_TIME" | "PARTIAL" | "SIMPLE" | "REMOVE" | "PARTITIONING" | "STORAGE" | "DISK" | "STATS_SAMPLE_PAGES" | "SECONDARY_ENGINE" | "SECONDARY_LOAD" | "SECONDARY_UNLOAD" | "VALIDATION" | "TRADITIONAL" | "SQL_BUFFER_RESULT" | "DIRECTORY" | "HISTORY" | "LIST" | "NODEGROUP" | "SYSTEM_TIME" | "PARTIAL" | "SIMPLE" | "REMOVE" | "PARTITIONING" | "STORAGE" | "DISK" | "STATS_SAMPLE_PAGES" | "SECONDARY_ENGINE" | "SECONDARY_LOAD" | "SECONDARY_UNLOAD" | "VALIDATION"
| "WITHOUT" | "RTREE" | "EXCHANGE" | "COLUMN_FORMAT" | "REPAIR" | "IMPORT" | "DISCARD" | "TABLE_CHECKSUM" | "WITHOUT" | "RTREE" | "EXCHANGE" | "COLUMN_FORMAT" | "REPAIR" | "IMPORT" | "DISCARD" | "TABLE_CHECKSUM"
| "SQL_TSI_DAY" | "SQL_TSI_HOUR" | "SQL_TSI_MINUTE" | "SQL_TSI_MONTH" | "SQL_TSI_QUARTER" | "SQL_TSI_SECOND" | "SQL_TSI_WEEK" | "SQL_TSI_YEAR" | "INVISIBLE" | "VISIBLE" | "SQL_TSI_DAY" | "SQL_TSI_HOUR" | "SQL_TSI_MINUTE" | "SQL_TSI_MONTH" | "SQL_TSI_QUARTER" | "SQL_TSI_SECOND" | "SQL_TSI_WEEK" | "SQL_TSI_YEAR" | "INVISIBLE" | "VISIBLE" | "TYPE"
TiDBKeyword: TiDBKeyword:
"ADMIN" | "AGG_TO_COP" |"BUCKETS" | "CANCEL" | "CMSKETCH" | "DDL" | "DEPTH" | "DRAINER" | "JOBS" | "JOB" | "NODE_ID" | "NODE_STATE" | "PUMP" | "SAMPLES" | "STATS" | "STATS_META" | "STATS_HISTOGRAMS" | "STATS_BUCKETS" | "STATS_HEALTHY" | "TIDB" "ADMIN" | "AGG_TO_COP" |"BUCKETS" | "CANCEL" | "CMSKETCH" | "DDL" | "DEPTH" | "DRAINER" | "JOBS" | "JOB" | "NODE_ID" | "NODE_STATE" | "PUMP" | "SAMPLES" | "STATS" | "STATS_META" | "STATS_HISTOGRAMS" | "STATS_BUCKETS" | "STATS_HEALTHY" | "TIDB"
...@@ -8648,8 +8695,8 @@ NumericType: ...@@ -8648,8 +8695,8 @@ NumericType:
fopt := $2.(*ast.FloatOpt) fopt := $2.(*ast.FloatOpt)
x := types.NewFieldType($1.(byte)) x := types.NewFieldType($1.(byte))
x.Flen = fopt.Flen x.Flen = fopt.Flen
if x.Tp == mysql.TypeFloat && fopt.Decimal == types.UnspecifiedLength && x.Flen <= 53 { if x.Tp == mysql.TypeFloat && fopt.Decimal == types.UnspecifiedLength && x.Flen <= mysql.MaxDoublePrecisionLength {
if x.Flen > 24 { if x.Flen > mysql.MaxFloatPrecisionLength {
x.Tp = mysql.TypeDouble x.Tp = mysql.TypeDouble
} }
x.Flen = types.UnspecifiedLength x.Flen = types.UnspecifiedLength
...@@ -8671,7 +8718,7 @@ NumericType: ...@@ -8671,7 +8718,7 @@ NumericType:
x.Flen = $2.(int) x.Flen = $2.(int)
if x.Flen == types.UnspecifiedLength || x.Flen == 0 { if x.Flen == types.UnspecifiedLength || x.Flen == 0 {
x.Flen = 1 x.Flen = 1
} else if x.Flen > 64 { } else if x.Flen > mysql.MaxBitDisplayWidth {
yylex.AppendError(ErrTooBigDisplayWidth.GenWithStackByArgs(x.Flen)) yylex.AppendError(ErrTooBigDisplayWidth.GenWithStackByArgs(x.Flen))
} }
$$ = x $$ = x
......
...@@ -34,7 +34,7 @@ var ( ...@@ -34,7 +34,7 @@ var (
// ErrDivByZero is return when do division by 0. // ErrDivByZero is return when do division by 0.
ErrDivByZero = terror.ClassTypes.New(codeDivByZero, "Division by 0") ErrDivByZero = terror.ClassTypes.New(codeDivByZero, "Division by 0")
// ErrTooBigDisplayWidth is return when display width out of range for column. // ErrTooBigDisplayWidth is return when display width out of range for column.
ErrTooBigDisplayWidth = terror.ClassTypes.New(codeTooBigDisplayWidth, "Too Big Display width") ErrTooBigDisplayWidth = terror.ClassTypes.New(codeTooBigDisplayWidth, mysql.MySQLErrName[mysql.ErrTooBigDisplaywidth])
// ErrTooBigFieldLength is return when column length too big for column. // ErrTooBigFieldLength is return when column length too big for column.
ErrTooBigFieldLength = terror.ClassTypes.New(codeTooBigFieldLength, "Too Big Field length") ErrTooBigFieldLength = terror.ClassTypes.New(codeTooBigFieldLength, "Too Big Field length")
// ErrTooBigSet is returned when too many strings for column. // ErrTooBigSet is returned when too many strings for column.
...@@ -49,6 +49,8 @@ var ( ...@@ -49,6 +49,8 @@ var (
ErrBadNumber = terror.ClassTypes.New(codeBadNumber, "Bad Number") ErrBadNumber = terror.ClassTypes.New(codeBadNumber, "Bad Number")
// ErrInvalidDefault is returned when meet a invalid default value. // ErrInvalidDefault is returned when meet a invalid default value.
ErrInvalidDefault = parser_types.ErrInvalidDefault ErrInvalidDefault = parser_types.ErrInvalidDefault
// ErrInvalidFieldSize is returned when the precision of a column is out of range.
ErrInvalidFieldSize = terror.ClassTypes.New(codeInvalidFieldSize, mysql.MySQLErrName[mysql.ErrInvalidFieldSize])
// ErrCastAsSignedOverflow is returned when positive out-of-range integer, and convert to it's negative complement. // ErrCastAsSignedOverflow is returned when positive out-of-range integer, and convert to it's negative complement.
ErrCastAsSignedOverflow = terror.ClassTypes.New(codeUnknown, msgCastAsSignedOverflow) ErrCastAsSignedOverflow = terror.ClassTypes.New(codeUnknown, msgCastAsSignedOverflow)
// ErrCastNegIntAsUnsigned is returned when a negative integer be casted to an unsigned int. // ErrCastNegIntAsUnsigned is returned when a negative integer be casted to an unsigned int.
...@@ -93,6 +95,7 @@ const ( ...@@ -93,6 +95,7 @@ const (
codeTruncatedWrongValue = terror.ErrCode(mysql.ErrTruncatedWrongValue) codeTruncatedWrongValue = terror.ErrCode(mysql.ErrTruncatedWrongValue)
codeUnknown = terror.ErrCode(mysql.ErrUnknown) codeUnknown = terror.ErrCode(mysql.ErrUnknown)
codeInvalidDefault = terror.ErrCode(mysql.ErrInvalidDefault) codeInvalidDefault = terror.ErrCode(mysql.ErrInvalidDefault)
codeInvalidFieldSize = terror.ErrCode(mysql.ErrInvalidFieldSize)
codeMBiggerThanD = terror.ErrCode(mysql.ErrMBiggerThanD) codeMBiggerThanD = terror.ErrCode(mysql.ErrMBiggerThanD)
codeDataOutOfRange = terror.ErrCode(mysql.ErrWarnDataOutOfRange) codeDataOutOfRange = terror.ErrCode(mysql.ErrWarnDataOutOfRange)
codeDuplicatedValueInType = terror.ErrCode(mysql.ErrDuplicatedValueInType) codeDuplicatedValueInType = terror.ErrCode(mysql.ErrDuplicatedValueInType)
......
...@@ -66,19 +66,17 @@ func (bj BinaryJSON) Unquote() (string, error) { ...@@ -66,19 +66,17 @@ func (bj BinaryJSON) Unquote() (string, error) {
switch bj.TypeCode { switch bj.TypeCode {
case TypeCodeString: case TypeCodeString:
tmp := string(hack.String(bj.GetString())) tmp := string(hack.String(bj.GetString()))
s, err := unquoteString(tmp) tlen := len(tmp)
if err != nil { if tlen < 2 {
return "", errors.Trace(err) return tmp, nil
} }
// Remove prefix and suffix '"'. head, tail := tmp[0], tmp[tlen-1]
slen := len(s)
if slen > 1 {
head, tail := s[0], s[slen-1]
if head == '"' && tail == '"' { if head == '"' && tail == '"' {
return s[1 : slen-1], nil // Remove prefix and suffix '"' before unquoting
} return unquoteString(tmp[1 : tlen-1])
} }
return s, nil // if value is not double quoted, do nothing
return tmp, nil
default: default:
return bj.String(), nil return bj.String(), nil
} }
......
...@@ -129,118 +129,118 @@ ...@@ -129,118 +129,118 @@
"revisionTime": "2019-03-07T07:54:52Z" "revisionTime": "2019-03-07T07:54:52Z"
}, },
{ {
"checksumSHA1": "wopyI0JhbHosTiSv1vL/d6xyjDs=", "checksumSHA1": "JPMpA0GItqyzBSfsCuIQd1TkK2o=",
"path": "github.com/pingcap/parser", "path": "github.com/pingcap/parser",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "rNycpMFm1SPArRiqljKlCdtbKlE=", "checksumSHA1": "rNycpMFm1SPArRiqljKlCdtbKlE=",
"path": "github.com/pingcap/parser/ast", "path": "github.com/pingcap/parser/ast",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "xiv40YqnvHcbIhaEzJqjh5K7ehM=", "checksumSHA1": "xiv40YqnvHcbIhaEzJqjh5K7ehM=",
"path": "github.com/pingcap/parser/auth", "path": "github.com/pingcap/parser/auth",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "EvDXpplklIXmKqLclzWzaN/uHKQ=", "checksumSHA1": "EvDXpplklIXmKqLclzWzaN/uHKQ=",
"path": "github.com/pingcap/parser/charset", "path": "github.com/pingcap/parser/charset",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "Aao6Mul/qqogOwPwM2arBKZkYZs=", "checksumSHA1": "Aao6Mul/qqogOwPwM2arBKZkYZs=",
"path": "github.com/pingcap/parser/format", "path": "github.com/pingcap/parser/format",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "GAJ7IUg0t8DCKJbJQxJLkklEj2E=", "checksumSHA1": "GAJ7IUg0t8DCKJbJQxJLkklEj2E=",
"path": "github.com/pingcap/parser/model", "path": "github.com/pingcap/parser/model",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "9aEsfUW5bJTXPD7x2obSyd+6gw4=", "checksumSHA1": "vPXc18Mug99WhSvLXC/JtwOdEmA=",
"path": "github.com/pingcap/parser/mysql", "path": "github.com/pingcap/parser/mysql",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "olapD16WCMBU9vrA5PtlERGFfXw=", "checksumSHA1": "olapD16WCMBU9vrA5PtlERGFfXw=",
"path": "github.com/pingcap/parser/opcode", "path": "github.com/pingcap/parser/opcode",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "L6rzy3sJU1RPf7AkJN+0zcwW/YY=", "checksumSHA1": "L6rzy3sJU1RPf7AkJN+0zcwW/YY=",
"path": "github.com/pingcap/parser/terror", "path": "github.com/pingcap/parser/terror",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "u1Lmm4Fa3su4ElZMN4w0hPzFZl4=", "checksumSHA1": "u1Lmm4Fa3su4ElZMN4w0hPzFZl4=",
"path": "github.com/pingcap/parser/types", "path": "github.com/pingcap/parser/types",
"revision": "736e807a964125f7730192af0016e4fcf05c7b70", "revision": "275a827cf4e3798ca50ae8b5224895f0919e70ed",
"revisionTime": "2019-08-29T07:33:47Z" "revisionTime": "2019-09-02T03:07:20Z"
}, },
{ {
"checksumSHA1": "ryt2yutvbgdMuS5uvtaiJqqvZXQ=", "checksumSHA1": "ryt2yutvbgdMuS5uvtaiJqqvZXQ=",
"path": "github.com/pingcap/tidb/sessionctx/stmtctx", "path": "github.com/pingcap/tidb/sessionctx/stmtctx",
"revision": "bdbaeb419dd5ff1b3a0b16f907a0cd7c421c83b0", "revision": "67d4f913dd3f305b39c4d6ba53a6ff82fc040c39",
"revisionTime": "2019-08-29T06:45:52Z" "revisionTime": "2019-09-02T13:30:13Z"
}, },
{ {
"checksumSHA1": "tKaN6jgHhSXad0RSNpSe0q9fiMo=", "checksumSHA1": "sNH6BHp65A9tc3DBD15aOI6GDko=",
"path": "github.com/pingcap/tidb/types", "path": "github.com/pingcap/tidb/types",
"revision": "bdbaeb419dd5ff1b3a0b16f907a0cd7c421c83b0", "revision": "67d4f913dd3f305b39c4d6ba53a6ff82fc040c39",
"revisionTime": "2019-08-29T06:45:52Z" "revisionTime": "2019-09-02T13:30:13Z"
}, },
{ {
"checksumSHA1": "gKBD02jzm/d7gn2kX7pXLi+M2ZY=", "checksumSHA1": "OSOQVeP518zWu3RoYSDWoh7DIjg=",
"path": "github.com/pingcap/tidb/types/json", "path": "github.com/pingcap/tidb/types/json",
"revision": "bdbaeb419dd5ff1b3a0b16f907a0cd7c421c83b0", "revision": "67d4f913dd3f305b39c4d6ba53a6ff82fc040c39",
"revisionTime": "2019-08-29T06:45:52Z" "revisionTime": "2019-09-02T13:30:13Z"
}, },
{ {
"checksumSHA1": "45zWX5Q6D6aTEWtc4p/lbD9WD4o=", "checksumSHA1": "45zWX5Q6D6aTEWtc4p/lbD9WD4o=",
"path": "github.com/pingcap/tidb/types/parser_driver", "path": "github.com/pingcap/tidb/types/parser_driver",
"revision": "bdbaeb419dd5ff1b3a0b16f907a0cd7c421c83b0", "revision": "67d4f913dd3f305b39c4d6ba53a6ff82fc040c39",
"revisionTime": "2019-08-29T06:45:52Z" "revisionTime": "2019-09-02T13:30:13Z"
}, },
{ {
"checksumSHA1": "uH6u5fhPvRiiOUCG8bJfphXm4jo=", "checksumSHA1": "uH6u5fhPvRiiOUCG8bJfphXm4jo=",
"path": "github.com/pingcap/tidb/util/execdetails", "path": "github.com/pingcap/tidb/util/execdetails",
"revision": "bdbaeb419dd5ff1b3a0b16f907a0cd7c421c83b0", "revision": "67d4f913dd3f305b39c4d6ba53a6ff82fc040c39",
"revisionTime": "2019-08-29T06:45:52Z" "revisionTime": "2019-09-02T13:30:13Z"
}, },
{ {
"checksumSHA1": "zw1limoYLowZjRm8wgicyjC72+U=", "checksumSHA1": "zw1limoYLowZjRm8wgicyjC72+U=",
"path": "github.com/pingcap/tidb/util/hack", "path": "github.com/pingcap/tidb/util/hack",
"revision": "bdbaeb419dd5ff1b3a0b16f907a0cd7c421c83b0", "revision": "67d4f913dd3f305b39c4d6ba53a6ff82fc040c39",
"revisionTime": "2019-08-29T06:45:52Z" "revisionTime": "2019-09-02T13:30:13Z"
}, },
{ {
"checksumSHA1": "fDbwnQlRCKnr5y6MY799BEd4WlQ=", "checksumSHA1": "fDbwnQlRCKnr5y6MY799BEd4WlQ=",
"path": "github.com/pingcap/tidb/util/logutil", "path": "github.com/pingcap/tidb/util/logutil",
"revision": "bdbaeb419dd5ff1b3a0b16f907a0cd7c421c83b0", "revision": "67d4f913dd3f305b39c4d6ba53a6ff82fc040c39",
"revisionTime": "2019-08-29T06:45:52Z" "revisionTime": "2019-09-02T13:30:13Z"
}, },
{ {
"checksumSHA1": "OveQu0ABBJmMEwmmthqSRQC2Ef0=", "checksumSHA1": "OveQu0ABBJmMEwmmthqSRQC2Ef0=",
"path": "github.com/pingcap/tidb/util/math", "path": "github.com/pingcap/tidb/util/math",
"revision": "bdbaeb419dd5ff1b3a0b16f907a0cd7c421c83b0", "revision": "67d4f913dd3f305b39c4d6ba53a6ff82fc040c39",
"revisionTime": "2019-08-29T06:45:52Z" "revisionTime": "2019-09-02T13:30:13Z"
}, },
{ {
"checksumSHA1": "loL2JgZDLapEOgfM/XUJI5f0HVs=", "checksumSHA1": "loL2JgZDLapEOgfM/XUJI5f0HVs=",
"path": "github.com/pingcap/tidb/util/memory", "path": "github.com/pingcap/tidb/util/memory",
"revision": "bdbaeb419dd5ff1b3a0b16f907a0cd7c421c83b0", "revision": "67d4f913dd3f305b39c4d6ba53a6ff82fc040c39",
"revisionTime": "2019-08-29T06:45:52Z" "revisionTime": "2019-09-02T13:30:13Z"
}, },
{ {
"checksumSHA1": "QPIBwDNUFF5Whrnd41S3mkKa4gQ=", "checksumSHA1": "QPIBwDNUFF5Whrnd41S3mkKa4gQ=",
...@@ -497,68 +497,68 @@ ...@@ -497,68 +497,68 @@
{ {
"checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=", "checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=",
"path": "vitess.io/vitess/go/bytes2", "path": "vitess.io/vitess/go/bytes2",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "bhE6CGQgZTIgLPp9lnvlKW/47xc=", "checksumSHA1": "bhE6CGQgZTIgLPp9lnvlKW/47xc=",
"path": "vitess.io/vitess/go/hack", "path": "vitess.io/vitess/go/hack",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "y2C3mKrC39Tffb/614ZYa/qEVGU=", "checksumSHA1": "y2C3mKrC39Tffb/614ZYa/qEVGU=",
"path": "vitess.io/vitess/go/sqltypes", "path": "vitess.io/vitess/go/sqltypes",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "vAIRxI6MHsq3x1hLQwIyw5AvqtI=", "checksumSHA1": "vAIRxI6MHsq3x1hLQwIyw5AvqtI=",
"path": "vitess.io/vitess/go/vt/log", "path": "vitess.io/vitess/go/vt/log",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "//MHnGEq9xApvIMdwQaRrQf5ZWo=", "checksumSHA1": "//MHnGEq9xApvIMdwQaRrQf5ZWo=",
"path": "vitess.io/vitess/go/vt/proto/binlogdata", "path": "vitess.io/vitess/go/vt/proto/binlogdata",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "u8uuZWMqaXgQ1MduggrgIHU50FI=", "checksumSHA1": "u8uuZWMqaXgQ1MduggrgIHU50FI=",
"path": "vitess.io/vitess/go/vt/proto/query", "path": "vitess.io/vitess/go/vt/proto/query",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "rJ1Iqz/lvaKikIUx4oEFfYJtoBQ=", "checksumSHA1": "rJ1Iqz/lvaKikIUx4oEFfYJtoBQ=",
"path": "vitess.io/vitess/go/vt/proto/topodata", "path": "vitess.io/vitess/go/vt/proto/topodata",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "Bv8lucvoH9AnJSYiWX8MIrJl4zY=", "checksumSHA1": "Bv8lucvoH9AnJSYiWX8MIrJl4zY=",
"path": "vitess.io/vitess/go/vt/proto/vtgate", "path": "vitess.io/vitess/go/vt/proto/vtgate",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "HeUJu5njPq9iznpAOcrLpLD7f9w=", "checksumSHA1": "HeUJu5njPq9iznpAOcrLpLD7f9w=",
"path": "vitess.io/vitess/go/vt/proto/vtrpc", "path": "vitess.io/vitess/go/vt/proto/vtrpc",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "uhDAaoN8RkmdkmkbYkaX5dLPquc=", "checksumSHA1": "6g61BeExwL7AYkuujmuo+SUUvaM=",
"path": "vitess.io/vitess/go/vt/sqlparser", "path": "vitess.io/vitess/go/vt/sqlparser",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
}, },
{ {
"checksumSHA1": "z9+F/lA1Xrl5S16LKssUH8VL6hs=", "checksumSHA1": "z9+F/lA1Xrl5S16LKssUH8VL6hs=",
"path": "vitess.io/vitess/go/vt/vterrors", "path": "vitess.io/vitess/go/vt/vterrors",
"revision": "ad6099c8cb9fce72a4b2d22ea55f4f693e846b3e", "revision": "74ae4e28066640597b0a6b1163fb99cd0b53b3ff",
"revisionTime": "2019-08-28T05:53:53Z" "revisionTime": "2019-08-30T03:35:45Z"
} }
], ],
"rootPath": "github.com/XiaoMi/soar" "rootPath": "github.com/XiaoMi/soar"
......
...@@ -56,11 +56,16 @@ const ( ...@@ -56,11 +56,16 @@ const (
func Preview(sql string) int { func Preview(sql string) int {
trimmed := StripLeadingComments(sql) trimmed := StripLeadingComments(sql)
firstWord := trimmed if strings.Index(trimmed, "/*!") == 0 {
if end := strings.IndexFunc(trimmed, unicode.IsSpace); end != -1 { return StmtComment
firstWord = trimmed[:end] }
isNotLetter := func(r rune) bool { return !unicode.IsLetter(r) }
firstWord := strings.TrimLeftFunc(trimmed, isNotLetter)
if end := strings.IndexFunc(firstWord, unicode.IsSpace); end != -1 {
firstWord = firstWord[:end]
} }
firstWord = strings.TrimLeftFunc(firstWord, func(r rune) bool { return !unicode.IsLetter(r) })
// Comparison is done in order of priority. // Comparison is done in order of priority.
loweredFirstWord := strings.ToLower(firstWord) loweredFirstWord := strings.ToLower(firstWord)
switch loweredFirstWord { switch loweredFirstWord {
...@@ -103,9 +108,6 @@ func Preview(sql string) int { ...@@ -103,9 +108,6 @@ func Preview(sql string) int {
case "analyze", "describe", "desc", "explain", "repair", "optimize": case "analyze", "describe", "desc", "explain", "repair", "optimize":
return StmtOther return StmtOther
} }
if strings.Index(trimmed, "/*!") == 0 {
return StmtComment
}
return StmtUnknown return StmtUnknown
} }
......
...@@ -797,9 +797,9 @@ func (node *DDL) Format(buf *TrackedBuffer) { ...@@ -797,9 +797,9 @@ func (node *DDL) Format(buf *TrackedBuffer) {
case FlushStr: case FlushStr:
buf.Myprintf("%s", node.Action) buf.Myprintf("%s", node.Action)
case CreateVindexStr: case CreateVindexStr:
buf.Myprintf("alter vschema create vindex %v %v", node.VindexSpec.Name, node.VindexSpec) buf.Myprintf("alter vschema create vindex %v %v", node.Table, node.VindexSpec)
case DropVindexStr: case DropVindexStr:
buf.Myprintf("alter vschema drop vindex %v", node.VindexSpec.Name) buf.Myprintf("alter vschema drop vindex %v", node.Table)
case AddVschemaTableStr: case AddVschemaTableStr:
buf.Myprintf("alter vschema add table %v", node.Table) buf.Myprintf("alter vschema add table %v", node.Table)
case DropVschemaTableStr: case DropVschemaTableStr:
......
...@@ -710,204 +710,204 @@ const yyLast = 12449 ...@@ -710,204 +710,204 @@ const yyLast = 12449
var yyAct = [...]int{ var yyAct = [...]int{
263, 1428, 1418, 1225, 1382, 1022, 267, 565, 1165, 1283, 263, 1428, 1418, 1225, 1382, 1022, 267, 565, 1165, 1283,
873, 1040, 1296, 1328, 280, 1199, 846, 1113, 902, 1023, 873, 1040, 1199, 1328, 1296, 280, 1023, 1113, 846, 241,
1162, 844, 1166, 916, 869, 953, 57, 293, 882, 872, 466, 869, 1166, 896, 953, 564, 3, 844, 1162, 882,
1172, 241, 81, 1067, 709, 1137, 206, 1178, 785, 206, 916, 902, 81, 1172, 293, 1137, 206, 872, 57, 206,
795, 1093, 336, 723, 1084, 833, 606, 625, 981, 886, 1178, 785, 336, 709, 795, 723, 1093, 625, 1067, 981,
813, 497, 762, 848, 792, 437, 1046, 503, 624, 330, 1084, 886, 232, 848, 792, 833, 1046, 813, 762, 497,
826, 294, 51, 912, 232, 325, 509, 206, 81, 265, 503, 294, 51, 912, 624, 437, 826, 206, 81, 330,
517, 614, 206, 250, 206, 327, 579, 56, 322, 1421, 265, 509, 206, 325, 206, 517, 250, 240, 322, 327,
1405, 1416, 1392, 1413, 1226, 605, 1357, 530, 529, 539, 614, 56, 579, 1421, 606, 1405, 1416, 1392, 305, 605,
540, 532, 533, 534, 535, 536, 537, 538, 531, 564, 311, 312, 309, 310, 308, 307, 306, 233, 234, 235,
3, 541, 580, 1404, 254, 1391, 1154, 1255, 442, 233, 236, 1413, 580, 239, 313, 314, 1226, 1404, 254, 1391,
234, 235, 236, 51, 626, 239, 627, 61, 1194, 1195, 1154, 1255, 442, 51, 1194, 1195, 1055, 61, 626, 1054,
305, 246, 311, 312, 309, 310, 308, 307, 306, 1193, 627, 246, 1056, 269, 1357, 530, 529, 539, 540, 532,
470, 201, 197, 198, 199, 1055, 313, 314, 1054, 864, 533, 534, 535, 536, 537, 538, 531, 864, 865, 541,
865, 1056, 863, 63, 64, 65, 66, 67, 486, 1138, 1193, 863, 491, 63, 64, 65, 66, 67, 201, 197,
238, 240, 487, 484, 485, 237, 193, 935, 195, 491, 198, 199, 486, 238, 470, 237, 487, 484, 485, 1075,
1075, 895, 1115, 1286, 1303, 896, 903, 231, 1246, 1244, 193, 895, 195, 1286, 1303, 1115, 903, 1246, 1244, 231,
489, 934, 698, 479, 480, 1117, 697, 695, 1415, 1412, 489, 698, 479, 480, 697, 1117, 695, 1415, 1412, 1383,
1383, 1112, 1375, 827, 887, 1436, 1140, 1041, 1043, 1337, 1112, 827, 1375, 887, 1436, 455, 1329, 1041, 1043, 456,
1432, 1329, 455, 456, 206, 444, 472, 206, 474, 939, 444, 195, 1109, 1432, 206, 1118, 889, 206, 1111, 1331,
688, 195, 611, 206, 1331, 1118, 702, 1109, 933, 206, 702, 490, 611, 206, 688, 1188, 794, 889, 696, 206,
696, 699, 81, 1111, 81, 1116, 81, 81, 490, 81, 699, 1337, 81, 889, 81, 1187, 81, 81, 1116, 81,
1142, 81, 1146, 889, 1141, 1188, 1139, 81, 471, 473, 472, 81, 474, 1186, 440, 438, 447, 81, 208, 1100,
1187, 1144, 889, 1186, 440, 889, 468, 447, 203, 208, 1364, 196, 947, 468, 475, 946, 476, 477, 203, 478,
1143, 196, 452, 947, 553, 554, 946, 998, 1364, 200, 1266, 481, 1068, 553, 554, 859, 1124, 492, 998, 870,
194, 1266, 438, 1145, 1147, 1358, 1124, 81, 930, 927, 1051, 1008, 471, 473, 194, 975, 734, 81, 1098, 620,
928, 1068, 926, 1051, 1042, 1008, 975, 734, 466, 324, 521, 462, 541, 731, 1042, 1211, 200, 1330, 531, 324,
620, 505, 1330, 467, 439, 467, 441, 467, 467, 521, 769, 541, 506, 467, 439, 467, 441, 467, 467, 70,
467, 462, 467, 1211, 531, 870, 541, 541, 467, 731, 467, 452, 467, 505, 767, 768, 766, 728, 467, 516,
1338, 1336, 859, 937, 940, 903, 1430, 1373, 728, 1431, 493, 494, 888, 1358, 1110, 903, 1108, 885, 883, 1430,
995, 1429, 493, 494, 333, 449, 516, 450, 51, 1110, 884, 333, 1431, 888, 1429, 881, 887, 438, 51, 888,
451, 1108, 438, 469, 256, 1390, 724, 1346, 1100, 888, 515, 514, 1338, 1336, 256, 71, 1212, 724, 1373, 1390,
206, 206, 206, 550, 885, 883, 552, 884, 888, 81, 206, 206, 206, 550, 995, 1099, 552, 516, 1346, 81,
932, 888, 881, 887, 1212, 81, 534, 535, 536, 537, 1104, 1101, 1094, 1102, 1097, 81, 955, 469, 1095, 1096,
538, 531, 604, 1176, 541, 436, 506, 1098, 955, 553, 436, 1176, 628, 1156, 449, 814, 450, 1138, 604, 451,
554, 628, 931, 733, 563, 1156, 567, 568, 569, 570, 553, 554, 1103, 814, 563, 1005, 567, 568, 569, 570,
571, 572, 573, 574, 575, 507, 578, 581, 581, 581, 571, 572, 573, 574, 575, 507, 578, 581, 581, 581,
587, 581, 581, 587, 581, 595, 596, 597, 598, 599, 587, 581, 581, 587, 581, 595, 596, 597, 598, 599,
600, 70, 610, 582, 584, 586, 588, 590, 592, 593, 600, 514, 610, 690, 1140, 458, 459, 460, 551, 582,
732, 936, 458, 459, 460, 618, 448, 725, 814, 454, 584, 586, 588, 590, 592, 593, 448, 516, 725, 454,
613, 443, 553, 554, 622, 461, 938, 515, 514, 583, 613, 443, 1073, 1378, 618, 461, 733, 1437, 622, 583,
585, 463, 589, 591, 1099, 594, 814, 71, 1005, 1104, 585, 463, 589, 591, 954, 594, 1396, 994, 1142, 892,
1101, 1094, 1102, 1097, 516, 690, 954, 1095, 1096, 532, 1146, 993, 1141, 992, 1139, 893, 553, 554, 511, 1144,
533, 534, 535, 536, 537, 538, 531, 206, 514, 541, 1292, 534, 535, 536, 537, 538, 531, 206, 1143, 541,
994, 1103, 81, 972, 973, 974, 769, 206, 206, 81, 515, 514, 81, 732, 609, 1291, 1438, 206, 206, 81,
737, 738, 892, 206, 516, 1073, 206, 1378, 893, 206, 1088, 1145, 1147, 206, 54, 192, 206, 516, 1087, 206,
767, 768, 766, 206, 511, 81, 81, 1437, 1396, 1292, 515, 514, 687, 206, 765, 81, 81, 515, 514, 694,
81, 81, 81, 206, 81, 81, 515, 514, 445, 446, 81, 81, 81, 206, 81, 81, 1076, 516, 445, 446,
81, 81, 475, 1158, 476, 477, 54, 478, 192, 481, 81, 81, 515, 514, 516, 712, 713, 1371, 1398, 1158,
515, 514, 993, 516, 992, 492, 765, 1291, 515, 514, 714, 715, 716, 1374, 718, 719, 752, 754, 755, 516,
515, 514, 786, 467, 787, 711, 1438, 516, 1088, 81, 720, 721, 753, 467, 1310, 711, 737, 738, 22, 81,
467, 515, 514, 206, 1087, 516, 1076, 516, 1057, 81, 467, 1289, 1121, 206, 972, 973, 974, 1085, 958, 81,
1058, 1398, 603, 22, 612, 1374, 467, 467, 516, 818, 319, 320, 603, 1228, 612, 739, 467, 467, 786, 818,
1310, 467, 467, 467, 703, 467, 467, 739, 752, 754, 787, 467, 467, 467, 703, 467, 467, 1057, 1068, 1058,
755, 467, 467, 1289, 753, 292, 1121, 1085, 958, 1334, 1063, 467, 467, 1334, 1414, 292, 532, 533, 534, 535,
1414, 496, 763, 319, 320, 1371, 758, 500, 504, 1400, 536, 537, 538, 531, 515, 514, 541, 500, 504, 763,
496, 1334, 1386, 81, 760, 333, 283, 282, 285, 286, 1400, 496, 333, 81, 760, 758, 1334, 1386, 245, 1334,
287, 288, 1334, 496, 522, 284, 289, 79, 1228, 804, 496, 516, 1334, 1365, 522, 1334, 1333, 79, 788, 804,
807, 741, 1068, 245, 1063, 815, 1334, 1365, 1343, 756, 807, 1281, 1280, 496, 741, 815, 1268, 496, 1265, 496,
1334, 1333, 1281, 1280, 1268, 496, 81, 81, 1265, 496, 1218, 1217, 1343, 799, 756, 708, 81, 81, 1214, 1215,
1218, 1217, 1342, 206, 1214, 1215, 1214, 1213, 1208, 566, 1214, 1213, 1342, 206, 987, 496, 830, 496, 1208, 566,
788, 206, 206, 335, 51, 206, 206, 24, 577, 206, 707, 206, 206, 335, 51, 206, 206, 691, 577, 206,
206, 206, 81, 789, 790, 987, 496, 830, 496, 567, 206, 206, 81, 689, 789, 790, 797, 496, 890, 567,
797, 496, 54, 708, 707, 81, 854, 691, 689, 636, 835, 838, 839, 840, 836, 81, 837, 841, 686, 636,
856, 1017, 811, 686, 616, 1018, 635, 634, 890, 692, 1179, 1180, 854, 464, 635, 634, 856, 811, 764, 692,
693, 616, 464, 823, 457, 700, 24, 1163, 324, 1175, 693, 457, 1047, 823, 1163, 700, 1175, 1175, 324, 797,
1175, 706, 829, 711, 1127, 54, 1406, 799, 904, 905, 1261, 706, 1047, 711, 1127, 1345, 24, 616, 898, 899,
906, 1047, 845, 852, 797, 717, 610, 1047, 58, 1261, 900, 901, 845, 58, 24, 717, 610, 616, 830, 852,
610, 860, 861, 24, 1315, 857, 617, 830, 619, 206, 610, 904, 905, 906, 909, 910, 911, 1216, 861, 206,
81, 877, 81, 617, 1345, 615, 81, 81, 206, 206, 81, 860, 81, 857, 1315, 830, 206, 206, 206, 206,
206, 830, 206, 206, 54, 1298, 206, 81, 987, 918, 206, 877, 206, 206, 24, 1175, 206, 81, 987, 617,
687, 853, 1216, 615, 830, 748, 1059, 694, 987, 862, 922, 619, 924, 987, 54, 748, 918, 1059, 853, 617,
1175, 1011, 1010, 206, 987, 206, 206, 615, 621, 735, 615, 615, 54, 206, 829, 206, 206, 951, 1017, 862,
206, 54, 897, 712, 713, 701, 1273, 917, 714, 715, 206, 1011, 1018, 1010, 609, 987, 615, 621, 609, 735,
716, 496, 718, 719, 1204, 1062, 914, 915, 720, 721, 701, 54, 609, 1406, 1298, 1114, 914, 915, 1299, 830,
247, 467, 913, 467, 1179, 1180, 1114, 335, 759, 335, 897, 467, 54, 467, 1273, 759, 917, 335, 1204, 335,
908, 335, 335, 907, 335, 1299, 335, 920, 467, 963, 1062, 335, 335, 913, 335, 908, 335, 920, 467, 907,
495, 1423, 335, 1419, 1206, 1182, 1163, 760, 530, 529, 495, 247, 335, 1179, 1180, 800, 801, 760, 963, 806,
539, 540, 532, 533, 534, 535, 536, 537, 538, 531, 809, 810, 1423, 1419, 530, 529, 539, 540, 532, 533,
1089, 965, 541, 964, 763, 729, 1034, 705, 54, 1032, 534, 535, 536, 537, 538, 531, 964, 1206, 541, 965,
1185, 1035, 519, 726, 1033, 828, 1036, 1184, 839, 840, 1182, 763, 519, 726, 822, 828, 824, 825, 539, 540,
898, 899, 900, 901, 747, 1031, 1030, 1410, 855, 977, 532, 533, 534, 535, 536, 537, 538, 531, 855, 54,
1403, 976, 251, 252, 1123, 960, 909, 910, 911, 749, 541, 976, 1163, 1089, 729, 977, 705, 747, 1185, 749,
750, 206, 206, 206, 206, 206, 1024, 510, 1408, 794, 750, 206, 206, 206, 206, 206, 1024, 982, 835, 838,
970, 969, 1080, 206, 498, 633, 206, 465, 1072, 1380, 839, 840, 836, 206, 837, 841, 206, 1184, 1034, 1031,
206, 1379, 508, 1259, 206, 1313, 499, 269, 333, 1070, 206, 1030, 1019, 1035, 206, 333, 283, 282, 285, 286,
1064, 1294, 260, 1004, 923, 704, 843, 248, 249, 510, 287, 288, 260, 1410, 1032, 284, 289, 1403, 874, 1033,
242, 874, 1351, 81, 335, 1048, 968, 243, 1026, 1027, 1004, 799, 960, 81, 335, 1036, 1123, 839, 840, 1408,
630, 1029, 566, 1060, 967, 802, 803, 1037, 1020, 1021, 630, 1048, 566, 1060, 970, 802, 803, 969, 1020, 1021,
58, 921, 610, 610, 610, 610, 610, 1350, 1301, 1047, 764, 921, 610, 610, 610, 610, 610, 1037, 941, 942,
943, 944, 945, 1045, 948, 949, 488, 845, 950, 1044, 943, 944, 945, 1045, 948, 949, 498, 845, 950, 1044,
1052, 1049, 999, 1050, 996, 610, 1025, 1077, 1078, 1028, 1052, 1049, 1080, 1050, 633, 610, 1026, 1027, 499, 1029,
1069, 81, 81, 1425, 1424, 952, 1019, 1079, 722, 1081, 1025, 81, 81, 1028, 1079, 952, 1081, 1082, 1083, 510,
1082, 1083, 959, 512, 1065, 1066, 1425, 1361, 1287, 730, 1077, 1078, 959, 251, 252, 1069, 1065, 1066, 1380, 465,
60, 62, 55, 868, 1, 799, 1417, 1227, 1295, 929, 1072, 1379, 1091, 868, 508, 1313, 1070, 1064, 1259, 1294,
1381, 81, 1327, 1086, 1198, 880, 871, 69, 922, 435, 923, 81, 704, 971, 609, 609, 609, 609, 609, 1086,
924, 68, 1372, 879, 878, 1335, 1285, 206, 891, 1105, 843, 248, 249, 510, 968, 242, 1351, 206, 759, 609,
1074, 759, 894, 1205, 1071, 951, 81, 1377, 835, 838, 243, 1119, 967, 58, 1105, 1350, 81, 609, 1092, 1301,
839, 840, 836, 467, 837, 841, 641, 335, 1179, 1180, 1047, 488, 999, 467, 1425, 1424, 60, 335, 996, 722,
1092, 639, 640, 638, 335, 643, 1120, 539, 540, 532, 512, 1425, 1361, 1287, 335, 730, 62, 55, 1120, 1,
533, 534, 535, 536, 537, 538, 531, 642, 637, 541, 986, 1417, 1227, 1295, 929, 1381, 1327, 1198, 880, 871,
335, 335, 467, 219, 328, 335, 335, 335, 842, 335, 335, 335, 467, 69, 435, 335, 335, 335, 1002, 335,
335, 81, 81, 1164, 1024, 335, 335, 1131, 1136, 1155, 335, 81, 81, 1164, 1024, 335, 335, 68, 1131, 1372,
1149, 1130, 1148, 629, 919, 513, 740, 72, 1107, 1106, 1149, 1130, 1136, 879, 878, 1148, 740, 1335, 1285, 891,
925, 727, 482, 963, 483, 81, 1167, 961, 962, 221, 1074, 1155, 894, 1205, 1071, 81, 1169, 961, 962, 1377,
504, 760, 549, 966, 743, 1053, 334, 1170, 736, 502, 504, 760, 963, 1167, 743, 641, 639, 640, 638, 643,
81, 1349, 81, 81, 519, 1300, 1183, 335, 1003, 576, 81, 642, 81, 81, 519, 637, 219, 335, 328, 1183,
812, 268, 1197, 1190, 751, 1189, 281, 278, 279, 1174, 842, 629, 1197, 919, 513, 72, 1107, 1106, 1189, 1174,
1168, 742, 51, 1016, 523, 266, 258, 608, 601, 1196, 1168, 925, 51, 727, 482, 1190, 483, 221, 549, 966,
206, 834, 1201, 832, 796, 798, 831, 323, 1181, 1202, 206, 1053, 334, 1201, 796, 798, 1170, 1196, 736, 1209,
1203, 1177, 1209, 1210, 607, 1192, 1126, 206, 791, 874, 1210, 502, 1349, 1300, 1003, 1192, 874, 206, 791, 576,
1254, 1356, 988, 81, 746, 26, 81, 81, 81, 206, 812, 268, 988, 81, 1202, 1203, 81, 81, 81, 206,
1169, 59, 551, 253, 816, 81, 19, 18, 206, 1006, 751, 281, 278, 279, 816, 81, 742, 1016, 206, 1006,
17, 20, 16, 555, 556, 557, 558, 559, 560, 561, 523, 266, 258, 555, 556, 557, 558, 559, 560, 561,
562, 820, 821, 15, 14, 453, 1233, 30, 21, 1235, 562, 820, 821, 608, 601, 1233, 1220, 834, 832, 831,
835, 838, 839, 840, 836, 13, 837, 841, 1220, 12, 323, 1181, 1177, 607, 1126, 1235, 1254, 1356, 1221, 746,
11, 10, 9, 8, 7, 6, 1242, 335, 5, 1125, 1223, 26, 1239, 1240, 59, 1241, 253, 335, 1243, 1125,
1221, 4, 1223, 244, 23, 2, 0, 0, 609, 0, 1245, 19, 18, 1242, 17, 20, 16, 15, 14, 453,
335, 0, 1024, 1234, 0, 1260, 0, 0, 0, 610, 335, 30, 1024, 1234, 21, 13, 12, 11, 10, 610,
1091, 0, 0, 0, 0, 1270, 0, 81, 0, 0, 9, 8, 1270, 1260, 7, 6, 5, 81, 4, 244,
0, 1269, 0, 0, 0, 81, 0, 1060, 0, 0, 23, 2, 0, 0, 0, 81, 0, 1060, 0, 1129,
0, 0, 1129, 0, 0, 0, 1253, 0, 0, 1119, 1279, 0, 0, 1269, 0, 0, 1253, 496, 0, 0,
81, 0, 1279, 0, 0, 0, 0, 81, 0, 0, 81, 0, 0, 0, 1282, 0, 0, 81, 0, 0,
0, 0, 1288, 0, 1290, 335, 0, 335, 0, 0, 0, 0, 0, 0, 0, 335, 0, 335, 0, 0,
0, 941, 942, 0, 0, 1159, 0, 0, 1275, 1276, 1293, 0, 1159, 0, 0, 1288, 0, 1290, 1275, 1276,
1277, 0, 335, 0, 0, 0, 0, 0, 0, 1302, 1277, 609, 335, 0, 530, 529, 539, 540, 532, 533,
0, 0, 0, 0, 0, 0, 81, 81, 0, 81, 534, 535, 536, 537, 538, 531, 81, 81, 541, 81,
1122, 0, 0, 0, 81, 0, 81, 81, 81, 206, 1122, 0, 1302, 0, 81, 0, 81, 81, 81, 206,
335, 467, 81, 1322, 1314, 1323, 1324, 1325, 0, 1167, 335, 467, 81, 1322, 1314, 1323, 1324, 1325, 0, 1321,
0, 0, 1219, 0, 0, 1326, 874, 1332, 874, 81, 1316, 0, 1219, 874, 1332, 874, 1167, 1326, 0, 81,
206, 1321, 1339, 0, 1239, 1240, 0, 1241, 1347, 1222, 206, 0, 0, 1339, 0, 0, 0, 0, 1347, 1222,
1243, 0, 1245, 1340, 0, 1341, 0, 0, 984, 0, 1340, 0, 1341, 0, 0, 0, 0, 0, 984, 0,
1157, 1232, 985, 1168, 1362, 0, 1317, 0, 0, 989, 1157, 1232, 985, 1168, 1362, 0, 1317, 0, 0, 989,
990, 991, 0, 0, 0, 81, 997, 0, 1369, 1000, 990, 991, 0, 0, 0, 81, 997, 0, 1369, 1000,
1001, 1370, 0, 1167, 0, 1007, 81, 81, 0, 1009, 1001, 1370, 0, 1363, 0, 1007, 81, 81, 0, 1009,
0, 0, 1012, 1013, 1014, 1015, 1344, 1385, 1384, 1388, 1167, 0, 1012, 1013, 1014, 1015, 1344, 1385, 1129, 1388,
0, 1129, 1191, 0, 1316, 81, 1282, 1393, 1024, 0, 1384, 0, 1191, 0, 0, 81, 0, 1393, 1024, 0,
0, 0, 0, 0, 1039, 816, 206, 1168, 0, 51, 0, 0, 0, 0, 1039, 816, 206, 1168, 0, 51,
0, 0, 764, 0, 81, 0, 761, 0, 0, 770, 0, 0, 0, 0, 81, 0, 761, 0, 0, 770,
771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780,
781, 782, 783, 784, 1402, 1407, 1409, 81, 800, 801, 781, 782, 783, 784, 1402, 1407, 1409, 81, 0, 0,
0, 0, 806, 809, 810, 0, 1411, 1363, 335, 0, 0, 1132, 0, 0, 0, 0, 1411, 0, 335, 0,
1422, 0, 0, 0, 0, 0, 0, 1433, 0, 0, 1422, 0, 0, 0, 0, 0, 0, 1433, 0, 0,
0, 0, 0, 874, 0, 0, 0, 822, 0, 824, 874, 530, 529, 539, 540, 532, 533, 534, 535, 536,
825, 0, 0, 0, 819, 530, 529, 539, 540, 532, 537, 538, 531, 0, 819, 541, 0, 0, 0, 0,
533, 534, 535, 536, 537, 538, 531, 0, 0, 541, 0, 0, 0, 0, 0, 0, 935, 0, 0, 0,
0, 0, 0, 1297, 0, 0, 1090, 335, 609, 0, 1297, 24, 25, 52, 27, 28, 1090, 335, 0, 0,
0, 0, 609, 1256, 0, 0, 609, 1420, 501, 0, 934, 0, 0, 1256, 0, 0, 0, 1420, 501, 0,
0, 0, 0, 566, 1258, 0, 0, 0, 1293, 0, 43, 0, 0, 566, 1258, 29, 48, 49, 0, 0,
0, 1271, 0, 0, 1272, 0, 335, 1274, 982, 0, 0, 1271, 0, 0, 1272, 0, 335, 1274, 939, 0,
0, 0, 1348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1348, 0, 0, 38, 0, 933, 0, 54,
0, 0, 0, 0, 204, 0, 1135, 230, 0, 0, 0, 0, 0, 0, 204, 0, 1135, 230, 0, 0,
0, 335, 530, 529, 539, 540, 532, 533, 534, 535, 0, 335, 530, 529, 539, 540, 532, 533, 534, 535,
536, 537, 538, 531, 0, 0, 541, 0, 0, 0, 536, 537, 538, 531, 0, 0, 541, 0, 0, 0,
0, 0, 257, 0, 0, 326, 0, 0, 0, 0, 0, 0, 257, 0, 0, 326, 0, 0, 0, 0,
204, 0, 204, 0, 335, 0, 0, 0, 0, 0, 204, 0, 204, 0, 335, 0, 0, 930, 927, 928,
0, 0, 0, 816, 0, 0, 1171, 1173, 0, 0, 0, 926, 0, 816, 0, 0, 1171, 1173, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1397, 0, 31, 32, 34, 33, 36, 0, 50, 0, 1397, 1297,
0, 0, 1297, 874, 0, 0, 971, 0, 0, 0, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1173, 0, 0, 0, 216, 0, 0, 24, 25, 52, 1173, 0, 937, 940, 0, 1257, 0, 37, 44, 45,
27, 28, 0, 0, 0, 335, 0, 335, 1200, 0, 0, 0, 46, 47, 35, 335, 0, 335, 1200, 0,
0, 0, 0, 0, 0, 0, 43, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 40,
0, 29, 48, 49, 764, 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 932,
978, 979, 980, 986, 0, 0, 0, 0, 0, 0, 978, 979, 980, 530, 529, 539, 540, 532, 533, 534,
0, 38, 0, 0, 0, 54, 0, 0, 0, 0, 535, 536, 537, 538, 531, 0, 0, 541, 1252, 0,
0, 1002, 0, 0, 0, 0, 0, 0, 1224, 0, 0, 931, 0, 0, 0, 0, 0, 0, 1224, 0,
1236, 1229, 1230, 1231, 0, 1387, 566, 1238, 0, 209, 1236, 1229, 1230, 1231, 0, 1387, 566, 1238, 0, 0,
335, 0, 204, 0, 0, 204, 212, 0, 1247, 1248, 335, 0, 204, 0, 0, 204, 0, 0, 1247, 1248,
0, 204, 0, 0, 220, 215, 0, 204, 609, 609, 0, 204, 0, 0, 0, 0, 983, 204, 0, 0,
609, 609, 609, 0, 0, 0, 0, 0, 1262, 1263, 936, 0, 0, 0, 0, 0, 0, 0, 1262, 1263,
1264, 0, 1267, 609, 0, 0, 31, 32, 34, 33, 1264, 0, 1267, 53, 0, 938, 530, 529, 539, 540,
36, 609, 50, 0, 0, 0, 218, 0, 0, 1278, 532, 533, 534, 535, 536, 537, 538, 531, 0, 1278,
0, 816, 225, 0, 0, 0, 0, 0, 0, 0, 541, 816, 530, 529, 539, 540, 532, 533, 534, 535,
0, 0, 0, 37, 44, 45, 0, 0, 46, 47, 536, 537, 538, 531, 0, 0, 541, 0, 0, 0,
35, 0, 335, 0, 0, 0, 0, 0, 0, 210, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0,
1284, 0, 0, 0, 39, 40, 0, 41, 42, 0, 1284, 0, 530, 529, 539, 540, 532, 533, 534, 535,
0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 536, 537, 538, 531, 0, 335, 541, 0, 0, 0,
0, 0, 335, 0, 0, 0, 222, 213, 0, 223, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0,
224, 229, 0, 0, 1309, 214, 217, 0, 211, 228, 0, 216, 0, 0, 1309, 0, 0, 0, 0, 0,
227, 0, 0, 0, 0, 0, 0, 0, 204, 204, 0, 0, 0, 0, 0, 0, 0, 0, 204, 204,
204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 226, 0, 0, 0, 0,
0, 1318, 1319, 0, 1320, 0, 0, 0, 0, 1284, 0, 1318, 1319, 0, 1320, 0, 0, 0, 0, 1284,
0, 1284, 1284, 1284, 0, 0, 0, 1200, 0, 0, 0, 1284, 1284, 1284, 0, 0, 0, 1200, 0, 0,
0, 0, 0, 0, 1352, 1353, 1354, 1355, 0, 53, 0, 0, 0, 0, 1352, 1353, 1354, 1355, 0, 0,
0, 1359, 1360, 0, 1284, 1133, 1134, 0, 0, 0, 0, 1359, 1360, 0, 1284, 1133, 1134, 0, 0, 0,
0, 0, 0, 1366, 1367, 1368, 1257, 0, 1150, 1151, 0, 0, 0, 1366, 1367, 1368, 209, 0, 1150, 1151,
0, 1152, 1153, 0, 0, 0, 0, 0, 0, 0, 0, 1152, 1153, 212, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1160, 1161, 0, 0, 0, 0, 0, 0, 220, 215, 1160, 1161, 0, 0, 0, 0, 0,
1376, 0, 0, 0, 1252, 0, 1389, 0, 0, 0, 1376, 0, 0, 0, 0, 0, 1389, 0, 0, 0,
0, 335, 335, 1394, 530, 529, 539, 540, 532, 533, 0, 335, 335, 1394, 0, 0, 0, 0, 0, 0,
534, 535, 536, 537, 538, 531, 0, 816, 541, 0, 0, 0, 0, 218, 0, 0, 0, 816, 0, 225,
1395, 1399, 0, 0, 0, 204, 0, 0, 0, 0, 1395, 1399, 0, 0, 0, 204, 0, 0, 0, 0,
0, 0, 0, 0, 0, 204, 204, 0, 0, 1401, 0, 0, 0, 0, 0, 204, 204, 0, 0, 1401,
0, 204, 0, 0, 204, 1207, 0, 204, 0, 0, 0, 204, 0, 0, 204, 1207, 210, 204, 0, 0,
0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0,
0, 204, 1284, 1132, 0, 1251, 1434, 1435, 530, 529, 0, 204, 1284, 0, 0, 1251, 1434, 1435, 0, 0,
539, 540, 532, 533, 534, 535, 536, 537, 538, 531, 0, 0, 0, 222, 213, 0, 223, 224, 229, 0,
0, 0, 541, 530, 529, 539, 540, 532, 533, 534, 0, 0, 214, 217, 0, 211, 228, 227, 0, 0,
535, 536, 537, 538, 531, 609, 658, 541, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 0, 0,
0, 204, 0, 0, 525, 1237, 528, 0, 0, 0, 0, 204, 0, 0, 525, 1237, 528, 0, 0, 0,
710, 0, 542, 543, 544, 545, 546, 547, 548, 0, 710, 0, 542, 543, 544, 545, 546, 547, 548, 0,
526, 527, 524, 530, 529, 539, 540, 532, 533, 534, 526, 527, 524, 530, 529, 539, 540, 532, 533, 534,
...@@ -915,31 +915,31 @@ var yyAct = [...]int{ ...@@ -915,31 +915,31 @@ var yyAct = [...]int{
529, 539, 540, 532, 533, 534, 535, 536, 537, 538, 529, 539, 540, 532, 533, 534, 535, 536, 537, 538,
531, 0, 257, 541, 0, 0, 0, 257, 257, 0, 531, 0, 257, 541, 0, 0, 0, 257, 257, 0,
0, 257, 257, 257, 0, 0, 0, 817, 0, 0, 0, 257, 257, 257, 0, 0, 0, 817, 0, 0,
0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 257, 257, 257, 257, 0, 0, 0, 0, 0, 0, 257, 257, 257, 257,
0, 204, 0, 0, 0, 0, 0, 0, 0, 204, 0, 204, 0, 0, 0, 0, 0, 0, 0, 204,
850, 0, 0, 204, 204, 0, 0, 204, 858, 710, 850, 0, 0, 204, 204, 0, 0, 204, 858, 710,
0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1250, 1304, 1305, 1306, 1307, 1308, 0, 0, 0, 0, 1250, 1304, 1305, 1306, 1307, 1308, 0, 0, 0,
1311, 1312, 0, 0, 672, 675, 676, 677, 678, 679, 1311, 1312, 0, 672, 675, 676, 677, 678, 679, 680,
680, 0, 681, 682, 683, 684, 685, 660, 661, 662, 0, 681, 682, 683, 684, 685, 660, 661, 662, 663,
663, 644, 645, 673, 0, 647, 0, 648, 649, 650, 644, 645, 673, 0, 647, 0, 648, 649, 650, 651,
651, 652, 653, 654, 655, 656, 657, 664, 665, 666, 652, 653, 654, 655, 656, 657, 664, 665, 666, 667,
667, 668, 669, 670, 671, 0, 0, 204, 1249, 0, 668, 669, 670, 671, 0, 0, 0, 204, 1249, 0,
0, 0, 0, 0, 0, 0, 204, 204, 204, 0, 0, 0, 0, 0, 204, 204, 204, 204, 204, 0,
204, 204, 0, 0, 204, 530, 529, 539, 540, 532, 204, 204, 0, 0, 204, 530, 529, 539, 540, 532,
533, 534, 535, 536, 537, 538, 531, 0, 0, 541, 533, 534, 535, 536, 537, 538, 531, 0, 0, 541,
0, 204, 0, 956, 957, 0, 0, 0, 204, 0, 0, 204, 0, 956, 957, 0, 0, 0, 204, 0,
0, 0, 0, 710, 0, 674, 0, 0, 0, 139, 0, 0, 0, 710, 674, 0, 0, 0, 0, 139,
0, 0, 0, 849, 0, 257, 0, 0, 103, 0, 0, 0, 0, 849, 0, 257, 0, 0, 103, 0,
0, 0, 0, 0, 120, 0, 122, 0, 0, 160, 0, 0, 0, 0, 120, 0, 122, 0, 0, 160,
131, 0, 530, 529, 539, 540, 532, 533, 534, 535, 131, 0, 530, 529, 539, 540, 532, 533, 534, 535,
536, 537, 538, 531, 0, 0, 541, 0, 205, 0, 536, 537, 538, 531, 0, 0, 541, 0, 205, 0,
851, 0, 0, 0, 0, 0, 0, 96, 0, 0, 851, 0, 0, 0, 0, 0, 0, 96, 0, 0,
0, 983, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1426, 0, 0, 0, 0, 0, 0,
257, 530, 529, 539, 540, 532, 533, 534, 535, 536, 257, 529, 539, 540, 532, 533, 534, 535, 536, 537,
537, 538, 531, 0, 0, 541, 0, 0, 817, 204, 538, 531, 0, 0, 541, 0, 0, 0, 817, 204,
204, 204, 204, 204, 0, 0, 0, 0, 0, 0, 204, 204, 204, 204, 0, 0, 0, 0, 0, 0,
0, 1038, 109, 0, 204, 0, 207, 0, 850, 0, 0, 1038, 109, 0, 204, 0, 207, 0, 850, 0,
0, 146, 204, 163, 111, 119, 83, 90, 0, 110, 0, 146, 204, 163, 111, 119, 83, 90, 0, 110,
...@@ -955,18 +955,18 @@ var yyAct = [...]int{ ...@@ -955,18 +955,18 @@ var yyAct = [...]int{
158, 117, 124, 149, 189, 140, 154, 98, 177, 159, 158, 117, 124, 149, 189, 140, 154, 98, 177, 159,
0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0,
0, 0, 0, 0, 0, 257, 0, 0, 0, 82, 0, 0, 0, 0, 0, 257, 0, 0, 0, 82,
89, 121, 188, 148, 106, 179, 257, 530, 529, 539, 89, 121, 188, 148, 106, 179, 257, 0, 0, 0,
540, 532, 533, 534, 535, 536, 537, 538, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 541, 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 710, 0, 0,
0, 0, 0, 0, 0, 0, 817, 139, 0, 0, 0, 0, 0, 0, 0, 0, 817, 139, 0, 0,
0, 0, 264, 0, 0, 0, 103, 0, 261, 0, 0, 0, 264, 0, 0, 0, 103, 0, 261, 0,
0, 0, 120, 304, 122, 0, 0, 160, 131, 0, 0, 0, 120, 304, 122, 0, 0, 160, 131, 0,
0, 0, 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 295, 296, 0, 0, 0, 0, 0,
0, 866, 0, 54, 0, 0, 262, 283, 282, 285, 0, 866, 0, 54, 0, 0, 262, 283, 282, 285,
286, 287, 288, 0, 0, 96, 284, 289, 290, 291, 286, 287, 288, 0, 0, 96, 284, 289, 290, 291,
867, 0, 0, 259, 276, 0, 303, 529, 539, 540, 867, 0, 0, 259, 276, 0, 303, 0, 0, 0,
532, 533, 534, 535, 536, 537, 538, 531, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0,
541, 0, 0, 0, 0, 0, 273, 274, 0, 0, 0, 0, 0, 0, 0, 0, 273, 274, 0, 0,
0, 0, 317, 0, 275, 204, 0, 270, 271, 272, 0, 0, 317, 0, 275, 204, 0, 270, 271, 272,
277, 0, 0, 0, 0, 0, 0, 204, 0, 0, 277, 0, 0, 0, 0, 0, 0, 204, 0, 0,
109, 0, 0, 0, 207, 0, 204, 315, 0, 146, 109, 0, 0, 0, 207, 0, 204, 315, 0, 146,
...@@ -1957,14 +1957,14 @@ var yyAct = [...]int{ ...@@ -1957,14 +1957,14 @@ var yyAct = [...]int{
} }
var yyPact = [...]int{ var yyPact = [...]int{
1591, -1000, -188, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1455, -1000, -184, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 875, 935, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 958, 981, -1000, -1000, -1000, -1000, -1000, -1000,
327, 8842, 31, 118, 9, 11470, 116, 1561, 11946, -1000, 225, 8842, 35, 108, 26, 11470, 105, 1748, 11946, -1000,
2, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -62, -67, 4, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -62, -64,
-1000, 677, -1000, -1000, -1000, -1000, -1000, 853, 861, 744, -1000, 668, -1000, -1000, -1000, -1000, -1000, 948, 954, 765,
847, 782, -1000, 6380, 74, 74, 11232, 5639, -1000, -1000, 941, 893, -1000, 6380, 64, 64, 11232, 5639, -1000, -1000,
255, 11946, 110, 11946, -140, 67, 67, 67, -1000, -1000, 250, 11946, 100, 11946, -136, 62, 62, 62, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
...@@ -1976,21 +1976,21 @@ var yyPact = [...]int{ ...@@ -1976,21 +1976,21 @@ var yyPact = [...]int{
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 114, 11946, 190, -1000, 11946, 65, 597, 65, -1000, -1000, 103, 11946, 229, -1000, 11946, 61, 594, 61,
65, 65, 11946, -1000, 169, -1000, -1000, -1000, 11946, 595, 61, 61, 11946, -1000, 149, -1000, -1000, -1000, 11946, 586,
817, 3299, 73, 3299, -1000, 3299, 3299, -1000, 3299, 14, 909, 3299, 97, 3299, -1000, 3299, 3299, -1000, 3299, 13,
3299, -69, 894, 10, 1, -1000, 3299, -1000, -1000, -1000, 3299, -65, 969, 10, -16, -1000, 3299, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
495, 825, 7369, 7369, 875, -1000, 677, -1000, -1000, -1000, 527, 887, 7369, 7369, 958, -1000, 668, -1000, -1000, -1000,
816, -1000, -1000, 399, 922, -1000, 8604, 167, -1000, 7369, 908, -1000, -1000, 363, 979, -1000, 8604, 148, -1000, 7369,
1920, 578, -1000, -1000, 578, -1000, -1000, 131, -1000, -1000, 1920, 687, -1000, -1000, 687, -1000, -1000, 130, -1000, -1000,
8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, -1000, -1000, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 578, -1000, 7122, 578, 578, 578, 578, 578, -1000, -1000, 687, -1000, 7122, 687, 687, 687, 687, 687,
578, 578, 578, 7369, 578, 578, 578, 578, 578, 578, 687, 687, 687, 7369, 687, 687, 687, 687, 687, 687,
578, 578, 578, 578, 578, 578, 578, 578, 578, 10994, 687, 687, 687, 687, 687, 687, 687, 687, 687, 10994,
10279, 11946, 640, 633, -1000, -1000, 158, 673, 5379, -116, 10279, 11946, 666, 656, -1000, -1000, 147, 682, 5379, -112,
-1000, -1000, -1000, 269, 10041, -1000, -1000, -1000, 815, -1000, -1000, -1000, -1000, 260, 10041, -1000, -1000, -1000, 884, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
...@@ -2000,130 +2000,130 @@ var yyPact = [...]int{ ...@@ -2000,130 +2000,130 @@ var yyPact = [...]int{
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, 591, 11946, -1000, 1956, -1000, -1000, -1000, -1000, -1000, -1000, 589, 11946, -1000, 1955, -1000,
586, 3299, 75, 581, 351, 580, 11946, 11946, 3299, 20, 581, 3299, 79, 566, 309, 560, 11946, 11946, 3299, 19,
53, 49, 11946, 680, 80, 11946, 842, 745, 11946, 577, 51, 48, 11946, 685, 74, 11946, 929, 774, 11946, 553,
576, -1000, 5119, -1000, 3299, 3299, -1000, -1000, -1000, 3299, 538, -1000, 5119, -1000, 3299, 3299, -1000, -1000, -1000, 3299,
3299, 3299, 11946, 3299, 3299, -1000, -1000, -1000, -1000, 3299, 3299, 3299, 11946, 3299, 3299, -1000, -1000, -1000, -1000, 3299,
3299, -1000, 917, 305, -1000, -1000, -1000, -1000, 7369, 208, 3299, -1000, 978, 306, -1000, -1000, -1000, -1000, 7369, 197,
-1000, 743, -1000, -1000, -1000, -1000, -1000, -1000, 930, 197, -1000, 772, -1000, -1000, -1000, -1000, -1000, -1000, 986, 171,
335, 155, 674, -1000, 426, 853, 495, 782, 9803, 771, 388, 144, 684, -1000, 482, 948, 527, 893, 9803, 784,
-1000, -1000, 11946, -1000, 7369, 7369, 470, -1000, 10755, -1000, -1000, -1000, 11946, -1000, 7369, 7369, 428, -1000, 10755, -1000,
-1000, 4079, 217, 8110, 432, 370, 8110, 8110, 8110, 8110, -1000, 4079, 200, 8110, 400, 194, 8110, 8110, 8110, 8110,
8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110, 8110,
8110, 445, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 8110, 471, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
553, -1000, 677, 508, 508, 179, 179, 179, 179, 179, 521, -1000, 668, 798, 798, 155, 155, 155, 155, 155,
179, 179, 8357, 5886, 495, 575, 428, 7122, 6380, 6380, 155, 155, 8357, 5886, 527, 571, 238, 7122, 6380, 6380,
7369, 7369, 6874, 6627, 6380, 848, 320, 428, 12184, -1000, 7369, 7369, 6874, 6627, 6380, 942, 267, 238, 12184, -1000,
-1000, 7863, -1000, -1000, -1000, -1000, -1000, 495, -1000, -1000, -1000, 7863, -1000, -1000, -1000, -1000, -1000, 527, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, 11708, 11708, 6380, 6380, 6380, -1000, -1000, -1000, -1000, -1000, 11708, 11708, 6380, 6380, 6380,
6380, 32, 11946, -1000, 632, 1108, -1000, -1000, -1000, 844, 6380, 30, 11946, -1000, 694, 796, -1000, -1000, -1000, 938,
9318, 9565, 32, 658, 10279, 11946, -1000, -1000, 10279, 11946, 9318, 9565, 30, 665, 10279, 11946, -1000, -1000, 10279, 11946,
3819, 4859, 673, -116, 664, -1000, -89, -94, 2479, 178, 3819, 4859, 682, -112, 674, -1000, -90, -96, 2479, 142,
-1000, -1000, -1000, -1000, 3039, 195, 592, 384, -52, -1000, -1000, -1000, -1000, -1000, 3039, 168, 572, 351, -52, -1000,
-1000, -1000, 678, -1000, 678, 678, 678, 678, -22, -22, -1000, -1000, 696, -1000, 696, 696, 696, 696, -22, -22,
-22, -22, -1000, -1000, -1000, -1000, -1000, 709, 706, -1000, -22, -22, -1000, -1000, -1000, -1000, -1000, 715, 711, -1000,
678, 678, 678, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 696, 696, 696, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, 698, 698, 698, 683, 683, 714, -1000, 11946, 3299, -1000, 709, 709, 709, 702, 702, 714, -1000, 11946, 3299,
841, 3299, -1000, 142, -1000, 11708, 11708, 11946, 11946, 11946, 927, 3299, -1000, 1441, -1000, 11946, 11946, 11946, 11946, 11946,
126, 11946, 11946, 672, -1000, 11946, 3299, -1000, -1000, -1000, 115, 11946, 11946, 681, -1000, 11946, 3299, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 11946, 336, 11946, 11946, 428, -1000, 489, 11946, -1000, -1000, 11946, 324, 11946, 11946, 238, -1000, 459, 11946,
-1000, 787, 7369, 7369, 4599, 7369, -1000, -1000, -1000, 825, -1000, 834, 7369, 7369, 4599, 7369, -1000, -1000, -1000, 887,
-1000, 848, 865, -1000, 807, 806, 6380, -1000, -1000, 217, -1000, 942, 953, -1000, 853, 850, 6380, -1000, -1000, 200,
365, -1000, -1000, 375, -1000, -1000, -1000, -1000, 154, 578, 308, -1000, -1000, 446, -1000, -1000, -1000, -1000, 143, 687,
-1000, 2374, -1000, -1000, -1000, -1000, 432, 8110, 8110, 8110, -1000, 1659, -1000, -1000, -1000, -1000, 400, 8110, 8110, 8110,
1352, 2374, 2198, 902, 2463, 179, 237, 237, 180, 180, 691, 1659, 1613, 713, 2197, 155, 332, 332, 164, 164,
180, 180, 180, 332, 332, -1000, -1000, -1000, 495, -1000, 164, 164, 164, 449, 449, -1000, -1000, -1000, 527, -1000,
-1000, -1000, 495, 6380, 669, -1000, -1000, 7369, -1000, 495, -1000, -1000, 527, 6380, 680, -1000, -1000, 7369, -1000, 527,
570, 570, 439, 418, 289, 903, 570, 236, 901, 570, 549, 549, 368, 395, 313, 977, 549, 237, 971, 549,
570, 6380, 338, -1000, 7369, 495, -1000, 153, -1000, 685, 549, 6380, 275, -1000, 7369, 527, -1000, 139, -1000, 1161,
667, 666, 570, 495, 570, 570, 611, 578, -1000, 12184, 678, 676, 549, 527, 549, 549, 698, 687, -1000, 12184,
10279, 10279, 10279, 10279, 10279, -1000, 774, 773, -1000, 757, 10279, 10279, 10279, 10279, 10279, -1000, 809, 807, -1000, 822,
754, 764, 11946, -1000, 572, 9318, 137, 578, -1000, 10517, 806, 833, 11946, -1000, 551, 9318, 137, 687, -1000, 10517,
-1000, -1000, 887, 10279, 659, -1000, 659, -1000, 151, -1000, -1000, -1000, 968, 10279, 640, -1000, 640, -1000, 138, -1000,
-1000, 664, -116, -97, -1000, -1000, -1000, -1000, 428, -1000, -1000, 674, -112, -116, -1000, -1000, -1000, -1000, 238, -1000,
461, 661, 2779, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 480, 662, 2779, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
691, 527, -1000, 832, 207, 204, 525, 831, -1000, -1000, 706, 483, -1000, 919, 179, 185, 481, 918, -1000, -1000,
-1000, 819, -1000, 387, -54, -1000, -1000, 456, -22, -22, -1000, 911, -1000, 334, -55, -1000, -1000, 416, -22, -22,
-1000, -1000, 178, 812, 178, 178, 178, 488, 488, -1000, -1000, -1000, 142, 882, 142, 142, 142, 458, 458, -1000,
-1000, -1000, -1000, 454, -1000, -1000, -1000, 448, -1000, 738, -1000, -1000, -1000, 398, -1000, -1000, -1000, 390, -1000, 771,
11708, 3299, -1000, -1000, -1000, -1000, 290, 290, 185, -1000, 11708, 3299, -1000, -1000, -1000, -1000, 201, 201, 170, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
30, 703, -1000, -1000, -1000, -1000, 5, 18, 79, -1000, 29, 692, -1000, -1000, -1000, -1000, 8, 18, 69, -1000,
3299, -1000, 305, -1000, 487, 7369, -1000, -1000, -1000, -1000, 3299, -1000, 306, -1000, 453, 7369, -1000, -1000, -1000, -1000,
785, 428, 428, 144, -1000, -1000, 11946, -1000, -1000, -1000, 837, 238, 238, 134, -1000, -1000, 11946, -1000, -1000, -1000,
-1000, 653, -1000, -1000, -1000, 3559, 6380, -1000, 1352, 2374, -1000, 653, -1000, -1000, -1000, 3559, 6380, -1000, 691, 1659,
1880, -1000, 8110, 8110, -1000, -1000, 570, 6380, 428, -1000, 1338, -1000, 8110, 8110, -1000, -1000, 549, 6380, 238, -1000,
-1000, -1000, 41, 445, 41, 8110, 8110, -1000, 8110, 8110, -1000, -1000, 239, 471, 239, 8110, 8110, -1000, 8110, 8110,
-1000, -152, 663, 274, -1000, 7369, 404, -1000, 4599, -1000, -1000, -148, 658, 262, -1000, 7369, 410, -1000, 4599, -1000,
8110, 8110, -1000, -1000, -1000, -1000, 724, 12184, 578, -1000, 8110, 8110, -1000, -1000, -1000, -1000, 770, 12184, 687, -1000,
9080, 11708, 665, -1000, 261, 1108, 702, 723, 936, -1000, 9080, 11708, 650, -1000, 259, 796, 721, 748, 588, -1000,
-1000, -1000, -1000, 765, -1000, 758, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 805, -1000, 786, -1000, -1000, -1000, -1000,
-1000, 109, 106, 101, 11708, -1000, 875, 7369, 659, -1000, -1000, 99, 91, 81, 11708, -1000, 958, 7369, 640, -1000,
-1000, 193, -1000, -1000, -103, -118, -1000, -1000, -1000, 3039, -1000, 146, -1000, -1000, -92, -122, -1000, -1000, -1000, 3039,
-1000, 3039, 11708, 46, -1000, 525, 525, -1000, -1000, -1000, -1000, 3039, 11708, 45, -1000, 481, 481, -1000, -1000, -1000,
690, 722, 8110, -1000, -1000, -1000, 552, 178, 178, -1000, 704, 745, 8110, -1000, -1000, -1000, 552, 142, 142, -1000,
226, -1000, -1000, -1000, 551, -1000, 549, 657, 545, 11946, 208, -1000, -1000, -1000, 545, -1000, 543, 632, 535, 11946,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, 11946, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 11946, -1000, -1000, -1000,
-1000, -1000, 11708, -177, 521, 11708, 11708, 11708, 11946, -1000, -1000, -1000, 11708, -155, 466, 11708, 11708, 11708, 11946, -1000,
336, -1000, 428, -1000, 4339, -1000, 887, 10279, -1000, -1000, 324, -1000, 238, -1000, 4339, -1000, 968, 10279, -1000, -1000,
495, -1000, 8110, 2374, 2374, -1000, -1000, 495, 678, 678, 527, -1000, 8110, 1659, 1659, -1000, -1000, 527, 696, 696,
-1000, 678, 683, -1000, 678, -4, 678, -5, 495, 495, -1000, 696, 702, -1000, 696, -5, 696, -6, 527, 527,
2149, 2092, 1936, 1865, 578, -147, -1000, 428, 7369, -1000, 2149, 2092, 1936, 1629, 687, -143, -1000, 238, 7369, -1000,
1801, 1429, -1000, 826, 605, 624, -1000, -1000, 6133, 495, 1540, 1429, -1000, 921, 602, 605, -1000, -1000, 6133, 527,
543, 139, 539, -1000, 875, 12184, 7369, -1000, -1000, 7369, 533, 128, 531, -1000, 958, 12184, 7369, -1000, -1000, 7369,
682, -1000, 7369, -1000, -1000, -1000, 578, 578, 578, 539, 700, -1000, 7369, -1000, -1000, -1000, 687, 687, 687, 531,
853, 428, -1000, -1000, -1000, -1000, 2779, -1000, 537, -1000, 948, 238, -1000, -1000, -1000, -1000, 2779, -1000, 526, -1000,
678, -1000, -1000, -1000, 11708, -47, 929, 2374, -1000, -1000, 696, -1000, -1000, -1000, 11708, -47, 984, 1659, -1000, -1000,
-1000, -1000, -1000, -22, 484, -22, 437, -1000, 409, 3299, -1000, -1000, -1000, -22, 452, -22, 385, -1000, 370, 3299,
-1000, -1000, -1000, -1000, 835, -1000, 4339, -1000, -1000, 651, -1000, -1000, -1000, -1000, 923, -1000, 4339, -1000, -1000, 690,
712, -1000, -1000, -1000, 885, 646, -1000, 2374, -1000, -1000, 695, -1000, -1000, -1000, 966, 623, -1000, 1659, -1000, -1000,
107, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 8110, 107, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 8110,
8110, 8110, 8110, 8110, 495, 471, 428, 8110, 8110, 827, 8110, 8110, 8110, 8110, 527, 445, 238, 8110, 8110, 917,
-1000, 578, -1000, -1000, 650, 11708, 11708, -1000, 11708, 853, -1000, 687, -1000, -1000, 660, 11708, 11708, -1000, 11708, 948,
-1000, 428, 428, 11708, 428, 11708, 11708, 11708, 2201, -1000, -1000, 238, 238, 11708, 238, 11708, 11708, 11708, 2201, -1000,
138, 11708, -1000, 535, -1000, 161, -1000, -119, 178, -1000, 133, 11708, -1000, 520, -1000, 183, -1000, -151, 142, -1000,
178, 546, 532, -1000, 578, 639, -1000, 235, 11708, 11946, 142, 546, 536, -1000, 687, 610, -1000, 246, 11708, 11946,
883, 856, -1000, -1000, 685, 685, 685, 685, -6, -1000, 961, 950, -1000, -1000, 1161, 1161, 1161, 1161, 32, -1000,
-1000, 685, 685, 928, -1000, 578, -1000, 677, 136, -1000, -1000, 1161, 1161, 983, -1000, 687, -1000, 668, 118, -1000,
-1000, -1000, 531, 517, 517, 517, 137, 138, -1000, 498, -1000, -1000, 517, 514, 514, 514, 137, 133, -1000, 430,
215, 466, -1000, 42, 11708, 391, 823, -1000, 821, -1000, 236, 434, -1000, 42, 11708, 337, 913, -1000, 910, -1000,
-1000, -1000, -1000, -1000, 29, 4339, 3039, 506, -1000, -1000, -1000, -1000, -1000, -1000, 28, 4339, 3039, 511, -1000, -1000,
7369, 7369, -1000, -1000, -1000, -1000, 495, 56, -180, -1000, 7369, 7369, -1000, -1000, -1000, -1000, 527, 60, -175, -1000,
-1000, 12184, 624, 495, 11708, -1000, -1000, -1000, -1000, -1000, -1000, 12184, 605, 527, 11708, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 408, -1000, -1000, 11946, -1000, -1000, 462, -1000, -1000, -1000, 356, -1000, -1000, 11946, -1000, -1000, 429, -1000,
-1000, 504, -1000, 11708, -1000, -1000, 703, 428, 619, -1000, -1000, 505, -1000, 11708, -1000, -1000, 692, 238, 604, -1000,
781, -157, -183, 604, -1000, -1000, -1000, 612, -1000, -1000, 828, -153, -178, 601, -1000, -1000, -1000, 689, -1000, -1000,
29, 804, -177, -1000, 778, -1000, 11708, -1000, 26, -1000, 28, 845, -155, -1000, 824, -1000, 11708, -1000, 25, -1000,
-178, 494, 24, -181, 721, 578, -184, 719, -1000, 914, -160, 488, 23, -176, 731, 687, -180, 730, -1000, 975,
7616, -1000, -1000, 927, 160, 160, 685, 495, -1000, -1000, 7616, -1000, -1000, 982, 163, 163, 1161, 527, -1000, -1000,
-1000, 50, 438, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 49, 378, -1000, -1000, -1000, -1000, -1000, -1000,
} }
var yyPgo = [...]int{ var yyPgo = [...]int{
0, 1175, 99, 523, 1174, 1173, 1171, 1168, 1165, 1164, 0, 1201, 25, 508, 1200, 1199, 1198, 1196, 1195, 1194,
1163, 1162, 1161, 1160, 1159, 1155, 1148, 1147, 1145, 1144, 1191, 1190, 1188, 1187, 1186, 1185, 1184, 1181, 1179, 1178,
1143, 1132, 1131, 1130, 1127, 1126, 117, 1123, 1121, 1115, 1177, 1176, 1175, 1174, 1172, 1171, 117, 1166, 1164, 1161,
66, 1114, 73, 1111, 1110, 48, 839, 54, 40, 314, 71, 1159, 76, 1157, 1156, 49, 206, 54, 44, 314,
1106, 21, 85, 46, 1104, 37, 1101, 1098, 78, 1097, 1154, 27, 89, 84, 1153, 40, 1152, 1151, 78, 1150,
1096, 45, 1093, 1091, 202, 1088, 65, 1087, 11, 56, 1149, 55, 1148, 1147, 202, 1144, 73, 1143, 11, 56,
1086, 1085, 1084, 1083, 69, 862, 1081, 1078, 14, 1077, 1132, 1131, 1130, 1127, 70, 862, 1126, 1123, 15, 1122,
1076, 102, 1074, 52, 7, 8, 27, 22, 1071, 857, 1121, 102, 1120, 58, 7, 8, 34, 22, 1111, 123,
6, 1070, 50, 1069, 1068, 1065, 1061, 26, 1059, 57, 6, 1110, 57, 1109, 1104, 1103, 1102, 38, 1101, 60,
1058, 31, 51, 1057, 9, 60, 30, 20, 5, 75, 1098, 19, 59, 1096, 9, 66, 33, 28, 5, 79,
58, 1056, 19, 59, 47, 1055, 1053, 488, 1052, 1049, 64, 1092, 16, 69, 47, 1091, 1089, 455, 1088, 1087,
43, 1044, 1042, 25, 1041, 192, 401, 1040, 1039, 1038, 45, 1086, 1084, 24, 1083, 185, 401, 1081, 1077, 1076,
1037, 42, 0, 545, 236, 70, 1035, 1034, 1033, 1478, 1075, 42, 0, 545, 233, 75, 1074, 1073, 1071, 1478,
34, 53, 16, 1018, 64, 268, 38, 1014, 1013, 35, 43, 53, 18, 1070, 52, 20, 41, 1068, 1066, 35,
1008, 1007, 995, 993, 992, 991, 986, 165, 977, 974, 1065, 1061, 1059, 1058, 1057, 1056, 1055, 23, 1049, 1044,
973, 18, 24, 972, 970, 63, 23, 968, 966, 965, 1043, 31, 21, 1042, 1040, 63, 30, 1039, 1038, 1037,
44, 55, 964, 963, 49, 33, 962, 961, 959, 957, 50, 65, 1034, 1033, 51, 48, 1029, 1027, 1014, 1013,
956, 29, 10, 955, 15, 954, 13, 952, 28, 950, 1009, 37, 10, 1008, 12, 1007, 13, 1006, 29, 1005,
4, 949, 12, 948, 3, 947, 17, 41, 1, 946, 4, 1004, 14, 1003, 3, 1002, 17, 46, 1, 1001,
2, 944, 942, 61, 529, 71, 941, 76, 2, 999, 997, 61, 529, 80, 996, 82,
} }
var yyR1 = [...]int{ var yyR1 = [...]int{
...@@ -2399,7 +2399,7 @@ var yyChk = [...]int{ ...@@ -2399,7 +2399,7 @@ var yyChk = [...]int{
-147, -147, -155, 54, -155, -155, -156, 54, -156, -127, -147, -147, -155, 54, -155, -155, -156, 54, -156, -127,
53, -54, -135, 23, -135, -117, 120, 117, 118, -181, 53, -54, -135, 23, -135, -117, 120, 117, 118, -181,
116, 210, 188, 66, 29, 15, 249, 151, 264, 57, 116, 210, 188, 66, 29, 15, 249, 151, 264, 57,
152, -123, -123, -54, -54, -54, 120, 117, -54, -54, 152, -54, -54, -54, -54, -54, 120, 117, -54, -54,
-54, -135, -54, -113, 90, 12, -129, -129, 59, -54, -54, -135, -54, -113, 90, 12, -129, -129, 59, -54,
38, -39, -39, -130, -89, -92, -106, 19, 11, 34, 38, -39, -39, -130, -89, -92, -106, 19, 11, 34,
34, -36, 68, 69, 70, 112, -193, -73, -65, -65, 34, -36, 68, 69, 70, 112, -193, -73, -65, -65,
...@@ -4240,35 +4240,43 @@ yydefault: ...@@ -4240,35 +4240,43 @@ yydefault:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1312 //line sql.y:1312
{ {
yyVAL.statement = &DDL{Action: CreateVindexStr, VindexSpec: &VindexSpec{ yyVAL.statement = &DDL{
Name: yyDollar[5].colIdent, Action: CreateVindexStr,
Table: yyDollar[5].tableName,
VindexSpec: &VindexSpec{
Name: NewColIdent(yyDollar[5].tableName.Name.String()),
Type: yyDollar[6].colIdent, Type: yyDollar[6].colIdent,
Params: yyDollar[7].vindexParams, Params: yyDollar[7].vindexParams,
}} },
}
} }
case 223: case 223:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1320 //line sql.y:1324
{ {
yyVAL.statement = &DDL{Action: DropVindexStr, VindexSpec: &VindexSpec{ yyVAL.statement = &DDL{
Name: yyDollar[5].colIdent, Action: DropVindexStr,
}} Table: yyDollar[5].tableName,
VindexSpec: &VindexSpec{
Name: NewColIdent(yyDollar[5].tableName.Name.String()),
},
}
} }
case 224: case 224:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1326 //line sql.y:1334
{ {
yyVAL.statement = &DDL{Action: AddVschemaTableStr, Table: yyDollar[5].tableName} yyVAL.statement = &DDL{Action: AddVschemaTableStr, Table: yyDollar[5].tableName}
} }
case 225: case 225:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1330 //line sql.y:1338
{ {
yyVAL.statement = &DDL{Action: DropVschemaTableStr, Table: yyDollar[5].tableName} yyVAL.statement = &DDL{Action: DropVschemaTableStr, Table: yyDollar[5].tableName}
} }
case 226: case 226:
yyDollar = yyS[yypt-12 : yypt+1] yyDollar = yyS[yypt-12 : yypt+1]
//line sql.y:1334 //line sql.y:1342
{ {
yyVAL.statement = &DDL{ yyVAL.statement = &DDL{
Action: AddColVindexStr, Action: AddColVindexStr,
...@@ -4283,7 +4291,7 @@ yydefault: ...@@ -4283,7 +4291,7 @@ yydefault:
} }
case 227: case 227:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1347 //line sql.y:1355
{ {
yyVAL.statement = &DDL{ yyVAL.statement = &DDL{
Action: DropColVindexStr, Action: DropColVindexStr,
...@@ -4295,13 +4303,13 @@ yydefault: ...@@ -4295,13 +4303,13 @@ yydefault:
} }
case 228: case 228:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1357 //line sql.y:1365
{ {
yyVAL.statement = &DDL{Action: AddSequenceStr, Table: yyDollar[5].tableName} yyVAL.statement = &DDL{Action: AddSequenceStr, Table: yyDollar[5].tableName}
} }
case 229: case 229:
yyDollar = yyS[yypt-9 : yypt+1] yyDollar = yyS[yypt-9 : yypt+1]
//line sql.y:1361 //line sql.y:1369
{ {
yyVAL.statement = &DDL{ yyVAL.statement = &DDL{
Action: AddAutoIncStr, Action: AddAutoIncStr,
...@@ -4314,49 +4322,49 @@ yydefault: ...@@ -4314,49 +4322,49 @@ yydefault:
} }
case 241: case 241:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1387 //line sql.y:1395
{ {
yyVAL.partSpec = &PartitionSpec{Action: ReorganizeStr, Name: yyDollar[3].colIdent, Definitions: yyDollar[6].partDefs} yyVAL.partSpec = &PartitionSpec{Action: ReorganizeStr, Name: yyDollar[3].colIdent, Definitions: yyDollar[6].partDefs}
} }
case 242: case 242:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1393 //line sql.y:1401
{ {
yyVAL.partDefs = []*PartitionDefinition{yyDollar[1].partDef} yyVAL.partDefs = []*PartitionDefinition{yyDollar[1].partDef}
} }
case 243: case 243:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1397 //line sql.y:1405
{ {
yyVAL.partDefs = append(yyDollar[1].partDefs, yyDollar[3].partDef) yyVAL.partDefs = append(yyDollar[1].partDefs, yyDollar[3].partDef)
} }
case 244: case 244:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:1403 //line sql.y:1411
{ {
yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].expr} yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].expr}
} }
case 245: case 245:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:1407 //line sql.y:1415
{ {
yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true}
} }
case 246: case 246:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1413 //line sql.y:1421
{ {
yyVAL.statement = yyDollar[3].ddl yyVAL.statement = yyDollar[3].ddl
} }
case 247: case 247:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1419 //line sql.y:1427
{ {
yyVAL.ddl = &DDL{Action: RenameStr, FromTables: TableNames{yyDollar[1].tableName}, ToTables: TableNames{yyDollar[3].tableName}} yyVAL.ddl = &DDL{Action: RenameStr, FromTables: TableNames{yyDollar[1].tableName}, ToTables: TableNames{yyDollar[3].tableName}}
} }
case 248: case 248:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1423 //line sql.y:1431
{ {
yyVAL.ddl = yyDollar[1].ddl yyVAL.ddl = yyDollar[1].ddl
yyVAL.ddl.FromTables = append(yyVAL.ddl.FromTables, yyDollar[3].tableName) yyVAL.ddl.FromTables = append(yyVAL.ddl.FromTables, yyDollar[3].tableName)
...@@ -4364,7 +4372,7 @@ yydefault: ...@@ -4364,7 +4372,7 @@ yydefault:
} }
case 249: case 249:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1431 //line sql.y:1439
{ {
var exists bool var exists bool
if yyDollar[3].byt != 0 { if yyDollar[3].byt != 0 {
...@@ -4374,14 +4382,14 @@ yydefault: ...@@ -4374,14 +4382,14 @@ yydefault:
} }
case 250: case 250:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:1439 //line sql.y:1447
{ {
// Change this to an alter statement // Change this to an alter statement
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName}
} }
case 251: case 251:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1444 //line sql.y:1452
{ {
var exists bool var exists bool
if yyDollar[3].byt != 0 { if yyDollar[3].byt != 0 {
...@@ -4391,146 +4399,146 @@ yydefault: ...@@ -4391,146 +4399,146 @@ yydefault:
} }
case 252: case 252:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1452 //line sql.y:1460
{ {
yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)}
} }
case 253: case 253:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1456 //line sql.y:1464
{ {
yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)}
} }
case 254: case 254:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1462 //line sql.y:1470
{ {
yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName}
} }
case 255: case 255:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1466 //line sql.y:1474
{ {
yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName}
} }
case 256: case 256:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1471 //line sql.y:1479
{ {
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName}
} }
case 257: case 257:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1477 //line sql.y:1485
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 258: case 258:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1482 //line sql.y:1490
{ {
yyVAL.statement = &Show{Type: CharsetStr} yyVAL.statement = &Show{Type: CharsetStr}
} }
case 259: case 259:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1486 //line sql.y:1494
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 260: case 260:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1490 //line sql.y:1498
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 261: case 261:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1495 //line sql.y:1503
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 262: case 262:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1499 //line sql.y:1507
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 263: case 263:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1503 //line sql.y:1511
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), Table: yyDollar[4].tableName} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), Table: yyDollar[4].tableName}
} }
case 264: case 264:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1507 //line sql.y:1515
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 265: case 265:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1511 //line sql.y:1519
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 266: case 266:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1515 //line sql.y:1523
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 267: case 267:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1519 //line sql.y:1527
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 268: case 268:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1523 //line sql.y:1531
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 269: case 269:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1527 //line sql.y:1535
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 270: case 270:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1531 //line sql.y:1539
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 271: case 271:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1535 //line sql.y:1543
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 272: case 272:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1539 //line sql.y:1547
{ {
yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)}
} }
case 273: case 273:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1543 //line sql.y:1551
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 274: case 274:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1547 //line sql.y:1555
{ {
showTablesOpt := &ShowTablesOpt{Full: yyDollar[2].str, DbName: yyDollar[6].str, Filter: yyDollar[7].showFilter} showTablesOpt := &ShowTablesOpt{Full: yyDollar[2].str, DbName: yyDollar[6].str, Filter: yyDollar[7].showFilter}
yyVAL.statement = &Show{Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt, OnTable: yyDollar[5].tableName} yyVAL.statement = &Show{Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt, OnTable: yyDollar[5].tableName}
} }
case 275: case 275:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1552 //line sql.y:1560
{ {
// this is ugly, but I couldn't find a better way for now // this is ugly, but I couldn't find a better way for now
if yyDollar[3].str == "processlist" { if yyDollar[3].str == "processlist" {
...@@ -4542,19 +4550,19 @@ yydefault: ...@@ -4542,19 +4550,19 @@ yydefault:
} }
case 276: case 276:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1562 //line sql.y:1570
{ {
yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)}
} }
case 277: case 277:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1566 //line sql.y:1574
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 278: case 278:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1570 //line sql.y:1578
{ {
// Cannot dereference $4 directly, or else the parser stackcannot be pooled. See yyParsePooled // Cannot dereference $4 directly, or else the parser stackcannot be pooled. See yyParsePooled
showCollationFilterOpt := yyDollar[4].expr showCollationFilterOpt := yyDollar[4].expr
...@@ -4562,423 +4570,423 @@ yydefault: ...@@ -4562,423 +4570,423 @@ yydefault:
} }
case 279: case 279:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1576 //line sql.y:1584
{ {
showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilter} showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilter}
yyVAL.statement = &Show{Scope: string(yyDollar[2].bytes), Type: string(yyDollar[3].bytes), ShowTablesOpt: showTablesOpt} yyVAL.statement = &Show{Scope: string(yyDollar[2].bytes), Type: string(yyDollar[3].bytes), ShowTablesOpt: showTablesOpt}
} }
case 280: case 280:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1581 //line sql.y:1589
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 281: case 281:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1585 //line sql.y:1593
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 282: case 282:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1589 //line sql.y:1597
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), OnTable: yyDollar[5].tableName} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), OnTable: yyDollar[5].tableName}
} }
case 283: case 283:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1593 //line sql.y:1601
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 284: case 284:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1607 //line sql.y:1615
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 285: case 285:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1613 //line sql.y:1621
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 286: case 286:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1617 //line sql.y:1625
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 287: case 287:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1623 //line sql.y:1631
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 288: case 288:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1627 //line sql.y:1635
{ {
yyVAL.str = "full " yyVAL.str = "full "
} }
case 289: case 289:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1633 //line sql.y:1641
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 290: case 290:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1637 //line sql.y:1645
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 291: case 291:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1643 //line sql.y:1651
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 292: case 292:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1647 //line sql.y:1655
{ {
yyVAL.str = yyDollar[2].tableIdent.v yyVAL.str = yyDollar[2].tableIdent.v
} }
case 293: case 293:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1651 //line sql.y:1659
{ {
yyVAL.str = yyDollar[2].tableIdent.v yyVAL.str = yyDollar[2].tableIdent.v
} }
case 294: case 294:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1657 //line sql.y:1665
{ {
yyVAL.showFilter = nil yyVAL.showFilter = nil
} }
case 295: case 295:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1661 //line sql.y:1669
{ {
yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)}
} }
case 296: case 296:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1665 //line sql.y:1673
{ {
yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr}
} }
case 297: case 297:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1671 //line sql.y:1679
{ {
yyVAL.showFilter = nil yyVAL.showFilter = nil
} }
case 298: case 298:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1675 //line sql.y:1683
{ {
yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)}
} }
case 299: case 299:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1681 //line sql.y:1689
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 300: case 300:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1685 //line sql.y:1693
{ {
yyVAL.str = SessionStr yyVAL.str = SessionStr
} }
case 301: case 301:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1689 //line sql.y:1697
{ {
yyVAL.str = GlobalStr yyVAL.str = GlobalStr
} }
case 302: case 302:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1695 //line sql.y:1703
{ {
yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent}
} }
case 303: case 303:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1699 //line sql.y:1707
{ {
yyVAL.statement = &Use{DBName: TableIdent{v: ""}} yyVAL.statement = &Use{DBName: TableIdent{v: ""}}
} }
case 304: case 304:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1705 //line sql.y:1713
{ {
yyVAL.statement = &Begin{} yyVAL.statement = &Begin{}
} }
case 305: case 305:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1709 //line sql.y:1717
{ {
yyVAL.statement = &Begin{} yyVAL.statement = &Begin{}
} }
case 306: case 306:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1715 //line sql.y:1723
{ {
yyVAL.statement = &Commit{} yyVAL.statement = &Commit{}
} }
case 307: case 307:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1721 //line sql.y:1729
{ {
yyVAL.statement = &Rollback{} yyVAL.statement = &Rollback{}
} }
case 308: case 308:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1727 //line sql.y:1735
{ {
yyVAL.statement = &OtherRead{} yyVAL.statement = &OtherRead{}
} }
case 309: case 309:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1731 //line sql.y:1739
{ {
yyVAL.statement = &OtherRead{} yyVAL.statement = &OtherRead{}
} }
case 310: case 310:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1735 //line sql.y:1743
{ {
yyVAL.statement = &OtherRead{} yyVAL.statement = &OtherRead{}
} }
case 311: case 311:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1739 //line sql.y:1747
{ {
yyVAL.statement = &OtherAdmin{} yyVAL.statement = &OtherAdmin{}
} }
case 312: case 312:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1743 //line sql.y:1751
{ {
yyVAL.statement = &OtherAdmin{} yyVAL.statement = &OtherAdmin{}
} }
case 313: case 313:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1747 //line sql.y:1755
{ {
yyVAL.statement = &OtherAdmin{} yyVAL.statement = &OtherAdmin{}
} }
case 314: case 314:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1751 //line sql.y:1759
{ {
yyVAL.statement = &OtherAdmin{} yyVAL.statement = &OtherAdmin{}
} }
case 315: case 315:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1757 //line sql.y:1765
{ {
yyVAL.statement = &DDL{Action: FlushStr} yyVAL.statement = &DDL{Action: FlushStr}
} }
case 316: case 316:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1761 //line sql.y:1769
{ {
setAllowComments(yylex, true) setAllowComments(yylex, true)
} }
case 317: case 317:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1765 //line sql.y:1773
{ {
yyVAL.bytes2 = yyDollar[2].bytes2 yyVAL.bytes2 = yyDollar[2].bytes2
setAllowComments(yylex, false) setAllowComments(yylex, false)
} }
case 318: case 318:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1771 //line sql.y:1779
{ {
yyVAL.bytes2 = nil yyVAL.bytes2 = nil
} }
case 319: case 319:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1775 //line sql.y:1783
{ {
yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes)
} }
case 320: case 320:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1781 //line sql.y:1789
{ {
yyVAL.str = UnionStr yyVAL.str = UnionStr
} }
case 321: case 321:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1785 //line sql.y:1793
{ {
yyVAL.str = UnionAllStr yyVAL.str = UnionAllStr
} }
case 322: case 322:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1789 //line sql.y:1797
{ {
yyVAL.str = UnionDistinctStr yyVAL.str = UnionDistinctStr
} }
case 323: case 323:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1794 //line sql.y:1802
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 324: case 324:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1798 //line sql.y:1806
{ {
yyVAL.str = SQLNoCacheStr yyVAL.str = SQLNoCacheStr
} }
case 325: case 325:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1802 //line sql.y:1810
{ {
yyVAL.str = SQLCacheStr yyVAL.str = SQLCacheStr
} }
case 326: case 326:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1807 //line sql.y:1815
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 327: case 327:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1811 //line sql.y:1819
{ {
yyVAL.str = DistinctStr yyVAL.str = DistinctStr
} }
case 328: case 328:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1816 //line sql.y:1824
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 329: case 329:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1820 //line sql.y:1828
{ {
yyVAL.str = StraightJoinHint yyVAL.str = StraightJoinHint
} }
case 330: case 330:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1825 //line sql.y:1833
{ {
yyVAL.selectExprs = nil yyVAL.selectExprs = nil
} }
case 331: case 331:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1829 //line sql.y:1837
{ {
yyVAL.selectExprs = yyDollar[1].selectExprs yyVAL.selectExprs = yyDollar[1].selectExprs
} }
case 332: case 332:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1835 //line sql.y:1843
{ {
yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr}
} }
case 333: case 333:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1839 //line sql.y:1847
{ {
yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr)
} }
case 334: case 334:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1845 //line sql.y:1853
{ {
yyVAL.selectExpr = &StarExpr{} yyVAL.selectExpr = &StarExpr{}
} }
case 335: case 335:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1849 //line sql.y:1857
{ {
yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent}
} }
case 336: case 336:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1853 //line sql.y:1861
{ {
yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}}
} }
case 337: case 337:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1857 //line sql.y:1865
{ {
yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}}
} }
case 338: case 338:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1862 //line sql.y:1870
{ {
yyVAL.colIdent = ColIdent{} yyVAL.colIdent = ColIdent{}
} }
case 339: case 339:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1866 //line sql.y:1874
{ {
yyVAL.colIdent = yyDollar[1].colIdent yyVAL.colIdent = yyDollar[1].colIdent
} }
case 340: case 340:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1870 //line sql.y:1878
{ {
yyVAL.colIdent = yyDollar[2].colIdent yyVAL.colIdent = yyDollar[2].colIdent
} }
case 342: case 342:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1877 //line sql.y:1885
{ {
yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes))
} }
case 343: case 343:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1882 //line sql.y:1890
{ {
yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}}
} }
case 344: case 344:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1886 //line sql.y:1894
{ {
yyVAL.tableExprs = yyDollar[2].tableExprs yyVAL.tableExprs = yyDollar[2].tableExprs
} }
case 345: case 345:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1892 //line sql.y:1900
{ {
yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr}
} }
case 346: case 346:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1896 //line sql.y:1904
{ {
yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr)
} }
case 349: case 349:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1906 //line sql.y:1914
{ {
yyVAL.tableExpr = yyDollar[1].aliasedTableName yyVAL.tableExpr = yyDollar[1].aliasedTableName
} }
case 350: case 350:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1910 //line sql.y:1918
{ {
yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent}
} }
case 351: case 351:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1914 //line sql.y:1922
{ {
// missed alias for subquery // missed alias for subquery
yylex.Error("Every derived table must have its own alias") yylex.Error("Every derived table must have its own alias")
...@@ -4986,199 +4994,199 @@ yydefault: ...@@ -4986,199 +4994,199 @@ yydefault:
} }
case 352: case 352:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1920 //line sql.y:1928
{ {
yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs}
} }
case 353: case 353:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1926 //line sql.y:1934
{ {
yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints}
} }
case 354: case 354:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1930 //line sql.y:1938
{ {
yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints}
} }
case 355: case 355:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1936 //line sql.y:1944
{ {
yyVAL.columns = Columns{yyDollar[1].colIdent} yyVAL.columns = Columns{yyDollar[1].colIdent}
} }
case 356: case 356:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1940 //line sql.y:1948
{ {
yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent)
} }
case 357: case 357:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1946 //line sql.y:1954
{ {
yyVAL.partitions = Partitions{yyDollar[1].colIdent} yyVAL.partitions = Partitions{yyDollar[1].colIdent}
} }
case 358: case 358:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1950 //line sql.y:1958
{ {
yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent)
} }
case 359: case 359:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1963 //line sql.y:1971
{ {
yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition}
} }
case 360: case 360:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1967 //line sql.y:1975
{ {
yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition}
} }
case 361: case 361:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1971 //line sql.y:1979
{ {
yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition}
} }
case 362: case 362:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1975 //line sql.y:1983
{ {
yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr}
} }
case 363: case 363:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1981 //line sql.y:1989
{ {
yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr}
} }
case 364: case 364:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1983 //line sql.y:1991
{ {
yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns}
} }
case 365: case 365:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1987 //line sql.y:1995
{ {
yyVAL.joinCondition = JoinCondition{} yyVAL.joinCondition = JoinCondition{}
} }
case 366: case 366:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1989 //line sql.y:1997
{ {
yyVAL.joinCondition = yyDollar[1].joinCondition yyVAL.joinCondition = yyDollar[1].joinCondition
} }
case 367: case 367:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1993 //line sql.y:2001
{ {
yyVAL.joinCondition = JoinCondition{} yyVAL.joinCondition = JoinCondition{}
} }
case 368: case 368:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1995 //line sql.y:2003
{ {
yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr}
} }
case 369: case 369:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1998 //line sql.y:2006
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 370: case 370:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2000 //line sql.y:2008
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 371: case 371:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2003 //line sql.y:2011
{ {
yyVAL.tableIdent = NewTableIdent("") yyVAL.tableIdent = NewTableIdent("")
} }
case 372: case 372:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2007 //line sql.y:2015
{ {
yyVAL.tableIdent = yyDollar[1].tableIdent yyVAL.tableIdent = yyDollar[1].tableIdent
} }
case 373: case 373:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2011 //line sql.y:2019
{ {
yyVAL.tableIdent = yyDollar[2].tableIdent yyVAL.tableIdent = yyDollar[2].tableIdent
} }
case 375: case 375:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2018 //line sql.y:2026
{ {
yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes))
} }
case 376: case 376:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2024 //line sql.y:2032
{ {
yyVAL.str = JoinStr yyVAL.str = JoinStr
} }
case 377: case 377:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2028 //line sql.y:2036
{ {
yyVAL.str = JoinStr yyVAL.str = JoinStr
} }
case 378: case 378:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2032 //line sql.y:2040
{ {
yyVAL.str = JoinStr yyVAL.str = JoinStr
} }
case 379: case 379:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2038 //line sql.y:2046
{ {
yyVAL.str = StraightJoinStr yyVAL.str = StraightJoinStr
} }
case 380: case 380:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2044 //line sql.y:2052
{ {
yyVAL.str = LeftJoinStr yyVAL.str = LeftJoinStr
} }
case 381: case 381:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2048 //line sql.y:2056
{ {
yyVAL.str = LeftJoinStr yyVAL.str = LeftJoinStr
} }
case 382: case 382:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2052 //line sql.y:2060
{ {
yyVAL.str = RightJoinStr yyVAL.str = RightJoinStr
} }
case 383: case 383:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2056 //line sql.y:2064
{ {
yyVAL.str = RightJoinStr yyVAL.str = RightJoinStr
} }
case 384: case 384:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2062 //line sql.y:2070
{ {
yyVAL.str = NaturalJoinStr yyVAL.str = NaturalJoinStr
} }
case 385: case 385:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2066 //line sql.y:2074
{ {
if yyDollar[2].str == LeftJoinStr { if yyDollar[2].str == LeftJoinStr {
yyVAL.str = NaturalLeftJoinStr yyVAL.str = NaturalLeftJoinStr
...@@ -5188,463 +5196,463 @@ yydefault: ...@@ -5188,463 +5196,463 @@ yydefault:
} }
case 386: case 386:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2076 //line sql.y:2084
{ {
yyVAL.tableName = yyDollar[2].tableName yyVAL.tableName = yyDollar[2].tableName
} }
case 387: case 387:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2080 //line sql.y:2088
{ {
yyVAL.tableName = yyDollar[1].tableName yyVAL.tableName = yyDollar[1].tableName
} }
case 388: case 388:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2086 //line sql.y:2094
{ {
yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent}
} }
case 389: case 389:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2090 //line sql.y:2098
{ {
yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}
} }
case 390: case 390:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2096 //line sql.y:2104
{ {
yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent}
} }
case 391: case 391:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2101 //line sql.y:2109
{ {
yyVAL.indexHints = nil yyVAL.indexHints = nil
} }
case 392: case 392:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2105 //line sql.y:2113
{ {
yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns}
} }
case 393: case 393:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2109 //line sql.y:2117
{ {
yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns}
} }
case 394: case 394:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2113 //line sql.y:2121
{ {
yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns}
} }
case 395: case 395:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2118 //line sql.y:2126
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 396: case 396:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2122 //line sql.y:2130
{ {
yyVAL.expr = yyDollar[2].expr yyVAL.expr = yyDollar[2].expr
} }
case 397: case 397:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2128 //line sql.y:2136
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 398: case 398:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2132 //line sql.y:2140
{ {
yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr}
} }
case 399: case 399:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2136 //line sql.y:2144
{ {
yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr}
} }
case 400: case 400:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2140 //line sql.y:2148
{ {
yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr}
} }
case 401: case 401:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2144 //line sql.y:2152
{ {
yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr}
} }
case 402: case 402:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2148 //line sql.y:2156
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 403: case 403:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2152 //line sql.y:2160
{ {
yyVAL.expr = &Default{ColName: yyDollar[2].str} yyVAL.expr = &Default{ColName: yyDollar[2].str}
} }
case 404: case 404:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2158 //line sql.y:2166
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 405: case 405:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2162 //line sql.y:2170
{ {
yyVAL.str = string(yyDollar[2].bytes) yyVAL.str = string(yyDollar[2].bytes)
} }
case 406: case 406:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2168 //line sql.y:2176
{ {
yyVAL.boolVal = BoolVal(true) yyVAL.boolVal = BoolVal(true)
} }
case 407: case 407:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2172 //line sql.y:2180
{ {
yyVAL.boolVal = BoolVal(false) yyVAL.boolVal = BoolVal(false)
} }
case 408: case 408:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2178 //line sql.y:2186
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr}
} }
case 409: case 409:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2182 //line sql.y:2190
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple}
} }
case 410: case 410:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2186 //line sql.y:2194
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple}
} }
case 411: case 411:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2190 //line sql.y:2198
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr}
} }
case 412: case 412:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2194 //line sql.y:2202
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr}
} }
case 413: case 413:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2198 //line sql.y:2206
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr}
} }
case 414: case 414:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2202 //line sql.y:2210
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr}
} }
case 415: case 415:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2206 //line sql.y:2214
{ {
yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr}
} }
case 416: case 416:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2210 //line sql.y:2218
{ {
yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr}
} }
case 417: case 417:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2214 //line sql.y:2222
{ {
yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery}
} }
case 418: case 418:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2220 //line sql.y:2228
{ {
yyVAL.str = IsNullStr yyVAL.str = IsNullStr
} }
case 419: case 419:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2224 //line sql.y:2232
{ {
yyVAL.str = IsNotNullStr yyVAL.str = IsNotNullStr
} }
case 420: case 420:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2228 //line sql.y:2236
{ {
yyVAL.str = IsTrueStr yyVAL.str = IsTrueStr
} }
case 421: case 421:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2232 //line sql.y:2240
{ {
yyVAL.str = IsNotTrueStr yyVAL.str = IsNotTrueStr
} }
case 422: case 422:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2236 //line sql.y:2244
{ {
yyVAL.str = IsFalseStr yyVAL.str = IsFalseStr
} }
case 423: case 423:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2240 //line sql.y:2248
{ {
yyVAL.str = IsNotFalseStr yyVAL.str = IsNotFalseStr
} }
case 424: case 424:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2246 //line sql.y:2254
{ {
yyVAL.str = EqualStr yyVAL.str = EqualStr
} }
case 425: case 425:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2250 //line sql.y:2258
{ {
yyVAL.str = LessThanStr yyVAL.str = LessThanStr
} }
case 426: case 426:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2254 //line sql.y:2262
{ {
yyVAL.str = GreaterThanStr yyVAL.str = GreaterThanStr
} }
case 427: case 427:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2258 //line sql.y:2266
{ {
yyVAL.str = LessEqualStr yyVAL.str = LessEqualStr
} }
case 428: case 428:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2262 //line sql.y:2270
{ {
yyVAL.str = GreaterEqualStr yyVAL.str = GreaterEqualStr
} }
case 429: case 429:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2266 //line sql.y:2274
{ {
yyVAL.str = NotEqualStr yyVAL.str = NotEqualStr
} }
case 430: case 430:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2270 //line sql.y:2278
{ {
yyVAL.str = NullSafeEqualStr yyVAL.str = NullSafeEqualStr
} }
case 431: case 431:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2275 //line sql.y:2283
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 432: case 432:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2279 //line sql.y:2287
{ {
yyVAL.expr = yyDollar[2].expr yyVAL.expr = yyDollar[2].expr
} }
case 433: case 433:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2285 //line sql.y:2293
{ {
yyVAL.colTuple = yyDollar[1].valTuple yyVAL.colTuple = yyDollar[1].valTuple
} }
case 434: case 434:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2289 //line sql.y:2297
{ {
yyVAL.colTuple = yyDollar[1].subquery yyVAL.colTuple = yyDollar[1].subquery
} }
case 435: case 435:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2293 //line sql.y:2301
{ {
yyVAL.colTuple = ListArg(yyDollar[1].bytes) yyVAL.colTuple = ListArg(yyDollar[1].bytes)
} }
case 436: case 436:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2299 //line sql.y:2307
{ {
yyVAL.subquery = &Subquery{yyDollar[2].selStmt} yyVAL.subquery = &Subquery{yyDollar[2].selStmt}
} }
case 437: case 437:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2305 //line sql.y:2313
{ {
yyVAL.exprs = Exprs{yyDollar[1].expr} yyVAL.exprs = Exprs{yyDollar[1].expr}
} }
case 438: case 438:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2309 //line sql.y:2317
{ {
yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr)
} }
case 439: case 439:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2315 //line sql.y:2323
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 440: case 440:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2319 //line sql.y:2327
{ {
yyVAL.expr = yyDollar[1].boolVal yyVAL.expr = yyDollar[1].boolVal
} }
case 441: case 441:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2323 //line sql.y:2331
{ {
yyVAL.expr = yyDollar[1].colName yyVAL.expr = yyDollar[1].colName
} }
case 442: case 442:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2327 //line sql.y:2335
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 443: case 443:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2331 //line sql.y:2339
{ {
yyVAL.expr = yyDollar[1].subquery yyVAL.expr = yyDollar[1].subquery
} }
case 444: case 444:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2335 //line sql.y:2343
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr}
} }
case 445: case 445:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2339 //line sql.y:2347
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr}
} }
case 446: case 446:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2343 //line sql.y:2351
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr}
} }
case 447: case 447:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2347 //line sql.y:2355
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr}
} }
case 448: case 448:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2351 //line sql.y:2359
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr}
} }
case 449: case 449:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2355 //line sql.y:2363
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr}
} }
case 450: case 450:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2359 //line sql.y:2367
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr}
} }
case 451: case 451:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2363 //line sql.y:2371
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr}
} }
case 452: case 452:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2367 //line sql.y:2375
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr}
} }
case 453: case 453:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2371 //line sql.y:2379
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr}
} }
case 454: case 454:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2375 //line sql.y:2383
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr}
} }
case 455: case 455:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2379 //line sql.y:2387
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr}
} }
case 456: case 456:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2383 //line sql.y:2391
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr}
} }
case 457: case 457:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2387 //line sql.y:2395
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr}
} }
case 458: case 458:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2391 //line sql.y:2399
{ {
yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str}
} }
case 459: case 459:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2395 //line sql.y:2403
{ {
yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr}
} }
case 460: case 460:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2399 //line sql.y:2407
{ {
yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr}
} }
case 461: case 461:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2403 //line sql.y:2411
{ {
yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr}
} }
case 462: case 462:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2407 //line sql.y:2415
{ {
if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal {
yyVAL.expr = num yyVAL.expr = num
...@@ -5654,7 +5662,7 @@ yydefault: ...@@ -5654,7 +5662,7 @@ yydefault:
} }
case 463: case 463:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2415 //line sql.y:2423
{ {
if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal {
// Handle double negative // Handle double negative
...@@ -5670,19 +5678,19 @@ yydefault: ...@@ -5670,19 +5678,19 @@ yydefault:
} }
case 464: case 464:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2429 //line sql.y:2437
{ {
yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr}
} }
case 465: case 465:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2433 //line sql.y:2441
{ {
yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr}
} }
case 466: case 466:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2437 //line sql.y:2445
{ {
// This rule prevents the usage of INTERVAL // This rule prevents the usage of INTERVAL
// as a function. If support is needed for that, // as a function. If support is needed for that,
...@@ -5692,313 +5700,313 @@ yydefault: ...@@ -5692,313 +5700,313 @@ yydefault:
} }
case 471: case 471:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2455 //line sql.y:2463
{ {
yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs}
} }
case 472: case 472:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2459 //line sql.y:2467
{ {
yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs}
} }
case 473: case 473:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2463 //line sql.y:2471
{ {
yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs}
} }
case 474: case 474:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2473 //line sql.y:2481
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs}
} }
case 475: case 475:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2477 //line sql.y:2485
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs}
} }
case 476: case 476:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2481 //line sql.y:2489
{ {
yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType}
} }
case 477: case 477:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2485 //line sql.y:2493
{ {
yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType}
} }
case 478: case 478:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2489 //line sql.y:2497
{ {
yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str}
} }
case 479: case 479:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2493 //line sql.y:2501
{ {
yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr}
} }
case 480: case 480:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2497 //line sql.y:2505
{ {
yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr}
} }
case 481: case 481:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2501 //line sql.y:2509
{ {
yyVAL.expr = &SubstrExpr{StrVal: NewStrVal(yyDollar[3].bytes), From: yyDollar[5].expr, To: yyDollar[7].expr} yyVAL.expr = &SubstrExpr{StrVal: NewStrVal(yyDollar[3].bytes), From: yyDollar[5].expr, To: yyDollar[7].expr}
} }
case 482: case 482:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2505 //line sql.y:2513
{ {
yyVAL.expr = &SubstrExpr{StrVal: NewStrVal(yyDollar[3].bytes), From: yyDollar[5].expr, To: yyDollar[7].expr} yyVAL.expr = &SubstrExpr{StrVal: NewStrVal(yyDollar[3].bytes), From: yyDollar[5].expr, To: yyDollar[7].expr}
} }
case 483: case 483:
yyDollar = yyS[yypt-9 : yypt+1] yyDollar = yyS[yypt-9 : yypt+1]
//line sql.y:2509 //line sql.y:2517
{ {
yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str}
} }
case 484: case 484:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:2513 //line sql.y:2521
{ {
yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str}
} }
case 485: case 485:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2517 //line sql.y:2525
{ {
yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr}
} }
case 486: case 486:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2521 //line sql.y:2529
{ {
yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName}
} }
case 487: case 487:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2531 //line sql.y:2539
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")}
} }
case 488: case 488:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2535 //line sql.y:2543
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")}
} }
case 489: case 489:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2539 //line sql.y:2547
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")}
} }
case 490: case 490:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2544 //line sql.y:2552
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")}
} }
case 491: case 491:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2549 //line sql.y:2557
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")}
} }
case 492: case 492:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2554 //line sql.y:2562
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")}
} }
case 493: case 493:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2560 //line sql.y:2568
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")}
} }
case 494: case 494:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2565 //line sql.y:2573
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")}
} }
case 495: case 495:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2570 //line sql.y:2578
{ {
yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].expr} yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].expr}
} }
case 496: case 496:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2574 //line sql.y:2582
{ {
yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].expr} yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].expr}
} }
case 497: case 497:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2578 //line sql.y:2586
{ {
yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].expr} yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].expr}
} }
case 498: case 498:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2583 //line sql.y:2591
{ {
yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].expr} yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].expr}
} }
case 499: case 499:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2588 //line sql.y:2596
{ {
yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].expr} yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].expr}
} }
case 500: case 500:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2593 //line sql.y:2601
{ {
yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].expr} yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].expr}
} }
case 501: case 501:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2597 //line sql.y:2605
{ {
yyVAL.expr = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].expr, Expr2: yyDollar[7].expr} yyVAL.expr = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].expr, Expr2: yyDollar[7].expr}
} }
case 502: case 502:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2601 //line sql.y:2609
{ {
yyVAL.expr = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].expr, Expr2: yyDollar[7].expr} yyVAL.expr = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].expr, Expr2: yyDollar[7].expr}
} }
case 505: case 505:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2611 //line sql.y:2619
{ {
yyVAL.expr = yyDollar[2].expr yyVAL.expr = yyDollar[2].expr
} }
case 506: case 506:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2621 //line sql.y:2629
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs}
} }
case 507: case 507:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2625 //line sql.y:2633
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs}
} }
case 508: case 508:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2629 //line sql.y:2637
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs}
} }
case 509: case 509:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2633 //line sql.y:2641
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs}
} }
case 510: case 510:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2637 //line sql.y:2645
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprs}
} }
case 511: case 511:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2641 //line sql.y:2649
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprs}
} }
case 512: case 512:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2647 //line sql.y:2655
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 513: case 513:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2651 //line sql.y:2659
{ {
yyVAL.str = BooleanModeStr yyVAL.str = BooleanModeStr
} }
case 514: case 514:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2655 //line sql.y:2663
{ {
yyVAL.str = NaturalLanguageModeStr yyVAL.str = NaturalLanguageModeStr
} }
case 515: case 515:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:2659 //line sql.y:2667
{ {
yyVAL.str = NaturalLanguageModeWithQueryExpansionStr yyVAL.str = NaturalLanguageModeWithQueryExpansionStr
} }
case 516: case 516:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2663 //line sql.y:2671
{ {
yyVAL.str = QueryExpansionStr yyVAL.str = QueryExpansionStr
} }
case 517: case 517:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2669 //line sql.y:2677
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 518: case 518:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2673 //line sql.y:2681
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 519: case 519:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2679 //line sql.y:2687
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal}
} }
case 520: case 520:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2683 //line sql.y:2691
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal, Charset: yyDollar[3].str, Operator: CharacterSetStr}
} }
case 521: case 521:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2687 //line sql.y:2695
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal, Charset: string(yyDollar[3].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal, Charset: string(yyDollar[3].bytes)}
} }
case 522: case 522:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2691 //line sql.y:2699
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 523: case 523:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2695 //line sql.y:2703
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal}
} }
case 524: case 524:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2699 //line sql.y:2707
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length
...@@ -6006,169 +6014,169 @@ yydefault: ...@@ -6006,169 +6014,169 @@ yydefault:
} }
case 525: case 525:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2705 //line sql.y:2713
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 526: case 526:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2709 //line sql.y:2717
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal}
} }
case 527: case 527:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2713 //line sql.y:2721
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 528: case 528:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2717 //line sql.y:2725
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 529: case 529:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2721 //line sql.y:2729
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal}
} }
case 530: case 530:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2725 //line sql.y:2733
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 531: case 531:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2729 //line sql.y:2737
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 532: case 532:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2734 //line sql.y:2742
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 533: case 533:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2738 //line sql.y:2746
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 534: case 534:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2743 //line sql.y:2751
{ {
yyVAL.str = string("") yyVAL.str = string("")
} }
case 535: case 535:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2747 //line sql.y:2755
{ {
yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'"
} }
case 536: case 536:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2753 //line sql.y:2761
{ {
yyVAL.whens = []*When{yyDollar[1].when} yyVAL.whens = []*When{yyDollar[1].when}
} }
case 537: case 537:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2757 //line sql.y:2765
{ {
yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when)
} }
case 538: case 538:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2763 //line sql.y:2771
{ {
yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr}
} }
case 539: case 539:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2768 //line sql.y:2776
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 540: case 540:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2772 //line sql.y:2780
{ {
yyVAL.expr = yyDollar[2].expr yyVAL.expr = yyDollar[2].expr
} }
case 541: case 541:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2778 //line sql.y:2786
{ {
yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} yyVAL.colName = &ColName{Name: yyDollar[1].colIdent}
} }
case 542: case 542:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2782 //line sql.y:2790
{ {
yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent}
} }
case 543: case 543:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2786 //line sql.y:2794
{ {
yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent}
} }
case 544: case 544:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2792 //line sql.y:2800
{ {
yyVAL.expr = NewStrVal(yyDollar[1].bytes) yyVAL.expr = NewStrVal(yyDollar[1].bytes)
} }
case 545: case 545:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2796 //line sql.y:2804
{ {
yyVAL.expr = NewHexVal(yyDollar[1].bytes) yyVAL.expr = NewHexVal(yyDollar[1].bytes)
} }
case 546: case 546:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2800 //line sql.y:2808
{ {
yyVAL.expr = NewBitVal(yyDollar[1].bytes) yyVAL.expr = NewBitVal(yyDollar[1].bytes)
} }
case 547: case 547:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2804 //line sql.y:2812
{ {
yyVAL.expr = NewIntVal(yyDollar[1].bytes) yyVAL.expr = NewIntVal(yyDollar[1].bytes)
} }
case 548: case 548:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2808 //line sql.y:2816
{ {
yyVAL.expr = NewFloatVal(yyDollar[1].bytes) yyVAL.expr = NewFloatVal(yyDollar[1].bytes)
} }
case 549: case 549:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2812 //line sql.y:2820
{ {
yyVAL.expr = NewHexNum(yyDollar[1].bytes) yyVAL.expr = NewHexNum(yyDollar[1].bytes)
} }
case 550: case 550:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2816 //line sql.y:2824
{ {
yyVAL.expr = NewValArg(yyDollar[1].bytes) yyVAL.expr = NewValArg(yyDollar[1].bytes)
} }
case 551: case 551:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2820 //line sql.y:2828
{ {
yyVAL.expr = &NullVal{} yyVAL.expr = &NullVal{}
} }
case 552: case 552:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2826 //line sql.y:2834
{ {
// TODO(sougou): Deprecate this construct. // TODO(sougou): Deprecate this construct.
if yyDollar[1].colIdent.Lowered() != "value" { if yyDollar[1].colIdent.Lowered() != "value" {
...@@ -6179,237 +6187,237 @@ yydefault: ...@@ -6179,237 +6187,237 @@ yydefault:
} }
case 553: case 553:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2835 //line sql.y:2843
{ {
yyVAL.expr = NewIntVal(yyDollar[1].bytes) yyVAL.expr = NewIntVal(yyDollar[1].bytes)
} }
case 554: case 554:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2839 //line sql.y:2847
{ {
yyVAL.expr = NewValArg(yyDollar[1].bytes) yyVAL.expr = NewValArg(yyDollar[1].bytes)
} }
case 555: case 555:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2844 //line sql.y:2852
{ {
yyVAL.exprs = nil yyVAL.exprs = nil
} }
case 556: case 556:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2848 //line sql.y:2856
{ {
yyVAL.exprs = yyDollar[3].exprs yyVAL.exprs = yyDollar[3].exprs
} }
case 557: case 557:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2853 //line sql.y:2861
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 558: case 558:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2857 //line sql.y:2865
{ {
yyVAL.expr = yyDollar[2].expr yyVAL.expr = yyDollar[2].expr
} }
case 559: case 559:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2862 //line sql.y:2870
{ {
yyVAL.orderBy = nil yyVAL.orderBy = nil
} }
case 560: case 560:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2866 //line sql.y:2874
{ {
yyVAL.orderBy = yyDollar[3].orderBy yyVAL.orderBy = yyDollar[3].orderBy
} }
case 561: case 561:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2872 //line sql.y:2880
{ {
yyVAL.orderBy = OrderBy{yyDollar[1].order} yyVAL.orderBy = OrderBy{yyDollar[1].order}
} }
case 562: case 562:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2876 //line sql.y:2884
{ {
yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order)
} }
case 563: case 563:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2882 //line sql.y:2890
{ {
yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str}
} }
case 564: case 564:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2887 //line sql.y:2895
{ {
yyVAL.str = AscScr yyVAL.str = AscScr
} }
case 565: case 565:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2891 //line sql.y:2899
{ {
yyVAL.str = AscScr yyVAL.str = AscScr
} }
case 566: case 566:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2895 //line sql.y:2903
{ {
yyVAL.str = DescScr yyVAL.str = DescScr
} }
case 567: case 567:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2900 //line sql.y:2908
{ {
yyVAL.limit = nil yyVAL.limit = nil
} }
case 568: case 568:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2904 //line sql.y:2912
{ {
yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr}
} }
case 569: case 569:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2908 //line sql.y:2916
{ {
yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr}
} }
case 570: case 570:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2912 //line sql.y:2920
{ {
yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr}
} }
case 571: case 571:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2917 //line sql.y:2925
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 572: case 572:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2921 //line sql.y:2929
{ {
yyVAL.str = ForUpdateStr yyVAL.str = ForUpdateStr
} }
case 573: case 573:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2925 //line sql.y:2933
{ {
yyVAL.str = ShareModeStr yyVAL.str = ShareModeStr
} }
case 574: case 574:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2938 //line sql.y:2946
{ {
yyVAL.ins = &Insert{Rows: yyDollar[2].values} yyVAL.ins = &Insert{Rows: yyDollar[2].values}
} }
case 575: case 575:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2942 //line sql.y:2950
{ {
yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt}
} }
case 576: case 576:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2946 //line sql.y:2954
{ {
// Drop the redundant parenthesis. // Drop the redundant parenthesis.
yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt}
} }
case 577: case 577:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2951 //line sql.y:2959
{ {
yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values}
} }
case 578: case 578:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2955 //line sql.y:2963
{ {
yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt}
} }
case 579: case 579:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2959 //line sql.y:2967
{ {
// Drop the redundant parenthesis. // Drop the redundant parenthesis.
yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt}
} }
case 580: case 580:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2966 //line sql.y:2974
{ {
yyVAL.columns = Columns{yyDollar[1].colIdent} yyVAL.columns = Columns{yyDollar[1].colIdent}
} }
case 581: case 581:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2970 //line sql.y:2978
{ {
yyVAL.columns = Columns{yyDollar[3].colIdent} yyVAL.columns = Columns{yyDollar[3].colIdent}
} }
case 582: case 582:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2974 //line sql.y:2982
{ {
yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent)
} }
case 583: case 583:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2978 //line sql.y:2986
{ {
yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent)
} }
case 584: case 584:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2983 //line sql.y:2991
{ {
yyVAL.updateExprs = nil yyVAL.updateExprs = nil
} }
case 585: case 585:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2987 //line sql.y:2995
{ {
yyVAL.updateExprs = yyDollar[5].updateExprs yyVAL.updateExprs = yyDollar[5].updateExprs
} }
case 586: case 586:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2993 //line sql.y:3001
{ {
yyVAL.values = Values{yyDollar[1].valTuple} yyVAL.values = Values{yyDollar[1].valTuple}
} }
case 587: case 587:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2997 //line sql.y:3005
{ {
yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple)
} }
case 588: case 588:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3003 //line sql.y:3011
{ {
yyVAL.valTuple = yyDollar[1].valTuple yyVAL.valTuple = yyDollar[1].valTuple
} }
case 589: case 589:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3007 //line sql.y:3015
{ {
yyVAL.valTuple = ValTuple{} yyVAL.valTuple = ValTuple{}
} }
case 590: case 590:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3013 //line sql.y:3021
{ {
yyVAL.valTuple = ValTuple(yyDollar[2].exprs) yyVAL.valTuple = ValTuple(yyDollar[2].exprs)
} }
case 591: case 591:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3019 //line sql.y:3027
{ {
if len(yyDollar[1].valTuple) == 1 { if len(yyDollar[1].valTuple) == 1 {
yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]}
...@@ -6419,277 +6427,277 @@ yydefault: ...@@ -6419,277 +6427,277 @@ yydefault:
} }
case 592: case 592:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3029 //line sql.y:3037
{ {
yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr}
} }
case 593: case 593:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3033 //line sql.y:3041
{ {
yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr)
} }
case 594: case 594:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3039 //line sql.y:3047
{ {
yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr}
} }
case 595: case 595:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3045 //line sql.y:3053
{ {
yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} yyVAL.setExprs = SetExprs{yyDollar[1].setExpr}
} }
case 596: case 596:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3049 //line sql.y:3057
{ {
yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr)
} }
case 597: case 597:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3055 //line sql.y:3063
{ {
yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))}
} }
case 598: case 598:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3059 //line sql.y:3067
{ {
yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("off"))} yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("off"))}
} }
case 599: case 599:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3063 //line sql.y:3071
{ {
yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr}
} }
case 600: case 600:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3067 //line sql.y:3075
{ {
yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr}
} }
case 602: case 602:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3074 //line sql.y:3082
{ {
yyVAL.bytes = []byte("charset") yyVAL.bytes = []byte("charset")
} }
case 604: case 604:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3081 //line sql.y:3089
{ {
yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String()))
} }
case 605: case 605:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3085 //line sql.y:3093
{ {
yyVAL.expr = NewStrVal(yyDollar[1].bytes) yyVAL.expr = NewStrVal(yyDollar[1].bytes)
} }
case 606: case 606:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3089 //line sql.y:3097
{ {
yyVAL.expr = &Default{} yyVAL.expr = &Default{}
} }
case 609: case 609:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3098 //line sql.y:3106
{ {
yyVAL.byt = 0 yyVAL.byt = 0
} }
case 610: case 610:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3100 //line sql.y:3108
{ {
yyVAL.byt = 1 yyVAL.byt = 1
} }
case 611: case 611:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3103 //line sql.y:3111
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 612: case 612:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3105 //line sql.y:3113
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 613: case 613:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3108 //line sql.y:3116
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 614: case 614:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3110 //line sql.y:3118
{ {
yyVAL.str = IgnoreStr yyVAL.str = IgnoreStr
} }
case 615: case 615:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3114 //line sql.y:3122
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 616: case 616:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3116 //line sql.y:3124
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 617: case 617:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3118 //line sql.y:3126
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 618: case 618:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3120 //line sql.y:3128
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 619: case 619:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3122 //line sql.y:3130
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 620: case 620:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3124 //line sql.y:3132
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 621: case 621:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3126 //line sql.y:3134
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 622: case 622:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3128 //line sql.y:3136
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 623: case 623:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3130 //line sql.y:3138
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 624: case 624:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3132 //line sql.y:3140
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 625: case 625:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3135 //line sql.y:3143
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 626: case 626:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3137 //line sql.y:3145
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 627: case 627:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3139 //line sql.y:3147
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 628: case 628:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3143 //line sql.y:3151
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 629: case 629:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3145 //line sql.y:3153
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 630: case 630:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3148 //line sql.y:3156
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 631: case 631:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3150 //line sql.y:3158
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 632: case 632:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3152 //line sql.y:3160
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 633: case 633:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3155 //line sql.y:3163
{ {
yyVAL.colIdent = ColIdent{} yyVAL.colIdent = ColIdent{}
} }
case 634: case 634:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3157 //line sql.y:3165
{ {
yyVAL.colIdent = yyDollar[2].colIdent yyVAL.colIdent = yyDollar[2].colIdent
} }
case 635: case 635:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3161 //line sql.y:3169
{ {
yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes))
} }
case 636: case 636:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3165 //line sql.y:3173
{ {
yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes))
} }
case 638: case 638:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3172 //line sql.y:3180
{ {
yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes))
} }
case 639: case 639:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3178 //line sql.y:3186
{ {
yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes))
} }
case 640: case 640:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3182 //line sql.y:3190
{ {
yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes))
} }
case 642: case 642:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3189 //line sql.y:3197
{ {
yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes))
} }
case 849: case 849:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3421 //line sql.y:3429
{ {
if incNesting(yylex) { if incNesting(yylex) {
yylex.Error("max nesting level reached") yylex.Error("max nesting level reached")
...@@ -6698,31 +6706,31 @@ yydefault: ...@@ -6698,31 +6706,31 @@ yydefault:
} }
case 850: case 850:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3430 //line sql.y:3438
{ {
decNesting(yylex) decNesting(yylex)
} }
case 851: case 851:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3435 //line sql.y:3443
{ {
skipToEnd(yylex) skipToEnd(yylex)
} }
case 852: case 852:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3440 //line sql.y:3448
{ {
skipToEnd(yylex) skipToEnd(yylex)
} }
case 853: case 853:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3444 //line sql.y:3452
{ {
skipToEnd(yylex) skipToEnd(yylex)
} }
case 854: case 854:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3448 //line sql.y:3456
{ {
skipToEnd(yylex) skipToEnd(yylex)
} }
......
...@@ -1308,19 +1308,27 @@ alter_statement: ...@@ -1308,19 +1308,27 @@ alter_statement:
{ {
$$ = &DDL{Action: AlterStr, Table: $4, PartitionSpec: $5} $$ = &DDL{Action: AlterStr, Table: $4, PartitionSpec: $5}
} }
| ALTER VSCHEMA CREATE VINDEX sql_id vindex_type_opt vindex_params_opt | ALTER VSCHEMA CREATE VINDEX table_name vindex_type_opt vindex_params_opt
{ {
$$ = &DDL{Action: CreateVindexStr, VindexSpec: &VindexSpec{ $$ = &DDL{
Name: $5, Action: CreateVindexStr,
Table: $5,
VindexSpec: &VindexSpec{
Name: NewColIdent($5.Name.String()),
Type: $6, Type: $6,
Params: $7, Params: $7,
}} },
}
} }
| ALTER VSCHEMA DROP VINDEX sql_id | ALTER VSCHEMA DROP VINDEX table_name
{ {
$$ = &DDL{Action: DropVindexStr, VindexSpec: &VindexSpec{ $$ = &DDL{
Name: $5, Action: DropVindexStr,
}} Table: $5,
VindexSpec: &VindexSpec{
Name: NewColIdent($5.Name.String()),
},
}
} }
| ALTER VSCHEMA ADD TABLE table_name | ALTER VSCHEMA ADD TABLE table_name
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册