提交 ef58f099 编写于 作者: D dapan1121

support alter column length

上级 a8e97be5
......@@ -5074,6 +5074,8 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
const char* msg18 = "primary timestamp column cannot be dropped";
const char* msg19 = "invalid new tag name";
const char* msg20 = "table is not super table";
const char* msg21 = "only binary/nchar column length could be altered";
const char* msg22 = "invalid column length";
int32_t code = TSDB_CODE_SUCCESS;
......@@ -5110,7 +5112,7 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
}
} else if ((pAlterSQL->type == TSDB_ALTER_TABLE_UPDATE_TAG_VAL) && (UTIL_TABLE_IS_SUPER_TABLE(pTableMetaInfo))) {
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg4);
} else if ((pAlterSQL->type == TSDB_ALTER_TABLE_ADD_COLUMN || pAlterSQL->type == TSDB_ALTER_TABLE_DROP_COLUMN) &&
} else if ((pAlterSQL->type == TSDB_ALTER_TABLE_ADD_COLUMN || pAlterSQL->type == TSDB_ALTER_TABLE_DROP_COLUMN || pAlterSQL->type == TSDB_ALTER_TABLE_CHANGE_COLUMN) &&
UTIL_TABLE_IS_CHILD_TABLE(pTableMetaInfo)) {
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg6);
}
......@@ -5326,6 +5328,34 @@ int32_t setAlterTableInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
tstrncpy(name1, pItem->pVar.pz, sizeof(name1));
TAOS_FIELD f = tscCreateField(TSDB_DATA_TYPE_INT, name1, tDataTypes[TSDB_DATA_TYPE_INT].bytes);
tscFieldInfoAppend(&pQueryInfo->fieldsInfo, &f);
} else if (pAlterSQL->type == TSDB_ALTER_TABLE_CHANGE_COLUMN) {
if (taosArrayGetSize(pAlterSQL->pAddColumns) != 2) {
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), NULL);
}
tVariantListItem* pItem = taosArrayGet(pAlterSQL->pAddColumns, 0);
SColumnIndex columnIndex = COLUMN_INDEX_INITIALIZER;
SStrToken name = {.type = TK_STRING, .z = pItem->pVar.pz, .n = pItem->pVar.nLen};
if (getColumnIndexByName(pCmd, &name, pQueryInfo, &columnIndex) != TSDB_CODE_SUCCESS) {
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg17);
}
SSchema* pColSchema = tscGetTableColumnSchema(pTableMetaInfo->pTableMeta, columnIndex.columnIndex);
if (pColSchema->type != TSDB_DATA_TYPE_BINARY && pColSchema->type != TSDB_DATA_TYPE_NCHAR) {
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg21);
}
pItem = taosArrayGet(pAlterSQL->pAddColumns, 1);
int64_t nlen = 0;
if (tVariantDump(&pItem->pVar, (char *)&nlen, TSDB_DATA_TYPE_BIGINT, false) < 0 || nlen <= 0) {
return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg22);
}
TAOS_FIELD f = tscCreateField(pColSchema->type, name.z, nlen);
tscFieldInfoAppend(&pQueryInfo->fieldsInfo, &f);
}
return TSDB_CODE_SUCCESS;
......
......@@ -155,54 +155,58 @@
#define TK_SYNCDB 136
#define TK_ADD 137
#define TK_COLUMN 138
#define TK_TAG 139
#define TK_CHANGE 140
#define TK_SET 141
#define TK_KILL 142
#define TK_CONNECTION 143
#define TK_STREAM 144
#define TK_COLON 145
#define TK_ABORT 146
#define TK_AFTER 147
#define TK_ATTACH 148
#define TK_BEFORE 149
#define TK_BEGIN 150
#define TK_CASCADE 151
#define TK_CLUSTER 152
#define TK_CONFLICT 153
#define TK_COPY 154
#define TK_DEFERRED 155
#define TK_DELIMITERS 156
#define TK_DETACH 157
#define TK_EACH 158
#define TK_END 159
#define TK_EXPLAIN 160
#define TK_FAIL 161
#define TK_FOR 162
#define TK_IGNORE 163
#define TK_IMMEDIATE 164
#define TK_INITIALLY 165
#define TK_INSTEAD 166
#define TK_MATCH 167
#define TK_KEY 168
#define TK_OF 169
#define TK_RAISE 170
#define TK_REPLACE 171
#define TK_RESTRICT 172
#define TK_ROW 173
#define TK_STATEMENT 174
#define TK_TRIGGER 175
#define TK_VIEW 176
#define TK_SEMI 177
#define TK_NONE 178
#define TK_PREV 179
#define TK_LINEAR 180
#define TK_IMPORT 181
#define TK_TBNAME 182
#define TK_JOIN 183
#define TK_INSERT 184
#define TK_INTO 185
#define TK_VALUES 186
#define TK_LENGTH 139
#define TK_TAG 140
#define TK_CHANGE 141
#define TK_SET 142
#define TK_KILL 143
#define TK_CONNECTION 144
#define TK_STREAM 145
#define TK_COLON 146
#define TK_ABORT 147
#define TK_AFTER 148
#define TK_ATTACH 149
#define TK_BEFORE 150
#define TK_BEGIN 151
#define TK_CASCADE 152
#define TK_CLUSTER 153
#define TK_CONFLICT 154
#define TK_COPY 155
#define TK_DEFERRED 156
#define TK_DELIMITERS 157
#define TK_DETACH 158
#define TK_EACH 159
#define TK_END 160
#define TK_EXPLAIN 161
#define TK_FAIL 162
#define TK_FOR 163
#define TK_IGNORE 164
#define TK_IMMEDIATE 165
#define TK_INITIALLY 166
#define TK_INSTEAD 167
#define TK_MATCH 168
#define TK_KEY 169
#define TK_OF 170
#define TK_RAISE 171
#define TK_REPLACE 172
#define TK_RESTRICT 173
#define TK_ROW 174
#define TK_STATEMENT 175
#define TK_TRIGGER 176
#define TK_VIEW 177
#define TK_SEMI 178
#define TK_NONE 179
#define TK_PREV 180
#define TK_LINEAR 181
#define TK_IMPORT 182
#define TK_TBNAME 183
#define TK_JOIN 184
#define TK_INSERT 185
#define TK_INTO 186
#define TK_VALUES 187
#define TK_SPACE 300
......
......@@ -3100,7 +3100,10 @@ static int32_t mnodeProcessAlterTableMsg(SMnodeMsg *pMsg) {
} else if (pAlter->type == TSDB_ALTER_TABLE_DROP_COLUMN) {
code = mnodeDropSuperTableColumn(pMsg, pAlter->schema[0].name);
} else if (pAlter->type == TSDB_ALTER_TABLE_CHANGE_COLUMN) {
code = mnodeChangeSuperTableColumn(pMsg, pAlter->schema[0].name, pAlter->schema[1].name);
//code = mnodeChangeSuperTableColumn(pMsg, pAlter->schema[0].name, pAlter->schema[1].name);
(void)mnodeChangeSuperTableColumn;
mError("change table[%s] column[%s] length to [%d] is not processed", pAlter->tableFname, pAlter->schema[0].name, pAlter->schema[0].bytes);
code = TSDB_CODE_SUCCESS;
} else {
}
} else {
......@@ -3112,7 +3115,10 @@ static int32_t mnodeProcessAlterTableMsg(SMnodeMsg *pMsg) {
} else if (pAlter->type == TSDB_ALTER_TABLE_DROP_COLUMN) {
code = mnodeDropNormalTableColumn(pMsg, pAlter->schema[0].name);
} else if (pAlter->type == TSDB_ALTER_TABLE_CHANGE_COLUMN) {
code = mnodeChangeNormalTableColumn(pMsg, pAlter->schema[0].name, pAlter->schema[1].name);
//code = mnodeChangeNormalTableColumn(pMsg, pAlter->schema[0].name, pAlter->schema[1].name);
(void)mnodeChangeNormalTableColumn;
mError("change table[%s] column[%s] length to [%d] is not processed", pAlter->tableFname, pAlter->schema[0].name, pAlter->schema[0].bytes);
code = TSDB_CODE_SUCCESS;
} else {
}
}
......@@ -3303,4 +3309,4 @@ int32_t mnodeCompactTables() {
mnodeCompactChildTables();
return 0;
}
\ No newline at end of file
}
......@@ -28,7 +28,7 @@
#include <stdbool.h>
#include "qSqlparser.h"
#include "tcmdtype.h"
#include "tstoken.h"
#include "ttoken.h"
#include "ttokendef.h"
#include "tutil.h"
#include "tvariant.h"
......@@ -748,6 +748,18 @@ cmd ::= ALTER TABLE ids(X) cpxName(F) DROP COLUMN ids(A). {
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
cmd ::= ALTER TABLE ids(X) cpxName(F) ALTER COLUMN LENGTH ids(A) INTEGER(Z). {
X.n += F.n;
toTSDBType(A.type);
SArray* K = tVariantListAppendToken(NULL, &A, -1);
toTSDBType(Z.type);
K = tVariantListAppendToken(K, &Z, -1);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&X, K, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
//////////////////////////////////ALTER TAGS statement/////////////////////////////////////
cmd ::= ALTER TABLE ids(X) cpxName(Y) ADD TAG columnlist(A). {
X.n += Y.n;
......
......@@ -885,7 +885,7 @@ SAlterTableInfo *tSetAlterTableInfo(SStrToken *pTableName, SArray *pCols, SArray
pAlterTable->type = type;
pAlterTable->tableType = tableType;
if (type == TSDB_ALTER_TABLE_ADD_COLUMN || type == TSDB_ALTER_TABLE_ADD_TAG_COLUMN) {
if (type == TSDB_ALTER_TABLE_ADD_COLUMN || type == TSDB_ALTER_TABLE_ADD_TAG_COLUMN || type == TSDB_ALTER_TABLE_CHANGE_COLUMN) {
pAlterTable->pAddColumns = pCols;
assert(pVals == NULL);
} else {
......
......@@ -23,13 +23,14 @@
** input grammar file:
*/
#include <stdio.h>
#include <assert.h>
/************ Begin %include sections from the grammar ************************/
#include <assert.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <stdbool.h>
#include "qSqlparser.h"
#include "tcmdtype.h"
#include "ttoken.h"
......@@ -76,8 +77,10 @@
** zero the stack is dynamically sized using realloc()
** ParseARG_SDECL A static variable declaration for the %extra_argument
** ParseARG_PDECL A parameter declaration for the %extra_argument
** ParseARG_PARAM Code to pass %extra_argument as a subroutine parameter
** ParseARG_STORE Code to store %extra_argument into yypParser
** ParseARG_FETCH Code to extract %extra_argument from yypParser
** ParseCTX_* As ParseARG_ except for %extra_context
** YYERRORSYMBOL is the code number of the error symbol. If not
** defined, then do no error processing.
** YYNSTATE the combined number of states.
......@@ -97,7 +100,7 @@
#endif
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned short int
#define YYNOCODE 264
#define YYNOCODE 263
#define YYACTIONTYPE unsigned short int
#define ParseTOKENTYPE SStrToken
typedef union {
......@@ -124,21 +127,29 @@ typedef union {
#endif
#define ParseARG_SDECL SSqlInfo* pInfo;
#define ParseARG_PDECL ,SSqlInfo* pInfo
#define ParseARG_FETCH SSqlInfo* pInfo = yypParser->pInfo
#define ParseARG_STORE yypParser->pInfo = pInfo
#define ParseARG_PARAM ,pInfo
#define ParseARG_FETCH SSqlInfo* pInfo=yypParser->pInfo;
#define ParseARG_STORE yypParser->pInfo=pInfo;
#define ParseCTX_SDECL
#define ParseCTX_PDECL
#define ParseCTX_PARAM
#define ParseCTX_FETCH
#define ParseCTX_STORE
#define YYFALLBACK 1
#define YYNSTATE 317
#define YYNRULE 270
#define YYNTOKEN 187
#define YY_MAX_SHIFT 316
#define YY_MIN_SHIFTREDUCE 511
#define YY_MAX_SHIFTREDUCE 780
#define YY_ERROR_ACTION 781
#define YY_ACCEPT_ACTION 782
#define YY_NO_ACTION 783
#define YY_MIN_REDUCE 784
#define YY_MAX_REDUCE 1053
#define YYNSTATE 321
#define YYNRULE 271
#define YYNRULE_WITH_ACTION 271
#define YYNTOKEN 188
#define YY_MAX_SHIFT 320
#define YY_MIN_SHIFTREDUCE 516
#define YY_MAX_SHIFTREDUCE 786
#define YY_ERROR_ACTION 787
#define YY_ACCEPT_ACTION 788
#define YY_NO_ACTION 789
#define YY_MIN_REDUCE 790
#define YY_MAX_REDUCE 1060
/************* End control #defines *******************************************/
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
/* Define the yytestcase() macro to be a no-op if is not already defined
** otherwise.
......@@ -205,145 +216,145 @@ typedef union {
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (685)
static const YYACTIONTYPE yy_action[] = {
/* 0 */ 925, 559, 206, 314, 211, 141, 952, 3, 168, 560,
/* 10 */ 782, 316, 134, 47, 48, 141, 51, 52, 30, 183,
/* 20 */ 217, 41, 183, 50, 264, 55, 53, 57, 54, 1034,
/* 30 */ 931, 214, 1035, 46, 45, 17, 183, 44, 43, 42,
/* 40 */ 47, 48, 223, 51, 52, 213, 1035, 217, 41, 559,
/* 50 */ 50, 264, 55, 53, 57, 54, 943, 560, 181, 208,
/* 60 */ 46, 45, 928, 222, 44, 43, 42, 48, 949, 51,
/* 70 */ 52, 244, 983, 217, 41, 249, 50, 264, 55, 53,
/* 80 */ 57, 54, 984, 638, 259, 85, 46, 45, 280, 931,
/* 90 */ 44, 43, 42, 512, 513, 514, 515, 516, 517, 518,
/* 100 */ 519, 520, 521, 522, 523, 524, 315, 943, 187, 207,
/* 110 */ 70, 290, 289, 47, 48, 30, 51, 52, 300, 919,
/* 120 */ 217, 41, 209, 50, 264, 55, 53, 57, 54, 44,
/* 130 */ 43, 42, 724, 46, 45, 674, 224, 44, 43, 42,
/* 140 */ 47, 49, 24, 51, 52, 228, 141, 217, 41, 559,
/* 150 */ 50, 264, 55, 53, 57, 54, 220, 560, 105, 928,
/* 160 */ 46, 45, 931, 300, 44, 43, 42, 23, 278, 309,
/* 170 */ 308, 277, 276, 275, 307, 274, 306, 305, 304, 273,
/* 180 */ 303, 302, 891, 30, 879, 880, 881, 882, 883, 884,
/* 190 */ 885, 886, 887, 888, 889, 890, 892, 893, 51, 52,
/* 200 */ 830, 1031, 217, 41, 167, 50, 264, 55, 53, 57,
/* 210 */ 54, 261, 18, 78, 230, 46, 45, 287, 286, 44,
/* 220 */ 43, 42, 216, 739, 221, 30, 728, 928, 731, 192,
/* 230 */ 734, 216, 739, 310, 1030, 728, 193, 731, 236, 734,
/* 240 */ 30, 118, 117, 191, 677, 559, 240, 239, 55, 53,
/* 250 */ 57, 54, 25, 560, 202, 203, 46, 45, 263, 931,
/* 260 */ 44, 43, 42, 202, 203, 74, 283, 61, 23, 928,
/* 270 */ 309, 308, 74, 36, 730, 307, 733, 306, 305, 304,
/* 280 */ 36, 303, 302, 899, 927, 662, 897, 898, 659, 62,
/* 290 */ 660, 900, 661, 902, 903, 901, 82, 904, 905, 103,
/* 300 */ 97, 108, 243, 917, 68, 30, 107, 113, 116, 106,
/* 310 */ 199, 5, 33, 157, 141, 110, 231, 232, 156, 92,
/* 320 */ 87, 91, 681, 226, 30, 56, 30, 914, 915, 29,
/* 330 */ 918, 729, 740, 732, 56, 175, 173, 171, 736, 1,
/* 340 */ 155, 740, 170, 121, 120, 119, 284, 736, 229, 928,
/* 350 */ 265, 46, 45, 69, 735, 44, 43, 42, 839, 666,
/* 360 */ 12, 667, 167, 735, 84, 288, 81, 292, 928, 215,
/* 370 */ 928, 313, 312, 126, 132, 130, 129, 80, 705, 706,
/* 380 */ 831, 79, 280, 929, 167, 916, 737, 245, 726, 684,
/* 390 */ 71, 31, 227, 994, 663, 282, 690, 247, 696, 697,
/* 400 */ 136, 760, 60, 20, 741, 19, 64, 648, 19, 241,
/* 410 */ 267, 31, 650, 6, 31, 269, 60, 1029, 649, 83,
/* 420 */ 28, 200, 60, 270, 727, 201, 65, 96, 95, 185,
/* 430 */ 14, 13, 993, 102, 101, 67, 218, 637, 16, 15,
/* 440 */ 664, 186, 665, 738, 115, 114, 743, 188, 182, 189,
/* 450 */ 190, 196, 197, 195, 180, 194, 184, 133, 1045, 990,
/* 460 */ 930, 989, 219, 291, 39, 951, 959, 944, 961, 135,
/* 470 */ 139, 976, 248, 975, 926, 131, 152, 151, 924, 153,
/* 480 */ 250, 154, 689, 210, 252, 150, 257, 145, 142, 842,
/* 490 */ 941, 143, 272, 144, 262, 37, 146, 66, 58, 178,
/* 500 */ 63, 260, 34, 258, 256, 281, 838, 147, 1050, 254,
/* 510 */ 93, 1049, 1047, 158, 285, 1044, 99, 148, 1043, 1041,
/* 520 */ 159, 860, 251, 35, 32, 38, 149, 179, 827, 109,
/* 530 */ 825, 111, 112, 823, 822, 233, 169, 820, 819, 818,
/* 540 */ 817, 816, 815, 172, 174, 40, 812, 810, 808, 806,
/* 550 */ 176, 803, 177, 301, 246, 72, 75, 104, 253, 977,
/* 560 */ 293, 294, 295, 296, 297, 204, 225, 298, 271, 299,
/* 570 */ 311, 780, 205, 198, 234, 88, 89, 235, 779, 237,
/* 580 */ 238, 778, 766, 765, 242, 247, 821, 814, 162, 266,
/* 590 */ 122, 861, 160, 165, 161, 164, 163, 166, 123, 124,
/* 600 */ 813, 805, 895, 125, 804, 2, 8, 73, 4, 669,
/* 610 */ 76, 691, 137, 212, 694, 86, 138, 77, 907, 255,
/* 620 */ 9, 698, 140, 26, 742, 7, 27, 11, 10, 21,
/* 630 */ 84, 744, 22, 268, 601, 597, 595, 594, 593, 590,
/* 640 */ 563, 279, 94, 90, 31, 59, 640, 639, 636, 585,
/* 650 */ 583, 98, 575, 581, 577, 579, 573, 571, 604, 603,
/* 660 */ 602, 600, 599, 100, 598, 596, 592, 591, 60, 561,
/* 670 */ 528, 784, 526, 783, 783, 783, 783, 783, 783, 127,
/* 680 */ 783, 783, 783, 783, 128,
/* 0 */ 135, 564, 207, 318, 212, 142, 958, 230, 142, 565,
/* 10 */ 788, 320, 17, 47, 48, 142, 51, 52, 30, 184,
/* 20 */ 218, 41, 184, 50, 265, 55, 53, 57, 54, 1040,
/* 30 */ 937, 215, 1041, 46, 45, 182, 184, 44, 43, 42,
/* 40 */ 47, 48, 935, 51, 52, 214, 1041, 218, 41, 564,
/* 50 */ 50, 265, 55, 53, 57, 54, 949, 565, 188, 209,
/* 60 */ 46, 45, 934, 250, 44, 43, 42, 48, 955, 51,
/* 70 */ 52, 245, 989, 218, 41, 79, 50, 265, 55, 53,
/* 80 */ 57, 54, 990, 106, 260, 281, 46, 45, 304, 227,
/* 90 */ 44, 43, 42, 517, 518, 519, 520, 521, 522, 523,
/* 100 */ 524, 525, 526, 527, 528, 529, 319, 643, 85, 208,
/* 110 */ 70, 564, 304, 47, 48, 30, 51, 52, 1037, 565,
/* 120 */ 218, 41, 923, 50, 265, 55, 53, 57, 54, 44,
/* 130 */ 43, 42, 729, 46, 45, 294, 293, 44, 43, 42,
/* 140 */ 47, 49, 925, 51, 52, 1036, 142, 218, 41, 564,
/* 150 */ 50, 265, 55, 53, 57, 54, 221, 565, 228, 934,
/* 160 */ 46, 45, 283, 1052, 44, 43, 42, 23, 279, 313,
/* 170 */ 312, 278, 277, 276, 311, 275, 310, 309, 308, 274,
/* 180 */ 307, 306, 897, 30, 885, 886, 887, 888, 889, 890,
/* 190 */ 891, 892, 893, 894, 895, 896, 898, 899, 51, 52,
/* 200 */ 836, 281, 218, 41, 168, 50, 265, 55, 53, 57,
/* 210 */ 54, 262, 18, 78, 25, 46, 45, 1, 156, 44,
/* 220 */ 43, 42, 217, 744, 222, 30, 733, 934, 736, 193,
/* 230 */ 739, 217, 744, 223, 12, 733, 194, 736, 84, 739,
/* 240 */ 81, 119, 118, 192, 317, 316, 127, 225, 55, 53,
/* 250 */ 57, 54, 949, 731, 203, 204, 46, 45, 264, 937,
/* 260 */ 44, 43, 42, 203, 204, 1035, 284, 210, 23, 934,
/* 270 */ 313, 312, 74, 937, 735, 311, 738, 310, 309, 308,
/* 280 */ 36, 307, 306, 905, 201, 667, 903, 904, 664, 732,
/* 290 */ 665, 906, 666, 908, 909, 907, 82, 910, 911, 104,
/* 300 */ 97, 109, 244, 202, 68, 30, 108, 114, 117, 107,
/* 310 */ 74, 200, 5, 33, 158, 111, 232, 233, 36, 157,
/* 320 */ 92, 87, 91, 682, 229, 56, 30, 920, 921, 29,
/* 330 */ 924, 291, 745, 30, 56, 176, 174, 172, 741, 314,
/* 340 */ 931, 745, 171, 122, 121, 120, 285, 741, 30, 934,
/* 350 */ 237, 46, 45, 69, 740, 44, 43, 42, 689, 241,
/* 360 */ 240, 266, 734, 740, 737, 937, 248, 292, 80, 61,
/* 370 */ 934, 133, 131, 130, 296, 3, 169, 934, 186, 845,
/* 380 */ 837, 71, 224, 168, 168, 922, 742, 710, 711, 679,
/* 390 */ 216, 62, 933, 231, 668, 187, 24, 288, 287, 246,
/* 400 */ 695, 686, 701, 31, 137, 702, 60, 765, 746, 20,
/* 410 */ 64, 19, 19, 653, 189, 268, 655, 31, 270, 31,
/* 420 */ 60, 654, 83, 28, 183, 60, 271, 96, 190, 95,
/* 430 */ 65, 14, 1000, 13, 6, 67, 103, 642, 102, 671,
/* 440 */ 669, 672, 670, 16, 191, 15, 116, 115, 197, 198,
/* 450 */ 196, 181, 195, 185, 936, 999, 219, 748, 996, 995,
/* 460 */ 220, 295, 242, 134, 39, 957, 965, 967, 136, 950,
/* 470 */ 249, 982, 140, 981, 743, 932, 152, 132, 153, 930,
/* 480 */ 251, 154, 155, 848, 694, 305, 147, 273, 947, 143,
/* 490 */ 37, 263, 144, 145, 211, 179, 66, 34, 282, 253,
/* 500 */ 258, 63, 58, 844, 261, 1057, 93, 259, 1056, 146,
/* 510 */ 257, 1054, 159, 286, 1051, 99, 289, 1050, 1047, 160,
/* 520 */ 866, 148, 255, 35, 32, 38, 180, 833, 110, 831,
/* 530 */ 112, 113, 829, 828, 234, 170, 826, 252, 825, 824,
/* 540 */ 823, 822, 821, 173, 175, 818, 816, 814, 40, 812,
/* 550 */ 177, 809, 178, 105, 247, 72, 75, 254, 983, 297,
/* 560 */ 298, 299, 300, 301, 302, 303, 315, 786, 205, 226,
/* 570 */ 235, 272, 236, 785, 238, 239, 206, 199, 88, 784,
/* 580 */ 89, 771, 770, 243, 248, 76, 827, 674, 267, 8,
/* 590 */ 123, 696, 124, 163, 162, 867, 161, 164, 165, 167,
/* 600 */ 166, 820, 2, 125, 819, 901, 126, 811, 4, 73,
/* 610 */ 810, 138, 151, 149, 150, 139, 699, 77, 913, 213,
/* 620 */ 256, 26, 703, 141, 9, 10, 747, 27, 7, 11,
/* 630 */ 21, 749, 22, 86, 269, 606, 602, 84, 600, 599,
/* 640 */ 598, 595, 280, 568, 94, 90, 31, 774, 59, 645,
/* 650 */ 644, 641, 590, 588, 98, 100, 580, 586, 582, 584,
/* 660 */ 578, 101, 576, 609, 608, 607, 605, 604, 290, 603,
/* 670 */ 601, 597, 596, 60, 566, 533, 531, 128, 790, 789,
/* 680 */ 789, 789, 789, 789, 129,
};
static const YYCODETYPE yy_lookahead[] = {
/* 0 */ 191, 1, 190, 191, 210, 191, 191, 194, 195, 9,
/* 10 */ 188, 189, 191, 13, 14, 191, 16, 17, 191, 252,
/* 0 */ 191, 1, 190, 191, 210, 191, 191, 191, 191, 9,
/* 10 */ 188, 189, 252, 13, 14, 191, 16, 17, 191, 252,
/* 20 */ 20, 21, 252, 23, 24, 25, 26, 27, 28, 262,
/* 30 */ 236, 261, 262, 33, 34, 252, 252, 37, 38, 39,
/* 40 */ 13, 14, 233, 16, 17, 261, 262, 20, 21, 1,
/* 40 */ 13, 14, 226, 16, 17, 261, 262, 20, 21, 1,
/* 50 */ 23, 24, 25, 26, 27, 28, 234, 9, 252, 232,
/* 60 */ 33, 34, 235, 210, 37, 38, 39, 14, 253, 16,
/* 70 */ 17, 249, 258, 20, 21, 254, 23, 24, 25, 26,
/* 80 */ 27, 28, 258, 5, 260, 197, 33, 34, 79, 236,
/* 60 */ 33, 34, 235, 254, 37, 38, 39, 14, 253, 16,
/* 70 */ 17, 249, 258, 20, 21, 258, 23, 24, 25, 26,
/* 80 */ 27, 28, 258, 76, 260, 79, 33, 34, 81, 68,
/* 90 */ 37, 38, 39, 45, 46, 47, 48, 49, 50, 51,
/* 100 */ 52, 53, 54, 55, 56, 57, 58, 234, 252, 61,
/* 110 */ 110, 33, 34, 13, 14, 191, 16, 17, 81, 231,
/* 120 */ 20, 21, 249, 23, 24, 25, 26, 27, 28, 37,
/* 130 */ 38, 39, 105, 33, 34, 109, 210, 37, 38, 39,
/* 140 */ 13, 14, 116, 16, 17, 68, 191, 20, 21, 1,
/* 150 */ 23, 24, 25, 26, 27, 28, 232, 9, 76, 235,
/* 160 */ 33, 34, 236, 81, 37, 38, 39, 88, 89, 90,
/* 100 */ 52, 53, 54, 55, 56, 57, 58, 5, 197, 61,
/* 110 */ 110, 1, 81, 13, 14, 191, 16, 17, 252, 9,
/* 120 */ 20, 21, 0, 23, 24, 25, 26, 27, 28, 37,
/* 130 */ 38, 39, 105, 33, 34, 33, 34, 37, 38, 39,
/* 140 */ 13, 14, 231, 16, 17, 252, 191, 20, 21, 1,
/* 150 */ 23, 24, 25, 26, 27, 28, 232, 9, 137, 235,
/* 160 */ 33, 34, 141, 236, 37, 38, 39, 88, 89, 90,
/* 170 */ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
/* 180 */ 101, 102, 209, 191, 211, 212, 213, 214, 215, 216,
/* 190 */ 217, 218, 219, 220, 221, 222, 223, 224, 16, 17,
/* 200 */ 196, 252, 20, 21, 200, 23, 24, 25, 26, 27,
/* 210 */ 28, 256, 44, 258, 137, 33, 34, 140, 141, 37,
/* 200 */ 196, 79, 20, 21, 200, 23, 24, 25, 26, 27,
/* 210 */ 28, 256, 44, 258, 104, 33, 34, 198, 199, 37,
/* 220 */ 38, 39, 1, 2, 232, 191, 5, 235, 7, 61,
/* 230 */ 9, 1, 2, 210, 252, 5, 68, 7, 135, 9,
/* 240 */ 191, 73, 74, 75, 37, 1, 143, 144, 25, 26,
/* 250 */ 27, 28, 104, 9, 33, 34, 33, 34, 37, 236,
/* 260 */ 37, 38, 39, 33, 34, 104, 232, 109, 88, 235,
/* 270 */ 90, 91, 104, 112, 5, 95, 7, 97, 98, 99,
/* 280 */ 112, 101, 102, 209, 235, 2, 212, 213, 5, 131,
/* 230 */ 9, 1, 2, 210, 104, 5, 68, 7, 108, 9,
/* 240 */ 110, 73, 74, 75, 65, 66, 67, 210, 25, 26,
/* 250 */ 27, 28, 234, 1, 33, 34, 33, 34, 37, 236,
/* 260 */ 37, 38, 39, 33, 34, 252, 232, 249, 88, 235,
/* 270 */ 90, 91, 104, 236, 5, 95, 7, 97, 98, 99,
/* 280 */ 112, 101, 102, 209, 252, 2, 212, 213, 5, 37,
/* 290 */ 7, 217, 9, 219, 220, 221, 197, 223, 224, 62,
/* 300 */ 63, 64, 134, 0, 136, 191, 69, 70, 71, 72,
/* 310 */ 142, 62, 63, 64, 191, 78, 33, 34, 69, 70,
/* 320 */ 71, 72, 115, 68, 191, 104, 191, 228, 229, 230,
/* 330 */ 231, 5, 111, 7, 104, 62, 63, 64, 117, 198,
/* 340 */ 199, 111, 69, 70, 71, 72, 232, 117, 191, 235,
/* 350 */ 15, 33, 34, 197, 133, 37, 38, 39, 196, 5,
/* 360 */ 104, 7, 200, 133, 108, 232, 110, 232, 235, 60,
/* 370 */ 235, 65, 66, 67, 62, 63, 64, 237, 124, 125,
/* 380 */ 196, 258, 79, 226, 200, 229, 117, 105, 1, 105,
/* 390 */ 250, 109, 137, 227, 111, 140, 105, 113, 105, 105,
/* 400 */ 109, 105, 109, 109, 105, 109, 109, 105, 109, 191,
/* 410 */ 105, 109, 105, 104, 109, 105, 109, 252, 105, 109,
/* 420 */ 104, 252, 109, 107, 37, 252, 129, 138, 139, 252,
/* 430 */ 138, 139, 227, 138, 139, 104, 227, 106, 138, 139,
/* 440 */ 5, 252, 7, 117, 76, 77, 111, 252, 252, 252,
/* 450 */ 252, 252, 252, 252, 252, 252, 252, 191, 236, 227,
/* 460 */ 236, 227, 227, 227, 251, 191, 191, 234, 191, 191,
/* 470 */ 191, 259, 234, 259, 234, 60, 191, 238, 191, 191,
/* 480 */ 255, 191, 117, 255, 255, 239, 255, 244, 247, 191,
/* 490 */ 248, 246, 191, 245, 122, 191, 243, 128, 127, 191,
/* 500 */ 130, 126, 191, 121, 120, 191, 191, 242, 191, 119,
/* 510 */ 191, 191, 191, 191, 191, 191, 191, 241, 191, 191,
/* 520 */ 191, 191, 118, 191, 191, 191, 240, 191, 191, 191,
/* 530 */ 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
/* 540 */ 191, 191, 191, 191, 191, 132, 191, 191, 191, 191,
/* 550 */ 191, 191, 191, 103, 192, 192, 192, 87, 192, 192,
/* 560 */ 86, 50, 83, 85, 54, 192, 192, 84, 192, 82,
/* 570 */ 79, 5, 192, 192, 145, 197, 197, 5, 5, 145,
/* 580 */ 5, 5, 90, 89, 135, 113, 192, 192, 202, 107,
/* 590 */ 193, 208, 207, 204, 206, 203, 205, 201, 193, 193,
/* 600 */ 192, 192, 225, 193, 192, 198, 104, 114, 194, 105,
/* 610 */ 109, 105, 104, 1, 105, 76, 109, 104, 225, 104,
/* 620 */ 123, 105, 104, 109, 105, 104, 109, 104, 123, 104,
/* 630 */ 108, 111, 104, 107, 9, 5, 5, 5, 5, 5,
/* 640 */ 80, 15, 139, 76, 109, 16, 5, 5, 105, 5,
/* 650 */ 5, 139, 5, 5, 5, 5, 5, 5, 5, 5,
/* 660 */ 5, 5, 5, 139, 5, 5, 5, 5, 109, 80,
/* 670 */ 60, 0, 59, 263, 263, 263, 263, 263, 263, 21,
/* 300 */ 63, 64, 134, 252, 136, 191, 69, 70, 71, 72,
/* 310 */ 104, 143, 62, 63, 64, 78, 33, 34, 112, 69,
/* 320 */ 70, 71, 72, 37, 68, 104, 191, 228, 229, 230,
/* 330 */ 231, 75, 111, 191, 104, 62, 63, 64, 117, 210,
/* 340 */ 191, 111, 69, 70, 71, 72, 232, 117, 191, 235,
/* 350 */ 135, 33, 34, 197, 133, 37, 38, 39, 105, 144,
/* 360 */ 145, 15, 5, 133, 7, 236, 113, 232, 237, 109,
/* 370 */ 235, 62, 63, 64, 232, 194, 195, 235, 252, 196,
/* 380 */ 196, 250, 233, 200, 200, 229, 117, 124, 125, 109,
/* 390 */ 60, 131, 235, 137, 111, 252, 116, 141, 142, 105,
/* 400 */ 105, 115, 105, 109, 109, 105, 109, 105, 105, 109,
/* 410 */ 109, 109, 109, 105, 252, 105, 105, 109, 105, 109,
/* 420 */ 109, 105, 109, 104, 252, 109, 107, 138, 252, 140,
/* 430 */ 129, 138, 227, 140, 104, 104, 138, 106, 140, 5,
/* 440 */ 5, 7, 7, 138, 252, 140, 76, 77, 252, 252,
/* 450 */ 252, 252, 252, 252, 236, 227, 227, 111, 227, 227,
/* 460 */ 227, 227, 191, 191, 251, 191, 191, 191, 191, 234,
/* 470 */ 234, 259, 191, 259, 117, 234, 238, 60, 191, 191,
/* 480 */ 255, 191, 191, 191, 117, 103, 243, 191, 248, 247,
/* 490 */ 191, 122, 246, 245, 255, 191, 128, 191, 191, 255,
/* 500 */ 255, 130, 127, 191, 126, 191, 191, 121, 191, 244,
/* 510 */ 120, 191, 191, 191, 191, 191, 191, 191, 191, 191,
/* 520 */ 191, 242, 119, 191, 191, 191, 191, 191, 191, 191,
/* 530 */ 191, 191, 191, 191, 191, 191, 191, 118, 191, 191,
/* 540 */ 191, 191, 191, 191, 191, 191, 191, 191, 132, 191,
/* 550 */ 191, 191, 191, 87, 192, 192, 192, 192, 192, 86,
/* 560 */ 50, 83, 85, 54, 84, 82, 79, 5, 192, 192,
/* 570 */ 146, 192, 5, 5, 146, 5, 192, 192, 197, 5,
/* 580 */ 197, 90, 89, 135, 113, 109, 192, 105, 107, 104,
/* 590 */ 193, 105, 193, 202, 206, 208, 207, 205, 203, 201,
/* 600 */ 204, 192, 198, 193, 192, 225, 193, 192, 194, 114,
/* 610 */ 192, 104, 239, 241, 240, 109, 105, 104, 225, 1,
/* 620 */ 104, 109, 105, 104, 123, 123, 105, 109, 104, 104,
/* 630 */ 104, 111, 104, 76, 107, 9, 5, 108, 5, 5,
/* 640 */ 5, 5, 15, 80, 140, 76, 109, 5, 16, 5,
/* 650 */ 5, 105, 5, 5, 140, 140, 5, 5, 5, 5,
/* 660 */ 5, 139, 5, 5, 5, 5, 5, 5, 138, 5,
/* 670 */ 5, 5, 5, 109, 80, 60, 59, 21, 0, 263,
/* 680 */ 263, 263, 263, 263, 21, 263, 263, 263, 263, 263,
/* 690 */ 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
/* 700 */ 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
......@@ -363,101 +374,104 @@ static const YYCODETYPE yy_lookahead[] = {
/* 840 */ 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
/* 850 */ 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
/* 860 */ 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
/* 870 */ 263, 263,
/* 870 */ 263, 263, 263,
};
#define YY_SHIFT_COUNT (316)
#define YY_SHIFT_COUNT (320)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (671)
#define YY_SHIFT_MAX (678)
static const unsigned short int yy_shift_ofst[] = {
/* 0 */ 168, 79, 79, 180, 180, 9, 221, 230, 244, 244,
/* 10 */ 244, 244, 244, 244, 244, 244, 244, 0, 48, 230,
/* 20 */ 283, 283, 283, 283, 148, 161, 244, 244, 244, 303,
/* 30 */ 244, 244, 82, 9, 37, 37, 685, 685, 685, 230,
/* 0 */ 168, 79, 79, 180, 180, 6, 221, 230, 148, 148,
/* 10 */ 148, 148, 148, 148, 148, 148, 148, 0, 48, 230,
/* 20 */ 283, 283, 283, 283, 110, 206, 148, 148, 148, 122,
/* 30 */ 148, 148, 7, 6, 31, 31, 685, 685, 685, 230,
/* 40 */ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
/* 50 */ 230, 230, 230, 230, 230, 230, 230, 230, 230, 283,
/* 60 */ 283, 78, 78, 78, 78, 78, 78, 78, 244, 244,
/* 70 */ 244, 207, 244, 161, 161, 244, 244, 244, 254, 254,
/* 80 */ 26, 161, 244, 244, 244, 244, 244, 244, 244, 244,
/* 90 */ 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
/* 100 */ 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
/* 110 */ 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
/* 120 */ 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
/* 130 */ 244, 244, 244, 415, 415, 415, 365, 365, 365, 415,
/* 140 */ 365, 415, 369, 370, 371, 372, 375, 382, 384, 390,
/* 150 */ 404, 413, 415, 415, 415, 450, 9, 9, 415, 415,
/* 160 */ 470, 474, 511, 479, 478, 510, 483, 487, 450, 415,
/* 170 */ 491, 491, 415, 491, 415, 491, 415, 415, 685, 685,
/* 180 */ 27, 100, 127, 100, 100, 53, 182, 223, 223, 223,
/* 190 */ 223, 237, 249, 273, 318, 318, 318, 318, 77, 103,
/* 200 */ 92, 92, 269, 326, 256, 255, 306, 312, 282, 284,
/* 210 */ 291, 293, 294, 296, 299, 387, 309, 335, 158, 297,
/* 220 */ 302, 305, 307, 310, 313, 316, 289, 292, 295, 331,
/* 230 */ 300, 354, 435, 368, 566, 429, 572, 573, 434, 575,
/* 240 */ 576, 492, 494, 449, 472, 482, 502, 493, 504, 501,
/* 250 */ 506, 508, 509, 507, 513, 612, 515, 516, 518, 514,
/* 260 */ 497, 517, 505, 519, 521, 520, 523, 482, 525, 526,
/* 270 */ 528, 522, 539, 625, 630, 631, 632, 633, 634, 560,
/* 280 */ 626, 567, 503, 535, 535, 629, 512, 524, 535, 641,
/* 290 */ 642, 543, 535, 644, 645, 647, 648, 649, 650, 651,
/* 300 */ 652, 653, 654, 655, 656, 657, 659, 660, 661, 662,
/* 310 */ 559, 589, 658, 663, 610, 613, 671,
/* 60 */ 283, 102, 102, 102, 102, 102, 102, 102, 148, 148,
/* 70 */ 148, 286, 148, 206, 206, 148, 148, 148, 263, 263,
/* 80 */ 280, 206, 148, 148, 148, 148, 148, 148, 148, 148,
/* 90 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
/* 100 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
/* 110 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
/* 120 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
/* 130 */ 148, 148, 148, 148, 417, 417, 417, 367, 367, 367,
/* 140 */ 417, 367, 417, 368, 371, 375, 369, 378, 386, 390,
/* 150 */ 403, 419, 416, 417, 417, 417, 382, 6, 6, 417,
/* 160 */ 417, 466, 473, 510, 478, 477, 509, 480, 483, 382,
/* 170 */ 417, 487, 487, 417, 487, 417, 487, 417, 417, 685,
/* 180 */ 685, 27, 100, 127, 100, 100, 53, 182, 223, 223,
/* 190 */ 223, 223, 237, 250, 273, 318, 318, 318, 318, 256,
/* 200 */ 215, 92, 92, 269, 357, 130, 21, 179, 309, 294,
/* 210 */ 253, 295, 297, 300, 302, 303, 252, 330, 346, 260,
/* 220 */ 301, 308, 310, 311, 313, 316, 319, 289, 293, 298,
/* 230 */ 331, 305, 434, 435, 370, 562, 424, 567, 568, 428,
/* 240 */ 570, 574, 491, 493, 448, 471, 481, 485, 495, 482,
/* 250 */ 476, 486, 507, 511, 506, 513, 618, 516, 517, 519,
/* 260 */ 512, 501, 518, 502, 521, 524, 520, 525, 481, 526,
/* 270 */ 527, 528, 529, 557, 626, 631, 633, 634, 635, 636,
/* 280 */ 563, 627, 569, 504, 537, 537, 632, 514, 515, 642,
/* 290 */ 522, 530, 537, 644, 645, 546, 537, 647, 648, 651,
/* 300 */ 652, 653, 654, 655, 657, 658, 659, 660, 661, 662,
/* 310 */ 664, 665, 666, 667, 564, 594, 656, 663, 615, 617,
/* 320 */ 678,
};
#define YY_REDUCE_COUNT (179)
#define YY_REDUCE_MIN (-233)
#define YY_REDUCE_MAX (414)
#define YY_REDUCE_COUNT (180)
#define YY_REDUCE_MIN (-240)
#define YY_REDUCE_MAX (418)
static const short yy_reduce_ofst[] = {
/* 0 */ -178, -27, -27, 74, 74, 99, -230, -216, -173, -176,
/* 10 */ -45, -76, -8, 34, 114, 133, 135, -185, -188, -233,
/* 20 */ -206, -147, -74, 23, -179, -127, -186, 123, -191, -112,
/* 30 */ 157, 49, 4, 156, 162, 184, 140, 141, -187, -217,
/* 40 */ -194, -144, -51, -18, 165, 169, 173, 177, 189, 195,
/* 50 */ 196, 197, 198, 199, 200, 201, 202, 203, 204, 222,
/* 60 */ 224, 166, 205, 209, 232, 234, 235, 236, 218, 266,
/* 70 */ 274, 213, 275, 233, 238, 277, 278, 279, 212, 214,
/* 80 */ 239, 240, 285, 287, 288, 290, 298, 301, 304, 308,
/* 90 */ 311, 314, 315, 317, 319, 320, 321, 322, 323, 324,
/* 100 */ 325, 327, 328, 329, 330, 332, 333, 334, 336, 337,
/* 110 */ 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
/* 120 */ 348, 349, 350, 351, 352, 353, 355, 356, 357, 358,
/* 130 */ 359, 360, 361, 362, 363, 364, 225, 228, 229, 366,
/* 140 */ 231, 367, 242, 241, 245, 248, 243, 253, 265, 276,
/* 150 */ 286, 246, 373, 374, 376, 377, 378, 379, 380, 381,
/* 160 */ 383, 385, 388, 386, 391, 392, 389, 396, 393, 394,
/* 170 */ 397, 405, 395, 406, 408, 410, 409, 412, 407, 414,
/* 10 */ -45, -76, -8, 34, 114, 135, 142, -185, -188, -233,
/* 20 */ -206, 23, 37, 129, -191, 18, -186, -183, 149, -89,
/* 30 */ -184, 157, 4, 156, 183, 184, 131, 19, 181, -240,
/* 40 */ -217, -194, -134, -107, 13, 32, 51, 126, 143, 162,
/* 50 */ 172, 176, 192, 196, 197, 198, 199, 200, 201, -73,
/* 60 */ 218, 205, 228, 229, 231, 232, 233, 234, 271, 272,
/* 70 */ 274, 213, 275, 235, 236, 276, 277, 281, 212, 214,
/* 80 */ 238, 241, 287, 288, 290, 291, 292, 296, 299, 304,
/* 90 */ 306, 307, 312, 314, 315, 317, 320, 321, 322, 323,
/* 100 */ 324, 325, 326, 327, 328, 329, 332, 333, 334, 335,
/* 110 */ 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
/* 120 */ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
/* 130 */ 358, 359, 360, 361, 362, 363, 364, 225, 239, 244,
/* 140 */ 365, 245, 366, 240, 242, 246, 248, 265, 243, 279,
/* 150 */ 372, 374, 373, 376, 377, 379, 380, 381, 383, 384,
/* 160 */ 385, 387, 389, 388, 391, 392, 395, 396, 398, 393,
/* 170 */ 394, 397, 399, 409, 410, 412, 413, 415, 418, 404,
/* 180 */ 414,
};
static const YYACTIONTYPE yy_default[] = {
/* 0 */ 781, 894, 840, 906, 828, 837, 1037, 1037, 781, 781,
/* 10 */ 781, 781, 781, 781, 781, 781, 781, 953, 800, 1037,
/* 20 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 837,
/* 30 */ 781, 781, 843, 837, 843, 843, 948, 878, 896, 781,
/* 40 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
/* 50 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
/* 60 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
/* 70 */ 781, 955, 958, 781, 781, 960, 781, 781, 980, 980,
/* 80 */ 946, 781, 781, 781, 781, 781, 781, 781, 781, 781,
/* 90 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
/* 100 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 826,
/* 110 */ 781, 824, 781, 781, 781, 781, 781, 781, 781, 781,
/* 120 */ 781, 781, 781, 781, 781, 781, 811, 781, 781, 781,
/* 130 */ 781, 781, 781, 802, 802, 802, 781, 781, 781, 802,
/* 140 */ 781, 802, 987, 991, 985, 973, 981, 972, 968, 966,
/* 150 */ 965, 995, 802, 802, 802, 841, 837, 837, 802, 802,
/* 160 */ 859, 857, 855, 847, 853, 849, 851, 845, 829, 802,
/* 170 */ 835, 835, 802, 835, 802, 835, 802, 802, 878, 896,
/* 180 */ 781, 996, 781, 1036, 986, 1026, 1025, 1032, 1024, 1023,
/* 190 */ 1022, 781, 781, 781, 1018, 1019, 1021, 1020, 781, 781,
/* 200 */ 1028, 1027, 781, 781, 781, 781, 781, 781, 781, 781,
/* 210 */ 781, 781, 781, 781, 781, 781, 998, 781, 992, 988,
/* 220 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 908,
/* 230 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
/* 240 */ 781, 781, 781, 781, 945, 781, 781, 781, 781, 956,
/* 250 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 982,
/* 260 */ 781, 974, 781, 781, 781, 781, 781, 920, 781, 781,
/* 270 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
/* 280 */ 781, 781, 781, 1048, 1046, 781, 781, 781, 1042, 781,
/* 290 */ 781, 781, 1040, 781, 781, 781, 781, 781, 781, 781,
/* 300 */ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
/* 310 */ 862, 781, 809, 807, 781, 798, 781,
/* 0 */ 787, 900, 846, 912, 834, 843, 1043, 1043, 787, 787,
/* 10 */ 787, 787, 787, 787, 787, 787, 787, 959, 806, 1043,
/* 20 */ 787, 787, 787, 787, 787, 787, 787, 787, 787, 843,
/* 30 */ 787, 787, 849, 843, 849, 849, 954, 884, 902, 787,
/* 40 */ 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 50 */ 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 60 */ 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 70 */ 787, 961, 964, 787, 787, 966, 787, 787, 986, 986,
/* 80 */ 952, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 90 */ 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 100 */ 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 110 */ 832, 787, 830, 787, 787, 787, 787, 787, 787, 787,
/* 120 */ 787, 787, 787, 787, 787, 787, 787, 817, 787, 787,
/* 130 */ 787, 787, 787, 787, 808, 808, 808, 787, 787, 787,
/* 140 */ 808, 787, 808, 993, 997, 991, 979, 987, 978, 974,
/* 150 */ 972, 971, 1001, 808, 808, 808, 847, 843, 843, 808,
/* 160 */ 808, 865, 863, 861, 853, 859, 855, 857, 851, 835,
/* 170 */ 808, 841, 841, 808, 841, 808, 841, 808, 808, 884,
/* 180 */ 902, 787, 1002, 787, 1042, 992, 1032, 1031, 1038, 1030,
/* 190 */ 1029, 1028, 787, 787, 787, 1024, 1025, 1027, 1026, 787,
/* 200 */ 787, 1034, 1033, 787, 787, 787, 787, 787, 787, 787,
/* 210 */ 787, 787, 787, 787, 787, 787, 787, 1004, 787, 998,
/* 220 */ 994, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 230 */ 914, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 240 */ 787, 787, 787, 787, 787, 951, 787, 787, 787, 787,
/* 250 */ 962, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 260 */ 988, 787, 980, 787, 787, 787, 787, 787, 926, 787,
/* 270 */ 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 280 */ 787, 787, 787, 787, 1055, 1053, 787, 787, 787, 787,
/* 290 */ 787, 787, 1049, 787, 787, 787, 1046, 787, 787, 787,
/* 300 */ 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
/* 310 */ 787, 787, 787, 787, 868, 787, 815, 813, 787, 804,
/* 320 */ 787,
};
/********** End of lemon-generated parsing tables *****************************/
......@@ -616,6 +630,7 @@ static const YYCODETYPE yyFallback[] = {
0, /* SYNCDB => nothing */
0, /* ADD => nothing */
0, /* COLUMN => nothing */
0, /* LENGTH => nothing */
0, /* TAG => nothing */
0, /* CHANGE => nothing */
0, /* SET => nothing */
......@@ -703,6 +718,7 @@ struct yyParser {
int yyerrcnt; /* Shifts left before out of the error */
#endif
ParseARG_SDECL /* A place to hold %extra_argument */
ParseCTX_SDECL /* A place to hold %extra_context */
#if YYSTACKDEPTH<=0
int yystksz; /* Current side of the stack */
yyStackEntry *yystack; /* The parser's stack */
......@@ -889,55 +905,55 @@ static const char *const yyTokenName[] = {
/* 136 */ "SYNCDB",
/* 137 */ "ADD",
/* 138 */ "COLUMN",
/* 139 */ "TAG",
/* 140 */ "CHANGE",
/* 141 */ "SET",
/* 142 */ "KILL",
/* 143 */ "CONNECTION",
/* 144 */ "STREAM",
/* 145 */ "COLON",
/* 146 */ "ABORT",
/* 147 */ "AFTER",
/* 148 */ "ATTACH",
/* 149 */ "BEFORE",
/* 150 */ "BEGIN",
/* 151 */ "CASCADE",
/* 152 */ "CLUSTER",
/* 153 */ "CONFLICT",
/* 154 */ "COPY",
/* 155 */ "DEFERRED",
/* 156 */ "DELIMITERS",
/* 157 */ "DETACH",
/* 158 */ "EACH",
/* 159 */ "END",
/* 160 */ "EXPLAIN",
/* 161 */ "FAIL",
/* 162 */ "FOR",
/* 163 */ "IGNORE",
/* 164 */ "IMMEDIATE",
/* 165 */ "INITIALLY",
/* 166 */ "INSTEAD",
/* 167 */ "MATCH",
/* 168 */ "KEY",
/* 169 */ "OF",
/* 170 */ "RAISE",
/* 171 */ "REPLACE",
/* 172 */ "RESTRICT",
/* 173 */ "ROW",
/* 174 */ "STATEMENT",
/* 175 */ "TRIGGER",
/* 176 */ "VIEW",
/* 177 */ "SEMI",
/* 178 */ "NONE",
/* 179 */ "PREV",
/* 180 */ "LINEAR",
/* 181 */ "IMPORT",
/* 182 */ "TBNAME",
/* 183 */ "JOIN",
/* 184 */ "INSERT",
/* 185 */ "INTO",
/* 186 */ "VALUES",
/* 187 */ "error",
/* 139 */ "LENGTH",
/* 140 */ "TAG",
/* 141 */ "CHANGE",
/* 142 */ "SET",
/* 143 */ "KILL",
/* 144 */ "CONNECTION",
/* 145 */ "STREAM",
/* 146 */ "COLON",
/* 147 */ "ABORT",
/* 148 */ "AFTER",
/* 149 */ "ATTACH",
/* 150 */ "BEFORE",
/* 151 */ "BEGIN",
/* 152 */ "CASCADE",
/* 153 */ "CLUSTER",
/* 154 */ "CONFLICT",
/* 155 */ "COPY",
/* 156 */ "DEFERRED",
/* 157 */ "DELIMITERS",
/* 158 */ "DETACH",
/* 159 */ "EACH",
/* 160 */ "END",
/* 161 */ "EXPLAIN",
/* 162 */ "FAIL",
/* 163 */ "FOR",
/* 164 */ "IGNORE",
/* 165 */ "IMMEDIATE",
/* 166 */ "INITIALLY",
/* 167 */ "INSTEAD",
/* 168 */ "MATCH",
/* 169 */ "KEY",
/* 170 */ "OF",
/* 171 */ "RAISE",
/* 172 */ "REPLACE",
/* 173 */ "RESTRICT",
/* 174 */ "ROW",
/* 175 */ "STATEMENT",
/* 176 */ "TRIGGER",
/* 177 */ "VIEW",
/* 178 */ "SEMI",
/* 179 */ "NONE",
/* 180 */ "PREV",
/* 181 */ "LINEAR",
/* 182 */ "IMPORT",
/* 183 */ "TBNAME",
/* 184 */ "JOIN",
/* 185 */ "INSERT",
/* 186 */ "INTO",
/* 187 */ "VALUES",
/* 188 */ "program",
/* 189 */ "cmd",
/* 190 */ "dbPrefix",
......@@ -1278,18 +1294,19 @@ static const char *const yyRuleName[] = {
/* 255 */ "cmd ::= SYNCDB ids REPLICA",
/* 256 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist",
/* 257 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids",
/* 258 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist",
/* 259 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids",
/* 260 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids",
/* 261 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem",
/* 262 */ "cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist",
/* 263 */ "cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids",
/* 264 */ "cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist",
/* 265 */ "cmd ::= ALTER STABLE ids cpxName DROP TAG ids",
/* 266 */ "cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids",
/* 267 */ "cmd ::= KILL CONNECTION INTEGER",
/* 268 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER",
/* 269 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER",
/* 258 */ "cmd ::= ALTER TABLE ids cpxName ALTER COLUMN LENGTH ids INTEGER",
/* 259 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist",
/* 260 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids",
/* 261 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids",
/* 262 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem",
/* 263 */ "cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist",
/* 264 */ "cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids",
/* 265 */ "cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist",
/* 266 */ "cmd ::= ALTER STABLE ids cpxName DROP TAG ids",
/* 267 */ "cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids",
/* 268 */ "cmd ::= KILL CONNECTION INTEGER",
/* 269 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER",
/* 270 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER",
};
#endif /* NDEBUG */
......@@ -1338,28 +1355,29 @@ static int yyGrowStack(yyParser *p){
/* Initialize a new parser that has already been allocated.
*/
void ParseInit(void *yypParser){
yyParser *pParser = (yyParser*)yypParser;
void ParseInit(void *yypRawParser ParseCTX_PDECL){
yyParser *yypParser = (yyParser*)yypRawParser;
ParseCTX_STORE
#ifdef YYTRACKMAXSTACKDEPTH
pParser->yyhwm = 0;
yypParser->yyhwm = 0;
#endif
#if YYSTACKDEPTH<=0
pParser->yytos = NULL;
pParser->yystack = NULL;
pParser->yystksz = 0;
if( yyGrowStack(pParser) ){
pParser->yystack = &pParser->yystk0;
pParser->yystksz = 1;
yypParser->yytos = NULL;
yypParser->yystack = NULL;
yypParser->yystksz = 0;
if( yyGrowStack(yypParser) ){
yypParser->yystack = &yypParser->yystk0;
yypParser->yystksz = 1;
}
#endif
#ifndef YYNOERRORRECOVERY
pParser->yyerrcnt = -1;
yypParser->yyerrcnt = -1;
#endif
pParser->yytos = pParser->yystack;
pParser->yystack[0].stateno = 0;
pParser->yystack[0].major = 0;
yypParser->yytos = yypParser->yystack;
yypParser->yystack[0].stateno = 0;
yypParser->yystack[0].major = 0;
#if YYSTACKDEPTH>0
pParser->yystackEnd = &pParser->yystack[YYSTACKDEPTH-1];
yypParser->yystackEnd = &yypParser->yystack[YYSTACKDEPTH-1];
#endif
}
......@@ -1376,11 +1394,14 @@ void ParseInit(void *yypParser){
** A pointer to a parser. This pointer is used in subsequent calls
** to Parse and ParseFree.
*/
void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)){
yyParser *pParser;
pParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) );
if( pParser ) ParseInit(pParser);
return pParser;
void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE) ParseCTX_PDECL){
yyParser *yypParser;
yypParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) );
if( yypParser ){
ParseCTX_STORE
ParseInit(yypParser ParseCTX_PARAM);
}
return (void*)yypParser;
}
#endif /* Parse_ENGINEALWAYSONSTACK */
......@@ -1397,7 +1418,8 @@ static void yy_destructor(
YYCODETYPE yymajor, /* Type code for object to destroy */
YYMINORTYPE *yypminor /* The object to be destroyed */
){
ParseARG_FETCH;
ParseARG_FETCH
ParseCTX_FETCH
switch( yymajor ){
/* Here is inserted the actions which take place when a
** terminal or non-terminal is destroyed. This can happen
......@@ -1573,13 +1595,12 @@ int ParseCoverage(FILE *out){
** Find the appropriate action for a parser given the terminal
** look-ahead token iLookAhead.
*/
static unsigned int yy_find_shift_action(
yyParser *pParser, /* The parser */
YYCODETYPE iLookAhead /* The look-ahead token */
static YYACTIONTYPE yy_find_shift_action(
YYCODETYPE iLookAhead, /* The look-ahead token */
YYACTIONTYPE stateno /* Current state number */
){
int i;
int stateno = pParser->yytos->stateno;
if( stateno>YY_MAX_SHIFT ) return stateno;
assert( stateno <= YY_SHIFT_COUNT );
#if defined(YYCOVERAGE)
......@@ -1587,15 +1608,19 @@ static unsigned int yy_find_shift_action(
#endif
do{
i = yy_shift_ofst[stateno];
assert( i>=0 && i+YYNTOKEN<=sizeof(yy_lookahead)/sizeof(yy_lookahead[0]) );
assert( i>=0 );
assert( i<=YY_ACTTAB_COUNT );
assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD );
assert( iLookAhead!=YYNOCODE );
assert( iLookAhead < YYNTOKEN );
i += iLookAhead;
assert( i<(int)YY_NLOOKAHEAD );
if( yy_lookahead[i]!=iLookAhead ){
#ifdef YYFALLBACK
YYCODETYPE iFallback; /* Fallback token */
if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
&& (iFallback = yyFallback[iLookAhead])!=0 ){
assert( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) );
iFallback = yyFallback[iLookAhead];
if( iFallback!=0 ){
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
......@@ -1610,15 +1635,8 @@ static unsigned int yy_find_shift_action(
#ifdef YYWILDCARD
{
int j = i - iLookAhead + YYWILDCARD;
if(
#if YY_SHIFT_MIN+YYWILDCARD<0
j>=0 &&
#endif
#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
j<YY_ACTTAB_COUNT &&
#endif
yy_lookahead[j]==YYWILDCARD && iLookAhead>0
){
assert( j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) );
if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
......@@ -1632,6 +1650,7 @@ static unsigned int yy_find_shift_action(
#endif /* YYWILDCARD */
return yy_default[stateno];
}else{
assert( i>=0 && i<sizeof(yy_action)/sizeof(yy_action[0]) );
return yy_action[i];
}
}while(1);
......@@ -1641,8 +1660,8 @@ static unsigned int yy_find_shift_action(
** Find the appropriate action for a parser given the non-terminal
** look-ahead token iLookAhead.
*/
static int yy_find_reduce_action(
int stateno, /* Current state number */
static YYACTIONTYPE yy_find_reduce_action(
YYACTIONTYPE stateno, /* Current state number */
YYCODETYPE iLookAhead /* The look-ahead token */
){
int i;
......@@ -1671,7 +1690,8 @@ static int yy_find_reduce_action(
** The following routine is called if the stack overflows.
*/
static void yyStackOverflow(yyParser *yypParser){
ParseARG_FETCH;
ParseARG_FETCH
ParseCTX_FETCH
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
......@@ -1682,7 +1702,8 @@ static void yyStackOverflow(yyParser *yypParser){
** stack every overflows */
/******** Begin %stack_overflow code ******************************************/
/******** End %stack_overflow code ********************************************/
ParseARG_STORE; /* Suppress warning about unused %extra_argument var */
ParseARG_STORE /* Suppress warning about unused %extra_argument var */
ParseCTX_STORE
}
/*
......@@ -1711,8 +1732,8 @@ static void yyTraceShift(yyParser *yypParser, int yyNewState, const char *zTag){
*/
static void yy_shift(
yyParser *yypParser, /* The parser to be shifted */
int yyNewState, /* The new state to shift in */
int yyMajor, /* The major token to shift in */
YYACTIONTYPE yyNewState, /* The new state to shift in */
YYCODETYPE yyMajor, /* The major token to shift in */
ParseTOKENTYPE yyMinor /* The minor token to shift in */
){
yyStackEntry *yytos;
......@@ -1742,289 +1763,562 @@ static void yy_shift(
yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
}
yytos = yypParser->yytos;
yytos->stateno = (YYACTIONTYPE)yyNewState;
yytos->major = (YYCODETYPE)yyMajor;
yytos->stateno = yyNewState;
yytos->major = yyMajor;
yytos->minor.yy0 = yyMinor;
yyTraceShift(yypParser, yyNewState, "Shift");
}
/* The following table contains information about every rule that
** is used during the reduce.
*/
static const struct {
YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
signed char nrhs; /* Negative of the number of RHS symbols in the rule */
} yyRuleInfo[] = {
{ 188, -1 }, /* (0) program ::= cmd */
{ 189, -2 }, /* (1) cmd ::= SHOW DATABASES */
{ 189, -2 }, /* (2) cmd ::= SHOW TOPICS */
{ 189, -2 }, /* (3) cmd ::= SHOW MNODES */
{ 189, -2 }, /* (4) cmd ::= SHOW DNODES */
{ 189, -2 }, /* (5) cmd ::= SHOW ACCOUNTS */
{ 189, -2 }, /* (6) cmd ::= SHOW USERS */
{ 189, -2 }, /* (7) cmd ::= SHOW MODULES */
{ 189, -2 }, /* (8) cmd ::= SHOW QUERIES */
{ 189, -2 }, /* (9) cmd ::= SHOW CONNECTIONS */
{ 189, -2 }, /* (10) cmd ::= SHOW STREAMS */
{ 189, -2 }, /* (11) cmd ::= SHOW VARIABLES */
{ 189, -2 }, /* (12) cmd ::= SHOW SCORES */
{ 189, -2 }, /* (13) cmd ::= SHOW GRANTS */
{ 189, -2 }, /* (14) cmd ::= SHOW VNODES */
{ 189, -3 }, /* (15) cmd ::= SHOW VNODES IPTOKEN */
{ 190, 0 }, /* (16) dbPrefix ::= */
{ 190, -2 }, /* (17) dbPrefix ::= ids DOT */
{ 192, 0 }, /* (18) cpxName ::= */
{ 192, -2 }, /* (19) cpxName ::= DOT ids */
{ 189, -5 }, /* (20) cmd ::= SHOW CREATE TABLE ids cpxName */
{ 189, -5 }, /* (21) cmd ::= SHOW CREATE STABLE ids cpxName */
{ 189, -4 }, /* (22) cmd ::= SHOW CREATE DATABASE ids */
{ 189, -3 }, /* (23) cmd ::= SHOW dbPrefix TABLES */
{ 189, -5 }, /* (24) cmd ::= SHOW dbPrefix TABLES LIKE ids */
{ 189, -3 }, /* (25) cmd ::= SHOW dbPrefix STABLES */
{ 189, -5 }, /* (26) cmd ::= SHOW dbPrefix STABLES LIKE ids */
{ 189, -3 }, /* (27) cmd ::= SHOW dbPrefix VGROUPS */
{ 189, -4 }, /* (28) cmd ::= SHOW dbPrefix VGROUPS ids */
{ 189, -5 }, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */
{ 189, -5 }, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */
{ 189, -4 }, /* (31) cmd ::= DROP DATABASE ifexists ids */
{ 189, -4 }, /* (32) cmd ::= DROP TOPIC ifexists ids */
{ 189, -3 }, /* (33) cmd ::= DROP DNODE ids */
{ 189, -3 }, /* (34) cmd ::= DROP USER ids */
{ 189, -3 }, /* (35) cmd ::= DROP ACCOUNT ids */
{ 189, -2 }, /* (36) cmd ::= USE ids */
{ 189, -3 }, /* (37) cmd ::= DESCRIBE ids cpxName */
{ 189, -5 }, /* (38) cmd ::= ALTER USER ids PASS ids */
{ 189, -5 }, /* (39) cmd ::= ALTER USER ids PRIVILEGE ids */
{ 189, -4 }, /* (40) cmd ::= ALTER DNODE ids ids */
{ 189, -5 }, /* (41) cmd ::= ALTER DNODE ids ids ids */
{ 189, -3 }, /* (42) cmd ::= ALTER LOCAL ids */
{ 189, -4 }, /* (43) cmd ::= ALTER LOCAL ids ids */
{ 189, -4 }, /* (44) cmd ::= ALTER DATABASE ids alter_db_optr */
{ 189, -4 }, /* (45) cmd ::= ALTER TOPIC ids alter_topic_optr */
{ 189, -4 }, /* (46) cmd ::= ALTER ACCOUNT ids acct_optr */
{ 189, -6 }, /* (47) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{ 191, -1 }, /* (48) ids ::= ID */
{ 191, -1 }, /* (49) ids ::= STRING */
{ 193, -2 }, /* (50) ifexists ::= IF EXISTS */
{ 193, 0 }, /* (51) ifexists ::= */
{ 197, -3 }, /* (52) ifnotexists ::= IF NOT EXISTS */
{ 197, 0 }, /* (53) ifnotexists ::= */
{ 189, -3 }, /* (54) cmd ::= CREATE DNODE ids */
{ 189, -6 }, /* (55) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{ 189, -5 }, /* (56) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{ 189, -5 }, /* (57) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
{ 189, -5 }, /* (58) cmd ::= CREATE USER ids PASS ids */
{ 200, 0 }, /* (59) pps ::= */
{ 200, -2 }, /* (60) pps ::= PPS INTEGER */
{ 201, 0 }, /* (61) tseries ::= */
{ 201, -2 }, /* (62) tseries ::= TSERIES INTEGER */
{ 202, 0 }, /* (63) dbs ::= */
{ 202, -2 }, /* (64) dbs ::= DBS INTEGER */
{ 203, 0 }, /* (65) streams ::= */
{ 203, -2 }, /* (66) streams ::= STREAMS INTEGER */
{ 204, 0 }, /* (67) storage ::= */
{ 204, -2 }, /* (68) storage ::= STORAGE INTEGER */
{ 205, 0 }, /* (69) qtime ::= */
{ 205, -2 }, /* (70) qtime ::= QTIME INTEGER */
{ 206, 0 }, /* (71) users ::= */
{ 206, -2 }, /* (72) users ::= USERS INTEGER */
{ 207, 0 }, /* (73) conns ::= */
{ 207, -2 }, /* (74) conns ::= CONNS INTEGER */
{ 208, 0 }, /* (75) state ::= */
{ 208, -2 }, /* (76) state ::= STATE ids */
{ 196, -9 }, /* (77) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{ 209, -2 }, /* (78) keep ::= KEEP tagitemlist */
{ 211, -2 }, /* (79) cache ::= CACHE INTEGER */
{ 212, -2 }, /* (80) replica ::= REPLICA INTEGER */
{ 213, -2 }, /* (81) quorum ::= QUORUM INTEGER */
{ 214, -2 }, /* (82) days ::= DAYS INTEGER */
{ 215, -2 }, /* (83) minrows ::= MINROWS INTEGER */
{ 216, -2 }, /* (84) maxrows ::= MAXROWS INTEGER */
{ 217, -2 }, /* (85) blocks ::= BLOCKS INTEGER */
{ 218, -2 }, /* (86) ctime ::= CTIME INTEGER */
{ 219, -2 }, /* (87) wal ::= WAL INTEGER */
{ 220, -2 }, /* (88) fsync ::= FSYNC INTEGER */
{ 221, -2 }, /* (89) comp ::= COMP INTEGER */
{ 222, -2 }, /* (90) prec ::= PRECISION STRING */
{ 223, -2 }, /* (91) update ::= UPDATE INTEGER */
{ 224, -2 }, /* (92) cachelast ::= CACHELAST INTEGER */
{ 225, -2 }, /* (93) partitions ::= PARTITIONS INTEGER */
{ 198, 0 }, /* (94) db_optr ::= */
{ 198, -2 }, /* (95) db_optr ::= db_optr cache */
{ 198, -2 }, /* (96) db_optr ::= db_optr replica */
{ 198, -2 }, /* (97) db_optr ::= db_optr quorum */
{ 198, -2 }, /* (98) db_optr ::= db_optr days */
{ 198, -2 }, /* (99) db_optr ::= db_optr minrows */
{ 198, -2 }, /* (100) db_optr ::= db_optr maxrows */
{ 198, -2 }, /* (101) db_optr ::= db_optr blocks */
{ 198, -2 }, /* (102) db_optr ::= db_optr ctime */
{ 198, -2 }, /* (103) db_optr ::= db_optr wal */
{ 198, -2 }, /* (104) db_optr ::= db_optr fsync */
{ 198, -2 }, /* (105) db_optr ::= db_optr comp */
{ 198, -2 }, /* (106) db_optr ::= db_optr prec */
{ 198, -2 }, /* (107) db_optr ::= db_optr keep */
{ 198, -2 }, /* (108) db_optr ::= db_optr update */
{ 198, -2 }, /* (109) db_optr ::= db_optr cachelast */
{ 199, -1 }, /* (110) topic_optr ::= db_optr */
{ 199, -2 }, /* (111) topic_optr ::= topic_optr partitions */
{ 194, 0 }, /* (112) alter_db_optr ::= */
{ 194, -2 }, /* (113) alter_db_optr ::= alter_db_optr replica */
{ 194, -2 }, /* (114) alter_db_optr ::= alter_db_optr quorum */
{ 194, -2 }, /* (115) alter_db_optr ::= alter_db_optr keep */
{ 194, -2 }, /* (116) alter_db_optr ::= alter_db_optr blocks */
{ 194, -2 }, /* (117) alter_db_optr ::= alter_db_optr comp */
{ 194, -2 }, /* (118) alter_db_optr ::= alter_db_optr wal */
{ 194, -2 }, /* (119) alter_db_optr ::= alter_db_optr fsync */
{ 194, -2 }, /* (120) alter_db_optr ::= alter_db_optr update */
{ 194, -2 }, /* (121) alter_db_optr ::= alter_db_optr cachelast */
{ 195, -1 }, /* (122) alter_topic_optr ::= alter_db_optr */
{ 195, -2 }, /* (123) alter_topic_optr ::= alter_topic_optr partitions */
{ 226, -1 }, /* (124) typename ::= ids */
{ 226, -4 }, /* (125) typename ::= ids LP signed RP */
{ 226, -2 }, /* (126) typename ::= ids UNSIGNED */
{ 227, -1 }, /* (127) signed ::= INTEGER */
{ 227, -2 }, /* (128) signed ::= PLUS INTEGER */
{ 227, -2 }, /* (129) signed ::= MINUS INTEGER */
{ 189, -3 }, /* (130) cmd ::= CREATE TABLE create_table_args */
{ 189, -3 }, /* (131) cmd ::= CREATE TABLE create_stable_args */
{ 189, -3 }, /* (132) cmd ::= CREATE STABLE create_stable_args */
{ 189, -3 }, /* (133) cmd ::= CREATE TABLE create_table_list */
{ 230, -1 }, /* (134) create_table_list ::= create_from_stable */
{ 230, -2 }, /* (135) create_table_list ::= create_table_list create_from_stable */
{ 228, -6 }, /* (136) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{ 229, -10 }, /* (137) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{ 231, -10 }, /* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{ 231, -13 }, /* (139) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{ 233, -3 }, /* (140) tagNamelist ::= tagNamelist COMMA ids */
{ 233, -1 }, /* (141) tagNamelist ::= ids */
{ 228, -5 }, /* (142) create_table_args ::= ifnotexists ids cpxName AS select */
{ 232, -3 }, /* (143) columnlist ::= columnlist COMMA column */
{ 232, -1 }, /* (144) columnlist ::= column */
{ 235, -2 }, /* (145) column ::= ids typename */
{ 210, -3 }, /* (146) tagitemlist ::= tagitemlist COMMA tagitem */
{ 210, -1 }, /* (147) tagitemlist ::= tagitem */
{ 236, -1 }, /* (148) tagitem ::= INTEGER */
{ 236, -1 }, /* (149) tagitem ::= FLOAT */
{ 236, -1 }, /* (150) tagitem ::= STRING */
{ 236, -1 }, /* (151) tagitem ::= BOOL */
{ 236, -1 }, /* (152) tagitem ::= NULL */
{ 236, -2 }, /* (153) tagitem ::= MINUS INTEGER */
{ 236, -2 }, /* (154) tagitem ::= MINUS FLOAT */
{ 236, -2 }, /* (155) tagitem ::= PLUS INTEGER */
{ 236, -2 }, /* (156) tagitem ::= PLUS FLOAT */
{ 234, -13 }, /* (157) select ::= SELECT selcollist from where_opt interval_opt session_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
{ 234, -3 }, /* (158) select ::= LP select RP */
{ 249, -1 }, /* (159) union ::= select */
{ 249, -4 }, /* (160) union ::= union UNION ALL select */
{ 189, -1 }, /* (161) cmd ::= union */
{ 234, -2 }, /* (162) select ::= SELECT selcollist */
{ 250, -2 }, /* (163) sclp ::= selcollist COMMA */
{ 250, 0 }, /* (164) sclp ::= */
{ 237, -4 }, /* (165) selcollist ::= sclp distinct expr as */
{ 237, -2 }, /* (166) selcollist ::= sclp STAR */
{ 253, -2 }, /* (167) as ::= AS ids */
{ 253, -1 }, /* (168) as ::= ids */
{ 253, 0 }, /* (169) as ::= */
{ 251, -1 }, /* (170) distinct ::= DISTINCT */
{ 251, 0 }, /* (171) distinct ::= */
{ 238, -2 }, /* (172) from ::= FROM tablelist */
{ 238, -4 }, /* (173) from ::= FROM LP union RP */
{ 254, -2 }, /* (174) tablelist ::= ids cpxName */
{ 254, -3 }, /* (175) tablelist ::= ids cpxName ids */
{ 254, -4 }, /* (176) tablelist ::= tablelist COMMA ids cpxName */
{ 254, -5 }, /* (177) tablelist ::= tablelist COMMA ids cpxName ids */
{ 255, -1 }, /* (178) tmvar ::= VARIABLE */
{ 240, -4 }, /* (179) interval_opt ::= INTERVAL LP tmvar RP */
{ 240, -6 }, /* (180) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */
{ 240, 0 }, /* (181) interval_opt ::= */
{ 241, 0 }, /* (182) session_option ::= */
{ 241, -7 }, /* (183) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{ 242, 0 }, /* (184) fill_opt ::= */
{ 242, -6 }, /* (185) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{ 242, -4 }, /* (186) fill_opt ::= FILL LP ID RP */
{ 243, -4 }, /* (187) sliding_opt ::= SLIDING LP tmvar RP */
{ 243, 0 }, /* (188) sliding_opt ::= */
{ 245, 0 }, /* (189) orderby_opt ::= */
{ 245, -3 }, /* (190) orderby_opt ::= ORDER BY sortlist */
{ 256, -4 }, /* (191) sortlist ::= sortlist COMMA item sortorder */
{ 256, -2 }, /* (192) sortlist ::= item sortorder */
{ 258, -2 }, /* (193) item ::= ids cpxName */
{ 259, -1 }, /* (194) sortorder ::= ASC */
{ 259, -1 }, /* (195) sortorder ::= DESC */
{ 259, 0 }, /* (196) sortorder ::= */
{ 244, 0 }, /* (197) groupby_opt ::= */
{ 244, -3 }, /* (198) groupby_opt ::= GROUP BY grouplist */
{ 260, -3 }, /* (199) grouplist ::= grouplist COMMA item */
{ 260, -1 }, /* (200) grouplist ::= item */
{ 246, 0 }, /* (201) having_opt ::= */
{ 246, -2 }, /* (202) having_opt ::= HAVING expr */
{ 248, 0 }, /* (203) limit_opt ::= */
{ 248, -2 }, /* (204) limit_opt ::= LIMIT signed */
{ 248, -4 }, /* (205) limit_opt ::= LIMIT signed OFFSET signed */
{ 248, -4 }, /* (206) limit_opt ::= LIMIT signed COMMA signed */
{ 247, 0 }, /* (207) slimit_opt ::= */
{ 247, -2 }, /* (208) slimit_opt ::= SLIMIT signed */
{ 247, -4 }, /* (209) slimit_opt ::= SLIMIT signed SOFFSET signed */
{ 247, -4 }, /* (210) slimit_opt ::= SLIMIT signed COMMA signed */
{ 239, 0 }, /* (211) where_opt ::= */
{ 239, -2 }, /* (212) where_opt ::= WHERE expr */
{ 252, -3 }, /* (213) expr ::= LP expr RP */
{ 252, -1 }, /* (214) expr ::= ID */
{ 252, -3 }, /* (215) expr ::= ID DOT ID */
{ 252, -3 }, /* (216) expr ::= ID DOT STAR */
{ 252, -1 }, /* (217) expr ::= INTEGER */
{ 252, -2 }, /* (218) expr ::= MINUS INTEGER */
{ 252, -2 }, /* (219) expr ::= PLUS INTEGER */
{ 252, -1 }, /* (220) expr ::= FLOAT */
{ 252, -2 }, /* (221) expr ::= MINUS FLOAT */
{ 252, -2 }, /* (222) expr ::= PLUS FLOAT */
{ 252, -1 }, /* (223) expr ::= STRING */
{ 252, -1 }, /* (224) expr ::= NOW */
{ 252, -1 }, /* (225) expr ::= VARIABLE */
{ 252, -2 }, /* (226) expr ::= PLUS VARIABLE */
{ 252, -2 }, /* (227) expr ::= MINUS VARIABLE */
{ 252, -1 }, /* (228) expr ::= BOOL */
{ 252, -1 }, /* (229) expr ::= NULL */
{ 252, -4 }, /* (230) expr ::= ID LP exprlist RP */
{ 252, -4 }, /* (231) expr ::= ID LP STAR RP */
{ 252, -3 }, /* (232) expr ::= expr IS NULL */
{ 252, -4 }, /* (233) expr ::= expr IS NOT NULL */
{ 252, -3 }, /* (234) expr ::= expr LT expr */
{ 252, -3 }, /* (235) expr ::= expr GT expr */
{ 252, -3 }, /* (236) expr ::= expr LE expr */
{ 252, -3 }, /* (237) expr ::= expr GE expr */
{ 252, -3 }, /* (238) expr ::= expr NE expr */
{ 252, -3 }, /* (239) expr ::= expr EQ expr */
{ 252, -5 }, /* (240) expr ::= expr BETWEEN expr AND expr */
{ 252, -3 }, /* (241) expr ::= expr AND expr */
{ 252, -3 }, /* (242) expr ::= expr OR expr */
{ 252, -3 }, /* (243) expr ::= expr PLUS expr */
{ 252, -3 }, /* (244) expr ::= expr MINUS expr */
{ 252, -3 }, /* (245) expr ::= expr STAR expr */
{ 252, -3 }, /* (246) expr ::= expr SLASH expr */
{ 252, -3 }, /* (247) expr ::= expr REM expr */
{ 252, -3 }, /* (248) expr ::= expr LIKE expr */
{ 252, -5 }, /* (249) expr ::= expr IN LP exprlist RP */
{ 261, -3 }, /* (250) exprlist ::= exprlist COMMA expritem */
{ 261, -1 }, /* (251) exprlist ::= expritem */
{ 262, -1 }, /* (252) expritem ::= expr */
{ 262, 0 }, /* (253) expritem ::= */
{ 189, -3 }, /* (254) cmd ::= RESET QUERY CACHE */
{ 189, -3 }, /* (255) cmd ::= SYNCDB ids REPLICA */
{ 189, -7 }, /* (256) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{ 189, -7 }, /* (257) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{ 189, -7 }, /* (258) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{ 189, -7 }, /* (259) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{ 189, -8 }, /* (260) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{ 189, -9 }, /* (261) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{ 189, -7 }, /* (262) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{ 189, -7 }, /* (263) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{ 189, -7 }, /* (264) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{ 189, -7 }, /* (265) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{ 189, -8 }, /* (266) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{ 189, -3 }, /* (267) cmd ::= KILL CONNECTION INTEGER */
{ 189, -5 }, /* (268) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{ 189, -5 }, /* (269) cmd ::= KILL QUERY INTEGER COLON INTEGER */
/* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
** of that rule */
static const YYCODETYPE yyRuleInfoLhs[] = {
188, /* (0) program ::= cmd */
189, /* (1) cmd ::= SHOW DATABASES */
189, /* (2) cmd ::= SHOW TOPICS */
189, /* (3) cmd ::= SHOW MNODES */
189, /* (4) cmd ::= SHOW DNODES */
189, /* (5) cmd ::= SHOW ACCOUNTS */
189, /* (6) cmd ::= SHOW USERS */
189, /* (7) cmd ::= SHOW MODULES */
189, /* (8) cmd ::= SHOW QUERIES */
189, /* (9) cmd ::= SHOW CONNECTIONS */
189, /* (10) cmd ::= SHOW STREAMS */
189, /* (11) cmd ::= SHOW VARIABLES */
189, /* (12) cmd ::= SHOW SCORES */
189, /* (13) cmd ::= SHOW GRANTS */
189, /* (14) cmd ::= SHOW VNODES */
189, /* (15) cmd ::= SHOW VNODES IPTOKEN */
190, /* (16) dbPrefix ::= */
190, /* (17) dbPrefix ::= ids DOT */
192, /* (18) cpxName ::= */
192, /* (19) cpxName ::= DOT ids */
189, /* (20) cmd ::= SHOW CREATE TABLE ids cpxName */
189, /* (21) cmd ::= SHOW CREATE STABLE ids cpxName */
189, /* (22) cmd ::= SHOW CREATE DATABASE ids */
189, /* (23) cmd ::= SHOW dbPrefix TABLES */
189, /* (24) cmd ::= SHOW dbPrefix TABLES LIKE ids */
189, /* (25) cmd ::= SHOW dbPrefix STABLES */
189, /* (26) cmd ::= SHOW dbPrefix STABLES LIKE ids */
189, /* (27) cmd ::= SHOW dbPrefix VGROUPS */
189, /* (28) cmd ::= SHOW dbPrefix VGROUPS ids */
189, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */
189, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */
189, /* (31) cmd ::= DROP DATABASE ifexists ids */
189, /* (32) cmd ::= DROP TOPIC ifexists ids */
189, /* (33) cmd ::= DROP DNODE ids */
189, /* (34) cmd ::= DROP USER ids */
189, /* (35) cmd ::= DROP ACCOUNT ids */
189, /* (36) cmd ::= USE ids */
189, /* (37) cmd ::= DESCRIBE ids cpxName */
189, /* (38) cmd ::= ALTER USER ids PASS ids */
189, /* (39) cmd ::= ALTER USER ids PRIVILEGE ids */
189, /* (40) cmd ::= ALTER DNODE ids ids */
189, /* (41) cmd ::= ALTER DNODE ids ids ids */
189, /* (42) cmd ::= ALTER LOCAL ids */
189, /* (43) cmd ::= ALTER LOCAL ids ids */
189, /* (44) cmd ::= ALTER DATABASE ids alter_db_optr */
189, /* (45) cmd ::= ALTER TOPIC ids alter_topic_optr */
189, /* (46) cmd ::= ALTER ACCOUNT ids acct_optr */
189, /* (47) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
191, /* (48) ids ::= ID */
191, /* (49) ids ::= STRING */
193, /* (50) ifexists ::= IF EXISTS */
193, /* (51) ifexists ::= */
197, /* (52) ifnotexists ::= IF NOT EXISTS */
197, /* (53) ifnotexists ::= */
189, /* (54) cmd ::= CREATE DNODE ids */
189, /* (55) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
189, /* (56) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
189, /* (57) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
189, /* (58) cmd ::= CREATE USER ids PASS ids */
200, /* (59) pps ::= */
200, /* (60) pps ::= PPS INTEGER */
201, /* (61) tseries ::= */
201, /* (62) tseries ::= TSERIES INTEGER */
202, /* (63) dbs ::= */
202, /* (64) dbs ::= DBS INTEGER */
203, /* (65) streams ::= */
203, /* (66) streams ::= STREAMS INTEGER */
204, /* (67) storage ::= */
204, /* (68) storage ::= STORAGE INTEGER */
205, /* (69) qtime ::= */
205, /* (70) qtime ::= QTIME INTEGER */
206, /* (71) users ::= */
206, /* (72) users ::= USERS INTEGER */
207, /* (73) conns ::= */
207, /* (74) conns ::= CONNS INTEGER */
208, /* (75) state ::= */
208, /* (76) state ::= STATE ids */
196, /* (77) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
209, /* (78) keep ::= KEEP tagitemlist */
211, /* (79) cache ::= CACHE INTEGER */
212, /* (80) replica ::= REPLICA INTEGER */
213, /* (81) quorum ::= QUORUM INTEGER */
214, /* (82) days ::= DAYS INTEGER */
215, /* (83) minrows ::= MINROWS INTEGER */
216, /* (84) maxrows ::= MAXROWS INTEGER */
217, /* (85) blocks ::= BLOCKS INTEGER */
218, /* (86) ctime ::= CTIME INTEGER */
219, /* (87) wal ::= WAL INTEGER */
220, /* (88) fsync ::= FSYNC INTEGER */
221, /* (89) comp ::= COMP INTEGER */
222, /* (90) prec ::= PRECISION STRING */
223, /* (91) update ::= UPDATE INTEGER */
224, /* (92) cachelast ::= CACHELAST INTEGER */
225, /* (93) partitions ::= PARTITIONS INTEGER */
198, /* (94) db_optr ::= */
198, /* (95) db_optr ::= db_optr cache */
198, /* (96) db_optr ::= db_optr replica */
198, /* (97) db_optr ::= db_optr quorum */
198, /* (98) db_optr ::= db_optr days */
198, /* (99) db_optr ::= db_optr minrows */
198, /* (100) db_optr ::= db_optr maxrows */
198, /* (101) db_optr ::= db_optr blocks */
198, /* (102) db_optr ::= db_optr ctime */
198, /* (103) db_optr ::= db_optr wal */
198, /* (104) db_optr ::= db_optr fsync */
198, /* (105) db_optr ::= db_optr comp */
198, /* (106) db_optr ::= db_optr prec */
198, /* (107) db_optr ::= db_optr keep */
198, /* (108) db_optr ::= db_optr update */
198, /* (109) db_optr ::= db_optr cachelast */
199, /* (110) topic_optr ::= db_optr */
199, /* (111) topic_optr ::= topic_optr partitions */
194, /* (112) alter_db_optr ::= */
194, /* (113) alter_db_optr ::= alter_db_optr replica */
194, /* (114) alter_db_optr ::= alter_db_optr quorum */
194, /* (115) alter_db_optr ::= alter_db_optr keep */
194, /* (116) alter_db_optr ::= alter_db_optr blocks */
194, /* (117) alter_db_optr ::= alter_db_optr comp */
194, /* (118) alter_db_optr ::= alter_db_optr wal */
194, /* (119) alter_db_optr ::= alter_db_optr fsync */
194, /* (120) alter_db_optr ::= alter_db_optr update */
194, /* (121) alter_db_optr ::= alter_db_optr cachelast */
195, /* (122) alter_topic_optr ::= alter_db_optr */
195, /* (123) alter_topic_optr ::= alter_topic_optr partitions */
226, /* (124) typename ::= ids */
226, /* (125) typename ::= ids LP signed RP */
226, /* (126) typename ::= ids UNSIGNED */
227, /* (127) signed ::= INTEGER */
227, /* (128) signed ::= PLUS INTEGER */
227, /* (129) signed ::= MINUS INTEGER */
189, /* (130) cmd ::= CREATE TABLE create_table_args */
189, /* (131) cmd ::= CREATE TABLE create_stable_args */
189, /* (132) cmd ::= CREATE STABLE create_stable_args */
189, /* (133) cmd ::= CREATE TABLE create_table_list */
230, /* (134) create_table_list ::= create_from_stable */
230, /* (135) create_table_list ::= create_table_list create_from_stable */
228, /* (136) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
229, /* (137) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
231, /* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
231, /* (139) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
233, /* (140) tagNamelist ::= tagNamelist COMMA ids */
233, /* (141) tagNamelist ::= ids */
228, /* (142) create_table_args ::= ifnotexists ids cpxName AS select */
232, /* (143) columnlist ::= columnlist COMMA column */
232, /* (144) columnlist ::= column */
235, /* (145) column ::= ids typename */
210, /* (146) tagitemlist ::= tagitemlist COMMA tagitem */
210, /* (147) tagitemlist ::= tagitem */
236, /* (148) tagitem ::= INTEGER */
236, /* (149) tagitem ::= FLOAT */
236, /* (150) tagitem ::= STRING */
236, /* (151) tagitem ::= BOOL */
236, /* (152) tagitem ::= NULL */
236, /* (153) tagitem ::= MINUS INTEGER */
236, /* (154) tagitem ::= MINUS FLOAT */
236, /* (155) tagitem ::= PLUS INTEGER */
236, /* (156) tagitem ::= PLUS FLOAT */
234, /* (157) select ::= SELECT selcollist from where_opt interval_opt session_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
234, /* (158) select ::= LP select RP */
249, /* (159) union ::= select */
249, /* (160) union ::= union UNION ALL select */
189, /* (161) cmd ::= union */
234, /* (162) select ::= SELECT selcollist */
250, /* (163) sclp ::= selcollist COMMA */
250, /* (164) sclp ::= */
237, /* (165) selcollist ::= sclp distinct expr as */
237, /* (166) selcollist ::= sclp STAR */
253, /* (167) as ::= AS ids */
253, /* (168) as ::= ids */
253, /* (169) as ::= */
251, /* (170) distinct ::= DISTINCT */
251, /* (171) distinct ::= */
238, /* (172) from ::= FROM tablelist */
238, /* (173) from ::= FROM LP union RP */
254, /* (174) tablelist ::= ids cpxName */
254, /* (175) tablelist ::= ids cpxName ids */
254, /* (176) tablelist ::= tablelist COMMA ids cpxName */
254, /* (177) tablelist ::= tablelist COMMA ids cpxName ids */
255, /* (178) tmvar ::= VARIABLE */
240, /* (179) interval_opt ::= INTERVAL LP tmvar RP */
240, /* (180) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */
240, /* (181) interval_opt ::= */
241, /* (182) session_option ::= */
241, /* (183) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
242, /* (184) fill_opt ::= */
242, /* (185) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
242, /* (186) fill_opt ::= FILL LP ID RP */
243, /* (187) sliding_opt ::= SLIDING LP tmvar RP */
243, /* (188) sliding_opt ::= */
245, /* (189) orderby_opt ::= */
245, /* (190) orderby_opt ::= ORDER BY sortlist */
256, /* (191) sortlist ::= sortlist COMMA item sortorder */
256, /* (192) sortlist ::= item sortorder */
258, /* (193) item ::= ids cpxName */
259, /* (194) sortorder ::= ASC */
259, /* (195) sortorder ::= DESC */
259, /* (196) sortorder ::= */
244, /* (197) groupby_opt ::= */
244, /* (198) groupby_opt ::= GROUP BY grouplist */
260, /* (199) grouplist ::= grouplist COMMA item */
260, /* (200) grouplist ::= item */
246, /* (201) having_opt ::= */
246, /* (202) having_opt ::= HAVING expr */
248, /* (203) limit_opt ::= */
248, /* (204) limit_opt ::= LIMIT signed */
248, /* (205) limit_opt ::= LIMIT signed OFFSET signed */
248, /* (206) limit_opt ::= LIMIT signed COMMA signed */
247, /* (207) slimit_opt ::= */
247, /* (208) slimit_opt ::= SLIMIT signed */
247, /* (209) slimit_opt ::= SLIMIT signed SOFFSET signed */
247, /* (210) slimit_opt ::= SLIMIT signed COMMA signed */
239, /* (211) where_opt ::= */
239, /* (212) where_opt ::= WHERE expr */
252, /* (213) expr ::= LP expr RP */
252, /* (214) expr ::= ID */
252, /* (215) expr ::= ID DOT ID */
252, /* (216) expr ::= ID DOT STAR */
252, /* (217) expr ::= INTEGER */
252, /* (218) expr ::= MINUS INTEGER */
252, /* (219) expr ::= PLUS INTEGER */
252, /* (220) expr ::= FLOAT */
252, /* (221) expr ::= MINUS FLOAT */
252, /* (222) expr ::= PLUS FLOAT */
252, /* (223) expr ::= STRING */
252, /* (224) expr ::= NOW */
252, /* (225) expr ::= VARIABLE */
252, /* (226) expr ::= PLUS VARIABLE */
252, /* (227) expr ::= MINUS VARIABLE */
252, /* (228) expr ::= BOOL */
252, /* (229) expr ::= NULL */
252, /* (230) expr ::= ID LP exprlist RP */
252, /* (231) expr ::= ID LP STAR RP */
252, /* (232) expr ::= expr IS NULL */
252, /* (233) expr ::= expr IS NOT NULL */
252, /* (234) expr ::= expr LT expr */
252, /* (235) expr ::= expr GT expr */
252, /* (236) expr ::= expr LE expr */
252, /* (237) expr ::= expr GE expr */
252, /* (238) expr ::= expr NE expr */
252, /* (239) expr ::= expr EQ expr */
252, /* (240) expr ::= expr BETWEEN expr AND expr */
252, /* (241) expr ::= expr AND expr */
252, /* (242) expr ::= expr OR expr */
252, /* (243) expr ::= expr PLUS expr */
252, /* (244) expr ::= expr MINUS expr */
252, /* (245) expr ::= expr STAR expr */
252, /* (246) expr ::= expr SLASH expr */
252, /* (247) expr ::= expr REM expr */
252, /* (248) expr ::= expr LIKE expr */
252, /* (249) expr ::= expr IN LP exprlist RP */
261, /* (250) exprlist ::= exprlist COMMA expritem */
261, /* (251) exprlist ::= expritem */
262, /* (252) expritem ::= expr */
262, /* (253) expritem ::= */
189, /* (254) cmd ::= RESET QUERY CACHE */
189, /* (255) cmd ::= SYNCDB ids REPLICA */
189, /* (256) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
189, /* (257) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
189, /* (258) cmd ::= ALTER TABLE ids cpxName ALTER COLUMN LENGTH ids INTEGER */
189, /* (259) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
189, /* (260) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
189, /* (261) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
189, /* (262) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
189, /* (263) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
189, /* (264) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
189, /* (265) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
189, /* (266) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
189, /* (267) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
189, /* (268) cmd ::= KILL CONNECTION INTEGER */
189, /* (269) cmd ::= KILL STREAM INTEGER COLON INTEGER */
189, /* (270) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
/* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
** of symbols on the right-hand side of that rule. */
static const signed char yyRuleInfoNRhs[] = {
-1, /* (0) program ::= cmd */
-2, /* (1) cmd ::= SHOW DATABASES */
-2, /* (2) cmd ::= SHOW TOPICS */
-2, /* (3) cmd ::= SHOW MNODES */
-2, /* (4) cmd ::= SHOW DNODES */
-2, /* (5) cmd ::= SHOW ACCOUNTS */
-2, /* (6) cmd ::= SHOW USERS */
-2, /* (7) cmd ::= SHOW MODULES */
-2, /* (8) cmd ::= SHOW QUERIES */
-2, /* (9) cmd ::= SHOW CONNECTIONS */
-2, /* (10) cmd ::= SHOW STREAMS */
-2, /* (11) cmd ::= SHOW VARIABLES */
-2, /* (12) cmd ::= SHOW SCORES */
-2, /* (13) cmd ::= SHOW GRANTS */
-2, /* (14) cmd ::= SHOW VNODES */
-3, /* (15) cmd ::= SHOW VNODES IPTOKEN */
0, /* (16) dbPrefix ::= */
-2, /* (17) dbPrefix ::= ids DOT */
0, /* (18) cpxName ::= */
-2, /* (19) cpxName ::= DOT ids */
-5, /* (20) cmd ::= SHOW CREATE TABLE ids cpxName */
-5, /* (21) cmd ::= SHOW CREATE STABLE ids cpxName */
-4, /* (22) cmd ::= SHOW CREATE DATABASE ids */
-3, /* (23) cmd ::= SHOW dbPrefix TABLES */
-5, /* (24) cmd ::= SHOW dbPrefix TABLES LIKE ids */
-3, /* (25) cmd ::= SHOW dbPrefix STABLES */
-5, /* (26) cmd ::= SHOW dbPrefix STABLES LIKE ids */
-3, /* (27) cmd ::= SHOW dbPrefix VGROUPS */
-4, /* (28) cmd ::= SHOW dbPrefix VGROUPS ids */
-5, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */
-5, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */
-4, /* (31) cmd ::= DROP DATABASE ifexists ids */
-4, /* (32) cmd ::= DROP TOPIC ifexists ids */
-3, /* (33) cmd ::= DROP DNODE ids */
-3, /* (34) cmd ::= DROP USER ids */
-3, /* (35) cmd ::= DROP ACCOUNT ids */
-2, /* (36) cmd ::= USE ids */
-3, /* (37) cmd ::= DESCRIBE ids cpxName */
-5, /* (38) cmd ::= ALTER USER ids PASS ids */
-5, /* (39) cmd ::= ALTER USER ids PRIVILEGE ids */
-4, /* (40) cmd ::= ALTER DNODE ids ids */
-5, /* (41) cmd ::= ALTER DNODE ids ids ids */
-3, /* (42) cmd ::= ALTER LOCAL ids */
-4, /* (43) cmd ::= ALTER LOCAL ids ids */
-4, /* (44) cmd ::= ALTER DATABASE ids alter_db_optr */
-4, /* (45) cmd ::= ALTER TOPIC ids alter_topic_optr */
-4, /* (46) cmd ::= ALTER ACCOUNT ids acct_optr */
-6, /* (47) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
-1, /* (48) ids ::= ID */
-1, /* (49) ids ::= STRING */
-2, /* (50) ifexists ::= IF EXISTS */
0, /* (51) ifexists ::= */
-3, /* (52) ifnotexists ::= IF NOT EXISTS */
0, /* (53) ifnotexists ::= */
-3, /* (54) cmd ::= CREATE DNODE ids */
-6, /* (55) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
-5, /* (56) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
-5, /* (57) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
-5, /* (58) cmd ::= CREATE USER ids PASS ids */
0, /* (59) pps ::= */
-2, /* (60) pps ::= PPS INTEGER */
0, /* (61) tseries ::= */
-2, /* (62) tseries ::= TSERIES INTEGER */
0, /* (63) dbs ::= */
-2, /* (64) dbs ::= DBS INTEGER */
0, /* (65) streams ::= */
-2, /* (66) streams ::= STREAMS INTEGER */
0, /* (67) storage ::= */
-2, /* (68) storage ::= STORAGE INTEGER */
0, /* (69) qtime ::= */
-2, /* (70) qtime ::= QTIME INTEGER */
0, /* (71) users ::= */
-2, /* (72) users ::= USERS INTEGER */
0, /* (73) conns ::= */
-2, /* (74) conns ::= CONNS INTEGER */
0, /* (75) state ::= */
-2, /* (76) state ::= STATE ids */
-9, /* (77) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
-2, /* (78) keep ::= KEEP tagitemlist */
-2, /* (79) cache ::= CACHE INTEGER */
-2, /* (80) replica ::= REPLICA INTEGER */
-2, /* (81) quorum ::= QUORUM INTEGER */
-2, /* (82) days ::= DAYS INTEGER */
-2, /* (83) minrows ::= MINROWS INTEGER */
-2, /* (84) maxrows ::= MAXROWS INTEGER */
-2, /* (85) blocks ::= BLOCKS INTEGER */
-2, /* (86) ctime ::= CTIME INTEGER */
-2, /* (87) wal ::= WAL INTEGER */
-2, /* (88) fsync ::= FSYNC INTEGER */
-2, /* (89) comp ::= COMP INTEGER */
-2, /* (90) prec ::= PRECISION STRING */
-2, /* (91) update ::= UPDATE INTEGER */
-2, /* (92) cachelast ::= CACHELAST INTEGER */
-2, /* (93) partitions ::= PARTITIONS INTEGER */
0, /* (94) db_optr ::= */
-2, /* (95) db_optr ::= db_optr cache */
-2, /* (96) db_optr ::= db_optr replica */
-2, /* (97) db_optr ::= db_optr quorum */
-2, /* (98) db_optr ::= db_optr days */
-2, /* (99) db_optr ::= db_optr minrows */
-2, /* (100) db_optr ::= db_optr maxrows */
-2, /* (101) db_optr ::= db_optr blocks */
-2, /* (102) db_optr ::= db_optr ctime */
-2, /* (103) db_optr ::= db_optr wal */
-2, /* (104) db_optr ::= db_optr fsync */
-2, /* (105) db_optr ::= db_optr comp */
-2, /* (106) db_optr ::= db_optr prec */
-2, /* (107) db_optr ::= db_optr keep */
-2, /* (108) db_optr ::= db_optr update */
-2, /* (109) db_optr ::= db_optr cachelast */
-1, /* (110) topic_optr ::= db_optr */
-2, /* (111) topic_optr ::= topic_optr partitions */
0, /* (112) alter_db_optr ::= */
-2, /* (113) alter_db_optr ::= alter_db_optr replica */
-2, /* (114) alter_db_optr ::= alter_db_optr quorum */
-2, /* (115) alter_db_optr ::= alter_db_optr keep */
-2, /* (116) alter_db_optr ::= alter_db_optr blocks */
-2, /* (117) alter_db_optr ::= alter_db_optr comp */
-2, /* (118) alter_db_optr ::= alter_db_optr wal */
-2, /* (119) alter_db_optr ::= alter_db_optr fsync */
-2, /* (120) alter_db_optr ::= alter_db_optr update */
-2, /* (121) alter_db_optr ::= alter_db_optr cachelast */
-1, /* (122) alter_topic_optr ::= alter_db_optr */
-2, /* (123) alter_topic_optr ::= alter_topic_optr partitions */
-1, /* (124) typename ::= ids */
-4, /* (125) typename ::= ids LP signed RP */
-2, /* (126) typename ::= ids UNSIGNED */
-1, /* (127) signed ::= INTEGER */
-2, /* (128) signed ::= PLUS INTEGER */
-2, /* (129) signed ::= MINUS INTEGER */
-3, /* (130) cmd ::= CREATE TABLE create_table_args */
-3, /* (131) cmd ::= CREATE TABLE create_stable_args */
-3, /* (132) cmd ::= CREATE STABLE create_stable_args */
-3, /* (133) cmd ::= CREATE TABLE create_table_list */
-1, /* (134) create_table_list ::= create_from_stable */
-2, /* (135) create_table_list ::= create_table_list create_from_stable */
-6, /* (136) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
-10, /* (137) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
-10, /* (138) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
-13, /* (139) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
-3, /* (140) tagNamelist ::= tagNamelist COMMA ids */
-1, /* (141) tagNamelist ::= ids */
-5, /* (142) create_table_args ::= ifnotexists ids cpxName AS select */
-3, /* (143) columnlist ::= columnlist COMMA column */
-1, /* (144) columnlist ::= column */
-2, /* (145) column ::= ids typename */
-3, /* (146) tagitemlist ::= tagitemlist COMMA tagitem */
-1, /* (147) tagitemlist ::= tagitem */
-1, /* (148) tagitem ::= INTEGER */
-1, /* (149) tagitem ::= FLOAT */
-1, /* (150) tagitem ::= STRING */
-1, /* (151) tagitem ::= BOOL */
-1, /* (152) tagitem ::= NULL */
-2, /* (153) tagitem ::= MINUS INTEGER */
-2, /* (154) tagitem ::= MINUS FLOAT */
-2, /* (155) tagitem ::= PLUS INTEGER */
-2, /* (156) tagitem ::= PLUS FLOAT */
-13, /* (157) select ::= SELECT selcollist from where_opt interval_opt session_option fill_opt sliding_opt groupby_opt orderby_opt having_opt slimit_opt limit_opt */
-3, /* (158) select ::= LP select RP */
-1, /* (159) union ::= select */
-4, /* (160) union ::= union UNION ALL select */
-1, /* (161) cmd ::= union */
-2, /* (162) select ::= SELECT selcollist */
-2, /* (163) sclp ::= selcollist COMMA */
0, /* (164) sclp ::= */
-4, /* (165) selcollist ::= sclp distinct expr as */
-2, /* (166) selcollist ::= sclp STAR */
-2, /* (167) as ::= AS ids */
-1, /* (168) as ::= ids */
0, /* (169) as ::= */
-1, /* (170) distinct ::= DISTINCT */
0, /* (171) distinct ::= */
-2, /* (172) from ::= FROM tablelist */
-4, /* (173) from ::= FROM LP union RP */
-2, /* (174) tablelist ::= ids cpxName */
-3, /* (175) tablelist ::= ids cpxName ids */
-4, /* (176) tablelist ::= tablelist COMMA ids cpxName */
-5, /* (177) tablelist ::= tablelist COMMA ids cpxName ids */
-1, /* (178) tmvar ::= VARIABLE */
-4, /* (179) interval_opt ::= INTERVAL LP tmvar RP */
-6, /* (180) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */
0, /* (181) interval_opt ::= */
0, /* (182) session_option ::= */
-7, /* (183) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
0, /* (184) fill_opt ::= */
-6, /* (185) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
-4, /* (186) fill_opt ::= FILL LP ID RP */
-4, /* (187) sliding_opt ::= SLIDING LP tmvar RP */
0, /* (188) sliding_opt ::= */
0, /* (189) orderby_opt ::= */
-3, /* (190) orderby_opt ::= ORDER BY sortlist */
-4, /* (191) sortlist ::= sortlist COMMA item sortorder */
-2, /* (192) sortlist ::= item sortorder */
-2, /* (193) item ::= ids cpxName */
-1, /* (194) sortorder ::= ASC */
-1, /* (195) sortorder ::= DESC */
0, /* (196) sortorder ::= */
0, /* (197) groupby_opt ::= */
-3, /* (198) groupby_opt ::= GROUP BY grouplist */
-3, /* (199) grouplist ::= grouplist COMMA item */
-1, /* (200) grouplist ::= item */
0, /* (201) having_opt ::= */
-2, /* (202) having_opt ::= HAVING expr */
0, /* (203) limit_opt ::= */
-2, /* (204) limit_opt ::= LIMIT signed */
-4, /* (205) limit_opt ::= LIMIT signed OFFSET signed */
-4, /* (206) limit_opt ::= LIMIT signed COMMA signed */
0, /* (207) slimit_opt ::= */
-2, /* (208) slimit_opt ::= SLIMIT signed */
-4, /* (209) slimit_opt ::= SLIMIT signed SOFFSET signed */
-4, /* (210) slimit_opt ::= SLIMIT signed COMMA signed */
0, /* (211) where_opt ::= */
-2, /* (212) where_opt ::= WHERE expr */
-3, /* (213) expr ::= LP expr RP */
-1, /* (214) expr ::= ID */
-3, /* (215) expr ::= ID DOT ID */
-3, /* (216) expr ::= ID DOT STAR */
-1, /* (217) expr ::= INTEGER */
-2, /* (218) expr ::= MINUS INTEGER */
-2, /* (219) expr ::= PLUS INTEGER */
-1, /* (220) expr ::= FLOAT */
-2, /* (221) expr ::= MINUS FLOAT */
-2, /* (222) expr ::= PLUS FLOAT */
-1, /* (223) expr ::= STRING */
-1, /* (224) expr ::= NOW */
-1, /* (225) expr ::= VARIABLE */
-2, /* (226) expr ::= PLUS VARIABLE */
-2, /* (227) expr ::= MINUS VARIABLE */
-1, /* (228) expr ::= BOOL */
-1, /* (229) expr ::= NULL */
-4, /* (230) expr ::= ID LP exprlist RP */
-4, /* (231) expr ::= ID LP STAR RP */
-3, /* (232) expr ::= expr IS NULL */
-4, /* (233) expr ::= expr IS NOT NULL */
-3, /* (234) expr ::= expr LT expr */
-3, /* (235) expr ::= expr GT expr */
-3, /* (236) expr ::= expr LE expr */
-3, /* (237) expr ::= expr GE expr */
-3, /* (238) expr ::= expr NE expr */
-3, /* (239) expr ::= expr EQ expr */
-5, /* (240) expr ::= expr BETWEEN expr AND expr */
-3, /* (241) expr ::= expr AND expr */
-3, /* (242) expr ::= expr OR expr */
-3, /* (243) expr ::= expr PLUS expr */
-3, /* (244) expr ::= expr MINUS expr */
-3, /* (245) expr ::= expr STAR expr */
-3, /* (246) expr ::= expr SLASH expr */
-3, /* (247) expr ::= expr REM expr */
-3, /* (248) expr ::= expr LIKE expr */
-5, /* (249) expr ::= expr IN LP exprlist RP */
-3, /* (250) exprlist ::= exprlist COMMA expritem */
-1, /* (251) exprlist ::= expritem */
-1, /* (252) expritem ::= expr */
0, /* (253) expritem ::= */
-3, /* (254) cmd ::= RESET QUERY CACHE */
-3, /* (255) cmd ::= SYNCDB ids REPLICA */
-7, /* (256) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
-7, /* (257) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
-9, /* (258) cmd ::= ALTER TABLE ids cpxName ALTER COLUMN LENGTH ids INTEGER */
-7, /* (259) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
-7, /* (260) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
-8, /* (261) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
-9, /* (262) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
-7, /* (263) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
-7, /* (264) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
-7, /* (265) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
-7, /* (266) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
-8, /* (267) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
-3, /* (268) cmd ::= KILL CONNECTION INTEGER */
-5, /* (269) cmd ::= KILL STREAM INTEGER COLON INTEGER */
-5, /* (270) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
static void yy_accept(yyParser*); /* Forward Declaration */
......@@ -2039,30 +2333,34 @@ static void yy_accept(yyParser*); /* Forward Declaration */
** only called from one place, optimizing compilers will in-line it, which
** means that the extra parameters have no performance impact.
*/
static void yy_reduce(
static YYACTIONTYPE yy_reduce(
yyParser *yypParser, /* The parser */
unsigned int yyruleno, /* Number of the rule by which to reduce */
int yyLookahead, /* Lookahead token, or YYNOCODE if none */
ParseTOKENTYPE yyLookaheadToken /* Value of the lookahead token */
ParseCTX_PDECL /* %extra_context */
){
int yygoto; /* The next state */
int yyact; /* The next action */
YYACTIONTYPE yyact; /* The next action */
yyStackEntry *yymsp; /* The top of the parser's stack */
int yysize; /* Amount to pop the stack */
ParseARG_FETCH;
ParseARG_FETCH
(void)yyLookahead;
(void)yyLookaheadToken;
yymsp = yypParser->yytos;
#ifndef NDEBUG
if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){
yysize = yyRuleInfo[yyruleno].nrhs;
yysize = yyRuleInfoNRhs[yyruleno];
if( yysize ){
fprintf(yyTraceFILE, "%sReduce %d [%s], go to state %d.\n",
fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
yyTracePrompt,
yyruleno, yyRuleName[yyruleno], yymsp[yysize].stateno);
yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action",
yymsp[yysize].stateno);
}else{
fprintf(yyTraceFILE, "%sReduce %d [%s].\n",
yyTracePrompt, yyruleno, yyRuleName[yyruleno]);
fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n",
yyTracePrompt, yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action");
}
}
#endif /* NDEBUG */
......@@ -2070,7 +2368,7 @@ static void yy_reduce(
/* Check that the stack is large enough to grow by a single entry
** if the RHS of the rule is empty. This ensures that there is room
** enough on the stack to push the LHS value */
if( yyRuleInfo[yyruleno].nrhs==0 ){
if( yyRuleInfoNRhs[yyruleno]==0 ){
#ifdef YYTRACKMAXSTACKDEPTH
if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
yypParser->yyhwm++;
......@@ -2080,13 +2378,19 @@ static void yy_reduce(
#if YYSTACKDEPTH>0
if( yypParser->yytos>=yypParser->yystackEnd ){
yyStackOverflow(yypParser);
return;
/* The call to yyStackOverflow() above pops the stack until it is
** empty, causing the main parser loop to exit. So the return value
** is never used and does not matter. */
return 0;
}
#else
if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){
if( yyGrowStack(yypParser) ){
yyStackOverflow(yypParser);
return;
/* The call to yyStackOverflow() above pops the stack until it is
** empty, causing the main parser loop to exit. So the return value
** is never used and does not matter. */
return 0;
}
yymsp = yypParser->yytos;
}
......@@ -3010,14 +3314,27 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 258: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
case 258: /* cmd ::= ALTER TABLE ids cpxName ALTER COLUMN LENGTH ids INTEGER */
{
yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n;
toTSDBType(yymsp[-1].minor.yy0.type);
SArray* K = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1);
toTSDBType(yymsp[0].minor.yy0.type);
K = tVariantListAppendToken(K, &yymsp[0].minor.yy0, -1);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-6].minor.yy0, K, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 259: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy159, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 259: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
case 260: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3028,7 +3345,7 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 260: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
case 261: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
......@@ -3042,7 +3359,7 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 261: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
case 262: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n;
......@@ -3054,14 +3371,14 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 262: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
case 263: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy159, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 263: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
case 264: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3072,14 +3389,14 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 264: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
case 265: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy159, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 265: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
case 266: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3090,7 +3407,7 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 266: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
case 267: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
......@@ -3104,22 +3421,22 @@ static void yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 267: /* cmd ::= KILL CONNECTION INTEGER */
case 268: /* cmd ::= KILL CONNECTION INTEGER */
{setKillSql(pInfo, TSDB_SQL_KILL_CONNECTION, &yymsp[0].minor.yy0);}
break;
case 268: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */
case 269: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */
{yymsp[-2].minor.yy0.n += (yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setKillSql(pInfo, TSDB_SQL_KILL_STREAM, &yymsp[-2].minor.yy0);}
break;
case 269: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */
case 270: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */
{yymsp[-2].minor.yy0.n += (yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setKillSql(pInfo, TSDB_SQL_KILL_QUERY, &yymsp[-2].minor.yy0);}
break;
default:
break;
/********** End reduce actions ************************************************/
};
assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
yygoto = yyRuleInfo[yyruleno].lhs;
yysize = yyRuleInfo[yyruleno].nrhs;
assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) );
yygoto = yyRuleInfoLhs[yyruleno];
yysize = yyRuleInfoNRhs[yyruleno];
yyact = yy_find_reduce_action(yymsp[yysize].stateno,(YYCODETYPE)yygoto);
/* There are no SHIFTREDUCE actions on nonterminals because the table
......@@ -3134,6 +3451,7 @@ static void yy_reduce(
yymsp->stateno = (YYACTIONTYPE)yyact;
yymsp->major = (YYCODETYPE)yygoto;
yyTraceShift(yypParser, yyact, "... then shift");
return yyact;
}
/*
......@@ -3143,7 +3461,8 @@ static void yy_reduce(
static void yy_parse_failed(
yyParser *yypParser /* The parser */
){
ParseARG_FETCH;
ParseARG_FETCH
ParseCTX_FETCH
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt);
......@@ -3154,7 +3473,8 @@ static void yy_parse_failed(
** parser fails */
/************ Begin %parse_failure code ***************************************/
/************ End %parse_failure code *****************************************/
ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
ParseARG_STORE /* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
}
#endif /* YYNOERRORRECOVERY */
......@@ -3166,7 +3486,8 @@ static void yy_syntax_error(
int yymajor, /* The major type of the error token */
ParseTOKENTYPE yyminor /* The minor type of the error token */
){
ParseARG_FETCH;
ParseARG_FETCH
ParseCTX_FETCH
#define TOKEN yyminor
/************ Begin %syntax_error code ****************************************/
......@@ -3192,7 +3513,8 @@ static void yy_syntax_error(
assert(len <= outputBufLen);
/************ End %syntax_error code ******************************************/
ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
ParseARG_STORE /* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
}
/*
......@@ -3201,7 +3523,8 @@ static void yy_syntax_error(
static void yy_accept(
yyParser *yypParser /* The parser */
){
ParseARG_FETCH;
ParseARG_FETCH
ParseCTX_FETCH
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt);
......@@ -3216,7 +3539,8 @@ static void yy_accept(
/*********** Begin %parse_accept code *****************************************/
/*********** End %parse_accept code *******************************************/
ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
ParseARG_STORE /* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
}
/* The main parser program.
......@@ -3245,45 +3569,47 @@ void Parse(
ParseARG_PDECL /* Optional %extra_argument parameter */
){
YYMINORTYPE yyminorunion;
unsigned int yyact; /* The parser action. */
YYACTIONTYPE yyact; /* The parser action. */
#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
int yyendofinput; /* True if we are at the end of input */
#endif
#ifdef YYERRORSYMBOL
int yyerrorhit = 0; /* True if yymajor has invoked an error */
#endif
yyParser *yypParser; /* The parser */
yyParser *yypParser = (yyParser*)yyp; /* The parser */
ParseCTX_FETCH
ParseARG_STORE
yypParser = (yyParser*)yyp;
assert( yypParser->yytos!=0 );
#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
yyendofinput = (yymajor==0);
#endif
ParseARG_STORE;
yyact = yypParser->yytos->stateno;
#ifndef NDEBUG
if( yyTraceFILE ){
int stateno = yypParser->yytos->stateno;
if( stateno < YY_MIN_REDUCE ){
if( yyact < YY_MIN_REDUCE ){
fprintf(yyTraceFILE,"%sInput '%s' in state %d\n",
yyTracePrompt,yyTokenName[yymajor],stateno);
yyTracePrompt,yyTokenName[yymajor],yyact);
}else{
fprintf(yyTraceFILE,"%sInput '%s' with pending reduce %d\n",
yyTracePrompt,yyTokenName[yymajor],stateno-YY_MIN_REDUCE);
yyTracePrompt,yyTokenName[yymajor],yyact-YY_MIN_REDUCE);
}
}
#endif
do{
yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor);
assert( yyact==yypParser->yytos->stateno );
yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact);
if( yyact >= YY_MIN_REDUCE ){
yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,yyminor);
yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,
yyminor ParseCTX_PARAM);
}else if( yyact <= YY_MAX_SHIFTREDUCE ){
yy_shift(yypParser,yyact,yymajor,yyminor);
yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor);
#ifndef YYNOERRORRECOVERY
yypParser->yyerrcnt--;
#endif
yymajor = YYNOCODE;
break;
}else if( yyact==YY_ACCEPT_ACTION ){
yypParser->yytos--;
yy_accept(yypParser);
......@@ -3334,10 +3660,9 @@ void Parse(
yymajor = YYNOCODE;
}else{
while( yypParser->yytos >= yypParser->yystack
&& yymx != YYERRORSYMBOL
&& (yyact = yy_find_reduce_action(
yypParser->yytos->stateno,
YYERRORSYMBOL)) >= YY_MIN_REDUCE
YYERRORSYMBOL)) > YY_MAX_SHIFTREDUCE
){
yy_pop_parser_stack(yypParser);
}
......@@ -3354,6 +3679,8 @@ void Parse(
}
yypParser->yyerrcnt = 3;
yyerrorhit = 1;
if( yymajor==YYNOCODE ) break;
yyact = yypParser->yytos->stateno;
#elif defined(YYNOERRORRECOVERY)
/* If the YYNOERRORRECOVERY macro is defined, then do not attempt to
** do any kind of error recovery. Instead, simply invoke the syntax
......@@ -3364,8 +3691,7 @@ void Parse(
*/
yy_syntax_error(yypParser,yymajor, yyminor);
yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
yymajor = YYNOCODE;
break;
#else /* YYERRORSYMBOL is not defined */
/* This is what we do if the grammar does not define ERROR:
**
......@@ -3387,10 +3713,10 @@ void Parse(
yypParser->yyerrcnt = -1;
#endif
}
yymajor = YYNOCODE;
break;
#endif
}
}while( yymajor!=YYNOCODE && yypParser->yytos>yypParser->yystack );
}while( yypParser->yytos>yypParser->yystack );
#ifndef NDEBUG
if( yyTraceFILE ){
yyStackEntry *i;
......@@ -3405,3 +3731,17 @@ void Parse(
#endif
return;
}
/*
** Return the fallback token corresponding to canonical token iToken, or
** 0 if iToken has no fallback.
*/
int ParseFallback(int iToken){
#ifdef YYFALLBACK
assert( iToken<(int)(sizeof(yyFallback)/sizeof(yyFallback[0])) );
return yyFallback[iToken];
#else
(void)iToken;
return 0;
#endif
}
......@@ -217,7 +217,8 @@ static SKeyword keywordTable[] = {
{"DISTINCT", TK_DISTINCT},
{"PARTITIONS", TK_PARTITIONS},
{"TOPIC", TK_TOPIC},
{"TOPICS", TK_TOPICS}
{"TOPICS", TK_TOPICS},
{"LENGTH", TK_LENGTH}
};
static const char isIdChar[] = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册