未验证 提交 f402a332 编写于 作者: D dapan1121 提交者: GitHub

Merge pull request #13368 from taosdata/feature/qnode

fix: fix parser stack overflow issue
...@@ -15,11 +15,15 @@ ...@@ -15,11 +15,15 @@
#include <assert.h> #include <assert.h>
#include <stdbool.h> #include <stdbool.h>
#define ALLOW_FORBID_FUNC
#include "functionMgt.h" #include "functionMgt.h"
#include "nodes.h" #include "nodes.h"
#include "parToken.h" #include "parToken.h"
#include "ttokendef.h" #include "ttokendef.h"
#include "parAst.h" #include "parAst.h"
#define YYSTACKDEPTH 0
} }
%syntax_error { %syntax_error {
......
...@@ -76,28 +76,8 @@ static int32_t setValueByBindParam(SValueNode* pVal, TAOS_MULTI_BIND* pParam) { ...@@ -76,28 +76,8 @@ static int32_t setValueByBindParam(SValueNode* pVal, TAOS_MULTI_BIND* pParam) {
int32_t inputSize = (NULL != pParam->length ? *(pParam->length) : tDataTypes[pParam->buffer_type].bytes); int32_t inputSize = (NULL != pParam->length ? *(pParam->length) : tDataTypes[pParam->buffer_type].bytes);
pVal->node.resType.type = pParam->buffer_type; pVal->node.resType.type = pParam->buffer_type;
pVal->node.resType.bytes = inputSize; pVal->node.resType.bytes = inputSize;
switch (pParam->buffer_type) { switch (pParam->buffer_type) {
case TSDB_DATA_TYPE_BOOL:
pVal->datum.b = *((bool*)pParam->buffer);
break;
case TSDB_DATA_TYPE_TINYINT:
pVal->datum.i = *((int8_t*)pParam->buffer);
break;
case TSDB_DATA_TYPE_SMALLINT:
pVal->datum.i = *((int16_t*)pParam->buffer);
break;
case TSDB_DATA_TYPE_INT:
pVal->datum.i = *((int32_t*)pParam->buffer);
break;
case TSDB_DATA_TYPE_BIGINT:
pVal->datum.i = *((int64_t*)pParam->buffer);
break;
case TSDB_DATA_TYPE_FLOAT:
pVal->datum.d = *((float*)pParam->buffer);
break;
case TSDB_DATA_TYPE_DOUBLE:
pVal->datum.d = *((double*)pParam->buffer);
break;
case TSDB_DATA_TYPE_VARCHAR: case TSDB_DATA_TYPE_VARCHAR:
case TSDB_DATA_TYPE_VARBINARY: case TSDB_DATA_TYPE_VARBINARY:
pVal->datum.p = taosMemoryCalloc(1, pVal->node.resType.bytes + VARSTR_HEADER_SIZE + 1); pVal->datum.p = taosMemoryCalloc(1, pVal->node.resType.bytes + VARSTR_HEADER_SIZE + 1);
...@@ -124,28 +104,13 @@ static int32_t setValueByBindParam(SValueNode* pVal, TAOS_MULTI_BIND* pParam) { ...@@ -124,28 +104,13 @@ static int32_t setValueByBindParam(SValueNode* pVal, TAOS_MULTI_BIND* pParam) {
pVal->node.resType.bytes = output + VARSTR_HEADER_SIZE; pVal->node.resType.bytes = output + VARSTR_HEADER_SIZE;
break; break;
} }
case TSDB_DATA_TYPE_TIMESTAMP: default: {
pVal->datum.i = *((int64_t*)pParam->buffer); int32_t code = nodesSetValueNodeValue(pVal, pParam->buffer);
break; if (code) {
case TSDB_DATA_TYPE_UTINYINT: return code;
pVal->datum.u = *((uint8_t*)pParam->buffer); }
break;
case TSDB_DATA_TYPE_USMALLINT:
pVal->datum.u = *((uint16_t*)pParam->buffer);
break;
case TSDB_DATA_TYPE_UINT:
pVal->datum.u = *((uint32_t*)pParam->buffer);
break;
case TSDB_DATA_TYPE_UBIGINT:
pVal->datum.u = *((uint64_t*)pParam->buffer);
break;
case TSDB_DATA_TYPE_JSON:
case TSDB_DATA_TYPE_DECIMAL:
case TSDB_DATA_TYPE_BLOB:
case TSDB_DATA_TYPE_MEDIUMBLOB:
// todo
default:
break; break;
}
} }
pVal->translate = true; pVal->translate = true;
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
......
...@@ -32,11 +32,15 @@ ...@@ -32,11 +32,15 @@
#include <assert.h> #include <assert.h>
#include <stdbool.h> #include <stdbool.h>
#define ALLOW_FORBID_FUNC
#include "functionMgt.h" #include "functionMgt.h"
#include "nodes.h" #include "nodes.h"
#include "parToken.h" #include "parToken.h"
#include "ttokendef.h" #include "ttokendef.h"
#include "parAst.h" #include "parAst.h"
#define YYSTACKDEPTH 0
/**************** End of %include directives **********************************/ /**************** End of %include directives **********************************/
/* These constants specify the various numeric values for terminal symbols /* These constants specify the various numeric values for terminal symbols
** in a format understandable to "makeheaders". This section is blank unless ** in a format understandable to "makeheaders". This section is blank unless
...@@ -136,6 +140,7 @@ typedef union { ...@@ -136,6 +140,7 @@ typedef union {
#define YYFALLBACK 1 #define YYFALLBACK 1
#define YYNSTATE 612 #define YYNSTATE 612
#define YYNRULE 451 #define YYNRULE 451
#define YYNRULE_WITH_ACTION 451
#define YYNTOKEN 237 #define YYNTOKEN 237
#define YY_MAX_SHIFT 611 #define YY_MAX_SHIFT 611
#define YY_MIN_SHIFTREDUCE 898 #define YY_MIN_SHIFTREDUCE 898
...@@ -640,7 +645,31 @@ static const YYCODETYPE yy_lookahead[] = { ...@@ -640,7 +645,31 @@ static const YYCODETYPE yy_lookahead[] = {
/* 2090 */ 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, /* 2090 */ 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
/* 2100 */ 328, 329, 330, 357, 332, 357, 357, 335, 357, 357, /* 2100 */ 328, 329, 330, 357, 332, 357, 357, 335, 357, 357,
/* 2110 */ 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, /* 2110 */ 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
/* 2120 */ 348, 357, 357, 357, 352, /* 2120 */ 348, 357, 357, 357, 352, 237, 237, 237, 237, 237,
/* 2130 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2140 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2150 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2160 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2170 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2180 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2190 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2200 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2210 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2220 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2230 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2240 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2250 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2260 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2270 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2280 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2290 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2300 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2310 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2320 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2330 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2340 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2350 */ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
/* 2360 */ 237, 237,
}; };
#define YY_SHIFT_COUNT (611) #define YY_SHIFT_COUNT (611)
#define YY_SHIFT_MIN (0) #define YY_SHIFT_MIN (0)
...@@ -2382,15 +2411,18 @@ static YYACTIONTYPE yy_find_shift_action( ...@@ -2382,15 +2411,18 @@ static YYACTIONTYPE yy_find_shift_action(
do{ do{
i = yy_shift_ofst[stateno]; i = yy_shift_ofst[stateno];
assert( i>=0 ); assert( i>=0 );
/* assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); */ assert( i<=YY_ACTTAB_COUNT );
assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD );
assert( iLookAhead!=YYNOCODE ); assert( iLookAhead!=YYNOCODE );
assert( iLookAhead < YYNTOKEN ); assert( iLookAhead < YYNTOKEN );
i += iLookAhead; i += iLookAhead;
if( i>=YY_NLOOKAHEAD || yy_lookahead[i]!=iLookAhead ){ assert( i<(int)YY_NLOOKAHEAD );
if( yy_lookahead[i]!=iLookAhead ){
#ifdef YYFALLBACK #ifdef YYFALLBACK
YYCODETYPE iFallback; /* Fallback token */ YYCODETYPE iFallback; /* Fallback token */
if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) assert( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) );
&& (iFallback = yyFallback[iLookAhead])!=0 ){ iFallback = yyFallback[iLookAhead];
if( iFallback!=0 ){
#ifndef NDEBUG #ifndef NDEBUG
if( yyTraceFILE ){ if( yyTraceFILE ){
fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n", fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
...@@ -2405,16 +2437,8 @@ static YYACTIONTYPE yy_find_shift_action( ...@@ -2405,16 +2437,8 @@ static YYACTIONTYPE yy_find_shift_action(
#ifdef YYWILDCARD #ifdef YYWILDCARD
{ {
int j = i - iLookAhead + YYWILDCARD; int j = i - iLookAhead + YYWILDCARD;
if( assert( j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) );
#if YY_SHIFT_MIN+YYWILDCARD<0 if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){
j>=0 &&
#endif
#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
j<YY_ACTTAB_COUNT &&
#endif
j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) &&
yy_lookahead[j]==YYWILDCARD && iLookAhead>0
){
#ifndef NDEBUG #ifndef NDEBUG
if( yyTraceFILE ){ if( yyTraceFILE ){
fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
...@@ -2428,6 +2452,7 @@ static YYACTIONTYPE yy_find_shift_action( ...@@ -2428,6 +2452,7 @@ static YYACTIONTYPE yy_find_shift_action(
#endif /* YYWILDCARD */ #endif /* YYWILDCARD */
return yy_default[stateno]; return yy_default[stateno];
}else{ }else{
assert( i>=0 && i<sizeof(yy_action)/sizeof(yy_action[0]) );
return yy_action[i]; return yy_action[i];
} }
}while(1); }while(1);
...@@ -2546,464 +2571,916 @@ static void yy_shift( ...@@ -2546,464 +2571,916 @@ static void yy_shift(
yyTraceShift(yypParser, yyNewState, "Shift"); yyTraceShift(yypParser, yyNewState, "Shift");
} }
/* The following table contains information about every rule that /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
** is used during the reduce. ** of that rule */
*/ static const YYCODETYPE yyRuleInfoLhs[] = {
static const struct { 237, /* (0) cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */
YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ 237, /* (1) cmd ::= ALTER ACCOUNT NK_ID alter_account_options */
signed char nrhs; /* Negative of the number of RHS symbols in the rule */ 238, /* (2) account_options ::= */
} yyRuleInfo[] = { 238, /* (3) account_options ::= account_options PPS literal */
{ 237, -6 }, /* (0) cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ 238, /* (4) account_options ::= account_options TSERIES literal */
{ 237, -4 }, /* (1) cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ 238, /* (5) account_options ::= account_options STORAGE literal */
{ 238, 0 }, /* (2) account_options ::= */ 238, /* (6) account_options ::= account_options STREAMS literal */
{ 238, -3 }, /* (3) account_options ::= account_options PPS literal */ 238, /* (7) account_options ::= account_options QTIME literal */
{ 238, -3 }, /* (4) account_options ::= account_options TSERIES literal */ 238, /* (8) account_options ::= account_options DBS literal */
{ 238, -3 }, /* (5) account_options ::= account_options STORAGE literal */ 238, /* (9) account_options ::= account_options USERS literal */
{ 238, -3 }, /* (6) account_options ::= account_options STREAMS literal */ 238, /* (10) account_options ::= account_options CONNS literal */
{ 238, -3 }, /* (7) account_options ::= account_options QTIME literal */ 238, /* (11) account_options ::= account_options STATE literal */
{ 238, -3 }, /* (8) account_options ::= account_options DBS literal */ 239, /* (12) alter_account_options ::= alter_account_option */
{ 238, -3 }, /* (9) account_options ::= account_options USERS literal */ 239, /* (13) alter_account_options ::= alter_account_options alter_account_option */
{ 238, -3 }, /* (10) account_options ::= account_options CONNS literal */ 241, /* (14) alter_account_option ::= PASS literal */
{ 238, -3 }, /* (11) account_options ::= account_options STATE literal */ 241, /* (15) alter_account_option ::= PPS literal */
{ 239, -1 }, /* (12) alter_account_options ::= alter_account_option */ 241, /* (16) alter_account_option ::= TSERIES literal */
{ 239, -2 }, /* (13) alter_account_options ::= alter_account_options alter_account_option */ 241, /* (17) alter_account_option ::= STORAGE literal */
{ 241, -2 }, /* (14) alter_account_option ::= PASS literal */ 241, /* (18) alter_account_option ::= STREAMS literal */
{ 241, -2 }, /* (15) alter_account_option ::= PPS literal */ 241, /* (19) alter_account_option ::= QTIME literal */
{ 241, -2 }, /* (16) alter_account_option ::= TSERIES literal */ 241, /* (20) alter_account_option ::= DBS literal */
{ 241, -2 }, /* (17) alter_account_option ::= STORAGE literal */ 241, /* (21) alter_account_option ::= USERS literal */
{ 241, -2 }, /* (18) alter_account_option ::= STREAMS literal */ 241, /* (22) alter_account_option ::= CONNS literal */
{ 241, -2 }, /* (19) alter_account_option ::= QTIME literal */ 241, /* (23) alter_account_option ::= STATE literal */
{ 241, -2 }, /* (20) alter_account_option ::= DBS literal */ 237, /* (24) cmd ::= CREATE USER user_name PASS NK_STRING */
{ 241, -2 }, /* (21) alter_account_option ::= USERS literal */ 237, /* (25) cmd ::= ALTER USER user_name PASS NK_STRING */
{ 241, -2 }, /* (22) alter_account_option ::= CONNS literal */ 237, /* (26) cmd ::= ALTER USER user_name PRIVILEGE NK_STRING */
{ 241, -2 }, /* (23) alter_account_option ::= STATE literal */ 237, /* (27) cmd ::= DROP USER user_name */
{ 237, -5 }, /* (24) cmd ::= CREATE USER user_name PASS NK_STRING */ 237, /* (28) cmd ::= GRANT privileges ON priv_level TO user_name */
{ 237, -5 }, /* (25) cmd ::= ALTER USER user_name PASS NK_STRING */ 237, /* (29) cmd ::= REVOKE privileges ON priv_level FROM user_name */
{ 237, -5 }, /* (26) cmd ::= ALTER USER user_name PRIVILEGE NK_STRING */ 243, /* (30) privileges ::= ALL */
{ 237, -3 }, /* (27) cmd ::= DROP USER user_name */ 243, /* (31) privileges ::= priv_type_list */
{ 237, -6 }, /* (28) cmd ::= GRANT privileges ON priv_level TO user_name */ 245, /* (32) priv_type_list ::= priv_type */
{ 237, -6 }, /* (29) cmd ::= REVOKE privileges ON priv_level FROM user_name */ 245, /* (33) priv_type_list ::= priv_type_list NK_COMMA priv_type */
{ 243, -1 }, /* (30) privileges ::= ALL */ 246, /* (34) priv_type ::= READ */
{ 243, -1 }, /* (31) privileges ::= priv_type_list */ 246, /* (35) priv_type ::= WRITE */
{ 245, -1 }, /* (32) priv_type_list ::= priv_type */ 244, /* (36) priv_level ::= NK_STAR NK_DOT NK_STAR */
{ 245, -3 }, /* (33) priv_type_list ::= priv_type_list NK_COMMA priv_type */ 244, /* (37) priv_level ::= db_name NK_DOT NK_STAR */
{ 246, -1 }, /* (34) priv_type ::= READ */ 237, /* (38) cmd ::= CREATE DNODE dnode_endpoint */
{ 246, -1 }, /* (35) priv_type ::= WRITE */ 237, /* (39) cmd ::= CREATE DNODE dnode_host_name PORT NK_INTEGER */
{ 244, -3 }, /* (36) priv_level ::= NK_STAR NK_DOT NK_STAR */ 237, /* (40) cmd ::= DROP DNODE NK_INTEGER */
{ 244, -3 }, /* (37) priv_level ::= db_name NK_DOT NK_STAR */ 237, /* (41) cmd ::= DROP DNODE dnode_endpoint */
{ 237, -3 }, /* (38) cmd ::= CREATE DNODE dnode_endpoint */ 237, /* (42) cmd ::= ALTER DNODE NK_INTEGER NK_STRING */
{ 237, -5 }, /* (39) cmd ::= CREATE DNODE dnode_host_name PORT NK_INTEGER */ 237, /* (43) cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */
{ 237, -3 }, /* (40) cmd ::= DROP DNODE NK_INTEGER */ 237, /* (44) cmd ::= ALTER ALL DNODES NK_STRING */
{ 237, -3 }, /* (41) cmd ::= DROP DNODE dnode_endpoint */ 237, /* (45) cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */
{ 237, -4 }, /* (42) cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ 248, /* (46) dnode_endpoint ::= NK_STRING */
{ 237, -5 }, /* (43) cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ 249, /* (47) dnode_host_name ::= NK_ID */
{ 237, -4 }, /* (44) cmd ::= ALTER ALL DNODES NK_STRING */ 249, /* (48) dnode_host_name ::= NK_IPTOKEN */
{ 237, -5 }, /* (45) cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ 237, /* (49) cmd ::= ALTER LOCAL NK_STRING */
{ 248, -1 }, /* (46) dnode_endpoint ::= NK_STRING */ 237, /* (50) cmd ::= ALTER LOCAL NK_STRING NK_STRING */
{ 249, -1 }, /* (47) dnode_host_name ::= NK_ID */ 237, /* (51) cmd ::= CREATE QNODE ON DNODE NK_INTEGER */
{ 249, -1 }, /* (48) dnode_host_name ::= NK_IPTOKEN */ 237, /* (52) cmd ::= DROP QNODE ON DNODE NK_INTEGER */
{ 237, -3 }, /* (49) cmd ::= ALTER LOCAL NK_STRING */ 237, /* (53) cmd ::= CREATE BNODE ON DNODE NK_INTEGER */
{ 237, -4 }, /* (50) cmd ::= ALTER LOCAL NK_STRING NK_STRING */ 237, /* (54) cmd ::= DROP BNODE ON DNODE NK_INTEGER */
{ 237, -5 }, /* (51) cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ 237, /* (55) cmd ::= CREATE SNODE ON DNODE NK_INTEGER */
{ 237, -5 }, /* (52) cmd ::= DROP QNODE ON DNODE NK_INTEGER */ 237, /* (56) cmd ::= DROP SNODE ON DNODE NK_INTEGER */
{ 237, -5 }, /* (53) cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ 237, /* (57) cmd ::= CREATE MNODE ON DNODE NK_INTEGER */
{ 237, -5 }, /* (54) cmd ::= DROP BNODE ON DNODE NK_INTEGER */ 237, /* (58) cmd ::= DROP MNODE ON DNODE NK_INTEGER */
{ 237, -5 }, /* (55) cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ 237, /* (59) cmd ::= CREATE DATABASE not_exists_opt db_name db_options */
{ 237, -5 }, /* (56) cmd ::= DROP SNODE ON DNODE NK_INTEGER */ 237, /* (60) cmd ::= DROP DATABASE exists_opt db_name */
{ 237, -5 }, /* (57) cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ 237, /* (61) cmd ::= USE db_name */
{ 237, -5 }, /* (58) cmd ::= DROP MNODE ON DNODE NK_INTEGER */ 237, /* (62) cmd ::= ALTER DATABASE db_name alter_db_options */
{ 237, -5 }, /* (59) cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ 250, /* (63) not_exists_opt ::= IF NOT EXISTS */
{ 237, -4 }, /* (60) cmd ::= DROP DATABASE exists_opt db_name */ 250, /* (64) not_exists_opt ::= */
{ 237, -2 }, /* (61) cmd ::= USE db_name */ 252, /* (65) exists_opt ::= IF EXISTS */
{ 237, -4 }, /* (62) cmd ::= ALTER DATABASE db_name alter_db_options */ 252, /* (66) exists_opt ::= */
{ 250, -3 }, /* (63) not_exists_opt ::= IF NOT EXISTS */ 251, /* (67) db_options ::= */
{ 250, 0 }, /* (64) not_exists_opt ::= */ 251, /* (68) db_options ::= db_options BUFFER NK_INTEGER */
{ 252, -2 }, /* (65) exists_opt ::= IF EXISTS */ 251, /* (69) db_options ::= db_options CACHELAST NK_INTEGER */
{ 252, 0 }, /* (66) exists_opt ::= */ 251, /* (70) db_options ::= db_options COMP NK_INTEGER */
{ 251, 0 }, /* (67) db_options ::= */ 251, /* (71) db_options ::= db_options DAYS NK_INTEGER */
{ 251, -3 }, /* (68) db_options ::= db_options BUFFER NK_INTEGER */ 251, /* (72) db_options ::= db_options DAYS NK_VARIABLE */
{ 251, -3 }, /* (69) db_options ::= db_options CACHELAST NK_INTEGER */ 251, /* (73) db_options ::= db_options FSYNC NK_INTEGER */
{ 251, -3 }, /* (70) db_options ::= db_options COMP NK_INTEGER */ 251, /* (74) db_options ::= db_options MAXROWS NK_INTEGER */
{ 251, -3 }, /* (71) db_options ::= db_options DAYS NK_INTEGER */ 251, /* (75) db_options ::= db_options MINROWS NK_INTEGER */
{ 251, -3 }, /* (72) db_options ::= db_options DAYS NK_VARIABLE */ 251, /* (76) db_options ::= db_options KEEP integer_list */
{ 251, -3 }, /* (73) db_options ::= db_options FSYNC NK_INTEGER */ 251, /* (77) db_options ::= db_options KEEP variable_list */
{ 251, -3 }, /* (74) db_options ::= db_options MAXROWS NK_INTEGER */ 251, /* (78) db_options ::= db_options PAGES NK_INTEGER */
{ 251, -3 }, /* (75) db_options ::= db_options MINROWS NK_INTEGER */ 251, /* (79) db_options ::= db_options PAGESIZE NK_INTEGER */
{ 251, -3 }, /* (76) db_options ::= db_options KEEP integer_list */ 251, /* (80) db_options ::= db_options PRECISION NK_STRING */
{ 251, -3 }, /* (77) db_options ::= db_options KEEP variable_list */ 251, /* (81) db_options ::= db_options REPLICA NK_INTEGER */
{ 251, -3 }, /* (78) db_options ::= db_options PAGES NK_INTEGER */ 251, /* (82) db_options ::= db_options STRICT NK_INTEGER */
{ 251, -3 }, /* (79) db_options ::= db_options PAGESIZE NK_INTEGER */ 251, /* (83) db_options ::= db_options WAL NK_INTEGER */
{ 251, -3 }, /* (80) db_options ::= db_options PRECISION NK_STRING */ 251, /* (84) db_options ::= db_options VGROUPS NK_INTEGER */
{ 251, -3 }, /* (81) db_options ::= db_options REPLICA NK_INTEGER */ 251, /* (85) db_options ::= db_options SINGLE_STABLE NK_INTEGER */
{ 251, -3 }, /* (82) db_options ::= db_options STRICT NK_INTEGER */ 251, /* (86) db_options ::= db_options RETENTIONS retention_list */
{ 251, -3 }, /* (83) db_options ::= db_options WAL NK_INTEGER */ 251, /* (87) db_options ::= db_options SCHEMALESS NK_INTEGER */
{ 251, -3 }, /* (84) db_options ::= db_options VGROUPS NK_INTEGER */ 253, /* (88) alter_db_options ::= alter_db_option */
{ 251, -3 }, /* (85) db_options ::= db_options SINGLE_STABLE NK_INTEGER */ 253, /* (89) alter_db_options ::= alter_db_options alter_db_option */
{ 251, -3 }, /* (86) db_options ::= db_options RETENTIONS retention_list */ 257, /* (90) alter_db_option ::= BUFFER NK_INTEGER */
{ 251, -3 }, /* (87) db_options ::= db_options SCHEMALESS NK_INTEGER */ 257, /* (91) alter_db_option ::= CACHELAST NK_INTEGER */
{ 253, -1 }, /* (88) alter_db_options ::= alter_db_option */ 257, /* (92) alter_db_option ::= FSYNC NK_INTEGER */
{ 253, -2 }, /* (89) alter_db_options ::= alter_db_options alter_db_option */ 257, /* (93) alter_db_option ::= KEEP integer_list */
{ 257, -2 }, /* (90) alter_db_option ::= BUFFER NK_INTEGER */ 257, /* (94) alter_db_option ::= KEEP variable_list */
{ 257, -2 }, /* (91) alter_db_option ::= CACHELAST NK_INTEGER */ 257, /* (95) alter_db_option ::= PAGES NK_INTEGER */
{ 257, -2 }, /* (92) alter_db_option ::= FSYNC NK_INTEGER */ 257, /* (96) alter_db_option ::= REPLICA NK_INTEGER */
{ 257, -2 }, /* (93) alter_db_option ::= KEEP integer_list */ 257, /* (97) alter_db_option ::= STRICT NK_INTEGER */
{ 257, -2 }, /* (94) alter_db_option ::= KEEP variable_list */ 257, /* (98) alter_db_option ::= WAL NK_INTEGER */
{ 257, -2 }, /* (95) alter_db_option ::= PAGES NK_INTEGER */ 254, /* (99) integer_list ::= NK_INTEGER */
{ 257, -2 }, /* (96) alter_db_option ::= REPLICA NK_INTEGER */ 254, /* (100) integer_list ::= integer_list NK_COMMA NK_INTEGER */
{ 257, -2 }, /* (97) alter_db_option ::= STRICT NK_INTEGER */ 255, /* (101) variable_list ::= NK_VARIABLE */
{ 257, -2 }, /* (98) alter_db_option ::= WAL NK_INTEGER */ 255, /* (102) variable_list ::= variable_list NK_COMMA NK_VARIABLE */
{ 254, -1 }, /* (99) integer_list ::= NK_INTEGER */ 256, /* (103) retention_list ::= retention */
{ 254, -3 }, /* (100) integer_list ::= integer_list NK_COMMA NK_INTEGER */ 256, /* (104) retention_list ::= retention_list NK_COMMA retention */
{ 255, -1 }, /* (101) variable_list ::= NK_VARIABLE */ 258, /* (105) retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */
{ 255, -3 }, /* (102) variable_list ::= variable_list NK_COMMA NK_VARIABLE */ 237, /* (106) cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */
{ 256, -1 }, /* (103) retention_list ::= retention */ 237, /* (107) cmd ::= CREATE TABLE multi_create_clause */
{ 256, -3 }, /* (104) retention_list ::= retention_list NK_COMMA retention */ 237, /* (108) cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */
{ 258, -3 }, /* (105) retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ 237, /* (109) cmd ::= DROP TABLE multi_drop_clause */
{ 237, -9 }, /* (106) cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ 237, /* (110) cmd ::= DROP STABLE exists_opt full_table_name */
{ 237, -3 }, /* (107) cmd ::= CREATE TABLE multi_create_clause */ 237, /* (111) cmd ::= ALTER TABLE alter_table_clause */
{ 237, -9 }, /* (108) cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ 237, /* (112) cmd ::= ALTER STABLE alter_table_clause */
{ 237, -3 }, /* (109) cmd ::= DROP TABLE multi_drop_clause */ 266, /* (113) alter_table_clause ::= full_table_name alter_table_options */
{ 237, -4 }, /* (110) cmd ::= DROP STABLE exists_opt full_table_name */ 266, /* (114) alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */
{ 237, -3 }, /* (111) cmd ::= ALTER TABLE alter_table_clause */ 266, /* (115) alter_table_clause ::= full_table_name DROP COLUMN column_name */
{ 237, -3 }, /* (112) cmd ::= ALTER STABLE alter_table_clause */ 266, /* (116) alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */
{ 266, -2 }, /* (113) alter_table_clause ::= full_table_name alter_table_options */ 266, /* (117) alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */
{ 266, -5 }, /* (114) alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ 266, /* (118) alter_table_clause ::= full_table_name ADD TAG column_name type_name */
{ 266, -4 }, /* (115) alter_table_clause ::= full_table_name DROP COLUMN column_name */ 266, /* (119) alter_table_clause ::= full_table_name DROP TAG column_name */
{ 266, -5 }, /* (116) alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ 266, /* (120) alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */
{ 266, -5 }, /* (117) alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ 266, /* (121) alter_table_clause ::= full_table_name RENAME TAG column_name column_name */
{ 266, -5 }, /* (118) alter_table_clause ::= full_table_name ADD TAG column_name type_name */ 266, /* (122) alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */
{ 266, -4 }, /* (119) alter_table_clause ::= full_table_name DROP TAG column_name */ 263, /* (123) multi_create_clause ::= create_subtable_clause */
{ 266, -5 }, /* (120) alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ 263, /* (124) multi_create_clause ::= multi_create_clause create_subtable_clause */
{ 266, -5 }, /* (121) alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ 271, /* (125) create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_tags_opt TAGS NK_LP literal_list NK_RP table_options */
{ 266, -6 }, /* (122) alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ 265, /* (126) multi_drop_clause ::= drop_table_clause */
{ 263, -1 }, /* (123) multi_create_clause ::= create_subtable_clause */ 265, /* (127) multi_drop_clause ::= multi_drop_clause drop_table_clause */
{ 263, -2 }, /* (124) multi_create_clause ::= multi_create_clause create_subtable_clause */ 274, /* (128) drop_table_clause ::= exists_opt full_table_name */
{ 271, -10 }, /* (125) create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_tags_opt TAGS NK_LP literal_list NK_RP table_options */ 272, /* (129) specific_tags_opt ::= */
{ 265, -1 }, /* (126) multi_drop_clause ::= drop_table_clause */ 272, /* (130) specific_tags_opt ::= NK_LP col_name_list NK_RP */
{ 265, -2 }, /* (127) multi_drop_clause ::= multi_drop_clause drop_table_clause */ 259, /* (131) full_table_name ::= table_name */
{ 274, -2 }, /* (128) drop_table_clause ::= exists_opt full_table_name */ 259, /* (132) full_table_name ::= db_name NK_DOT table_name */
{ 272, 0 }, /* (129) specific_tags_opt ::= */ 260, /* (133) column_def_list ::= column_def */
{ 272, -3 }, /* (130) specific_tags_opt ::= NK_LP col_name_list NK_RP */ 260, /* (134) column_def_list ::= column_def_list NK_COMMA column_def */
{ 259, -1 }, /* (131) full_table_name ::= table_name */ 277, /* (135) column_def ::= column_name type_name */
{ 259, -3 }, /* (132) full_table_name ::= db_name NK_DOT table_name */ 277, /* (136) column_def ::= column_name type_name COMMENT NK_STRING */
{ 260, -1 }, /* (133) column_def_list ::= column_def */ 269, /* (137) type_name ::= BOOL */
{ 260, -3 }, /* (134) column_def_list ::= column_def_list NK_COMMA column_def */ 269, /* (138) type_name ::= TINYINT */
{ 277, -2 }, /* (135) column_def ::= column_name type_name */ 269, /* (139) type_name ::= SMALLINT */
{ 277, -4 }, /* (136) column_def ::= column_name type_name COMMENT NK_STRING */ 269, /* (140) type_name ::= INT */
{ 269, -1 }, /* (137) type_name ::= BOOL */ 269, /* (141) type_name ::= INTEGER */
{ 269, -1 }, /* (138) type_name ::= TINYINT */ 269, /* (142) type_name ::= BIGINT */
{ 269, -1 }, /* (139) type_name ::= SMALLINT */ 269, /* (143) type_name ::= FLOAT */
{ 269, -1 }, /* (140) type_name ::= INT */ 269, /* (144) type_name ::= DOUBLE */
{ 269, -1 }, /* (141) type_name ::= INTEGER */ 269, /* (145) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */
{ 269, -1 }, /* (142) type_name ::= BIGINT */ 269, /* (146) type_name ::= TIMESTAMP */
{ 269, -1 }, /* (143) type_name ::= FLOAT */ 269, /* (147) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */
{ 269, -1 }, /* (144) type_name ::= DOUBLE */ 269, /* (148) type_name ::= TINYINT UNSIGNED */
{ 269, -4 }, /* (145) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ 269, /* (149) type_name ::= SMALLINT UNSIGNED */
{ 269, -1 }, /* (146) type_name ::= TIMESTAMP */ 269, /* (150) type_name ::= INT UNSIGNED */
{ 269, -4 }, /* (147) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ 269, /* (151) type_name ::= BIGINT UNSIGNED */
{ 269, -2 }, /* (148) type_name ::= TINYINT UNSIGNED */ 269, /* (152) type_name ::= JSON */
{ 269, -2 }, /* (149) type_name ::= SMALLINT UNSIGNED */ 269, /* (153) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */
{ 269, -2 }, /* (150) type_name ::= INT UNSIGNED */ 269, /* (154) type_name ::= MEDIUMBLOB */
{ 269, -2 }, /* (151) type_name ::= BIGINT UNSIGNED */ 269, /* (155) type_name ::= BLOB */
{ 269, -1 }, /* (152) type_name ::= JSON */ 269, /* (156) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */
{ 269, -4 }, /* (153) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ 269, /* (157) type_name ::= DECIMAL */
{ 269, -1 }, /* (154) type_name ::= MEDIUMBLOB */ 269, /* (158) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */
{ 269, -1 }, /* (155) type_name ::= BLOB */ 269, /* (159) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */
{ 269, -4 }, /* (156) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ 261, /* (160) tags_def_opt ::= */
{ 269, -1 }, /* (157) type_name ::= DECIMAL */ 261, /* (161) tags_def_opt ::= tags_def */
{ 269, -4 }, /* (158) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ 264, /* (162) tags_def ::= TAGS NK_LP column_def_list NK_RP */
{ 269, -6 }, /* (159) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ 262, /* (163) table_options ::= */
{ 261, 0 }, /* (160) tags_def_opt ::= */ 262, /* (164) table_options ::= table_options COMMENT NK_STRING */
{ 261, -1 }, /* (161) tags_def_opt ::= tags_def */ 262, /* (165) table_options ::= table_options FILE_FACTOR NK_FLOAT */
{ 264, -4 }, /* (162) tags_def ::= TAGS NK_LP column_def_list NK_RP */ 262, /* (166) table_options ::= table_options ROLLUP NK_LP func_name_list NK_RP */
{ 262, 0 }, /* (163) table_options ::= */ 262, /* (167) table_options ::= table_options TTL NK_INTEGER */
{ 262, -3 }, /* (164) table_options ::= table_options COMMENT NK_STRING */ 262, /* (168) table_options ::= table_options SMA NK_LP col_name_list NK_RP */
{ 262, -3 }, /* (165) table_options ::= table_options FILE_FACTOR NK_FLOAT */ 267, /* (169) alter_table_options ::= alter_table_option */
{ 262, -5 }, /* (166) table_options ::= table_options ROLLUP NK_LP func_name_list NK_RP */ 267, /* (170) alter_table_options ::= alter_table_options alter_table_option */
{ 262, -3 }, /* (167) table_options ::= table_options TTL NK_INTEGER */ 279, /* (171) alter_table_option ::= COMMENT NK_STRING */
{ 262, -5 }, /* (168) table_options ::= table_options SMA NK_LP col_name_list NK_RP */ 279, /* (172) alter_table_option ::= TTL NK_INTEGER */
{ 267, -1 }, /* (169) alter_table_options ::= alter_table_option */ 275, /* (173) col_name_list ::= col_name */
{ 267, -2 }, /* (170) alter_table_options ::= alter_table_options alter_table_option */ 275, /* (174) col_name_list ::= col_name_list NK_COMMA col_name */
{ 279, -2 }, /* (171) alter_table_option ::= COMMENT NK_STRING */ 280, /* (175) col_name ::= column_name */
{ 279, -2 }, /* (172) alter_table_option ::= TTL NK_INTEGER */ 237, /* (176) cmd ::= SHOW DNODES */
{ 275, -1 }, /* (173) col_name_list ::= col_name */ 237, /* (177) cmd ::= SHOW USERS */
{ 275, -3 }, /* (174) col_name_list ::= col_name_list NK_COMMA col_name */ 237, /* (178) cmd ::= SHOW DATABASES */
{ 280, -1 }, /* (175) col_name ::= column_name */ 237, /* (179) cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */
{ 237, -2 }, /* (176) cmd ::= SHOW DNODES */ 237, /* (180) cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */
{ 237, -2 }, /* (177) cmd ::= SHOW USERS */ 237, /* (181) cmd ::= SHOW db_name_cond_opt VGROUPS */
{ 237, -2 }, /* (178) cmd ::= SHOW DATABASES */ 237, /* (182) cmd ::= SHOW MNODES */
{ 237, -4 }, /* (179) cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ 237, /* (183) cmd ::= SHOW MODULES */
{ 237, -4 }, /* (180) cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ 237, /* (184) cmd ::= SHOW QNODES */
{ 237, -3 }, /* (181) cmd ::= SHOW db_name_cond_opt VGROUPS */ 237, /* (185) cmd ::= SHOW FUNCTIONS */
{ 237, -2 }, /* (182) cmd ::= SHOW MNODES */ 237, /* (186) cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */
{ 237, -2 }, /* (183) cmd ::= SHOW MODULES */ 237, /* (187) cmd ::= SHOW STREAMS */
{ 237, -2 }, /* (184) cmd ::= SHOW QNODES */ 237, /* (188) cmd ::= SHOW ACCOUNTS */
{ 237, -2 }, /* (185) cmd ::= SHOW FUNCTIONS */ 237, /* (189) cmd ::= SHOW APPS */
{ 237, -5 }, /* (186) cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ 237, /* (190) cmd ::= SHOW CONNECTIONS */
{ 237, -2 }, /* (187) cmd ::= SHOW STREAMS */ 237, /* (191) cmd ::= SHOW LICENCE */
{ 237, -2 }, /* (188) cmd ::= SHOW ACCOUNTS */ 237, /* (192) cmd ::= SHOW GRANTS */
{ 237, -2 }, /* (189) cmd ::= SHOW APPS */ 237, /* (193) cmd ::= SHOW CREATE DATABASE db_name */
{ 237, -2 }, /* (190) cmd ::= SHOW CONNECTIONS */ 237, /* (194) cmd ::= SHOW CREATE TABLE full_table_name */
{ 237, -2 }, /* (191) cmd ::= SHOW LICENCE */ 237, /* (195) cmd ::= SHOW CREATE STABLE full_table_name */
{ 237, -2 }, /* (192) cmd ::= SHOW GRANTS */ 237, /* (196) cmd ::= SHOW QUERIES */
{ 237, -4 }, /* (193) cmd ::= SHOW CREATE DATABASE db_name */ 237, /* (197) cmd ::= SHOW SCORES */
{ 237, -4 }, /* (194) cmd ::= SHOW CREATE TABLE full_table_name */ 237, /* (198) cmd ::= SHOW TOPICS */
{ 237, -4 }, /* (195) cmd ::= SHOW CREATE STABLE full_table_name */ 237, /* (199) cmd ::= SHOW VARIABLES */
{ 237, -2 }, /* (196) cmd ::= SHOW QUERIES */ 237, /* (200) cmd ::= SHOW BNODES */
{ 237, -2 }, /* (197) cmd ::= SHOW SCORES */ 237, /* (201) cmd ::= SHOW SNODES */
{ 237, -2 }, /* (198) cmd ::= SHOW TOPICS */ 237, /* (202) cmd ::= SHOW CLUSTER */
{ 237, -2 }, /* (199) cmd ::= SHOW VARIABLES */ 237, /* (203) cmd ::= SHOW TRANSACTIONS */
{ 237, -2 }, /* (200) cmd ::= SHOW BNODES */ 281, /* (204) db_name_cond_opt ::= */
{ 237, -2 }, /* (201) cmd ::= SHOW SNODES */ 281, /* (205) db_name_cond_opt ::= db_name NK_DOT */
{ 237, -2 }, /* (202) cmd ::= SHOW CLUSTER */ 282, /* (206) like_pattern_opt ::= */
{ 237, -2 }, /* (203) cmd ::= SHOW TRANSACTIONS */ 282, /* (207) like_pattern_opt ::= LIKE NK_STRING */
{ 281, 0 }, /* (204) db_name_cond_opt ::= */ 283, /* (208) table_name_cond ::= table_name */
{ 281, -2 }, /* (205) db_name_cond_opt ::= db_name NK_DOT */ 284, /* (209) from_db_opt ::= */
{ 282, 0 }, /* (206) like_pattern_opt ::= */ 284, /* (210) from_db_opt ::= FROM db_name */
{ 282, -2 }, /* (207) like_pattern_opt ::= LIKE NK_STRING */ 278, /* (211) func_name_list ::= func_name */
{ 283, -1 }, /* (208) table_name_cond ::= table_name */ 278, /* (212) func_name_list ::= func_name_list NK_COMMA func_name */
{ 284, 0 }, /* (209) from_db_opt ::= */ 285, /* (213) func_name ::= function_name */
{ 284, -2 }, /* (210) from_db_opt ::= FROM db_name */ 237, /* (214) cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */
{ 278, -1 }, /* (211) func_name_list ::= func_name */ 237, /* (215) cmd ::= CREATE FULLTEXT INDEX not_exists_opt index_name ON table_name NK_LP col_name_list NK_RP */
{ 278, -3 }, /* (212) func_name_list ::= func_name_list NK_COMMA func_name */ 237, /* (216) cmd ::= DROP INDEX exists_opt index_name ON table_name */
{ 285, -1 }, /* (213) func_name ::= function_name */ 288, /* (217) index_options ::= */
{ 237, -8 }, /* (214) cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */ 288, /* (218) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt */
{ 237, -10 }, /* (215) cmd ::= CREATE FULLTEXT INDEX not_exists_opt index_name ON table_name NK_LP col_name_list NK_RP */ 288, /* (219) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt */
{ 237, -6 }, /* (216) cmd ::= DROP INDEX exists_opt index_name ON table_name */ 289, /* (220) func_list ::= func */
{ 288, 0 }, /* (217) index_options ::= */ 289, /* (221) func_list ::= func_list NK_COMMA func */
{ 288, -9 }, /* (218) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt */ 292, /* (222) func ::= function_name NK_LP expression_list NK_RP */
{ 288, -11 }, /* (219) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt */ 237, /* (223) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_expression */
{ 289, -1 }, /* (220) func_list ::= func */ 237, /* (224) cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */
{ 289, -3 }, /* (221) func_list ::= func_list NK_COMMA func */ 237, /* (225) cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */
{ 292, -4 }, /* (222) func ::= function_name NK_LP expression_list NK_RP */ 237, /* (226) cmd ::= DROP TOPIC exists_opt topic_name */
{ 237, -6 }, /* (223) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_expression */ 237, /* (227) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */
{ 237, -7 }, /* (224) cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ 237, /* (228) cmd ::= DESC full_table_name */
{ 237, -7 }, /* (225) cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ 237, /* (229) cmd ::= DESCRIBE full_table_name */
{ 237, -4 }, /* (226) cmd ::= DROP TOPIC exists_opt topic_name */ 237, /* (230) cmd ::= RESET QUERY CACHE */
{ 237, -7 }, /* (227) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ 237, /* (231) cmd ::= EXPLAIN analyze_opt explain_options query_expression */
{ 237, -2 }, /* (228) cmd ::= DESC full_table_name */ 297, /* (232) analyze_opt ::= */
{ 237, -2 }, /* (229) cmd ::= DESCRIBE full_table_name */ 297, /* (233) analyze_opt ::= ANALYZE */
{ 237, -3 }, /* (230) cmd ::= RESET QUERY CACHE */ 298, /* (234) explain_options ::= */
{ 237, -4 }, /* (231) cmd ::= EXPLAIN analyze_opt explain_options query_expression */ 298, /* (235) explain_options ::= explain_options VERBOSE NK_BOOL */
{ 297, 0 }, /* (232) analyze_opt ::= */ 298, /* (236) explain_options ::= explain_options RATIO NK_FLOAT */
{ 297, -1 }, /* (233) analyze_opt ::= ANALYZE */ 237, /* (237) cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP */
{ 298, 0 }, /* (234) explain_options ::= */ 237, /* (238) cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */
{ 298, -3 }, /* (235) explain_options ::= explain_options VERBOSE NK_BOOL */ 237, /* (239) cmd ::= DROP FUNCTION exists_opt function_name */
{ 298, -3 }, /* (236) explain_options ::= explain_options RATIO NK_FLOAT */ 299, /* (240) agg_func_opt ::= */
{ 237, -6 }, /* (237) cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP */ 299, /* (241) agg_func_opt ::= AGGREGATE */
{ 237, -10 }, /* (238) cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */ 300, /* (242) bufsize_opt ::= */
{ 237, -4 }, /* (239) cmd ::= DROP FUNCTION exists_opt function_name */ 300, /* (243) bufsize_opt ::= BUFSIZE NK_INTEGER */
{ 299, 0 }, /* (240) agg_func_opt ::= */ 237, /* (244) cmd ::= CREATE STREAM not_exists_opt stream_name stream_options into_opt AS query_expression */
{ 299, -1 }, /* (241) agg_func_opt ::= AGGREGATE */ 237, /* (245) cmd ::= DROP STREAM exists_opt stream_name */
{ 300, 0 }, /* (242) bufsize_opt ::= */ 303, /* (246) into_opt ::= */
{ 300, -2 }, /* (243) bufsize_opt ::= BUFSIZE NK_INTEGER */ 303, /* (247) into_opt ::= INTO full_table_name */
{ 237, -8 }, /* (244) cmd ::= CREATE STREAM not_exists_opt stream_name stream_options into_opt AS query_expression */ 302, /* (248) stream_options ::= */
{ 237, -4 }, /* (245) cmd ::= DROP STREAM exists_opt stream_name */ 302, /* (249) stream_options ::= stream_options TRIGGER AT_ONCE */
{ 303, 0 }, /* (246) into_opt ::= */ 302, /* (250) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */
{ 303, -2 }, /* (247) into_opt ::= INTO full_table_name */ 302, /* (251) stream_options ::= stream_options WATERMARK duration_literal */
{ 302, 0 }, /* (248) stream_options ::= */ 237, /* (252) cmd ::= KILL CONNECTION NK_INTEGER */
{ 302, -3 }, /* (249) stream_options ::= stream_options TRIGGER AT_ONCE */ 237, /* (253) cmd ::= KILL QUERY NK_INTEGER */
{ 302, -3 }, /* (250) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ 237, /* (254) cmd ::= KILL TRANSACTION NK_INTEGER */
{ 302, -3 }, /* (251) stream_options ::= stream_options WATERMARK duration_literal */ 237, /* (255) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */
{ 237, -3 }, /* (252) cmd ::= KILL CONNECTION NK_INTEGER */ 237, /* (256) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */
{ 237, -3 }, /* (253) cmd ::= KILL QUERY NK_INTEGER */ 237, /* (257) cmd ::= SPLIT VGROUP NK_INTEGER */
{ 237, -3 }, /* (254) cmd ::= KILL TRANSACTION NK_INTEGER */ 304, /* (258) dnode_list ::= DNODE NK_INTEGER */
{ 237, -4 }, /* (255) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ 304, /* (259) dnode_list ::= dnode_list DNODE NK_INTEGER */
{ 237, -4 }, /* (256) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ 237, /* (260) cmd ::= SYNCDB db_name REPLICA */
{ 237, -3 }, /* (257) cmd ::= SPLIT VGROUP NK_INTEGER */ 237, /* (261) cmd ::= query_expression */
{ 304, -2 }, /* (258) dnode_list ::= DNODE NK_INTEGER */ 240, /* (262) literal ::= NK_INTEGER */
{ 304, -3 }, /* (259) dnode_list ::= dnode_list DNODE NK_INTEGER */ 240, /* (263) literal ::= NK_FLOAT */
{ 237, -3 }, /* (260) cmd ::= SYNCDB db_name REPLICA */ 240, /* (264) literal ::= NK_STRING */
{ 237, -1 }, /* (261) cmd ::= query_expression */ 240, /* (265) literal ::= NK_BOOL */
{ 240, -1 }, /* (262) literal ::= NK_INTEGER */ 240, /* (266) literal ::= TIMESTAMP NK_STRING */
{ 240, -1 }, /* (263) literal ::= NK_FLOAT */ 240, /* (267) literal ::= duration_literal */
{ 240, -1 }, /* (264) literal ::= NK_STRING */ 240, /* (268) literal ::= NULL */
{ 240, -1 }, /* (265) literal ::= NK_BOOL */ 240, /* (269) literal ::= NK_QUESTION */
{ 240, -2 }, /* (266) literal ::= TIMESTAMP NK_STRING */ 290, /* (270) duration_literal ::= NK_VARIABLE */
{ 240, -1 }, /* (267) literal ::= duration_literal */ 305, /* (271) signed ::= NK_INTEGER */
{ 240, -1 }, /* (268) literal ::= NULL */ 305, /* (272) signed ::= NK_PLUS NK_INTEGER */
{ 240, -1 }, /* (269) literal ::= NK_QUESTION */ 305, /* (273) signed ::= NK_MINUS NK_INTEGER */
{ 290, -1 }, /* (270) duration_literal ::= NK_VARIABLE */ 305, /* (274) signed ::= NK_FLOAT */
{ 305, -1 }, /* (271) signed ::= NK_INTEGER */ 305, /* (275) signed ::= NK_PLUS NK_FLOAT */
{ 305, -2 }, /* (272) signed ::= NK_PLUS NK_INTEGER */ 305, /* (276) signed ::= NK_MINUS NK_FLOAT */
{ 305, -2 }, /* (273) signed ::= NK_MINUS NK_INTEGER */ 270, /* (277) signed_literal ::= signed */
{ 305, -1 }, /* (274) signed ::= NK_FLOAT */ 270, /* (278) signed_literal ::= NK_STRING */
{ 305, -2 }, /* (275) signed ::= NK_PLUS NK_FLOAT */ 270, /* (279) signed_literal ::= NK_BOOL */
{ 305, -2 }, /* (276) signed ::= NK_MINUS NK_FLOAT */ 270, /* (280) signed_literal ::= TIMESTAMP NK_STRING */
{ 270, -1 }, /* (277) signed_literal ::= signed */ 270, /* (281) signed_literal ::= duration_literal */
{ 270, -1 }, /* (278) signed_literal ::= NK_STRING */ 270, /* (282) signed_literal ::= NULL */
{ 270, -1 }, /* (279) signed_literal ::= NK_BOOL */ 270, /* (283) signed_literal ::= literal_func */
{ 270, -2 }, /* (280) signed_literal ::= TIMESTAMP NK_STRING */ 273, /* (284) literal_list ::= signed_literal */
{ 270, -1 }, /* (281) signed_literal ::= duration_literal */ 273, /* (285) literal_list ::= literal_list NK_COMMA signed_literal */
{ 270, -1 }, /* (282) signed_literal ::= NULL */ 247, /* (286) db_name ::= NK_ID */
{ 270, -1 }, /* (283) signed_literal ::= literal_func */ 276, /* (287) table_name ::= NK_ID */
{ 273, -1 }, /* (284) literal_list ::= signed_literal */ 268, /* (288) column_name ::= NK_ID */
{ 273, -3 }, /* (285) literal_list ::= literal_list NK_COMMA signed_literal */ 286, /* (289) function_name ::= NK_ID */
{ 247, -1 }, /* (286) db_name ::= NK_ID */ 307, /* (290) table_alias ::= NK_ID */
{ 276, -1 }, /* (287) table_name ::= NK_ID */ 308, /* (291) column_alias ::= NK_ID */
{ 268, -1 }, /* (288) column_name ::= NK_ID */ 242, /* (292) user_name ::= NK_ID */
{ 286, -1 }, /* (289) function_name ::= NK_ID */ 287, /* (293) index_name ::= NK_ID */
{ 307, -1 }, /* (290) table_alias ::= NK_ID */ 294, /* (294) topic_name ::= NK_ID */
{ 308, -1 }, /* (291) column_alias ::= NK_ID */ 301, /* (295) stream_name ::= NK_ID */
{ 242, -1 }, /* (292) user_name ::= NK_ID */ 296, /* (296) cgroup_name ::= NK_ID */
{ 287, -1 }, /* (293) index_name ::= NK_ID */ 309, /* (297) expression ::= literal */
{ 294, -1 }, /* (294) topic_name ::= NK_ID */ 309, /* (298) expression ::= pseudo_column */
{ 301, -1 }, /* (295) stream_name ::= NK_ID */ 309, /* (299) expression ::= column_reference */
{ 296, -1 }, /* (296) cgroup_name ::= NK_ID */ 309, /* (300) expression ::= function_expression */
{ 309, -1 }, /* (297) expression ::= literal */ 309, /* (301) expression ::= subquery */
{ 309, -1 }, /* (298) expression ::= pseudo_column */ 309, /* (302) expression ::= NK_LP expression NK_RP */
{ 309, -1 }, /* (299) expression ::= column_reference */ 309, /* (303) expression ::= NK_PLUS expression */
{ 309, -1 }, /* (300) expression ::= function_expression */ 309, /* (304) expression ::= NK_MINUS expression */
{ 309, -1 }, /* (301) expression ::= subquery */ 309, /* (305) expression ::= expression NK_PLUS expression */
{ 309, -3 }, /* (302) expression ::= NK_LP expression NK_RP */ 309, /* (306) expression ::= expression NK_MINUS expression */
{ 309, -2 }, /* (303) expression ::= NK_PLUS expression */ 309, /* (307) expression ::= expression NK_STAR expression */
{ 309, -2 }, /* (304) expression ::= NK_MINUS expression */ 309, /* (308) expression ::= expression NK_SLASH expression */
{ 309, -3 }, /* (305) expression ::= expression NK_PLUS expression */ 309, /* (309) expression ::= expression NK_REM expression */
{ 309, -3 }, /* (306) expression ::= expression NK_MINUS expression */ 309, /* (310) expression ::= column_reference NK_ARROW NK_STRING */
{ 309, -3 }, /* (307) expression ::= expression NK_STAR expression */ 293, /* (311) expression_list ::= expression */
{ 309, -3 }, /* (308) expression ::= expression NK_SLASH expression */ 293, /* (312) expression_list ::= expression_list NK_COMMA expression */
{ 309, -3 }, /* (309) expression ::= expression NK_REM expression */ 311, /* (313) column_reference ::= column_name */
{ 309, -3 }, /* (310) expression ::= column_reference NK_ARROW NK_STRING */ 311, /* (314) column_reference ::= table_name NK_DOT column_name */
{ 293, -1 }, /* (311) expression_list ::= expression */ 310, /* (315) pseudo_column ::= ROWTS */
{ 293, -3 }, /* (312) expression_list ::= expression_list NK_COMMA expression */ 310, /* (316) pseudo_column ::= TBNAME */
{ 311, -1 }, /* (313) column_reference ::= column_name */ 310, /* (317) pseudo_column ::= table_name NK_DOT TBNAME */
{ 311, -3 }, /* (314) column_reference ::= table_name NK_DOT column_name */ 310, /* (318) pseudo_column ::= QSTARTTS */
{ 310, -1 }, /* (315) pseudo_column ::= ROWTS */ 310, /* (319) pseudo_column ::= QENDTS */
{ 310, -1 }, /* (316) pseudo_column ::= TBNAME */ 310, /* (320) pseudo_column ::= WSTARTTS */
{ 310, -3 }, /* (317) pseudo_column ::= table_name NK_DOT TBNAME */ 310, /* (321) pseudo_column ::= WENDTS */
{ 310, -1 }, /* (318) pseudo_column ::= QSTARTTS */ 310, /* (322) pseudo_column ::= WDURATION */
{ 310, -1 }, /* (319) pseudo_column ::= QENDTS */ 312, /* (323) function_expression ::= function_name NK_LP expression_list NK_RP */
{ 310, -1 }, /* (320) pseudo_column ::= WSTARTTS */ 312, /* (324) function_expression ::= star_func NK_LP star_func_para_list NK_RP */
{ 310, -1 }, /* (321) pseudo_column ::= WENDTS */ 312, /* (325) function_expression ::= CAST NK_LP expression AS type_name NK_RP */
{ 310, -1 }, /* (322) pseudo_column ::= WDURATION */ 312, /* (326) function_expression ::= literal_func */
{ 312, -4 }, /* (323) function_expression ::= function_name NK_LP expression_list NK_RP */ 306, /* (327) literal_func ::= noarg_func NK_LP NK_RP */
{ 312, -4 }, /* (324) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ 306, /* (328) literal_func ::= NOW */
{ 312, -6 }, /* (325) function_expression ::= CAST NK_LP expression AS type_name NK_RP */ 316, /* (329) noarg_func ::= NOW */
{ 312, -1 }, /* (326) function_expression ::= literal_func */ 316, /* (330) noarg_func ::= TODAY */
{ 306, -3 }, /* (327) literal_func ::= noarg_func NK_LP NK_RP */ 316, /* (331) noarg_func ::= TIMEZONE */
{ 306, -1 }, /* (328) literal_func ::= NOW */ 314, /* (332) star_func ::= COUNT */
{ 316, -1 }, /* (329) noarg_func ::= NOW */ 314, /* (333) star_func ::= FIRST */
{ 316, -1 }, /* (330) noarg_func ::= TODAY */ 314, /* (334) star_func ::= LAST */
{ 316, -1 }, /* (331) noarg_func ::= TIMEZONE */ 314, /* (335) star_func ::= LAST_ROW */
{ 314, -1 }, /* (332) star_func ::= COUNT */ 315, /* (336) star_func_para_list ::= NK_STAR */
{ 314, -1 }, /* (333) star_func ::= FIRST */ 315, /* (337) star_func_para_list ::= other_para_list */
{ 314, -1 }, /* (334) star_func ::= LAST */ 317, /* (338) other_para_list ::= star_func_para */
{ 314, -1 }, /* (335) star_func ::= LAST_ROW */ 317, /* (339) other_para_list ::= other_para_list NK_COMMA star_func_para */
{ 315, -1 }, /* (336) star_func_para_list ::= NK_STAR */ 318, /* (340) star_func_para ::= expression */
{ 315, -1 }, /* (337) star_func_para_list ::= other_para_list */ 318, /* (341) star_func_para ::= table_name NK_DOT NK_STAR */
{ 317, -1 }, /* (338) other_para_list ::= star_func_para */ 319, /* (342) predicate ::= expression compare_op expression */
{ 317, -3 }, /* (339) other_para_list ::= other_para_list NK_COMMA star_func_para */ 319, /* (343) predicate ::= expression BETWEEN expression AND expression */
{ 318, -1 }, /* (340) star_func_para ::= expression */ 319, /* (344) predicate ::= expression NOT BETWEEN expression AND expression */
{ 318, -3 }, /* (341) star_func_para ::= table_name NK_DOT NK_STAR */ 319, /* (345) predicate ::= expression IS NULL */
{ 319, -3 }, /* (342) predicate ::= expression compare_op expression */ 319, /* (346) predicate ::= expression IS NOT NULL */
{ 319, -5 }, /* (343) predicate ::= expression BETWEEN expression AND expression */ 319, /* (347) predicate ::= expression in_op in_predicate_value */
{ 319, -6 }, /* (344) predicate ::= expression NOT BETWEEN expression AND expression */ 320, /* (348) compare_op ::= NK_LT */
{ 319, -3 }, /* (345) predicate ::= expression IS NULL */ 320, /* (349) compare_op ::= NK_GT */
{ 319, -4 }, /* (346) predicate ::= expression IS NOT NULL */ 320, /* (350) compare_op ::= NK_LE */
{ 319, -3 }, /* (347) predicate ::= expression in_op in_predicate_value */ 320, /* (351) compare_op ::= NK_GE */
{ 320, -1 }, /* (348) compare_op ::= NK_LT */ 320, /* (352) compare_op ::= NK_NE */
{ 320, -1 }, /* (349) compare_op ::= NK_GT */ 320, /* (353) compare_op ::= NK_EQ */
{ 320, -1 }, /* (350) compare_op ::= NK_LE */ 320, /* (354) compare_op ::= LIKE */
{ 320, -1 }, /* (351) compare_op ::= NK_GE */ 320, /* (355) compare_op ::= NOT LIKE */
{ 320, -1 }, /* (352) compare_op ::= NK_NE */ 320, /* (356) compare_op ::= MATCH */
{ 320, -1 }, /* (353) compare_op ::= NK_EQ */ 320, /* (357) compare_op ::= NMATCH */
{ 320, -1 }, /* (354) compare_op ::= LIKE */ 320, /* (358) compare_op ::= CONTAINS */
{ 320, -2 }, /* (355) compare_op ::= NOT LIKE */ 321, /* (359) in_op ::= IN */
{ 320, -1 }, /* (356) compare_op ::= MATCH */ 321, /* (360) in_op ::= NOT IN */
{ 320, -1 }, /* (357) compare_op ::= NMATCH */ 322, /* (361) in_predicate_value ::= NK_LP expression_list NK_RP */
{ 320, -1 }, /* (358) compare_op ::= CONTAINS */ 323, /* (362) boolean_value_expression ::= boolean_primary */
{ 321, -1 }, /* (359) in_op ::= IN */ 323, /* (363) boolean_value_expression ::= NOT boolean_primary */
{ 321, -2 }, /* (360) in_op ::= NOT IN */ 323, /* (364) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */
{ 322, -3 }, /* (361) in_predicate_value ::= NK_LP expression_list NK_RP */ 323, /* (365) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */
{ 323, -1 }, /* (362) boolean_value_expression ::= boolean_primary */ 324, /* (366) boolean_primary ::= predicate */
{ 323, -2 }, /* (363) boolean_value_expression ::= NOT boolean_primary */ 324, /* (367) boolean_primary ::= NK_LP boolean_value_expression NK_RP */
{ 323, -3 }, /* (364) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ 325, /* (368) common_expression ::= expression */
{ 323, -3 }, /* (365) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ 325, /* (369) common_expression ::= boolean_value_expression */
{ 324, -1 }, /* (366) boolean_primary ::= predicate */ 326, /* (370) from_clause ::= FROM table_reference_list */
{ 324, -3 }, /* (367) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ 327, /* (371) table_reference_list ::= table_reference */
{ 325, -1 }, /* (368) common_expression ::= expression */ 327, /* (372) table_reference_list ::= table_reference_list NK_COMMA table_reference */
{ 325, -1 }, /* (369) common_expression ::= boolean_value_expression */ 328, /* (373) table_reference ::= table_primary */
{ 326, -2 }, /* (370) from_clause ::= FROM table_reference_list */ 328, /* (374) table_reference ::= joined_table */
{ 327, -1 }, /* (371) table_reference_list ::= table_reference */ 329, /* (375) table_primary ::= table_name alias_opt */
{ 327, -3 }, /* (372) table_reference_list ::= table_reference_list NK_COMMA table_reference */ 329, /* (376) table_primary ::= db_name NK_DOT table_name alias_opt */
{ 328, -1 }, /* (373) table_reference ::= table_primary */ 329, /* (377) table_primary ::= subquery alias_opt */
{ 328, -1 }, /* (374) table_reference ::= joined_table */ 329, /* (378) table_primary ::= parenthesized_joined_table */
{ 329, -2 }, /* (375) table_primary ::= table_name alias_opt */ 331, /* (379) alias_opt ::= */
{ 329, -4 }, /* (376) table_primary ::= db_name NK_DOT table_name alias_opt */ 331, /* (380) alias_opt ::= table_alias */
{ 329, -2 }, /* (377) table_primary ::= subquery alias_opt */ 331, /* (381) alias_opt ::= AS table_alias */
{ 329, -1 }, /* (378) table_primary ::= parenthesized_joined_table */ 332, /* (382) parenthesized_joined_table ::= NK_LP joined_table NK_RP */
{ 331, 0 }, /* (379) alias_opt ::= */ 332, /* (383) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */
{ 331, -1 }, /* (380) alias_opt ::= table_alias */ 330, /* (384) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */
{ 331, -2 }, /* (381) alias_opt ::= AS table_alias */ 333, /* (385) join_type ::= */
{ 332, -3 }, /* (382) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ 333, /* (386) join_type ::= INNER */
{ 332, -3 }, /* (383) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ 335, /* (387) query_specification ::= SELECT set_quantifier_opt select_list from_clause where_clause_opt partition_by_clause_opt twindow_clause_opt group_by_clause_opt having_clause_opt */
{ 330, -6 }, /* (384) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ 336, /* (388) set_quantifier_opt ::= */
{ 333, 0 }, /* (385) join_type ::= */ 336, /* (389) set_quantifier_opt ::= DISTINCT */
{ 333, -1 }, /* (386) join_type ::= INNER */ 336, /* (390) set_quantifier_opt ::= ALL */
{ 335, -9 }, /* (387) query_specification ::= SELECT set_quantifier_opt select_list from_clause where_clause_opt partition_by_clause_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ 337, /* (391) select_list ::= NK_STAR */
{ 336, 0 }, /* (388) set_quantifier_opt ::= */ 337, /* (392) select_list ::= select_sublist */
{ 336, -1 }, /* (389) set_quantifier_opt ::= DISTINCT */ 343, /* (393) select_sublist ::= select_item */
{ 336, -1 }, /* (390) set_quantifier_opt ::= ALL */ 343, /* (394) select_sublist ::= select_sublist NK_COMMA select_item */
{ 337, -1 }, /* (391) select_list ::= NK_STAR */ 344, /* (395) select_item ::= common_expression */
{ 337, -1 }, /* (392) select_list ::= select_sublist */ 344, /* (396) select_item ::= common_expression column_alias */
{ 343, -1 }, /* (393) select_sublist ::= select_item */ 344, /* (397) select_item ::= common_expression AS column_alias */
{ 343, -3 }, /* (394) select_sublist ::= select_sublist NK_COMMA select_item */ 344, /* (398) select_item ::= table_name NK_DOT NK_STAR */
{ 344, -1 }, /* (395) select_item ::= common_expression */ 338, /* (399) where_clause_opt ::= */
{ 344, -2 }, /* (396) select_item ::= common_expression column_alias */ 338, /* (400) where_clause_opt ::= WHERE search_condition */
{ 344, -3 }, /* (397) select_item ::= common_expression AS column_alias */ 339, /* (401) partition_by_clause_opt ::= */
{ 344, -3 }, /* (398) select_item ::= table_name NK_DOT NK_STAR */ 339, /* (402) partition_by_clause_opt ::= PARTITION BY expression_list */
{ 338, 0 }, /* (399) where_clause_opt ::= */ 340, /* (403) twindow_clause_opt ::= */
{ 338, -2 }, /* (400) where_clause_opt ::= WHERE search_condition */ 340, /* (404) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */
{ 339, 0 }, /* (401) partition_by_clause_opt ::= */ 340, /* (405) twindow_clause_opt ::= STATE_WINDOW NK_LP expression NK_RP */
{ 339, -3 }, /* (402) partition_by_clause_opt ::= PARTITION BY expression_list */ 340, /* (406) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */
{ 340, 0 }, /* (403) twindow_clause_opt ::= */ 340, /* (407) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */
{ 340, -6 }, /* (404) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ 291, /* (408) sliding_opt ::= */
{ 340, -4 }, /* (405) twindow_clause_opt ::= STATE_WINDOW NK_LP expression NK_RP */ 291, /* (409) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */
{ 340, -6 }, /* (406) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ 345, /* (410) fill_opt ::= */
{ 340, -8 }, /* (407) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ 345, /* (411) fill_opt ::= FILL NK_LP fill_mode NK_RP */
{ 291, 0 }, /* (408) sliding_opt ::= */ 345, /* (412) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */
{ 291, -4 }, /* (409) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ 346, /* (413) fill_mode ::= NONE */
{ 345, 0 }, /* (410) fill_opt ::= */ 346, /* (414) fill_mode ::= PREV */
{ 345, -4 }, /* (411) fill_opt ::= FILL NK_LP fill_mode NK_RP */ 346, /* (415) fill_mode ::= NULL */
{ 345, -6 }, /* (412) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ 346, /* (416) fill_mode ::= LINEAR */
{ 346, -1 }, /* (413) fill_mode ::= NONE */ 346, /* (417) fill_mode ::= NEXT */
{ 346, -1 }, /* (414) fill_mode ::= PREV */ 341, /* (418) group_by_clause_opt ::= */
{ 346, -1 }, /* (415) fill_mode ::= NULL */ 341, /* (419) group_by_clause_opt ::= GROUP BY group_by_list */
{ 346, -1 }, /* (416) fill_mode ::= LINEAR */ 347, /* (420) group_by_list ::= expression */
{ 346, -1 }, /* (417) fill_mode ::= NEXT */ 347, /* (421) group_by_list ::= group_by_list NK_COMMA expression */
{ 341, 0 }, /* (418) group_by_clause_opt ::= */ 342, /* (422) having_clause_opt ::= */
{ 341, -3 }, /* (419) group_by_clause_opt ::= GROUP BY group_by_list */ 342, /* (423) having_clause_opt ::= HAVING search_condition */
{ 347, -1 }, /* (420) group_by_list ::= expression */ 295, /* (424) query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */
{ 347, -3 }, /* (421) group_by_list ::= group_by_list NK_COMMA expression */ 348, /* (425) query_expression_body ::= query_primary */
{ 342, 0 }, /* (422) having_clause_opt ::= */ 348, /* (426) query_expression_body ::= query_expression_body UNION ALL query_expression_body */
{ 342, -2 }, /* (423) having_clause_opt ::= HAVING search_condition */ 348, /* (427) query_expression_body ::= query_expression_body UNION query_expression_body */
{ 295, -4 }, /* (424) query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */ 352, /* (428) query_primary ::= query_specification */
{ 348, -1 }, /* (425) query_expression_body ::= query_primary */ 352, /* (429) query_primary ::= NK_LP query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP */
{ 348, -4 }, /* (426) query_expression_body ::= query_expression_body UNION ALL query_expression_body */ 349, /* (430) order_by_clause_opt ::= */
{ 348, -3 }, /* (427) query_expression_body ::= query_expression_body UNION query_expression_body */ 349, /* (431) order_by_clause_opt ::= ORDER BY sort_specification_list */
{ 352, -1 }, /* (428) query_primary ::= query_specification */ 350, /* (432) slimit_clause_opt ::= */
{ 352, -6 }, /* (429) query_primary ::= NK_LP query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP */ 350, /* (433) slimit_clause_opt ::= SLIMIT NK_INTEGER */
{ 349, 0 }, /* (430) order_by_clause_opt ::= */ 350, /* (434) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
{ 349, -3 }, /* (431) order_by_clause_opt ::= ORDER BY sort_specification_list */ 350, /* (435) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{ 350, 0 }, /* (432) slimit_clause_opt ::= */ 351, /* (436) limit_clause_opt ::= */
{ 350, -2 }, /* (433) slimit_clause_opt ::= SLIMIT NK_INTEGER */ 351, /* (437) limit_clause_opt ::= LIMIT NK_INTEGER */
{ 350, -4 }, /* (434) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ 351, /* (438) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
{ 350, -4 }, /* (435) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ 351, /* (439) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
{ 351, 0 }, /* (436) limit_clause_opt ::= */ 313, /* (440) subquery ::= NK_LP query_expression NK_RP */
{ 351, -2 }, /* (437) limit_clause_opt ::= LIMIT NK_INTEGER */ 334, /* (441) search_condition ::= common_expression */
{ 351, -4 }, /* (438) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ 353, /* (442) sort_specification_list ::= sort_specification */
{ 351, -4 }, /* (439) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ 353, /* (443) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
{ 313, -3 }, /* (440) subquery ::= NK_LP query_expression NK_RP */ 354, /* (444) sort_specification ::= expression ordering_specification_opt null_ordering_opt */
{ 334, -1 }, /* (441) search_condition ::= common_expression */ 355, /* (445) ordering_specification_opt ::= */
{ 353, -1 }, /* (442) sort_specification_list ::= sort_specification */ 355, /* (446) ordering_specification_opt ::= ASC */
{ 353, -3 }, /* (443) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ 355, /* (447) ordering_specification_opt ::= DESC */
{ 354, -3 }, /* (444) sort_specification ::= expression ordering_specification_opt null_ordering_opt */ 356, /* (448) null_ordering_opt ::= */
{ 355, 0 }, /* (445) ordering_specification_opt ::= */ 356, /* (449) null_ordering_opt ::= NULLS FIRST */
{ 355, -1 }, /* (446) ordering_specification_opt ::= ASC */ 356, /* (450) null_ordering_opt ::= NULLS LAST */
{ 355, -1 }, /* (447) ordering_specification_opt ::= DESC */ };
{ 356, 0 }, /* (448) null_ordering_opt ::= */
{ 356, -2 }, /* (449) null_ordering_opt ::= NULLS FIRST */ /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
{ 356, -2 }, /* (450) null_ordering_opt ::= NULLS LAST */ ** of symbols on the right-hand side of that rule. */
static const signed char yyRuleInfoNRhs[] = {
-6, /* (0) cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */
-4, /* (1) cmd ::= ALTER ACCOUNT NK_ID alter_account_options */
0, /* (2) account_options ::= */
-3, /* (3) account_options ::= account_options PPS literal */
-3, /* (4) account_options ::= account_options TSERIES literal */
-3, /* (5) account_options ::= account_options STORAGE literal */
-3, /* (6) account_options ::= account_options STREAMS literal */
-3, /* (7) account_options ::= account_options QTIME literal */
-3, /* (8) account_options ::= account_options DBS literal */
-3, /* (9) account_options ::= account_options USERS literal */
-3, /* (10) account_options ::= account_options CONNS literal */
-3, /* (11) account_options ::= account_options STATE literal */
-1, /* (12) alter_account_options ::= alter_account_option */
-2, /* (13) alter_account_options ::= alter_account_options alter_account_option */
-2, /* (14) alter_account_option ::= PASS literal */
-2, /* (15) alter_account_option ::= PPS literal */
-2, /* (16) alter_account_option ::= TSERIES literal */
-2, /* (17) alter_account_option ::= STORAGE literal */
-2, /* (18) alter_account_option ::= STREAMS literal */
-2, /* (19) alter_account_option ::= QTIME literal */
-2, /* (20) alter_account_option ::= DBS literal */
-2, /* (21) alter_account_option ::= USERS literal */
-2, /* (22) alter_account_option ::= CONNS literal */
-2, /* (23) alter_account_option ::= STATE literal */
-5, /* (24) cmd ::= CREATE USER user_name PASS NK_STRING */
-5, /* (25) cmd ::= ALTER USER user_name PASS NK_STRING */
-5, /* (26) cmd ::= ALTER USER user_name PRIVILEGE NK_STRING */
-3, /* (27) cmd ::= DROP USER user_name */
-6, /* (28) cmd ::= GRANT privileges ON priv_level TO user_name */
-6, /* (29) cmd ::= REVOKE privileges ON priv_level FROM user_name */
-1, /* (30) privileges ::= ALL */
-1, /* (31) privileges ::= priv_type_list */
-1, /* (32) priv_type_list ::= priv_type */
-3, /* (33) priv_type_list ::= priv_type_list NK_COMMA priv_type */
-1, /* (34) priv_type ::= READ */
-1, /* (35) priv_type ::= WRITE */
-3, /* (36) priv_level ::= NK_STAR NK_DOT NK_STAR */
-3, /* (37) priv_level ::= db_name NK_DOT NK_STAR */
-3, /* (38) cmd ::= CREATE DNODE dnode_endpoint */
-5, /* (39) cmd ::= CREATE DNODE dnode_host_name PORT NK_INTEGER */
-3, /* (40) cmd ::= DROP DNODE NK_INTEGER */
-3, /* (41) cmd ::= DROP DNODE dnode_endpoint */
-4, /* (42) cmd ::= ALTER DNODE NK_INTEGER NK_STRING */
-5, /* (43) cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */
-4, /* (44) cmd ::= ALTER ALL DNODES NK_STRING */
-5, /* (45) cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */
-1, /* (46) dnode_endpoint ::= NK_STRING */
-1, /* (47) dnode_host_name ::= NK_ID */
-1, /* (48) dnode_host_name ::= NK_IPTOKEN */
-3, /* (49) cmd ::= ALTER LOCAL NK_STRING */
-4, /* (50) cmd ::= ALTER LOCAL NK_STRING NK_STRING */
-5, /* (51) cmd ::= CREATE QNODE ON DNODE NK_INTEGER */
-5, /* (52) cmd ::= DROP QNODE ON DNODE NK_INTEGER */
-5, /* (53) cmd ::= CREATE BNODE ON DNODE NK_INTEGER */
-5, /* (54) cmd ::= DROP BNODE ON DNODE NK_INTEGER */
-5, /* (55) cmd ::= CREATE SNODE ON DNODE NK_INTEGER */
-5, /* (56) cmd ::= DROP SNODE ON DNODE NK_INTEGER */
-5, /* (57) cmd ::= CREATE MNODE ON DNODE NK_INTEGER */
-5, /* (58) cmd ::= DROP MNODE ON DNODE NK_INTEGER */
-5, /* (59) cmd ::= CREATE DATABASE not_exists_opt db_name db_options */
-4, /* (60) cmd ::= DROP DATABASE exists_opt db_name */
-2, /* (61) cmd ::= USE db_name */
-4, /* (62) cmd ::= ALTER DATABASE db_name alter_db_options */
-3, /* (63) not_exists_opt ::= IF NOT EXISTS */
0, /* (64) not_exists_opt ::= */
-2, /* (65) exists_opt ::= IF EXISTS */
0, /* (66) exists_opt ::= */
0, /* (67) db_options ::= */
-3, /* (68) db_options ::= db_options BUFFER NK_INTEGER */
-3, /* (69) db_options ::= db_options CACHELAST NK_INTEGER */
-3, /* (70) db_options ::= db_options COMP NK_INTEGER */
-3, /* (71) db_options ::= db_options DAYS NK_INTEGER */
-3, /* (72) db_options ::= db_options DAYS NK_VARIABLE */
-3, /* (73) db_options ::= db_options FSYNC NK_INTEGER */
-3, /* (74) db_options ::= db_options MAXROWS NK_INTEGER */
-3, /* (75) db_options ::= db_options MINROWS NK_INTEGER */
-3, /* (76) db_options ::= db_options KEEP integer_list */
-3, /* (77) db_options ::= db_options KEEP variable_list */
-3, /* (78) db_options ::= db_options PAGES NK_INTEGER */
-3, /* (79) db_options ::= db_options PAGESIZE NK_INTEGER */
-3, /* (80) db_options ::= db_options PRECISION NK_STRING */
-3, /* (81) db_options ::= db_options REPLICA NK_INTEGER */
-3, /* (82) db_options ::= db_options STRICT NK_INTEGER */
-3, /* (83) db_options ::= db_options WAL NK_INTEGER */
-3, /* (84) db_options ::= db_options VGROUPS NK_INTEGER */
-3, /* (85) db_options ::= db_options SINGLE_STABLE NK_INTEGER */
-3, /* (86) db_options ::= db_options RETENTIONS retention_list */
-3, /* (87) db_options ::= db_options SCHEMALESS NK_INTEGER */
-1, /* (88) alter_db_options ::= alter_db_option */
-2, /* (89) alter_db_options ::= alter_db_options alter_db_option */
-2, /* (90) alter_db_option ::= BUFFER NK_INTEGER */
-2, /* (91) alter_db_option ::= CACHELAST NK_INTEGER */
-2, /* (92) alter_db_option ::= FSYNC NK_INTEGER */
-2, /* (93) alter_db_option ::= KEEP integer_list */
-2, /* (94) alter_db_option ::= KEEP variable_list */
-2, /* (95) alter_db_option ::= PAGES NK_INTEGER */
-2, /* (96) alter_db_option ::= REPLICA NK_INTEGER */
-2, /* (97) alter_db_option ::= STRICT NK_INTEGER */
-2, /* (98) alter_db_option ::= WAL NK_INTEGER */
-1, /* (99) integer_list ::= NK_INTEGER */
-3, /* (100) integer_list ::= integer_list NK_COMMA NK_INTEGER */
-1, /* (101) variable_list ::= NK_VARIABLE */
-3, /* (102) variable_list ::= variable_list NK_COMMA NK_VARIABLE */
-1, /* (103) retention_list ::= retention */
-3, /* (104) retention_list ::= retention_list NK_COMMA retention */
-3, /* (105) retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */
-9, /* (106) cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */
-3, /* (107) cmd ::= CREATE TABLE multi_create_clause */
-9, /* (108) cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */
-3, /* (109) cmd ::= DROP TABLE multi_drop_clause */
-4, /* (110) cmd ::= DROP STABLE exists_opt full_table_name */
-3, /* (111) cmd ::= ALTER TABLE alter_table_clause */
-3, /* (112) cmd ::= ALTER STABLE alter_table_clause */
-2, /* (113) alter_table_clause ::= full_table_name alter_table_options */
-5, /* (114) alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */
-4, /* (115) alter_table_clause ::= full_table_name DROP COLUMN column_name */
-5, /* (116) alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */
-5, /* (117) alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */
-5, /* (118) alter_table_clause ::= full_table_name ADD TAG column_name type_name */
-4, /* (119) alter_table_clause ::= full_table_name DROP TAG column_name */
-5, /* (120) alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */
-5, /* (121) alter_table_clause ::= full_table_name RENAME TAG column_name column_name */
-6, /* (122) alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */
-1, /* (123) multi_create_clause ::= create_subtable_clause */
-2, /* (124) multi_create_clause ::= multi_create_clause create_subtable_clause */
-10, /* (125) create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_tags_opt TAGS NK_LP literal_list NK_RP table_options */
-1, /* (126) multi_drop_clause ::= drop_table_clause */
-2, /* (127) multi_drop_clause ::= multi_drop_clause drop_table_clause */
-2, /* (128) drop_table_clause ::= exists_opt full_table_name */
0, /* (129) specific_tags_opt ::= */
-3, /* (130) specific_tags_opt ::= NK_LP col_name_list NK_RP */
-1, /* (131) full_table_name ::= table_name */
-3, /* (132) full_table_name ::= db_name NK_DOT table_name */
-1, /* (133) column_def_list ::= column_def */
-3, /* (134) column_def_list ::= column_def_list NK_COMMA column_def */
-2, /* (135) column_def ::= column_name type_name */
-4, /* (136) column_def ::= column_name type_name COMMENT NK_STRING */
-1, /* (137) type_name ::= BOOL */
-1, /* (138) type_name ::= TINYINT */
-1, /* (139) type_name ::= SMALLINT */
-1, /* (140) type_name ::= INT */
-1, /* (141) type_name ::= INTEGER */
-1, /* (142) type_name ::= BIGINT */
-1, /* (143) type_name ::= FLOAT */
-1, /* (144) type_name ::= DOUBLE */
-4, /* (145) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */
-1, /* (146) type_name ::= TIMESTAMP */
-4, /* (147) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */
-2, /* (148) type_name ::= TINYINT UNSIGNED */
-2, /* (149) type_name ::= SMALLINT UNSIGNED */
-2, /* (150) type_name ::= INT UNSIGNED */
-2, /* (151) type_name ::= BIGINT UNSIGNED */
-1, /* (152) type_name ::= JSON */
-4, /* (153) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */
-1, /* (154) type_name ::= MEDIUMBLOB */
-1, /* (155) type_name ::= BLOB */
-4, /* (156) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */
-1, /* (157) type_name ::= DECIMAL */
-4, /* (158) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */
-6, /* (159) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */
0, /* (160) tags_def_opt ::= */
-1, /* (161) tags_def_opt ::= tags_def */
-4, /* (162) tags_def ::= TAGS NK_LP column_def_list NK_RP */
0, /* (163) table_options ::= */
-3, /* (164) table_options ::= table_options COMMENT NK_STRING */
-3, /* (165) table_options ::= table_options FILE_FACTOR NK_FLOAT */
-5, /* (166) table_options ::= table_options ROLLUP NK_LP func_name_list NK_RP */
-3, /* (167) table_options ::= table_options TTL NK_INTEGER */
-5, /* (168) table_options ::= table_options SMA NK_LP col_name_list NK_RP */
-1, /* (169) alter_table_options ::= alter_table_option */
-2, /* (170) alter_table_options ::= alter_table_options alter_table_option */
-2, /* (171) alter_table_option ::= COMMENT NK_STRING */
-2, /* (172) alter_table_option ::= TTL NK_INTEGER */
-1, /* (173) col_name_list ::= col_name */
-3, /* (174) col_name_list ::= col_name_list NK_COMMA col_name */
-1, /* (175) col_name ::= column_name */
-2, /* (176) cmd ::= SHOW DNODES */
-2, /* (177) cmd ::= SHOW USERS */
-2, /* (178) cmd ::= SHOW DATABASES */
-4, /* (179) cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */
-4, /* (180) cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */
-3, /* (181) cmd ::= SHOW db_name_cond_opt VGROUPS */
-2, /* (182) cmd ::= SHOW MNODES */
-2, /* (183) cmd ::= SHOW MODULES */
-2, /* (184) cmd ::= SHOW QNODES */
-2, /* (185) cmd ::= SHOW FUNCTIONS */
-5, /* (186) cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */
-2, /* (187) cmd ::= SHOW STREAMS */
-2, /* (188) cmd ::= SHOW ACCOUNTS */
-2, /* (189) cmd ::= SHOW APPS */
-2, /* (190) cmd ::= SHOW CONNECTIONS */
-2, /* (191) cmd ::= SHOW LICENCE */
-2, /* (192) cmd ::= SHOW GRANTS */
-4, /* (193) cmd ::= SHOW CREATE DATABASE db_name */
-4, /* (194) cmd ::= SHOW CREATE TABLE full_table_name */
-4, /* (195) cmd ::= SHOW CREATE STABLE full_table_name */
-2, /* (196) cmd ::= SHOW QUERIES */
-2, /* (197) cmd ::= SHOW SCORES */
-2, /* (198) cmd ::= SHOW TOPICS */
-2, /* (199) cmd ::= SHOW VARIABLES */
-2, /* (200) cmd ::= SHOW BNODES */
-2, /* (201) cmd ::= SHOW SNODES */
-2, /* (202) cmd ::= SHOW CLUSTER */
-2, /* (203) cmd ::= SHOW TRANSACTIONS */
0, /* (204) db_name_cond_opt ::= */
-2, /* (205) db_name_cond_opt ::= db_name NK_DOT */
0, /* (206) like_pattern_opt ::= */
-2, /* (207) like_pattern_opt ::= LIKE NK_STRING */
-1, /* (208) table_name_cond ::= table_name */
0, /* (209) from_db_opt ::= */
-2, /* (210) from_db_opt ::= FROM db_name */
-1, /* (211) func_name_list ::= func_name */
-3, /* (212) func_name_list ::= func_name_list NK_COMMA func_name */
-1, /* (213) func_name ::= function_name */
-8, /* (214) cmd ::= CREATE SMA INDEX not_exists_opt index_name ON table_name index_options */
-10, /* (215) cmd ::= CREATE FULLTEXT INDEX not_exists_opt index_name ON table_name NK_LP col_name_list NK_RP */
-6, /* (216) cmd ::= DROP INDEX exists_opt index_name ON table_name */
0, /* (217) index_options ::= */
-9, /* (218) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt */
-11, /* (219) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt */
-1, /* (220) func_list ::= func */
-3, /* (221) func_list ::= func_list NK_COMMA func */
-4, /* (222) func ::= function_name NK_LP expression_list NK_RP */
-6, /* (223) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_expression */
-7, /* (224) cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */
-7, /* (225) cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */
-4, /* (226) cmd ::= DROP TOPIC exists_opt topic_name */
-7, /* (227) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */
-2, /* (228) cmd ::= DESC full_table_name */
-2, /* (229) cmd ::= DESCRIBE full_table_name */
-3, /* (230) cmd ::= RESET QUERY CACHE */
-4, /* (231) cmd ::= EXPLAIN analyze_opt explain_options query_expression */
0, /* (232) analyze_opt ::= */
-1, /* (233) analyze_opt ::= ANALYZE */
0, /* (234) explain_options ::= */
-3, /* (235) explain_options ::= explain_options VERBOSE NK_BOOL */
-3, /* (236) explain_options ::= explain_options RATIO NK_FLOAT */
-6, /* (237) cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP */
-10, /* (238) cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */
-4, /* (239) cmd ::= DROP FUNCTION exists_opt function_name */
0, /* (240) agg_func_opt ::= */
-1, /* (241) agg_func_opt ::= AGGREGATE */
0, /* (242) bufsize_opt ::= */
-2, /* (243) bufsize_opt ::= BUFSIZE NK_INTEGER */
-8, /* (244) cmd ::= CREATE STREAM not_exists_opt stream_name stream_options into_opt AS query_expression */
-4, /* (245) cmd ::= DROP STREAM exists_opt stream_name */
0, /* (246) into_opt ::= */
-2, /* (247) into_opt ::= INTO full_table_name */
0, /* (248) stream_options ::= */
-3, /* (249) stream_options ::= stream_options TRIGGER AT_ONCE */
-3, /* (250) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */
-3, /* (251) stream_options ::= stream_options WATERMARK duration_literal */
-3, /* (252) cmd ::= KILL CONNECTION NK_INTEGER */
-3, /* (253) cmd ::= KILL QUERY NK_INTEGER */
-3, /* (254) cmd ::= KILL TRANSACTION NK_INTEGER */
-4, /* (255) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */
-4, /* (256) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */
-3, /* (257) cmd ::= SPLIT VGROUP NK_INTEGER */
-2, /* (258) dnode_list ::= DNODE NK_INTEGER */
-3, /* (259) dnode_list ::= dnode_list DNODE NK_INTEGER */
-3, /* (260) cmd ::= SYNCDB db_name REPLICA */
-1, /* (261) cmd ::= query_expression */
-1, /* (262) literal ::= NK_INTEGER */
-1, /* (263) literal ::= NK_FLOAT */
-1, /* (264) literal ::= NK_STRING */
-1, /* (265) literal ::= NK_BOOL */
-2, /* (266) literal ::= TIMESTAMP NK_STRING */
-1, /* (267) literal ::= duration_literal */
-1, /* (268) literal ::= NULL */
-1, /* (269) literal ::= NK_QUESTION */
-1, /* (270) duration_literal ::= NK_VARIABLE */
-1, /* (271) signed ::= NK_INTEGER */
-2, /* (272) signed ::= NK_PLUS NK_INTEGER */
-2, /* (273) signed ::= NK_MINUS NK_INTEGER */
-1, /* (274) signed ::= NK_FLOAT */
-2, /* (275) signed ::= NK_PLUS NK_FLOAT */
-2, /* (276) signed ::= NK_MINUS NK_FLOAT */
-1, /* (277) signed_literal ::= signed */
-1, /* (278) signed_literal ::= NK_STRING */
-1, /* (279) signed_literal ::= NK_BOOL */
-2, /* (280) signed_literal ::= TIMESTAMP NK_STRING */
-1, /* (281) signed_literal ::= duration_literal */
-1, /* (282) signed_literal ::= NULL */
-1, /* (283) signed_literal ::= literal_func */
-1, /* (284) literal_list ::= signed_literal */
-3, /* (285) literal_list ::= literal_list NK_COMMA signed_literal */
-1, /* (286) db_name ::= NK_ID */
-1, /* (287) table_name ::= NK_ID */
-1, /* (288) column_name ::= NK_ID */
-1, /* (289) function_name ::= NK_ID */
-1, /* (290) table_alias ::= NK_ID */
-1, /* (291) column_alias ::= NK_ID */
-1, /* (292) user_name ::= NK_ID */
-1, /* (293) index_name ::= NK_ID */
-1, /* (294) topic_name ::= NK_ID */
-1, /* (295) stream_name ::= NK_ID */
-1, /* (296) cgroup_name ::= NK_ID */
-1, /* (297) expression ::= literal */
-1, /* (298) expression ::= pseudo_column */
-1, /* (299) expression ::= column_reference */
-1, /* (300) expression ::= function_expression */
-1, /* (301) expression ::= subquery */
-3, /* (302) expression ::= NK_LP expression NK_RP */
-2, /* (303) expression ::= NK_PLUS expression */
-2, /* (304) expression ::= NK_MINUS expression */
-3, /* (305) expression ::= expression NK_PLUS expression */
-3, /* (306) expression ::= expression NK_MINUS expression */
-3, /* (307) expression ::= expression NK_STAR expression */
-3, /* (308) expression ::= expression NK_SLASH expression */
-3, /* (309) expression ::= expression NK_REM expression */
-3, /* (310) expression ::= column_reference NK_ARROW NK_STRING */
-1, /* (311) expression_list ::= expression */
-3, /* (312) expression_list ::= expression_list NK_COMMA expression */
-1, /* (313) column_reference ::= column_name */
-3, /* (314) column_reference ::= table_name NK_DOT column_name */
-1, /* (315) pseudo_column ::= ROWTS */
-1, /* (316) pseudo_column ::= TBNAME */
-3, /* (317) pseudo_column ::= table_name NK_DOT TBNAME */
-1, /* (318) pseudo_column ::= QSTARTTS */
-1, /* (319) pseudo_column ::= QENDTS */
-1, /* (320) pseudo_column ::= WSTARTTS */
-1, /* (321) pseudo_column ::= WENDTS */
-1, /* (322) pseudo_column ::= WDURATION */
-4, /* (323) function_expression ::= function_name NK_LP expression_list NK_RP */
-4, /* (324) function_expression ::= star_func NK_LP star_func_para_list NK_RP */
-6, /* (325) function_expression ::= CAST NK_LP expression AS type_name NK_RP */
-1, /* (326) function_expression ::= literal_func */
-3, /* (327) literal_func ::= noarg_func NK_LP NK_RP */
-1, /* (328) literal_func ::= NOW */
-1, /* (329) noarg_func ::= NOW */
-1, /* (330) noarg_func ::= TODAY */
-1, /* (331) noarg_func ::= TIMEZONE */
-1, /* (332) star_func ::= COUNT */
-1, /* (333) star_func ::= FIRST */
-1, /* (334) star_func ::= LAST */
-1, /* (335) star_func ::= LAST_ROW */
-1, /* (336) star_func_para_list ::= NK_STAR */
-1, /* (337) star_func_para_list ::= other_para_list */
-1, /* (338) other_para_list ::= star_func_para */
-3, /* (339) other_para_list ::= other_para_list NK_COMMA star_func_para */
-1, /* (340) star_func_para ::= expression */
-3, /* (341) star_func_para ::= table_name NK_DOT NK_STAR */
-3, /* (342) predicate ::= expression compare_op expression */
-5, /* (343) predicate ::= expression BETWEEN expression AND expression */
-6, /* (344) predicate ::= expression NOT BETWEEN expression AND expression */
-3, /* (345) predicate ::= expression IS NULL */
-4, /* (346) predicate ::= expression IS NOT NULL */
-3, /* (347) predicate ::= expression in_op in_predicate_value */
-1, /* (348) compare_op ::= NK_LT */
-1, /* (349) compare_op ::= NK_GT */
-1, /* (350) compare_op ::= NK_LE */
-1, /* (351) compare_op ::= NK_GE */
-1, /* (352) compare_op ::= NK_NE */
-1, /* (353) compare_op ::= NK_EQ */
-1, /* (354) compare_op ::= LIKE */
-2, /* (355) compare_op ::= NOT LIKE */
-1, /* (356) compare_op ::= MATCH */
-1, /* (357) compare_op ::= NMATCH */
-1, /* (358) compare_op ::= CONTAINS */
-1, /* (359) in_op ::= IN */
-2, /* (360) in_op ::= NOT IN */
-3, /* (361) in_predicate_value ::= NK_LP expression_list NK_RP */
-1, /* (362) boolean_value_expression ::= boolean_primary */
-2, /* (363) boolean_value_expression ::= NOT boolean_primary */
-3, /* (364) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */
-3, /* (365) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */
-1, /* (366) boolean_primary ::= predicate */
-3, /* (367) boolean_primary ::= NK_LP boolean_value_expression NK_RP */
-1, /* (368) common_expression ::= expression */
-1, /* (369) common_expression ::= boolean_value_expression */
-2, /* (370) from_clause ::= FROM table_reference_list */
-1, /* (371) table_reference_list ::= table_reference */
-3, /* (372) table_reference_list ::= table_reference_list NK_COMMA table_reference */
-1, /* (373) table_reference ::= table_primary */
-1, /* (374) table_reference ::= joined_table */
-2, /* (375) table_primary ::= table_name alias_opt */
-4, /* (376) table_primary ::= db_name NK_DOT table_name alias_opt */
-2, /* (377) table_primary ::= subquery alias_opt */
-1, /* (378) table_primary ::= parenthesized_joined_table */
0, /* (379) alias_opt ::= */
-1, /* (380) alias_opt ::= table_alias */
-2, /* (381) alias_opt ::= AS table_alias */
-3, /* (382) parenthesized_joined_table ::= NK_LP joined_table NK_RP */
-3, /* (383) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */
-6, /* (384) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */
0, /* (385) join_type ::= */
-1, /* (386) join_type ::= INNER */
-9, /* (387) query_specification ::= SELECT set_quantifier_opt select_list from_clause where_clause_opt partition_by_clause_opt twindow_clause_opt group_by_clause_opt having_clause_opt */
0, /* (388) set_quantifier_opt ::= */
-1, /* (389) set_quantifier_opt ::= DISTINCT */
-1, /* (390) set_quantifier_opt ::= ALL */
-1, /* (391) select_list ::= NK_STAR */
-1, /* (392) select_list ::= select_sublist */
-1, /* (393) select_sublist ::= select_item */
-3, /* (394) select_sublist ::= select_sublist NK_COMMA select_item */
-1, /* (395) select_item ::= common_expression */
-2, /* (396) select_item ::= common_expression column_alias */
-3, /* (397) select_item ::= common_expression AS column_alias */
-3, /* (398) select_item ::= table_name NK_DOT NK_STAR */
0, /* (399) where_clause_opt ::= */
-2, /* (400) where_clause_opt ::= WHERE search_condition */
0, /* (401) partition_by_clause_opt ::= */
-3, /* (402) partition_by_clause_opt ::= PARTITION BY expression_list */
0, /* (403) twindow_clause_opt ::= */
-6, /* (404) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */
-4, /* (405) twindow_clause_opt ::= STATE_WINDOW NK_LP expression NK_RP */
-6, /* (406) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */
-8, /* (407) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */
0, /* (408) sliding_opt ::= */
-4, /* (409) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */
0, /* (410) fill_opt ::= */
-4, /* (411) fill_opt ::= FILL NK_LP fill_mode NK_RP */
-6, /* (412) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */
-1, /* (413) fill_mode ::= NONE */
-1, /* (414) fill_mode ::= PREV */
-1, /* (415) fill_mode ::= NULL */
-1, /* (416) fill_mode ::= LINEAR */
-1, /* (417) fill_mode ::= NEXT */
0, /* (418) group_by_clause_opt ::= */
-3, /* (419) group_by_clause_opt ::= GROUP BY group_by_list */
-1, /* (420) group_by_list ::= expression */
-3, /* (421) group_by_list ::= group_by_list NK_COMMA expression */
0, /* (422) having_clause_opt ::= */
-2, /* (423) having_clause_opt ::= HAVING search_condition */
-4, /* (424) query_expression ::= query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt */
-1, /* (425) query_expression_body ::= query_primary */
-4, /* (426) query_expression_body ::= query_expression_body UNION ALL query_expression_body */
-3, /* (427) query_expression_body ::= query_expression_body UNION query_expression_body */
-1, /* (428) query_primary ::= query_specification */
-6, /* (429) query_primary ::= NK_LP query_expression_body order_by_clause_opt slimit_clause_opt limit_clause_opt NK_RP */
0, /* (430) order_by_clause_opt ::= */
-3, /* (431) order_by_clause_opt ::= ORDER BY sort_specification_list */
0, /* (432) slimit_clause_opt ::= */
-2, /* (433) slimit_clause_opt ::= SLIMIT NK_INTEGER */
-4, /* (434) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */
-4, /* (435) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */
0, /* (436) limit_clause_opt ::= */
-2, /* (437) limit_clause_opt ::= LIMIT NK_INTEGER */
-4, /* (438) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */
-4, /* (439) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */
-3, /* (440) subquery ::= NK_LP query_expression NK_RP */
-1, /* (441) search_condition ::= common_expression */
-1, /* (442) sort_specification_list ::= sort_specification */
-3, /* (443) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */
-3, /* (444) sort_specification ::= expression ordering_specification_opt null_ordering_opt */
0, /* (445) ordering_specification_opt ::= */
-1, /* (446) ordering_specification_opt ::= ASC */
-1, /* (447) ordering_specification_opt ::= DESC */
0, /* (448) null_ordering_opt ::= */
-2, /* (449) null_ordering_opt ::= NULLS FIRST */
-2, /* (450) null_ordering_opt ::= NULLS LAST */
}; };
static void yy_accept(yyParser*); /* Forward Declaration */ static void yy_accept(yyParser*); /* Forward Declaration */
...@@ -3035,14 +3512,17 @@ static YYACTIONTYPE yy_reduce( ...@@ -3035,14 +3512,17 @@ static YYACTIONTYPE yy_reduce(
yymsp = yypParser->yytos; yymsp = yypParser->yytos;
#ifndef NDEBUG #ifndef NDEBUG
if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){
yysize = yyRuleInfo[yyruleno].nrhs; yysize = yyRuleInfoNRhs[yyruleno];
if( yysize ){ 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, yyTracePrompt,
yyruleno, yyRuleName[yyruleno], yymsp[yysize].stateno); yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action",
yymsp[yysize].stateno);
}else{ }else{
fprintf(yyTraceFILE, "%sReduce %d [%s].\n", fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n",
yyTracePrompt, yyruleno, yyRuleName[yyruleno]); yyTracePrompt, yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action");
} }
} }
#endif /* NDEBUG */ #endif /* NDEBUG */
...@@ -3050,7 +3530,7 @@ static YYACTIONTYPE yy_reduce( ...@@ -3050,7 +3530,7 @@ static YYACTIONTYPE yy_reduce(
/* Check that the stack is large enough to grow by a single entry /* 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 ** if the RHS of the rule is empty. This ensures that there is room
** enough on the stack to push the LHS value */ ** enough on the stack to push the LHS value */
if( yyRuleInfo[yyruleno].nrhs==0 ){ if( yyRuleInfoNRhs[yyruleno]==0 ){
#ifdef YYTRACKMAXSTACKDEPTH #ifdef YYTRACKMAXSTACKDEPTH
if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){ if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
yypParser->yyhwm++; yypParser->yyhwm++;
...@@ -4406,9 +4886,9 @@ static YYACTIONTYPE yy_reduce( ...@@ -4406,9 +4886,9 @@ static YYACTIONTYPE yy_reduce(
break; break;
/********** End reduce actions ************************************************/ /********** End reduce actions ************************************************/
}; };
assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) ); assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) );
yygoto = yyRuleInfo[yyruleno].lhs; yygoto = yyRuleInfoLhs[yyruleno];
yysize = yyRuleInfo[yyruleno].nrhs; yysize = yyRuleInfoNRhs[yyruleno];
yyact = yy_find_reduce_action(yymsp[yysize].stateno,(YYCODETYPE)yygoto); yyact = yy_find_reduce_action(yymsp[yysize].stateno,(YYCODETYPE)yygoto);
/* There are no SHIFTREDUCE actions on nonterminals because the table /* There are no SHIFTREDUCE actions on nonterminals because the table
...@@ -4695,11 +5175,10 @@ void Parse( ...@@ -4695,11 +5175,10 @@ void Parse(
*/ */
int ParseFallback(int iToken){ int ParseFallback(int iToken){
#ifdef YYFALLBACK #ifdef YYFALLBACK
if( iToken<(int)(sizeof(yyFallback)/sizeof(yyFallback[0])) ){ assert( iToken<(int)(sizeof(yyFallback)/sizeof(yyFallback[0])) );
return yyFallback[iToken]; return yyFallback[iToken];
}
#else #else
(void)iToken; (void)iToken;
#endif
return 0; return 0;
#endif
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册