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

update vendor support more mysql syntax

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