diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index fc630cfdc0..a09c87eea8 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -267,76 +267,78 @@ #define TK_BY 249 #define TK_SESSION 250 #define TK_STATE_WINDOW 251 -#define TK_SLIDING 252 -#define TK_FILL 253 -#define TK_VALUE 254 -#define TK_NONE 255 -#define TK_PREV 256 -#define TK_LINEAR 257 -#define TK_NEXT 258 -#define TK_HAVING 259 -#define TK_RANGE 260 -#define TK_EVERY 261 -#define TK_ORDER 262 -#define TK_SLIMIT 263 -#define TK_SOFFSET 264 -#define TK_LIMIT 265 -#define TK_OFFSET 266 -#define TK_ASC 267 -#define TK_NULLS 268 -#define TK_ABORT 269 -#define TK_AFTER 270 -#define TK_ATTACH 271 -#define TK_BEFORE 272 -#define TK_BEGIN 273 -#define TK_BITAND 274 -#define TK_BITNOT 275 -#define TK_BITOR 276 -#define TK_BLOCKS 277 -#define TK_CHANGE 278 -#define TK_COMMA 279 -#define TK_COMPACT 280 -#define TK_CONCAT 281 -#define TK_CONFLICT 282 -#define TK_COPY 283 -#define TK_DEFERRED 284 -#define TK_DELIMITERS 285 -#define TK_DETACH 286 -#define TK_DIVIDE 287 -#define TK_DOT 288 -#define TK_EACH 289 -#define TK_FAIL 290 -#define TK_FILE 291 -#define TK_FOR 292 -#define TK_GLOB 293 -#define TK_ID 294 -#define TK_IMMEDIATE 295 -#define TK_IMPORT 296 -#define TK_INITIALLY 297 -#define TK_INSTEAD 298 -#define TK_ISNULL 299 -#define TK_KEY 300 -#define TK_MODULES 301 -#define TK_NK_BITNOT 302 -#define TK_NK_SEMI 303 -#define TK_NOTNULL 304 -#define TK_OF 305 -#define TK_PLUS 306 -#define TK_PRIVILEGE 307 -#define TK_RAISE 308 -#define TK_REPLACE 309 -#define TK_RESTRICT 310 -#define TK_ROW 311 -#define TK_SEMI 312 -#define TK_STAR 313 -#define TK_STATEMENT 314 -#define TK_STRING 315 -#define TK_TIMES 316 -#define TK_UPDATE 317 -#define TK_VALUES 318 -#define TK_VARIABLE 319 -#define TK_VIEW 320 -#define TK_WAL 321 +#define TK_EVENT_WINDOW 252 +#define TK_START 253 +#define TK_SLIDING 254 +#define TK_FILL 255 +#define TK_VALUE 256 +#define TK_NONE 257 +#define TK_PREV 258 +#define TK_LINEAR 259 +#define TK_NEXT 260 +#define TK_HAVING 261 +#define TK_RANGE 262 +#define TK_EVERY 263 +#define TK_ORDER 264 +#define TK_SLIMIT 265 +#define TK_SOFFSET 266 +#define TK_LIMIT 267 +#define TK_OFFSET 268 +#define TK_ASC 269 +#define TK_NULLS 270 +#define TK_ABORT 271 +#define TK_AFTER 272 +#define TK_ATTACH 273 +#define TK_BEFORE 274 +#define TK_BEGIN 275 +#define TK_BITAND 276 +#define TK_BITNOT 277 +#define TK_BITOR 278 +#define TK_BLOCKS 279 +#define TK_CHANGE 280 +#define TK_COMMA 281 +#define TK_COMPACT 282 +#define TK_CONCAT 283 +#define TK_CONFLICT 284 +#define TK_COPY 285 +#define TK_DEFERRED 286 +#define TK_DELIMITERS 287 +#define TK_DETACH 288 +#define TK_DIVIDE 289 +#define TK_DOT 290 +#define TK_EACH 291 +#define TK_FAIL 292 +#define TK_FILE 293 +#define TK_FOR 294 +#define TK_GLOB 295 +#define TK_ID 296 +#define TK_IMMEDIATE 297 +#define TK_IMPORT 298 +#define TK_INITIALLY 299 +#define TK_INSTEAD 300 +#define TK_ISNULL 301 +#define TK_KEY 302 +#define TK_MODULES 303 +#define TK_NK_BITNOT 304 +#define TK_NK_SEMI 305 +#define TK_NOTNULL 306 +#define TK_OF 307 +#define TK_PLUS 308 +#define TK_PRIVILEGE 309 +#define TK_RAISE 310 +#define TK_REPLACE 311 +#define TK_RESTRICT 312 +#define TK_ROW 313 +#define TK_SEMI 314 +#define TK_STAR 315 +#define TK_STATEMENT 316 +#define TK_STRING 317 +#define TK_TIMES 318 +#define TK_UPDATE 319 +#define TK_VALUES 320 +#define TK_VARIABLE 321 +#define TK_VIEW 322 +#define TK_WAL 323 #define TK_NK_SPACE 600 #define TK_NK_COMMENT 601 diff --git a/include/libs/nodes/nodes.h b/include/libs/nodes/nodes.h index 412054b13e..1f266cd0ef 100644 --- a/include/libs/nodes/nodes.h +++ b/include/libs/nodes/nodes.h @@ -112,6 +112,7 @@ typedef enum ENodeType { QUERY_NODE_COLUMN_REF, QUERY_NODE_WHEN_THEN, QUERY_NODE_CASE_WHEN, + QUERY_NODE_EVENT_WINDOW, // Statement nodes are used in parser and planner module. QUERY_NODE_SET_OPERATOR = 100, @@ -265,7 +266,9 @@ typedef enum ENodeType { QUERY_NODE_PHYSICAL_PLAN_DELETE, QUERY_NODE_PHYSICAL_SUBPLAN, QUERY_NODE_PHYSICAL_PLAN, - QUERY_NODE_PHYSICAL_PLAN_TABLE_COUNT_SCAN + QUERY_NODE_PHYSICAL_PLAN_TABLE_COUNT_SCAN, + QUERY_NODE_PHYSICAL_PLAN_MERGE_EVENT, + QUERY_NODE_PHYSICAL_PLAN_STREAM_EVENT } ENodeType; /** diff --git a/include/libs/nodes/plannodes.h b/include/libs/nodes/plannodes.h index d62bdb93cf..6f700c75ed 100644 --- a/include/libs/nodes/plannodes.h +++ b/include/libs/nodes/plannodes.h @@ -185,7 +185,12 @@ typedef struct SMergeLogicNode { bool groupSort; } SMergeLogicNode; -typedef enum EWindowType { WINDOW_TYPE_INTERVAL = 1, WINDOW_TYPE_SESSION, WINDOW_TYPE_STATE } EWindowType; +typedef enum EWindowType { + WINDOW_TYPE_INTERVAL = 1, + WINDOW_TYPE_SESSION, + WINDOW_TYPE_STATE, + WINDOW_TYPE_EVENT +} EWindowType; typedef enum EWindowAlgorithm { INTERVAL_ALGO_HASH = 1, @@ -212,6 +217,8 @@ typedef struct SWindowLogicNode { SNode* pTspk; SNode* pTsEnd; SNode* pStateExpr; + SNode* pStartCond; + SNode* pEndCond; int8_t triggerType; int64_t watermark; int64_t deleteMark; @@ -498,6 +505,14 @@ typedef struct SStateWinodwPhysiNode { typedef SStateWinodwPhysiNode SStreamStateWinodwPhysiNode; +typedef struct SEventWinodwPhysiNode { + SWinodwPhysiNode window; + SNode* pStartCond; + SNode* pEndCond; +} SEventWinodwPhysiNode; + +typedef SEventWinodwPhysiNode SStreamEventWinodwPhysiNode; + typedef struct SSortPhysiNode { SPhysiNode node; SNodeList* pExprs; // these are expression list of order_by_clause and parameter expression of aggregate function diff --git a/include/libs/nodes/querynodes.h b/include/libs/nodes/querynodes.h index 9f980fd0db..5805f4968b 100644 --- a/include/libs/nodes/querynodes.h +++ b/include/libs/nodes/querynodes.h @@ -223,6 +223,13 @@ typedef struct SIntervalWindowNode { SNode* pFill; } SIntervalWindowNode; +typedef struct SEventWindowNode { + ENodeType type; // QUERY_NODE_EVENT_WINDOW + SNode* pCol; // timestamp primary key + SNode* pStartCond; + SNode* pEndCond; +} SEventWindowNode; + typedef enum EFillMode { FILL_MODE_NONE = 1, FILL_MODE_VALUE, diff --git a/source/libs/nodes/src/nodesCloneFuncs.c b/source/libs/nodes/src/nodesCloneFuncs.c index 5d20dbd764..aab018c879 100644 --- a/source/libs/nodes/src/nodesCloneFuncs.c +++ b/source/libs/nodes/src/nodesCloneFuncs.c @@ -295,6 +295,13 @@ static int32_t stateWindowNodeCopy(const SStateWindowNode* pSrc, SStateWindowNod return TSDB_CODE_SUCCESS; } +static int32_t eventWindowNodeCopy(const SEventWindowNode* pSrc, SEventWindowNode* pDst) { + CLONE_NODE_FIELD(pCol); + CLONE_NODE_FIELD(pStartCond); + CLONE_NODE_FIELD(pEndCond); + return TSDB_CODE_SUCCESS; +} + static int32_t sessionWindowNodeCopy(const SSessionWindowNode* pSrc, SSessionWindowNode* pDst) { CLONE_NODE_FIELD_EX(pCol, SColumnNode*); CLONE_NODE_FIELD_EX(pGap, SValueNode*); @@ -462,6 +469,8 @@ static int32_t logicWindowCopy(const SWindowLogicNode* pSrc, SWindowLogicNode* p CLONE_NODE_FIELD(pTspk); CLONE_NODE_FIELD(pTsEnd); CLONE_NODE_FIELD(pStateExpr); + CLONE_NODE_FIELD(pStartCond); + CLONE_NODE_FIELD(pEndCond); COPY_SCALAR_FIELD(triggerType); COPY_SCALAR_FIELD(watermark); COPY_SCALAR_FIELD(deleteMark); @@ -709,6 +718,9 @@ SNode* nodesCloneNode(const SNode* pNode) { case QUERY_NODE_STATE_WINDOW: code = stateWindowNodeCopy((const SStateWindowNode*)pNode, (SStateWindowNode*)pDst); break; + case QUERY_NODE_EVENT_WINDOW: + code = eventWindowNodeCopy((const SEventWindowNode*)pNode, (SEventWindowNode*)pDst); + break; case QUERY_NODE_SESSION_WINDOW: code = sessionWindowNodeCopy((const SSessionWindowNode*)pNode, (SSessionWindowNode*)pDst); break; diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index d062ed34c4..38884a37e0 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -85,6 +85,8 @@ const char* nodesNodeName(ENodeType type) { return "WhenThen"; case QUERY_NODE_CASE_WHEN: return "CaseWhen"; + case QUERY_NODE_EVENT_WINDOW: + return "EventWindow"; case QUERY_NODE_SET_OPERATOR: return "SetOperator"; case QUERY_NODE_SELECT_STMT: @@ -233,6 +235,10 @@ const char* nodesNodeName(ENodeType type) { return "PhysiLastRowScan"; case QUERY_NODE_PHYSICAL_PLAN_TABLE_COUNT_SCAN: return "PhysiTableCountScan"; + case QUERY_NODE_PHYSICAL_PLAN_MERGE_EVENT: + return "PhysiMergeEventWindow"; + case QUERY_NODE_PHYSICAL_PLAN_STREAM_EVENT: + return "PhysiStreamEventWindow"; case QUERY_NODE_PHYSICAL_PLAN_PROJECT: return "PhysiProject"; case QUERY_NODE_PHYSICAL_PLAN_MERGE_JOIN: @@ -2272,6 +2278,37 @@ static int32_t jsonToPhysiStateWindowNode(const SJson* pJson, void* pObj) { return code; } +static const char* jkEventWindowPhysiPlanStartCond = "StartCond"; +static const char* jkEventWindowPhysiPlanEndCond = "EndCond"; + +static int32_t physiEventWindowNodeToJson(const void* pObj, SJson* pJson) { + const SEventWinodwPhysiNode* pNode = (const SEventWinodwPhysiNode*)pObj; + + int32_t code = physiWindowNodeToJson(pObj, pJson); + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddObject(pJson, jkEventWindowPhysiPlanStartCond, nodeToJson, pNode->pStartCond); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddObject(pJson, jkEventWindowPhysiPlanEndCond, nodeToJson, pNode->pEndCond); + } + + return code; +} + +static int32_t jsonToPhysiEventWindowNode(const SJson* pJson, void* pObj) { + SEventWinodwPhysiNode* pNode = (SEventWinodwPhysiNode*)pObj; + + int32_t code = jsonToPhysiWindowNode(pJson, pObj); + if (TSDB_CODE_SUCCESS == code) { + code = jsonToNodeObject(pJson, jkEventWindowPhysiPlanStartCond, &pNode->pStartCond); + } + if (TSDB_CODE_SUCCESS == code) { + code = jsonToNodeObject(pJson, jkEventWindowPhysiPlanEndCond, &pNode->pEndCond); + } + + return code; +} + static const char* jkPartitionPhysiPlanExprs = "Exprs"; static const char* jkPartitionPhysiPlanPartitionKeys = "PartitionKeys"; static const char* jkPartitionPhysiPlanTargets = "Targets"; @@ -3660,6 +3697,36 @@ static int32_t jsonToSessionWindowNode(const SJson* pJson, void* pObj) { return code; } +static const char* jkEventWindowTsPrimaryKey = "TsPrimaryKey"; +static const char* jkEventWindowStartCond = "StartCond"; +static const char* jkEventWindowEndCond = "EndCond"; + +static int32_t eventWindowNodeToJson(const void* pObj, SJson* pJson) { + const SEventWindowNode* pNode = (const SEventWindowNode*)pObj; + + int32_t code = tjsonAddObject(pJson, jkEventWindowTsPrimaryKey, nodeToJson, pNode->pCol); + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddObject(pJson, jkEventWindowStartCond, nodeToJson, pNode->pStartCond); + } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddObject(pJson, jkEventWindowEndCond, nodeToJson, pNode->pEndCond); + } + return code; +} + +static int32_t jsonToEventWindowNode(const SJson* pJson, void* pObj) { + SEventWindowNode* pNode = (SEventWindowNode*)pObj; + + int32_t code = jsonToNodeObject(pJson, jkEventWindowTsPrimaryKey, &pNode->pCol); + if (TSDB_CODE_SUCCESS == code) { + code = jsonToNodeObject(pJson, jkEventWindowStartCond, &pNode->pStartCond); + } + if (TSDB_CODE_SUCCESS == code) { + code = jsonToNodeObject(pJson, jkEventWindowEndCond, &pNode->pEndCond); + } + return code; +} + static const char* jkIntervalWindowInterval = "Interval"; static const char* jkIntervalWindowOffset = "Offset"; static const char* jkIntervalWindowSliding = "Sliding"; @@ -4615,6 +4682,8 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { return whenThenNodeToJson(pObj, pJson); case QUERY_NODE_CASE_WHEN: return caseWhenNodeToJson(pObj, pJson); + case QUERY_NODE_EVENT_WINDOW: + return eventWindowNodeToJson(pObj, pJson); case QUERY_NODE_SET_OPERATOR: return setOperatorToJson(pObj, pJson); case QUERY_NODE_SELECT_STMT: @@ -4712,6 +4781,9 @@ static int32_t specificNodeToJson(const void* pObj, SJson* pJson) { case QUERY_NODE_PHYSICAL_PLAN_MERGE_STATE: case QUERY_NODE_PHYSICAL_PLAN_STREAM_STATE: return physiStateWindowNodeToJson(pObj, pJson); + case QUERY_NODE_PHYSICAL_PLAN_MERGE_EVENT: + case QUERY_NODE_PHYSICAL_PLAN_STREAM_EVENT: + return physiEventWindowNodeToJson(pObj, pJson); case QUERY_NODE_PHYSICAL_PLAN_PARTITION: return physiPartitionNodeToJson(pObj, pJson); case QUERY_NODE_PHYSICAL_PLAN_STREAM_PARTITION: @@ -4787,6 +4859,8 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) { return jsonToWhenThenNode(pJson, pObj); case QUERY_NODE_CASE_WHEN: return jsonToCaseWhenNode(pJson, pObj); + case QUERY_NODE_EVENT_WINDOW: + return jsonToEventWindowNode(pJson, pObj); case QUERY_NODE_SET_OPERATOR: return jsonToSetOperator(pJson, pObj); case QUERY_NODE_SELECT_STMT: @@ -4871,6 +4945,9 @@ static int32_t jsonToSpecificNode(const SJson* pJson, void* pObj) { case QUERY_NODE_PHYSICAL_PLAN_MERGE_STATE: case QUERY_NODE_PHYSICAL_PLAN_STREAM_STATE: return jsonToPhysiStateWindowNode(pJson, pObj); + case QUERY_NODE_PHYSICAL_PLAN_MERGE_EVENT: + case QUERY_NODE_PHYSICAL_PLAN_STREAM_EVENT: + return jsonToPhysiEventWindowNode(pJson, pObj); case QUERY_NODE_PHYSICAL_PLAN_PARTITION: return jsonToPhysiPartitionNode(pJson, pObj); case QUERY_NODE_PHYSICAL_PLAN_STREAM_PARTITION: diff --git a/source/libs/nodes/src/nodesMsgFuncs.c b/source/libs/nodes/src/nodesMsgFuncs.c index cc9cb31d18..cb441053ce 100644 --- a/source/libs/nodes/src/nodesMsgFuncs.c +++ b/source/libs/nodes/src/nodesMsgFuncs.c @@ -2927,6 +2927,46 @@ static int32_t msgToPhysiStateWindowNode(STlvDecoder* pDecoder, void* pObj) { return code; } +enum { PHY_EVENT_CODE_WINDOW = 1, PHY_EVENT_CODE_START_COND, PHY_EVENT_CODE_END_COND }; + +static int32_t physiEventWindowNodeToMsg(const void* pObj, STlvEncoder* pEncoder) { + const SEventWinodwPhysiNode* pNode = (const SEventWinodwPhysiNode*)pObj; + + int32_t code = tlvEncodeObj(pEncoder, PHY_EVENT_CODE_WINDOW, physiWindowNodeToMsg, &pNode->window); + if (TSDB_CODE_SUCCESS == code) { + code = tlvEncodeObj(pEncoder, PHY_EVENT_CODE_START_COND, nodeToMsg, pNode->pStartCond); + } + if (TSDB_CODE_SUCCESS == code) { + code = tlvEncodeObj(pEncoder, PHY_EVENT_CODE_END_COND, nodeToMsg, pNode->pEndCond); + } + + return code; +} + +static int32_t msgToPhysiEventWindowNode(STlvDecoder* pDecoder, void* pObj) { + SEventWinodwPhysiNode* pNode = (SEventWinodwPhysiNode*)pObj; + + int32_t code = TSDB_CODE_SUCCESS; + STlv* pTlv = NULL; + tlvForEach(pDecoder, pTlv, code) { + switch (pTlv->type) { + case PHY_EVENT_CODE_WINDOW: + code = tlvDecodeObjFromTlv(pTlv, msgToPhysiWindowNode, &pNode->window); + break; + case PHY_EVENT_CODE_START_COND: + code = msgToNodeFromTlv(pTlv, (void**)&pNode->pStartCond); + break; + case PHY_EVENT_CODE_END_COND: + code = msgToNodeFromTlv(pTlv, (void**)&pNode->pEndCond); + break; + default: + break; + } + } + + return code; +} + enum { PHY_PARTITION_CODE_BASE_NODE = 1, PHY_PARTITION_CODE_EXPR, PHY_PARTITION_CODE_KEYS, PHY_PARTITION_CODE_TARGETS }; static int32_t physiPartitionNodeToMsg(const void* pObj, STlvEncoder* pEncoder) { @@ -3698,6 +3738,10 @@ static int32_t specificNodeToMsg(const void* pObj, STlvEncoder* pEncoder) { case QUERY_NODE_PHYSICAL_PLAN_STREAM_STATE: code = physiStateWindowNodeToMsg(pObj, pEncoder); break; + case QUERY_NODE_PHYSICAL_PLAN_MERGE_EVENT: + case QUERY_NODE_PHYSICAL_PLAN_STREAM_EVENT: + code = physiEventWindowNodeToMsg(pObj, pEncoder); + break; case QUERY_NODE_PHYSICAL_PLAN_PARTITION: code = physiPartitionNodeToMsg(pObj, pEncoder); break; @@ -3837,6 +3881,10 @@ static int32_t msgToSpecificNode(STlvDecoder* pDecoder, void* pObj) { case QUERY_NODE_PHYSICAL_PLAN_STREAM_STATE: code = msgToPhysiStateWindowNode(pDecoder, pObj); break; + case QUERY_NODE_PHYSICAL_PLAN_MERGE_EVENT: + case QUERY_NODE_PHYSICAL_PLAN_STREAM_EVENT: + code = msgToPhysiEventWindowNode(pDecoder, pObj); + break; case QUERY_NODE_PHYSICAL_PLAN_PARTITION: code = msgToPhysiPartitionNode(pDecoder, pObj); break; diff --git a/source/libs/nodes/src/nodesTraverseFuncs.c b/source/libs/nodes/src/nodesTraverseFuncs.c index 106812d55f..ce575ede8a 100644 --- a/source/libs/nodes/src/nodesTraverseFuncs.c +++ b/source/libs/nodes/src/nodesTraverseFuncs.c @@ -165,6 +165,17 @@ static EDealRes dispatchExpr(SNode* pNode, ETraversalOrder order, FNodeWalker wa } break; } + case QUERY_NODE_EVENT_WINDOW: { + SEventWindowNode* pEvent = (SEventWindowNode*)pNode; + res = walkExpr(pEvent->pCol, order, walker, pContext); + if (DEAL_RES_ERROR != res && DEAL_RES_END != res) { + res = walkExpr(pEvent->pStartCond, order, walker, pContext); + } + if (DEAL_RES_ERROR != res && DEAL_RES_END != res) { + res = walkExpr(pEvent->pEndCond, order, walker, pContext); + } + break; + } default: break; } @@ -329,6 +340,17 @@ static EDealRes rewriteExpr(SNode** pRawNode, ETraversalOrder order, FNodeRewrit } break; } + case QUERY_NODE_EVENT_WINDOW: { + SEventWindowNode* pEvent = (SEventWindowNode*)pNode; + res = rewriteExpr(&pEvent->pCol, order, rewriter, pContext); + if (DEAL_RES_ERROR != res && DEAL_RES_END != res) { + res = rewriteExpr(&pEvent->pStartCond, order, rewriter, pContext); + } + if (DEAL_RES_ERROR != res && DEAL_RES_END != res) { + res = rewriteExpr(&pEvent->pEndCond, order, rewriter, pContext); + } + break; + } default: break; } diff --git a/source/libs/nodes/src/nodesUtilFuncs.c b/source/libs/nodes/src/nodesUtilFuncs.c index cd5ae7ad6e..7980c58dcf 100644 --- a/source/libs/nodes/src/nodesUtilFuncs.c +++ b/source/libs/nodes/src/nodesUtilFuncs.c @@ -299,6 +299,8 @@ SNode* nodesMakeNode(ENodeType type) { return makeNode(type, sizeof(SWhenThenNode)); case QUERY_NODE_CASE_WHEN: return makeNode(type, sizeof(SCaseWhenNode)); + case QUERY_NODE_EVENT_WINDOW: + return makeNode(type, sizeof(SEventWindowNode)); case QUERY_NODE_SET_OPERATOR: return makeNode(type, sizeof(SSetOperator)); case QUERY_NODE_SELECT_STMT: @@ -535,6 +537,10 @@ SNode* nodesMakeNode(ENodeType type) { return makeNode(type, sizeof(SStateWinodwPhysiNode)); case QUERY_NODE_PHYSICAL_PLAN_STREAM_STATE: return makeNode(type, sizeof(SStreamStateWinodwPhysiNode)); + case QUERY_NODE_PHYSICAL_PLAN_MERGE_EVENT: + return makeNode(type, sizeof(SEventWinodwPhysiNode)); + case QUERY_NODE_PHYSICAL_PLAN_STREAM_EVENT: + return makeNode(type, sizeof(SStreamEventWinodwPhysiNode)); case QUERY_NODE_PHYSICAL_PLAN_PARTITION: return makeNode(type, sizeof(SPartitionPhysiNode)); case QUERY_NODE_PHYSICAL_PLAN_STREAM_PARTITION: @@ -765,16 +771,23 @@ void nodesDestroyNode(SNode* pNode) { case QUERY_NODE_COLUMN_REF: // no pointer field break; case QUERY_NODE_WHEN_THEN: { - SWhenThenNode* pStmt = (SWhenThenNode*)pNode; - nodesDestroyNode(pStmt->pWhen); - nodesDestroyNode(pStmt->pThen); + SWhenThenNode* pWhenThen = (SWhenThenNode*)pNode; + nodesDestroyNode(pWhenThen->pWhen); + nodesDestroyNode(pWhenThen->pThen); break; } case QUERY_NODE_CASE_WHEN: { - SCaseWhenNode* pStmt = (SCaseWhenNode*)pNode; - nodesDestroyNode(pStmt->pCase); - nodesDestroyNode(pStmt->pElse); - nodesDestroyList(pStmt->pWhenThenList); + SCaseWhenNode* pCaseWhen = (SCaseWhenNode*)pNode; + nodesDestroyNode(pCaseWhen->pCase); + nodesDestroyNode(pCaseWhen->pElse); + nodesDestroyList(pCaseWhen->pWhenThenList); + break; + } + case QUERY_NODE_EVENT_WINDOW: { + SEventWindowNode* pEvent = (SEventWindowNode*)pNode; + nodesDestroyNode(pEvent->pCol); + nodesDestroyNode(pEvent->pStartCond); + nodesDestroyNode(pEvent->pEndCond); break; } case QUERY_NODE_SET_OPERATOR: { @@ -1232,6 +1245,14 @@ void nodesDestroyNode(SNode* pNode) { nodesDestroyNode(pPhyNode->pStateKey); break; } + case QUERY_NODE_PHYSICAL_PLAN_MERGE_EVENT: + case QUERY_NODE_PHYSICAL_PLAN_STREAM_EVENT: { + SEventWinodwPhysiNode* pPhyNode = (SEventWinodwPhysiNode*)pNode; + destroyWinodwPhysiNode((SWinodwPhysiNode*)pPhyNode); + nodesDestroyNode(pPhyNode->pStartCond); + nodesDestroyNode(pPhyNode->pEndCond); + break; + } case QUERY_NODE_PHYSICAL_PLAN_PARTITION: { destroyPartitionPhysiNode((SPartitionPhysiNode*)pNode); break; diff --git a/source/libs/parser/inc/parAst.h b/source/libs/parser/inc/parAst.h index ef67c7536f..c74ec9c147 100644 --- a/source/libs/parser/inc/parAst.h +++ b/source/libs/parser/inc/parAst.h @@ -116,6 +116,7 @@ SNode* createLimitNode(SAstCreateContext* pCxt, const SToken* pLimit, const STok SNode* createOrderByExprNode(SAstCreateContext* pCxt, SNode* pExpr, EOrder order, ENullOrder nullOrder); SNode* createSessionWindowNode(SAstCreateContext* pCxt, SNode* pCol, SNode* pGap); SNode* createStateWindowNode(SAstCreateContext* pCxt, SNode* pExpr); +SNode* createEventWindowNode(SAstCreateContext* pCxt, SNode* pStartCond, SNode* pEndCond); SNode* createIntervalWindowNode(SAstCreateContext* pCxt, SNode* pInterval, SNode* pOffset, SNode* pSliding, SNode* pFill); SNode* createFillNode(SAstCreateContext* pCxt, EFillMode mode, SNode* pValues); diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index c85759446a..343dd855e6 100644 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -964,6 +964,8 @@ twindow_clause_opt(A) ::= twindow_clause_opt(A) ::= INTERVAL NK_LP duration_literal(B) NK_COMMA duration_literal(C) NK_RP sliding_opt(D) fill_opt(E). { A = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, B), releaseRawExprNode(pCxt, C), D, E); } +twindow_clause_opt(A) ::= + EVENT_WINDOW START WITH search_condition(B) END WITH search_condition(C). { A = createEventWindowNode(pCxt, B, C); } sliding_opt(A) ::= . { A = NULL; } sliding_opt(A) ::= SLIDING NK_LP duration_literal(B) NK_RP. { A = releaseRawExprNode(pCxt, B); } diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index b23adaabb5..446f758ed7 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -605,6 +605,20 @@ SNode* createStateWindowNode(SAstCreateContext* pCxt, SNode* pExpr) { return (SNode*)state; } +SNode* createEventWindowNode(SAstCreateContext* pCxt, SNode* pStartCond, SNode* pEndCond) { + CHECK_PARSER_STATUS(pCxt); + SEventWindowNode* pEvent = (SEventWindowNode*)nodesMakeNode(QUERY_NODE_EVENT_WINDOW); + CHECK_OUT_OF_MEM(pEvent); + pEvent->pCol = createPrimaryKeyCol(pCxt, NULL); + if (NULL == pEvent->pCol) { + nodesDestroyNode((SNode*)pEvent); + CHECK_OUT_OF_MEM(NULL); + } + pEvent->pStartCond = pStartCond; + pEvent->pEndCond = pEndCond; + return (SNode*)pEvent; +} + SNode* createIntervalWindowNode(SAstCreateContext* pCxt, SNode* pInterval, SNode* pOffset, SNode* pSliding, SNode* pFill) { CHECK_PARSER_STATUS(pCxt); diff --git a/source/libs/parser/src/parTokenizer.c b/source/libs/parser/src/parTokenizer.c index e62b2f0f5a..1f9e4e9ab1 100644 --- a/source/libs/parser/src/parTokenizer.c +++ b/source/libs/parser/src/parTokenizer.c @@ -90,6 +90,7 @@ static SKeyword keywordTable[] = { {"EXISTS", TK_EXISTS}, {"EXPIRED", TK_EXPIRED}, {"EXPLAIN", TK_EXPLAIN}, + {"EVENT_WINDOW", TK_EVENT_WINDOW}, {"EVERY", TK_EVERY}, {"FILE", TK_FILE}, {"FILL", TK_FILL}, @@ -195,15 +196,16 @@ static SKeyword keywordTable[] = { {"SNODES", TK_SNODES}, {"SOFFSET", TK_SOFFSET}, {"SPLIT", TK_SPLIT}, - {"STT_TRIGGER", TK_STT_TRIGGER}, {"STABLE", TK_STABLE}, {"STABLES", TK_STABLES}, + {"START", TK_START}, {"STATE", TK_STATE}, {"STATE_WINDOW", TK_STATE_WINDOW}, {"STORAGE", TK_STORAGE}, {"STREAM", TK_STREAM}, {"STREAMS", TK_STREAMS}, {"STRICT", TK_STRICT}, + {"STT_TRIGGER", TK_STT_TRIGGER}, {"SUBSCRIBE", TK_SUBSCRIBE}, {"SUBSCRIPTIONS", TK_SUBSCRIPTIONS}, {"SUBTABLE", TK_SUBTABLE}, diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 10e45901e5..d805c76d77 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -3143,6 +3143,15 @@ static int32_t translateSessionWindow(STranslateContext* pCxt, SSelectStmt* pSel return TSDB_CODE_SUCCESS; } +static int32_t translateEventWindow(STranslateContext* pCxt, SSelectStmt* pSelect) { + if (QUERY_NODE_TEMP_TABLE == nodeType(pSelect->pFromTable) && + !isGlobalTimeLineQuery(((STempTableNode*)pSelect->pFromTable)->pSubquery)) { + return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_TIMELINE_QUERY, + "EVENT_WINDOW requires valid time series input"); + } + return TSDB_CODE_SUCCESS; +} + static int32_t translateSpecificWindow(STranslateContext* pCxt, SSelectStmt* pSelect) { switch (nodeType(pSelect->pWindow)) { case QUERY_NODE_STATE_WINDOW: @@ -3151,6 +3160,8 @@ static int32_t translateSpecificWindow(STranslateContext* pCxt, SSelectStmt* pSe return translateSessionWindow(pCxt, pSelect); case QUERY_NODE_INTERVAL_WINDOW: return translateIntervalWindow(pCxt, pSelect); + case QUERY_NODE_EVENT_WINDOW: + return translateEventWindow(pCxt, pSelect); default: break; } diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index a83f85696a..c9dec76a0a 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -104,26 +104,26 @@ #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 457 +#define YYNOCODE 459 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SToken typedef union { int yyinit; ParseTOKENTYPE yy0; EOperatorType yy20; - int8_t yy33; - SAlterOption yy123; - SNode* yy148; - SToken yy199; - EFillMode yy334; - bool yy397; - SNodeList* yy404; - EJoinType yy470; - ENullOrder yy499; - int64_t yy525; - SDataType yy530; - int32_t yy706; - EOrder yy898; + SNode* yy74; + ENullOrder yy109; + SToken yy317; + EOrder yy326; + bool yy335; + int8_t yy449; + int64_t yy531; + EJoinType yy630; + SAlterOption yy767; + EFillMode yy828; + int32_t yy856; + SNodeList* yy874; + SDataType yy898; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -139,17 +139,17 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 709 -#define YYNRULE 539 -#define YYNTOKEN 322 -#define YY_MAX_SHIFT 708 -#define YY_MIN_SHIFTREDUCE 1050 -#define YY_MAX_SHIFTREDUCE 1588 -#define YY_ERROR_ACTION 1589 -#define YY_ACCEPT_ACTION 1590 -#define YY_NO_ACTION 1591 -#define YY_MIN_REDUCE 1592 -#define YY_MAX_REDUCE 2130 +#define YYNSTATE 715 +#define YYNRULE 540 +#define YYNTOKEN 324 +#define YY_MAX_SHIFT 714 +#define YY_MIN_SHIFTREDUCE 1057 +#define YY_MAX_SHIFTREDUCE 1596 +#define YY_ERROR_ACTION 1597 +#define YY_ACCEPT_ACTION 1598 +#define YY_NO_ACTION 1599 +#define YY_MIN_REDUCE 1600 +#define YY_MAX_REDUCE 2139 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -216,693 +216,714 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2410) +#define YY_ACTTAB_COUNT (2586) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 1946, 458, 1735, 459, 1628, 565, 584, 33, 274, 2101, - /* 10 */ 158, 1799, 43, 41, 1519, 1700, 351, 2106, 329, 1857, - /* 20 */ 360, 2101, 1370, 1592, 564, 173, 597, 1797, 352, 2102, - /* 30 */ 566, 1964, 464, 1449, 167, 1368, 155, 2105, 460, 580, - /* 40 */ 52, 2102, 2104, 399, 1915, 1748, 613, 122, 121, 120, - /* 50 */ 119, 118, 117, 116, 115, 114, 1847, 1746, 1444, 227, - /* 60 */ 36, 35, 1776, 16, 42, 40, 39, 38, 37, 1945, - /* 70 */ 1376, 1799, 467, 1980, 459, 1628, 100, 1947, 617, 1949, - /* 80 */ 1950, 612, 565, 607, 596, 545, 2101, 1798, 170, 2101, - /* 90 */ 2033, 1615, 1737, 167, 354, 2029, 12, 58, 597, 1946, - /* 100 */ 1933, 564, 173, 1929, 2107, 173, 2102, 566, 175, 2102, - /* 110 */ 566, 1929, 123, 47, 332, 1846, 2059, 113, 705, 497, - /* 120 */ 112, 111, 110, 109, 108, 107, 106, 105, 104, 1746, - /* 130 */ 1964, 1925, 1931, 1451, 1452, 1915, 1590, 1799, 614, 1925, - /* 140 */ 1931, 343, 607, 1915, 353, 613, 43, 41, 476, 1555, - /* 150 */ 607, 62, 97, 1797, 360, 1723, 1370, 1396, 596, 1946, - /* 160 */ 46, 365, 1425, 1434, 1792, 1794, 132, 1449, 1945, 1368, - /* 170 */ 597, 1102, 1980, 1101, 1738, 100, 1947, 617, 1949, 1950, - /* 180 */ 612, 1371, 607, 1369, 178, 134, 210, 141, 2004, 2033, - /* 190 */ 1964, 258, 1444, 354, 2029, 1793, 1794, 16, 580, 375, - /* 200 */ 596, 1746, 1103, 1915, 1376, 613, 1374, 1375, 405, 1424, - /* 210 */ 1427, 1428, 1429, 1430, 1431, 1432, 1433, 609, 605, 1442, - /* 220 */ 1443, 1445, 1446, 1447, 1448, 1450, 1453, 2, 1945, 58, - /* 230 */ 12, 85, 1980, 1946, 225, 100, 1947, 617, 1949, 1950, - /* 240 */ 612, 545, 607, 58, 1395, 2101, 176, 170, 318, 2033, - /* 250 */ 1083, 80, 705, 354, 2029, 42, 40, 39, 38, 37, - /* 260 */ 2107, 173, 176, 649, 1964, 2102, 566, 1451, 1452, 560, - /* 270 */ 1253, 1254, 614, 1170, 1742, 2060, 46, 1915, 1395, 613, - /* 280 */ 43, 41, 146, 145, 646, 645, 644, 143, 360, 1085, - /* 290 */ 1370, 1088, 1089, 1946, 82, 320, 1425, 1434, 530, 577, - /* 300 */ 528, 1449, 1945, 1368, 597, 1102, 1980, 1101, 1172, 100, - /* 310 */ 1947, 617, 1949, 1950, 612, 1371, 607, 1369, 123, 58, - /* 320 */ 58, 2008, 1397, 2033, 1964, 502, 1444, 354, 2029, 169, - /* 330 */ 131, 16, 614, 1614, 1396, 1746, 1103, 1915, 1376, 613, - /* 340 */ 1374, 1375, 1786, 1424, 1427, 1428, 1429, 1430, 1431, 1432, - /* 350 */ 1433, 609, 605, 1442, 1443, 1445, 1446, 1447, 1448, 1450, - /* 360 */ 1453, 2, 1945, 9, 12, 1946, 1980, 526, 441, 100, - /* 370 */ 1947, 617, 1949, 1950, 612, 2106, 607, 1915, 176, 2101, - /* 380 */ 524, 2121, 522, 2033, 1613, 91, 705, 354, 2029, 255, - /* 390 */ 2041, 576, 176, 124, 575, 2105, 1964, 2101, 2067, 2102, - /* 400 */ 2103, 1451, 1452, 398, 611, 397, 2106, 1739, 157, 1915, - /* 410 */ 1604, 613, 564, 173, 43, 41, 1454, 2102, 566, 1395, - /* 420 */ 1306, 1307, 360, 1397, 1370, 176, 189, 188, 1915, 457, - /* 430 */ 1425, 1434, 462, 1634, 1945, 1449, 577, 1368, 1980, 1661, - /* 440 */ 597, 310, 1947, 617, 1949, 1950, 612, 2048, 607, 1371, - /* 450 */ 1999, 1369, 466, 1612, 403, 462, 1634, 36, 35, 1545, - /* 460 */ 1444, 42, 40, 39, 38, 37, 257, 131, 176, 176, - /* 470 */ 1611, 1746, 1376, 2045, 1374, 1375, 583, 1424, 1427, 1428, - /* 480 */ 1429, 1430, 1431, 1432, 1433, 609, 605, 1442, 1443, 1445, - /* 490 */ 1446, 1447, 1448, 1450, 1453, 2, 133, 1915, 44, 2004, - /* 500 */ 1578, 1946, 1370, 555, 512, 511, 510, 552, 1543, 1544, - /* 510 */ 1546, 1547, 128, 506, 1915, 1368, 651, 505, 545, 1610, - /* 520 */ 705, 1398, 2101, 504, 509, 579, 171, 2041, 2042, 503, - /* 530 */ 129, 2046, 1964, 508, 507, 1451, 1452, 2107, 173, 226, - /* 540 */ 614, 597, 2102, 566, 1799, 1915, 1535, 613, 43, 41, - /* 550 */ 1376, 364, 80, 676, 674, 404, 360, 1609, 1370, 597, - /* 560 */ 1797, 1946, 597, 1915, 1425, 1434, 127, 257, 1394, 1449, - /* 570 */ 1945, 1368, 1746, 413, 1980, 1741, 427, 100, 1947, 617, - /* 580 */ 1949, 1950, 612, 1371, 607, 1369, 561, 556, 642, 2006, - /* 590 */ 1746, 2033, 1964, 1746, 1444, 354, 2029, 1480, 705, 1842, - /* 600 */ 614, 1915, 1347, 1348, 9, 1915, 1376, 613, 1374, 1375, - /* 610 */ 181, 1424, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 609, - /* 620 */ 605, 1442, 1443, 1445, 1446, 1447, 1448, 1450, 1453, 2, - /* 630 */ 1945, 517, 44, 597, 1980, 144, 597, 100, 1947, 617, - /* 640 */ 1949, 1950, 612, 597, 607, 597, 527, 428, 597, 2121, - /* 650 */ 474, 2033, 1608, 1902, 705, 354, 2029, 475, 1946, 1743, - /* 660 */ 224, 1371, 139, 1369, 1746, 182, 2095, 1746, 30, 1451, - /* 670 */ 1452, 1724, 1607, 1964, 1746, 520, 1746, 597, 1485, 1746, - /* 680 */ 514, 559, 43, 41, 185, 223, 1374, 1375, 51, 1964, - /* 690 */ 360, 541, 1370, 1376, 1523, 597, 1915, 614, 1425, 1434, - /* 700 */ 1395, 382, 1915, 1449, 613, 1368, 36, 35, 1746, 581, - /* 710 */ 42, 40, 39, 38, 37, 363, 1915, 1371, 1398, 1369, - /* 720 */ 558, 77, 64, 155, 76, 63, 1746, 1945, 1444, 663, - /* 730 */ 1606, 1980, 1748, 476, 159, 1947, 617, 1949, 1950, 612, - /* 740 */ 1376, 607, 1374, 1375, 1731, 1424, 1427, 1428, 1429, 1430, - /* 750 */ 1431, 1432, 1433, 609, 605, 1442, 1443, 1445, 1446, 1447, - /* 760 */ 1448, 1450, 1453, 2, 36, 35, 12, 1946, 42, 40, - /* 770 */ 39, 38, 37, 366, 1915, 546, 2070, 597, 265, 266, - /* 780 */ 317, 155, 1393, 264, 599, 597, 2005, 501, 705, 435, - /* 790 */ 1748, 269, 448, 1593, 9, 447, 7, 1603, 1964, 592, - /* 800 */ 25, 1722, 288, 1451, 1452, 1776, 614, 649, 1746, 500, - /* 810 */ 419, 1915, 449, 613, 113, 421, 1746, 112, 111, 110, - /* 820 */ 109, 108, 107, 106, 105, 104, 146, 145, 646, 645, - /* 830 */ 644, 143, 1425, 1434, 394, 597, 531, 39, 38, 37, - /* 840 */ 1980, 1915, 1426, 306, 1947, 617, 1949, 1950, 612, 594, - /* 850 */ 607, 1371, 1733, 1369, 1602, 396, 392, 333, 1658, 1459, - /* 860 */ 2105, 29, 235, 651, 1729, 1395, 1746, 36, 35, 409, - /* 870 */ 230, 42, 40, 39, 38, 37, 1374, 1375, 608, 1424, - /* 880 */ 1427, 1428, 1429, 1430, 1431, 1432, 1433, 609, 605, 1442, - /* 890 */ 1443, 1445, 1446, 1447, 1448, 1450, 1453, 2, 1915, 445, - /* 900 */ 1088, 1089, 440, 439, 438, 437, 434, 433, 432, 431, - /* 910 */ 430, 426, 425, 424, 423, 334, 416, 415, 414, 1516, - /* 920 */ 411, 410, 331, 682, 681, 680, 679, 370, 1601, 678, - /* 930 */ 677, 135, 672, 671, 670, 669, 668, 667, 666, 665, - /* 940 */ 148, 661, 660, 659, 369, 368, 656, 655, 654, 653, - /* 950 */ 652, 156, 597, 1600, 641, 584, 294, 36, 35, 357, - /* 960 */ 356, 42, 40, 39, 38, 37, 595, 1946, 1858, 1384, - /* 970 */ 292, 66, 1915, 597, 65, 6, 512, 511, 510, 601, - /* 980 */ 1449, 2005, 1377, 1746, 128, 506, 1721, 275, 2048, 505, - /* 990 */ 2048, 155, 193, 454, 452, 504, 509, 1915, 1964, 1934, - /* 1000 */ 1749, 503, 337, 1398, 1746, 1444, 614, 1426, 11, 10, - /* 1010 */ 1929, 1915, 325, 613, 2044, 1599, 2043, 1376, 1210, 639, - /* 1020 */ 638, 637, 1214, 636, 1216, 1217, 635, 1219, 632, 58, - /* 1030 */ 1225, 629, 1227, 1228, 626, 623, 1945, 572, 1925, 1931, - /* 1040 */ 1980, 569, 1598, 100, 1947, 617, 1949, 1950, 612, 607, - /* 1050 */ 607, 540, 1597, 1596, 1478, 2121, 597, 2033, 1829, 1915, - /* 1060 */ 211, 354, 2029, 708, 338, 603, 336, 335, 99, 499, - /* 1070 */ 367, 643, 2052, 501, 1790, 162, 1595, 281, 1842, 1842, - /* 1080 */ 1395, 493, 489, 485, 481, 208, 1915, 1746, 647, 183, - /* 1090 */ 187, 1790, 166, 1605, 649, 500, 1915, 1915, 698, 694, - /* 1100 */ 690, 686, 279, 664, 1492, 1716, 74, 73, 402, 648, - /* 1110 */ 1479, 180, 1790, 146, 145, 646, 645, 644, 143, 568, - /* 1120 */ 1915, 48, 81, 3, 67, 206, 2053, 1512, 1385, 316, - /* 1130 */ 1380, 1701, 390, 406, 388, 384, 380, 377, 374, 98, - /* 1140 */ 1648, 137, 272, 125, 2073, 31, 407, 234, 577, 1587, - /* 1150 */ 1588, 36, 35, 1388, 1390, 42, 40, 39, 38, 37, - /* 1160 */ 60, 1515, 513, 11, 10, 605, 1442, 1443, 1445, 1446, - /* 1170 */ 1447, 1448, 1641, 216, 75, 593, 214, 1946, 176, 131, - /* 1180 */ 1512, 32, 358, 1473, 1474, 1475, 1476, 1477, 1481, 1482, - /* 1190 */ 1483, 1484, 205, 199, 515, 204, 36, 35, 472, 239, - /* 1200 */ 42, 40, 39, 38, 37, 1946, 218, 252, 1964, 217, - /* 1210 */ 422, 1639, 260, 1542, 197, 220, 614, 222, 219, 1379, - /* 1220 */ 221, 1915, 1426, 613, 233, 50, 1378, 553, 209, 1341, - /* 1230 */ 544, 229, 604, 518, 1131, 96, 1964, 45, 172, 2041, - /* 1240 */ 2042, 246, 129, 2046, 614, 93, 1945, 373, 1946, 1915, - /* 1250 */ 1980, 613, 241, 100, 1947, 617, 1949, 1950, 612, 573, - /* 1260 */ 607, 570, 1936, 262, 83, 600, 1965, 2033, 1851, 1132, - /* 1270 */ 140, 354, 2029, 371, 1945, 1629, 1946, 45, 1980, 1964, - /* 1280 */ 1787, 101, 1947, 617, 1949, 1950, 612, 614, 607, 545, - /* 1290 */ 1317, 142, 1915, 2101, 613, 2033, 657, 36, 35, 2032, - /* 1300 */ 2029, 42, 40, 39, 38, 37, 2063, 1964, 2107, 173, - /* 1310 */ 578, 1938, 254, 2102, 566, 614, 267, 1945, 1151, 1946, - /* 1320 */ 1915, 1980, 613, 589, 101, 1947, 617, 1949, 1950, 612, - /* 1330 */ 1435, 607, 144, 1, 60, 1635, 45, 1946, 2033, 251, - /* 1340 */ 658, 4, 602, 2029, 271, 615, 577, 381, 376, 1980, - /* 1350 */ 1964, 330, 101, 1947, 617, 1949, 1950, 612, 611, 607, - /* 1360 */ 1334, 1585, 1149, 1915, 282, 613, 2033, 1382, 1964, 1398, - /* 1370 */ 324, 2029, 621, 186, 1381, 1470, 614, 131, 408, 1852, - /* 1380 */ 1946, 1915, 1933, 613, 700, 1203, 412, 1486, 1945, 287, - /* 1390 */ 142, 144, 1980, 1929, 417, 310, 1947, 617, 1949, 1950, - /* 1400 */ 612, 610, 607, 598, 1998, 443, 1945, 1393, 429, 1844, - /* 1410 */ 1980, 1964, 436, 160, 1947, 617, 1949, 1950, 612, 614, - /* 1420 */ 607, 1925, 1931, 355, 1915, 1231, 613, 126, 142, 451, - /* 1430 */ 442, 444, 607, 1946, 450, 190, 174, 2041, 2042, 1399, - /* 1440 */ 129, 2046, 1401, 1235, 1242, 453, 455, 456, 465, 1945, - /* 1450 */ 468, 469, 1400, 1980, 1946, 1584, 101, 1947, 617, 1949, - /* 1460 */ 1950, 612, 196, 607, 1964, 567, 2122, 198, 470, 1402, - /* 1470 */ 2033, 471, 614, 1105, 201, 2030, 473, 1915, 496, 613, - /* 1480 */ 1240, 147, 477, 203, 78, 1964, 79, 207, 494, 495, - /* 1490 */ 103, 1892, 498, 614, 372, 1891, 532, 1736, 1915, 535, - /* 1500 */ 613, 319, 1945, 534, 228, 283, 1980, 549, 1946, 159, - /* 1510 */ 1947, 617, 1949, 1950, 612, 213, 607, 1732, 542, 215, - /* 1520 */ 149, 150, 536, 1945, 1734, 539, 1730, 1980, 554, 151, - /* 1530 */ 304, 1947, 617, 1949, 1950, 612, 545, 607, 152, 1964, - /* 1540 */ 2101, 231, 2079, 587, 551, 5, 563, 614, 344, 557, - /* 1550 */ 2064, 2071, 1915, 548, 613, 2107, 173, 2074, 237, 240, - /* 1560 */ 2102, 566, 1946, 36, 35, 2055, 245, 42, 40, 39, - /* 1570 */ 38, 37, 550, 247, 562, 345, 1512, 1945, 547, 1946, - /* 1580 */ 2124, 1980, 574, 2078, 160, 1947, 617, 1949, 1950, 612, - /* 1590 */ 249, 607, 250, 1964, 130, 163, 571, 1397, 349, 582, - /* 1600 */ 2100, 614, 2049, 348, 259, 1946, 1915, 284, 613, 253, - /* 1610 */ 1964, 585, 586, 285, 1863, 359, 590, 1862, 614, 1861, - /* 1620 */ 350, 248, 88, 1915, 286, 613, 591, 1747, 57, 92, - /* 1630 */ 2014, 1945, 90, 1946, 619, 1980, 1964, 2123, 311, 1947, - /* 1640 */ 617, 1949, 1950, 612, 614, 607, 1791, 289, 1945, 1915, - /* 1650 */ 1717, 613, 1980, 278, 701, 311, 1947, 617, 1949, 1950, - /* 1660 */ 612, 704, 607, 313, 1964, 702, 49, 321, 298, 361, - /* 1670 */ 322, 312, 614, 302, 1945, 293, 1946, 1915, 1980, 613, - /* 1680 */ 291, 295, 1947, 617, 1949, 1950, 612, 1909, 607, 1908, - /* 1690 */ 71, 1907, 1946, 1906, 72, 1903, 378, 379, 1362, 1363, - /* 1700 */ 179, 383, 1945, 1901, 385, 386, 1980, 1964, 387, 311, - /* 1710 */ 1947, 617, 1949, 1950, 612, 614, 607, 1900, 389, 154, - /* 1720 */ 1915, 1899, 613, 1964, 1898, 391, 393, 1897, 1337, 395, - /* 1730 */ 1336, 614, 1874, 1873, 400, 533, 1915, 401, 613, 1872, - /* 1740 */ 1871, 1837, 1836, 1946, 1297, 1945, 1834, 136, 1833, 1980, - /* 1750 */ 1832, 1835, 296, 1947, 617, 1949, 1950, 612, 1831, 607, - /* 1760 */ 1830, 1945, 1828, 1827, 1826, 1980, 184, 1825, 297, 1947, - /* 1770 */ 617, 1949, 1950, 612, 1964, 607, 420, 545, 418, 1824, - /* 1780 */ 1823, 2101, 614, 1822, 1821, 1820, 1946, 1915, 1819, 613, - /* 1790 */ 1818, 1817, 1816, 1815, 1814, 1813, 2107, 173, 1812, 1811, - /* 1800 */ 1810, 2102, 566, 1946, 1809, 1808, 1807, 138, 1806, 1805, - /* 1810 */ 1804, 1299, 1945, 1803, 1802, 446, 1980, 1964, 1801, 303, - /* 1820 */ 1947, 617, 1949, 1950, 612, 614, 607, 1800, 1663, 191, - /* 1830 */ 1915, 1178, 613, 1662, 1964, 192, 1660, 1624, 1091, 194, - /* 1840 */ 69, 1623, 614, 1090, 1887, 1881, 168, 1915, 1870, 613, - /* 1850 */ 1935, 1869, 195, 202, 461, 1945, 1946, 1854, 463, 1980, - /* 1860 */ 70, 200, 307, 1947, 617, 1949, 1950, 612, 1725, 607, - /* 1870 */ 1659, 1657, 1945, 1946, 478, 1655, 1980, 480, 479, 299, - /* 1880 */ 1947, 617, 1949, 1950, 612, 482, 607, 1964, 483, 1124, - /* 1890 */ 1653, 484, 488, 486, 487, 614, 1651, 490, 492, 1638, - /* 1900 */ 1915, 1637, 613, 491, 1964, 1620, 1727, 1247, 1246, 1726, - /* 1910 */ 673, 1169, 614, 1168, 1167, 1161, 1166, 1915, 675, 613, - /* 1920 */ 59, 1649, 212, 1163, 1946, 1945, 1162, 1160, 1642, 1980, - /* 1930 */ 339, 1640, 308, 1947, 617, 1949, 1950, 612, 340, 607, - /* 1940 */ 341, 1946, 1945, 1619, 516, 519, 1980, 521, 1618, 300, - /* 1950 */ 1947, 617, 1949, 1950, 612, 1964, 607, 523, 1617, 525, - /* 1960 */ 102, 1352, 1351, 614, 1354, 529, 1886, 1946, 1915, 24, - /* 1970 */ 613, 1343, 1964, 1880, 537, 1868, 1866, 2106, 17, 14, - /* 1980 */ 614, 53, 232, 26, 1946, 1915, 1557, 613, 56, 243, - /* 1990 */ 538, 236, 61, 1945, 238, 342, 161, 1980, 1964, 1541, - /* 2000 */ 309, 1947, 617, 1949, 1950, 612, 614, 607, 1534, 242, - /* 2010 */ 1945, 1915, 543, 613, 1980, 1964, 153, 301, 1947, 617, - /* 2020 */ 1949, 1950, 612, 614, 607, 27, 244, 1936, 1915, 28, - /* 2030 */ 613, 84, 19, 1572, 1571, 1946, 1945, 346, 1577, 1578, - /* 2040 */ 1980, 1576, 1575, 314, 1947, 617, 1949, 1950, 612, 347, - /* 2050 */ 607, 1509, 1508, 1945, 55, 256, 164, 1980, 1867, 1865, - /* 2060 */ 315, 1947, 617, 1949, 1950, 612, 1964, 607, 1864, 261, - /* 2070 */ 588, 1853, 18, 20, 614, 1539, 87, 263, 1946, 1915, - /* 2080 */ 268, 613, 86, 15, 270, 273, 54, 89, 93, 21, - /* 2090 */ 8, 10, 1461, 1460, 1946, 1386, 1983, 165, 177, 1417, - /* 2100 */ 1439, 606, 618, 1224, 1945, 620, 616, 34, 1980, 1964, - /* 2110 */ 1471, 1958, 1947, 617, 1949, 1950, 612, 614, 607, 1437, - /* 2120 */ 1436, 13, 1915, 22, 613, 1964, 1409, 23, 362, 1232, - /* 2130 */ 622, 624, 1229, 614, 627, 625, 630, 1226, 1915, 628, - /* 2140 */ 613, 1220, 631, 633, 1218, 1946, 1223, 1945, 634, 1209, - /* 2150 */ 1222, 1980, 94, 1221, 1957, 1947, 617, 1949, 1950, 612, - /* 2160 */ 276, 607, 640, 1945, 1241, 95, 1237, 1980, 68, 1122, - /* 2170 */ 1956, 1947, 617, 1949, 1950, 612, 1964, 607, 650, 1176, - /* 2180 */ 1157, 1156, 1155, 1154, 614, 1153, 1152, 1150, 1946, 1915, - /* 2190 */ 1148, 613, 1147, 1146, 1144, 662, 1143, 277, 1142, 1141, - /* 2200 */ 1140, 1139, 1138, 1137, 1173, 1946, 1171, 1134, 1133, 1130, - /* 2210 */ 1129, 1128, 1127, 1656, 1945, 683, 1654, 684, 1980, 1964, - /* 2220 */ 685, 326, 1947, 617, 1949, 1950, 612, 614, 607, 687, - /* 2230 */ 688, 689, 1915, 1652, 613, 691, 1964, 693, 692, 1650, - /* 2240 */ 695, 696, 697, 1636, 614, 699, 1080, 1616, 280, 1915, - /* 2250 */ 703, 613, 1372, 290, 1591, 706, 707, 1945, 1946, 1591, - /* 2260 */ 1591, 1980, 1591, 1591, 327, 1947, 617, 1949, 1950, 612, - /* 2270 */ 1591, 607, 1591, 1591, 1945, 1946, 1591, 1591, 1980, 1591, - /* 2280 */ 1591, 323, 1947, 617, 1949, 1950, 612, 1591, 607, 1964, - /* 2290 */ 1591, 1591, 1591, 1591, 1591, 1591, 1591, 614, 1591, 1591, - /* 2300 */ 1591, 1591, 1915, 1591, 613, 1591, 1964, 1591, 1591, 1591, - /* 2310 */ 1591, 1591, 1591, 1591, 614, 1591, 1591, 1591, 1591, 1915, - /* 2320 */ 1591, 613, 1591, 1591, 1591, 1591, 1946, 1945, 1591, 1591, - /* 2330 */ 1591, 1980, 1591, 1591, 328, 1947, 617, 1949, 1950, 612, - /* 2340 */ 1591, 607, 1591, 1591, 615, 1591, 1591, 1591, 1980, 1591, - /* 2350 */ 1591, 306, 1947, 617, 1949, 1950, 612, 1964, 607, 1591, - /* 2360 */ 1591, 1591, 1591, 1591, 1591, 614, 1591, 1591, 1591, 1591, - /* 2370 */ 1915, 1591, 613, 1591, 1591, 1591, 1591, 1591, 1591, 1591, - /* 2380 */ 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, 1591, - /* 2390 */ 1591, 1591, 1591, 1591, 1591, 1945, 1591, 1591, 1591, 1980, - /* 2400 */ 1591, 1591, 305, 1947, 617, 1949, 1950, 612, 1591, 607, + /* 0 */ 1954, 460, 1743, 461, 1636, 571, 590, 35, 276, 2110, + /* 10 */ 160, 1807, 45, 43, 1526, 1708, 353, 2115, 331, 1865, + /* 20 */ 362, 2110, 1377, 1600, 570, 175, 603, 1805, 354, 2111, + /* 30 */ 572, 1972, 159, 1456, 1612, 1375, 157, 2114, 1403, 586, + /* 40 */ 54, 2111, 2113, 401, 1923, 1756, 619, 124, 123, 122, + /* 50 */ 121, 120, 119, 118, 117, 116, 466, 1754, 1451, 602, + /* 60 */ 38, 37, 462, 18, 44, 42, 41, 40, 39, 1953, + /* 70 */ 1383, 171, 469, 1988, 461, 1636, 102, 1955, 623, 1957, + /* 80 */ 1958, 618, 571, 613, 1794, 547, 2110, 2056, 172, 2110, + /* 90 */ 2041, 1523, 1745, 169, 356, 2037, 14, 60, 603, 1954, + /* 100 */ 1941, 570, 175, 1937, 2116, 175, 2111, 572, 177, 2111, + /* 110 */ 572, 1937, 125, 2053, 334, 1854, 2067, 115, 711, 499, + /* 120 */ 114, 113, 112, 111, 110, 109, 108, 107, 106, 1754, + /* 130 */ 1972, 1933, 1939, 1458, 1459, 48, 1598, 1807, 620, 1933, + /* 140 */ 1939, 345, 613, 1923, 355, 619, 45, 43, 1910, 1563, + /* 150 */ 613, 1260, 1261, 1805, 362, 1731, 1377, 367, 1807, 1954, + /* 160 */ 1800, 1802, 1432, 1441, 1109, 366, 1108, 1456, 1953, 1375, + /* 170 */ 603, 1109, 1988, 1108, 1805, 102, 1955, 623, 1957, 1958, + /* 180 */ 618, 1378, 613, 1376, 180, 136, 212, 143, 2012, 2041, + /* 190 */ 1972, 260, 1451, 356, 2037, 1110, 384, 18, 586, 377, + /* 200 */ 602, 1754, 1110, 1923, 1383, 619, 1381, 1382, 602, 1431, + /* 210 */ 1434, 1435, 1436, 1437, 1438, 1439, 1440, 615, 611, 1449, + /* 220 */ 1450, 1452, 1453, 1454, 1455, 1457, 1460, 2, 1953, 60, + /* 230 */ 14, 87, 1988, 1954, 227, 102, 1955, 623, 1957, 1958, + /* 240 */ 618, 547, 613, 1402, 648, 2110, 178, 172, 82, 2041, + /* 250 */ 1090, 561, 711, 356, 2037, 44, 42, 41, 40, 39, + /* 260 */ 2116, 175, 129, 655, 1972, 2111, 572, 1458, 1459, 267, + /* 270 */ 268, 1749, 620, 64, 266, 2068, 48, 1923, 1402, 619, + /* 280 */ 45, 43, 148, 147, 652, 651, 650, 145, 362, 1092, + /* 290 */ 1377, 1095, 1096, 1954, 84, 322, 1432, 1441, 532, 583, + /* 300 */ 530, 1456, 1953, 1375, 459, 528, 1988, 464, 1642, 102, + /* 310 */ 1955, 623, 1957, 1958, 618, 1378, 613, 1376, 526, 60, + /* 320 */ 524, 2016, 1732, 2041, 1972, 1729, 1451, 356, 2037, 590, + /* 330 */ 133, 18, 620, 1522, 567, 562, 556, 1923, 1383, 619, + /* 340 */ 1381, 1382, 1866, 1431, 1434, 1435, 1436, 1437, 1438, 1439, + /* 350 */ 1440, 615, 611, 1449, 1450, 1452, 1453, 1454, 1455, 1457, + /* 360 */ 1460, 2, 1953, 11, 14, 60, 1988, 1801, 1802, 102, + /* 370 */ 1955, 623, 1957, 1958, 618, 2115, 613, 60, 178, 2110, + /* 380 */ 1807, 2130, 49, 2041, 478, 1623, 711, 356, 2037, 257, + /* 390 */ 2049, 582, 407, 126, 581, 2114, 1806, 2110, 2075, 2111, + /* 400 */ 2112, 1458, 1459, 38, 37, 603, 228, 44, 42, 41, + /* 410 */ 40, 39, 570, 175, 45, 43, 1461, 2111, 572, 125, + /* 420 */ 1313, 1314, 362, 478, 1377, 178, 504, 1954, 1530, 1923, + /* 430 */ 1432, 1441, 320, 655, 1402, 1456, 1754, 1375, 2056, 468, + /* 440 */ 38, 37, 464, 1642, 44, 42, 41, 40, 39, 1378, + /* 450 */ 566, 1376, 148, 147, 652, 651, 650, 145, 1972, 1466, + /* 460 */ 1451, 400, 187, 399, 2052, 1402, 620, 589, 178, 1354, + /* 470 */ 1355, 1923, 1383, 619, 1381, 1382, 27, 1431, 1434, 1435, + /* 480 */ 1436, 1437, 1438, 1439, 1440, 615, 611, 1449, 1450, 1452, + /* 490 */ 1453, 1454, 1455, 1457, 1460, 2, 1953, 169, 46, 79, + /* 500 */ 1988, 1403, 78, 102, 1955, 623, 1957, 1958, 618, 547, + /* 510 */ 613, 510, 509, 2110, 178, 2130, 1972, 2041, 655, 1855, + /* 520 */ 711, 356, 2037, 1622, 565, 1402, 178, 82, 2116, 175, + /* 530 */ 213, 178, 2088, 2111, 572, 1458, 1459, 148, 147, 652, + /* 540 */ 651, 650, 145, 13, 12, 164, 603, 1621, 45, 43, + /* 550 */ 1750, 495, 491, 487, 483, 210, 362, 1837, 1377, 603, + /* 560 */ 405, 682, 680, 564, 1432, 1441, 396, 1923, 1593, 1456, + /* 570 */ 1404, 1375, 1601, 406, 38, 37, 1433, 1754, 44, 42, + /* 580 */ 41, 40, 39, 1378, 2056, 1376, 1405, 398, 394, 443, + /* 590 */ 1754, 1923, 83, 115, 1451, 208, 114, 113, 112, 111, + /* 600 */ 110, 109, 108, 107, 106, 1553, 1383, 1433, 1381, 1382, + /* 610 */ 2051, 1431, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 615, + /* 620 */ 611, 1449, 1450, 1452, 1453, 1454, 1455, 1457, 1460, 2, + /* 630 */ 359, 358, 46, 2115, 1401, 603, 1177, 38, 37, 1499, + /* 640 */ 1391, 44, 42, 41, 40, 39, 657, 191, 190, 415, + /* 650 */ 1404, 1456, 157, 1384, 711, 558, 1551, 1552, 1554, 1555, + /* 660 */ 1620, 1757, 207, 201, 1592, 206, 1754, 31, 474, 1458, + /* 670 */ 1459, 1179, 1619, 38, 37, 99, 1451, 44, 42, 41, + /* 680 */ 40, 39, 45, 43, 199, 41, 40, 39, 1383, 134, + /* 690 */ 362, 11, 1377, 514, 513, 512, 714, 1746, 1432, 1441, + /* 700 */ 1405, 130, 508, 1456, 1923, 1375, 507, 603, 603, 424, + /* 710 */ 283, 1730, 506, 511, 259, 1487, 1923, 1378, 505, 1376, + /* 720 */ 1618, 429, 430, 1617, 408, 168, 1542, 1586, 1451, 1405, + /* 730 */ 237, 704, 700, 696, 692, 281, 609, 409, 1754, 1754, + /* 740 */ 1383, 135, 1381, 1382, 2012, 1431, 1434, 1435, 1436, 1437, + /* 750 */ 1438, 1439, 1440, 615, 611, 1449, 1450, 1452, 1453, 1454, + /* 760 */ 1455, 1457, 1460, 2, 1923, 1616, 14, 1923, 1739, 603, + /* 770 */ 365, 603, 100, 657, 1383, 274, 368, 11, 157, 9, + /* 780 */ 319, 1669, 1400, 476, 157, 477, 32, 1756, 711, 437, + /* 790 */ 1615, 1614, 450, 1756, 259, 449, 1492, 1095, 1096, 1392, + /* 800 */ 1754, 1387, 1754, 1458, 1459, 1611, 1610, 33, 599, 1923, + /* 810 */ 421, 669, 451, 38, 37, 423, 1609, 44, 42, 41, + /* 820 */ 40, 39, 38, 37, 1395, 1397, 44, 42, 41, 40, + /* 830 */ 39, 1608, 1432, 1441, 1923, 1923, 611, 1449, 1450, 1452, + /* 840 */ 1453, 1454, 1455, 8, 184, 262, 514, 513, 512, 1923, + /* 850 */ 1923, 1378, 93, 1376, 130, 508, 1607, 335, 1666, 507, + /* 860 */ 1923, 605, 1348, 2013, 231, 506, 511, 1850, 607, 411, + /* 870 */ 2013, 505, 2114, 236, 1747, 1923, 1381, 1382, 183, 1431, + /* 880 */ 1434, 1435, 1436, 1437, 1438, 1439, 1440, 615, 611, 1449, + /* 890 */ 1450, 1452, 1453, 1454, 1455, 1457, 1460, 2, 229, 447, + /* 900 */ 1923, 1784, 442, 441, 440, 439, 436, 435, 434, 433, + /* 910 */ 432, 428, 427, 426, 425, 336, 418, 417, 416, 1944, + /* 920 */ 413, 412, 333, 688, 687, 686, 685, 372, 583, 684, + /* 930 */ 683, 137, 678, 677, 676, 675, 674, 673, 672, 671, + /* 940 */ 150, 667, 666, 665, 371, 370, 662, 661, 660, 659, + /* 950 */ 658, 158, 1606, 1605, 1402, 235, 296, 38, 37, 133, + /* 960 */ 1377, 44, 42, 41, 40, 39, 1942, 603, 1946, 503, + /* 970 */ 294, 68, 649, 1375, 67, 1798, 603, 1937, 156, 38, + /* 980 */ 37, 1751, 1954, 44, 42, 41, 40, 39, 1850, 1850, + /* 990 */ 141, 502, 195, 456, 454, 85, 1923, 1923, 1754, 185, + /* 1000 */ 189, 653, 339, 575, 1798, 1933, 1939, 1754, 1383, 1604, + /* 1010 */ 603, 654, 327, 1972, 1798, 1741, 613, 585, 173, 2049, + /* 1020 */ 2050, 620, 131, 2054, 543, 670, 1923, 1724, 619, 60, + /* 1030 */ 1217, 645, 644, 643, 1221, 642, 1223, 1224, 641, 1226, + /* 1040 */ 638, 1754, 1232, 635, 1234, 1235, 632, 629, 1519, 290, + /* 1050 */ 1603, 1953, 1784, 1923, 1485, 1988, 711, 603, 102, 1955, + /* 1060 */ 623, 1957, 1958, 618, 340, 613, 338, 337, 101, 501, + /* 1070 */ 2130, 587, 2041, 503, 1954, 1386, 356, 2037, 603, 2061, + /* 1080 */ 1519, 583, 1656, 603, 603, 603, 603, 554, 1754, 50, + /* 1090 */ 69, 3, 271, 146, 1923, 502, 1433, 598, 600, 601, + /* 1100 */ 277, 139, 610, 127, 515, 1972, 76, 75, 404, 1754, + /* 1110 */ 1486, 182, 133, 620, 1754, 1754, 1754, 1754, 1923, 1378, + /* 1120 */ 619, 1376, 1385, 218, 220, 583, 216, 219, 603, 318, + /* 1130 */ 1595, 1596, 392, 574, 390, 386, 382, 379, 376, 578, + /* 1140 */ 77, 62, 369, 1953, 1381, 1382, 53, 1988, 241, 542, + /* 1150 */ 102, 1955, 623, 1957, 1958, 618, 133, 613, 1649, 1754, + /* 1160 */ 375, 1954, 2130, 222, 2041, 47, 221, 224, 356, 2037, + /* 1170 */ 223, 174, 2049, 2050, 1647, 131, 2054, 1737, 178, 2104, + /* 1180 */ 517, 34, 360, 1480, 1481, 1482, 1483, 1484, 1488, 1489, + /* 1190 */ 1490, 1491, 1972, 52, 1550, 1613, 520, 232, 546, 264, + /* 1200 */ 620, 243, 547, 614, 1954, 1923, 2110, 619, 142, 144, + /* 1210 */ 647, 146, 62, 13, 12, 176, 2049, 2050, 1324, 131, + /* 1220 */ 2054, 2116, 175, 1389, 2081, 576, 2111, 572, 1709, 254, + /* 1230 */ 1953, 663, 1954, 47, 1988, 1972, 47, 102, 1955, 623, + /* 1240 */ 1957, 1958, 618, 620, 613, 1477, 664, 1643, 1923, 2130, + /* 1250 */ 619, 2041, 269, 1158, 627, 356, 2037, 98, 1138, 559, + /* 1260 */ 211, 595, 273, 1972, 1210, 1493, 2060, 95, 1156, 248, + /* 1270 */ 1388, 620, 144, 1953, 1973, 1954, 1923, 1988, 619, 146, + /* 1280 */ 102, 1955, 623, 1957, 1958, 618, 1442, 613, 128, 289, + /* 1290 */ 144, 373, 2014, 1139, 2041, 1859, 706, 1637, 356, 2037, + /* 1300 */ 374, 1953, 1795, 2071, 584, 1988, 1972, 1238, 102, 1955, + /* 1310 */ 623, 1957, 1958, 618, 620, 613, 256, 253, 1, 1923, + /* 1320 */ 606, 619, 2041, 4, 378, 1242, 356, 2037, 383, 1341, + /* 1330 */ 535, 284, 1249, 332, 188, 410, 1405, 1860, 414, 445, + /* 1340 */ 1954, 1247, 547, 149, 1953, 419, 2110, 1400, 1988, 431, + /* 1350 */ 1852, 103, 1955, 623, 1957, 1958, 618, 438, 613, 452, + /* 1360 */ 444, 2116, 175, 579, 1954, 2041, 2111, 572, 446, 2040, + /* 1370 */ 2037, 1972, 547, 453, 1406, 458, 2110, 192, 455, 620, + /* 1380 */ 457, 467, 1408, 1954, 1923, 198, 619, 470, 1407, 471, + /* 1390 */ 472, 2116, 175, 1409, 200, 1972, 2111, 572, 473, 203, + /* 1400 */ 475, 205, 80, 620, 479, 1112, 81, 209, 1923, 1953, + /* 1410 */ 619, 496, 497, 1988, 1972, 498, 103, 1955, 623, 1957, + /* 1420 */ 1958, 618, 620, 613, 105, 534, 500, 1923, 1744, 619, + /* 1430 */ 2041, 321, 2072, 1953, 608, 2037, 1954, 1988, 215, 1740, + /* 1440 */ 162, 1955, 623, 1957, 1958, 618, 217, 613, 151, 152, + /* 1450 */ 1742, 1738, 621, 230, 153, 1900, 1988, 1954, 154, 103, + /* 1460 */ 1955, 623, 1957, 1958, 618, 1899, 613, 1972, 537, 538, + /* 1470 */ 536, 285, 541, 2041, 233, 617, 544, 326, 2037, 2082, + /* 1480 */ 1923, 551, 619, 557, 560, 593, 346, 2087, 1972, 239, + /* 1490 */ 242, 563, 573, 2131, 2086, 7, 620, 569, 549, 2063, + /* 1500 */ 552, 1923, 550, 619, 577, 1953, 252, 1519, 250, 1988, + /* 1510 */ 1954, 1941, 312, 1955, 623, 1957, 1958, 618, 616, 613, + /* 1520 */ 604, 2006, 1937, 249, 247, 347, 1953, 580, 132, 1404, + /* 1530 */ 1988, 2109, 588, 161, 1955, 623, 1957, 1958, 618, 2057, + /* 1540 */ 613, 1972, 165, 251, 350, 261, 591, 286, 592, 620, + /* 1550 */ 1933, 1939, 357, 1871, 1923, 1870, 619, 1869, 352, 2133, + /* 1560 */ 287, 613, 255, 1954, 596, 90, 92, 597, 288, 1755, + /* 1570 */ 59, 94, 2022, 625, 548, 2078, 1799, 291, 707, 1953, + /* 1580 */ 1725, 708, 280, 1988, 1954, 710, 103, 1955, 623, 1957, + /* 1590 */ 1958, 618, 51, 613, 1972, 315, 295, 300, 323, 293, + /* 1600 */ 2041, 324, 620, 1917, 314, 2038, 1954, 1923, 1916, 619, + /* 1610 */ 304, 73, 1915, 1914, 74, 1972, 1911, 380, 381, 1369, + /* 1620 */ 1370, 181, 385, 620, 1909, 387, 388, 389, 1923, 1908, + /* 1630 */ 619, 391, 1953, 1907, 393, 1906, 1988, 1972, 1905, 161, + /* 1640 */ 1955, 623, 1957, 1958, 618, 620, 613, 395, 1344, 397, + /* 1650 */ 1923, 1343, 619, 1953, 1882, 1881, 403, 1988, 402, 1880, + /* 1660 */ 306, 1955, 623, 1957, 1958, 618, 1879, 613, 1304, 1845, + /* 1670 */ 1844, 1842, 1954, 138, 1841, 1953, 1840, 1843, 1839, 1988, + /* 1680 */ 186, 2079, 162, 1955, 623, 1957, 1958, 618, 1838, 613, + /* 1690 */ 519, 1836, 1954, 1835, 1834, 420, 1833, 422, 1832, 1831, + /* 1700 */ 1830, 1829, 1828, 1972, 568, 529, 1827, 1826, 351, 1825, + /* 1710 */ 1824, 620, 1823, 1822, 1821, 1820, 1923, 1819, 619, 226, + /* 1720 */ 1818, 140, 1817, 1972, 1816, 1815, 1814, 1813, 1812, 1811, + /* 1730 */ 1306, 617, 1810, 448, 522, 2132, 1923, 1809, 619, 516, + /* 1740 */ 1808, 1953, 1671, 193, 225, 1988, 1185, 1954, 313, 1955, + /* 1750 */ 623, 1957, 1958, 618, 1670, 613, 1668, 1632, 71, 1098, + /* 1760 */ 196, 1953, 1097, 1954, 1631, 1988, 1895, 170, 312, 1955, + /* 1770 */ 623, 1957, 1958, 618, 194, 613, 197, 2007, 1972, 1889, + /* 1780 */ 1943, 66, 463, 361, 65, 465, 620, 1878, 72, 202, + /* 1790 */ 204, 1923, 1877, 619, 1972, 1862, 1733, 1667, 1131, 363, + /* 1800 */ 1665, 481, 620, 480, 482, 1663, 1954, 1923, 484, 619, + /* 1810 */ 486, 485, 1661, 490, 1659, 488, 1953, 489, 492, 1646, + /* 1820 */ 1988, 494, 1645, 313, 1955, 623, 1957, 1958, 618, 493, + /* 1830 */ 613, 1628, 1953, 1735, 214, 61, 1988, 1972, 1254, 313, + /* 1840 */ 1955, 623, 1957, 1958, 618, 620, 613, 1253, 1734, 1954, + /* 1850 */ 1923, 1176, 619, 1175, 679, 1174, 1168, 681, 1173, 1170, + /* 1860 */ 1657, 1169, 1167, 341, 1650, 1954, 342, 518, 1648, 343, + /* 1870 */ 521, 1627, 1626, 523, 525, 533, 1625, 527, 104, 1988, + /* 1880 */ 1972, 1359, 308, 1955, 623, 1957, 1958, 618, 620, 613, + /* 1890 */ 531, 1358, 1894, 1923, 26, 619, 1972, 1350, 1361, 1888, + /* 1900 */ 539, 1876, 1874, 55, 620, 155, 2115, 540, 1565, 1923, + /* 1910 */ 234, 619, 16, 19, 58, 344, 1954, 545, 1953, 245, + /* 1920 */ 553, 5, 1988, 30, 28, 297, 1955, 623, 1957, 1958, + /* 1930 */ 618, 246, 613, 1954, 1953, 555, 238, 1944, 1988, 6, + /* 1940 */ 240, 298, 1955, 623, 1957, 1958, 618, 1972, 613, 1549, + /* 1950 */ 163, 63, 20, 244, 21, 620, 1541, 29, 1580, 86, + /* 1960 */ 1923, 1579, 619, 1585, 1972, 348, 1584, 1583, 349, 258, + /* 1970 */ 1586, 1516, 620, 57, 1515, 166, 1875, 1923, 1873, 619, + /* 1980 */ 1872, 22, 594, 263, 1547, 1953, 1861, 265, 1954, 1988, + /* 1990 */ 17, 270, 299, 1955, 623, 1957, 1958, 618, 56, 613, + /* 2000 */ 88, 89, 1953, 91, 95, 275, 1988, 1954, 23, 305, + /* 2010 */ 1955, 623, 1957, 1958, 618, 272, 613, 1468, 10, 1972, + /* 2020 */ 12, 1467, 1393, 1991, 167, 1424, 179, 620, 624, 626, + /* 2030 */ 612, 1954, 1923, 1446, 619, 1478, 364, 1444, 1972, 36, + /* 2040 */ 622, 1443, 15, 24, 630, 25, 620, 1416, 1239, 628, + /* 2050 */ 631, 1923, 1236, 619, 1233, 633, 634, 1953, 1227, 636, + /* 2060 */ 1225, 1988, 1972, 637, 309, 1955, 623, 1957, 1958, 618, + /* 2070 */ 620, 613, 639, 1216, 646, 1923, 1953, 619, 640, 1231, + /* 2080 */ 1988, 96, 278, 301, 1955, 623, 1957, 1958, 618, 1954, + /* 2090 */ 613, 1230, 1229, 1228, 97, 1248, 1244, 656, 70, 1129, + /* 2100 */ 1953, 1164, 1163, 1162, 1988, 1954, 1161, 310, 1955, 623, + /* 2110 */ 1957, 1958, 618, 1160, 613, 1159, 1157, 1155, 1154, 1153, + /* 2120 */ 1972, 668, 1183, 279, 1149, 1151, 1150, 1148, 620, 1147, + /* 2130 */ 1146, 1145, 1144, 1923, 1180, 619, 1972, 1135, 1178, 1141, + /* 2140 */ 1664, 1140, 690, 1137, 620, 1136, 1134, 689, 1954, 1923, + /* 2150 */ 1662, 619, 691, 693, 1660, 695, 697, 694, 1953, 699, + /* 2160 */ 1658, 701, 1988, 703, 1954, 302, 1955, 623, 1957, 1958, + /* 2170 */ 618, 698, 613, 702, 1953, 282, 705, 1087, 1988, 1972, + /* 2180 */ 1644, 311, 1955, 623, 1957, 1958, 618, 620, 613, 1624, + /* 2190 */ 709, 712, 1923, 1379, 619, 1972, 292, 713, 1599, 1599, + /* 2200 */ 1599, 1599, 1599, 620, 1599, 1599, 1599, 1954, 1923, 1599, + /* 2210 */ 619, 1599, 1599, 1599, 1599, 1599, 1599, 1953, 1599, 1599, + /* 2220 */ 1599, 1988, 1599, 1954, 303, 1955, 623, 1957, 1958, 618, + /* 2230 */ 1599, 613, 1599, 1953, 1599, 1599, 1599, 1988, 1972, 1599, + /* 2240 */ 316, 1955, 623, 1957, 1958, 618, 620, 613, 1599, 1599, + /* 2250 */ 1599, 1923, 1599, 619, 1972, 1599, 1599, 1599, 1599, 1599, + /* 2260 */ 1599, 1599, 620, 1599, 1599, 1599, 1954, 1923, 1599, 619, + /* 2270 */ 1599, 1599, 1599, 1599, 1599, 1599, 1953, 1599, 1599, 1599, + /* 2280 */ 1988, 1599, 1599, 317, 1955, 623, 1957, 1958, 618, 1599, + /* 2290 */ 613, 1599, 1953, 1599, 1599, 1599, 1988, 1972, 1599, 1966, + /* 2300 */ 1955, 623, 1957, 1958, 618, 620, 613, 1599, 1599, 1599, + /* 2310 */ 1923, 1599, 619, 1599, 1599, 1599, 1599, 1954, 1599, 1599, + /* 2320 */ 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, + /* 2330 */ 1599, 1599, 1599, 1599, 1954, 1953, 1599, 1599, 1599, 1988, + /* 2340 */ 1599, 1599, 1965, 1955, 623, 1957, 1958, 618, 1972, 613, + /* 2350 */ 1599, 1599, 1599, 1599, 1599, 1599, 620, 1599, 1599, 1599, + /* 2360 */ 1954, 1923, 1599, 619, 1599, 1972, 1599, 1599, 1599, 1599, + /* 2370 */ 1599, 1599, 1599, 620, 1599, 1599, 1599, 1599, 1923, 1599, + /* 2380 */ 619, 1599, 1599, 1599, 1599, 1599, 1953, 1599, 1599, 1599, + /* 2390 */ 1988, 1972, 1599, 1964, 1955, 623, 1957, 1958, 618, 620, + /* 2400 */ 613, 1599, 1599, 1953, 1923, 1599, 619, 1988, 1599, 1599, + /* 2410 */ 328, 1955, 623, 1957, 1958, 618, 1954, 613, 1599, 1599, + /* 2420 */ 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1599, 1953, + /* 2430 */ 1599, 1599, 1954, 1988, 1599, 1599, 329, 1955, 623, 1957, + /* 2440 */ 1958, 618, 1599, 613, 1599, 1599, 1599, 1972, 1599, 1599, + /* 2450 */ 1599, 1599, 1599, 1599, 1599, 620, 1599, 1599, 1599, 1599, + /* 2460 */ 1923, 1599, 619, 1972, 1599, 1599, 1599, 1599, 1599, 1599, + /* 2470 */ 1599, 620, 1599, 1599, 1599, 1599, 1923, 1599, 619, 1599, + /* 2480 */ 1599, 1599, 1599, 1599, 1599, 1953, 1954, 1599, 1599, 1988, + /* 2490 */ 1599, 1599, 325, 1955, 623, 1957, 1958, 618, 1599, 613, + /* 2500 */ 1599, 1953, 1954, 1599, 1599, 1988, 1599, 1599, 330, 1955, + /* 2510 */ 623, 1957, 1958, 618, 1599, 613, 1599, 1972, 1599, 1599, + /* 2520 */ 1599, 1599, 1599, 1599, 1599, 620, 1599, 1599, 1599, 1599, + /* 2530 */ 1923, 1599, 619, 1972, 1599, 1599, 1599, 1599, 1599, 1599, + /* 2540 */ 1599, 620, 1599, 1599, 1599, 1599, 1923, 1599, 619, 1599, + /* 2550 */ 1599, 1599, 1599, 1599, 1599, 621, 1599, 1599, 1599, 1988, + /* 2560 */ 1599, 1599, 308, 1955, 623, 1957, 1958, 618, 1599, 613, + /* 2570 */ 1599, 1953, 1599, 1599, 1599, 1988, 1599, 1599, 307, 1955, + /* 2580 */ 623, 1957, 1958, 618, 1599, 613, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 325, 329, 357, 331, 332, 427, 371, 416, 417, 431, - /* 10 */ 340, 356, 12, 13, 14, 345, 381, 427, 363, 384, - /* 20 */ 20, 431, 22, 0, 446, 447, 333, 372, 348, 451, - /* 30 */ 452, 356, 14, 33, 356, 35, 356, 447, 20, 364, - /* 40 */ 347, 451, 452, 385, 369, 365, 371, 24, 25, 26, - /* 50 */ 27, 28, 29, 30, 31, 32, 378, 364, 58, 349, - /* 60 */ 8, 9, 352, 63, 12, 13, 14, 15, 16, 394, - /* 70 */ 70, 356, 329, 398, 331, 332, 401, 402, 403, 404, - /* 80 */ 405, 406, 427, 408, 20, 427, 431, 372, 413, 431, - /* 90 */ 415, 325, 358, 356, 419, 420, 96, 96, 333, 325, - /* 100 */ 358, 446, 447, 369, 446, 447, 451, 452, 433, 451, - /* 110 */ 452, 369, 347, 96, 377, 378, 441, 21, 118, 354, - /* 120 */ 24, 25, 26, 27, 28, 29, 30, 31, 32, 364, - /* 130 */ 356, 397, 398, 133, 134, 369, 322, 356, 364, 397, - /* 140 */ 398, 399, 408, 369, 363, 371, 12, 13, 62, 97, - /* 150 */ 408, 4, 337, 372, 20, 0, 22, 20, 20, 325, - /* 160 */ 96, 367, 162, 163, 370, 371, 351, 33, 394, 35, - /* 170 */ 333, 20, 398, 22, 359, 401, 402, 403, 404, 405, - /* 180 */ 406, 181, 408, 183, 347, 411, 35, 413, 414, 415, - /* 190 */ 356, 58, 58, 419, 420, 370, 371, 63, 364, 385, - /* 200 */ 20, 364, 51, 369, 70, 371, 206, 207, 333, 209, + /* 0 */ 327, 331, 359, 333, 334, 429, 373, 418, 419, 433, + /* 10 */ 342, 358, 12, 13, 14, 347, 383, 429, 365, 386, + /* 20 */ 20, 433, 22, 0, 448, 449, 335, 374, 350, 453, + /* 30 */ 454, 358, 326, 33, 328, 35, 358, 449, 20, 366, + /* 40 */ 349, 453, 454, 387, 371, 367, 373, 24, 25, 26, + /* 50 */ 27, 28, 29, 30, 31, 32, 14, 366, 58, 20, + /* 60 */ 8, 9, 20, 63, 12, 13, 14, 15, 16, 396, + /* 70 */ 70, 357, 331, 400, 333, 334, 403, 404, 405, 406, + /* 80 */ 407, 408, 429, 410, 370, 429, 433, 402, 415, 433, + /* 90 */ 417, 4, 360, 358, 421, 422, 96, 96, 335, 327, + /* 100 */ 360, 448, 449, 371, 448, 449, 453, 454, 435, 453, + /* 110 */ 454, 371, 349, 428, 379, 380, 443, 21, 118, 356, + /* 120 */ 24, 25, 26, 27, 28, 29, 30, 31, 32, 366, + /* 130 */ 358, 399, 400, 133, 134, 96, 324, 358, 366, 399, + /* 140 */ 400, 401, 410, 371, 365, 373, 12, 13, 0, 97, + /* 150 */ 410, 133, 134, 374, 20, 0, 22, 369, 358, 327, + /* 160 */ 372, 373, 162, 163, 20, 365, 22, 33, 396, 35, + /* 170 */ 335, 20, 400, 22, 374, 403, 404, 405, 406, 407, + /* 180 */ 408, 181, 410, 183, 349, 413, 35, 415, 416, 417, + /* 190 */ 358, 58, 58, 421, 422, 51, 48, 63, 366, 387, + /* 200 */ 20, 366, 51, 371, 70, 373, 206, 207, 20, 209, /* 210 */ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - /* 220 */ 220, 221, 222, 223, 224, 225, 226, 227, 394, 96, - /* 230 */ 96, 98, 398, 325, 128, 401, 402, 403, 404, 405, - /* 240 */ 406, 427, 408, 96, 20, 431, 245, 413, 373, 415, - /* 250 */ 4, 339, 118, 419, 420, 12, 13, 14, 15, 16, - /* 260 */ 446, 447, 245, 108, 356, 451, 452, 133, 134, 20, - /* 270 */ 133, 134, 364, 35, 362, 441, 96, 369, 20, 371, + /* 220 */ 220, 221, 222, 223, 224, 225, 226, 227, 396, 96, + /* 230 */ 96, 98, 400, 327, 128, 403, 404, 405, 406, 407, + /* 240 */ 408, 429, 410, 20, 107, 433, 245, 415, 341, 417, + /* 250 */ 4, 167, 118, 421, 422, 12, 13, 14, 15, 16, + /* 260 */ 448, 449, 355, 108, 358, 453, 454, 133, 134, 127, + /* 270 */ 128, 364, 366, 4, 132, 443, 96, 371, 20, 373, /* 280 */ 12, 13, 127, 128, 129, 130, 131, 132, 20, 43, - /* 290 */ 22, 45, 46, 325, 188, 189, 162, 163, 192, 333, - /* 300 */ 194, 33, 394, 35, 333, 20, 398, 22, 70, 401, - /* 310 */ 402, 403, 404, 405, 406, 181, 408, 183, 347, 96, - /* 320 */ 96, 413, 20, 415, 356, 354, 58, 419, 420, 355, - /* 330 */ 364, 63, 364, 325, 20, 364, 51, 369, 70, 371, - /* 340 */ 206, 207, 368, 209, 210, 211, 212, 213, 214, 215, + /* 290 */ 22, 45, 46, 327, 188, 189, 162, 163, 192, 335, + /* 300 */ 194, 33, 396, 35, 332, 21, 400, 335, 336, 403, + /* 310 */ 404, 405, 406, 407, 408, 181, 410, 183, 34, 96, + /* 320 */ 36, 415, 0, 417, 358, 0, 58, 421, 422, 373, + /* 330 */ 366, 63, 366, 246, 250, 251, 252, 371, 70, 373, + /* 340 */ 206, 207, 386, 209, 210, 211, 212, 213, 214, 215, /* 350 */ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - /* 360 */ 226, 227, 394, 229, 96, 325, 398, 21, 80, 401, - /* 370 */ 402, 403, 404, 405, 406, 427, 408, 369, 245, 431, - /* 380 */ 34, 413, 36, 415, 325, 337, 118, 419, 420, 423, - /* 390 */ 424, 425, 245, 427, 428, 447, 356, 431, 430, 451, - /* 400 */ 452, 133, 134, 180, 364, 182, 3, 359, 324, 369, - /* 410 */ 326, 371, 446, 447, 12, 13, 14, 451, 452, 20, - /* 420 */ 162, 163, 20, 20, 22, 245, 138, 139, 369, 330, - /* 430 */ 162, 163, 333, 334, 394, 33, 333, 35, 398, 0, - /* 440 */ 333, 401, 402, 403, 404, 405, 406, 400, 408, 181, - /* 450 */ 410, 183, 330, 325, 347, 333, 334, 8, 9, 206, - /* 460 */ 58, 12, 13, 14, 15, 16, 164, 364, 245, 245, - /* 470 */ 325, 364, 70, 426, 206, 207, 385, 209, 210, 211, + /* 360 */ 226, 227, 396, 229, 96, 96, 400, 372, 373, 403, + /* 370 */ 404, 405, 406, 407, 408, 429, 410, 96, 245, 433, + /* 380 */ 358, 415, 96, 417, 62, 327, 118, 421, 422, 425, + /* 390 */ 426, 427, 335, 429, 430, 449, 374, 433, 432, 453, + /* 400 */ 454, 133, 134, 8, 9, 335, 127, 12, 13, 14, + /* 410 */ 15, 16, 448, 449, 12, 13, 14, 453, 454, 349, + /* 420 */ 162, 163, 20, 62, 22, 245, 356, 327, 14, 371, + /* 430 */ 162, 163, 375, 108, 20, 33, 366, 35, 402, 332, + /* 440 */ 8, 9, 335, 336, 12, 13, 14, 15, 16, 181, + /* 450 */ 20, 183, 127, 128, 129, 130, 131, 132, 358, 14, + /* 460 */ 58, 180, 58, 182, 428, 20, 366, 387, 245, 190, + /* 470 */ 191, 371, 70, 373, 206, 207, 44, 209, 210, 211, /* 480 */ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - /* 490 */ 222, 223, 224, 225, 226, 227, 411, 369, 96, 414, - /* 500 */ 97, 325, 22, 167, 65, 66, 67, 254, 255, 256, - /* 510 */ 257, 258, 73, 74, 369, 35, 62, 78, 427, 325, - /* 520 */ 118, 20, 431, 84, 85, 422, 423, 424, 425, 90, - /* 530 */ 427, 428, 356, 342, 343, 133, 134, 446, 447, 127, - /* 540 */ 364, 333, 451, 452, 356, 369, 97, 371, 12, 13, - /* 550 */ 70, 363, 339, 342, 343, 347, 20, 325, 22, 333, - /* 560 */ 372, 325, 333, 369, 162, 163, 353, 164, 20, 33, - /* 570 */ 394, 35, 364, 347, 398, 362, 347, 401, 402, 403, - /* 580 */ 404, 405, 406, 181, 408, 183, 250, 251, 107, 413, - /* 590 */ 364, 415, 356, 364, 58, 419, 420, 161, 118, 364, - /* 600 */ 364, 369, 190, 191, 229, 369, 70, 371, 206, 207, - /* 610 */ 375, 209, 210, 211, 212, 213, 214, 215, 216, 217, + /* 490 */ 222, 223, 224, 225, 226, 227, 396, 358, 96, 95, + /* 500 */ 400, 20, 98, 403, 404, 405, 406, 407, 408, 429, + /* 510 */ 410, 344, 345, 433, 245, 415, 358, 417, 108, 380, + /* 520 */ 118, 421, 422, 327, 366, 20, 245, 341, 448, 449, + /* 530 */ 33, 245, 432, 453, 454, 133, 134, 127, 128, 129, + /* 540 */ 130, 131, 132, 1, 2, 48, 335, 327, 12, 13, + /* 550 */ 364, 54, 55, 56, 57, 58, 20, 0, 22, 335, + /* 560 */ 349, 344, 345, 405, 162, 163, 176, 371, 173, 33, + /* 570 */ 20, 35, 0, 349, 8, 9, 162, 366, 12, 13, + /* 580 */ 14, 15, 16, 181, 402, 183, 20, 197, 198, 80, + /* 590 */ 366, 371, 95, 21, 58, 98, 24, 25, 26, 27, + /* 600 */ 28, 29, 30, 31, 32, 206, 70, 162, 206, 207, + /* 610 */ 428, 209, 210, 211, 212, 213, 214, 215, 216, 217, /* 620 */ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - /* 630 */ 394, 4, 96, 333, 398, 44, 333, 401, 402, 403, - /* 640 */ 404, 405, 406, 333, 408, 333, 19, 347, 333, 413, - /* 650 */ 347, 415, 325, 0, 118, 419, 420, 347, 325, 347, - /* 660 */ 33, 181, 347, 183, 364, 164, 430, 364, 232, 133, - /* 670 */ 134, 0, 325, 356, 364, 48, 364, 333, 242, 364, - /* 680 */ 53, 364, 12, 13, 58, 58, 206, 207, 97, 356, - /* 690 */ 20, 347, 22, 70, 14, 333, 369, 364, 162, 163, - /* 700 */ 20, 48, 369, 33, 371, 35, 8, 9, 364, 347, - /* 710 */ 12, 13, 14, 15, 16, 348, 369, 181, 20, 183, - /* 720 */ 403, 95, 95, 356, 98, 98, 364, 394, 58, 70, - /* 730 */ 325, 398, 365, 62, 401, 402, 403, 404, 405, 406, - /* 740 */ 70, 408, 206, 207, 357, 209, 210, 211, 212, 213, + /* 630 */ 12, 13, 96, 3, 20, 335, 35, 8, 9, 97, + /* 640 */ 22, 12, 13, 14, 15, 16, 62, 138, 139, 349, + /* 650 */ 20, 33, 358, 35, 118, 256, 257, 258, 259, 260, + /* 660 */ 327, 367, 165, 166, 269, 168, 366, 2, 171, 133, + /* 670 */ 134, 70, 327, 8, 9, 339, 58, 12, 13, 14, + /* 680 */ 15, 16, 12, 13, 187, 14, 15, 16, 70, 353, + /* 690 */ 20, 229, 22, 65, 66, 67, 19, 361, 162, 163, + /* 700 */ 20, 73, 74, 33, 371, 35, 78, 335, 335, 152, + /* 710 */ 33, 0, 84, 85, 164, 161, 371, 181, 90, 183, + /* 720 */ 327, 349, 349, 327, 22, 48, 97, 97, 58, 20, + /* 730 */ 164, 54, 55, 56, 57, 58, 118, 35, 366, 366, + /* 740 */ 70, 413, 206, 207, 416, 209, 210, 211, 212, 213, /* 750 */ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - /* 760 */ 224, 225, 226, 227, 8, 9, 96, 325, 12, 13, - /* 770 */ 14, 15, 16, 348, 369, 442, 443, 333, 127, 128, - /* 780 */ 18, 356, 20, 132, 412, 333, 414, 108, 118, 27, - /* 790 */ 365, 347, 30, 0, 229, 33, 231, 325, 356, 347, - /* 800 */ 44, 0, 349, 133, 134, 352, 364, 108, 364, 130, - /* 810 */ 48, 369, 50, 371, 21, 53, 364, 24, 25, 26, - /* 820 */ 27, 28, 29, 30, 31, 32, 127, 128, 129, 130, - /* 830 */ 131, 132, 162, 163, 176, 333, 394, 14, 15, 16, - /* 840 */ 398, 369, 162, 401, 402, 403, 404, 405, 406, 347, - /* 850 */ 408, 181, 357, 183, 325, 197, 198, 95, 0, 14, - /* 860 */ 3, 2, 164, 62, 357, 20, 364, 8, 9, 107, - /* 870 */ 357, 12, 13, 14, 15, 16, 206, 207, 357, 209, + /* 760 */ 224, 225, 226, 227, 371, 327, 96, 371, 359, 335, + /* 770 */ 350, 335, 95, 62, 70, 98, 350, 229, 358, 231, + /* 780 */ 18, 0, 20, 349, 358, 349, 232, 367, 118, 27, + /* 790 */ 327, 327, 30, 367, 164, 33, 242, 45, 46, 181, + /* 800 */ 366, 183, 366, 133, 134, 327, 327, 2, 131, 371, + /* 810 */ 48, 70, 50, 8, 9, 53, 327, 12, 13, 14, + /* 820 */ 15, 16, 8, 9, 206, 207, 12, 13, 14, 15, + /* 830 */ 16, 327, 162, 163, 371, 371, 218, 219, 220, 221, + /* 840 */ 222, 223, 224, 39, 164, 168, 65, 66, 67, 371, + /* 850 */ 371, 181, 339, 183, 73, 74, 327, 95, 0, 78, + /* 860 */ 371, 414, 185, 416, 187, 84, 85, 366, 414, 107, + /* 870 */ 416, 90, 3, 164, 361, 371, 206, 207, 377, 209, /* 880 */ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - /* 890 */ 220, 221, 222, 223, 224, 225, 226, 227, 369, 137, - /* 900 */ 45, 46, 140, 141, 142, 143, 144, 145, 146, 147, - /* 910 */ 148, 149, 150, 151, 152, 153, 154, 155, 156, 4, - /* 920 */ 158, 159, 160, 65, 66, 67, 68, 69, 325, 71, + /* 890 */ 220, 221, 222, 223, 224, 225, 226, 227, 351, 137, + /* 900 */ 371, 354, 140, 141, 142, 143, 144, 145, 146, 147, + /* 910 */ 148, 149, 150, 151, 152, 153, 154, 155, 156, 47, + /* 920 */ 158, 159, 160, 65, 66, 67, 68, 69, 335, 71, /* 930 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 940 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - /* 950 */ 92, 18, 333, 325, 357, 371, 23, 8, 9, 12, - /* 960 */ 13, 12, 13, 14, 15, 16, 347, 325, 384, 22, - /* 970 */ 37, 38, 369, 333, 41, 39, 65, 66, 67, 412, - /* 980 */ 33, 414, 35, 364, 73, 74, 0, 347, 400, 78, - /* 990 */ 400, 356, 59, 60, 61, 84, 85, 369, 356, 358, - /* 1000 */ 365, 90, 37, 20, 364, 58, 364, 162, 1, 2, - /* 1010 */ 369, 369, 63, 371, 426, 325, 426, 70, 109, 110, - /* 1020 */ 111, 112, 113, 114, 115, 116, 117, 118, 119, 96, - /* 1030 */ 121, 122, 123, 124, 125, 126, 394, 44, 397, 398, - /* 1040 */ 398, 44, 325, 401, 402, 403, 404, 405, 406, 408, - /* 1050 */ 408, 389, 325, 325, 105, 413, 333, 415, 0, 369, - /* 1060 */ 33, 419, 420, 19, 99, 118, 101, 102, 135, 104, - /* 1070 */ 347, 366, 430, 108, 369, 48, 325, 33, 364, 364, - /* 1080 */ 20, 54, 55, 56, 57, 58, 369, 364, 366, 375, - /* 1090 */ 375, 369, 48, 326, 108, 130, 369, 369, 54, 55, - /* 1100 */ 56, 57, 58, 344, 97, 346, 173, 174, 175, 366, - /* 1110 */ 161, 178, 369, 127, 128, 129, 130, 131, 132, 262, - /* 1120 */ 369, 42, 95, 44, 107, 98, 243, 244, 181, 196, - /* 1130 */ 183, 345, 199, 22, 201, 202, 203, 204, 205, 95, - /* 1140 */ 0, 42, 98, 44, 379, 2, 35, 164, 333, 133, - /* 1150 */ 134, 8, 9, 206, 207, 12, 13, 14, 15, 16, - /* 1160 */ 44, 246, 22, 1, 2, 218, 219, 220, 221, 222, - /* 1170 */ 223, 224, 0, 100, 157, 131, 103, 325, 245, 364, - /* 1180 */ 244, 232, 233, 234, 235, 236, 237, 238, 239, 240, - /* 1190 */ 241, 242, 165, 166, 22, 168, 8, 9, 171, 44, - /* 1200 */ 12, 13, 14, 15, 16, 325, 100, 455, 356, 103, - /* 1210 */ 152, 0, 168, 97, 187, 100, 364, 100, 103, 35, - /* 1220 */ 103, 369, 162, 371, 58, 164, 35, 444, 335, 185, - /* 1230 */ 169, 187, 63, 22, 35, 96, 356, 44, 423, 424, - /* 1240 */ 425, 438, 427, 428, 364, 106, 394, 385, 325, 369, - /* 1250 */ 398, 371, 97, 401, 402, 403, 404, 405, 406, 266, - /* 1260 */ 408, 264, 47, 44, 98, 413, 356, 415, 379, 70, - /* 1270 */ 44, 419, 420, 335, 394, 332, 325, 44, 398, 356, - /* 1280 */ 368, 401, 402, 403, 404, 405, 406, 364, 408, 427, - /* 1290 */ 97, 44, 369, 431, 371, 415, 13, 8, 9, 419, - /* 1300 */ 420, 12, 13, 14, 15, 16, 379, 356, 446, 447, - /* 1310 */ 429, 96, 448, 451, 452, 364, 97, 394, 35, 325, - /* 1320 */ 369, 398, 371, 97, 401, 402, 403, 404, 405, 406, - /* 1330 */ 97, 408, 44, 432, 44, 0, 44, 325, 415, 421, - /* 1340 */ 13, 247, 419, 420, 97, 394, 333, 48, 396, 398, - /* 1350 */ 356, 395, 401, 402, 403, 404, 405, 406, 364, 408, - /* 1360 */ 179, 173, 35, 369, 387, 371, 415, 183, 356, 20, - /* 1370 */ 419, 420, 44, 42, 183, 206, 364, 364, 376, 379, - /* 1380 */ 325, 369, 358, 371, 49, 97, 376, 97, 394, 97, - /* 1390 */ 44, 44, 398, 369, 374, 401, 402, 403, 404, 405, - /* 1400 */ 406, 407, 408, 409, 410, 161, 394, 20, 333, 333, - /* 1410 */ 398, 356, 376, 401, 402, 403, 404, 405, 406, 364, - /* 1420 */ 408, 397, 398, 399, 369, 97, 371, 44, 44, 341, - /* 1430 */ 374, 374, 408, 325, 94, 333, 423, 424, 425, 20, - /* 1440 */ 427, 428, 20, 97, 97, 333, 333, 327, 327, 394, - /* 1450 */ 391, 371, 20, 398, 325, 267, 401, 402, 403, 404, - /* 1460 */ 405, 406, 339, 408, 356, 453, 454, 339, 334, 20, - /* 1470 */ 415, 386, 364, 52, 339, 420, 334, 369, 327, 371, - /* 1480 */ 97, 97, 333, 339, 339, 356, 339, 339, 336, 336, - /* 1490 */ 333, 369, 356, 364, 385, 369, 195, 356, 369, 186, - /* 1500 */ 371, 327, 394, 393, 337, 391, 398, 369, 325, 401, - /* 1510 */ 402, 403, 404, 405, 406, 356, 408, 356, 333, 356, - /* 1520 */ 356, 356, 390, 394, 356, 371, 356, 398, 253, 356, - /* 1530 */ 401, 402, 403, 404, 405, 406, 427, 408, 356, 356, - /* 1540 */ 431, 337, 437, 252, 369, 259, 172, 364, 369, 369, - /* 1550 */ 379, 443, 369, 260, 371, 446, 447, 379, 382, 382, - /* 1560 */ 451, 452, 325, 8, 9, 440, 439, 12, 13, 14, - /* 1570 */ 15, 16, 261, 436, 445, 268, 244, 394, 248, 325, - /* 1580 */ 456, 398, 265, 437, 401, 402, 403, 404, 405, 406, - /* 1590 */ 434, 408, 396, 356, 364, 437, 263, 20, 361, 333, - /* 1600 */ 450, 364, 400, 334, 337, 325, 369, 382, 371, 449, - /* 1610 */ 356, 369, 369, 382, 369, 361, 166, 369, 364, 369, - /* 1620 */ 369, 435, 337, 369, 352, 371, 380, 364, 96, 96, - /* 1630 */ 418, 394, 337, 325, 360, 398, 356, 454, 401, 402, - /* 1640 */ 403, 404, 405, 406, 364, 408, 369, 333, 394, 369, - /* 1650 */ 346, 371, 398, 337, 36, 401, 402, 403, 404, 405, - /* 1660 */ 406, 327, 408, 392, 356, 328, 388, 383, 350, 361, - /* 1670 */ 383, 350, 364, 350, 394, 323, 325, 369, 398, 371, - /* 1680 */ 338, 401, 402, 403, 404, 405, 406, 0, 408, 0, - /* 1690 */ 188, 0, 325, 0, 42, 0, 35, 200, 35, 35, - /* 1700 */ 35, 200, 394, 0, 35, 35, 398, 356, 200, 401, - /* 1710 */ 402, 403, 404, 405, 406, 364, 408, 0, 200, 164, - /* 1720 */ 369, 0, 371, 356, 0, 35, 22, 0, 183, 35, - /* 1730 */ 181, 364, 0, 0, 177, 385, 369, 176, 371, 0, - /* 1740 */ 0, 0, 0, 325, 47, 394, 0, 42, 0, 398, - /* 1750 */ 0, 0, 401, 402, 403, 404, 405, 406, 0, 408, - /* 1760 */ 0, 394, 0, 0, 0, 398, 152, 0, 401, 402, - /* 1770 */ 403, 404, 405, 406, 356, 408, 152, 427, 35, 0, - /* 1780 */ 0, 431, 364, 0, 0, 0, 325, 369, 0, 371, - /* 1790 */ 0, 0, 0, 0, 0, 0, 446, 447, 0, 0, - /* 1800 */ 0, 451, 452, 325, 0, 0, 0, 42, 0, 0, - /* 1810 */ 0, 22, 394, 0, 0, 136, 398, 356, 0, 401, - /* 1820 */ 402, 403, 404, 405, 406, 364, 408, 0, 0, 58, - /* 1830 */ 369, 35, 371, 0, 356, 58, 0, 0, 14, 42, - /* 1840 */ 39, 0, 364, 14, 0, 0, 44, 369, 0, 371, - /* 1850 */ 47, 0, 40, 172, 47, 394, 325, 0, 47, 398, - /* 1860 */ 39, 39, 401, 402, 403, 404, 405, 406, 0, 408, - /* 1870 */ 0, 0, 394, 325, 35, 0, 398, 39, 48, 401, - /* 1880 */ 402, 403, 404, 405, 406, 35, 408, 356, 48, 64, - /* 1890 */ 0, 39, 39, 35, 48, 364, 0, 35, 39, 0, - /* 1900 */ 369, 0, 371, 48, 356, 0, 0, 35, 22, 0, - /* 1910 */ 44, 35, 364, 35, 35, 22, 35, 369, 44, 371, - /* 1920 */ 105, 0, 103, 35, 325, 394, 35, 35, 0, 398, - /* 1930 */ 22, 0, 401, 402, 403, 404, 405, 406, 22, 408, - /* 1940 */ 22, 325, 394, 0, 50, 35, 398, 35, 0, 401, - /* 1950 */ 402, 403, 404, 405, 406, 356, 408, 35, 0, 22, - /* 1960 */ 20, 35, 35, 364, 97, 193, 0, 325, 369, 96, - /* 1970 */ 371, 35, 356, 0, 22, 0, 0, 3, 44, 249, - /* 1980 */ 364, 164, 166, 96, 325, 369, 97, 371, 44, 44, - /* 1990 */ 164, 96, 3, 394, 97, 164, 96, 398, 356, 97, - /* 2000 */ 401, 402, 403, 404, 405, 406, 364, 408, 97, 96, - /* 2010 */ 394, 369, 170, 371, 398, 356, 184, 401, 402, 403, - /* 2020 */ 404, 405, 406, 364, 408, 96, 47, 47, 369, 44, - /* 2030 */ 371, 96, 44, 35, 35, 325, 394, 35, 97, 97, - /* 2040 */ 398, 35, 35, 401, 402, 403, 404, 405, 406, 35, - /* 2050 */ 408, 97, 97, 394, 44, 47, 47, 398, 0, 0, - /* 2060 */ 401, 402, 403, 404, 405, 406, 356, 408, 0, 97, - /* 2070 */ 167, 0, 249, 96, 364, 97, 39, 96, 325, 369, - /* 2080 */ 96, 371, 96, 249, 165, 47, 243, 96, 106, 44, - /* 2090 */ 230, 2, 228, 228, 325, 22, 96, 47, 47, 22, - /* 2100 */ 97, 96, 107, 120, 394, 35, 208, 96, 398, 356, - /* 2110 */ 206, 401, 402, 403, 404, 405, 406, 364, 408, 97, - /* 2120 */ 97, 96, 369, 96, 371, 356, 97, 96, 35, 97, - /* 2130 */ 96, 35, 97, 364, 35, 96, 35, 97, 369, 96, - /* 2140 */ 371, 97, 96, 35, 97, 325, 120, 394, 96, 22, - /* 2150 */ 120, 398, 96, 120, 401, 402, 403, 404, 405, 406, - /* 2160 */ 44, 408, 108, 394, 35, 96, 22, 398, 96, 64, - /* 2170 */ 401, 402, 403, 404, 405, 406, 356, 408, 63, 70, - /* 2180 */ 35, 35, 35, 35, 364, 35, 35, 35, 325, 369, - /* 2190 */ 35, 371, 35, 35, 35, 93, 35, 44, 22, 35, - /* 2200 */ 22, 35, 35, 35, 70, 325, 35, 35, 35, 35, - /* 2210 */ 35, 22, 35, 0, 394, 35, 0, 48, 398, 356, - /* 2220 */ 39, 401, 402, 403, 404, 405, 406, 364, 408, 35, - /* 2230 */ 48, 39, 369, 0, 371, 35, 356, 39, 48, 0, - /* 2240 */ 35, 48, 39, 0, 364, 35, 35, 0, 22, 369, - /* 2250 */ 21, 371, 22, 22, 457, 21, 20, 394, 325, 457, - /* 2260 */ 457, 398, 457, 457, 401, 402, 403, 404, 405, 406, - /* 2270 */ 457, 408, 457, 457, 394, 325, 457, 457, 398, 457, - /* 2280 */ 457, 401, 402, 403, 404, 405, 406, 457, 408, 356, - /* 2290 */ 457, 457, 457, 457, 457, 457, 457, 364, 457, 457, - /* 2300 */ 457, 457, 369, 457, 371, 457, 356, 457, 457, 457, - /* 2310 */ 457, 457, 457, 457, 364, 457, 457, 457, 457, 369, - /* 2320 */ 457, 371, 457, 457, 457, 457, 325, 394, 457, 457, - /* 2330 */ 457, 398, 457, 457, 401, 402, 403, 404, 405, 406, - /* 2340 */ 457, 408, 457, 457, 394, 457, 457, 457, 398, 457, - /* 2350 */ 457, 401, 402, 403, 404, 405, 406, 356, 408, 457, - /* 2360 */ 457, 457, 457, 457, 457, 364, 457, 457, 457, 457, - /* 2370 */ 369, 457, 371, 457, 457, 457, 457, 457, 457, 457, - /* 2380 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2390 */ 457, 457, 457, 457, 457, 394, 457, 457, 457, 398, - /* 2400 */ 457, 457, 401, 402, 403, 404, 405, 406, 457, 408, - /* 2410 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2420 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2430 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2440 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2450 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2460 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2470 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2480 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2490 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2500 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2510 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2520 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2530 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2540 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2550 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2560 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, - /* 2570 */ 457, 457, 457, 457, 457, 457, 457, 457, 457, + /* 950 */ 92, 18, 327, 327, 20, 58, 23, 8, 9, 366, + /* 960 */ 22, 12, 13, 14, 15, 16, 360, 335, 96, 108, + /* 970 */ 37, 38, 368, 35, 41, 371, 335, 371, 164, 8, + /* 980 */ 9, 349, 327, 12, 13, 14, 15, 16, 366, 366, + /* 990 */ 349, 130, 59, 60, 61, 98, 371, 371, 366, 377, + /* 1000 */ 377, 368, 37, 44, 371, 399, 400, 366, 70, 327, + /* 1010 */ 335, 368, 63, 358, 371, 359, 410, 424, 425, 426, + /* 1020 */ 427, 366, 429, 430, 349, 346, 371, 348, 373, 96, + /* 1030 */ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + /* 1040 */ 119, 366, 121, 122, 123, 124, 125, 126, 244, 351, + /* 1050 */ 327, 396, 354, 371, 105, 400, 118, 335, 403, 404, + /* 1060 */ 405, 406, 407, 408, 99, 410, 101, 102, 135, 104, + /* 1070 */ 415, 349, 417, 108, 327, 35, 421, 422, 335, 243, + /* 1080 */ 244, 335, 0, 335, 335, 335, 335, 432, 366, 42, + /* 1090 */ 107, 44, 349, 44, 371, 130, 162, 349, 349, 349, + /* 1100 */ 349, 42, 63, 44, 22, 358, 173, 174, 175, 366, + /* 1110 */ 161, 178, 366, 366, 366, 366, 366, 366, 371, 181, + /* 1120 */ 373, 183, 35, 100, 100, 335, 103, 103, 335, 196, + /* 1130 */ 133, 134, 199, 264, 201, 202, 203, 204, 205, 44, + /* 1140 */ 157, 44, 349, 396, 206, 207, 97, 400, 44, 391, + /* 1150 */ 403, 404, 405, 406, 407, 408, 366, 410, 0, 366, + /* 1160 */ 387, 327, 415, 100, 417, 44, 103, 100, 421, 422, + /* 1170 */ 103, 425, 426, 427, 0, 429, 430, 359, 245, 432, + /* 1180 */ 22, 232, 233, 234, 235, 236, 237, 238, 239, 240, + /* 1190 */ 241, 242, 358, 164, 97, 328, 22, 359, 169, 44, + /* 1200 */ 366, 97, 429, 359, 327, 371, 433, 373, 44, 44, + /* 1210 */ 359, 44, 44, 1, 2, 425, 426, 427, 97, 429, + /* 1220 */ 430, 448, 449, 183, 381, 266, 453, 454, 347, 457, + /* 1230 */ 396, 13, 327, 44, 400, 358, 44, 403, 404, 405, + /* 1240 */ 406, 407, 408, 366, 410, 206, 13, 0, 371, 415, + /* 1250 */ 373, 417, 97, 35, 44, 421, 422, 96, 35, 446, + /* 1260 */ 337, 97, 97, 358, 97, 97, 432, 106, 35, 440, + /* 1270 */ 183, 366, 44, 396, 358, 327, 371, 400, 373, 44, + /* 1280 */ 403, 404, 405, 406, 407, 408, 97, 410, 44, 97, + /* 1290 */ 44, 337, 415, 70, 417, 381, 49, 334, 421, 422, + /* 1300 */ 387, 396, 370, 381, 431, 400, 358, 97, 403, 404, + /* 1310 */ 405, 406, 407, 408, 366, 410, 450, 423, 434, 371, + /* 1320 */ 415, 373, 417, 247, 398, 97, 421, 422, 48, 179, + /* 1330 */ 387, 389, 97, 397, 42, 378, 20, 381, 378, 161, + /* 1340 */ 327, 97, 429, 97, 396, 376, 433, 20, 400, 335, + /* 1350 */ 335, 403, 404, 405, 406, 407, 408, 378, 410, 94, + /* 1360 */ 376, 448, 449, 268, 327, 417, 453, 454, 376, 421, + /* 1370 */ 422, 358, 429, 343, 20, 329, 433, 335, 335, 366, + /* 1380 */ 335, 329, 20, 327, 371, 341, 373, 393, 20, 373, + /* 1390 */ 336, 448, 449, 20, 341, 358, 453, 454, 388, 341, + /* 1400 */ 336, 341, 341, 366, 335, 52, 341, 341, 371, 396, + /* 1410 */ 373, 338, 338, 400, 358, 329, 403, 404, 405, 406, + /* 1420 */ 407, 408, 366, 410, 335, 195, 358, 371, 358, 373, + /* 1430 */ 417, 329, 381, 396, 421, 422, 327, 400, 358, 358, + /* 1440 */ 403, 404, 405, 406, 407, 408, 358, 410, 358, 358, + /* 1450 */ 358, 358, 396, 339, 358, 371, 400, 327, 358, 403, + /* 1460 */ 404, 405, 406, 407, 408, 371, 410, 358, 186, 392, + /* 1470 */ 395, 393, 373, 417, 339, 366, 335, 421, 422, 381, + /* 1480 */ 371, 371, 373, 371, 255, 254, 371, 439, 358, 384, + /* 1490 */ 384, 371, 455, 456, 439, 261, 366, 172, 248, 442, + /* 1500 */ 263, 371, 262, 373, 265, 396, 398, 244, 437, 400, + /* 1510 */ 327, 360, 403, 404, 405, 406, 407, 408, 409, 410, + /* 1520 */ 411, 412, 371, 438, 441, 270, 396, 267, 366, 20, + /* 1530 */ 400, 452, 335, 403, 404, 405, 406, 407, 408, 402, + /* 1540 */ 410, 358, 439, 436, 336, 339, 371, 384, 371, 366, + /* 1550 */ 399, 400, 401, 371, 371, 371, 373, 371, 371, 458, + /* 1560 */ 384, 410, 451, 327, 166, 339, 339, 382, 354, 366, + /* 1570 */ 96, 96, 420, 362, 444, 445, 371, 335, 36, 396, + /* 1580 */ 348, 330, 339, 400, 327, 329, 403, 404, 405, 406, + /* 1590 */ 407, 408, 390, 410, 358, 394, 325, 352, 385, 340, + /* 1600 */ 417, 385, 366, 0, 352, 422, 327, 371, 0, 373, + /* 1610 */ 352, 188, 0, 0, 42, 358, 0, 35, 200, 35, + /* 1620 */ 35, 35, 200, 366, 0, 35, 35, 200, 371, 0, + /* 1630 */ 373, 200, 396, 0, 35, 0, 400, 358, 0, 403, + /* 1640 */ 404, 405, 406, 407, 408, 366, 410, 22, 183, 35, + /* 1650 */ 371, 181, 373, 396, 0, 0, 176, 400, 177, 0, + /* 1660 */ 403, 404, 405, 406, 407, 408, 0, 410, 47, 0, + /* 1670 */ 0, 0, 327, 42, 0, 396, 0, 0, 0, 400, + /* 1680 */ 152, 445, 403, 404, 405, 406, 407, 408, 0, 410, + /* 1690 */ 4, 0, 327, 0, 0, 35, 0, 152, 0, 0, + /* 1700 */ 0, 0, 0, 358, 447, 19, 0, 0, 363, 0, + /* 1710 */ 0, 366, 0, 0, 0, 0, 371, 0, 373, 33, + /* 1720 */ 0, 42, 0, 358, 0, 0, 0, 0, 0, 0, + /* 1730 */ 22, 366, 0, 136, 48, 456, 371, 0, 373, 53, + /* 1740 */ 0, 396, 0, 58, 58, 400, 35, 327, 403, 404, + /* 1750 */ 405, 406, 407, 408, 0, 410, 0, 0, 39, 14, + /* 1760 */ 42, 396, 14, 327, 0, 400, 0, 44, 403, 404, + /* 1770 */ 405, 406, 407, 408, 58, 410, 40, 412, 358, 0, + /* 1780 */ 47, 95, 47, 363, 98, 47, 366, 0, 39, 39, + /* 1790 */ 172, 371, 0, 373, 358, 0, 0, 0, 64, 363, + /* 1800 */ 0, 48, 366, 35, 39, 0, 327, 371, 35, 373, + /* 1810 */ 39, 48, 0, 39, 0, 35, 396, 48, 35, 0, + /* 1820 */ 400, 39, 0, 403, 404, 405, 406, 407, 408, 48, + /* 1830 */ 410, 0, 396, 0, 103, 105, 400, 358, 35, 403, + /* 1840 */ 404, 405, 406, 407, 408, 366, 410, 22, 0, 327, + /* 1850 */ 371, 35, 373, 35, 44, 35, 22, 44, 35, 35, + /* 1860 */ 0, 35, 35, 22, 0, 327, 22, 50, 0, 22, + /* 1870 */ 35, 0, 0, 35, 35, 396, 0, 22, 20, 400, + /* 1880 */ 358, 35, 403, 404, 405, 406, 407, 408, 366, 410, + /* 1890 */ 193, 35, 0, 371, 96, 373, 358, 35, 97, 0, + /* 1900 */ 22, 0, 0, 164, 366, 184, 3, 164, 97, 371, + /* 1910 */ 166, 373, 249, 44, 44, 164, 327, 170, 396, 44, + /* 1920 */ 228, 169, 400, 44, 96, 403, 404, 405, 406, 407, + /* 1930 */ 408, 47, 410, 327, 396, 253, 96, 47, 400, 169, + /* 1940 */ 97, 403, 404, 405, 406, 407, 408, 358, 410, 97, + /* 1950 */ 96, 3, 249, 96, 44, 366, 97, 96, 35, 96, + /* 1960 */ 371, 35, 373, 97, 358, 35, 35, 35, 35, 47, + /* 1970 */ 97, 97, 366, 44, 97, 47, 0, 371, 0, 373, + /* 1980 */ 0, 96, 167, 97, 97, 396, 0, 96, 327, 400, + /* 1990 */ 249, 96, 403, 404, 405, 406, 407, 408, 243, 410, + /* 2000 */ 96, 39, 396, 96, 106, 47, 400, 327, 44, 403, + /* 2010 */ 404, 405, 406, 407, 408, 165, 410, 228, 230, 358, + /* 2020 */ 2, 228, 22, 96, 47, 22, 47, 366, 107, 35, + /* 2030 */ 96, 327, 371, 97, 373, 206, 35, 97, 358, 96, + /* 2040 */ 208, 97, 96, 96, 35, 96, 366, 97, 97, 96, + /* 2050 */ 96, 371, 97, 373, 97, 35, 96, 396, 97, 35, + /* 2060 */ 97, 400, 358, 96, 403, 404, 405, 406, 407, 408, + /* 2070 */ 366, 410, 35, 22, 108, 371, 396, 373, 96, 120, + /* 2080 */ 400, 96, 44, 403, 404, 405, 406, 407, 408, 327, + /* 2090 */ 410, 120, 120, 120, 96, 35, 22, 63, 96, 64, + /* 2100 */ 396, 35, 35, 35, 400, 327, 35, 403, 404, 405, + /* 2110 */ 406, 407, 408, 35, 410, 35, 35, 35, 35, 35, + /* 2120 */ 358, 93, 70, 44, 22, 35, 35, 35, 366, 22, + /* 2130 */ 35, 35, 35, 371, 70, 373, 358, 22, 35, 35, + /* 2140 */ 0, 35, 48, 35, 366, 35, 35, 35, 327, 371, + /* 2150 */ 0, 373, 39, 35, 0, 39, 35, 48, 396, 39, + /* 2160 */ 0, 35, 400, 39, 327, 403, 404, 405, 406, 407, + /* 2170 */ 408, 48, 410, 48, 396, 22, 35, 35, 400, 358, + /* 2180 */ 0, 403, 404, 405, 406, 407, 408, 366, 410, 0, + /* 2190 */ 21, 21, 371, 22, 373, 358, 22, 20, 459, 459, + /* 2200 */ 459, 459, 459, 366, 459, 459, 459, 327, 371, 459, + /* 2210 */ 373, 459, 459, 459, 459, 459, 459, 396, 459, 459, + /* 2220 */ 459, 400, 459, 327, 403, 404, 405, 406, 407, 408, + /* 2230 */ 459, 410, 459, 396, 459, 459, 459, 400, 358, 459, + /* 2240 */ 403, 404, 405, 406, 407, 408, 366, 410, 459, 459, + /* 2250 */ 459, 371, 459, 373, 358, 459, 459, 459, 459, 459, + /* 2260 */ 459, 459, 366, 459, 459, 459, 327, 371, 459, 373, + /* 2270 */ 459, 459, 459, 459, 459, 459, 396, 459, 459, 459, + /* 2280 */ 400, 459, 459, 403, 404, 405, 406, 407, 408, 459, + /* 2290 */ 410, 459, 396, 459, 459, 459, 400, 358, 459, 403, + /* 2300 */ 404, 405, 406, 407, 408, 366, 410, 459, 459, 459, + /* 2310 */ 371, 459, 373, 459, 459, 459, 459, 327, 459, 459, + /* 2320 */ 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, + /* 2330 */ 459, 459, 459, 459, 327, 396, 459, 459, 459, 400, + /* 2340 */ 459, 459, 403, 404, 405, 406, 407, 408, 358, 410, + /* 2350 */ 459, 459, 459, 459, 459, 459, 366, 459, 459, 459, + /* 2360 */ 327, 371, 459, 373, 459, 358, 459, 459, 459, 459, + /* 2370 */ 459, 459, 459, 366, 459, 459, 459, 459, 371, 459, + /* 2380 */ 373, 459, 459, 459, 459, 459, 396, 459, 459, 459, + /* 2390 */ 400, 358, 459, 403, 404, 405, 406, 407, 408, 366, + /* 2400 */ 410, 459, 459, 396, 371, 459, 373, 400, 459, 459, + /* 2410 */ 403, 404, 405, 406, 407, 408, 327, 410, 459, 459, + /* 2420 */ 459, 459, 459, 459, 459, 459, 459, 459, 459, 396, + /* 2430 */ 459, 459, 327, 400, 459, 459, 403, 404, 405, 406, + /* 2440 */ 407, 408, 459, 410, 459, 459, 459, 358, 459, 459, + /* 2450 */ 459, 459, 459, 459, 459, 366, 459, 459, 459, 459, + /* 2460 */ 371, 459, 373, 358, 459, 459, 459, 459, 459, 459, + /* 2470 */ 459, 366, 459, 459, 459, 459, 371, 459, 373, 459, + /* 2480 */ 459, 459, 459, 459, 459, 396, 327, 459, 459, 400, + /* 2490 */ 459, 459, 403, 404, 405, 406, 407, 408, 459, 410, + /* 2500 */ 459, 396, 327, 459, 459, 400, 459, 459, 403, 404, + /* 2510 */ 405, 406, 407, 408, 459, 410, 459, 358, 459, 459, + /* 2520 */ 459, 459, 459, 459, 459, 366, 459, 459, 459, 459, + /* 2530 */ 371, 459, 373, 358, 459, 459, 459, 459, 459, 459, + /* 2540 */ 459, 366, 459, 459, 459, 459, 371, 459, 373, 459, + /* 2550 */ 459, 459, 459, 459, 459, 396, 459, 459, 459, 400, + /* 2560 */ 459, 459, 403, 404, 405, 406, 407, 408, 459, 410, + /* 2570 */ 459, 396, 459, 459, 459, 400, 459, 459, 403, 404, + /* 2580 */ 405, 406, 407, 408, 459, 410, }; -#define YY_SHIFT_COUNT (708) +#define YY_SHIFT_COUNT (714) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2247) +#define YY_SHIFT_MAX (2189) static const unsigned short int yy_shift_ofst[] = { /* 0 */ 933, 0, 134, 0, 268, 268, 268, 268, 268, 268, - /* 10 */ 268, 268, 268, 402, 536, 536, 670, 536, 536, 536, + /* 10 */ 268, 268, 268, 268, 268, 402, 536, 536, 670, 536, /* 20 */ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, /* 30 */ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, - /* 40 */ 536, 536, 536, 536, 536, 536, 180, 224, 64, 223, - /* 50 */ 133, 1, 17, 1, 64, 64, 947, 947, 1, 947, - /* 60 */ 947, 147, 1, 138, 138, 246, 246, 258, 137, 18, - /* 70 */ 18, 138, 138, 138, 138, 138, 138, 138, 138, 138, - /* 80 */ 138, 86, 138, 138, 249, 138, 314, 138, 138, 399, - /* 90 */ 138, 138, 399, 138, 399, 399, 399, 138, 454, 762, - /* 100 */ 949, 949, 96, 911, 480, 480, 480, 480, 480, 480, - /* 110 */ 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - /* 120 */ 480, 480, 480, 965, 403, 258, 137, 671, 238, 302, - /* 130 */ 302, 302, 801, 565, 565, 238, 548, 548, 548, 481, - /* 140 */ 314, 375, 399, 623, 399, 623, 623, 481, 659, 909, - /* 150 */ 909, 909, 909, 909, 909, 909, 1044, 793, 439, 698, - /* 160 */ 1188, 253, 151, 336, 680, 845, 285, 501, 855, 679, - /* 170 */ 983, 883, 936, 857, 883, 1079, 915, 1060, 1094, 1299, - /* 180 */ 1181, 1331, 1349, 1331, 1244, 1387, 1387, 1331, 1244, 1244, - /* 190 */ 1340, 1387, 1387, 1387, 1419, 1419, 1422, 86, 314, 86, - /* 200 */ 1432, 1449, 86, 1432, 86, 86, 86, 1387, 86, 1421, - /* 210 */ 1421, 1419, 399, 399, 399, 399, 399, 399, 399, 399, - /* 220 */ 399, 399, 399, 1387, 1419, 623, 623, 1301, 1422, 454, - /* 230 */ 1313, 314, 454, 1387, 1349, 1349, 623, 1275, 1291, 623, - /* 240 */ 1275, 1291, 623, 623, 399, 1286, 1374, 1275, 1311, 1293, - /* 250 */ 1330, 1094, 1307, 1317, 1333, 1332, 548, 1577, 1387, 1432, - /* 260 */ 454, 1291, 623, 623, 623, 623, 623, 1291, 623, 1450, - /* 270 */ 454, 481, 454, 548, 1532, 1533, 623, 659, 1387, 454, - /* 280 */ 1618, 1419, 2410, 2410, 2410, 2410, 2410, 2410, 2410, 2410, - /* 290 */ 2410, 858, 1027, 23, 627, 52, 756, 449, 155, 859, - /* 300 */ 1143, 1555, 986, 1289, 1289, 1289, 1289, 1289, 1289, 1289, - /* 310 */ 1289, 1289, 699, 106, 243, 243, 658, 626, 288, 346, - /* 320 */ 412, 651, 651, 823, 1007, 436, 823, 823, 823, 591, - /* 330 */ 653, 1111, 1099, 1017, 1058, 1073, 1106, 1115, 1117, 1140, - /* 340 */ 1172, 1211, 1166, 1116, 1155, 1016, 997, 993, 1061, 1193, - /* 350 */ 1219, 1226, 1247, 1288, 1162, 1290, 1184, 1191, 1169, 1233, - /* 360 */ 1215, 1292, 1328, 1346, 1347, 1383, 1384, 1139, 1283, 1327, - /* 370 */ 1199, 1335, 1687, 1689, 1502, 1691, 1693, 1652, 1695, 1661, - /* 380 */ 1497, 1663, 1664, 1665, 1501, 1703, 1669, 1670, 1508, 1717, - /* 390 */ 1518, 1721, 1690, 1724, 1704, 1727, 1694, 1545, 1549, 1732, - /* 400 */ 1733, 1557, 1561, 1739, 1740, 1697, 1741, 1742, 1746, 1705, - /* 410 */ 1748, 1750, 1751, 1758, 1760, 1762, 1763, 1764, 1614, 1743, - /* 420 */ 1767, 1624, 1779, 1780, 1783, 1784, 1785, 1788, 1790, 1791, - /* 430 */ 1792, 1793, 1794, 1795, 1798, 1799, 1800, 1765, 1804, 1805, - /* 440 */ 1806, 1808, 1809, 1789, 1810, 1813, 1814, 1679, 1818, 1827, - /* 450 */ 1796, 1828, 1771, 1833, 1777, 1836, 1837, 1797, 1801, 1802, - /* 460 */ 1803, 1824, 1807, 1829, 1811, 1841, 1812, 1821, 1844, 1845, - /* 470 */ 1848, 1822, 1681, 1851, 1857, 1868, 1825, 1870, 1871, 1839, - /* 480 */ 1830, 1838, 1875, 1850, 1840, 1852, 1890, 1858, 1846, 1853, - /* 490 */ 1896, 1862, 1855, 1859, 1899, 1901, 1905, 1906, 1815, 1819, - /* 500 */ 1872, 1886, 1909, 1876, 1878, 1879, 1881, 1866, 1874, 1888, - /* 510 */ 1891, 1893, 1892, 1921, 1908, 1928, 1916, 1894, 1931, 1918, - /* 520 */ 1910, 1943, 1912, 1948, 1922, 1958, 1937, 1940, 1926, 1927, - /* 530 */ 1772, 1867, 1873, 1966, 1817, 1936, 1973, 1832, 1952, 1826, - /* 540 */ 1816, 1975, 1976, 1831, 1842, 1974, 1934, 1730, 1887, 1889, - /* 550 */ 1895, 1897, 1944, 1902, 1900, 1913, 1929, 1911, 1945, 1979, - /* 560 */ 1980, 1935, 1985, 1823, 1941, 1942, 1989, 1988, 1834, 1998, - /* 570 */ 1999, 2002, 2006, 2007, 2014, 1954, 1955, 2008, 1843, 2010, - /* 580 */ 2009, 2058, 2059, 2068, 1977, 1972, 1978, 1981, 1984, 1903, - /* 590 */ 1986, 2071, 2037, 1919, 1991, 1982, 1803, 2038, 2045, 1864, - /* 600 */ 1860, 1865, 2089, 2073, 1904, 2000, 2003, 2005, 2022, 2011, - /* 610 */ 2023, 2050, 2025, 2027, 2051, 2029, 2077, 1898, 2031, 1995, - /* 620 */ 2032, 2070, 2093, 2034, 2035, 2096, 2039, 2040, 2099, 2043, - /* 630 */ 2044, 2101, 2046, 2047, 2108, 2052, 1983, 2026, 2030, 2033, - /* 640 */ 2127, 2054, 2056, 2116, 2069, 2129, 2072, 2116, 2116, 2144, - /* 650 */ 2105, 2115, 2145, 2146, 2147, 2148, 2150, 2151, 2152, 2155, - /* 660 */ 2157, 2158, 2109, 2102, 2153, 2159, 2161, 2176, 2164, 2178, - /* 670 */ 2166, 2167, 2168, 2134, 1866, 2171, 1874, 2172, 2173, 2174, - /* 680 */ 2175, 2189, 2177, 2213, 2180, 2169, 2181, 2216, 2194, 2182, - /* 690 */ 2192, 2233, 2200, 2190, 2198, 2239, 2205, 2193, 2203, 2243, - /* 700 */ 2210, 2211, 2247, 2226, 2229, 2230, 2231, 2234, 2236, + /* 40 */ 536, 536, 536, 536, 536, 536, 536, 536, 180, 223, + /* 50 */ 39, 281, 133, 1, 286, 1, 39, 39, 618, 618, + /* 60 */ 1, 618, 618, 269, 1, 188, 188, 246, 246, 258, + /* 70 */ 18, 42, 42, 188, 188, 188, 188, 188, 188, 188, + /* 80 */ 188, 188, 188, 361, 188, 188, 430, 188, 481, 188, + /* 90 */ 188, 505, 188, 188, 505, 188, 505, 505, 505, 188, + /* 100 */ 584, 762, 949, 949, 96, 628, 938, 938, 938, 938, + /* 110 */ 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, + /* 120 */ 938, 938, 938, 938, 938, 965, 630, 258, 18, 322, + /* 130 */ 601, 550, 550, 550, 711, 548, 548, 601, 614, 614, + /* 140 */ 614, 137, 481, 462, 505, 704, 505, 704, 704, 137, + /* 150 */ 741, 921, 921, 921, 921, 921, 921, 921, 677, 572, + /* 160 */ 781, 566, 395, 399, 151, 84, 414, 445, 144, 680, + /* 170 */ 752, 861, 709, 836, 804, 869, 836, 1047, 87, 934, + /* 180 */ 1076, 1280, 1150, 1292, 1316, 1292, 1178, 1327, 1327, 1292, + /* 190 */ 1178, 1178, 1265, 1327, 1327, 1327, 1354, 1354, 1362, 361, + /* 200 */ 481, 361, 1368, 1373, 361, 1368, 361, 361, 361, 1327, + /* 210 */ 361, 1353, 1353, 1354, 505, 505, 505, 505, 505, 505, + /* 220 */ 505, 505, 505, 505, 505, 1327, 1354, 704, 704, 1230, + /* 230 */ 1362, 584, 1282, 481, 584, 1327, 1316, 1316, 704, 1229, + /* 240 */ 1231, 704, 1229, 1231, 704, 704, 505, 1234, 1325, 1229, + /* 250 */ 1237, 1240, 1250, 1076, 1255, 1260, 1239, 1263, 614, 1509, + /* 260 */ 1327, 1368, 584, 1231, 704, 704, 704, 704, 704, 1231, + /* 270 */ 704, 1398, 584, 137, 584, 614, 1474, 1475, 704, 741, + /* 280 */ 1327, 584, 1542, 1354, 2586, 2586, 2586, 2586, 2586, 2586, + /* 290 */ 2586, 2586, 2586, 858, 497, 23, 1686, 52, 432, 629, + /* 300 */ 155, 665, 805, 814, 325, 971, 971, 971, 971, 971, + /* 310 */ 971, 971, 971, 971, 410, 106, 243, 243, 390, 404, + /* 320 */ 509, 284, 279, 142, 142, 671, 542, 554, 671, 671, + /* 330 */ 671, 1049, 148, 702, 1059, 983, 557, 1023, 1024, 1063, + /* 340 */ 1067, 1082, 1158, 1174, 897, 1097, 1104, 997, 959, 1095, + /* 350 */ 1029, 1121, 1155, 1164, 1165, 1167, 1212, 1168, 1040, 1087, + /* 360 */ 1039, 1189, 872, 1192, 1210, 1228, 1235, 1244, 1246, 1161, + /* 370 */ 1218, 1233, 1223, 1247, 1603, 1608, 1423, 1612, 1613, 1572, + /* 380 */ 1616, 1582, 1418, 1584, 1585, 1586, 1422, 1624, 1590, 1591, + /* 390 */ 1427, 1629, 1431, 1633, 1599, 1635, 1625, 1638, 1614, 1465, + /* 400 */ 1470, 1654, 1655, 1481, 1480, 1659, 1666, 1621, 1669, 1670, + /* 410 */ 1671, 1631, 1674, 1676, 1677, 1678, 1688, 1691, 1693, 1694, + /* 420 */ 1528, 1660, 1696, 1545, 1698, 1699, 1700, 1701, 1702, 1706, + /* 430 */ 1707, 1709, 1710, 1712, 1713, 1714, 1715, 1717, 1720, 1679, + /* 440 */ 1722, 1724, 1725, 1726, 1727, 1708, 1728, 1729, 1732, 1597, + /* 450 */ 1737, 1740, 1711, 1742, 1685, 1754, 1716, 1756, 1757, 1718, + /* 460 */ 1719, 1723, 1733, 1745, 1735, 1748, 1738, 1764, 1736, 1749, + /* 470 */ 1766, 1779, 1787, 1750, 1618, 1792, 1795, 1796, 1734, 1797, + /* 480 */ 1800, 1768, 1753, 1765, 1805, 1773, 1763, 1771, 1812, 1780, + /* 490 */ 1769, 1774, 1814, 1783, 1781, 1782, 1819, 1822, 1831, 1833, + /* 500 */ 1730, 1731, 1803, 1825, 1848, 1816, 1818, 1820, 1823, 1810, + /* 510 */ 1813, 1824, 1826, 1834, 1827, 1860, 1841, 1864, 1844, 1817, + /* 520 */ 1868, 1847, 1835, 1871, 1838, 1872, 1839, 1876, 1855, 1858, + /* 530 */ 1846, 1856, 1697, 1801, 1798, 1892, 1739, 1862, 1899, 1721, + /* 540 */ 1878, 1743, 1744, 1901, 1902, 1751, 1747, 1903, 1869, 1663, + /* 550 */ 1828, 1811, 1840, 1752, 1692, 1770, 1682, 1843, 1870, 1852, + /* 560 */ 1854, 1857, 1861, 1859, 1875, 1884, 1890, 1863, 1879, 1703, + /* 570 */ 1866, 1873, 1948, 1910, 1741, 1923, 1926, 1930, 1931, 1932, + /* 580 */ 1933, 1874, 1877, 1922, 1755, 1929, 1928, 1976, 1978, 1980, + /* 590 */ 1885, 1886, 1887, 1891, 1895, 1815, 1904, 1986, 1962, 1850, + /* 600 */ 1907, 1898, 1733, 1958, 1964, 1789, 1788, 1793, 2018, 2000, + /* 610 */ 1829, 1927, 1936, 1934, 1940, 1943, 1944, 1977, 1946, 1947, + /* 620 */ 1979, 1950, 2003, 1832, 1949, 1921, 1951, 1994, 2001, 1953, + /* 630 */ 1955, 2009, 1954, 1957, 2020, 1960, 1961, 2024, 1967, 1963, + /* 640 */ 2037, 1982, 1959, 1971, 1972, 1973, 2051, 1966, 1985, 2038, + /* 650 */ 1998, 2060, 2002, 2038, 2038, 2074, 2035, 2034, 2066, 2067, + /* 660 */ 2068, 2071, 2078, 2080, 2081, 2082, 2083, 2084, 2052, 2028, + /* 670 */ 2079, 2090, 2091, 2102, 2092, 2107, 2095, 2096, 2097, 2064, + /* 680 */ 1810, 2103, 1813, 2104, 2106, 2108, 2110, 2115, 2111, 2140, + /* 690 */ 2112, 2094, 2113, 2150, 2118, 2109, 2116, 2154, 2121, 2123, + /* 700 */ 2120, 2160, 2126, 2125, 2124, 2180, 2141, 2142, 2189, 2153, + /* 710 */ 2169, 2171, 2174, 2170, 2177, }; -#define YY_REDUCE_COUNT (290) -#define YY_REDUCE_MIN (-422) -#define YY_REDUCE_MAX (2001) +#define YY_REDUCE_COUNT (292) +#define YY_REDUCE_MIN (-424) +#define YY_REDUCE_MAX (2175) static const short yy_reduce_ofst[] = { - /* 0 */ -186, -325, -226, -166, -32, 236, 642, -92, 176, 852, - /* 10 */ 880, 923, 951, 994, 333, 1012, 1055, 1108, 1129, 1183, - /* 20 */ 1237, 40, 1254, 1308, 442, 1280, 1351, 1367, 1418, 1461, - /* 30 */ 1478, 1531, 1548, 1599, 1616, 1642, 1659, 1710, 1753, 1769, - /* 40 */ 1820, 1863, 1880, 1933, 1950, 2001, -34, -345, 103, -342, - /* 50 */ 91, 862, 1109, 1350, 815, 1013, -258, 1024, -422, -266, - /* 60 */ 641, -410, -52, -235, -29, -328, -257, -263, -206, 99, - /* 70 */ 122, -307, -163, 107, 208, 226, 229, 300, 303, 310, - /* 80 */ 312, 213, 315, 344, 317, 362, -365, 444, 452, -320, - /* 90 */ 502, 619, -219, 640, 367, 188, 425, 723, -185, -125, - /* 100 */ -409, -409, 84, -330, -234, 8, 59, 128, 145, 194, - /* 110 */ 232, 327, 347, 405, 472, 529, 603, 628, 690, 717, - /* 120 */ 727, 728, 751, -26, 47, -322, -175, -88, 191, 47, - /* 130 */ 588, 590, 48, 372, 567, 211, 235, 714, 715, -290, - /* 140 */ 584, 85, 635, 705, -285, 722, 743, 453, 759, -355, - /* 150 */ 387, 495, 507, 513, 521, 597, 662, 767, 786, 765, - /* 160 */ 752, 783, 893, 803, 910, 910, 938, 889, 943, 912, - /* 170 */ 927, 881, 881, 864, 881, 918, 901, 910, 952, 956, - /* 180 */ 977, 1002, 1000, 1010, 1020, 1075, 1076, 1036, 1056, 1057, - /* 190 */ 1088, 1102, 1112, 1113, 1120, 1121, 1059, 1123, 1080, 1128, - /* 200 */ 1134, 1085, 1135, 1142, 1144, 1145, 1147, 1149, 1148, 1152, - /* 210 */ 1153, 1151, 1136, 1141, 1159, 1161, 1163, 1164, 1165, 1168, - /* 220 */ 1170, 1173, 1182, 1157, 1174, 1122, 1126, 1110, 1114, 1167, - /* 230 */ 1132, 1154, 1204, 1185, 1171, 1178, 1138, 1105, 1176, 1175, - /* 240 */ 1146, 1177, 1179, 1180, 910, 1125, 1127, 1158, 1137, 1186, - /* 250 */ 1156, 1196, 1124, 1150, 1160, 881, 1230, 1202, 1266, 1269, - /* 260 */ 1267, 1225, 1242, 1243, 1245, 1248, 1250, 1231, 1251, 1246, - /* 270 */ 1285, 1272, 1295, 1263, 1212, 1274, 1277, 1304, 1314, 1316, - /* 280 */ 1337, 1334, 1278, 1271, 1284, 1287, 1318, 1321, 1323, 1342, - /* 290 */ 1352, + /* 0 */ -188, -327, -228, -168, -34, 100, 655, 747, 834, -94, + /* 10 */ 877, 905, 948, 1013, 1056, 1109, 1130, 1037, 1183, 1236, + /* 20 */ 1257, 1279, 1345, 1365, 1420, 1436, 1479, 1522, 1538, 1589, + /* 30 */ 1606, 1661, 1680, 1704, 1762, 1778, 1821, 1837, 1880, 1896, + /* 40 */ 1939, 1990, 2007, 2033, 2089, 2105, 2159, 2175, -36, -347, + /* 50 */ 593, -344, 80, 773, 913, 943, 746, 790, -260, 1151, + /* 60 */ -424, -268, 606, -412, -54, -237, 70, -330, -259, -265, + /* 70 */ -212, -28, 107, -309, -165, 211, 224, 300, 372, 373, + /* 80 */ 434, 436, 632, -93, 641, 675, 158, 722, -367, 743, + /* 90 */ 748, -322, 749, 750, -221, 751, 420, -200, 426, 793, + /* 100 */ 336, 57, -411, -411, -294, -332, 58, 196, 220, 333, + /* 110 */ 345, 393, 396, 438, 463, 464, 478, 479, 489, 504, + /* 120 */ 529, 625, 626, 682, 723, -286, -315, 139, -5, 186, + /* 130 */ 167, -315, 36, 182, 513, 447, 454, 217, 501, 622, + /* 140 */ 623, 547, -44, 328, 294, 604, 22, 633, 643, 698, + /* 150 */ 679, -357, 409, 656, 818, 838, 844, 851, 758, 867, + /* 160 */ 881, 843, 772, 813, 923, 829, 916, 916, 954, 914, + /* 170 */ 963, 932, 922, 873, 873, 866, 873, 894, 884, 916, + /* 180 */ 926, 936, 942, 957, 956, 960, 969, 1014, 1015, 979, + /* 190 */ 984, 992, 1030, 1042, 1043, 1045, 1046, 1052, 994, 1044, + /* 200 */ 1016, 1053, 1054, 1010, 1058, 1064, 1060, 1061, 1065, 1069, + /* 210 */ 1066, 1073, 1074, 1086, 1068, 1070, 1080, 1081, 1088, 1090, + /* 220 */ 1091, 1092, 1093, 1096, 1100, 1089, 1102, 1084, 1094, 1075, + /* 230 */ 1078, 1114, 1077, 1099, 1135, 1141, 1051, 1098, 1110, 1048, + /* 240 */ 1105, 1112, 1055, 1106, 1115, 1120, 916, 1057, 1083, 1103, + /* 250 */ 1085, 1071, 1107, 1108, 1101, 1079, 1111, 873, 1162, 1137, + /* 260 */ 1197, 1208, 1206, 1163, 1175, 1177, 1182, 1184, 1186, 1176, + /* 270 */ 1187, 1185, 1226, 1214, 1227, 1203, 1152, 1211, 1205, 1232, + /* 280 */ 1242, 1243, 1251, 1256, 1202, 1201, 1213, 1216, 1245, 1252, + /* 290 */ 1258, 1259, 1271, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 10 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 20 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 30 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 40 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 50 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 60 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1845, 1589, 1589, - /* 70 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 80 */ 1589, 1667, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 90 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1665, 1838, - /* 100 */ 2035, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 110 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 120 */ 1589, 1589, 1589, 1589, 2047, 1589, 1589, 1667, 1589, 2047, - /* 130 */ 2047, 2047, 1665, 2007, 2007, 1589, 1589, 1589, 1589, 1775, - /* 140 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1775, 1589, 1589, - /* 150 */ 1589, 1589, 1589, 1589, 1589, 1589, 1882, 1589, 1589, 2072, - /* 160 */ 2125, 1589, 1589, 2075, 1589, 1589, 1589, 1850, 1589, 1728, - /* 170 */ 2062, 2039, 2053, 2109, 2040, 2037, 2056, 1589, 2066, 1589, - /* 180 */ 1875, 1843, 1589, 1843, 1840, 1589, 1589, 1843, 1840, 1840, - /* 190 */ 1719, 1589, 1589, 1589, 1589, 1589, 1589, 1667, 1589, 1667, - /* 200 */ 1589, 1589, 1667, 1589, 1667, 1667, 1667, 1589, 1667, 1646, - /* 210 */ 1646, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 220 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1895, 1589, 1665, - /* 230 */ 1884, 1589, 1665, 1589, 1589, 1589, 1589, 2082, 2080, 1589, - /* 240 */ 2082, 2080, 1589, 1589, 1589, 2094, 2090, 2082, 2098, 2096, - /* 250 */ 2068, 2066, 2128, 2115, 2111, 2053, 1589, 1589, 1589, 1589, - /* 260 */ 1665, 2080, 1589, 1589, 1589, 1589, 1589, 2080, 1589, 1589, - /* 270 */ 1665, 1589, 1665, 1589, 1589, 1744, 1589, 1589, 1589, 1665, - /* 280 */ 1621, 1589, 1877, 1888, 1860, 1860, 1778, 1778, 1778, 1668, - /* 290 */ 1594, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 300 */ 1589, 1589, 1589, 2093, 2092, 1963, 1589, 2011, 2010, 2009, - /* 310 */ 2000, 1962, 1740, 1589, 1961, 1960, 1589, 1589, 1589, 1589, - /* 320 */ 1589, 1856, 1855, 1954, 1589, 1589, 1955, 1953, 1952, 1589, - /* 330 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 340 */ 1589, 1589, 1589, 1589, 1589, 1589, 2112, 2116, 1589, 1589, - /* 350 */ 1589, 1589, 1589, 1589, 2036, 1589, 1589, 1589, 1589, 1589, - /* 360 */ 1937, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 370 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 380 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 390 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 400 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 410 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 420 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 430 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 440 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 450 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1626, - /* 460 */ 1942, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 470 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 480 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 490 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 500 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1707, 1706, 1589, - /* 510 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 520 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 530 */ 1589, 1945, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 540 */ 1589, 1589, 1589, 1589, 1589, 2108, 2069, 1589, 1589, 1589, - /* 550 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 560 */ 1937, 1589, 2091, 1589, 1589, 2106, 1589, 2110, 1589, 1589, - /* 570 */ 1589, 1589, 1589, 1589, 1589, 2046, 2042, 1589, 1589, 2038, - /* 580 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 590 */ 1589, 1589, 1589, 1589, 1589, 1589, 1936, 1589, 1997, 1589, - /* 600 */ 1589, 1589, 2031, 1589, 1589, 1982, 1589, 1589, 1589, 1589, - /* 610 */ 1589, 1589, 1589, 1589, 1589, 1945, 1589, 1948, 1589, 1589, - /* 620 */ 1589, 1589, 1589, 1772, 1589, 1589, 1589, 1589, 1589, 1589, - /* 630 */ 1589, 1589, 1589, 1589, 1589, 1589, 1757, 1755, 1754, 1753, - /* 640 */ 1589, 1750, 1589, 1785, 1589, 1589, 1589, 1781, 1780, 1589, - /* 650 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 660 */ 1589, 1589, 1589, 1589, 1687, 1589, 1589, 1589, 1589, 1589, - /* 670 */ 1589, 1589, 1589, 1589, 1678, 1589, 1677, 1589, 1589, 1589, - /* 680 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 690 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, - /* 700 */ 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, 1589, + /* 0 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 10 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 20 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 30 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 40 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 50 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 60 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1853, + /* 70 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 80 */ 1597, 1597, 1597, 1675, 1597, 1597, 1597, 1597, 1597, 1597, + /* 90 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 100 */ 1673, 1846, 2043, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 110 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 120 */ 1597, 1597, 1597, 1597, 1597, 1597, 2055, 1597, 1597, 1675, + /* 130 */ 1597, 2055, 2055, 2055, 1673, 2015, 2015, 1597, 1597, 1597, + /* 140 */ 1597, 1783, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1783, + /* 150 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1890, 1597, + /* 160 */ 1597, 2080, 2134, 1597, 1597, 2083, 1597, 1597, 1597, 1858, + /* 170 */ 1597, 1736, 2070, 2047, 2061, 2118, 2048, 2045, 2064, 1597, + /* 180 */ 2074, 1597, 1883, 1851, 1597, 1851, 1848, 1597, 1597, 1851, + /* 190 */ 1848, 1848, 1727, 1597, 1597, 1597, 1597, 1597, 1597, 1675, + /* 200 */ 1597, 1675, 1597, 1597, 1675, 1597, 1675, 1675, 1675, 1597, + /* 210 */ 1675, 1654, 1654, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 220 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1903, + /* 230 */ 1597, 1673, 1892, 1597, 1673, 1597, 1597, 1597, 1597, 2091, + /* 240 */ 2089, 1597, 2091, 2089, 1597, 1597, 1597, 2103, 2099, 2091, + /* 250 */ 2107, 2105, 2076, 2074, 2137, 2124, 2120, 2061, 1597, 1597, + /* 260 */ 1597, 1597, 1673, 2089, 1597, 1597, 1597, 1597, 1597, 2089, + /* 270 */ 1597, 1597, 1673, 1597, 1673, 1597, 1597, 1752, 1597, 1597, + /* 280 */ 1597, 1673, 1629, 1597, 1885, 1896, 1868, 1868, 1786, 1786, + /* 290 */ 1786, 1676, 1602, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 300 */ 1597, 1597, 1597, 1597, 1597, 2102, 2101, 1971, 1597, 2019, + /* 310 */ 2018, 2017, 2008, 1970, 1748, 1597, 1969, 1968, 1597, 1597, + /* 320 */ 1597, 1597, 1597, 1864, 1863, 1962, 1597, 1597, 1963, 1961, + /* 330 */ 1960, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 340 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 2121, 2125, + /* 350 */ 1597, 1597, 1597, 1597, 1597, 1597, 2044, 1597, 1597, 1597, + /* 360 */ 1597, 1597, 1945, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 370 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 380 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 390 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 400 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 410 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 420 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 430 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 440 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 450 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 460 */ 1597, 1634, 1950, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 470 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 480 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 490 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 500 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1715, + /* 510 */ 1714, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 520 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 530 */ 1597, 1597, 1597, 1953, 1597, 1597, 1597, 1597, 1597, 1597, + /* 540 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 2117, 2077, 1597, + /* 550 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 560 */ 1597, 1597, 1597, 1597, 1597, 1597, 1945, 1597, 2100, 1597, + /* 570 */ 1597, 2115, 1597, 2119, 1597, 1597, 1597, 1597, 1597, 1597, + /* 580 */ 1597, 2054, 2050, 1597, 1597, 2046, 1597, 1597, 1597, 1597, + /* 590 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 600 */ 1597, 1597, 1944, 1597, 2005, 1597, 1597, 1597, 2039, 1597, + /* 610 */ 1597, 1990, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 620 */ 1597, 1953, 1597, 1956, 1597, 1597, 1597, 1597, 1597, 1780, + /* 630 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 640 */ 1597, 1597, 1765, 1763, 1762, 1761, 1597, 1758, 1597, 1793, + /* 650 */ 1597, 1597, 1597, 1789, 1788, 1597, 1597, 1597, 1597, 1597, + /* 660 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 670 */ 1695, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 680 */ 1686, 1597, 1685, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 690 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 700 */ 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, + /* 710 */ 1597, 1597, 1597, 1597, 1597, }; /********** End of lemon-generated parsing tables *****************************/ @@ -1150,7 +1171,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* COUNT => nothing */ 0, /* LAST_ROW => nothing */ 0, /* CASE => nothing */ - 269, /* END => ABORT */ + 271, /* END => ABORT */ 0, /* WHEN => nothing */ 0, /* THEN => nothing */ 0, /* ELSE => nothing */ @@ -1174,6 +1195,8 @@ static const YYCODETYPE yyFallback[] = { 0, /* BY => nothing */ 0, /* SESSION => nothing */ 0, /* STATE_WINDOW => nothing */ + 0, /* EVENT_WINDOW => nothing */ + 0, /* START => nothing */ 0, /* SLIDING => nothing */ 0, /* FILL => nothing */ 0, /* VALUE => nothing */ @@ -1192,58 +1215,58 @@ static const YYCODETYPE yyFallback[] = { 0, /* ASC => nothing */ 0, /* NULLS => nothing */ 0, /* ABORT => nothing */ - 269, /* AFTER => ABORT */ - 269, /* ATTACH => ABORT */ - 269, /* BEFORE => ABORT */ - 269, /* BEGIN => ABORT */ - 269, /* BITAND => ABORT */ - 269, /* BITNOT => ABORT */ - 269, /* BITOR => ABORT */ - 269, /* BLOCKS => ABORT */ - 269, /* CHANGE => ABORT */ - 269, /* COMMA => ABORT */ - 269, /* COMPACT => ABORT */ - 269, /* CONCAT => ABORT */ - 269, /* CONFLICT => ABORT */ - 269, /* COPY => ABORT */ - 269, /* DEFERRED => ABORT */ - 269, /* DELIMITERS => ABORT */ - 269, /* DETACH => ABORT */ - 269, /* DIVIDE => ABORT */ - 269, /* DOT => ABORT */ - 269, /* EACH => ABORT */ - 269, /* FAIL => ABORT */ - 269, /* FILE => ABORT */ - 269, /* FOR => ABORT */ - 269, /* GLOB => ABORT */ - 269, /* ID => ABORT */ - 269, /* IMMEDIATE => ABORT */ - 269, /* IMPORT => ABORT */ - 269, /* INITIALLY => ABORT */ - 269, /* INSTEAD => ABORT */ - 269, /* ISNULL => ABORT */ - 269, /* KEY => ABORT */ - 269, /* MODULES => ABORT */ - 269, /* NK_BITNOT => ABORT */ - 269, /* NK_SEMI => ABORT */ - 269, /* NOTNULL => ABORT */ - 269, /* OF => ABORT */ - 269, /* PLUS => ABORT */ - 269, /* PRIVILEGE => ABORT */ - 269, /* RAISE => ABORT */ - 269, /* REPLACE => ABORT */ - 269, /* RESTRICT => ABORT */ - 269, /* ROW => ABORT */ - 269, /* SEMI => ABORT */ - 269, /* STAR => ABORT */ - 269, /* STATEMENT => ABORT */ - 269, /* STRING => ABORT */ - 269, /* TIMES => ABORT */ - 269, /* UPDATE => ABORT */ - 269, /* VALUES => ABORT */ - 269, /* VARIABLE => ABORT */ - 269, /* VIEW => ABORT */ - 269, /* WAL => ABORT */ + 271, /* AFTER => ABORT */ + 271, /* ATTACH => ABORT */ + 271, /* BEFORE => ABORT */ + 271, /* BEGIN => ABORT */ + 271, /* BITAND => ABORT */ + 271, /* BITNOT => ABORT */ + 271, /* BITOR => ABORT */ + 271, /* BLOCKS => ABORT */ + 271, /* CHANGE => ABORT */ + 271, /* COMMA => ABORT */ + 271, /* COMPACT => ABORT */ + 271, /* CONCAT => ABORT */ + 271, /* CONFLICT => ABORT */ + 271, /* COPY => ABORT */ + 271, /* DEFERRED => ABORT */ + 271, /* DELIMITERS => ABORT */ + 271, /* DETACH => ABORT */ + 271, /* DIVIDE => ABORT */ + 271, /* DOT => ABORT */ + 271, /* EACH => ABORT */ + 271, /* FAIL => ABORT */ + 271, /* FILE => ABORT */ + 271, /* FOR => ABORT */ + 271, /* GLOB => ABORT */ + 271, /* ID => ABORT */ + 271, /* IMMEDIATE => ABORT */ + 271, /* IMPORT => ABORT */ + 271, /* INITIALLY => ABORT */ + 271, /* INSTEAD => ABORT */ + 271, /* ISNULL => ABORT */ + 271, /* KEY => ABORT */ + 271, /* MODULES => ABORT */ + 271, /* NK_BITNOT => ABORT */ + 271, /* NK_SEMI => ABORT */ + 271, /* NOTNULL => ABORT */ + 271, /* OF => ABORT */ + 271, /* PLUS => ABORT */ + 271, /* PRIVILEGE => ABORT */ + 271, /* RAISE => ABORT */ + 271, /* REPLACE => ABORT */ + 271, /* RESTRICT => ABORT */ + 271, /* ROW => ABORT */ + 271, /* SEMI => ABORT */ + 271, /* STAR => ABORT */ + 271, /* STATEMENT => ABORT */ + 271, /* STRING => ABORT */ + 271, /* TIMES => ABORT */ + 271, /* UPDATE => ABORT */ + 271, /* VALUES => ABORT */ + 271, /* VARIABLE => ABORT */ + 271, /* VIEW => ABORT */ + 271, /* WAL => ABORT */ }; #endif /* YYFALLBACK */ @@ -1583,211 +1606,213 @@ static const char *const yyTokenName[] = { /* 249 */ "BY", /* 250 */ "SESSION", /* 251 */ "STATE_WINDOW", - /* 252 */ "SLIDING", - /* 253 */ "FILL", - /* 254 */ "VALUE", - /* 255 */ "NONE", - /* 256 */ "PREV", - /* 257 */ "LINEAR", - /* 258 */ "NEXT", - /* 259 */ "HAVING", - /* 260 */ "RANGE", - /* 261 */ "EVERY", - /* 262 */ "ORDER", - /* 263 */ "SLIMIT", - /* 264 */ "SOFFSET", - /* 265 */ "LIMIT", - /* 266 */ "OFFSET", - /* 267 */ "ASC", - /* 268 */ "NULLS", - /* 269 */ "ABORT", - /* 270 */ "AFTER", - /* 271 */ "ATTACH", - /* 272 */ "BEFORE", - /* 273 */ "BEGIN", - /* 274 */ "BITAND", - /* 275 */ "BITNOT", - /* 276 */ "BITOR", - /* 277 */ "BLOCKS", - /* 278 */ "CHANGE", - /* 279 */ "COMMA", - /* 280 */ "COMPACT", - /* 281 */ "CONCAT", - /* 282 */ "CONFLICT", - /* 283 */ "COPY", - /* 284 */ "DEFERRED", - /* 285 */ "DELIMITERS", - /* 286 */ "DETACH", - /* 287 */ "DIVIDE", - /* 288 */ "DOT", - /* 289 */ "EACH", - /* 290 */ "FAIL", - /* 291 */ "FILE", - /* 292 */ "FOR", - /* 293 */ "GLOB", - /* 294 */ "ID", - /* 295 */ "IMMEDIATE", - /* 296 */ "IMPORT", - /* 297 */ "INITIALLY", - /* 298 */ "INSTEAD", - /* 299 */ "ISNULL", - /* 300 */ "KEY", - /* 301 */ "MODULES", - /* 302 */ "NK_BITNOT", - /* 303 */ "NK_SEMI", - /* 304 */ "NOTNULL", - /* 305 */ "OF", - /* 306 */ "PLUS", - /* 307 */ "PRIVILEGE", - /* 308 */ "RAISE", - /* 309 */ "REPLACE", - /* 310 */ "RESTRICT", - /* 311 */ "ROW", - /* 312 */ "SEMI", - /* 313 */ "STAR", - /* 314 */ "STATEMENT", - /* 315 */ "STRING", - /* 316 */ "TIMES", - /* 317 */ "UPDATE", - /* 318 */ "VALUES", - /* 319 */ "VARIABLE", - /* 320 */ "VIEW", - /* 321 */ "WAL", - /* 322 */ "cmd", - /* 323 */ "account_options", - /* 324 */ "alter_account_options", - /* 325 */ "literal", - /* 326 */ "alter_account_option", - /* 327 */ "user_name", - /* 328 */ "sysinfo_opt", - /* 329 */ "privileges", - /* 330 */ "priv_level", - /* 331 */ "priv_type_list", - /* 332 */ "priv_type", - /* 333 */ "db_name", - /* 334 */ "topic_name", - /* 335 */ "dnode_endpoint", - /* 336 */ "force_opt", - /* 337 */ "not_exists_opt", - /* 338 */ "db_options", - /* 339 */ "exists_opt", - /* 340 */ "alter_db_options", - /* 341 */ "speed_opt", - /* 342 */ "integer_list", - /* 343 */ "variable_list", - /* 344 */ "retention_list", - /* 345 */ "alter_db_option", - /* 346 */ "retention", - /* 347 */ "full_table_name", - /* 348 */ "column_def_list", - /* 349 */ "tags_def_opt", - /* 350 */ "table_options", - /* 351 */ "multi_create_clause", - /* 352 */ "tags_def", - /* 353 */ "multi_drop_clause", - /* 354 */ "alter_table_clause", - /* 355 */ "alter_table_options", - /* 356 */ "column_name", - /* 357 */ "type_name", - /* 358 */ "signed_literal", - /* 359 */ "create_subtable_clause", - /* 360 */ "specific_cols_opt", - /* 361 */ "expression_list", - /* 362 */ "drop_table_clause", - /* 363 */ "col_name_list", - /* 364 */ "table_name", - /* 365 */ "column_def", - /* 366 */ "duration_list", - /* 367 */ "rollup_func_list", - /* 368 */ "alter_table_option", - /* 369 */ "duration_literal", - /* 370 */ "rollup_func_name", - /* 371 */ "function_name", - /* 372 */ "col_name", - /* 373 */ "db_name_cond_opt", - /* 374 */ "like_pattern_opt", - /* 375 */ "table_name_cond", - /* 376 */ "from_db_opt", - /* 377 */ "tag_list_opt", - /* 378 */ "tag_item", - /* 379 */ "column_alias", - /* 380 */ "index_options", - /* 381 */ "func_list", - /* 382 */ "sliding_opt", - /* 383 */ "sma_stream_opt", - /* 384 */ "func", - /* 385 */ "query_or_subquery", - /* 386 */ "cgroup_name", - /* 387 */ "analyze_opt", - /* 388 */ "explain_options", - /* 389 */ "agg_func_opt", - /* 390 */ "bufsize_opt", - /* 391 */ "stream_name", - /* 392 */ "stream_options", - /* 393 */ "subtable_opt", - /* 394 */ "expression", - /* 395 */ "dnode_list", - /* 396 */ "where_clause_opt", - /* 397 */ "signed", - /* 398 */ "literal_func", - /* 399 */ "literal_list", - /* 400 */ "table_alias", - /* 401 */ "expr_or_subquery", - /* 402 */ "pseudo_column", - /* 403 */ "column_reference", - /* 404 */ "function_expression", - /* 405 */ "case_when_expression", - /* 406 */ "star_func", - /* 407 */ "star_func_para_list", - /* 408 */ "noarg_func", - /* 409 */ "other_para_list", - /* 410 */ "star_func_para", - /* 411 */ "when_then_list", - /* 412 */ "case_when_else_opt", - /* 413 */ "common_expression", - /* 414 */ "when_then_expr", - /* 415 */ "predicate", - /* 416 */ "compare_op", - /* 417 */ "in_op", - /* 418 */ "in_predicate_value", - /* 419 */ "boolean_value_expression", - /* 420 */ "boolean_primary", - /* 421 */ "from_clause_opt", - /* 422 */ "table_reference_list", - /* 423 */ "table_reference", - /* 424 */ "table_primary", - /* 425 */ "joined_table", - /* 426 */ "alias_opt", - /* 427 */ "subquery", - /* 428 */ "parenthesized_joined_table", - /* 429 */ "join_type", - /* 430 */ "search_condition", - /* 431 */ "query_specification", - /* 432 */ "set_quantifier_opt", - /* 433 */ "select_list", - /* 434 */ "partition_by_clause_opt", - /* 435 */ "range_opt", - /* 436 */ "every_opt", - /* 437 */ "fill_opt", - /* 438 */ "twindow_clause_opt", - /* 439 */ "group_by_clause_opt", - /* 440 */ "having_clause_opt", - /* 441 */ "select_item", - /* 442 */ "partition_list", - /* 443 */ "partition_item", - /* 444 */ "fill_mode", - /* 445 */ "group_by_list", - /* 446 */ "query_expression", - /* 447 */ "query_simple", - /* 448 */ "order_by_clause_opt", - /* 449 */ "slimit_clause_opt", - /* 450 */ "limit_clause_opt", - /* 451 */ "union_query_expression", - /* 452 */ "query_simple_or_subquery", - /* 453 */ "sort_specification_list", - /* 454 */ "sort_specification", - /* 455 */ "ordering_specification_opt", - /* 456 */ "null_ordering_opt", + /* 252 */ "EVENT_WINDOW", + /* 253 */ "START", + /* 254 */ "SLIDING", + /* 255 */ "FILL", + /* 256 */ "VALUE", + /* 257 */ "NONE", + /* 258 */ "PREV", + /* 259 */ "LINEAR", + /* 260 */ "NEXT", + /* 261 */ "HAVING", + /* 262 */ "RANGE", + /* 263 */ "EVERY", + /* 264 */ "ORDER", + /* 265 */ "SLIMIT", + /* 266 */ "SOFFSET", + /* 267 */ "LIMIT", + /* 268 */ "OFFSET", + /* 269 */ "ASC", + /* 270 */ "NULLS", + /* 271 */ "ABORT", + /* 272 */ "AFTER", + /* 273 */ "ATTACH", + /* 274 */ "BEFORE", + /* 275 */ "BEGIN", + /* 276 */ "BITAND", + /* 277 */ "BITNOT", + /* 278 */ "BITOR", + /* 279 */ "BLOCKS", + /* 280 */ "CHANGE", + /* 281 */ "COMMA", + /* 282 */ "COMPACT", + /* 283 */ "CONCAT", + /* 284 */ "CONFLICT", + /* 285 */ "COPY", + /* 286 */ "DEFERRED", + /* 287 */ "DELIMITERS", + /* 288 */ "DETACH", + /* 289 */ "DIVIDE", + /* 290 */ "DOT", + /* 291 */ "EACH", + /* 292 */ "FAIL", + /* 293 */ "FILE", + /* 294 */ "FOR", + /* 295 */ "GLOB", + /* 296 */ "ID", + /* 297 */ "IMMEDIATE", + /* 298 */ "IMPORT", + /* 299 */ "INITIALLY", + /* 300 */ "INSTEAD", + /* 301 */ "ISNULL", + /* 302 */ "KEY", + /* 303 */ "MODULES", + /* 304 */ "NK_BITNOT", + /* 305 */ "NK_SEMI", + /* 306 */ "NOTNULL", + /* 307 */ "OF", + /* 308 */ "PLUS", + /* 309 */ "PRIVILEGE", + /* 310 */ "RAISE", + /* 311 */ "REPLACE", + /* 312 */ "RESTRICT", + /* 313 */ "ROW", + /* 314 */ "SEMI", + /* 315 */ "STAR", + /* 316 */ "STATEMENT", + /* 317 */ "STRING", + /* 318 */ "TIMES", + /* 319 */ "UPDATE", + /* 320 */ "VALUES", + /* 321 */ "VARIABLE", + /* 322 */ "VIEW", + /* 323 */ "WAL", + /* 324 */ "cmd", + /* 325 */ "account_options", + /* 326 */ "alter_account_options", + /* 327 */ "literal", + /* 328 */ "alter_account_option", + /* 329 */ "user_name", + /* 330 */ "sysinfo_opt", + /* 331 */ "privileges", + /* 332 */ "priv_level", + /* 333 */ "priv_type_list", + /* 334 */ "priv_type", + /* 335 */ "db_name", + /* 336 */ "topic_name", + /* 337 */ "dnode_endpoint", + /* 338 */ "force_opt", + /* 339 */ "not_exists_opt", + /* 340 */ "db_options", + /* 341 */ "exists_opt", + /* 342 */ "alter_db_options", + /* 343 */ "speed_opt", + /* 344 */ "integer_list", + /* 345 */ "variable_list", + /* 346 */ "retention_list", + /* 347 */ "alter_db_option", + /* 348 */ "retention", + /* 349 */ "full_table_name", + /* 350 */ "column_def_list", + /* 351 */ "tags_def_opt", + /* 352 */ "table_options", + /* 353 */ "multi_create_clause", + /* 354 */ "tags_def", + /* 355 */ "multi_drop_clause", + /* 356 */ "alter_table_clause", + /* 357 */ "alter_table_options", + /* 358 */ "column_name", + /* 359 */ "type_name", + /* 360 */ "signed_literal", + /* 361 */ "create_subtable_clause", + /* 362 */ "specific_cols_opt", + /* 363 */ "expression_list", + /* 364 */ "drop_table_clause", + /* 365 */ "col_name_list", + /* 366 */ "table_name", + /* 367 */ "column_def", + /* 368 */ "duration_list", + /* 369 */ "rollup_func_list", + /* 370 */ "alter_table_option", + /* 371 */ "duration_literal", + /* 372 */ "rollup_func_name", + /* 373 */ "function_name", + /* 374 */ "col_name", + /* 375 */ "db_name_cond_opt", + /* 376 */ "like_pattern_opt", + /* 377 */ "table_name_cond", + /* 378 */ "from_db_opt", + /* 379 */ "tag_list_opt", + /* 380 */ "tag_item", + /* 381 */ "column_alias", + /* 382 */ "index_options", + /* 383 */ "func_list", + /* 384 */ "sliding_opt", + /* 385 */ "sma_stream_opt", + /* 386 */ "func", + /* 387 */ "query_or_subquery", + /* 388 */ "cgroup_name", + /* 389 */ "analyze_opt", + /* 390 */ "explain_options", + /* 391 */ "agg_func_opt", + /* 392 */ "bufsize_opt", + /* 393 */ "stream_name", + /* 394 */ "stream_options", + /* 395 */ "subtable_opt", + /* 396 */ "expression", + /* 397 */ "dnode_list", + /* 398 */ "where_clause_opt", + /* 399 */ "signed", + /* 400 */ "literal_func", + /* 401 */ "literal_list", + /* 402 */ "table_alias", + /* 403 */ "expr_or_subquery", + /* 404 */ "pseudo_column", + /* 405 */ "column_reference", + /* 406 */ "function_expression", + /* 407 */ "case_when_expression", + /* 408 */ "star_func", + /* 409 */ "star_func_para_list", + /* 410 */ "noarg_func", + /* 411 */ "other_para_list", + /* 412 */ "star_func_para", + /* 413 */ "when_then_list", + /* 414 */ "case_when_else_opt", + /* 415 */ "common_expression", + /* 416 */ "when_then_expr", + /* 417 */ "predicate", + /* 418 */ "compare_op", + /* 419 */ "in_op", + /* 420 */ "in_predicate_value", + /* 421 */ "boolean_value_expression", + /* 422 */ "boolean_primary", + /* 423 */ "from_clause_opt", + /* 424 */ "table_reference_list", + /* 425 */ "table_reference", + /* 426 */ "table_primary", + /* 427 */ "joined_table", + /* 428 */ "alias_opt", + /* 429 */ "subquery", + /* 430 */ "parenthesized_joined_table", + /* 431 */ "join_type", + /* 432 */ "search_condition", + /* 433 */ "query_specification", + /* 434 */ "set_quantifier_opt", + /* 435 */ "select_list", + /* 436 */ "partition_by_clause_opt", + /* 437 */ "range_opt", + /* 438 */ "every_opt", + /* 439 */ "fill_opt", + /* 440 */ "twindow_clause_opt", + /* 441 */ "group_by_clause_opt", + /* 442 */ "having_clause_opt", + /* 443 */ "select_item", + /* 444 */ "partition_list", + /* 445 */ "partition_item", + /* 446 */ "fill_mode", + /* 447 */ "group_by_list", + /* 448 */ "query_expression", + /* 449 */ "query_simple", + /* 450 */ "order_by_clause_opt", + /* 451 */ "slimit_clause_opt", + /* 452 */ "limit_clause_opt", + /* 453 */ "union_query_expression", + /* 454 */ "query_simple_or_subquery", + /* 455 */ "sort_specification_list", + /* 456 */ "sort_specification", + /* 457 */ "ordering_specification_opt", + /* 458 */ "null_ordering_opt", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -2283,57 +2308,58 @@ static const char *const yyRuleName[] = { /* 485 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", /* 486 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", /* 487 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", - /* 488 */ "sliding_opt ::=", - /* 489 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", - /* 490 */ "fill_opt ::=", - /* 491 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 492 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP", - /* 493 */ "fill_mode ::= NONE", - /* 494 */ "fill_mode ::= PREV", - /* 495 */ "fill_mode ::= NULL", - /* 496 */ "fill_mode ::= LINEAR", - /* 497 */ "fill_mode ::= NEXT", - /* 498 */ "group_by_clause_opt ::=", - /* 499 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 500 */ "group_by_list ::= expr_or_subquery", - /* 501 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 502 */ "having_clause_opt ::=", - /* 503 */ "having_clause_opt ::= HAVING search_condition", - /* 504 */ "range_opt ::=", - /* 505 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 506 */ "every_opt ::=", - /* 507 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 508 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 509 */ "query_simple ::= query_specification", - /* 510 */ "query_simple ::= union_query_expression", - /* 511 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 512 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 513 */ "query_simple_or_subquery ::= query_simple", - /* 514 */ "query_simple_or_subquery ::= subquery", - /* 515 */ "query_or_subquery ::= query_expression", - /* 516 */ "query_or_subquery ::= subquery", - /* 517 */ "order_by_clause_opt ::=", - /* 518 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 519 */ "slimit_clause_opt ::=", - /* 520 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 521 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 522 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 523 */ "limit_clause_opt ::=", - /* 524 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 525 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 526 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 527 */ "subquery ::= NK_LP query_expression NK_RP", - /* 528 */ "subquery ::= NK_LP subquery NK_RP", - /* 529 */ "search_condition ::= common_expression", - /* 530 */ "sort_specification_list ::= sort_specification", - /* 531 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 532 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 533 */ "ordering_specification_opt ::=", - /* 534 */ "ordering_specification_opt ::= ASC", - /* 535 */ "ordering_specification_opt ::= DESC", - /* 536 */ "null_ordering_opt ::=", - /* 537 */ "null_ordering_opt ::= NULLS FIRST", - /* 538 */ "null_ordering_opt ::= NULLS LAST", + /* 488 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", + /* 489 */ "sliding_opt ::=", + /* 490 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", + /* 491 */ "fill_opt ::=", + /* 492 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 493 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP", + /* 494 */ "fill_mode ::= NONE", + /* 495 */ "fill_mode ::= PREV", + /* 496 */ "fill_mode ::= NULL", + /* 497 */ "fill_mode ::= LINEAR", + /* 498 */ "fill_mode ::= NEXT", + /* 499 */ "group_by_clause_opt ::=", + /* 500 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 501 */ "group_by_list ::= expr_or_subquery", + /* 502 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 503 */ "having_clause_opt ::=", + /* 504 */ "having_clause_opt ::= HAVING search_condition", + /* 505 */ "range_opt ::=", + /* 506 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 507 */ "every_opt ::=", + /* 508 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 509 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 510 */ "query_simple ::= query_specification", + /* 511 */ "query_simple ::= union_query_expression", + /* 512 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 513 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 514 */ "query_simple_or_subquery ::= query_simple", + /* 515 */ "query_simple_or_subquery ::= subquery", + /* 516 */ "query_or_subquery ::= query_expression", + /* 517 */ "query_or_subquery ::= subquery", + /* 518 */ "order_by_clause_opt ::=", + /* 519 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 520 */ "slimit_clause_opt ::=", + /* 521 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 522 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 523 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 524 */ "limit_clause_opt ::=", + /* 525 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 526 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 527 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 528 */ "subquery ::= NK_LP query_expression NK_RP", + /* 529 */ "subquery ::= NK_LP subquery NK_RP", + /* 530 */ "search_condition ::= common_expression", + /* 531 */ "sort_specification_list ::= sort_specification", + /* 532 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 533 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 534 */ "ordering_specification_opt ::=", + /* 535 */ "ordering_specification_opt ::= ASC", + /* 536 */ "ordering_specification_opt ::= DESC", + /* 537 */ "null_ordering_opt ::=", + /* 538 */ "null_ordering_opt ::= NULLS FIRST", + /* 539 */ "null_ordering_opt ::= NULLS LAST", }; #endif /* NDEBUG */ @@ -2460,193 +2486,193 @@ static void yy_destructor( */ /********* Begin destructor definitions ***************************************/ /* Default NON-TERMINAL Destructor */ - case 322: /* cmd */ - case 325: /* literal */ - case 338: /* db_options */ - case 340: /* alter_db_options */ - case 346: /* retention */ - case 347: /* full_table_name */ - case 350: /* table_options */ - case 354: /* alter_table_clause */ - case 355: /* alter_table_options */ - case 358: /* signed_literal */ - case 359: /* create_subtable_clause */ - case 362: /* drop_table_clause */ - case 365: /* column_def */ - case 369: /* duration_literal */ - case 370: /* rollup_func_name */ - case 372: /* col_name */ - case 373: /* db_name_cond_opt */ - case 374: /* like_pattern_opt */ - case 375: /* table_name_cond */ - case 376: /* from_db_opt */ - case 378: /* tag_item */ - case 380: /* index_options */ - case 382: /* sliding_opt */ - case 383: /* sma_stream_opt */ - case 384: /* func */ - case 385: /* query_or_subquery */ - case 388: /* explain_options */ - case 392: /* stream_options */ - case 393: /* subtable_opt */ - case 394: /* expression */ - case 396: /* where_clause_opt */ - case 397: /* signed */ - case 398: /* literal_func */ - case 401: /* expr_or_subquery */ - case 402: /* pseudo_column */ - case 403: /* column_reference */ - case 404: /* function_expression */ - case 405: /* case_when_expression */ - case 410: /* star_func_para */ - case 412: /* case_when_else_opt */ - case 413: /* common_expression */ - case 414: /* when_then_expr */ - case 415: /* predicate */ - case 418: /* in_predicate_value */ - case 419: /* boolean_value_expression */ - case 420: /* boolean_primary */ - case 421: /* from_clause_opt */ - case 422: /* table_reference_list */ - case 423: /* table_reference */ - case 424: /* table_primary */ - case 425: /* joined_table */ - case 427: /* subquery */ - case 428: /* parenthesized_joined_table */ - case 430: /* search_condition */ - case 431: /* query_specification */ - case 435: /* range_opt */ - case 436: /* every_opt */ - case 437: /* fill_opt */ - case 438: /* twindow_clause_opt */ - case 440: /* having_clause_opt */ - case 441: /* select_item */ - case 443: /* partition_item */ - case 446: /* query_expression */ - case 447: /* query_simple */ - case 449: /* slimit_clause_opt */ - case 450: /* limit_clause_opt */ - case 451: /* union_query_expression */ - case 452: /* query_simple_or_subquery */ - case 454: /* sort_specification */ + case 324: /* cmd */ + case 327: /* literal */ + case 340: /* db_options */ + case 342: /* alter_db_options */ + case 348: /* retention */ + case 349: /* full_table_name */ + case 352: /* table_options */ + case 356: /* alter_table_clause */ + case 357: /* alter_table_options */ + case 360: /* signed_literal */ + case 361: /* create_subtable_clause */ + case 364: /* drop_table_clause */ + case 367: /* column_def */ + case 371: /* duration_literal */ + case 372: /* rollup_func_name */ + case 374: /* col_name */ + case 375: /* db_name_cond_opt */ + case 376: /* like_pattern_opt */ + case 377: /* table_name_cond */ + case 378: /* from_db_opt */ + case 380: /* tag_item */ + case 382: /* index_options */ + case 384: /* sliding_opt */ + case 385: /* sma_stream_opt */ + case 386: /* func */ + case 387: /* query_or_subquery */ + case 390: /* explain_options */ + case 394: /* stream_options */ + case 395: /* subtable_opt */ + case 396: /* expression */ + case 398: /* where_clause_opt */ + case 399: /* signed */ + case 400: /* literal_func */ + case 403: /* expr_or_subquery */ + case 404: /* pseudo_column */ + case 405: /* column_reference */ + case 406: /* function_expression */ + case 407: /* case_when_expression */ + case 412: /* star_func_para */ + case 414: /* case_when_else_opt */ + case 415: /* common_expression */ + case 416: /* when_then_expr */ + case 417: /* predicate */ + case 420: /* in_predicate_value */ + case 421: /* boolean_value_expression */ + case 422: /* boolean_primary */ + case 423: /* from_clause_opt */ + case 424: /* table_reference_list */ + case 425: /* table_reference */ + case 426: /* table_primary */ + case 427: /* joined_table */ + case 429: /* subquery */ + case 430: /* parenthesized_joined_table */ + case 432: /* search_condition */ + case 433: /* query_specification */ + case 437: /* range_opt */ + case 438: /* every_opt */ + case 439: /* fill_opt */ + case 440: /* twindow_clause_opt */ + case 442: /* having_clause_opt */ + case 443: /* select_item */ + case 445: /* partition_item */ + case 448: /* query_expression */ + case 449: /* query_simple */ + case 451: /* slimit_clause_opt */ + case 452: /* limit_clause_opt */ + case 453: /* union_query_expression */ + case 454: /* query_simple_or_subquery */ + case 456: /* sort_specification */ { - nodesDestroyNode((yypminor->yy148)); + nodesDestroyNode((yypminor->yy74)); } break; - case 323: /* account_options */ - case 324: /* alter_account_options */ - case 326: /* alter_account_option */ - case 341: /* speed_opt */ - case 390: /* bufsize_opt */ + case 325: /* account_options */ + case 326: /* alter_account_options */ + case 328: /* alter_account_option */ + case 343: /* speed_opt */ + case 392: /* bufsize_opt */ { } break; - case 327: /* user_name */ - case 330: /* priv_level */ - case 333: /* db_name */ - case 334: /* topic_name */ - case 335: /* dnode_endpoint */ - case 356: /* column_name */ - case 364: /* table_name */ - case 371: /* function_name */ - case 379: /* column_alias */ - case 386: /* cgroup_name */ - case 391: /* stream_name */ - case 400: /* table_alias */ - case 406: /* star_func */ - case 408: /* noarg_func */ - case 426: /* alias_opt */ + case 329: /* user_name */ + case 332: /* priv_level */ + case 335: /* db_name */ + case 336: /* topic_name */ + case 337: /* dnode_endpoint */ + case 358: /* column_name */ + case 366: /* table_name */ + case 373: /* function_name */ + case 381: /* column_alias */ + case 388: /* cgroup_name */ + case 393: /* stream_name */ + case 402: /* table_alias */ + case 408: /* star_func */ + case 410: /* noarg_func */ + case 428: /* alias_opt */ { } break; - case 328: /* sysinfo_opt */ + case 330: /* sysinfo_opt */ { } break; - case 329: /* privileges */ - case 331: /* priv_type_list */ - case 332: /* priv_type */ + case 331: /* privileges */ + case 333: /* priv_type_list */ + case 334: /* priv_type */ { } break; - case 336: /* force_opt */ - case 337: /* not_exists_opt */ - case 339: /* exists_opt */ - case 387: /* analyze_opt */ - case 389: /* agg_func_opt */ - case 432: /* set_quantifier_opt */ + case 338: /* force_opt */ + case 339: /* not_exists_opt */ + case 341: /* exists_opt */ + case 389: /* analyze_opt */ + case 391: /* agg_func_opt */ + case 434: /* set_quantifier_opt */ { } break; - case 342: /* integer_list */ - case 343: /* variable_list */ - case 344: /* retention_list */ - case 348: /* column_def_list */ - case 349: /* tags_def_opt */ - case 351: /* multi_create_clause */ - case 352: /* tags_def */ - case 353: /* multi_drop_clause */ - case 360: /* specific_cols_opt */ - case 361: /* expression_list */ - case 363: /* col_name_list */ - case 366: /* duration_list */ - case 367: /* rollup_func_list */ - case 377: /* tag_list_opt */ - case 381: /* func_list */ - case 395: /* dnode_list */ - case 399: /* literal_list */ - case 407: /* star_func_para_list */ - case 409: /* other_para_list */ - case 411: /* when_then_list */ - case 433: /* select_list */ - case 434: /* partition_by_clause_opt */ - case 439: /* group_by_clause_opt */ - case 442: /* partition_list */ - case 445: /* group_by_list */ - case 448: /* order_by_clause_opt */ - case 453: /* sort_specification_list */ + case 344: /* integer_list */ + case 345: /* variable_list */ + case 346: /* retention_list */ + case 350: /* column_def_list */ + case 351: /* tags_def_opt */ + case 353: /* multi_create_clause */ + case 354: /* tags_def */ + case 355: /* multi_drop_clause */ + case 362: /* specific_cols_opt */ + case 363: /* expression_list */ + case 365: /* col_name_list */ + case 368: /* duration_list */ + case 369: /* rollup_func_list */ + case 379: /* tag_list_opt */ + case 383: /* func_list */ + case 397: /* dnode_list */ + case 401: /* literal_list */ + case 409: /* star_func_para_list */ + case 411: /* other_para_list */ + case 413: /* when_then_list */ + case 435: /* select_list */ + case 436: /* partition_by_clause_opt */ + case 441: /* group_by_clause_opt */ + case 444: /* partition_list */ + case 447: /* group_by_list */ + case 450: /* order_by_clause_opt */ + case 455: /* sort_specification_list */ { - nodesDestroyList((yypminor->yy404)); + nodesDestroyList((yypminor->yy874)); } break; - case 345: /* alter_db_option */ - case 368: /* alter_table_option */ + case 347: /* alter_db_option */ + case 370: /* alter_table_option */ { } break; - case 357: /* type_name */ + case 359: /* type_name */ { } break; - case 416: /* compare_op */ - case 417: /* in_op */ + case 418: /* compare_op */ + case 419: /* in_op */ { } break; - case 429: /* join_type */ + case 431: /* join_type */ { } break; - case 444: /* fill_mode */ + case 446: /* fill_mode */ { } break; - case 455: /* ordering_specification_opt */ + case 457: /* ordering_specification_opt */ { } break; - case 456: /* null_ordering_opt */ + case 458: /* null_ordering_opt */ { } @@ -2945,545 +2971,546 @@ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ signed char nrhs; /* Negative of the number of RHS symbols in the rule */ } yyRuleInfo[] = { - { 322, -6 }, /* (0) cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ - { 322, -4 }, /* (1) cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ - { 323, 0 }, /* (2) account_options ::= */ - { 323, -3 }, /* (3) account_options ::= account_options PPS literal */ - { 323, -3 }, /* (4) account_options ::= account_options TSERIES literal */ - { 323, -3 }, /* (5) account_options ::= account_options STORAGE literal */ - { 323, -3 }, /* (6) account_options ::= account_options STREAMS literal */ - { 323, -3 }, /* (7) account_options ::= account_options QTIME literal */ - { 323, -3 }, /* (8) account_options ::= account_options DBS literal */ - { 323, -3 }, /* (9) account_options ::= account_options USERS literal */ - { 323, -3 }, /* (10) account_options ::= account_options CONNS literal */ - { 323, -3 }, /* (11) account_options ::= account_options STATE literal */ - { 324, -1 }, /* (12) alter_account_options ::= alter_account_option */ - { 324, -2 }, /* (13) alter_account_options ::= alter_account_options alter_account_option */ - { 326, -2 }, /* (14) alter_account_option ::= PASS literal */ - { 326, -2 }, /* (15) alter_account_option ::= PPS literal */ - { 326, -2 }, /* (16) alter_account_option ::= TSERIES literal */ - { 326, -2 }, /* (17) alter_account_option ::= STORAGE literal */ - { 326, -2 }, /* (18) alter_account_option ::= STREAMS literal */ - { 326, -2 }, /* (19) alter_account_option ::= QTIME literal */ - { 326, -2 }, /* (20) alter_account_option ::= DBS literal */ - { 326, -2 }, /* (21) alter_account_option ::= USERS literal */ - { 326, -2 }, /* (22) alter_account_option ::= CONNS literal */ - { 326, -2 }, /* (23) alter_account_option ::= STATE literal */ - { 322, -6 }, /* (24) cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ - { 322, -5 }, /* (25) cmd ::= ALTER USER user_name PASS NK_STRING */ - { 322, -5 }, /* (26) cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ - { 322, -5 }, /* (27) cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ - { 322, -3 }, /* (28) cmd ::= DROP USER user_name */ - { 328, 0 }, /* (29) sysinfo_opt ::= */ - { 328, -2 }, /* (30) sysinfo_opt ::= SYSINFO NK_INTEGER */ - { 322, -6 }, /* (31) cmd ::= GRANT privileges ON priv_level TO user_name */ - { 322, -6 }, /* (32) cmd ::= REVOKE privileges ON priv_level FROM user_name */ - { 329, -1 }, /* (33) privileges ::= ALL */ - { 329, -1 }, /* (34) privileges ::= priv_type_list */ - { 329, -1 }, /* (35) privileges ::= SUBSCRIBE */ - { 331, -1 }, /* (36) priv_type_list ::= priv_type */ - { 331, -3 }, /* (37) priv_type_list ::= priv_type_list NK_COMMA priv_type */ - { 332, -1 }, /* (38) priv_type ::= READ */ - { 332, -1 }, /* (39) priv_type ::= WRITE */ - { 330, -3 }, /* (40) priv_level ::= NK_STAR NK_DOT NK_STAR */ - { 330, -3 }, /* (41) priv_level ::= db_name NK_DOT NK_STAR */ - { 330, -1 }, /* (42) priv_level ::= topic_name */ - { 322, -3 }, /* (43) cmd ::= CREATE DNODE dnode_endpoint */ - { 322, -5 }, /* (44) cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ - { 322, -4 }, /* (45) cmd ::= DROP DNODE NK_INTEGER force_opt */ - { 322, -4 }, /* (46) cmd ::= DROP DNODE dnode_endpoint force_opt */ - { 322, -4 }, /* (47) cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ - { 322, -5 }, /* (48) cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ - { 322, -4 }, /* (49) cmd ::= ALTER ALL DNODES NK_STRING */ - { 322, -5 }, /* (50) cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ - { 335, -1 }, /* (51) dnode_endpoint ::= NK_STRING */ - { 335, -1 }, /* (52) dnode_endpoint ::= NK_ID */ - { 335, -1 }, /* (53) dnode_endpoint ::= NK_IPTOKEN */ - { 336, 0 }, /* (54) force_opt ::= */ - { 336, -1 }, /* (55) force_opt ::= FORCE */ - { 322, -3 }, /* (56) cmd ::= ALTER LOCAL NK_STRING */ - { 322, -4 }, /* (57) cmd ::= ALTER LOCAL NK_STRING NK_STRING */ - { 322, -5 }, /* (58) cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ - { 322, -5 }, /* (59) cmd ::= DROP QNODE ON DNODE NK_INTEGER */ - { 322, -5 }, /* (60) cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ - { 322, -5 }, /* (61) cmd ::= DROP BNODE ON DNODE NK_INTEGER */ - { 322, -5 }, /* (62) cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ - { 322, -5 }, /* (63) cmd ::= DROP SNODE ON DNODE NK_INTEGER */ - { 322, -5 }, /* (64) cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ - { 322, -5 }, /* (65) cmd ::= DROP MNODE ON DNODE NK_INTEGER */ - { 322, -5 }, /* (66) cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ - { 322, -4 }, /* (67) cmd ::= DROP DATABASE exists_opt db_name */ - { 322, -2 }, /* (68) cmd ::= USE db_name */ - { 322, -4 }, /* (69) cmd ::= ALTER DATABASE db_name alter_db_options */ - { 322, -3 }, /* (70) cmd ::= FLUSH DATABASE db_name */ - { 322, -4 }, /* (71) cmd ::= TRIM DATABASE db_name speed_opt */ - { 337, -3 }, /* (72) not_exists_opt ::= IF NOT EXISTS */ - { 337, 0 }, /* (73) not_exists_opt ::= */ - { 339, -2 }, /* (74) exists_opt ::= IF EXISTS */ - { 339, 0 }, /* (75) exists_opt ::= */ - { 338, 0 }, /* (76) db_options ::= */ - { 338, -3 }, /* (77) db_options ::= db_options BUFFER NK_INTEGER */ - { 338, -3 }, /* (78) db_options ::= db_options CACHEMODEL NK_STRING */ - { 338, -3 }, /* (79) db_options ::= db_options CACHESIZE NK_INTEGER */ - { 338, -3 }, /* (80) db_options ::= db_options COMP NK_INTEGER */ - { 338, -3 }, /* (81) db_options ::= db_options DURATION NK_INTEGER */ - { 338, -3 }, /* (82) db_options ::= db_options DURATION NK_VARIABLE */ - { 338, -3 }, /* (83) db_options ::= db_options MAXROWS NK_INTEGER */ - { 338, -3 }, /* (84) db_options ::= db_options MINROWS NK_INTEGER */ - { 338, -3 }, /* (85) db_options ::= db_options KEEP integer_list */ - { 338, -3 }, /* (86) db_options ::= db_options KEEP variable_list */ - { 338, -3 }, /* (87) db_options ::= db_options PAGES NK_INTEGER */ - { 338, -3 }, /* (88) db_options ::= db_options PAGESIZE NK_INTEGER */ - { 338, -3 }, /* (89) db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ - { 338, -3 }, /* (90) db_options ::= db_options PRECISION NK_STRING */ - { 338, -3 }, /* (91) db_options ::= db_options REPLICA NK_INTEGER */ - { 338, -3 }, /* (92) db_options ::= db_options STRICT NK_STRING */ - { 338, -3 }, /* (93) db_options ::= db_options VGROUPS NK_INTEGER */ - { 338, -3 }, /* (94) db_options ::= db_options SINGLE_STABLE NK_INTEGER */ - { 338, -3 }, /* (95) db_options ::= db_options RETENTIONS retention_list */ - { 338, -3 }, /* (96) db_options ::= db_options SCHEMALESS NK_INTEGER */ - { 338, -3 }, /* (97) db_options ::= db_options WAL_LEVEL NK_INTEGER */ - { 338, -3 }, /* (98) db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ - { 338, -3 }, /* (99) db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ - { 338, -4 }, /* (100) db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ - { 338, -3 }, /* (101) db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ - { 338, -4 }, /* (102) db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ - { 338, -3 }, /* (103) db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ - { 338, -3 }, /* (104) db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ - { 338, -3 }, /* (105) db_options ::= db_options STT_TRIGGER NK_INTEGER */ - { 338, -3 }, /* (106) db_options ::= db_options TABLE_PREFIX NK_INTEGER */ - { 338, -3 }, /* (107) db_options ::= db_options TABLE_SUFFIX NK_INTEGER */ - { 340, -1 }, /* (108) alter_db_options ::= alter_db_option */ - { 340, -2 }, /* (109) alter_db_options ::= alter_db_options alter_db_option */ - { 345, -2 }, /* (110) alter_db_option ::= BUFFER NK_INTEGER */ - { 345, -2 }, /* (111) alter_db_option ::= CACHEMODEL NK_STRING */ - { 345, -2 }, /* (112) alter_db_option ::= CACHESIZE NK_INTEGER */ - { 345, -2 }, /* (113) alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ - { 345, -2 }, /* (114) alter_db_option ::= KEEP integer_list */ - { 345, -2 }, /* (115) alter_db_option ::= KEEP variable_list */ - { 345, -2 }, /* (116) alter_db_option ::= PAGES NK_INTEGER */ - { 345, -2 }, /* (117) alter_db_option ::= REPLICA NK_INTEGER */ - { 345, -2 }, /* (118) alter_db_option ::= WAL_LEVEL NK_INTEGER */ - { 345, -2 }, /* (119) alter_db_option ::= STT_TRIGGER NK_INTEGER */ - { 342, -1 }, /* (120) integer_list ::= NK_INTEGER */ - { 342, -3 }, /* (121) integer_list ::= integer_list NK_COMMA NK_INTEGER */ - { 343, -1 }, /* (122) variable_list ::= NK_VARIABLE */ - { 343, -3 }, /* (123) variable_list ::= variable_list NK_COMMA NK_VARIABLE */ - { 344, -1 }, /* (124) retention_list ::= retention */ - { 344, -3 }, /* (125) retention_list ::= retention_list NK_COMMA retention */ - { 346, -3 }, /* (126) retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ - { 341, 0 }, /* (127) speed_opt ::= */ - { 341, -2 }, /* (128) speed_opt ::= MAX_SPEED NK_INTEGER */ - { 322, -9 }, /* (129) cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ - { 322, -3 }, /* (130) cmd ::= CREATE TABLE multi_create_clause */ - { 322, -9 }, /* (131) cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ - { 322, -3 }, /* (132) cmd ::= DROP TABLE multi_drop_clause */ - { 322, -4 }, /* (133) cmd ::= DROP STABLE exists_opt full_table_name */ - { 322, -3 }, /* (134) cmd ::= ALTER TABLE alter_table_clause */ - { 322, -3 }, /* (135) cmd ::= ALTER STABLE alter_table_clause */ - { 354, -2 }, /* (136) alter_table_clause ::= full_table_name alter_table_options */ - { 354, -5 }, /* (137) alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ - { 354, -4 }, /* (138) alter_table_clause ::= full_table_name DROP COLUMN column_name */ - { 354, -5 }, /* (139) alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ - { 354, -5 }, /* (140) alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ - { 354, -5 }, /* (141) alter_table_clause ::= full_table_name ADD TAG column_name type_name */ - { 354, -4 }, /* (142) alter_table_clause ::= full_table_name DROP TAG column_name */ - { 354, -5 }, /* (143) alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ - { 354, -5 }, /* (144) alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ - { 354, -6 }, /* (145) alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ - { 351, -1 }, /* (146) multi_create_clause ::= create_subtable_clause */ - { 351, -2 }, /* (147) multi_create_clause ::= multi_create_clause create_subtable_clause */ - { 359, -10 }, /* (148) create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ - { 353, -1 }, /* (149) multi_drop_clause ::= drop_table_clause */ - { 353, -2 }, /* (150) multi_drop_clause ::= multi_drop_clause drop_table_clause */ - { 362, -2 }, /* (151) drop_table_clause ::= exists_opt full_table_name */ - { 360, 0 }, /* (152) specific_cols_opt ::= */ - { 360, -3 }, /* (153) specific_cols_opt ::= NK_LP col_name_list NK_RP */ - { 347, -1 }, /* (154) full_table_name ::= table_name */ - { 347, -3 }, /* (155) full_table_name ::= db_name NK_DOT table_name */ - { 348, -1 }, /* (156) column_def_list ::= column_def */ - { 348, -3 }, /* (157) column_def_list ::= column_def_list NK_COMMA column_def */ - { 365, -2 }, /* (158) column_def ::= column_name type_name */ - { 365, -4 }, /* (159) column_def ::= column_name type_name COMMENT NK_STRING */ - { 357, -1 }, /* (160) type_name ::= BOOL */ - { 357, -1 }, /* (161) type_name ::= TINYINT */ - { 357, -1 }, /* (162) type_name ::= SMALLINT */ - { 357, -1 }, /* (163) type_name ::= INT */ - { 357, -1 }, /* (164) type_name ::= INTEGER */ - { 357, -1 }, /* (165) type_name ::= BIGINT */ - { 357, -1 }, /* (166) type_name ::= FLOAT */ - { 357, -1 }, /* (167) type_name ::= DOUBLE */ - { 357, -4 }, /* (168) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ - { 357, -1 }, /* (169) type_name ::= TIMESTAMP */ - { 357, -4 }, /* (170) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ - { 357, -2 }, /* (171) type_name ::= TINYINT UNSIGNED */ - { 357, -2 }, /* (172) type_name ::= SMALLINT UNSIGNED */ - { 357, -2 }, /* (173) type_name ::= INT UNSIGNED */ - { 357, -2 }, /* (174) type_name ::= BIGINT UNSIGNED */ - { 357, -1 }, /* (175) type_name ::= JSON */ - { 357, -4 }, /* (176) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ - { 357, -1 }, /* (177) type_name ::= MEDIUMBLOB */ - { 357, -1 }, /* (178) type_name ::= BLOB */ - { 357, -4 }, /* (179) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ - { 357, -1 }, /* (180) type_name ::= DECIMAL */ - { 357, -4 }, /* (181) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ - { 357, -6 }, /* (182) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ - { 349, 0 }, /* (183) tags_def_opt ::= */ - { 349, -1 }, /* (184) tags_def_opt ::= tags_def */ - { 352, -4 }, /* (185) tags_def ::= TAGS NK_LP column_def_list NK_RP */ - { 350, 0 }, /* (186) table_options ::= */ - { 350, -3 }, /* (187) table_options ::= table_options COMMENT NK_STRING */ - { 350, -3 }, /* (188) table_options ::= table_options MAX_DELAY duration_list */ - { 350, -3 }, /* (189) table_options ::= table_options WATERMARK duration_list */ - { 350, -5 }, /* (190) table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ - { 350, -3 }, /* (191) table_options ::= table_options TTL NK_INTEGER */ - { 350, -5 }, /* (192) table_options ::= table_options SMA NK_LP col_name_list NK_RP */ - { 350, -3 }, /* (193) table_options ::= table_options DELETE_MARK duration_list */ - { 355, -1 }, /* (194) alter_table_options ::= alter_table_option */ - { 355, -2 }, /* (195) alter_table_options ::= alter_table_options alter_table_option */ - { 368, -2 }, /* (196) alter_table_option ::= COMMENT NK_STRING */ - { 368, -2 }, /* (197) alter_table_option ::= TTL NK_INTEGER */ - { 366, -1 }, /* (198) duration_list ::= duration_literal */ - { 366, -3 }, /* (199) duration_list ::= duration_list NK_COMMA duration_literal */ - { 367, -1 }, /* (200) rollup_func_list ::= rollup_func_name */ - { 367, -3 }, /* (201) rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ - { 370, -1 }, /* (202) rollup_func_name ::= function_name */ - { 370, -1 }, /* (203) rollup_func_name ::= FIRST */ - { 370, -1 }, /* (204) rollup_func_name ::= LAST */ - { 363, -1 }, /* (205) col_name_list ::= col_name */ - { 363, -3 }, /* (206) col_name_list ::= col_name_list NK_COMMA col_name */ - { 372, -1 }, /* (207) col_name ::= column_name */ - { 322, -2 }, /* (208) cmd ::= SHOW DNODES */ - { 322, -2 }, /* (209) cmd ::= SHOW USERS */ - { 322, -3 }, /* (210) cmd ::= SHOW USER PRIVILEGES */ - { 322, -2 }, /* (211) cmd ::= SHOW DATABASES */ - { 322, -4 }, /* (212) cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ - { 322, -4 }, /* (213) cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ - { 322, -3 }, /* (214) cmd ::= SHOW db_name_cond_opt VGROUPS */ - { 322, -2 }, /* (215) cmd ::= SHOW MNODES */ - { 322, -2 }, /* (216) cmd ::= SHOW QNODES */ - { 322, -2 }, /* (217) cmd ::= SHOW FUNCTIONS */ - { 322, -5 }, /* (218) cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ - { 322, -2 }, /* (219) cmd ::= SHOW STREAMS */ - { 322, -2 }, /* (220) cmd ::= SHOW ACCOUNTS */ - { 322, -2 }, /* (221) cmd ::= SHOW APPS */ - { 322, -2 }, /* (222) cmd ::= SHOW CONNECTIONS */ - { 322, -2 }, /* (223) cmd ::= SHOW LICENCES */ - { 322, -2 }, /* (224) cmd ::= SHOW GRANTS */ - { 322, -4 }, /* (225) cmd ::= SHOW CREATE DATABASE db_name */ - { 322, -4 }, /* (226) cmd ::= SHOW CREATE TABLE full_table_name */ - { 322, -4 }, /* (227) cmd ::= SHOW CREATE STABLE full_table_name */ - { 322, -2 }, /* (228) cmd ::= SHOW QUERIES */ - { 322, -2 }, /* (229) cmd ::= SHOW SCORES */ - { 322, -2 }, /* (230) cmd ::= SHOW TOPICS */ - { 322, -2 }, /* (231) cmd ::= SHOW VARIABLES */ - { 322, -3 }, /* (232) cmd ::= SHOW CLUSTER VARIABLES */ - { 322, -3 }, /* (233) cmd ::= SHOW LOCAL VARIABLES */ - { 322, -5 }, /* (234) cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ - { 322, -2 }, /* (235) cmd ::= SHOW BNODES */ - { 322, -2 }, /* (236) cmd ::= SHOW SNODES */ - { 322, -2 }, /* (237) cmd ::= SHOW CLUSTER */ - { 322, -2 }, /* (238) cmd ::= SHOW TRANSACTIONS */ - { 322, -4 }, /* (239) cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ - { 322, -2 }, /* (240) cmd ::= SHOW CONSUMERS */ - { 322, -2 }, /* (241) cmd ::= SHOW SUBSCRIPTIONS */ - { 322, -5 }, /* (242) cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ - { 322, -7 }, /* (243) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ - { 322, -3 }, /* (244) cmd ::= SHOW VNODES NK_INTEGER */ - { 322, -3 }, /* (245) cmd ::= SHOW VNODES NK_STRING */ - { 373, 0 }, /* (246) db_name_cond_opt ::= */ - { 373, -2 }, /* (247) db_name_cond_opt ::= db_name NK_DOT */ - { 374, 0 }, /* (248) like_pattern_opt ::= */ - { 374, -2 }, /* (249) like_pattern_opt ::= LIKE NK_STRING */ - { 375, -1 }, /* (250) table_name_cond ::= table_name */ - { 376, 0 }, /* (251) from_db_opt ::= */ - { 376, -2 }, /* (252) from_db_opt ::= FROM db_name */ - { 377, 0 }, /* (253) tag_list_opt ::= */ - { 377, -1 }, /* (254) tag_list_opt ::= tag_item */ - { 377, -3 }, /* (255) tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ - { 378, -1 }, /* (256) tag_item ::= TBNAME */ - { 378, -1 }, /* (257) tag_item ::= QTAGS */ - { 378, -1 }, /* (258) tag_item ::= column_name */ - { 378, -2 }, /* (259) tag_item ::= column_name column_alias */ - { 378, -3 }, /* (260) tag_item ::= column_name AS column_alias */ - { 322, -8 }, /* (261) cmd ::= CREATE SMA INDEX not_exists_opt full_table_name ON full_table_name index_options */ - { 322, -4 }, /* (262) cmd ::= DROP INDEX exists_opt full_table_name */ - { 380, -10 }, /* (263) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ - { 380, -12 }, /* (264) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ - { 381, -1 }, /* (265) func_list ::= func */ - { 381, -3 }, /* (266) func_list ::= func_list NK_COMMA func */ - { 384, -4 }, /* (267) func ::= function_name NK_LP expression_list NK_RP */ - { 383, 0 }, /* (268) sma_stream_opt ::= */ - { 383, -3 }, /* (269) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ - { 383, -3 }, /* (270) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ - { 383, -3 }, /* (271) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ - { 322, -6 }, /* (272) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ - { 322, -7 }, /* (273) cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ - { 322, -9 }, /* (274) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ - { 322, -7 }, /* (275) cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ - { 322, -9 }, /* (276) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ - { 322, -4 }, /* (277) cmd ::= DROP TOPIC exists_opt topic_name */ - { 322, -7 }, /* (278) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ - { 322, -2 }, /* (279) cmd ::= DESC full_table_name */ - { 322, -2 }, /* (280) cmd ::= DESCRIBE full_table_name */ - { 322, -3 }, /* (281) cmd ::= RESET QUERY CACHE */ - { 322, -4 }, /* (282) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ - { 387, 0 }, /* (283) analyze_opt ::= */ - { 387, -1 }, /* (284) analyze_opt ::= ANALYZE */ - { 388, 0 }, /* (285) explain_options ::= */ - { 388, -3 }, /* (286) explain_options ::= explain_options VERBOSE NK_BOOL */ - { 388, -3 }, /* (287) explain_options ::= explain_options RATIO NK_FLOAT */ - { 322, -10 }, /* (288) cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */ - { 322, -4 }, /* (289) cmd ::= DROP FUNCTION exists_opt function_name */ - { 389, 0 }, /* (290) agg_func_opt ::= */ - { 389, -1 }, /* (291) agg_func_opt ::= AGGREGATE */ - { 390, 0 }, /* (292) bufsize_opt ::= */ - { 390, -2 }, /* (293) bufsize_opt ::= BUFSIZE NK_INTEGER */ - { 322, -11 }, /* (294) cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name tags_def_opt subtable_opt AS query_or_subquery */ - { 322, -4 }, /* (295) cmd ::= DROP STREAM exists_opt stream_name */ - { 392, 0 }, /* (296) stream_options ::= */ - { 392, -3 }, /* (297) stream_options ::= stream_options TRIGGER AT_ONCE */ - { 392, -3 }, /* (298) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ - { 392, -4 }, /* (299) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ - { 392, -3 }, /* (300) stream_options ::= stream_options WATERMARK duration_literal */ - { 392, -4 }, /* (301) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ - { 392, -3 }, /* (302) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ - { 393, 0 }, /* (303) subtable_opt ::= */ - { 393, -4 }, /* (304) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - { 322, -3 }, /* (305) cmd ::= KILL CONNECTION NK_INTEGER */ - { 322, -3 }, /* (306) cmd ::= KILL QUERY NK_STRING */ - { 322, -3 }, /* (307) cmd ::= KILL TRANSACTION NK_INTEGER */ - { 322, -2 }, /* (308) cmd ::= BALANCE VGROUP */ - { 322, -4 }, /* (309) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ - { 322, -4 }, /* (310) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ - { 322, -3 }, /* (311) cmd ::= SPLIT VGROUP NK_INTEGER */ - { 395, -2 }, /* (312) dnode_list ::= DNODE NK_INTEGER */ - { 395, -3 }, /* (313) dnode_list ::= dnode_list DNODE NK_INTEGER */ - { 322, -4 }, /* (314) cmd ::= DELETE FROM full_table_name where_clause_opt */ - { 322, -1 }, /* (315) cmd ::= query_or_subquery */ - { 322, -7 }, /* (316) cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ - { 322, -4 }, /* (317) cmd ::= INSERT INTO full_table_name query_or_subquery */ - { 325, -1 }, /* (318) literal ::= NK_INTEGER */ - { 325, -1 }, /* (319) literal ::= NK_FLOAT */ - { 325, -1 }, /* (320) literal ::= NK_STRING */ - { 325, -1 }, /* (321) literal ::= NK_BOOL */ - { 325, -2 }, /* (322) literal ::= TIMESTAMP NK_STRING */ - { 325, -1 }, /* (323) literal ::= duration_literal */ - { 325, -1 }, /* (324) literal ::= NULL */ - { 325, -1 }, /* (325) literal ::= NK_QUESTION */ - { 369, -1 }, /* (326) duration_literal ::= NK_VARIABLE */ - { 397, -1 }, /* (327) signed ::= NK_INTEGER */ - { 397, -2 }, /* (328) signed ::= NK_PLUS NK_INTEGER */ - { 397, -2 }, /* (329) signed ::= NK_MINUS NK_INTEGER */ - { 397, -1 }, /* (330) signed ::= NK_FLOAT */ - { 397, -2 }, /* (331) signed ::= NK_PLUS NK_FLOAT */ - { 397, -2 }, /* (332) signed ::= NK_MINUS NK_FLOAT */ - { 358, -1 }, /* (333) signed_literal ::= signed */ - { 358, -1 }, /* (334) signed_literal ::= NK_STRING */ - { 358, -1 }, /* (335) signed_literal ::= NK_BOOL */ - { 358, -2 }, /* (336) signed_literal ::= TIMESTAMP NK_STRING */ - { 358, -1 }, /* (337) signed_literal ::= duration_literal */ - { 358, -1 }, /* (338) signed_literal ::= NULL */ - { 358, -1 }, /* (339) signed_literal ::= literal_func */ - { 358, -1 }, /* (340) signed_literal ::= NK_QUESTION */ - { 399, -1 }, /* (341) literal_list ::= signed_literal */ - { 399, -3 }, /* (342) literal_list ::= literal_list NK_COMMA signed_literal */ - { 333, -1 }, /* (343) db_name ::= NK_ID */ - { 364, -1 }, /* (344) table_name ::= NK_ID */ - { 356, -1 }, /* (345) column_name ::= NK_ID */ - { 371, -1 }, /* (346) function_name ::= NK_ID */ - { 400, -1 }, /* (347) table_alias ::= NK_ID */ - { 379, -1 }, /* (348) column_alias ::= NK_ID */ - { 327, -1 }, /* (349) user_name ::= NK_ID */ - { 334, -1 }, /* (350) topic_name ::= NK_ID */ - { 391, -1 }, /* (351) stream_name ::= NK_ID */ - { 386, -1 }, /* (352) cgroup_name ::= NK_ID */ - { 401, -1 }, /* (353) expr_or_subquery ::= expression */ - { 394, -1 }, /* (354) expression ::= literal */ - { 394, -1 }, /* (355) expression ::= pseudo_column */ - { 394, -1 }, /* (356) expression ::= column_reference */ - { 394, -1 }, /* (357) expression ::= function_expression */ - { 394, -1 }, /* (358) expression ::= case_when_expression */ - { 394, -3 }, /* (359) expression ::= NK_LP expression NK_RP */ - { 394, -2 }, /* (360) expression ::= NK_PLUS expr_or_subquery */ - { 394, -2 }, /* (361) expression ::= NK_MINUS expr_or_subquery */ - { 394, -3 }, /* (362) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ - { 394, -3 }, /* (363) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ - { 394, -3 }, /* (364) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ - { 394, -3 }, /* (365) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ - { 394, -3 }, /* (366) expression ::= expr_or_subquery NK_REM expr_or_subquery */ - { 394, -3 }, /* (367) expression ::= column_reference NK_ARROW NK_STRING */ - { 394, -3 }, /* (368) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ - { 394, -3 }, /* (369) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ - { 361, -1 }, /* (370) expression_list ::= expr_or_subquery */ - { 361, -3 }, /* (371) expression_list ::= expression_list NK_COMMA expr_or_subquery */ - { 403, -1 }, /* (372) column_reference ::= column_name */ - { 403, -3 }, /* (373) column_reference ::= table_name NK_DOT column_name */ - { 402, -1 }, /* (374) pseudo_column ::= ROWTS */ - { 402, -1 }, /* (375) pseudo_column ::= TBNAME */ - { 402, -3 }, /* (376) pseudo_column ::= table_name NK_DOT TBNAME */ - { 402, -1 }, /* (377) pseudo_column ::= QSTART */ - { 402, -1 }, /* (378) pseudo_column ::= QEND */ - { 402, -1 }, /* (379) pseudo_column ::= QDURATION */ - { 402, -1 }, /* (380) pseudo_column ::= WSTART */ - { 402, -1 }, /* (381) pseudo_column ::= WEND */ - { 402, -1 }, /* (382) pseudo_column ::= WDURATION */ - { 402, -1 }, /* (383) pseudo_column ::= IROWTS */ - { 402, -1 }, /* (384) pseudo_column ::= QTAGS */ - { 404, -4 }, /* (385) function_expression ::= function_name NK_LP expression_list NK_RP */ - { 404, -4 }, /* (386) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ - { 404, -6 }, /* (387) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ - { 404, -1 }, /* (388) function_expression ::= literal_func */ - { 398, -3 }, /* (389) literal_func ::= noarg_func NK_LP NK_RP */ - { 398, -1 }, /* (390) literal_func ::= NOW */ - { 408, -1 }, /* (391) noarg_func ::= NOW */ - { 408, -1 }, /* (392) noarg_func ::= TODAY */ - { 408, -1 }, /* (393) noarg_func ::= TIMEZONE */ - { 408, -1 }, /* (394) noarg_func ::= DATABASE */ - { 408, -1 }, /* (395) noarg_func ::= CLIENT_VERSION */ - { 408, -1 }, /* (396) noarg_func ::= SERVER_VERSION */ - { 408, -1 }, /* (397) noarg_func ::= SERVER_STATUS */ - { 408, -1 }, /* (398) noarg_func ::= CURRENT_USER */ - { 408, -1 }, /* (399) noarg_func ::= USER */ - { 406, -1 }, /* (400) star_func ::= COUNT */ - { 406, -1 }, /* (401) star_func ::= FIRST */ - { 406, -1 }, /* (402) star_func ::= LAST */ - { 406, -1 }, /* (403) star_func ::= LAST_ROW */ - { 407, -1 }, /* (404) star_func_para_list ::= NK_STAR */ - { 407, -1 }, /* (405) star_func_para_list ::= other_para_list */ - { 409, -1 }, /* (406) other_para_list ::= star_func_para */ - { 409, -3 }, /* (407) other_para_list ::= other_para_list NK_COMMA star_func_para */ - { 410, -1 }, /* (408) star_func_para ::= expr_or_subquery */ - { 410, -3 }, /* (409) star_func_para ::= table_name NK_DOT NK_STAR */ - { 405, -4 }, /* (410) case_when_expression ::= CASE when_then_list case_when_else_opt END */ - { 405, -5 }, /* (411) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ - { 411, -1 }, /* (412) when_then_list ::= when_then_expr */ - { 411, -2 }, /* (413) when_then_list ::= when_then_list when_then_expr */ - { 414, -4 }, /* (414) when_then_expr ::= WHEN common_expression THEN common_expression */ - { 412, 0 }, /* (415) case_when_else_opt ::= */ - { 412, -2 }, /* (416) case_when_else_opt ::= ELSE common_expression */ - { 415, -3 }, /* (417) predicate ::= expr_or_subquery compare_op expr_or_subquery */ - { 415, -5 }, /* (418) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ - { 415, -6 }, /* (419) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ - { 415, -3 }, /* (420) predicate ::= expr_or_subquery IS NULL */ - { 415, -4 }, /* (421) predicate ::= expr_or_subquery IS NOT NULL */ - { 415, -3 }, /* (422) predicate ::= expr_or_subquery in_op in_predicate_value */ - { 416, -1 }, /* (423) compare_op ::= NK_LT */ - { 416, -1 }, /* (424) compare_op ::= NK_GT */ - { 416, -1 }, /* (425) compare_op ::= NK_LE */ - { 416, -1 }, /* (426) compare_op ::= NK_GE */ - { 416, -1 }, /* (427) compare_op ::= NK_NE */ - { 416, -1 }, /* (428) compare_op ::= NK_EQ */ - { 416, -1 }, /* (429) compare_op ::= LIKE */ - { 416, -2 }, /* (430) compare_op ::= NOT LIKE */ - { 416, -1 }, /* (431) compare_op ::= MATCH */ - { 416, -1 }, /* (432) compare_op ::= NMATCH */ - { 416, -1 }, /* (433) compare_op ::= CONTAINS */ - { 417, -1 }, /* (434) in_op ::= IN */ - { 417, -2 }, /* (435) in_op ::= NOT IN */ - { 418, -3 }, /* (436) in_predicate_value ::= NK_LP literal_list NK_RP */ - { 419, -1 }, /* (437) boolean_value_expression ::= boolean_primary */ - { 419, -2 }, /* (438) boolean_value_expression ::= NOT boolean_primary */ - { 419, -3 }, /* (439) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ - { 419, -3 }, /* (440) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ - { 420, -1 }, /* (441) boolean_primary ::= predicate */ - { 420, -3 }, /* (442) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ - { 413, -1 }, /* (443) common_expression ::= expr_or_subquery */ - { 413, -1 }, /* (444) common_expression ::= boolean_value_expression */ - { 421, 0 }, /* (445) from_clause_opt ::= */ - { 421, -2 }, /* (446) from_clause_opt ::= FROM table_reference_list */ - { 422, -1 }, /* (447) table_reference_list ::= table_reference */ - { 422, -3 }, /* (448) table_reference_list ::= table_reference_list NK_COMMA table_reference */ - { 423, -1 }, /* (449) table_reference ::= table_primary */ - { 423, -1 }, /* (450) table_reference ::= joined_table */ - { 424, -2 }, /* (451) table_primary ::= table_name alias_opt */ - { 424, -4 }, /* (452) table_primary ::= db_name NK_DOT table_name alias_opt */ - { 424, -2 }, /* (453) table_primary ::= subquery alias_opt */ - { 424, -1 }, /* (454) table_primary ::= parenthesized_joined_table */ - { 426, 0 }, /* (455) alias_opt ::= */ - { 426, -1 }, /* (456) alias_opt ::= table_alias */ - { 426, -2 }, /* (457) alias_opt ::= AS table_alias */ - { 428, -3 }, /* (458) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - { 428, -3 }, /* (459) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - { 425, -6 }, /* (460) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ - { 429, 0 }, /* (461) join_type ::= */ - { 429, -1 }, /* (462) join_type ::= INNER */ - { 431, -12 }, /* (463) query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ - { 432, 0 }, /* (464) set_quantifier_opt ::= */ - { 432, -1 }, /* (465) set_quantifier_opt ::= DISTINCT */ - { 432, -1 }, /* (466) set_quantifier_opt ::= ALL */ - { 433, -1 }, /* (467) select_list ::= select_item */ - { 433, -3 }, /* (468) select_list ::= select_list NK_COMMA select_item */ - { 441, -1 }, /* (469) select_item ::= NK_STAR */ - { 441, -1 }, /* (470) select_item ::= common_expression */ - { 441, -2 }, /* (471) select_item ::= common_expression column_alias */ - { 441, -3 }, /* (472) select_item ::= common_expression AS column_alias */ - { 441, -3 }, /* (473) select_item ::= table_name NK_DOT NK_STAR */ - { 396, 0 }, /* (474) where_clause_opt ::= */ - { 396, -2 }, /* (475) where_clause_opt ::= WHERE search_condition */ - { 434, 0 }, /* (476) partition_by_clause_opt ::= */ - { 434, -3 }, /* (477) partition_by_clause_opt ::= PARTITION BY partition_list */ - { 442, -1 }, /* (478) partition_list ::= partition_item */ - { 442, -3 }, /* (479) partition_list ::= partition_list NK_COMMA partition_item */ - { 443, -1 }, /* (480) partition_item ::= expr_or_subquery */ - { 443, -2 }, /* (481) partition_item ::= expr_or_subquery column_alias */ - { 443, -3 }, /* (482) partition_item ::= expr_or_subquery AS column_alias */ - { 438, 0 }, /* (483) twindow_clause_opt ::= */ - { 438, -6 }, /* (484) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ - { 438, -4 }, /* (485) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - { 438, -6 }, /* (486) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ - { 438, -8 }, /* (487) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ - { 382, 0 }, /* (488) sliding_opt ::= */ - { 382, -4 }, /* (489) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ - { 437, 0 }, /* (490) fill_opt ::= */ - { 437, -4 }, /* (491) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - { 437, -6 }, /* (492) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ - { 444, -1 }, /* (493) fill_mode ::= NONE */ - { 444, -1 }, /* (494) fill_mode ::= PREV */ - { 444, -1 }, /* (495) fill_mode ::= NULL */ - { 444, -1 }, /* (496) fill_mode ::= LINEAR */ - { 444, -1 }, /* (497) fill_mode ::= NEXT */ - { 439, 0 }, /* (498) group_by_clause_opt ::= */ - { 439, -3 }, /* (499) group_by_clause_opt ::= GROUP BY group_by_list */ - { 445, -1 }, /* (500) group_by_list ::= expr_or_subquery */ - { 445, -3 }, /* (501) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - { 440, 0 }, /* (502) having_clause_opt ::= */ - { 440, -2 }, /* (503) having_clause_opt ::= HAVING search_condition */ - { 435, 0 }, /* (504) range_opt ::= */ - { 435, -6 }, /* (505) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - { 436, 0 }, /* (506) every_opt ::= */ - { 436, -4 }, /* (507) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - { 446, -4 }, /* (508) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - { 447, -1 }, /* (509) query_simple ::= query_specification */ - { 447, -1 }, /* (510) query_simple ::= union_query_expression */ - { 451, -4 }, /* (511) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - { 451, -3 }, /* (512) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - { 452, -1 }, /* (513) query_simple_or_subquery ::= query_simple */ - { 452, -1 }, /* (514) query_simple_or_subquery ::= subquery */ - { 385, -1 }, /* (515) query_or_subquery ::= query_expression */ - { 385, -1 }, /* (516) query_or_subquery ::= subquery */ - { 448, 0 }, /* (517) order_by_clause_opt ::= */ - { 448, -3 }, /* (518) order_by_clause_opt ::= ORDER BY sort_specification_list */ - { 449, 0 }, /* (519) slimit_clause_opt ::= */ - { 449, -2 }, /* (520) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - { 449, -4 }, /* (521) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - { 449, -4 }, /* (522) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - { 450, 0 }, /* (523) limit_clause_opt ::= */ - { 450, -2 }, /* (524) limit_clause_opt ::= LIMIT NK_INTEGER */ - { 450, -4 }, /* (525) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - { 450, -4 }, /* (526) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - { 427, -3 }, /* (527) subquery ::= NK_LP query_expression NK_RP */ - { 427, -3 }, /* (528) subquery ::= NK_LP subquery NK_RP */ - { 430, -1 }, /* (529) search_condition ::= common_expression */ - { 453, -1 }, /* (530) sort_specification_list ::= sort_specification */ - { 453, -3 }, /* (531) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - { 454, -3 }, /* (532) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - { 455, 0 }, /* (533) ordering_specification_opt ::= */ - { 455, -1 }, /* (534) ordering_specification_opt ::= ASC */ - { 455, -1 }, /* (535) ordering_specification_opt ::= DESC */ - { 456, 0 }, /* (536) null_ordering_opt ::= */ - { 456, -2 }, /* (537) null_ordering_opt ::= NULLS FIRST */ - { 456, -2 }, /* (538) null_ordering_opt ::= NULLS LAST */ + { 324, -6 }, /* (0) cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ + { 324, -4 }, /* (1) cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ + { 325, 0 }, /* (2) account_options ::= */ + { 325, -3 }, /* (3) account_options ::= account_options PPS literal */ + { 325, -3 }, /* (4) account_options ::= account_options TSERIES literal */ + { 325, -3 }, /* (5) account_options ::= account_options STORAGE literal */ + { 325, -3 }, /* (6) account_options ::= account_options STREAMS literal */ + { 325, -3 }, /* (7) account_options ::= account_options QTIME literal */ + { 325, -3 }, /* (8) account_options ::= account_options DBS literal */ + { 325, -3 }, /* (9) account_options ::= account_options USERS literal */ + { 325, -3 }, /* (10) account_options ::= account_options CONNS literal */ + { 325, -3 }, /* (11) account_options ::= account_options STATE literal */ + { 326, -1 }, /* (12) alter_account_options ::= alter_account_option */ + { 326, -2 }, /* (13) alter_account_options ::= alter_account_options alter_account_option */ + { 328, -2 }, /* (14) alter_account_option ::= PASS literal */ + { 328, -2 }, /* (15) alter_account_option ::= PPS literal */ + { 328, -2 }, /* (16) alter_account_option ::= TSERIES literal */ + { 328, -2 }, /* (17) alter_account_option ::= STORAGE literal */ + { 328, -2 }, /* (18) alter_account_option ::= STREAMS literal */ + { 328, -2 }, /* (19) alter_account_option ::= QTIME literal */ + { 328, -2 }, /* (20) alter_account_option ::= DBS literal */ + { 328, -2 }, /* (21) alter_account_option ::= USERS literal */ + { 328, -2 }, /* (22) alter_account_option ::= CONNS literal */ + { 328, -2 }, /* (23) alter_account_option ::= STATE literal */ + { 324, -6 }, /* (24) cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ + { 324, -5 }, /* (25) cmd ::= ALTER USER user_name PASS NK_STRING */ + { 324, -5 }, /* (26) cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ + { 324, -5 }, /* (27) cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ + { 324, -3 }, /* (28) cmd ::= DROP USER user_name */ + { 330, 0 }, /* (29) sysinfo_opt ::= */ + { 330, -2 }, /* (30) sysinfo_opt ::= SYSINFO NK_INTEGER */ + { 324, -6 }, /* (31) cmd ::= GRANT privileges ON priv_level TO user_name */ + { 324, -6 }, /* (32) cmd ::= REVOKE privileges ON priv_level FROM user_name */ + { 331, -1 }, /* (33) privileges ::= ALL */ + { 331, -1 }, /* (34) privileges ::= priv_type_list */ + { 331, -1 }, /* (35) privileges ::= SUBSCRIBE */ + { 333, -1 }, /* (36) priv_type_list ::= priv_type */ + { 333, -3 }, /* (37) priv_type_list ::= priv_type_list NK_COMMA priv_type */ + { 334, -1 }, /* (38) priv_type ::= READ */ + { 334, -1 }, /* (39) priv_type ::= WRITE */ + { 332, -3 }, /* (40) priv_level ::= NK_STAR NK_DOT NK_STAR */ + { 332, -3 }, /* (41) priv_level ::= db_name NK_DOT NK_STAR */ + { 332, -1 }, /* (42) priv_level ::= topic_name */ + { 324, -3 }, /* (43) cmd ::= CREATE DNODE dnode_endpoint */ + { 324, -5 }, /* (44) cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ + { 324, -4 }, /* (45) cmd ::= DROP DNODE NK_INTEGER force_opt */ + { 324, -4 }, /* (46) cmd ::= DROP DNODE dnode_endpoint force_opt */ + { 324, -4 }, /* (47) cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ + { 324, -5 }, /* (48) cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ + { 324, -4 }, /* (49) cmd ::= ALTER ALL DNODES NK_STRING */ + { 324, -5 }, /* (50) cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ + { 337, -1 }, /* (51) dnode_endpoint ::= NK_STRING */ + { 337, -1 }, /* (52) dnode_endpoint ::= NK_ID */ + { 337, -1 }, /* (53) dnode_endpoint ::= NK_IPTOKEN */ + { 338, 0 }, /* (54) force_opt ::= */ + { 338, -1 }, /* (55) force_opt ::= FORCE */ + { 324, -3 }, /* (56) cmd ::= ALTER LOCAL NK_STRING */ + { 324, -4 }, /* (57) cmd ::= ALTER LOCAL NK_STRING NK_STRING */ + { 324, -5 }, /* (58) cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ + { 324, -5 }, /* (59) cmd ::= DROP QNODE ON DNODE NK_INTEGER */ + { 324, -5 }, /* (60) cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ + { 324, -5 }, /* (61) cmd ::= DROP BNODE ON DNODE NK_INTEGER */ + { 324, -5 }, /* (62) cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ + { 324, -5 }, /* (63) cmd ::= DROP SNODE ON DNODE NK_INTEGER */ + { 324, -5 }, /* (64) cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ + { 324, -5 }, /* (65) cmd ::= DROP MNODE ON DNODE NK_INTEGER */ + { 324, -5 }, /* (66) cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ + { 324, -4 }, /* (67) cmd ::= DROP DATABASE exists_opt db_name */ + { 324, -2 }, /* (68) cmd ::= USE db_name */ + { 324, -4 }, /* (69) cmd ::= ALTER DATABASE db_name alter_db_options */ + { 324, -3 }, /* (70) cmd ::= FLUSH DATABASE db_name */ + { 324, -4 }, /* (71) cmd ::= TRIM DATABASE db_name speed_opt */ + { 339, -3 }, /* (72) not_exists_opt ::= IF NOT EXISTS */ + { 339, 0 }, /* (73) not_exists_opt ::= */ + { 341, -2 }, /* (74) exists_opt ::= IF EXISTS */ + { 341, 0 }, /* (75) exists_opt ::= */ + { 340, 0 }, /* (76) db_options ::= */ + { 340, -3 }, /* (77) db_options ::= db_options BUFFER NK_INTEGER */ + { 340, -3 }, /* (78) db_options ::= db_options CACHEMODEL NK_STRING */ + { 340, -3 }, /* (79) db_options ::= db_options CACHESIZE NK_INTEGER */ + { 340, -3 }, /* (80) db_options ::= db_options COMP NK_INTEGER */ + { 340, -3 }, /* (81) db_options ::= db_options DURATION NK_INTEGER */ + { 340, -3 }, /* (82) db_options ::= db_options DURATION NK_VARIABLE */ + { 340, -3 }, /* (83) db_options ::= db_options MAXROWS NK_INTEGER */ + { 340, -3 }, /* (84) db_options ::= db_options MINROWS NK_INTEGER */ + { 340, -3 }, /* (85) db_options ::= db_options KEEP integer_list */ + { 340, -3 }, /* (86) db_options ::= db_options KEEP variable_list */ + { 340, -3 }, /* (87) db_options ::= db_options PAGES NK_INTEGER */ + { 340, -3 }, /* (88) db_options ::= db_options PAGESIZE NK_INTEGER */ + { 340, -3 }, /* (89) db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ + { 340, -3 }, /* (90) db_options ::= db_options PRECISION NK_STRING */ + { 340, -3 }, /* (91) db_options ::= db_options REPLICA NK_INTEGER */ + { 340, -3 }, /* (92) db_options ::= db_options STRICT NK_STRING */ + { 340, -3 }, /* (93) db_options ::= db_options VGROUPS NK_INTEGER */ + { 340, -3 }, /* (94) db_options ::= db_options SINGLE_STABLE NK_INTEGER */ + { 340, -3 }, /* (95) db_options ::= db_options RETENTIONS retention_list */ + { 340, -3 }, /* (96) db_options ::= db_options SCHEMALESS NK_INTEGER */ + { 340, -3 }, /* (97) db_options ::= db_options WAL_LEVEL NK_INTEGER */ + { 340, -3 }, /* (98) db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ + { 340, -3 }, /* (99) db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ + { 340, -4 }, /* (100) db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ + { 340, -3 }, /* (101) db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ + { 340, -4 }, /* (102) db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ + { 340, -3 }, /* (103) db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ + { 340, -3 }, /* (104) db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ + { 340, -3 }, /* (105) db_options ::= db_options STT_TRIGGER NK_INTEGER */ + { 340, -3 }, /* (106) db_options ::= db_options TABLE_PREFIX NK_INTEGER */ + { 340, -3 }, /* (107) db_options ::= db_options TABLE_SUFFIX NK_INTEGER */ + { 342, -1 }, /* (108) alter_db_options ::= alter_db_option */ + { 342, -2 }, /* (109) alter_db_options ::= alter_db_options alter_db_option */ + { 347, -2 }, /* (110) alter_db_option ::= BUFFER NK_INTEGER */ + { 347, -2 }, /* (111) alter_db_option ::= CACHEMODEL NK_STRING */ + { 347, -2 }, /* (112) alter_db_option ::= CACHESIZE NK_INTEGER */ + { 347, -2 }, /* (113) alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ + { 347, -2 }, /* (114) alter_db_option ::= KEEP integer_list */ + { 347, -2 }, /* (115) alter_db_option ::= KEEP variable_list */ + { 347, -2 }, /* (116) alter_db_option ::= PAGES NK_INTEGER */ + { 347, -2 }, /* (117) alter_db_option ::= REPLICA NK_INTEGER */ + { 347, -2 }, /* (118) alter_db_option ::= WAL_LEVEL NK_INTEGER */ + { 347, -2 }, /* (119) alter_db_option ::= STT_TRIGGER NK_INTEGER */ + { 344, -1 }, /* (120) integer_list ::= NK_INTEGER */ + { 344, -3 }, /* (121) integer_list ::= integer_list NK_COMMA NK_INTEGER */ + { 345, -1 }, /* (122) variable_list ::= NK_VARIABLE */ + { 345, -3 }, /* (123) variable_list ::= variable_list NK_COMMA NK_VARIABLE */ + { 346, -1 }, /* (124) retention_list ::= retention */ + { 346, -3 }, /* (125) retention_list ::= retention_list NK_COMMA retention */ + { 348, -3 }, /* (126) retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ + { 343, 0 }, /* (127) speed_opt ::= */ + { 343, -2 }, /* (128) speed_opt ::= MAX_SPEED NK_INTEGER */ + { 324, -9 }, /* (129) cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ + { 324, -3 }, /* (130) cmd ::= CREATE TABLE multi_create_clause */ + { 324, -9 }, /* (131) cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ + { 324, -3 }, /* (132) cmd ::= DROP TABLE multi_drop_clause */ + { 324, -4 }, /* (133) cmd ::= DROP STABLE exists_opt full_table_name */ + { 324, -3 }, /* (134) cmd ::= ALTER TABLE alter_table_clause */ + { 324, -3 }, /* (135) cmd ::= ALTER STABLE alter_table_clause */ + { 356, -2 }, /* (136) alter_table_clause ::= full_table_name alter_table_options */ + { 356, -5 }, /* (137) alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ + { 356, -4 }, /* (138) alter_table_clause ::= full_table_name DROP COLUMN column_name */ + { 356, -5 }, /* (139) alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ + { 356, -5 }, /* (140) alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ + { 356, -5 }, /* (141) alter_table_clause ::= full_table_name ADD TAG column_name type_name */ + { 356, -4 }, /* (142) alter_table_clause ::= full_table_name DROP TAG column_name */ + { 356, -5 }, /* (143) alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ + { 356, -5 }, /* (144) alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ + { 356, -6 }, /* (145) alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ + { 353, -1 }, /* (146) multi_create_clause ::= create_subtable_clause */ + { 353, -2 }, /* (147) multi_create_clause ::= multi_create_clause create_subtable_clause */ + { 361, -10 }, /* (148) create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ + { 355, -1 }, /* (149) multi_drop_clause ::= drop_table_clause */ + { 355, -2 }, /* (150) multi_drop_clause ::= multi_drop_clause drop_table_clause */ + { 364, -2 }, /* (151) drop_table_clause ::= exists_opt full_table_name */ + { 362, 0 }, /* (152) specific_cols_opt ::= */ + { 362, -3 }, /* (153) specific_cols_opt ::= NK_LP col_name_list NK_RP */ + { 349, -1 }, /* (154) full_table_name ::= table_name */ + { 349, -3 }, /* (155) full_table_name ::= db_name NK_DOT table_name */ + { 350, -1 }, /* (156) column_def_list ::= column_def */ + { 350, -3 }, /* (157) column_def_list ::= column_def_list NK_COMMA column_def */ + { 367, -2 }, /* (158) column_def ::= column_name type_name */ + { 367, -4 }, /* (159) column_def ::= column_name type_name COMMENT NK_STRING */ + { 359, -1 }, /* (160) type_name ::= BOOL */ + { 359, -1 }, /* (161) type_name ::= TINYINT */ + { 359, -1 }, /* (162) type_name ::= SMALLINT */ + { 359, -1 }, /* (163) type_name ::= INT */ + { 359, -1 }, /* (164) type_name ::= INTEGER */ + { 359, -1 }, /* (165) type_name ::= BIGINT */ + { 359, -1 }, /* (166) type_name ::= FLOAT */ + { 359, -1 }, /* (167) type_name ::= DOUBLE */ + { 359, -4 }, /* (168) type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ + { 359, -1 }, /* (169) type_name ::= TIMESTAMP */ + { 359, -4 }, /* (170) type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ + { 359, -2 }, /* (171) type_name ::= TINYINT UNSIGNED */ + { 359, -2 }, /* (172) type_name ::= SMALLINT UNSIGNED */ + { 359, -2 }, /* (173) type_name ::= INT UNSIGNED */ + { 359, -2 }, /* (174) type_name ::= BIGINT UNSIGNED */ + { 359, -1 }, /* (175) type_name ::= JSON */ + { 359, -4 }, /* (176) type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ + { 359, -1 }, /* (177) type_name ::= MEDIUMBLOB */ + { 359, -1 }, /* (178) type_name ::= BLOB */ + { 359, -4 }, /* (179) type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ + { 359, -1 }, /* (180) type_name ::= DECIMAL */ + { 359, -4 }, /* (181) type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ + { 359, -6 }, /* (182) type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ + { 351, 0 }, /* (183) tags_def_opt ::= */ + { 351, -1 }, /* (184) tags_def_opt ::= tags_def */ + { 354, -4 }, /* (185) tags_def ::= TAGS NK_LP column_def_list NK_RP */ + { 352, 0 }, /* (186) table_options ::= */ + { 352, -3 }, /* (187) table_options ::= table_options COMMENT NK_STRING */ + { 352, -3 }, /* (188) table_options ::= table_options MAX_DELAY duration_list */ + { 352, -3 }, /* (189) table_options ::= table_options WATERMARK duration_list */ + { 352, -5 }, /* (190) table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ + { 352, -3 }, /* (191) table_options ::= table_options TTL NK_INTEGER */ + { 352, -5 }, /* (192) table_options ::= table_options SMA NK_LP col_name_list NK_RP */ + { 352, -3 }, /* (193) table_options ::= table_options DELETE_MARK duration_list */ + { 357, -1 }, /* (194) alter_table_options ::= alter_table_option */ + { 357, -2 }, /* (195) alter_table_options ::= alter_table_options alter_table_option */ + { 370, -2 }, /* (196) alter_table_option ::= COMMENT NK_STRING */ + { 370, -2 }, /* (197) alter_table_option ::= TTL NK_INTEGER */ + { 368, -1 }, /* (198) duration_list ::= duration_literal */ + { 368, -3 }, /* (199) duration_list ::= duration_list NK_COMMA duration_literal */ + { 369, -1 }, /* (200) rollup_func_list ::= rollup_func_name */ + { 369, -3 }, /* (201) rollup_func_list ::= rollup_func_list NK_COMMA rollup_func_name */ + { 372, -1 }, /* (202) rollup_func_name ::= function_name */ + { 372, -1 }, /* (203) rollup_func_name ::= FIRST */ + { 372, -1 }, /* (204) rollup_func_name ::= LAST */ + { 365, -1 }, /* (205) col_name_list ::= col_name */ + { 365, -3 }, /* (206) col_name_list ::= col_name_list NK_COMMA col_name */ + { 374, -1 }, /* (207) col_name ::= column_name */ + { 324, -2 }, /* (208) cmd ::= SHOW DNODES */ + { 324, -2 }, /* (209) cmd ::= SHOW USERS */ + { 324, -3 }, /* (210) cmd ::= SHOW USER PRIVILEGES */ + { 324, -2 }, /* (211) cmd ::= SHOW DATABASES */ + { 324, -4 }, /* (212) cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ + { 324, -4 }, /* (213) cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ + { 324, -3 }, /* (214) cmd ::= SHOW db_name_cond_opt VGROUPS */ + { 324, -2 }, /* (215) cmd ::= SHOW MNODES */ + { 324, -2 }, /* (216) cmd ::= SHOW QNODES */ + { 324, -2 }, /* (217) cmd ::= SHOW FUNCTIONS */ + { 324, -5 }, /* (218) cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ + { 324, -2 }, /* (219) cmd ::= SHOW STREAMS */ + { 324, -2 }, /* (220) cmd ::= SHOW ACCOUNTS */ + { 324, -2 }, /* (221) cmd ::= SHOW APPS */ + { 324, -2 }, /* (222) cmd ::= SHOW CONNECTIONS */ + { 324, -2 }, /* (223) cmd ::= SHOW LICENCES */ + { 324, -2 }, /* (224) cmd ::= SHOW GRANTS */ + { 324, -4 }, /* (225) cmd ::= SHOW CREATE DATABASE db_name */ + { 324, -4 }, /* (226) cmd ::= SHOW CREATE TABLE full_table_name */ + { 324, -4 }, /* (227) cmd ::= SHOW CREATE STABLE full_table_name */ + { 324, -2 }, /* (228) cmd ::= SHOW QUERIES */ + { 324, -2 }, /* (229) cmd ::= SHOW SCORES */ + { 324, -2 }, /* (230) cmd ::= SHOW TOPICS */ + { 324, -2 }, /* (231) cmd ::= SHOW VARIABLES */ + { 324, -3 }, /* (232) cmd ::= SHOW CLUSTER VARIABLES */ + { 324, -3 }, /* (233) cmd ::= SHOW LOCAL VARIABLES */ + { 324, -5 }, /* (234) cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ + { 324, -2 }, /* (235) cmd ::= SHOW BNODES */ + { 324, -2 }, /* (236) cmd ::= SHOW SNODES */ + { 324, -2 }, /* (237) cmd ::= SHOW CLUSTER */ + { 324, -2 }, /* (238) cmd ::= SHOW TRANSACTIONS */ + { 324, -4 }, /* (239) cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ + { 324, -2 }, /* (240) cmd ::= SHOW CONSUMERS */ + { 324, -2 }, /* (241) cmd ::= SHOW SUBSCRIPTIONS */ + { 324, -5 }, /* (242) cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ + { 324, -7 }, /* (243) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ + { 324, -3 }, /* (244) cmd ::= SHOW VNODES NK_INTEGER */ + { 324, -3 }, /* (245) cmd ::= SHOW VNODES NK_STRING */ + { 375, 0 }, /* (246) db_name_cond_opt ::= */ + { 375, -2 }, /* (247) db_name_cond_opt ::= db_name NK_DOT */ + { 376, 0 }, /* (248) like_pattern_opt ::= */ + { 376, -2 }, /* (249) like_pattern_opt ::= LIKE NK_STRING */ + { 377, -1 }, /* (250) table_name_cond ::= table_name */ + { 378, 0 }, /* (251) from_db_opt ::= */ + { 378, -2 }, /* (252) from_db_opt ::= FROM db_name */ + { 379, 0 }, /* (253) tag_list_opt ::= */ + { 379, -1 }, /* (254) tag_list_opt ::= tag_item */ + { 379, -3 }, /* (255) tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ + { 380, -1 }, /* (256) tag_item ::= TBNAME */ + { 380, -1 }, /* (257) tag_item ::= QTAGS */ + { 380, -1 }, /* (258) tag_item ::= column_name */ + { 380, -2 }, /* (259) tag_item ::= column_name column_alias */ + { 380, -3 }, /* (260) tag_item ::= column_name AS column_alias */ + { 324, -8 }, /* (261) cmd ::= CREATE SMA INDEX not_exists_opt full_table_name ON full_table_name index_options */ + { 324, -4 }, /* (262) cmd ::= DROP INDEX exists_opt full_table_name */ + { 382, -10 }, /* (263) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ + { 382, -12 }, /* (264) index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ + { 383, -1 }, /* (265) func_list ::= func */ + { 383, -3 }, /* (266) func_list ::= func_list NK_COMMA func */ + { 386, -4 }, /* (267) func ::= function_name NK_LP expression_list NK_RP */ + { 385, 0 }, /* (268) sma_stream_opt ::= */ + { 385, -3 }, /* (269) sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ + { 385, -3 }, /* (270) sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ + { 385, -3 }, /* (271) sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ + { 324, -6 }, /* (272) cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ + { 324, -7 }, /* (273) cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ + { 324, -9 }, /* (274) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ + { 324, -7 }, /* (275) cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ + { 324, -9 }, /* (276) cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ + { 324, -4 }, /* (277) cmd ::= DROP TOPIC exists_opt topic_name */ + { 324, -7 }, /* (278) cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ + { 324, -2 }, /* (279) cmd ::= DESC full_table_name */ + { 324, -2 }, /* (280) cmd ::= DESCRIBE full_table_name */ + { 324, -3 }, /* (281) cmd ::= RESET QUERY CACHE */ + { 324, -4 }, /* (282) cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ + { 389, 0 }, /* (283) analyze_opt ::= */ + { 389, -1 }, /* (284) analyze_opt ::= ANALYZE */ + { 390, 0 }, /* (285) explain_options ::= */ + { 390, -3 }, /* (286) explain_options ::= explain_options VERBOSE NK_BOOL */ + { 390, -3 }, /* (287) explain_options ::= explain_options RATIO NK_FLOAT */ + { 324, -10 }, /* (288) cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */ + { 324, -4 }, /* (289) cmd ::= DROP FUNCTION exists_opt function_name */ + { 391, 0 }, /* (290) agg_func_opt ::= */ + { 391, -1 }, /* (291) agg_func_opt ::= AGGREGATE */ + { 392, 0 }, /* (292) bufsize_opt ::= */ + { 392, -2 }, /* (293) bufsize_opt ::= BUFSIZE NK_INTEGER */ + { 324, -11 }, /* (294) cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name tags_def_opt subtable_opt AS query_or_subquery */ + { 324, -4 }, /* (295) cmd ::= DROP STREAM exists_opt stream_name */ + { 394, 0 }, /* (296) stream_options ::= */ + { 394, -3 }, /* (297) stream_options ::= stream_options TRIGGER AT_ONCE */ + { 394, -3 }, /* (298) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ + { 394, -4 }, /* (299) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ + { 394, -3 }, /* (300) stream_options ::= stream_options WATERMARK duration_literal */ + { 394, -4 }, /* (301) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ + { 394, -3 }, /* (302) stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ + { 395, 0 }, /* (303) subtable_opt ::= */ + { 395, -4 }, /* (304) subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + { 324, -3 }, /* (305) cmd ::= KILL CONNECTION NK_INTEGER */ + { 324, -3 }, /* (306) cmd ::= KILL QUERY NK_STRING */ + { 324, -3 }, /* (307) cmd ::= KILL TRANSACTION NK_INTEGER */ + { 324, -2 }, /* (308) cmd ::= BALANCE VGROUP */ + { 324, -4 }, /* (309) cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + { 324, -4 }, /* (310) cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ + { 324, -3 }, /* (311) cmd ::= SPLIT VGROUP NK_INTEGER */ + { 397, -2 }, /* (312) dnode_list ::= DNODE NK_INTEGER */ + { 397, -3 }, /* (313) dnode_list ::= dnode_list DNODE NK_INTEGER */ + { 324, -4 }, /* (314) cmd ::= DELETE FROM full_table_name where_clause_opt */ + { 324, -1 }, /* (315) cmd ::= query_or_subquery */ + { 324, -7 }, /* (316) cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ + { 324, -4 }, /* (317) cmd ::= INSERT INTO full_table_name query_or_subquery */ + { 327, -1 }, /* (318) literal ::= NK_INTEGER */ + { 327, -1 }, /* (319) literal ::= NK_FLOAT */ + { 327, -1 }, /* (320) literal ::= NK_STRING */ + { 327, -1 }, /* (321) literal ::= NK_BOOL */ + { 327, -2 }, /* (322) literal ::= TIMESTAMP NK_STRING */ + { 327, -1 }, /* (323) literal ::= duration_literal */ + { 327, -1 }, /* (324) literal ::= NULL */ + { 327, -1 }, /* (325) literal ::= NK_QUESTION */ + { 371, -1 }, /* (326) duration_literal ::= NK_VARIABLE */ + { 399, -1 }, /* (327) signed ::= NK_INTEGER */ + { 399, -2 }, /* (328) signed ::= NK_PLUS NK_INTEGER */ + { 399, -2 }, /* (329) signed ::= NK_MINUS NK_INTEGER */ + { 399, -1 }, /* (330) signed ::= NK_FLOAT */ + { 399, -2 }, /* (331) signed ::= NK_PLUS NK_FLOAT */ + { 399, -2 }, /* (332) signed ::= NK_MINUS NK_FLOAT */ + { 360, -1 }, /* (333) signed_literal ::= signed */ + { 360, -1 }, /* (334) signed_literal ::= NK_STRING */ + { 360, -1 }, /* (335) signed_literal ::= NK_BOOL */ + { 360, -2 }, /* (336) signed_literal ::= TIMESTAMP NK_STRING */ + { 360, -1 }, /* (337) signed_literal ::= duration_literal */ + { 360, -1 }, /* (338) signed_literal ::= NULL */ + { 360, -1 }, /* (339) signed_literal ::= literal_func */ + { 360, -1 }, /* (340) signed_literal ::= NK_QUESTION */ + { 401, -1 }, /* (341) literal_list ::= signed_literal */ + { 401, -3 }, /* (342) literal_list ::= literal_list NK_COMMA signed_literal */ + { 335, -1 }, /* (343) db_name ::= NK_ID */ + { 366, -1 }, /* (344) table_name ::= NK_ID */ + { 358, -1 }, /* (345) column_name ::= NK_ID */ + { 373, -1 }, /* (346) function_name ::= NK_ID */ + { 402, -1 }, /* (347) table_alias ::= NK_ID */ + { 381, -1 }, /* (348) column_alias ::= NK_ID */ + { 329, -1 }, /* (349) user_name ::= NK_ID */ + { 336, -1 }, /* (350) topic_name ::= NK_ID */ + { 393, -1 }, /* (351) stream_name ::= NK_ID */ + { 388, -1 }, /* (352) cgroup_name ::= NK_ID */ + { 403, -1 }, /* (353) expr_or_subquery ::= expression */ + { 396, -1 }, /* (354) expression ::= literal */ + { 396, -1 }, /* (355) expression ::= pseudo_column */ + { 396, -1 }, /* (356) expression ::= column_reference */ + { 396, -1 }, /* (357) expression ::= function_expression */ + { 396, -1 }, /* (358) expression ::= case_when_expression */ + { 396, -3 }, /* (359) expression ::= NK_LP expression NK_RP */ + { 396, -2 }, /* (360) expression ::= NK_PLUS expr_or_subquery */ + { 396, -2 }, /* (361) expression ::= NK_MINUS expr_or_subquery */ + { 396, -3 }, /* (362) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + { 396, -3 }, /* (363) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + { 396, -3 }, /* (364) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + { 396, -3 }, /* (365) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + { 396, -3 }, /* (366) expression ::= expr_or_subquery NK_REM expr_or_subquery */ + { 396, -3 }, /* (367) expression ::= column_reference NK_ARROW NK_STRING */ + { 396, -3 }, /* (368) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + { 396, -3 }, /* (369) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + { 363, -1 }, /* (370) expression_list ::= expr_or_subquery */ + { 363, -3 }, /* (371) expression_list ::= expression_list NK_COMMA expr_or_subquery */ + { 405, -1 }, /* (372) column_reference ::= column_name */ + { 405, -3 }, /* (373) column_reference ::= table_name NK_DOT column_name */ + { 404, -1 }, /* (374) pseudo_column ::= ROWTS */ + { 404, -1 }, /* (375) pseudo_column ::= TBNAME */ + { 404, -3 }, /* (376) pseudo_column ::= table_name NK_DOT TBNAME */ + { 404, -1 }, /* (377) pseudo_column ::= QSTART */ + { 404, -1 }, /* (378) pseudo_column ::= QEND */ + { 404, -1 }, /* (379) pseudo_column ::= QDURATION */ + { 404, -1 }, /* (380) pseudo_column ::= WSTART */ + { 404, -1 }, /* (381) pseudo_column ::= WEND */ + { 404, -1 }, /* (382) pseudo_column ::= WDURATION */ + { 404, -1 }, /* (383) pseudo_column ::= IROWTS */ + { 404, -1 }, /* (384) pseudo_column ::= QTAGS */ + { 406, -4 }, /* (385) function_expression ::= function_name NK_LP expression_list NK_RP */ + { 406, -4 }, /* (386) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ + { 406, -6 }, /* (387) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + { 406, -1 }, /* (388) function_expression ::= literal_func */ + { 400, -3 }, /* (389) literal_func ::= noarg_func NK_LP NK_RP */ + { 400, -1 }, /* (390) literal_func ::= NOW */ + { 410, -1 }, /* (391) noarg_func ::= NOW */ + { 410, -1 }, /* (392) noarg_func ::= TODAY */ + { 410, -1 }, /* (393) noarg_func ::= TIMEZONE */ + { 410, -1 }, /* (394) noarg_func ::= DATABASE */ + { 410, -1 }, /* (395) noarg_func ::= CLIENT_VERSION */ + { 410, -1 }, /* (396) noarg_func ::= SERVER_VERSION */ + { 410, -1 }, /* (397) noarg_func ::= SERVER_STATUS */ + { 410, -1 }, /* (398) noarg_func ::= CURRENT_USER */ + { 410, -1 }, /* (399) noarg_func ::= USER */ + { 408, -1 }, /* (400) star_func ::= COUNT */ + { 408, -1 }, /* (401) star_func ::= FIRST */ + { 408, -1 }, /* (402) star_func ::= LAST */ + { 408, -1 }, /* (403) star_func ::= LAST_ROW */ + { 409, -1 }, /* (404) star_func_para_list ::= NK_STAR */ + { 409, -1 }, /* (405) star_func_para_list ::= other_para_list */ + { 411, -1 }, /* (406) other_para_list ::= star_func_para */ + { 411, -3 }, /* (407) other_para_list ::= other_para_list NK_COMMA star_func_para */ + { 412, -1 }, /* (408) star_func_para ::= expr_or_subquery */ + { 412, -3 }, /* (409) star_func_para ::= table_name NK_DOT NK_STAR */ + { 407, -4 }, /* (410) case_when_expression ::= CASE when_then_list case_when_else_opt END */ + { 407, -5 }, /* (411) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + { 413, -1 }, /* (412) when_then_list ::= when_then_expr */ + { 413, -2 }, /* (413) when_then_list ::= when_then_list when_then_expr */ + { 416, -4 }, /* (414) when_then_expr ::= WHEN common_expression THEN common_expression */ + { 414, 0 }, /* (415) case_when_else_opt ::= */ + { 414, -2 }, /* (416) case_when_else_opt ::= ELSE common_expression */ + { 417, -3 }, /* (417) predicate ::= expr_or_subquery compare_op expr_or_subquery */ + { 417, -5 }, /* (418) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + { 417, -6 }, /* (419) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + { 417, -3 }, /* (420) predicate ::= expr_or_subquery IS NULL */ + { 417, -4 }, /* (421) predicate ::= expr_or_subquery IS NOT NULL */ + { 417, -3 }, /* (422) predicate ::= expr_or_subquery in_op in_predicate_value */ + { 418, -1 }, /* (423) compare_op ::= NK_LT */ + { 418, -1 }, /* (424) compare_op ::= NK_GT */ + { 418, -1 }, /* (425) compare_op ::= NK_LE */ + { 418, -1 }, /* (426) compare_op ::= NK_GE */ + { 418, -1 }, /* (427) compare_op ::= NK_NE */ + { 418, -1 }, /* (428) compare_op ::= NK_EQ */ + { 418, -1 }, /* (429) compare_op ::= LIKE */ + { 418, -2 }, /* (430) compare_op ::= NOT LIKE */ + { 418, -1 }, /* (431) compare_op ::= MATCH */ + { 418, -1 }, /* (432) compare_op ::= NMATCH */ + { 418, -1 }, /* (433) compare_op ::= CONTAINS */ + { 419, -1 }, /* (434) in_op ::= IN */ + { 419, -2 }, /* (435) in_op ::= NOT IN */ + { 420, -3 }, /* (436) in_predicate_value ::= NK_LP literal_list NK_RP */ + { 421, -1 }, /* (437) boolean_value_expression ::= boolean_primary */ + { 421, -2 }, /* (438) boolean_value_expression ::= NOT boolean_primary */ + { 421, -3 }, /* (439) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + { 421, -3 }, /* (440) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + { 422, -1 }, /* (441) boolean_primary ::= predicate */ + { 422, -3 }, /* (442) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ + { 415, -1 }, /* (443) common_expression ::= expr_or_subquery */ + { 415, -1 }, /* (444) common_expression ::= boolean_value_expression */ + { 423, 0 }, /* (445) from_clause_opt ::= */ + { 423, -2 }, /* (446) from_clause_opt ::= FROM table_reference_list */ + { 424, -1 }, /* (447) table_reference_list ::= table_reference */ + { 424, -3 }, /* (448) table_reference_list ::= table_reference_list NK_COMMA table_reference */ + { 425, -1 }, /* (449) table_reference ::= table_primary */ + { 425, -1 }, /* (450) table_reference ::= joined_table */ + { 426, -2 }, /* (451) table_primary ::= table_name alias_opt */ + { 426, -4 }, /* (452) table_primary ::= db_name NK_DOT table_name alias_opt */ + { 426, -2 }, /* (453) table_primary ::= subquery alias_opt */ + { 426, -1 }, /* (454) table_primary ::= parenthesized_joined_table */ + { 428, 0 }, /* (455) alias_opt ::= */ + { 428, -1 }, /* (456) alias_opt ::= table_alias */ + { 428, -2 }, /* (457) alias_opt ::= AS table_alias */ + { 430, -3 }, /* (458) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + { 430, -3 }, /* (459) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ + { 427, -6 }, /* (460) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ + { 431, 0 }, /* (461) join_type ::= */ + { 431, -1 }, /* (462) join_type ::= INNER */ + { 433, -12 }, /* (463) query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ + { 434, 0 }, /* (464) set_quantifier_opt ::= */ + { 434, -1 }, /* (465) set_quantifier_opt ::= DISTINCT */ + { 434, -1 }, /* (466) set_quantifier_opt ::= ALL */ + { 435, -1 }, /* (467) select_list ::= select_item */ + { 435, -3 }, /* (468) select_list ::= select_list NK_COMMA select_item */ + { 443, -1 }, /* (469) select_item ::= NK_STAR */ + { 443, -1 }, /* (470) select_item ::= common_expression */ + { 443, -2 }, /* (471) select_item ::= common_expression column_alias */ + { 443, -3 }, /* (472) select_item ::= common_expression AS column_alias */ + { 443, -3 }, /* (473) select_item ::= table_name NK_DOT NK_STAR */ + { 398, 0 }, /* (474) where_clause_opt ::= */ + { 398, -2 }, /* (475) where_clause_opt ::= WHERE search_condition */ + { 436, 0 }, /* (476) partition_by_clause_opt ::= */ + { 436, -3 }, /* (477) partition_by_clause_opt ::= PARTITION BY partition_list */ + { 444, -1 }, /* (478) partition_list ::= partition_item */ + { 444, -3 }, /* (479) partition_list ::= partition_list NK_COMMA partition_item */ + { 445, -1 }, /* (480) partition_item ::= expr_or_subquery */ + { 445, -2 }, /* (481) partition_item ::= expr_or_subquery column_alias */ + { 445, -3 }, /* (482) partition_item ::= expr_or_subquery AS column_alias */ + { 440, 0 }, /* (483) twindow_clause_opt ::= */ + { 440, -6 }, /* (484) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ + { 440, -4 }, /* (485) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + { 440, -6 }, /* (486) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ + { 440, -8 }, /* (487) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ + { 440, -7 }, /* (488) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + { 384, 0 }, /* (489) sliding_opt ::= */ + { 384, -4 }, /* (490) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ + { 439, 0 }, /* (491) fill_opt ::= */ + { 439, -4 }, /* (492) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + { 439, -6 }, /* (493) fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ + { 446, -1 }, /* (494) fill_mode ::= NONE */ + { 446, -1 }, /* (495) fill_mode ::= PREV */ + { 446, -1 }, /* (496) fill_mode ::= NULL */ + { 446, -1 }, /* (497) fill_mode ::= LINEAR */ + { 446, -1 }, /* (498) fill_mode ::= NEXT */ + { 441, 0 }, /* (499) group_by_clause_opt ::= */ + { 441, -3 }, /* (500) group_by_clause_opt ::= GROUP BY group_by_list */ + { 447, -1 }, /* (501) group_by_list ::= expr_or_subquery */ + { 447, -3 }, /* (502) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + { 442, 0 }, /* (503) having_clause_opt ::= */ + { 442, -2 }, /* (504) having_clause_opt ::= HAVING search_condition */ + { 437, 0 }, /* (505) range_opt ::= */ + { 437, -6 }, /* (506) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + { 438, 0 }, /* (507) every_opt ::= */ + { 438, -4 }, /* (508) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + { 448, -4 }, /* (509) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + { 449, -1 }, /* (510) query_simple ::= query_specification */ + { 449, -1 }, /* (511) query_simple ::= union_query_expression */ + { 453, -4 }, /* (512) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + { 453, -3 }, /* (513) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + { 454, -1 }, /* (514) query_simple_or_subquery ::= query_simple */ + { 454, -1 }, /* (515) query_simple_or_subquery ::= subquery */ + { 387, -1 }, /* (516) query_or_subquery ::= query_expression */ + { 387, -1 }, /* (517) query_or_subquery ::= subquery */ + { 450, 0 }, /* (518) order_by_clause_opt ::= */ + { 450, -3 }, /* (519) order_by_clause_opt ::= ORDER BY sort_specification_list */ + { 451, 0 }, /* (520) slimit_clause_opt ::= */ + { 451, -2 }, /* (521) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + { 451, -4 }, /* (522) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + { 451, -4 }, /* (523) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + { 452, 0 }, /* (524) limit_clause_opt ::= */ + { 452, -2 }, /* (525) limit_clause_opt ::= LIMIT NK_INTEGER */ + { 452, -4 }, /* (526) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + { 452, -4 }, /* (527) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + { 429, -3 }, /* (528) subquery ::= NK_LP query_expression NK_RP */ + { 429, -3 }, /* (529) subquery ::= NK_LP subquery NK_RP */ + { 432, -1 }, /* (530) search_condition ::= common_expression */ + { 455, -1 }, /* (531) sort_specification_list ::= sort_specification */ + { 455, -3 }, /* (532) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + { 456, -3 }, /* (533) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + { 457, 0 }, /* (534) ordering_specification_opt ::= */ + { 457, -1 }, /* (535) ordering_specification_opt ::= ASC */ + { 457, -1 }, /* (536) ordering_specification_opt ::= DESC */ + { 458, 0 }, /* (537) null_ordering_opt ::= */ + { 458, -2 }, /* (538) null_ordering_opt ::= NULLS FIRST */ + { 458, -2 }, /* (539) null_ordering_opt ::= NULLS LAST */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -3572,11 +3599,11 @@ static YYACTIONTYPE yy_reduce( YYMINORTYPE yylhsminor; case 0: /* cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } - yy_destructor(yypParser,323,&yymsp[0].minor); + yy_destructor(yypParser,325,&yymsp[0].minor); break; case 1: /* cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } - yy_destructor(yypParser,324,&yymsp[0].minor); + yy_destructor(yypParser,326,&yymsp[0].minor); break; case 2: /* account_options ::= */ { } @@ -3590,20 +3617,20 @@ static YYACTIONTYPE yy_reduce( case 9: /* account_options ::= account_options USERS literal */ yytestcase(yyruleno==9); case 10: /* account_options ::= account_options CONNS literal */ yytestcase(yyruleno==10); case 11: /* account_options ::= account_options STATE literal */ yytestcase(yyruleno==11); -{ yy_destructor(yypParser,323,&yymsp[-2].minor); +{ yy_destructor(yypParser,325,&yymsp[-2].minor); { } - yy_destructor(yypParser,325,&yymsp[0].minor); + yy_destructor(yypParser,327,&yymsp[0].minor); } break; case 12: /* alter_account_options ::= alter_account_option */ -{ yy_destructor(yypParser,326,&yymsp[0].minor); +{ yy_destructor(yypParser,328,&yymsp[0].minor); { } } break; case 13: /* alter_account_options ::= alter_account_options alter_account_option */ -{ yy_destructor(yypParser,324,&yymsp[-1].minor); +{ yy_destructor(yypParser,326,&yymsp[-1].minor); { } - yy_destructor(yypParser,326,&yymsp[0].minor); + yy_destructor(yypParser,328,&yymsp[0].minor); } break; case 14: /* alter_account_option ::= PASS literal */ @@ -3617,80 +3644,80 @@ static YYACTIONTYPE yy_reduce( case 22: /* alter_account_option ::= CONNS literal */ yytestcase(yyruleno==22); case 23: /* alter_account_option ::= STATE literal */ yytestcase(yyruleno==23); { } - yy_destructor(yypParser,325,&yymsp[0].minor); + yy_destructor(yypParser,327,&yymsp[0].minor); break; case 24: /* cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ -{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy199, &yymsp[-1].minor.yy0, yymsp[0].minor.yy33); } +{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy317, &yymsp[-1].minor.yy0, yymsp[0].minor.yy449); } break; case 25: /* cmd ::= ALTER USER user_name PASS NK_STRING */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy199, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy317, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } break; case 26: /* cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy199, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy317, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } break; case 27: /* cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy199, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy317, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } break; case 28: /* cmd ::= DROP USER user_name */ -{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy317); } break; case 29: /* sysinfo_opt ::= */ -{ yymsp[1].minor.yy33 = 1; } +{ yymsp[1].minor.yy449 = 1; } break; case 30: /* sysinfo_opt ::= SYSINFO NK_INTEGER */ -{ yymsp[-1].minor.yy33 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } +{ yymsp[-1].minor.yy449 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } break; case 31: /* cmd ::= GRANT privileges ON priv_level TO user_name */ -{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-4].minor.yy525, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-4].minor.yy531, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy317); } break; case 32: /* cmd ::= REVOKE privileges ON priv_level FROM user_name */ -{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-4].minor.yy525, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-4].minor.yy531, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy317); } break; case 33: /* privileges ::= ALL */ -{ yymsp[0].minor.yy525 = PRIVILEGE_TYPE_ALL; } +{ yymsp[0].minor.yy531 = PRIVILEGE_TYPE_ALL; } break; case 34: /* privileges ::= priv_type_list */ case 36: /* priv_type_list ::= priv_type */ yytestcase(yyruleno==36); -{ yylhsminor.yy525 = yymsp[0].minor.yy525; } - yymsp[0].minor.yy525 = yylhsminor.yy525; +{ yylhsminor.yy531 = yymsp[0].minor.yy531; } + yymsp[0].minor.yy531 = yylhsminor.yy531; break; case 35: /* privileges ::= SUBSCRIBE */ -{ yymsp[0].minor.yy525 = PRIVILEGE_TYPE_SUBSCRIBE; } +{ yymsp[0].minor.yy531 = PRIVILEGE_TYPE_SUBSCRIBE; } break; case 37: /* priv_type_list ::= priv_type_list NK_COMMA priv_type */ -{ yylhsminor.yy525 = yymsp[-2].minor.yy525 | yymsp[0].minor.yy525; } - yymsp[-2].minor.yy525 = yylhsminor.yy525; +{ yylhsminor.yy531 = yymsp[-2].minor.yy531 | yymsp[0].minor.yy531; } + yymsp[-2].minor.yy531 = yylhsminor.yy531; break; case 38: /* priv_type ::= READ */ -{ yymsp[0].minor.yy525 = PRIVILEGE_TYPE_READ; } +{ yymsp[0].minor.yy531 = PRIVILEGE_TYPE_READ; } break; case 39: /* priv_type ::= WRITE */ -{ yymsp[0].minor.yy525 = PRIVILEGE_TYPE_WRITE; } +{ yymsp[0].minor.yy531 = PRIVILEGE_TYPE_WRITE; } break; case 40: /* priv_level ::= NK_STAR NK_DOT NK_STAR */ -{ yylhsminor.yy199 = yymsp[-2].minor.yy0; } - yymsp[-2].minor.yy199 = yylhsminor.yy199; +{ yylhsminor.yy317 = yymsp[-2].minor.yy0; } + yymsp[-2].minor.yy317 = yylhsminor.yy317; break; case 41: /* priv_level ::= db_name NK_DOT NK_STAR */ -{ yylhsminor.yy199 = yymsp[-2].minor.yy199; } - yymsp[-2].minor.yy199 = yylhsminor.yy199; +{ yylhsminor.yy317 = yymsp[-2].minor.yy317; } + yymsp[-2].minor.yy317 = yylhsminor.yy317; break; case 42: /* priv_level ::= topic_name */ case 456: /* alias_opt ::= table_alias */ yytestcase(yyruleno==456); -{ yylhsminor.yy199 = yymsp[0].minor.yy199; } - yymsp[0].minor.yy199 = yylhsminor.yy199; +{ yylhsminor.yy317 = yymsp[0].minor.yy317; } + yymsp[0].minor.yy317 = yylhsminor.yy317; break; case 43: /* cmd ::= CREATE DNODE dnode_endpoint */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy199, NULL); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy317, NULL); } break; case 44: /* cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy0); } +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy0); } break; case 45: /* cmd ::= DROP DNODE NK_INTEGER force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy397); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy335); } break; case 46: /* cmd ::= DROP DNODE dnode_endpoint force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy199, yymsp[0].minor.yy397); } +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy317, yymsp[0].minor.yy335); } break; case 47: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, NULL); } @@ -3730,8 +3757,8 @@ static YYACTIONTYPE yy_reduce( case 401: /* star_func ::= FIRST */ yytestcase(yyruleno==401); case 402: /* star_func ::= LAST */ yytestcase(yyruleno==402); case 403: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==403); -{ yylhsminor.yy199 = yymsp[0].minor.yy0; } - yymsp[0].minor.yy199 = yylhsminor.yy199; +{ yylhsminor.yy317 = yymsp[0].minor.yy0; } + yymsp[0].minor.yy317 = yylhsminor.yy317; break; case 54: /* force_opt ::= */ case 73: /* not_exists_opt ::= */ yytestcase(yyruleno==73); @@ -3739,13 +3766,13 @@ static YYACTIONTYPE yy_reduce( case 283: /* analyze_opt ::= */ yytestcase(yyruleno==283); case 290: /* agg_func_opt ::= */ yytestcase(yyruleno==290); case 464: /* set_quantifier_opt ::= */ yytestcase(yyruleno==464); -{ yymsp[1].minor.yy397 = false; } +{ yymsp[1].minor.yy335 = false; } break; case 55: /* force_opt ::= FORCE */ case 284: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==284); case 291: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==291); case 465: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==465); -{ yymsp[0].minor.yy397 = true; } +{ yymsp[0].minor.yy335 = true; } break; case 56: /* cmd ::= ALTER LOCAL NK_STRING */ { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[0].minor.yy0, NULL); } @@ -3778,210 +3805,210 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_MNODE_STMT, &yymsp[0].minor.yy0); } break; case 66: /* cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ -{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy397, &yymsp[-1].minor.yy199, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy335, &yymsp[-1].minor.yy317, yymsp[0].minor.yy74); } break; case 67: /* cmd ::= DROP DATABASE exists_opt db_name */ -{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy397, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy335, &yymsp[0].minor.yy317); } break; case 68: /* cmd ::= USE db_name */ -{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy317); } break; case 69: /* cmd ::= ALTER DATABASE db_name alter_db_options */ -{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy199, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy317, yymsp[0].minor.yy74); } break; case 70: /* cmd ::= FLUSH DATABASE db_name */ -{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy317); } break; case 71: /* cmd ::= TRIM DATABASE db_name speed_opt */ -{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy199, yymsp[0].minor.yy706); } +{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy317, yymsp[0].minor.yy856); } break; case 72: /* not_exists_opt ::= IF NOT EXISTS */ -{ yymsp[-2].minor.yy397 = true; } +{ yymsp[-2].minor.yy335 = true; } break; case 74: /* exists_opt ::= IF EXISTS */ -{ yymsp[-1].minor.yy397 = true; } +{ yymsp[-1].minor.yy335 = true; } break; case 76: /* db_options ::= */ -{ yymsp[1].minor.yy148 = createDefaultDatabaseOptions(pCxt); } +{ yymsp[1].minor.yy74 = createDefaultDatabaseOptions(pCxt); } break; case 77: /* db_options ::= db_options BUFFER NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 78: /* db_options ::= db_options CACHEMODEL NK_STRING */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 79: /* db_options ::= db_options CACHESIZE NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 80: /* db_options ::= db_options COMP NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_COMP, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_COMP, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 81: /* db_options ::= db_options DURATION NK_INTEGER */ case 82: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==82); -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 83: /* db_options ::= db_options MAXROWS NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 84: /* db_options ::= db_options MINROWS NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 85: /* db_options ::= db_options KEEP integer_list */ case 86: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==86); -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_KEEP, yymsp[0].minor.yy404); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_KEEP, yymsp[0].minor.yy874); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 87: /* db_options ::= db_options PAGES NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 88: /* db_options ::= db_options PAGESIZE NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 89: /* db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 90: /* db_options ::= db_options PRECISION NK_STRING */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 91: /* db_options ::= db_options REPLICA NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 92: /* db_options ::= db_options STRICT NK_STRING */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_STRICT, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_STRICT, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 93: /* db_options ::= db_options VGROUPS NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 94: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 95: /* db_options ::= db_options RETENTIONS retention_list */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_RETENTIONS, yymsp[0].minor.yy404); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_RETENTIONS, yymsp[0].minor.yy874); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 96: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 97: /* db_options ::= db_options WAL_LEVEL NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_WAL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_WAL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 98: /* db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 99: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 100: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-3].minor.yy148, DB_OPTION_WAL_RETENTION_PERIOD, &t); + yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-3].minor.yy74, DB_OPTION_WAL_RETENTION_PERIOD, &t); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 101: /* db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 102: /* db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-3].minor.yy148, DB_OPTION_WAL_RETENTION_SIZE, &t); + yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-3].minor.yy74, DB_OPTION_WAL_RETENTION_SIZE, &t); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 103: /* db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 104: /* db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 105: /* db_options ::= db_options STT_TRIGGER NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 106: /* db_options ::= db_options TABLE_PREFIX NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_TABLE_PREFIX, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_TABLE_PREFIX, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 107: /* db_options ::= db_options TABLE_SUFFIX NK_INTEGER */ -{ yylhsminor.yy148 = setDatabaseOption(pCxt, yymsp[-2].minor.yy148, DB_OPTION_TABLE_SUFFIX, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setDatabaseOption(pCxt, yymsp[-2].minor.yy74, DB_OPTION_TABLE_SUFFIX, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 108: /* alter_db_options ::= alter_db_option */ -{ yylhsminor.yy148 = createAlterDatabaseOptions(pCxt); yylhsminor.yy148 = setAlterDatabaseOption(pCxt, yylhsminor.yy148, &yymsp[0].minor.yy123); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterDatabaseOptions(pCxt); yylhsminor.yy74 = setAlterDatabaseOption(pCxt, yylhsminor.yy74, &yymsp[0].minor.yy767); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 109: /* alter_db_options ::= alter_db_options alter_db_option */ -{ yylhsminor.yy148 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy148, &yymsp[0].minor.yy123); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy74, &yymsp[0].minor.yy767); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 110: /* alter_db_option ::= BUFFER NK_INTEGER */ -{ yymsp[-1].minor.yy123.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 111: /* alter_db_option ::= CACHEMODEL NK_STRING */ -{ yymsp[-1].minor.yy123.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 112: /* alter_db_option ::= CACHESIZE NK_INTEGER */ -{ yymsp[-1].minor.yy123.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 113: /* alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ -{ yymsp[-1].minor.yy123.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 114: /* alter_db_option ::= KEEP integer_list */ case 115: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==115); -{ yymsp[-1].minor.yy123.type = DB_OPTION_KEEP; yymsp[-1].minor.yy123.pList = yymsp[0].minor.yy404; } +{ yymsp[-1].minor.yy767.type = DB_OPTION_KEEP; yymsp[-1].minor.yy767.pList = yymsp[0].minor.yy874; } break; case 116: /* alter_db_option ::= PAGES NK_INTEGER */ -{ yymsp[-1].minor.yy123.type = DB_OPTION_PAGES; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = DB_OPTION_PAGES; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 117: /* alter_db_option ::= REPLICA NK_INTEGER */ -{ yymsp[-1].minor.yy123.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 118: /* alter_db_option ::= WAL_LEVEL NK_INTEGER */ -{ yymsp[-1].minor.yy123.type = DB_OPTION_WAL; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = DB_OPTION_WAL; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 119: /* alter_db_option ::= STT_TRIGGER NK_INTEGER */ -{ yymsp[-1].minor.yy123.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 120: /* integer_list ::= NK_INTEGER */ -{ yylhsminor.yy404 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy404 = yylhsminor.yy404; +{ yylhsminor.yy874 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy874 = yylhsminor.yy874; break; case 121: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ case 313: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==313); -{ yylhsminor.yy404 = addNodeToList(pCxt, yymsp[-2].minor.yy404, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy404 = yylhsminor.yy404; +{ yylhsminor.yy874 = addNodeToList(pCxt, yymsp[-2].minor.yy874, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy874 = yylhsminor.yy874; break; case 122: /* variable_list ::= NK_VARIABLE */ -{ yylhsminor.yy404 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy404 = yylhsminor.yy404; +{ yylhsminor.yy874 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy874 = yylhsminor.yy874; break; case 123: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ -{ yylhsminor.yy404 = addNodeToList(pCxt, yymsp[-2].minor.yy404, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy404 = yylhsminor.yy404; +{ yylhsminor.yy874 = addNodeToList(pCxt, yymsp[-2].minor.yy874, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy874 = yylhsminor.yy874; break; case 124: /* retention_list ::= retention */ case 146: /* multi_create_clause ::= create_subtable_clause */ yytestcase(yyruleno==146); @@ -3996,9 +4023,9 @@ static YYACTIONTYPE yy_reduce( case 412: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==412); case 467: /* select_list ::= select_item */ yytestcase(yyruleno==467); case 478: /* partition_list ::= partition_item */ yytestcase(yyruleno==478); - case 530: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==530); -{ yylhsminor.yy404 = createNodeList(pCxt, yymsp[0].minor.yy148); } - yymsp[0].minor.yy404 = yylhsminor.yy404; + case 531: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==531); +{ yylhsminor.yy874 = createNodeList(pCxt, yymsp[0].minor.yy74); } + yymsp[0].minor.yy874 = yylhsminor.yy874; break; case 125: /* retention_list ::= retention_list NK_COMMA retention */ case 157: /* column_def_list ::= column_def_list NK_COMMA column_def */ yytestcase(yyruleno==157); @@ -4010,267 +4037,267 @@ static YYACTIONTYPE yy_reduce( case 407: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==407); case 468: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==468); case 479: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==479); - case 531: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==531); -{ yylhsminor.yy404 = addNodeToList(pCxt, yymsp[-2].minor.yy404, yymsp[0].minor.yy148); } - yymsp[-2].minor.yy404 = yylhsminor.yy404; + case 532: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==532); +{ yylhsminor.yy874 = addNodeToList(pCxt, yymsp[-2].minor.yy874, yymsp[0].minor.yy74); } + yymsp[-2].minor.yy874 = yylhsminor.yy874; break; case 126: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ -{ yylhsminor.yy148 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 127: /* speed_opt ::= */ case 292: /* bufsize_opt ::= */ yytestcase(yyruleno==292); -{ yymsp[1].minor.yy706 = 0; } +{ yymsp[1].minor.yy856 = 0; } break; case 128: /* speed_opt ::= MAX_SPEED NK_INTEGER */ case 293: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==293); -{ yymsp[-1].minor.yy706 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } +{ yymsp[-1].minor.yy856 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } break; case 129: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ case 131: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==131); -{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy397, yymsp[-5].minor.yy148, yymsp[-3].minor.yy404, yymsp[-1].minor.yy404, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy335, yymsp[-5].minor.yy74, yymsp[-3].minor.yy874, yymsp[-1].minor.yy874, yymsp[0].minor.yy74); } break; case 130: /* cmd ::= CREATE TABLE multi_create_clause */ -{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy404); } +{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy874); } break; case 132: /* cmd ::= DROP TABLE multi_drop_clause */ -{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy404); } +{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy874); } break; case 133: /* cmd ::= DROP STABLE exists_opt full_table_name */ -{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy397, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy335, yymsp[0].minor.yy74); } break; case 134: /* cmd ::= ALTER TABLE alter_table_clause */ case 315: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==315); -{ pCxt->pRootNode = yymsp[0].minor.yy148; } +{ pCxt->pRootNode = yymsp[0].minor.yy74; } break; case 135: /* cmd ::= ALTER STABLE alter_table_clause */ -{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy148); } +{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy74); } break; case 136: /* alter_table_clause ::= full_table_name alter_table_options */ -{ yylhsminor.yy148 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy148, yymsp[0].minor.yy148); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy74, yymsp[0].minor.yy74); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 137: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ -{ yylhsminor.yy148 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy148, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy199, yymsp[0].minor.yy530); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy74, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy317, yymsp[0].minor.yy898); } + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 138: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ -{ yylhsminor.yy148 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy148, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy199); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy74, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy317); } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 139: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ -{ yylhsminor.yy148 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy148, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy199, yymsp[0].minor.yy530); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy74, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy317, yymsp[0].minor.yy898); } + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 140: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ -{ yylhsminor.yy148 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy148, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy199, &yymsp[0].minor.yy199); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy74, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy317, &yymsp[0].minor.yy317); } + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 141: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ -{ yylhsminor.yy148 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy148, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy199, yymsp[0].minor.yy530); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy74, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy317, yymsp[0].minor.yy898); } + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 142: /* alter_table_clause ::= full_table_name DROP TAG column_name */ -{ yylhsminor.yy148 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy148, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy199); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy74, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy317); } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 143: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ -{ yylhsminor.yy148 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy148, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy199, yymsp[0].minor.yy530); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy74, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy317, yymsp[0].minor.yy898); } + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 144: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ -{ yylhsminor.yy148 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy148, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy199, &yymsp[0].minor.yy199); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy74, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy317, &yymsp[0].minor.yy317); } + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 145: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ -{ yylhsminor.yy148 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy148, &yymsp[-2].minor.yy199, yymsp[0].minor.yy148); } - yymsp[-5].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy74, &yymsp[-2].minor.yy317, yymsp[0].minor.yy74); } + yymsp[-5].minor.yy74 = yylhsminor.yy74; break; case 147: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ case 150: /* multi_drop_clause ::= multi_drop_clause drop_table_clause */ yytestcase(yyruleno==150); case 413: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==413); -{ yylhsminor.yy404 = addNodeToList(pCxt, yymsp[-1].minor.yy404, yymsp[0].minor.yy148); } - yymsp[-1].minor.yy404 = yylhsminor.yy404; +{ yylhsminor.yy874 = addNodeToList(pCxt, yymsp[-1].minor.yy874, yymsp[0].minor.yy74); } + yymsp[-1].minor.yy874 = yylhsminor.yy874; break; case 148: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ -{ yylhsminor.yy148 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy397, yymsp[-8].minor.yy148, yymsp[-6].minor.yy148, yymsp[-5].minor.yy404, yymsp[-2].minor.yy404, yymsp[0].minor.yy148); } - yymsp[-9].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy335, yymsp[-8].minor.yy74, yymsp[-6].minor.yy74, yymsp[-5].minor.yy874, yymsp[-2].minor.yy874, yymsp[0].minor.yy74); } + yymsp[-9].minor.yy74 = yylhsminor.yy74; break; case 151: /* drop_table_clause ::= exists_opt full_table_name */ -{ yylhsminor.yy148 = createDropTableClause(pCxt, yymsp[-1].minor.yy397, yymsp[0].minor.yy148); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createDropTableClause(pCxt, yymsp[-1].minor.yy335, yymsp[0].minor.yy74); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 152: /* specific_cols_opt ::= */ case 183: /* tags_def_opt ::= */ yytestcase(yyruleno==183); case 253: /* tag_list_opt ::= */ yytestcase(yyruleno==253); case 476: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==476); - case 498: /* group_by_clause_opt ::= */ yytestcase(yyruleno==498); - case 517: /* order_by_clause_opt ::= */ yytestcase(yyruleno==517); -{ yymsp[1].minor.yy404 = NULL; } + case 499: /* group_by_clause_opt ::= */ yytestcase(yyruleno==499); + case 518: /* order_by_clause_opt ::= */ yytestcase(yyruleno==518); +{ yymsp[1].minor.yy874 = NULL; } break; case 153: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ -{ yymsp[-2].minor.yy404 = yymsp[-1].minor.yy404; } +{ yymsp[-2].minor.yy874 = yymsp[-1].minor.yy874; } break; case 154: /* full_table_name ::= table_name */ -{ yylhsminor.yy148 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy199, NULL); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy317, NULL); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 155: /* full_table_name ::= db_name NK_DOT table_name */ -{ yylhsminor.yy148 = createRealTableNode(pCxt, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy199, NULL); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRealTableNode(pCxt, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy317, NULL); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 158: /* column_def ::= column_name type_name */ -{ yylhsminor.yy148 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy199, yymsp[0].minor.yy530, NULL); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy317, yymsp[0].minor.yy898, NULL); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 159: /* column_def ::= column_name type_name COMMENT NK_STRING */ -{ yylhsminor.yy148 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy199, yymsp[-2].minor.yy530, &yymsp[0].minor.yy0); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createColumnDefNode(pCxt, &yymsp[-3].minor.yy317, yymsp[-2].minor.yy898, &yymsp[0].minor.yy0); } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 160: /* type_name ::= BOOL */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_BOOL); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_BOOL); } break; case 161: /* type_name ::= TINYINT */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_TINYINT); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_TINYINT); } break; case 162: /* type_name ::= SMALLINT */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_SMALLINT); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_SMALLINT); } break; case 163: /* type_name ::= INT */ case 164: /* type_name ::= INTEGER */ yytestcase(yyruleno==164); -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_INT); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_INT); } break; case 165: /* type_name ::= BIGINT */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_BIGINT); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_BIGINT); } break; case 166: /* type_name ::= FLOAT */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_FLOAT); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_FLOAT); } break; case 167: /* type_name ::= DOUBLE */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_DOUBLE); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_DOUBLE); } break; case 168: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy530 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy898 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } break; case 169: /* type_name ::= TIMESTAMP */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } break; case 170: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy530 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy898 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } break; case 171: /* type_name ::= TINYINT UNSIGNED */ -{ yymsp[-1].minor.yy530 = createDataType(TSDB_DATA_TYPE_UTINYINT); } +{ yymsp[-1].minor.yy898 = createDataType(TSDB_DATA_TYPE_UTINYINT); } break; case 172: /* type_name ::= SMALLINT UNSIGNED */ -{ yymsp[-1].minor.yy530 = createDataType(TSDB_DATA_TYPE_USMALLINT); } +{ yymsp[-1].minor.yy898 = createDataType(TSDB_DATA_TYPE_USMALLINT); } break; case 173: /* type_name ::= INT UNSIGNED */ -{ yymsp[-1].minor.yy530 = createDataType(TSDB_DATA_TYPE_UINT); } +{ yymsp[-1].minor.yy898 = createDataType(TSDB_DATA_TYPE_UINT); } break; case 174: /* type_name ::= BIGINT UNSIGNED */ -{ yymsp[-1].minor.yy530 = createDataType(TSDB_DATA_TYPE_UBIGINT); } +{ yymsp[-1].minor.yy898 = createDataType(TSDB_DATA_TYPE_UBIGINT); } break; case 175: /* type_name ::= JSON */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_JSON); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_JSON); } break; case 176: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy530 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy898 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } break; case 177: /* type_name ::= MEDIUMBLOB */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } break; case 178: /* type_name ::= BLOB */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_BLOB); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_BLOB); } break; case 179: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy530 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } +{ yymsp[-3].minor.yy898 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } break; case 180: /* type_name ::= DECIMAL */ -{ yymsp[0].minor.yy530 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +{ yymsp[0].minor.yy898 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 181: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy530 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +{ yymsp[-3].minor.yy898 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 182: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ -{ yymsp[-5].minor.yy530 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +{ yymsp[-5].minor.yy898 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 184: /* tags_def_opt ::= tags_def */ case 405: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==405); -{ yylhsminor.yy404 = yymsp[0].minor.yy404; } - yymsp[0].minor.yy404 = yylhsminor.yy404; +{ yylhsminor.yy874 = yymsp[0].minor.yy874; } + yymsp[0].minor.yy874 = yylhsminor.yy874; break; case 185: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ -{ yymsp[-3].minor.yy404 = yymsp[-1].minor.yy404; } +{ yymsp[-3].minor.yy874 = yymsp[-1].minor.yy874; } break; case 186: /* table_options ::= */ -{ yymsp[1].minor.yy148 = createDefaultTableOptions(pCxt); } +{ yymsp[1].minor.yy74 = createDefaultTableOptions(pCxt); } break; case 187: /* table_options ::= table_options COMMENT NK_STRING */ -{ yylhsminor.yy148 = setTableOption(pCxt, yymsp[-2].minor.yy148, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setTableOption(pCxt, yymsp[-2].minor.yy74, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 188: /* table_options ::= table_options MAX_DELAY duration_list */ -{ yylhsminor.yy148 = setTableOption(pCxt, yymsp[-2].minor.yy148, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy404); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setTableOption(pCxt, yymsp[-2].minor.yy74, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy874); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 189: /* table_options ::= table_options WATERMARK duration_list */ -{ yylhsminor.yy148 = setTableOption(pCxt, yymsp[-2].minor.yy148, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy404); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setTableOption(pCxt, yymsp[-2].minor.yy74, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy874); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 190: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ -{ yylhsminor.yy148 = setTableOption(pCxt, yymsp[-4].minor.yy148, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy404); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setTableOption(pCxt, yymsp[-4].minor.yy74, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy874); } + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 191: /* table_options ::= table_options TTL NK_INTEGER */ -{ yylhsminor.yy148 = setTableOption(pCxt, yymsp[-2].minor.yy148, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setTableOption(pCxt, yymsp[-2].minor.yy74, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 192: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ -{ yylhsminor.yy148 = setTableOption(pCxt, yymsp[-4].minor.yy148, TABLE_OPTION_SMA, yymsp[-1].minor.yy404); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setTableOption(pCxt, yymsp[-4].minor.yy74, TABLE_OPTION_SMA, yymsp[-1].minor.yy874); } + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 193: /* table_options ::= table_options DELETE_MARK duration_list */ -{ yylhsminor.yy148 = setTableOption(pCxt, yymsp[-2].minor.yy148, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy404); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setTableOption(pCxt, yymsp[-2].minor.yy74, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy874); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 194: /* alter_table_options ::= alter_table_option */ -{ yylhsminor.yy148 = createAlterTableOptions(pCxt); yylhsminor.yy148 = setTableOption(pCxt, yylhsminor.yy148, yymsp[0].minor.yy123.type, &yymsp[0].minor.yy123.val); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createAlterTableOptions(pCxt); yylhsminor.yy74 = setTableOption(pCxt, yylhsminor.yy74, yymsp[0].minor.yy767.type, &yymsp[0].minor.yy767.val); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 195: /* alter_table_options ::= alter_table_options alter_table_option */ -{ yylhsminor.yy148 = setTableOption(pCxt, yymsp[-1].minor.yy148, yymsp[0].minor.yy123.type, &yymsp[0].minor.yy123.val); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setTableOption(pCxt, yymsp[-1].minor.yy74, yymsp[0].minor.yy767.type, &yymsp[0].minor.yy767.val); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 196: /* alter_table_option ::= COMMENT NK_STRING */ -{ yymsp[-1].minor.yy123.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 197: /* alter_table_option ::= TTL NK_INTEGER */ -{ yymsp[-1].minor.yy123.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy123.val = yymsp[0].minor.yy0; } +{ yymsp[-1].minor.yy767.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy767.val = yymsp[0].minor.yy0; } break; case 198: /* duration_list ::= duration_literal */ case 370: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==370); -{ yylhsminor.yy404 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy148)); } - yymsp[0].minor.yy404 = yylhsminor.yy404; +{ yylhsminor.yy874 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy74)); } + yymsp[0].minor.yy874 = yylhsminor.yy874; break; case 199: /* duration_list ::= duration_list NK_COMMA duration_literal */ case 371: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==371); -{ yylhsminor.yy404 = addNodeToList(pCxt, yymsp[-2].minor.yy404, releaseRawExprNode(pCxt, yymsp[0].minor.yy148)); } - yymsp[-2].minor.yy404 = yylhsminor.yy404; +{ yylhsminor.yy874 = addNodeToList(pCxt, yymsp[-2].minor.yy874, releaseRawExprNode(pCxt, yymsp[0].minor.yy74)); } + yymsp[-2].minor.yy874 = yylhsminor.yy874; break; case 202: /* rollup_func_name ::= function_name */ -{ yylhsminor.yy148 = createFunctionNode(pCxt, &yymsp[0].minor.yy199, NULL); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createFunctionNode(pCxt, &yymsp[0].minor.yy317, NULL); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 203: /* rollup_func_name ::= FIRST */ case 204: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==204); case 257: /* tag_item ::= QTAGS */ yytestcase(yyruleno==257); -{ yylhsminor.yy148 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 207: /* col_name ::= column_name */ case 258: /* tag_item ::= column_name */ yytestcase(yyruleno==258); -{ yylhsminor.yy148 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy199); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy317); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 208: /* cmd ::= SHOW DNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } @@ -4285,13 +4312,13 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); } break; case 212: /* cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy148, yymsp[0].minor.yy148, OP_TYPE_LIKE); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy74, yymsp[0].minor.yy74, OP_TYPE_LIKE); } break; case 213: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy148, yymsp[0].minor.yy148, OP_TYPE_LIKE); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy74, yymsp[0].minor.yy74, OP_TYPE_LIKE); } break; case 214: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy148, NULL, OP_TYPE_LIKE); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy74, NULL, OP_TYPE_LIKE); } break; case 215: /* cmd ::= SHOW MNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } @@ -4303,7 +4330,7 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } break; case 218: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy148, yymsp[-1].minor.yy148, OP_TYPE_EQUAL); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy74, yymsp[-1].minor.yy74, OP_TYPE_EQUAL); } break; case 219: /* cmd ::= SHOW STREAMS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } @@ -4322,13 +4349,13 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); } break; case 225: /* cmd ::= SHOW CREATE DATABASE db_name */ -{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy317); } break; case 226: /* cmd ::= SHOW CREATE TABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy74); } break; case 227: /* cmd ::= SHOW CREATE STABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy74); } break; case 228: /* cmd ::= SHOW QUERIES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } @@ -4347,7 +4374,7 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } break; case 234: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy74); } break; case 235: /* cmd ::= SHOW BNODES */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } @@ -4362,7 +4389,7 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } break; case 239: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ -{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy74); } break; case 240: /* cmd ::= SHOW CONSUMERS */ { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } @@ -4371,10 +4398,10 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } break; case 242: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy148, yymsp[-1].minor.yy148, OP_TYPE_EQUAL); } +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy74, yymsp[-1].minor.yy74, OP_TYPE_EQUAL); } break; case 243: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy148, yymsp[0].minor.yy148, yymsp[-3].minor.yy404); } +{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy74, yymsp[0].minor.yy74, yymsp[-3].minor.yy874); } break; case 244: /* cmd ::= SHOW VNODES NK_INTEGER */ { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } @@ -4384,11 +4411,11 @@ static YYACTIONTYPE yy_reduce( break; case 246: /* db_name_cond_opt ::= */ case 251: /* from_db_opt ::= */ yytestcase(yyruleno==251); -{ yymsp[1].minor.yy148 = createDefaultDatabaseCondValue(pCxt); } +{ yymsp[1].minor.yy74 = createDefaultDatabaseCondValue(pCxt); } break; case 247: /* db_name_cond_opt ::= db_name NK_DOT */ -{ yylhsminor.yy148 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy199); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy317); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 248: /* like_pattern_opt ::= */ case 303: /* subtable_opt ::= */ yytestcase(yyruleno==303); @@ -4396,148 +4423,148 @@ static YYACTIONTYPE yy_reduce( case 445: /* from_clause_opt ::= */ yytestcase(yyruleno==445); case 474: /* where_clause_opt ::= */ yytestcase(yyruleno==474); case 483: /* twindow_clause_opt ::= */ yytestcase(yyruleno==483); - case 488: /* sliding_opt ::= */ yytestcase(yyruleno==488); - case 490: /* fill_opt ::= */ yytestcase(yyruleno==490); - case 502: /* having_clause_opt ::= */ yytestcase(yyruleno==502); - case 504: /* range_opt ::= */ yytestcase(yyruleno==504); - case 506: /* every_opt ::= */ yytestcase(yyruleno==506); - case 519: /* slimit_clause_opt ::= */ yytestcase(yyruleno==519); - case 523: /* limit_clause_opt ::= */ yytestcase(yyruleno==523); -{ yymsp[1].minor.yy148 = NULL; } + case 489: /* sliding_opt ::= */ yytestcase(yyruleno==489); + case 491: /* fill_opt ::= */ yytestcase(yyruleno==491); + case 503: /* having_clause_opt ::= */ yytestcase(yyruleno==503); + case 505: /* range_opt ::= */ yytestcase(yyruleno==505); + case 507: /* every_opt ::= */ yytestcase(yyruleno==507); + case 520: /* slimit_clause_opt ::= */ yytestcase(yyruleno==520); + case 524: /* limit_clause_opt ::= */ yytestcase(yyruleno==524); +{ yymsp[1].minor.yy74 = NULL; } break; case 249: /* like_pattern_opt ::= LIKE NK_STRING */ -{ yymsp[-1].minor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } break; case 250: /* table_name_cond ::= table_name */ -{ yylhsminor.yy148 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy199); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy317); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 252: /* from_db_opt ::= FROM db_name */ -{ yymsp[-1].minor.yy148 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy199); } +{ yymsp[-1].minor.yy74 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy317); } break; case 256: /* tag_item ::= TBNAME */ -{ yylhsminor.yy148 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 259: /* tag_item ::= column_name column_alias */ -{ yylhsminor.yy148 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy199), &yymsp[0].minor.yy199); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy317), &yymsp[0].minor.yy317); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 260: /* tag_item ::= column_name AS column_alias */ -{ yylhsminor.yy148 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy199), &yymsp[0].minor.yy199); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy317), &yymsp[0].minor.yy317); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 261: /* cmd ::= CREATE SMA INDEX not_exists_opt full_table_name ON full_table_name index_options */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy397, yymsp[-3].minor.yy148, yymsp[-1].minor.yy148, NULL, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy335, yymsp[-3].minor.yy74, yymsp[-1].minor.yy74, NULL, yymsp[0].minor.yy74); } break; case 262: /* cmd ::= DROP INDEX exists_opt full_table_name */ -{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy397, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy335, yymsp[0].minor.yy74); } break; case 263: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-9].minor.yy148 = createIndexOption(pCxt, yymsp[-7].minor.yy404, releaseRawExprNode(pCxt, yymsp[-3].minor.yy148), NULL, yymsp[-1].minor.yy148, yymsp[0].minor.yy148); } +{ yymsp[-9].minor.yy74 = createIndexOption(pCxt, yymsp[-7].minor.yy874, releaseRawExprNode(pCxt, yymsp[-3].minor.yy74), NULL, yymsp[-1].minor.yy74, yymsp[0].minor.yy74); } break; case 264: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-11].minor.yy148 = createIndexOption(pCxt, yymsp[-9].minor.yy404, releaseRawExprNode(pCxt, yymsp[-5].minor.yy148), releaseRawExprNode(pCxt, yymsp[-3].minor.yy148), yymsp[-1].minor.yy148, yymsp[0].minor.yy148); } +{ yymsp[-11].minor.yy74 = createIndexOption(pCxt, yymsp[-9].minor.yy874, releaseRawExprNode(pCxt, yymsp[-5].minor.yy74), releaseRawExprNode(pCxt, yymsp[-3].minor.yy74), yymsp[-1].minor.yy74, yymsp[0].minor.yy74); } break; case 267: /* func ::= function_name NK_LP expression_list NK_RP */ -{ yylhsminor.yy148 = createFunctionNode(pCxt, &yymsp[-3].minor.yy199, yymsp[-1].minor.yy404); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createFunctionNode(pCxt, &yymsp[-3].minor.yy317, yymsp[-1].minor.yy874); } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 268: /* sma_stream_opt ::= */ case 296: /* stream_options ::= */ yytestcase(yyruleno==296); -{ yymsp[1].minor.yy148 = createStreamOptions(pCxt); } +{ yymsp[1].minor.yy74 = createStreamOptions(pCxt); } break; case 269: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ case 300: /* stream_options ::= stream_options WATERMARK duration_literal */ yytestcase(yyruleno==300); -{ ((SStreamOptions*)yymsp[-2].minor.yy148)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy148); yylhsminor.yy148 = yymsp[-2].minor.yy148; } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ ((SStreamOptions*)yymsp[-2].minor.yy74)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy74); yylhsminor.yy74 = yymsp[-2].minor.yy74; } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 270: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy148)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy148); yylhsminor.yy148 = yymsp[-2].minor.yy148; } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ ((SStreamOptions*)yymsp[-2].minor.yy74)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy74); yylhsminor.yy74 = yymsp[-2].minor.yy74; } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 271: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy148)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy148); yylhsminor.yy148 = yymsp[-2].minor.yy148; } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ ((SStreamOptions*)yymsp[-2].minor.yy74)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy74); yylhsminor.yy74 = yymsp[-2].minor.yy74; } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 272: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ -{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy397, &yymsp[-2].minor.yy199, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy335, &yymsp[-2].minor.yy317, yymsp[0].minor.yy74); } break; case 273: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy397, &yymsp[-3].minor.yy199, &yymsp[0].minor.yy199, false); } +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy335, &yymsp[-3].minor.yy317, &yymsp[0].minor.yy317, false); } break; case 274: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-6].minor.yy397, &yymsp[-5].minor.yy199, &yymsp[0].minor.yy199, true); } +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-6].minor.yy335, &yymsp[-5].minor.yy317, &yymsp[0].minor.yy317, true); } break; case 275: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS STABLE full_table_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-4].minor.yy397, &yymsp[-3].minor.yy199, yymsp[0].minor.yy148, false); } +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-4].minor.yy335, &yymsp[-3].minor.yy317, yymsp[0].minor.yy74, false); } break; case 276: /* cmd ::= CREATE TOPIC not_exists_opt topic_name WITH META AS STABLE full_table_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-6].minor.yy397, &yymsp[-5].minor.yy199, yymsp[0].minor.yy148, true); } +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-6].minor.yy335, &yymsp[-5].minor.yy317, yymsp[0].minor.yy74, true); } break; case 277: /* cmd ::= DROP TOPIC exists_opt topic_name */ -{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy397, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy335, &yymsp[0].minor.yy317); } break; case 278: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ -{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy397, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy335, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy317); } break; case 279: /* cmd ::= DESC full_table_name */ case 280: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==280); -{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy74); } break; case 281: /* cmd ::= RESET QUERY CACHE */ { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } break; case 282: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ -{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy397, yymsp[-1].minor.yy148, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy335, yymsp[-1].minor.yy74, yymsp[0].minor.yy74); } break; case 285: /* explain_options ::= */ -{ yymsp[1].minor.yy148 = createDefaultExplainOptions(pCxt); } +{ yymsp[1].minor.yy74 = createDefaultExplainOptions(pCxt); } break; case 286: /* explain_options ::= explain_options VERBOSE NK_BOOL */ -{ yylhsminor.yy148 = setExplainVerbose(pCxt, yymsp[-2].minor.yy148, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setExplainVerbose(pCxt, yymsp[-2].minor.yy74, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 287: /* explain_options ::= explain_options RATIO NK_FLOAT */ -{ yylhsminor.yy148 = setExplainRatio(pCxt, yymsp[-2].minor.yy148, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setExplainRatio(pCxt, yymsp[-2].minor.yy74, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 288: /* cmd ::= CREATE agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt */ -{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-6].minor.yy397, yymsp[-8].minor.yy397, &yymsp[-5].minor.yy199, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy530, yymsp[0].minor.yy706); } +{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-6].minor.yy335, yymsp[-8].minor.yy335, &yymsp[-5].minor.yy317, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy898, yymsp[0].minor.yy856); } break; case 289: /* cmd ::= DROP FUNCTION exists_opt function_name */ -{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy397, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy335, &yymsp[0].minor.yy317); } break; case 294: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name tags_def_opt subtable_opt AS query_or_subquery */ -{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-8].minor.yy397, &yymsp[-7].minor.yy199, yymsp[-4].minor.yy148, yymsp[-6].minor.yy148, yymsp[-3].minor.yy404, yymsp[-2].minor.yy148, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-8].minor.yy335, &yymsp[-7].minor.yy317, yymsp[-4].minor.yy74, yymsp[-6].minor.yy74, yymsp[-3].minor.yy874, yymsp[-2].minor.yy74, yymsp[0].minor.yy74); } break; case 295: /* cmd ::= DROP STREAM exists_opt stream_name */ -{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy397, &yymsp[0].minor.yy199); } +{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy335, &yymsp[0].minor.yy317); } break; case 297: /* stream_options ::= stream_options TRIGGER AT_ONCE */ -{ ((SStreamOptions*)yymsp[-2].minor.yy148)->triggerType = STREAM_TRIGGER_AT_ONCE; yylhsminor.yy148 = yymsp[-2].minor.yy148; } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ ((SStreamOptions*)yymsp[-2].minor.yy74)->triggerType = STREAM_TRIGGER_AT_ONCE; yylhsminor.yy74 = yymsp[-2].minor.yy74; } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 298: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ -{ ((SStreamOptions*)yymsp[-2].minor.yy148)->triggerType = STREAM_TRIGGER_WINDOW_CLOSE; yylhsminor.yy148 = yymsp[-2].minor.yy148; } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ ((SStreamOptions*)yymsp[-2].minor.yy74)->triggerType = STREAM_TRIGGER_WINDOW_CLOSE; yylhsminor.yy74 = yymsp[-2].minor.yy74; } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 299: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ -{ ((SStreamOptions*)yymsp[-3].minor.yy148)->triggerType = STREAM_TRIGGER_MAX_DELAY; ((SStreamOptions*)yymsp[-3].minor.yy148)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy148); yylhsminor.yy148 = yymsp[-3].minor.yy148; } - yymsp[-3].minor.yy148 = yylhsminor.yy148; +{ ((SStreamOptions*)yymsp[-3].minor.yy74)->triggerType = STREAM_TRIGGER_MAX_DELAY; ((SStreamOptions*)yymsp[-3].minor.yy74)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy74); yylhsminor.yy74 = yymsp[-3].minor.yy74; } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 301: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ -{ ((SStreamOptions*)yymsp[-3].minor.yy148)->ignoreExpired = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy148 = yymsp[-3].minor.yy148; } - yymsp[-3].minor.yy148 = yylhsminor.yy148; +{ ((SStreamOptions*)yymsp[-3].minor.yy74)->ignoreExpired = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy74 = yymsp[-3].minor.yy74; } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 302: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ -{ ((SStreamOptions*)yymsp[-2].minor.yy148)->fillHistory = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy148 = yymsp[-2].minor.yy148; } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ ((SStreamOptions*)yymsp[-2].minor.yy74)->fillHistory = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy74 = yymsp[-2].minor.yy74; } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 304: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 489: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==489); - case 507: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==507); -{ yymsp[-3].minor.yy148 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy148); } + case 490: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==490); + case 508: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==508); +{ yymsp[-3].minor.yy74 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy74); } break; case 305: /* cmd ::= KILL CONNECTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } @@ -4555,42 +4582,42 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; case 310: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ -{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy404); } +{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy874); } break; case 311: /* cmd ::= SPLIT VGROUP NK_INTEGER */ { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } break; case 312: /* dnode_list ::= DNODE NK_INTEGER */ -{ yymsp[-1].minor.yy404 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } +{ yymsp[-1].minor.yy874 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } break; case 314: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ -{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy148, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy74, yymsp[0].minor.yy74); } break; case 316: /* cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ -{ pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-4].minor.yy148, yymsp[-2].minor.yy404, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-4].minor.yy74, yymsp[-2].minor.yy874, yymsp[0].minor.yy74); } break; case 317: /* cmd ::= INSERT INTO full_table_name query_or_subquery */ -{ pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-1].minor.yy148, NULL, yymsp[0].minor.yy148); } +{ pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-1].minor.yy74, NULL, yymsp[0].minor.yy74); } break; case 318: /* literal ::= NK_INTEGER */ -{ yylhsminor.yy148 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 319: /* literal ::= NK_FLOAT */ -{ yylhsminor.yy148 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 320: /* literal ::= NK_STRING */ -{ yylhsminor.yy148 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 321: /* literal ::= NK_BOOL */ -{ yylhsminor.yy148 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 322: /* literal ::= TIMESTAMP NK_STRING */ -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 323: /* literal ::= duration_literal */ case 333: /* signed_literal ::= signed */ yytestcase(yyruleno==333); @@ -4609,175 +4636,175 @@ static YYACTIONTYPE yy_reduce( case 449: /* table_reference ::= table_primary */ yytestcase(yyruleno==449); case 450: /* table_reference ::= joined_table */ yytestcase(yyruleno==450); case 454: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==454); - case 509: /* query_simple ::= query_specification */ yytestcase(yyruleno==509); - case 510: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==510); - case 513: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==513); - case 515: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==515); -{ yylhsminor.yy148 = yymsp[0].minor.yy148; } - yymsp[0].minor.yy148 = yylhsminor.yy148; + case 510: /* query_simple ::= query_specification */ yytestcase(yyruleno==510); + case 511: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==511); + case 514: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==514); + case 516: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==516); +{ yylhsminor.yy74 = yymsp[0].minor.yy74; } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 324: /* literal ::= NULL */ -{ yylhsminor.yy148 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 325: /* literal ::= NK_QUESTION */ -{ yylhsminor.yy148 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 326: /* duration_literal ::= NK_VARIABLE */ -{ yylhsminor.yy148 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 327: /* signed ::= NK_INTEGER */ -{ yylhsminor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 328: /* signed ::= NK_PLUS NK_INTEGER */ -{ yymsp[-1].minor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } break; case 329: /* signed ::= NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); + yylhsminor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 330: /* signed ::= NK_FLOAT */ -{ yylhsminor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 331: /* signed ::= NK_PLUS NK_FLOAT */ -{ yymsp[-1].minor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } break; case 332: /* signed ::= NK_MINUS NK_FLOAT */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; - yylhsminor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); + yylhsminor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 334: /* signed_literal ::= NK_STRING */ -{ yylhsminor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 335: /* signed_literal ::= NK_BOOL */ -{ yylhsminor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 336: /* signed_literal ::= TIMESTAMP NK_STRING */ -{ yymsp[-1].minor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +{ yymsp[-1].minor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } break; case 337: /* signed_literal ::= duration_literal */ case 339: /* signed_literal ::= literal_func */ yytestcase(yyruleno==339); case 408: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==408); case 470: /* select_item ::= common_expression */ yytestcase(yyruleno==470); case 480: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==480); - case 514: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==514); - case 516: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==516); - case 529: /* search_condition ::= common_expression */ yytestcase(yyruleno==529); -{ yylhsminor.yy148 = releaseRawExprNode(pCxt, yymsp[0].minor.yy148); } - yymsp[0].minor.yy148 = yylhsminor.yy148; + case 515: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==515); + case 517: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==517); + case 530: /* search_condition ::= common_expression */ yytestcase(yyruleno==530); +{ yylhsminor.yy74 = releaseRawExprNode(pCxt, yymsp[0].minor.yy74); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 338: /* signed_literal ::= NULL */ -{ yylhsminor.yy148 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 340: /* signed_literal ::= NK_QUESTION */ -{ yylhsminor.yy148 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 359: /* expression ::= NK_LP expression NK_RP */ case 442: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==442); - case 528: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==528); -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy148)); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + case 529: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==529); +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy74)); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 360: /* expression ::= NK_PLUS expr_or_subquery */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy148)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy74)); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 361: /* expression ::= NK_MINUS expr_or_subquery */ { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy148), NULL)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy74), NULL)); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 362: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 363: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 364: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 365: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 366: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 367: /* expression ::= column_reference NK_ARROW NK_STRING */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 368: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 369: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 372: /* column_reference ::= column_name */ -{ yylhsminor.yy148 = createRawExprNode(pCxt, &yymsp[0].minor.yy199, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy199)); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNode(pCxt, &yymsp[0].minor.yy317, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy317)); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 373: /* column_reference ::= table_name NK_DOT column_name */ -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy199, createColumnNode(pCxt, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy199)); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy317, createColumnNode(pCxt, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy317)); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 374: /* pseudo_column ::= ROWTS */ case 375: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==375); @@ -4790,87 +4817,87 @@ static YYACTIONTYPE yy_reduce( case 383: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==383); case 384: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==384); case 390: /* literal_func ::= NOW */ yytestcase(yyruleno==390); -{ yylhsminor.yy148 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 376: /* pseudo_column ::= table_name NK_DOT TBNAME */ -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy199)))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy317)))); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 385: /* function_expression ::= function_name NK_LP expression_list NK_RP */ case 386: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==386); -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy199, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy199, yymsp[-1].minor.yy404)); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy317, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy317, yymsp[-1].minor.yy874)); } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 387: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy148), yymsp[-1].minor.yy530)); } - yymsp[-5].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy74), yymsp[-1].minor.yy898)); } + yymsp[-5].minor.yy74 = yylhsminor.yy74; break; case 389: /* literal_func ::= noarg_func NK_LP NK_RP */ -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy199, NULL)); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy317, NULL)); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 404: /* star_func_para_list ::= NK_STAR */ -{ yylhsminor.yy404 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy404 = yylhsminor.yy404; +{ yylhsminor.yy874 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } + yymsp[0].minor.yy874 = yylhsminor.yy874; break; case 409: /* star_func_para ::= table_name NK_DOT NK_STAR */ case 473: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==473); -{ yylhsminor.yy148 = createColumnNode(pCxt, &yymsp[-2].minor.yy199, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createColumnNode(pCxt, &yymsp[-2].minor.yy317, &yymsp[0].minor.yy0); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 410: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy404, yymsp[-1].minor.yy148)); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy874, yymsp[-1].minor.yy74)); } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 411: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy148), yymsp[-2].minor.yy404, yymsp[-1].minor.yy148)); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy74), yymsp[-2].minor.yy874, yymsp[-1].minor.yy74)); } + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 414: /* when_then_expr ::= WHEN common_expression THEN common_expression */ -{ yymsp[-3].minor.yy148 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148)); } +{ yymsp[-3].minor.yy74 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74)); } break; case 416: /* case_when_else_opt ::= ELSE common_expression */ -{ yymsp[-1].minor.yy148 = releaseRawExprNode(pCxt, yymsp[0].minor.yy148); } +{ yymsp[-1].minor.yy74 = releaseRawExprNode(pCxt, yymsp[0].minor.yy74); } break; case 417: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ case 422: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==422); { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy20, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy20, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 418: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy148), releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy74), releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-4].minor.yy148 = yylhsminor.yy148; + yymsp[-4].minor.yy74 = yylhsminor.yy74; break; case 419: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy148), releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy74), releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-5].minor.yy148 = yylhsminor.yy148; + yymsp[-5].minor.yy74 = yylhsminor.yy74; break; case 420: /* predicate ::= expr_or_subquery IS NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), NULL)); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 421: /* predicate ::= expr_or_subquery IS NOT NULL */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy148), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy74), NULL)); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 423: /* compare_op ::= NK_LT */ { yymsp[0].minor.yy20 = OP_TYPE_LOWER_THAN; } @@ -4912,205 +4939,208 @@ static YYACTIONTYPE yy_reduce( { yymsp[-1].minor.yy20 = OP_TYPE_NOT_IN; } break; case 436: /* in_predicate_value ::= NK_LP literal_list NK_RP */ -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy404)); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy874)); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 438: /* boolean_value_expression ::= NOT boolean_primary */ { - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy148), NULL)); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy74), NULL)); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 439: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 440: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy148); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy148); - yylhsminor.yy148 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy74); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy74); + yylhsminor.yy74 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 446: /* from_clause_opt ::= FROM table_reference_list */ case 475: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==475); - case 503: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==503); -{ yymsp[-1].minor.yy148 = yymsp[0].minor.yy148; } + case 504: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==504); +{ yymsp[-1].minor.yy74 = yymsp[0].minor.yy74; } break; case 448: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ -{ yylhsminor.yy148 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy148, yymsp[0].minor.yy148, NULL); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy74, yymsp[0].minor.yy74, NULL); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 451: /* table_primary ::= table_name alias_opt */ -{ yylhsminor.yy148 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy199, &yymsp[0].minor.yy199); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy317, &yymsp[0].minor.yy317); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 452: /* table_primary ::= db_name NK_DOT table_name alias_opt */ -{ yylhsminor.yy148 = createRealTableNode(pCxt, &yymsp[-3].minor.yy199, &yymsp[-1].minor.yy199, &yymsp[0].minor.yy199); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createRealTableNode(pCxt, &yymsp[-3].minor.yy317, &yymsp[-1].minor.yy317, &yymsp[0].minor.yy317); } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; case 453: /* table_primary ::= subquery alias_opt */ -{ yylhsminor.yy148 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy148), &yymsp[0].minor.yy199); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy74), &yymsp[0].minor.yy317); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 455: /* alias_opt ::= */ -{ yymsp[1].minor.yy199 = nil_token; } +{ yymsp[1].minor.yy317 = nil_token; } break; case 457: /* alias_opt ::= AS table_alias */ -{ yymsp[-1].minor.yy199 = yymsp[0].minor.yy199; } +{ yymsp[-1].minor.yy317 = yymsp[0].minor.yy317; } break; case 458: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ case 459: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==459); -{ yymsp[-2].minor.yy148 = yymsp[-1].minor.yy148; } +{ yymsp[-2].minor.yy74 = yymsp[-1].minor.yy74; } break; case 460: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ -{ yylhsminor.yy148 = createJoinTableNode(pCxt, yymsp[-4].minor.yy470, yymsp[-5].minor.yy148, yymsp[-2].minor.yy148, yymsp[0].minor.yy148); } - yymsp[-5].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createJoinTableNode(pCxt, yymsp[-4].minor.yy630, yymsp[-5].minor.yy74, yymsp[-2].minor.yy74, yymsp[0].minor.yy74); } + yymsp[-5].minor.yy74 = yylhsminor.yy74; break; case 461: /* join_type ::= */ -{ yymsp[1].minor.yy470 = JOIN_TYPE_INNER; } +{ yymsp[1].minor.yy630 = JOIN_TYPE_INNER; } break; case 462: /* join_type ::= INNER */ -{ yymsp[0].minor.yy470 = JOIN_TYPE_INNER; } +{ yymsp[0].minor.yy630 = JOIN_TYPE_INNER; } break; case 463: /* query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ { - yymsp[-11].minor.yy148 = createSelectStmt(pCxt, yymsp[-10].minor.yy397, yymsp[-9].minor.yy404, yymsp[-8].minor.yy148); - yymsp[-11].minor.yy148 = addWhereClause(pCxt, yymsp[-11].minor.yy148, yymsp[-7].minor.yy148); - yymsp[-11].minor.yy148 = addPartitionByClause(pCxt, yymsp[-11].minor.yy148, yymsp[-6].minor.yy404); - yymsp[-11].minor.yy148 = addWindowClauseClause(pCxt, yymsp[-11].minor.yy148, yymsp[-2].minor.yy148); - yymsp[-11].minor.yy148 = addGroupByClause(pCxt, yymsp[-11].minor.yy148, yymsp[-1].minor.yy404); - yymsp[-11].minor.yy148 = addHavingClause(pCxt, yymsp[-11].minor.yy148, yymsp[0].minor.yy148); - yymsp[-11].minor.yy148 = addRangeClause(pCxt, yymsp[-11].minor.yy148, yymsp[-5].minor.yy148); - yymsp[-11].minor.yy148 = addEveryClause(pCxt, yymsp[-11].minor.yy148, yymsp[-4].minor.yy148); - yymsp[-11].minor.yy148 = addFillClause(pCxt, yymsp[-11].minor.yy148, yymsp[-3].minor.yy148); + yymsp[-11].minor.yy74 = createSelectStmt(pCxt, yymsp[-10].minor.yy335, yymsp[-9].minor.yy874, yymsp[-8].minor.yy74); + yymsp[-11].minor.yy74 = addWhereClause(pCxt, yymsp[-11].minor.yy74, yymsp[-7].minor.yy74); + yymsp[-11].minor.yy74 = addPartitionByClause(pCxt, yymsp[-11].minor.yy74, yymsp[-6].minor.yy874); + yymsp[-11].minor.yy74 = addWindowClauseClause(pCxt, yymsp[-11].minor.yy74, yymsp[-2].minor.yy74); + yymsp[-11].minor.yy74 = addGroupByClause(pCxt, yymsp[-11].minor.yy74, yymsp[-1].minor.yy874); + yymsp[-11].minor.yy74 = addHavingClause(pCxt, yymsp[-11].minor.yy74, yymsp[0].minor.yy74); + yymsp[-11].minor.yy74 = addRangeClause(pCxt, yymsp[-11].minor.yy74, yymsp[-5].minor.yy74); + yymsp[-11].minor.yy74 = addEveryClause(pCxt, yymsp[-11].minor.yy74, yymsp[-4].minor.yy74); + yymsp[-11].minor.yy74 = addFillClause(pCxt, yymsp[-11].minor.yy74, yymsp[-3].minor.yy74); } break; case 466: /* set_quantifier_opt ::= ALL */ -{ yymsp[0].minor.yy397 = false; } +{ yymsp[0].minor.yy335 = false; } break; case 469: /* select_item ::= NK_STAR */ -{ yylhsminor.yy148 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } + yymsp[0].minor.yy74 = yylhsminor.yy74; break; case 471: /* select_item ::= common_expression column_alias */ case 481: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==481); -{ yylhsminor.yy148 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy148), &yymsp[0].minor.yy199); } - yymsp[-1].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy74), &yymsp[0].minor.yy317); } + yymsp[-1].minor.yy74 = yylhsminor.yy74; break; case 472: /* select_item ::= common_expression AS column_alias */ case 482: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==482); -{ yylhsminor.yy148 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), &yymsp[0].minor.yy199); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; +{ yylhsminor.yy74 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), &yymsp[0].minor.yy317); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; case 477: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 499: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==499); - case 518: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==518); -{ yymsp[-2].minor.yy404 = yymsp[0].minor.yy404; } + case 500: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==500); + case 519: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==519); +{ yymsp[-2].minor.yy874 = yymsp[0].minor.yy874; } break; case 484: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ -{ yymsp[-5].minor.yy148 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy148), releaseRawExprNode(pCxt, yymsp[-1].minor.yy148)); } +{ yymsp[-5].minor.yy74 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy74), releaseRawExprNode(pCxt, yymsp[-1].minor.yy74)); } break; case 485: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ -{ yymsp[-3].minor.yy148 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy148)); } +{ yymsp[-3].minor.yy74 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy74)); } break; case 486: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-5].minor.yy148 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy148), NULL, yymsp[-1].minor.yy148, yymsp[0].minor.yy148); } +{ yymsp[-5].minor.yy74 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy74), NULL, yymsp[-1].minor.yy74, yymsp[0].minor.yy74); } break; case 487: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-7].minor.yy148 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy148), releaseRawExprNode(pCxt, yymsp[-3].minor.yy148), yymsp[-1].minor.yy148, yymsp[0].minor.yy148); } +{ yymsp[-7].minor.yy74 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy74), releaseRawExprNode(pCxt, yymsp[-3].minor.yy74), yymsp[-1].minor.yy74, yymsp[0].minor.yy74); } break; - case 491: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ -{ yymsp[-3].minor.yy148 = createFillNode(pCxt, yymsp[-1].minor.yy334, NULL); } + case 488: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ +{ yymsp[-6].minor.yy74 = createEventWindowNode(pCxt, yymsp[-3].minor.yy74, yymsp[0].minor.yy74); } break; - case 492: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ -{ yymsp[-5].minor.yy148 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy404)); } + case 492: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ +{ yymsp[-3].minor.yy74 = createFillNode(pCxt, yymsp[-1].minor.yy828, NULL); } break; - case 493: /* fill_mode ::= NONE */ -{ yymsp[0].minor.yy334 = FILL_MODE_NONE; } + case 493: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ +{ yymsp[-5].minor.yy74 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy874)); } break; - case 494: /* fill_mode ::= PREV */ -{ yymsp[0].minor.yy334 = FILL_MODE_PREV; } + case 494: /* fill_mode ::= NONE */ +{ yymsp[0].minor.yy828 = FILL_MODE_NONE; } break; - case 495: /* fill_mode ::= NULL */ -{ yymsp[0].minor.yy334 = FILL_MODE_NULL; } + case 495: /* fill_mode ::= PREV */ +{ yymsp[0].minor.yy828 = FILL_MODE_PREV; } break; - case 496: /* fill_mode ::= LINEAR */ -{ yymsp[0].minor.yy334 = FILL_MODE_LINEAR; } + case 496: /* fill_mode ::= NULL */ +{ yymsp[0].minor.yy828 = FILL_MODE_NULL; } break; - case 497: /* fill_mode ::= NEXT */ -{ yymsp[0].minor.yy334 = FILL_MODE_NEXT; } + case 497: /* fill_mode ::= LINEAR */ +{ yymsp[0].minor.yy828 = FILL_MODE_LINEAR; } break; - case 500: /* group_by_list ::= expr_or_subquery */ -{ yylhsminor.yy404 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); } - yymsp[0].minor.yy404 = yylhsminor.yy404; + case 498: /* fill_mode ::= NEXT */ +{ yymsp[0].minor.yy828 = FILL_MODE_NEXT; } break; - case 501: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ -{ yylhsminor.yy404 = addNodeToList(pCxt, yymsp[-2].minor.yy404, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy148))); } - yymsp[-2].minor.yy404 = yylhsminor.yy404; + case 501: /* group_by_list ::= expr_or_subquery */ +{ yylhsminor.yy874 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } + yymsp[0].minor.yy874 = yylhsminor.yy874; break; - case 505: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ -{ yymsp[-5].minor.yy148 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy148), releaseRawExprNode(pCxt, yymsp[-1].minor.yy148)); } + case 502: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ +{ yylhsminor.yy874 = addNodeToList(pCxt, yymsp[-2].minor.yy874, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy74))); } + yymsp[-2].minor.yy874 = yylhsminor.yy874; break; - case 508: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + case 506: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ +{ yymsp[-5].minor.yy74 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy74), releaseRawExprNode(pCxt, yymsp[-1].minor.yy74)); } + break; + case 509: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ { - yylhsminor.yy148 = addOrderByClause(pCxt, yymsp[-3].minor.yy148, yymsp[-2].minor.yy404); - yylhsminor.yy148 = addSlimitClause(pCxt, yylhsminor.yy148, yymsp[-1].minor.yy148); - yylhsminor.yy148 = addLimitClause(pCxt, yylhsminor.yy148, yymsp[0].minor.yy148); + yylhsminor.yy74 = addOrderByClause(pCxt, yymsp[-3].minor.yy74, yymsp[-2].minor.yy874); + yylhsminor.yy74 = addSlimitClause(pCxt, yylhsminor.yy74, yymsp[-1].minor.yy74); + yylhsminor.yy74 = addLimitClause(pCxt, yylhsminor.yy74, yymsp[0].minor.yy74); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; - case 511: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ -{ yylhsminor.yy148 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy148, yymsp[0].minor.yy148); } - yymsp[-3].minor.yy148 = yylhsminor.yy148; + case 512: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ +{ yylhsminor.yy74 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy74, yymsp[0].minor.yy74); } + yymsp[-3].minor.yy74 = yylhsminor.yy74; break; - case 512: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ -{ yylhsminor.yy148 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy148, yymsp[0].minor.yy148); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + case 513: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ +{ yylhsminor.yy74 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy74, yymsp[0].minor.yy74); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; - case 520: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ - case 524: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==524); -{ yymsp[-1].minor.yy148 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } + case 521: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ + case 525: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==525); +{ yymsp[-1].minor.yy74 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } break; - case 521: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 525: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==525); -{ yymsp[-3].minor.yy148 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } + case 522: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 526: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==526); +{ yymsp[-3].minor.yy74 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 522: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 526: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==526); -{ yymsp[-3].minor.yy148 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } + case 523: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 527: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==527); +{ yymsp[-3].minor.yy74 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } break; - case 527: /* subquery ::= NK_LP query_expression NK_RP */ -{ yylhsminor.yy148 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy148); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + case 528: /* subquery ::= NK_LP query_expression NK_RP */ +{ yylhsminor.yy74 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy74); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; - case 532: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ -{ yylhsminor.yy148 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy148), yymsp[-1].minor.yy898, yymsp[0].minor.yy499); } - yymsp[-2].minor.yy148 = yylhsminor.yy148; + case 533: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ +{ yylhsminor.yy74 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy74), yymsp[-1].minor.yy326, yymsp[0].minor.yy109); } + yymsp[-2].minor.yy74 = yylhsminor.yy74; break; - case 533: /* ordering_specification_opt ::= */ -{ yymsp[1].minor.yy898 = ORDER_ASC; } + case 534: /* ordering_specification_opt ::= */ +{ yymsp[1].minor.yy326 = ORDER_ASC; } break; - case 534: /* ordering_specification_opt ::= ASC */ -{ yymsp[0].minor.yy898 = ORDER_ASC; } + case 535: /* ordering_specification_opt ::= ASC */ +{ yymsp[0].minor.yy326 = ORDER_ASC; } break; - case 535: /* ordering_specification_opt ::= DESC */ -{ yymsp[0].minor.yy898 = ORDER_DESC; } + case 536: /* ordering_specification_opt ::= DESC */ +{ yymsp[0].minor.yy326 = ORDER_DESC; } break; - case 536: /* null_ordering_opt ::= */ -{ yymsp[1].minor.yy499 = NULL_ORDER_DEFAULT; } + case 537: /* null_ordering_opt ::= */ +{ yymsp[1].minor.yy109 = NULL_ORDER_DEFAULT; } break; - case 537: /* null_ordering_opt ::= NULLS FIRST */ -{ yymsp[-1].minor.yy499 = NULL_ORDER_FIRST; } + case 538: /* null_ordering_opt ::= NULLS FIRST */ +{ yymsp[-1].minor.yy109 = NULL_ORDER_FIRST; } break; - case 538: /* null_ordering_opt ::= NULLS LAST */ -{ yymsp[-1].minor.yy499 = NULL_ORDER_LAST; } + case 539: /* null_ordering_opt ::= NULLS LAST */ +{ yymsp[-1].minor.yy109 = NULL_ORDER_LAST; } break; default: break; diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index b05c35452b..205c70e0df 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -814,6 +814,29 @@ static int32_t createWindowLogicNodeByInterval(SLogicPlanContext* pCxt, SInterva return createWindowLogicNodeFinalize(pCxt, pSelect, pWindow, pLogicNode); } +static int32_t createWindowLogicNodeByEvent(SLogicPlanContext* pCxt, SEventWindowNode* pEvent, SSelectStmt* pSelect, + SLogicNode** pLogicNode) { + SWindowLogicNode* pWindow = (SWindowLogicNode*)nodesMakeNode(QUERY_NODE_LOGIC_PLAN_WINDOW); + if (NULL == pWindow) { + return TSDB_CODE_OUT_OF_MEMORY; + } + + pWindow->winType = WINDOW_TYPE_EVENT; + pWindow->node.groupAction = getGroupAction(pCxt, pSelect); + pWindow->node.requireDataOrder = + pCxt->pPlanCxt->streamQuery ? DATA_ORDER_LEVEL_IN_BLOCK : getRequireDataOrder(true, pSelect); + pWindow->node.resultDataOrder = + pCxt->pPlanCxt->streamQuery ? DATA_ORDER_LEVEL_GLOBAL : pWindow->node.requireDataOrder; + pWindow->pStartCond = nodesCloneNode(pEvent->pStartCond); + pWindow->pEndCond = nodesCloneNode(pEvent->pEndCond); + pWindow->pTspk = nodesCloneNode(pEvent->pCol); + if (NULL == pWindow->pStartCond || NULL == pWindow->pEndCond || NULL == pWindow->pTspk) { + nodesDestroyNode((SNode*)pWindow); + return TSDB_CODE_OUT_OF_MEMORY; + } + return createWindowLogicNodeFinalize(pCxt, pSelect, pWindow, pLogicNode); +} + static int32_t createWindowLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSelect, SLogicNode** pLogicNode) { if (NULL == pSelect->pWindow) { return TSDB_CODE_SUCCESS; @@ -826,6 +849,8 @@ static int32_t createWindowLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSele return createWindowLogicNodeBySession(pCxt, (SSessionWindowNode*)pSelect->pWindow, pSelect, pLogicNode); case QUERY_NODE_INTERVAL_WINDOW: return createWindowLogicNodeByInterval(pCxt, (SIntervalWindowNode*)pSelect->pWindow, pSelect, pLogicNode); + case QUERY_NODE_EVENT_WINDOW: + return createWindowLogicNodeByEvent(pCxt, (SEventWindowNode*)pSelect->pWindow, pSelect, pLogicNode); default: break; } diff --git a/source/libs/planner/src/planPhysiCreater.c b/source/libs/planner/src/planPhysiCreater.c index e5675310b5..78ae3c1c3b 100644 --- a/source/libs/planner/src/planPhysiCreater.c +++ b/source/libs/planner/src/planPhysiCreater.c @@ -1297,6 +1297,33 @@ static int32_t createStateWindowPhysiNode(SPhysiPlanContext* pCxt, SNodeList* pC return code; } +static int32_t createEventWindowPhysiNode(SPhysiPlanContext* pCxt, SNodeList* pChildren, + SWindowLogicNode* pWindowLogicNode, SPhysiNode** pPhyNode) { + SEventWinodwPhysiNode* pEvent = (SEventWinodwPhysiNode*)makePhysiNode( + pCxt, (SLogicNode*)pWindowLogicNode, + (pCxt->pPlanCxt->streamQuery ? QUERY_NODE_PHYSICAL_PLAN_STREAM_EVENT : QUERY_NODE_PHYSICAL_PLAN_MERGE_EVENT)); + if (NULL == pEvent) { + return TSDB_CODE_OUT_OF_MEMORY; + } + + SDataBlockDescNode* pChildTupe = (((SPhysiNode*)nodesListGetNode(pChildren, 0))->pOutputDataBlockDesc); + int32_t code = setNodeSlotId(pCxt, pChildTupe->dataBlockId, -1, pWindowLogicNode->pStartCond, &pEvent->pStartCond); + if (TSDB_CODE_SUCCESS == code) { + code = setNodeSlotId(pCxt, pChildTupe->dataBlockId, -1, pWindowLogicNode->pEndCond, &pEvent->pEndCond); + } + if (TSDB_CODE_SUCCESS == code) { + code = createWindowPhysiNodeFinalize(pCxt, pChildren, &pEvent->window, pWindowLogicNode); + } + + if (TSDB_CODE_SUCCESS == code) { + *pPhyNode = (SPhysiNode*)pEvent; + } else { + nodesDestroyNode((SNode*)pEvent); + } + + return code; +} + static int32_t createWindowPhysiNode(SPhysiPlanContext* pCxt, SNodeList* pChildren, SWindowLogicNode* pWindowLogicNode, SPhysiNode** pPhyNode) { switch (pWindowLogicNode->winType) { @@ -1306,6 +1333,8 @@ static int32_t createWindowPhysiNode(SPhysiPlanContext* pCxt, SNodeList* pChildr return createSessionWindowPhysiNode(pCxt, pChildren, pWindowLogicNode, pPhyNode); case WINDOW_TYPE_STATE: return createStateWindowPhysiNode(pCxt, pChildren, pWindowLogicNode, pPhyNode); + case WINDOW_TYPE_EVENT: + return createEventWindowPhysiNode(pCxt, pChildren, pWindowLogicNode, pPhyNode); default: break; } diff --git a/source/libs/planner/src/planSpliter.c b/source/libs/planner/src/planSpliter.c index f5782dc937..f6b1babf95 100644 --- a/source/libs/planner/src/planSpliter.c +++ b/source/libs/planner/src/planSpliter.c @@ -729,6 +729,18 @@ static int32_t stbSplSplitState(SSplitContext* pCxt, SStableSplitInfo* pInfo) { } } +static int32_t stbSplSplitEventForStream(SSplitContext* pCxt, SStableSplitInfo* pInfo) { + return TSDB_CODE_PLAN_INTERNAL_ERROR; +} + +static int32_t stbSplSplitEvent(SSplitContext* pCxt, SStableSplitInfo* pInfo) { + if (pCxt->pPlanCxt->streamQuery) { + return stbSplSplitEventForStream(pCxt, pInfo); + } else { + return stbSplSplitSessionOrStateForBatch(pCxt, pInfo); + } +} + static bool stbSplIsPartTableWinodw(SWindowLogicNode* pWindow) { return stbSplHasPartTbname(stbSplGetPartKeys((SLogicNode*)nodesListGetNode(pWindow->node.pChildren, 0))); } @@ -741,6 +753,8 @@ static int32_t stbSplSplitWindowForCrossTable(SSplitContext* pCxt, SStableSplitI return stbSplSplitSession(pCxt, pInfo); case WINDOW_TYPE_STATE: return stbSplSplitState(pCxt, pInfo); + case WINDOW_TYPE_EVENT: + return stbSplSplitEvent(pCxt, pInfo); default: break; } diff --git a/source/libs/planner/src/planUtil.c b/source/libs/planner/src/planUtil.c index a13e959a36..72931413cc 100644 --- a/source/libs/planner/src/planUtil.c +++ b/source/libs/planner/src/planUtil.c @@ -197,6 +197,15 @@ static int32_t adjustStateDataRequirement(SWindowLogicNode* pWindow, EDataOrderL return TSDB_CODE_SUCCESS; } +static int32_t adjustEventDataRequirement(SWindowLogicNode* pWindow, EDataOrderLevel requirement) { + if (requirement <= pWindow->node.resultDataOrder) { + return TSDB_CODE_SUCCESS; + } + pWindow->node.resultDataOrder = requirement; + pWindow->node.requireDataOrder = requirement; + return TSDB_CODE_SUCCESS; +} + static int32_t adjustWindowDataRequirement(SWindowLogicNode* pWindow, EDataOrderLevel requirement) { switch (pWindow->winType) { case WINDOW_TYPE_INTERVAL: @@ -205,6 +214,8 @@ static int32_t adjustWindowDataRequirement(SWindowLogicNode* pWindow, EDataOrder return adjustSessionDataRequirement(pWindow, requirement); case WINDOW_TYPE_STATE: return adjustStateDataRequirement(pWindow, requirement); + case WINDOW_TYPE_EVENT: + return adjustEventDataRequirement(pWindow, requirement); default: break; } diff --git a/source/libs/planner/test/planEventTest.cpp b/source/libs/planner/test/planEventTest.cpp new file mode 100644 index 0000000000..c4db145998 --- /dev/null +++ b/source/libs/planner/test/planEventTest.cpp @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2019 TAOS Data, Inc. + * + * This program is free software: you can use, redistribute, and/or modify + * it under the terms of the GNU Affero General Public License, version 3 + * or later ("AGPL"), as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#include "planTestUtil.h" +#include "planner.h" + +using namespace std; + +class PlanEventTest : public PlannerTestBase {}; + +TEST_F(PlanEventTest, basic) { + useDb("root", "test"); + + run("SELECT COUNT(*) FROM t1 EVENT_WINDOW START WITH c1 > 10 END WITH c2 = 'abc'"); +} + +TEST_F(PlanEventTest, stable) { + useDb("root", "test"); + + run("SELECT COUNT(*) FROM st1 EVENT_WINDOW START WITH c1 > 10 END WITH c2 = 'abc'"); +} diff --git a/tests/script/tsim/stream/state0.sim b/tests/script/tsim/stream/state0.sim index 7c922658c9..ea7528b1cb 100644 --- a/tests/script/tsim/stream/state0.sim +++ b/tests/script/tsim/stream/state0.sim @@ -552,7 +552,7 @@ sql use test4; sql create table st (ts timestamp, c1 tinyint, c2 smallint) tags (t1 tinyint) ; sql create table t1 using st tags (-81) ; sql create table t2 using st tags (-81) ; -sql create stream if not exists streams4 trigger window_close into streamt4 as select _wstart AS start, min(c1),count(c1) from t1 state_window(c1); +sql create stream if not exists streams4 trigger window_close into streamt4 as select _wstart AS startts, min(c1),count(c1) from t1 state_window(c1); sql insert into t1 (ts, c1) values (1668073288209, 11); sql insert into t1 (ts, c1) values (1668073288210, 11); @@ -567,7 +567,7 @@ loop7: sleep 200 -sql select * from streamt4 order by start; +sql select * from streamt4 order by startts; $loop_count = $loop_count + 1 if $loop_count == 20 then @@ -606,7 +606,7 @@ loop8: sleep 200 -sql select * from streamt4 order by start; +sql select * from streamt4 order by startts; $loop_count = $loop_count + 1 if $loop_count == 20 then @@ -640,7 +640,7 @@ loop8: sleep 200 -sql select * from streamt4 order by start; +sql select * from streamt4 order by startts; $loop_count = $loop_count + 1 if $loop_count == 20 then @@ -679,7 +679,7 @@ loop9: sleep 200 -sql select * from streamt4 order by start; +sql select * from streamt4 order by startts; $loop_count = $loop_count + 1 if $loop_count == 20 then diff --git a/tests/system-test/0-others/taosdShell.py b/tests/system-test/0-others/taosdShell.py index 7ad7e4d0ef..2125b5eebe 100644 --- a/tests/system-test/0-others/taosdShell.py +++ b/tests/system-test/0-others/taosdShell.py @@ -136,7 +136,7 @@ class TDTestCase: tdSql.query("use source_db") tdSql.query("create table if not exists source_db.stb (ts timestamp, k int) tags (a int);") tdSql.query("create table source_db.ct1 using source_db.stb tags(1000);create table source_db.ct2 using source_db.stb tags(2000);create table source_db.ct3 using source_db.stb tags(3000);") - tdSql.query("create stream s1 into source_db.output_stb as select _wstart AS start, min(k), max(k), sum(k) from source_db.stb interval(10m);") + tdSql.query("create stream s1 into source_db.output_stb as select _wstart AS startts, min(k), max(k), sum(k) from source_db.stb interval(10m);") #TD-19944 -Q=3 diff --git a/tests/system-test/1-insert/database_pre_suf.py b/tests/system-test/1-insert/database_pre_suf.py index 862edbdde9..488dfebff5 100755 --- a/tests/system-test/1-insert/database_pre_suf.py +++ b/tests/system-test/1-insert/database_pre_suf.py @@ -108,7 +108,7 @@ class TDTestCase: # create stream - tdSql.execute('''create stream current_stream into stream_max_stable_1 as select _wstart as start, _wend as wend, max(q_int) as max_int, min(q_bigint) as min_int from stable_1 where ts is not null interval (5s);''') + tdSql.execute('''create stream current_stream into stream_max_stable_1 as select _wstart as startts, _wend as wend, max(q_int) as max_int, min(q_bigint) as min_int from stable_1 where ts is not null interval (5s);''') # insert data for i in range(num_random*n): @@ -187,20 +187,20 @@ class TDTestCase: sleep(5) # stream data check - tdSql.query("select start,wend,max_int from stream_max_stable_1 ;") + tdSql.query("select startts,wend,max_int from stream_max_stable_1 ;") tdSql.checkRows(20) tdSql.query("select sum(max_int) from stream_max_stable_1 ;") stream_data_1 = tdSql.queryResult[0][0] tdSql.query("select sum(min_int) from stream_max_stable_1 ;") stream_data_2 = tdSql.queryResult[0][0] - tdSql.query("select sum(max_int),sum(min_int) from (select _wstart as start, _wend as wend, max(q_int) as max_int, min(q_bigint) as min_int from stable_1 where ts is not null interval (5s));") + tdSql.query("select sum(max_int),sum(min_int) from (select _wstart as startts, _wend as wend, max(q_int) as max_int, min(q_bigint) as min_int from stable_1 where ts is not null interval (5s));") sql_data_1 = tdSql.queryResult[0][0] sql_data_2 = tdSql.queryResult[0][1] self.stream_value_check(stream_data_1,sql_data_1) self.stream_value_check(stream_data_2,sql_data_2) - tdSql.query("select sum(max_int),sum(min_int) from (select _wstart as start, _wend as wend, max(q_int) as max_int, min(q_bigint) as min_int from stable_1 interval (5s));") + tdSql.query("select sum(max_int),sum(min_int) from (select _wstart as startts, _wend as wend, max(q_int) as max_int, min(q_bigint) as min_int from stable_1 interval (5s));") sql_data_1 = tdSql.queryResult[0][0] sql_data_2 = tdSql.queryResult[0][1]