diff --git a/include/common/tdatablock.h b/include/common/tdatablock.h index 290c90fde9..d13cc1405b 100644 --- a/include/common/tdatablock.h +++ b/include/common/tdatablock.h @@ -268,7 +268,7 @@ int32_t buildSubmitReqFromDataBlock(SSubmitReq2** pReq, const SSDataBlock* pData bool alreadyAddGroupId(char* ctbName); bool isAutoTableName(char* ctbName); -void buildCtbNameAddGroupId(char* ctbName, uint64_t groupId); +void buildCtbNameAddGroupId(const char* stbName, char* ctbName, uint64_t groupId); char* buildCtbNameByGroupId(const char* stbName, uint64_t groupId); int32_t buildCtbNameByGroupIdImpl(const char* stbName, uint64_t groupId, char* pBuf); diff --git a/include/libs/stream/tstream.h b/include/libs/stream/tstream.h index 5f3761d7b7..e7c6491b9d 100644 --- a/include/libs/stream/tstream.h +++ b/include/libs/stream/tstream.h @@ -61,7 +61,7 @@ typedef struct SStreamTask SStreamTask; typedef struct SStreamQueue SStreamQueue; typedef struct SStreamTaskSM SStreamTaskSM; -#define SSTREAM_TASK_VER 3 +#define SSTREAM_TASK_VER 4 #define SSTREAM_TASK_INCOMPATIBLE_VER 1 #define SSTREAM_TASK_NEED_CONVERT_VER 2 #define SSTREAM_TASK_SUBTABLE_CHANGED_VER 3 diff --git a/source/common/src/tdatablock.c b/source/common/src/tdatablock.c index d2164b024b..e748cce643 100644 --- a/source/common/src/tdatablock.c +++ b/source/common/src/tdatablock.c @@ -2188,10 +2188,14 @@ _end: return TSDB_CODE_SUCCESS; } -void buildCtbNameAddGroupId(char* ctbName, uint64_t groupId) { +void buildCtbNameAddGroupId(const char* stbName, char* ctbName, uint64_t groupId){ char tmp[TSDB_TABLE_NAME_LEN] = {0}; - snprintf(tmp, TSDB_TABLE_NAME_LEN, "_%" PRIu64, groupId); - ctbName[TSDB_TABLE_NAME_LEN - strlen(tmp) - 1] = 0; // put groupId to the end + if (stbName == NULL){ + snprintf(tmp, TSDB_TABLE_NAME_LEN, "_%"PRIu64, groupId); + }else{ + snprintf(tmp, TSDB_TABLE_NAME_LEN, "_%s_%"PRIu64, stbName, groupId); + } + ctbName[TSDB_TABLE_NAME_LEN - strlen(tmp) - 1] = 0; // put stbname + groupId to the end strcat(ctbName, tmp); } @@ -2201,6 +2205,7 @@ bool isAutoTableName(char* ctbName) { return (strlen(ctbName) == 34 && ctbName[0 bool alreadyAddGroupId(char* ctbName) { size_t len = strlen(ctbName); + if (len == 0) return false; size_t _location = len - 1; while (_location > 0) { if (ctbName[_location] < '0' || ctbName[_location] > '9') { diff --git a/source/dnode/mnode/impl/src/mndDef.c b/source/dnode/mnode/impl/src/mndDef.c index 3f69c7def3..091edc6ab0 100644 --- a/source/dnode/mnode/impl/src/mndDef.c +++ b/source/dnode/mnode/impl/src/mndDef.c @@ -72,7 +72,9 @@ int32_t tEncodeSStreamObj(SEncoder *pEncoder, const SStreamObj *pObj) { if (tEncodeI32(pEncoder, innerSz) < 0) return -1; for (int32_t j = 0; j < innerSz; j++) { SStreamTask *pTask = taosArrayGetP(pArray, j); - pTask->ver = SSTREAM_TASK_VER; + if (pTask->ver < SSTREAM_TASK_SUBTABLE_CHANGED_VER){ + pTask->ver = SSTREAM_TASK_VER; + } if (tEncodeStreamTask(pEncoder, pTask) < 0) return -1; } } diff --git a/source/dnode/mnode/impl/src/mndStream.c b/source/dnode/mnode/impl/src/mndStream.c index cbb5205eca..baee69102d 100644 --- a/source/dnode/mnode/impl/src/mndStream.c +++ b/source/dnode/mnode/impl/src/mndStream.c @@ -434,7 +434,9 @@ int32_t mndPersistTaskDeployReq(STrans *pTrans, SStreamTask *pTask) { SEncoder encoder; tEncoderInit(&encoder, NULL, 0); - pTask->ver = SSTREAM_TASK_VER; + if (pTask->ver < SSTREAM_TASK_SUBTABLE_CHANGED_VER){ + pTask->ver = SSTREAM_TASK_VER; + } tEncodeStreamTask(&encoder, pTask); int32_t size = encoder.pos; diff --git a/source/dnode/vnode/src/tq/tqSink.c b/source/dnode/vnode/src/tq/tqSink.c index ade7958f8a..7f5ddf4f1e 100644 --- a/source/dnode/vnode/src/tq/tqSink.c +++ b/source/dnode/vnode/src/tq/tqSink.c @@ -71,8 +71,8 @@ int32_t tqBuildDeleteReq(STQ* pTq, const char* stbFullName, const SSDataBlock* p if (varTbName != NULL && varTbName != (void*)-1) { name = taosMemoryCalloc(1, TSDB_TABLE_NAME_LEN); memcpy(name, varDataVal(varTbName), varDataLen(varTbName)); - if (newSubTableRule && !isAutoTableName(name) && !alreadyAddGroupId(name) && groupId != 0) { - buildCtbNameAddGroupId(name, groupId); + if (newSubTableRule && !isAutoTableName(name) && !alreadyAddGroupId(name) && groupId != 0 && stbFullName) { + buildCtbNameAddGroupId(stbFullName, name, groupId); } } else if (stbFullName) { name = buildCtbNameByGroupId(stbFullName, groupId); @@ -182,10 +182,10 @@ void setCreateTableMsgTableName(SVCreateTbReq* pCreateTableReq, SSDataBlock* pDa int64_t gid, bool newSubTableRule) { if (pDataBlock->info.parTbName[0]) { if (newSubTableRule && !isAutoTableName(pDataBlock->info.parTbName) && - !alreadyAddGroupId(pDataBlock->info.parTbName) && gid != 0) { + !alreadyAddGroupId(pDataBlock->info.parTbName) && gid != 0 && stbFullName) { pCreateTableReq->name = taosMemoryCalloc(1, TSDB_TABLE_NAME_LEN); strcpy(pCreateTableReq->name, pDataBlock->info.parTbName); - buildCtbNameAddGroupId(pCreateTableReq->name, gid); + buildCtbNameAddGroupId(stbFullName, pCreateTableReq->name, gid); // tqDebug("gen name from:%s", pDataBlock->info.parTbName); } else { pCreateTableReq->name = taosStrdup(pDataBlock->info.parTbName); @@ -672,10 +672,14 @@ int32_t setDstTableDataUid(SVnode* pVnode, SStreamTask* pTask, SSDataBlock* pDat memset(dstTableName, 0, TSDB_TABLE_NAME_LEN); buildCtbNameByGroupIdImpl(stbFullName, groupId, dstTableName); } else { - if (pTask->ver >= SSTREAM_TASK_SUBTABLE_CHANGED_VER && pTask->subtableWithoutMd5 != 1 && - !isAutoTableName(dstTableName) && !alreadyAddGroupId(dstTableName) && groupId != 0) { + if (pTask->subtableWithoutMd5 != 1 && !isAutoTableName(dstTableName) && + !alreadyAddGroupId(dstTableName) && groupId != 0) { tqDebug("s-task:%s append groupId:%" PRId64 " for generated dstTable:%s", id, groupId, dstTableName); - buildCtbNameAddGroupId(dstTableName, groupId); + if(pTask->ver == SSTREAM_TASK_SUBTABLE_CHANGED_VER){ + buildCtbNameAddGroupId(NULL, dstTableName, groupId); + }else if(pTask->ver > SSTREAM_TASK_SUBTABLE_CHANGED_VER && stbFullName) { + buildCtbNameAddGroupId(stbFullName, dstTableName, groupId); + } } } diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 7274a37bd2..817586c3aa 100755 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -755,16 +755,52 @@ insert_query(A) ::= INSERT INTO full_table_name(C) query_or_subquery(B). /************************************************ tags_literal *************************************************************/ tags_literal(A) ::= NK_INTEGER(B). { A = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &B, NULL); } +tags_literal(A) ::= NK_INTEGER(B) NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_INTEGER(B) NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_PLUS(B) NK_INTEGER(C). { SToken t = B; t.n = (C.z + C.n) - B.z; A = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &t, NULL); } +tags_literal(A) ::= NK_PLUS(B) NK_INTEGER NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_PLUS(B) NK_INTEGER NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_MINUS(B) NK_INTEGER(C). { SToken t = B; t.n = (C.z + C.n) - B.z; A = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &t, NULL); } +tags_literal(A) ::= NK_MINUS(B) NK_INTEGER NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_MINUS(B) NK_INTEGER NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_FLOAT(B). { A = createRawValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &B, NULL); } tags_literal(A) ::= NK_PLUS(B) NK_FLOAT(C). { SToken t = B; @@ -778,29 +814,113 @@ tags_literal(A) ::= NK_MINUS(B) NK_FLOAT(C). } tags_literal(A) ::= NK_BIN(B). { A = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &B, NULL); } +tags_literal(A) ::= NK_BIN(B) NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_BIN(B) NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_PLUS(B) NK_BIN(C). { SToken t = B; t.n = (C.z + C.n) - B.z; A = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &t, NULL); } +tags_literal(A) ::= NK_PLUS(B) NK_BIN NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_PLUS(B) NK_BIN NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_MINUS(B) NK_BIN(C). { SToken t = B; t.n = (C.z + C.n) - B.z; A = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &t, NULL); } +tags_literal(A) ::= NK_MINUS(B) NK_BIN NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_MINUS(B) NK_BIN NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_HEX(B). { A = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &B, NULL); } +tags_literal(A) ::= NK_HEX(B) NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_HEX(B) NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_PLUS(B) NK_HEX(C). { SToken t = B; t.n = (C.z + C.n) - B.z; A = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &t, NULL); } +tags_literal(A) ::= NK_PLUS(B) NK_HEX NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_PLUS(B) NK_HEX NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_MINUS(B) NK_HEX(C). { SToken t = B; t.n = (C.z + C.n) - B.z; A = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &t, NULL); } +tags_literal(A) ::= NK_MINUS(B) NK_HEX NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_MINUS(B) NK_HEX NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_STRING(B). { A = createRawValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &B, NULL); } +tags_literal(A) ::= NK_STRING(B) NK_PLUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } +tags_literal(A) ::= NK_STRING(B) NK_MINUS duration_literal(C). { + SToken l = B; + SToken r = getTokenFromRawExprNode(pCxt, C); + l.n = (r.z + r.n) - l.z; + A = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, C); + } tags_literal(A) ::= NK_BOOL(B). { A = createRawValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &B, NULL); } tags_literal(A) ::= NULL(B). { A = createRawValueNode(pCxt, TSDB_DATA_TYPE_NULL, &B, NULL); } diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index 63a646d92c..c572b31790 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -501,18 +501,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 869 -#define YYNRULE 680 -#define YYNRULE_WITH_ACTION 680 +#define YYNSTATE 899 +#define YYNRULE 700 +#define YYNRULE_WITH_ACTION 700 #define YYNTOKEN 358 -#define YY_MAX_SHIFT 868 -#define YY_MIN_SHIFTREDUCE 1297 -#define YY_MAX_SHIFTREDUCE 1976 -#define YY_ERROR_ACTION 1977 -#define YY_ACCEPT_ACTION 1978 -#define YY_NO_ACTION 1979 -#define YY_MIN_REDUCE 1980 -#define YY_MAX_REDUCE 2659 +#define YY_MAX_SHIFT 898 +#define YY_MIN_SHIFTREDUCE 1337 +#define YY_MAX_SHIFTREDUCE 2036 +#define YY_ERROR_ACTION 2037 +#define YY_ACCEPT_ACTION 2038 +#define YY_NO_ACTION 2039 +#define YY_MIN_REDUCE 2040 +#define YY_MAX_REDUCE 2739 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -581,320 +581,320 @@ typedef union { *********** Begin parsing tables **********************************************/ #define YY_ACTTAB_COUNT (3132) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 579, 2227, 435, 580, 2023, 2220, 2222, 486, 170, 409, - /* 10 */ 479, 174, 47, 45, 1893, 478, 410, 433, 2173, 2225, - /* 20 */ 424, 2174, 1733, 40, 39, 1758, 2225, 46, 44, 43, - /* 30 */ 42, 41, 33, 37, 312, 1819, 2066, 1731, 40, 39, - /* 40 */ 2453, 765, 46, 44, 43, 42, 41, 766, 2171, 1337, - /* 50 */ 728, 148, 765, 731, 199, 546, 544, 2383, 373, 766, - /* 60 */ 2171, 687, 220, 716, 2625, 1814, 2625, 139, 1344, 2214, - /* 70 */ 1978, 19, 1742, 2630, 622, 177, 2625, 1992, 1739, 139, - /* 80 */ 670, 2471, 2631, 206, 715, 206, 627, 2626, 717, 2626, - /* 90 */ 717, 1339, 1342, 1343, 2412, 2629, 2419, 431, 748, 2626, - /* 100 */ 2628, 401, 400, 2162, 865, 2155, 375, 15, 452, 840, - /* 110 */ 839, 838, 837, 442, 1758, 836, 835, 153, 830, 829, - /* 120 */ 828, 827, 826, 825, 824, 152, 818, 817, 816, 441, - /* 130 */ 440, 813, 812, 811, 186, 185, 810, 2313, 2452, 50, - /* 140 */ 737, 2490, 2516, 1821, 1822, 115, 2454, 752, 2456, 2457, - /* 150 */ 747, 430, 770, 445, 62, 2311, 753, 189, 444, 2544, - /* 160 */ 430, 2559, 770, 420, 2540, 304, 2552, 727, 66, 140, - /* 170 */ 726, 770, 2625, 399, 398, 2227, 624, 823, 208, 463, - /* 180 */ 2131, 1793, 1803, 393, 495, 2289, 2574, 2556, 1820, 1823, - /* 190 */ 715, 206, 428, 2225, 595, 2626, 717, 1363, 626, 1362, - /* 200 */ 173, 62, 625, 1734, 687, 1732, 1733, 2625, 599, 2313, - /* 210 */ 1968, 2176, 40, 39, 144, 2413, 46, 44, 43, 42, - /* 220 */ 41, 1731, 2453, 2392, 427, 2631, 206, 2310, 753, 276, - /* 230 */ 2626, 717, 1364, 275, 277, 749, 222, 1737, 1738, 1790, - /* 240 */ 1745, 1792, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, - /* 250 */ 744, 768, 767, 1813, 1815, 1816, 1817, 1818, 2, 47, - /* 260 */ 45, 809, 1739, 2471, 371, 716, 1756, 424, 2625, 1733, - /* 270 */ 2393, 62, 430, 529, 687, 385, 549, 2625, 2419, 820, - /* 280 */ 748, 548, 1819, 770, 1731, 2069, 715, 206, 865, 2429, - /* 290 */ 587, 2626, 717, 580, 2023, 2631, 206, 509, 710, 550, - /* 300 */ 2626, 717, 1758, 99, 372, 511, 382, 308, 467, 408, - /* 310 */ 1759, 661, 1814, 1681, 1682, 489, 2433, 1967, 19, 1848, - /* 320 */ 2452, 687, 308, 2490, 2625, 1739, 2471, 115, 2454, 752, - /* 330 */ 2456, 2457, 747, 2630, 770, 469, 465, 150, 659, 157, - /* 340 */ 2515, 2544, 2631, 206, 822, 420, 2540, 2626, 717, 1762, - /* 350 */ 1761, 865, 396, 657, 15, 655, 273, 272, 641, 640, - /* 360 */ 639, 2435, 2438, 497, 241, 631, 145, 635, 582, 308, - /* 370 */ 2031, 634, 770, 668, 501, 2289, 633, 638, 403, 402, - /* 380 */ 14, 13, 632, 2146, 1849, 628, 739, 1734, 2516, 1732, - /* 390 */ 1821, 1822, 709, 2300, 2279, 173, 537, 536, 535, 534, - /* 400 */ 533, 528, 527, 526, 525, 379, 2177, 439, 438, 515, - /* 410 */ 514, 513, 512, 506, 505, 504, 1981, 499, 498, 394, - /* 420 */ 2629, 1737, 1738, 490, 1600, 1601, 224, 1926, 1793, 1803, - /* 430 */ 1619, 706, 1740, 1540, 1541, 1820, 1823, 129, 1961, 308, - /* 440 */ 128, 127, 126, 125, 124, 123, 122, 121, 120, 1739, - /* 450 */ 1734, 129, 1732, 809, 128, 127, 126, 125, 124, 123, - /* 460 */ 122, 121, 120, 1612, 1613, 671, 36, 422, 1843, 1844, - /* 470 */ 1845, 1846, 1847, 1851, 1852, 1853, 1854, 703, 702, 1924, - /* 480 */ 1925, 1927, 1928, 1929, 1737, 1738, 1790, 1862, 1792, 1795, - /* 490 */ 1796, 1797, 1798, 1799, 1800, 1801, 1802, 744, 768, 767, - /* 500 */ 1813, 1815, 1816, 1817, 1818, 2, 12, 47, 45, 531, - /* 510 */ 2289, 2453, 197, 306, 175, 424, 243, 1733, 12, 347, - /* 520 */ 582, 669, 2031, 800, 731, 712, 707, 700, 696, 187, - /* 530 */ 1819, 2630, 1731, 2361, 2625, 35, 345, 75, 331, 868, - /* 540 */ 74, 40, 39, 589, 2352, 46, 44, 43, 42, 41, - /* 550 */ 374, 2262, 2471, 2629, 395, 333, 2293, 2626, 2627, 666, - /* 560 */ 1814, 229, 239, 561, 559, 556, 19, 2419, 1763, 748, - /* 570 */ 2034, 196, 1363, 1739, 1362, 46, 44, 43, 42, 41, - /* 580 */ 856, 852, 848, 844, 2160, 330, 2003, 728, 148, 40, - /* 590 */ 39, 278, 576, 46, 44, 43, 42, 41, 176, 865, - /* 600 */ 1743, 574, 15, 62, 570, 566, 2109, 1364, 672, 2452, - /* 610 */ 687, 2002, 2490, 2625, 29, 1761, 115, 2454, 752, 2456, - /* 620 */ 2457, 747, 858, 770, 766, 2171, 114, 584, 189, 323, - /* 630 */ 2544, 2631, 206, 581, 420, 2540, 2626, 717, 1821, 1822, - /* 640 */ 1762, 63, 2419, 671, 211, 641, 640, 639, 766, 2171, - /* 650 */ 728, 148, 631, 145, 635, 316, 317, 2575, 634, 687, - /* 660 */ 315, 762, 2625, 633, 638, 403, 402, 2419, 55, 632, - /* 670 */ 766, 2171, 628, 540, 226, 51, 1793, 1803, 174, 2110, - /* 680 */ 2631, 206, 1759, 1820, 1823, 2626, 717, 433, 2173, 1938, - /* 690 */ 483, 85, 84, 482, 728, 148, 219, 765, 1734, 686, - /* 700 */ 1732, 730, 204, 2552, 2553, 311, 146, 2557, 149, 474, - /* 710 */ 472, 2515, 310, 522, 719, 91, 596, 521, 90, 2158, - /* 720 */ 370, 673, 2352, 461, 288, 520, 458, 454, 450, 447, - /* 730 */ 475, 281, 1737, 1738, 1790, 231, 1792, 1795, 1796, 1797, - /* 740 */ 1798, 1799, 1800, 1801, 1802, 744, 768, 767, 1813, 1815, - /* 750 */ 1816, 1817, 1818, 2, 47, 45, 1824, 2221, 2222, 2453, - /* 760 */ 539, 230, 424, 1980, 1733, 205, 2552, 2553, 101, 146, - /* 770 */ 2557, 308, 749, 2153, 2033, 597, 2306, 1819, 306, 1731, - /* 780 */ 776, 775, 774, 773, 50, 89, 2453, 138, 137, 136, - /* 790 */ 135, 134, 133, 132, 131, 130, 766, 2171, 1758, 749, - /* 800 */ 2471, 2582, 732, 201, 96, 1632, 1633, 1814, 2246, 207, - /* 810 */ 2552, 2553, 2175, 146, 2557, 2419, 484, 748, 40, 39, - /* 820 */ 1739, 397, 46, 44, 43, 42, 41, 2471, 200, 40, - /* 830 */ 39, 2166, 60, 46, 44, 43, 42, 41, 711, 1897, - /* 840 */ 684, 1762, 2419, 308, 748, 1758, 865, 62, 2453, 48, - /* 850 */ 1631, 1634, 1829, 687, 2227, 2559, 2625, 2452, 1758, 1763, - /* 860 */ 2490, 749, 419, 2595, 115, 2454, 752, 2456, 2457, 747, - /* 870 */ 801, 770, 2225, 2218, 2631, 206, 2645, 1344, 2544, 2626, - /* 880 */ 717, 2555, 420, 2540, 2452, 1821, 1822, 2490, 12, 2471, - /* 890 */ 10, 115, 2454, 752, 2456, 2457, 747, 2147, 770, 766, - /* 900 */ 2171, 1342, 1343, 2645, 2419, 2544, 748, 40, 39, 420, - /* 910 */ 2540, 46, 44, 43, 42, 41, 284, 113, 1713, 503, - /* 920 */ 1918, 40, 39, 1793, 1803, 46, 44, 43, 42, 41, - /* 930 */ 1820, 1823, 40, 39, 151, 1919, 46, 44, 43, 42, - /* 940 */ 41, 112, 477, 2163, 476, 1734, 2452, 1732, 1850, 2490, - /* 950 */ 109, 1712, 2001, 115, 2454, 752, 2456, 2457, 747, 1794, - /* 960 */ 770, 743, 766, 2171, 2453, 2645, 626, 2544, 524, 523, - /* 970 */ 625, 420, 2540, 1444, 475, 805, 1917, 749, 2218, 1737, - /* 980 */ 1738, 1790, 516, 1792, 1795, 1796, 1797, 1798, 1799, 1800, - /* 990 */ 1801, 1802, 744, 768, 767, 1813, 1815, 1816, 1817, 1818, - /* 1000 */ 2, 47, 45, 2453, 202, 2471, 1794, 1937, 2419, 424, - /* 1010 */ 1456, 1733, 766, 2171, 1446, 308, 749, 1791, 698, 1794, - /* 1020 */ 2419, 1909, 748, 2227, 1819, 1455, 1731, 43, 42, 41, - /* 1030 */ 34, 429, 517, 807, 164, 163, 804, 803, 802, 161, - /* 1040 */ 1855, 2225, 1993, 1460, 2471, 2145, 807, 164, 163, 804, - /* 1050 */ 803, 802, 161, 187, 1814, 766, 2171, 1790, 1459, 2419, - /* 1060 */ 1763, 748, 2452, 2559, 1791, 2490, 100, 1739, 2429, 115, - /* 1070 */ 2454, 752, 2456, 2457, 747, 518, 770, 1791, 766, 2171, - /* 1080 */ 2294, 2519, 629, 2544, 1366, 1367, 1716, 420, 2540, 2554, - /* 1090 */ 2453, 341, 551, 865, 2204, 2433, 48, 1660, 598, 2000, - /* 1100 */ 2227, 2452, 340, 749, 2490, 2618, 1441, 172, 115, 2454, - /* 1110 */ 752, 2456, 2457, 747, 648, 770, 1719, 1722, 735, 1715, - /* 1120 */ 2645, 2588, 2544, 766, 2171, 553, 420, 2540, 436, 660, - /* 1130 */ 1890, 2471, 1821, 1822, 766, 2171, 173, 259, 766, 2171, - /* 1140 */ 2435, 2437, 421, 2168, 720, 274, 2419, 2176, 748, 1718, - /* 1150 */ 1721, 770, 2380, 182, 279, 2419, 766, 2171, 287, 766, - /* 1160 */ 2171, 651, 616, 612, 608, 604, 1999, 258, 645, 643, - /* 1170 */ 1793, 1803, 2227, 766, 2171, 271, 734, 1820, 1823, 320, - /* 1180 */ 434, 807, 164, 163, 804, 803, 802, 161, 2452, 107, - /* 1190 */ 2225, 2490, 1734, 763, 1732, 115, 2454, 752, 2456, 2457, - /* 1200 */ 747, 1998, 770, 1997, 766, 2171, 9, 2645, 97, 2544, - /* 1210 */ 2453, 256, 1762, 420, 2540, 2164, 71, 1758, 1996, 70, - /* 1220 */ 1995, 1994, 2419, 749, 764, 2563, 1737, 1738, 1790, 1991, - /* 1230 */ 1792, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 744, - /* 1240 */ 768, 767, 1813, 1815, 1816, 1817, 1818, 2, 47, 45, - /* 1250 */ 1399, 2471, 766, 2171, 1990, 742, 424, 2419, 1733, 2419, - /* 1260 */ 630, 766, 2171, 618, 617, 1989, 2419, 1988, 748, 1987, - /* 1270 */ 1986, 1819, 327, 1731, 2419, 723, 2419, 2419, 246, 439, - /* 1280 */ 438, 437, 1985, 1984, 1439, 2419, 2272, 255, 248, 1747, - /* 1290 */ 1983, 1400, 637, 636, 253, 593, 620, 619, 834, 832, - /* 1300 */ 806, 1814, 1819, 2218, 1740, 2008, 860, 77, 2452, 96, - /* 1310 */ 2419, 2490, 3, 245, 1739, 115, 2454, 752, 2456, 2457, - /* 1320 */ 747, 2419, 770, 2419, 53, 2419, 2419, 2645, 493, 2544, - /* 1330 */ 2227, 1346, 1814, 420, 2540, 2227, 2167, 1757, 2419, 2419, - /* 1340 */ 865, 162, 2453, 15, 162, 1739, 2419, 1505, 761, 2564, - /* 1350 */ 1882, 264, 704, 2226, 262, 749, 2148, 663, 162, 662, - /* 1360 */ 88, 1496, 799, 798, 797, 1500, 796, 1502, 1503, 795, - /* 1370 */ 792, 741, 1511, 789, 1513, 1514, 786, 783, 780, 1821, - /* 1380 */ 1822, 213, 2053, 2471, 377, 376, 2051, 141, 266, 154, - /* 1390 */ 268, 265, 270, 267, 1723, 269, 694, 301, 2419, 87, - /* 1400 */ 748, 2042, 1741, 1889, 642, 2040, 2440, 1819, 644, 1711, - /* 1410 */ 721, 1970, 1971, 14, 13, 143, 1676, 1793, 1803, 54, - /* 1420 */ 49, 1840, 49, 646, 1820, 1823, 190, 649, 162, 326, - /* 1430 */ 325, 1763, 64, 1679, 295, 49, 1791, 1814, 1882, 1734, - /* 1440 */ 2452, 1732, 49, 2490, 2472, 2107, 2106, 115, 2454, 752, - /* 1450 */ 2456, 2457, 747, 314, 770, 2453, 76, 2298, 159, 2517, - /* 1460 */ 162, 2544, 73, 778, 2442, 420, 2540, 160, 749, 162, - /* 1470 */ 1748, 1913, 1743, 1737, 1738, 1790, 142, 1792, 1795, 1796, - /* 1480 */ 1797, 1798, 1799, 1800, 1801, 1802, 744, 768, 767, 1813, - /* 1490 */ 1815, 1816, 1817, 1818, 2, 1923, 2471, 1922, 2578, 2024, - /* 1500 */ 701, 293, 814, 733, 1751, 1753, 159, 1856, 415, 708, - /* 1510 */ 1804, 2419, 411, 748, 755, 815, 443, 1629, 768, 767, - /* 1520 */ 1813, 1815, 1816, 1817, 1818, 2299, 1418, 2030, 318, 2215, - /* 1530 */ 680, 758, 2453, 322, 2579, 1487, 2589, 339, 1518, 1416, - /* 1540 */ 729, 303, 1522, 724, 1529, 749, 300, 307, 2132, 5, - /* 1550 */ 446, 1527, 451, 2452, 391, 459, 2490, 460, 1766, 470, - /* 1560 */ 115, 2454, 752, 2456, 2457, 747, 1756, 770, 471, 215, - /* 1570 */ 1744, 473, 738, 2471, 2544, 1724, 2453, 1714, 420, 2540, - /* 1580 */ 214, 165, 217, 487, 1653, 334, 1757, 228, 2419, 749, - /* 1590 */ 748, 494, 496, 500, 502, 542, 507, 519, 532, 530, - /* 1600 */ 2291, 538, 541, 543, 554, 2453, 555, 1717, 1720, 1725, - /* 1610 */ 552, 233, 234, 557, 558, 1764, 577, 2471, 749, 236, - /* 1620 */ 4, 560, 562, 768, 767, 1813, 1815, 1816, 1817, 1818, - /* 1630 */ 2452, 578, 2419, 2490, 748, 2453, 585, 116, 2454, 752, - /* 1640 */ 2456, 2457, 747, 586, 770, 244, 2471, 588, 746, 1759, - /* 1650 */ 590, 2544, 1765, 1767, 93, 2543, 2540, 247, 591, 592, - /* 1660 */ 594, 2419, 2307, 748, 1768, 600, 250, 621, 623, 252, - /* 1670 */ 94, 95, 257, 652, 2452, 2370, 2471, 2490, 2161, 2453, - /* 1680 */ 118, 116, 2454, 752, 2456, 2457, 747, 653, 770, 665, - /* 1690 */ 367, 2419, 749, 748, 2367, 2544, 261, 2157, 263, 740, - /* 1700 */ 2540, 167, 117, 750, 2159, 2154, 2490, 168, 169, 2453, - /* 1710 */ 116, 2454, 752, 2456, 2457, 747, 667, 770, 98, 155, - /* 1720 */ 2471, 2366, 749, 280, 2544, 1760, 675, 674, 384, 2540, - /* 1730 */ 285, 682, 691, 2452, 335, 2419, 2490, 748, 2453, 679, - /* 1740 */ 363, 2454, 752, 2456, 2457, 747, 745, 770, 736, 2509, - /* 1750 */ 2471, 749, 705, 756, 2594, 2593, 681, 290, 8, 2566, - /* 1760 */ 294, 283, 2353, 676, 292, 2419, 714, 748, 181, 689, - /* 1770 */ 692, 296, 690, 299, 416, 725, 722, 2452, 302, 2471, - /* 1780 */ 2490, 147, 1882, 2648, 178, 2454, 752, 2456, 2457, 747, - /* 1790 */ 1761, 770, 297, 298, 2419, 2560, 748, 1887, 1885, 193, - /* 1800 */ 61, 309, 156, 336, 2525, 754, 337, 2452, 2321, 2320, - /* 1810 */ 2490, 2319, 760, 426, 179, 2454, 752, 2456, 2457, 747, - /* 1820 */ 759, 770, 158, 209, 1, 106, 688, 2585, 2172, 338, - /* 1830 */ 2411, 2410, 108, 2624, 342, 772, 2452, 329, 859, 2490, - /* 1840 */ 2453, 1321, 864, 116, 2454, 752, 2456, 2457, 747, 2219, - /* 1850 */ 770, 862, 166, 749, 366, 52, 354, 2544, 2453, 365, - /* 1860 */ 378, 355, 2541, 344, 346, 2391, 2390, 2389, 718, 2646, - /* 1870 */ 82, 749, 2384, 389, 390, 448, 449, 1704, 1705, 212, - /* 1880 */ 453, 2471, 2382, 455, 2453, 456, 457, 1703, 2381, 392, - /* 1890 */ 2379, 462, 2378, 464, 2377, 466, 2419, 749, 748, 2471, - /* 1900 */ 2376, 468, 1692, 2357, 2356, 216, 218, 1656, 83, 1655, - /* 1910 */ 2334, 2333, 2332, 480, 2419, 481, 748, 2331, 2330, 2281, - /* 1920 */ 485, 2278, 488, 1599, 2277, 2471, 2271, 492, 491, 2268, - /* 1930 */ 221, 2267, 86, 2266, 2265, 2270, 413, 1605, 2452, 2269, - /* 1940 */ 2419, 2490, 748, 2264, 223, 178, 2454, 752, 2456, 2457, - /* 1950 */ 747, 2263, 770, 225, 2258, 510, 2452, 2261, 2260, 2490, - /* 1960 */ 2259, 2256, 414, 364, 2454, 752, 2456, 2457, 747, 508, - /* 1970 */ 770, 2453, 2255, 2254, 2253, 2276, 2252, 2251, 2250, 2274, - /* 1980 */ 2257, 2249, 2452, 2248, 749, 2490, 2247, 2453, 2586, 364, - /* 1990 */ 2454, 752, 2456, 2457, 747, 2245, 770, 2244, 2243, 2242, - /* 2000 */ 749, 2241, 2240, 2453, 227, 2239, 2238, 92, 2237, 2236, - /* 2010 */ 2235, 2275, 2471, 2273, 2234, 2233, 746, 2232, 232, 2231, - /* 2020 */ 2230, 2229, 545, 547, 2228, 1457, 1461, 2419, 2471, 748, - /* 2030 */ 2072, 235, 380, 1453, 381, 2071, 2070, 2068, 2065, 564, - /* 2040 */ 2064, 568, 565, 2419, 2471, 748, 2057, 2044, 2019, 563, - /* 2050 */ 237, 2018, 238, 567, 2355, 2351, 2341, 1345, 572, 2419, - /* 2060 */ 569, 748, 2453, 571, 573, 575, 188, 79, 240, 2452, - /* 2070 */ 242, 80, 2490, 249, 251, 749, 357, 2454, 752, 2456, - /* 2080 */ 2457, 747, 2329, 770, 2328, 2452, 2305, 2149, 2490, 601, - /* 2090 */ 2439, 198, 179, 2454, 752, 2456, 2457, 747, 583, 770, - /* 2100 */ 2067, 2452, 254, 2471, 2490, 605, 1392, 2063, 363, 2454, - /* 2110 */ 752, 2456, 2457, 747, 602, 770, 603, 2510, 2419, 2061, - /* 2120 */ 748, 606, 713, 607, 2059, 609, 610, 611, 2056, 613, - /* 2130 */ 614, 2039, 615, 2037, 2038, 2036, 2015, 2151, 1534, 2453, - /* 2140 */ 423, 2150, 1533, 1443, 2054, 260, 1442, 2647, 1440, 1438, - /* 2150 */ 1437, 1436, 749, 1435, 72, 1434, 831, 2052, 833, 1431, - /* 2160 */ 2452, 1429, 404, 2490, 1430, 405, 1428, 364, 2454, 752, - /* 2170 */ 2456, 2457, 747, 2043, 770, 406, 2041, 2453, 407, 647, - /* 2180 */ 2471, 2014, 650, 2013, 2012, 654, 2011, 656, 2010, 658, - /* 2190 */ 749, 119, 1686, 2354, 2350, 2419, 1688, 748, 2453, 1685, - /* 2200 */ 282, 1690, 28, 67, 1666, 1662, 2340, 1664, 2327, 677, - /* 2210 */ 2326, 749, 2630, 20, 693, 30, 17, 425, 2471, 412, - /* 2220 */ 6, 23, 7, 1940, 289, 21, 65, 56, 57, 1914, - /* 2230 */ 22, 192, 32, 2419, 24, 748, 286, 2452, 291, 2471, - /* 2240 */ 2490, 678, 1641, 697, 364, 2454, 752, 2456, 2457, 747, - /* 2250 */ 683, 770, 1640, 695, 2419, 685, 748, 699, 1955, 2453, - /* 2260 */ 1921, 203, 2440, 171, 1954, 180, 417, 191, 31, 18, - /* 2270 */ 1959, 1908, 749, 81, 1958, 664, 418, 1960, 2490, 305, - /* 2280 */ 59, 183, 359, 2454, 752, 2456, 2457, 747, 2325, 770, - /* 2290 */ 2304, 103, 25, 13, 1749, 1831, 2452, 1961, 2453, 2490, - /* 2300 */ 2471, 1830, 102, 349, 2454, 752, 2456, 2457, 747, 1841, - /* 2310 */ 770, 749, 1879, 1878, 2453, 2419, 184, 748, 194, 1806, - /* 2320 */ 1783, 38, 11, 1805, 16, 26, 27, 749, 1775, 757, - /* 2330 */ 313, 751, 2453, 1916, 58, 195, 2303, 104, 319, 2471, - /* 2340 */ 109, 69, 105, 324, 1808, 749, 1976, 2495, 2494, 769, - /* 2350 */ 321, 68, 1975, 1974, 2419, 2471, 748, 2452, 1519, 777, - /* 2360 */ 2490, 779, 771, 432, 348, 2454, 752, 2456, 2457, 747, - /* 2370 */ 2419, 770, 748, 2471, 1516, 781, 1515, 782, 784, 1512, - /* 2380 */ 785, 787, 788, 790, 1506, 791, 793, 1504, 2419, 794, - /* 2390 */ 748, 1510, 1509, 1508, 110, 328, 2452, 1528, 1973, 2490, - /* 2400 */ 111, 1524, 1507, 350, 2454, 752, 2456, 2457, 747, 78, - /* 2410 */ 770, 1390, 2452, 808, 1425, 2490, 819, 1422, 1421, 356, - /* 2420 */ 2454, 752, 2456, 2457, 747, 1420, 770, 1419, 1417, 1415, - /* 2430 */ 2452, 1414, 1413, 2490, 2453, 1451, 1450, 360, 2454, 752, - /* 2440 */ 2456, 2457, 747, 210, 770, 1411, 821, 749, 1410, 1409, - /* 2450 */ 2453, 1408, 1407, 1406, 1405, 1445, 1447, 1402, 1401, 1398, - /* 2460 */ 1397, 1396, 1395, 749, 2062, 841, 2453, 2060, 843, 845, - /* 2470 */ 842, 2058, 847, 849, 2055, 2471, 851, 853, 846, 749, - /* 2480 */ 855, 2035, 850, 857, 854, 1334, 2009, 1322, 861, 863, - /* 2490 */ 2419, 2471, 748, 1979, 332, 1735, 867, 343, 866, 1979, - /* 2500 */ 1979, 1979, 1979, 1979, 1979, 1979, 2419, 2471, 748, 1979, - /* 2510 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 2520 */ 1979, 1979, 2419, 1979, 748, 2453, 1979, 1979, 1979, 1979, - /* 2530 */ 1979, 1979, 2452, 1979, 1979, 2490, 1979, 1979, 749, 351, - /* 2540 */ 2454, 752, 2456, 2457, 747, 1979, 770, 1979, 2452, 1979, - /* 2550 */ 1979, 2490, 2453, 1979, 1979, 361, 2454, 752, 2456, 2457, - /* 2560 */ 747, 1979, 770, 1979, 2452, 749, 2471, 2490, 1979, 1979, - /* 2570 */ 1979, 352, 2454, 752, 2456, 2457, 747, 1979, 770, 1979, - /* 2580 */ 1979, 2419, 1979, 748, 1979, 1979, 1979, 1979, 1979, 1979, - /* 2590 */ 1979, 1979, 1979, 2471, 1979, 1979, 1979, 1979, 1979, 1979, - /* 2600 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 2453, 2419, 1979, - /* 2610 */ 748, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 2620 */ 749, 1979, 1979, 2452, 1979, 1979, 2490, 1979, 1979, 1979, - /* 2630 */ 362, 2454, 752, 2456, 2457, 747, 1979, 770, 1979, 1979, - /* 2640 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 2471, 1979, - /* 2650 */ 2452, 1979, 1979, 2490, 1979, 1979, 1979, 353, 2454, 752, - /* 2660 */ 2456, 2457, 747, 2419, 770, 748, 2453, 1979, 1979, 1979, - /* 2670 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 749, - /* 2680 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 2453, - /* 2690 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 2700 */ 1979, 1979, 749, 1979, 1979, 2452, 1979, 2471, 2490, 1979, - /* 2710 */ 1979, 1979, 368, 2454, 752, 2456, 2457, 747, 1979, 770, - /* 2720 */ 1979, 1979, 2419, 1979, 748, 1979, 1979, 2453, 1979, 1979, - /* 2730 */ 2471, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 2740 */ 749, 1979, 1979, 1979, 1979, 2419, 1979, 748, 1979, 1979, - /* 2750 */ 2453, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 2760 */ 1979, 1979, 1979, 749, 2452, 1979, 2453, 2490, 2471, 1979, - /* 2770 */ 1979, 369, 2454, 752, 2456, 2457, 747, 1979, 770, 749, - /* 2780 */ 1979, 1979, 1979, 2419, 1979, 748, 1979, 2452, 1979, 1979, - /* 2790 */ 2490, 2471, 1979, 1979, 2465, 2454, 752, 2456, 2457, 747, - /* 2800 */ 1979, 770, 1979, 1979, 1979, 1979, 2419, 2471, 748, 1979, - /* 2810 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 2820 */ 1979, 1979, 2419, 1979, 748, 2452, 1979, 1979, 2490, 1979, - /* 2830 */ 1979, 1979, 2464, 2454, 752, 2456, 2457, 747, 1979, 770, - /* 2840 */ 1979, 2453, 1979, 1979, 1979, 1979, 1979, 1979, 2452, 1979, - /* 2850 */ 1979, 2490, 1979, 1979, 749, 2463, 2454, 752, 2456, 2457, - /* 2860 */ 747, 1979, 770, 1979, 2452, 1979, 1979, 2490, 2453, 1979, - /* 2870 */ 1979, 386, 2454, 752, 2456, 2457, 747, 1979, 770, 1979, - /* 2880 */ 1979, 749, 2471, 1979, 1979, 1979, 1979, 2453, 1979, 1979, - /* 2890 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 2419, 1979, 748, - /* 2900 */ 749, 1979, 1979, 2453, 1979, 1979, 1979, 1979, 1979, 2471, - /* 2910 */ 1979, 1979, 1979, 1979, 1979, 1979, 749, 1979, 1979, 1979, - /* 2920 */ 1979, 1979, 1979, 1979, 2419, 1979, 748, 1979, 2471, 1979, - /* 2930 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 2452, - /* 2940 */ 1979, 1979, 2490, 2419, 2471, 748, 387, 2454, 752, 2456, - /* 2950 */ 2457, 747, 1979, 770, 1979, 1979, 1979, 1979, 1979, 2419, - /* 2960 */ 1979, 748, 1979, 1979, 1979, 1979, 2452, 1979, 1979, 2490, - /* 2970 */ 1979, 1979, 1979, 383, 2454, 752, 2456, 2457, 747, 1979, - /* 2980 */ 770, 1979, 1979, 1979, 1979, 2452, 1979, 1979, 2490, 1979, - /* 2990 */ 1979, 1979, 388, 2454, 752, 2456, 2457, 747, 1979, 770, - /* 3000 */ 1979, 750, 1979, 1979, 2490, 1979, 1979, 1979, 359, 2454, - /* 3010 */ 752, 2456, 2457, 747, 1979, 770, 1979, 1979, 1979, 2453, - /* 3020 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 3030 */ 1979, 1979, 749, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 3040 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 3050 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 3060 */ 2471, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 3070 */ 1979, 1979, 1979, 1979, 1979, 2419, 1979, 748, 1979, 1979, - /* 3080 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 3090 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 3100 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, - /* 3110 */ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 2452, 1979, 1979, - /* 3120 */ 2490, 1979, 1979, 1979, 358, 2454, 752, 2456, 2457, 747, - /* 3130 */ 1979, 770, + /* 0 */ 609, 2287, 465, 610, 2083, 2280, 2282, 516, 170, 429, + /* 10 */ 509, 174, 47, 45, 1953, 508, 430, 463, 2233, 2285, + /* 20 */ 444, 2234, 1793, 40, 39, 1818, 2285, 46, 44, 43, + /* 30 */ 42, 41, 33, 37, 312, 1879, 2126, 1791, 40, 39, + /* 40 */ 2533, 795, 46, 44, 43, 42, 41, 796, 2231, 1377, + /* 50 */ 758, 148, 795, 761, 199, 576, 574, 2443, 393, 796, + /* 60 */ 2231, 717, 220, 746, 2705, 1874, 2705, 139, 1384, 2274, + /* 70 */ 2038, 19, 1802, 2710, 652, 177, 2705, 2052, 1799, 139, + /* 80 */ 700, 2551, 2711, 206, 745, 206, 657, 2706, 747, 2706, + /* 90 */ 747, 1379, 1382, 1383, 2492, 2709, 2499, 461, 778, 2706, + /* 100 */ 2708, 421, 420, 2222, 895, 2215, 395, 15, 482, 870, + /* 110 */ 869, 868, 867, 472, 1818, 866, 865, 153, 860, 859, + /* 120 */ 858, 857, 856, 855, 854, 152, 848, 847, 846, 471, + /* 130 */ 470, 843, 842, 841, 186, 185, 840, 2373, 2532, 50, + /* 140 */ 767, 2570, 2596, 1881, 1882, 115, 2534, 782, 2536, 2537, + /* 150 */ 777, 450, 800, 475, 62, 2371, 783, 189, 474, 2624, + /* 160 */ 450, 2639, 800, 440, 2620, 304, 2632, 757, 66, 140, + /* 170 */ 756, 800, 2705, 419, 418, 2287, 654, 853, 208, 493, + /* 180 */ 2191, 1853, 1863, 413, 525, 2349, 2654, 2636, 1880, 1883, + /* 190 */ 745, 206, 448, 2285, 625, 2706, 747, 1403, 656, 1402, + /* 200 */ 173, 62, 655, 1794, 717, 1792, 1793, 2705, 629, 2373, + /* 210 */ 2028, 2236, 40, 39, 144, 2493, 46, 44, 43, 42, + /* 220 */ 41, 1791, 2533, 2452, 447, 2711, 206, 2370, 783, 276, + /* 230 */ 2706, 747, 1404, 275, 277, 779, 222, 1797, 1798, 1850, + /* 240 */ 1805, 1852, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, + /* 250 */ 774, 798, 797, 1873, 1875, 1876, 1877, 1878, 2, 47, + /* 260 */ 45, 839, 1799, 2551, 391, 746, 1816, 444, 2705, 1793, + /* 270 */ 2453, 62, 450, 559, 717, 405, 579, 2705, 2499, 850, + /* 280 */ 778, 578, 1879, 800, 1791, 2129, 745, 206, 895, 2509, + /* 290 */ 617, 2706, 747, 610, 2083, 2711, 206, 539, 740, 580, + /* 300 */ 2706, 747, 1818, 99, 392, 541, 402, 308, 497, 428, + /* 310 */ 1819, 691, 1874, 1721, 1722, 519, 2513, 2027, 19, 1908, + /* 320 */ 2532, 717, 308, 2570, 2705, 1799, 2551, 115, 2534, 782, + /* 330 */ 2536, 2537, 777, 2710, 800, 499, 495, 150, 689, 157, + /* 340 */ 2595, 2624, 2711, 206, 852, 440, 2620, 2706, 747, 1822, + /* 350 */ 1821, 895, 416, 687, 15, 685, 273, 272, 671, 670, + /* 360 */ 669, 2515, 2518, 527, 241, 661, 145, 665, 612, 308, + /* 370 */ 2091, 664, 800, 698, 531, 2349, 663, 668, 423, 422, + /* 380 */ 14, 13, 662, 2206, 1909, 658, 769, 1794, 2596, 1792, + /* 390 */ 1881, 1882, 739, 2360, 2339, 173, 567, 566, 565, 564, + /* 400 */ 563, 558, 557, 556, 555, 399, 2237, 469, 468, 545, + /* 410 */ 544, 543, 542, 536, 535, 534, 2041, 529, 528, 414, + /* 420 */ 2709, 1797, 1798, 520, 1640, 1641, 224, 1986, 1853, 1863, + /* 430 */ 1659, 736, 1800, 1580, 1581, 1880, 1883, 129, 2021, 308, + /* 440 */ 128, 127, 126, 125, 124, 123, 122, 121, 120, 1799, + /* 450 */ 1794, 129, 1792, 839, 128, 127, 126, 125, 124, 123, + /* 460 */ 122, 121, 120, 1652, 1653, 701, 36, 442, 1903, 1904, + /* 470 */ 1905, 1906, 1907, 1911, 1912, 1913, 1914, 733, 732, 1984, + /* 480 */ 1985, 1987, 1988, 1989, 1797, 1798, 1850, 1922, 1852, 1855, + /* 490 */ 1856, 1857, 1858, 1859, 1860, 1861, 1862, 774, 798, 797, + /* 500 */ 1873, 1875, 1876, 1877, 1878, 2, 12, 47, 45, 561, + /* 510 */ 2349, 2533, 197, 306, 175, 444, 243, 1793, 12, 367, + /* 520 */ 612, 699, 2091, 830, 761, 742, 737, 730, 726, 187, + /* 530 */ 1879, 2710, 1791, 2421, 2705, 35, 365, 75, 351, 898, + /* 540 */ 74, 40, 39, 619, 2412, 46, 44, 43, 42, 41, + /* 550 */ 394, 2322, 2551, 2709, 415, 353, 2353, 2706, 2707, 696, + /* 560 */ 1874, 229, 239, 591, 589, 586, 19, 2499, 1823, 778, + /* 570 */ 2094, 196, 1403, 1799, 1402, 46, 44, 43, 42, 41, + /* 580 */ 886, 882, 878, 874, 2220, 350, 2063, 758, 148, 40, + /* 590 */ 39, 278, 606, 46, 44, 43, 42, 41, 176, 895, + /* 600 */ 1803, 604, 15, 62, 600, 596, 2169, 1404, 702, 2532, + /* 610 */ 717, 2062, 2570, 2705, 29, 1821, 115, 2534, 782, 2536, + /* 620 */ 2537, 777, 888, 800, 796, 2231, 114, 614, 189, 323, + /* 630 */ 2624, 2711, 206, 611, 440, 2620, 2706, 747, 1881, 1882, + /* 640 */ 1822, 63, 2499, 701, 211, 671, 670, 669, 796, 2231, + /* 650 */ 758, 148, 661, 145, 665, 316, 317, 2655, 664, 717, + /* 660 */ 315, 792, 2705, 663, 668, 423, 422, 2499, 55, 662, + /* 670 */ 796, 2231, 658, 570, 226, 51, 1853, 1863, 174, 2170, + /* 680 */ 2711, 206, 1819, 1880, 1883, 2706, 747, 463, 2233, 1998, + /* 690 */ 513, 85, 84, 512, 758, 148, 219, 795, 1794, 716, + /* 700 */ 1792, 760, 204, 2632, 2633, 311, 146, 2637, 149, 504, + /* 710 */ 502, 2595, 310, 552, 749, 91, 626, 551, 90, 2218, + /* 720 */ 390, 703, 2412, 491, 288, 550, 488, 484, 480, 477, + /* 730 */ 505, 281, 1797, 1798, 1850, 231, 1852, 1855, 1856, 1857, + /* 740 */ 1858, 1859, 1860, 1861, 1862, 774, 798, 797, 1873, 1875, + /* 750 */ 1876, 1877, 1878, 2, 47, 45, 1884, 2281, 2282, 2533, + /* 760 */ 569, 230, 444, 2040, 1793, 205, 2632, 2633, 101, 146, + /* 770 */ 2637, 308, 779, 2213, 2093, 627, 2366, 1879, 306, 1791, + /* 780 */ 806, 805, 804, 803, 50, 89, 2533, 138, 137, 136, + /* 790 */ 135, 134, 133, 132, 131, 130, 796, 2231, 1818, 779, + /* 800 */ 2551, 2662, 762, 201, 96, 1672, 1673, 1874, 2306, 207, + /* 810 */ 2632, 2633, 2235, 146, 2637, 2499, 514, 778, 40, 39, + /* 820 */ 1799, 417, 46, 44, 43, 42, 41, 2551, 200, 40, + /* 830 */ 39, 2226, 60, 46, 44, 43, 42, 41, 741, 1957, + /* 840 */ 714, 1822, 2499, 308, 778, 1818, 895, 62, 2533, 48, + /* 850 */ 1671, 1674, 1889, 717, 2287, 2639, 2705, 2532, 1818, 1823, + /* 860 */ 2570, 779, 439, 2675, 115, 2534, 782, 2536, 2537, 777, + /* 870 */ 831, 800, 2285, 2278, 2711, 206, 2725, 1384, 2624, 2706, + /* 880 */ 747, 2635, 440, 2620, 2532, 1881, 1882, 2570, 12, 2551, + /* 890 */ 10, 115, 2534, 782, 2536, 2537, 777, 2207, 800, 796, + /* 900 */ 2231, 1382, 1383, 2725, 2499, 2624, 778, 40, 39, 440, + /* 910 */ 2620, 46, 44, 43, 42, 41, 284, 113, 456, 533, + /* 920 */ 1978, 40, 39, 1853, 1863, 46, 44, 43, 42, 41, + /* 930 */ 1880, 1883, 40, 39, 151, 1979, 46, 44, 43, 42, + /* 940 */ 41, 112, 507, 2223, 506, 1794, 2532, 1792, 1910, 2570, + /* 950 */ 109, 459, 2061, 115, 2534, 782, 2536, 2537, 777, 1854, + /* 960 */ 800, 773, 796, 2231, 2533, 2725, 656, 2624, 554, 553, + /* 970 */ 655, 440, 2620, 1484, 505, 835, 1977, 779, 2278, 1797, + /* 980 */ 1798, 1850, 546, 1852, 1855, 1856, 1857, 1858, 1859, 1860, + /* 990 */ 1861, 1862, 774, 798, 797, 1873, 1875, 1876, 1877, 1878, + /* 1000 */ 2, 47, 45, 2533, 202, 2551, 1854, 1997, 2499, 444, + /* 1010 */ 1496, 1793, 796, 2231, 1486, 308, 779, 1851, 728, 1854, + /* 1020 */ 2499, 1969, 778, 2287, 1879, 1495, 1791, 43, 42, 41, + /* 1030 */ 34, 449, 547, 837, 164, 163, 834, 833, 832, 161, + /* 1040 */ 1915, 2285, 2053, 1500, 2551, 2205, 837, 164, 163, 834, + /* 1050 */ 833, 832, 161, 187, 1874, 796, 2231, 1850, 1499, 2499, + /* 1060 */ 1823, 778, 2532, 2639, 1851, 2570, 100, 1799, 2509, 115, + /* 1070 */ 2534, 782, 2536, 2537, 777, 548, 800, 1851, 796, 2231, + /* 1080 */ 2354, 2599, 659, 2624, 1406, 1407, 1762, 440, 2620, 2634, + /* 1090 */ 2533, 361, 581, 895, 2264, 2513, 48, 1700, 628, 2060, + /* 1100 */ 2287, 2532, 360, 779, 2570, 2698, 1481, 172, 115, 2534, + /* 1110 */ 782, 2536, 2537, 777, 678, 800, 455, 454, 765, 1761, + /* 1120 */ 2725, 2668, 2624, 796, 2231, 583, 440, 2620, 466, 690, + /* 1130 */ 1950, 2551, 1881, 1882, 796, 2231, 173, 259, 796, 2231, + /* 1140 */ 2515, 2517, 441, 2228, 750, 274, 2499, 2236, 778, 458, + /* 1150 */ 457, 800, 2440, 182, 279, 2499, 796, 2231, 287, 796, + /* 1160 */ 2231, 681, 646, 642, 638, 634, 2059, 258, 675, 673, + /* 1170 */ 1853, 1863, 2287, 796, 2231, 271, 764, 1880, 1883, 320, + /* 1180 */ 464, 837, 164, 163, 834, 833, 832, 161, 2532, 107, + /* 1190 */ 2285, 2570, 1794, 793, 1792, 115, 2534, 782, 2536, 2537, + /* 1200 */ 777, 2058, 800, 2057, 796, 2231, 9, 2725, 97, 2624, + /* 1210 */ 2533, 256, 1822, 440, 2620, 2224, 71, 1818, 2056, 70, + /* 1220 */ 2055, 2054, 2499, 779, 794, 2643, 1797, 1798, 1850, 2051, + /* 1230 */ 1852, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 774, + /* 1240 */ 798, 797, 1873, 1875, 1876, 1877, 1878, 2, 47, 45, + /* 1250 */ 1439, 2551, 796, 2231, 2050, 772, 444, 2499, 1793, 2499, + /* 1260 */ 660, 796, 2231, 648, 647, 2049, 2499, 2048, 778, 2047, + /* 1270 */ 2046, 1879, 347, 1791, 2499, 753, 2499, 2499, 246, 469, + /* 1280 */ 468, 467, 2045, 2044, 1479, 2499, 2332, 255, 248, 1807, + /* 1290 */ 2043, 1440, 667, 666, 253, 623, 650, 649, 864, 862, + /* 1300 */ 836, 1874, 1879, 2278, 1800, 2068, 890, 77, 2532, 96, + /* 1310 */ 2499, 2570, 3, 245, 1799, 115, 2534, 782, 2536, 2537, + /* 1320 */ 777, 2499, 800, 2499, 53, 2499, 2499, 2725, 523, 2624, + /* 1330 */ 2287, 1386, 1874, 440, 2620, 2287, 2227, 1817, 2499, 2499, + /* 1340 */ 895, 162, 2533, 15, 162, 1799, 2499, 1545, 791, 2644, + /* 1350 */ 1942, 264, 734, 2286, 262, 779, 2208, 693, 162, 692, + /* 1360 */ 88, 1536, 829, 828, 827, 1540, 826, 1542, 1543, 825, + /* 1370 */ 822, 771, 1551, 819, 1553, 1554, 816, 813, 810, 1881, + /* 1380 */ 1882, 213, 2113, 2551, 397, 396, 2111, 141, 266, 154, + /* 1390 */ 268, 265, 270, 267, 451, 269, 724, 301, 2499, 87, + /* 1400 */ 778, 2102, 1801, 1949, 672, 2100, 2520, 1879, 674, 460, + /* 1410 */ 751, 2030, 2031, 14, 13, 143, 1716, 1853, 1863, 54, + /* 1420 */ 49, 1900, 49, 676, 1880, 1883, 190, 679, 162, 326, + /* 1430 */ 325, 1823, 64, 1719, 295, 49, 1851, 1874, 1942, 1794, + /* 1440 */ 2532, 1792, 49, 2570, 328, 327, 2552, 115, 2534, 782, + /* 1450 */ 2536, 2537, 777, 314, 800, 2533, 76, 2167, 159, 2597, + /* 1460 */ 162, 2624, 330, 329, 2522, 440, 2620, 2166, 779, 73, + /* 1470 */ 1808, 1973, 1803, 1797, 1798, 1850, 808, 1852, 1855, 1856, + /* 1480 */ 1857, 1858, 1859, 1860, 1861, 1862, 774, 798, 797, 1873, + /* 1490 */ 1875, 1876, 1877, 1878, 2, 1983, 2551, 1982, 332, 331, + /* 1500 */ 2358, 293, 2084, 763, 1811, 1813, 160, 1916, 334, 333, + /* 1510 */ 1864, 2499, 2658, 778, 336, 335, 162, 1669, 798, 797, + /* 1520 */ 1873, 1875, 1876, 1877, 1878, 142, 338, 337, 318, 731, + /* 1530 */ 844, 788, 2533, 322, 845, 1527, 340, 339, 159, 342, + /* 1540 */ 341, 344, 343, 754, 359, 779, 346, 345, 431, 435, + /* 1550 */ 738, 1558, 785, 2532, 1458, 473, 2570, 2359, 1456, 2090, + /* 1560 */ 115, 2534, 782, 2536, 2537, 777, 2275, 800, 710, 2659, + /* 1570 */ 1804, 2669, 768, 2551, 2624, 1784, 2533, 1760, 440, 2620, + /* 1580 */ 759, 1562, 300, 303, 307, 2192, 476, 5, 2499, 779, + /* 1590 */ 778, 1569, 481, 411, 489, 490, 1826, 500, 501, 215, + /* 1600 */ 1567, 214, 503, 217, 1693, 2533, 354, 453, 452, 1785, + /* 1610 */ 1816, 517, 1817, 165, 524, 228, 584, 2551, 779, 530, + /* 1620 */ 526, 532, 572, 798, 797, 1873, 1875, 1876, 1877, 1878, + /* 1630 */ 2532, 537, 2499, 2570, 778, 2533, 549, 116, 2534, 782, + /* 1640 */ 2536, 2537, 777, 560, 800, 2351, 2551, 568, 776, 562, + /* 1650 */ 571, 2624, 573, 582, 234, 2623, 2620, 585, 233, 587, + /* 1660 */ 588, 2499, 236, 778, 590, 592, 1824, 607, 4, 608, + /* 1670 */ 615, 618, 616, 1819, 2532, 244, 2551, 2570, 93, 2533, + /* 1680 */ 620, 116, 2534, 782, 2536, 2537, 777, 247, 800, 1825, + /* 1690 */ 621, 2499, 779, 778, 1827, 2624, 622, 624, 250, 770, + /* 1700 */ 2620, 252, 1828, 780, 630, 94, 2570, 651, 2367, 2533, + /* 1710 */ 116, 2534, 782, 2536, 2537, 777, 95, 800, 257, 118, + /* 1720 */ 2551, 387, 779, 653, 2624, 682, 2221, 2430, 404, 2620, + /* 1730 */ 261, 2217, 263, 2532, 167, 2499, 2570, 778, 2533, 117, + /* 1740 */ 383, 2534, 782, 2536, 2537, 777, 775, 800, 766, 2589, + /* 1750 */ 2551, 779, 2219, 2214, 168, 169, 683, 2427, 695, 2426, + /* 1760 */ 697, 98, 155, 280, 1820, 2499, 355, 778, 705, 704, + /* 1770 */ 285, 712, 2413, 735, 786, 721, 706, 2532, 709, 2551, + /* 1780 */ 2570, 711, 283, 2646, 178, 2534, 782, 2536, 2537, 777, + /* 1790 */ 2674, 800, 8, 2673, 2499, 290, 778, 292, 744, 294, + /* 1800 */ 181, 297, 722, 720, 719, 752, 299, 2532, 296, 755, + /* 1810 */ 2570, 2728, 298, 436, 179, 2534, 782, 2536, 2537, 777, + /* 1820 */ 1942, 800, 147, 1821, 1947, 1, 718, 2665, 193, 1945, + /* 1830 */ 61, 2704, 2640, 784, 209, 309, 2532, 156, 2381, 2570, + /* 1840 */ 2533, 356, 357, 116, 2534, 782, 2536, 2537, 777, 2605, + /* 1850 */ 800, 302, 2380, 779, 2379, 446, 789, 2624, 2533, 790, + /* 1860 */ 158, 358, 2621, 2491, 106, 2232, 2490, 108, 748, 2726, + /* 1870 */ 1361, 779, 362, 2486, 802, 2485, 2477, 2476, 2468, 2467, + /* 1880 */ 349, 2551, 2483, 2482, 2533, 2474, 2473, 2462, 2461, 2480, + /* 1890 */ 889, 2479, 2471, 2470, 2459, 2458, 2499, 779, 778, 2551, + /* 1900 */ 892, 894, 2456, 364, 366, 2455, 166, 2279, 386, 52, + /* 1910 */ 2451, 374, 385, 2450, 2499, 375, 778, 409, 410, 2449, + /* 1920 */ 82, 2444, 398, 478, 479, 2551, 1744, 1745, 212, 2442, + /* 1930 */ 483, 485, 486, 487, 1743, 2441, 433, 412, 2532, 2439, + /* 1940 */ 2499, 2570, 778, 492, 2438, 178, 2534, 782, 2536, 2537, + /* 1950 */ 777, 494, 800, 496, 2436, 498, 2532, 2437, 1732, 2570, + /* 1960 */ 2417, 216, 434, 384, 2534, 782, 2536, 2537, 777, 2416, + /* 1970 */ 800, 2533, 218, 1696, 83, 1695, 2394, 2393, 2392, 510, + /* 1980 */ 511, 2391, 2532, 2390, 779, 2570, 2341, 2533, 2666, 384, + /* 1990 */ 2534, 782, 2536, 2537, 777, 515, 800, 1639, 2338, 518, + /* 2000 */ 779, 2337, 2331, 2533, 521, 2328, 522, 221, 2327, 86, + /* 2010 */ 2326, 2325, 2551, 2330, 223, 2329, 776, 2324, 2323, 2321, + /* 2020 */ 2320, 2319, 225, 538, 2318, 540, 2316, 2499, 2551, 778, + /* 2030 */ 2315, 2314, 2313, 2336, 2312, 2311, 2310, 2334, 2317, 2309, + /* 2040 */ 2308, 2307, 2305, 2499, 2551, 778, 2304, 2303, 2302, 2301, + /* 2050 */ 2300, 2299, 227, 2298, 92, 2297, 2296, 2295, 2335, 2499, + /* 2060 */ 2333, 778, 2533, 2294, 2293, 1645, 2292, 2291, 232, 2532, + /* 2070 */ 575, 2290, 2570, 577, 2289, 779, 377, 2534, 782, 2536, + /* 2080 */ 2537, 777, 2288, 800, 1497, 2532, 2132, 1501, 2570, 240, + /* 2090 */ 235, 1493, 179, 2534, 782, 2536, 2537, 777, 2131, 800, + /* 2100 */ 2130, 2532, 400, 2551, 2570, 593, 2124, 2117, 383, 2534, + /* 2110 */ 782, 2536, 2537, 777, 2128, 800, 2125, 2590, 2499, 401, + /* 2120 */ 778, 594, 743, 595, 237, 597, 238, 598, 601, 599, + /* 2130 */ 602, 2104, 605, 2079, 603, 79, 188, 1385, 2078, 2533, + /* 2140 */ 443, 2415, 242, 2519, 80, 198, 613, 2727, 2411, 2401, + /* 2150 */ 2389, 249, 779, 251, 2388, 2365, 2209, 254, 2127, 2123, + /* 2160 */ 2532, 631, 1432, 2570, 632, 2121, 635, 384, 2534, 782, + /* 2170 */ 2536, 2537, 777, 636, 800, 2119, 633, 2533, 637, 639, + /* 2180 */ 2551, 640, 641, 2116, 643, 645, 644, 2099, 2097, 2098, + /* 2190 */ 779, 260, 72, 1573, 1574, 2499, 2096, 778, 2533, 2075, + /* 2200 */ 2211, 2210, 1469, 1483, 1482, 1480, 1478, 1477, 2114, 1476, + /* 2210 */ 1475, 779, 861, 1474, 863, 1471, 424, 445, 2551, 1470, + /* 2220 */ 2112, 1468, 2103, 2101, 425, 426, 427, 677, 2074, 680, + /* 2230 */ 2073, 2072, 684, 2499, 2071, 778, 2070, 2532, 688, 2551, + /* 2240 */ 2570, 119, 686, 1726, 384, 2534, 782, 2536, 2537, 777, + /* 2250 */ 1728, 800, 1725, 1730, 2499, 2414, 778, 2410, 28, 2533, + /* 2260 */ 67, 282, 1702, 56, 1704, 2400, 707, 57, 708, 2387, + /* 2270 */ 2386, 2710, 779, 20, 17, 694, 723, 6, 2570, 7, + /* 2280 */ 432, 171, 379, 2534, 782, 2536, 2537, 777, 65, 800, + /* 2290 */ 286, 713, 30, 1706, 1681, 1680, 2532, 289, 2533, 2570, + /* 2300 */ 2551, 2000, 727, 369, 2534, 782, 2536, 2537, 777, 715, + /* 2310 */ 800, 779, 21, 22, 2533, 2499, 725, 778, 1974, 291, + /* 2320 */ 729, 192, 1981, 203, 2520, 180, 191, 779, 32, 24, + /* 2330 */ 2015, 31, 2533, 305, 1968, 2014, 437, 2019, 2018, 2551, + /* 2340 */ 81, 438, 59, 2020, 2385, 779, 2021, 2364, 103, 1939, + /* 2350 */ 25, 183, 23, 1938, 2499, 2551, 778, 2532, 102, 1891, + /* 2360 */ 2570, 1890, 13, 1809, 368, 2534, 782, 2536, 2537, 777, + /* 2370 */ 2499, 800, 778, 2551, 1901, 1866, 184, 11, 38, 194, + /* 2380 */ 1865, 1835, 2363, 58, 16, 26, 1843, 104, 2499, 27, + /* 2390 */ 778, 313, 781, 801, 1976, 18, 2532, 195, 319, 2570, + /* 2400 */ 324, 69, 2036, 370, 2534, 782, 2536, 2537, 777, 2035, + /* 2410 */ 800, 1868, 2532, 109, 105, 2570, 2034, 321, 2575, 376, + /* 2420 */ 2534, 782, 2536, 2537, 777, 2574, 800, 799, 68, 807, + /* 2430 */ 2532, 1559, 462, 2570, 2533, 787, 809, 380, 2534, 782, + /* 2440 */ 2536, 2537, 777, 1556, 800, 811, 812, 779, 1555, 814, + /* 2450 */ 2533, 1552, 2033, 815, 817, 818, 820, 1546, 1544, 821, + /* 2460 */ 823, 824, 1550, 779, 1549, 1548, 2533, 348, 110, 111, + /* 2470 */ 1547, 1564, 1568, 1430, 78, 2551, 1465, 838, 1462, 779, + /* 2480 */ 1461, 1460, 1459, 1457, 1455, 1454, 849, 1453, 1491, 1490, + /* 2490 */ 2499, 2551, 778, 210, 851, 1451, 1450, 1448, 1449, 1447, + /* 2500 */ 1446, 1445, 1487, 1485, 1442, 1441, 2499, 2551, 778, 1438, + /* 2510 */ 1437, 1436, 2122, 1435, 871, 2120, 872, 2118, 875, 879, + /* 2520 */ 873, 876, 2499, 2115, 778, 2533, 877, 881, 883, 885, + /* 2530 */ 880, 2095, 2532, 887, 884, 2570, 1374, 2069, 779, 371, + /* 2540 */ 2534, 782, 2536, 2537, 777, 893, 800, 1362, 2532, 891, + /* 2550 */ 352, 2570, 2533, 897, 1795, 381, 2534, 782, 2536, 2537, + /* 2560 */ 777, 363, 800, 2039, 2532, 779, 2551, 2570, 896, 2039, + /* 2570 */ 2039, 372, 2534, 782, 2536, 2537, 777, 2039, 800, 2039, + /* 2580 */ 2039, 2499, 2039, 778, 2039, 2039, 2039, 2039, 2039, 2039, + /* 2590 */ 2039, 2039, 2039, 2551, 2039, 2039, 2039, 2039, 2039, 2039, + /* 2600 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2533, 2499, 2039, + /* 2610 */ 778, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 2620 */ 779, 2039, 2039, 2532, 2039, 2039, 2570, 2039, 2039, 2039, + /* 2630 */ 382, 2534, 782, 2536, 2537, 777, 2039, 800, 2039, 2039, + /* 2640 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2551, 2039, + /* 2650 */ 2532, 2039, 2039, 2570, 2039, 2039, 2039, 373, 2534, 782, + /* 2660 */ 2536, 2537, 777, 2499, 800, 778, 2533, 2039, 2039, 2039, + /* 2670 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 779, + /* 2680 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2533, + /* 2690 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 2700 */ 2039, 2039, 779, 2039, 2039, 2532, 2039, 2551, 2570, 2039, + /* 2710 */ 2039, 2039, 388, 2534, 782, 2536, 2537, 777, 2039, 800, + /* 2720 */ 2039, 2039, 2499, 2039, 778, 2039, 2039, 2533, 2039, 2039, + /* 2730 */ 2551, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 2740 */ 779, 2039, 2039, 2039, 2039, 2499, 2039, 778, 2039, 2039, + /* 2750 */ 2533, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 2760 */ 2039, 2039, 2039, 779, 2532, 2039, 2533, 2570, 2551, 2039, + /* 2770 */ 2039, 389, 2534, 782, 2536, 2537, 777, 2039, 800, 779, + /* 2780 */ 2039, 2039, 2039, 2499, 2039, 778, 2039, 2532, 2039, 2039, + /* 2790 */ 2570, 2551, 2039, 2039, 2545, 2534, 782, 2536, 2537, 777, + /* 2800 */ 2039, 800, 2039, 2039, 2039, 2039, 2499, 2551, 778, 2039, + /* 2810 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 2820 */ 2039, 2039, 2499, 2039, 778, 2532, 2039, 2039, 2570, 2039, + /* 2830 */ 2039, 2039, 2544, 2534, 782, 2536, 2537, 777, 2039, 800, + /* 2840 */ 2039, 2533, 2039, 2039, 2039, 2039, 2039, 2039, 2532, 2039, + /* 2850 */ 2039, 2570, 2039, 2039, 779, 2543, 2534, 782, 2536, 2537, + /* 2860 */ 777, 2039, 800, 2039, 2532, 2039, 2039, 2570, 2533, 2039, + /* 2870 */ 2039, 406, 2534, 782, 2536, 2537, 777, 2039, 800, 2039, + /* 2880 */ 2039, 779, 2551, 2039, 2039, 2039, 2039, 2533, 2039, 2039, + /* 2890 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2499, 2039, 778, + /* 2900 */ 779, 2039, 2039, 2533, 2039, 2039, 2039, 2039, 2039, 2551, + /* 2910 */ 2039, 2039, 2039, 2039, 2039, 2039, 779, 2039, 2039, 2039, + /* 2920 */ 2039, 2039, 2039, 2039, 2499, 2039, 778, 2039, 2551, 2039, + /* 2930 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2532, + /* 2940 */ 2039, 2039, 2570, 2499, 2551, 778, 407, 2534, 782, 2536, + /* 2950 */ 2537, 777, 2039, 800, 2039, 2039, 2039, 2039, 2039, 2499, + /* 2960 */ 2039, 778, 2039, 2039, 2039, 2039, 2532, 2039, 2039, 2570, + /* 2970 */ 2039, 2039, 2039, 403, 2534, 782, 2536, 2537, 777, 2039, + /* 2980 */ 800, 2039, 2039, 2039, 2039, 2532, 2039, 2039, 2570, 2039, + /* 2990 */ 2039, 2039, 408, 2534, 782, 2536, 2537, 777, 2039, 800, + /* 3000 */ 2039, 780, 2039, 2039, 2570, 2039, 2039, 2039, 379, 2534, + /* 3010 */ 782, 2536, 2537, 777, 2039, 800, 2039, 2039, 2039, 2533, + /* 3020 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 3030 */ 2039, 2039, 779, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 3040 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 3050 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 3060 */ 2551, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 3070 */ 2039, 2039, 2039, 2039, 2039, 2499, 2039, 778, 2039, 2039, + /* 3080 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 3090 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 3100 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + /* 3110 */ 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2532, 2039, 2039, + /* 3120 */ 2570, 2039, 2039, 2039, 378, 2534, 782, 2536, 2537, 777, + /* 3130 */ 2039, 800, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 368, 402, 415, 371, 372, 418, 419, 373, 402, 410, @@ -1041,119 +1041,119 @@ static const YYCODETYPE yy_lookahead[] = { /* 1410 */ 299, 143, 144, 1, 2, 377, 108, 181, 182, 108, /* 1420 */ 33, 237, 33, 22, 188, 189, 33, 22, 33, 12, /* 1430 */ 13, 239, 33, 108, 504, 33, 239, 65, 274, 203, - /* 1440 */ 459, 205, 33, 462, 402, 390, 390, 466, 467, 468, - /* 1450 */ 469, 470, 471, 33, 473, 361, 33, 430, 33, 478, - /* 1460 */ 33, 480, 33, 33, 107, 484, 485, 33, 374, 33, + /* 1440 */ 459, 205, 33, 462, 12, 13, 402, 466, 467, 468, + /* 1450 */ 469, 470, 471, 33, 473, 361, 33, 390, 33, 478, + /* 1460 */ 33, 480, 12, 13, 107, 484, 485, 390, 374, 33, /* 1470 */ 203, 108, 205, 237, 238, 239, 33, 241, 242, 243, /* 1480 */ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - /* 1490 */ 254, 255, 256, 257, 258, 108, 402, 108, 430, 372, - /* 1500 */ 510, 108, 13, 108, 237, 238, 33, 108, 510, 510, - /* 1510 */ 108, 417, 440, 419, 510, 13, 377, 108, 251, 252, - /* 1520 */ 253, 254, 255, 256, 257, 430, 37, 374, 108, 416, - /* 1530 */ 448, 108, 361, 108, 430, 108, 430, 108, 108, 37, - /* 1540 */ 494, 515, 108, 301, 108, 374, 486, 497, 392, 278, - /* 1550 */ 442, 108, 51, 459, 461, 42, 462, 460, 20, 218, - /* 1560 */ 466, 467, 468, 469, 470, 471, 20, 473, 453, 382, - /* 1570 */ 205, 453, 478, 402, 480, 203, 361, 205, 484, 485, - /* 1580 */ 458, 108, 382, 373, 201, 444, 20, 45, 417, 374, - /* 1590 */ 419, 374, 426, 374, 426, 180, 423, 373, 426, 374, - /* 1600 */ 373, 423, 423, 423, 105, 361, 386, 235, 236, 237, - /* 1610 */ 103, 385, 373, 102, 384, 20, 366, 402, 374, 373, - /* 1620 */ 50, 373, 373, 251, 252, 253, 254, 255, 256, 257, - /* 1630 */ 459, 370, 417, 462, 419, 361, 366, 466, 467, 468, - /* 1640 */ 469, 470, 471, 370, 473, 382, 402, 453, 374, 20, - /* 1650 */ 419, 480, 20, 20, 382, 484, 485, 382, 375, 443, - /* 1660 */ 375, 417, 433, 419, 20, 373, 382, 366, 402, 382, - /* 1670 */ 382, 382, 382, 364, 459, 417, 402, 462, 402, 361, - /* 1680 */ 373, 466, 467, 468, 469, 470, 471, 364, 473, 222, - /* 1690 */ 366, 417, 374, 419, 417, 480, 402, 402, 402, 484, - /* 1700 */ 485, 402, 402, 459, 402, 402, 462, 402, 402, 361, - /* 1710 */ 466, 467, 468, 469, 470, 471, 457, 473, 107, 455, - /* 1720 */ 402, 417, 374, 380, 480, 20, 209, 208, 484, 485, - /* 1730 */ 380, 373, 417, 459, 453, 417, 462, 419, 361, 419, + /* 1490 */ 254, 255, 256, 257, 258, 108, 402, 108, 12, 13, + /* 1500 */ 430, 108, 372, 108, 237, 238, 33, 108, 12, 13, + /* 1510 */ 108, 417, 430, 419, 12, 13, 33, 108, 251, 252, + /* 1520 */ 253, 254, 255, 256, 257, 33, 12, 13, 108, 510, + /* 1530 */ 13, 108, 361, 108, 13, 108, 12, 13, 33, 12, + /* 1540 */ 13, 12, 13, 301, 108, 374, 12, 13, 440, 510, + /* 1550 */ 510, 108, 510, 459, 37, 377, 462, 430, 37, 374, + /* 1560 */ 466, 467, 468, 469, 470, 471, 416, 473, 448, 430, + /* 1570 */ 205, 430, 478, 402, 480, 203, 361, 205, 484, 485, + /* 1580 */ 494, 108, 486, 515, 497, 392, 442, 278, 417, 374, + /* 1590 */ 419, 108, 51, 461, 42, 460, 20, 218, 453, 382, + /* 1600 */ 108, 458, 453, 382, 201, 361, 444, 235, 236, 237, + /* 1610 */ 20, 373, 20, 108, 374, 45, 105, 402, 374, 374, + /* 1620 */ 426, 426, 180, 251, 252, 253, 254, 255, 256, 257, + /* 1630 */ 459, 423, 417, 462, 419, 361, 373, 466, 467, 468, + /* 1640 */ 469, 470, 471, 374, 473, 373, 402, 423, 374, 426, + /* 1650 */ 423, 480, 423, 103, 373, 484, 485, 386, 385, 102, + /* 1660 */ 384, 417, 373, 419, 373, 373, 20, 366, 50, 370, + /* 1670 */ 366, 453, 370, 20, 459, 382, 402, 462, 382, 361, + /* 1680 */ 419, 466, 467, 468, 469, 470, 471, 382, 473, 20, + /* 1690 */ 375, 417, 374, 419, 20, 480, 443, 375, 382, 484, + /* 1700 */ 485, 382, 20, 459, 373, 382, 462, 366, 433, 361, + /* 1710 */ 466, 467, 468, 469, 470, 471, 382, 473, 382, 373, + /* 1720 */ 402, 366, 374, 402, 480, 364, 402, 417, 484, 485, + /* 1730 */ 402, 402, 402, 459, 402, 417, 462, 419, 361, 402, /* 1740 */ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - /* 1750 */ 402, 374, 286, 285, 503, 503, 442, 435, 294, 506, - /* 1760 */ 505, 449, 452, 450, 435, 417, 194, 419, 503, 279, - /* 1770 */ 296, 502, 295, 442, 303, 300, 298, 459, 516, 402, - /* 1780 */ 462, 374, 274, 523, 466, 467, 468, 469, 470, 471, - /* 1790 */ 20, 473, 501, 500, 417, 465, 419, 117, 276, 375, - /* 1800 */ 107, 380, 380, 435, 483, 417, 435, 459, 417, 417, - /* 1810 */ 462, 417, 431, 417, 466, 467, 468, 469, 470, 471, - /* 1820 */ 186, 473, 380, 496, 498, 380, 508, 509, 374, 398, - /* 1830 */ 417, 417, 107, 517, 373, 407, 459, 380, 38, 462, - /* 1840 */ 361, 22, 366, 466, 467, 468, 469, 470, 471, 417, - /* 1850 */ 473, 363, 367, 374, 454, 445, 396, 480, 361, 396, - /* 1860 */ 404, 396, 485, 381, 359, 0, 0, 0, 520, 521, - /* 1870 */ 45, 374, 0, 436, 436, 37, 228, 37, 37, 37, - /* 1880 */ 228, 402, 0, 37, 361, 37, 228, 37, 0, 228, - /* 1890 */ 0, 37, 0, 37, 0, 22, 417, 374, 419, 402, - /* 1900 */ 0, 37, 223, 0, 0, 211, 211, 205, 212, 203, - /* 1910 */ 0, 0, 0, 199, 417, 198, 419, 0, 0, 148, - /* 1920 */ 49, 0, 37, 49, 0, 402, 0, 51, 37, 0, - /* 1930 */ 49, 0, 45, 0, 0, 0, 439, 22, 459, 0, - /* 1940 */ 417, 462, 419, 0, 49, 466, 467, 468, 469, 470, - /* 1950 */ 471, 0, 473, 166, 0, 166, 459, 0, 0, 462, - /* 1960 */ 0, 0, 439, 466, 467, 468, 469, 470, 471, 37, - /* 1970 */ 473, 361, 0, 0, 0, 0, 0, 0, 0, 0, - /* 1980 */ 0, 0, 459, 0, 374, 462, 0, 361, 509, 466, - /* 1990 */ 467, 468, 469, 470, 471, 0, 473, 0, 0, 0, - /* 2000 */ 374, 0, 0, 361, 49, 0, 0, 45, 0, 0, - /* 2010 */ 0, 0, 402, 0, 0, 0, 374, 0, 148, 0, - /* 2020 */ 0, 0, 147, 146, 0, 22, 22, 417, 402, 419, - /* 2030 */ 0, 65, 50, 37, 50, 0, 0, 0, 0, 51, - /* 2040 */ 0, 51, 42, 417, 402, 419, 0, 0, 0, 37, - /* 2050 */ 65, 0, 65, 37, 0, 0, 0, 14, 51, 417, - /* 2060 */ 42, 419, 361, 37, 42, 37, 33, 42, 45, 459, - /* 2070 */ 43, 42, 462, 42, 194, 374, 466, 467, 468, 469, - /* 2080 */ 470, 471, 0, 473, 0, 459, 0, 0, 462, 37, - /* 2090 */ 49, 49, 466, 467, 468, 469, 470, 471, 49, 473, - /* 2100 */ 0, 459, 49, 402, 462, 37, 72, 0, 466, 467, - /* 2110 */ 468, 469, 470, 471, 51, 473, 42, 475, 417, 0, - /* 2120 */ 419, 51, 512, 42, 0, 37, 51, 42, 0, 37, - /* 2130 */ 51, 0, 42, 0, 0, 0, 0, 0, 37, 361, - /* 2140 */ 439, 0, 22, 37, 0, 113, 37, 521, 37, 37, - /* 2150 */ 37, 37, 374, 37, 115, 37, 33, 0, 33, 37, - /* 2160 */ 459, 22, 22, 462, 37, 22, 37, 466, 467, 468, - /* 2170 */ 469, 470, 471, 0, 473, 22, 0, 361, 22, 53, - /* 2180 */ 402, 0, 37, 0, 0, 37, 0, 37, 0, 22, - /* 2190 */ 374, 20, 37, 0, 0, 417, 37, 419, 361, 37, - /* 2200 */ 49, 108, 107, 107, 210, 37, 0, 22, 0, 22, - /* 2210 */ 0, 374, 3, 33, 37, 107, 280, 439, 402, 37, - /* 2220 */ 50, 280, 50, 108, 107, 33, 3, 183, 183, 108, - /* 2230 */ 33, 33, 33, 417, 33, 419, 186, 459, 108, 402, - /* 2240 */ 462, 183, 183, 105, 466, 467, 468, 469, 470, 471, - /* 2250 */ 190, 473, 183, 107, 417, 190, 419, 103, 37, 361, - /* 2260 */ 108, 49, 49, 206, 37, 107, 37, 107, 107, 280, - /* 2270 */ 37, 108, 374, 107, 37, 459, 37, 108, 462, 49, - /* 2280 */ 33, 49, 466, 467, 468, 469, 470, 471, 0, 473, - /* 2290 */ 0, 42, 33, 2, 22, 105, 459, 108, 361, 462, - /* 2300 */ 402, 105, 107, 466, 467, 468, 469, 470, 471, 237, - /* 2310 */ 473, 374, 108, 108, 361, 417, 49, 419, 49, 108, - /* 2320 */ 22, 107, 260, 108, 107, 107, 107, 374, 108, 187, - /* 2330 */ 108, 240, 361, 108, 273, 107, 0, 42, 107, 402, - /* 2340 */ 116, 107, 107, 49, 108, 374, 22, 107, 107, 107, - /* 2350 */ 185, 107, 22, 22, 417, 402, 419, 459, 108, 37, - /* 2360 */ 462, 107, 117, 37, 466, 467, 468, 469, 470, 471, - /* 2370 */ 417, 473, 419, 402, 108, 37, 108, 107, 37, 108, - /* 2380 */ 107, 37, 107, 37, 108, 107, 37, 108, 417, 107, - /* 2390 */ 419, 128, 128, 128, 107, 33, 459, 37, 334, 462, - /* 2400 */ 107, 22, 128, 466, 467, 468, 469, 470, 471, 107, - /* 2410 */ 473, 72, 459, 71, 37, 462, 101, 37, 37, 466, - /* 2420 */ 467, 468, 469, 470, 471, 37, 473, 37, 37, 37, - /* 2430 */ 459, 37, 37, 462, 361, 78, 78, 466, 467, 468, - /* 2440 */ 469, 470, 471, 33, 473, 37, 101, 374, 37, 37, - /* 2450 */ 361, 22, 37, 37, 37, 37, 78, 37, 37, 37, - /* 2460 */ 37, 22, 37, 374, 0, 37, 361, 0, 42, 37, - /* 2470 */ 51, 0, 42, 37, 0, 402, 42, 37, 51, 374, - /* 2480 */ 42, 0, 51, 37, 51, 37, 0, 22, 33, 21, - /* 2490 */ 417, 402, 419, 524, 22, 22, 20, 22, 21, 524, - /* 2500 */ 524, 524, 524, 524, 524, 524, 417, 402, 419, 524, - /* 2510 */ 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, - /* 2520 */ 524, 524, 417, 524, 419, 361, 524, 524, 524, 524, - /* 2530 */ 524, 524, 459, 524, 524, 462, 524, 524, 374, 466, - /* 2540 */ 467, 468, 469, 470, 471, 524, 473, 524, 459, 524, - /* 2550 */ 524, 462, 361, 524, 524, 466, 467, 468, 469, 470, - /* 2560 */ 471, 524, 473, 524, 459, 374, 402, 462, 524, 524, + /* 1750 */ 402, 374, 402, 402, 402, 402, 364, 417, 222, 417, + /* 1760 */ 457, 107, 455, 380, 20, 417, 453, 419, 209, 208, + /* 1770 */ 380, 373, 452, 286, 285, 417, 450, 459, 419, 402, + /* 1780 */ 462, 442, 449, 506, 466, 467, 468, 469, 470, 471, + /* 1790 */ 503, 473, 294, 503, 417, 435, 419, 435, 194, 505, + /* 1800 */ 503, 501, 296, 295, 279, 298, 442, 459, 502, 300, + /* 1810 */ 462, 523, 500, 303, 466, 467, 468, 469, 470, 471, + /* 1820 */ 274, 473, 374, 20, 117, 498, 508, 509, 375, 276, + /* 1830 */ 107, 517, 465, 417, 496, 380, 459, 380, 417, 462, + /* 1840 */ 361, 435, 435, 466, 467, 468, 469, 470, 471, 483, + /* 1850 */ 473, 516, 417, 374, 417, 417, 186, 480, 361, 431, + /* 1860 */ 380, 398, 485, 417, 380, 374, 417, 107, 520, 521, + /* 1870 */ 22, 374, 373, 417, 407, 417, 417, 417, 417, 417, + /* 1880 */ 380, 402, 417, 417, 361, 417, 417, 417, 417, 417, + /* 1890 */ 38, 417, 417, 417, 417, 417, 417, 374, 419, 402, + /* 1900 */ 363, 366, 417, 381, 359, 417, 367, 417, 454, 445, + /* 1910 */ 0, 396, 396, 0, 417, 396, 419, 436, 436, 0, + /* 1920 */ 45, 0, 404, 37, 228, 402, 37, 37, 37, 0, + /* 1930 */ 228, 37, 37, 228, 37, 0, 439, 228, 459, 0, + /* 1940 */ 417, 462, 419, 37, 0, 466, 467, 468, 469, 470, + /* 1950 */ 471, 37, 473, 22, 0, 37, 459, 0, 223, 462, + /* 1960 */ 0, 211, 439, 466, 467, 468, 469, 470, 471, 0, + /* 1970 */ 473, 361, 211, 205, 212, 203, 0, 0, 0, 199, + /* 1980 */ 198, 0, 459, 0, 374, 462, 148, 361, 509, 466, + /* 1990 */ 467, 468, 469, 470, 471, 49, 473, 49, 0, 37, + /* 2000 */ 374, 0, 0, 361, 37, 0, 51, 49, 0, 45, + /* 2010 */ 0, 0, 402, 0, 49, 0, 374, 0, 0, 0, + /* 2020 */ 0, 0, 166, 37, 0, 166, 0, 417, 402, 419, + /* 2030 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 2040 */ 0, 0, 0, 417, 402, 419, 0, 0, 0, 0, + /* 2050 */ 0, 0, 49, 0, 45, 0, 0, 0, 0, 417, + /* 2060 */ 0, 419, 361, 0, 0, 22, 0, 0, 148, 459, + /* 2070 */ 147, 0, 462, 146, 0, 374, 466, 467, 468, 469, + /* 2080 */ 470, 471, 0, 473, 22, 459, 0, 22, 462, 45, + /* 2090 */ 65, 37, 466, 467, 468, 469, 470, 471, 0, 473, + /* 2100 */ 0, 459, 50, 402, 462, 37, 0, 0, 466, 467, + /* 2110 */ 468, 469, 470, 471, 0, 473, 0, 475, 417, 50, + /* 2120 */ 419, 51, 512, 42, 65, 37, 65, 51, 37, 42, + /* 2130 */ 51, 0, 37, 0, 42, 42, 33, 14, 0, 361, + /* 2140 */ 439, 0, 43, 49, 42, 49, 49, 521, 0, 0, + /* 2150 */ 0, 42, 374, 194, 0, 0, 0, 49, 0, 0, + /* 2160 */ 459, 37, 72, 462, 51, 0, 37, 466, 467, 468, + /* 2170 */ 469, 470, 471, 51, 473, 0, 42, 361, 42, 37, + /* 2180 */ 402, 51, 42, 0, 37, 42, 51, 0, 0, 0, + /* 2190 */ 374, 113, 115, 22, 37, 417, 0, 419, 361, 0, + /* 2200 */ 0, 0, 22, 37, 37, 37, 37, 37, 0, 37, + /* 2210 */ 37, 374, 33, 37, 33, 37, 22, 439, 402, 37, + /* 2220 */ 0, 37, 0, 0, 22, 22, 22, 53, 0, 37, + /* 2230 */ 0, 0, 37, 417, 0, 419, 0, 459, 22, 402, + /* 2240 */ 462, 20, 37, 37, 466, 467, 468, 469, 470, 471, + /* 2250 */ 37, 473, 37, 108, 417, 0, 419, 0, 107, 361, + /* 2260 */ 107, 49, 37, 183, 22, 0, 22, 183, 183, 0, + /* 2270 */ 0, 3, 374, 33, 280, 459, 37, 50, 462, 50, + /* 2280 */ 37, 206, 466, 467, 468, 469, 470, 471, 3, 473, + /* 2290 */ 186, 190, 107, 210, 183, 183, 459, 107, 361, 462, + /* 2300 */ 402, 108, 105, 466, 467, 468, 469, 470, 471, 190, + /* 2310 */ 473, 374, 33, 33, 361, 417, 107, 419, 108, 108, + /* 2320 */ 103, 33, 108, 49, 49, 107, 107, 374, 33, 33, + /* 2330 */ 37, 107, 361, 49, 108, 37, 37, 37, 37, 402, + /* 2340 */ 107, 37, 33, 108, 0, 374, 108, 0, 42, 108, + /* 2350 */ 33, 49, 280, 108, 417, 402, 419, 459, 107, 105, + /* 2360 */ 462, 105, 2, 22, 466, 467, 468, 469, 470, 471, + /* 2370 */ 417, 473, 419, 402, 237, 108, 49, 260, 107, 49, + /* 2380 */ 108, 108, 0, 273, 107, 107, 22, 42, 417, 107, + /* 2390 */ 419, 108, 240, 117, 108, 280, 459, 107, 107, 462, + /* 2400 */ 49, 107, 22, 466, 467, 468, 469, 470, 471, 22, + /* 2410 */ 473, 108, 459, 116, 107, 462, 22, 185, 107, 466, + /* 2420 */ 467, 468, 469, 470, 471, 107, 473, 107, 107, 37, + /* 2430 */ 459, 108, 37, 462, 361, 187, 107, 466, 467, 468, + /* 2440 */ 469, 470, 471, 108, 473, 37, 107, 374, 108, 37, + /* 2450 */ 361, 108, 334, 107, 37, 107, 37, 108, 108, 107, + /* 2460 */ 37, 107, 128, 374, 128, 128, 361, 33, 107, 107, + /* 2470 */ 128, 22, 37, 72, 107, 402, 37, 71, 37, 374, + /* 2480 */ 37, 37, 37, 37, 37, 37, 101, 37, 78, 78, + /* 2490 */ 417, 402, 419, 33, 101, 37, 37, 22, 37, 37, + /* 2500 */ 37, 37, 78, 37, 37, 37, 417, 402, 419, 37, + /* 2510 */ 37, 22, 0, 37, 37, 0, 51, 0, 37, 37, + /* 2520 */ 42, 51, 417, 0, 419, 361, 42, 42, 37, 42, + /* 2530 */ 51, 0, 459, 37, 51, 462, 37, 0, 374, 466, + /* 2540 */ 467, 468, 469, 470, 471, 21, 473, 22, 459, 33, + /* 2550 */ 22, 462, 361, 20, 22, 466, 467, 468, 469, 470, + /* 2560 */ 471, 22, 473, 524, 459, 374, 402, 462, 21, 524, /* 2570 */ 524, 466, 467, 468, 469, 470, 471, 524, 473, 524, /* 2580 */ 524, 417, 524, 419, 524, 524, 524, 524, 524, 524, /* 2590 */ 524, 524, 524, 402, 524, 524, 524, 524, 524, 524, @@ -1247,9 +1247,9 @@ static const YYCODETYPE yy_lookahead[] = { /* 3470 */ 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, /* 3480 */ 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, }; -#define YY_SHIFT_COUNT (868) +#define YY_SHIFT_COUNT (898) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2486) +#define YY_SHIFT_MAX (2547) static const unsigned short int yy_shift_ofst[] = { /* 0 */ 496, 0, 247, 0, 495, 495, 495, 495, 495, 495, /* 10 */ 495, 495, 495, 495, 495, 495, 742, 989, 989, 1236, @@ -1272,74 +1272,77 @@ static const unsigned short int yy_shift_ofst[] = { /* 180 */ 190, 244, 177, 825, 838, 395, 395, 329, 854, 620, /* 190 */ 898, 898, 898, 649, 778, 898, 552, 1192, 1317, 830, /* 200 */ 890, 1192, 1192, 1197, 1076, 1164, 417, 1076, 1279, 1126, - /* 210 */ 266, 1271, 1501, 1513, 1538, 1341, 138, 1538, 138, 1383, - /* 220 */ 1546, 1566, 1542, 1566, 1542, 1415, 1546, 1566, 1546, 1542, - /* 230 */ 1415, 1415, 1415, 1499, 1507, 1546, 1511, 1546, 1546, 1546, - /* 240 */ 1595, 1570, 1595, 1570, 1538, 138, 138, 1629, 138, 1632, - /* 250 */ 1633, 138, 1632, 138, 1644, 138, 138, 1546, 138, 1595, + /* 210 */ 266, 1309, 1541, 1552, 1576, 1379, 138, 1576, 138, 1403, + /* 220 */ 1590, 1592, 1570, 1592, 1570, 1442, 1590, 1592, 1590, 1570, + /* 230 */ 1442, 1442, 1442, 1511, 1550, 1590, 1557, 1590, 1590, 1590, + /* 240 */ 1646, 1618, 1646, 1618, 1576, 138, 138, 1653, 138, 1669, + /* 250 */ 1674, 138, 1669, 138, 1682, 138, 138, 1590, 138, 1646, /* 260 */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - /* 270 */ 5, 1546, 504, 504, 1595, 371, 371, 371, 1467, 1611, - /* 280 */ 1538, 191, 1705, 1517, 1519, 1629, 191, 1271, 1546, 371, - /* 290 */ 1466, 1468, 1466, 1468, 1464, 1572, 1466, 1474, 1477, 1490, - /* 300 */ 1271, 1471, 1475, 1478, 1508, 1566, 1770, 1680, 1522, 1632, - /* 310 */ 191, 191, 1693, 1468, 371, 371, 371, 371, 1468, 371, - /* 320 */ 1634, 191, 406, 191, 1566, 371, 371, 1725, 371, 1546, - /* 330 */ 191, 1819, 1800, 1595, 3132, 3132, 3132, 3132, 3132, 3132, - /* 340 */ 3132, 3132, 3132, 3132, 36, 1102, 763, 1110, 581, 899, - /* 350 */ 913, 30, 533, 924, 897, 1045, 810, 810, 810, 810, - /* 360 */ 810, 810, 810, 810, 810, 910, 91, 317, 563, 563, - /* 370 */ 110, 609, 551, 586, 541, 426, 881, 914, 426, 808, - /* 380 */ 988, 1021, 97, 1013, 379, 768, 1013, 1013, 1013, 518, - /* 390 */ 518, 57, 1152, 1311, 1286, 1354, 1190, 1356, 1241, 1278, - /* 400 */ 1280, 1282, 1069, 1247, 1382, 1386, 1401, 1405, 1138, 1308, - /* 410 */ 1325, 659, 1363, 1387, 1389, 1393, 1268, 1111, 1242, 1395, - /* 420 */ 1412, 1399, 1184, 1402, 1357, 1409, 1420, 1423, 1425, 1427, - /* 430 */ 1417, 1429, 1430, 1434, 1436, 1443, 1473, 834, 35, 1365, - /* 440 */ 1489, 1502, 1213, 570, 1865, 1866, 1867, 1825, 1872, 1838, - /* 450 */ 1648, 1840, 1841, 1842, 1652, 1882, 1846, 1848, 1658, 1850, - /* 460 */ 1888, 1661, 1890, 1854, 1892, 1856, 1894, 1873, 1900, 1864, - /* 470 */ 1679, 1903, 1694, 1904, 1695, 1696, 1702, 1706, 1910, 1911, - /* 480 */ 1912, 1714, 1717, 1917, 1918, 1771, 1871, 1874, 1921, 1885, - /* 490 */ 1924, 1926, 1891, 1876, 1929, 1881, 1931, 1887, 1933, 1934, - /* 500 */ 1935, 1895, 1939, 1943, 1951, 1957, 1958, 1960, 1787, 1932, - /* 510 */ 1954, 1789, 1961, 1972, 1973, 1974, 1975, 1976, 1977, 1978, - /* 520 */ 1979, 1980, 1981, 1983, 1986, 1995, 1997, 1998, 1999, 2001, - /* 530 */ 2002, 1955, 2005, 1962, 2006, 2008, 2009, 2010, 2011, 2013, - /* 540 */ 2014, 2015, 1915, 2017, 1870, 2019, 1875, 2020, 1877, 2021, - /* 550 */ 2024, 2003, 1982, 2004, 1984, 2030, 1966, 1996, 2035, 1985, - /* 560 */ 2036, 1987, 2037, 2038, 2012, 1988, 2000, 2040, 2016, 1990, - /* 570 */ 2018, 2046, 2026, 2007, 2022, 2047, 2028, 2048, 2023, 2025, - /* 580 */ 2033, 2041, 2042, 2043, 2049, 2051, 2027, 2029, 2054, 2055, - /* 590 */ 2056, 2082, 2031, 1880, 2084, 2041, 2053, 2086, 2087, 2034, - /* 600 */ 2100, 2107, 2052, 2063, 2074, 2119, 2068, 2070, 2081, 2124, - /* 610 */ 2088, 2075, 2085, 2128, 2092, 2079, 2090, 2131, 2133, 2134, - /* 620 */ 2135, 2136, 2137, 2039, 2032, 2101, 2120, 2141, 2106, 2109, - /* 630 */ 2111, 2112, 2113, 2114, 2116, 2118, 2123, 2125, 2122, 2127, - /* 640 */ 2139, 2129, 2144, 2140, 2157, 2143, 2173, 2153, 2126, 2176, - /* 650 */ 2156, 2145, 2181, 2183, 2184, 2148, 2186, 2150, 2188, 2167, - /* 660 */ 2171, 2155, 2159, 2162, 2093, 2095, 2193, 2044, 2096, 1994, - /* 670 */ 2041, 2151, 2194, 2045, 2168, 2185, 2206, 2057, 2187, 2058, - /* 680 */ 2050, 2208, 2210, 2059, 2060, 2069, 2065, 2209, 2180, 1936, - /* 690 */ 2108, 2115, 2117, 2121, 2177, 2182, 2146, 2170, 2138, 2172, - /* 700 */ 2154, 2130, 2192, 2197, 2152, 2158, 2160, 2161, 2163, 2198, - /* 710 */ 2212, 2213, 2166, 2199, 1941, 2169, 2189, 2223, 2201, 1989, - /* 720 */ 2221, 2227, 2229, 2233, 2237, 2239, 2204, 2205, 2230, 2061, - /* 730 */ 2247, 2232, 2288, 2290, 2195, 2249, 2259, 2190, 2062, 2196, - /* 740 */ 2291, 2272, 2072, 2211, 2214, 2215, 2267, 2217, 2218, 2269, - /* 750 */ 2220, 2298, 2091, 2219, 2222, 2225, 2228, 2231, 2142, 2234, - /* 760 */ 2336, 2295, 2165, 2235, 2224, 2041, 2294, 2240, 2241, 2236, - /* 770 */ 2242, 2244, 2245, 2324, 2330, 2331, 2064, 2250, 2322, 2326, - /* 780 */ 2254, 2266, 2338, 2270, 2268, 2341, 2273, 2271, 2344, 2275, - /* 790 */ 2276, 2346, 2278, 2279, 2349, 2282, 2263, 2264, 2265, 2274, - /* 800 */ 2287, 2362, 2293, 2360, 2302, 2362, 2362, 2379, 2339, 2342, - /* 810 */ 2377, 2380, 2381, 2388, 2390, 2391, 2392, 2394, 2395, 2357, - /* 820 */ 2315, 2358, 2345, 2410, 2408, 2411, 2412, 2429, 2415, 2416, - /* 830 */ 2417, 2378, 2123, 2418, 2125, 2420, 2421, 2422, 2423, 2439, - /* 840 */ 2425, 2464, 2428, 2419, 2426, 2467, 2432, 2427, 2430, 2471, - /* 850 */ 2436, 2431, 2434, 2474, 2440, 2433, 2438, 2481, 2446, 2448, - /* 860 */ 2486, 2465, 2455, 2472, 2468, 2473, 2475, 2477, 2476, + /* 270 */ 5, 1590, 504, 504, 1646, 371, 371, 371, 1536, 1654, + /* 280 */ 1576, 191, 1744, 1559, 1561, 1653, 191, 1309, 1590, 371, + /* 290 */ 1487, 1489, 1487, 1489, 1498, 1604, 1487, 1506, 1508, 1525, + /* 300 */ 1309, 1510, 1509, 1507, 1546, 1592, 1803, 1707, 1553, 1669, + /* 310 */ 191, 191, 1723, 1489, 371, 371, 371, 371, 1489, 371, + /* 320 */ 1670, 191, 406, 191, 1592, 371, 371, 371, 371, 371, + /* 330 */ 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, + /* 340 */ 371, 371, 371, 371, 371, 371, 371, 1760, 371, 1590, + /* 350 */ 191, 1848, 1852, 1646, 3132, 3132, 3132, 3132, 3132, 3132, + /* 360 */ 3132, 3132, 3132, 3132, 36, 1102, 763, 1110, 581, 899, + /* 370 */ 913, 30, 533, 924, 897, 1045, 810, 810, 810, 810, + /* 380 */ 810, 810, 810, 810, 810, 910, 91, 317, 563, 563, + /* 390 */ 110, 609, 551, 586, 541, 426, 881, 914, 426, 808, + /* 400 */ 988, 1021, 97, 1013, 379, 768, 1013, 1013, 1013, 518, + /* 410 */ 518, 57, 1152, 1311, 1286, 1354, 1190, 1356, 1241, 1278, + /* 420 */ 1280, 1282, 1069, 1247, 1382, 1386, 1401, 1405, 1138, 1308, + /* 430 */ 1325, 659, 1363, 1387, 1389, 1393, 1268, 1111, 1242, 1395, + /* 440 */ 1412, 1399, 1184, 1402, 1357, 1409, 1420, 1423, 1425, 1427, + /* 450 */ 1417, 1432, 1450, 1486, 1496, 1502, 1514, 1524, 1527, 1529, + /* 460 */ 1534, 1436, 1443, 1473, 1483, 1492, 1505, 834, 35, 1365, + /* 470 */ 1517, 1521, 1213, 570, 1910, 1913, 1919, 1875, 1921, 1886, + /* 480 */ 1696, 1889, 1890, 1891, 1702, 1929, 1894, 1895, 1705, 1897, + /* 490 */ 1935, 1709, 1939, 1906, 1944, 1914, 1957, 1931, 1954, 1918, + /* 500 */ 1735, 1960, 1750, 1969, 1761, 1762, 1768, 1772, 1976, 1977, + /* 510 */ 1978, 1780, 1782, 1981, 1983, 1838, 1946, 1948, 1998, 1962, + /* 520 */ 2001, 2002, 1967, 1955, 2005, 1958, 2008, 1964, 2010, 2011, + /* 530 */ 2013, 1965, 2015, 2017, 2018, 2019, 2020, 2021, 1856, 1986, + /* 540 */ 2024, 1859, 2026, 2030, 2031, 2032, 2033, 2034, 2035, 2036, + /* 550 */ 2037, 2038, 2039, 2040, 2041, 2042, 2046, 2047, 2048, 2049, + /* 560 */ 2050, 2003, 2051, 2009, 2053, 2055, 2056, 2057, 2058, 2060, + /* 570 */ 2063, 2064, 2043, 2066, 1920, 2067, 1923, 2071, 1927, 2074, + /* 580 */ 2082, 2062, 2052, 2065, 2069, 2086, 2025, 2054, 2098, 2059, + /* 590 */ 2100, 2061, 2114, 2116, 2068, 2070, 2081, 2106, 2088, 2076, + /* 600 */ 2087, 2107, 2091, 2079, 2092, 2131, 2095, 2133, 2044, 2093, + /* 610 */ 2103, 2094, 2096, 2123, 2097, 2138, 2099, 2102, 2141, 2148, + /* 620 */ 2149, 2150, 2109, 1959, 2154, 2094, 2108, 2155, 2156, 2090, + /* 630 */ 2158, 2159, 2124, 2113, 2134, 2165, 2129, 2122, 2136, 2175, + /* 640 */ 2142, 2130, 2140, 2183, 2147, 2135, 2143, 2187, 2188, 2189, + /* 650 */ 2196, 2199, 2200, 2077, 2078, 2157, 2171, 2201, 2166, 2167, + /* 660 */ 2168, 2169, 2170, 2172, 2173, 2176, 2179, 2181, 2178, 2182, + /* 670 */ 2180, 2184, 2208, 2194, 2220, 2202, 2222, 2203, 2174, 2223, + /* 680 */ 2204, 2192, 2228, 2230, 2231, 2195, 2234, 2205, 2236, 2216, + /* 690 */ 2221, 2206, 2213, 2215, 2145, 2151, 2255, 2080, 2153, 2083, + /* 700 */ 2094, 2212, 2257, 2084, 2225, 2242, 2265, 2075, 2244, 2085, + /* 710 */ 2104, 2269, 2270, 2111, 2101, 2112, 2119, 2268, 2240, 1994, + /* 720 */ 2185, 2193, 2190, 2210, 2239, 2243, 2209, 2227, 2197, 2229, + /* 730 */ 2217, 2211, 2279, 2280, 2214, 2218, 2219, 2224, 2226, 2288, + /* 740 */ 2274, 2275, 2233, 2295, 2072, 2235, 2238, 2285, 2296, 2115, + /* 750 */ 2293, 2298, 2299, 2300, 2301, 2304, 2241, 2245, 2284, 2110, + /* 760 */ 2309, 2302, 2344, 2347, 2251, 2306, 2317, 2254, 2117, 2256, + /* 770 */ 2360, 2341, 2137, 2267, 2271, 2272, 2327, 2277, 2278, 2330, + /* 780 */ 2273, 2364, 2152, 2282, 2283, 2286, 2290, 2291, 2248, 2294, + /* 790 */ 2382, 2345, 2232, 2307, 2297, 2094, 2351, 2311, 2318, 2303, + /* 800 */ 2320, 2321, 2276, 2380, 2387, 2394, 2118, 2323, 2392, 2395, + /* 810 */ 2329, 2335, 2408, 2339, 2340, 2412, 2346, 2343, 2417, 2348, + /* 820 */ 2349, 2419, 2352, 2350, 2423, 2354, 2334, 2336, 2337, 2342, + /* 830 */ 2361, 2434, 2362, 2435, 2367, 2434, 2434, 2449, 2401, 2406, + /* 840 */ 2439, 2441, 2443, 2444, 2445, 2446, 2447, 2448, 2450, 2410, + /* 850 */ 2385, 2411, 2393, 2460, 2458, 2459, 2461, 2475, 2462, 2463, + /* 860 */ 2464, 2424, 2179, 2466, 2181, 2467, 2468, 2472, 2473, 2489, + /* 870 */ 2476, 2512, 2477, 2465, 2478, 2515, 2481, 2470, 2484, 2517, + /* 880 */ 2482, 2479, 2485, 2523, 2491, 2483, 2487, 2531, 2496, 2499, + /* 890 */ 2537, 2525, 2516, 2528, 2524, 2532, 2539, 2547, 2533, }; -#define YY_REDUCE_COUNT (343) +#define YY_REDUCE_COUNT (363) #define YY_REDUCE_MIN (-448) #define YY_REDUCE_MAX (2658) static const short yy_reduce_ofst[] = { @@ -1361,112 +1364,117 @@ static const short yy_reduce_ofst[] = { /* 150 */ -91, 809, -212, 911, 927, 135, 698, 232, 928, -7, /* 160 */ -391, 456, 933, 561, 886, 696, 941, 181, 316, 370, /* 170 */ 409, 513, 558, 699, 409, 381, 288, 680, 691, 875, - /* 180 */ 841, 930, 1038, 1042, 1042, 1055, 1056, 1027, 1127, 1068, - /* 190 */ 990, 998, 999, 1072, 1042, 1004, 1139, 1095, 1153, 1113, - /* 200 */ 1082, 1104, 1106, 1042, 1046, 1046, 1026, 1046, 1060, 1050, - /* 210 */ 1156, 1108, 1093, 1097, 1115, 1122, 1187, 1118, 1200, 1141, - /* 220 */ 1210, 1217, 1166, 1219, 1168, 1173, 1224, 1225, 1227, 1172, - /* 230 */ 1178, 1179, 1180, 1220, 1226, 1239, 1230, 1246, 1248, 1249, - /* 240 */ 1250, 1261, 1270, 1273, 1194, 1263, 1272, 1231, 1275, 1283, - /* 250 */ 1216, 1284, 1285, 1287, 1229, 1288, 1289, 1292, 1290, 1301, - /* 260 */ 1266, 1276, 1294, 1295, 1296, 1299, 1300, 1302, 1303, 1305, - /* 270 */ 1306, 1307, 1309, 1323, 1324, 1258, 1277, 1304, 1259, 1264, - /* 280 */ 1281, 1343, 1310, 1313, 1312, 1320, 1350, 1314, 1358, 1315, - /* 290 */ 1251, 1322, 1252, 1329, 1253, 1255, 1265, 1269, 1291, 1293, - /* 300 */ 1331, 1260, 1316, 1262, 1046, 1407, 1330, 1326, 1327, 1424, - /* 310 */ 1421, 1422, 1321, 1368, 1388, 1391, 1392, 1394, 1371, 1396, - /* 320 */ 1381, 1442, 1431, 1445, 1454, 1413, 1414, 1428, 1432, 1461, - /* 330 */ 1457, 1488, 1485, 1476, 1410, 1400, 1437, 1438, 1460, 1463, - /* 340 */ 1456, 1465, 1482, 1505, + /* 180 */ 841, 930, 1038, 1044, 1044, 1067, 1077, 1070, 1130, 1082, + /* 190 */ 1019, 1039, 1040, 1108, 1044, 1042, 1178, 1127, 1185, 1150, + /* 200 */ 1120, 1139, 1141, 1044, 1086, 1086, 1068, 1086, 1096, 1087, + /* 210 */ 1193, 1144, 1132, 1135, 1145, 1143, 1217, 1149, 1221, 1162, + /* 220 */ 1238, 1240, 1194, 1245, 1195, 1208, 1263, 1269, 1272, 1223, + /* 230 */ 1224, 1227, 1229, 1271, 1273, 1281, 1276, 1289, 1291, 1292, + /* 240 */ 1301, 1299, 1304, 1302, 1218, 1293, 1296, 1261, 1305, 1315, + /* 250 */ 1253, 1316, 1322, 1319, 1275, 1323, 1334, 1331, 1336, 1341, + /* 260 */ 1321, 1324, 1328, 1329, 1330, 1332, 1337, 1350, 1351, 1352, + /* 270 */ 1353, 1346, 1361, 1392, 1355, 1310, 1340, 1342, 1303, 1307, + /* 280 */ 1313, 1383, 1320, 1326, 1333, 1359, 1390, 1339, 1398, 1358, + /* 290 */ 1287, 1360, 1290, 1362, 1277, 1294, 1297, 1306, 1300, 1312, + /* 300 */ 1364, 1288, 1314, 1335, 1086, 1448, 1367, 1327, 1338, 1453, + /* 310 */ 1455, 1457, 1366, 1406, 1416, 1421, 1435, 1437, 1407, 1438, + /* 320 */ 1428, 1480, 1463, 1484, 1491, 1446, 1449, 1456, 1458, 1459, + /* 330 */ 1460, 1461, 1462, 1465, 1466, 1468, 1469, 1470, 1471, 1472, + /* 340 */ 1474, 1475, 1476, 1477, 1478, 1485, 1488, 1467, 1490, 1499, + /* 350 */ 1500, 1537, 1539, 1535, 1464, 1454, 1481, 1482, 1515, 1516, + /* 360 */ 1518, 1519, 1522, 1545, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 10 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 20 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 30 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 40 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 50 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 60 */ 2322, 1977, 1977, 2285, 1977, 1977, 1977, 1977, 1977, 1977, - /* 70 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 2292, 1977, 1977, - /* 80 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 90 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 2076, 1977, 1977, - /* 100 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 110 */ 1977, 1977, 1977, 1977, 2074, 2546, 1977, 2655, 1977, 1977, - /* 120 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 130 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 140 */ 2558, 1977, 1977, 2048, 2048, 1977, 2558, 2558, 2558, 2518, - /* 150 */ 2518, 2074, 1977, 1977, 2076, 2360, 1977, 1977, 1977, 1977, - /* 160 */ 1977, 1977, 1977, 1977, 1977, 2203, 2007, 1977, 1977, 1977, - /* 170 */ 2227, 1977, 1977, 1977, 1977, 2348, 1977, 1977, 2587, 2649, - /* 180 */ 1977, 2590, 1977, 1977, 1977, 1977, 1977, 2297, 1977, 2577, - /* 190 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 2152, - /* 200 */ 2342, 1977, 1977, 1977, 2550, 2564, 2633, 2551, 2548, 2571, - /* 210 */ 1977, 2581, 1977, 2385, 1977, 2374, 2076, 1977, 2076, 2335, - /* 220 */ 2280, 1977, 2290, 1977, 2290, 2287, 1977, 1977, 1977, 2290, - /* 230 */ 2287, 2287, 2287, 2141, 2137, 1977, 2135, 1977, 1977, 1977, - /* 240 */ 1977, 2032, 1977, 2032, 1977, 2076, 2076, 1977, 2076, 1977, - /* 250 */ 1977, 2076, 1977, 2076, 1977, 2076, 2076, 1977, 2076, 1977, - /* 260 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 270 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 2372, 2358, - /* 280 */ 1977, 2074, 1977, 2346, 2344, 1977, 2074, 2581, 1977, 1977, - /* 290 */ 2603, 2598, 2603, 2598, 2617, 2613, 2603, 2622, 2619, 2583, - /* 300 */ 2581, 2652, 2639, 2635, 2564, 1977, 1977, 2569, 2567, 1977, - /* 310 */ 2074, 2074, 1977, 2598, 1977, 1977, 1977, 1977, 2598, 1977, - /* 320 */ 1977, 2074, 1977, 2074, 1977, 1977, 1977, 2169, 1977, 1977, - /* 330 */ 2074, 1977, 2016, 1977, 2337, 2363, 2318, 2318, 2206, 2206, - /* 340 */ 2655, 2206, 2077, 1982, 1977, 1977, 1977, 1977, 1977, 1977, - /* 350 */ 1977, 1977, 1977, 1977, 1977, 1977, 2616, 2615, 2470, 1977, - /* 360 */ 2522, 2521, 2520, 2511, 2469, 2165, 1977, 1977, 2468, 2467, - /* 370 */ 1977, 1977, 1977, 1977, 1977, 2156, 1977, 1977, 2178, 1977, - /* 380 */ 1977, 1977, 1977, 2461, 1977, 1977, 2462, 2460, 2459, 2309, - /* 390 */ 2308, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 400 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 410 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 2636, 2640, 1977, - /* 420 */ 2547, 1977, 1977, 1977, 2441, 1977, 1977, 1977, 1977, 1977, - /* 430 */ 2409, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 440 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 450 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 460 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 470 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 480 */ 1977, 1977, 1977, 1977, 1977, 2286, 1977, 1977, 1977, 1977, - /* 490 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 500 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 510 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 520 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 530 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 540 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 2301, 1977, - /* 550 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 560 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 570 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 580 */ 2021, 2448, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 590 */ 1977, 1977, 1977, 1977, 1977, 2451, 1977, 1977, 1977, 1977, - /* 600 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 610 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 620 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 630 */ 1977, 1977, 1977, 1977, 1977, 1977, 2116, 2115, 1977, 1977, - /* 640 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 650 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 660 */ 1977, 1977, 1977, 1977, 2452, 1977, 1977, 1977, 1977, 1977, - /* 670 */ 2443, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 680 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 2632, 2584, 1977, - /* 690 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 700 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 710 */ 1977, 2441, 1977, 2614, 1977, 1977, 2630, 1977, 2634, 1977, - /* 720 */ 1977, 1977, 1977, 1977, 1977, 1977, 2557, 2553, 1977, 1977, - /* 730 */ 2549, 1977, 1977, 1977, 1977, 1977, 2508, 1977, 1977, 1977, - /* 740 */ 2542, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 750 */ 2452, 1977, 2455, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 760 */ 1977, 1977, 1977, 1977, 1977, 2440, 1977, 2493, 2492, 1977, - /* 770 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 780 */ 2200, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 790 */ 1977, 1977, 1977, 1977, 1977, 1977, 2184, 2182, 2181, 2180, - /* 800 */ 1977, 2213, 1977, 1977, 1977, 2209, 2208, 1977, 1977, 1977, - /* 810 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 820 */ 1977, 1977, 1977, 2095, 1977, 1977, 1977, 1977, 1977, 1977, - /* 830 */ 1977, 1977, 2087, 1977, 2086, 1977, 1977, 1977, 1977, 1977, - /* 840 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 850 */ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, - /* 860 */ 1977, 1977, 2006, 1977, 1977, 1977, 1977, 1977, 1977, + /* 0 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 10 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 20 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 30 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 40 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 50 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 60 */ 2382, 2037, 2037, 2345, 2037, 2037, 2037, 2037, 2037, 2037, + /* 70 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2352, 2037, 2037, + /* 80 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 90 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2136, 2037, 2037, + /* 100 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 110 */ 2037, 2037, 2037, 2037, 2134, 2626, 2037, 2735, 2037, 2037, + /* 120 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 130 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 140 */ 2638, 2037, 2037, 2108, 2108, 2037, 2638, 2638, 2638, 2598, + /* 150 */ 2598, 2134, 2037, 2037, 2136, 2420, 2037, 2037, 2037, 2037, + /* 160 */ 2037, 2037, 2037, 2037, 2037, 2263, 2067, 2037, 2037, 2037, + /* 170 */ 2287, 2037, 2037, 2037, 2037, 2408, 2037, 2037, 2667, 2729, + /* 180 */ 2037, 2670, 2037, 2037, 2037, 2037, 2037, 2357, 2037, 2657, + /* 190 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2212, + /* 200 */ 2402, 2037, 2037, 2037, 2630, 2644, 2713, 2631, 2628, 2651, + /* 210 */ 2037, 2661, 2037, 2445, 2037, 2434, 2136, 2037, 2136, 2395, + /* 220 */ 2340, 2037, 2350, 2037, 2350, 2347, 2037, 2037, 2037, 2350, + /* 230 */ 2347, 2347, 2347, 2201, 2197, 2037, 2195, 2037, 2037, 2037, + /* 240 */ 2037, 2092, 2037, 2092, 2037, 2136, 2136, 2037, 2136, 2037, + /* 250 */ 2037, 2136, 2037, 2136, 2037, 2136, 2136, 2037, 2136, 2037, + /* 260 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 270 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2432, 2418, + /* 280 */ 2037, 2134, 2037, 2406, 2404, 2037, 2134, 2661, 2037, 2037, + /* 290 */ 2683, 2678, 2683, 2678, 2697, 2693, 2683, 2702, 2699, 2663, + /* 300 */ 2661, 2732, 2719, 2715, 2644, 2037, 2037, 2649, 2647, 2037, + /* 310 */ 2134, 2134, 2037, 2678, 2037, 2037, 2037, 2037, 2678, 2037, + /* 320 */ 2037, 2134, 2037, 2134, 2037, 2037, 2037, 2037, 2037, 2037, + /* 330 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 340 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2229, 2037, 2037, + /* 350 */ 2134, 2037, 2076, 2037, 2397, 2423, 2378, 2378, 2266, 2266, + /* 360 */ 2735, 2266, 2137, 2042, 2037, 2037, 2037, 2037, 2037, 2037, + /* 370 */ 2037, 2037, 2037, 2037, 2037, 2037, 2696, 2695, 2550, 2037, + /* 380 */ 2602, 2601, 2600, 2591, 2549, 2225, 2037, 2037, 2548, 2547, + /* 390 */ 2037, 2037, 2037, 2037, 2037, 2216, 2037, 2037, 2238, 2037, + /* 400 */ 2037, 2037, 2037, 2541, 2037, 2037, 2542, 2540, 2539, 2369, + /* 410 */ 2368, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 420 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 430 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2716, 2720, 2037, + /* 440 */ 2627, 2037, 2037, 2037, 2521, 2037, 2037, 2037, 2037, 2037, + /* 450 */ 2489, 2484, 2475, 2466, 2481, 2472, 2460, 2478, 2469, 2457, + /* 460 */ 2454, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 470 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 480 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 490 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 500 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 510 */ 2037, 2037, 2037, 2037, 2037, 2346, 2037, 2037, 2037, 2037, + /* 520 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 530 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 540 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 550 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 560 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 570 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2361, 2037, + /* 580 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 590 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 600 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 610 */ 2081, 2528, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 620 */ 2037, 2037, 2037, 2037, 2037, 2531, 2037, 2037, 2037, 2037, + /* 630 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 640 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 650 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 660 */ 2037, 2037, 2037, 2037, 2037, 2037, 2176, 2175, 2037, 2037, + /* 670 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 680 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 690 */ 2037, 2037, 2037, 2037, 2532, 2037, 2037, 2037, 2037, 2037, + /* 700 */ 2523, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 710 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2712, 2664, 2037, + /* 720 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 730 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 740 */ 2037, 2521, 2037, 2694, 2037, 2037, 2710, 2037, 2714, 2037, + /* 750 */ 2037, 2037, 2037, 2037, 2037, 2037, 2637, 2633, 2037, 2037, + /* 760 */ 2629, 2037, 2037, 2037, 2037, 2037, 2588, 2037, 2037, 2037, + /* 770 */ 2622, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 780 */ 2532, 2037, 2535, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 790 */ 2037, 2037, 2037, 2037, 2037, 2520, 2037, 2573, 2572, 2037, + /* 800 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 810 */ 2260, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 820 */ 2037, 2037, 2037, 2037, 2037, 2037, 2244, 2242, 2241, 2240, + /* 830 */ 2037, 2273, 2037, 2037, 2037, 2269, 2268, 2037, 2037, 2037, + /* 840 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 850 */ 2037, 2037, 2037, 2155, 2037, 2037, 2037, 2037, 2037, 2037, + /* 860 */ 2037, 2037, 2147, 2037, 2146, 2037, 2037, 2037, 2037, 2037, + /* 870 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 880 */ 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, + /* 890 */ 2037, 2037, 2066, 2037, 2037, 2037, 2037, 2037, 2037, }; /********** End of lemon-generated parsing tables *****************************/ @@ -2878,271 +2886,291 @@ static const char *const yyRuleName[] = { /* 412 */ "insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", /* 413 */ "insert_query ::= INSERT INTO full_table_name query_or_subquery", /* 414 */ "tags_literal ::= NK_INTEGER", - /* 415 */ "tags_literal ::= NK_PLUS NK_INTEGER", - /* 416 */ "tags_literal ::= NK_MINUS NK_INTEGER", - /* 417 */ "tags_literal ::= NK_FLOAT", - /* 418 */ "tags_literal ::= NK_PLUS NK_FLOAT", - /* 419 */ "tags_literal ::= NK_MINUS NK_FLOAT", - /* 420 */ "tags_literal ::= NK_BIN", - /* 421 */ "tags_literal ::= NK_PLUS NK_BIN", - /* 422 */ "tags_literal ::= NK_MINUS NK_BIN", - /* 423 */ "tags_literal ::= NK_HEX", - /* 424 */ "tags_literal ::= NK_PLUS NK_HEX", - /* 425 */ "tags_literal ::= NK_MINUS NK_HEX", - /* 426 */ "tags_literal ::= NK_STRING", - /* 427 */ "tags_literal ::= NK_BOOL", - /* 428 */ "tags_literal ::= NULL", - /* 429 */ "tags_literal ::= literal_func", - /* 430 */ "tags_literal ::= literal_func NK_PLUS duration_literal", - /* 431 */ "tags_literal ::= literal_func NK_MINUS duration_literal", - /* 432 */ "tags_literal_list ::= tags_literal", - /* 433 */ "tags_literal_list ::= tags_literal_list NK_COMMA tags_literal", - /* 434 */ "literal ::= NK_INTEGER", - /* 435 */ "literal ::= NK_FLOAT", - /* 436 */ "literal ::= NK_STRING", - /* 437 */ "literal ::= NK_BOOL", - /* 438 */ "literal ::= TIMESTAMP NK_STRING", - /* 439 */ "literal ::= duration_literal", - /* 440 */ "literal ::= NULL", - /* 441 */ "literal ::= NK_QUESTION", - /* 442 */ "duration_literal ::= NK_VARIABLE", - /* 443 */ "signed ::= NK_INTEGER", - /* 444 */ "signed ::= NK_PLUS NK_INTEGER", - /* 445 */ "signed ::= NK_MINUS NK_INTEGER", - /* 446 */ "signed ::= NK_FLOAT", - /* 447 */ "signed ::= NK_PLUS NK_FLOAT", - /* 448 */ "signed ::= NK_MINUS NK_FLOAT", - /* 449 */ "signed_literal ::= signed", - /* 450 */ "signed_literal ::= NK_STRING", - /* 451 */ "signed_literal ::= NK_BOOL", - /* 452 */ "signed_literal ::= TIMESTAMP NK_STRING", - /* 453 */ "signed_literal ::= duration_literal", - /* 454 */ "signed_literal ::= NULL", - /* 455 */ "signed_literal ::= literal_func", - /* 456 */ "signed_literal ::= NK_QUESTION", - /* 457 */ "literal_list ::= signed_literal", - /* 458 */ "literal_list ::= literal_list NK_COMMA signed_literal", - /* 459 */ "db_name ::= NK_ID", - /* 460 */ "table_name ::= NK_ID", - /* 461 */ "column_name ::= NK_ID", - /* 462 */ "function_name ::= NK_ID", - /* 463 */ "view_name ::= NK_ID", - /* 464 */ "table_alias ::= NK_ID", - /* 465 */ "column_alias ::= NK_ID", - /* 466 */ "column_alias ::= NK_ALIAS", - /* 467 */ "user_name ::= NK_ID", - /* 468 */ "topic_name ::= NK_ID", - /* 469 */ "stream_name ::= NK_ID", - /* 470 */ "cgroup_name ::= NK_ID", - /* 471 */ "index_name ::= NK_ID", - /* 472 */ "expr_or_subquery ::= expression", - /* 473 */ "expression ::= literal", - /* 474 */ "expression ::= pseudo_column", - /* 475 */ "expression ::= column_reference", - /* 476 */ "expression ::= function_expression", - /* 477 */ "expression ::= case_when_expression", - /* 478 */ "expression ::= NK_LP expression NK_RP", - /* 479 */ "expression ::= NK_PLUS expr_or_subquery", - /* 480 */ "expression ::= NK_MINUS expr_or_subquery", - /* 481 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", - /* 482 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", - /* 483 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", - /* 484 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", - /* 485 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", - /* 486 */ "expression ::= column_reference NK_ARROW NK_STRING", - /* 487 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", - /* 488 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", - /* 489 */ "expression_list ::= expr_or_subquery", - /* 490 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", - /* 491 */ "column_reference ::= column_name", - /* 492 */ "column_reference ::= table_name NK_DOT column_name", - /* 493 */ "column_reference ::= NK_ALIAS", - /* 494 */ "column_reference ::= table_name NK_DOT NK_ALIAS", - /* 495 */ "pseudo_column ::= ROWTS", - /* 496 */ "pseudo_column ::= TBNAME", - /* 497 */ "pseudo_column ::= table_name NK_DOT TBNAME", - /* 498 */ "pseudo_column ::= QSTART", - /* 499 */ "pseudo_column ::= QEND", - /* 500 */ "pseudo_column ::= QDURATION", - /* 501 */ "pseudo_column ::= WSTART", - /* 502 */ "pseudo_column ::= WEND", - /* 503 */ "pseudo_column ::= WDURATION", - /* 504 */ "pseudo_column ::= IROWTS", - /* 505 */ "pseudo_column ::= ISFILLED", - /* 506 */ "pseudo_column ::= QTAGS", - /* 507 */ "function_expression ::= function_name NK_LP expression_list NK_RP", - /* 508 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", - /* 509 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", - /* 510 */ "function_expression ::= literal_func", - /* 511 */ "literal_func ::= noarg_func NK_LP NK_RP", - /* 512 */ "literal_func ::= NOW", - /* 513 */ "literal_func ::= TODAY", - /* 514 */ "noarg_func ::= NOW", - /* 515 */ "noarg_func ::= TODAY", - /* 516 */ "noarg_func ::= TIMEZONE", - /* 517 */ "noarg_func ::= DATABASE", - /* 518 */ "noarg_func ::= CLIENT_VERSION", - /* 519 */ "noarg_func ::= SERVER_VERSION", - /* 520 */ "noarg_func ::= SERVER_STATUS", - /* 521 */ "noarg_func ::= CURRENT_USER", - /* 522 */ "noarg_func ::= USER", - /* 523 */ "star_func ::= COUNT", - /* 524 */ "star_func ::= FIRST", - /* 525 */ "star_func ::= LAST", - /* 526 */ "star_func ::= LAST_ROW", - /* 527 */ "star_func_para_list ::= NK_STAR", - /* 528 */ "star_func_para_list ::= other_para_list", - /* 529 */ "other_para_list ::= star_func_para", - /* 530 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", - /* 531 */ "star_func_para ::= expr_or_subquery", - /* 532 */ "star_func_para ::= table_name NK_DOT NK_STAR", - /* 533 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", - /* 534 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", - /* 535 */ "when_then_list ::= when_then_expr", - /* 536 */ "when_then_list ::= when_then_list when_then_expr", - /* 537 */ "when_then_expr ::= WHEN common_expression THEN common_expression", - /* 538 */ "case_when_else_opt ::=", - /* 539 */ "case_when_else_opt ::= ELSE common_expression", - /* 540 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", - /* 541 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", - /* 542 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", - /* 543 */ "predicate ::= expr_or_subquery IS NULL", - /* 544 */ "predicate ::= expr_or_subquery IS NOT NULL", - /* 545 */ "predicate ::= expr_or_subquery in_op in_predicate_value", - /* 546 */ "compare_op ::= NK_LT", - /* 547 */ "compare_op ::= NK_GT", - /* 548 */ "compare_op ::= NK_LE", - /* 549 */ "compare_op ::= NK_GE", - /* 550 */ "compare_op ::= NK_NE", - /* 551 */ "compare_op ::= NK_EQ", - /* 552 */ "compare_op ::= LIKE", - /* 553 */ "compare_op ::= NOT LIKE", - /* 554 */ "compare_op ::= MATCH", - /* 555 */ "compare_op ::= NMATCH", - /* 556 */ "compare_op ::= CONTAINS", - /* 557 */ "in_op ::= IN", - /* 558 */ "in_op ::= NOT IN", - /* 559 */ "in_predicate_value ::= NK_LP literal_list NK_RP", - /* 560 */ "boolean_value_expression ::= boolean_primary", - /* 561 */ "boolean_value_expression ::= NOT boolean_primary", - /* 562 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", - /* 563 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", - /* 564 */ "boolean_primary ::= predicate", - /* 565 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", - /* 566 */ "common_expression ::= expr_or_subquery", - /* 567 */ "common_expression ::= boolean_value_expression", - /* 568 */ "from_clause_opt ::=", - /* 569 */ "from_clause_opt ::= FROM table_reference_list", - /* 570 */ "table_reference_list ::= table_reference", - /* 571 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", - /* 572 */ "table_reference ::= table_primary", - /* 573 */ "table_reference ::= joined_table", - /* 574 */ "table_primary ::= table_name alias_opt", - /* 575 */ "table_primary ::= db_name NK_DOT table_name alias_opt", - /* 576 */ "table_primary ::= subquery alias_opt", - /* 577 */ "table_primary ::= parenthesized_joined_table", - /* 578 */ "alias_opt ::=", - /* 579 */ "alias_opt ::= table_alias", - /* 580 */ "alias_opt ::= AS table_alias", - /* 581 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", - /* 582 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", - /* 583 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", - /* 584 */ "join_type ::=", - /* 585 */ "join_type ::= INNER", - /* 586 */ "query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_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", - /* 587 */ "hint_list ::=", - /* 588 */ "hint_list ::= NK_HINT", - /* 589 */ "tag_mode_opt ::=", - /* 590 */ "tag_mode_opt ::= TAGS", - /* 591 */ "set_quantifier_opt ::=", - /* 592 */ "set_quantifier_opt ::= DISTINCT", - /* 593 */ "set_quantifier_opt ::= ALL", - /* 594 */ "select_list ::= select_item", - /* 595 */ "select_list ::= select_list NK_COMMA select_item", - /* 596 */ "select_item ::= NK_STAR", - /* 597 */ "select_item ::= common_expression", - /* 598 */ "select_item ::= common_expression column_alias", - /* 599 */ "select_item ::= common_expression AS column_alias", - /* 600 */ "select_item ::= table_name NK_DOT NK_STAR", - /* 601 */ "where_clause_opt ::=", - /* 602 */ "where_clause_opt ::= WHERE search_condition", - /* 603 */ "partition_by_clause_opt ::=", - /* 604 */ "partition_by_clause_opt ::= PARTITION BY partition_list", - /* 605 */ "partition_list ::= partition_item", - /* 606 */ "partition_list ::= partition_list NK_COMMA partition_item", - /* 607 */ "partition_item ::= expr_or_subquery", - /* 608 */ "partition_item ::= expr_or_subquery column_alias", - /* 609 */ "partition_item ::= expr_or_subquery AS column_alias", - /* 610 */ "twindow_clause_opt ::=", - /* 611 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP", - /* 612 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", - /* 613 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt", - /* 614 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt", - /* 615 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", - /* 616 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP", - /* 617 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP", - /* 618 */ "sliding_opt ::=", - /* 619 */ "sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP", - /* 620 */ "interval_sliding_duration_literal ::= NK_VARIABLE", - /* 621 */ "interval_sliding_duration_literal ::= NK_STRING", - /* 622 */ "interval_sliding_duration_literal ::= NK_INTEGER", - /* 623 */ "fill_opt ::=", - /* 624 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 625 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", - /* 626 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", - /* 627 */ "fill_mode ::= NONE", - /* 628 */ "fill_mode ::= PREV", - /* 629 */ "fill_mode ::= NULL", - /* 630 */ "fill_mode ::= NULL_F", - /* 631 */ "fill_mode ::= LINEAR", - /* 632 */ "fill_mode ::= NEXT", - /* 633 */ "group_by_clause_opt ::=", - /* 634 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 635 */ "group_by_list ::= expr_or_subquery", - /* 636 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 637 */ "having_clause_opt ::=", - /* 638 */ "having_clause_opt ::= HAVING search_condition", - /* 639 */ "range_opt ::=", - /* 640 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 641 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", - /* 642 */ "every_opt ::=", - /* 643 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 644 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 645 */ "query_simple ::= query_specification", - /* 646 */ "query_simple ::= union_query_expression", - /* 647 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 648 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 649 */ "query_simple_or_subquery ::= query_simple", - /* 650 */ "query_simple_or_subquery ::= subquery", - /* 651 */ "query_or_subquery ::= query_expression", - /* 652 */ "query_or_subquery ::= subquery", - /* 653 */ "order_by_clause_opt ::=", - /* 654 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 655 */ "slimit_clause_opt ::=", - /* 656 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 657 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 658 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 659 */ "limit_clause_opt ::=", - /* 660 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 661 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 662 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 663 */ "subquery ::= NK_LP query_expression NK_RP", - /* 664 */ "subquery ::= NK_LP subquery NK_RP", - /* 665 */ "search_condition ::= common_expression", - /* 666 */ "sort_specification_list ::= sort_specification", - /* 667 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 668 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 669 */ "ordering_specification_opt ::=", - /* 670 */ "ordering_specification_opt ::= ASC", - /* 671 */ "ordering_specification_opt ::= DESC", - /* 672 */ "null_ordering_opt ::=", - /* 673 */ "null_ordering_opt ::= NULLS FIRST", - /* 674 */ "null_ordering_opt ::= NULLS LAST", - /* 675 */ "column_options ::=", - /* 676 */ "column_options ::= column_options PRIMARY KEY", - /* 677 */ "column_options ::= column_options ENCODE NK_STRING", - /* 678 */ "column_options ::= column_options COMPRESS NK_STRING", - /* 679 */ "column_options ::= column_options LEVEL NK_STRING", + /* 415 */ "tags_literal ::= NK_INTEGER NK_PLUS duration_literal", + /* 416 */ "tags_literal ::= NK_INTEGER NK_MINUS duration_literal", + /* 417 */ "tags_literal ::= NK_PLUS NK_INTEGER", + /* 418 */ "tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal", + /* 419 */ "tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal", + /* 420 */ "tags_literal ::= NK_MINUS NK_INTEGER", + /* 421 */ "tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal", + /* 422 */ "tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal", + /* 423 */ "tags_literal ::= NK_FLOAT", + /* 424 */ "tags_literal ::= NK_PLUS NK_FLOAT", + /* 425 */ "tags_literal ::= NK_MINUS NK_FLOAT", + /* 426 */ "tags_literal ::= NK_BIN", + /* 427 */ "tags_literal ::= NK_BIN NK_PLUS duration_literal", + /* 428 */ "tags_literal ::= NK_BIN NK_MINUS duration_literal", + /* 429 */ "tags_literal ::= NK_PLUS NK_BIN", + /* 430 */ "tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal", + /* 431 */ "tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal", + /* 432 */ "tags_literal ::= NK_MINUS NK_BIN", + /* 433 */ "tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal", + /* 434 */ "tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal", + /* 435 */ "tags_literal ::= NK_HEX", + /* 436 */ "tags_literal ::= NK_HEX NK_PLUS duration_literal", + /* 437 */ "tags_literal ::= NK_HEX NK_MINUS duration_literal", + /* 438 */ "tags_literal ::= NK_PLUS NK_HEX", + /* 439 */ "tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal", + /* 440 */ "tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal", + /* 441 */ "tags_literal ::= NK_MINUS NK_HEX", + /* 442 */ "tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal", + /* 443 */ "tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal", + /* 444 */ "tags_literal ::= NK_STRING", + /* 445 */ "tags_literal ::= NK_STRING NK_PLUS duration_literal", + /* 446 */ "tags_literal ::= NK_STRING NK_MINUS duration_literal", + /* 447 */ "tags_literal ::= NK_BOOL", + /* 448 */ "tags_literal ::= NULL", + /* 449 */ "tags_literal ::= literal_func", + /* 450 */ "tags_literal ::= literal_func NK_PLUS duration_literal", + /* 451 */ "tags_literal ::= literal_func NK_MINUS duration_literal", + /* 452 */ "tags_literal_list ::= tags_literal", + /* 453 */ "tags_literal_list ::= tags_literal_list NK_COMMA tags_literal", + /* 454 */ "literal ::= NK_INTEGER", + /* 455 */ "literal ::= NK_FLOAT", + /* 456 */ "literal ::= NK_STRING", + /* 457 */ "literal ::= NK_BOOL", + /* 458 */ "literal ::= TIMESTAMP NK_STRING", + /* 459 */ "literal ::= duration_literal", + /* 460 */ "literal ::= NULL", + /* 461 */ "literal ::= NK_QUESTION", + /* 462 */ "duration_literal ::= NK_VARIABLE", + /* 463 */ "signed ::= NK_INTEGER", + /* 464 */ "signed ::= NK_PLUS NK_INTEGER", + /* 465 */ "signed ::= NK_MINUS NK_INTEGER", + /* 466 */ "signed ::= NK_FLOAT", + /* 467 */ "signed ::= NK_PLUS NK_FLOAT", + /* 468 */ "signed ::= NK_MINUS NK_FLOAT", + /* 469 */ "signed_literal ::= signed", + /* 470 */ "signed_literal ::= NK_STRING", + /* 471 */ "signed_literal ::= NK_BOOL", + /* 472 */ "signed_literal ::= TIMESTAMP NK_STRING", + /* 473 */ "signed_literal ::= duration_literal", + /* 474 */ "signed_literal ::= NULL", + /* 475 */ "signed_literal ::= literal_func", + /* 476 */ "signed_literal ::= NK_QUESTION", + /* 477 */ "literal_list ::= signed_literal", + /* 478 */ "literal_list ::= literal_list NK_COMMA signed_literal", + /* 479 */ "db_name ::= NK_ID", + /* 480 */ "table_name ::= NK_ID", + /* 481 */ "column_name ::= NK_ID", + /* 482 */ "function_name ::= NK_ID", + /* 483 */ "view_name ::= NK_ID", + /* 484 */ "table_alias ::= NK_ID", + /* 485 */ "column_alias ::= NK_ID", + /* 486 */ "column_alias ::= NK_ALIAS", + /* 487 */ "user_name ::= NK_ID", + /* 488 */ "topic_name ::= NK_ID", + /* 489 */ "stream_name ::= NK_ID", + /* 490 */ "cgroup_name ::= NK_ID", + /* 491 */ "index_name ::= NK_ID", + /* 492 */ "expr_or_subquery ::= expression", + /* 493 */ "expression ::= literal", + /* 494 */ "expression ::= pseudo_column", + /* 495 */ "expression ::= column_reference", + /* 496 */ "expression ::= function_expression", + /* 497 */ "expression ::= case_when_expression", + /* 498 */ "expression ::= NK_LP expression NK_RP", + /* 499 */ "expression ::= NK_PLUS expr_or_subquery", + /* 500 */ "expression ::= NK_MINUS expr_or_subquery", + /* 501 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", + /* 502 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", + /* 503 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", + /* 504 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", + /* 505 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", + /* 506 */ "expression ::= column_reference NK_ARROW NK_STRING", + /* 507 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", + /* 508 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", + /* 509 */ "expression_list ::= expr_or_subquery", + /* 510 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", + /* 511 */ "column_reference ::= column_name", + /* 512 */ "column_reference ::= table_name NK_DOT column_name", + /* 513 */ "column_reference ::= NK_ALIAS", + /* 514 */ "column_reference ::= table_name NK_DOT NK_ALIAS", + /* 515 */ "pseudo_column ::= ROWTS", + /* 516 */ "pseudo_column ::= TBNAME", + /* 517 */ "pseudo_column ::= table_name NK_DOT TBNAME", + /* 518 */ "pseudo_column ::= QSTART", + /* 519 */ "pseudo_column ::= QEND", + /* 520 */ "pseudo_column ::= QDURATION", + /* 521 */ "pseudo_column ::= WSTART", + /* 522 */ "pseudo_column ::= WEND", + /* 523 */ "pseudo_column ::= WDURATION", + /* 524 */ "pseudo_column ::= IROWTS", + /* 525 */ "pseudo_column ::= ISFILLED", + /* 526 */ "pseudo_column ::= QTAGS", + /* 527 */ "function_expression ::= function_name NK_LP expression_list NK_RP", + /* 528 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", + /* 529 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", + /* 530 */ "function_expression ::= literal_func", + /* 531 */ "literal_func ::= noarg_func NK_LP NK_RP", + /* 532 */ "literal_func ::= NOW", + /* 533 */ "literal_func ::= TODAY", + /* 534 */ "noarg_func ::= NOW", + /* 535 */ "noarg_func ::= TODAY", + /* 536 */ "noarg_func ::= TIMEZONE", + /* 537 */ "noarg_func ::= DATABASE", + /* 538 */ "noarg_func ::= CLIENT_VERSION", + /* 539 */ "noarg_func ::= SERVER_VERSION", + /* 540 */ "noarg_func ::= SERVER_STATUS", + /* 541 */ "noarg_func ::= CURRENT_USER", + /* 542 */ "noarg_func ::= USER", + /* 543 */ "star_func ::= COUNT", + /* 544 */ "star_func ::= FIRST", + /* 545 */ "star_func ::= LAST", + /* 546 */ "star_func ::= LAST_ROW", + /* 547 */ "star_func_para_list ::= NK_STAR", + /* 548 */ "star_func_para_list ::= other_para_list", + /* 549 */ "other_para_list ::= star_func_para", + /* 550 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", + /* 551 */ "star_func_para ::= expr_or_subquery", + /* 552 */ "star_func_para ::= table_name NK_DOT NK_STAR", + /* 553 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", + /* 554 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", + /* 555 */ "when_then_list ::= when_then_expr", + /* 556 */ "when_then_list ::= when_then_list when_then_expr", + /* 557 */ "when_then_expr ::= WHEN common_expression THEN common_expression", + /* 558 */ "case_when_else_opt ::=", + /* 559 */ "case_when_else_opt ::= ELSE common_expression", + /* 560 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", + /* 561 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", + /* 562 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", + /* 563 */ "predicate ::= expr_or_subquery IS NULL", + /* 564 */ "predicate ::= expr_or_subquery IS NOT NULL", + /* 565 */ "predicate ::= expr_or_subquery in_op in_predicate_value", + /* 566 */ "compare_op ::= NK_LT", + /* 567 */ "compare_op ::= NK_GT", + /* 568 */ "compare_op ::= NK_LE", + /* 569 */ "compare_op ::= NK_GE", + /* 570 */ "compare_op ::= NK_NE", + /* 571 */ "compare_op ::= NK_EQ", + /* 572 */ "compare_op ::= LIKE", + /* 573 */ "compare_op ::= NOT LIKE", + /* 574 */ "compare_op ::= MATCH", + /* 575 */ "compare_op ::= NMATCH", + /* 576 */ "compare_op ::= CONTAINS", + /* 577 */ "in_op ::= IN", + /* 578 */ "in_op ::= NOT IN", + /* 579 */ "in_predicate_value ::= NK_LP literal_list NK_RP", + /* 580 */ "boolean_value_expression ::= boolean_primary", + /* 581 */ "boolean_value_expression ::= NOT boolean_primary", + /* 582 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", + /* 583 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", + /* 584 */ "boolean_primary ::= predicate", + /* 585 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", + /* 586 */ "common_expression ::= expr_or_subquery", + /* 587 */ "common_expression ::= boolean_value_expression", + /* 588 */ "from_clause_opt ::=", + /* 589 */ "from_clause_opt ::= FROM table_reference_list", + /* 590 */ "table_reference_list ::= table_reference", + /* 591 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", + /* 592 */ "table_reference ::= table_primary", + /* 593 */ "table_reference ::= joined_table", + /* 594 */ "table_primary ::= table_name alias_opt", + /* 595 */ "table_primary ::= db_name NK_DOT table_name alias_opt", + /* 596 */ "table_primary ::= subquery alias_opt", + /* 597 */ "table_primary ::= parenthesized_joined_table", + /* 598 */ "alias_opt ::=", + /* 599 */ "alias_opt ::= table_alias", + /* 600 */ "alias_opt ::= AS table_alias", + /* 601 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", + /* 602 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", + /* 603 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", + /* 604 */ "join_type ::=", + /* 605 */ "join_type ::= INNER", + /* 606 */ "query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_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", + /* 607 */ "hint_list ::=", + /* 608 */ "hint_list ::= NK_HINT", + /* 609 */ "tag_mode_opt ::=", + /* 610 */ "tag_mode_opt ::= TAGS", + /* 611 */ "set_quantifier_opt ::=", + /* 612 */ "set_quantifier_opt ::= DISTINCT", + /* 613 */ "set_quantifier_opt ::= ALL", + /* 614 */ "select_list ::= select_item", + /* 615 */ "select_list ::= select_list NK_COMMA select_item", + /* 616 */ "select_item ::= NK_STAR", + /* 617 */ "select_item ::= common_expression", + /* 618 */ "select_item ::= common_expression column_alias", + /* 619 */ "select_item ::= common_expression AS column_alias", + /* 620 */ "select_item ::= table_name NK_DOT NK_STAR", + /* 621 */ "where_clause_opt ::=", + /* 622 */ "where_clause_opt ::= WHERE search_condition", + /* 623 */ "partition_by_clause_opt ::=", + /* 624 */ "partition_by_clause_opt ::= PARTITION BY partition_list", + /* 625 */ "partition_list ::= partition_item", + /* 626 */ "partition_list ::= partition_list NK_COMMA partition_item", + /* 627 */ "partition_item ::= expr_or_subquery", + /* 628 */ "partition_item ::= expr_or_subquery column_alias", + /* 629 */ "partition_item ::= expr_or_subquery AS column_alias", + /* 630 */ "twindow_clause_opt ::=", + /* 631 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP", + /* 632 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", + /* 633 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt", + /* 634 */ "twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt", + /* 635 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", + /* 636 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP", + /* 637 */ "twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP", + /* 638 */ "sliding_opt ::=", + /* 639 */ "sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP", + /* 640 */ "interval_sliding_duration_literal ::= NK_VARIABLE", + /* 641 */ "interval_sliding_duration_literal ::= NK_STRING", + /* 642 */ "interval_sliding_duration_literal ::= NK_INTEGER", + /* 643 */ "fill_opt ::=", + /* 644 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 645 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", + /* 646 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", + /* 647 */ "fill_mode ::= NONE", + /* 648 */ "fill_mode ::= PREV", + /* 649 */ "fill_mode ::= NULL", + /* 650 */ "fill_mode ::= NULL_F", + /* 651 */ "fill_mode ::= LINEAR", + /* 652 */ "fill_mode ::= NEXT", + /* 653 */ "group_by_clause_opt ::=", + /* 654 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 655 */ "group_by_list ::= expr_or_subquery", + /* 656 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 657 */ "having_clause_opt ::=", + /* 658 */ "having_clause_opt ::= HAVING search_condition", + /* 659 */ "range_opt ::=", + /* 660 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 661 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", + /* 662 */ "every_opt ::=", + /* 663 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 664 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 665 */ "query_simple ::= query_specification", + /* 666 */ "query_simple ::= union_query_expression", + /* 667 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 668 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 669 */ "query_simple_or_subquery ::= query_simple", + /* 670 */ "query_simple_or_subquery ::= subquery", + /* 671 */ "query_or_subquery ::= query_expression", + /* 672 */ "query_or_subquery ::= subquery", + /* 673 */ "order_by_clause_opt ::=", + /* 674 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 675 */ "slimit_clause_opt ::=", + /* 676 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 677 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 678 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 679 */ "limit_clause_opt ::=", + /* 680 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 681 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 682 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 683 */ "subquery ::= NK_LP query_expression NK_RP", + /* 684 */ "subquery ::= NK_LP subquery NK_RP", + /* 685 */ "search_condition ::= common_expression", + /* 686 */ "sort_specification_list ::= sort_specification", + /* 687 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 688 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 689 */ "ordering_specification_opt ::=", + /* 690 */ "ordering_specification_opt ::= ASC", + /* 691 */ "ordering_specification_opt ::= DESC", + /* 692 */ "null_ordering_opt ::=", + /* 693 */ "null_ordering_opt ::= NULLS FIRST", + /* 694 */ "null_ordering_opt ::= NULLS LAST", + /* 695 */ "column_options ::=", + /* 696 */ "column_options ::= column_options PRIMARY KEY", + /* 697 */ "column_options ::= column_options ENCODE NK_STRING", + /* 698 */ "column_options ::= column_options COMPRESS NK_STRING", + /* 699 */ "column_options ::= column_options LEVEL NK_STRING", }; #endif /* NDEBUG */ @@ -3351,7 +3379,7 @@ static void yy_destructor( { #line 7 "sql.y" nodesDestroyNode((yypminor->yy1000)); -#line 3354 "sql.c" +#line 3382 "sql.c" } break; case 359: /* account_options */ @@ -3363,7 +3391,7 @@ static void yy_destructor( { #line 54 "sql.y" -#line 3366 "sql.c" +#line 3394 "sql.c" } break; case 363: /* ip_range_list */ @@ -3404,7 +3432,7 @@ static void yy_destructor( { #line 85 "sql.y" nodesDestroyList((yypminor->yy72)); -#line 3407 "sql.c" +#line 3435 "sql.c" } break; case 366: /* user_name */ @@ -3427,16 +3455,16 @@ static void yy_destructor( case 473: /* noarg_func */ case 491: /* alias_opt */ { -#line 898 "sql.y" +#line 1018 "sql.y" -#line 3432 "sql.c" +#line 3460 "sql.c" } break; case 367: /* sysinfo_opt */ { #line 112 "sql.y" -#line 3439 "sql.c" +#line 3467 "sql.c" } break; case 368: /* privileges */ @@ -3445,14 +3473,14 @@ static void yy_destructor( { #line 121 "sql.y" -#line 3448 "sql.c" +#line 3476 "sql.c" } break; case 369: /* priv_level */ { #line 138 "sql.y" -#line 3455 "sql.c" +#line 3483 "sql.c" } break; case 378: /* force_opt */ @@ -3468,7 +3496,7 @@ static void yy_destructor( { #line 167 "sql.y" -#line 3471 "sql.c" +#line 3499 "sql.c" } break; case 391: /* alter_db_option */ @@ -3476,14 +3504,14 @@ static void yy_destructor( { #line 269 "sql.y" -#line 3479 "sql.c" +#line 3507 "sql.c" } break; case 403: /* type_name */ { #line 400 "sql.y" -#line 3486 "sql.c" +#line 3514 "sql.c" } break; case 421: /* db_kind_opt */ @@ -3491,50 +3519,50 @@ static void yy_destructor( { #line 569 "sql.y" -#line 3494 "sql.c" +#line 3522 "sql.c" } break; case 422: /* table_kind_db_name_cond_opt */ { #line 534 "sql.y" -#line 3501 "sql.c" +#line 3529 "sql.c" } break; case 481: /* compare_op */ case 482: /* in_op */ { -#line 1089 "sql.y" +#line 1209 "sql.y" -#line 3509 "sql.c" +#line 3537 "sql.c" } break; case 494: /* join_type */ { -#line 1165 "sql.y" +#line 1285 "sql.y" -#line 3516 "sql.c" +#line 3544 "sql.c" } break; case 511: /* fill_mode */ { -#line 1260 "sql.y" +#line 1380 "sql.y" -#line 3523 "sql.c" +#line 3551 "sql.c" } break; case 522: /* ordering_specification_opt */ { -#line 1345 "sql.y" +#line 1465 "sql.y" -#line 3530 "sql.c" +#line 3558 "sql.c" } break; case 523: /* null_ordering_opt */ { -#line 1351 "sql.y" +#line 1471 "sql.y" -#line 3537 "sql.c" +#line 3565 "sql.c" } break; /********* End destructor definitions *****************************************/ @@ -4238,271 +4266,291 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 446, /* (412) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ 446, /* (413) insert_query ::= INSERT INTO full_table_name query_or_subquery */ 405, /* (414) tags_literal ::= NK_INTEGER */ - 405, /* (415) tags_literal ::= NK_PLUS NK_INTEGER */ - 405, /* (416) tags_literal ::= NK_MINUS NK_INTEGER */ - 405, /* (417) tags_literal ::= NK_FLOAT */ - 405, /* (418) tags_literal ::= NK_PLUS NK_FLOAT */ - 405, /* (419) tags_literal ::= NK_MINUS NK_FLOAT */ - 405, /* (420) tags_literal ::= NK_BIN */ - 405, /* (421) tags_literal ::= NK_PLUS NK_BIN */ - 405, /* (422) tags_literal ::= NK_MINUS NK_BIN */ - 405, /* (423) tags_literal ::= NK_HEX */ - 405, /* (424) tags_literal ::= NK_PLUS NK_HEX */ - 405, /* (425) tags_literal ::= NK_MINUS NK_HEX */ - 405, /* (426) tags_literal ::= NK_STRING */ - 405, /* (427) tags_literal ::= NK_BOOL */ - 405, /* (428) tags_literal ::= NULL */ - 405, /* (429) tags_literal ::= literal_func */ - 405, /* (430) tags_literal ::= literal_func NK_PLUS duration_literal */ - 405, /* (431) tags_literal ::= literal_func NK_MINUS duration_literal */ - 408, /* (432) tags_literal_list ::= tags_literal */ - 408, /* (433) tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ - 361, /* (434) literal ::= NK_INTEGER */ - 361, /* (435) literal ::= NK_FLOAT */ - 361, /* (436) literal ::= NK_STRING */ - 361, /* (437) literal ::= NK_BOOL */ - 361, /* (438) literal ::= TIMESTAMP NK_STRING */ - 361, /* (439) literal ::= duration_literal */ - 361, /* (440) literal ::= NULL */ - 361, /* (441) literal ::= NK_QUESTION */ - 417, /* (442) duration_literal ::= NK_VARIABLE */ - 390, /* (443) signed ::= NK_INTEGER */ - 390, /* (444) signed ::= NK_PLUS NK_INTEGER */ - 390, /* (445) signed ::= NK_MINUS NK_INTEGER */ - 390, /* (446) signed ::= NK_FLOAT */ - 390, /* (447) signed ::= NK_PLUS NK_FLOAT */ - 390, /* (448) signed ::= NK_MINUS NK_FLOAT */ - 463, /* (449) signed_literal ::= signed */ - 463, /* (450) signed_literal ::= NK_STRING */ - 463, /* (451) signed_literal ::= NK_BOOL */ - 463, /* (452) signed_literal ::= TIMESTAMP NK_STRING */ - 463, /* (453) signed_literal ::= duration_literal */ - 463, /* (454) signed_literal ::= NULL */ - 463, /* (455) signed_literal ::= literal_func */ - 463, /* (456) signed_literal ::= NK_QUESTION */ - 464, /* (457) literal_list ::= signed_literal */ - 464, /* (458) literal_list ::= literal_list NK_COMMA signed_literal */ - 373, /* (459) db_name ::= NK_ID */ - 374, /* (460) table_name ::= NK_ID */ - 402, /* (461) column_name ::= NK_ID */ - 419, /* (462) function_name ::= NK_ID */ - 452, /* (463) view_name ::= NK_ID */ - 465, /* (464) table_alias ::= NK_ID */ - 430, /* (465) column_alias ::= NK_ID */ - 430, /* (466) column_alias ::= NK_ALIAS */ - 366, /* (467) user_name ::= NK_ID */ - 375, /* (468) topic_name ::= NK_ID */ - 453, /* (469) stream_name ::= NK_ID */ - 443, /* (470) cgroup_name ::= NK_ID */ - 433, /* (471) index_name ::= NK_ID */ - 466, /* (472) expr_or_subquery ::= expression */ - 459, /* (473) expression ::= literal */ - 459, /* (474) expression ::= pseudo_column */ - 459, /* (475) expression ::= column_reference */ - 459, /* (476) expression ::= function_expression */ - 459, /* (477) expression ::= case_when_expression */ - 459, /* (478) expression ::= NK_LP expression NK_RP */ - 459, /* (479) expression ::= NK_PLUS expr_or_subquery */ - 459, /* (480) expression ::= NK_MINUS expr_or_subquery */ - 459, /* (481) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ - 459, /* (482) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ - 459, /* (483) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ - 459, /* (484) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ - 459, /* (485) expression ::= expr_or_subquery NK_REM expr_or_subquery */ - 459, /* (486) expression ::= column_reference NK_ARROW NK_STRING */ - 459, /* (487) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ - 459, /* (488) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ - 439, /* (489) expression_list ::= expr_or_subquery */ - 439, /* (490) expression_list ::= expression_list NK_COMMA expr_or_subquery */ - 468, /* (491) column_reference ::= column_name */ - 468, /* (492) column_reference ::= table_name NK_DOT column_name */ - 468, /* (493) column_reference ::= NK_ALIAS */ - 468, /* (494) column_reference ::= table_name NK_DOT NK_ALIAS */ - 467, /* (495) pseudo_column ::= ROWTS */ - 467, /* (496) pseudo_column ::= TBNAME */ - 467, /* (497) pseudo_column ::= table_name NK_DOT TBNAME */ - 467, /* (498) pseudo_column ::= QSTART */ - 467, /* (499) pseudo_column ::= QEND */ - 467, /* (500) pseudo_column ::= QDURATION */ - 467, /* (501) pseudo_column ::= WSTART */ - 467, /* (502) pseudo_column ::= WEND */ - 467, /* (503) pseudo_column ::= WDURATION */ - 467, /* (504) pseudo_column ::= IROWTS */ - 467, /* (505) pseudo_column ::= ISFILLED */ - 467, /* (506) pseudo_column ::= QTAGS */ - 469, /* (507) function_expression ::= function_name NK_LP expression_list NK_RP */ - 469, /* (508) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ - 469, /* (509) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ - 469, /* (510) function_expression ::= literal_func */ - 462, /* (511) literal_func ::= noarg_func NK_LP NK_RP */ - 462, /* (512) literal_func ::= NOW */ - 462, /* (513) literal_func ::= TODAY */ - 473, /* (514) noarg_func ::= NOW */ - 473, /* (515) noarg_func ::= TODAY */ - 473, /* (516) noarg_func ::= TIMEZONE */ - 473, /* (517) noarg_func ::= DATABASE */ - 473, /* (518) noarg_func ::= CLIENT_VERSION */ - 473, /* (519) noarg_func ::= SERVER_VERSION */ - 473, /* (520) noarg_func ::= SERVER_STATUS */ - 473, /* (521) noarg_func ::= CURRENT_USER */ - 473, /* (522) noarg_func ::= USER */ - 471, /* (523) star_func ::= COUNT */ - 471, /* (524) star_func ::= FIRST */ - 471, /* (525) star_func ::= LAST */ - 471, /* (526) star_func ::= LAST_ROW */ - 472, /* (527) star_func_para_list ::= NK_STAR */ - 472, /* (528) star_func_para_list ::= other_para_list */ - 474, /* (529) other_para_list ::= star_func_para */ - 474, /* (530) other_para_list ::= other_para_list NK_COMMA star_func_para */ - 475, /* (531) star_func_para ::= expr_or_subquery */ - 475, /* (532) star_func_para ::= table_name NK_DOT NK_STAR */ - 470, /* (533) case_when_expression ::= CASE when_then_list case_when_else_opt END */ - 470, /* (534) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ - 476, /* (535) when_then_list ::= when_then_expr */ - 476, /* (536) when_then_list ::= when_then_list when_then_expr */ - 479, /* (537) when_then_expr ::= WHEN common_expression THEN common_expression */ - 477, /* (538) case_when_else_opt ::= */ - 477, /* (539) case_when_else_opt ::= ELSE common_expression */ - 480, /* (540) predicate ::= expr_or_subquery compare_op expr_or_subquery */ - 480, /* (541) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ - 480, /* (542) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ - 480, /* (543) predicate ::= expr_or_subquery IS NULL */ - 480, /* (544) predicate ::= expr_or_subquery IS NOT NULL */ - 480, /* (545) predicate ::= expr_or_subquery in_op in_predicate_value */ - 481, /* (546) compare_op ::= NK_LT */ - 481, /* (547) compare_op ::= NK_GT */ - 481, /* (548) compare_op ::= NK_LE */ - 481, /* (549) compare_op ::= NK_GE */ - 481, /* (550) compare_op ::= NK_NE */ - 481, /* (551) compare_op ::= NK_EQ */ - 481, /* (552) compare_op ::= LIKE */ - 481, /* (553) compare_op ::= NOT LIKE */ - 481, /* (554) compare_op ::= MATCH */ - 481, /* (555) compare_op ::= NMATCH */ - 481, /* (556) compare_op ::= CONTAINS */ - 482, /* (557) in_op ::= IN */ - 482, /* (558) in_op ::= NOT IN */ - 483, /* (559) in_predicate_value ::= NK_LP literal_list NK_RP */ - 484, /* (560) boolean_value_expression ::= boolean_primary */ - 484, /* (561) boolean_value_expression ::= NOT boolean_primary */ - 484, /* (562) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ - 484, /* (563) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ - 485, /* (564) boolean_primary ::= predicate */ - 485, /* (565) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ - 478, /* (566) common_expression ::= expr_or_subquery */ - 478, /* (567) common_expression ::= boolean_value_expression */ - 486, /* (568) from_clause_opt ::= */ - 486, /* (569) from_clause_opt ::= FROM table_reference_list */ - 487, /* (570) table_reference_list ::= table_reference */ - 487, /* (571) table_reference_list ::= table_reference_list NK_COMMA table_reference */ - 488, /* (572) table_reference ::= table_primary */ - 488, /* (573) table_reference ::= joined_table */ - 489, /* (574) table_primary ::= table_name alias_opt */ - 489, /* (575) table_primary ::= db_name NK_DOT table_name alias_opt */ - 489, /* (576) table_primary ::= subquery alias_opt */ - 489, /* (577) table_primary ::= parenthesized_joined_table */ - 491, /* (578) alias_opt ::= */ - 491, /* (579) alias_opt ::= table_alias */ - 491, /* (580) alias_opt ::= AS table_alias */ - 493, /* (581) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - 493, /* (582) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - 490, /* (583) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ - 494, /* (584) join_type ::= */ - 494, /* (585) join_type ::= INNER */ - 495, /* (586) query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_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 */ - 496, /* (587) hint_list ::= */ - 496, /* (588) hint_list ::= NK_HINT */ - 498, /* (589) tag_mode_opt ::= */ - 498, /* (590) tag_mode_opt ::= TAGS */ - 497, /* (591) set_quantifier_opt ::= */ - 497, /* (592) set_quantifier_opt ::= DISTINCT */ - 497, /* (593) set_quantifier_opt ::= ALL */ - 499, /* (594) select_list ::= select_item */ - 499, /* (595) select_list ::= select_list NK_COMMA select_item */ - 507, /* (596) select_item ::= NK_STAR */ - 507, /* (597) select_item ::= common_expression */ - 507, /* (598) select_item ::= common_expression column_alias */ - 507, /* (599) select_item ::= common_expression AS column_alias */ - 507, /* (600) select_item ::= table_name NK_DOT NK_STAR */ - 442, /* (601) where_clause_opt ::= */ - 442, /* (602) where_clause_opt ::= WHERE search_condition */ - 500, /* (603) partition_by_clause_opt ::= */ - 500, /* (604) partition_by_clause_opt ::= PARTITION BY partition_list */ - 508, /* (605) partition_list ::= partition_item */ - 508, /* (606) partition_list ::= partition_list NK_COMMA partition_item */ - 509, /* (607) partition_item ::= expr_or_subquery */ - 509, /* (608) partition_item ::= expr_or_subquery column_alias */ - 509, /* (609) partition_item ::= expr_or_subquery AS column_alias */ - 504, /* (610) twindow_clause_opt ::= */ - 504, /* (611) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ - 504, /* (612) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - 504, /* (613) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - 504, /* (614) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - 504, /* (615) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - 504, /* (616) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ - 504, /* (617) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ - 435, /* (618) sliding_opt ::= */ - 435, /* (619) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ - 510, /* (620) interval_sliding_duration_literal ::= NK_VARIABLE */ - 510, /* (621) interval_sliding_duration_literal ::= NK_STRING */ - 510, /* (622) interval_sliding_duration_literal ::= NK_INTEGER */ - 503, /* (623) fill_opt ::= */ - 503, /* (624) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - 503, /* (625) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - 503, /* (626) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - 511, /* (627) fill_mode ::= NONE */ - 511, /* (628) fill_mode ::= PREV */ - 511, /* (629) fill_mode ::= NULL */ - 511, /* (630) fill_mode ::= NULL_F */ - 511, /* (631) fill_mode ::= LINEAR */ - 511, /* (632) fill_mode ::= NEXT */ - 505, /* (633) group_by_clause_opt ::= */ - 505, /* (634) group_by_clause_opt ::= GROUP BY group_by_list */ - 512, /* (635) group_by_list ::= expr_or_subquery */ - 512, /* (636) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 506, /* (637) having_clause_opt ::= */ - 506, /* (638) having_clause_opt ::= HAVING search_condition */ - 501, /* (639) range_opt ::= */ - 501, /* (640) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - 501, /* (641) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 502, /* (642) every_opt ::= */ - 502, /* (643) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - 513, /* (644) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - 514, /* (645) query_simple ::= query_specification */ - 514, /* (646) query_simple ::= union_query_expression */ - 518, /* (647) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - 518, /* (648) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - 519, /* (649) query_simple_or_subquery ::= query_simple */ - 519, /* (650) query_simple_or_subquery ::= subquery */ - 441, /* (651) query_or_subquery ::= query_expression */ - 441, /* (652) query_or_subquery ::= subquery */ - 515, /* (653) order_by_clause_opt ::= */ - 515, /* (654) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 516, /* (655) slimit_clause_opt ::= */ - 516, /* (656) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - 516, /* (657) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - 516, /* (658) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 517, /* (659) limit_clause_opt ::= */ - 517, /* (660) limit_clause_opt ::= LIMIT NK_INTEGER */ - 517, /* (661) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - 517, /* (662) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 492, /* (663) subquery ::= NK_LP query_expression NK_RP */ - 492, /* (664) subquery ::= NK_LP subquery NK_RP */ - 376, /* (665) search_condition ::= common_expression */ - 520, /* (666) sort_specification_list ::= sort_specification */ - 520, /* (667) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - 521, /* (668) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 522, /* (669) ordering_specification_opt ::= */ - 522, /* (670) ordering_specification_opt ::= ASC */ - 522, /* (671) ordering_specification_opt ::= DESC */ - 523, /* (672) null_ordering_opt ::= */ - 523, /* (673) null_ordering_opt ::= NULLS FIRST */ - 523, /* (674) null_ordering_opt ::= NULLS LAST */ - 404, /* (675) column_options ::= */ - 404, /* (676) column_options ::= column_options PRIMARY KEY */ - 404, /* (677) column_options ::= column_options ENCODE NK_STRING */ - 404, /* (678) column_options ::= column_options COMPRESS NK_STRING */ - 404, /* (679) column_options ::= column_options LEVEL NK_STRING */ + 405, /* (415) tags_literal ::= NK_INTEGER NK_PLUS duration_literal */ + 405, /* (416) tags_literal ::= NK_INTEGER NK_MINUS duration_literal */ + 405, /* (417) tags_literal ::= NK_PLUS NK_INTEGER */ + 405, /* (418) tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal */ + 405, /* (419) tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal */ + 405, /* (420) tags_literal ::= NK_MINUS NK_INTEGER */ + 405, /* (421) tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal */ + 405, /* (422) tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal */ + 405, /* (423) tags_literal ::= NK_FLOAT */ + 405, /* (424) tags_literal ::= NK_PLUS NK_FLOAT */ + 405, /* (425) tags_literal ::= NK_MINUS NK_FLOAT */ + 405, /* (426) tags_literal ::= NK_BIN */ + 405, /* (427) tags_literal ::= NK_BIN NK_PLUS duration_literal */ + 405, /* (428) tags_literal ::= NK_BIN NK_MINUS duration_literal */ + 405, /* (429) tags_literal ::= NK_PLUS NK_BIN */ + 405, /* (430) tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal */ + 405, /* (431) tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal */ + 405, /* (432) tags_literal ::= NK_MINUS NK_BIN */ + 405, /* (433) tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal */ + 405, /* (434) tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal */ + 405, /* (435) tags_literal ::= NK_HEX */ + 405, /* (436) tags_literal ::= NK_HEX NK_PLUS duration_literal */ + 405, /* (437) tags_literal ::= NK_HEX NK_MINUS duration_literal */ + 405, /* (438) tags_literal ::= NK_PLUS NK_HEX */ + 405, /* (439) tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal */ + 405, /* (440) tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal */ + 405, /* (441) tags_literal ::= NK_MINUS NK_HEX */ + 405, /* (442) tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal */ + 405, /* (443) tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal */ + 405, /* (444) tags_literal ::= NK_STRING */ + 405, /* (445) tags_literal ::= NK_STRING NK_PLUS duration_literal */ + 405, /* (446) tags_literal ::= NK_STRING NK_MINUS duration_literal */ + 405, /* (447) tags_literal ::= NK_BOOL */ + 405, /* (448) tags_literal ::= NULL */ + 405, /* (449) tags_literal ::= literal_func */ + 405, /* (450) tags_literal ::= literal_func NK_PLUS duration_literal */ + 405, /* (451) tags_literal ::= literal_func NK_MINUS duration_literal */ + 408, /* (452) tags_literal_list ::= tags_literal */ + 408, /* (453) tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ + 361, /* (454) literal ::= NK_INTEGER */ + 361, /* (455) literal ::= NK_FLOAT */ + 361, /* (456) literal ::= NK_STRING */ + 361, /* (457) literal ::= NK_BOOL */ + 361, /* (458) literal ::= TIMESTAMP NK_STRING */ + 361, /* (459) literal ::= duration_literal */ + 361, /* (460) literal ::= NULL */ + 361, /* (461) literal ::= NK_QUESTION */ + 417, /* (462) duration_literal ::= NK_VARIABLE */ + 390, /* (463) signed ::= NK_INTEGER */ + 390, /* (464) signed ::= NK_PLUS NK_INTEGER */ + 390, /* (465) signed ::= NK_MINUS NK_INTEGER */ + 390, /* (466) signed ::= NK_FLOAT */ + 390, /* (467) signed ::= NK_PLUS NK_FLOAT */ + 390, /* (468) signed ::= NK_MINUS NK_FLOAT */ + 463, /* (469) signed_literal ::= signed */ + 463, /* (470) signed_literal ::= NK_STRING */ + 463, /* (471) signed_literal ::= NK_BOOL */ + 463, /* (472) signed_literal ::= TIMESTAMP NK_STRING */ + 463, /* (473) signed_literal ::= duration_literal */ + 463, /* (474) signed_literal ::= NULL */ + 463, /* (475) signed_literal ::= literal_func */ + 463, /* (476) signed_literal ::= NK_QUESTION */ + 464, /* (477) literal_list ::= signed_literal */ + 464, /* (478) literal_list ::= literal_list NK_COMMA signed_literal */ + 373, /* (479) db_name ::= NK_ID */ + 374, /* (480) table_name ::= NK_ID */ + 402, /* (481) column_name ::= NK_ID */ + 419, /* (482) function_name ::= NK_ID */ + 452, /* (483) view_name ::= NK_ID */ + 465, /* (484) table_alias ::= NK_ID */ + 430, /* (485) column_alias ::= NK_ID */ + 430, /* (486) column_alias ::= NK_ALIAS */ + 366, /* (487) user_name ::= NK_ID */ + 375, /* (488) topic_name ::= NK_ID */ + 453, /* (489) stream_name ::= NK_ID */ + 443, /* (490) cgroup_name ::= NK_ID */ + 433, /* (491) index_name ::= NK_ID */ + 466, /* (492) expr_or_subquery ::= expression */ + 459, /* (493) expression ::= literal */ + 459, /* (494) expression ::= pseudo_column */ + 459, /* (495) expression ::= column_reference */ + 459, /* (496) expression ::= function_expression */ + 459, /* (497) expression ::= case_when_expression */ + 459, /* (498) expression ::= NK_LP expression NK_RP */ + 459, /* (499) expression ::= NK_PLUS expr_or_subquery */ + 459, /* (500) expression ::= NK_MINUS expr_or_subquery */ + 459, /* (501) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + 459, /* (502) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + 459, /* (503) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + 459, /* (504) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + 459, /* (505) expression ::= expr_or_subquery NK_REM expr_or_subquery */ + 459, /* (506) expression ::= column_reference NK_ARROW NK_STRING */ + 459, /* (507) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + 459, /* (508) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + 439, /* (509) expression_list ::= expr_or_subquery */ + 439, /* (510) expression_list ::= expression_list NK_COMMA expr_or_subquery */ + 468, /* (511) column_reference ::= column_name */ + 468, /* (512) column_reference ::= table_name NK_DOT column_name */ + 468, /* (513) column_reference ::= NK_ALIAS */ + 468, /* (514) column_reference ::= table_name NK_DOT NK_ALIAS */ + 467, /* (515) pseudo_column ::= ROWTS */ + 467, /* (516) pseudo_column ::= TBNAME */ + 467, /* (517) pseudo_column ::= table_name NK_DOT TBNAME */ + 467, /* (518) pseudo_column ::= QSTART */ + 467, /* (519) pseudo_column ::= QEND */ + 467, /* (520) pseudo_column ::= QDURATION */ + 467, /* (521) pseudo_column ::= WSTART */ + 467, /* (522) pseudo_column ::= WEND */ + 467, /* (523) pseudo_column ::= WDURATION */ + 467, /* (524) pseudo_column ::= IROWTS */ + 467, /* (525) pseudo_column ::= ISFILLED */ + 467, /* (526) pseudo_column ::= QTAGS */ + 469, /* (527) function_expression ::= function_name NK_LP expression_list NK_RP */ + 469, /* (528) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ + 469, /* (529) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + 469, /* (530) function_expression ::= literal_func */ + 462, /* (531) literal_func ::= noarg_func NK_LP NK_RP */ + 462, /* (532) literal_func ::= NOW */ + 462, /* (533) literal_func ::= TODAY */ + 473, /* (534) noarg_func ::= NOW */ + 473, /* (535) noarg_func ::= TODAY */ + 473, /* (536) noarg_func ::= TIMEZONE */ + 473, /* (537) noarg_func ::= DATABASE */ + 473, /* (538) noarg_func ::= CLIENT_VERSION */ + 473, /* (539) noarg_func ::= SERVER_VERSION */ + 473, /* (540) noarg_func ::= SERVER_STATUS */ + 473, /* (541) noarg_func ::= CURRENT_USER */ + 473, /* (542) noarg_func ::= USER */ + 471, /* (543) star_func ::= COUNT */ + 471, /* (544) star_func ::= FIRST */ + 471, /* (545) star_func ::= LAST */ + 471, /* (546) star_func ::= LAST_ROW */ + 472, /* (547) star_func_para_list ::= NK_STAR */ + 472, /* (548) star_func_para_list ::= other_para_list */ + 474, /* (549) other_para_list ::= star_func_para */ + 474, /* (550) other_para_list ::= other_para_list NK_COMMA star_func_para */ + 475, /* (551) star_func_para ::= expr_or_subquery */ + 475, /* (552) star_func_para ::= table_name NK_DOT NK_STAR */ + 470, /* (553) case_when_expression ::= CASE when_then_list case_when_else_opt END */ + 470, /* (554) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + 476, /* (555) when_then_list ::= when_then_expr */ + 476, /* (556) when_then_list ::= when_then_list when_then_expr */ + 479, /* (557) when_then_expr ::= WHEN common_expression THEN common_expression */ + 477, /* (558) case_when_else_opt ::= */ + 477, /* (559) case_when_else_opt ::= ELSE common_expression */ + 480, /* (560) predicate ::= expr_or_subquery compare_op expr_or_subquery */ + 480, /* (561) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + 480, /* (562) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + 480, /* (563) predicate ::= expr_or_subquery IS NULL */ + 480, /* (564) predicate ::= expr_or_subquery IS NOT NULL */ + 480, /* (565) predicate ::= expr_or_subquery in_op in_predicate_value */ + 481, /* (566) compare_op ::= NK_LT */ + 481, /* (567) compare_op ::= NK_GT */ + 481, /* (568) compare_op ::= NK_LE */ + 481, /* (569) compare_op ::= NK_GE */ + 481, /* (570) compare_op ::= NK_NE */ + 481, /* (571) compare_op ::= NK_EQ */ + 481, /* (572) compare_op ::= LIKE */ + 481, /* (573) compare_op ::= NOT LIKE */ + 481, /* (574) compare_op ::= MATCH */ + 481, /* (575) compare_op ::= NMATCH */ + 481, /* (576) compare_op ::= CONTAINS */ + 482, /* (577) in_op ::= IN */ + 482, /* (578) in_op ::= NOT IN */ + 483, /* (579) in_predicate_value ::= NK_LP literal_list NK_RP */ + 484, /* (580) boolean_value_expression ::= boolean_primary */ + 484, /* (581) boolean_value_expression ::= NOT boolean_primary */ + 484, /* (582) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + 484, /* (583) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + 485, /* (584) boolean_primary ::= predicate */ + 485, /* (585) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ + 478, /* (586) common_expression ::= expr_or_subquery */ + 478, /* (587) common_expression ::= boolean_value_expression */ + 486, /* (588) from_clause_opt ::= */ + 486, /* (589) from_clause_opt ::= FROM table_reference_list */ + 487, /* (590) table_reference_list ::= table_reference */ + 487, /* (591) table_reference_list ::= table_reference_list NK_COMMA table_reference */ + 488, /* (592) table_reference ::= table_primary */ + 488, /* (593) table_reference ::= joined_table */ + 489, /* (594) table_primary ::= table_name alias_opt */ + 489, /* (595) table_primary ::= db_name NK_DOT table_name alias_opt */ + 489, /* (596) table_primary ::= subquery alias_opt */ + 489, /* (597) table_primary ::= parenthesized_joined_table */ + 491, /* (598) alias_opt ::= */ + 491, /* (599) alias_opt ::= table_alias */ + 491, /* (600) alias_opt ::= AS table_alias */ + 493, /* (601) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + 493, /* (602) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ + 490, /* (603) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ + 494, /* (604) join_type ::= */ + 494, /* (605) join_type ::= INNER */ + 495, /* (606) query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_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 */ + 496, /* (607) hint_list ::= */ + 496, /* (608) hint_list ::= NK_HINT */ + 498, /* (609) tag_mode_opt ::= */ + 498, /* (610) tag_mode_opt ::= TAGS */ + 497, /* (611) set_quantifier_opt ::= */ + 497, /* (612) set_quantifier_opt ::= DISTINCT */ + 497, /* (613) set_quantifier_opt ::= ALL */ + 499, /* (614) select_list ::= select_item */ + 499, /* (615) select_list ::= select_list NK_COMMA select_item */ + 507, /* (616) select_item ::= NK_STAR */ + 507, /* (617) select_item ::= common_expression */ + 507, /* (618) select_item ::= common_expression column_alias */ + 507, /* (619) select_item ::= common_expression AS column_alias */ + 507, /* (620) select_item ::= table_name NK_DOT NK_STAR */ + 442, /* (621) where_clause_opt ::= */ + 442, /* (622) where_clause_opt ::= WHERE search_condition */ + 500, /* (623) partition_by_clause_opt ::= */ + 500, /* (624) partition_by_clause_opt ::= PARTITION BY partition_list */ + 508, /* (625) partition_list ::= partition_item */ + 508, /* (626) partition_list ::= partition_list NK_COMMA partition_item */ + 509, /* (627) partition_item ::= expr_or_subquery */ + 509, /* (628) partition_item ::= expr_or_subquery column_alias */ + 509, /* (629) partition_item ::= expr_or_subquery AS column_alias */ + 504, /* (630) twindow_clause_opt ::= */ + 504, /* (631) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ + 504, /* (632) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + 504, /* (633) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + 504, /* (634) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + 504, /* (635) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + 504, /* (636) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ + 504, /* (637) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ + 435, /* (638) sliding_opt ::= */ + 435, /* (639) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ + 510, /* (640) interval_sliding_duration_literal ::= NK_VARIABLE */ + 510, /* (641) interval_sliding_duration_literal ::= NK_STRING */ + 510, /* (642) interval_sliding_duration_literal ::= NK_INTEGER */ + 503, /* (643) fill_opt ::= */ + 503, /* (644) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + 503, /* (645) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + 503, /* (646) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + 511, /* (647) fill_mode ::= NONE */ + 511, /* (648) fill_mode ::= PREV */ + 511, /* (649) fill_mode ::= NULL */ + 511, /* (650) fill_mode ::= NULL_F */ + 511, /* (651) fill_mode ::= LINEAR */ + 511, /* (652) fill_mode ::= NEXT */ + 505, /* (653) group_by_clause_opt ::= */ + 505, /* (654) group_by_clause_opt ::= GROUP BY group_by_list */ + 512, /* (655) group_by_list ::= expr_or_subquery */ + 512, /* (656) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 506, /* (657) having_clause_opt ::= */ + 506, /* (658) having_clause_opt ::= HAVING search_condition */ + 501, /* (659) range_opt ::= */ + 501, /* (660) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + 501, /* (661) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 502, /* (662) every_opt ::= */ + 502, /* (663) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + 513, /* (664) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + 514, /* (665) query_simple ::= query_specification */ + 514, /* (666) query_simple ::= union_query_expression */ + 518, /* (667) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + 518, /* (668) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + 519, /* (669) query_simple_or_subquery ::= query_simple */ + 519, /* (670) query_simple_or_subquery ::= subquery */ + 441, /* (671) query_or_subquery ::= query_expression */ + 441, /* (672) query_or_subquery ::= subquery */ + 515, /* (673) order_by_clause_opt ::= */ + 515, /* (674) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 516, /* (675) slimit_clause_opt ::= */ + 516, /* (676) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + 516, /* (677) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + 516, /* (678) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 517, /* (679) limit_clause_opt ::= */ + 517, /* (680) limit_clause_opt ::= LIMIT NK_INTEGER */ + 517, /* (681) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + 517, /* (682) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 492, /* (683) subquery ::= NK_LP query_expression NK_RP */ + 492, /* (684) subquery ::= NK_LP subquery NK_RP */ + 376, /* (685) search_condition ::= common_expression */ + 520, /* (686) sort_specification_list ::= sort_specification */ + 520, /* (687) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + 521, /* (688) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 522, /* (689) ordering_specification_opt ::= */ + 522, /* (690) ordering_specification_opt ::= ASC */ + 522, /* (691) ordering_specification_opt ::= DESC */ + 523, /* (692) null_ordering_opt ::= */ + 523, /* (693) null_ordering_opt ::= NULLS FIRST */ + 523, /* (694) null_ordering_opt ::= NULLS LAST */ + 404, /* (695) column_options ::= */ + 404, /* (696) column_options ::= column_options PRIMARY KEY */ + 404, /* (697) column_options ::= column_options ENCODE NK_STRING */ + 404, /* (698) column_options ::= column_options COMPRESS NK_STRING */ + 404, /* (699) column_options ::= column_options LEVEL NK_STRING */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -4923,271 +4971,291 @@ static const signed char yyRuleInfoNRhs[] = { -7, /* (412) insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ -4, /* (413) insert_query ::= INSERT INTO full_table_name query_or_subquery */ -1, /* (414) tags_literal ::= NK_INTEGER */ - -2, /* (415) tags_literal ::= NK_PLUS NK_INTEGER */ - -2, /* (416) tags_literal ::= NK_MINUS NK_INTEGER */ - -1, /* (417) tags_literal ::= NK_FLOAT */ - -2, /* (418) tags_literal ::= NK_PLUS NK_FLOAT */ - -2, /* (419) tags_literal ::= NK_MINUS NK_FLOAT */ - -1, /* (420) tags_literal ::= NK_BIN */ - -2, /* (421) tags_literal ::= NK_PLUS NK_BIN */ - -2, /* (422) tags_literal ::= NK_MINUS NK_BIN */ - -1, /* (423) tags_literal ::= NK_HEX */ - -2, /* (424) tags_literal ::= NK_PLUS NK_HEX */ - -2, /* (425) tags_literal ::= NK_MINUS NK_HEX */ - -1, /* (426) tags_literal ::= NK_STRING */ - -1, /* (427) tags_literal ::= NK_BOOL */ - -1, /* (428) tags_literal ::= NULL */ - -1, /* (429) tags_literal ::= literal_func */ - -3, /* (430) tags_literal ::= literal_func NK_PLUS duration_literal */ - -3, /* (431) tags_literal ::= literal_func NK_MINUS duration_literal */ - -1, /* (432) tags_literal_list ::= tags_literal */ - -3, /* (433) tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ - -1, /* (434) literal ::= NK_INTEGER */ - -1, /* (435) literal ::= NK_FLOAT */ - -1, /* (436) literal ::= NK_STRING */ - -1, /* (437) literal ::= NK_BOOL */ - -2, /* (438) literal ::= TIMESTAMP NK_STRING */ - -1, /* (439) literal ::= duration_literal */ - -1, /* (440) literal ::= NULL */ - -1, /* (441) literal ::= NK_QUESTION */ - -1, /* (442) duration_literal ::= NK_VARIABLE */ - -1, /* (443) signed ::= NK_INTEGER */ - -2, /* (444) signed ::= NK_PLUS NK_INTEGER */ - -2, /* (445) signed ::= NK_MINUS NK_INTEGER */ - -1, /* (446) signed ::= NK_FLOAT */ - -2, /* (447) signed ::= NK_PLUS NK_FLOAT */ - -2, /* (448) signed ::= NK_MINUS NK_FLOAT */ - -1, /* (449) signed_literal ::= signed */ - -1, /* (450) signed_literal ::= NK_STRING */ - -1, /* (451) signed_literal ::= NK_BOOL */ - -2, /* (452) signed_literal ::= TIMESTAMP NK_STRING */ - -1, /* (453) signed_literal ::= duration_literal */ - -1, /* (454) signed_literal ::= NULL */ - -1, /* (455) signed_literal ::= literal_func */ - -1, /* (456) signed_literal ::= NK_QUESTION */ - -1, /* (457) literal_list ::= signed_literal */ - -3, /* (458) literal_list ::= literal_list NK_COMMA signed_literal */ - -1, /* (459) db_name ::= NK_ID */ - -1, /* (460) table_name ::= NK_ID */ - -1, /* (461) column_name ::= NK_ID */ - -1, /* (462) function_name ::= NK_ID */ - -1, /* (463) view_name ::= NK_ID */ - -1, /* (464) table_alias ::= NK_ID */ - -1, /* (465) column_alias ::= NK_ID */ - -1, /* (466) column_alias ::= NK_ALIAS */ - -1, /* (467) user_name ::= NK_ID */ - -1, /* (468) topic_name ::= NK_ID */ - -1, /* (469) stream_name ::= NK_ID */ - -1, /* (470) cgroup_name ::= NK_ID */ - -1, /* (471) index_name ::= NK_ID */ - -1, /* (472) expr_or_subquery ::= expression */ - -1, /* (473) expression ::= literal */ - -1, /* (474) expression ::= pseudo_column */ - -1, /* (475) expression ::= column_reference */ - -1, /* (476) expression ::= function_expression */ - -1, /* (477) expression ::= case_when_expression */ - -3, /* (478) expression ::= NK_LP expression NK_RP */ - -2, /* (479) expression ::= NK_PLUS expr_or_subquery */ - -2, /* (480) expression ::= NK_MINUS expr_or_subquery */ - -3, /* (481) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ - -3, /* (482) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ - -3, /* (483) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ - -3, /* (484) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ - -3, /* (485) expression ::= expr_or_subquery NK_REM expr_or_subquery */ - -3, /* (486) expression ::= column_reference NK_ARROW NK_STRING */ - -3, /* (487) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ - -3, /* (488) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ - -1, /* (489) expression_list ::= expr_or_subquery */ - -3, /* (490) expression_list ::= expression_list NK_COMMA expr_or_subquery */ - -1, /* (491) column_reference ::= column_name */ - -3, /* (492) column_reference ::= table_name NK_DOT column_name */ - -1, /* (493) column_reference ::= NK_ALIAS */ - -3, /* (494) column_reference ::= table_name NK_DOT NK_ALIAS */ - -1, /* (495) pseudo_column ::= ROWTS */ - -1, /* (496) pseudo_column ::= TBNAME */ - -3, /* (497) pseudo_column ::= table_name NK_DOT TBNAME */ - -1, /* (498) pseudo_column ::= QSTART */ - -1, /* (499) pseudo_column ::= QEND */ - -1, /* (500) pseudo_column ::= QDURATION */ - -1, /* (501) pseudo_column ::= WSTART */ - -1, /* (502) pseudo_column ::= WEND */ - -1, /* (503) pseudo_column ::= WDURATION */ - -1, /* (504) pseudo_column ::= IROWTS */ - -1, /* (505) pseudo_column ::= ISFILLED */ - -1, /* (506) pseudo_column ::= QTAGS */ - -4, /* (507) function_expression ::= function_name NK_LP expression_list NK_RP */ - -4, /* (508) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ - -6, /* (509) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ - -1, /* (510) function_expression ::= literal_func */ - -3, /* (511) literal_func ::= noarg_func NK_LP NK_RP */ - -1, /* (512) literal_func ::= NOW */ - -1, /* (513) literal_func ::= TODAY */ - -1, /* (514) noarg_func ::= NOW */ - -1, /* (515) noarg_func ::= TODAY */ - -1, /* (516) noarg_func ::= TIMEZONE */ - -1, /* (517) noarg_func ::= DATABASE */ - -1, /* (518) noarg_func ::= CLIENT_VERSION */ - -1, /* (519) noarg_func ::= SERVER_VERSION */ - -1, /* (520) noarg_func ::= SERVER_STATUS */ - -1, /* (521) noarg_func ::= CURRENT_USER */ - -1, /* (522) noarg_func ::= USER */ - -1, /* (523) star_func ::= COUNT */ - -1, /* (524) star_func ::= FIRST */ - -1, /* (525) star_func ::= LAST */ - -1, /* (526) star_func ::= LAST_ROW */ - -1, /* (527) star_func_para_list ::= NK_STAR */ - -1, /* (528) star_func_para_list ::= other_para_list */ - -1, /* (529) other_para_list ::= star_func_para */ - -3, /* (530) other_para_list ::= other_para_list NK_COMMA star_func_para */ - -1, /* (531) star_func_para ::= expr_or_subquery */ - -3, /* (532) star_func_para ::= table_name NK_DOT NK_STAR */ - -4, /* (533) case_when_expression ::= CASE when_then_list case_when_else_opt END */ - -5, /* (534) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ - -1, /* (535) when_then_list ::= when_then_expr */ - -2, /* (536) when_then_list ::= when_then_list when_then_expr */ - -4, /* (537) when_then_expr ::= WHEN common_expression THEN common_expression */ - 0, /* (538) case_when_else_opt ::= */ - -2, /* (539) case_when_else_opt ::= ELSE common_expression */ - -3, /* (540) predicate ::= expr_or_subquery compare_op expr_or_subquery */ - -5, /* (541) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ - -6, /* (542) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ - -3, /* (543) predicate ::= expr_or_subquery IS NULL */ - -4, /* (544) predicate ::= expr_or_subquery IS NOT NULL */ - -3, /* (545) predicate ::= expr_or_subquery in_op in_predicate_value */ - -1, /* (546) compare_op ::= NK_LT */ - -1, /* (547) compare_op ::= NK_GT */ - -1, /* (548) compare_op ::= NK_LE */ - -1, /* (549) compare_op ::= NK_GE */ - -1, /* (550) compare_op ::= NK_NE */ - -1, /* (551) compare_op ::= NK_EQ */ - -1, /* (552) compare_op ::= LIKE */ - -2, /* (553) compare_op ::= NOT LIKE */ - -1, /* (554) compare_op ::= MATCH */ - -1, /* (555) compare_op ::= NMATCH */ - -1, /* (556) compare_op ::= CONTAINS */ - -1, /* (557) in_op ::= IN */ - -2, /* (558) in_op ::= NOT IN */ - -3, /* (559) in_predicate_value ::= NK_LP literal_list NK_RP */ - -1, /* (560) boolean_value_expression ::= boolean_primary */ - -2, /* (561) boolean_value_expression ::= NOT boolean_primary */ - -3, /* (562) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ - -3, /* (563) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ - -1, /* (564) boolean_primary ::= predicate */ - -3, /* (565) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ - -1, /* (566) common_expression ::= expr_or_subquery */ - -1, /* (567) common_expression ::= boolean_value_expression */ - 0, /* (568) from_clause_opt ::= */ - -2, /* (569) from_clause_opt ::= FROM table_reference_list */ - -1, /* (570) table_reference_list ::= table_reference */ - -3, /* (571) table_reference_list ::= table_reference_list NK_COMMA table_reference */ - -1, /* (572) table_reference ::= table_primary */ - -1, /* (573) table_reference ::= joined_table */ - -2, /* (574) table_primary ::= table_name alias_opt */ - -4, /* (575) table_primary ::= db_name NK_DOT table_name alias_opt */ - -2, /* (576) table_primary ::= subquery alias_opt */ - -1, /* (577) table_primary ::= parenthesized_joined_table */ - 0, /* (578) alias_opt ::= */ - -1, /* (579) alias_opt ::= table_alias */ - -2, /* (580) alias_opt ::= AS table_alias */ - -3, /* (581) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - -3, /* (582) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ - -6, /* (583) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ - 0, /* (584) join_type ::= */ - -1, /* (585) join_type ::= INNER */ - -14, /* (586) query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_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 */ - 0, /* (587) hint_list ::= */ - -1, /* (588) hint_list ::= NK_HINT */ - 0, /* (589) tag_mode_opt ::= */ - -1, /* (590) tag_mode_opt ::= TAGS */ - 0, /* (591) set_quantifier_opt ::= */ - -1, /* (592) set_quantifier_opt ::= DISTINCT */ - -1, /* (593) set_quantifier_opt ::= ALL */ - -1, /* (594) select_list ::= select_item */ - -3, /* (595) select_list ::= select_list NK_COMMA select_item */ - -1, /* (596) select_item ::= NK_STAR */ - -1, /* (597) select_item ::= common_expression */ - -2, /* (598) select_item ::= common_expression column_alias */ - -3, /* (599) select_item ::= common_expression AS column_alias */ - -3, /* (600) select_item ::= table_name NK_DOT NK_STAR */ - 0, /* (601) where_clause_opt ::= */ - -2, /* (602) where_clause_opt ::= WHERE search_condition */ - 0, /* (603) partition_by_clause_opt ::= */ - -3, /* (604) partition_by_clause_opt ::= PARTITION BY partition_list */ - -1, /* (605) partition_list ::= partition_item */ - -3, /* (606) partition_list ::= partition_list NK_COMMA partition_item */ - -1, /* (607) partition_item ::= expr_or_subquery */ - -2, /* (608) partition_item ::= expr_or_subquery column_alias */ - -3, /* (609) partition_item ::= expr_or_subquery AS column_alias */ - 0, /* (610) twindow_clause_opt ::= */ - -6, /* (611) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ - -4, /* (612) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - -6, /* (613) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - -8, /* (614) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ - -7, /* (615) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - -4, /* (616) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ - -6, /* (617) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ - 0, /* (618) sliding_opt ::= */ - -4, /* (619) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ - -1, /* (620) interval_sliding_duration_literal ::= NK_VARIABLE */ - -1, /* (621) interval_sliding_duration_literal ::= NK_STRING */ - -1, /* (622) interval_sliding_duration_literal ::= NK_INTEGER */ - 0, /* (623) fill_opt ::= */ - -4, /* (624) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - -6, /* (625) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - -6, /* (626) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - -1, /* (627) fill_mode ::= NONE */ - -1, /* (628) fill_mode ::= PREV */ - -1, /* (629) fill_mode ::= NULL */ - -1, /* (630) fill_mode ::= NULL_F */ - -1, /* (631) fill_mode ::= LINEAR */ - -1, /* (632) fill_mode ::= NEXT */ - 0, /* (633) group_by_clause_opt ::= */ - -3, /* (634) group_by_clause_opt ::= GROUP BY group_by_list */ - -1, /* (635) group_by_list ::= expr_or_subquery */ - -3, /* (636) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 0, /* (637) having_clause_opt ::= */ - -2, /* (638) having_clause_opt ::= HAVING search_condition */ - 0, /* (639) range_opt ::= */ - -6, /* (640) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - -4, /* (641) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 0, /* (642) every_opt ::= */ - -4, /* (643) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - -4, /* (644) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - -1, /* (645) query_simple ::= query_specification */ - -1, /* (646) query_simple ::= union_query_expression */ - -4, /* (647) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - -3, /* (648) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - -1, /* (649) query_simple_or_subquery ::= query_simple */ - -1, /* (650) query_simple_or_subquery ::= subquery */ - -1, /* (651) query_or_subquery ::= query_expression */ - -1, /* (652) query_or_subquery ::= subquery */ - 0, /* (653) order_by_clause_opt ::= */ - -3, /* (654) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 0, /* (655) slimit_clause_opt ::= */ - -2, /* (656) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - -4, /* (657) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - -4, /* (658) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 0, /* (659) limit_clause_opt ::= */ - -2, /* (660) limit_clause_opt ::= LIMIT NK_INTEGER */ - -4, /* (661) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - -4, /* (662) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - -3, /* (663) subquery ::= NK_LP query_expression NK_RP */ - -3, /* (664) subquery ::= NK_LP subquery NK_RP */ - -1, /* (665) search_condition ::= common_expression */ - -1, /* (666) sort_specification_list ::= sort_specification */ - -3, /* (667) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - -3, /* (668) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 0, /* (669) ordering_specification_opt ::= */ - -1, /* (670) ordering_specification_opt ::= ASC */ - -1, /* (671) ordering_specification_opt ::= DESC */ - 0, /* (672) null_ordering_opt ::= */ - -2, /* (673) null_ordering_opt ::= NULLS FIRST */ - -2, /* (674) null_ordering_opt ::= NULLS LAST */ - 0, /* (675) column_options ::= */ - -3, /* (676) column_options ::= column_options PRIMARY KEY */ - -3, /* (677) column_options ::= column_options ENCODE NK_STRING */ - -3, /* (678) column_options ::= column_options COMPRESS NK_STRING */ - -3, /* (679) column_options ::= column_options LEVEL NK_STRING */ + -3, /* (415) tags_literal ::= NK_INTEGER NK_PLUS duration_literal */ + -3, /* (416) tags_literal ::= NK_INTEGER NK_MINUS duration_literal */ + -2, /* (417) tags_literal ::= NK_PLUS NK_INTEGER */ + -4, /* (418) tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal */ + -4, /* (419) tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal */ + -2, /* (420) tags_literal ::= NK_MINUS NK_INTEGER */ + -4, /* (421) tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal */ + -4, /* (422) tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal */ + -1, /* (423) tags_literal ::= NK_FLOAT */ + -2, /* (424) tags_literal ::= NK_PLUS NK_FLOAT */ + -2, /* (425) tags_literal ::= NK_MINUS NK_FLOAT */ + -1, /* (426) tags_literal ::= NK_BIN */ + -3, /* (427) tags_literal ::= NK_BIN NK_PLUS duration_literal */ + -3, /* (428) tags_literal ::= NK_BIN NK_MINUS duration_literal */ + -2, /* (429) tags_literal ::= NK_PLUS NK_BIN */ + -4, /* (430) tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal */ + -4, /* (431) tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal */ + -2, /* (432) tags_literal ::= NK_MINUS NK_BIN */ + -4, /* (433) tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal */ + -4, /* (434) tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal */ + -1, /* (435) tags_literal ::= NK_HEX */ + -3, /* (436) tags_literal ::= NK_HEX NK_PLUS duration_literal */ + -3, /* (437) tags_literal ::= NK_HEX NK_MINUS duration_literal */ + -2, /* (438) tags_literal ::= NK_PLUS NK_HEX */ + -4, /* (439) tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal */ + -4, /* (440) tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal */ + -2, /* (441) tags_literal ::= NK_MINUS NK_HEX */ + -4, /* (442) tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal */ + -4, /* (443) tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal */ + -1, /* (444) tags_literal ::= NK_STRING */ + -3, /* (445) tags_literal ::= NK_STRING NK_PLUS duration_literal */ + -3, /* (446) tags_literal ::= NK_STRING NK_MINUS duration_literal */ + -1, /* (447) tags_literal ::= NK_BOOL */ + -1, /* (448) tags_literal ::= NULL */ + -1, /* (449) tags_literal ::= literal_func */ + -3, /* (450) tags_literal ::= literal_func NK_PLUS duration_literal */ + -3, /* (451) tags_literal ::= literal_func NK_MINUS duration_literal */ + -1, /* (452) tags_literal_list ::= tags_literal */ + -3, /* (453) tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ + -1, /* (454) literal ::= NK_INTEGER */ + -1, /* (455) literal ::= NK_FLOAT */ + -1, /* (456) literal ::= NK_STRING */ + -1, /* (457) literal ::= NK_BOOL */ + -2, /* (458) literal ::= TIMESTAMP NK_STRING */ + -1, /* (459) literal ::= duration_literal */ + -1, /* (460) literal ::= NULL */ + -1, /* (461) literal ::= NK_QUESTION */ + -1, /* (462) duration_literal ::= NK_VARIABLE */ + -1, /* (463) signed ::= NK_INTEGER */ + -2, /* (464) signed ::= NK_PLUS NK_INTEGER */ + -2, /* (465) signed ::= NK_MINUS NK_INTEGER */ + -1, /* (466) signed ::= NK_FLOAT */ + -2, /* (467) signed ::= NK_PLUS NK_FLOAT */ + -2, /* (468) signed ::= NK_MINUS NK_FLOAT */ + -1, /* (469) signed_literal ::= signed */ + -1, /* (470) signed_literal ::= NK_STRING */ + -1, /* (471) signed_literal ::= NK_BOOL */ + -2, /* (472) signed_literal ::= TIMESTAMP NK_STRING */ + -1, /* (473) signed_literal ::= duration_literal */ + -1, /* (474) signed_literal ::= NULL */ + -1, /* (475) signed_literal ::= literal_func */ + -1, /* (476) signed_literal ::= NK_QUESTION */ + -1, /* (477) literal_list ::= signed_literal */ + -3, /* (478) literal_list ::= literal_list NK_COMMA signed_literal */ + -1, /* (479) db_name ::= NK_ID */ + -1, /* (480) table_name ::= NK_ID */ + -1, /* (481) column_name ::= NK_ID */ + -1, /* (482) function_name ::= NK_ID */ + -1, /* (483) view_name ::= NK_ID */ + -1, /* (484) table_alias ::= NK_ID */ + -1, /* (485) column_alias ::= NK_ID */ + -1, /* (486) column_alias ::= NK_ALIAS */ + -1, /* (487) user_name ::= NK_ID */ + -1, /* (488) topic_name ::= NK_ID */ + -1, /* (489) stream_name ::= NK_ID */ + -1, /* (490) cgroup_name ::= NK_ID */ + -1, /* (491) index_name ::= NK_ID */ + -1, /* (492) expr_or_subquery ::= expression */ + -1, /* (493) expression ::= literal */ + -1, /* (494) expression ::= pseudo_column */ + -1, /* (495) expression ::= column_reference */ + -1, /* (496) expression ::= function_expression */ + -1, /* (497) expression ::= case_when_expression */ + -3, /* (498) expression ::= NK_LP expression NK_RP */ + -2, /* (499) expression ::= NK_PLUS expr_or_subquery */ + -2, /* (500) expression ::= NK_MINUS expr_or_subquery */ + -3, /* (501) expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + -3, /* (502) expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + -3, /* (503) expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + -3, /* (504) expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + -3, /* (505) expression ::= expr_or_subquery NK_REM expr_or_subquery */ + -3, /* (506) expression ::= column_reference NK_ARROW NK_STRING */ + -3, /* (507) expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + -3, /* (508) expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + -1, /* (509) expression_list ::= expr_or_subquery */ + -3, /* (510) expression_list ::= expression_list NK_COMMA expr_or_subquery */ + -1, /* (511) column_reference ::= column_name */ + -3, /* (512) column_reference ::= table_name NK_DOT column_name */ + -1, /* (513) column_reference ::= NK_ALIAS */ + -3, /* (514) column_reference ::= table_name NK_DOT NK_ALIAS */ + -1, /* (515) pseudo_column ::= ROWTS */ + -1, /* (516) pseudo_column ::= TBNAME */ + -3, /* (517) pseudo_column ::= table_name NK_DOT TBNAME */ + -1, /* (518) pseudo_column ::= QSTART */ + -1, /* (519) pseudo_column ::= QEND */ + -1, /* (520) pseudo_column ::= QDURATION */ + -1, /* (521) pseudo_column ::= WSTART */ + -1, /* (522) pseudo_column ::= WEND */ + -1, /* (523) pseudo_column ::= WDURATION */ + -1, /* (524) pseudo_column ::= IROWTS */ + -1, /* (525) pseudo_column ::= ISFILLED */ + -1, /* (526) pseudo_column ::= QTAGS */ + -4, /* (527) function_expression ::= function_name NK_LP expression_list NK_RP */ + -4, /* (528) function_expression ::= star_func NK_LP star_func_para_list NK_RP */ + -6, /* (529) function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + -1, /* (530) function_expression ::= literal_func */ + -3, /* (531) literal_func ::= noarg_func NK_LP NK_RP */ + -1, /* (532) literal_func ::= NOW */ + -1, /* (533) literal_func ::= TODAY */ + -1, /* (534) noarg_func ::= NOW */ + -1, /* (535) noarg_func ::= TODAY */ + -1, /* (536) noarg_func ::= TIMEZONE */ + -1, /* (537) noarg_func ::= DATABASE */ + -1, /* (538) noarg_func ::= CLIENT_VERSION */ + -1, /* (539) noarg_func ::= SERVER_VERSION */ + -1, /* (540) noarg_func ::= SERVER_STATUS */ + -1, /* (541) noarg_func ::= CURRENT_USER */ + -1, /* (542) noarg_func ::= USER */ + -1, /* (543) star_func ::= COUNT */ + -1, /* (544) star_func ::= FIRST */ + -1, /* (545) star_func ::= LAST */ + -1, /* (546) star_func ::= LAST_ROW */ + -1, /* (547) star_func_para_list ::= NK_STAR */ + -1, /* (548) star_func_para_list ::= other_para_list */ + -1, /* (549) other_para_list ::= star_func_para */ + -3, /* (550) other_para_list ::= other_para_list NK_COMMA star_func_para */ + -1, /* (551) star_func_para ::= expr_or_subquery */ + -3, /* (552) star_func_para ::= table_name NK_DOT NK_STAR */ + -4, /* (553) case_when_expression ::= CASE when_then_list case_when_else_opt END */ + -5, /* (554) case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + -1, /* (555) when_then_list ::= when_then_expr */ + -2, /* (556) when_then_list ::= when_then_list when_then_expr */ + -4, /* (557) when_then_expr ::= WHEN common_expression THEN common_expression */ + 0, /* (558) case_when_else_opt ::= */ + -2, /* (559) case_when_else_opt ::= ELSE common_expression */ + -3, /* (560) predicate ::= expr_or_subquery compare_op expr_or_subquery */ + -5, /* (561) predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + -6, /* (562) predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + -3, /* (563) predicate ::= expr_or_subquery IS NULL */ + -4, /* (564) predicate ::= expr_or_subquery IS NOT NULL */ + -3, /* (565) predicate ::= expr_or_subquery in_op in_predicate_value */ + -1, /* (566) compare_op ::= NK_LT */ + -1, /* (567) compare_op ::= NK_GT */ + -1, /* (568) compare_op ::= NK_LE */ + -1, /* (569) compare_op ::= NK_GE */ + -1, /* (570) compare_op ::= NK_NE */ + -1, /* (571) compare_op ::= NK_EQ */ + -1, /* (572) compare_op ::= LIKE */ + -2, /* (573) compare_op ::= NOT LIKE */ + -1, /* (574) compare_op ::= MATCH */ + -1, /* (575) compare_op ::= NMATCH */ + -1, /* (576) compare_op ::= CONTAINS */ + -1, /* (577) in_op ::= IN */ + -2, /* (578) in_op ::= NOT IN */ + -3, /* (579) in_predicate_value ::= NK_LP literal_list NK_RP */ + -1, /* (580) boolean_value_expression ::= boolean_primary */ + -2, /* (581) boolean_value_expression ::= NOT boolean_primary */ + -3, /* (582) boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + -3, /* (583) boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + -1, /* (584) boolean_primary ::= predicate */ + -3, /* (585) boolean_primary ::= NK_LP boolean_value_expression NK_RP */ + -1, /* (586) common_expression ::= expr_or_subquery */ + -1, /* (587) common_expression ::= boolean_value_expression */ + 0, /* (588) from_clause_opt ::= */ + -2, /* (589) from_clause_opt ::= FROM table_reference_list */ + -1, /* (590) table_reference_list ::= table_reference */ + -3, /* (591) table_reference_list ::= table_reference_list NK_COMMA table_reference */ + -1, /* (592) table_reference ::= table_primary */ + -1, /* (593) table_reference ::= joined_table */ + -2, /* (594) table_primary ::= table_name alias_opt */ + -4, /* (595) table_primary ::= db_name NK_DOT table_name alias_opt */ + -2, /* (596) table_primary ::= subquery alias_opt */ + -1, /* (597) table_primary ::= parenthesized_joined_table */ + 0, /* (598) alias_opt ::= */ + -1, /* (599) alias_opt ::= table_alias */ + -2, /* (600) alias_opt ::= AS table_alias */ + -3, /* (601) parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + -3, /* (602) parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ + -6, /* (603) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ + 0, /* (604) join_type ::= */ + -1, /* (605) join_type ::= INNER */ + -14, /* (606) query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_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 */ + 0, /* (607) hint_list ::= */ + -1, /* (608) hint_list ::= NK_HINT */ + 0, /* (609) tag_mode_opt ::= */ + -1, /* (610) tag_mode_opt ::= TAGS */ + 0, /* (611) set_quantifier_opt ::= */ + -1, /* (612) set_quantifier_opt ::= DISTINCT */ + -1, /* (613) set_quantifier_opt ::= ALL */ + -1, /* (614) select_list ::= select_item */ + -3, /* (615) select_list ::= select_list NK_COMMA select_item */ + -1, /* (616) select_item ::= NK_STAR */ + -1, /* (617) select_item ::= common_expression */ + -2, /* (618) select_item ::= common_expression column_alias */ + -3, /* (619) select_item ::= common_expression AS column_alias */ + -3, /* (620) select_item ::= table_name NK_DOT NK_STAR */ + 0, /* (621) where_clause_opt ::= */ + -2, /* (622) where_clause_opt ::= WHERE search_condition */ + 0, /* (623) partition_by_clause_opt ::= */ + -3, /* (624) partition_by_clause_opt ::= PARTITION BY partition_list */ + -1, /* (625) partition_list ::= partition_item */ + -3, /* (626) partition_list ::= partition_list NK_COMMA partition_item */ + -1, /* (627) partition_item ::= expr_or_subquery */ + -2, /* (628) partition_item ::= expr_or_subquery column_alias */ + -3, /* (629) partition_item ::= expr_or_subquery AS column_alias */ + 0, /* (630) twindow_clause_opt ::= */ + -6, /* (631) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ + -4, /* (632) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + -6, /* (633) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + -8, /* (634) twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ + -7, /* (635) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + -4, /* (636) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ + -6, /* (637) twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ + 0, /* (638) sliding_opt ::= */ + -4, /* (639) sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ + -1, /* (640) interval_sliding_duration_literal ::= NK_VARIABLE */ + -1, /* (641) interval_sliding_duration_literal ::= NK_STRING */ + -1, /* (642) interval_sliding_duration_literal ::= NK_INTEGER */ + 0, /* (643) fill_opt ::= */ + -4, /* (644) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + -6, /* (645) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + -6, /* (646) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + -1, /* (647) fill_mode ::= NONE */ + -1, /* (648) fill_mode ::= PREV */ + -1, /* (649) fill_mode ::= NULL */ + -1, /* (650) fill_mode ::= NULL_F */ + -1, /* (651) fill_mode ::= LINEAR */ + -1, /* (652) fill_mode ::= NEXT */ + 0, /* (653) group_by_clause_opt ::= */ + -3, /* (654) group_by_clause_opt ::= GROUP BY group_by_list */ + -1, /* (655) group_by_list ::= expr_or_subquery */ + -3, /* (656) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 0, /* (657) having_clause_opt ::= */ + -2, /* (658) having_clause_opt ::= HAVING search_condition */ + 0, /* (659) range_opt ::= */ + -6, /* (660) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + -4, /* (661) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 0, /* (662) every_opt ::= */ + -4, /* (663) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + -4, /* (664) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + -1, /* (665) query_simple ::= query_specification */ + -1, /* (666) query_simple ::= union_query_expression */ + -4, /* (667) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + -3, /* (668) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + -1, /* (669) query_simple_or_subquery ::= query_simple */ + -1, /* (670) query_simple_or_subquery ::= subquery */ + -1, /* (671) query_or_subquery ::= query_expression */ + -1, /* (672) query_or_subquery ::= subquery */ + 0, /* (673) order_by_clause_opt ::= */ + -3, /* (674) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 0, /* (675) slimit_clause_opt ::= */ + -2, /* (676) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + -4, /* (677) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + -4, /* (678) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 0, /* (679) limit_clause_opt ::= */ + -2, /* (680) limit_clause_opt ::= LIMIT NK_INTEGER */ + -4, /* (681) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + -4, /* (682) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + -3, /* (683) subquery ::= NK_LP query_expression NK_RP */ + -3, /* (684) subquery ::= NK_LP subquery NK_RP */ + -1, /* (685) search_condition ::= common_expression */ + -1, /* (686) sort_specification_list ::= sort_specification */ + -3, /* (687) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + -3, /* (688) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 0, /* (689) ordering_specification_opt ::= */ + -1, /* (690) ordering_specification_opt ::= ASC */ + -1, /* (691) ordering_specification_opt ::= DESC */ + 0, /* (692) null_ordering_opt ::= */ + -2, /* (693) null_ordering_opt ::= NULLS FIRST */ + -2, /* (694) null_ordering_opt ::= NULLS LAST */ + 0, /* (695) column_options ::= */ + -3, /* (696) column_options ::= column_options PRIMARY KEY */ + -3, /* (697) column_options ::= column_options ENCODE NK_STRING */ + -3, /* (698) column_options ::= column_options COMPRESS NK_STRING */ + -3, /* (699) column_options ::= column_options LEVEL NK_STRING */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -5232,19 +5300,19 @@ static YYACTIONTYPE yy_reduce( case 0: /* cmd ::= CREATE ACCOUNT NK_ID PASS NK_STRING account_options */ #line 50 "sql.y" { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } -#line 5235 "sql.c" +#line 5303 "sql.c" yy_destructor(yypParser,359,&yymsp[0].minor); break; case 1: /* cmd ::= ALTER ACCOUNT NK_ID alter_account_options */ #line 51 "sql.y" { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } -#line 5241 "sql.c" +#line 5309 "sql.c" yy_destructor(yypParser,360,&yymsp[0].minor); break; case 2: /* account_options ::= */ #line 55 "sql.y" { } -#line 5247 "sql.c" +#line 5315 "sql.c" break; case 3: /* account_options ::= account_options PPS literal */ case 4: /* account_options ::= account_options TSERIES literal */ yytestcase(yyruleno==4); @@ -5258,7 +5326,7 @@ static YYACTIONTYPE yy_reduce( { yy_destructor(yypParser,359,&yymsp[-2].minor); #line 56 "sql.y" { } -#line 5261 "sql.c" +#line 5329 "sql.c" yy_destructor(yypParser,361,&yymsp[0].minor); } break; @@ -5266,14 +5334,14 @@ static YYACTIONTYPE yy_reduce( { yy_destructor(yypParser,362,&yymsp[0].minor); #line 68 "sql.y" { } -#line 5269 "sql.c" +#line 5337 "sql.c" } break; case 13: /* alter_account_options ::= alter_account_options alter_account_option */ { yy_destructor(yypParser,360,&yymsp[-1].minor); #line 69 "sql.y" { } -#line 5276 "sql.c" +#line 5344 "sql.c" yy_destructor(yypParser,362,&yymsp[0].minor); } break; @@ -5289,25 +5357,25 @@ static YYACTIONTYPE yy_reduce( case 23: /* alter_account_option ::= STATE literal */ yytestcase(yyruleno==23); #line 73 "sql.y" { } -#line 5292 "sql.c" +#line 5360 "sql.c" yy_destructor(yypParser,361,&yymsp[0].minor); break; case 24: /* ip_range_list ::= NK_STRING */ #line 86 "sql.y" { yylhsminor.yy72 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } -#line 5298 "sql.c" +#line 5366 "sql.c" yymsp[0].minor.yy72 = yylhsminor.yy72; break; case 25: /* ip_range_list ::= ip_range_list NK_COMMA NK_STRING */ #line 87 "sql.y" { yylhsminor.yy72 = addNodeToList(pCxt, yymsp[-2].minor.yy72, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } -#line 5304 "sql.c" +#line 5372 "sql.c" yymsp[-2].minor.yy72 = yylhsminor.yy72; break; case 26: /* white_list ::= HOST ip_range_list */ #line 91 "sql.y" { yymsp[-1].minor.yy72 = yymsp[0].minor.yy72; } -#line 5310 "sql.c" +#line 5378 "sql.c" break; case 27: /* white_list_opt ::= */ case 189: /* specific_cols_opt ::= */ yytestcase(yyruleno==189); @@ -5315,20 +5383,20 @@ static YYACTIONTYPE yy_reduce( case 312: /* tag_list_opt ::= */ yytestcase(yyruleno==312); case 378: /* col_list_opt ::= */ yytestcase(yyruleno==378); case 380: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==380); - case 603: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==603); - case 633: /* group_by_clause_opt ::= */ yytestcase(yyruleno==633); - case 653: /* order_by_clause_opt ::= */ yytestcase(yyruleno==653); + case 623: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==623); + case 653: /* group_by_clause_opt ::= */ yytestcase(yyruleno==653); + case 673: /* order_by_clause_opt ::= */ yytestcase(yyruleno==673); #line 95 "sql.y" { yymsp[1].minor.yy72 = NULL; } -#line 5323 "sql.c" +#line 5391 "sql.c" break; case 28: /* white_list_opt ::= white_list */ case 224: /* tags_def_opt ::= tags_def */ yytestcase(yyruleno==224); case 381: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==381); - case 528: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==528); + case 548: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==548); #line 96 "sql.y" { yylhsminor.yy72 = yymsp[0].minor.yy72; } -#line 5331 "sql.c" +#line 5399 "sql.c" yymsp[0].minor.yy72 = yylhsminor.yy72; break; case 29: /* cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt white_list_opt */ @@ -5337,118 +5405,118 @@ static YYACTIONTYPE yy_reduce( pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-4].minor.yy305, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy359); pCxt->pRootNode = addCreateUserStmtWhiteList(pCxt, pCxt->pRootNode, yymsp[0].minor.yy72); } -#line 5340 "sql.c" +#line 5408 "sql.c" break; case 30: /* cmd ::= ALTER USER user_name PASS NK_STRING */ #line 104 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy305, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } -#line 5345 "sql.c" +#line 5413 "sql.c" break; case 31: /* cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ #line 105 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy305, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } -#line 5350 "sql.c" +#line 5418 "sql.c" break; case 32: /* cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ #line 106 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy305, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } -#line 5355 "sql.c" +#line 5423 "sql.c" break; case 33: /* cmd ::= ALTER USER user_name ADD white_list */ #line 107 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy305, TSDB_ALTER_USER_ADD_WHITE_LIST, yymsp[0].minor.yy72); } -#line 5360 "sql.c" +#line 5428 "sql.c" break; case 34: /* cmd ::= ALTER USER user_name DROP white_list */ #line 108 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy305, TSDB_ALTER_USER_DROP_WHITE_LIST, yymsp[0].minor.yy72); } -#line 5365 "sql.c" +#line 5433 "sql.c" break; case 35: /* cmd ::= DROP USER user_name */ #line 109 "sql.y" { pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy305); } -#line 5370 "sql.c" +#line 5438 "sql.c" break; case 36: /* sysinfo_opt ::= */ #line 113 "sql.y" { yymsp[1].minor.yy359 = 1; } -#line 5375 "sql.c" +#line 5443 "sql.c" break; case 37: /* sysinfo_opt ::= SYSINFO NK_INTEGER */ #line 114 "sql.y" { yymsp[-1].minor.yy359 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } -#line 5380 "sql.c" +#line 5448 "sql.c" break; case 38: /* cmd ::= GRANT privileges ON priv_level with_opt TO user_name */ #line 117 "sql.y" { pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-5].minor.yy1005, &yymsp[-3].minor.yy361, &yymsp[0].minor.yy305, yymsp[-2].minor.yy1000); } -#line 5385 "sql.c" +#line 5453 "sql.c" break; case 39: /* cmd ::= REVOKE privileges ON priv_level with_opt FROM user_name */ #line 118 "sql.y" { pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-5].minor.yy1005, &yymsp[-3].minor.yy361, &yymsp[0].minor.yy305, yymsp[-2].minor.yy1000); } -#line 5390 "sql.c" +#line 5458 "sql.c" break; case 40: /* privileges ::= ALL */ #line 122 "sql.y" { yymsp[0].minor.yy1005 = PRIVILEGE_TYPE_ALL; } -#line 5395 "sql.c" +#line 5463 "sql.c" break; case 41: /* privileges ::= priv_type_list */ case 43: /* priv_type_list ::= priv_type */ yytestcase(yyruleno==43); #line 123 "sql.y" { yylhsminor.yy1005 = yymsp[0].minor.yy1005; } -#line 5401 "sql.c" +#line 5469 "sql.c" yymsp[0].minor.yy1005 = yylhsminor.yy1005; break; case 42: /* privileges ::= SUBSCRIBE */ #line 124 "sql.y" { yymsp[0].minor.yy1005 = PRIVILEGE_TYPE_SUBSCRIBE; } -#line 5407 "sql.c" +#line 5475 "sql.c" break; case 44: /* priv_type_list ::= priv_type_list NK_COMMA priv_type */ #line 129 "sql.y" { yylhsminor.yy1005 = yymsp[-2].minor.yy1005 | yymsp[0].minor.yy1005; } -#line 5412 "sql.c" +#line 5480 "sql.c" yymsp[-2].minor.yy1005 = yylhsminor.yy1005; break; case 45: /* priv_type ::= READ */ #line 133 "sql.y" { yymsp[0].minor.yy1005 = PRIVILEGE_TYPE_READ; } -#line 5418 "sql.c" +#line 5486 "sql.c" break; case 46: /* priv_type ::= WRITE */ #line 134 "sql.y" { yymsp[0].minor.yy1005 = PRIVILEGE_TYPE_WRITE; } -#line 5423 "sql.c" +#line 5491 "sql.c" break; case 47: /* priv_type ::= ALTER */ #line 135 "sql.y" { yymsp[0].minor.yy1005 = PRIVILEGE_TYPE_ALTER; } -#line 5428 "sql.c" +#line 5496 "sql.c" break; case 48: /* priv_level ::= NK_STAR NK_DOT NK_STAR */ #line 139 "sql.y" { yylhsminor.yy361.first = yymsp[-2].minor.yy0; yylhsminor.yy361.second = yymsp[0].minor.yy0; } -#line 5433 "sql.c" +#line 5501 "sql.c" yymsp[-2].minor.yy361 = yylhsminor.yy361; break; case 49: /* priv_level ::= db_name NK_DOT NK_STAR */ #line 140 "sql.y" { yylhsminor.yy361.first = yymsp[-2].minor.yy305; yylhsminor.yy361.second = yymsp[0].minor.yy0; } -#line 5439 "sql.c" +#line 5507 "sql.c" yymsp[-2].minor.yy361 = yylhsminor.yy361; break; case 50: /* priv_level ::= db_name NK_DOT table_name */ #line 141 "sql.y" { yylhsminor.yy361.first = yymsp[-2].minor.yy305; yylhsminor.yy361.second = yymsp[0].minor.yy305; } -#line 5445 "sql.c" +#line 5513 "sql.c" yymsp[-2].minor.yy361 = yylhsminor.yy361; break; case 51: /* priv_level ::= topic_name */ #line 142 "sql.y" { yylhsminor.yy361.first = yymsp[0].minor.yy305; yylhsminor.yy361.second = nil_token; } -#line 5451 "sql.c" +#line 5519 "sql.c" yymsp[0].minor.yy361 = yylhsminor.yy361; break; case 52: /* with_opt ::= */ @@ -5456,83 +5524,83 @@ static YYACTIONTYPE yy_reduce( case 161: /* end_opt ::= */ yytestcase(yyruleno==161); case 307: /* like_pattern_opt ::= */ yytestcase(yyruleno==307); case 392: /* subtable_opt ::= */ yytestcase(yyruleno==392); - case 538: /* case_when_else_opt ::= */ yytestcase(yyruleno==538); - case 568: /* from_clause_opt ::= */ yytestcase(yyruleno==568); - case 601: /* where_clause_opt ::= */ yytestcase(yyruleno==601); - case 610: /* twindow_clause_opt ::= */ yytestcase(yyruleno==610); - case 618: /* sliding_opt ::= */ yytestcase(yyruleno==618); - case 623: /* fill_opt ::= */ yytestcase(yyruleno==623); - case 637: /* having_clause_opt ::= */ yytestcase(yyruleno==637); - case 639: /* range_opt ::= */ yytestcase(yyruleno==639); - case 642: /* every_opt ::= */ yytestcase(yyruleno==642); - case 655: /* slimit_clause_opt ::= */ yytestcase(yyruleno==655); - case 659: /* limit_clause_opt ::= */ yytestcase(yyruleno==659); + case 558: /* case_when_else_opt ::= */ yytestcase(yyruleno==558); + case 588: /* from_clause_opt ::= */ yytestcase(yyruleno==588); + case 621: /* where_clause_opt ::= */ yytestcase(yyruleno==621); + case 630: /* twindow_clause_opt ::= */ yytestcase(yyruleno==630); + case 638: /* sliding_opt ::= */ yytestcase(yyruleno==638); + case 643: /* fill_opt ::= */ yytestcase(yyruleno==643); + case 657: /* having_clause_opt ::= */ yytestcase(yyruleno==657); + case 659: /* range_opt ::= */ yytestcase(yyruleno==659); + case 662: /* every_opt ::= */ yytestcase(yyruleno==662); + case 675: /* slimit_clause_opt ::= */ yytestcase(yyruleno==675); + case 679: /* limit_clause_opt ::= */ yytestcase(yyruleno==679); #line 144 "sql.y" { yymsp[1].minor.yy1000 = NULL; } -#line 5472 "sql.c" +#line 5540 "sql.c" break; case 53: /* with_opt ::= WITH search_condition */ - case 569: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==569); - case 602: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==602); - case 638: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==638); + case 589: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==589); + case 622: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==622); + case 658: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==658); #line 145 "sql.y" { yymsp[-1].minor.yy1000 = yymsp[0].minor.yy1000; } -#line 5480 "sql.c" +#line 5548 "sql.c" break; case 54: /* cmd ::= CREATE DNODE dnode_endpoint */ #line 148 "sql.y" { pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy305, NULL); } -#line 5485 "sql.c" +#line 5553 "sql.c" break; case 55: /* cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ #line 149 "sql.y" { pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy0); } -#line 5490 "sql.c" +#line 5558 "sql.c" break; case 56: /* cmd ::= DROP DNODE NK_INTEGER force_opt */ #line 150 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy985, false); } -#line 5495 "sql.c" +#line 5563 "sql.c" break; case 57: /* cmd ::= DROP DNODE dnode_endpoint force_opt */ #line 151 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy305, yymsp[0].minor.yy985, false); } -#line 5500 "sql.c" +#line 5568 "sql.c" break; case 58: /* cmd ::= DROP DNODE NK_INTEGER unsafe_opt */ #line 152 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, false, yymsp[0].minor.yy985); } -#line 5505 "sql.c" +#line 5573 "sql.c" break; case 59: /* cmd ::= DROP DNODE dnode_endpoint unsafe_opt */ #line 153 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy305, false, yymsp[0].minor.yy985); } -#line 5510 "sql.c" +#line 5578 "sql.c" break; case 60: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ #line 154 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, NULL); } -#line 5515 "sql.c" +#line 5583 "sql.c" break; case 61: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ #line 155 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-2].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 5520 "sql.c" +#line 5588 "sql.c" break; case 62: /* cmd ::= ALTER ALL DNODES NK_STRING */ #line 156 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, NULL, &yymsp[0].minor.yy0, NULL); } -#line 5525 "sql.c" +#line 5593 "sql.c" break; case 63: /* cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ #line 157 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, NULL, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 5530 "sql.c" +#line 5598 "sql.c" break; case 64: /* cmd ::= RESTORE DNODE NK_INTEGER */ #line 158 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_DNODE_STMT, &yymsp[0].minor.yy0); } -#line 5535 "sql.c" +#line 5603 "sql.c" break; case 65: /* dnode_endpoint ::= NK_STRING */ case 66: /* dnode_endpoint ::= NK_ID */ yytestcase(yyruleno==66); @@ -5541,35 +5609,35 @@ static YYACTIONTYPE yy_reduce( case 335: /* sma_func_name ::= FIRST */ yytestcase(yyruleno==335); case 336: /* sma_func_name ::= LAST */ yytestcase(yyruleno==336); case 337: /* sma_func_name ::= LAST_ROW */ yytestcase(yyruleno==337); - case 459: /* db_name ::= NK_ID */ yytestcase(yyruleno==459); - case 460: /* table_name ::= NK_ID */ yytestcase(yyruleno==460); - case 461: /* column_name ::= NK_ID */ yytestcase(yyruleno==461); - case 462: /* function_name ::= NK_ID */ yytestcase(yyruleno==462); - case 463: /* view_name ::= NK_ID */ yytestcase(yyruleno==463); - case 464: /* table_alias ::= NK_ID */ yytestcase(yyruleno==464); - case 465: /* column_alias ::= NK_ID */ yytestcase(yyruleno==465); - case 466: /* column_alias ::= NK_ALIAS */ yytestcase(yyruleno==466); - case 467: /* user_name ::= NK_ID */ yytestcase(yyruleno==467); - case 468: /* topic_name ::= NK_ID */ yytestcase(yyruleno==468); - case 469: /* stream_name ::= NK_ID */ yytestcase(yyruleno==469); - case 470: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==470); - case 471: /* index_name ::= NK_ID */ yytestcase(yyruleno==471); - case 514: /* noarg_func ::= NOW */ yytestcase(yyruleno==514); - case 515: /* noarg_func ::= TODAY */ yytestcase(yyruleno==515); - case 516: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==516); - case 517: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==517); - case 518: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==518); - case 519: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==519); - case 520: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==520); - case 521: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==521); - case 522: /* noarg_func ::= USER */ yytestcase(yyruleno==522); - case 523: /* star_func ::= COUNT */ yytestcase(yyruleno==523); - case 524: /* star_func ::= FIRST */ yytestcase(yyruleno==524); - case 525: /* star_func ::= LAST */ yytestcase(yyruleno==525); - case 526: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==526); + case 479: /* db_name ::= NK_ID */ yytestcase(yyruleno==479); + case 480: /* table_name ::= NK_ID */ yytestcase(yyruleno==480); + case 481: /* column_name ::= NK_ID */ yytestcase(yyruleno==481); + case 482: /* function_name ::= NK_ID */ yytestcase(yyruleno==482); + case 483: /* view_name ::= NK_ID */ yytestcase(yyruleno==483); + case 484: /* table_alias ::= NK_ID */ yytestcase(yyruleno==484); + case 485: /* column_alias ::= NK_ID */ yytestcase(yyruleno==485); + case 486: /* column_alias ::= NK_ALIAS */ yytestcase(yyruleno==486); + case 487: /* user_name ::= NK_ID */ yytestcase(yyruleno==487); + case 488: /* topic_name ::= NK_ID */ yytestcase(yyruleno==488); + case 489: /* stream_name ::= NK_ID */ yytestcase(yyruleno==489); + case 490: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==490); + case 491: /* index_name ::= NK_ID */ yytestcase(yyruleno==491); + case 534: /* noarg_func ::= NOW */ yytestcase(yyruleno==534); + case 535: /* noarg_func ::= TODAY */ yytestcase(yyruleno==535); + case 536: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==536); + case 537: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==537); + case 538: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==538); + case 539: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==539); + case 540: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==540); + case 541: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==541); + case 542: /* noarg_func ::= USER */ yytestcase(yyruleno==542); + case 543: /* star_func ::= COUNT */ yytestcase(yyruleno==543); + case 544: /* star_func ::= FIRST */ yytestcase(yyruleno==544); + case 545: /* star_func ::= LAST */ yytestcase(yyruleno==545); + case 546: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==546); #line 162 "sql.y" { yylhsminor.yy305 = yymsp[0].minor.yy0; } -#line 5572 "sql.c" +#line 5640 "sql.c" yymsp[0].minor.yy305 = yylhsminor.yy305; break; case 68: /* force_opt ::= */ @@ -5579,269 +5647,269 @@ static YYACTIONTYPE yy_reduce( case 362: /* agg_func_opt ::= */ yytestcase(yyruleno==362); case 368: /* or_replace_opt ::= */ yytestcase(yyruleno==368); case 394: /* ignore_opt ::= */ yytestcase(yyruleno==394); - case 589: /* tag_mode_opt ::= */ yytestcase(yyruleno==589); - case 591: /* set_quantifier_opt ::= */ yytestcase(yyruleno==591); + case 609: /* tag_mode_opt ::= */ yytestcase(yyruleno==609); + case 611: /* set_quantifier_opt ::= */ yytestcase(yyruleno==611); #line 168 "sql.y" { yymsp[1].minor.yy985 = false; } -#line 5586 "sql.c" +#line 5654 "sql.c" break; case 69: /* force_opt ::= FORCE */ case 70: /* unsafe_opt ::= UNSAFE */ yytestcase(yyruleno==70); case 356: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==356); case 363: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==363); - case 590: /* tag_mode_opt ::= TAGS */ yytestcase(yyruleno==590); - case 592: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==592); + case 610: /* tag_mode_opt ::= TAGS */ yytestcase(yyruleno==610); + case 612: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==612); #line 169 "sql.y" { yymsp[0].minor.yy985 = true; } -#line 5596 "sql.c" +#line 5664 "sql.c" break; case 71: /* cmd ::= ALTER CLUSTER NK_STRING */ #line 176 "sql.y" { pCxt->pRootNode = createAlterClusterStmt(pCxt, &yymsp[0].minor.yy0, NULL); } -#line 5601 "sql.c" +#line 5669 "sql.c" break; case 72: /* cmd ::= ALTER CLUSTER NK_STRING NK_STRING */ #line 177 "sql.y" { pCxt->pRootNode = createAlterClusterStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 5606 "sql.c" +#line 5674 "sql.c" break; case 73: /* cmd ::= ALTER LOCAL NK_STRING */ #line 180 "sql.y" { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[0].minor.yy0, NULL); } -#line 5611 "sql.c" +#line 5679 "sql.c" break; case 74: /* cmd ::= ALTER LOCAL NK_STRING NK_STRING */ #line 181 "sql.y" { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 5616 "sql.c" +#line 5684 "sql.c" break; case 75: /* cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ #line 184 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_QNODE_STMT, &yymsp[0].minor.yy0); } -#line 5621 "sql.c" +#line 5689 "sql.c" break; case 76: /* cmd ::= DROP QNODE ON DNODE NK_INTEGER */ #line 185 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_QNODE_STMT, &yymsp[0].minor.yy0); } -#line 5626 "sql.c" +#line 5694 "sql.c" break; case 77: /* cmd ::= RESTORE QNODE ON DNODE NK_INTEGER */ #line 186 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_QNODE_STMT, &yymsp[0].minor.yy0); } -#line 5631 "sql.c" +#line 5699 "sql.c" break; case 78: /* cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ #line 189 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_BNODE_STMT, &yymsp[0].minor.yy0); } -#line 5636 "sql.c" +#line 5704 "sql.c" break; case 79: /* cmd ::= DROP BNODE ON DNODE NK_INTEGER */ #line 190 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_BNODE_STMT, &yymsp[0].minor.yy0); } -#line 5641 "sql.c" +#line 5709 "sql.c" break; case 80: /* cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ #line 193 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_SNODE_STMT, &yymsp[0].minor.yy0); } -#line 5646 "sql.c" +#line 5714 "sql.c" break; case 81: /* cmd ::= DROP SNODE ON DNODE NK_INTEGER */ #line 194 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_SNODE_STMT, &yymsp[0].minor.yy0); } -#line 5651 "sql.c" +#line 5719 "sql.c" break; case 82: /* cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ #line 197 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_MNODE_STMT, &yymsp[0].minor.yy0); } -#line 5656 "sql.c" +#line 5724 "sql.c" break; case 83: /* cmd ::= DROP MNODE ON DNODE NK_INTEGER */ #line 198 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_MNODE_STMT, &yymsp[0].minor.yy0); } -#line 5661 "sql.c" +#line 5729 "sql.c" break; case 84: /* cmd ::= RESTORE MNODE ON DNODE NK_INTEGER */ #line 199 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_MNODE_STMT, &yymsp[0].minor.yy0); } -#line 5666 "sql.c" +#line 5734 "sql.c" break; case 85: /* cmd ::= RESTORE VNODE ON DNODE NK_INTEGER */ #line 202 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_VNODE_STMT, &yymsp[0].minor.yy0); } -#line 5671 "sql.c" +#line 5739 "sql.c" break; case 86: /* cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ #line 205 "sql.y" { pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy985, &yymsp[-1].minor.yy305, yymsp[0].minor.yy1000); } -#line 5676 "sql.c" +#line 5744 "sql.c" break; case 87: /* cmd ::= DROP DATABASE exists_opt db_name */ #line 206 "sql.y" { pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy985, &yymsp[0].minor.yy305); } -#line 5681 "sql.c" +#line 5749 "sql.c" break; case 88: /* cmd ::= USE db_name */ #line 207 "sql.y" { pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy305); } -#line 5686 "sql.c" +#line 5754 "sql.c" break; case 89: /* cmd ::= ALTER DATABASE db_name alter_db_options */ #line 208 "sql.y" { pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy305, yymsp[0].minor.yy1000); } -#line 5691 "sql.c" +#line 5759 "sql.c" break; case 90: /* cmd ::= FLUSH DATABASE db_name */ #line 209 "sql.y" { pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy305); } -#line 5696 "sql.c" +#line 5764 "sql.c" break; case 91: /* cmd ::= TRIM DATABASE db_name speed_opt */ #line 210 "sql.y" { pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy305, yymsp[0].minor.yy444); } -#line 5701 "sql.c" +#line 5769 "sql.c" break; case 92: /* cmd ::= COMPACT DATABASE db_name start_opt end_opt */ #line 211 "sql.y" { pCxt->pRootNode = createCompactStmt(pCxt, &yymsp[-2].minor.yy305, yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } -#line 5706 "sql.c" +#line 5774 "sql.c" break; case 93: /* not_exists_opt ::= IF NOT EXISTS */ #line 215 "sql.y" { yymsp[-2].minor.yy985 = true; } -#line 5711 "sql.c" +#line 5779 "sql.c" break; case 95: /* exists_opt ::= IF EXISTS */ case 369: /* or_replace_opt ::= OR REPLACE */ yytestcase(yyruleno==369); case 395: /* ignore_opt ::= IGNORE UNTREATED */ yytestcase(yyruleno==395); #line 220 "sql.y" { yymsp[-1].minor.yy985 = true; } -#line 5718 "sql.c" +#line 5786 "sql.c" break; case 97: /* db_options ::= */ #line 223 "sql.y" { yymsp[1].minor.yy1000 = createDefaultDatabaseOptions(pCxt); } -#line 5723 "sql.c" +#line 5791 "sql.c" break; case 98: /* db_options ::= db_options BUFFER NK_INTEGER */ #line 224 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } -#line 5728 "sql.c" +#line 5796 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 99: /* db_options ::= db_options CACHEMODEL NK_STRING */ #line 225 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } -#line 5734 "sql.c" +#line 5802 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 100: /* db_options ::= db_options CACHESIZE NK_INTEGER */ #line 226 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } -#line 5740 "sql.c" +#line 5808 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 101: /* db_options ::= db_options COMP NK_INTEGER */ #line 227 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_COMP, &yymsp[0].minor.yy0); } -#line 5746 "sql.c" +#line 5814 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 102: /* db_options ::= db_options DURATION NK_INTEGER */ case 103: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==103); #line 228 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } -#line 5753 "sql.c" +#line 5821 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 104: /* db_options ::= db_options MAXROWS NK_INTEGER */ #line 230 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } -#line 5759 "sql.c" +#line 5827 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 105: /* db_options ::= db_options MINROWS NK_INTEGER */ #line 231 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } -#line 5765 "sql.c" +#line 5833 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 106: /* db_options ::= db_options KEEP integer_list */ case 107: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==107); #line 232 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_KEEP, yymsp[0].minor.yy72); } -#line 5772 "sql.c" +#line 5840 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 108: /* db_options ::= db_options PAGES NK_INTEGER */ #line 234 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } -#line 5778 "sql.c" +#line 5846 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 109: /* db_options ::= db_options PAGESIZE NK_INTEGER */ #line 235 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } -#line 5784 "sql.c" +#line 5852 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 110: /* db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ #line 236 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } -#line 5790 "sql.c" +#line 5858 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 111: /* db_options ::= db_options PRECISION NK_STRING */ #line 237 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } -#line 5796 "sql.c" +#line 5864 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 112: /* db_options ::= db_options REPLICA NK_INTEGER */ #line 238 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } -#line 5802 "sql.c" +#line 5870 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 113: /* db_options ::= db_options VGROUPS NK_INTEGER */ #line 240 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } -#line 5808 "sql.c" +#line 5876 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 114: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ #line 241 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } -#line 5814 "sql.c" +#line 5882 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 115: /* db_options ::= db_options RETENTIONS retention_list */ #line 242 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_RETENTIONS, yymsp[0].minor.yy72); } -#line 5820 "sql.c" +#line 5888 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 116: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ #line 243 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } -#line 5826 "sql.c" +#line 5894 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 117: /* db_options ::= db_options WAL_LEVEL NK_INTEGER */ #line 244 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_WAL, &yymsp[0].minor.yy0); } -#line 5832 "sql.c" +#line 5900 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 118: /* db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ #line 245 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } -#line 5838 "sql.c" +#line 5906 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 119: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ #line 246 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } -#line 5844 "sql.c" +#line 5912 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 120: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ @@ -5851,13 +5919,13 @@ static YYACTIONTYPE yy_reduce( t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-3].minor.yy1000, DB_OPTION_WAL_RETENTION_PERIOD, &t); } -#line 5854 "sql.c" +#line 5922 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; case 121: /* db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ #line 252 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } -#line 5860 "sql.c" +#line 5928 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 122: /* db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ @@ -5867,112 +5935,112 @@ static YYACTIONTYPE yy_reduce( t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-3].minor.yy1000, DB_OPTION_WAL_RETENTION_SIZE, &t); } -#line 5870 "sql.c" +#line 5938 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; case 123: /* db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ #line 258 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } -#line 5876 "sql.c" +#line 5944 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 124: /* db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ #line 259 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } -#line 5882 "sql.c" +#line 5950 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 125: /* db_options ::= db_options STT_TRIGGER NK_INTEGER */ #line 260 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } -#line 5888 "sql.c" +#line 5956 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 126: /* db_options ::= db_options TABLE_PREFIX signed */ #line 261 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_TABLE_PREFIX, yymsp[0].minor.yy1000); } -#line 5894 "sql.c" +#line 5962 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 127: /* db_options ::= db_options TABLE_SUFFIX signed */ #line 262 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_TABLE_SUFFIX, yymsp[0].minor.yy1000); } -#line 5900 "sql.c" +#line 5968 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 128: /* db_options ::= db_options KEEP_TIME_OFFSET NK_INTEGER */ #line 263 "sql.y" { yylhsminor.yy1000 = setDatabaseOption(pCxt, yymsp[-2].minor.yy1000, DB_OPTION_KEEP_TIME_OFFSET, &yymsp[0].minor.yy0); } -#line 5906 "sql.c" +#line 5974 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 129: /* alter_db_options ::= alter_db_option */ #line 265 "sql.y" { yylhsminor.yy1000 = createAlterDatabaseOptions(pCxt); yylhsminor.yy1000 = setAlterDatabaseOption(pCxt, yylhsminor.yy1000, &yymsp[0].minor.yy941); } -#line 5912 "sql.c" +#line 5980 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 130: /* alter_db_options ::= alter_db_options alter_db_option */ #line 266 "sql.y" { yylhsminor.yy1000 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy1000, &yymsp[0].minor.yy941); } -#line 5918 "sql.c" +#line 5986 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; case 131: /* alter_db_option ::= BUFFER NK_INTEGER */ #line 270 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5924 "sql.c" +#line 5992 "sql.c" break; case 132: /* alter_db_option ::= CACHEMODEL NK_STRING */ #line 271 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5929 "sql.c" +#line 5997 "sql.c" break; case 133: /* alter_db_option ::= CACHESIZE NK_INTEGER */ #line 272 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5934 "sql.c" +#line 6002 "sql.c" break; case 134: /* alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ #line 273 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5939 "sql.c" +#line 6007 "sql.c" break; case 135: /* alter_db_option ::= KEEP integer_list */ case 136: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==136); #line 274 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_KEEP; yymsp[-1].minor.yy941.pList = yymsp[0].minor.yy72; } -#line 5945 "sql.c" +#line 6013 "sql.c" break; case 137: /* alter_db_option ::= PAGES NK_INTEGER */ #line 276 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_PAGES; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5950 "sql.c" +#line 6018 "sql.c" break; case 138: /* alter_db_option ::= REPLICA NK_INTEGER */ #line 277 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5955 "sql.c" +#line 6023 "sql.c" break; case 139: /* alter_db_option ::= WAL_LEVEL NK_INTEGER */ #line 279 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_WAL; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5960 "sql.c" +#line 6028 "sql.c" break; case 140: /* alter_db_option ::= STT_TRIGGER NK_INTEGER */ #line 280 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5965 "sql.c" +#line 6033 "sql.c" break; case 141: /* alter_db_option ::= MINROWS NK_INTEGER */ #line 281 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_MINROWS; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5970 "sql.c" +#line 6038 "sql.c" break; case 142: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_INTEGER */ #line 282 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5975 "sql.c" +#line 6043 "sql.c" break; case 143: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ #line 283 "sql.y" @@ -5981,12 +6049,12 @@ static YYACTIONTYPE yy_reduce( t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yymsp[-2].minor.yy941.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-2].minor.yy941.val = t; } -#line 5984 "sql.c" +#line 6052 "sql.c" break; case 144: /* alter_db_option ::= WAL_RETENTION_SIZE NK_INTEGER */ #line 288 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 5989 "sql.c" +#line 6057 "sql.c" break; case 145: /* alter_db_option ::= WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ #line 289 "sql.y" @@ -5995,36 +6063,36 @@ static YYACTIONTYPE yy_reduce( t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yymsp[-2].minor.yy941.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-2].minor.yy941.val = t; } -#line 5998 "sql.c" +#line 6066 "sql.c" break; case 146: /* alter_db_option ::= KEEP_TIME_OFFSET NK_INTEGER */ #line 294 "sql.y" { yymsp[-1].minor.yy941.type = DB_OPTION_KEEP_TIME_OFFSET; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 6003 "sql.c" +#line 6071 "sql.c" break; case 147: /* integer_list ::= NK_INTEGER */ #line 298 "sql.y" { yylhsminor.yy72 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } -#line 6008 "sql.c" +#line 6076 "sql.c" yymsp[0].minor.yy72 = yylhsminor.yy72; break; case 148: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ case 408: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==408); #line 299 "sql.y" { yylhsminor.yy72 = addNodeToList(pCxt, yymsp[-2].minor.yy72, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } -#line 6015 "sql.c" +#line 6083 "sql.c" yymsp[-2].minor.yy72 = yylhsminor.yy72; break; case 149: /* variable_list ::= NK_VARIABLE */ #line 303 "sql.y" { yylhsminor.yy72 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 6021 "sql.c" +#line 6089 "sql.c" yymsp[0].minor.yy72 = yylhsminor.yy72; break; case 150: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ #line 304 "sql.y" { yylhsminor.yy72 = addNodeToList(pCxt, yymsp[-2].minor.yy72, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 6027 "sql.c" +#line 6095 "sql.c" yymsp[-2].minor.yy72 = yylhsminor.yy72; break; case 151: /* retention_list ::= retention */ @@ -6036,16 +6104,16 @@ static YYACTIONTYPE yy_reduce( case 245: /* col_name_list ::= col_name */ yytestcase(yyruleno==245); case 313: /* tag_list_opt ::= tag_item */ yytestcase(yyruleno==313); case 330: /* func_list ::= func */ yytestcase(yyruleno==330); - case 432: /* tags_literal_list ::= tags_literal */ yytestcase(yyruleno==432); - case 457: /* literal_list ::= signed_literal */ yytestcase(yyruleno==457); - case 529: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==529); - case 535: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==535); - case 594: /* select_list ::= select_item */ yytestcase(yyruleno==594); - case 605: /* partition_list ::= partition_item */ yytestcase(yyruleno==605); - case 666: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==666); + case 452: /* tags_literal_list ::= tags_literal */ yytestcase(yyruleno==452); + case 477: /* literal_list ::= signed_literal */ yytestcase(yyruleno==477); + case 549: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==549); + case 555: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==555); + case 614: /* select_list ::= select_item */ yytestcase(yyruleno==614); + case 625: /* partition_list ::= partition_item */ yytestcase(yyruleno==625); + case 686: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==686); #line 308 "sql.y" { yylhsminor.yy72 = createNodeList(pCxt, yymsp[0].minor.yy1000); } -#line 6048 "sql.c" +#line 6116 "sql.c" yymsp[0].minor.yy72 = yylhsminor.yy72; break; case 152: /* retention_list ::= retention_list NK_COMMA retention */ @@ -6056,411 +6124,411 @@ static YYACTIONTYPE yy_reduce( case 246: /* col_name_list ::= col_name_list NK_COMMA col_name */ yytestcase(yyruleno==246); case 314: /* tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ yytestcase(yyruleno==314); case 331: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==331); - case 433: /* tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ yytestcase(yyruleno==433); - case 458: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==458); - case 530: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==530); - case 595: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==595); - case 606: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==606); - case 667: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==667); + case 453: /* tags_literal_list ::= tags_literal_list NK_COMMA tags_literal */ yytestcase(yyruleno==453); + case 478: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==478); + case 550: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==550); + case 615: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==615); + case 626: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==626); + case 687: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==687); #line 309 "sql.y" { yylhsminor.yy72 = addNodeToList(pCxt, yymsp[-2].minor.yy72, yymsp[0].minor.yy1000); } -#line 6067 "sql.c" +#line 6135 "sql.c" yymsp[-2].minor.yy72 = yylhsminor.yy72; break; case 153: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ case 154: /* retention ::= NK_MINUS NK_COLON NK_VARIABLE */ yytestcase(yyruleno==154); #line 311 "sql.y" { yylhsminor.yy1000 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 6074 "sql.c" +#line 6142 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 155: /* speed_opt ::= */ case 364: /* bufsize_opt ::= */ yytestcase(yyruleno==364); #line 316 "sql.y" { yymsp[1].minor.yy444 = 0; } -#line 6081 "sql.c" +#line 6149 "sql.c" break; case 156: /* speed_opt ::= BWLIMIT NK_INTEGER */ case 365: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==365); #line 317 "sql.y" { yymsp[-1].minor.yy444 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } -#line 6087 "sql.c" +#line 6155 "sql.c" break; case 158: /* start_opt ::= START WITH NK_INTEGER */ case 162: /* end_opt ::= END WITH NK_INTEGER */ yytestcase(yyruleno==162); #line 320 "sql.y" { yymsp[-2].minor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } -#line 6093 "sql.c" +#line 6161 "sql.c" break; case 159: /* start_opt ::= START WITH NK_STRING */ case 163: /* end_opt ::= END WITH NK_STRING */ yytestcase(yyruleno==163); #line 321 "sql.y" { yymsp[-2].minor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } -#line 6099 "sql.c" +#line 6167 "sql.c" break; case 160: /* start_opt ::= START WITH TIMESTAMP NK_STRING */ case 164: /* end_opt ::= END WITH TIMESTAMP NK_STRING */ yytestcase(yyruleno==164); #line 322 "sql.y" { yymsp[-3].minor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } -#line 6105 "sql.c" +#line 6173 "sql.c" break; case 165: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ case 167: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==167); #line 331 "sql.y" { pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy985, yymsp[-5].minor.yy1000, yymsp[-3].minor.yy72, yymsp[-1].minor.yy72, yymsp[0].minor.yy1000); } -#line 6111 "sql.c" +#line 6179 "sql.c" break; case 166: /* cmd ::= CREATE TABLE multi_create_clause */ #line 332 "sql.y" { pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy72); } -#line 6116 "sql.c" +#line 6184 "sql.c" break; case 168: /* cmd ::= DROP TABLE multi_drop_clause */ #line 335 "sql.y" { pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy72); } -#line 6121 "sql.c" +#line 6189 "sql.c" break; case 169: /* cmd ::= DROP STABLE exists_opt full_table_name */ #line 336 "sql.y" { pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy985, yymsp[0].minor.yy1000); } -#line 6126 "sql.c" +#line 6194 "sql.c" break; case 170: /* cmd ::= ALTER TABLE alter_table_clause */ case 410: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==410); case 411: /* cmd ::= insert_query */ yytestcase(yyruleno==411); #line 338 "sql.y" { pCxt->pRootNode = yymsp[0].minor.yy1000; } -#line 6133 "sql.c" +#line 6201 "sql.c" break; case 171: /* cmd ::= ALTER STABLE alter_table_clause */ #line 339 "sql.y" { pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy1000); } -#line 6138 "sql.c" +#line 6206 "sql.c" break; case 172: /* alter_table_clause ::= full_table_name alter_table_options */ #line 341 "sql.y" { yylhsminor.yy1000 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } -#line 6143 "sql.c" +#line 6211 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; case 173: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ #line 343 "sql.y" { yylhsminor.yy1000 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy1000, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy305, yymsp[0].minor.yy56); } -#line 6149 "sql.c" +#line 6217 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; case 174: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ #line 344 "sql.y" { yylhsminor.yy1000 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy1000, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy305); } -#line 6155 "sql.c" +#line 6223 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; case 175: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ #line 346 "sql.y" { yylhsminor.yy1000 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy1000, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy305, yymsp[0].minor.yy56); } -#line 6161 "sql.c" +#line 6229 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; case 176: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name column_options */ #line 348 "sql.y" { yylhsminor.yy1000 = createAlterTableAddModifyColOptions(pCxt, yymsp[-4].minor.yy1000, TSDB_ALTER_TABLE_UPDATE_COLUMN_COMPRESS, &yymsp[-1].minor.yy305, yymsp[0].minor.yy1000); } -#line 6167 "sql.c" +#line 6235 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; case 177: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ #line 350 "sql.y" { yylhsminor.yy1000 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy1000, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy305, &yymsp[0].minor.yy305); } -#line 6173 "sql.c" +#line 6241 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; case 178: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ #line 352 "sql.y" { yylhsminor.yy1000 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy1000, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy305, yymsp[0].minor.yy56); } -#line 6179 "sql.c" +#line 6247 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; case 179: /* alter_table_clause ::= full_table_name DROP TAG column_name */ #line 353 "sql.y" { yylhsminor.yy1000 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy1000, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy305); } -#line 6185 "sql.c" +#line 6253 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; case 180: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ #line 355 "sql.y" { yylhsminor.yy1000 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy1000, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy305, yymsp[0].minor.yy56); } -#line 6191 "sql.c" +#line 6259 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; case 181: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ #line 357 "sql.y" { yylhsminor.yy1000 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy1000, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy305, &yymsp[0].minor.yy305); } -#line 6197 "sql.c" +#line 6265 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; case 182: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ tags_literal */ #line 359 "sql.y" { yylhsminor.yy1000 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy1000, &yymsp[-2].minor.yy305, yymsp[0].minor.yy1000); } -#line 6203 "sql.c" +#line 6271 "sql.c" yymsp[-5].minor.yy1000 = yylhsminor.yy1000; break; case 184: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ - case 536: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==536); + case 556: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==556); #line 364 "sql.y" { yylhsminor.yy72 = addNodeToList(pCxt, yymsp[-1].minor.yy72, yymsp[0].minor.yy1000); } -#line 6210 "sql.c" +#line 6278 "sql.c" yymsp[-1].minor.yy72 = yylhsminor.yy72; break; case 185: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP tags_literal_list NK_RP table_options */ #line 368 "sql.y" { yylhsminor.yy1000 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy985, yymsp[-8].minor.yy1000, yymsp[-6].minor.yy1000, yymsp[-5].minor.yy72, yymsp[-2].minor.yy72, yymsp[0].minor.yy1000); } -#line 6216 "sql.c" +#line 6284 "sql.c" yymsp[-9].minor.yy1000 = yylhsminor.yy1000; break; case 188: /* drop_table_clause ::= exists_opt full_table_name */ #line 375 "sql.y" { yylhsminor.yy1000 = createDropTableClause(pCxt, yymsp[-1].minor.yy985, yymsp[0].minor.yy1000); } -#line 6222 "sql.c" +#line 6290 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; case 190: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ case 379: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==379); #line 380 "sql.y" { yymsp[-2].minor.yy72 = yymsp[-1].minor.yy72; } -#line 6229 "sql.c" +#line 6297 "sql.c" break; case 191: /* full_table_name ::= table_name */ #line 382 "sql.y" { yylhsminor.yy1000 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy305, NULL); } -#line 6234 "sql.c" +#line 6302 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 192: /* full_table_name ::= db_name NK_DOT table_name */ #line 383 "sql.y" { yylhsminor.yy1000 = createRealTableNode(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy305, NULL); } -#line 6240 "sql.c" +#line 6308 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 195: /* tag_def ::= column_name type_name */ #line 389 "sql.y" { yylhsminor.yy1000 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy305, yymsp[0].minor.yy56, NULL); } -#line 6246 "sql.c" +#line 6314 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; case 198: /* column_def ::= column_name type_name column_options */ #line 397 "sql.y" { yylhsminor.yy1000 = createColumnDefNode(pCxt, &yymsp[-2].minor.yy305, yymsp[-1].minor.yy56, yymsp[0].minor.yy1000); } -#line 6252 "sql.c" +#line 6320 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 199: /* type_name ::= BOOL */ #line 401 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_BOOL); } -#line 6258 "sql.c" +#line 6326 "sql.c" break; case 200: /* type_name ::= TINYINT */ #line 402 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_TINYINT); } -#line 6263 "sql.c" +#line 6331 "sql.c" break; case 201: /* type_name ::= SMALLINT */ #line 403 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_SMALLINT); } -#line 6268 "sql.c" +#line 6336 "sql.c" break; case 202: /* type_name ::= INT */ case 203: /* type_name ::= INTEGER */ yytestcase(yyruleno==203); #line 404 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_INT); } -#line 6274 "sql.c" +#line 6342 "sql.c" break; case 204: /* type_name ::= BIGINT */ #line 406 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_BIGINT); } -#line 6279 "sql.c" +#line 6347 "sql.c" break; case 205: /* type_name ::= FLOAT */ #line 407 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_FLOAT); } -#line 6284 "sql.c" +#line 6352 "sql.c" break; case 206: /* type_name ::= DOUBLE */ #line 408 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_DOUBLE); } -#line 6289 "sql.c" +#line 6357 "sql.c" break; case 207: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ #line 409 "sql.y" { yymsp[-3].minor.yy56 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } -#line 6294 "sql.c" +#line 6362 "sql.c" break; case 208: /* type_name ::= TIMESTAMP */ #line 410 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } -#line 6299 "sql.c" +#line 6367 "sql.c" break; case 209: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ #line 411 "sql.y" { yymsp[-3].minor.yy56 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } -#line 6304 "sql.c" +#line 6372 "sql.c" break; case 210: /* type_name ::= TINYINT UNSIGNED */ #line 412 "sql.y" { yymsp[-1].minor.yy56 = createDataType(TSDB_DATA_TYPE_UTINYINT); } -#line 6309 "sql.c" +#line 6377 "sql.c" break; case 211: /* type_name ::= SMALLINT UNSIGNED */ #line 413 "sql.y" { yymsp[-1].minor.yy56 = createDataType(TSDB_DATA_TYPE_USMALLINT); } -#line 6314 "sql.c" +#line 6382 "sql.c" break; case 212: /* type_name ::= INT UNSIGNED */ #line 414 "sql.y" { yymsp[-1].minor.yy56 = createDataType(TSDB_DATA_TYPE_UINT); } -#line 6319 "sql.c" +#line 6387 "sql.c" break; case 213: /* type_name ::= BIGINT UNSIGNED */ #line 415 "sql.y" { yymsp[-1].minor.yy56 = createDataType(TSDB_DATA_TYPE_UBIGINT); } -#line 6324 "sql.c" +#line 6392 "sql.c" break; case 214: /* type_name ::= JSON */ #line 416 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_JSON); } -#line 6329 "sql.c" +#line 6397 "sql.c" break; case 215: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ #line 417 "sql.y" { yymsp[-3].minor.yy56 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } -#line 6334 "sql.c" +#line 6402 "sql.c" break; case 216: /* type_name ::= MEDIUMBLOB */ #line 418 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } -#line 6339 "sql.c" +#line 6407 "sql.c" break; case 217: /* type_name ::= BLOB */ #line 419 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_BLOB); } -#line 6344 "sql.c" +#line 6412 "sql.c" break; case 218: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ #line 420 "sql.y" { yymsp[-3].minor.yy56 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } -#line 6349 "sql.c" +#line 6417 "sql.c" break; case 219: /* type_name ::= GEOMETRY NK_LP NK_INTEGER NK_RP */ #line 421 "sql.y" { yymsp[-3].minor.yy56 = createVarLenDataType(TSDB_DATA_TYPE_GEOMETRY, &yymsp[-1].minor.yy0); } -#line 6354 "sql.c" +#line 6422 "sql.c" break; case 220: /* type_name ::= DECIMAL */ #line 422 "sql.y" { yymsp[0].minor.yy56 = createDataType(TSDB_DATA_TYPE_DECIMAL); } -#line 6359 "sql.c" +#line 6427 "sql.c" break; case 221: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ #line 423 "sql.y" { yymsp[-3].minor.yy56 = createDataType(TSDB_DATA_TYPE_DECIMAL); } -#line 6364 "sql.c" +#line 6432 "sql.c" break; case 222: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ #line 424 "sql.y" { yymsp[-5].minor.yy56 = createDataType(TSDB_DATA_TYPE_DECIMAL); } -#line 6369 "sql.c" +#line 6437 "sql.c" break; case 225: /* tags_def ::= TAGS NK_LP tag_def_list NK_RP */ case 382: /* tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ yytestcase(yyruleno==382); #line 433 "sql.y" { yymsp[-3].minor.yy72 = yymsp[-1].minor.yy72; } -#line 6375 "sql.c" +#line 6443 "sql.c" break; case 226: /* table_options ::= */ #line 435 "sql.y" { yymsp[1].minor.yy1000 = createDefaultTableOptions(pCxt); } -#line 6380 "sql.c" +#line 6448 "sql.c" break; case 227: /* table_options ::= table_options COMMENT NK_STRING */ #line 436 "sql.y" { yylhsminor.yy1000 = setTableOption(pCxt, yymsp[-2].minor.yy1000, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } -#line 6385 "sql.c" +#line 6453 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 228: /* table_options ::= table_options MAX_DELAY duration_list */ #line 437 "sql.y" { yylhsminor.yy1000 = setTableOption(pCxt, yymsp[-2].minor.yy1000, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy72); } -#line 6391 "sql.c" +#line 6459 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 229: /* table_options ::= table_options WATERMARK duration_list */ #line 438 "sql.y" { yylhsminor.yy1000 = setTableOption(pCxt, yymsp[-2].minor.yy1000, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy72); } -#line 6397 "sql.c" +#line 6465 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 230: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ #line 439 "sql.y" { yylhsminor.yy1000 = setTableOption(pCxt, yymsp[-4].minor.yy1000, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy72); } -#line 6403 "sql.c" +#line 6471 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; case 231: /* table_options ::= table_options TTL NK_INTEGER */ #line 440 "sql.y" { yylhsminor.yy1000 = setTableOption(pCxt, yymsp[-2].minor.yy1000, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } -#line 6409 "sql.c" +#line 6477 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 232: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ #line 441 "sql.y" { yylhsminor.yy1000 = setTableOption(pCxt, yymsp[-4].minor.yy1000, TABLE_OPTION_SMA, yymsp[-1].minor.yy72); } -#line 6415 "sql.c" +#line 6483 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; case 233: /* table_options ::= table_options DELETE_MARK duration_list */ #line 442 "sql.y" { yylhsminor.yy1000 = setTableOption(pCxt, yymsp[-2].minor.yy1000, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy72); } -#line 6421 "sql.c" +#line 6489 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 234: /* alter_table_options ::= alter_table_option */ #line 444 "sql.y" { yylhsminor.yy1000 = createAlterTableOptions(pCxt); yylhsminor.yy1000 = setTableOption(pCxt, yylhsminor.yy1000, yymsp[0].minor.yy941.type, &yymsp[0].minor.yy941.val); } -#line 6427 "sql.c" +#line 6495 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 235: /* alter_table_options ::= alter_table_options alter_table_option */ #line 445 "sql.y" { yylhsminor.yy1000 = setTableOption(pCxt, yymsp[-1].minor.yy1000, yymsp[0].minor.yy941.type, &yymsp[0].minor.yy941.val); } -#line 6433 "sql.c" +#line 6501 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; case 236: /* alter_table_option ::= COMMENT NK_STRING */ #line 449 "sql.y" { yymsp[-1].minor.yy941.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 6439 "sql.c" +#line 6507 "sql.c" break; case 237: /* alter_table_option ::= TTL NK_INTEGER */ #line 450 "sql.y" { yymsp[-1].minor.yy941.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy941.val = yymsp[0].minor.yy0; } -#line 6444 "sql.c" +#line 6512 "sql.c" break; case 238: /* duration_list ::= duration_literal */ - case 489: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==489); + case 509: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==509); #line 454 "sql.y" { yylhsminor.yy72 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000)); } -#line 6450 "sql.c" +#line 6518 "sql.c" yymsp[0].minor.yy72 = yylhsminor.yy72; break; case 239: /* duration_list ::= duration_list NK_COMMA duration_literal */ - case 490: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==490); + case 510: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==510); #line 455 "sql.y" { yylhsminor.yy72 = addNodeToList(pCxt, yymsp[-2].minor.yy72, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000)); } -#line 6457 "sql.c" +#line 6525 "sql.c" yymsp[-2].minor.yy72 = yylhsminor.yy72; break; case 242: /* rollup_func_name ::= function_name */ #line 462 "sql.y" { yylhsminor.yy1000 = createFunctionNode(pCxt, &yymsp[0].minor.yy305, NULL); } -#line 6463 "sql.c" +#line 6531 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 243: /* rollup_func_name ::= FIRST */ @@ -6468,30 +6536,30 @@ static YYACTIONTYPE yy_reduce( case 316: /* tag_item ::= QTAGS */ yytestcase(yyruleno==316); #line 463 "sql.y" { yylhsminor.yy1000 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } -#line 6471 "sql.c" +#line 6539 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 247: /* col_name ::= column_name */ case 317: /* tag_item ::= column_name */ yytestcase(yyruleno==317); #line 471 "sql.y" { yylhsminor.yy1000 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy305); } -#line 6478 "sql.c" +#line 6546 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 248: /* cmd ::= SHOW DNODES */ #line 474 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } -#line 6484 "sql.c" +#line 6552 "sql.c" break; case 249: /* cmd ::= SHOW USERS */ #line 475 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USERS_STMT); } -#line 6489 "sql.c" +#line 6557 "sql.c" break; case 250: /* cmd ::= SHOW USER PRIVILEGES */ #line 476 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USER_PRIVILEGES_STMT); } -#line 6494 "sql.c" +#line 6562 "sql.c" break; case 251: /* cmd ::= SHOW db_kind_opt DATABASES */ #line 477 "sql.y" @@ -6499,1314 +6567,1354 @@ static YYACTIONTYPE yy_reduce( pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); setShowKind(pCxt, pCxt->pRootNode, yymsp[-1].minor.yy761); } -#line 6502 "sql.c" +#line 6570 "sql.c" break; case 252: /* cmd ::= SHOW table_kind_db_name_cond_opt TABLES like_pattern_opt */ #line 481 "sql.y" { pCxt->pRootNode = createShowTablesStmt(pCxt, yymsp[-2].minor.yy517, yymsp[0].minor.yy1000, OP_TYPE_LIKE); } -#line 6509 "sql.c" +#line 6577 "sql.c" break; case 253: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ #line 484 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy1000, yymsp[0].minor.yy1000, OP_TYPE_LIKE); } -#line 6514 "sql.c" +#line 6582 "sql.c" break; case 254: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ #line 485 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy1000, NULL, OP_TYPE_LIKE); } -#line 6519 "sql.c" +#line 6587 "sql.c" break; case 255: /* cmd ::= SHOW MNODES */ #line 486 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } -#line 6524 "sql.c" +#line 6592 "sql.c" break; case 256: /* cmd ::= SHOW QNODES */ #line 488 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QNODES_STMT); } -#line 6529 "sql.c" +#line 6597 "sql.c" break; case 257: /* cmd ::= SHOW ARBGROUPS */ #line 489 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_ARBGROUPS_STMT); } -#line 6534 "sql.c" +#line 6602 "sql.c" break; case 258: /* cmd ::= SHOW FUNCTIONS */ #line 490 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } -#line 6539 "sql.c" +#line 6607 "sql.c" break; case 259: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ #line 491 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy1000, yymsp[-1].minor.yy1000, OP_TYPE_EQUAL); } -#line 6544 "sql.c" +#line 6612 "sql.c" break; case 260: /* cmd ::= SHOW INDEXES FROM db_name NK_DOT table_name */ #line 492 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy305), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy305), OP_TYPE_EQUAL); } -#line 6549 "sql.c" +#line 6617 "sql.c" break; case 261: /* cmd ::= SHOW STREAMS */ #line 493 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } -#line 6554 "sql.c" +#line 6622 "sql.c" break; case 262: /* cmd ::= SHOW ACCOUNTS */ #line 494 "sql.y" { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } -#line 6559 "sql.c" +#line 6627 "sql.c" break; case 263: /* cmd ::= SHOW APPS */ #line 495 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_APPS_STMT); } -#line 6564 "sql.c" +#line 6632 "sql.c" break; case 264: /* cmd ::= SHOW CONNECTIONS */ #line 496 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONNECTIONS_STMT); } -#line 6569 "sql.c" +#line 6637 "sql.c" break; case 265: /* cmd ::= SHOW LICENCES */ case 266: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==266); #line 497 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); } -#line 6575 "sql.c" +#line 6643 "sql.c" break; case 267: /* cmd ::= SHOW GRANTS FULL */ #line 499 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_GRANTS_FULL_STMT); } -#line 6580 "sql.c" +#line 6648 "sql.c" break; case 268: /* cmd ::= SHOW GRANTS LOGS */ #line 500 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_GRANTS_LOGS_STMT); } -#line 6585 "sql.c" +#line 6653 "sql.c" break; case 269: /* cmd ::= SHOW CLUSTER MACHINES */ #line 501 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_MACHINES_STMT); } -#line 6590 "sql.c" +#line 6658 "sql.c" break; case 270: /* cmd ::= SHOW CREATE DATABASE db_name */ #line 502 "sql.y" { pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy305); } -#line 6595 "sql.c" +#line 6663 "sql.c" break; case 271: /* cmd ::= SHOW CREATE TABLE full_table_name */ #line 503 "sql.y" { pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy1000); } -#line 6600 "sql.c" +#line 6668 "sql.c" break; case 272: /* cmd ::= SHOW CREATE STABLE full_table_name */ #line 504 "sql.y" { pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy1000); } -#line 6605 "sql.c" +#line 6673 "sql.c" break; case 273: /* cmd ::= SHOW QUERIES */ #line 505 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } -#line 6610 "sql.c" +#line 6678 "sql.c" break; case 274: /* cmd ::= SHOW SCORES */ #line 506 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SCORES_STMT); } -#line 6615 "sql.c" +#line 6683 "sql.c" break; case 275: /* cmd ::= SHOW TOPICS */ #line 507 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TOPICS_STMT); } -#line 6620 "sql.c" +#line 6688 "sql.c" break; case 276: /* cmd ::= SHOW VARIABLES */ case 277: /* cmd ::= SHOW CLUSTER VARIABLES */ yytestcase(yyruleno==277); #line 508 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_VARIABLES_STMT); } -#line 6626 "sql.c" +#line 6694 "sql.c" break; case 278: /* cmd ::= SHOW LOCAL VARIABLES */ #line 510 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } -#line 6631 "sql.c" +#line 6699 "sql.c" break; case 279: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ #line 511 "sql.y" { pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy1000); } -#line 6636 "sql.c" +#line 6704 "sql.c" break; case 280: /* cmd ::= SHOW BNODES */ #line 512 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } -#line 6641 "sql.c" +#line 6709 "sql.c" break; case 281: /* cmd ::= SHOW SNODES */ #line 513 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SNODES_STMT); } -#line 6646 "sql.c" +#line 6714 "sql.c" break; case 282: /* cmd ::= SHOW CLUSTER */ #line 514 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_STMT); } -#line 6651 "sql.c" +#line 6719 "sql.c" break; case 283: /* cmd ::= SHOW TRANSACTIONS */ #line 515 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } -#line 6656 "sql.c" +#line 6724 "sql.c" break; case 284: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ #line 516 "sql.y" { pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy1000); } -#line 6661 "sql.c" +#line 6729 "sql.c" break; case 285: /* cmd ::= SHOW CONSUMERS */ #line 517 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } -#line 6666 "sql.c" +#line 6734 "sql.c" break; case 286: /* cmd ::= SHOW SUBSCRIPTIONS */ #line 518 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } -#line 6671 "sql.c" +#line 6739 "sql.c" break; case 287: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ #line 519 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy1000, yymsp[-1].minor.yy1000, OP_TYPE_EQUAL); } -#line 6676 "sql.c" +#line 6744 "sql.c" break; case 288: /* cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ #line 520 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy305), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy305), OP_TYPE_EQUAL); } -#line 6681 "sql.c" +#line 6749 "sql.c" break; case 289: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ #line 521 "sql.y" { pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000, yymsp[-3].minor.yy72); } -#line 6686 "sql.c" +#line 6754 "sql.c" break; case 290: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ #line 522 "sql.y" { pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy305), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy305), yymsp[-4].minor.yy72); } -#line 6691 "sql.c" +#line 6759 "sql.c" break; case 291: /* cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ #line 523 "sql.y" { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } -#line 6696 "sql.c" +#line 6764 "sql.c" break; case 292: /* cmd ::= SHOW VNODES */ #line 524 "sql.y" { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, NULL); } -#line 6701 "sql.c" +#line 6769 "sql.c" break; case 293: /* cmd ::= SHOW db_name_cond_opt ALIVE */ #line 526 "sql.y" { pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy1000, QUERY_NODE_SHOW_DB_ALIVE_STMT); } -#line 6706 "sql.c" +#line 6774 "sql.c" break; case 294: /* cmd ::= SHOW CLUSTER ALIVE */ #line 527 "sql.y" { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } -#line 6711 "sql.c" +#line 6779 "sql.c" break; case 295: /* cmd ::= SHOW db_name_cond_opt VIEWS like_pattern_opt */ #line 528 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VIEWS_STMT, yymsp[-2].minor.yy1000, yymsp[0].minor.yy1000, OP_TYPE_LIKE); } -#line 6716 "sql.c" +#line 6784 "sql.c" break; case 296: /* cmd ::= SHOW CREATE VIEW full_table_name */ #line 529 "sql.y" { pCxt->pRootNode = createShowCreateViewStmt(pCxt, QUERY_NODE_SHOW_CREATE_VIEW_STMT, yymsp[0].minor.yy1000); } -#line 6721 "sql.c" +#line 6789 "sql.c" break; case 297: /* cmd ::= SHOW COMPACTS */ #line 530 "sql.y" { pCxt->pRootNode = createShowCompactsStmt(pCxt, QUERY_NODE_SHOW_COMPACTS_STMT); } -#line 6726 "sql.c" +#line 6794 "sql.c" break; case 298: /* cmd ::= SHOW COMPACT NK_INTEGER */ #line 531 "sql.y" { pCxt->pRootNode = createShowCompactDetailsStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } -#line 6731 "sql.c" +#line 6799 "sql.c" break; case 299: /* table_kind_db_name_cond_opt ::= */ #line 535 "sql.y" { yymsp[1].minor.yy517.kind = SHOW_KIND_ALL; yymsp[1].minor.yy517.dbName = nil_token; } -#line 6736 "sql.c" +#line 6804 "sql.c" break; case 300: /* table_kind_db_name_cond_opt ::= table_kind */ #line 536 "sql.y" { yylhsminor.yy517.kind = yymsp[0].minor.yy761; yylhsminor.yy517.dbName = nil_token; } -#line 6741 "sql.c" +#line 6809 "sql.c" yymsp[0].minor.yy517 = yylhsminor.yy517; break; case 301: /* table_kind_db_name_cond_opt ::= db_name NK_DOT */ #line 537 "sql.y" { yylhsminor.yy517.kind = SHOW_KIND_ALL; yylhsminor.yy517.dbName = yymsp[-1].minor.yy305; } -#line 6747 "sql.c" +#line 6815 "sql.c" yymsp[-1].minor.yy517 = yylhsminor.yy517; break; case 302: /* table_kind_db_name_cond_opt ::= table_kind db_name NK_DOT */ #line 538 "sql.y" { yylhsminor.yy517.kind = yymsp[-2].minor.yy761; yylhsminor.yy517.dbName = yymsp[-1].minor.yy305; } -#line 6753 "sql.c" +#line 6821 "sql.c" yymsp[-2].minor.yy517 = yylhsminor.yy517; break; case 303: /* table_kind ::= NORMAL */ #line 542 "sql.y" { yymsp[0].minor.yy761 = SHOW_KIND_TABLES_NORMAL; } -#line 6759 "sql.c" +#line 6827 "sql.c" break; case 304: /* table_kind ::= CHILD */ #line 543 "sql.y" { yymsp[0].minor.yy761 = SHOW_KIND_TABLES_CHILD; } -#line 6764 "sql.c" +#line 6832 "sql.c" break; case 305: /* db_name_cond_opt ::= */ case 310: /* from_db_opt ::= */ yytestcase(yyruleno==310); #line 545 "sql.y" { yymsp[1].minor.yy1000 = createDefaultDatabaseCondValue(pCxt); } -#line 6770 "sql.c" +#line 6838 "sql.c" break; case 306: /* db_name_cond_opt ::= db_name NK_DOT */ #line 546 "sql.y" { yylhsminor.yy1000 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy305); } -#line 6775 "sql.c" +#line 6843 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; case 308: /* like_pattern_opt ::= LIKE NK_STRING */ #line 549 "sql.y" { yymsp[-1].minor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } -#line 6781 "sql.c" +#line 6849 "sql.c" break; case 309: /* table_name_cond ::= table_name */ #line 551 "sql.y" { yylhsminor.yy1000 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy305); } -#line 6786 "sql.c" +#line 6854 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 311: /* from_db_opt ::= FROM db_name */ #line 554 "sql.y" { yymsp[-1].minor.yy1000 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy305); } -#line 6792 "sql.c" +#line 6860 "sql.c" break; case 315: /* tag_item ::= TBNAME */ #line 562 "sql.y" { yylhsminor.yy1000 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } -#line 6797 "sql.c" +#line 6865 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 318: /* tag_item ::= column_name column_alias */ #line 565 "sql.y" { yylhsminor.yy1000 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy305), &yymsp[0].minor.yy305); } -#line 6803 "sql.c" +#line 6871 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; case 319: /* tag_item ::= column_name AS column_alias */ #line 566 "sql.y" { yylhsminor.yy1000 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy305), &yymsp[0].minor.yy305); } -#line 6809 "sql.c" +#line 6877 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 320: /* db_kind_opt ::= */ #line 570 "sql.y" { yymsp[1].minor.yy761 = SHOW_KIND_ALL; } -#line 6815 "sql.c" +#line 6883 "sql.c" break; case 321: /* db_kind_opt ::= USER */ #line 571 "sql.y" { yymsp[0].minor.yy761 = SHOW_KIND_DATABASES_USER; } -#line 6820 "sql.c" +#line 6888 "sql.c" break; case 322: /* db_kind_opt ::= SYSTEM */ #line 572 "sql.y" { yymsp[0].minor.yy761 = SHOW_KIND_DATABASES_SYSTEM; } -#line 6825 "sql.c" +#line 6893 "sql.c" break; case 323: /* cmd ::= CREATE SMA INDEX not_exists_opt col_name ON full_table_name index_options */ #line 576 "sql.y" { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy985, yymsp[-3].minor.yy1000, yymsp[-1].minor.yy1000, NULL, yymsp[0].minor.yy1000); } -#line 6830 "sql.c" +#line 6898 "sql.c" break; case 324: /* cmd ::= CREATE INDEX not_exists_opt col_name ON full_table_name NK_LP col_name_list NK_RP */ #line 578 "sql.y" { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy985, yymsp[-5].minor.yy1000, yymsp[-3].minor.yy1000, yymsp[-1].minor.yy72, NULL); } -#line 6835 "sql.c" +#line 6903 "sql.c" break; case 325: /* cmd ::= DROP INDEX exists_opt full_index_name */ #line 579 "sql.y" { pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy985, yymsp[0].minor.yy1000); } -#line 6840 "sql.c" +#line 6908 "sql.c" break; case 326: /* full_index_name ::= index_name */ #line 581 "sql.y" { yylhsminor.yy1000 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy305); } -#line 6845 "sql.c" +#line 6913 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 327: /* full_index_name ::= db_name NK_DOT index_name */ #line 582 "sql.y" { yylhsminor.yy1000 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy305); } -#line 6851 "sql.c" +#line 6919 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 328: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ #line 585 "sql.y" { yymsp[-9].minor.yy1000 = createIndexOption(pCxt, yymsp[-7].minor.yy72, releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), NULL, yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } -#line 6857 "sql.c" +#line 6925 "sql.c" break; case 329: /* 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 */ #line 588 "sql.y" { yymsp[-11].minor.yy1000 = createIndexOption(pCxt, yymsp[-9].minor.yy72, releaseRawExprNode(pCxt, yymsp[-5].minor.yy1000), releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } -#line 6862 "sql.c" +#line 6930 "sql.c" break; case 332: /* func ::= sma_func_name NK_LP expression_list NK_RP */ #line 595 "sql.y" { yylhsminor.yy1000 = createFunctionNode(pCxt, &yymsp[-3].minor.yy305, yymsp[-1].minor.yy72); } -#line 6867 "sql.c" +#line 6935 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; case 333: /* sma_func_name ::= function_name */ - case 579: /* alias_opt ::= table_alias */ yytestcase(yyruleno==579); + case 599: /* alias_opt ::= table_alias */ yytestcase(yyruleno==599); #line 599 "sql.y" { yylhsminor.yy305 = yymsp[0].minor.yy305; } -#line 6874 "sql.c" +#line 6942 "sql.c" yymsp[0].minor.yy305 = yylhsminor.yy305; break; case 338: /* sma_stream_opt ::= */ case 383: /* stream_options ::= */ yytestcase(yyruleno==383); #line 605 "sql.y" { yymsp[1].minor.yy1000 = createStreamOptions(pCxt); } -#line 6881 "sql.c" +#line 6949 "sql.c" break; case 339: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ #line 606 "sql.y" { ((SStreamOptions*)yymsp[-2].minor.yy1000)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = yymsp[-2].minor.yy1000; } -#line 6886 "sql.c" +#line 6954 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 340: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ #line 607 "sql.y" { ((SStreamOptions*)yymsp[-2].minor.yy1000)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = yymsp[-2].minor.yy1000; } -#line 6892 "sql.c" +#line 6960 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 341: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ #line 608 "sql.y" { ((SStreamOptions*)yymsp[-2].minor.yy1000)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = yymsp[-2].minor.yy1000; } -#line 6898 "sql.c" +#line 6966 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 342: /* with_meta ::= AS */ #line 613 "sql.y" { yymsp[0].minor.yy444 = 0; } -#line 6904 "sql.c" +#line 6972 "sql.c" break; case 343: /* with_meta ::= WITH META AS */ #line 614 "sql.y" { yymsp[-2].minor.yy444 = 1; } -#line 6909 "sql.c" +#line 6977 "sql.c" break; case 344: /* with_meta ::= ONLY META AS */ #line 615 "sql.y" { yymsp[-2].minor.yy444 = 2; } -#line 6914 "sql.c" +#line 6982 "sql.c" break; case 345: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ #line 617 "sql.y" { pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy985, &yymsp[-2].minor.yy305, yymsp[0].minor.yy1000); } -#line 6919 "sql.c" +#line 6987 "sql.c" break; case 346: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ #line 619 "sql.y" { pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy985, &yymsp[-3].minor.yy305, &yymsp[0].minor.yy305, yymsp[-2].minor.yy444); } -#line 6924 "sql.c" +#line 6992 "sql.c" break; case 347: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ #line 621 "sql.y" { pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-5].minor.yy985, &yymsp[-4].minor.yy305, yymsp[-1].minor.yy1000, yymsp[-3].minor.yy444, yymsp[0].minor.yy1000); } -#line 6929 "sql.c" +#line 6997 "sql.c" break; case 348: /* cmd ::= DROP TOPIC exists_opt topic_name */ #line 623 "sql.y" { pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy985, &yymsp[0].minor.yy305); } -#line 6934 "sql.c" +#line 7002 "sql.c" break; case 349: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ #line 624 "sql.y" { pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy985, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy305); } -#line 6939 "sql.c" +#line 7007 "sql.c" break; case 350: /* cmd ::= DESC full_table_name */ case 351: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==351); #line 627 "sql.y" { pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy1000); } -#line 6945 "sql.c" +#line 7013 "sql.c" break; case 352: /* cmd ::= RESET QUERY CACHE */ #line 631 "sql.y" { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } -#line 6950 "sql.c" +#line 7018 "sql.c" break; case 353: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ case 354: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==354); #line 634 "sql.y" { pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy985, yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } -#line 6956 "sql.c" +#line 7024 "sql.c" break; case 357: /* explain_options ::= */ #line 642 "sql.y" { yymsp[1].minor.yy1000 = createDefaultExplainOptions(pCxt); } -#line 6961 "sql.c" +#line 7029 "sql.c" break; case 358: /* explain_options ::= explain_options VERBOSE NK_BOOL */ #line 643 "sql.y" { yylhsminor.yy1000 = setExplainVerbose(pCxt, yymsp[-2].minor.yy1000, &yymsp[0].minor.yy0); } -#line 6966 "sql.c" +#line 7034 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 359: /* explain_options ::= explain_options RATIO NK_FLOAT */ #line 644 "sql.y" { yylhsminor.yy1000 = setExplainRatio(pCxt, yymsp[-2].minor.yy1000, &yymsp[0].minor.yy0); } -#line 6972 "sql.c" +#line 7040 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 360: /* cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ #line 649 "sql.y" { pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy985, yymsp[-9].minor.yy985, &yymsp[-6].minor.yy305, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy56, yymsp[-1].minor.yy444, &yymsp[0].minor.yy305, yymsp[-10].minor.yy985); } -#line 6978 "sql.c" +#line 7046 "sql.c" break; case 361: /* cmd ::= DROP FUNCTION exists_opt function_name */ #line 650 "sql.y" { pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy985, &yymsp[0].minor.yy305); } -#line 6983 "sql.c" +#line 7051 "sql.c" break; case 366: /* language_opt ::= */ case 405: /* on_vgroup_id ::= */ yytestcase(yyruleno==405); #line 664 "sql.y" { yymsp[1].minor.yy305 = nil_token; } -#line 6989 "sql.c" +#line 7057 "sql.c" break; case 367: /* language_opt ::= LANGUAGE NK_STRING */ case 406: /* on_vgroup_id ::= ON NK_INTEGER */ yytestcase(yyruleno==406); #line 665 "sql.y" { yymsp[-1].minor.yy305 = yymsp[0].minor.yy0; } -#line 6995 "sql.c" +#line 7063 "sql.c" break; case 370: /* cmd ::= CREATE or_replace_opt VIEW full_view_name AS query_or_subquery */ #line 674 "sql.y" { pCxt->pRootNode = createCreateViewStmt(pCxt, yymsp[-4].minor.yy985, yymsp[-2].minor.yy1000, &yymsp[-1].minor.yy0, yymsp[0].minor.yy1000); } -#line 7000 "sql.c" +#line 7068 "sql.c" break; case 371: /* cmd ::= DROP VIEW exists_opt full_view_name */ #line 675 "sql.y" { pCxt->pRootNode = createDropViewStmt(pCxt, yymsp[-1].minor.yy985, yymsp[0].minor.yy1000); } -#line 7005 "sql.c" +#line 7073 "sql.c" break; case 372: /* full_view_name ::= view_name */ #line 677 "sql.y" { yylhsminor.yy1000 = createViewNode(pCxt, NULL, &yymsp[0].minor.yy305); } -#line 7010 "sql.c" +#line 7078 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; case 373: /* full_view_name ::= db_name NK_DOT view_name */ #line 678 "sql.y" { yylhsminor.yy1000 = createViewNode(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy305); } -#line 7016 "sql.c" +#line 7084 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 374: /* cmd ::= CREATE STREAM not_exists_opt stream_name stream_options INTO full_table_name col_list_opt tag_def_or_ref_opt subtable_opt AS query_or_subquery */ #line 683 "sql.y" { pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy985, &yymsp[-8].minor.yy305, yymsp[-5].minor.yy1000, yymsp[-7].minor.yy1000, yymsp[-3].minor.yy72, yymsp[-2].minor.yy1000, yymsp[0].minor.yy1000, yymsp[-4].minor.yy72); } -#line 7022 "sql.c" +#line 7090 "sql.c" break; case 375: /* cmd ::= DROP STREAM exists_opt stream_name */ #line 684 "sql.y" { pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy985, &yymsp[0].minor.yy305); } -#line 7027 "sql.c" +#line 7095 "sql.c" break; case 376: /* cmd ::= PAUSE STREAM exists_opt stream_name */ #line 685 "sql.y" { pCxt->pRootNode = createPauseStreamStmt(pCxt, yymsp[-1].minor.yy985, &yymsp[0].minor.yy305); } -#line 7032 "sql.c" +#line 7100 "sql.c" break; case 377: /* cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ #line 686 "sql.y" { pCxt->pRootNode = createResumeStreamStmt(pCxt, yymsp[-2].minor.yy985, yymsp[-1].minor.yy985, &yymsp[0].minor.yy305); } -#line 7037 "sql.c" +#line 7105 "sql.c" break; case 384: /* stream_options ::= stream_options TRIGGER AT_ONCE */ case 385: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==385); #line 700 "sql.y" { yylhsminor.yy1000 = setStreamOptions(pCxt, yymsp[-2].minor.yy1000, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } -#line 7043 "sql.c" +#line 7111 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 386: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ #line 702 "sql.y" { yylhsminor.yy1000 = setStreamOptions(pCxt, yymsp[-3].minor.yy1000, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000)); } -#line 7049 "sql.c" +#line 7117 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; case 387: /* stream_options ::= stream_options WATERMARK duration_literal */ #line 703 "sql.y" { yylhsminor.yy1000 = setStreamOptions(pCxt, yymsp[-2].minor.yy1000, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000)); } -#line 7055 "sql.c" +#line 7123 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 388: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ #line 704 "sql.y" { yylhsminor.yy1000 = setStreamOptions(pCxt, yymsp[-3].minor.yy1000, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } -#line 7061 "sql.c" +#line 7129 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; case 389: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ #line 705 "sql.y" { yylhsminor.yy1000 = setStreamOptions(pCxt, yymsp[-2].minor.yy1000, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } -#line 7067 "sql.c" +#line 7135 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 390: /* stream_options ::= stream_options DELETE_MARK duration_literal */ #line 706 "sql.y" { yylhsminor.yy1000 = setStreamOptions(pCxt, yymsp[-2].minor.yy1000, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000)); } -#line 7073 "sql.c" +#line 7141 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; case 391: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ #line 707 "sql.y" { yylhsminor.yy1000 = setStreamOptions(pCxt, yymsp[-3].minor.yy1000, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } -#line 7079 "sql.c" +#line 7147 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; case 393: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 619: /* sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ yytestcase(yyruleno==619); - case 643: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==643); + case 639: /* sliding_opt ::= SLIDING NK_LP interval_sliding_duration_literal NK_RP */ yytestcase(yyruleno==639); + case 663: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==663); #line 710 "sql.y" { yymsp[-3].minor.yy1000 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000); } -#line 7087 "sql.c" +#line 7155 "sql.c" break; case 396: /* cmd ::= KILL CONNECTION NK_INTEGER */ #line 718 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } -#line 7092 "sql.c" +#line 7160 "sql.c" break; case 397: /* cmd ::= KILL QUERY NK_STRING */ #line 719 "sql.y" { pCxt->pRootNode = createKillQueryStmt(pCxt, &yymsp[0].minor.yy0); } -#line 7097 "sql.c" +#line 7165 "sql.c" break; case 398: /* cmd ::= KILL TRANSACTION NK_INTEGER */ #line 720 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_TRANSACTION_STMT, &yymsp[0].minor.yy0); } -#line 7102 "sql.c" +#line 7170 "sql.c" break; case 399: /* cmd ::= KILL COMPACT NK_INTEGER */ #line 721 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_COMPACT_STMT, &yymsp[0].minor.yy0); } -#line 7107 "sql.c" +#line 7175 "sql.c" break; case 400: /* cmd ::= BALANCE VGROUP */ #line 724 "sql.y" { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } -#line 7112 "sql.c" +#line 7180 "sql.c" break; case 401: /* cmd ::= BALANCE VGROUP LEADER on_vgroup_id */ #line 725 "sql.y" { pCxt->pRootNode = createBalanceVgroupLeaderStmt(pCxt, &yymsp[0].minor.yy305); } -#line 7117 "sql.c" +#line 7185 "sql.c" break; case 402: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ #line 726 "sql.y" { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } -#line 7122 "sql.c" +#line 7190 "sql.c" break; case 403: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ #line 727 "sql.y" { pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy72); } -#line 7127 "sql.c" +#line 7195 "sql.c" break; case 404: /* cmd ::= SPLIT VGROUP NK_INTEGER */ #line 728 "sql.y" { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } -#line 7132 "sql.c" +#line 7200 "sql.c" break; case 407: /* dnode_list ::= DNODE NK_INTEGER */ #line 737 "sql.y" { yymsp[-1].minor.yy72 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } -#line 7137 "sql.c" +#line 7205 "sql.c" break; case 409: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ #line 744 "sql.y" { pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } -#line 7142 "sql.c" +#line 7210 "sql.c" break; case 412: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ #line 753 "sql.y" { yymsp[-6].minor.yy1000 = createInsertStmt(pCxt, yymsp[-4].minor.yy1000, yymsp[-2].minor.yy72, yymsp[0].minor.yy1000); } -#line 7147 "sql.c" +#line 7215 "sql.c" break; case 413: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ #line 754 "sql.y" { yymsp[-3].minor.yy1000 = createInsertStmt(pCxt, yymsp[-1].minor.yy1000, NULL, yymsp[0].minor.yy1000); } -#line 7152 "sql.c" +#line 7220 "sql.c" break; case 414: /* tags_literal ::= NK_INTEGER */ - case 420: /* tags_literal ::= NK_BIN */ yytestcase(yyruleno==420); - case 423: /* tags_literal ::= NK_HEX */ yytestcase(yyruleno==423); + case 426: /* tags_literal ::= NK_BIN */ yytestcase(yyruleno==426); + case 435: /* tags_literal ::= NK_HEX */ yytestcase(yyruleno==435); #line 757 "sql.y" { yylhsminor.yy1000 = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0, NULL); } -#line 7159 "sql.c" +#line 7227 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 415: /* tags_literal ::= NK_PLUS NK_INTEGER */ - case 416: /* tags_literal ::= NK_MINUS NK_INTEGER */ yytestcase(yyruleno==416); - case 421: /* tags_literal ::= NK_PLUS NK_BIN */ yytestcase(yyruleno==421); - case 422: /* tags_literal ::= NK_MINUS NK_BIN */ yytestcase(yyruleno==422); - case 424: /* tags_literal ::= NK_PLUS NK_HEX */ yytestcase(yyruleno==424); - case 425: /* tags_literal ::= NK_MINUS NK_HEX */ yytestcase(yyruleno==425); + case 415: /* tags_literal ::= NK_INTEGER NK_PLUS duration_literal */ + case 416: /* tags_literal ::= NK_INTEGER NK_MINUS duration_literal */ yytestcase(yyruleno==416); + case 427: /* tags_literal ::= NK_BIN NK_PLUS duration_literal */ yytestcase(yyruleno==427); + case 428: /* tags_literal ::= NK_BIN NK_MINUS duration_literal */ yytestcase(yyruleno==428); + case 436: /* tags_literal ::= NK_HEX NK_PLUS duration_literal */ yytestcase(yyruleno==436); + case 437: /* tags_literal ::= NK_HEX NK_MINUS duration_literal */ yytestcase(yyruleno==437); + case 445: /* tags_literal ::= NK_STRING NK_PLUS duration_literal */ yytestcase(yyruleno==445); + case 446: /* tags_literal ::= NK_STRING NK_MINUS duration_literal */ yytestcase(yyruleno==446); #line 758 "sql.y" +{ + SToken l = yymsp[-2].minor.yy0; + SToken r = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); + l.n = (r.z + r.n) - l.z; + yylhsminor.yy1000 = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, yymsp[0].minor.yy1000); + } +#line 7245 "sql.c" + yymsp[-2].minor.yy1000 = yylhsminor.yy1000; + break; + case 417: /* tags_literal ::= NK_PLUS NK_INTEGER */ + case 420: /* tags_literal ::= NK_MINUS NK_INTEGER */ yytestcase(yyruleno==420); + case 429: /* tags_literal ::= NK_PLUS NK_BIN */ yytestcase(yyruleno==429); + case 432: /* tags_literal ::= NK_MINUS NK_BIN */ yytestcase(yyruleno==432); + case 438: /* tags_literal ::= NK_PLUS NK_HEX */ yytestcase(yyruleno==438); + case 441: /* tags_literal ::= NK_MINUS NK_HEX */ yytestcase(yyruleno==441); +#line 770 "sql.y" { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy1000 = createRawValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &t, NULL); } -#line 7174 "sql.c" +#line 7260 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 417: /* tags_literal ::= NK_FLOAT */ -#line 768 "sql.y" + case 418: /* tags_literal ::= NK_PLUS NK_INTEGER NK_PLUS duration_literal */ + case 419: /* tags_literal ::= NK_PLUS NK_INTEGER NK_MINUS duration_literal */ yytestcase(yyruleno==419); + case 421: /* tags_literal ::= NK_MINUS NK_INTEGER NK_PLUS duration_literal */ yytestcase(yyruleno==421); + case 422: /* tags_literal ::= NK_MINUS NK_INTEGER NK_MINUS duration_literal */ yytestcase(yyruleno==422); + case 430: /* tags_literal ::= NK_PLUS NK_BIN NK_PLUS duration_literal */ yytestcase(yyruleno==430); + case 431: /* tags_literal ::= NK_PLUS NK_BIN NK_MINUS duration_literal */ yytestcase(yyruleno==431); + case 433: /* tags_literal ::= NK_MINUS NK_BIN NK_PLUS duration_literal */ yytestcase(yyruleno==433); + case 434: /* tags_literal ::= NK_MINUS NK_BIN NK_MINUS duration_literal */ yytestcase(yyruleno==434); + case 439: /* tags_literal ::= NK_PLUS NK_HEX NK_PLUS duration_literal */ yytestcase(yyruleno==439); + case 440: /* tags_literal ::= NK_PLUS NK_HEX NK_MINUS duration_literal */ yytestcase(yyruleno==440); + case 442: /* tags_literal ::= NK_MINUS NK_HEX NK_PLUS duration_literal */ yytestcase(yyruleno==442); + case 443: /* tags_literal ::= NK_MINUS NK_HEX NK_MINUS duration_literal */ yytestcase(yyruleno==443); +#line 775 "sql.y" +{ + SToken l = yymsp[-3].minor.yy0; + SToken r = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); + l.n = (r.z + r.n) - l.z; + yylhsminor.yy1000 = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, NULL, yymsp[0].minor.yy1000); + } +#line 7282 "sql.c" + yymsp[-3].minor.yy1000 = yylhsminor.yy1000; + break; + case 423: /* tags_literal ::= NK_FLOAT */ +#line 804 "sql.y" { yylhsminor.yy1000 = createRawValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0, NULL); } -#line 7180 "sql.c" +#line 7288 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 418: /* tags_literal ::= NK_PLUS NK_FLOAT */ - case 419: /* tags_literal ::= NK_MINUS NK_FLOAT */ yytestcase(yyruleno==419); -#line 769 "sql.y" + case 424: /* tags_literal ::= NK_PLUS NK_FLOAT */ + case 425: /* tags_literal ::= NK_MINUS NK_FLOAT */ yytestcase(yyruleno==425); +#line 805 "sql.y" { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy1000 = createRawValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t, NULL); } -#line 7191 "sql.c" +#line 7299 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 426: /* tags_literal ::= NK_STRING */ -#line 803 "sql.y" + case 444: /* tags_literal ::= NK_STRING */ +#line 911 "sql.y" { yylhsminor.yy1000 = createRawValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0, NULL); } -#line 7197 "sql.c" +#line 7305 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 427: /* tags_literal ::= NK_BOOL */ -#line 804 "sql.y" + case 447: /* tags_literal ::= NK_BOOL */ +#line 924 "sql.y" { yylhsminor.yy1000 = createRawValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0, NULL); } -#line 7203 "sql.c" +#line 7311 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 428: /* tags_literal ::= NULL */ -#line 805 "sql.y" + case 448: /* tags_literal ::= NULL */ +#line 925 "sql.y" { yylhsminor.yy1000 = createRawValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0, NULL); } -#line 7209 "sql.c" +#line 7317 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 429: /* tags_literal ::= literal_func */ -#line 807 "sql.y" + case 449: /* tags_literal ::= literal_func */ +#line 927 "sql.y" { yylhsminor.yy1000 = createRawValueNode(pCxt, TSDB_DATA_TYPE_BINARY, NULL, yymsp[0].minor.yy1000); } -#line 7215 "sql.c" +#line 7323 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 430: /* tags_literal ::= literal_func NK_PLUS duration_literal */ - case 431: /* tags_literal ::= literal_func NK_MINUS duration_literal */ yytestcase(yyruleno==431); -#line 808 "sql.y" + case 450: /* tags_literal ::= literal_func NK_PLUS duration_literal */ + case 451: /* tags_literal ::= literal_func NK_MINUS duration_literal */ yytestcase(yyruleno==451); +#line 928 "sql.y" { SToken l = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken r = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); l.n = (r.z + r.n) - l.z; yylhsminor.yy1000 = createRawValueNodeExt(pCxt, TSDB_DATA_TYPE_BINARY, &l, yymsp[-2].minor.yy1000, yymsp[0].minor.yy1000); } -#line 7227 "sql.c" +#line 7335 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 434: /* literal ::= NK_INTEGER */ -#line 827 "sql.y" + case 454: /* literal ::= NK_INTEGER */ +#line 947 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } -#line 7233 "sql.c" +#line 7341 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 435: /* literal ::= NK_FLOAT */ -#line 828 "sql.y" + case 455: /* literal ::= NK_FLOAT */ +#line 948 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } -#line 7239 "sql.c" +#line 7347 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 436: /* literal ::= NK_STRING */ -#line 829 "sql.y" + case 456: /* literal ::= NK_STRING */ +#line 949 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } -#line 7245 "sql.c" +#line 7353 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 437: /* literal ::= NK_BOOL */ -#line 830 "sql.y" + case 457: /* literal ::= NK_BOOL */ +#line 950 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } -#line 7251 "sql.c" +#line 7359 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 438: /* literal ::= TIMESTAMP NK_STRING */ -#line 831 "sql.y" + case 458: /* literal ::= TIMESTAMP NK_STRING */ +#line 951 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } -#line 7257 "sql.c" +#line 7365 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 439: /* literal ::= duration_literal */ - case 449: /* signed_literal ::= signed */ yytestcase(yyruleno==449); - case 472: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==472); - case 473: /* expression ::= literal */ yytestcase(yyruleno==473); - case 475: /* expression ::= column_reference */ yytestcase(yyruleno==475); - case 476: /* expression ::= function_expression */ yytestcase(yyruleno==476); - case 477: /* expression ::= case_when_expression */ yytestcase(yyruleno==477); - case 510: /* function_expression ::= literal_func */ yytestcase(yyruleno==510); - case 560: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==560); - case 564: /* boolean_primary ::= predicate */ yytestcase(yyruleno==564); - case 566: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==566); - case 567: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==567); - case 570: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==570); - case 572: /* table_reference ::= table_primary */ yytestcase(yyruleno==572); - case 573: /* table_reference ::= joined_table */ yytestcase(yyruleno==573); - case 577: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==577); - case 645: /* query_simple ::= query_specification */ yytestcase(yyruleno==645); - case 646: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==646); - case 649: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==649); - case 651: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==651); -#line 832 "sql.y" + case 459: /* literal ::= duration_literal */ + case 469: /* signed_literal ::= signed */ yytestcase(yyruleno==469); + case 492: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==492); + case 493: /* expression ::= literal */ yytestcase(yyruleno==493); + case 495: /* expression ::= column_reference */ yytestcase(yyruleno==495); + case 496: /* expression ::= function_expression */ yytestcase(yyruleno==496); + case 497: /* expression ::= case_when_expression */ yytestcase(yyruleno==497); + case 530: /* function_expression ::= literal_func */ yytestcase(yyruleno==530); + case 580: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==580); + case 584: /* boolean_primary ::= predicate */ yytestcase(yyruleno==584); + case 586: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==586); + case 587: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==587); + case 590: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==590); + case 592: /* table_reference ::= table_primary */ yytestcase(yyruleno==592); + case 593: /* table_reference ::= joined_table */ yytestcase(yyruleno==593); + case 597: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==597); + case 665: /* query_simple ::= query_specification */ yytestcase(yyruleno==665); + case 666: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==666); + case 669: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==669); + case 671: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==671); +#line 952 "sql.y" { yylhsminor.yy1000 = yymsp[0].minor.yy1000; } -#line 7282 "sql.c" +#line 7390 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 440: /* literal ::= NULL */ -#line 833 "sql.y" + case 460: /* literal ::= NULL */ +#line 953 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } -#line 7288 "sql.c" +#line 7396 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 441: /* literal ::= NK_QUESTION */ -#line 834 "sql.y" + case 461: /* literal ::= NK_QUESTION */ +#line 954 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 7294 "sql.c" +#line 7402 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 442: /* duration_literal ::= NK_VARIABLE */ - case 620: /* interval_sliding_duration_literal ::= NK_VARIABLE */ yytestcase(yyruleno==620); - case 621: /* interval_sliding_duration_literal ::= NK_STRING */ yytestcase(yyruleno==621); - case 622: /* interval_sliding_duration_literal ::= NK_INTEGER */ yytestcase(yyruleno==622); -#line 836 "sql.y" + case 462: /* duration_literal ::= NK_VARIABLE */ + case 640: /* interval_sliding_duration_literal ::= NK_VARIABLE */ yytestcase(yyruleno==640); + case 641: /* interval_sliding_duration_literal ::= NK_STRING */ yytestcase(yyruleno==641); + case 642: /* interval_sliding_duration_literal ::= NK_INTEGER */ yytestcase(yyruleno==642); +#line 956 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } -#line 7303 "sql.c" +#line 7411 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 443: /* signed ::= NK_INTEGER */ -#line 838 "sql.y" + case 463: /* signed ::= NK_INTEGER */ +#line 958 "sql.y" { yylhsminor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } -#line 7309 "sql.c" +#line 7417 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 444: /* signed ::= NK_PLUS NK_INTEGER */ -#line 839 "sql.y" + case 464: /* signed ::= NK_PLUS NK_INTEGER */ +#line 959 "sql.y" { yymsp[-1].minor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } -#line 7315 "sql.c" +#line 7423 "sql.c" break; - case 445: /* signed ::= NK_MINUS NK_INTEGER */ -#line 840 "sql.y" + case 465: /* signed ::= NK_MINUS NK_INTEGER */ +#line 960 "sql.y" { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); } -#line 7324 "sql.c" +#line 7432 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 446: /* signed ::= NK_FLOAT */ -#line 845 "sql.y" + case 466: /* signed ::= NK_FLOAT */ +#line 965 "sql.y" { yylhsminor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } -#line 7330 "sql.c" +#line 7438 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 447: /* signed ::= NK_PLUS NK_FLOAT */ -#line 846 "sql.y" + case 467: /* signed ::= NK_PLUS NK_FLOAT */ +#line 966 "sql.y" { yymsp[-1].minor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } -#line 7336 "sql.c" +#line 7444 "sql.c" break; - case 448: /* signed ::= NK_MINUS NK_FLOAT */ -#line 847 "sql.y" + case 468: /* signed ::= NK_MINUS NK_FLOAT */ +#line 967 "sql.y" { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; yylhsminor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); } -#line 7345 "sql.c" +#line 7453 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 450: /* signed_literal ::= NK_STRING */ -#line 854 "sql.y" + case 470: /* signed_literal ::= NK_STRING */ +#line 974 "sql.y" { yylhsminor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } -#line 7351 "sql.c" +#line 7459 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 451: /* signed_literal ::= NK_BOOL */ -#line 855 "sql.y" + case 471: /* signed_literal ::= NK_BOOL */ +#line 975 "sql.y" { yylhsminor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } -#line 7357 "sql.c" +#line 7465 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 452: /* signed_literal ::= TIMESTAMP NK_STRING */ -#line 856 "sql.y" + case 472: /* signed_literal ::= TIMESTAMP NK_STRING */ +#line 976 "sql.y" { yymsp[-1].minor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } -#line 7363 "sql.c" +#line 7471 "sql.c" break; - case 453: /* signed_literal ::= duration_literal */ - case 455: /* signed_literal ::= literal_func */ yytestcase(yyruleno==455); - case 531: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==531); - case 597: /* select_item ::= common_expression */ yytestcase(yyruleno==597); - case 607: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==607); - case 650: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==650); - case 652: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==652); - case 665: /* search_condition ::= common_expression */ yytestcase(yyruleno==665); -#line 857 "sql.y" + case 473: /* signed_literal ::= duration_literal */ + case 475: /* signed_literal ::= literal_func */ yytestcase(yyruleno==475); + case 551: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==551); + case 617: /* select_item ::= common_expression */ yytestcase(yyruleno==617); + case 627: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==627); + case 670: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==670); + case 672: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==672); + case 685: /* search_condition ::= common_expression */ yytestcase(yyruleno==685); +#line 977 "sql.y" { yylhsminor.yy1000 = releaseRawExprNode(pCxt, yymsp[0].minor.yy1000); } -#line 7375 "sql.c" +#line 7483 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 454: /* signed_literal ::= NULL */ -#line 858 "sql.y" + case 474: /* signed_literal ::= NULL */ +#line 978 "sql.y" { yylhsminor.yy1000 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } -#line 7381 "sql.c" +#line 7489 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 456: /* signed_literal ::= NK_QUESTION */ -#line 860 "sql.y" + case 476: /* signed_literal ::= NK_QUESTION */ +#line 980 "sql.y" { yylhsminor.yy1000 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } -#line 7387 "sql.c" +#line 7495 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 474: /* expression ::= pseudo_column */ -#line 922 "sql.y" + case 494: /* expression ::= pseudo_column */ +#line 1042 "sql.y" { yylhsminor.yy1000 = yymsp[0].minor.yy1000; setRawExprNodeIsPseudoColumn(pCxt, yylhsminor.yy1000, true); } -#line 7393 "sql.c" +#line 7501 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 478: /* expression ::= NK_LP expression NK_RP */ - case 565: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==565); - case 664: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==664); -#line 926 "sql.y" + case 498: /* expression ::= NK_LP expression NK_RP */ + case 585: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==585); + case 684: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==684); +#line 1046 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000)); } -#line 7401 "sql.c" +#line 7509 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 479: /* expression ::= NK_PLUS expr_or_subquery */ -#line 927 "sql.y" + case 499: /* expression ::= NK_PLUS expr_or_subquery */ +#line 1047 "sql.y" { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000)); } -#line 7410 "sql.c" +#line 7518 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 480: /* expression ::= NK_MINUS expr_or_subquery */ -#line 931 "sql.y" + case 500: /* expression ::= NK_MINUS expr_or_subquery */ +#line 1051 "sql.y" { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000), NULL)); } -#line 7419 "sql.c" +#line 7527 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 481: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ -#line 935 "sql.y" + case 501: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ +#line 1055 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7429 "sql.c" +#line 7537 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 482: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ -#line 940 "sql.y" + case 502: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ +#line 1060 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7439 "sql.c" +#line 7547 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 483: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ -#line 945 "sql.y" + case 503: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ +#line 1065 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7449 "sql.c" +#line 7557 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 484: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ -#line 950 "sql.y" + case 504: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ +#line 1070 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7459 "sql.c" +#line 7567 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 485: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ -#line 955 "sql.y" + case 505: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ +#line 1075 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7469 "sql.c" +#line 7577 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 486: /* expression ::= column_reference NK_ARROW NK_STRING */ -#line 960 "sql.y" + case 506: /* expression ::= column_reference NK_ARROW NK_STRING */ +#line 1080 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } -#line 7478 "sql.c" +#line 7586 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 487: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ -#line 964 "sql.y" + case 507: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ +#line 1084 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7488 "sql.c" +#line 7596 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 488: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ -#line 969 "sql.y" + case 508: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ +#line 1089 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7498 "sql.c" +#line 7606 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 491: /* column_reference ::= column_name */ -#line 980 "sql.y" + case 511: /* column_reference ::= column_name */ +#line 1100 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy305, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy305)); } -#line 7504 "sql.c" +#line 7612 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 492: /* column_reference ::= table_name NK_DOT column_name */ -#line 981 "sql.y" + case 512: /* column_reference ::= table_name NK_DOT column_name */ +#line 1101 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy305, createColumnNode(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy305)); } -#line 7510 "sql.c" +#line 7618 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 493: /* column_reference ::= NK_ALIAS */ -#line 982 "sql.y" + case 513: /* column_reference ::= NK_ALIAS */ +#line 1102 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } -#line 7516 "sql.c" +#line 7624 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 494: /* column_reference ::= table_name NK_DOT NK_ALIAS */ -#line 983 "sql.y" + case 514: /* column_reference ::= table_name NK_DOT NK_ALIAS */ +#line 1103 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy0, createColumnNode(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy0)); } -#line 7522 "sql.c" +#line 7630 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 495: /* pseudo_column ::= ROWTS */ - case 496: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==496); - case 498: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==498); - case 499: /* pseudo_column ::= QEND */ yytestcase(yyruleno==499); - case 500: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==500); - case 501: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==501); - case 502: /* pseudo_column ::= WEND */ yytestcase(yyruleno==502); - case 503: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==503); - case 504: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==504); - case 505: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==505); - case 506: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==506); - case 512: /* literal_func ::= NOW */ yytestcase(yyruleno==512); - case 513: /* literal_func ::= TODAY */ yytestcase(yyruleno==513); -#line 985 "sql.y" + case 515: /* pseudo_column ::= ROWTS */ + case 516: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==516); + case 518: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==518); + case 519: /* pseudo_column ::= QEND */ yytestcase(yyruleno==519); + case 520: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==520); + case 521: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==521); + case 522: /* pseudo_column ::= WEND */ yytestcase(yyruleno==522); + case 523: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==523); + case 524: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==524); + case 525: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==525); + case 526: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==526); + case 532: /* literal_func ::= NOW */ yytestcase(yyruleno==532); + case 533: /* literal_func ::= TODAY */ yytestcase(yyruleno==533); +#line 1105 "sql.y" { yylhsminor.yy1000 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } -#line 7540 "sql.c" +#line 7648 "sql.c" yymsp[0].minor.yy1000 = yylhsminor.yy1000; break; - case 497: /* pseudo_column ::= table_name NK_DOT TBNAME */ -#line 987 "sql.y" + case 517: /* pseudo_column ::= table_name NK_DOT TBNAME */ +#line 1107 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy305)))); } -#line 7546 "sql.c" +#line 7654 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 507: /* function_expression ::= function_name NK_LP expression_list NK_RP */ - case 508: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==508); -#line 998 "sql.y" + case 527: /* function_expression ::= function_name NK_LP expression_list NK_RP */ + case 528: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==528); +#line 1118 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy305, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy305, yymsp[-1].minor.yy72)); } -#line 7553 "sql.c" +#line 7661 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; - case 509: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ -#line 1001 "sql.y" + case 529: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ +#line 1121 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), yymsp[-1].minor.yy56)); } -#line 7559 "sql.c" +#line 7667 "sql.c" yymsp[-5].minor.yy1000 = yylhsminor.yy1000; break; - case 511: /* literal_func ::= noarg_func NK_LP NK_RP */ -#line 1004 "sql.y" + case 531: /* literal_func ::= noarg_func NK_LP NK_RP */ +#line 1124 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy305, NULL)); } -#line 7565 "sql.c" +#line 7673 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 527: /* star_func_para_list ::= NK_STAR */ -#line 1029 "sql.y" + case 547: /* star_func_para_list ::= NK_STAR */ +#line 1149 "sql.y" { yylhsminor.yy72 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } -#line 7571 "sql.c" +#line 7679 "sql.c" yymsp[0].minor.yy72 = yylhsminor.yy72; break; - case 532: /* star_func_para ::= table_name NK_DOT NK_STAR */ - case 600: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==600); -#line 1038 "sql.y" + case 552: /* star_func_para ::= table_name NK_DOT NK_STAR */ + case 620: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==620); +#line 1158 "sql.y" { yylhsminor.yy1000 = createColumnNode(pCxt, &yymsp[-2].minor.yy305, &yymsp[0].minor.yy0); } -#line 7578 "sql.c" +#line 7686 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 533: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ -#line 1041 "sql.y" + case 553: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ +#line 1161 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy72, yymsp[-1].minor.yy1000)); } -#line 7584 "sql.c" +#line 7692 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; - case 534: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ -#line 1043 "sql.y" + case 554: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ +#line 1163 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), yymsp[-2].minor.yy72, yymsp[-1].minor.yy1000)); } -#line 7590 "sql.c" +#line 7698 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; - case 537: /* when_then_expr ::= WHEN common_expression THEN common_expression */ -#line 1050 "sql.y" + case 557: /* when_then_expr ::= WHEN common_expression THEN common_expression */ +#line 1170 "sql.y" { yymsp[-3].minor.yy1000 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000)); } -#line 7596 "sql.c" +#line 7704 "sql.c" break; - case 539: /* case_when_else_opt ::= ELSE common_expression */ -#line 1053 "sql.y" + case 559: /* case_when_else_opt ::= ELSE common_expression */ +#line 1173 "sql.y" { yymsp[-1].minor.yy1000 = releaseRawExprNode(pCxt, yymsp[0].minor.yy1000); } -#line 7601 "sql.c" +#line 7709 "sql.c" break; - case 540: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ - case 545: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==545); -#line 1056 "sql.y" + case 560: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ + case 565: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==565); +#line 1176 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy324, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7611 "sql.c" +#line 7719 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 541: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ -#line 1063 "sql.y" + case 561: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ +#line 1183 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy1000), releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7621 "sql.c" +#line 7729 "sql.c" yymsp[-4].minor.yy1000 = yylhsminor.yy1000; break; - case 542: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ -#line 1069 "sql.y" + case 562: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ +#line 1189 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy1000), releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7631 "sql.c" +#line 7739 "sql.c" yymsp[-5].minor.yy1000 = yylhsminor.yy1000; break; - case 543: /* predicate ::= expr_or_subquery IS NULL */ -#line 1074 "sql.y" + case 563: /* predicate ::= expr_or_subquery IS NULL */ +#line 1194 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), NULL)); } -#line 7640 "sql.c" +#line 7748 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 544: /* predicate ::= expr_or_subquery IS NOT NULL */ -#line 1078 "sql.y" + case 564: /* predicate ::= expr_or_subquery IS NOT NULL */ +#line 1198 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), NULL)); } -#line 7649 "sql.c" +#line 7757 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; - case 546: /* compare_op ::= NK_LT */ -#line 1090 "sql.y" + case 566: /* compare_op ::= NK_LT */ +#line 1210 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_LOWER_THAN; } -#line 7655 "sql.c" +#line 7763 "sql.c" break; - case 547: /* compare_op ::= NK_GT */ -#line 1091 "sql.y" + case 567: /* compare_op ::= NK_GT */ +#line 1211 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_GREATER_THAN; } -#line 7660 "sql.c" +#line 7768 "sql.c" break; - case 548: /* compare_op ::= NK_LE */ -#line 1092 "sql.y" + case 568: /* compare_op ::= NK_LE */ +#line 1212 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_LOWER_EQUAL; } -#line 7665 "sql.c" +#line 7773 "sql.c" break; - case 549: /* compare_op ::= NK_GE */ -#line 1093 "sql.y" + case 569: /* compare_op ::= NK_GE */ +#line 1213 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_GREATER_EQUAL; } -#line 7670 "sql.c" +#line 7778 "sql.c" break; - case 550: /* compare_op ::= NK_NE */ -#line 1094 "sql.y" + case 570: /* compare_op ::= NK_NE */ +#line 1214 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_NOT_EQUAL; } -#line 7675 "sql.c" +#line 7783 "sql.c" break; - case 551: /* compare_op ::= NK_EQ */ -#line 1095 "sql.y" + case 571: /* compare_op ::= NK_EQ */ +#line 1215 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_EQUAL; } -#line 7680 "sql.c" +#line 7788 "sql.c" break; - case 552: /* compare_op ::= LIKE */ -#line 1096 "sql.y" + case 572: /* compare_op ::= LIKE */ +#line 1216 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_LIKE; } -#line 7685 "sql.c" +#line 7793 "sql.c" break; - case 553: /* compare_op ::= NOT LIKE */ -#line 1097 "sql.y" + case 573: /* compare_op ::= NOT LIKE */ +#line 1217 "sql.y" { yymsp[-1].minor.yy324 = OP_TYPE_NOT_LIKE; } -#line 7690 "sql.c" +#line 7798 "sql.c" break; - case 554: /* compare_op ::= MATCH */ -#line 1098 "sql.y" + case 574: /* compare_op ::= MATCH */ +#line 1218 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_MATCH; } -#line 7695 "sql.c" +#line 7803 "sql.c" break; - case 555: /* compare_op ::= NMATCH */ -#line 1099 "sql.y" + case 575: /* compare_op ::= NMATCH */ +#line 1219 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_NMATCH; } -#line 7700 "sql.c" +#line 7808 "sql.c" break; - case 556: /* compare_op ::= CONTAINS */ -#line 1100 "sql.y" + case 576: /* compare_op ::= CONTAINS */ +#line 1220 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_JSON_CONTAINS; } -#line 7705 "sql.c" +#line 7813 "sql.c" break; - case 557: /* in_op ::= IN */ -#line 1104 "sql.y" + case 577: /* in_op ::= IN */ +#line 1224 "sql.y" { yymsp[0].minor.yy324 = OP_TYPE_IN; } -#line 7710 "sql.c" +#line 7818 "sql.c" break; - case 558: /* in_op ::= NOT IN */ -#line 1105 "sql.y" + case 578: /* in_op ::= NOT IN */ +#line 1225 "sql.y" { yymsp[-1].minor.yy324 = OP_TYPE_NOT_IN; } -#line 7715 "sql.c" +#line 7823 "sql.c" break; - case 559: /* in_predicate_value ::= NK_LP literal_list NK_RP */ -#line 1107 "sql.y" + case 579: /* in_predicate_value ::= NK_LP literal_list NK_RP */ +#line 1227 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy72)); } -#line 7720 "sql.c" +#line 7828 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 561: /* boolean_value_expression ::= NOT boolean_primary */ -#line 1111 "sql.y" + case 581: /* boolean_value_expression ::= NOT boolean_primary */ +#line 1231 "sql.y" { SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000), NULL)); } -#line 7729 "sql.c" +#line 7837 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 562: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ -#line 1116 "sql.y" + case 582: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ +#line 1236 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7739 "sql.c" +#line 7847 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 563: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ -#line 1122 "sql.y" + case 583: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ +#line 1242 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy1000); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy1000); yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7749 "sql.c" +#line 7857 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 571: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ -#line 1140 "sql.y" + case 591: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ +#line 1260 "sql.y" { yylhsminor.yy1000 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy1000, yymsp[0].minor.yy1000, NULL); } -#line 7755 "sql.c" +#line 7863 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 574: /* table_primary ::= table_name alias_opt */ -#line 1146 "sql.y" + case 594: /* table_primary ::= table_name alias_opt */ +#line 1266 "sql.y" { yylhsminor.yy1000 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy305, &yymsp[0].minor.yy305); } -#line 7761 "sql.c" +#line 7869 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 575: /* table_primary ::= db_name NK_DOT table_name alias_opt */ -#line 1147 "sql.y" + case 595: /* table_primary ::= db_name NK_DOT table_name alias_opt */ +#line 1267 "sql.y" { yylhsminor.yy1000 = createRealTableNode(pCxt, &yymsp[-3].minor.yy305, &yymsp[-1].minor.yy305, &yymsp[0].minor.yy305); } -#line 7767 "sql.c" +#line 7875 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; - case 576: /* table_primary ::= subquery alias_opt */ -#line 1148 "sql.y" + case 596: /* table_primary ::= subquery alias_opt */ +#line 1268 "sql.y" { yylhsminor.yy1000 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000), &yymsp[0].minor.yy305); } -#line 7773 "sql.c" +#line 7881 "sql.c" yymsp[-1].minor.yy1000 = yylhsminor.yy1000; break; - case 578: /* alias_opt ::= */ -#line 1153 "sql.y" + case 598: /* alias_opt ::= */ +#line 1273 "sql.y" { yymsp[1].minor.yy305 = nil_token; } -#line 7779 "sql.c" +#line 7887 "sql.c" break; - case 580: /* alias_opt ::= AS table_alias */ -#line 1155 "sql.y" + case 600: /* alias_opt ::= AS table_alias */ +#line 1275 "sql.y" { yymsp[-1].minor.yy305 = yymsp[0].minor.yy305; } -#line 7784 "sql.c" +#line 7892 "sql.c" break; - case 581: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - case 582: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==582); -#line 1157 "sql.y" + case 601: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + case 602: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==602); +#line 1277 "sql.y" { yymsp[-2].minor.yy1000 = yymsp[-1].minor.yy1000; } -#line 7790 "sql.c" +#line 7898 "sql.c" break; - case 583: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ -#line 1162 "sql.y" + case 603: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ +#line 1282 "sql.y" { yylhsminor.yy1000 = createJoinTableNode(pCxt, yymsp[-4].minor.yy828, yymsp[-5].minor.yy1000, yymsp[-2].minor.yy1000, yymsp[0].minor.yy1000); } -#line 7795 "sql.c" +#line 7903 "sql.c" yymsp[-5].minor.yy1000 = yylhsminor.yy1000; break; - case 584: /* join_type ::= */ -#line 1166 "sql.y" + case 604: /* join_type ::= */ +#line 1286 "sql.y" { yymsp[1].minor.yy828 = JOIN_TYPE_INNER; } -#line 7801 "sql.c" +#line 7909 "sql.c" break; - case 585: /* join_type ::= INNER */ -#line 1167 "sql.y" + case 605: /* join_type ::= INNER */ +#line 1287 "sql.y" { yymsp[0].minor.yy828 = JOIN_TYPE_INNER; } -#line 7806 "sql.c" +#line 7914 "sql.c" break; - case 586: /* query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_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 */ -#line 1173 "sql.y" + case 606: /* query_specification ::= SELECT hint_list set_quantifier_opt tag_mode_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 */ +#line 1293 "sql.y" { yymsp[-13].minor.yy1000 = createSelectStmt(pCxt, yymsp[-11].minor.yy985, yymsp[-9].minor.yy72, yymsp[-8].minor.yy1000, yymsp[-12].minor.yy72); yymsp[-13].minor.yy1000 = setSelectStmtTagMode(pCxt, yymsp[-13].minor.yy1000, yymsp[-10].minor.yy985); @@ -7819,262 +7927,262 @@ static YYACTIONTYPE yy_reduce( yymsp[-13].minor.yy1000 = addEveryClause(pCxt, yymsp[-13].minor.yy1000, yymsp[-4].minor.yy1000); yymsp[-13].minor.yy1000 = addFillClause(pCxt, yymsp[-13].minor.yy1000, yymsp[-3].minor.yy1000); } -#line 7822 "sql.c" - break; - case 587: /* hint_list ::= */ -#line 1188 "sql.y" -{ yymsp[1].minor.yy72 = createHintNodeList(pCxt, NULL); } -#line 7827 "sql.c" - break; - case 588: /* hint_list ::= NK_HINT */ -#line 1189 "sql.y" -{ yylhsminor.yy72 = createHintNodeList(pCxt, &yymsp[0].minor.yy0); } -#line 7832 "sql.c" - yymsp[0].minor.yy72 = yylhsminor.yy72; - break; - case 593: /* set_quantifier_opt ::= ALL */ -#line 1200 "sql.y" -{ yymsp[0].minor.yy985 = false; } -#line 7838 "sql.c" - break; - case 596: /* select_item ::= NK_STAR */ -#line 1207 "sql.y" -{ yylhsminor.yy1000 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } -#line 7843 "sql.c" - yymsp[0].minor.yy1000 = yylhsminor.yy1000; - break; - case 598: /* select_item ::= common_expression column_alias */ - case 608: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==608); -#line 1209 "sql.y" -{ yylhsminor.yy1000 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000), &yymsp[0].minor.yy305); } -#line 7850 "sql.c" - yymsp[-1].minor.yy1000 = yylhsminor.yy1000; - break; - case 599: /* select_item ::= common_expression AS column_alias */ - case 609: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==609); -#line 1210 "sql.y" -{ yylhsminor.yy1000 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), &yymsp[0].minor.yy305); } -#line 7857 "sql.c" - yymsp[-2].minor.yy1000 = yylhsminor.yy1000; - break; - case 604: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 634: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==634); - case 654: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==654); -#line 1219 "sql.y" -{ yymsp[-2].minor.yy72 = yymsp[0].minor.yy72; } -#line 7865 "sql.c" - break; - case 611: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ -#line 1232 "sql.y" -{ yymsp[-5].minor.yy1000 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000)); } -#line 7870 "sql.c" - break; - case 612: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ -#line 1233 "sql.y" -{ yymsp[-3].minor.yy1000 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000)); } -#line 7875 "sql.c" - break; - case 613: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ -#line 1235 "sql.y" -{ yymsp[-5].minor.yy1000 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), NULL, yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } -#line 7880 "sql.c" - break; - case 614: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ -#line 1239 "sql.y" -{ yymsp[-7].minor.yy1000 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy1000), releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } -#line 7885 "sql.c" - break; - case 615: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ -#line 1241 "sql.y" -{ yymsp[-6].minor.yy1000 = createEventWindowNode(pCxt, yymsp[-3].minor.yy1000, yymsp[0].minor.yy1000); } -#line 7890 "sql.c" - break; - case 616: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ -#line 1243 "sql.y" -{ yymsp[-3].minor.yy1000 = createCountWindowNode(pCxt, &yymsp[-1].minor.yy0, &yymsp[-1].minor.yy0); } -#line 7895 "sql.c" - break; - case 617: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ -#line 1245 "sql.y" -{ yymsp[-5].minor.yy1000 = createCountWindowNode(pCxt, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0); } -#line 7900 "sql.c" - break; - case 624: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ -#line 1255 "sql.y" -{ yymsp[-3].minor.yy1000 = createFillNode(pCxt, yymsp[-1].minor.yy926, NULL); } -#line 7905 "sql.c" - break; - case 625: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ -#line 1256 "sql.y" -{ yymsp[-5].minor.yy1000 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy72)); } -#line 7910 "sql.c" - break; - case 626: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ -#line 1257 "sql.y" -{ yymsp[-5].minor.yy1000 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy72)); } -#line 7915 "sql.c" - break; - case 627: /* fill_mode ::= NONE */ -#line 1261 "sql.y" -{ yymsp[0].minor.yy926 = FILL_MODE_NONE; } -#line 7920 "sql.c" - break; - case 628: /* fill_mode ::= PREV */ -#line 1262 "sql.y" -{ yymsp[0].minor.yy926 = FILL_MODE_PREV; } -#line 7925 "sql.c" - break; - case 629: /* fill_mode ::= NULL */ -#line 1263 "sql.y" -{ yymsp[0].minor.yy926 = FILL_MODE_NULL; } #line 7930 "sql.c" break; - case 630: /* fill_mode ::= NULL_F */ -#line 1264 "sql.y" -{ yymsp[0].minor.yy926 = FILL_MODE_NULL_F; } + case 607: /* hint_list ::= */ +#line 1308 "sql.y" +{ yymsp[1].minor.yy72 = createHintNodeList(pCxt, NULL); } #line 7935 "sql.c" break; - case 631: /* fill_mode ::= LINEAR */ -#line 1265 "sql.y" -{ yymsp[0].minor.yy926 = FILL_MODE_LINEAR; } + case 608: /* hint_list ::= NK_HINT */ +#line 1309 "sql.y" +{ yylhsminor.yy72 = createHintNodeList(pCxt, &yymsp[0].minor.yy0); } #line 7940 "sql.c" - break; - case 632: /* fill_mode ::= NEXT */ -#line 1266 "sql.y" -{ yymsp[0].minor.yy926 = FILL_MODE_NEXT; } -#line 7945 "sql.c" - break; - case 635: /* group_by_list ::= expr_or_subquery */ -#line 1275 "sql.y" -{ yylhsminor.yy72 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7950 "sql.c" yymsp[0].minor.yy72 = yylhsminor.yy72; break; - case 636: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ -#line 1276 "sql.y" + case 613: /* set_quantifier_opt ::= ALL */ +#line 1320 "sql.y" +{ yymsp[0].minor.yy985 = false; } +#line 7946 "sql.c" + break; + case 616: /* select_item ::= NK_STAR */ +#line 1327 "sql.y" +{ yylhsminor.yy1000 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } +#line 7951 "sql.c" + yymsp[0].minor.yy1000 = yylhsminor.yy1000; + break; + case 618: /* select_item ::= common_expression column_alias */ + case 628: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==628); +#line 1329 "sql.y" +{ yylhsminor.yy1000 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000), &yymsp[0].minor.yy305); } +#line 7958 "sql.c" + yymsp[-1].minor.yy1000 = yylhsminor.yy1000; + break; + case 619: /* select_item ::= common_expression AS column_alias */ + case 629: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==629); +#line 1330 "sql.y" +{ yylhsminor.yy1000 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), &yymsp[0].minor.yy305); } +#line 7965 "sql.c" + yymsp[-2].minor.yy1000 = yylhsminor.yy1000; + break; + case 624: /* partition_by_clause_opt ::= PARTITION BY partition_list */ + case 654: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==654); + case 674: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==674); +#line 1339 "sql.y" +{ yymsp[-2].minor.yy72 = yymsp[0].minor.yy72; } +#line 7973 "sql.c" + break; + case 631: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA interval_sliding_duration_literal NK_RP */ +#line 1352 "sql.y" +{ yymsp[-5].minor.yy1000 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000)); } +#line 7978 "sql.c" + break; + case 632: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ +#line 1353 "sql.y" +{ yymsp[-3].minor.yy1000 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000)); } +#line 7983 "sql.c" + break; + case 633: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ +#line 1355 "sql.y" +{ yymsp[-5].minor.yy1000 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), NULL, yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } +#line 7988 "sql.c" + break; + case 634: /* twindow_clause_opt ::= INTERVAL NK_LP interval_sliding_duration_literal NK_COMMA interval_sliding_duration_literal NK_RP sliding_opt fill_opt */ +#line 1359 "sql.y" +{ yymsp[-7].minor.yy1000 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy1000), releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), yymsp[-1].minor.yy1000, yymsp[0].minor.yy1000); } +#line 7993 "sql.c" + break; + case 635: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ +#line 1361 "sql.y" +{ yymsp[-6].minor.yy1000 = createEventWindowNode(pCxt, yymsp[-3].minor.yy1000, yymsp[0].minor.yy1000); } +#line 7998 "sql.c" + break; + case 636: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_RP */ +#line 1363 "sql.y" +{ yymsp[-3].minor.yy1000 = createCountWindowNode(pCxt, &yymsp[-1].minor.yy0, &yymsp[-1].minor.yy0); } +#line 8003 "sql.c" + break; + case 637: /* twindow_clause_opt ::= COUNT_WINDOW NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ +#line 1365 "sql.y" +{ yymsp[-5].minor.yy1000 = createCountWindowNode(pCxt, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0); } +#line 8008 "sql.c" + break; + case 644: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ +#line 1375 "sql.y" +{ yymsp[-3].minor.yy1000 = createFillNode(pCxt, yymsp[-1].minor.yy926, NULL); } +#line 8013 "sql.c" + break; + case 645: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ +#line 1376 "sql.y" +{ yymsp[-5].minor.yy1000 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy72)); } +#line 8018 "sql.c" + break; + case 646: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ +#line 1377 "sql.y" +{ yymsp[-5].minor.yy1000 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy72)); } +#line 8023 "sql.c" + break; + case 647: /* fill_mode ::= NONE */ +#line 1381 "sql.y" +{ yymsp[0].minor.yy926 = FILL_MODE_NONE; } +#line 8028 "sql.c" + break; + case 648: /* fill_mode ::= PREV */ +#line 1382 "sql.y" +{ yymsp[0].minor.yy926 = FILL_MODE_PREV; } +#line 8033 "sql.c" + break; + case 649: /* fill_mode ::= NULL */ +#line 1383 "sql.y" +{ yymsp[0].minor.yy926 = FILL_MODE_NULL; } +#line 8038 "sql.c" + break; + case 650: /* fill_mode ::= NULL_F */ +#line 1384 "sql.y" +{ yymsp[0].minor.yy926 = FILL_MODE_NULL_F; } +#line 8043 "sql.c" + break; + case 651: /* fill_mode ::= LINEAR */ +#line 1385 "sql.y" +{ yymsp[0].minor.yy926 = FILL_MODE_LINEAR; } +#line 8048 "sql.c" + break; + case 652: /* fill_mode ::= NEXT */ +#line 1386 "sql.y" +{ yymsp[0].minor.yy926 = FILL_MODE_NEXT; } +#line 8053 "sql.c" + break; + case 655: /* group_by_list ::= expr_or_subquery */ +#line 1395 "sql.y" +{ yylhsminor.yy72 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } +#line 8058 "sql.c" + yymsp[0].minor.yy72 = yylhsminor.yy72; + break; + case 656: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ +#line 1396 "sql.y" { yylhsminor.yy72 = addNodeToList(pCxt, yymsp[-2].minor.yy72, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy1000))); } -#line 7956 "sql.c" +#line 8064 "sql.c" yymsp[-2].minor.yy72 = yylhsminor.yy72; break; - case 640: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ -#line 1283 "sql.y" + case 660: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ +#line 1403 "sql.y" { yymsp[-5].minor.yy1000 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy1000), releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000)); } -#line 7962 "sql.c" +#line 8070 "sql.c" break; - case 641: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ -#line 1285 "sql.y" + case 661: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ +#line 1405 "sql.y" { yymsp[-3].minor.yy1000 = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy1000)); } -#line 7967 "sql.c" +#line 8075 "sql.c" break; - case 644: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ -#line 1292 "sql.y" + case 664: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ +#line 1412 "sql.y" { yylhsminor.yy1000 = addOrderByClause(pCxt, yymsp[-3].minor.yy1000, yymsp[-2].minor.yy72); yylhsminor.yy1000 = addSlimitClause(pCxt, yylhsminor.yy1000, yymsp[-1].minor.yy1000); yylhsminor.yy1000 = addLimitClause(pCxt, yylhsminor.yy1000, yymsp[0].minor.yy1000); } -#line 7976 "sql.c" +#line 8084 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; - case 647: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ -#line 1302 "sql.y" + case 667: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ +#line 1422 "sql.y" { yylhsminor.yy1000 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy1000, yymsp[0].minor.yy1000); } -#line 7982 "sql.c" +#line 8090 "sql.c" yymsp[-3].minor.yy1000 = yylhsminor.yy1000; break; - case 648: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ -#line 1304 "sql.y" + case 668: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ +#line 1424 "sql.y" { yylhsminor.yy1000 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy1000, yymsp[0].minor.yy1000); } -#line 7988 "sql.c" +#line 8096 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 656: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ - case 660: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==660); -#line 1318 "sql.y" + case 676: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ + case 680: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==680); +#line 1438 "sql.y" { yymsp[-1].minor.yy1000 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } -#line 7995 "sql.c" +#line 8103 "sql.c" break; - case 657: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 661: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==661); -#line 1319 "sql.y" + case 677: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 681: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==681); +#line 1439 "sql.y" { yymsp[-3].minor.yy1000 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } -#line 8001 "sql.c" +#line 8109 "sql.c" break; - case 658: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 662: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==662); -#line 1320 "sql.y" + case 678: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 682: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==682); +#line 1440 "sql.y" { yymsp[-3].minor.yy1000 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } -#line 8007 "sql.c" +#line 8115 "sql.c" break; - case 663: /* subquery ::= NK_LP query_expression NK_RP */ -#line 1328 "sql.y" + case 683: /* subquery ::= NK_LP query_expression NK_RP */ +#line 1448 "sql.y" { yylhsminor.yy1000 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy1000); } -#line 8012 "sql.c" +#line 8120 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 668: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ -#line 1342 "sql.y" + case 688: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ +#line 1462 "sql.y" { yylhsminor.yy1000 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy1000), yymsp[-1].minor.yy130, yymsp[0].minor.yy681); } -#line 8018 "sql.c" +#line 8126 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 669: /* ordering_specification_opt ::= */ -#line 1346 "sql.y" + case 689: /* ordering_specification_opt ::= */ +#line 1466 "sql.y" { yymsp[1].minor.yy130 = ORDER_ASC; } -#line 8024 "sql.c" +#line 8132 "sql.c" break; - case 670: /* ordering_specification_opt ::= ASC */ -#line 1347 "sql.y" + case 690: /* ordering_specification_opt ::= ASC */ +#line 1467 "sql.y" { yymsp[0].minor.yy130 = ORDER_ASC; } -#line 8029 "sql.c" +#line 8137 "sql.c" break; - case 671: /* ordering_specification_opt ::= DESC */ -#line 1348 "sql.y" + case 691: /* ordering_specification_opt ::= DESC */ +#line 1468 "sql.y" { yymsp[0].minor.yy130 = ORDER_DESC; } -#line 8034 "sql.c" +#line 8142 "sql.c" break; - case 672: /* null_ordering_opt ::= */ -#line 1352 "sql.y" + case 692: /* null_ordering_opt ::= */ +#line 1472 "sql.y" { yymsp[1].minor.yy681 = NULL_ORDER_DEFAULT; } -#line 8039 "sql.c" +#line 8147 "sql.c" break; - case 673: /* null_ordering_opt ::= NULLS FIRST */ -#line 1353 "sql.y" + case 693: /* null_ordering_opt ::= NULLS FIRST */ +#line 1473 "sql.y" { yymsp[-1].minor.yy681 = NULL_ORDER_FIRST; } -#line 8044 "sql.c" +#line 8152 "sql.c" break; - case 674: /* null_ordering_opt ::= NULLS LAST */ -#line 1354 "sql.y" + case 694: /* null_ordering_opt ::= NULLS LAST */ +#line 1474 "sql.y" { yymsp[-1].minor.yy681 = NULL_ORDER_LAST; } -#line 8049 "sql.c" +#line 8157 "sql.c" break; - case 675: /* column_options ::= */ -#line 1360 "sql.y" + case 695: /* column_options ::= */ +#line 1480 "sql.y" { yymsp[1].minor.yy1000 = createDefaultColumnOptions(pCxt); } -#line 8054 "sql.c" +#line 8162 "sql.c" break; - case 676: /* column_options ::= column_options PRIMARY KEY */ -#line 1361 "sql.y" + case 696: /* column_options ::= column_options PRIMARY KEY */ +#line 1481 "sql.y" { yylhsminor.yy1000 = setColumnOptions(pCxt, yymsp[-2].minor.yy1000, COLUMN_OPTION_PRIMARYKEY, NULL); } -#line 8059 "sql.c" +#line 8167 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 677: /* column_options ::= column_options ENCODE NK_STRING */ -#line 1362 "sql.y" + case 697: /* column_options ::= column_options ENCODE NK_STRING */ +#line 1482 "sql.y" { yylhsminor.yy1000 = setColumnOptions(pCxt, yymsp[-2].minor.yy1000, COLUMN_OPTION_ENCODE, &yymsp[0].minor.yy0); } -#line 8065 "sql.c" +#line 8173 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 678: /* column_options ::= column_options COMPRESS NK_STRING */ -#line 1363 "sql.y" + case 698: /* column_options ::= column_options COMPRESS NK_STRING */ +#line 1483 "sql.y" { yylhsminor.yy1000 = setColumnOptions(pCxt, yymsp[-2].minor.yy1000, COLUMN_OPTION_COMPRESS, &yymsp[0].minor.yy0); } -#line 8071 "sql.c" +#line 8179 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; - case 679: /* column_options ::= column_options LEVEL NK_STRING */ -#line 1364 "sql.y" + case 699: /* column_options ::= column_options LEVEL NK_STRING */ +#line 1484 "sql.y" { yylhsminor.yy1000 = setColumnOptions(pCxt, yymsp[-2].minor.yy1000, COLUMN_OPTION_LEVEL, &yymsp[0].minor.yy0); } -#line 8077 "sql.c" +#line 8185 "sql.c" yymsp[-2].minor.yy1000 = yylhsminor.yy1000; break; default: @@ -8148,7 +8256,7 @@ static void yy_syntax_error( } else if (TSDB_CODE_PAR_DB_NOT_SPECIFIED == pCxt->errCode && TK_NK_FLOAT == TOKEN.type) { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_SYNTAX_ERROR, TOKEN.z); } -#line 8151 "sql.c" +#line 8259 "sql.c" /************ End %syntax_error code ******************************************/ ParseARG_STORE /* Suppress warning about unused %extra_argument variable */ ParseCTX_STORE diff --git a/source/libs/stream/src/streamDispatch.c b/source/libs/stream/src/streamDispatch.c index 0af664f1e1..9542009d72 100644 --- a/source/libs/stream/src/streamDispatch.c +++ b/source/libs/stream/src/streamDispatch.c @@ -580,12 +580,15 @@ int32_t streamSearchAndAddBlock(SStreamTask* pTask, SStreamDispatchReq* pReqs, S } else { char ctbName[TSDB_TABLE_FNAME_LEN] = {0}; if (pDataBlock->info.parTbName[0]) { - if(pTask->ver >= SSTREAM_TASK_SUBTABLE_CHANGED_VER && - pTask->subtableWithoutMd5 != 1 && + if(pTask->subtableWithoutMd5 != 1 && !isAutoTableName(pDataBlock->info.parTbName) && !alreadyAddGroupId(pDataBlock->info.parTbName) && groupId != 0){ - buildCtbNameAddGroupId(pDataBlock->info.parTbName, groupId); + if(pTask->ver == SSTREAM_TASK_SUBTABLE_CHANGED_VER){ + buildCtbNameAddGroupId(NULL, pDataBlock->info.parTbName, groupId); + }else if(pTask->ver > SSTREAM_TASK_SUBTABLE_CHANGED_VER) { + buildCtbNameAddGroupId(pTask->outputInfo.shuffleDispatcher.stbFullName, pDataBlock->info.parTbName, groupId); + } } } else { buildCtbNameByGroupIdImpl(pTask->outputInfo.shuffleDispatcher.stbFullName, groupId, pDataBlock->info.parTbName); diff --git a/source/libs/stream/src/streamMeta.c b/source/libs/stream/src/streamMeta.c index c24763c024..aae3594905 100644 --- a/source/libs/stream/src/streamMeta.c +++ b/source/libs/stream/src/streamMeta.c @@ -542,7 +542,6 @@ int32_t streamMetaSaveTask(SStreamMeta* pMeta, SStreamTask* pTask) { void* buf = NULL; int32_t len; int32_t code; - pTask->ver = SSTREAM_TASK_VER; tEncodeSize(tEncodeStreamTask, pTask, len, code); if (code < 0) { return -1; @@ -552,6 +551,9 @@ int32_t streamMetaSaveTask(SStreamMeta* pMeta, SStreamTask* pTask) { return -1; } + if (pTask->ver < SSTREAM_TASK_SUBTABLE_CHANGED_VER){ + pTask->ver = SSTREAM_TASK_VER; + } SEncoder encoder = {0}; tEncoderInit(&encoder, buf, len); tEncodeStreamTask(&encoder, pTask); diff --git a/tests/script/tsim/parser/columnValue_bool.sim b/tests/script/tsim/parser/columnValue_bool.sim index db89db4256..97d074a6f9 100644 --- a/tests/script/tsim/parser/columnValue_bool.sim +++ b/tests/script/tsim/parser/columnValue_bool.sim @@ -936,6 +936,9 @@ sql_error alter table st_bool_i1 set tag tagname="123abc" sql alter table st_bool_i2 set tag tagname="123" sql_error alter table st_bool_i3 set tag tagname=abc sql_error alter table st_bool_i4 set tag tagname="abc" +sql_error alter table st_bool_i4 set tag tagname=now +sql_error alter table st_bool_i4 set tag tagname=now()+1d +sql_error alter table st_bool_i4 set tag tagname=1+1d sql_error alter table st_bool_i5 set tag tagname=" " sql_error alter table st_bool_i6 set tag tagname='' diff --git a/tests/script/tsim/parser/columnValue_int.sim b/tests/script/tsim/parser/columnValue_int.sim index f03a576ae3..f022c33363 100644 --- a/tests/script/tsim/parser/columnValue_int.sim +++ b/tests/script/tsim/parser/columnValue_int.sim @@ -913,6 +913,8 @@ sql_error alter table st_int_e19 set tag tagname=123abc sql_error alter table st_int_e20 set tag tagname="123abc" sql_error alter table st_int_e22 set tag tagname=abc sql_error alter table st_int_e23 set tag tagname="abc" +sql_error alter table st_int_e25 set tag tagname=1+1d +sql_error alter table st_int_e25 set tag tagname="1"+1d sql_error alter table st_int_e24 set tag tagname=" " sql_error alter table st_int_e25 set tag tagname='' sql alter table st_int_e26_1 set tag tagname='123' diff --git a/tests/script/tsim/parser/columnValue_timestamp.sim b/tests/script/tsim/parser/columnValue_timestamp.sim index 1f457dbd7c..4334230a05 100644 --- a/tests/script/tsim/parser/columnValue_timestamp.sim +++ b/tests/script/tsim/parser/columnValue_timestamp.sim @@ -132,6 +132,77 @@ sql show tags from st_timestamp_22 if $data05 != -1 then return -1 endi +sql create table st_timestamp_23 using mt_timestamp tags (1+ 1d ) +sql show tags from st_timestamp_23 +if $data05 != 86400001 then + return -1 +endi +sql create table st_timestamp_24 using mt_timestamp tags (-0 + 1d) +sql show tags from st_timestamp_24 +if $data05 != 86400000 then + return -1 +endi +sql create table st_timestamp_25 using mt_timestamp tags ("-0" -1s) +sql show tags from st_timestamp_25 +if $data05 != -1000 then + return -1 +endi +sql create table st_timestamp_26 using mt_timestamp tags (0b01 -1a) +sql show tags from st_timestamp_26 +if $data05 != 0 then + return -1 +endi +sql create table st_timestamp_27 using mt_timestamp tags (0b01 -1s) +sql show tags from st_timestamp_27 +if $data05 != -999 then + return -1 +endi +sql create table st_timestamp_28 using mt_timestamp tags ("0x01" +1u) +sql show tags from st_timestamp_28 +if $data05 != 1 then + return -1 +endi +sql create table st_timestamp_29 using mt_timestamp tags (0x01 +1b) +sql show tags from st_timestamp_29 +if $data05 != 1 then + return -1 +endi +sql create table st_timestamp_30 using mt_timestamp tags (-0b00 -0a) +sql show tags from st_timestamp_30 +if $data05 != 0 then + return -1 +endi +sql create table st_timestamp_31 using mt_timestamp tags ("-0x00" +1u) +sql show tags from st_timestamp_31 +if $data05 != 0 then + return -1 +endi +sql create table st_timestamp_32 using mt_timestamp tags (-0x00 +1b) +sql show tags from st_timestamp_32 +if $data05 != 0 then + return -1 +endi +sql create table st_timestamp_33 using mt_timestamp tags (now +1b) +sql show tags from st_timestamp_33 +if $data05 < 1711883186000 then + return -1 +endi +sql create table st_timestamp_34 using mt_timestamp tags ("now()" +1b) +sql show tags from st_timestamp_34 +if $data05 < 1711883186000 then + return -1 +endi +sql create table st_timestamp_35 using mt_timestamp tags (today() +1d) +sql show tags from st_timestamp_35 +if $data05 < 1711883186000 then + return -1 +endi +sql create table st_timestamp_36 using mt_timestamp tags ("today()" +1d) +sql show tags from st_timestamp_36 +if $data05 < 1711883186000 then + return -1 +endi + ## case 01: insert values for test column values sql insert into st_timestamp_0 values(now,NULL) @@ -249,6 +320,76 @@ sql select ts, cast(c as bigint) from st_timestamp_22 if $data01 != -1 then return -1 endi +sql insert into st_timestamp_23 values(now,1+ 1d ) +sql select ts, cast(c as bigint) from st_timestamp_23 +if $data01 != 86400001 then + return -1 +endi +sql insert into st_timestamp_24 values(now,-0 + 1d) +sql select ts, cast(c as bigint) from st_timestamp_24 +if $data01 != 86400000 then + return -1 +endi +sql insert into st_timestamp_25 values(now,"-0" -1s) +sql select ts, cast(c as bigint) from st_timestamp_25 +if $data01 != -1000 then + return -1 +endi +sql insert into st_timestamp_26 values(now,0b01 -1a) +sql select ts, cast(c as bigint) from st_timestamp_26 +if $data01 != 0 then + return -1 +endi +sql insert into st_timestamp_27 values(now,+0b01 -1s) +sql select ts, cast(c as bigint) from st_timestamp_27 +if $data01 != -999 then + return -1 +endi +sql insert into st_timestamp_28 values(now,"+0x01" +1u) +sql select ts, cast(c as bigint) from st_timestamp_28 +if $data01 != 1 then + return -1 +endi +sql insert into st_timestamp_29 values(now,0x01 +1b) +sql select ts, cast(c as bigint) from st_timestamp_29 +if $data01 != 1 then + return -1 +endi +sql insert into st_timestamp_30 values(now,-0b00 -0a) +sql show tags from st_timestamp_30 +if $data05 != 0 then + return -1 +endi +sql insert into st_timestamp_31 values(now,"-0x00" +1u) +sql show tags from st_timestamp_31 +if $data05 != 0 then + return -1 +endi +sql insert into st_timestamp_32 values (now,-0x00 +1b) +sql show tags from st_timestamp_32 +if $data05 != 0 then + return -1 +endi +sql insert into st_timestamp_33 values(now,now +1b) +sql select ts, cast(c as bigint) from st_timestamp_33 +if $data01 < 1711883186000 then + return -1 +endi +sql insert into st_timestamp_34 values(now,"now()" +1b) +sql select ts, cast(c as bigint) from st_timestamp_34 +if $data01 < 1711883186000 then + return -1 +endi +sql insert into st_timestamp_35 values(now,today() +1d) +sql select ts, cast(c as bigint) from st_timestamp_35 +if $data01 < 1711883186000 then + return -1 +endi +sql insert into st_timestamp_36 values(now,"today()" +1d) +sql select ts, cast(c as bigint) from st_timestamp_36 +if $data01 < 1711883186000 then + return -1 +endi ## case 02: dynamic create table for test tag values sql insert into st_timestamp_100 using mt_timestamp tags(NULL) values(now, NULL) @@ -450,6 +591,136 @@ sql select ts, cast(c as bigint) from st_timestamp_1022 if $data01 != -1 then return -1 endi +sql insert into st_timestamp_1023 using mt_timestamp tags(+1+1d) values(now,+1+ 1d ) +sql show tags from st_timestamp_1023 +if $data05 != 86400001 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1023 +if $data01 != 86400001 then + return -1 +endi +sql insert into st_timestamp_1024 using mt_timestamp tags(-0+1d) values(now,-0 + 1d) +sql show tags from st_timestamp_1024 +if $data05 != 86400000 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1024 +if $data01 != 86400000 then + return -1 +endi +sql insert into st_timestamp_1025 using mt_timestamp tags("-0" -1s) values(now,"-0" -1s) +sql show tags from st_timestamp_1025 +if $data05 != -1000 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1025 +if $data01 != -1000 then + return -1 +endi +sql insert into st_timestamp_1026 using mt_timestamp tags(+0b01-1a) values(now,+0b01 -1a) +sql show tags from st_timestamp_1026 +if $data05 != 0 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1026 +if $data01 != 0 then + return -1 +endi +sql insert into st_timestamp_1027 using mt_timestamp tags(0b01-1s) values(now,0b01 -1s) +sql show tags from st_timestamp_1027 +if $data05 != -999 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1027 +if $data01 != -999 then + return -1 +endi +sql insert into st_timestamp_1028 using mt_timestamp tags("0x01" + 1u) values(now,"0x01" +1u) +sql show tags from st_timestamp_1028 +if $data05 != 1 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1028 +if $data01 != 1 then + return -1 +endi +sql insert into st_timestamp_1029 using mt_timestamp tags(+0x01 +1b) values(now,+0x01 +1b) +sql show tags from st_timestamp_1029 +if $data05 != 1 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1029 +if $data01 != 1 then + return -1 +endi +sql insert into st_timestamp_1030 using mt_timestamp tags (-0b00 -0a) values(now,-0b00 -0a) +sql show tags from st_timestamp_1030 +if $data05 != 0 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1030 +if $data01 != 0 then + return -1 +endi +sql insert into st_timestamp_1031 using mt_timestamp tags ("-0x00" +1u) values(now,"-0x00" +1u) +sql show tags from st_timestamp_1031 +if $data05 != 0 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1031 +if $data01 != 0 then + return -1 +endi +sql insert into st_timestamp_1032 using mt_timestamp tags (-0x00 +1b) values(now,-0x00 +1b) +sql show tags from st_timestamp_1032 +if $data05 != 0 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1032 +if $data01 != 0 then + return -1 +endi +sql insert into st_timestamp_1033 using mt_timestamp tags(now+1b) values(now,now +1b) +sql show tags from st_timestamp_1033 +if $data05 < 1711883186000 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1033 +if $data01 < 1711883186000 then + return -1 +endi +sql insert into st_timestamp_1034 using mt_timestamp tags("now" +1b) values(now,"now()" +1b) +sql show tags from st_timestamp_1034 +if $data05 < 1711883186000 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1034 +if $data01 < 1711883186000 then + return -1 +endi +sql insert into st_timestamp_1035 using mt_timestamp tags(today() + 1d) values(now,today() +1d) +sql show tags from st_timestamp_1035 +if $data05 < 1711883186000 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1035 +if $data01 < 1711883186000 then + return -1 +endi +sql insert into st_timestamp_1036 using mt_timestamp tags("today" +1d) values(now,"today()" +1d) +sql show tags from st_timestamp_1036 +if $data05 < 1711883186000 then + return -1 +endi +sql select ts, cast(c as bigint) from st_timestamp_1036 +if $data01 < 1711883186000 then + return -1 +endi + + + + ### case 03: alter tag values sql alter table st_timestamp_0 set tag tagname=NULL @@ -567,12 +838,85 @@ sql show tags from st_timestamp_22 if $data05 != -1 then return -1 endi +sql alter table st_timestamp_23 set tag tagname=1+ 1d +sql show tags from st_timestamp_23 +if $data05 != 86400001 then + return -1 +endi +sql alter table st_timestamp_24 set tag tagname=-0 + 1d +sql show tags from st_timestamp_24 +if $data05 != 86400000 then + return -1 +endi +sql alter table st_timestamp_25 set tag tagname="-0" -1s +sql show tags from st_timestamp_25 +if $data05 != -1000 then + return -1 +endi +sql alter table st_timestamp_26 set tag tagname=+0b01 -1a +sql show tags from st_timestamp_26 +if $data05 != 0 then + return -1 +endi +sql alter table st_timestamp_27 set tag tagname=0b01 -1s +sql show tags from st_timestamp_27 +if $data05 != -999 then + return -1 +endi +sql alter table st_timestamp_28 set tag tagname="0x01" +1u +sql show tags from st_timestamp_28 +if $data05 != 1 then + return -1 +endi +sql alter table st_timestamp_29 set tag tagname=0x01 +1b +sql show tags from st_timestamp_29 +if $data05 != 1 then + return -1 +endi +sql alter table st_timestamp_30 set tag tagname==-0b00 -0a +sql show tags from st_timestamp_30 +if $data05 != 0 then + return -1 +endi +sql alter table st_timestamp_31 set tag tagname="-0x00" +1u +sql show tags from st_timestamp_31 +if $data05 != 0 then + return -1 +endi +sql alter table st_timestamp_32 set tag tagname=-0x00 +1b +sql show tags from st_timestamp_32 +if $data05 != 0 then + return -1 +endi +sql alter table st_timestamp_33 set tag tagname=now +1b +sql show tags from st_timestamp_33 +if $data05 < 1711883186000 then + return -1 +endi +sql alter table st_timestamp_34 set tag tagname="now()" +1b +sql show tags from st_timestamp_34 +if $data05 < 1711883186000 then + return -1 +endi +sql alter table st_timestamp_35 set tag tagname=today( ) +1d +sql show tags from st_timestamp_35 +if $data05 < 1711883186000 then + return -1 +endi +sql alter table st_timestamp_36 set tag tagname="today()" +1d +sql show tags from st_timestamp_36 +if $data05 < 1711883186000 then + return -1 +endi ## case 04: illegal input sql_error create table st_timestamp_e0 using mt_timestamp tags (123abc) sql_error create table st_timestamp_e0 using mt_timestamp tags ("123abc") sql_error create table st_timestamp_e0 using mt_timestamp tags (abc) sql_error create table st_timestamp_e0 using mt_timestamp tags ("abc") +sql_error create table st_timestamp_e0 using mt_timestamp tags (now()+1d+1s) +sql_error create table st_timestamp_e0 using mt_timestamp tags (1+1y) +sql_error create table st_timestamp_e0 using mt_timestamp tags (0x01+1b+1a) sql_error create table st_timestamp_e0 using mt_timestamp tags (" ") sql_error create table st_timestamp_e0 using mt_timestamp tags ('') sql_error create table st_timestamp_104 using mt_timestamp tags ("-123.1") @@ -590,5 +934,7 @@ sql_error create table st_timestamp_115 using mt_timestamp tags (922337203685477 sql create table st_timestamp_116 using mt_timestamp tags (-9223372036854775808) sql_error create table st_timestamp_117 using mt_timestamp tags (-9223372036854775809) sql_error insert into st_timestamp_118 using mt_timestamp tags(9223372036854775807) values(9223372036854775807, 9223372036854775807) +sql_error insert into st_timestamp_119 using mt_timestamp tags(1+1s-1s) values(now, now) +sql_error insert into st_timestamp_120 using mt_timestamp tags(1-1s) values(now, now-1s+1d) system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/tsim/parser/columnValue_varbinary.sim b/tests/script/tsim/parser/columnValue_varbinary.sim index 1db1054646..eb437f7597 100644 --- a/tests/script/tsim/parser/columnValue_varbinary.sim +++ b/tests/script/tsim/parser/columnValue_varbinary.sim @@ -299,6 +299,8 @@ sql_error create table st_varbinary_1012 using mt_varbinary tags(tRue) sql_error create table st_varbinary_1013 using mt_varbinary tags(FalsE) sql_error create table st_varbinary_1014 using mt_varbinary tags(noW) sql_error create table st_varbinary_1015 using mt_varbinary tags(toDay) +sql_error create table st_varbinary_1016 using mt_varbinary tags(now()+1s) +sql_error create table st_varbinary_1017 using mt_varbinary tags(1+1s) sql_error insert into st_varbinary_106 using mt_varbinary tags(+0123) values(now, NULL); sql_error insert into st_varbinary_107 using mt_varbinary tags(-01.23) values(now, NULL); sql_error insert into st_varbinary_108 using mt_varbinary tags(+0x01) values(now, NULL); @@ -309,6 +311,8 @@ sql_error insert into st_varbinary_1012 using mt_varbinary tags(tRue) values(no sql_error insert into st_varbinary_1013 using mt_varbinary tags(FalsE) values(now, NULL); sql_error insert into st_varbinary_1014 using mt_varbinary tags(noW) values(now, NULL); sql_error insert into st_varbinary_1015 using mt_varbinary tags(toDay) values(now, NULL); +sql_error insert into st_varbinary_1016 using mt_varbinary tags(now()+1s) values(now, NULL); +sql_error insert into st_varbinary_1017 using mt_varbinary tags(1+1s) values(now, NULL); sql_error insert into st_varbinary_106 using mt_varbinary tags(NULL) values(now(), +0123) sql_error insert into st_varbinary_107 using mt_varbinary tags(NULL) values(now(), -01.23) sql_error insert into st_varbinary_108 using mt_varbinary tags(NULL) values(now(), +0x01) @@ -319,5 +323,7 @@ sql_error insert into st_varbinary_1012 using mt_varbinary tags(NULL) values(no sql_error insert into st_varbinary_1013 using mt_varbinary tags(NULL) values(now(), FalsE) sql_error insert into st_varbinary_1014 using mt_varbinary tags(NULL) values(now(), noW) sql_error insert into st_varbinary_1015 using mt_varbinary tags(NULL) values(now(), toDay) +sql_error insert into st_varbinary_1016 using mt_varbinary tags(NULL) values(now(), now()+1s) +sql_error insert into st_varbinary_1017 using mt_varbinary tags(NULL) values(now(), 1+1s) system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/tsim/parser/columnValue_varchar.sim b/tests/script/tsim/parser/columnValue_varchar.sim index 5edfe5ed24..b705f3069a 100644 --- a/tests/script/tsim/parser/columnValue_varchar.sim +++ b/tests/script/tsim/parser/columnValue_varchar.sim @@ -410,6 +410,17 @@ endi # case 04: illegal input +sql_error create table st_varchar_100 using mt_varchar tags(now+1d) +sql_error create table st_varchar_101 using mt_varchar tags(toDay+1d) +sql_error create table st_varchar_102 using mt_varchar tags(1+1b) +sql_error create table st_varchar_103 using mt_varchar tags(0x01+1d) +sql_error create table st_varchar_104 using mt_varchar tags(0b01+1s) +sql_error insert into st_varchar_1100 using mt_varchar tags('now') values(now(),now+1d) +sql_error insert into st_varchar_1101 using mt_varchar tags('now') values(now(),toDay+1d) +sql_error insert into st_varchar_1102 using mt_varchar tags('now') values(now(),1+1b) +sql_error insert into st_varchar_1103 using mt_varchar tags('now') values(now(),0x01+1d) +sql_error insert into st_varchar_1104 using mt_varchar tags('now') values(now(),0b01+1s) +sql_error alter table st_varchar_15 set tag tagname=now()+1d system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/system-test/8-stream/stream_basic.py b/tests/system-test/8-stream/stream_basic.py index 3ebc255114..5167423ea3 100644 --- a/tests/system-test/8-stream/stream_basic.py +++ b/tests/system-test/8-stream/stream_basic.py @@ -78,14 +78,36 @@ class TDTestCase: tdLog.info(cmd) os.system(cmd) + def case1(self): + + tdSql.execute(f'create database if not exists d1 vgroups 1') + tdSql.execute(f'use d1') + tdSql.execute(f'create table st(ts timestamp, i int) tags(t int)') + tdSql.execute(f'insert into t1 using st tags(1) values(now, 1) (now+1s, 2)') + tdSql.execute(f'insert into t2 using st tags(2) values(now, 1) (now+1s, 2)') + tdSql.execute(f'insert into t3 using st tags(3) values(now, 1) (now+1s, 2)') + + tdSql.execute("create stream stream1 fill_history 1 into sta subtable(concat('new-', tname)) AS SELECT " + "_wstart, count(*), avg(i) FROM st PARTITION BY tbname tname INTERVAL(1m)", show=True) + + tdSql.execute("create stream stream2 fill_history 1 into stb subtable(concat('new-', tname)) AS SELECT " + "_wstart, count(*), avg(i) FROM st PARTITION BY tbname tname INTERVAL(1m)", show=True) + + time.sleep(2) + tdSql.query("select * from sta") + tdSql.checkRows(3) + + tdSql.query("select * from stb") + tdSql.checkRows(3) # run def run(self): + self.case1() # gen data random.seed(int(time.time())) self.taosBenchmark(" -d db -t 2 -v 2 -n 1000000 -y") # create stream tdSql.execute("use db") - tdSql.execute("create stream stream1 fill_history 1 into sta as select count(*) as cnt from meters interval(10a);",show=True) + tdSql.execute("create stream stream3 fill_history 1 into sta as select count(*) as cnt from meters interval(10a);",show=True) sql = "select count(*) from sta" # loop wait max 60s to check count is ok tdLog.info("loop wait result ...") diff --git a/tests/system-test/buildJson.py b/tests/system-test/buildJson.py new file mode 100644 index 0000000000..6e9e9f83e1 --- /dev/null +++ b/tests/system-test/buildJson.py @@ -0,0 +1,243 @@ +# 写一段python代码,生成一个JSON串,json 串为数组,数组长度为10000,每个元素为包含4000个key-value对的JSON字符串,json 数组里每个元素里的4000个key不相同,元素之间使用相同的key,key值为英文单词,value 为int值,且value 的范围是[0, 256]。把json串紧凑形式写入文件,把json串存入parquet文件中,把json串写入avro文件中,把json串写入到postgre sql表中,表有两列第一列主int类型主键,第二列为json类型,数组的每个元素写入json类型里 +import csv +import json +import os +import random +import string +import time + +from faker import Faker +import pandas as pd +import pyarrow as pa +import pyarrow.parquet as pq +import fastavro +import psycopg2 +from psycopg2.extras import Json + + +def get_dir_size(start_path='.'): + total = 0 + for dirpath, dirs, files in os.walk(start_path): + for f in files: + fp = os.path.join(dirpath, f) + # 获取文件大小并累加到total上 + total += os.path.getsize(fp) + return total + + +def to_avro_record(obj): + return {key: value for key, value in obj.items()} + + +def generate_random_string(length): + return ''.join(random.choices(string.ascii_letters + string.digits, k=length)) + + +def generate_random_values(t): + if t == 0: + return random.randint(-255, 256) + elif t == 1: + return random.randint(-2100000000, 2100000000) + elif t == 2: + return random.uniform(-10000.0, 10000.0) + elif t == 3: + return generate_random_string(10) + elif t == 4: + return random.choice([True, False]) + + +def generate_json_object(key_set, value_set): + values = [generate_random_values(t) for t in value_set] + return dict(zip(key_set, values)) + + +def generate_json_array(keys, values, array_length): + return [generate_json_object(keys, values) for _ in range(array_length)] + + +def write_parquet_file(parquet_file, json_array): + df = pd.DataFrame(json_array) + table = pa.Table.from_pandas(df) + pq.write_table(table, parquet_file + ".parquet") + + +def write_json_file(json_file, json_array): + with open(json_file + ".json", 'w') as f: + json.dump(json_array, f, separators=(',', ':')) + + +def generate_avro_schema(k, t): + if t == 0: + return {"name": k, "type": "int", "logicalType": "int"} + elif t == 1: + return {"name": k, "type": "int", "logicalType": "int"} + elif t == 2: + return {"name": k, "type": "float"} + elif t == 3: + return {"name": k, "type": "string"} + elif t == 4: + return {"name": k, "type": "boolean"} + + +def write_avro_file(avro_file, json_array, keys, values): + k = list(json_array[0].keys()) + + if keys != k: + raise ValueError("keys and values should have the same length") + + avro_schema = { + "type": "record", + "name": "MyRecord", + "fields": [generate_avro_schema(k, v) for k, v in dict(zip(keys, values)).items()] + } + + avro_records = [to_avro_record(obj) for obj in json_array] + with open(avro_file + ".avro", 'wb') as f: + fastavro.writer(f, avro_schema, avro_records) + + +def write_pg_file(json_array): + conn_str = "dbname=mydatabase user=myuser host=localhost" + conn = psycopg2.connect(conn_str) + cur = conn.cursor() + + cur.execute("drop table if exists my_table") + conn.commit() + + # 创建表(如果不存在) + cur.execute(""" + CREATE TABLE IF NOT EXISTS my_table ( + id SERIAL PRIMARY KEY, + json_data JSONB + ); + """) + conn.commit() + + # 执行SQL查询 + cur.execute("SELECT count(*) FROM my_table") + # 获取查询结果 + rows = cur.fetchall() + # 打印查询结果 + for row in rows: + print("rows before:", row[0]) + + # 插入数据 + for idx, json_obj in enumerate(json_array): + # print(json.dumps(json_obj)) + cur.execute("INSERT INTO my_table (json_data) VALUES (%s)", (json.dumps(json_obj),)) + + conn.commit() # 提交事务 + + # 执行SQL查询 + cur.execute("SELECT count(*) FROM my_table") + # 获取查询结果 + rows = cur.fetchall() + # 打印查询结果 + for row in rows: + print("rows after:", row[0]) + + # # 执行SQL查询 + # cur.execute("SELECT pg_relation_size('my_table')") + # # 获取查询结果 + # rows = cur.fetchall() + # # 打印查询结果 + # size = 0 + # for row in rows: + # size = row[0] + # print("table size:", row[0]) + + # 关闭游标和连接 + cur.close() + conn.close() + +def read_parquet_file(parquet_file): + table = pq.read_table(parquet_file + ".parquet") + df = table.to_pandas() + print(df) + + +def read_avro_file(avg_file): + with open(avg_file + ".avro", 'rb') as f: + reader = fastavro.reader(f) + + for record in reader: + print(record) + + +def read_json_file(csv_file): + with open(csv_file + ".json", 'r') as f: + data = json.load(f) + print(data) + + +def main(): + key_length = 7 + key_sizes = 4000 + row_sizes = 10000 + file_name = "output" + + # cases = [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (0, 4)] + cases = [(2, 2), (3, 3), (0, 4)] + + for data in cases: + begin, end = data + print(f"执行类型:{begin}-{end}") + + N = 2 + for _ in range(N): + + t0 = time.time() + + keys = [generate_random_string(key_length) for _ in range(key_sizes)] + values = [random.randint(begin, end) for _ in range(key_sizes)] + # 生成JSON数组 + json_array = generate_json_array(keys, values, row_sizes) + + t1 = time.time() + + write_json_file(file_name, json_array) + + t2 = time.time() + + write_parquet_file(file_name, json_array) + + t3 = time.time() + + write_avro_file(file_name, json_array, keys, values) + + t4 = time.time() + + size = write_pg_file(json_array) + + t5 = time.time() + + print("生成json 速度:", t2 - t0, "文件大小:", os.path.getsize(file_name + ".json")) + print("parquet 速度:", t3 - t2, "文件大小:", os.path.getsize(file_name + ".parquet")) + print("avro 速度:", t4 - t3, "文件大小:", os.path.getsize(file_name + ".avro")) + print("pg json 速度:", t5 - t4, "文件大小:", get_dir_size("/opt/homebrew/var/postgresql@14/base/16385") - 8 * 1024 * 1024) + + # read_json_file(file_name) + # read_parquet_file(file_name) + # read_avro_file(file_name) + print(f"\n---------------\n") + +if __name__ == "__main__": + main() + +# 压缩文件 +# import os +# +# import lz4.frame +# +# +# files =["output.json", "output.parquet", "output.avro"] +# def compress_file(input_path, output_path): +# with open(input_path, 'rb') as f_in: +# compressed_data = lz4.frame.compress(f_in.read()) +# +# with open(output_path, 'wb') as f_out: +# f_out.write(compressed_data) +# +# for file in files: +# compress_file(file, file + ".lz4") +# print(file, "origin size:", os.path.getsize(file), " after lsz size:", os.path.getsize(file + ".lz4"))