From 9fb9d863b96ed51b22d29eb7402f93d9be9e7a3c Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Tue, 15 Aug 2023 11:29:17 +0800 Subject: [PATCH 01/21] enhance: modify sql.y --- source/libs/parser/inc/sql.y | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 6c3f589159..c22fbe139a 100755 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -1009,10 +1009,11 @@ join_type(A) ::= INNER. /************************************************ query_specification *************************************************/ query_specification(A) ::= - SELECT set_quantifier_opt(B) select_list(C) from_clause_opt(D) - where_clause_opt(E) partition_by_clause_opt(F) range_opt(J) every_opt(K) - fill_opt(L) twindow_clause_opt(G) group_by_clause_opt(H) having_clause_opt(I). { + SELECT tag_mode_opt(M) set_quantifier_opt(B) select_list(C) from_clause_opt(D) + where_clause_opt(E) partition_by_clause_opt(F) range_opt(J) every_opt(K) + fill_opt(L) twindow_clause_opt(G) group_by_clause_opt(H) having_clause_opt(I). { A = createSelectStmt(pCxt, B, C, D); + A = setSelectStmtTagMode(pCtxt, A, M); A = addWhereClause(pCxt, A, E); A = addPartitionByClause(pCxt, A, F); A = addWindowClauseClause(pCxt, A, G); @@ -1023,6 +1024,11 @@ query_specification(A) ::= A = addFillClause(pCxt, A, L); } +%type tag_mode_opt { bool } +%destructor tag_mode_opt { } +tag_mode_opt(A) ::= . { A = false; } +tag_mode_opt(A) ::= TAGS. { A = true; } + %type set_quantifier_opt { bool } %destructor set_quantifier_opt { } set_quantifier_opt(A) ::= . { A = false; } From 514da6e1b0c522feb7a04d793a9a44beef4cfde5 Mon Sep 17 00:00:00 2001 From: slzhou Date: Tue, 15 Aug 2023 15:16:57 +0800 Subject: [PATCH 02/21] fix: select tags and set tag scan execution mode --- include/common/ttokendef.h | 2 +- source/libs/parser/inc/parAst.h | 1 + source/libs/parser/inc/sql.y | 2 +- source/libs/parser/src/parAstCreater.c | 7 + source/libs/parser/src/sql.c | 4828 ++++++++++++-------- source/libs/planner/src/planLogicCreater.c | 45 +- 6 files changed, 3075 insertions(+), 1810 deletions(-) diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index 8a6b7b5020..eb33ac5db9 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -16,6 +16,7 @@ #ifndef _TD_COMMON_TOKEN_H_ #define _TD_COMMON_TOKEN_H_ + #define TK_OR 1 #define TK_AND 2 #define TK_UNION 3 @@ -354,7 +355,6 @@ #define TK_VIEW 336 #define TK_WAL 337 - #define TK_NK_SPACE 600 #define TK_NK_COMMENT 601 #define TK_NK_ILLEGAL 602 diff --git a/source/libs/parser/inc/parAst.h b/source/libs/parser/inc/parAst.h index 78422bf746..fec31b61e6 100644 --- a/source/libs/parser/inc/parAst.h +++ b/source/libs/parser/inc/parAst.h @@ -143,6 +143,7 @@ SNode* addRangeClause(SAstCreateContext* pCxt, SNode* pStmt, SNode* pRange); SNode* addEveryClause(SAstCreateContext* pCxt, SNode* pStmt, SNode* pEvery); SNode* addFillClause(SAstCreateContext* pCxt, SNode* pStmt, SNode* pFill); SNode* createSelectStmt(SAstCreateContext* pCxt, bool isDistinct, SNodeList* pProjectionList, SNode* pTable); +SNode* setSelectStmtTagMode(SAstCreateContext* pCxt, SNode* pStmt, bool bSelectTags); SNode* createSetOperator(SAstCreateContext* pCxt, ESetOperatorType type, SNode* pLeft, SNode* pRight); SDataType createDataType(uint8_t type); diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index c22fbe139a..2348b93bc7 100755 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -1013,7 +1013,7 @@ query_specification(A) ::= where_clause_opt(E) partition_by_clause_opt(F) range_opt(J) every_opt(K) fill_opt(L) twindow_clause_opt(G) group_by_clause_opt(H) having_clause_opt(I). { A = createSelectStmt(pCxt, B, C, D); - A = setSelectStmtTagMode(pCtxt, A, M); + A = setSelectStmtTagMode(pCxt, A, M); A = addWhereClause(pCxt, A, E); A = addPartitionByClause(pCxt, A, F); A = addWindowClauseClause(pCxt, A, G); diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index f85218c50a..ef0653198f 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -852,6 +852,13 @@ SNode* createSelectStmt(SAstCreateContext* pCxt, bool isDistinct, SNodeList* pPr return select; } +SNode* setSelectStmtTagMode(SAstCreateContext* pCxt, SNode* pStmt, bool bSelectTags) { + if (QUERY_NODE_SELECT_STMT == nodeType(pStmt)) { + ((SSelectStmt*)pStmt)->tagScan = bSelectTags; + } + return pStmt; +} + static void setSubquery(SNode* pStmt) { if (QUERY_NODE_SELECT_STMT == nodeType(pStmt)) { ((SSelectStmt*)pStmt)->isSubquery = true; diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index a912fb4e71..1d8e37fd1e 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -1,3 +1,5 @@ +/* This file is automatically generated by Lemon from input grammar +** source file "sql.y". */ /* ** 2000-05-29 ** @@ -22,9 +24,8 @@ ** The following is the concatenation of all %include directives from the ** input grammar file: */ -#include -#include /************ Begin %include sections from the grammar ************************/ +#line 11 "sql.y" #include #include @@ -41,12 +42,350 @@ #include "parAst.h" #define YYSTACKDEPTH 0 +#line 46 "sql.c" /**************** End of %include directives **********************************/ -/* These constants specify the various numeric values for terminal symbols -** in a format understandable to "makeheaders". This section is blank unless -** "lemon" is run with the "-m" command-line option. -***************** Begin makeheaders token definitions *************************/ -/**************** End makeheaders token definitions ***************************/ +/* These constants specify the various numeric values for terminal symbols. +***************** Begin token definitions *************************************/ +#ifndef TK_OR +#define TK_OR 1 +#define TK_AND 2 +#define TK_UNION 3 +#define TK_ALL 4 +#define TK_MINUS 5 +#define TK_EXCEPT 6 +#define TK_INTERSECT 7 +#define TK_NK_BITAND 8 +#define TK_NK_BITOR 9 +#define TK_NK_LSHIFT 10 +#define TK_NK_RSHIFT 11 +#define TK_NK_PLUS 12 +#define TK_NK_MINUS 13 +#define TK_NK_STAR 14 +#define TK_NK_SLASH 15 +#define TK_NK_REM 16 +#define TK_NK_CONCAT 17 +#define TK_CREATE 18 +#define TK_ACCOUNT 19 +#define TK_NK_ID 20 +#define TK_PASS 21 +#define TK_NK_STRING 22 +#define TK_ALTER 23 +#define TK_PPS 24 +#define TK_TSERIES 25 +#define TK_STORAGE 26 +#define TK_STREAMS 27 +#define TK_QTIME 28 +#define TK_DBS 29 +#define TK_USERS 30 +#define TK_CONNS 31 +#define TK_STATE 32 +#define TK_USER 33 +#define TK_ENABLE 34 +#define TK_NK_INTEGER 35 +#define TK_SYSINFO 36 +#define TK_DROP 37 +#define TK_GRANT 38 +#define TK_ON 39 +#define TK_TO 40 +#define TK_REVOKE 41 +#define TK_FROM 42 +#define TK_SUBSCRIBE 43 +#define TK_NK_COMMA 44 +#define TK_READ 45 +#define TK_WRITE 46 +#define TK_NK_DOT 47 +#define TK_WITH 48 +#define TK_DNODE 49 +#define TK_PORT 50 +#define TK_DNODES 51 +#define TK_RESTORE 52 +#define TK_NK_IPTOKEN 53 +#define TK_FORCE 54 +#define TK_UNSAFE 55 +#define TK_LOCAL 56 +#define TK_QNODE 57 +#define TK_BNODE 58 +#define TK_SNODE 59 +#define TK_MNODE 60 +#define TK_VNODE 61 +#define TK_DATABASE 62 +#define TK_USE 63 +#define TK_FLUSH 64 +#define TK_TRIM 65 +#define TK_COMPACT 66 +#define TK_IF 67 +#define TK_NOT 68 +#define TK_EXISTS 69 +#define TK_BUFFER 70 +#define TK_CACHEMODEL 71 +#define TK_CACHESIZE 72 +#define TK_COMP 73 +#define TK_DURATION 74 +#define TK_NK_VARIABLE 75 +#define TK_MAXROWS 76 +#define TK_MINROWS 77 +#define TK_KEEP 78 +#define TK_PAGES 79 +#define TK_PAGESIZE 80 +#define TK_TSDB_PAGESIZE 81 +#define TK_PRECISION 82 +#define TK_REPLICA 83 +#define TK_VGROUPS 84 +#define TK_SINGLE_STABLE 85 +#define TK_RETENTIONS 86 +#define TK_SCHEMALESS 87 +#define TK_WAL_LEVEL 88 +#define TK_WAL_FSYNC_PERIOD 89 +#define TK_WAL_RETENTION_PERIOD 90 +#define TK_WAL_RETENTION_SIZE 91 +#define TK_WAL_ROLL_PERIOD 92 +#define TK_WAL_SEGMENT_SIZE 93 +#define TK_STT_TRIGGER 94 +#define TK_TABLE_PREFIX 95 +#define TK_TABLE_SUFFIX 96 +#define TK_NK_COLON 97 +#define TK_MAX_SPEED 98 +#define TK_START 99 +#define TK_TIMESTAMP 100 +#define TK_END 101 +#define TK_TABLE 102 +#define TK_NK_LP 103 +#define TK_NK_RP 104 +#define TK_STABLE 105 +#define TK_ADD 106 +#define TK_COLUMN 107 +#define TK_MODIFY 108 +#define TK_RENAME 109 +#define TK_TAG 110 +#define TK_SET 111 +#define TK_NK_EQ 112 +#define TK_USING 113 +#define TK_TAGS 114 +#define TK_BOOL 115 +#define TK_TINYINT 116 +#define TK_SMALLINT 117 +#define TK_INT 118 +#define TK_INTEGER 119 +#define TK_BIGINT 120 +#define TK_FLOAT 121 +#define TK_DOUBLE 122 +#define TK_BINARY 123 +#define TK_NCHAR 124 +#define TK_UNSIGNED 125 +#define TK_JSON 126 +#define TK_VARCHAR 127 +#define TK_MEDIUMBLOB 128 +#define TK_BLOB 129 +#define TK_VARBINARY 130 +#define TK_GEOMETRY 131 +#define TK_DECIMAL 132 +#define TK_COMMENT 133 +#define TK_MAX_DELAY 134 +#define TK_WATERMARK 135 +#define TK_ROLLUP 136 +#define TK_TTL 137 +#define TK_SMA 138 +#define TK_DELETE_MARK 139 +#define TK_FIRST 140 +#define TK_LAST 141 +#define TK_SHOW 142 +#define TK_PRIVILEGES 143 +#define TK_DATABASES 144 +#define TK_TABLES 145 +#define TK_STABLES 146 +#define TK_MNODES 147 +#define TK_QNODES 148 +#define TK_FUNCTIONS 149 +#define TK_INDEXES 150 +#define TK_ACCOUNTS 151 +#define TK_APPS 152 +#define TK_CONNECTIONS 153 +#define TK_LICENCES 154 +#define TK_GRANTS 155 +#define TK_QUERIES 156 +#define TK_SCORES 157 +#define TK_TOPICS 158 +#define TK_VARIABLES 159 +#define TK_CLUSTER 160 +#define TK_BNODES 161 +#define TK_SNODES 162 +#define TK_TRANSACTIONS 163 +#define TK_DISTRIBUTED 164 +#define TK_CONSUMERS 165 +#define TK_SUBSCRIPTIONS 166 +#define TK_VNODES 167 +#define TK_ALIVE 168 +#define TK_LIKE 169 +#define TK_TBNAME 170 +#define TK_QTAGS 171 +#define TK_AS 172 +#define TK_INDEX 173 +#define TK_FUNCTION 174 +#define TK_INTERVAL 175 +#define TK_COUNT 176 +#define TK_LAST_ROW 177 +#define TK_META 178 +#define TK_ONLY 179 +#define TK_TOPIC 180 +#define TK_CONSUMER 181 +#define TK_GROUP 182 +#define TK_DESC 183 +#define TK_DESCRIBE 184 +#define TK_RESET 185 +#define TK_QUERY 186 +#define TK_CACHE 187 +#define TK_EXPLAIN 188 +#define TK_ANALYZE 189 +#define TK_VERBOSE 190 +#define TK_NK_BOOL 191 +#define TK_RATIO 192 +#define TK_NK_FLOAT 193 +#define TK_OUTPUTTYPE 194 +#define TK_AGGREGATE 195 +#define TK_BUFSIZE 196 +#define TK_LANGUAGE 197 +#define TK_REPLACE 198 +#define TK_STREAM 199 +#define TK_INTO 200 +#define TK_PAUSE 201 +#define TK_RESUME 202 +#define TK_TRIGGER 203 +#define TK_AT_ONCE 204 +#define TK_WINDOW_CLOSE 205 +#define TK_IGNORE 206 +#define TK_EXPIRED 207 +#define TK_FILL_HISTORY 208 +#define TK_UPDATE 209 +#define TK_SUBTABLE 210 +#define TK_UNTREATED 211 +#define TK_KILL 212 +#define TK_CONNECTION 213 +#define TK_TRANSACTION 214 +#define TK_BALANCE 215 +#define TK_VGROUP 216 +#define TK_LEADER 217 +#define TK_MERGE 218 +#define TK_REDISTRIBUTE 219 +#define TK_SPLIT 220 +#define TK_DELETE 221 +#define TK_INSERT 222 +#define TK_NULL 223 +#define TK_NK_QUESTION 224 +#define TK_NK_ARROW 225 +#define TK_ROWTS 226 +#define TK_QSTART 227 +#define TK_QEND 228 +#define TK_QDURATION 229 +#define TK_WSTART 230 +#define TK_WEND 231 +#define TK_WDURATION 232 +#define TK_IROWTS 233 +#define TK_ISFILLED 234 +#define TK_CAST 235 +#define TK_NOW 236 +#define TK_TODAY 237 +#define TK_TIMEZONE 238 +#define TK_CLIENT_VERSION 239 +#define TK_SERVER_VERSION 240 +#define TK_SERVER_STATUS 241 +#define TK_CURRENT_USER 242 +#define TK_CASE 243 +#define TK_WHEN 244 +#define TK_THEN 245 +#define TK_ELSE 246 +#define TK_BETWEEN 247 +#define TK_IS 248 +#define TK_NK_LT 249 +#define TK_NK_GT 250 +#define TK_NK_LE 251 +#define TK_NK_GE 252 +#define TK_NK_NE 253 +#define TK_MATCH 254 +#define TK_NMATCH 255 +#define TK_CONTAINS 256 +#define TK_IN 257 +#define TK_JOIN 258 +#define TK_INNER 259 +#define TK_SELECT 260 +#define TK_DISTINCT 261 +#define TK_WHERE 262 +#define TK_PARTITION 263 +#define TK_BY 264 +#define TK_SESSION 265 +#define TK_STATE_WINDOW 266 +#define TK_EVENT_WINDOW 267 +#define TK_SLIDING 268 +#define TK_FILL 269 +#define TK_VALUE 270 +#define TK_VALUE_F 271 +#define TK_NONE 272 +#define TK_PREV 273 +#define TK_NULL_F 274 +#define TK_LINEAR 275 +#define TK_NEXT 276 +#define TK_HAVING 277 +#define TK_RANGE 278 +#define TK_EVERY 279 +#define TK_ORDER 280 +#define TK_SLIMIT 281 +#define TK_SOFFSET 282 +#define TK_LIMIT 283 +#define TK_OFFSET 284 +#define TK_ASC 285 +#define TK_NULLS 286 +#define TK_ABORT 287 +#define TK_AFTER 288 +#define TK_ATTACH 289 +#define TK_BEFORE 290 +#define TK_BEGIN 291 +#define TK_BITAND 292 +#define TK_BITNOT 293 +#define TK_BITOR 294 +#define TK_BLOCKS 295 +#define TK_CHANGE 296 +#define TK_COMMA 297 +#define TK_CONCAT 298 +#define TK_CONFLICT 299 +#define TK_COPY 300 +#define TK_DEFERRED 301 +#define TK_DELIMITERS 302 +#define TK_DETACH 303 +#define TK_DIVIDE 304 +#define TK_DOT 305 +#define TK_EACH 306 +#define TK_FAIL 307 +#define TK_FILE 308 +#define TK_FOR 309 +#define TK_GLOB 310 +#define TK_ID 311 +#define TK_IMMEDIATE 312 +#define TK_IMPORT 313 +#define TK_INITIALLY 314 +#define TK_INSTEAD 315 +#define TK_ISNULL 316 +#define TK_KEY 317 +#define TK_MODULES 318 +#define TK_NK_BITNOT 319 +#define TK_NK_SEMI 320 +#define TK_NOTNULL 321 +#define TK_OF 322 +#define TK_PLUS 323 +#define TK_PRIVILEGE 324 +#define TK_RAISE 325 +#define TK_RESTRICT 326 +#define TK_ROW 327 +#define TK_SEMI 328 +#define TK_STAR 329 +#define TK_STATEMENT 330 +#define TK_STRICT 331 +#define TK_STRING 332 +#define TK_TIMES 333 +#define TK_VALUES 334 +#define TK_VARIABLE 335 +#define TK_VIEW 336 +#define TK_WAL 337 +#endif +/**************** End token definitions ***************************************/ /* The next sections is a series of control #defines. ** various aspects of the generated parser. @@ -104,27 +443,27 @@ #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 487 +#define YYNOCODE 488 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE SToken typedef union { int yyinit; ParseTOKENTYPE yy0; - EJoinType yy140; - SDataType yy310; - STokenPair yy347; - EOperatorType yy354; - SAlterOption yy365; - SToken yy371; - ENullOrder yy399; - int32_t yy416; - SNode* yy452; - int8_t yy475; - bool yy667; - EOrder yy690; - int64_t yy729; - SNodeList* yy812; - EFillMode yy844; + SNodeList* yy56; + EOperatorType yy76; + EOrder yy82; + SToken yy129; + int8_t yy215; + bool yy313; + int32_t yy356; + SAlterOption yy461; + STokenPair yy505; + ENullOrder yy521; + EFillMode yy694; + EJoinType yy708; + int64_t yy717; + SDataType yy784; + SNode* yy840; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -140,18 +479,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 800 -#define YYNRULE 600 -#define YYNRULE_WITH_ACTION 600 +#define YYNSTATE 801 +#define YYNRULE 602 +#define YYNRULE_WITH_ACTION 602 #define YYNTOKEN 338 -#define YY_MAX_SHIFT 799 -#define YY_MIN_SHIFTREDUCE 1180 -#define YY_MAX_SHIFTREDUCE 1779 -#define YY_ERROR_ACTION 1780 -#define YY_ACCEPT_ACTION 1781 -#define YY_NO_ACTION 1782 -#define YY_MIN_REDUCE 1783 -#define YY_MAX_REDUCE 2382 +#define YY_MAX_SHIFT 800 +#define YY_MIN_SHIFTREDUCE 1182 +#define YY_MAX_SHIFTREDUCE 1783 +#define YY_ERROR_ACTION 1784 +#define YY_ACCEPT_ACTION 1785 +#define YY_NO_ACTION 1786 +#define YY_MIN_REDUCE 1787 +#define YY_MAX_REDUCE 2388 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -218,593 +557,604 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2858) +#define YY_ACTTAB_COUNT (2963) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 2126, 2193, 2171, 2082, 221, 690, 1960, 2154, 537, 1949, - /* 10 */ 1826, 670, 48, 46, 1706, 394, 2179, 1213, 2079, 677, - /* 20 */ 401, 2358, 1555, 41, 40, 135, 2175, 47, 45, 44, - /* 30 */ 43, 42, 574, 1636, 453, 1553, 2171, 539, 1582, 2211, - /* 40 */ 41, 40, 1781, 536, 47, 45, 44, 43, 42, 254, - /* 50 */ 1951, 2161, 1945, 706, 630, 531, 1215, 2353, 1218, 1219, - /* 60 */ 2175, 181, 1631, 529, 2177, 398, 525, 521, 19, 1238, - /* 70 */ 66, 1237, 2359, 188, 700, 1561, 30, 2354, 656, 348, - /* 80 */ 689, 369, 2065, 361, 140, 690, 1960, 2192, 1580, 2228, - /* 90 */ 667, 144, 112, 2194, 710, 2196, 2197, 705, 2177, 700, - /* 100 */ 796, 168, 1239, 15, 185, 135, 2281, 103, 700, 1901, - /* 110 */ 397, 2277, 579, 497, 2082, 416, 48, 46, 690, 1960, - /* 120 */ 415, 689, 1769, 190, 401, 264, 1555, 1665, 1371, 2080, - /* 130 */ 677, 2307, 1953, 1580, 38, 306, 1746, 1636, 193, 1553, - /* 140 */ 1638, 1639, 1806, 1362, 735, 734, 733, 1366, 732, 1368, - /* 150 */ 1369, 731, 728, 1805, 1377, 725, 1379, 1380, 722, 719, - /* 160 */ 716, 184, 630, 51, 655, 2353, 1631, 2353, 94, 62, - /* 170 */ 1611, 1621, 19, 2000, 212, 211, 1637, 1640, 675, 1561, - /* 180 */ 2359, 188, 654, 188, 1666, 2354, 656, 2354, 656, 2296, - /* 190 */ 288, 1556, 2161, 1554, 286, 2289, 666, 496, 136, 665, - /* 200 */ 169, 2353, 1795, 2161, 796, 41, 40, 15, 2193, 47, - /* 210 */ 45, 44, 43, 42, 62, 2293, 654, 188, 707, 1315, - /* 220 */ 435, 2354, 656, 1559, 1560, 1783, 1610, 1613, 1614, 1615, - /* 230 */ 1616, 1617, 1618, 1619, 1620, 702, 698, 1629, 1630, 1632, - /* 240 */ 1633, 1634, 1635, 2, 1638, 1639, 2211, 437, 433, 134, - /* 250 */ 133, 132, 131, 130, 129, 128, 127, 126, 2161, 1317, - /* 260 */ 706, 1784, 37, 399, 1660, 1661, 1662, 1663, 1664, 1668, - /* 270 */ 1669, 1670, 1671, 534, 1611, 1621, 535, 1819, 551, 1580, - /* 280 */ 1637, 1640, 125, 1464, 1465, 124, 123, 122, 121, 120, - /* 290 */ 119, 118, 117, 116, 2192, 1556, 2228, 1554, 645, 112, - /* 300 */ 2194, 710, 2196, 2197, 705, 650, 700, 2044, 395, 147, - /* 310 */ 1580, 151, 2252, 2281, 1581, 2193, 166, 397, 2277, 1238, - /* 320 */ 191, 1237, 667, 144, 1962, 670, 191, 1559, 1560, 1703, - /* 330 */ 1610, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 702, - /* 340 */ 698, 1629, 1630, 1632, 1633, 1634, 1635, 2, 12, 48, - /* 350 */ 46, 745, 1239, 2211, 2013, 410, 409, 401, 2182, 1555, - /* 360 */ 2358, 367, 62, 2353, 181, 2161, 1582, 706, 615, 2011, - /* 370 */ 1636, 191, 1553, 592, 591, 590, 690, 1960, 1562, 2357, - /* 380 */ 582, 141, 586, 2354, 2356, 2066, 585, 649, 651, 646, - /* 390 */ 639, 584, 589, 377, 376, 146, 56, 583, 2252, 1631, - /* 400 */ 252, 2192, 629, 2228, 251, 19, 112, 2194, 710, 2196, - /* 410 */ 2197, 705, 1561, 700, 2184, 2211, 297, 298, 185, 542, - /* 420 */ 2281, 296, 535, 1819, 397, 2277, 187, 2289, 2290, 2193, - /* 430 */ 142, 2294, 1221, 655, 1406, 1407, 2353, 796, 1579, 707, - /* 440 */ 15, 1828, 41, 40, 1272, 2308, 47, 45, 44, 43, - /* 450 */ 42, 654, 188, 48, 46, 1641, 2354, 656, 223, 2193, - /* 460 */ 1612, 401, 537, 1555, 1826, 93, 475, 2211, 356, 707, - /* 470 */ 648, 381, 166, 608, 1636, 474, 1553, 1638, 1639, 2161, - /* 480 */ 1963, 706, 2358, 125, 1273, 2353, 124, 123, 122, 121, - /* 490 */ 120, 119, 118, 117, 116, 2013, 62, 2211, 1804, 667, - /* 500 */ 144, 2357, 382, 1631, 12, 2354, 2355, 1611, 1621, 2161, - /* 510 */ 2011, 706, 109, 1637, 1640, 2192, 1561, 2228, 288, 191, - /* 520 */ 112, 2194, 710, 2196, 2197, 705, 60, 700, 1556, 145, - /* 530 */ 1554, 578, 2373, 627, 2281, 577, 1565, 1952, 397, 2277, - /* 540 */ 1710, 796, 690, 1960, 49, 2192, 1580, 2228, 2161, 2193, - /* 550 */ 170, 2194, 710, 2196, 2197, 705, 12, 700, 10, 707, - /* 560 */ 1559, 1560, 451, 1610, 1613, 1614, 1615, 1616, 1617, 1618, - /* 570 */ 1619, 1620, 702, 698, 1629, 1630, 1632, 1633, 1634, 1635, - /* 580 */ 2, 1638, 1639, 445, 1326, 444, 1702, 2211, 41, 40, - /* 590 */ 631, 2318, 47, 45, 44, 43, 42, 1325, 2296, 2161, - /* 600 */ 1583, 706, 669, 186, 2289, 2290, 165, 142, 2294, 1561, - /* 610 */ 1803, 1611, 1621, 690, 1960, 443, 406, 1637, 1640, 2006, - /* 620 */ 2008, 41, 40, 404, 2292, 47, 45, 44, 43, 42, - /* 630 */ 2296, 163, 1556, 452, 1554, 2192, 676, 2228, 383, 1962, - /* 640 */ 112, 2194, 710, 2196, 2197, 705, 2011, 700, 253, 689, - /* 650 */ 447, 2193, 2256, 191, 2281, 446, 2291, 2155, 397, 2277, - /* 660 */ 2161, 707, 506, 2315, 1559, 1560, 154, 1610, 1613, 1614, - /* 670 */ 1615, 1616, 1617, 1618, 1619, 1620, 702, 698, 1629, 1630, - /* 680 */ 1632, 1633, 1634, 1635, 2, 48, 46, 1937, 549, 2211, - /* 690 */ 2075, 457, 2061, 401, 755, 1555, 1612, 630, 667, 144, - /* 700 */ 2353, 2161, 2013, 706, 630, 1936, 1636, 2353, 1553, 391, - /* 710 */ 47, 45, 44, 43, 42, 2359, 188, 2011, 1526, 1527, - /* 720 */ 2354, 656, 2359, 188, 463, 2061, 55, 2354, 656, 14, - /* 730 */ 13, 1734, 51, 690, 1960, 1631, 1947, 2192, 202, 2228, - /* 740 */ 597, 676, 112, 2194, 710, 2196, 2197, 705, 1561, 700, - /* 750 */ 690, 1960, 266, 465, 2373, 607, 2281, 1862, 41, 40, - /* 760 */ 397, 2277, 47, 45, 44, 43, 42, 2193, 1802, 250, - /* 770 */ 480, 205, 745, 796, 690, 1960, 49, 704, 642, 641, - /* 780 */ 1732, 1733, 1735, 1736, 1737, 600, 490, 2061, 2357, 48, - /* 790 */ 46, 1935, 594, 674, 481, 2075, 1776, 401, 249, 1555, - /* 800 */ 404, 1581, 189, 2289, 2290, 2211, 142, 2294, 166, 692, - /* 810 */ 1636, 2253, 1553, 1638, 1639, 1846, 1962, 2161, 2161, 706, - /* 820 */ 743, 156, 155, 740, 739, 738, 153, 592, 591, 590, - /* 830 */ 2007, 2008, 1679, 210, 582, 141, 586, 593, 70, 1631, - /* 840 */ 585, 69, 52, 1611, 1621, 584, 589, 377, 376, 1637, - /* 850 */ 1640, 583, 1561, 2192, 1745, 2228, 1241, 1242, 342, 2194, - /* 860 */ 710, 2196, 2197, 705, 1556, 700, 1554, 2247, 41, 40, - /* 870 */ 1801, 1943, 47, 45, 44, 43, 42, 796, 570, 569, - /* 880 */ 15, 2193, 743, 156, 155, 740, 739, 738, 153, 1800, - /* 890 */ 613, 707, 207, 2328, 1799, 1964, 1559, 1560, 1775, 1610, - /* 900 */ 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 702, 698, - /* 910 */ 1629, 1630, 1632, 1633, 1634, 1635, 2, 1638, 1639, 2211, - /* 920 */ 2161, 1481, 1482, 606, 743, 156, 155, 740, 739, 738, - /* 930 */ 153, 2161, 86, 706, 2013, 85, 604, 630, 602, 2161, - /* 940 */ 2353, 396, 690, 1960, 2161, 690, 1960, 1611, 1621, 2011, - /* 950 */ 736, 690, 1960, 1637, 1640, 2359, 188, 1480, 1483, 259, - /* 960 */ 2354, 656, 550, 737, 1722, 1957, 2004, 2192, 1556, 2228, - /* 970 */ 1554, 255, 112, 2194, 710, 2196, 2197, 705, 9, 700, - /* 980 */ 588, 587, 34, 2147, 2373, 1330, 2281, 676, 41, 40, - /* 990 */ 397, 2277, 47, 45, 44, 43, 42, 1798, 1329, 191, - /* 1000 */ 1559, 1560, 1859, 1610, 1613, 1614, 1615, 1616, 1617, 1618, - /* 1010 */ 1619, 1620, 702, 698, 1629, 1630, 1632, 1633, 1634, 1635, - /* 1020 */ 2, 1646, 352, 167, 1578, 690, 1960, 1580, 327, 690, - /* 1030 */ 1960, 488, 423, 90, 504, 572, 571, 503, 2171, 685, - /* 1040 */ 407, 2075, 324, 73, 2144, 263, 72, 2161, 166, 673, - /* 1050 */ 371, 2013, 2180, 471, 671, 505, 1962, 349, 405, 1955, - /* 1060 */ 473, 701, 2175, 508, 1797, 658, 2011, 1794, 219, 516, - /* 1070 */ 514, 511, 773, 772, 771, 770, 413, 1938, 769, 768, - /* 1080 */ 148, 763, 762, 761, 760, 759, 758, 757, 158, 753, - /* 1090 */ 752, 751, 412, 411, 748, 747, 746, 176, 175, 1583, - /* 1100 */ 2177, 630, 690, 1960, 2353, 1583, 370, 237, 62, 374, - /* 1110 */ 700, 44, 43, 42, 2161, 690, 1960, 2161, 459, 2359, - /* 1120 */ 188, 149, 301, 173, 2354, 656, 690, 1960, 262, 690, - /* 1130 */ 1960, 568, 564, 560, 556, 687, 236, 1793, 662, 694, - /* 1140 */ 1667, 2253, 767, 765, 1792, 1791, 688, 111, 501, 307, - /* 1150 */ 1790, 495, 494, 493, 492, 487, 486, 485, 484, 483, - /* 1160 */ 479, 478, 477, 476, 351, 468, 467, 466, 659, 461, - /* 1170 */ 460, 368, 690, 1960, 2301, 1699, 91, 1612, 375, 234, - /* 1180 */ 373, 372, 1837, 576, 90, 1789, 1788, 2161, 81, 80, - /* 1190 */ 450, 2193, 408, 200, 2161, 2161, 1787, 2013, 1699, 741, - /* 1200 */ 2161, 707, 2004, 637, 595, 578, 442, 440, 1786, 577, - /* 1210 */ 1956, 742, 2012, 320, 2004, 1902, 1990, 350, 35, 54, - /* 1220 */ 431, 3, 2193, 429, 425, 421, 418, 443, 1672, 2211, - /* 1230 */ 756, 454, 707, 1922, 2346, 2161, 2161, 1218, 1219, 154, - /* 1240 */ 83, 2161, 137, 706, 455, 74, 2161, 233, 227, 580, - /* 1250 */ 242, 203, 2193, 240, 232, 547, 244, 265, 2161, 243, - /* 1260 */ 2211, 430, 707, 246, 2300, 191, 245, 248, 154, 581, - /* 1270 */ 247, 1313, 2161, 225, 706, 1835, 50, 2192, 610, 2228, - /* 1280 */ 609, 50, 112, 2194, 710, 2196, 2197, 705, 697, 700, - /* 1290 */ 2211, 1311, 1778, 1779, 2373, 84, 2281, 598, 1796, 1521, - /* 1300 */ 397, 2277, 2161, 643, 706, 1564, 270, 154, 2192, 108, - /* 1310 */ 2228, 2321, 283, 112, 2194, 710, 2196, 2197, 705, 105, - /* 1320 */ 700, 50, 294, 1563, 1555, 2373, 71, 2281, 1524, 152, - /* 1330 */ 154, 397, 2277, 14, 13, 64, 1731, 1553, 2192, 50, - /* 1340 */ 2228, 1730, 2193, 112, 2194, 710, 2196, 2197, 705, 50, - /* 1350 */ 700, 1829, 707, 410, 409, 2373, 277, 2281, 36, 714, - /* 1360 */ 139, 397, 2277, 1569, 41, 40, 272, 672, 47, 45, - /* 1370 */ 44, 43, 42, 2193, 1636, 1900, 1562, 1561, 663, 152, - /* 1380 */ 2211, 1478, 299, 707, 154, 749, 682, 1899, 2212, 303, - /* 1390 */ 1356, 750, 2161, 138, 706, 1673, 384, 152, 2070, 1622, - /* 1400 */ 414, 791, 796, 1631, 1820, 1825, 660, 1291, 2001, 319, - /* 1410 */ 2193, 2211, 2311, 1289, 668, 285, 1561, 282, 422, 1384, - /* 1420 */ 707, 1, 417, 2161, 5, 706, 365, 1586, 2192, 438, - /* 1430 */ 2228, 1502, 196, 112, 2194, 710, 2196, 2197, 705, 1388, - /* 1440 */ 700, 696, 439, 1657, 1395, 2254, 441, 2281, 2211, 195, - /* 1450 */ 198, 397, 2277, 1393, 314, 1579, 456, 157, 209, 2192, - /* 1460 */ 2161, 2228, 706, 1567, 112, 2194, 710, 2196, 2197, 705, - /* 1470 */ 1583, 700, 462, 458, 469, 499, 693, 2071, 2281, 464, - /* 1480 */ 1578, 1566, 397, 2277, 482, 491, 489, 2063, 498, 500, - /* 1490 */ 509, 510, 507, 1556, 213, 1554, 2192, 214, 2228, 2193, - /* 1500 */ 512, 113, 2194, 710, 2196, 2197, 705, 513, 700, 707, - /* 1510 */ 1584, 216, 532, 515, 517, 2281, 4, 533, 540, 2280, - /* 1520 */ 2277, 541, 543, 1581, 224, 1559, 1560, 226, 1585, 544, - /* 1530 */ 545, 1587, 1570, 546, 1565, 229, 548, 2211, 231, 88, - /* 1540 */ 89, 552, 235, 573, 355, 575, 1950, 114, 2193, 2161, - /* 1550 */ 239, 706, 1946, 612, 614, 92, 150, 618, 707, 315, - /* 1560 */ 256, 619, 617, 2135, 1573, 1575, 241, 159, 160, 1948, - /* 1570 */ 258, 260, 1944, 161, 2193, 162, 2132, 698, 1629, 1630, - /* 1580 */ 1632, 1633, 1634, 1635, 704, 2192, 2211, 2228, 625, 1509, - /* 1590 */ 113, 2194, 710, 2196, 2197, 705, 2131, 700, 2161, 644, - /* 1600 */ 706, 622, 634, 8, 2281, 2312, 2327, 680, 695, 2277, - /* 1610 */ 640, 2322, 2211, 387, 624, 2326, 647, 623, 268, 271, - /* 1620 */ 2303, 653, 276, 635, 2161, 2193, 706, 632, 633, 281, - /* 1630 */ 2376, 388, 1699, 661, 708, 707, 2228, 664, 2193, 113, - /* 1640 */ 2194, 710, 2196, 2197, 705, 143, 700, 1582, 707, 289, - /* 1650 */ 178, 1588, 278, 2281, 2076, 316, 98, 360, 2277, 2297, - /* 1660 */ 2192, 317, 2228, 2211, 678, 342, 2194, 710, 2196, 2197, - /* 1670 */ 705, 703, 700, 691, 2246, 2161, 2211, 706, 679, 683, - /* 1680 */ 2090, 279, 174, 684, 2089, 280, 100, 2193, 2161, 318, - /* 1690 */ 706, 2088, 393, 102, 61, 2262, 104, 707, 2352, 1961, - /* 1700 */ 712, 2005, 1923, 792, 2193, 284, 793, 321, 795, 2153, - /* 1710 */ 357, 2192, 310, 2228, 707, 358, 171, 2194, 710, 2196, - /* 1720 */ 2197, 705, 53, 700, 2192, 2211, 2228, 325, 323, 113, - /* 1730 */ 2194, 710, 2196, 2197, 705, 345, 700, 2161, 2152, 706, - /* 1740 */ 330, 344, 2211, 2281, 334, 2151, 78, 385, 2278, 2148, - /* 1750 */ 419, 420, 1546, 2193, 2161, 1547, 706, 194, 424, 2146, - /* 1760 */ 426, 427, 428, 707, 2145, 366, 2143, 657, 2374, 432, - /* 1770 */ 2142, 2141, 434, 2192, 436, 2228, 1537, 2193, 170, 2194, - /* 1780 */ 710, 2196, 2197, 705, 2122, 700, 197, 707, 2121, 199, - /* 1790 */ 2192, 2211, 2228, 1505, 79, 343, 2194, 710, 2196, 2197, - /* 1800 */ 705, 1504, 700, 2161, 2193, 706, 2103, 2102, 2101, 448, - /* 1810 */ 449, 2100, 2099, 2054, 707, 2211, 1455, 2053, 2050, 2319, - /* 1820 */ 386, 201, 2049, 82, 2193, 2048, 2047, 2161, 2052, 706, - /* 1830 */ 204, 2051, 2046, 2045, 707, 2043, 2042, 2041, 206, 2192, - /* 1840 */ 470, 2228, 2211, 2040, 336, 2194, 710, 2196, 2197, 705, - /* 1850 */ 472, 700, 2056, 2039, 2161, 2038, 706, 2037, 2036, 2035, - /* 1860 */ 2034, 2033, 2211, 2192, 2032, 2228, 2031, 392, 343, 2194, - /* 1870 */ 710, 2196, 2197, 705, 2161, 700, 706, 208, 2024, 2023, - /* 1880 */ 87, 2022, 2021, 2055, 2020, 2019, 215, 652, 2030, 2029, - /* 1890 */ 2192, 2193, 2228, 2028, 2027, 171, 2194, 710, 2196, 2197, - /* 1900 */ 705, 707, 700, 2026, 2025, 2018, 2017, 2016, 1457, 2015, - /* 1910 */ 2192, 502, 2228, 2014, 1327, 343, 2194, 710, 2196, 2197, - /* 1920 */ 705, 2193, 700, 353, 354, 1865, 1323, 1864, 1863, 2211, - /* 1930 */ 1331, 707, 217, 218, 400, 1861, 1858, 520, 1857, 519, - /* 1940 */ 524, 2161, 1850, 706, 523, 518, 522, 2375, 527, 526, - /* 1950 */ 1839, 528, 530, 1815, 1220, 76, 1814, 220, 2120, 2211, - /* 1960 */ 2110, 77, 182, 222, 402, 2098, 2181, 183, 538, 228, - /* 1970 */ 2097, 2161, 230, 706, 553, 554, 555, 2192, 2074, 2228, - /* 1980 */ 2193, 1939, 343, 2194, 710, 2196, 2197, 705, 616, 700, - /* 1990 */ 707, 1860, 1856, 1265, 1854, 558, 557, 1852, 559, 561, - /* 2000 */ 562, 563, 1849, 565, 566, 567, 799, 2192, 1834, 2228, - /* 2010 */ 1832, 1833, 343, 2194, 710, 2196, 2197, 705, 2211, 700, - /* 2020 */ 313, 1831, 1811, 1941, 1940, 1400, 1399, 764, 1314, 766, - /* 2030 */ 2161, 1312, 706, 1310, 1309, 1308, 180, 1847, 1307, 1301, - /* 2040 */ 1306, 63, 238, 1838, 789, 785, 781, 777, 1303, 311, - /* 2050 */ 1302, 1300, 378, 2193, 379, 1836, 380, 596, 1810, 1809, - /* 2060 */ 599, 601, 603, 707, 1808, 2119, 611, 605, 2228, 115, - /* 2070 */ 1531, 338, 2194, 710, 2196, 2197, 705, 1533, 700, 1530, - /* 2080 */ 1535, 1511, 29, 67, 2193, 1515, 2109, 2096, 1513, 110, - /* 2090 */ 164, 2211, 304, 620, 707, 2095, 2358, 20, 17, 1748, - /* 2100 */ 6, 21, 65, 2161, 31, 706, 57, 261, 7, 626, - /* 2110 */ 275, 638, 267, 621, 22, 1490, 1489, 274, 269, 2193, - /* 2120 */ 636, 172, 2211, 628, 1729, 686, 2182, 33, 24, 707, - /* 2130 */ 58, 273, 32, 23, 2161, 1721, 706, 1768, 18, 2192, - /* 2140 */ 1769, 2228, 95, 1763, 328, 2194, 710, 2196, 2197, 705, - /* 2150 */ 1762, 700, 389, 1767, 1766, 390, 2193, 2211, 287, 177, - /* 2160 */ 291, 2094, 2073, 292, 97, 1696, 707, 290, 59, 2161, - /* 2170 */ 2192, 706, 2228, 1695, 2072, 326, 2194, 710, 2196, 2197, - /* 2180 */ 705, 2193, 700, 96, 25, 295, 257, 99, 105, 293, - /* 2190 */ 305, 707, 1727, 300, 2211, 68, 26, 101, 1648, 11, - /* 2200 */ 13, 1647, 1571, 179, 2231, 2192, 2161, 2228, 706, 1658, - /* 2210 */ 329, 2194, 710, 2196, 2197, 705, 681, 700, 2193, 2211, - /* 2220 */ 302, 1603, 192, 711, 713, 1626, 1624, 403, 707, 699, - /* 2230 */ 39, 2161, 1623, 706, 16, 27, 717, 1595, 28, 720, - /* 2240 */ 1385, 715, 2192, 2193, 2228, 1382, 1381, 335, 2194, 710, - /* 2250 */ 2196, 2197, 705, 707, 700, 1378, 2211, 718, 721, 723, - /* 2260 */ 724, 726, 1372, 709, 1370, 729, 727, 2192, 2161, 2228, - /* 2270 */ 706, 730, 339, 2194, 710, 2196, 2197, 705, 1376, 700, - /* 2280 */ 106, 2211, 308, 1394, 1375, 1390, 107, 75, 1263, 1374, - /* 2290 */ 1373, 744, 1295, 2161, 1294, 706, 1293, 1292, 309, 1290, - /* 2300 */ 1288, 1287, 1286, 1321, 2192, 754, 2228, 1284, 1283, 331, - /* 2310 */ 2194, 710, 2196, 2197, 705, 2193, 700, 1282, 1281, 1280, - /* 2320 */ 1279, 1278, 1318, 1316, 1275, 707, 1274, 1271, 1270, 2192, - /* 2330 */ 2193, 2228, 1269, 1268, 340, 2194, 710, 2196, 2197, 705, - /* 2340 */ 707, 700, 1855, 774, 775, 776, 1853, 778, 2193, 779, - /* 2350 */ 1851, 782, 780, 2211, 783, 1848, 784, 786, 707, 788, - /* 2360 */ 1830, 790, 1210, 787, 1807, 2161, 312, 706, 2211, 794, - /* 2370 */ 1782, 1557, 798, 322, 797, 1782, 1782, 1782, 1782, 1782, - /* 2380 */ 2161, 1782, 706, 1782, 1782, 1782, 2211, 1782, 1782, 1782, - /* 2390 */ 1782, 1782, 1782, 1782, 1782, 2193, 1782, 1782, 2161, 1782, - /* 2400 */ 706, 2192, 1782, 2228, 1782, 707, 332, 2194, 710, 2196, - /* 2410 */ 2197, 705, 1782, 700, 1782, 1782, 2192, 2193, 2228, 1782, - /* 2420 */ 1782, 341, 2194, 710, 2196, 2197, 705, 707, 700, 1782, - /* 2430 */ 1782, 1782, 1782, 2211, 2192, 1782, 2228, 1782, 1782, 333, - /* 2440 */ 2194, 710, 2196, 2197, 705, 2161, 700, 706, 1782, 1782, - /* 2450 */ 1782, 1782, 1782, 1782, 1782, 2211, 1782, 1782, 1782, 1782, - /* 2460 */ 1782, 1782, 1782, 1782, 2193, 1782, 1782, 2161, 1782, 706, - /* 2470 */ 1782, 1782, 1782, 1782, 707, 1782, 1782, 1782, 1782, 1782, - /* 2480 */ 1782, 2192, 1782, 2228, 1782, 1782, 346, 2194, 710, 2196, - /* 2490 */ 2197, 705, 1782, 700, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2500 */ 1782, 1782, 2211, 2192, 1782, 2228, 1782, 1782, 347, 2194, - /* 2510 */ 710, 2196, 2197, 705, 2161, 700, 706, 1782, 1782, 1782, - /* 2520 */ 1782, 1782, 1782, 2193, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2530 */ 1782, 1782, 1782, 707, 1782, 1782, 2193, 1782, 1782, 1782, - /* 2540 */ 1782, 1782, 1782, 1782, 1782, 1782, 707, 1782, 1782, 1782, - /* 2550 */ 2192, 1782, 2228, 2193, 1782, 2205, 2194, 710, 2196, 2197, - /* 2560 */ 705, 2211, 700, 707, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2570 */ 1782, 1782, 1782, 2161, 2211, 706, 1782, 1782, 1782, 1782, - /* 2580 */ 1782, 1782, 1782, 1782, 1782, 2193, 2161, 1782, 706, 1782, - /* 2590 */ 1782, 2211, 1782, 1782, 1782, 707, 1782, 1782, 1782, 1782, - /* 2600 */ 1782, 1782, 1782, 2161, 1782, 706, 1782, 1782, 1782, 2192, - /* 2610 */ 1782, 2228, 1782, 1782, 2204, 2194, 710, 2196, 2197, 705, - /* 2620 */ 1782, 700, 2192, 2211, 2228, 1782, 1782, 2203, 2194, 710, - /* 2630 */ 2196, 2197, 705, 1782, 700, 2161, 1782, 706, 1782, 2192, - /* 2640 */ 1782, 2228, 1782, 1782, 362, 2194, 710, 2196, 2197, 705, - /* 2650 */ 1782, 700, 2193, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2660 */ 1782, 1782, 707, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2670 */ 1782, 2192, 2193, 2228, 1782, 1782, 363, 2194, 710, 2196, - /* 2680 */ 2197, 705, 707, 700, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2690 */ 2211, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2700 */ 1782, 1782, 2161, 1782, 706, 1782, 1782, 1782, 1782, 1782, - /* 2710 */ 2211, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2720 */ 1782, 1782, 2161, 1782, 706, 1782, 1782, 1782, 1782, 1782, - /* 2730 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2192, 1782, - /* 2740 */ 2228, 1782, 2193, 359, 2194, 710, 2196, 2197, 705, 1782, - /* 2750 */ 700, 1782, 707, 1782, 1782, 1782, 1782, 1782, 2192, 2193, - /* 2760 */ 2228, 1782, 1782, 364, 2194, 710, 2196, 2197, 705, 707, - /* 2770 */ 700, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2780 */ 2211, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2790 */ 1782, 1782, 2161, 1782, 706, 1782, 1782, 2211, 1782, 1782, - /* 2800 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2161, - /* 2810 */ 1782, 706, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2820 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 708, 1782, - /* 2830 */ 2228, 1782, 1782, 338, 2194, 710, 2196, 2197, 705, 1782, - /* 2840 */ 700, 1782, 1782, 1782, 1782, 2192, 1782, 2228, 1782, 1782, - /* 2850 */ 337, 2194, 710, 2196, 2197, 705, 1782, 700, + /* 0 */ 2197, 535, 2175, 221, 536, 1823, 448, 538, 90, 1830, + /* 10 */ 708, 447, 48, 46, 1710, 454, 2183, 169, 2175, 1799, + /* 20 */ 402, 690, 1557, 41, 40, 372, 2179, 47, 45, 44, + /* 30 */ 43, 42, 1955, 1638, 1959, 1555, 38, 307, 2215, 2086, + /* 40 */ 41, 40, 2179, 2175, 47, 45, 44, 43, 42, 1810, + /* 50 */ 2165, 395, 707, 631, 2083, 678, 2359, 2184, 168, 2197, + /* 60 */ 349, 650, 1633, 2158, 2181, 399, 1905, 2179, 19, 671, + /* 70 */ 1584, 396, 2365, 188, 701, 1563, 30, 2360, 657, 166, + /* 80 */ 2181, 1215, 656, 362, 1582, 2359, 2196, 1966, 2232, 2215, + /* 90 */ 701, 170, 2198, 711, 2200, 2201, 706, 2215, 701, 2165, + /* 100 */ 797, 655, 188, 15, 51, 2181, 2360, 657, 223, 2165, + /* 110 */ 631, 707, 538, 2359, 1830, 701, 48, 46, 2364, 540, + /* 120 */ 1217, 2359, 1220, 1221, 402, 537, 1557, 1667, 1809, 2365, + /* 130 */ 188, 1942, 632, 2324, 2360, 657, 1750, 1638, 2363, 1555, + /* 140 */ 1640, 1641, 2360, 2362, 649, 2196, 184, 2232, 532, 1317, + /* 150 */ 112, 2198, 711, 2200, 2201, 706, 530, 701, 2004, 526, + /* 160 */ 522, 1240, 185, 1239, 2285, 405, 1633, 62, 398, 2281, + /* 170 */ 1613, 1623, 19, 163, 66, 149, 1639, 1642, 2165, 1563, + /* 180 */ 384, 1966, 190, 543, 1668, 1788, 536, 1823, 2015, 1319, + /* 190 */ 2313, 1558, 125, 1556, 1241, 124, 123, 122, 121, 120, + /* 200 */ 119, 118, 117, 116, 797, 2086, 125, 15, 2197, 124, + /* 210 */ 123, 122, 121, 120, 119, 118, 117, 116, 708, 1582, + /* 220 */ 2084, 678, 288, 1561, 1562, 1787, 1612, 1615, 1616, 1617, + /* 230 */ 1618, 1619, 1620, 1621, 1622, 703, 699, 1631, 1632, 1634, + /* 240 */ 1635, 1636, 1637, 2, 1640, 1641, 2215, 690, 1583, 134, + /* 250 */ 133, 132, 131, 130, 129, 128, 127, 126, 2165, 2364, + /* 260 */ 707, 289, 37, 400, 1662, 1663, 1664, 1665, 1666, 1670, + /* 270 */ 1671, 1672, 1673, 62, 1613, 1623, 1584, 181, 41, 40, + /* 280 */ 1639, 1642, 47, 45, 44, 43, 42, 691, 1964, 407, + /* 290 */ 1585, 109, 2010, 2012, 2196, 1558, 2232, 1556, 2070, 112, + /* 300 */ 2198, 711, 2200, 2201, 706, 2048, 701, 135, 145, 147, + /* 310 */ 1582, 151, 2256, 2285, 575, 2197, 1956, 398, 2281, 47, + /* 320 */ 45, 44, 43, 42, 289, 671, 2300, 1561, 1562, 676, + /* 330 */ 1612, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 703, + /* 340 */ 699, 1631, 1632, 1634, 1635, 1636, 1637, 2, 12, 48, + /* 350 */ 46, 1557, 2297, 2215, 181, 458, 2065, 402, 1941, 1557, + /* 360 */ 1773, 1373, 668, 144, 1555, 2165, 62, 707, 1408, 1409, + /* 370 */ 1638, 12, 1555, 10, 370, 2069, 1364, 736, 735, 734, + /* 380 */ 1368, 733, 1370, 1371, 732, 729, 690, 1379, 726, 1381, + /* 390 */ 1382, 723, 720, 717, 464, 2065, 668, 144, 1583, 1633, + /* 400 */ 2300, 2196, 202, 2232, 1563, 19, 112, 2198, 711, 2200, + /* 410 */ 2201, 706, 1563, 701, 593, 592, 591, 2300, 185, 552, + /* 420 */ 2285, 583, 141, 587, 398, 2281, 2296, 586, 288, 797, + /* 430 */ 289, 405, 585, 590, 378, 377, 1738, 797, 584, 166, + /* 440 */ 15, 205, 266, 2295, 41, 40, 2314, 1966, 47, 45, + /* 450 */ 44, 43, 42, 48, 46, 1643, 1808, 1240, 677, 1239, + /* 460 */ 1614, 402, 375, 1557, 476, 670, 186, 2293, 2294, 51, + /* 470 */ 142, 2298, 140, 475, 1638, 252, 1555, 1640, 1641, 251, + /* 480 */ 1582, 2011, 2012, 643, 642, 1736, 1737, 1739, 1740, 1741, + /* 490 */ 1241, 744, 156, 155, 741, 740, 739, 153, 660, 2197, + /* 500 */ 187, 2293, 2294, 1633, 142, 2298, 2165, 1613, 1623, 708, + /* 510 */ 550, 1832, 2079, 1639, 1642, 746, 1563, 103, 1483, 1484, + /* 520 */ 1558, 1939, 1556, 289, 646, 691, 1964, 663, 1558, 436, + /* 530 */ 1556, 376, 2017, 374, 373, 52, 577, 2215, 1807, 383, + /* 540 */ 93, 797, 1957, 357, 49, 193, 382, 2015, 609, 2165, + /* 550 */ 1866, 707, 1561, 1562, 1482, 1485, 438, 434, 579, 1940, + /* 560 */ 1561, 1562, 578, 1612, 1615, 1616, 1617, 1618, 1619, 1620, + /* 570 */ 1621, 1622, 703, 699, 1631, 1632, 1634, 1635, 1636, 1637, + /* 580 */ 2, 1640, 1641, 691, 1964, 2196, 146, 2232, 2165, 2256, + /* 590 */ 112, 2198, 711, 2200, 2201, 706, 2130, 701, 1243, 1244, + /* 600 */ 411, 410, 2379, 135, 2285, 691, 1964, 651, 398, 2281, + /* 610 */ 580, 1613, 1623, 62, 652, 647, 640, 1639, 1642, 1780, + /* 620 */ 593, 592, 591, 1564, 12, 56, 746, 583, 141, 587, + /* 630 */ 1466, 1467, 1558, 586, 1556, 498, 677, 1806, 585, 590, + /* 640 */ 378, 377, 41, 40, 584, 254, 47, 45, 44, 43, + /* 650 */ 42, 2197, 491, 2065, 744, 156, 155, 741, 740, 739, + /* 660 */ 153, 708, 579, 2321, 1561, 1562, 578, 1612, 1615, 1616, + /* 670 */ 1617, 1618, 1619, 1620, 1621, 1622, 703, 699, 1631, 1632, + /* 680 */ 1634, 1635, 1636, 1637, 2, 48, 46, 2165, 675, 2215, + /* 690 */ 2079, 1328, 289, 402, 1332, 1557, 212, 211, 2017, 210, + /* 700 */ 446, 2165, 445, 707, 1327, 2017, 1638, 1331, 1555, 2148, + /* 710 */ 41, 40, 368, 2016, 47, 45, 44, 43, 42, 497, + /* 720 */ 2015, 1779, 616, 677, 571, 570, 738, 668, 144, 2008, + /* 730 */ 2197, 90, 444, 691, 1964, 1633, 661, 2196, 1749, 2232, + /* 740 */ 705, 1563, 112, 2198, 711, 2200, 2201, 706, 1563, 701, + /* 750 */ 298, 299, 34, 452, 2379, 297, 2285, 1960, 41, 40, + /* 760 */ 398, 2281, 47, 45, 44, 43, 42, 664, 2215, 507, + /* 770 */ 289, 2364, 509, 797, 2359, 686, 49, 2079, 691, 1964, + /* 780 */ 2165, 1567, 707, 756, 656, 691, 1964, 2359, 2363, 48, + /* 790 */ 46, 2363, 44, 43, 42, 2360, 2361, 402, 453, 1557, + /* 800 */ 691, 1964, 607, 655, 188, 466, 1726, 630, 2360, 657, + /* 810 */ 1638, 1805, 1555, 1640, 1641, 605, 2196, 603, 2232, 737, + /* 820 */ 481, 343, 2198, 711, 2200, 2201, 706, 704, 701, 692, + /* 830 */ 2250, 286, 2293, 667, 1804, 136, 666, 742, 2359, 1633, + /* 840 */ 2008, 2197, 1803, 1613, 1623, 691, 1964, 691, 1964, 1639, + /* 850 */ 1642, 708, 1563, 2334, 655, 188, 14, 13, 1274, 2360, + /* 860 */ 657, 2165, 36, 262, 1558, 482, 1556, 551, 41, 40, + /* 870 */ 691, 1964, 47, 45, 44, 43, 42, 797, 1802, 2215, + /* 880 */ 15, 41, 40, 1953, 2165, 47, 45, 44, 43, 42, + /* 890 */ 1961, 2165, 2165, 707, 1949, 2159, 1561, 1562, 1275, 1612, + /* 900 */ 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 703, 699, + /* 910 */ 1631, 1632, 1634, 1635, 1636, 1637, 2, 1640, 1641, 573, + /* 920 */ 572, 668, 144, 691, 1964, 253, 431, 2196, 2165, 2232, + /* 930 */ 1906, 60, 112, 2198, 711, 2200, 2201, 706, 628, 701, + /* 940 */ 589, 588, 631, 255, 2379, 2359, 2285, 1613, 1623, 743, + /* 950 */ 398, 2281, 2008, 1639, 1642, 691, 1964, 2017, 693, 1681, + /* 960 */ 2257, 2365, 188, 237, 392, 1951, 2360, 657, 1558, 1947, + /* 970 */ 1556, 2017, 2015, 691, 1964, 263, 41, 40, 397, 173, + /* 980 */ 47, 45, 44, 43, 42, 1714, 2015, 569, 565, 561, + /* 990 */ 557, 1582, 236, 674, 9, 1528, 1529, 695, 207, 2257, + /* 1000 */ 1561, 1562, 1863, 1612, 1615, 1616, 1617, 1618, 1619, 1620, + /* 1010 */ 1621, 1622, 703, 699, 1631, 1632, 1634, 1635, 1636, 1637, + /* 1020 */ 2, 1707, 353, 167, 1580, 189, 2293, 2294, 328, 142, + /* 1030 */ 2298, 489, 91, 1968, 505, 234, 408, 504, 86, 691, + /* 1040 */ 1964, 85, 325, 73, 166, 165, 72, 691, 1964, 2017, + /* 1050 */ 768, 766, 1966, 472, 259, 506, 406, 350, 1669, 302, + /* 1060 */ 474, 1585, 1801, 1585, 2015, 659, 614, 688, 219, 517, + /* 1070 */ 515, 512, 774, 773, 772, 771, 414, 1800, 770, 769, + /* 1080 */ 148, 764, 763, 762, 761, 760, 759, 758, 158, 754, + /* 1090 */ 753, 752, 413, 412, 749, 748, 747, 176, 175, 691, + /* 1100 */ 1964, 1648, 321, 233, 227, 1994, 371, 1582, 62, 702, + /* 1110 */ 232, 548, 2165, 631, 691, 1964, 2359, 757, 460, 689, + /* 1120 */ 1926, 744, 156, 155, 741, 740, 739, 153, 672, 225, + /* 1130 */ 691, 1964, 2365, 188, 308, 1798, 35, 2360, 657, 1220, + /* 1140 */ 1221, 1614, 1797, 1223, 2305, 1701, 1674, 111, 502, 1581, + /* 1150 */ 409, 496, 495, 494, 493, 488, 487, 486, 485, 484, + /* 1160 */ 480, 479, 478, 477, 352, 469, 468, 467, 1796, 462, + /* 1170 */ 461, 369, 1795, 2327, 166, 631, 154, 54, 2359, 3, + /* 1180 */ 1794, 283, 1967, 1785, 1793, 2165, 2151, 1792, 81, 80, + /* 1190 */ 451, 2197, 2165, 200, 2365, 188, 74, 1791, 1790, 2360, + /* 1200 */ 657, 708, 83, 638, 137, 242, 443, 441, 240, 244, + /* 1210 */ 581, 644, 243, 203, 1701, 265, 246, 351, 2165, 245, + /* 1220 */ 432, 2197, 2165, 430, 426, 422, 419, 444, 154, 2215, + /* 1230 */ 2165, 708, 1315, 2352, 2165, 424, 55, 2165, 455, 154, + /* 1240 */ 611, 2165, 610, 707, 582, 1850, 84, 2165, 2165, 264, + /* 1250 */ 248, 456, 2197, 247, 1841, 1566, 417, 1614, 1839, 2215, + /* 1260 */ 698, 416, 708, 139, 2304, 289, 1313, 594, 1833, 50, + /* 1270 */ 1904, 2165, 50, 707, 270, 277, 596, 2196, 1706, 2232, + /* 1280 */ 599, 154, 112, 2198, 711, 2200, 2201, 706, 1523, 701, + /* 1290 */ 2215, 50, 94, 1903, 2379, 1565, 2285, 1782, 1783, 1526, + /* 1300 */ 398, 2281, 2165, 631, 707, 385, 2359, 2196, 2186, 2232, + /* 1310 */ 295, 71, 112, 2198, 711, 2200, 2201, 706, 792, 701, + /* 1320 */ 598, 152, 2365, 188, 2379, 154, 2285, 2360, 657, 1735, + /* 1330 */ 398, 2281, 1734, 64, 272, 608, 14, 13, 2196, 50, + /* 1340 */ 2232, 673, 2197, 112, 2198, 711, 2200, 2201, 706, 250, + /* 1350 */ 701, 1480, 708, 411, 410, 2379, 2216, 2285, 108, 50, + /* 1360 */ 415, 398, 2281, 1571, 2188, 601, 715, 152, 105, 154, + /* 1370 */ 300, 683, 595, 2197, 1638, 2074, 1564, 1824, 249, 750, + /* 1380 */ 2215, 304, 138, 708, 152, 1358, 751, 1829, 2005, 669, + /* 1390 */ 2317, 285, 2165, 1675, 707, 282, 1, 418, 5, 1624, + /* 1400 */ 423, 1293, 1588, 1633, 366, 440, 439, 195, 1291, 196, + /* 1410 */ 2197, 2215, 442, 1569, 198, 1659, 1563, 315, 70, 320, + /* 1420 */ 708, 69, 1504, 2165, 1581, 707, 1386, 1390, 2196, 1397, + /* 1430 */ 2232, 457, 209, 112, 2198, 711, 2200, 2201, 706, 1585, + /* 1440 */ 701, 697, 1395, 459, 157, 2260, 463, 2285, 2215, 2075, + /* 1450 */ 465, 398, 2281, 1568, 500, 470, 1580, 483, 2067, 2196, + /* 1460 */ 2165, 2232, 707, 490, 112, 2198, 711, 2200, 2201, 706, + /* 1470 */ 492, 701, 499, 501, 511, 510, 2258, 508, 2285, 213, + /* 1480 */ 214, 513, 398, 2281, 514, 1586, 4, 216, 516, 518, + /* 1490 */ 533, 534, 541, 542, 544, 1583, 2196, 545, 2232, 2197, + /* 1500 */ 224, 112, 2198, 711, 2200, 2201, 706, 226, 701, 708, + /* 1510 */ 1587, 546, 1589, 694, 547, 2285, 549, 553, 574, 398, + /* 1520 */ 2281, 229, 231, 356, 88, 89, 92, 235, 114, 576, + /* 1530 */ 1954, 239, 1572, 1950, 1567, 241, 2139, 2215, 613, 615, + /* 1540 */ 159, 150, 316, 619, 2136, 256, 2135, 620, 2197, 2165, + /* 1550 */ 160, 707, 1952, 1948, 618, 161, 162, 645, 708, 258, + /* 1560 */ 260, 626, 623, 1511, 1575, 1577, 681, 2333, 2332, 8, + /* 1570 */ 635, 654, 641, 388, 2307, 276, 648, 699, 1631, 1632, + /* 1580 */ 1634, 1635, 1636, 1637, 625, 2196, 2215, 2232, 624, 268, + /* 1590 */ 113, 2198, 711, 2200, 2201, 706, 271, 701, 2165, 2318, + /* 1600 */ 707, 174, 2328, 636, 2285, 634, 633, 280, 2284, 2281, + /* 1610 */ 662, 281, 389, 2197, 665, 2382, 1701, 1584, 1704, 290, + /* 1620 */ 143, 98, 178, 708, 1590, 2080, 679, 2301, 317, 680, + /* 1630 */ 2094, 2093, 2092, 318, 2196, 394, 2232, 684, 2197, 113, + /* 1640 */ 2198, 711, 2200, 2201, 706, 685, 701, 100, 708, 319, + /* 1650 */ 102, 2215, 1965, 2285, 61, 2266, 278, 696, 2281, 279, + /* 1660 */ 104, 713, 2009, 2165, 191, 707, 311, 322, 1927, 793, + /* 1670 */ 346, 53, 2358, 796, 284, 331, 2215, 794, 345, 335, + /* 1680 */ 358, 326, 359, 2157, 2156, 2155, 78, 2152, 2165, 420, + /* 1690 */ 707, 1548, 324, 421, 1549, 194, 425, 2150, 427, 709, + /* 1700 */ 428, 2232, 429, 2197, 113, 2198, 711, 2200, 2201, 706, + /* 1710 */ 2149, 701, 367, 708, 2147, 433, 2146, 435, 2285, 2145, + /* 1720 */ 1539, 437, 361, 2281, 2196, 2126, 2232, 197, 2125, 171, + /* 1730 */ 2198, 711, 2200, 2201, 706, 199, 701, 79, 1507, 1506, + /* 1740 */ 2107, 2215, 2106, 2105, 2104, 449, 450, 2103, 1457, 2058, + /* 1750 */ 2057, 2054, 2197, 2165, 201, 707, 2053, 82, 2052, 2051, + /* 1760 */ 2056, 2055, 708, 87, 204, 2050, 2049, 2197, 2047, 2046, + /* 1770 */ 2045, 206, 471, 2044, 473, 2060, 2043, 708, 2197, 2042, + /* 1780 */ 2041, 658, 2380, 2040, 2039, 2038, 2037, 2036, 708, 2196, + /* 1790 */ 2215, 2232, 208, 2028, 113, 2198, 711, 2200, 2201, 706, + /* 1800 */ 2035, 701, 2165, 2034, 707, 2215, 2033, 2032, 2285, 2031, + /* 1810 */ 386, 2030, 2029, 2282, 2027, 2026, 2215, 2165, 2025, 707, + /* 1820 */ 2059, 387, 2024, 2023, 1459, 2022, 2021, 2020, 2165, 354, + /* 1830 */ 707, 503, 2019, 2018, 1869, 1329, 355, 1868, 2196, 1333, + /* 1840 */ 2232, 2197, 1867, 170, 2198, 711, 2200, 2201, 706, 1865, + /* 1850 */ 701, 708, 215, 2196, 1325, 2232, 217, 2197, 344, 2198, + /* 1860 */ 711, 2200, 2201, 706, 2196, 701, 2232, 708, 1862, 344, + /* 1870 */ 2198, 711, 2200, 2201, 706, 519, 701, 520, 218, 2215, + /* 1880 */ 521, 1861, 523, 525, 524, 2325, 1854, 527, 528, 529, + /* 1890 */ 1843, 2165, 531, 707, 1819, 2215, 220, 76, 2185, 182, + /* 1900 */ 183, 1222, 1818, 539, 222, 77, 2124, 2165, 2114, 707, + /* 1910 */ 2102, 228, 2101, 230, 2078, 1943, 1864, 1267, 1860, 554, + /* 1920 */ 2197, 556, 555, 1858, 558, 559, 1856, 2196, 562, 2232, + /* 1930 */ 708, 1853, 337, 2198, 711, 2200, 2201, 706, 560, 701, + /* 1940 */ 563, 1838, 564, 2196, 566, 2232, 2197, 567, 171, 2198, + /* 1950 */ 711, 2200, 2201, 706, 1836, 701, 705, 63, 2215, 568, + /* 1960 */ 1837, 1835, 1815, 393, 1945, 1402, 1401, 1944, 1316, 238, + /* 1970 */ 2165, 1314, 707, 1312, 1311, 1310, 653, 1309, 1308, 765, + /* 1980 */ 1303, 2197, 1305, 1304, 2215, 1302, 1851, 379, 1842, 767, + /* 1990 */ 380, 708, 1840, 381, 600, 1814, 2165, 597, 707, 1813, + /* 2000 */ 1812, 2381, 606, 115, 602, 604, 2196, 2197, 2232, 1533, + /* 2010 */ 1535, 344, 2198, 711, 2200, 2201, 706, 708, 701, 2215, + /* 2020 */ 1532, 1537, 29, 2123, 401, 67, 1513, 1515, 1517, 2113, + /* 2030 */ 164, 2165, 2196, 707, 2232, 57, 621, 343, 2198, 711, + /* 2040 */ 2200, 2201, 706, 622, 701, 2215, 2251, 2100, 261, 2099, + /* 2050 */ 403, 1492, 1491, 627, 2364, 629, 20, 2165, 31, 707, + /* 2060 */ 17, 6, 21, 7, 22, 274, 267, 2196, 33, 2232, + /* 2070 */ 1752, 2197, 344, 2198, 711, 2200, 2201, 706, 617, 701, + /* 2080 */ 637, 708, 269, 639, 275, 1733, 2186, 65, 23, 24, + /* 2090 */ 172, 1767, 273, 2196, 1725, 2232, 800, 32, 344, 2198, + /* 2100 */ 711, 2200, 2201, 706, 2197, 701, 95, 18, 1772, 2215, + /* 2110 */ 314, 1773, 287, 1766, 708, 390, 1771, 59, 1770, 58, + /* 2120 */ 391, 2165, 177, 707, 2098, 2077, 180, 97, 682, 1698, + /* 2130 */ 1697, 96, 2076, 2197, 790, 786, 782, 778, 293, 312, + /* 2140 */ 294, 25, 2215, 708, 1731, 296, 301, 68, 99, 303, + /* 2150 */ 306, 101, 26, 1650, 2165, 1649, 707, 612, 11, 2232, + /* 2160 */ 13, 1573, 339, 2198, 711, 2200, 2201, 706, 105, 701, + /* 2170 */ 2197, 2215, 1660, 2235, 179, 1628, 1626, 700, 192, 110, + /* 2180 */ 708, 1605, 305, 2165, 714, 707, 404, 718, 721, 39, + /* 2190 */ 2196, 1625, 2232, 16, 1378, 329, 2198, 711, 2200, 2201, + /* 2200 */ 706, 2197, 701, 27, 724, 1597, 712, 28, 2215, 1387, + /* 2210 */ 716, 708, 727, 730, 1384, 687, 719, 722, 710, 2196, + /* 2220 */ 2165, 2232, 707, 1383, 327, 2198, 711, 2200, 2201, 706, + /* 2230 */ 1380, 701, 725, 2197, 1374, 309, 728, 1377, 1372, 2215, + /* 2240 */ 731, 1376, 1375, 708, 106, 107, 1396, 75, 1392, 1265, + /* 2250 */ 292, 2165, 745, 707, 1297, 1296, 2196, 291, 2232, 1295, + /* 2260 */ 1294, 330, 2198, 711, 2200, 2201, 706, 1292, 701, 1290, + /* 2270 */ 1289, 2215, 1288, 1323, 310, 1286, 257, 1285, 755, 1284, + /* 2280 */ 1283, 1282, 1281, 2165, 1280, 707, 1318, 2196, 1320, 2232, + /* 2290 */ 1277, 1276, 336, 2198, 711, 2200, 2201, 706, 2197, 701, + /* 2300 */ 1273, 1272, 1271, 1270, 1859, 775, 776, 1857, 708, 779, + /* 2310 */ 777, 780, 781, 1855, 783, 785, 784, 1852, 787, 2196, + /* 2320 */ 1834, 2232, 791, 2197, 340, 2198, 711, 2200, 2201, 706, + /* 2330 */ 788, 701, 789, 708, 1212, 1811, 2215, 313, 1559, 795, + /* 2340 */ 1786, 323, 798, 799, 1786, 1786, 1786, 1786, 2165, 2197, + /* 2350 */ 707, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 708, + /* 2360 */ 2197, 2215, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2370 */ 708, 1786, 1786, 2165, 1786, 707, 1786, 1786, 1786, 1786, + /* 2380 */ 1786, 1786, 1786, 1786, 2196, 1786, 2232, 2215, 1786, 332, + /* 2390 */ 2198, 711, 2200, 2201, 706, 1786, 701, 1786, 2215, 2165, + /* 2400 */ 1786, 707, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2196, + /* 2410 */ 2165, 2232, 707, 1786, 341, 2198, 711, 2200, 2201, 706, + /* 2420 */ 1786, 701, 1786, 2197, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2430 */ 1786, 1786, 1786, 708, 1786, 2196, 1786, 2232, 1786, 1786, + /* 2440 */ 333, 2198, 711, 2200, 2201, 706, 2196, 701, 2232, 1786, + /* 2450 */ 1786, 342, 2198, 711, 2200, 2201, 706, 1786, 701, 1786, + /* 2460 */ 1786, 2215, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2470 */ 1786, 1786, 1786, 2165, 1786, 707, 1786, 1786, 1786, 1786, + /* 2480 */ 1786, 1786, 1786, 1786, 2197, 1786, 1786, 1786, 1786, 1786, + /* 2490 */ 1786, 1786, 1786, 1786, 708, 1786, 1786, 1786, 1786, 1786, + /* 2500 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2196, + /* 2510 */ 1786, 2232, 1786, 2197, 334, 2198, 711, 2200, 2201, 706, + /* 2520 */ 1786, 701, 2215, 708, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2530 */ 1786, 1786, 1786, 1786, 2165, 1786, 707, 1786, 1786, 1786, + /* 2540 */ 1786, 1786, 1786, 2197, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2550 */ 1786, 2215, 1786, 708, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2560 */ 1786, 1786, 1786, 2165, 2197, 707, 1786, 1786, 1786, 1786, + /* 2570 */ 2196, 1786, 2232, 1786, 708, 347, 2198, 711, 2200, 2201, + /* 2580 */ 706, 2215, 701, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2590 */ 1786, 1786, 1786, 2165, 1786, 707, 1786, 1786, 1786, 2196, + /* 2600 */ 1786, 2232, 2215, 1786, 348, 2198, 711, 2200, 2201, 706, + /* 2610 */ 1786, 701, 1786, 2197, 2165, 1786, 707, 1786, 1786, 1786, + /* 2620 */ 1786, 1786, 1786, 708, 1786, 1786, 1786, 1786, 1786, 2196, + /* 2630 */ 1786, 2232, 1786, 1786, 2209, 2198, 711, 2200, 2201, 706, + /* 2640 */ 1786, 701, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2650 */ 2196, 2215, 2232, 1786, 1786, 2208, 2198, 711, 2200, 2201, + /* 2660 */ 706, 1786, 701, 2165, 1786, 707, 1786, 1786, 1786, 1786, + /* 2670 */ 1786, 1786, 1786, 1786, 1786, 2197, 1786, 1786, 1786, 1786, + /* 2680 */ 1786, 1786, 1786, 1786, 1786, 708, 1786, 1786, 1786, 1786, + /* 2690 */ 2197, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2196, + /* 2700 */ 708, 2232, 1786, 1786, 2207, 2198, 711, 2200, 2201, 706, + /* 2710 */ 1786, 701, 2197, 2215, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2720 */ 1786, 1786, 708, 1786, 1786, 2165, 1786, 707, 2215, 1786, + /* 2730 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2740 */ 2165, 2197, 707, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2750 */ 2215, 708, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2760 */ 1786, 2196, 2165, 2232, 707, 1786, 363, 2198, 711, 2200, + /* 2770 */ 2201, 706, 1786, 701, 1786, 1786, 2196, 1786, 2232, 2215, + /* 2780 */ 1786, 364, 2198, 711, 2200, 2201, 706, 1786, 701, 1786, + /* 2790 */ 1786, 2165, 1786, 707, 1786, 1786, 1786, 1786, 2196, 1786, + /* 2800 */ 2232, 1786, 1786, 360, 2198, 711, 2200, 2201, 706, 1786, + /* 2810 */ 701, 1786, 1786, 1786, 1786, 2197, 1786, 1786, 1786, 1786, + /* 2820 */ 1786, 1786, 1786, 1786, 1786, 708, 1786, 2196, 1786, 2232, + /* 2830 */ 1786, 1786, 365, 2198, 711, 2200, 2201, 706, 1786, 701, + /* 2840 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2850 */ 1786, 1786, 1786, 2215, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2860 */ 1786, 1786, 1786, 1786, 2197, 2165, 1786, 707, 1786, 1786, + /* 2870 */ 1786, 1786, 1786, 1786, 708, 1786, 1786, 1786, 1786, 1786, + /* 2880 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2890 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2900 */ 1786, 709, 2215, 2232, 1786, 1786, 339, 2198, 711, 2200, + /* 2910 */ 2201, 706, 1786, 701, 2165, 1786, 707, 1786, 1786, 1786, + /* 2920 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2930 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2940 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2950 */ 2196, 1786, 2232, 1786, 1786, 338, 2198, 711, 2200, 2201, + /* 2960 */ 706, 1786, 701, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 375, 341, 367, 393, 346, 350, 351, 411, 350, 380, - /* 10 */ 352, 351, 12, 13, 14, 405, 381, 4, 408, 409, - /* 20 */ 20, 3, 22, 8, 9, 370, 391, 12, 13, 14, - /* 30 */ 15, 16, 377, 33, 350, 35, 367, 14, 20, 379, - /* 40 */ 8, 9, 338, 20, 12, 13, 14, 15, 16, 424, - /* 50 */ 381, 391, 380, 393, 458, 49, 43, 461, 45, 46, - /* 60 */ 391, 379, 62, 57, 429, 430, 60, 61, 68, 20, - /* 70 */ 4, 22, 476, 477, 439, 75, 44, 481, 482, 395, - /* 80 */ 20, 399, 400, 68, 35, 350, 351, 427, 20, 429, - /* 90 */ 350, 351, 432, 433, 434, 435, 436, 437, 429, 439, - /* 100 */ 100, 360, 53, 103, 444, 370, 446, 357, 439, 368, - /* 110 */ 450, 451, 377, 84, 393, 411, 12, 13, 350, 351, - /* 120 */ 416, 20, 104, 463, 20, 62, 22, 112, 100, 408, - /* 130 */ 409, 471, 382, 20, 447, 448, 104, 33, 370, 35, - /* 140 */ 140, 141, 341, 115, 116, 117, 118, 119, 120, 121, - /* 150 */ 122, 123, 124, 341, 126, 127, 128, 129, 130, 131, - /* 160 */ 132, 378, 458, 103, 458, 461, 62, 461, 105, 103, - /* 170 */ 170, 171, 68, 390, 145, 146, 176, 177, 20, 75, - /* 180 */ 476, 477, 476, 477, 169, 481, 482, 481, 482, 431, - /* 190 */ 172, 191, 391, 193, 454, 455, 456, 168, 458, 459, - /* 200 */ 340, 461, 342, 391, 100, 8, 9, 103, 341, 12, - /* 210 */ 13, 14, 15, 16, 103, 457, 476, 477, 351, 35, - /* 220 */ 186, 481, 482, 223, 224, 0, 226, 227, 228, 229, + /* 0 */ 341, 345, 367, 346, 348, 349, 411, 350, 359, 352, + /* 10 */ 351, 416, 12, 13, 14, 350, 381, 340, 367, 342, + /* 20 */ 20, 20, 22, 8, 9, 376, 391, 12, 13, 14, + /* 30 */ 15, 16, 381, 33, 385, 35, 447, 448, 379, 393, + /* 40 */ 8, 9, 391, 367, 12, 13, 14, 15, 16, 341, + /* 50 */ 391, 405, 393, 458, 408, 409, 461, 381, 360, 341, + /* 60 */ 395, 351, 62, 411, 429, 430, 368, 391, 68, 351, + /* 70 */ 20, 371, 477, 478, 439, 75, 44, 482, 483, 379, + /* 80 */ 429, 4, 458, 68, 20, 461, 427, 387, 429, 379, + /* 90 */ 439, 432, 433, 434, 435, 436, 437, 379, 439, 391, + /* 100 */ 100, 477, 478, 103, 103, 429, 482, 483, 346, 391, + /* 110 */ 458, 393, 350, 461, 352, 439, 12, 13, 458, 14, + /* 120 */ 43, 461, 45, 46, 20, 20, 22, 112, 341, 477, + /* 130 */ 478, 0, 473, 474, 482, 483, 104, 33, 478, 35, + /* 140 */ 140, 141, 482, 483, 434, 427, 378, 429, 49, 35, + /* 150 */ 432, 433, 434, 435, 436, 437, 57, 439, 390, 60, + /* 160 */ 61, 20, 444, 22, 446, 371, 62, 103, 450, 451, + /* 170 */ 170, 171, 68, 379, 4, 44, 176, 177, 391, 75, + /* 180 */ 386, 387, 464, 345, 169, 0, 348, 349, 394, 75, + /* 190 */ 472, 191, 21, 193, 53, 24, 25, 26, 27, 28, + /* 200 */ 29, 30, 31, 32, 100, 393, 21, 103, 341, 24, + /* 210 */ 25, 26, 27, 28, 29, 30, 31, 32, 351, 20, + /* 220 */ 408, 409, 172, 223, 224, 0, 226, 227, 228, 229, /* 230 */ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - /* 240 */ 240, 241, 242, 243, 140, 141, 379, 213, 214, 24, - /* 250 */ 25, 26, 27, 28, 29, 30, 31, 32, 391, 75, - /* 260 */ 393, 0, 247, 248, 249, 250, 251, 252, 253, 254, - /* 270 */ 255, 256, 257, 345, 170, 171, 348, 349, 67, 20, - /* 280 */ 176, 177, 21, 170, 171, 24, 25, 26, 27, 28, - /* 290 */ 29, 30, 31, 32, 427, 191, 429, 193, 175, 432, - /* 300 */ 433, 434, 435, 436, 437, 20, 439, 0, 371, 442, - /* 310 */ 20, 444, 445, 446, 20, 341, 379, 450, 451, 20, - /* 320 */ 260, 22, 350, 351, 387, 351, 260, 223, 224, 4, + /* 240 */ 240, 241, 242, 243, 140, 141, 379, 20, 20, 24, + /* 250 */ 25, 26, 27, 28, 29, 30, 31, 32, 391, 3, + /* 260 */ 393, 260, 247, 248, 249, 250, 251, 252, 253, 254, + /* 270 */ 255, 256, 257, 103, 170, 171, 20, 379, 8, 9, + /* 280 */ 176, 177, 12, 13, 14, 15, 16, 350, 351, 389, + /* 290 */ 20, 357, 392, 393, 427, 191, 429, 193, 400, 432, + /* 300 */ 433, 434, 435, 436, 437, 0, 439, 370, 374, 442, + /* 310 */ 20, 444, 445, 446, 377, 341, 382, 450, 451, 12, + /* 320 */ 13, 14, 15, 16, 260, 351, 431, 223, 224, 20, /* 330 */ 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, /* 340 */ 236, 237, 238, 239, 240, 241, 242, 243, 244, 12, - /* 350 */ 13, 67, 53, 379, 379, 12, 13, 20, 47, 22, - /* 360 */ 458, 386, 103, 461, 379, 391, 20, 393, 114, 394, - /* 370 */ 33, 260, 35, 70, 71, 72, 350, 351, 35, 477, - /* 380 */ 77, 78, 79, 481, 482, 400, 83, 351, 265, 266, - /* 390 */ 267, 88, 89, 90, 91, 442, 370, 94, 445, 62, - /* 400 */ 135, 427, 48, 429, 139, 68, 432, 433, 434, 435, - /* 410 */ 436, 437, 75, 439, 103, 379, 134, 135, 444, 345, - /* 420 */ 446, 139, 348, 349, 450, 451, 454, 455, 456, 341, - /* 430 */ 458, 459, 14, 458, 140, 141, 461, 100, 20, 351, - /* 440 */ 103, 353, 8, 9, 35, 471, 12, 13, 14, 15, - /* 450 */ 16, 476, 477, 12, 13, 14, 481, 482, 346, 341, - /* 460 */ 170, 20, 350, 22, 352, 200, 159, 379, 203, 351, - /* 470 */ 434, 206, 379, 208, 33, 168, 35, 140, 141, 391, - /* 480 */ 387, 393, 458, 21, 75, 461, 24, 25, 26, 27, - /* 490 */ 28, 29, 30, 31, 32, 379, 103, 379, 341, 350, - /* 500 */ 351, 477, 386, 62, 244, 481, 482, 170, 171, 391, - /* 510 */ 394, 393, 357, 176, 177, 427, 75, 429, 172, 260, - /* 520 */ 432, 433, 434, 435, 436, 437, 172, 439, 191, 374, - /* 530 */ 193, 133, 444, 179, 446, 137, 193, 382, 450, 451, - /* 540 */ 14, 100, 350, 351, 103, 427, 20, 429, 391, 341, - /* 550 */ 432, 433, 434, 435, 436, 437, 244, 439, 246, 351, - /* 560 */ 223, 224, 370, 226, 227, 228, 229, 230, 231, 232, + /* 350 */ 13, 22, 457, 379, 379, 350, 351, 20, 0, 22, + /* 360 */ 104, 100, 350, 351, 35, 391, 103, 393, 140, 141, + /* 370 */ 33, 244, 35, 246, 399, 400, 115, 116, 117, 118, + /* 380 */ 119, 120, 121, 122, 123, 124, 20, 126, 127, 128, + /* 390 */ 129, 130, 131, 132, 350, 351, 350, 351, 20, 62, + /* 400 */ 431, 427, 397, 429, 75, 68, 432, 433, 434, 435, + /* 410 */ 436, 437, 75, 439, 70, 71, 72, 431, 444, 67, + /* 420 */ 446, 77, 78, 79, 450, 451, 457, 83, 172, 100, + /* 430 */ 260, 371, 88, 89, 90, 91, 223, 100, 94, 379, + /* 440 */ 103, 397, 172, 457, 8, 9, 472, 387, 12, 13, + /* 450 */ 14, 15, 16, 12, 13, 14, 341, 20, 350, 22, + /* 460 */ 170, 20, 37, 22, 159, 453, 454, 455, 456, 103, + /* 470 */ 458, 459, 35, 168, 33, 135, 35, 140, 141, 139, + /* 480 */ 20, 392, 393, 270, 271, 272, 273, 274, 275, 276, + /* 490 */ 53, 133, 134, 135, 136, 137, 138, 139, 44, 341, + /* 500 */ 454, 455, 456, 62, 458, 459, 391, 170, 171, 351, + /* 510 */ 402, 353, 404, 176, 177, 67, 75, 357, 140, 141, + /* 520 */ 191, 0, 193, 260, 175, 350, 351, 44, 191, 186, + /* 530 */ 193, 106, 379, 108, 109, 103, 111, 379, 341, 386, + /* 540 */ 200, 100, 382, 203, 103, 370, 206, 394, 208, 391, + /* 550 */ 0, 393, 223, 224, 176, 177, 213, 214, 133, 0, + /* 560 */ 223, 224, 137, 226, 227, 228, 229, 230, 231, 232, /* 570 */ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - /* 580 */ 243, 140, 141, 190, 22, 192, 261, 379, 8, 9, - /* 590 */ 472, 473, 12, 13, 14, 15, 16, 35, 431, 391, - /* 600 */ 20, 393, 453, 454, 455, 456, 172, 458, 459, 75, - /* 610 */ 341, 170, 171, 350, 351, 222, 389, 176, 177, 392, - /* 620 */ 393, 8, 9, 371, 457, 12, 13, 14, 15, 16, - /* 630 */ 431, 379, 191, 370, 193, 427, 350, 429, 386, 387, - /* 640 */ 432, 433, 434, 435, 436, 437, 394, 439, 134, 20, - /* 650 */ 411, 341, 444, 260, 446, 416, 457, 411, 450, 451, - /* 660 */ 391, 351, 100, 353, 223, 224, 44, 226, 227, 228, + /* 580 */ 243, 140, 141, 350, 351, 427, 442, 429, 391, 445, + /* 590 */ 432, 433, 434, 435, 436, 437, 375, 439, 54, 55, + /* 600 */ 12, 13, 444, 370, 446, 350, 351, 20, 450, 451, + /* 610 */ 377, 170, 171, 103, 265, 266, 267, 176, 177, 183, + /* 620 */ 70, 71, 72, 35, 244, 370, 67, 77, 78, 79, + /* 630 */ 170, 171, 191, 83, 193, 84, 350, 341, 88, 89, + /* 640 */ 90, 91, 8, 9, 94, 424, 12, 13, 14, 15, + /* 650 */ 16, 341, 350, 351, 133, 134, 135, 136, 137, 138, + /* 660 */ 139, 351, 133, 353, 223, 224, 137, 226, 227, 228, /* 670 */ 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - /* 680 */ 239, 240, 241, 242, 243, 12, 13, 0, 402, 379, - /* 690 */ 404, 350, 351, 20, 75, 22, 170, 458, 350, 351, - /* 700 */ 461, 391, 379, 393, 458, 0, 33, 461, 35, 386, - /* 710 */ 12, 13, 14, 15, 16, 476, 477, 394, 204, 205, - /* 720 */ 481, 482, 476, 477, 350, 351, 104, 481, 482, 1, - /* 730 */ 2, 223, 103, 350, 351, 62, 380, 427, 397, 429, - /* 740 */ 4, 350, 432, 433, 434, 435, 436, 437, 75, 439, - /* 750 */ 350, 351, 172, 370, 444, 19, 446, 0, 8, 9, - /* 760 */ 450, 451, 12, 13, 14, 15, 16, 341, 341, 33, - /* 770 */ 370, 397, 67, 100, 350, 351, 103, 351, 270, 271, - /* 780 */ 272, 273, 274, 275, 276, 49, 350, 351, 3, 12, - /* 790 */ 13, 0, 56, 402, 370, 404, 183, 20, 62, 22, - /* 800 */ 371, 20, 454, 455, 456, 379, 458, 459, 379, 443, - /* 810 */ 33, 445, 35, 140, 141, 0, 387, 391, 391, 393, - /* 820 */ 133, 134, 135, 136, 137, 138, 139, 70, 71, 72, - /* 830 */ 392, 393, 104, 397, 77, 78, 79, 22, 102, 62, - /* 840 */ 83, 105, 103, 170, 171, 88, 89, 90, 91, 176, - /* 850 */ 177, 94, 75, 427, 104, 429, 54, 55, 432, 433, - /* 860 */ 434, 435, 436, 437, 191, 439, 193, 441, 8, 9, - /* 870 */ 341, 380, 12, 13, 14, 15, 16, 100, 355, 356, - /* 880 */ 103, 341, 133, 134, 135, 136, 137, 138, 139, 341, - /* 890 */ 411, 351, 62, 353, 341, 380, 223, 224, 285, 226, + /* 680 */ 239, 240, 241, 242, 243, 12, 13, 391, 402, 379, + /* 690 */ 404, 22, 260, 20, 22, 22, 145, 146, 379, 397, + /* 700 */ 190, 391, 192, 393, 35, 379, 33, 35, 35, 0, + /* 710 */ 8, 9, 386, 394, 12, 13, 14, 15, 16, 168, + /* 720 */ 394, 285, 114, 350, 355, 356, 388, 350, 351, 391, + /* 730 */ 341, 359, 222, 350, 351, 62, 282, 427, 104, 429, + /* 740 */ 351, 75, 432, 433, 434, 435, 436, 437, 75, 439, + /* 750 */ 134, 135, 2, 370, 444, 139, 446, 385, 8, 9, + /* 760 */ 450, 451, 12, 13, 14, 15, 16, 284, 379, 100, + /* 770 */ 260, 458, 100, 100, 461, 402, 103, 404, 350, 351, + /* 780 */ 391, 193, 393, 75, 458, 350, 351, 461, 3, 12, + /* 790 */ 13, 478, 14, 15, 16, 482, 483, 20, 370, 22, + /* 800 */ 350, 351, 21, 477, 478, 370, 104, 48, 482, 483, + /* 810 */ 33, 341, 35, 140, 141, 34, 427, 36, 429, 114, + /* 820 */ 370, 432, 433, 434, 435, 436, 437, 438, 439, 440, + /* 830 */ 441, 454, 455, 456, 341, 458, 459, 388, 461, 62, + /* 840 */ 391, 341, 341, 170, 171, 350, 351, 350, 351, 176, + /* 850 */ 177, 351, 75, 353, 477, 478, 1, 2, 35, 482, + /* 860 */ 483, 391, 2, 417, 191, 370, 193, 370, 8, 9, + /* 870 */ 350, 351, 12, 13, 14, 15, 16, 100, 341, 379, + /* 880 */ 103, 8, 9, 380, 391, 12, 13, 14, 15, 16, + /* 890 */ 370, 391, 391, 393, 380, 411, 223, 224, 75, 226, /* 900 */ 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - /* 910 */ 237, 238, 239, 240, 241, 242, 243, 140, 141, 379, - /* 920 */ 391, 140, 141, 21, 133, 134, 135, 136, 137, 138, - /* 930 */ 139, 391, 102, 393, 379, 105, 34, 458, 36, 391, - /* 940 */ 461, 386, 350, 351, 391, 350, 351, 170, 171, 394, - /* 950 */ 114, 350, 351, 176, 177, 476, 477, 176, 177, 380, - /* 960 */ 481, 482, 370, 388, 104, 370, 391, 427, 191, 429, - /* 970 */ 193, 370, 432, 433, 434, 435, 436, 437, 39, 439, - /* 980 */ 364, 365, 2, 0, 444, 22, 446, 350, 8, 9, - /* 990 */ 450, 451, 12, 13, 14, 15, 16, 341, 35, 260, + /* 910 */ 237, 238, 239, 240, 241, 242, 243, 140, 141, 355, + /* 920 */ 356, 350, 351, 350, 351, 134, 217, 427, 391, 429, + /* 930 */ 368, 172, 432, 433, 434, 435, 436, 437, 179, 439, + /* 940 */ 364, 365, 458, 370, 444, 461, 446, 170, 171, 388, + /* 950 */ 450, 451, 391, 176, 177, 350, 351, 379, 443, 104, + /* 960 */ 445, 477, 478, 33, 386, 380, 482, 483, 191, 380, + /* 970 */ 193, 379, 394, 350, 351, 370, 8, 9, 386, 49, + /* 980 */ 12, 13, 14, 15, 16, 14, 394, 57, 58, 59, + /* 990 */ 60, 20, 62, 370, 39, 204, 205, 443, 62, 445, /* 1000 */ 223, 224, 0, 226, 227, 228, 229, 230, 231, 232, /* 1010 */ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - /* 1020 */ 243, 14, 18, 18, 20, 350, 351, 20, 23, 350, - /* 1030 */ 351, 27, 49, 359, 30, 355, 356, 33, 367, 402, - /* 1040 */ 371, 404, 37, 38, 0, 370, 41, 391, 379, 370, - /* 1050 */ 376, 379, 381, 49, 411, 51, 387, 52, 386, 385, - /* 1060 */ 56, 380, 391, 100, 341, 280, 394, 341, 63, 64, - /* 1070 */ 65, 66, 70, 71, 72, 73, 74, 0, 76, 77, + /* 1020 */ 243, 4, 18, 18, 20, 454, 455, 456, 23, 458, + /* 1030 */ 459, 27, 102, 380, 30, 105, 371, 33, 102, 350, + /* 1040 */ 351, 105, 37, 38, 379, 172, 41, 350, 351, 379, + /* 1050 */ 364, 365, 387, 49, 380, 51, 386, 52, 169, 370, + /* 1060 */ 56, 20, 341, 20, 394, 280, 411, 370, 63, 64, + /* 1070 */ 65, 66, 70, 71, 72, 73, 74, 342, 76, 77, /* 1080 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 1090 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 20, - /* 1100 */ 429, 458, 350, 351, 461, 20, 102, 33, 103, 37, - /* 1110 */ 439, 14, 15, 16, 391, 350, 351, 391, 114, 476, - /* 1120 */ 477, 44, 370, 49, 481, 482, 350, 351, 417, 350, - /* 1130 */ 351, 57, 58, 59, 60, 370, 62, 341, 44, 443, - /* 1140 */ 169, 445, 364, 365, 341, 341, 370, 142, 144, 370, - /* 1150 */ 341, 147, 148, 149, 150, 151, 152, 153, 154, 155, - /* 1160 */ 156, 157, 158, 159, 160, 161, 162, 163, 44, 165, - /* 1170 */ 166, 167, 350, 351, 258, 259, 102, 170, 106, 105, - /* 1180 */ 108, 109, 0, 111, 359, 341, 341, 391, 183, 184, - /* 1190 */ 185, 341, 370, 188, 391, 391, 341, 379, 259, 388, - /* 1200 */ 391, 351, 391, 353, 22, 133, 201, 202, 341, 137, - /* 1210 */ 385, 388, 394, 372, 391, 368, 375, 212, 247, 42, - /* 1220 */ 215, 44, 341, 218, 219, 220, 221, 222, 257, 379, - /* 1230 */ 366, 22, 351, 369, 353, 391, 391, 45, 46, 44, - /* 1240 */ 42, 391, 44, 393, 35, 114, 391, 173, 174, 13, - /* 1250 */ 107, 172, 341, 110, 180, 181, 107, 172, 391, 110, - /* 1260 */ 379, 217, 351, 107, 353, 260, 110, 107, 44, 13, - /* 1270 */ 110, 35, 391, 199, 393, 0, 44, 427, 207, 429, - /* 1280 */ 209, 44, 432, 433, 434, 435, 436, 437, 68, 439, - /* 1290 */ 379, 35, 140, 141, 444, 164, 446, 22, 342, 104, - /* 1300 */ 450, 451, 391, 474, 393, 35, 44, 44, 427, 103, - /* 1310 */ 429, 401, 485, 432, 433, 434, 435, 436, 437, 113, - /* 1320 */ 439, 44, 44, 35, 22, 444, 44, 446, 104, 44, - /* 1330 */ 44, 450, 451, 1, 2, 44, 104, 35, 427, 44, - /* 1340 */ 429, 104, 341, 432, 433, 434, 435, 436, 437, 44, - /* 1350 */ 439, 0, 351, 12, 13, 444, 468, 446, 2, 44, - /* 1360 */ 354, 450, 451, 22, 8, 9, 104, 104, 12, 13, - /* 1370 */ 14, 15, 16, 341, 33, 367, 35, 75, 284, 44, - /* 1380 */ 379, 104, 104, 351, 44, 13, 104, 367, 379, 104, - /* 1390 */ 104, 13, 391, 44, 393, 104, 410, 44, 401, 104, - /* 1400 */ 354, 50, 100, 62, 349, 351, 282, 35, 390, 104, - /* 1410 */ 341, 379, 401, 35, 460, 478, 75, 452, 49, 104, - /* 1420 */ 351, 462, 412, 391, 262, 393, 428, 20, 427, 206, - /* 1430 */ 429, 189, 359, 432, 433, 434, 435, 436, 437, 104, - /* 1440 */ 439, 100, 421, 223, 104, 444, 421, 446, 379, 426, - /* 1450 */ 359, 450, 451, 104, 414, 20, 351, 104, 42, 427, - /* 1460 */ 391, 429, 393, 193, 432, 433, 434, 435, 436, 437, - /* 1470 */ 20, 439, 351, 398, 396, 169, 444, 401, 446, 398, - /* 1480 */ 20, 193, 450, 451, 350, 398, 351, 350, 396, 396, - /* 1490 */ 101, 363, 99, 191, 362, 193, 427, 350, 429, 341, - /* 1500 */ 98, 432, 433, 434, 435, 436, 437, 361, 439, 351, - /* 1510 */ 20, 350, 343, 350, 350, 446, 48, 347, 343, 450, - /* 1520 */ 451, 347, 421, 20, 359, 223, 224, 359, 20, 393, - /* 1530 */ 352, 20, 191, 413, 193, 359, 352, 379, 359, 359, - /* 1540 */ 359, 350, 359, 343, 343, 379, 379, 350, 341, 391, - /* 1550 */ 379, 393, 379, 210, 425, 103, 423, 197, 351, 421, - /* 1560 */ 357, 420, 196, 391, 223, 224, 379, 379, 379, 379, - /* 1570 */ 419, 357, 379, 379, 341, 379, 391, 236, 237, 238, - /* 1580 */ 239, 240, 241, 242, 351, 427, 379, 429, 350, 195, - /* 1590 */ 432, 433, 434, 435, 436, 437, 391, 439, 391, 269, - /* 1600 */ 393, 393, 391, 277, 446, 401, 467, 268, 450, 451, - /* 1610 */ 391, 401, 379, 391, 412, 467, 391, 418, 406, 406, - /* 1620 */ 470, 182, 469, 279, 391, 341, 393, 263, 278, 412, - /* 1630 */ 486, 286, 259, 281, 427, 351, 429, 283, 341, 432, - /* 1640 */ 433, 434, 435, 436, 437, 351, 439, 20, 351, 357, - /* 1650 */ 352, 20, 466, 446, 404, 406, 357, 450, 451, 431, - /* 1660 */ 427, 406, 429, 379, 391, 432, 433, 434, 435, 436, - /* 1670 */ 437, 438, 439, 440, 441, 391, 379, 393, 391, 174, - /* 1680 */ 391, 465, 467, 403, 391, 464, 357, 341, 391, 375, - /* 1690 */ 393, 391, 391, 357, 103, 449, 103, 351, 480, 351, - /* 1700 */ 383, 391, 369, 36, 341, 479, 344, 350, 343, 0, - /* 1710 */ 407, 427, 357, 429, 351, 407, 432, 433, 434, 435, - /* 1720 */ 436, 437, 415, 439, 427, 379, 429, 339, 358, 432, - /* 1730 */ 433, 434, 435, 436, 437, 422, 439, 391, 0, 393, - /* 1740 */ 373, 373, 379, 446, 373, 0, 42, 384, 451, 0, - /* 1750 */ 35, 216, 35, 341, 391, 35, 393, 35, 216, 0, - /* 1760 */ 35, 35, 216, 351, 0, 216, 0, 483, 484, 35, - /* 1770 */ 0, 0, 22, 427, 35, 429, 211, 341, 432, 433, - /* 1780 */ 434, 435, 436, 437, 0, 439, 199, 351, 0, 199, - /* 1790 */ 427, 379, 429, 193, 200, 432, 433, 434, 435, 436, - /* 1800 */ 437, 191, 439, 391, 341, 393, 0, 0, 0, 187, - /* 1810 */ 186, 0, 0, 0, 351, 379, 47, 0, 0, 473, - /* 1820 */ 384, 47, 0, 42, 341, 0, 0, 391, 0, 393, - /* 1830 */ 47, 0, 0, 0, 351, 0, 0, 0, 159, 427, - /* 1840 */ 35, 429, 379, 0, 432, 433, 434, 435, 436, 437, - /* 1850 */ 159, 439, 0, 0, 391, 0, 393, 0, 0, 0, - /* 1860 */ 0, 0, 379, 427, 0, 429, 0, 384, 432, 433, - /* 1870 */ 434, 435, 436, 437, 391, 439, 393, 47, 0, 0, - /* 1880 */ 42, 0, 0, 0, 0, 0, 62, 475, 0, 0, - /* 1890 */ 427, 341, 429, 0, 0, 432, 433, 434, 435, 436, - /* 1900 */ 437, 351, 439, 0, 0, 0, 0, 0, 22, 0, - /* 1910 */ 427, 143, 429, 0, 22, 432, 433, 434, 435, 436, - /* 1920 */ 437, 341, 439, 48, 48, 0, 35, 0, 0, 379, - /* 1930 */ 22, 351, 62, 62, 384, 0, 0, 39, 0, 49, - /* 1940 */ 39, 391, 0, 393, 49, 35, 35, 484, 49, 35, - /* 1950 */ 0, 39, 35, 0, 14, 39, 0, 42, 0, 379, - /* 1960 */ 0, 39, 44, 40, 384, 0, 47, 47, 47, 39, - /* 1970 */ 0, 391, 182, 393, 35, 49, 39, 427, 0, 429, - /* 1980 */ 341, 0, 432, 433, 434, 435, 436, 437, 1, 439, - /* 1990 */ 351, 0, 0, 69, 0, 49, 35, 0, 39, 35, - /* 2000 */ 49, 39, 0, 35, 49, 39, 19, 427, 0, 429, - /* 2010 */ 0, 0, 432, 433, 434, 435, 436, 437, 379, 439, - /* 2020 */ 33, 0, 0, 0, 0, 35, 22, 44, 35, 44, - /* 2030 */ 391, 35, 393, 35, 35, 35, 49, 0, 35, 22, - /* 2040 */ 35, 112, 110, 0, 57, 58, 59, 60, 35, 62, - /* 2050 */ 35, 35, 22, 341, 22, 0, 22, 51, 0, 0, - /* 2060 */ 35, 35, 35, 351, 0, 0, 427, 22, 429, 20, - /* 2070 */ 35, 432, 433, 434, 435, 436, 437, 35, 439, 35, - /* 2080 */ 104, 35, 103, 103, 341, 198, 0, 0, 22, 102, - /* 2090 */ 194, 379, 105, 22, 351, 0, 3, 44, 264, 104, - /* 2100 */ 48, 44, 3, 391, 103, 393, 172, 174, 48, 178, - /* 2110 */ 47, 99, 103, 172, 44, 172, 172, 44, 104, 341, - /* 2120 */ 101, 103, 379, 178, 104, 138, 47, 44, 44, 351, - /* 2130 */ 258, 103, 103, 264, 391, 104, 393, 104, 264, 427, - /* 2140 */ 104, 429, 103, 35, 432, 433, 434, 435, 436, 437, - /* 2150 */ 35, 439, 35, 35, 35, 35, 341, 379, 47, 47, - /* 2160 */ 173, 0, 0, 47, 39, 104, 351, 180, 44, 391, - /* 2170 */ 427, 393, 429, 104, 0, 432, 433, 434, 435, 436, - /* 2180 */ 437, 341, 439, 103, 103, 103, 199, 39, 113, 104, - /* 2190 */ 47, 351, 104, 103, 379, 103, 44, 103, 101, 245, - /* 2200 */ 2, 101, 22, 47, 103, 427, 391, 429, 393, 223, - /* 2210 */ 432, 433, 434, 435, 436, 437, 175, 439, 341, 379, - /* 2220 */ 173, 22, 47, 114, 35, 104, 104, 35, 351, 103, - /* 2230 */ 103, 391, 104, 393, 103, 103, 35, 104, 103, 35, - /* 2240 */ 104, 103, 427, 341, 429, 104, 104, 432, 433, 434, - /* 2250 */ 435, 436, 437, 351, 439, 104, 379, 103, 103, 35, - /* 2260 */ 103, 35, 104, 225, 104, 35, 103, 427, 391, 429, - /* 2270 */ 393, 103, 432, 433, 434, 435, 436, 437, 125, 439, - /* 2280 */ 103, 379, 44, 35, 125, 22, 103, 103, 69, 125, - /* 2290 */ 125, 68, 35, 391, 35, 393, 35, 35, 44, 35, - /* 2300 */ 35, 35, 35, 75, 427, 97, 429, 35, 35, 432, - /* 2310 */ 433, 434, 435, 436, 437, 341, 439, 35, 22, 35, - /* 2320 */ 35, 35, 75, 35, 35, 351, 35, 35, 35, 427, - /* 2330 */ 341, 429, 22, 35, 432, 433, 434, 435, 436, 437, - /* 2340 */ 351, 439, 0, 35, 49, 39, 0, 35, 341, 49, - /* 2350 */ 0, 35, 39, 379, 49, 0, 39, 35, 351, 39, - /* 2360 */ 0, 35, 35, 49, 0, 391, 22, 393, 379, 21, - /* 2370 */ 487, 22, 20, 22, 21, 487, 487, 487, 487, 487, - /* 2380 */ 391, 487, 393, 487, 487, 487, 379, 487, 487, 487, - /* 2390 */ 487, 487, 487, 487, 487, 341, 487, 487, 391, 487, - /* 2400 */ 393, 427, 487, 429, 487, 351, 432, 433, 434, 435, - /* 2410 */ 436, 437, 487, 439, 487, 487, 427, 341, 429, 487, - /* 2420 */ 487, 432, 433, 434, 435, 436, 437, 351, 439, 487, - /* 2430 */ 487, 487, 487, 379, 427, 487, 429, 487, 487, 432, - /* 2440 */ 433, 434, 435, 436, 437, 391, 439, 393, 487, 487, - /* 2450 */ 487, 487, 487, 487, 487, 379, 487, 487, 487, 487, - /* 2460 */ 487, 487, 487, 487, 341, 487, 487, 391, 487, 393, - /* 2470 */ 487, 487, 487, 487, 351, 487, 487, 487, 487, 487, - /* 2480 */ 487, 427, 487, 429, 487, 487, 432, 433, 434, 435, - /* 2490 */ 436, 437, 487, 439, 487, 487, 487, 487, 487, 487, - /* 2500 */ 487, 487, 379, 427, 487, 429, 487, 487, 432, 433, - /* 2510 */ 434, 435, 436, 437, 391, 439, 393, 487, 487, 487, - /* 2520 */ 487, 487, 487, 341, 487, 487, 487, 487, 487, 487, - /* 2530 */ 487, 487, 487, 351, 487, 487, 341, 487, 487, 487, - /* 2540 */ 487, 487, 487, 487, 487, 487, 351, 487, 487, 487, - /* 2550 */ 427, 487, 429, 341, 487, 432, 433, 434, 435, 436, - /* 2560 */ 437, 379, 439, 351, 487, 487, 487, 487, 487, 487, - /* 2570 */ 487, 487, 487, 391, 379, 393, 487, 487, 487, 487, - /* 2580 */ 487, 487, 487, 487, 487, 341, 391, 487, 393, 487, - /* 2590 */ 487, 379, 487, 487, 487, 351, 487, 487, 487, 487, - /* 2600 */ 487, 487, 487, 391, 487, 393, 487, 487, 487, 427, - /* 2610 */ 487, 429, 487, 487, 432, 433, 434, 435, 436, 437, - /* 2620 */ 487, 439, 427, 379, 429, 487, 487, 432, 433, 434, - /* 2630 */ 435, 436, 437, 487, 439, 391, 487, 393, 487, 427, - /* 2640 */ 487, 429, 487, 487, 432, 433, 434, 435, 436, 437, - /* 2650 */ 487, 439, 341, 487, 487, 487, 487, 487, 487, 487, - /* 2660 */ 487, 487, 351, 487, 487, 487, 487, 487, 487, 487, - /* 2670 */ 487, 427, 341, 429, 487, 487, 432, 433, 434, 435, - /* 2680 */ 436, 437, 351, 439, 487, 487, 487, 487, 487, 487, - /* 2690 */ 379, 487, 487, 487, 487, 487, 487, 487, 487, 487, - /* 2700 */ 487, 487, 391, 487, 393, 487, 487, 487, 487, 487, - /* 2710 */ 379, 487, 487, 487, 487, 487, 487, 487, 487, 487, - /* 2720 */ 487, 487, 391, 487, 393, 487, 487, 487, 487, 487, - /* 2730 */ 487, 487, 487, 487, 487, 487, 487, 487, 427, 487, - /* 2740 */ 429, 487, 341, 432, 433, 434, 435, 436, 437, 487, - /* 2750 */ 439, 487, 351, 487, 487, 487, 487, 487, 427, 341, - /* 2760 */ 429, 487, 487, 432, 433, 434, 435, 436, 437, 351, - /* 2770 */ 439, 487, 487, 487, 487, 487, 487, 487, 487, 487, - /* 2780 */ 379, 487, 487, 487, 487, 487, 487, 487, 487, 487, - /* 2790 */ 487, 487, 391, 487, 393, 487, 487, 379, 487, 487, - /* 2800 */ 487, 487, 487, 487, 487, 487, 487, 487, 487, 391, - /* 2810 */ 487, 393, 487, 487, 487, 487, 487, 487, 487, 487, - /* 2820 */ 487, 487, 487, 487, 487, 487, 487, 487, 427, 487, - /* 2830 */ 429, 487, 487, 432, 433, 434, 435, 436, 437, 487, - /* 2840 */ 439, 487, 487, 487, 487, 427, 487, 429, 487, 487, - /* 2850 */ 432, 433, 434, 435, 436, 437, 487, 439, 338, 338, - /* 2860 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2870 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2880 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2890 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2900 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2910 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2920 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2930 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2940 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2950 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 2960 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 1090 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 350, + /* 1100 */ 351, 14, 372, 173, 174, 375, 102, 20, 103, 380, + /* 1110 */ 180, 181, 391, 458, 350, 351, 461, 366, 114, 370, + /* 1120 */ 369, 133, 134, 135, 136, 137, 138, 139, 411, 199, + /* 1130 */ 350, 351, 477, 478, 370, 341, 247, 482, 483, 45, + /* 1140 */ 46, 170, 341, 14, 258, 259, 257, 142, 144, 20, + /* 1150 */ 370, 147, 148, 149, 150, 151, 152, 153, 154, 155, + /* 1160 */ 156, 157, 158, 159, 160, 161, 162, 163, 341, 165, + /* 1170 */ 166, 167, 341, 401, 379, 458, 44, 42, 461, 44, + /* 1180 */ 341, 486, 387, 338, 341, 391, 0, 341, 183, 184, + /* 1190 */ 185, 341, 391, 188, 477, 478, 114, 341, 341, 482, + /* 1200 */ 483, 351, 42, 353, 44, 107, 201, 202, 110, 107, + /* 1210 */ 13, 475, 110, 172, 259, 172, 107, 212, 391, 110, + /* 1220 */ 215, 341, 391, 218, 219, 220, 221, 222, 44, 379, + /* 1230 */ 391, 351, 35, 353, 391, 49, 104, 391, 22, 44, + /* 1240 */ 207, 391, 209, 393, 13, 0, 164, 391, 391, 62, + /* 1250 */ 107, 35, 341, 110, 0, 35, 411, 170, 0, 379, + /* 1260 */ 68, 416, 351, 354, 353, 260, 35, 22, 0, 44, + /* 1270 */ 367, 391, 44, 393, 44, 469, 22, 427, 261, 429, + /* 1280 */ 22, 44, 432, 433, 434, 435, 436, 437, 104, 439, + /* 1290 */ 379, 44, 105, 367, 444, 35, 446, 140, 141, 104, + /* 1300 */ 450, 451, 391, 458, 393, 410, 461, 427, 47, 429, + /* 1310 */ 44, 44, 432, 433, 434, 435, 436, 437, 50, 439, + /* 1320 */ 4, 44, 477, 478, 444, 44, 446, 482, 483, 104, + /* 1330 */ 450, 451, 104, 44, 104, 19, 1, 2, 427, 44, + /* 1340 */ 429, 104, 341, 432, 433, 434, 435, 436, 437, 33, + /* 1350 */ 439, 104, 351, 12, 13, 444, 379, 446, 103, 44, + /* 1360 */ 354, 450, 451, 22, 103, 49, 44, 44, 113, 44, + /* 1370 */ 104, 104, 56, 341, 33, 401, 35, 349, 62, 13, + /* 1380 */ 379, 104, 44, 351, 44, 104, 13, 351, 390, 460, + /* 1390 */ 401, 479, 391, 104, 393, 452, 463, 412, 262, 104, + /* 1400 */ 49, 35, 20, 62, 428, 421, 206, 426, 35, 359, + /* 1410 */ 341, 379, 421, 193, 359, 223, 75, 414, 102, 104, + /* 1420 */ 351, 105, 189, 391, 20, 393, 104, 104, 427, 104, + /* 1430 */ 429, 351, 42, 432, 433, 434, 435, 436, 437, 20, + /* 1440 */ 439, 100, 104, 398, 104, 444, 351, 446, 379, 401, + /* 1450 */ 398, 450, 451, 193, 169, 396, 20, 350, 350, 427, + /* 1460 */ 391, 429, 393, 351, 432, 433, 434, 435, 436, 437, + /* 1470 */ 398, 439, 396, 396, 363, 101, 444, 99, 446, 362, + /* 1480 */ 350, 98, 450, 451, 361, 20, 48, 350, 350, 350, + /* 1490 */ 343, 347, 343, 347, 421, 20, 427, 393, 429, 341, + /* 1500 */ 359, 432, 433, 434, 435, 436, 437, 359, 439, 351, + /* 1510 */ 20, 352, 20, 444, 413, 446, 352, 350, 343, 450, + /* 1520 */ 451, 359, 359, 343, 359, 359, 103, 359, 350, 379, + /* 1530 */ 379, 379, 191, 379, 193, 379, 391, 379, 210, 425, + /* 1540 */ 379, 423, 421, 197, 391, 357, 391, 420, 341, 391, + /* 1550 */ 379, 393, 379, 379, 196, 379, 379, 269, 351, 419, + /* 1560 */ 357, 350, 393, 195, 223, 224, 268, 468, 468, 277, + /* 1570 */ 391, 182, 391, 391, 471, 470, 391, 236, 237, 238, + /* 1580 */ 239, 240, 241, 242, 412, 427, 379, 429, 418, 406, + /* 1590 */ 432, 433, 434, 435, 436, 437, 406, 439, 391, 401, + /* 1600 */ 393, 468, 401, 279, 446, 278, 263, 465, 450, 451, + /* 1610 */ 281, 412, 286, 341, 283, 487, 259, 20, 114, 357, + /* 1620 */ 351, 357, 352, 351, 20, 404, 391, 431, 406, 391, + /* 1630 */ 391, 391, 391, 406, 427, 391, 429, 174, 341, 432, + /* 1640 */ 433, 434, 435, 436, 437, 403, 439, 357, 351, 375, + /* 1650 */ 357, 379, 351, 446, 103, 449, 467, 450, 451, 466, + /* 1660 */ 103, 383, 391, 391, 462, 393, 357, 350, 369, 36, + /* 1670 */ 422, 415, 481, 343, 480, 373, 379, 344, 373, 373, + /* 1680 */ 407, 339, 407, 0, 0, 0, 42, 0, 391, 35, + /* 1690 */ 393, 35, 358, 216, 35, 35, 216, 0, 35, 427, + /* 1700 */ 35, 429, 216, 341, 432, 433, 434, 435, 436, 437, + /* 1710 */ 0, 439, 216, 351, 0, 35, 0, 22, 446, 0, + /* 1720 */ 211, 35, 450, 451, 427, 0, 429, 199, 0, 432, + /* 1730 */ 433, 434, 435, 436, 437, 199, 439, 200, 193, 191, + /* 1740 */ 0, 379, 0, 0, 0, 187, 186, 0, 47, 0, + /* 1750 */ 0, 0, 341, 391, 47, 393, 0, 42, 0, 0, + /* 1760 */ 0, 0, 351, 42, 47, 0, 0, 341, 0, 0, + /* 1770 */ 0, 159, 35, 0, 159, 0, 0, 351, 341, 0, + /* 1780 */ 0, 484, 485, 0, 0, 0, 0, 0, 351, 427, + /* 1790 */ 379, 429, 47, 0, 432, 433, 434, 435, 436, 437, + /* 1800 */ 0, 439, 391, 0, 393, 379, 0, 0, 446, 0, + /* 1810 */ 384, 0, 0, 451, 0, 0, 379, 391, 0, 393, + /* 1820 */ 0, 384, 0, 0, 22, 0, 0, 0, 391, 48, + /* 1830 */ 393, 143, 0, 0, 0, 22, 48, 0, 427, 22, + /* 1840 */ 429, 341, 0, 432, 433, 434, 435, 436, 437, 0, + /* 1850 */ 439, 351, 62, 427, 35, 429, 62, 341, 432, 433, + /* 1860 */ 434, 435, 436, 437, 427, 439, 429, 351, 0, 432, + /* 1870 */ 433, 434, 435, 436, 437, 35, 439, 49, 62, 379, + /* 1880 */ 39, 0, 35, 39, 49, 474, 0, 35, 49, 39, + /* 1890 */ 0, 391, 35, 393, 0, 379, 42, 39, 47, 44, + /* 1900 */ 47, 14, 0, 47, 40, 39, 0, 391, 0, 393, + /* 1910 */ 0, 39, 0, 182, 0, 0, 0, 69, 0, 35, + /* 1920 */ 341, 39, 49, 0, 35, 49, 0, 427, 35, 429, + /* 1930 */ 351, 0, 432, 433, 434, 435, 436, 437, 39, 439, + /* 1940 */ 49, 0, 39, 427, 35, 429, 341, 49, 432, 433, + /* 1950 */ 434, 435, 436, 437, 0, 439, 351, 112, 379, 39, + /* 1960 */ 0, 0, 0, 384, 0, 35, 22, 0, 35, 110, + /* 1970 */ 391, 35, 393, 35, 35, 35, 476, 35, 35, 44, + /* 1980 */ 22, 341, 35, 35, 379, 35, 0, 22, 0, 44, + /* 1990 */ 22, 351, 0, 22, 35, 0, 391, 51, 393, 0, + /* 2000 */ 0, 485, 22, 20, 35, 35, 427, 341, 429, 35, + /* 2010 */ 35, 432, 433, 434, 435, 436, 437, 351, 439, 379, + /* 2020 */ 35, 104, 103, 0, 384, 103, 35, 22, 198, 0, + /* 2030 */ 194, 391, 427, 393, 429, 172, 22, 432, 433, 434, + /* 2040 */ 435, 436, 437, 172, 439, 379, 441, 0, 174, 0, + /* 2050 */ 384, 172, 172, 178, 3, 178, 44, 391, 103, 393, + /* 2060 */ 264, 48, 44, 48, 44, 44, 103, 427, 44, 429, + /* 2070 */ 104, 341, 432, 433, 434, 435, 436, 437, 1, 439, + /* 2080 */ 101, 351, 104, 99, 47, 104, 47, 3, 264, 44, + /* 2090 */ 103, 35, 103, 427, 104, 429, 19, 103, 432, 433, + /* 2100 */ 434, 435, 436, 437, 341, 439, 103, 264, 104, 379, + /* 2110 */ 33, 104, 47, 35, 351, 35, 35, 44, 35, 258, + /* 2120 */ 35, 391, 47, 393, 0, 0, 49, 39, 175, 104, + /* 2130 */ 104, 103, 0, 341, 57, 58, 59, 60, 47, 62, + /* 2140 */ 104, 103, 379, 351, 104, 103, 103, 103, 39, 173, + /* 2150 */ 47, 103, 44, 101, 391, 101, 393, 427, 245, 429, + /* 2160 */ 2, 22, 432, 433, 434, 435, 436, 437, 113, 439, + /* 2170 */ 341, 379, 223, 103, 47, 104, 104, 103, 47, 102, + /* 2180 */ 351, 22, 105, 391, 35, 393, 35, 35, 35, 103, + /* 2190 */ 427, 104, 429, 103, 125, 432, 433, 434, 435, 436, + /* 2200 */ 437, 341, 439, 103, 35, 104, 114, 103, 379, 104, + /* 2210 */ 103, 351, 35, 35, 104, 138, 103, 103, 225, 427, + /* 2220 */ 391, 429, 393, 104, 432, 433, 434, 435, 436, 437, + /* 2230 */ 104, 439, 103, 341, 104, 44, 103, 125, 104, 379, + /* 2240 */ 103, 125, 125, 351, 103, 103, 35, 103, 22, 69, + /* 2250 */ 173, 391, 68, 393, 35, 35, 427, 180, 429, 35, + /* 2260 */ 35, 432, 433, 434, 435, 436, 437, 35, 439, 35, + /* 2270 */ 35, 379, 35, 75, 44, 35, 199, 35, 97, 35, + /* 2280 */ 22, 35, 35, 391, 35, 393, 35, 427, 75, 429, + /* 2290 */ 35, 35, 432, 433, 434, 435, 436, 437, 341, 439, + /* 2300 */ 35, 35, 22, 35, 0, 35, 49, 0, 351, 35, + /* 2310 */ 39, 49, 39, 0, 35, 39, 49, 0, 35, 427, + /* 2320 */ 0, 429, 35, 341, 432, 433, 434, 435, 436, 437, + /* 2330 */ 49, 439, 39, 351, 35, 0, 379, 22, 22, 21, + /* 2340 */ 488, 22, 21, 20, 488, 488, 488, 488, 391, 341, + /* 2350 */ 393, 488, 488, 488, 488, 488, 488, 488, 488, 351, + /* 2360 */ 341, 379, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2370 */ 351, 488, 488, 391, 488, 393, 488, 488, 488, 488, + /* 2380 */ 488, 488, 488, 488, 427, 488, 429, 379, 488, 432, + /* 2390 */ 433, 434, 435, 436, 437, 488, 439, 488, 379, 391, + /* 2400 */ 488, 393, 488, 488, 488, 488, 488, 488, 488, 427, + /* 2410 */ 391, 429, 393, 488, 432, 433, 434, 435, 436, 437, + /* 2420 */ 488, 439, 488, 341, 488, 488, 488, 488, 488, 488, + /* 2430 */ 488, 488, 488, 351, 488, 427, 488, 429, 488, 488, + /* 2440 */ 432, 433, 434, 435, 436, 437, 427, 439, 429, 488, + /* 2450 */ 488, 432, 433, 434, 435, 436, 437, 488, 439, 488, + /* 2460 */ 488, 379, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2470 */ 488, 488, 488, 391, 488, 393, 488, 488, 488, 488, + /* 2480 */ 488, 488, 488, 488, 341, 488, 488, 488, 488, 488, + /* 2490 */ 488, 488, 488, 488, 351, 488, 488, 488, 488, 488, + /* 2500 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 427, + /* 2510 */ 488, 429, 488, 341, 432, 433, 434, 435, 436, 437, + /* 2520 */ 488, 439, 379, 351, 488, 488, 488, 488, 488, 488, + /* 2530 */ 488, 488, 488, 488, 391, 488, 393, 488, 488, 488, + /* 2540 */ 488, 488, 488, 341, 488, 488, 488, 488, 488, 488, + /* 2550 */ 488, 379, 488, 351, 488, 488, 488, 488, 488, 488, + /* 2560 */ 488, 488, 488, 391, 341, 393, 488, 488, 488, 488, + /* 2570 */ 427, 488, 429, 488, 351, 432, 433, 434, 435, 436, + /* 2580 */ 437, 379, 439, 488, 488, 488, 488, 488, 488, 488, + /* 2590 */ 488, 488, 488, 391, 488, 393, 488, 488, 488, 427, + /* 2600 */ 488, 429, 379, 488, 432, 433, 434, 435, 436, 437, + /* 2610 */ 488, 439, 488, 341, 391, 488, 393, 488, 488, 488, + /* 2620 */ 488, 488, 488, 351, 488, 488, 488, 488, 488, 427, + /* 2630 */ 488, 429, 488, 488, 432, 433, 434, 435, 436, 437, + /* 2640 */ 488, 439, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2650 */ 427, 379, 429, 488, 488, 432, 433, 434, 435, 436, + /* 2660 */ 437, 488, 439, 391, 488, 393, 488, 488, 488, 488, + /* 2670 */ 488, 488, 488, 488, 488, 341, 488, 488, 488, 488, + /* 2680 */ 488, 488, 488, 488, 488, 351, 488, 488, 488, 488, + /* 2690 */ 341, 488, 488, 488, 488, 488, 488, 488, 488, 427, + /* 2700 */ 351, 429, 488, 488, 432, 433, 434, 435, 436, 437, + /* 2710 */ 488, 439, 341, 379, 488, 488, 488, 488, 488, 488, + /* 2720 */ 488, 488, 351, 488, 488, 391, 488, 393, 379, 488, + /* 2730 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2740 */ 391, 341, 393, 488, 488, 488, 488, 488, 488, 488, + /* 2750 */ 379, 351, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2760 */ 488, 427, 391, 429, 393, 488, 432, 433, 434, 435, + /* 2770 */ 436, 437, 488, 439, 488, 488, 427, 488, 429, 379, + /* 2780 */ 488, 432, 433, 434, 435, 436, 437, 488, 439, 488, + /* 2790 */ 488, 391, 488, 393, 488, 488, 488, 488, 427, 488, + /* 2800 */ 429, 488, 488, 432, 433, 434, 435, 436, 437, 488, + /* 2810 */ 439, 488, 488, 488, 488, 341, 488, 488, 488, 488, + /* 2820 */ 488, 488, 488, 488, 488, 351, 488, 427, 488, 429, + /* 2830 */ 488, 488, 432, 433, 434, 435, 436, 437, 488, 439, + /* 2840 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2850 */ 488, 488, 488, 379, 488, 488, 488, 488, 488, 488, + /* 2860 */ 488, 488, 488, 488, 341, 391, 488, 393, 488, 488, + /* 2870 */ 488, 488, 488, 488, 351, 488, 488, 488, 488, 488, + /* 2880 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2890 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2900 */ 488, 427, 379, 429, 488, 488, 432, 433, 434, 435, + /* 2910 */ 436, 437, 488, 439, 391, 488, 393, 488, 488, 488, + /* 2920 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2930 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2940 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, + /* 2950 */ 427, 488, 429, 488, 488, 432, 433, 434, 435, 436, + /* 2960 */ 437, 488, 439, 338, 338, 338, 338, 338, 338, 338, /* 2970 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, /* 2980 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, /* 2990 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, @@ -827,212 +1177,225 @@ static const YYCODETYPE yy_lookahead[] = { /* 3160 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, /* 3170 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, /* 3180 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, - /* 3190 */ 338, 338, 338, 338, 338, 338, + /* 3190 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3200 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3210 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3220 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3230 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3240 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3250 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3260 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3270 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3280 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3290 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + /* 3300 */ 338, }; -#define YY_SHIFT_COUNT (799) +#define YY_SHIFT_COUNT (800) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2364) +#define YY_SHIFT_MAX (2335) static const unsigned short int yy_shift_ofst[] = { /* 0 */ 1005, 0, 104, 0, 337, 337, 337, 337, 337, 337, /* 10 */ 337, 337, 337, 337, 337, 337, 441, 673, 673, 777, /* 20 */ 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, /* 30 */ 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, /* 40 */ 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, - /* 50 */ 673, 60, 259, 393, 629, 111, 739, 111, 629, 629, - /* 60 */ 111, 1341, 111, 1341, 1341, 66, 111, 68, 781, 101, - /* 70 */ 101, 781, 13, 13, 113, 294, 23, 23, 101, 101, - /* 80 */ 101, 101, 101, 101, 101, 101, 101, 101, 158, 101, - /* 90 */ 101, 211, 68, 101, 101, 285, 68, 101, 158, 101, - /* 100 */ 158, 68, 101, 101, 68, 101, 68, 68, 68, 101, - /* 110 */ 284, 1004, 15, 15, 303, 462, 1302, 1302, 1302, 1302, - /* 120 */ 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, - /* 130 */ 1302, 1302, 1302, 1302, 1302, 1072, 18, 113, 294, 802, - /* 140 */ 802, 184, 346, 346, 346, 705, 312, 312, 184, 211, - /* 150 */ 254, 260, 68, 534, 68, 534, 534, 836, 619, 28, - /* 160 */ 28, 28, 28, 28, 28, 28, 28, 1987, 757, 261, - /* 170 */ 580, 613, 508, 49, 123, 343, 343, 526, 354, 1007, - /* 180 */ 299, 1079, 1192, 418, 398, 1085, 916, 939, 785, 916, - /* 190 */ 1177, 325, 290, 1162, 1369, 1407, 1223, 211, 1407, 211, - /* 200 */ 1242, 1435, 1416, 1450, 1435, 1416, 1306, 1460, 1435, 1460, - /* 210 */ 1416, 1306, 1306, 1389, 1393, 1460, 1402, 1460, 1460, 1460, - /* 220 */ 1490, 1468, 1490, 1468, 1407, 211, 1503, 211, 1508, 1511, - /* 230 */ 211, 1508, 211, 211, 211, 1460, 211, 1490, 68, 68, - /* 240 */ 68, 68, 68, 68, 68, 68, 68, 68, 68, 1460, - /* 250 */ 1490, 534, 534, 534, 1343, 1452, 1407, 284, 1360, 1366, - /* 260 */ 1503, 284, 1394, 1162, 1460, 1450, 1450, 534, 1330, 1339, - /* 270 */ 534, 1330, 1339, 534, 534, 68, 1326, 1439, 1330, 1344, - /* 280 */ 1350, 1364, 1162, 1345, 1354, 1352, 1373, 1435, 1627, 1508, - /* 290 */ 284, 284, 1631, 1339, 534, 534, 534, 534, 534, 1339, - /* 300 */ 534, 1505, 284, 836, 284, 1435, 1591, 1593, 534, 619, - /* 310 */ 1460, 284, 1667, 1490, 2858, 2858, 2858, 2858, 2858, 2858, - /* 320 */ 2858, 2858, 2858, 1002, 1074, 225, 32, 736, 750, 860, - /* 330 */ 687, 980, 1356, 434, 791, 197, 197, 197, 197, 197, - /* 340 */ 197, 197, 197, 197, 749, 265, 698, 698, 29, 6, - /* 350 */ 34, 307, 830, 562, 963, 902, 514, 282, 282, 1097, - /* 360 */ 728, 971, 1097, 1097, 1097, 983, 1044, 622, 1209, 1198, - /* 370 */ 1131, 1077, 1143, 1149, 1156, 1160, 1236, 1256, 815, 1182, - /* 380 */ 1275, 1071, 1195, 1224, 63, 1232, 1237, 1262, 1152, 1124, - /* 390 */ 1094, 1263, 1277, 1278, 1282, 1285, 1286, 1332, 1291, 1220, - /* 400 */ 1295, 311, 1305, 1315, 1335, 1340, 1349, 1353, 1206, 1270, - /* 410 */ 1288, 1372, 1378, 409, 1351, 1709, 1738, 1745, 1704, 1749, - /* 420 */ 1715, 1535, 1717, 1720, 1722, 1542, 1759, 1725, 1726, 1546, - /* 430 */ 1764, 1549, 1766, 1734, 1770, 1750, 1771, 1739, 1565, 1784, - /* 440 */ 1587, 1788, 1590, 1594, 1600, 1610, 1806, 1807, 1808, 1622, - /* 450 */ 1624, 1811, 1812, 1769, 1813, 1817, 1818, 1774, 1822, 1781, - /* 460 */ 1825, 1826, 1828, 1783, 1831, 1832, 1833, 1835, 1836, 1837, - /* 470 */ 1679, 1805, 1843, 1691, 1852, 1853, 1855, 1857, 1858, 1859, - /* 480 */ 1860, 1861, 1864, 1866, 1888, 1889, 1893, 1894, 1903, 1904, - /* 490 */ 1830, 1878, 1838, 1879, 1881, 1882, 1883, 1884, 1885, 1886, - /* 500 */ 1905, 1906, 1907, 1768, 1909, 1913, 1892, 1875, 1908, 1876, - /* 510 */ 1925, 1824, 1891, 1927, 1870, 1928, 1871, 1935, 1936, 1910, - /* 520 */ 1890, 1898, 1938, 1911, 1895, 1901, 1942, 1914, 1899, 1912, - /* 530 */ 1950, 1917, 1953, 1915, 1916, 1918, 1919, 1920, 1940, 1921, - /* 540 */ 1956, 1923, 1922, 1958, 1960, 1965, 1930, 1790, 1970, 1978, - /* 550 */ 1981, 1924, 1991, 1992, 1939, 1926, 1937, 1994, 1961, 1946, - /* 560 */ 1959, 1997, 1964, 1951, 1962, 2002, 1968, 1955, 1966, 2008, - /* 570 */ 2010, 2011, 2021, 2022, 2023, 1929, 1932, 1990, 2004, 2024, - /* 580 */ 1993, 1996, 1998, 1999, 2000, 2003, 2005, 1983, 1985, 2013, - /* 590 */ 2015, 2017, 2016, 2037, 2030, 2043, 2032, 2006, 2055, 2034, - /* 600 */ 2025, 2058, 2026, 2059, 2027, 2064, 2045, 2049, 2035, 2042, - /* 610 */ 2044, 1976, 1979, 2065, 1934, 1980, 1887, 2046, 2066, 2086, - /* 620 */ 1896, 2071, 1941, 1933, 2087, 2095, 1943, 1931, 1944, 1945, - /* 630 */ 2093, 2053, 1834, 2001, 1995, 2009, 2052, 2019, 2060, 2012, - /* 640 */ 2014, 2057, 2070, 2020, 2018, 2028, 2029, 2031, 2073, 2063, - /* 650 */ 2079, 2039, 2083, 1869, 2033, 2036, 2099, 2084, 1874, 2108, - /* 660 */ 2115, 2117, 2118, 2119, 2120, 2061, 2069, 2111, 1872, 2124, - /* 670 */ 2112, 2161, 2162, 2080, 2125, 1919, 2116, 2081, 2085, 2088, - /* 680 */ 2082, 2090, 2041, 2092, 2174, 2148, 2047, 2094, 2075, 1919, - /* 690 */ 2143, 2152, 2097, 1954, 2100, 2198, 2180, 1986, 2101, 2121, - /* 700 */ 2126, 2122, 2127, 2128, 2156, 2131, 2132, 2175, 2133, 2199, - /* 710 */ 2038, 2135, 2109, 2136, 2189, 2192, 2138, 2141, 2201, 2154, - /* 720 */ 2142, 2204, 2155, 2151, 2224, 2157, 2158, 2226, 2163, 2160, - /* 730 */ 2230, 2168, 2153, 2159, 2164, 2165, 2177, 2238, 2183, 2248, - /* 740 */ 2184, 2238, 2238, 2263, 2219, 2223, 2257, 2259, 2261, 2262, - /* 750 */ 2264, 2265, 2266, 2267, 2228, 2208, 2254, 2272, 2273, 2282, - /* 760 */ 2296, 2284, 2285, 2286, 2247, 1983, 2288, 1985, 2289, 2291, - /* 770 */ 2292, 2293, 2310, 2298, 2342, 2308, 2295, 2306, 2346, 2312, - /* 780 */ 2300, 2313, 2350, 2316, 2305, 2317, 2355, 2322, 2314, 2320, - /* 790 */ 2360, 2326, 2327, 2364, 2344, 2348, 2349, 2351, 2353, 2352, + /* 50 */ 673, 1, 64, 510, 366, 263, 432, 263, 366, 366, + /* 60 */ 263, 1341, 263, 1341, 1341, 170, 263, 199, 378, 227, + /* 70 */ 227, 378, 77, 77, 460, 228, 105, 105, 227, 227, + /* 80 */ 227, 227, 227, 227, 227, 227, 227, 227, 309, 227, + /* 90 */ 227, 352, 199, 227, 227, 587, 199, 227, 309, 227, + /* 100 */ 309, 199, 227, 227, 199, 227, 199, 199, 199, 227, + /* 110 */ 448, 1004, 15, 15, 344, 171, 329, 329, 329, 329, + /* 120 */ 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + /* 130 */ 329, 329, 329, 329, 329, 425, 256, 460, 228, 544, + /* 140 */ 544, 114, 50, 50, 50, 559, 127, 127, 114, 352, + /* 150 */ 608, 380, 199, 666, 199, 666, 666, 705, 708, 261, + /* 160 */ 261, 261, 261, 261, 261, 261, 261, 2077, 550, 185, + /* 170 */ 270, 436, 213, 437, 349, 588, 588, 971, 759, 1087, + /* 180 */ 141, 1041, 1094, 1129, 529, 1043, 886, 955, 785, 886, + /* 190 */ 1135, 1017, 290, 1136, 1351, 1382, 1200, 352, 1382, 352, + /* 200 */ 1233, 1404, 1390, 1419, 1404, 1390, 1285, 1436, 1404, 1436, + /* 210 */ 1390, 1285, 1285, 1374, 1378, 1436, 1383, 1436, 1436, 1436, + /* 220 */ 1465, 1438, 1465, 1438, 1382, 352, 1475, 352, 1490, 1492, + /* 230 */ 352, 1490, 352, 352, 352, 1436, 352, 1465, 199, 199, + /* 240 */ 199, 199, 199, 199, 199, 199, 199, 199, 199, 1436, + /* 250 */ 1465, 666, 666, 666, 1328, 1423, 1382, 448, 1346, 1358, + /* 260 */ 1475, 448, 1368, 1136, 1436, 1419, 1419, 666, 1288, 1298, + /* 270 */ 666, 1288, 1298, 666, 666, 199, 1292, 1389, 1288, 1324, + /* 280 */ 1327, 1343, 1136, 1326, 1331, 1329, 1357, 1404, 1597, 1504, + /* 290 */ 1490, 448, 448, 1604, 1298, 666, 666, 666, 666, 666, + /* 300 */ 1298, 666, 1463, 448, 705, 448, 1404, 1551, 1557, 666, + /* 310 */ 708, 1436, 448, 1633, 1465, 2963, 2963, 2963, 2963, 2963, + /* 320 */ 2963, 2963, 2963, 2963, 1002, 930, 225, 32, 1316, 634, + /* 330 */ 702, 358, 750, 860, 873, 521, 968, 968, 968, 968, + /* 340 */ 968, 968, 968, 968, 968, 988, 340, 307, 307, 551, + /* 350 */ 99, 343, 305, 936, 669, 672, 781, 791, 616, 616, + /* 360 */ 778, 855, 889, 778, 778, 778, 1186, 709, 1132, 1216, + /* 370 */ 1160, 1082, 131, 1098, 1102, 1109, 1143, 1197, 1231, 1245, + /* 380 */ 1254, 1258, 1033, 1184, 1195, 1187, 1225, 1228, 1230, 1157, + /* 390 */ 454, 483, 1237, 1247, 1266, 1267, 1277, 1281, 1335, 1289, + /* 400 */ 1192, 1295, 1261, 1315, 1322, 1323, 1325, 1338, 1340, 1255, + /* 410 */ 1220, 1260, 1366, 1373, 823, 1268, 1683, 1684, 1685, 1644, + /* 420 */ 1687, 1654, 1477, 1656, 1659, 1660, 1480, 1697, 1663, 1665, + /* 430 */ 1486, 1710, 1496, 1714, 1680, 1716, 1695, 1719, 1686, 1509, + /* 440 */ 1725, 1528, 1728, 1536, 1537, 1545, 1548, 1740, 1742, 1743, + /* 450 */ 1558, 1560, 1744, 1747, 1701, 1749, 1750, 1751, 1707, 1756, + /* 460 */ 1715, 1758, 1759, 1760, 1717, 1761, 1765, 1766, 1768, 1769, + /* 470 */ 1770, 1612, 1737, 1773, 1615, 1775, 1776, 1779, 1780, 1783, + /* 480 */ 1784, 1785, 1786, 1787, 1800, 1803, 1806, 1807, 1809, 1811, + /* 490 */ 1812, 1745, 1793, 1721, 1814, 1815, 1818, 1820, 1822, 1823, + /* 500 */ 1802, 1825, 1826, 1827, 1688, 1832, 1833, 1813, 1781, 1817, + /* 510 */ 1788, 1834, 1790, 1819, 1837, 1794, 1842, 1816, 1849, 1868, + /* 520 */ 1840, 1828, 1841, 1881, 1847, 1835, 1844, 1886, 1852, 1839, + /* 530 */ 1850, 1890, 1857, 1894, 1854, 1858, 1855, 1851, 1853, 1887, + /* 540 */ 1856, 1902, 1864, 1866, 1906, 1908, 1910, 1872, 1731, 1912, + /* 550 */ 1914, 1915, 1848, 1916, 1918, 1884, 1873, 1882, 1923, 1889, + /* 560 */ 1876, 1899, 1926, 1893, 1891, 1903, 1931, 1909, 1898, 1920, + /* 570 */ 1941, 1954, 1960, 1961, 1962, 1964, 1845, 1859, 1930, 1944, + /* 580 */ 1967, 1933, 1936, 1938, 1939, 1940, 1942, 1943, 1935, 1945, + /* 590 */ 1947, 1948, 1958, 1950, 1986, 1965, 1988, 1968, 1946, 1992, + /* 600 */ 1971, 1959, 1995, 1969, 1999, 1970, 2000, 1980, 1983, 1974, + /* 610 */ 1975, 1985, 1917, 1919, 2023, 1863, 1922, 1830, 1991, 2005, + /* 620 */ 2029, 1836, 2014, 1871, 1874, 2047, 2049, 1879, 1875, 1880, + /* 630 */ 1877, 2051, 2012, 1796, 1955, 1966, 1963, 2013, 1979, 2015, + /* 640 */ 1984, 1978, 2018, 2020, 1981, 1987, 1989, 1994, 1990, 2021, + /* 650 */ 2037, 2039, 2003, 2024, 1824, 2004, 2007, 2084, 2045, 1843, + /* 660 */ 2056, 2078, 2080, 2081, 2083, 2085, 2025, 2026, 2065, 1861, + /* 670 */ 2073, 2075, 2124, 2125, 2028, 2088, 1851, 2091, 2038, 2036, + /* 680 */ 2040, 2042, 2043, 1953, 2044, 2132, 2109, 1976, 2048, 2055, + /* 690 */ 1851, 2103, 2108, 2052, 1913, 2054, 2158, 2139, 1949, 2070, + /* 700 */ 2071, 2074, 2072, 2086, 2087, 2127, 2090, 2100, 2131, 2101, + /* 710 */ 2159, 1993, 2104, 2092, 2105, 2149, 2151, 2107, 2110, 2152, + /* 720 */ 2113, 2119, 2153, 2114, 2126, 2169, 2129, 2130, 2177, 2133, + /* 730 */ 2134, 2178, 2137, 2069, 2112, 2116, 2117, 2141, 2191, 2142, + /* 740 */ 2211, 2144, 2191, 2191, 2226, 2180, 2184, 2219, 2220, 2224, + /* 750 */ 2225, 2232, 2234, 2235, 2237, 2198, 2181, 2230, 2240, 2242, + /* 760 */ 2244, 2258, 2246, 2247, 2249, 2213, 1935, 2251, 1945, 2255, + /* 770 */ 2256, 2265, 2266, 2280, 2268, 2304, 2270, 2257, 2271, 2307, + /* 780 */ 2274, 2262, 2273, 2313, 2279, 2267, 2276, 2317, 2283, 2281, + /* 790 */ 2293, 2320, 2287, 2299, 2335, 2315, 2318, 2316, 2319, 2321, + /* 800 */ 2323, }; -#define YY_REDUCE_COUNT (322) -#define YY_REDUCE_MIN (-404) -#define YY_REDUCE_MAX (2418) +#define YY_REDUCE_COUNT (323) +#define YY_REDUCE_MIN (-411) +#define YY_REDUCE_MAX (2523) static const short yy_reduce_ofst[] = { - /* 0 */ -296, -340, -133, -26, 88, 310, 540, 850, 881, 911, - /* 10 */ 208, 1001, 1032, 1069, 1158, 1207, 1233, 118, 1284, 1297, - /* 20 */ 1346, 1363, 1436, 1412, 1463, 1483, 426, 1550, 1580, 1639, - /* 30 */ 1712, 1743, 1778, 1815, 1840, 1877, 1902, 1974, 1989, 2007, - /* 40 */ 2054, 2076, 2123, 2182, 2195, 2212, 2244, 2311, 2331, 2401, - /* 50 */ 2418, -260, -25, 239, 149, -404, 246, 479, -28, 348, - /* 60 */ 643, -365, -294, -331, 671, -98, 24, 252, -390, -345, - /* 70 */ -265, -279, -72, 74, -318, 227, -342, 112, -232, 26, - /* 80 */ 192, 263, 341, 374, 383, 400, 424, 436, 286, 592, - /* 90 */ 595, 674, 116, 601, 675, 36, 323, 679, 391, 752, - /* 100 */ 637, -63, 765, 776, 555, 779, 429, 672, 669, 822, - /* 110 */ 155, -316, -313, -313, -259, -140, -199, -188, 157, 269, - /* 120 */ 427, 529, 548, 553, 656, 723, 726, 796, 803, 804, - /* 130 */ 809, 844, 845, 855, 867, -217, -242, -15, 438, 523, - /* 140 */ 680, 616, -242, 167, 199, -250, 366, 696, 778, 825, - /* 150 */ -375, -47, 93, 575, 818, 811, 823, 841, 864, -371, - /* 160 */ -328, 356, 491, 515, 579, 681, 515, 711, 847, 956, - /* 170 */ 910, 827, 829, 1006, 888, 1008, 1020, 1009, 986, 1009, - /* 180 */ 1046, 997, 1055, 1054, 1018, 1011, 954, 954, 937, 954, - /* 190 */ 965, 959, 1009, 1010, 998, 1021, 1023, 1073, 1025, 1091, - /* 200 */ 1040, 1105, 1075, 1076, 1121, 1081, 1078, 1134, 1135, 1137, - /* 210 */ 1087, 1092, 1093, 1128, 1132, 1147, 1146, 1161, 1163, 1164, - /* 220 */ 1169, 1170, 1175, 1174, 1101, 1165, 1136, 1168, 1178, 1120, - /* 230 */ 1176, 1184, 1179, 1180, 1181, 1191, 1183, 1200, 1166, 1167, - /* 240 */ 1171, 1173, 1187, 1188, 1189, 1190, 1193, 1194, 1196, 1197, - /* 250 */ 1201, 1172, 1185, 1205, 1129, 1133, 1138, 1203, 1141, 1151, - /* 260 */ 1208, 1214, 1199, 1202, 1238, 1204, 1210, 1211, 1139, 1212, - /* 270 */ 1219, 1148, 1213, 1222, 1225, 1009, 1150, 1153, 1215, 1186, - /* 280 */ 1216, 1221, 1217, 1144, 1218, 1226, 954, 1294, 1228, 1298, - /* 290 */ 1292, 1299, 1250, 1249, 1273, 1287, 1289, 1293, 1300, 1255, - /* 300 */ 1301, 1280, 1329, 1314, 1336, 1348, 1246, 1317, 1310, 1333, - /* 310 */ 1357, 1355, 1362, 1365, 1307, 1313, 1303, 1308, 1367, 1368, - /* 320 */ 1371, 1370, 1388, + /* 0 */ 845, -282, -133, -26, 158, 310, 500, 850, 880, 911, + /* 10 */ 1001, 1032, 1069, 1158, 1207, 1272, 389, -341, 1297, 1362, + /* 20 */ 1411, 1426, 1437, 1500, 1516, 1579, 1605, 1640, 1666, 1730, + /* 30 */ 1763, 1792, 1829, 1860, 1892, 1957, 1982, 2008, 2019, 2082, + /* 40 */ 2143, 2172, 2202, 2223, 2272, 2334, 2349, 2371, 2400, 2474, + /* 50 */ 2523, 377, 326, -405, 12, -348, 484, 655, 46, 571, + /* 60 */ 717, -365, -376, -349, -324, -340, 313, -206, -354, -63, + /* 70 */ 233, -188, -344, -162, -25, -100, -343, -238, 175, 255, + /* 80 */ 383, 428, 5, 44, 435, 450, 495, 302, 108, 497, + /* 90 */ 520, -351, 153, 573, 605, -290, 578, 623, 286, 689, + /* 100 */ 373, -300, 697, 749, 592, 764, 60, 670, 665, 780, + /* 110 */ -66, -335, -411, -411, -302, -323, -292, -213, 115, 197, + /* 120 */ 296, 470, 493, 501, 537, 721, 794, 801, 827, 831, + /* 130 */ 839, 843, 846, 856, 857, -232, -105, -102, 89, 369, + /* 140 */ 564, 576, -105, -31, -14, 160, 515, 554, 686, 372, + /* 150 */ 221, 144, 795, 338, 319, 449, 561, 730, 751, 503, + /* 160 */ 514, 585, 589, 653, 674, 729, 653, 446, 562, 735, + /* 170 */ 772, 695, 736, 909, 806, 903, 926, 977, 895, 977, + /* 180 */ 1006, 974, 1028, 1036, 998, 989, 929, 929, 912, 929, + /* 190 */ 943, 933, 977, 985, 976, 984, 981, 1050, 991, 1055, + /* 200 */ 1003, 1080, 1045, 1048, 1095, 1052, 1059, 1107, 1112, 1108, + /* 210 */ 1072, 1076, 1077, 1111, 1117, 1130, 1123, 1137, 1138, 1139, + /* 220 */ 1147, 1144, 1149, 1146, 1073, 1141, 1104, 1148, 1159, 1101, + /* 230 */ 1162, 1164, 1163, 1165, 1166, 1167, 1168, 1175, 1150, 1151, + /* 240 */ 1152, 1154, 1156, 1161, 1171, 1173, 1174, 1176, 1177, 1178, + /* 250 */ 1180, 1145, 1153, 1155, 1114, 1118, 1121, 1188, 1127, 1140, + /* 260 */ 1169, 1203, 1170, 1172, 1211, 1198, 1201, 1179, 1099, 1183, + /* 270 */ 1181, 1100, 1190, 1182, 1185, 977, 1103, 1105, 1133, 1189, + /* 280 */ 1193, 1142, 1199, 1128, 1191, 1194, 929, 1269, 1196, 1202, + /* 290 */ 1270, 1262, 1264, 1221, 1222, 1235, 1238, 1239, 1240, 1241, + /* 300 */ 1227, 1244, 1242, 1290, 1274, 1293, 1301, 1206, 1278, 1271, + /* 310 */ 1299, 1317, 1309, 1333, 1330, 1256, 1248, 1273, 1275, 1302, + /* 320 */ 1305, 1306, 1334, 1342, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 10 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 20 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 30 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 40 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 50 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 60 */ 2091, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 70 */ 1780, 1780, 1780, 1780, 2064, 1780, 1780, 1780, 1780, 1780, - /* 80 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 90 */ 1780, 1869, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 100 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 110 */ 1867, 2057, 2283, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 120 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 130 */ 1780, 1780, 1780, 1780, 1780, 1780, 2295, 1780, 1780, 1843, - /* 140 */ 1843, 1780, 2295, 2295, 2295, 1867, 2255, 2255, 1780, 1869, - /* 150 */ 2125, 1780, 1780, 1780, 1780, 1780, 1780, 1989, 1780, 1780, - /* 160 */ 1780, 1780, 1780, 2013, 1780, 1780, 1780, 2117, 1780, 1780, - /* 170 */ 2320, 2377, 1780, 1780, 2323, 1780, 1780, 1780, 1780, 1780, - /* 180 */ 1780, 2069, 1780, 1780, 1942, 2310, 2287, 2301, 2361, 2288, - /* 190 */ 2285, 2304, 1780, 2314, 1780, 1780, 2139, 1869, 1780, 1869, - /* 200 */ 2104, 1780, 2062, 1780, 1780, 2062, 2059, 1780, 1780, 1780, - /* 210 */ 2062, 2059, 2059, 1931, 1927, 1780, 1925, 1780, 1780, 1780, - /* 220 */ 1780, 1827, 1780, 1827, 1780, 1869, 1780, 1869, 1780, 1780, - /* 230 */ 1869, 1780, 1869, 1869, 1869, 1780, 1869, 1780, 1780, 1780, - /* 240 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 250 */ 1780, 1780, 1780, 1780, 2137, 2123, 1780, 1867, 2115, 2113, - /* 260 */ 1780, 1867, 2111, 2314, 1780, 1780, 1780, 1780, 2331, 2329, - /* 270 */ 1780, 2331, 2329, 1780, 1780, 1780, 2345, 2341, 2331, 2350, - /* 280 */ 2347, 2316, 2314, 2380, 2367, 2363, 2301, 1780, 1780, 1780, - /* 290 */ 1867, 1867, 1780, 2329, 1780, 1780, 1780, 1780, 1780, 2329, - /* 300 */ 1780, 1780, 1867, 1780, 1867, 1780, 1780, 1958, 1780, 1780, - /* 310 */ 1780, 1867, 1812, 1780, 2106, 2128, 2087, 2087, 1992, 1992, - /* 320 */ 1992, 1870, 1785, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 330 */ 1780, 1780, 1780, 1780, 1780, 2344, 2343, 2210, 1780, 2259, - /* 340 */ 2258, 2257, 2248, 2209, 1954, 1780, 2208, 2207, 1780, 1780, - /* 350 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 2078, 2077, 2201, - /* 360 */ 1780, 1780, 2202, 2200, 2199, 1780, 1780, 1780, 1780, 1780, - /* 370 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 380 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 2364, - /* 390 */ 2368, 1780, 1780, 1780, 1780, 1780, 1780, 2284, 1780, 1780, - /* 400 */ 1780, 2183, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 410 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 420 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 430 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 440 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 450 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 460 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 470 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 480 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 490 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 500 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 510 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 520 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 530 */ 1780, 1780, 1780, 1780, 1780, 1817, 2188, 1780, 1780, 1780, - /* 540 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 550 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 560 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 570 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 580 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1908, 1907, 1780, - /* 590 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 600 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 610 */ 1780, 2192, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 620 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 630 */ 2360, 2317, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 640 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 650 */ 2183, 1780, 2342, 1780, 1780, 2358, 1780, 2362, 1780, 1780, - /* 660 */ 1780, 1780, 1780, 1780, 1780, 2294, 2290, 1780, 1780, 2286, - /* 670 */ 1780, 1780, 1780, 1780, 1780, 2191, 1780, 1780, 1780, 1780, - /* 680 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 2182, - /* 690 */ 1780, 2245, 1780, 1780, 1780, 2279, 1780, 1780, 2230, 1780, - /* 700 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 2192, 1780, - /* 710 */ 2195, 1780, 1780, 1780, 1780, 1780, 1986, 1780, 1780, 1780, - /* 720 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 730 */ 1780, 1780, 1970, 1968, 1967, 1966, 1780, 1999, 1780, 1780, - /* 740 */ 1780, 1995, 1994, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 750 */ 1780, 1780, 1780, 1780, 1780, 1780, 1888, 1780, 1780, 1780, - /* 760 */ 1780, 1780, 1780, 1780, 1780, 1880, 1780, 1879, 1780, 1780, - /* 770 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 780 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 790 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, + /* 0 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 10 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 20 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 30 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 40 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 50 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 60 */ 2095, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 70 */ 1784, 1784, 1784, 1784, 2068, 1784, 1784, 1784, 1784, 1784, + /* 80 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 90 */ 1784, 1873, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 100 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 110 */ 1871, 2061, 2287, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 120 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 130 */ 1784, 1784, 1784, 1784, 1784, 1784, 2299, 1784, 1784, 1847, + /* 140 */ 1847, 1784, 2299, 2299, 2299, 1871, 2259, 2259, 1784, 1873, + /* 150 */ 2129, 1784, 1784, 1784, 1784, 1784, 1784, 1993, 1784, 1784, + /* 160 */ 1784, 1784, 1784, 2017, 1784, 1784, 1784, 2121, 1784, 1784, + /* 170 */ 2326, 2383, 1784, 1784, 2329, 1784, 1784, 1784, 1784, 1784, + /* 180 */ 1784, 2073, 1784, 1784, 1946, 2316, 2291, 2305, 2367, 2292, + /* 190 */ 2289, 2310, 1784, 2320, 1784, 1784, 2143, 1873, 1784, 1873, + /* 200 */ 2108, 1784, 2066, 1784, 1784, 2066, 2063, 1784, 1784, 1784, + /* 210 */ 2066, 2063, 2063, 1935, 1931, 1784, 1929, 1784, 1784, 1784, + /* 220 */ 1784, 1831, 1784, 1831, 1784, 1873, 1784, 1873, 1784, 1784, + /* 230 */ 1873, 1784, 1873, 1873, 1873, 1784, 1873, 1784, 1784, 1784, + /* 240 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 250 */ 1784, 1784, 1784, 1784, 2141, 2127, 1784, 1871, 2119, 2117, + /* 260 */ 1784, 1871, 2115, 2320, 1784, 1784, 1784, 1784, 2337, 2335, + /* 270 */ 1784, 2337, 2335, 1784, 1784, 1784, 2351, 2347, 2337, 2356, + /* 280 */ 2353, 2322, 2320, 2386, 2373, 2369, 2305, 1784, 1784, 2308, + /* 290 */ 1784, 1871, 1871, 1784, 2335, 1784, 1784, 1784, 1784, 1784, + /* 300 */ 2335, 1784, 1784, 1871, 1784, 1871, 1784, 1784, 1962, 1784, + /* 310 */ 1784, 1784, 1871, 1816, 1784, 2110, 2132, 2091, 2091, 1996, + /* 320 */ 1996, 1996, 1874, 1789, 1784, 1784, 1784, 1784, 1784, 1784, + /* 330 */ 1784, 1784, 1784, 1784, 1784, 1784, 2350, 2349, 2214, 1784, + /* 340 */ 2263, 2262, 2261, 2252, 2213, 1958, 1784, 2212, 2211, 1784, + /* 350 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2082, 2081, + /* 360 */ 2205, 1784, 1784, 2206, 2204, 2203, 1784, 1784, 1784, 1784, + /* 370 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 380 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 390 */ 2370, 2374, 1784, 1784, 1784, 1784, 1784, 1784, 2288, 1784, + /* 400 */ 1784, 1784, 2187, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 410 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 420 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 430 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 440 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 450 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 460 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 470 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 480 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 490 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 500 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 510 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 520 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 530 */ 1784, 1784, 1784, 1784, 1784, 1784, 1821, 2192, 1784, 1784, + /* 540 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 550 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 560 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 570 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 580 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1912, 1911, + /* 590 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 600 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 610 */ 1784, 1784, 2196, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 620 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 630 */ 1784, 2366, 2323, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 640 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 650 */ 1784, 2187, 1784, 2348, 1784, 1784, 2364, 1784, 2368, 1784, + /* 660 */ 1784, 1784, 1784, 1784, 1784, 1784, 2298, 2294, 1784, 1784, + /* 670 */ 2290, 1784, 1784, 1784, 1784, 1784, 2195, 1784, 1784, 1784, + /* 680 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 690 */ 2186, 1784, 2249, 1784, 1784, 1784, 2283, 1784, 1784, 2234, + /* 700 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2196, + /* 710 */ 1784, 2199, 1784, 1784, 1784, 1784, 1784, 1990, 1784, 1784, + /* 720 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 730 */ 1784, 1784, 1784, 1974, 1972, 1971, 1970, 1784, 2003, 1784, + /* 740 */ 1784, 1784, 1999, 1998, 1784, 1784, 1784, 1784, 1784, 1784, + /* 750 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1892, 1784, 1784, + /* 760 */ 1784, 1784, 1784, 1784, 1784, 1784, 1884, 1784, 1883, 1784, + /* 770 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 780 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 790 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 800 */ 1784, }; /********** End of lemon-generated parsing tables *****************************/ @@ -1441,6 +1804,7 @@ struct yyParser { }; typedef struct yyParser yyParser; +#include #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; @@ -1939,31 +2303,32 @@ static const char *const yyTokenName[] = { /* 459 */ "parenthesized_joined_table", /* 460 */ "join_type", /* 461 */ "query_specification", - /* 462 */ "set_quantifier_opt", - /* 463 */ "select_list", - /* 464 */ "partition_by_clause_opt", - /* 465 */ "range_opt", - /* 466 */ "every_opt", - /* 467 */ "fill_opt", - /* 468 */ "twindow_clause_opt", - /* 469 */ "group_by_clause_opt", - /* 470 */ "having_clause_opt", - /* 471 */ "select_item", - /* 472 */ "partition_list", - /* 473 */ "partition_item", - /* 474 */ "fill_mode", - /* 475 */ "group_by_list", - /* 476 */ "query_expression", - /* 477 */ "query_simple", - /* 478 */ "order_by_clause_opt", - /* 479 */ "slimit_clause_opt", - /* 480 */ "limit_clause_opt", - /* 481 */ "union_query_expression", - /* 482 */ "query_simple_or_subquery", - /* 483 */ "sort_specification_list", - /* 484 */ "sort_specification", - /* 485 */ "ordering_specification_opt", - /* 486 */ "null_ordering_opt", + /* 462 */ "tag_mode_opt", + /* 463 */ "set_quantifier_opt", + /* 464 */ "select_list", + /* 465 */ "partition_by_clause_opt", + /* 466 */ "range_opt", + /* 467 */ "every_opt", + /* 468 */ "fill_opt", + /* 469 */ "twindow_clause_opt", + /* 470 */ "group_by_clause_opt", + /* 471 */ "having_clause_opt", + /* 472 */ "select_item", + /* 473 */ "partition_list", + /* 474 */ "partition_item", + /* 475 */ "fill_mode", + /* 476 */ "group_by_list", + /* 477 */ "query_expression", + /* 478 */ "query_simple", + /* 479 */ "order_by_clause_opt", + /* 480 */ "slimit_clause_opt", + /* 481 */ "limit_clause_opt", + /* 482 */ "union_query_expression", + /* 483 */ "query_simple_or_subquery", + /* 484 */ "sort_specification_list", + /* 485 */ "sort_specification", + /* 486 */ "ordering_specification_opt", + /* 487 */ "null_ordering_opt", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -2491,86 +2856,88 @@ static const char *const yyRuleName[] = { /* 517 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", /* 518 */ "join_type ::=", /* 519 */ "join_type ::= INNER", - /* 520 */ "query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt", - /* 521 */ "set_quantifier_opt ::=", - /* 522 */ "set_quantifier_opt ::= DISTINCT", - /* 523 */ "set_quantifier_opt ::= ALL", - /* 524 */ "select_list ::= select_item", - /* 525 */ "select_list ::= select_list NK_COMMA select_item", - /* 526 */ "select_item ::= NK_STAR", - /* 527 */ "select_item ::= common_expression", - /* 528 */ "select_item ::= common_expression column_alias", - /* 529 */ "select_item ::= common_expression AS column_alias", - /* 530 */ "select_item ::= table_name NK_DOT NK_STAR", - /* 531 */ "where_clause_opt ::=", - /* 532 */ "where_clause_opt ::= WHERE search_condition", - /* 533 */ "partition_by_clause_opt ::=", - /* 534 */ "partition_by_clause_opt ::= PARTITION BY partition_list", - /* 535 */ "partition_list ::= partition_item", - /* 536 */ "partition_list ::= partition_list NK_COMMA partition_item", - /* 537 */ "partition_item ::= expr_or_subquery", - /* 538 */ "partition_item ::= expr_or_subquery column_alias", - /* 539 */ "partition_item ::= expr_or_subquery AS column_alias", - /* 540 */ "twindow_clause_opt ::=", - /* 541 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", - /* 542 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", - /* 543 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", - /* 544 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", - /* 545 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", - /* 546 */ "sliding_opt ::=", - /* 547 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", - /* 548 */ "fill_opt ::=", - /* 549 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 550 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", - /* 551 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", - /* 552 */ "fill_mode ::= NONE", - /* 553 */ "fill_mode ::= PREV", - /* 554 */ "fill_mode ::= NULL", - /* 555 */ "fill_mode ::= NULL_F", - /* 556 */ "fill_mode ::= LINEAR", - /* 557 */ "fill_mode ::= NEXT", - /* 558 */ "group_by_clause_opt ::=", - /* 559 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 560 */ "group_by_list ::= expr_or_subquery", - /* 561 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 562 */ "having_clause_opt ::=", - /* 563 */ "having_clause_opt ::= HAVING search_condition", - /* 564 */ "range_opt ::=", - /* 565 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 566 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", - /* 567 */ "every_opt ::=", - /* 568 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 569 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 570 */ "query_simple ::= query_specification", - /* 571 */ "query_simple ::= union_query_expression", - /* 572 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 573 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 574 */ "query_simple_or_subquery ::= query_simple", - /* 575 */ "query_simple_or_subquery ::= subquery", - /* 576 */ "query_or_subquery ::= query_expression", - /* 577 */ "query_or_subquery ::= subquery", - /* 578 */ "order_by_clause_opt ::=", - /* 579 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 580 */ "slimit_clause_opt ::=", - /* 581 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 582 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 583 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 584 */ "limit_clause_opt ::=", - /* 585 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 586 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 587 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 588 */ "subquery ::= NK_LP query_expression NK_RP", - /* 589 */ "subquery ::= NK_LP subquery NK_RP", - /* 590 */ "search_condition ::= common_expression", - /* 591 */ "sort_specification_list ::= sort_specification", - /* 592 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 593 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 594 */ "ordering_specification_opt ::=", - /* 595 */ "ordering_specification_opt ::= ASC", - /* 596 */ "ordering_specification_opt ::= DESC", - /* 597 */ "null_ordering_opt ::=", - /* 598 */ "null_ordering_opt ::= NULLS FIRST", - /* 599 */ "null_ordering_opt ::= NULLS LAST", + /* 520 */ "query_specification ::= SELECT tag_mode_opt set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt", + /* 521 */ "tag_mode_opt ::=", + /* 522 */ "tag_mode_opt ::= TAGS", + /* 523 */ "set_quantifier_opt ::=", + /* 524 */ "set_quantifier_opt ::= DISTINCT", + /* 525 */ "set_quantifier_opt ::= ALL", + /* 526 */ "select_list ::= select_item", + /* 527 */ "select_list ::= select_list NK_COMMA select_item", + /* 528 */ "select_item ::= NK_STAR", + /* 529 */ "select_item ::= common_expression", + /* 530 */ "select_item ::= common_expression column_alias", + /* 531 */ "select_item ::= common_expression AS column_alias", + /* 532 */ "select_item ::= table_name NK_DOT NK_STAR", + /* 533 */ "where_clause_opt ::=", + /* 534 */ "where_clause_opt ::= WHERE search_condition", + /* 535 */ "partition_by_clause_opt ::=", + /* 536 */ "partition_by_clause_opt ::= PARTITION BY partition_list", + /* 537 */ "partition_list ::= partition_item", + /* 538 */ "partition_list ::= partition_list NK_COMMA partition_item", + /* 539 */ "partition_item ::= expr_or_subquery", + /* 540 */ "partition_item ::= expr_or_subquery column_alias", + /* 541 */ "partition_item ::= expr_or_subquery AS column_alias", + /* 542 */ "twindow_clause_opt ::=", + /* 543 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", + /* 544 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", + /* 545 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", + /* 546 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", + /* 547 */ "twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition", + /* 548 */ "sliding_opt ::=", + /* 549 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", + /* 550 */ "fill_opt ::=", + /* 551 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 552 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP", + /* 553 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP", + /* 554 */ "fill_mode ::= NONE", + /* 555 */ "fill_mode ::= PREV", + /* 556 */ "fill_mode ::= NULL", + /* 557 */ "fill_mode ::= NULL_F", + /* 558 */ "fill_mode ::= LINEAR", + /* 559 */ "fill_mode ::= NEXT", + /* 560 */ "group_by_clause_opt ::=", + /* 561 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 562 */ "group_by_list ::= expr_or_subquery", + /* 563 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 564 */ "having_clause_opt ::=", + /* 565 */ "having_clause_opt ::= HAVING search_condition", + /* 566 */ "range_opt ::=", + /* 567 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 568 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_RP", + /* 569 */ "every_opt ::=", + /* 570 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 571 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 572 */ "query_simple ::= query_specification", + /* 573 */ "query_simple ::= union_query_expression", + /* 574 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 575 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 576 */ "query_simple_or_subquery ::= query_simple", + /* 577 */ "query_simple_or_subquery ::= subquery", + /* 578 */ "query_or_subquery ::= query_expression", + /* 579 */ "query_or_subquery ::= subquery", + /* 580 */ "order_by_clause_opt ::=", + /* 581 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 582 */ "slimit_clause_opt ::=", + /* 583 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 584 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 585 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 586 */ "limit_clause_opt ::=", + /* 587 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 588 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 589 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 590 */ "subquery ::= NK_LP query_expression NK_RP", + /* 591 */ "subquery ::= NK_LP subquery NK_RP", + /* 592 */ "search_condition ::= common_expression", + /* 593 */ "sort_specification_list ::= sort_specification", + /* 594 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 595 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 596 */ "ordering_specification_opt ::=", + /* 597 */ "ordering_specification_opt ::= ASC", + /* 598 */ "ordering_specification_opt ::= DESC", + /* 599 */ "null_ordering_opt ::=", + /* 600 */ "null_ordering_opt ::= NULLS FIRST", + /* 601 */ "null_ordering_opt ::= NULLS LAST", }; #endif /* NDEBUG */ @@ -2757,22 +3124,24 @@ static void yy_destructor( case 458: /* subquery */ case 459: /* parenthesized_joined_table */ case 461: /* query_specification */ - case 465: /* range_opt */ - case 466: /* every_opt */ - case 467: /* fill_opt */ - case 468: /* twindow_clause_opt */ - case 470: /* having_clause_opt */ - case 471: /* select_item */ - case 473: /* partition_item */ - case 476: /* query_expression */ - case 477: /* query_simple */ - case 479: /* slimit_clause_opt */ - case 480: /* limit_clause_opt */ - case 481: /* union_query_expression */ - case 482: /* query_simple_or_subquery */ - case 484: /* sort_specification */ + case 466: /* range_opt */ + case 467: /* every_opt */ + case 468: /* fill_opt */ + case 469: /* twindow_clause_opt */ + case 471: /* having_clause_opt */ + case 472: /* select_item */ + case 474: /* partition_item */ + case 477: /* query_expression */ + case 478: /* query_simple */ + case 480: /* slimit_clause_opt */ + case 481: /* limit_clause_opt */ + case 482: /* union_query_expression */ + case 483: /* query_simple_or_subquery */ + case 485: /* sort_specification */ { - nodesDestroyNode((yypminor->yy452)); +#line 7 "sql.y" + nodesDestroyNode((yypminor->yy840)); +#line 3144 "sql.c" } break; case 339: /* account_options */ @@ -2782,7 +3151,9 @@ static void yy_destructor( case 410: /* with_meta */ case 419: /* bufsize_opt */ { +#line 54 "sql.y" +#line 3156 "sql.c" } break; case 343: /* user_name */ @@ -2803,24 +3174,32 @@ static void yy_destructor( case 439: /* noarg_func */ case 457: /* alias_opt */ { +#line 742 "sql.y" +#line 3179 "sql.c" } break; case 344: /* sysinfo_opt */ { +#line 92 "sql.y" +#line 3186 "sql.c" } break; case 345: /* privileges */ case 348: /* priv_type_list */ case 349: /* priv_type */ { +#line 101 "sql.y" +#line 3195 "sql.c" } break; case 346: /* priv_level */ { +#line 117 "sql.y" +#line 3202 "sql.c" } break; case 355: /* force_opt */ @@ -2831,9 +3210,12 @@ static void yy_destructor( case 417: /* or_replace_opt */ case 418: /* agg_func_opt */ case 426: /* ignore_opt */ - case 462: /* set_quantifier_opt */ + case 462: /* tag_mode_opt */ + case 463: /* set_quantifier_opt */ { +#line 146 "sql.y" +#line 3218 "sql.c" } break; case 364: /* integer_list */ @@ -2858,52 +3240,68 @@ static void yy_destructor( case 438: /* star_func_para_list */ case 440: /* other_para_list */ case 442: /* when_then_list */ - case 463: /* select_list */ - case 464: /* partition_by_clause_opt */ - case 469: /* group_by_clause_opt */ - case 472: /* partition_list */ - case 475: /* group_by_list */ - case 478: /* order_by_clause_opt */ - case 483: /* sort_specification_list */ + case 464: /* select_list */ + case 465: /* partition_by_clause_opt */ + case 470: /* group_by_clause_opt */ + case 473: /* partition_list */ + case 476: /* group_by_list */ + case 479: /* order_by_clause_opt */ + case 484: /* sort_specification_list */ { - nodesDestroyList((yypminor->yy812)); +#line 270 "sql.y" + nodesDestroyList((yypminor->yy56)); +#line 3253 "sql.c" } break; case 368: /* alter_db_option */ case 390: /* alter_table_option */ { +#line 243 "sql.y" +#line 3261 "sql.c" } break; case 380: /* type_name */ { +#line 364 "sql.y" +#line 3268 "sql.c" } break; case 447: /* compare_op */ case 448: /* in_op */ { +#line 930 "sql.y" +#line 3276 "sql.c" } break; case 460: /* join_type */ { +#line 1006 "sql.y" +#line 3283 "sql.c" } break; - case 474: /* fill_mode */ + case 475: /* fill_mode */ { +#line 1087 "sql.y" +#line 3290 "sql.c" } break; - case 485: /* ordering_specification_opt */ + case 486: /* ordering_specification_opt */ { +#line 1172 "sql.y" +#line 3297 "sql.c" } break; - case 486: /* null_ordering_opt */ + case 487: /* null_ordering_opt */ { +#line 1178 "sql.y" +#line 3304 "sql.c" } break; /********* End destructor definitions *****************************************/ @@ -3070,7 +3468,7 @@ static YYACTIONTYPE yy_find_shift_action( #endif /* YYWILDCARD */ return yy_default[stateno]; }else{ - assert( i>=0 && i=0 && i<(int)(sizeof(yy_action)/sizeof(yy_action[0])) ); return yy_action[i]; } }while(1); @@ -3712,86 +4110,88 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 456, /* (517) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ 460, /* (518) join_type ::= */ 460, /* (519) join_type ::= INNER */ - 461, /* (520) query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ - 462, /* (521) set_quantifier_opt ::= */ - 462, /* (522) set_quantifier_opt ::= DISTINCT */ - 462, /* (523) set_quantifier_opt ::= ALL */ - 463, /* (524) select_list ::= select_item */ - 463, /* (525) select_list ::= select_list NK_COMMA select_item */ - 471, /* (526) select_item ::= NK_STAR */ - 471, /* (527) select_item ::= common_expression */ - 471, /* (528) select_item ::= common_expression column_alias */ - 471, /* (529) select_item ::= common_expression AS column_alias */ - 471, /* (530) select_item ::= table_name NK_DOT NK_STAR */ - 412, /* (531) where_clause_opt ::= */ - 412, /* (532) where_clause_opt ::= WHERE search_condition */ - 464, /* (533) partition_by_clause_opt ::= */ - 464, /* (534) partition_by_clause_opt ::= PARTITION BY partition_list */ - 472, /* (535) partition_list ::= partition_item */ - 472, /* (536) partition_list ::= partition_list NK_COMMA partition_item */ - 473, /* (537) partition_item ::= expr_or_subquery */ - 473, /* (538) partition_item ::= expr_or_subquery column_alias */ - 473, /* (539) partition_item ::= expr_or_subquery AS column_alias */ - 468, /* (540) twindow_clause_opt ::= */ - 468, /* (541) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ - 468, /* (542) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - 468, /* (543) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ - 468, /* (544) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ - 468, /* (545) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - 406, /* (546) sliding_opt ::= */ - 406, /* (547) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ - 467, /* (548) fill_opt ::= */ - 467, /* (549) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - 467, /* (550) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - 467, /* (551) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - 474, /* (552) fill_mode ::= NONE */ - 474, /* (553) fill_mode ::= PREV */ - 474, /* (554) fill_mode ::= NULL */ - 474, /* (555) fill_mode ::= NULL_F */ - 474, /* (556) fill_mode ::= LINEAR */ - 474, /* (557) fill_mode ::= NEXT */ - 469, /* (558) group_by_clause_opt ::= */ - 469, /* (559) group_by_clause_opt ::= GROUP BY group_by_list */ - 475, /* (560) group_by_list ::= expr_or_subquery */ - 475, /* (561) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 470, /* (562) having_clause_opt ::= */ - 470, /* (563) having_clause_opt ::= HAVING search_condition */ - 465, /* (564) range_opt ::= */ - 465, /* (565) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - 465, /* (566) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 466, /* (567) every_opt ::= */ - 466, /* (568) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - 476, /* (569) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - 477, /* (570) query_simple ::= query_specification */ - 477, /* (571) query_simple ::= union_query_expression */ - 481, /* (572) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - 481, /* (573) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - 482, /* (574) query_simple_or_subquery ::= query_simple */ - 482, /* (575) query_simple_or_subquery ::= subquery */ - 411, /* (576) query_or_subquery ::= query_expression */ - 411, /* (577) query_or_subquery ::= subquery */ - 478, /* (578) order_by_clause_opt ::= */ - 478, /* (579) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 479, /* (580) slimit_clause_opt ::= */ - 479, /* (581) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - 479, /* (582) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - 479, /* (583) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 480, /* (584) limit_clause_opt ::= */ - 480, /* (585) limit_clause_opt ::= LIMIT NK_INTEGER */ - 480, /* (586) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - 480, /* (587) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 458, /* (588) subquery ::= NK_LP query_expression NK_RP */ - 458, /* (589) subquery ::= NK_LP subquery NK_RP */ - 353, /* (590) search_condition ::= common_expression */ - 483, /* (591) sort_specification_list ::= sort_specification */ - 483, /* (592) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - 484, /* (593) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 485, /* (594) ordering_specification_opt ::= */ - 485, /* (595) ordering_specification_opt ::= ASC */ - 485, /* (596) ordering_specification_opt ::= DESC */ - 486, /* (597) null_ordering_opt ::= */ - 486, /* (598) null_ordering_opt ::= NULLS FIRST */ - 486, /* (599) null_ordering_opt ::= NULLS LAST */ + 461, /* (520) query_specification ::= SELECT tag_mode_opt set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ + 462, /* (521) tag_mode_opt ::= */ + 462, /* (522) tag_mode_opt ::= TAGS */ + 463, /* (523) set_quantifier_opt ::= */ + 463, /* (524) set_quantifier_opt ::= DISTINCT */ + 463, /* (525) set_quantifier_opt ::= ALL */ + 464, /* (526) select_list ::= select_item */ + 464, /* (527) select_list ::= select_list NK_COMMA select_item */ + 472, /* (528) select_item ::= NK_STAR */ + 472, /* (529) select_item ::= common_expression */ + 472, /* (530) select_item ::= common_expression column_alias */ + 472, /* (531) select_item ::= common_expression AS column_alias */ + 472, /* (532) select_item ::= table_name NK_DOT NK_STAR */ + 412, /* (533) where_clause_opt ::= */ + 412, /* (534) where_clause_opt ::= WHERE search_condition */ + 465, /* (535) partition_by_clause_opt ::= */ + 465, /* (536) partition_by_clause_opt ::= PARTITION BY partition_list */ + 473, /* (537) partition_list ::= partition_item */ + 473, /* (538) partition_list ::= partition_list NK_COMMA partition_item */ + 474, /* (539) partition_item ::= expr_or_subquery */ + 474, /* (540) partition_item ::= expr_or_subquery column_alias */ + 474, /* (541) partition_item ::= expr_or_subquery AS column_alias */ + 469, /* (542) twindow_clause_opt ::= */ + 469, /* (543) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ + 469, /* (544) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + 469, /* (545) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ + 469, /* (546) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ + 469, /* (547) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + 406, /* (548) sliding_opt ::= */ + 406, /* (549) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ + 468, /* (550) fill_opt ::= */ + 468, /* (551) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + 468, /* (552) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + 468, /* (553) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + 475, /* (554) fill_mode ::= NONE */ + 475, /* (555) fill_mode ::= PREV */ + 475, /* (556) fill_mode ::= NULL */ + 475, /* (557) fill_mode ::= NULL_F */ + 475, /* (558) fill_mode ::= LINEAR */ + 475, /* (559) fill_mode ::= NEXT */ + 470, /* (560) group_by_clause_opt ::= */ + 470, /* (561) group_by_clause_opt ::= GROUP BY group_by_list */ + 476, /* (562) group_by_list ::= expr_or_subquery */ + 476, /* (563) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 471, /* (564) having_clause_opt ::= */ + 471, /* (565) having_clause_opt ::= HAVING search_condition */ + 466, /* (566) range_opt ::= */ + 466, /* (567) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + 466, /* (568) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 467, /* (569) every_opt ::= */ + 467, /* (570) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + 477, /* (571) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + 478, /* (572) query_simple ::= query_specification */ + 478, /* (573) query_simple ::= union_query_expression */ + 482, /* (574) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + 482, /* (575) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + 483, /* (576) query_simple_or_subquery ::= query_simple */ + 483, /* (577) query_simple_or_subquery ::= subquery */ + 411, /* (578) query_or_subquery ::= query_expression */ + 411, /* (579) query_or_subquery ::= subquery */ + 479, /* (580) order_by_clause_opt ::= */ + 479, /* (581) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 480, /* (582) slimit_clause_opt ::= */ + 480, /* (583) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + 480, /* (584) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + 480, /* (585) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 481, /* (586) limit_clause_opt ::= */ + 481, /* (587) limit_clause_opt ::= LIMIT NK_INTEGER */ + 481, /* (588) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + 481, /* (589) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 458, /* (590) subquery ::= NK_LP query_expression NK_RP */ + 458, /* (591) subquery ::= NK_LP subquery NK_RP */ + 353, /* (592) search_condition ::= common_expression */ + 484, /* (593) sort_specification_list ::= sort_specification */ + 484, /* (594) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + 485, /* (595) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 486, /* (596) ordering_specification_opt ::= */ + 486, /* (597) ordering_specification_opt ::= ASC */ + 486, /* (598) ordering_specification_opt ::= DESC */ + 487, /* (599) null_ordering_opt ::= */ + 487, /* (600) null_ordering_opt ::= NULLS FIRST */ + 487, /* (601) null_ordering_opt ::= NULLS LAST */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -4317,86 +4717,88 @@ static const signed char yyRuleInfoNRhs[] = { -6, /* (517) joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ 0, /* (518) join_type ::= */ -1, /* (519) join_type ::= INNER */ - -12, /* (520) query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ - 0, /* (521) set_quantifier_opt ::= */ - -1, /* (522) set_quantifier_opt ::= DISTINCT */ - -1, /* (523) set_quantifier_opt ::= ALL */ - -1, /* (524) select_list ::= select_item */ - -3, /* (525) select_list ::= select_list NK_COMMA select_item */ - -1, /* (526) select_item ::= NK_STAR */ - -1, /* (527) select_item ::= common_expression */ - -2, /* (528) select_item ::= common_expression column_alias */ - -3, /* (529) select_item ::= common_expression AS column_alias */ - -3, /* (530) select_item ::= table_name NK_DOT NK_STAR */ - 0, /* (531) where_clause_opt ::= */ - -2, /* (532) where_clause_opt ::= WHERE search_condition */ - 0, /* (533) partition_by_clause_opt ::= */ - -3, /* (534) partition_by_clause_opt ::= PARTITION BY partition_list */ - -1, /* (535) partition_list ::= partition_item */ - -3, /* (536) partition_list ::= partition_list NK_COMMA partition_item */ - -1, /* (537) partition_item ::= expr_or_subquery */ - -2, /* (538) partition_item ::= expr_or_subquery column_alias */ - -3, /* (539) partition_item ::= expr_or_subquery AS column_alias */ - 0, /* (540) twindow_clause_opt ::= */ - -6, /* (541) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ - -4, /* (542) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ - -6, /* (543) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ - -8, /* (544) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ - -7, /* (545) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ - 0, /* (546) sliding_opt ::= */ - -4, /* (547) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ - 0, /* (548) fill_opt ::= */ - -4, /* (549) fill_opt ::= FILL NK_LP fill_mode NK_RP */ - -6, /* (550) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ - -6, /* (551) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ - -1, /* (552) fill_mode ::= NONE */ - -1, /* (553) fill_mode ::= PREV */ - -1, /* (554) fill_mode ::= NULL */ - -1, /* (555) fill_mode ::= NULL_F */ - -1, /* (556) fill_mode ::= LINEAR */ - -1, /* (557) fill_mode ::= NEXT */ - 0, /* (558) group_by_clause_opt ::= */ - -3, /* (559) group_by_clause_opt ::= GROUP BY group_by_list */ - -1, /* (560) group_by_list ::= expr_or_subquery */ - -3, /* (561) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ - 0, /* (562) having_clause_opt ::= */ - -2, /* (563) having_clause_opt ::= HAVING search_condition */ - 0, /* (564) range_opt ::= */ - -6, /* (565) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ - -4, /* (566) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ - 0, /* (567) every_opt ::= */ - -4, /* (568) every_opt ::= EVERY NK_LP duration_literal NK_RP */ - -4, /* (569) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ - -1, /* (570) query_simple ::= query_specification */ - -1, /* (571) query_simple ::= union_query_expression */ - -4, /* (572) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ - -3, /* (573) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ - -1, /* (574) query_simple_or_subquery ::= query_simple */ - -1, /* (575) query_simple_or_subquery ::= subquery */ - -1, /* (576) query_or_subquery ::= query_expression */ - -1, /* (577) query_or_subquery ::= subquery */ - 0, /* (578) order_by_clause_opt ::= */ - -3, /* (579) order_by_clause_opt ::= ORDER BY sort_specification_list */ - 0, /* (580) slimit_clause_opt ::= */ - -2, /* (581) slimit_clause_opt ::= SLIMIT NK_INTEGER */ - -4, /* (582) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - -4, /* (583) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - 0, /* (584) limit_clause_opt ::= */ - -2, /* (585) limit_clause_opt ::= LIMIT NK_INTEGER */ - -4, /* (586) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ - -4, /* (587) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - -3, /* (588) subquery ::= NK_LP query_expression NK_RP */ - -3, /* (589) subquery ::= NK_LP subquery NK_RP */ - -1, /* (590) search_condition ::= common_expression */ - -1, /* (591) sort_specification_list ::= sort_specification */ - -3, /* (592) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ - -3, /* (593) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ - 0, /* (594) ordering_specification_opt ::= */ - -1, /* (595) ordering_specification_opt ::= ASC */ - -1, /* (596) ordering_specification_opt ::= DESC */ - 0, /* (597) null_ordering_opt ::= */ - -2, /* (598) null_ordering_opt ::= NULLS FIRST */ - -2, /* (599) null_ordering_opt ::= NULLS LAST */ + -13, /* (520) query_specification ::= SELECT tag_mode_opt set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ + 0, /* (521) tag_mode_opt ::= */ + -1, /* (522) tag_mode_opt ::= TAGS */ + 0, /* (523) set_quantifier_opt ::= */ + -1, /* (524) set_quantifier_opt ::= DISTINCT */ + -1, /* (525) set_quantifier_opt ::= ALL */ + -1, /* (526) select_list ::= select_item */ + -3, /* (527) select_list ::= select_list NK_COMMA select_item */ + -1, /* (528) select_item ::= NK_STAR */ + -1, /* (529) select_item ::= common_expression */ + -2, /* (530) select_item ::= common_expression column_alias */ + -3, /* (531) select_item ::= common_expression AS column_alias */ + -3, /* (532) select_item ::= table_name NK_DOT NK_STAR */ + 0, /* (533) where_clause_opt ::= */ + -2, /* (534) where_clause_opt ::= WHERE search_condition */ + 0, /* (535) partition_by_clause_opt ::= */ + -3, /* (536) partition_by_clause_opt ::= PARTITION BY partition_list */ + -1, /* (537) partition_list ::= partition_item */ + -3, /* (538) partition_list ::= partition_list NK_COMMA partition_item */ + -1, /* (539) partition_item ::= expr_or_subquery */ + -2, /* (540) partition_item ::= expr_or_subquery column_alias */ + -3, /* (541) partition_item ::= expr_or_subquery AS column_alias */ + 0, /* (542) twindow_clause_opt ::= */ + -6, /* (543) twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ + -4, /* (544) twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + -6, /* (545) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ + -8, /* (546) twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ + -7, /* (547) twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ + 0, /* (548) sliding_opt ::= */ + -4, /* (549) sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ + 0, /* (550) fill_opt ::= */ + -4, /* (551) fill_opt ::= FILL NK_LP fill_mode NK_RP */ + -6, /* (552) fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ + -6, /* (553) fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ + -1, /* (554) fill_mode ::= NONE */ + -1, /* (555) fill_mode ::= PREV */ + -1, /* (556) fill_mode ::= NULL */ + -1, /* (557) fill_mode ::= NULL_F */ + -1, /* (558) fill_mode ::= LINEAR */ + -1, /* (559) fill_mode ::= NEXT */ + 0, /* (560) group_by_clause_opt ::= */ + -3, /* (561) group_by_clause_opt ::= GROUP BY group_by_list */ + -1, /* (562) group_by_list ::= expr_or_subquery */ + -3, /* (563) group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + 0, /* (564) having_clause_opt ::= */ + -2, /* (565) having_clause_opt ::= HAVING search_condition */ + 0, /* (566) range_opt ::= */ + -6, /* (567) range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + -4, /* (568) range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ + 0, /* (569) every_opt ::= */ + -4, /* (570) every_opt ::= EVERY NK_LP duration_literal NK_RP */ + -4, /* (571) query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + -1, /* (572) query_simple ::= query_specification */ + -1, /* (573) query_simple ::= union_query_expression */ + -4, /* (574) union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + -3, /* (575) union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + -1, /* (576) query_simple_or_subquery ::= query_simple */ + -1, /* (577) query_simple_or_subquery ::= subquery */ + -1, /* (578) query_or_subquery ::= query_expression */ + -1, /* (579) query_or_subquery ::= subquery */ + 0, /* (580) order_by_clause_opt ::= */ + -3, /* (581) order_by_clause_opt ::= ORDER BY sort_specification_list */ + 0, /* (582) slimit_clause_opt ::= */ + -2, /* (583) slimit_clause_opt ::= SLIMIT NK_INTEGER */ + -4, /* (584) slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + -4, /* (585) slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + 0, /* (586) limit_clause_opt ::= */ + -2, /* (587) limit_clause_opt ::= LIMIT NK_INTEGER */ + -4, /* (588) limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ + -4, /* (589) limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + -3, /* (590) subquery ::= NK_LP query_expression NK_RP */ + -3, /* (591) subquery ::= NK_LP subquery NK_RP */ + -1, /* (592) search_condition ::= common_expression */ + -1, /* (593) sort_specification_list ::= sort_specification */ + -3, /* (594) sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ + -3, /* (595) sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + 0, /* (596) ordering_specification_opt ::= */ + -1, /* (597) ordering_specification_opt ::= ASC */ + -1, /* (598) ordering_specification_opt ::= DESC */ + 0, /* (599) null_ordering_opt ::= */ + -2, /* (600) null_ordering_opt ::= NULLS FIRST */ + -2, /* (601) null_ordering_opt ::= NULLS LAST */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -4426,54 +4828,6 @@ static YYACTIONTYPE yy_reduce( (void)yyLookahead; (void)yyLookaheadToken; yymsp = yypParser->yytos; -#ifndef NDEBUG - if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - yysize = yyRuleInfoNRhs[yyruleno]; - if( yysize ){ - fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n", - yyTracePrompt, - yyruleno, yyRuleName[yyruleno], - yyrulenoyytos - yypParser->yystack)>yypParser->yyhwm ){ - yypParser->yyhwm++; - assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack)); - } -#endif -#if YYSTACKDEPTH>0 - if( yypParser->yytos>=yypParser->yystackEnd ){ - yyStackOverflow(yypParser); - /* The call to yyStackOverflow() above pops the stack until it is - ** empty, causing the main parser loop to exit. So the return value - ** is never used and does not matter. */ - return 0; - } -#else - if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){ - if( yyGrowStack(yypParser) ){ - yyStackOverflow(yypParser); - /* The call to yyStackOverflow() above pops the stack until it is - ** empty, causing the main parser loop to exit. So the return value - ** is never used and does not matter. */ - return 0; - } - yymsp = yypParser->yytos; - } -#endif - } switch( yyruleno ){ /* Beginning here are the reduction cases. A typical example @@ -4487,15 +4841,21 @@ static YYACTIONTYPE yy_reduce( /********** Begin reduce actions **********************************************/ YYMINORTYPE yylhsminor; 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 4846 "sql.c" yy_destructor(yypParser,339,&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 4852 "sql.c" yy_destructor(yypParser,340,&yymsp[0].minor); break; case 2: /* account_options ::= */ +#line 55 "sql.y" { } +#line 4858 "sql.c" break; case 3: /* account_options ::= account_options PPS literal */ case 4: /* account_options ::= account_options TSERIES literal */ yytestcase(yyruleno==4); @@ -4507,18 +4867,24 @@ static YYACTIONTYPE yy_reduce( case 10: /* account_options ::= account_options CONNS literal */ yytestcase(yyruleno==10); case 11: /* account_options ::= account_options STATE literal */ yytestcase(yyruleno==11); { yy_destructor(yypParser,339,&yymsp[-2].minor); +#line 56 "sql.y" { } +#line 4872 "sql.c" yy_destructor(yypParser,341,&yymsp[0].minor); } break; case 12: /* alter_account_options ::= alter_account_option */ { yy_destructor(yypParser,342,&yymsp[0].minor); +#line 68 "sql.y" { } +#line 4880 "sql.c" } break; case 13: /* alter_account_options ::= alter_account_options alter_account_option */ { yy_destructor(yypParser,340,&yymsp[-1].minor); +#line 69 "sql.y" { } +#line 4887 "sql.c" yy_destructor(yypParser,342,&yymsp[0].minor); } break; @@ -4532,72 +4898,112 @@ static YYACTIONTYPE yy_reduce( case 21: /* alter_account_option ::= USERS literal */ yytestcase(yyruleno==21); case 22: /* alter_account_option ::= CONNS literal */ yytestcase(yyruleno==22); case 23: /* alter_account_option ::= STATE literal */ yytestcase(yyruleno==23); +#line 73 "sql.y" { } +#line 4903 "sql.c" yy_destructor(yypParser,341,&yymsp[0].minor); break; case 24: /* cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ -{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy371, &yymsp[-1].minor.yy0, yymsp[0].minor.yy475); } +#line 85 "sql.y" +{ pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy129, &yymsp[-1].minor.yy0, yymsp[0].minor.yy215); } +#line 4909 "sql.c" break; case 25: /* cmd ::= ALTER USER user_name PASS NK_STRING */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy371, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } +#line 86 "sql.y" +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy129, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } +#line 4914 "sql.c" break; case 26: /* cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy371, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } +#line 87 "sql.y" +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy129, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } +#line 4919 "sql.c" break; case 27: /* cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ -{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy371, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } +#line 88 "sql.y" +{ pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy129, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } +#line 4924 "sql.c" break; case 28: /* cmd ::= DROP USER user_name */ -{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy371); } +#line 89 "sql.y" +{ pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy129); } +#line 4929 "sql.c" break; case 29: /* sysinfo_opt ::= */ -{ yymsp[1].minor.yy475 = 1; } +#line 93 "sql.y" +{ yymsp[1].minor.yy215 = 1; } +#line 4934 "sql.c" break; case 30: /* sysinfo_opt ::= SYSINFO NK_INTEGER */ -{ yymsp[-1].minor.yy475 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } +#line 94 "sql.y" +{ yymsp[-1].minor.yy215 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } +#line 4939 "sql.c" break; case 31: /* cmd ::= GRANT privileges ON priv_level with_opt TO user_name */ -{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-5].minor.yy729, &yymsp[-3].minor.yy347, &yymsp[0].minor.yy371, yymsp[-2].minor.yy452); } +#line 97 "sql.y" +{ pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-5].minor.yy717, &yymsp[-3].minor.yy505, &yymsp[0].minor.yy129, yymsp[-2].minor.yy840); } +#line 4944 "sql.c" break; case 32: /* cmd ::= REVOKE privileges ON priv_level with_opt FROM user_name */ -{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-5].minor.yy729, &yymsp[-3].minor.yy347, &yymsp[0].minor.yy371, yymsp[-2].minor.yy452); } +#line 98 "sql.y" +{ pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-5].minor.yy717, &yymsp[-3].minor.yy505, &yymsp[0].minor.yy129, yymsp[-2].minor.yy840); } +#line 4949 "sql.c" break; case 33: /* privileges ::= ALL */ -{ yymsp[0].minor.yy729 = PRIVILEGE_TYPE_ALL; } +#line 102 "sql.y" +{ yymsp[0].minor.yy717 = PRIVILEGE_TYPE_ALL; } +#line 4954 "sql.c" break; case 34: /* privileges ::= priv_type_list */ case 36: /* priv_type_list ::= priv_type */ yytestcase(yyruleno==36); -{ yylhsminor.yy729 = yymsp[0].minor.yy729; } - yymsp[0].minor.yy729 = yylhsminor.yy729; +#line 103 "sql.y" +{ yylhsminor.yy717 = yymsp[0].minor.yy717; } +#line 4960 "sql.c" + yymsp[0].minor.yy717 = yylhsminor.yy717; break; case 35: /* privileges ::= SUBSCRIBE */ -{ yymsp[0].minor.yy729 = PRIVILEGE_TYPE_SUBSCRIBE; } +#line 104 "sql.y" +{ yymsp[0].minor.yy717 = PRIVILEGE_TYPE_SUBSCRIBE; } +#line 4966 "sql.c" break; case 37: /* priv_type_list ::= priv_type_list NK_COMMA priv_type */ -{ yylhsminor.yy729 = yymsp[-2].minor.yy729 | yymsp[0].minor.yy729; } - yymsp[-2].minor.yy729 = yylhsminor.yy729; +#line 109 "sql.y" +{ yylhsminor.yy717 = yymsp[-2].minor.yy717 | yymsp[0].minor.yy717; } +#line 4971 "sql.c" + yymsp[-2].minor.yy717 = yylhsminor.yy717; break; case 38: /* priv_type ::= READ */ -{ yymsp[0].minor.yy729 = PRIVILEGE_TYPE_READ; } +#line 113 "sql.y" +{ yymsp[0].minor.yy717 = PRIVILEGE_TYPE_READ; } +#line 4977 "sql.c" break; case 39: /* priv_type ::= WRITE */ -{ yymsp[0].minor.yy729 = PRIVILEGE_TYPE_WRITE; } +#line 114 "sql.y" +{ yymsp[0].minor.yy717 = PRIVILEGE_TYPE_WRITE; } +#line 4982 "sql.c" break; case 40: /* priv_level ::= NK_STAR NK_DOT NK_STAR */ -{ yylhsminor.yy347.first = yymsp[-2].minor.yy0; yylhsminor.yy347.second = yymsp[0].minor.yy0; } - yymsp[-2].minor.yy347 = yylhsminor.yy347; +#line 118 "sql.y" +{ yylhsminor.yy505.first = yymsp[-2].minor.yy0; yylhsminor.yy505.second = yymsp[0].minor.yy0; } +#line 4987 "sql.c" + yymsp[-2].minor.yy505 = yylhsminor.yy505; break; case 41: /* priv_level ::= db_name NK_DOT NK_STAR */ -{ yylhsminor.yy347.first = yymsp[-2].minor.yy371; yylhsminor.yy347.second = yymsp[0].minor.yy0; } - yymsp[-2].minor.yy347 = yylhsminor.yy347; +#line 119 "sql.y" +{ yylhsminor.yy505.first = yymsp[-2].minor.yy129; yylhsminor.yy505.second = yymsp[0].minor.yy0; } +#line 4993 "sql.c" + yymsp[-2].minor.yy505 = yylhsminor.yy505; break; case 42: /* priv_level ::= db_name NK_DOT table_name */ -{ yylhsminor.yy347.first = yymsp[-2].minor.yy371; yylhsminor.yy347.second = yymsp[0].minor.yy371; } - yymsp[-2].minor.yy347 = yylhsminor.yy347; +#line 120 "sql.y" +{ yylhsminor.yy505.first = yymsp[-2].minor.yy129; yylhsminor.yy505.second = yymsp[0].minor.yy129; } +#line 4999 "sql.c" + yymsp[-2].minor.yy505 = yylhsminor.yy505; break; case 43: /* priv_level ::= topic_name */ -{ yylhsminor.yy347.first = yymsp[0].minor.yy371; yylhsminor.yy347.second = nil_token; } - yymsp[0].minor.yy347 = yylhsminor.yy347; +#line 121 "sql.y" +{ yylhsminor.yy505.first = yymsp[0].minor.yy129; yylhsminor.yy505.second = nil_token; } +#line 5005 "sql.c" + yymsp[0].minor.yy505 = yylhsminor.yy505; break; case 44: /* with_opt ::= */ case 144: /* start_opt ::= */ yytestcase(yyruleno==144); @@ -4606,55 +5012,81 @@ static YYACTIONTYPE yy_reduce( case 354: /* subtable_opt ::= */ yytestcase(yyruleno==354); case 472: /* case_when_else_opt ::= */ yytestcase(yyruleno==472); case 502: /* from_clause_opt ::= */ yytestcase(yyruleno==502); - case 531: /* where_clause_opt ::= */ yytestcase(yyruleno==531); - case 540: /* twindow_clause_opt ::= */ yytestcase(yyruleno==540); - case 546: /* sliding_opt ::= */ yytestcase(yyruleno==546); - case 548: /* fill_opt ::= */ yytestcase(yyruleno==548); - case 562: /* having_clause_opt ::= */ yytestcase(yyruleno==562); - case 564: /* range_opt ::= */ yytestcase(yyruleno==564); - case 567: /* every_opt ::= */ yytestcase(yyruleno==567); - case 580: /* slimit_clause_opt ::= */ yytestcase(yyruleno==580); - case 584: /* limit_clause_opt ::= */ yytestcase(yyruleno==584); -{ yymsp[1].minor.yy452 = NULL; } + case 533: /* where_clause_opt ::= */ yytestcase(yyruleno==533); + case 542: /* twindow_clause_opt ::= */ yytestcase(yyruleno==542); + case 548: /* sliding_opt ::= */ yytestcase(yyruleno==548); + case 550: /* fill_opt ::= */ yytestcase(yyruleno==550); + case 564: /* having_clause_opt ::= */ yytestcase(yyruleno==564); + case 566: /* range_opt ::= */ yytestcase(yyruleno==566); + case 569: /* every_opt ::= */ yytestcase(yyruleno==569); + case 582: /* slimit_clause_opt ::= */ yytestcase(yyruleno==582); + case 586: /* limit_clause_opt ::= */ yytestcase(yyruleno==586); +#line 123 "sql.y" +{ yymsp[1].minor.yy840 = NULL; } +#line 5026 "sql.c" break; case 45: /* with_opt ::= WITH search_condition */ case 503: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==503); - case 532: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==532); - case 563: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==563); -{ yymsp[-1].minor.yy452 = yymsp[0].minor.yy452; } + case 534: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==534); + case 565: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==565); +#line 124 "sql.y" +{ yymsp[-1].minor.yy840 = yymsp[0].minor.yy840; } +#line 5034 "sql.c" break; case 46: /* cmd ::= CREATE DNODE dnode_endpoint */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy371, NULL); } +#line 127 "sql.y" +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy129, NULL); } +#line 5039 "sql.c" break; case 47: /* cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ -{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy0); } +#line 128 "sql.y" +{ pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy129, &yymsp[0].minor.yy0); } +#line 5044 "sql.c" break; case 48: /* cmd ::= DROP DNODE NK_INTEGER force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy667, false); } +#line 129 "sql.y" +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy313, false); } +#line 5049 "sql.c" break; case 49: /* cmd ::= DROP DNODE dnode_endpoint force_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy371, yymsp[0].minor.yy667, false); } +#line 130 "sql.y" +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy129, yymsp[0].minor.yy313, false); } +#line 5054 "sql.c" break; case 50: /* cmd ::= DROP DNODE NK_INTEGER unsafe_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, false, yymsp[0].minor.yy667); } +#line 131 "sql.y" +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, false, yymsp[0].minor.yy313); } +#line 5059 "sql.c" break; case 51: /* cmd ::= DROP DNODE dnode_endpoint unsafe_opt */ -{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy371, false, yymsp[0].minor.yy667); } +#line 132 "sql.y" +{ pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy129, false, yymsp[0].minor.yy313); } +#line 5064 "sql.c" break; case 52: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ +#line 133 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, NULL); } +#line 5069 "sql.c" break; case 53: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ +#line 134 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-2].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } +#line 5074 "sql.c" break; case 54: /* cmd ::= ALTER ALL DNODES NK_STRING */ +#line 135 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, NULL, &yymsp[0].minor.yy0, NULL); } +#line 5079 "sql.c" break; case 55: /* cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ +#line 136 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, NULL, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } +#line 5084 "sql.c" break; case 56: /* cmd ::= RESTORE DNODE NK_INTEGER */ +#line 137 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_DNODE_STMT, &yymsp[0].minor.yy0); } +#line 5089 "sql.c" break; case 57: /* dnode_endpoint ::= NK_STRING */ case 58: /* dnode_endpoint ::= NK_ID */ yytestcase(yyruleno==58); @@ -4687,8 +5119,10 @@ static YYACTIONTYPE yy_reduce( case 458: /* star_func ::= FIRST */ yytestcase(yyruleno==458); case 459: /* star_func ::= LAST */ yytestcase(yyruleno==459); case 460: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==460); -{ yylhsminor.yy371 = yymsp[0].minor.yy0; } - yymsp[0].minor.yy371 = yylhsminor.yy371; +#line 141 "sql.y" +{ yylhsminor.yy129 = yymsp[0].minor.yy0; } +#line 5124 "sql.c" + yymsp[0].minor.yy129 = yylhsminor.yy129; break; case 60: /* force_opt ::= */ case 84: /* not_exists_opt ::= */ yytestcase(yyruleno==84); @@ -4697,284 +5131,432 @@ static YYACTIONTYPE yy_reduce( case 328: /* agg_func_opt ::= */ yytestcase(yyruleno==328); case 334: /* or_replace_opt ::= */ yytestcase(yyruleno==334); case 356: /* ignore_opt ::= */ yytestcase(yyruleno==356); - case 521: /* set_quantifier_opt ::= */ yytestcase(yyruleno==521); -{ yymsp[1].minor.yy667 = false; } + case 521: /* tag_mode_opt ::= */ yytestcase(yyruleno==521); + case 523: /* set_quantifier_opt ::= */ yytestcase(yyruleno==523); +#line 147 "sql.y" +{ yymsp[1].minor.yy313 = false; } +#line 5138 "sql.c" break; case 61: /* force_opt ::= FORCE */ case 62: /* unsafe_opt ::= UNSAFE */ yytestcase(yyruleno==62); case 322: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==322); case 329: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==329); - case 522: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==522); -{ yymsp[0].minor.yy667 = true; } + case 522: /* tag_mode_opt ::= TAGS */ yytestcase(yyruleno==522); + case 524: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==524); +#line 148 "sql.y" +{ yymsp[0].minor.yy313 = true; } +#line 5148 "sql.c" break; case 63: /* cmd ::= ALTER LOCAL NK_STRING */ +#line 155 "sql.y" { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[0].minor.yy0, NULL); } +#line 5153 "sql.c" break; case 64: /* cmd ::= ALTER LOCAL NK_STRING NK_STRING */ +#line 156 "sql.y" { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } +#line 5158 "sql.c" break; case 65: /* cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ +#line 159 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_QNODE_STMT, &yymsp[0].minor.yy0); } +#line 5163 "sql.c" break; case 66: /* cmd ::= DROP QNODE ON DNODE NK_INTEGER */ +#line 160 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_QNODE_STMT, &yymsp[0].minor.yy0); } +#line 5168 "sql.c" break; case 67: /* cmd ::= RESTORE QNODE ON DNODE NK_INTEGER */ +#line 161 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_QNODE_STMT, &yymsp[0].minor.yy0); } +#line 5173 "sql.c" break; case 68: /* cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ +#line 164 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_BNODE_STMT, &yymsp[0].minor.yy0); } +#line 5178 "sql.c" break; case 69: /* cmd ::= DROP BNODE ON DNODE NK_INTEGER */ +#line 165 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_BNODE_STMT, &yymsp[0].minor.yy0); } +#line 5183 "sql.c" break; case 70: /* cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ +#line 168 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_SNODE_STMT, &yymsp[0].minor.yy0); } +#line 5188 "sql.c" break; case 71: /* cmd ::= DROP SNODE ON DNODE NK_INTEGER */ +#line 169 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_SNODE_STMT, &yymsp[0].minor.yy0); } +#line 5193 "sql.c" break; case 72: /* cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ +#line 172 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_MNODE_STMT, &yymsp[0].minor.yy0); } +#line 5198 "sql.c" break; case 73: /* cmd ::= DROP MNODE ON DNODE NK_INTEGER */ +#line 173 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_MNODE_STMT, &yymsp[0].minor.yy0); } +#line 5203 "sql.c" break; case 74: /* cmd ::= RESTORE MNODE ON DNODE NK_INTEGER */ +#line 174 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_MNODE_STMT, &yymsp[0].minor.yy0); } +#line 5208 "sql.c" break; case 75: /* cmd ::= RESTORE VNODE ON DNODE NK_INTEGER */ +#line 177 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_VNODE_STMT, &yymsp[0].minor.yy0); } +#line 5213 "sql.c" break; case 76: /* cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ -{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy667, &yymsp[-1].minor.yy371, yymsp[0].minor.yy452); } +#line 180 "sql.y" +{ pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy313, &yymsp[-1].minor.yy129, yymsp[0].minor.yy840); } +#line 5218 "sql.c" break; case 77: /* cmd ::= DROP DATABASE exists_opt db_name */ -{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 181 "sql.y" +{ pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy313, &yymsp[0].minor.yy129); } +#line 5223 "sql.c" break; case 78: /* cmd ::= USE db_name */ -{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy371); } +#line 182 "sql.y" +{ pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy129); } +#line 5228 "sql.c" break; case 79: /* cmd ::= ALTER DATABASE db_name alter_db_options */ -{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy371, yymsp[0].minor.yy452); } +#line 183 "sql.y" +{ pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy129, yymsp[0].minor.yy840); } +#line 5233 "sql.c" break; case 80: /* cmd ::= FLUSH DATABASE db_name */ -{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy371); } +#line 184 "sql.y" +{ pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy129); } +#line 5238 "sql.c" break; case 81: /* cmd ::= TRIM DATABASE db_name speed_opt */ -{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy371, yymsp[0].minor.yy416); } +#line 185 "sql.y" +{ pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy129, yymsp[0].minor.yy356); } +#line 5243 "sql.c" break; case 82: /* cmd ::= COMPACT DATABASE db_name start_opt end_opt */ -{ pCxt->pRootNode = createCompactStmt(pCxt, &yymsp[-2].minor.yy371, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 186 "sql.y" +{ pCxt->pRootNode = createCompactStmt(pCxt, &yymsp[-2].minor.yy129, yymsp[-1].minor.yy840, yymsp[0].minor.yy840); } +#line 5248 "sql.c" break; case 83: /* not_exists_opt ::= IF NOT EXISTS */ -{ yymsp[-2].minor.yy667 = true; } +#line 190 "sql.y" +{ yymsp[-2].minor.yy313 = true; } +#line 5253 "sql.c" break; case 85: /* exists_opt ::= IF EXISTS */ case 335: /* or_replace_opt ::= OR REPLACE */ yytestcase(yyruleno==335); case 357: /* ignore_opt ::= IGNORE UNTREATED */ yytestcase(yyruleno==357); -{ yymsp[-1].minor.yy667 = true; } +#line 195 "sql.y" +{ yymsp[-1].minor.yy313 = true; } +#line 5260 "sql.c" break; case 87: /* db_options ::= */ -{ yymsp[1].minor.yy452 = createDefaultDatabaseOptions(pCxt); } +#line 198 "sql.y" +{ yymsp[1].minor.yy840 = createDefaultDatabaseOptions(pCxt); } +#line 5265 "sql.c" break; case 88: /* db_options ::= db_options BUFFER NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 199 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } +#line 5270 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 89: /* db_options ::= db_options CACHEMODEL NK_STRING */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 200 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } +#line 5276 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 90: /* db_options ::= db_options CACHESIZE NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 201 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } +#line 5282 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 91: /* db_options ::= db_options COMP NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_COMP, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 202 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_COMP, &yymsp[0].minor.yy0); } +#line 5288 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 92: /* db_options ::= db_options DURATION NK_INTEGER */ case 93: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==93); -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 203 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } +#line 5295 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 94: /* db_options ::= db_options MAXROWS NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 205 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } +#line 5301 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 95: /* db_options ::= db_options MINROWS NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 206 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } +#line 5307 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 96: /* db_options ::= db_options KEEP integer_list */ case 97: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==97); -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_KEEP, yymsp[0].minor.yy812); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 207 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_KEEP, yymsp[0].minor.yy56); } +#line 5314 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 98: /* db_options ::= db_options PAGES NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 209 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } +#line 5320 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 99: /* db_options ::= db_options PAGESIZE NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 210 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } +#line 5326 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 100: /* db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 211 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } +#line 5332 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 101: /* db_options ::= db_options PRECISION NK_STRING */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 212 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } +#line 5338 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 102: /* db_options ::= db_options REPLICA NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 213 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } +#line 5344 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 103: /* db_options ::= db_options VGROUPS NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 215 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } +#line 5350 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 104: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 216 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } +#line 5356 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 105: /* db_options ::= db_options RETENTIONS retention_list */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_RETENTIONS, yymsp[0].minor.yy812); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 217 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_RETENTIONS, yymsp[0].minor.yy56); } +#line 5362 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 106: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 218 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } +#line 5368 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 107: /* db_options ::= db_options WAL_LEVEL NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 219 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_WAL, &yymsp[0].minor.yy0); } +#line 5374 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 108: /* db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 220 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } +#line 5380 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 109: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 221 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } +#line 5386 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 110: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ +#line 222 "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.yy452 = setDatabaseOption(pCxt, yymsp[-3].minor.yy452, DB_OPTION_WAL_RETENTION_PERIOD, &t); + yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-3].minor.yy840, DB_OPTION_WAL_RETENTION_PERIOD, &t); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 5396 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 111: /* db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 227 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } +#line 5402 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 112: /* db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ +#line 228 "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.yy452 = setDatabaseOption(pCxt, yymsp[-3].minor.yy452, DB_OPTION_WAL_RETENTION_SIZE, &t); + yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-3].minor.yy840, DB_OPTION_WAL_RETENTION_SIZE, &t); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 5412 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 113: /* db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 233 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } +#line 5418 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 114: /* db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 234 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } +#line 5424 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 115: /* db_options ::= db_options STT_TRIGGER NK_INTEGER */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 235 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } +#line 5430 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 116: /* db_options ::= db_options TABLE_PREFIX signed */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_TABLE_PREFIX, yymsp[0].minor.yy452); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 236 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_TABLE_PREFIX, yymsp[0].minor.yy840); } +#line 5436 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 117: /* db_options ::= db_options TABLE_SUFFIX signed */ -{ yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_TABLE_SUFFIX, yymsp[0].minor.yy452); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 237 "sql.y" +{ yylhsminor.yy840 = setDatabaseOption(pCxt, yymsp[-2].minor.yy840, DB_OPTION_TABLE_SUFFIX, yymsp[0].minor.yy840); } +#line 5442 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 118: /* alter_db_options ::= alter_db_option */ -{ yylhsminor.yy452 = createAlterDatabaseOptions(pCxt); yylhsminor.yy452 = setAlterDatabaseOption(pCxt, yylhsminor.yy452, &yymsp[0].minor.yy365); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 239 "sql.y" +{ yylhsminor.yy840 = createAlterDatabaseOptions(pCxt); yylhsminor.yy840 = setAlterDatabaseOption(pCxt, yylhsminor.yy840, &yymsp[0].minor.yy461); } +#line 5448 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 119: /* alter_db_options ::= alter_db_options alter_db_option */ -{ yylhsminor.yy452 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy452, &yymsp[0].minor.yy365); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 240 "sql.y" +{ yylhsminor.yy840 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy840, &yymsp[0].minor.yy461); } +#line 5454 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 120: /* alter_db_option ::= BUFFER NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 244 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5460 "sql.c" break; case 121: /* alter_db_option ::= CACHEMODEL NK_STRING */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 245 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5465 "sql.c" break; case 122: /* alter_db_option ::= CACHESIZE NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 246 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5470 "sql.c" break; case 123: /* alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 247 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5475 "sql.c" break; case 124: /* alter_db_option ::= KEEP integer_list */ case 125: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==125); -{ yymsp[-1].minor.yy365.type = DB_OPTION_KEEP; yymsp[-1].minor.yy365.pList = yymsp[0].minor.yy812; } +#line 248 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_KEEP; yymsp[-1].minor.yy461.pList = yymsp[0].minor.yy56; } +#line 5481 "sql.c" break; case 126: /* alter_db_option ::= PAGES NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_PAGES; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 250 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_PAGES; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5486 "sql.c" break; case 127: /* alter_db_option ::= REPLICA NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 251 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5491 "sql.c" break; case 128: /* alter_db_option ::= WAL_LEVEL NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_WAL; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 253 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_WAL; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5496 "sql.c" break; case 129: /* alter_db_option ::= STT_TRIGGER NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 254 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5501 "sql.c" break; case 130: /* alter_db_option ::= MINROWS NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_MINROWS; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 255 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_MINROWS; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5506 "sql.c" break; case 131: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 256 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5511 "sql.c" break; case 132: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ +#line 257 "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; - yymsp[-2].minor.yy365.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-2].minor.yy365.val = t; + yymsp[-2].minor.yy461.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-2].minor.yy461.val = t; } +#line 5520 "sql.c" break; case 133: /* alter_db_option ::= WAL_RETENTION_SIZE NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 262 "sql.y" +{ yymsp[-1].minor.yy461.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5525 "sql.c" break; case 134: /* alter_db_option ::= WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ +#line 263 "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; - yymsp[-2].minor.yy365.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-2].minor.yy365.val = t; + yymsp[-2].minor.yy461.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-2].minor.yy461.val = t; } +#line 5534 "sql.c" break; case 135: /* integer_list ::= NK_INTEGER */ -{ yylhsminor.yy812 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy812 = yylhsminor.yy812; +#line 271 "sql.y" +{ yylhsminor.yy56 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } +#line 5539 "sql.c" + yymsp[0].minor.yy56 = yylhsminor.yy56; break; case 136: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ case 367: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==367); -{ yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy812 = yylhsminor.yy812; +#line 272 "sql.y" +{ yylhsminor.yy56 = addNodeToList(pCxt, yymsp[-2].minor.yy56, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } +#line 5546 "sql.c" + yymsp[-2].minor.yy56 = yylhsminor.yy56; break; case 137: /* variable_list ::= NK_VARIABLE */ -{ yylhsminor.yy812 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy812 = yylhsminor.yy812; +#line 276 "sql.y" +{ yylhsminor.yy56 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 5552 "sql.c" + yymsp[0].minor.yy56 = yylhsminor.yy56; break; case 138: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ -{ yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy812 = yylhsminor.yy812; +#line 277 "sql.y" +{ yylhsminor.yy56 = addNodeToList(pCxt, yymsp[-2].minor.yy56, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 5558 "sql.c" + yymsp[-2].minor.yy56 = yylhsminor.yy56; break; case 139: /* retention_list ::= retention */ case 169: /* multi_create_clause ::= create_subtable_clause */ yytestcase(yyruleno==169); @@ -4987,11 +5569,13 @@ static YYACTIONTYPE yy_reduce( case 396: /* literal_list ::= signed_literal */ yytestcase(yyruleno==396); case 463: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==463); case 469: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==469); - case 524: /* select_list ::= select_item */ yytestcase(yyruleno==524); - case 535: /* partition_list ::= partition_item */ yytestcase(yyruleno==535); - case 591: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==591); -{ yylhsminor.yy812 = createNodeList(pCxt, yymsp[0].minor.yy452); } - yymsp[0].minor.yy812 = yylhsminor.yy812; + case 526: /* select_list ::= select_item */ yytestcase(yyruleno==526); + case 537: /* partition_list ::= partition_item */ yytestcase(yyruleno==537); + case 593: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==593); +#line 281 "sql.y" +{ yylhsminor.yy56 = createNodeList(pCxt, yymsp[0].minor.yy840); } +#line 5577 "sql.c" + yymsp[0].minor.yy56 = yylhsminor.yy56; break; case 140: /* retention_list ::= retention_list NK_COMMA retention */ case 173: /* multi_drop_clause ::= multi_drop_clause NK_COMMA drop_table_clause */ yytestcase(yyruleno==173); @@ -5002,648 +5586,1012 @@ static YYACTIONTYPE yy_reduce( case 297: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==297); case 397: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==397); case 464: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==464); - case 525: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==525); - case 536: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==536); - case 592: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==592); -{ yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, yymsp[0].minor.yy452); } - yymsp[-2].minor.yy812 = yylhsminor.yy812; + case 527: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==527); + case 538: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==538); + case 594: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==594); +#line 282 "sql.y" +{ yylhsminor.yy56 = addNodeToList(pCxt, yymsp[-2].minor.yy56, yymsp[0].minor.yy840); } +#line 5594 "sql.c" + yymsp[-2].minor.yy56 = yylhsminor.yy56; break; case 141: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ -{ yylhsminor.yy452 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 284 "sql.y" +{ yylhsminor.yy840 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 5600 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 142: /* speed_opt ::= */ case 330: /* bufsize_opt ::= */ yytestcase(yyruleno==330); -{ yymsp[1].minor.yy416 = 0; } +#line 288 "sql.y" +{ yymsp[1].minor.yy356 = 0; } +#line 5607 "sql.c" break; case 143: /* speed_opt ::= MAX_SPEED NK_INTEGER */ case 331: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==331); -{ yymsp[-1].minor.yy416 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } +#line 289 "sql.y" +{ yymsp[-1].minor.yy356 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } +#line 5613 "sql.c" break; case 145: /* start_opt ::= START WITH NK_INTEGER */ case 149: /* end_opt ::= END WITH NK_INTEGER */ yytestcase(yyruleno==149); -{ yymsp[-2].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } +#line 292 "sql.y" +{ yymsp[-2].minor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } +#line 5619 "sql.c" break; case 146: /* start_opt ::= START WITH NK_STRING */ case 150: /* end_opt ::= END WITH NK_STRING */ yytestcase(yyruleno==150); -{ yymsp[-2].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +#line 293 "sql.y" +{ yymsp[-2].minor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +#line 5625 "sql.c" break; case 147: /* start_opt ::= START WITH TIMESTAMP NK_STRING */ case 151: /* end_opt ::= END WITH TIMESTAMP NK_STRING */ yytestcase(yyruleno==151); -{ yymsp[-3].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +#line 294 "sql.y" +{ yymsp[-3].minor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +#line 5631 "sql.c" break; case 152: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ case 154: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==154); -{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy667, yymsp[-5].minor.yy452, yymsp[-3].minor.yy812, yymsp[-1].minor.yy812, yymsp[0].minor.yy452); } +#line 303 "sql.y" +{ pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy313, yymsp[-5].minor.yy840, yymsp[-3].minor.yy56, yymsp[-1].minor.yy56, yymsp[0].minor.yy840); } +#line 5637 "sql.c" break; case 153: /* cmd ::= CREATE TABLE multi_create_clause */ -{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy812); } +#line 304 "sql.y" +{ pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy56); } +#line 5642 "sql.c" break; case 155: /* cmd ::= DROP TABLE multi_drop_clause */ -{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy812); } +#line 307 "sql.y" +{ pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy56); } +#line 5647 "sql.c" break; case 156: /* cmd ::= DROP STABLE exists_opt full_table_name */ -{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy667, yymsp[0].minor.yy452); } +#line 308 "sql.y" +{ pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy313, yymsp[0].minor.yy840); } +#line 5652 "sql.c" break; case 157: /* cmd ::= ALTER TABLE alter_table_clause */ case 369: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==369); case 370: /* cmd ::= insert_query */ yytestcase(yyruleno==370); -{ pCxt->pRootNode = yymsp[0].minor.yy452; } +#line 310 "sql.y" +{ pCxt->pRootNode = yymsp[0].minor.yy840; } +#line 5659 "sql.c" break; case 158: /* cmd ::= ALTER STABLE alter_table_clause */ -{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy452); } +#line 311 "sql.y" +{ pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy840); } +#line 5664 "sql.c" break; case 159: /* alter_table_clause ::= full_table_name alter_table_options */ -{ yylhsminor.yy452 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 313 "sql.y" +{ yylhsminor.yy840 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy840, yymsp[0].minor.yy840); } +#line 5669 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 160: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ -{ yylhsminor.yy452 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 315 "sql.y" +{ yylhsminor.yy840 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy840, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy129, yymsp[0].minor.yy784); } +#line 5675 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 161: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ -{ yylhsminor.yy452 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy452, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy371); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 316 "sql.y" +{ yylhsminor.yy840 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy840, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy129); } +#line 5681 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 162: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ -{ yylhsminor.yy452 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 318 "sql.y" +{ yylhsminor.yy840 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy840, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy129, yymsp[0].minor.yy784); } +#line 5687 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 163: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ -{ yylhsminor.yy452 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy371, &yymsp[0].minor.yy371); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 320 "sql.y" +{ yylhsminor.yy840 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy840, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy129, &yymsp[0].minor.yy129); } +#line 5693 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 164: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ -{ yylhsminor.yy452 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 322 "sql.y" +{ yylhsminor.yy840 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy840, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy129, yymsp[0].minor.yy784); } +#line 5699 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 165: /* alter_table_clause ::= full_table_name DROP TAG column_name */ -{ yylhsminor.yy452 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy452, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy371); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 323 "sql.y" +{ yylhsminor.yy840 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy840, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy129); } +#line 5705 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 166: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ -{ yylhsminor.yy452 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 325 "sql.y" +{ yylhsminor.yy840 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy840, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy129, yymsp[0].minor.yy784); } +#line 5711 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 167: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ -{ yylhsminor.yy452 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy371, &yymsp[0].minor.yy371); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 327 "sql.y" +{ yylhsminor.yy840 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy840, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy129, &yymsp[0].minor.yy129); } +#line 5717 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 168: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ -{ yylhsminor.yy452 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy452, &yymsp[-2].minor.yy371, yymsp[0].minor.yy452); } - yymsp[-5].minor.yy452 = yylhsminor.yy452; +#line 329 "sql.y" +{ yylhsminor.yy840 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy840, &yymsp[-2].minor.yy129, yymsp[0].minor.yy840); } +#line 5723 "sql.c" + yymsp[-5].minor.yy840 = yylhsminor.yy840; break; case 170: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ case 470: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==470); -{ yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-1].minor.yy812, yymsp[0].minor.yy452); } - yymsp[-1].minor.yy812 = yylhsminor.yy812; +#line 334 "sql.y" +{ yylhsminor.yy56 = addNodeToList(pCxt, yymsp[-1].minor.yy56, yymsp[0].minor.yy840); } +#line 5730 "sql.c" + yymsp[-1].minor.yy56 = yylhsminor.yy56; break; case 171: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ -{ yylhsminor.yy452 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy667, yymsp[-8].minor.yy452, yymsp[-6].minor.yy452, yymsp[-5].minor.yy812, yymsp[-2].minor.yy812, yymsp[0].minor.yy452); } - yymsp[-9].minor.yy452 = yylhsminor.yy452; +#line 338 "sql.y" +{ yylhsminor.yy840 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy313, yymsp[-8].minor.yy840, yymsp[-6].minor.yy840, yymsp[-5].minor.yy56, yymsp[-2].minor.yy56, yymsp[0].minor.yy840); } +#line 5736 "sql.c" + yymsp[-9].minor.yy840 = yylhsminor.yy840; break; case 174: /* drop_table_clause ::= exists_opt full_table_name */ -{ yylhsminor.yy452 = createDropTableClause(pCxt, yymsp[-1].minor.yy667, yymsp[0].minor.yy452); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 345 "sql.y" +{ yylhsminor.yy840 = createDropTableClause(pCxt, yymsp[-1].minor.yy313, yymsp[0].minor.yy840); } +#line 5742 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 175: /* specific_cols_opt ::= */ case 206: /* tags_def_opt ::= */ yytestcase(yyruleno==206); case 281: /* tag_list_opt ::= */ yytestcase(yyruleno==281); case 340: /* col_list_opt ::= */ yytestcase(yyruleno==340); case 342: /* tag_def_or_ref_opt ::= */ yytestcase(yyruleno==342); - case 533: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==533); - case 558: /* group_by_clause_opt ::= */ yytestcase(yyruleno==558); - case 578: /* order_by_clause_opt ::= */ yytestcase(yyruleno==578); -{ yymsp[1].minor.yy812 = NULL; } + case 535: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==535); + case 560: /* group_by_clause_opt ::= */ yytestcase(yyruleno==560); + case 580: /* order_by_clause_opt ::= */ yytestcase(yyruleno==580); +#line 349 "sql.y" +{ yymsp[1].minor.yy56 = NULL; } +#line 5755 "sql.c" break; case 176: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ case 341: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==341); -{ yymsp[-2].minor.yy812 = yymsp[-1].minor.yy812; } +#line 350 "sql.y" +{ yymsp[-2].minor.yy56 = yymsp[-1].minor.yy56; } +#line 5761 "sql.c" break; case 177: /* full_table_name ::= table_name */ -{ yylhsminor.yy452 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy371, NULL); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 352 "sql.y" +{ yylhsminor.yy840 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy129, NULL); } +#line 5766 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 178: /* full_table_name ::= db_name NK_DOT table_name */ -{ yylhsminor.yy452 = createRealTableNode(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371, NULL); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 353 "sql.y" +{ yylhsminor.yy840 = createRealTableNode(pCxt, &yymsp[-2].minor.yy129, &yymsp[0].minor.yy129, NULL); } +#line 5772 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 181: /* column_def ::= column_name type_name */ -{ yylhsminor.yy452 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310, NULL); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 360 "sql.y" +{ yylhsminor.yy840 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy129, yymsp[0].minor.yy784, NULL); } +#line 5778 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 182: /* type_name ::= BOOL */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_BOOL); } +#line 365 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_BOOL); } +#line 5784 "sql.c" break; case 183: /* type_name ::= TINYINT */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_TINYINT); } +#line 366 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_TINYINT); } +#line 5789 "sql.c" break; case 184: /* type_name ::= SMALLINT */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_SMALLINT); } +#line 367 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_SMALLINT); } +#line 5794 "sql.c" break; case 185: /* type_name ::= INT */ case 186: /* type_name ::= INTEGER */ yytestcase(yyruleno==186); -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_INT); } +#line 368 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_INT); } +#line 5800 "sql.c" break; case 187: /* type_name ::= BIGINT */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_BIGINT); } +#line 370 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_BIGINT); } +#line 5805 "sql.c" break; case 188: /* type_name ::= FLOAT */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_FLOAT); } +#line 371 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_FLOAT); } +#line 5810 "sql.c" break; case 189: /* type_name ::= DOUBLE */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_DOUBLE); } +#line 372 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_DOUBLE); } +#line 5815 "sql.c" break; case 190: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } +#line 373 "sql.y" +{ yymsp[-3].minor.yy784 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } +#line 5820 "sql.c" break; case 191: /* type_name ::= TIMESTAMP */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } +#line 374 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } +#line 5825 "sql.c" break; case 192: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } +#line 375 "sql.y" +{ yymsp[-3].minor.yy784 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } +#line 5830 "sql.c" break; case 193: /* type_name ::= TINYINT UNSIGNED */ -{ yymsp[-1].minor.yy310 = createDataType(TSDB_DATA_TYPE_UTINYINT); } +#line 376 "sql.y" +{ yymsp[-1].minor.yy784 = createDataType(TSDB_DATA_TYPE_UTINYINT); } +#line 5835 "sql.c" break; case 194: /* type_name ::= SMALLINT UNSIGNED */ -{ yymsp[-1].minor.yy310 = createDataType(TSDB_DATA_TYPE_USMALLINT); } +#line 377 "sql.y" +{ yymsp[-1].minor.yy784 = createDataType(TSDB_DATA_TYPE_USMALLINT); } +#line 5840 "sql.c" break; case 195: /* type_name ::= INT UNSIGNED */ -{ yymsp[-1].minor.yy310 = createDataType(TSDB_DATA_TYPE_UINT); } +#line 378 "sql.y" +{ yymsp[-1].minor.yy784 = createDataType(TSDB_DATA_TYPE_UINT); } +#line 5845 "sql.c" break; case 196: /* type_name ::= BIGINT UNSIGNED */ -{ yymsp[-1].minor.yy310 = createDataType(TSDB_DATA_TYPE_UBIGINT); } +#line 379 "sql.y" +{ yymsp[-1].minor.yy784 = createDataType(TSDB_DATA_TYPE_UBIGINT); } +#line 5850 "sql.c" break; case 197: /* type_name ::= JSON */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_JSON); } +#line 380 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_JSON); } +#line 5855 "sql.c" break; case 198: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } +#line 381 "sql.y" +{ yymsp[-3].minor.yy784 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } +#line 5860 "sql.c" break; case 199: /* type_name ::= MEDIUMBLOB */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } +#line 382 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } +#line 5865 "sql.c" break; case 200: /* type_name ::= BLOB */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_BLOB); } +#line 383 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_BLOB); } +#line 5870 "sql.c" break; case 201: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } +#line 384 "sql.y" +{ yymsp[-3].minor.yy784 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } +#line 5875 "sql.c" break; case 202: /* type_name ::= GEOMETRY NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_GEOMETRY, &yymsp[-1].minor.yy0); } +#line 385 "sql.y" +{ yymsp[-3].minor.yy784 = createVarLenDataType(TSDB_DATA_TYPE_GEOMETRY, &yymsp[-1].minor.yy0); } +#line 5880 "sql.c" break; case 203: /* type_name ::= DECIMAL */ -{ yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +#line 386 "sql.y" +{ yymsp[0].minor.yy784 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +#line 5885 "sql.c" break; case 204: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ -{ yymsp[-3].minor.yy310 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +#line 387 "sql.y" +{ yymsp[-3].minor.yy784 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +#line 5890 "sql.c" break; case 205: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ -{ yymsp[-5].minor.yy310 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +#line 388 "sql.y" +{ yymsp[-5].minor.yy784 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +#line 5895 "sql.c" break; case 207: /* tags_def_opt ::= tags_def */ case 343: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==343); case 462: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==462); -{ yylhsminor.yy812 = yymsp[0].minor.yy812; } - yymsp[0].minor.yy812 = yylhsminor.yy812; +#line 393 "sql.y" +{ yylhsminor.yy56 = yymsp[0].minor.yy56; } +#line 5902 "sql.c" + yymsp[0].minor.yy56 = yylhsminor.yy56; break; case 208: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ case 344: /* tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ yytestcase(yyruleno==344); -{ yymsp[-3].minor.yy812 = yymsp[-1].minor.yy812; } +#line 397 "sql.y" +{ yymsp[-3].minor.yy56 = yymsp[-1].minor.yy56; } +#line 5909 "sql.c" break; case 209: /* table_options ::= */ -{ yymsp[1].minor.yy452 = createDefaultTableOptions(pCxt); } +#line 399 "sql.y" +{ yymsp[1].minor.yy840 = createDefaultTableOptions(pCxt); } +#line 5914 "sql.c" break; case 210: /* table_options ::= table_options COMMENT NK_STRING */ -{ yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 400 "sql.y" +{ yylhsminor.yy840 = setTableOption(pCxt, yymsp[-2].minor.yy840, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } +#line 5919 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 211: /* table_options ::= table_options MAX_DELAY duration_list */ -{ yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy812); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 401 "sql.y" +{ yylhsminor.yy840 = setTableOption(pCxt, yymsp[-2].minor.yy840, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy56); } +#line 5925 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 212: /* table_options ::= table_options WATERMARK duration_list */ -{ yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy812); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 402 "sql.y" +{ yylhsminor.yy840 = setTableOption(pCxt, yymsp[-2].minor.yy840, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy56); } +#line 5931 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 213: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ -{ yylhsminor.yy452 = setTableOption(pCxt, yymsp[-4].minor.yy452, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy812); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 403 "sql.y" +{ yylhsminor.yy840 = setTableOption(pCxt, yymsp[-4].minor.yy840, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy56); } +#line 5937 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 214: /* table_options ::= table_options TTL NK_INTEGER */ -{ yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 404 "sql.y" +{ yylhsminor.yy840 = setTableOption(pCxt, yymsp[-2].minor.yy840, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } +#line 5943 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 215: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ -{ yylhsminor.yy452 = setTableOption(pCxt, yymsp[-4].minor.yy452, TABLE_OPTION_SMA, yymsp[-1].minor.yy812); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 405 "sql.y" +{ yylhsminor.yy840 = setTableOption(pCxt, yymsp[-4].minor.yy840, TABLE_OPTION_SMA, yymsp[-1].minor.yy56); } +#line 5949 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 216: /* table_options ::= table_options DELETE_MARK duration_list */ -{ yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy812); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 406 "sql.y" +{ yylhsminor.yy840 = setTableOption(pCxt, yymsp[-2].minor.yy840, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy56); } +#line 5955 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 217: /* alter_table_options ::= alter_table_option */ -{ yylhsminor.yy452 = createAlterTableOptions(pCxt); yylhsminor.yy452 = setTableOption(pCxt, yylhsminor.yy452, yymsp[0].minor.yy365.type, &yymsp[0].minor.yy365.val); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 408 "sql.y" +{ yylhsminor.yy840 = createAlterTableOptions(pCxt); yylhsminor.yy840 = setTableOption(pCxt, yylhsminor.yy840, yymsp[0].minor.yy461.type, &yymsp[0].minor.yy461.val); } +#line 5961 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 218: /* alter_table_options ::= alter_table_options alter_table_option */ -{ yylhsminor.yy452 = setTableOption(pCxt, yymsp[-1].minor.yy452, yymsp[0].minor.yy365.type, &yymsp[0].minor.yy365.val); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 409 "sql.y" +{ yylhsminor.yy840 = setTableOption(pCxt, yymsp[-1].minor.yy840, yymsp[0].minor.yy461.type, &yymsp[0].minor.yy461.val); } +#line 5967 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 219: /* alter_table_option ::= COMMENT NK_STRING */ -{ yymsp[-1].minor.yy365.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 413 "sql.y" +{ yymsp[-1].minor.yy461.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5973 "sql.c" break; case 220: /* alter_table_option ::= TTL NK_INTEGER */ -{ yymsp[-1].minor.yy365.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 414 "sql.y" +{ yymsp[-1].minor.yy461.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy461.val = yymsp[0].minor.yy0; } +#line 5978 "sql.c" break; case 221: /* duration_list ::= duration_literal */ case 426: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==426); -{ yylhsminor.yy812 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } - yymsp[0].minor.yy812 = yylhsminor.yy812; +#line 418 "sql.y" +{ yylhsminor.yy56 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy840)); } +#line 5984 "sql.c" + yymsp[0].minor.yy56 = yylhsminor.yy56; break; case 222: /* duration_list ::= duration_list NK_COMMA duration_literal */ case 427: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==427); -{ yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } - yymsp[-2].minor.yy812 = yylhsminor.yy812; +#line 419 "sql.y" +{ yylhsminor.yy56 = addNodeToList(pCxt, yymsp[-2].minor.yy56, releaseRawExprNode(pCxt, yymsp[0].minor.yy840)); } +#line 5991 "sql.c" + yymsp[-2].minor.yy56 = yylhsminor.yy56; break; case 225: /* rollup_func_name ::= function_name */ -{ yylhsminor.yy452 = createFunctionNode(pCxt, &yymsp[0].minor.yy371, NULL); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 426 "sql.y" +{ yylhsminor.yy840 = createFunctionNode(pCxt, &yymsp[0].minor.yy129, NULL); } +#line 5997 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 226: /* rollup_func_name ::= FIRST */ case 227: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==227); case 285: /* tag_item ::= QTAGS */ yytestcase(yyruleno==285); -{ yylhsminor.yy452 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 427 "sql.y" +{ yylhsminor.yy840 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } +#line 6005 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 230: /* col_name ::= column_name */ case 286: /* tag_item ::= column_name */ yytestcase(yyruleno==286); -{ yylhsminor.yy452 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy371); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 435 "sql.y" +{ yylhsminor.yy840 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy129); } +#line 6012 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 231: /* cmd ::= SHOW DNODES */ +#line 438 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } +#line 6018 "sql.c" break; case 232: /* cmd ::= SHOW USERS */ +#line 439 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USERS_STMT); } +#line 6023 "sql.c" break; case 233: /* cmd ::= SHOW USER PRIVILEGES */ +#line 440 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USER_PRIVILEGES_STMT); } +#line 6028 "sql.c" break; case 234: /* cmd ::= SHOW DATABASES */ +#line 441 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); } +#line 6033 "sql.c" break; case 235: /* cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy452, yymsp[0].minor.yy452, OP_TYPE_LIKE); } +#line 442 "sql.y" +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy840, yymsp[0].minor.yy840, OP_TYPE_LIKE); } +#line 6038 "sql.c" break; case 236: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy452, yymsp[0].minor.yy452, OP_TYPE_LIKE); } +#line 443 "sql.y" +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy840, yymsp[0].minor.yy840, OP_TYPE_LIKE); } +#line 6043 "sql.c" break; case 237: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy452, NULL, OP_TYPE_LIKE); } +#line 444 "sql.y" +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy840, NULL, OP_TYPE_LIKE); } +#line 6048 "sql.c" break; case 238: /* cmd ::= SHOW MNODES */ +#line 445 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } +#line 6053 "sql.c" break; case 239: /* cmd ::= SHOW QNODES */ +#line 447 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QNODES_STMT); } +#line 6058 "sql.c" break; case 240: /* cmd ::= SHOW FUNCTIONS */ +#line 448 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } +#line 6063 "sql.c" break; case 241: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy452, yymsp[-1].minor.yy452, OP_TYPE_EQUAL); } +#line 449 "sql.y" +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy840, yymsp[-1].minor.yy840, OP_TYPE_EQUAL); } +#line 6068 "sql.c" break; case 242: /* cmd ::= SHOW INDEXES FROM db_name NK_DOT table_name */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy371), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371), OP_TYPE_EQUAL); } +#line 450 "sql.y" +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy129), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy129), OP_TYPE_EQUAL); } +#line 6073 "sql.c" break; case 243: /* cmd ::= SHOW STREAMS */ +#line 451 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } +#line 6078 "sql.c" break; case 244: /* cmd ::= SHOW ACCOUNTS */ +#line 452 "sql.y" { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } +#line 6083 "sql.c" break; case 245: /* cmd ::= SHOW APPS */ +#line 453 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_APPS_STMT); } +#line 6088 "sql.c" break; case 246: /* cmd ::= SHOW CONNECTIONS */ +#line 454 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONNECTIONS_STMT); } +#line 6093 "sql.c" break; case 247: /* cmd ::= SHOW LICENCES */ case 248: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==248); +#line 455 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); } +#line 6099 "sql.c" break; case 249: /* cmd ::= SHOW CREATE DATABASE db_name */ -{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy371); } +#line 457 "sql.y" +{ pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy129); } +#line 6104 "sql.c" break; case 250: /* cmd ::= SHOW CREATE TABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy452); } +#line 458 "sql.y" +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy840); } +#line 6109 "sql.c" break; case 251: /* cmd ::= SHOW CREATE STABLE full_table_name */ -{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy452); } +#line 459 "sql.y" +{ pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy840); } +#line 6114 "sql.c" break; case 252: /* cmd ::= SHOW QUERIES */ +#line 460 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } +#line 6119 "sql.c" break; case 253: /* cmd ::= SHOW SCORES */ +#line 461 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SCORES_STMT); } +#line 6124 "sql.c" break; case 254: /* cmd ::= SHOW TOPICS */ +#line 462 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TOPICS_STMT); } +#line 6129 "sql.c" break; case 255: /* cmd ::= SHOW VARIABLES */ case 256: /* cmd ::= SHOW CLUSTER VARIABLES */ yytestcase(yyruleno==256); +#line 463 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_VARIABLES_STMT); } +#line 6135 "sql.c" break; case 257: /* cmd ::= SHOW LOCAL VARIABLES */ +#line 465 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } +#line 6140 "sql.c" break; case 258: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ -{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy452); } +#line 466 "sql.y" +{ pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy840); } +#line 6145 "sql.c" break; case 259: /* cmd ::= SHOW BNODES */ +#line 467 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } +#line 6150 "sql.c" break; case 260: /* cmd ::= SHOW SNODES */ +#line 468 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SNODES_STMT); } +#line 6155 "sql.c" break; case 261: /* cmd ::= SHOW CLUSTER */ +#line 469 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_STMT); } +#line 6160 "sql.c" break; case 262: /* cmd ::= SHOW TRANSACTIONS */ +#line 470 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } +#line 6165 "sql.c" break; case 263: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ -{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy452); } +#line 471 "sql.y" +{ pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy840); } +#line 6170 "sql.c" break; case 264: /* cmd ::= SHOW CONSUMERS */ +#line 472 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } +#line 6175 "sql.c" break; case 265: /* cmd ::= SHOW SUBSCRIPTIONS */ +#line 473 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } +#line 6180 "sql.c" break; case 266: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy452, yymsp[-1].minor.yy452, OP_TYPE_EQUAL); } +#line 474 "sql.y" +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy840, yymsp[-1].minor.yy840, OP_TYPE_EQUAL); } +#line 6185 "sql.c" break; case 267: /* cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ -{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy371), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371), OP_TYPE_EQUAL); } +#line 475 "sql.y" +{ pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy129), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy129), OP_TYPE_EQUAL); } +#line 6190 "sql.c" break; case 268: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ -{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy452, yymsp[0].minor.yy452, yymsp[-3].minor.yy812); } +#line 476 "sql.y" +{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy840, yymsp[0].minor.yy840, yymsp[-3].minor.yy56); } +#line 6195 "sql.c" break; case 269: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ -{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy371), yymsp[-4].minor.yy812); } +#line 477 "sql.y" +{ pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy129), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy129), yymsp[-4].minor.yy56); } +#line 6200 "sql.c" break; case 270: /* cmd ::= SHOW VNODES NK_INTEGER */ +#line 478 "sql.y" { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } +#line 6205 "sql.c" break; case 271: /* cmd ::= SHOW VNODES NK_STRING */ +#line 479 "sql.y" { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &yymsp[0].minor.yy0)); } +#line 6210 "sql.c" break; case 272: /* cmd ::= SHOW db_name_cond_opt ALIVE */ -{ pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy452, QUERY_NODE_SHOW_DB_ALIVE_STMT); } +#line 481 "sql.y" +{ pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy840, QUERY_NODE_SHOW_DB_ALIVE_STMT); } +#line 6215 "sql.c" break; case 273: /* cmd ::= SHOW CLUSTER ALIVE */ +#line 482 "sql.y" { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } +#line 6220 "sql.c" break; case 274: /* db_name_cond_opt ::= */ case 279: /* from_db_opt ::= */ yytestcase(yyruleno==279); -{ yymsp[1].minor.yy452 = createDefaultDatabaseCondValue(pCxt); } +#line 484 "sql.y" +{ yymsp[1].minor.yy840 = createDefaultDatabaseCondValue(pCxt); } +#line 6226 "sql.c" break; case 275: /* db_name_cond_opt ::= db_name NK_DOT */ -{ yylhsminor.yy452 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy371); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 485 "sql.y" +{ yylhsminor.yy840 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy129); } +#line 6231 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 277: /* like_pattern_opt ::= LIKE NK_STRING */ -{ yymsp[-1].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } +#line 488 "sql.y" +{ yymsp[-1].minor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } +#line 6237 "sql.c" break; case 278: /* table_name_cond ::= table_name */ -{ yylhsminor.yy452 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 490 "sql.y" +{ yylhsminor.yy840 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy129); } +#line 6242 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 280: /* from_db_opt ::= FROM db_name */ -{ yymsp[-1].minor.yy452 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371); } +#line 493 "sql.y" +{ yymsp[-1].minor.yy840 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy129); } +#line 6248 "sql.c" break; case 284: /* tag_item ::= TBNAME */ -{ yylhsminor.yy452 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 501 "sql.y" +{ yylhsminor.yy840 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } +#line 6253 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 287: /* tag_item ::= column_name column_alias */ -{ yylhsminor.yy452 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy371), &yymsp[0].minor.yy371); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 504 "sql.y" +{ yylhsminor.yy840 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy129), &yymsp[0].minor.yy129); } +#line 6259 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 288: /* tag_item ::= column_name AS column_alias */ -{ yylhsminor.yy452 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy371), &yymsp[0].minor.yy371); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 505 "sql.y" +{ yylhsminor.yy840 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy129), &yymsp[0].minor.yy129); } +#line 6265 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 289: /* cmd ::= CREATE SMA INDEX not_exists_opt full_index_name ON full_table_name index_options */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy667, yymsp[-3].minor.yy452, yymsp[-1].minor.yy452, NULL, yymsp[0].minor.yy452); } +#line 509 "sql.y" +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy313, yymsp[-3].minor.yy840, yymsp[-1].minor.yy840, NULL, yymsp[0].minor.yy840); } +#line 6271 "sql.c" break; case 290: /* cmd ::= CREATE INDEX not_exists_opt full_index_name ON full_table_name NK_LP col_name_list NK_RP */ -{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy667, yymsp[-5].minor.yy452, yymsp[-3].minor.yy452, yymsp[-1].minor.yy812, NULL); } +#line 511 "sql.y" +{ pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy313, yymsp[-5].minor.yy840, yymsp[-3].minor.yy840, yymsp[-1].minor.yy56, NULL); } +#line 6276 "sql.c" break; case 291: /* cmd ::= DROP INDEX exists_opt full_index_name */ -{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy667, yymsp[0].minor.yy452); } +#line 512 "sql.y" +{ pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy313, yymsp[0].minor.yy840); } +#line 6281 "sql.c" break; case 292: /* full_index_name ::= index_name */ -{ yylhsminor.yy452 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy371); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 514 "sql.y" +{ yylhsminor.yy840 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy129); } +#line 6286 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 293: /* full_index_name ::= db_name NK_DOT index_name */ -{ yylhsminor.yy452 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 515 "sql.y" +{ yylhsminor.yy840 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy129, &yymsp[0].minor.yy129); } +#line 6292 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 294: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-9].minor.yy452 = createIndexOption(pCxt, yymsp[-7].minor.yy812, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), NULL, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 518 "sql.y" +{ yymsp[-9].minor.yy840 = createIndexOption(pCxt, yymsp[-7].minor.yy56, releaseRawExprNode(pCxt, yymsp[-3].minor.yy840), NULL, yymsp[-1].minor.yy840, yymsp[0].minor.yy840); } +#line 6298 "sql.c" break; case 295: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt sma_stream_opt */ -{ yymsp[-11].minor.yy452 = createIndexOption(pCxt, yymsp[-9].minor.yy812, releaseRawExprNode(pCxt, yymsp[-5].minor.yy452), releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 521 "sql.y" +{ yymsp[-11].minor.yy840 = createIndexOption(pCxt, yymsp[-9].minor.yy56, releaseRawExprNode(pCxt, yymsp[-5].minor.yy840), releaseRawExprNode(pCxt, yymsp[-3].minor.yy840), yymsp[-1].minor.yy840, yymsp[0].minor.yy840); } +#line 6303 "sql.c" break; case 298: /* func ::= sma_func_name NK_LP expression_list NK_RP */ -{ yylhsminor.yy452 = createFunctionNode(pCxt, &yymsp[-3].minor.yy371, yymsp[-1].minor.yy812); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 528 "sql.y" +{ yylhsminor.yy840 = createFunctionNode(pCxt, &yymsp[-3].minor.yy129, yymsp[-1].minor.yy56); } +#line 6308 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 299: /* sma_func_name ::= function_name */ case 513: /* alias_opt ::= table_alias */ yytestcase(yyruleno==513); -{ yylhsminor.yy371 = yymsp[0].minor.yy371; } - yymsp[0].minor.yy371 = yylhsminor.yy371; +#line 532 "sql.y" +{ yylhsminor.yy129 = yymsp[0].minor.yy129; } +#line 6315 "sql.c" + yymsp[0].minor.yy129 = yylhsminor.yy129; break; case 304: /* sma_stream_opt ::= */ case 345: /* stream_options ::= */ yytestcase(yyruleno==345); -{ yymsp[1].minor.yy452 = createStreamOptions(pCxt); } +#line 538 "sql.y" +{ yymsp[1].minor.yy840 = createStreamOptions(pCxt); } +#line 6322 "sql.c" break; case 305: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy452)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = yymsp[-2].minor.yy452; } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 539 "sql.y" +{ ((SStreamOptions*)yymsp[-2].minor.yy840)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy840); yylhsminor.yy840 = yymsp[-2].minor.yy840; } +#line 6327 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 306: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy452)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = yymsp[-2].minor.yy452; } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 540 "sql.y" +{ ((SStreamOptions*)yymsp[-2].minor.yy840)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy840); yylhsminor.yy840 = yymsp[-2].minor.yy840; } +#line 6333 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 307: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ -{ ((SStreamOptions*)yymsp[-2].minor.yy452)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = yymsp[-2].minor.yy452; } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 541 "sql.y" +{ ((SStreamOptions*)yymsp[-2].minor.yy840)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy840); yylhsminor.yy840 = yymsp[-2].minor.yy840; } +#line 6339 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 308: /* with_meta ::= AS */ -{ yymsp[0].minor.yy416 = 0; } +#line 546 "sql.y" +{ yymsp[0].minor.yy356 = 0; } +#line 6345 "sql.c" break; case 309: /* with_meta ::= WITH META AS */ -{ yymsp[-2].minor.yy416 = 1; } +#line 547 "sql.y" +{ yymsp[-2].minor.yy356 = 1; } +#line 6350 "sql.c" break; case 310: /* with_meta ::= ONLY META AS */ -{ yymsp[-2].minor.yy416 = 2; } +#line 548 "sql.y" +{ yymsp[-2].minor.yy356 = 2; } +#line 6355 "sql.c" break; case 311: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ -{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy667, &yymsp[-2].minor.yy371, yymsp[0].minor.yy452); } +#line 550 "sql.y" +{ pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy313, &yymsp[-2].minor.yy129, yymsp[0].minor.yy840); } +#line 6360 "sql.c" break; case 312: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ -{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy667, &yymsp[-3].minor.yy371, &yymsp[0].minor.yy371, yymsp[-2].minor.yy416); } +#line 552 "sql.y" +{ pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy313, &yymsp[-3].minor.yy129, &yymsp[0].minor.yy129, yymsp[-2].minor.yy356); } +#line 6365 "sql.c" break; case 313: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ -{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-5].minor.yy667, &yymsp[-4].minor.yy371, yymsp[-1].minor.yy452, yymsp[-3].minor.yy416, yymsp[0].minor.yy452); } +#line 554 "sql.y" +{ pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-5].minor.yy313, &yymsp[-4].minor.yy129, yymsp[-1].minor.yy840, yymsp[-3].minor.yy356, yymsp[0].minor.yy840); } +#line 6370 "sql.c" break; case 314: /* cmd ::= DROP TOPIC exists_opt topic_name */ -{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 556 "sql.y" +{ pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy313, &yymsp[0].minor.yy129); } +#line 6375 "sql.c" break; case 315: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ -{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy667, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371); } +#line 557 "sql.y" +{ pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy313, &yymsp[-2].minor.yy129, &yymsp[0].minor.yy129); } +#line 6380 "sql.c" break; case 316: /* cmd ::= DESC full_table_name */ case 317: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==317); -{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy452); } +#line 560 "sql.y" +{ pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy840); } +#line 6386 "sql.c" break; case 318: /* cmd ::= RESET QUERY CACHE */ +#line 564 "sql.y" { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } +#line 6391 "sql.c" break; case 319: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ case 320: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==320); -{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy667, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 567 "sql.y" +{ pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy313, yymsp[-1].minor.yy840, yymsp[0].minor.yy840); } +#line 6397 "sql.c" break; case 323: /* explain_options ::= */ -{ yymsp[1].minor.yy452 = createDefaultExplainOptions(pCxt); } +#line 575 "sql.y" +{ yymsp[1].minor.yy840 = createDefaultExplainOptions(pCxt); } +#line 6402 "sql.c" break; case 324: /* explain_options ::= explain_options VERBOSE NK_BOOL */ -{ yylhsminor.yy452 = setExplainVerbose(pCxt, yymsp[-2].minor.yy452, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 576 "sql.y" +{ yylhsminor.yy840 = setExplainVerbose(pCxt, yymsp[-2].minor.yy840, &yymsp[0].minor.yy0); } +#line 6407 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 325: /* explain_options ::= explain_options RATIO NK_FLOAT */ -{ yylhsminor.yy452 = setExplainRatio(pCxt, yymsp[-2].minor.yy452, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 577 "sql.y" +{ yylhsminor.yy840 = setExplainRatio(pCxt, yymsp[-2].minor.yy840, &yymsp[0].minor.yy0); } +#line 6413 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 326: /* cmd ::= CREATE or_replace_opt agg_func_opt FUNCTION not_exists_opt function_name AS NK_STRING OUTPUTTYPE type_name bufsize_opt language_opt */ -{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy667, yymsp[-9].minor.yy667, &yymsp[-6].minor.yy371, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy310, yymsp[-1].minor.yy416, &yymsp[0].minor.yy371, yymsp[-10].minor.yy667); } +#line 582 "sql.y" +{ pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy313, yymsp[-9].minor.yy313, &yymsp[-6].minor.yy129, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy784, yymsp[-1].minor.yy356, &yymsp[0].minor.yy129, yymsp[-10].minor.yy313); } +#line 6419 "sql.c" break; case 327: /* cmd ::= DROP FUNCTION exists_opt function_name */ -{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 583 "sql.y" +{ pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy313, &yymsp[0].minor.yy129); } +#line 6424 "sql.c" break; case 332: /* language_opt ::= */ -{ yymsp[1].minor.yy371 = nil_token; } +#line 597 "sql.y" +{ yymsp[1].minor.yy129 = nil_token; } +#line 6429 "sql.c" break; case 333: /* language_opt ::= LANGUAGE NK_STRING */ -{ yymsp[-1].minor.yy371 = yymsp[0].minor.yy0; } +#line 598 "sql.y" +{ yymsp[-1].minor.yy129 = yymsp[0].minor.yy0; } +#line 6434 "sql.c" break; case 336: /* 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 */ -{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy667, &yymsp[-8].minor.yy371, yymsp[-5].minor.yy452, yymsp[-7].minor.yy452, yymsp[-3].minor.yy812, yymsp[-2].minor.yy452, yymsp[0].minor.yy452, yymsp[-4].minor.yy812); } +#line 608 "sql.y" +{ pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy313, &yymsp[-8].minor.yy129, yymsp[-5].minor.yy840, yymsp[-7].minor.yy840, yymsp[-3].minor.yy56, yymsp[-2].minor.yy840, yymsp[0].minor.yy840, yymsp[-4].minor.yy56); } +#line 6439 "sql.c" break; case 337: /* cmd ::= DROP STREAM exists_opt stream_name */ -{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 609 "sql.y" +{ pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy313, &yymsp[0].minor.yy129); } +#line 6444 "sql.c" break; case 338: /* cmd ::= PAUSE STREAM exists_opt stream_name */ -{ pCxt->pRootNode = createPauseStreamStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 610 "sql.y" +{ pCxt->pRootNode = createPauseStreamStmt(pCxt, yymsp[-1].minor.yy313, &yymsp[0].minor.yy129); } +#line 6449 "sql.c" break; case 339: /* cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ -{ pCxt->pRootNode = createResumeStreamStmt(pCxt, yymsp[-2].minor.yy667, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 611 "sql.y" +{ pCxt->pRootNode = createResumeStreamStmt(pCxt, yymsp[-2].minor.yy313, yymsp[-1].minor.yy313, &yymsp[0].minor.yy129); } +#line 6454 "sql.c" break; case 346: /* stream_options ::= stream_options TRIGGER AT_ONCE */ case 347: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==347); -{ yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-2].minor.yy452, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 625 "sql.y" +{ yylhsminor.yy840 = setStreamOptions(pCxt, yymsp[-2].minor.yy840, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } +#line 6460 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 348: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ -{ yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-3].minor.yy452, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 627 "sql.y" +{ yylhsminor.yy840 = setStreamOptions(pCxt, yymsp[-3].minor.yy840, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy840)); } +#line 6466 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 349: /* stream_options ::= stream_options WATERMARK duration_literal */ -{ yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-2].minor.yy452, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 628 "sql.y" +{ yylhsminor.yy840 = setStreamOptions(pCxt, yymsp[-2].minor.yy840, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy840)); } +#line 6472 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 350: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ -{ yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-3].minor.yy452, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 629 "sql.y" +{ yylhsminor.yy840 = setStreamOptions(pCxt, yymsp[-3].minor.yy840, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } +#line 6478 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 351: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ -{ yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-2].minor.yy452, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 630 "sql.y" +{ yylhsminor.yy840 = setStreamOptions(pCxt, yymsp[-2].minor.yy840, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } +#line 6484 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 352: /* stream_options ::= stream_options DELETE_MARK duration_literal */ -{ yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-2].minor.yy452, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 631 "sql.y" +{ yylhsminor.yy840 = setStreamOptions(pCxt, yymsp[-2].minor.yy840, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy840)); } +#line 6490 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 353: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ -{ yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-3].minor.yy452, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 632 "sql.y" +{ yylhsminor.yy840 = setStreamOptions(pCxt, yymsp[-3].minor.yy840, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } +#line 6496 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 355: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 547: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==547); - case 568: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==568); -{ yymsp[-3].minor.yy452 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy452); } + case 549: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==549); + case 570: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==570); +#line 635 "sql.y" +{ yymsp[-3].minor.yy840 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy840); } +#line 6504 "sql.c" break; case 358: /* cmd ::= KILL CONNECTION NK_INTEGER */ +#line 643 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } +#line 6509 "sql.c" break; case 359: /* cmd ::= KILL QUERY NK_STRING */ +#line 644 "sql.y" { pCxt->pRootNode = createKillQueryStmt(pCxt, &yymsp[0].minor.yy0); } +#line 6514 "sql.c" break; case 360: /* cmd ::= KILL TRANSACTION NK_INTEGER */ +#line 645 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_TRANSACTION_STMT, &yymsp[0].minor.yy0); } +#line 6519 "sql.c" break; case 361: /* cmd ::= BALANCE VGROUP */ +#line 648 "sql.y" { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } +#line 6524 "sql.c" break; case 362: /* cmd ::= BALANCE VGROUP LEADER */ +#line 649 "sql.y" { pCxt->pRootNode = createBalanceVgroupLeaderStmt(pCxt); } +#line 6529 "sql.c" break; case 363: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ +#line 650 "sql.y" { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } +#line 6534 "sql.c" break; case 364: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ -{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy812); } +#line 651 "sql.y" +{ pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy56); } +#line 6539 "sql.c" break; case 365: /* cmd ::= SPLIT VGROUP NK_INTEGER */ +#line 652 "sql.y" { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } +#line 6544 "sql.c" break; case 366: /* dnode_list ::= DNODE NK_INTEGER */ -{ yymsp[-1].minor.yy812 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } +#line 656 "sql.y" +{ yymsp[-1].minor.yy56 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } +#line 6549 "sql.c" break; case 368: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ -{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 663 "sql.y" +{ pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy840, yymsp[0].minor.yy840); } +#line 6554 "sql.c" break; case 371: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ -{ yymsp[-6].minor.yy452 = createInsertStmt(pCxt, yymsp[-4].minor.yy452, yymsp[-2].minor.yy812, yymsp[0].minor.yy452); } +#line 672 "sql.y" +{ yymsp[-6].minor.yy840 = createInsertStmt(pCxt, yymsp[-4].minor.yy840, yymsp[-2].minor.yy56, yymsp[0].minor.yy840); } +#line 6559 "sql.c" break; case 372: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ -{ yymsp[-3].minor.yy452 = createInsertStmt(pCxt, yymsp[-1].minor.yy452, NULL, yymsp[0].minor.yy452); } +#line 673 "sql.y" +{ yymsp[-3].minor.yy840 = createInsertStmt(pCxt, yymsp[-1].minor.yy840, NULL, yymsp[0].minor.yy840); } +#line 6564 "sql.c" break; case 373: /* literal ::= NK_INTEGER */ -{ yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 676 "sql.y" +{ yylhsminor.yy840 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } +#line 6569 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 374: /* literal ::= NK_FLOAT */ -{ yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 677 "sql.y" +{ yylhsminor.yy840 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } +#line 6575 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 375: /* literal ::= NK_STRING */ -{ yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 678 "sql.y" +{ yylhsminor.yy840 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } +#line 6581 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 376: /* literal ::= NK_BOOL */ -{ yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 679 "sql.y" +{ yylhsminor.yy840 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } +#line 6587 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 377: /* literal ::= TIMESTAMP NK_STRING */ -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 680 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } +#line 6593 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 378: /* literal ::= duration_literal */ case 388: /* signed_literal ::= signed */ yytestcase(yyruleno==388); @@ -5662,175 +6610,233 @@ static YYACTIONTYPE yy_reduce( case 506: /* table_reference ::= table_primary */ yytestcase(yyruleno==506); case 507: /* table_reference ::= joined_table */ yytestcase(yyruleno==507); case 511: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==511); - case 570: /* query_simple ::= query_specification */ yytestcase(yyruleno==570); - case 571: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==571); - case 574: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==574); - case 576: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==576); -{ yylhsminor.yy452 = yymsp[0].minor.yy452; } - yymsp[0].minor.yy452 = yylhsminor.yy452; + case 572: /* query_simple ::= query_specification */ yytestcase(yyruleno==572); + case 573: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==573); + case 576: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==576); + case 578: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==578); +#line 681 "sql.y" +{ yylhsminor.yy840 = yymsp[0].minor.yy840; } +#line 6619 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 379: /* literal ::= NULL */ -{ yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 682 "sql.y" +{ yylhsminor.yy840 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } +#line 6625 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 380: /* literal ::= NK_QUESTION */ -{ yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 683 "sql.y" +{ yylhsminor.yy840 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 6631 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 381: /* duration_literal ::= NK_VARIABLE */ -{ yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 685 "sql.y" +{ yylhsminor.yy840 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 6637 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 382: /* signed ::= NK_INTEGER */ -{ yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 687 "sql.y" +{ yylhsminor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } +#line 6643 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 383: /* signed ::= NK_PLUS NK_INTEGER */ -{ yymsp[-1].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } +#line 688 "sql.y" +{ yymsp[-1].minor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } +#line 6649 "sql.c" break; case 384: /* signed ::= NK_MINUS NK_INTEGER */ +#line 689 "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.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); + yylhsminor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 6658 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 385: /* signed ::= NK_FLOAT */ -{ yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 694 "sql.y" +{ yylhsminor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } +#line 6664 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 386: /* signed ::= NK_PLUS NK_FLOAT */ -{ yymsp[-1].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } +#line 695 "sql.y" +{ yymsp[-1].minor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } +#line 6670 "sql.c" break; case 387: /* signed ::= NK_MINUS NK_FLOAT */ +#line 696 "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.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); + yylhsminor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 6679 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 389: /* signed_literal ::= NK_STRING */ -{ yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 703 "sql.y" +{ yylhsminor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } +#line 6685 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 390: /* signed_literal ::= NK_BOOL */ -{ yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 704 "sql.y" +{ yylhsminor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } +#line 6691 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 391: /* signed_literal ::= TIMESTAMP NK_STRING */ -{ yymsp[-1].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +#line 705 "sql.y" +{ yymsp[-1].minor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +#line 6697 "sql.c" break; case 392: /* signed_literal ::= duration_literal */ case 394: /* signed_literal ::= literal_func */ yytestcase(yyruleno==394); case 465: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==465); - case 527: /* select_item ::= common_expression */ yytestcase(yyruleno==527); - case 537: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==537); - case 575: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==575); - case 577: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==577); - case 590: /* search_condition ::= common_expression */ yytestcase(yyruleno==590); -{ yylhsminor.yy452 = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); } - yymsp[0].minor.yy452 = yylhsminor.yy452; + case 529: /* select_item ::= common_expression */ yytestcase(yyruleno==529); + case 539: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==539); + case 577: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==577); + case 579: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==579); + case 592: /* search_condition ::= common_expression */ yytestcase(yyruleno==592); +#line 706 "sql.y" +{ yylhsminor.yy840 = releaseRawExprNode(pCxt, yymsp[0].minor.yy840); } +#line 6709 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 393: /* signed_literal ::= NULL */ -{ yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 707 "sql.y" +{ yylhsminor.yy840 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } +#line 6715 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 395: /* signed_literal ::= NK_QUESTION */ -{ yylhsminor.yy452 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 709 "sql.y" +{ yylhsminor.yy840 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } +#line 6721 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 415: /* expression ::= NK_LP expression NK_RP */ case 499: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==499); - case 589: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==589); -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; + case 591: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==591); +#line 770 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy840)); } +#line 6729 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 416: /* expression ::= NK_PLUS expr_or_subquery */ +#line 771 "sql.y" { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy840)); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 6738 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 417: /* expression ::= NK_MINUS expr_or_subquery */ +#line 775 "sql.y" { - SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy452), NULL)); + SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy840), NULL)); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 6747 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 418: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ +#line 779 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6757 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 419: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ +#line 784 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6767 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 420: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ +#line 789 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6777 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 421: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ +#line 794 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6787 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 422: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ +#line 799 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6797 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 423: /* expression ::= column_reference NK_ARROW NK_STRING */ +#line 804 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6806 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 424: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ +#line 808 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6816 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 425: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ +#line 813 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6826 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 428: /* column_reference ::= column_name */ -{ yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy371, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy371)); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 824 "sql.y" +{ yylhsminor.yy840 = createRawExprNode(pCxt, &yymsp[0].minor.yy129, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy129)); } +#line 6832 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 429: /* column_reference ::= table_name NK_DOT column_name */ -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371, createColumnNode(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371)); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 825 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy129, &yymsp[0].minor.yy129, createColumnNode(pCxt, &yymsp[-2].minor.yy129, &yymsp[0].minor.yy129)); } +#line 6838 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 430: /* pseudo_column ::= ROWTS */ case 431: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==431); @@ -5844,334 +6850,497 @@ static YYACTIONTYPE yy_reduce( case 440: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==440); case 441: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==441); case 447: /* literal_func ::= NOW */ yytestcase(yyruleno==447); -{ yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } - yymsp[0].minor.yy452 = yylhsminor.yy452; +#line 827 "sql.y" +{ yylhsminor.yy840 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } +#line 6855 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; case 432: /* pseudo_column ::= table_name NK_DOT TBNAME */ -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy371)))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 829 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy129, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy129)))); } +#line 6861 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 442: /* function_expression ::= function_name NK_LP expression_list NK_RP */ case 443: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==443); -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy371, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy371, yymsp[-1].minor.yy812)); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 840 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy129, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy129, yymsp[-1].minor.yy56)); } +#line 6868 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 444: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), yymsp[-1].minor.yy310)); } - yymsp[-5].minor.yy452 = yylhsminor.yy452; +#line 843 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy840), yymsp[-1].minor.yy784)); } +#line 6874 "sql.c" + yymsp[-5].minor.yy840 = yylhsminor.yy840; break; case 446: /* literal_func ::= noarg_func NK_LP NK_RP */ -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy371, NULL)); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 846 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy129, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy129, NULL)); } +#line 6880 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 461: /* star_func_para_list ::= NK_STAR */ -{ yylhsminor.yy812 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } - yymsp[0].minor.yy812 = yylhsminor.yy812; +#line 870 "sql.y" +{ yylhsminor.yy56 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } +#line 6886 "sql.c" + yymsp[0].minor.yy56 = yylhsminor.yy56; break; case 466: /* star_func_para ::= table_name NK_DOT NK_STAR */ - case 530: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==530); -{ yylhsminor.yy452 = createColumnNode(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; + case 532: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==532); +#line 879 "sql.y" +{ yylhsminor.yy840 = createColumnNode(pCxt, &yymsp[-2].minor.yy129, &yymsp[0].minor.yy0); } +#line 6893 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 467: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy812, yymsp[-1].minor.yy452)); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 882 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy56, yymsp[-1].minor.yy840)); } +#line 6899 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 468: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), yymsp[-2].minor.yy812, yymsp[-1].minor.yy452)); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 884 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy840), yymsp[-2].minor.yy56, yymsp[-1].minor.yy840)); } +#line 6905 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 471: /* when_then_expr ::= WHEN common_expression THEN common_expression */ -{ yymsp[-3].minor.yy452 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } +#line 891 "sql.y" +{ yymsp[-3].minor.yy840 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840)); } +#line 6911 "sql.c" break; case 473: /* case_when_else_opt ::= ELSE common_expression */ -{ yymsp[-1].minor.yy452 = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); } +#line 894 "sql.y" +{ yymsp[-1].minor.yy840 = releaseRawExprNode(pCxt, yymsp[0].minor.yy840); } +#line 6916 "sql.c" break; case 474: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ case 479: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==479); +#line 897 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy354, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy76, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6926 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 475: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ +#line 904 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy452), releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy840), releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-4].minor.yy452 = yylhsminor.yy452; +#line 6936 "sql.c" + yymsp[-4].minor.yy840 = yylhsminor.yy840; break; case 476: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ +#line 910 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy452), releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy840), releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-5].minor.yy452 = yylhsminor.yy452; +#line 6946 "sql.c" + yymsp[-5].minor.yy840 = yylhsminor.yy840; break; case 477: /* predicate ::= expr_or_subquery IS NULL */ +#line 915 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), NULL)); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 6955 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 478: /* predicate ::= expr_or_subquery IS NOT NULL */ +#line 919 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), NULL)); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy840), NULL)); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 6964 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 480: /* compare_op ::= NK_LT */ -{ yymsp[0].minor.yy354 = OP_TYPE_LOWER_THAN; } +#line 931 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_LOWER_THAN; } +#line 6970 "sql.c" break; case 481: /* compare_op ::= NK_GT */ -{ yymsp[0].minor.yy354 = OP_TYPE_GREATER_THAN; } +#line 932 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_GREATER_THAN; } +#line 6975 "sql.c" break; case 482: /* compare_op ::= NK_LE */ -{ yymsp[0].minor.yy354 = OP_TYPE_LOWER_EQUAL; } +#line 933 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_LOWER_EQUAL; } +#line 6980 "sql.c" break; case 483: /* compare_op ::= NK_GE */ -{ yymsp[0].minor.yy354 = OP_TYPE_GREATER_EQUAL; } +#line 934 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_GREATER_EQUAL; } +#line 6985 "sql.c" break; case 484: /* compare_op ::= NK_NE */ -{ yymsp[0].minor.yy354 = OP_TYPE_NOT_EQUAL; } +#line 935 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_NOT_EQUAL; } +#line 6990 "sql.c" break; case 485: /* compare_op ::= NK_EQ */ -{ yymsp[0].minor.yy354 = OP_TYPE_EQUAL; } +#line 936 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_EQUAL; } +#line 6995 "sql.c" break; case 486: /* compare_op ::= LIKE */ -{ yymsp[0].minor.yy354 = OP_TYPE_LIKE; } +#line 937 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_LIKE; } +#line 7000 "sql.c" break; case 487: /* compare_op ::= NOT LIKE */ -{ yymsp[-1].minor.yy354 = OP_TYPE_NOT_LIKE; } +#line 938 "sql.y" +{ yymsp[-1].minor.yy76 = OP_TYPE_NOT_LIKE; } +#line 7005 "sql.c" break; case 488: /* compare_op ::= MATCH */ -{ yymsp[0].minor.yy354 = OP_TYPE_MATCH; } +#line 939 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_MATCH; } +#line 7010 "sql.c" break; case 489: /* compare_op ::= NMATCH */ -{ yymsp[0].minor.yy354 = OP_TYPE_NMATCH; } +#line 940 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_NMATCH; } +#line 7015 "sql.c" break; case 490: /* compare_op ::= CONTAINS */ -{ yymsp[0].minor.yy354 = OP_TYPE_JSON_CONTAINS; } +#line 941 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_JSON_CONTAINS; } +#line 7020 "sql.c" break; case 491: /* in_op ::= IN */ -{ yymsp[0].minor.yy354 = OP_TYPE_IN; } +#line 945 "sql.y" +{ yymsp[0].minor.yy76 = OP_TYPE_IN; } +#line 7025 "sql.c" break; case 492: /* in_op ::= NOT IN */ -{ yymsp[-1].minor.yy354 = OP_TYPE_NOT_IN; } +#line 946 "sql.y" +{ yymsp[-1].minor.yy76 = OP_TYPE_NOT_IN; } +#line 7030 "sql.c" break; case 493: /* in_predicate_value ::= NK_LP literal_list NK_RP */ -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy812)); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 948 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy56)); } +#line 7035 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 495: /* boolean_value_expression ::= NOT boolean_primary */ +#line 952 "sql.y" { - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy452), NULL)); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy840), NULL)); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 7044 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 496: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ +#line 957 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 7054 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 497: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ +#line 963 "sql.y" { - SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); - SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); - yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); + SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy840); + SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy840); + yylhsminor.yy840 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 7064 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 505: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ -{ yylhsminor.yy452 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy452, yymsp[0].minor.yy452, NULL); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; +#line 981 "sql.y" +{ yylhsminor.yy840 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy840, yymsp[0].minor.yy840, NULL); } +#line 7070 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; case 508: /* table_primary ::= table_name alias_opt */ -{ yylhsminor.yy452 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy371, &yymsp[0].minor.yy371); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 987 "sql.y" +{ yylhsminor.yy840 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy129, &yymsp[0].minor.yy129); } +#line 7076 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 509: /* table_primary ::= db_name NK_DOT table_name alias_opt */ -{ yylhsminor.yy452 = createRealTableNode(pCxt, &yymsp[-3].minor.yy371, &yymsp[-1].minor.yy371, &yymsp[0].minor.yy371); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 988 "sql.y" +{ yylhsminor.yy840 = createRealTableNode(pCxt, &yymsp[-3].minor.yy129, &yymsp[-1].minor.yy129, &yymsp[0].minor.yy129); } +#line 7082 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 510: /* table_primary ::= subquery alias_opt */ -{ yylhsminor.yy452 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452), &yymsp[0].minor.yy371); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; +#line 989 "sql.y" +{ yylhsminor.yy840 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy840), &yymsp[0].minor.yy129); } +#line 7088 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; case 512: /* alias_opt ::= */ -{ yymsp[1].minor.yy371 = nil_token; } +#line 994 "sql.y" +{ yymsp[1].minor.yy129 = nil_token; } +#line 7094 "sql.c" break; case 514: /* alias_opt ::= AS table_alias */ -{ yymsp[-1].minor.yy371 = yymsp[0].minor.yy371; } +#line 996 "sql.y" +{ yymsp[-1].minor.yy129 = yymsp[0].minor.yy129; } +#line 7099 "sql.c" break; case 515: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ case 516: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==516); -{ yymsp[-2].minor.yy452 = yymsp[-1].minor.yy452; } +#line 998 "sql.y" +{ yymsp[-2].minor.yy840 = yymsp[-1].minor.yy840; } +#line 7105 "sql.c" break; case 517: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ -{ yylhsminor.yy452 = createJoinTableNode(pCxt, yymsp[-4].minor.yy140, yymsp[-5].minor.yy452, yymsp[-2].minor.yy452, yymsp[0].minor.yy452); } - yymsp[-5].minor.yy452 = yylhsminor.yy452; +#line 1003 "sql.y" +{ yylhsminor.yy840 = createJoinTableNode(pCxt, yymsp[-4].minor.yy708, yymsp[-5].minor.yy840, yymsp[-2].minor.yy840, yymsp[0].minor.yy840); } +#line 7110 "sql.c" + yymsp[-5].minor.yy840 = yylhsminor.yy840; break; case 518: /* join_type ::= */ -{ yymsp[1].minor.yy140 = JOIN_TYPE_INNER; } +#line 1007 "sql.y" +{ yymsp[1].minor.yy708 = JOIN_TYPE_INNER; } +#line 7116 "sql.c" break; case 519: /* join_type ::= INNER */ -{ yymsp[0].minor.yy140 = JOIN_TYPE_INNER; } +#line 1008 "sql.y" +{ yymsp[0].minor.yy708 = JOIN_TYPE_INNER; } +#line 7121 "sql.c" break; - case 520: /* query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ -{ - yymsp[-11].minor.yy452 = createSelectStmt(pCxt, yymsp[-10].minor.yy667, yymsp[-9].minor.yy812, yymsp[-8].minor.yy452); - yymsp[-11].minor.yy452 = addWhereClause(pCxt, yymsp[-11].minor.yy452, yymsp[-7].minor.yy452); - yymsp[-11].minor.yy452 = addPartitionByClause(pCxt, yymsp[-11].minor.yy452, yymsp[-6].minor.yy812); - yymsp[-11].minor.yy452 = addWindowClauseClause(pCxt, yymsp[-11].minor.yy452, yymsp[-2].minor.yy452); - yymsp[-11].minor.yy452 = addGroupByClause(pCxt, yymsp[-11].minor.yy452, yymsp[-1].minor.yy812); - yymsp[-11].minor.yy452 = addHavingClause(pCxt, yymsp[-11].minor.yy452, yymsp[0].minor.yy452); - yymsp[-11].minor.yy452 = addRangeClause(pCxt, yymsp[-11].minor.yy452, yymsp[-5].minor.yy452); - yymsp[-11].minor.yy452 = addEveryClause(pCxt, yymsp[-11].minor.yy452, yymsp[-4].minor.yy452); - yymsp[-11].minor.yy452 = addFillClause(pCxt, yymsp[-11].minor.yy452, yymsp[-3].minor.yy452); - } - break; - case 523: /* set_quantifier_opt ::= ALL */ -{ yymsp[0].minor.yy667 = false; } - break; - case 526: /* select_item ::= NK_STAR */ -{ yylhsminor.yy452 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy452 = yylhsminor.yy452; - break; - case 528: /* select_item ::= common_expression column_alias */ - case 538: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==538); -{ yylhsminor.yy452 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452), &yymsp[0].minor.yy371); } - yymsp[-1].minor.yy452 = yylhsminor.yy452; - break; - case 529: /* select_item ::= common_expression AS column_alias */ - case 539: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==539); -{ yylhsminor.yy452 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), &yymsp[0].minor.yy371); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; - break; - case 534: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 559: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==559); - case 579: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==579); -{ yymsp[-2].minor.yy812 = yymsp[0].minor.yy812; } - break; - case 541: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ -{ yymsp[-5].minor.yy452 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } - break; - case 542: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ -{ yymsp[-3].minor.yy452 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } - break; - case 543: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-5].minor.yy452 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), NULL, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } - break; - case 544: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ -{ yymsp[-7].minor.yy452 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy452), releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } - break; - case 545: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ -{ yymsp[-6].minor.yy452 = createEventWindowNode(pCxt, yymsp[-3].minor.yy452, yymsp[0].minor.yy452); } - break; - case 549: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ -{ yymsp[-3].minor.yy452 = createFillNode(pCxt, yymsp[-1].minor.yy844, NULL); } - break; - case 550: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ -{ yymsp[-5].minor.yy452 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy812)); } - break; - case 551: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ -{ yymsp[-5].minor.yy452 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy812)); } - break; - case 552: /* fill_mode ::= NONE */ -{ yymsp[0].minor.yy844 = FILL_MODE_NONE; } - break; - case 553: /* fill_mode ::= PREV */ -{ yymsp[0].minor.yy844 = FILL_MODE_PREV; } - break; - case 554: /* fill_mode ::= NULL */ -{ yymsp[0].minor.yy844 = FILL_MODE_NULL; } - break; - case 555: /* fill_mode ::= NULL_F */ -{ yymsp[0].minor.yy844 = FILL_MODE_NULL_F; } - break; - case 556: /* fill_mode ::= LINEAR */ -{ yymsp[0].minor.yy844 = FILL_MODE_LINEAR; } - break; - case 557: /* fill_mode ::= NEXT */ -{ yymsp[0].minor.yy844 = FILL_MODE_NEXT; } - break; - case 560: /* group_by_list ::= expr_or_subquery */ -{ yylhsminor.yy812 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } - yymsp[0].minor.yy812 = yylhsminor.yy812; - break; - case 561: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ -{ yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } - yymsp[-2].minor.yy812 = yylhsminor.yy812; - break; - case 565: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ -{ yymsp[-5].minor.yy452 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } - break; - case 566: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ -{ yymsp[-3].minor.yy452 = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } - break; - case 569: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + case 520: /* query_specification ::= SELECT tag_mode_opt set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ +#line 1014 "sql.y" { - yylhsminor.yy452 = addOrderByClause(pCxt, yymsp[-3].minor.yy452, yymsp[-2].minor.yy812); - yylhsminor.yy452 = addSlimitClause(pCxt, yylhsminor.yy452, yymsp[-1].minor.yy452); - yylhsminor.yy452 = addLimitClause(pCxt, yylhsminor.yy452, yymsp[0].minor.yy452); + yymsp[-12].minor.yy840 = createSelectStmt(pCxt, yymsp[-10].minor.yy313, yymsp[-9].minor.yy56, yymsp[-8].minor.yy840); + yymsp[-12].minor.yy840 = setSelectStmtTagMode(pCxt, yymsp[-12].minor.yy840, yymsp[-11].minor.yy313); + yymsp[-12].minor.yy840 = addWhereClause(pCxt, yymsp[-12].minor.yy840, yymsp[-7].minor.yy840); + yymsp[-12].minor.yy840 = addPartitionByClause(pCxt, yymsp[-12].minor.yy840, yymsp[-6].minor.yy56); + yymsp[-12].minor.yy840 = addWindowClauseClause(pCxt, yymsp[-12].minor.yy840, yymsp[-2].minor.yy840); + yymsp[-12].minor.yy840 = addGroupByClause(pCxt, yymsp[-12].minor.yy840, yymsp[-1].minor.yy56); + yymsp[-12].minor.yy840 = addHavingClause(pCxt, yymsp[-12].minor.yy840, yymsp[0].minor.yy840); + yymsp[-12].minor.yy840 = addRangeClause(pCxt, yymsp[-12].minor.yy840, yymsp[-5].minor.yy840); + yymsp[-12].minor.yy840 = addEveryClause(pCxt, yymsp[-12].minor.yy840, yymsp[-4].minor.yy840); + yymsp[-12].minor.yy840 = addFillClause(pCxt, yymsp[-12].minor.yy840, yymsp[-3].minor.yy840); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; +#line 7137 "sql.c" break; - case 572: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ -{ yylhsminor.yy452 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy452, yymsp[0].minor.yy452); } - yymsp[-3].minor.yy452 = yylhsminor.yy452; + case 525: /* set_quantifier_opt ::= ALL */ +#line 1036 "sql.y" +{ yymsp[0].minor.yy313 = false; } +#line 7142 "sql.c" break; - case 573: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ -{ yylhsminor.yy452 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy452, yymsp[0].minor.yy452); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; + case 528: /* select_item ::= NK_STAR */ +#line 1043 "sql.y" +{ yylhsminor.yy840 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } +#line 7147 "sql.c" + yymsp[0].minor.yy840 = yylhsminor.yy840; break; - case 581: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ - case 585: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==585); -{ yymsp[-1].minor.yy452 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } + case 530: /* select_item ::= common_expression column_alias */ + case 540: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==540); +#line 1045 "sql.y" +{ yylhsminor.yy840 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy840), &yymsp[0].minor.yy129); } +#line 7154 "sql.c" + yymsp[-1].minor.yy840 = yylhsminor.yy840; break; - case 582: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 586: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==586); -{ yymsp[-3].minor.yy452 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } + case 531: /* select_item ::= common_expression AS column_alias */ + case 541: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==541); +#line 1046 "sql.y" +{ yylhsminor.yy840 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), &yymsp[0].minor.yy129); } +#line 7161 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; break; - case 583: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 587: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==587); -{ yymsp[-3].minor.yy452 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } + case 536: /* partition_by_clause_opt ::= PARTITION BY partition_list */ + case 561: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==561); + case 581: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==581); +#line 1055 "sql.y" +{ yymsp[-2].minor.yy56 = yymsp[0].minor.yy56; } +#line 7169 "sql.c" break; - case 588: /* subquery ::= NK_LP query_expression NK_RP */ -{ yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy452); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; + case 543: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ +#line 1068 "sql.y" +{ yymsp[-5].minor.yy840 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy840), releaseRawExprNode(pCxt, yymsp[-1].minor.yy840)); } +#line 7174 "sql.c" break; - case 593: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ -{ yylhsminor.yy452 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), yymsp[-1].minor.yy690, yymsp[0].minor.yy399); } - yymsp[-2].minor.yy452 = yylhsminor.yy452; + case 544: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ +#line 1069 "sql.y" +{ yymsp[-3].minor.yy840 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy840)); } +#line 7179 "sql.c" break; - case 594: /* ordering_specification_opt ::= */ -{ yymsp[1].minor.yy690 = ORDER_ASC; } + case 545: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ +#line 1071 "sql.y" +{ yymsp[-5].minor.yy840 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy840), NULL, yymsp[-1].minor.yy840, yymsp[0].minor.yy840); } +#line 7184 "sql.c" break; - case 595: /* ordering_specification_opt ::= ASC */ -{ yymsp[0].minor.yy690 = ORDER_ASC; } + case 546: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ +#line 1074 "sql.y" +{ yymsp[-7].minor.yy840 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy840), releaseRawExprNode(pCxt, yymsp[-3].minor.yy840), yymsp[-1].minor.yy840, yymsp[0].minor.yy840); } +#line 7189 "sql.c" break; - case 596: /* ordering_specification_opt ::= DESC */ -{ yymsp[0].minor.yy690 = ORDER_DESC; } + case 547: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ +#line 1076 "sql.y" +{ yymsp[-6].minor.yy840 = createEventWindowNode(pCxt, yymsp[-3].minor.yy840, yymsp[0].minor.yy840); } +#line 7194 "sql.c" break; - case 597: /* null_ordering_opt ::= */ -{ yymsp[1].minor.yy399 = NULL_ORDER_DEFAULT; } + case 551: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ +#line 1082 "sql.y" +{ yymsp[-3].minor.yy840 = createFillNode(pCxt, yymsp[-1].minor.yy694, NULL); } +#line 7199 "sql.c" break; - case 598: /* null_ordering_opt ::= NULLS FIRST */ -{ yymsp[-1].minor.yy399 = NULL_ORDER_FIRST; } + case 552: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ +#line 1083 "sql.y" +{ yymsp[-5].minor.yy840 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy56)); } +#line 7204 "sql.c" break; - case 599: /* null_ordering_opt ::= NULLS LAST */ -{ yymsp[-1].minor.yy399 = NULL_ORDER_LAST; } + case 553: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ +#line 1084 "sql.y" +{ yymsp[-5].minor.yy840 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy56)); } +#line 7209 "sql.c" + break; + case 554: /* fill_mode ::= NONE */ +#line 1088 "sql.y" +{ yymsp[0].minor.yy694 = FILL_MODE_NONE; } +#line 7214 "sql.c" + break; + case 555: /* fill_mode ::= PREV */ +#line 1089 "sql.y" +{ yymsp[0].minor.yy694 = FILL_MODE_PREV; } +#line 7219 "sql.c" + break; + case 556: /* fill_mode ::= NULL */ +#line 1090 "sql.y" +{ yymsp[0].minor.yy694 = FILL_MODE_NULL; } +#line 7224 "sql.c" + break; + case 557: /* fill_mode ::= NULL_F */ +#line 1091 "sql.y" +{ yymsp[0].minor.yy694 = FILL_MODE_NULL_F; } +#line 7229 "sql.c" + break; + case 558: /* fill_mode ::= LINEAR */ +#line 1092 "sql.y" +{ yymsp[0].minor.yy694 = FILL_MODE_LINEAR; } +#line 7234 "sql.c" + break; + case 559: /* fill_mode ::= NEXT */ +#line 1093 "sql.y" +{ yymsp[0].minor.yy694 = FILL_MODE_NEXT; } +#line 7239 "sql.c" + break; + case 562: /* group_by_list ::= expr_or_subquery */ +#line 1102 "sql.y" +{ yylhsminor.yy56 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } +#line 7244 "sql.c" + yymsp[0].minor.yy56 = yylhsminor.yy56; + break; + case 563: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ +#line 1103 "sql.y" +{ yylhsminor.yy56 = addNodeToList(pCxt, yymsp[-2].minor.yy56, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy840))); } +#line 7250 "sql.c" + yymsp[-2].minor.yy56 = yylhsminor.yy56; + break; + case 567: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ +#line 1110 "sql.y" +{ yymsp[-5].minor.yy840 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy840), releaseRawExprNode(pCxt, yymsp[-1].minor.yy840)); } +#line 7256 "sql.c" + break; + case 568: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ +#line 1112 "sql.y" +{ yymsp[-3].minor.yy840 = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy840)); } +#line 7261 "sql.c" + break; + case 571: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ +#line 1119 "sql.y" +{ + yylhsminor.yy840 = addOrderByClause(pCxt, yymsp[-3].minor.yy840, yymsp[-2].minor.yy56); + yylhsminor.yy840 = addSlimitClause(pCxt, yylhsminor.yy840, yymsp[-1].minor.yy840); + yylhsminor.yy840 = addLimitClause(pCxt, yylhsminor.yy840, yymsp[0].minor.yy840); + } +#line 7270 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; + break; + case 574: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ +#line 1129 "sql.y" +{ yylhsminor.yy840 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy840, yymsp[0].minor.yy840); } +#line 7276 "sql.c" + yymsp[-3].minor.yy840 = yylhsminor.yy840; + break; + case 575: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ +#line 1131 "sql.y" +{ yylhsminor.yy840 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy840, yymsp[0].minor.yy840); } +#line 7282 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; + break; + case 583: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ + case 587: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==587); +#line 1145 "sql.y" +{ yymsp[-1].minor.yy840 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } +#line 7289 "sql.c" + break; + case 584: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 588: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==588); +#line 1146 "sql.y" +{ yymsp[-3].minor.yy840 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } +#line 7295 "sql.c" + break; + case 585: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 589: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==589); +#line 1147 "sql.y" +{ yymsp[-3].minor.yy840 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } +#line 7301 "sql.c" + break; + case 590: /* subquery ::= NK_LP query_expression NK_RP */ +#line 1155 "sql.y" +{ yylhsminor.yy840 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy840); } +#line 7306 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; + break; + case 595: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ +#line 1169 "sql.y" +{ yylhsminor.yy840 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy840), yymsp[-1].minor.yy82, yymsp[0].minor.yy521); } +#line 7312 "sql.c" + yymsp[-2].minor.yy840 = yylhsminor.yy840; + break; + case 596: /* ordering_specification_opt ::= */ +#line 1173 "sql.y" +{ yymsp[1].minor.yy82 = ORDER_ASC; } +#line 7318 "sql.c" + break; + case 597: /* ordering_specification_opt ::= ASC */ +#line 1174 "sql.y" +{ yymsp[0].minor.yy82 = ORDER_ASC; } +#line 7323 "sql.c" + break; + case 598: /* ordering_specification_opt ::= DESC */ +#line 1175 "sql.y" +{ yymsp[0].minor.yy82 = ORDER_DESC; } +#line 7328 "sql.c" + break; + case 599: /* null_ordering_opt ::= */ +#line 1179 "sql.y" +{ yymsp[1].minor.yy521 = NULL_ORDER_DEFAULT; } +#line 7333 "sql.c" + break; + case 600: /* null_ordering_opt ::= NULLS FIRST */ +#line 1180 "sql.y" +{ yymsp[-1].minor.yy521 = NULL_ORDER_FIRST; } +#line 7338 "sql.c" + break; + case 601: /* null_ordering_opt ::= NULLS LAST */ +#line 1181 "sql.y" +{ yymsp[-1].minor.yy521 = NULL_ORDER_LAST; } +#line 7343 "sql.c" break; default: break; @@ -6233,6 +7402,7 @@ static void yy_syntax_error( ParseCTX_FETCH #define TOKEN yyminor /************ Begin %syntax_error code ****************************************/ +#line 29 "sql.y" if (TSDB_CODE_SUCCESS == pCxt->errCode) { if(TOKEN.z) { @@ -6243,6 +7413,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 7416 "sql.c" /************ End %syntax_error code ******************************************/ ParseARG_STORE /* Suppress warning about unused %extra_argument variable */ ParseCTX_STORE @@ -6328,12 +7499,56 @@ void Parse( } #endif - do{ + while(1){ /* Exit by "break" */ + assert( yypParser->yytos>=yypParser->yystack ); assert( yyact==yypParser->yytos->stateno ); yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact); if( yyact >= YY_MIN_REDUCE ){ - yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor, - yyminor ParseCTX_PARAM); + unsigned int yyruleno = yyact - YY_MIN_REDUCE; /* Reduce by this rule */ +#ifndef NDEBUG + assert( yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ); + if( yyTraceFILE ){ + int yysize = yyRuleInfoNRhs[yyruleno]; + if( yysize ){ + fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n", + yyTracePrompt, + yyruleno, yyRuleName[yyruleno], + yyrulenoyytos[yysize].stateno); + }else{ + fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n", + yyTracePrompt, yyruleno, yyRuleName[yyruleno], + yyrulenoyytos - yypParser->yystack)>yypParser->yyhwm ){ + yypParser->yyhwm++; + assert( yypParser->yyhwm == + (int)(yypParser->yytos - yypParser->yystack)); + } +#endif +#if YYSTACKDEPTH>0 + if( yypParser->yytos>=yypParser->yystackEnd ){ + yyStackOverflow(yypParser); + break; + } +#else + if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){ + if( yyGrowStack(yypParser) ){ + yyStackOverflow(yypParser); + break; + } + } +#endif + } + yyact = yy_reduce(yypParser,yyruleno,yymajor,yyminor ParseCTX_PARAM); }else if( yyact <= YY_MAX_SHIFTREDUCE ){ yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor); #ifndef YYNOERRORRECOVERY @@ -6389,14 +7604,13 @@ void Parse( yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion); yymajor = YYNOCODE; }else{ - while( yypParser->yytos >= yypParser->yystack - && (yyact = yy_find_reduce_action( - yypParser->yytos->stateno, - YYERRORSYMBOL)) > YY_MAX_SHIFTREDUCE - ){ + while( yypParser->yytos > yypParser->yystack ){ + yyact = yy_find_reduce_action(yypParser->yytos->stateno, + YYERRORSYMBOL); + if( yyact<=YY_MAX_SHIFTREDUCE ) break; yy_pop_parser_stack(yypParser); } - if( yypParser->yytos < yypParser->yystack || yymajor==0 ){ + if( yypParser->yytos <= yypParser->yystack || yymajor==0 ){ yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); yy_parse_failed(yypParser); #ifndef YYNOERRORRECOVERY @@ -6446,7 +7660,7 @@ void Parse( break; #endif } - }while( yypParser->yytos>yypParser->yystack ); + } #ifndef NDEBUG if( yyTraceFILE ){ yyStackEntry *i; diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index 9345834ec0..92c797ec85 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -14,7 +14,7 @@ */ #include "planInt.h" - +#include "filter.h" #include "functionMgt.h" typedef struct SLogicPlanContext { @@ -344,6 +344,45 @@ static int32_t makeScanLogicNode(SLogicPlanContext* pCxt, SRealTableNode* pRealT static bool needScanDefaultCol(EScanType scanType) { return SCAN_TYPE_TABLE_COUNT != scanType; } +static EDealRes tagScanNodeHasTbnameFunc(SNode* pNode, void* pContext) { + if (QUERY_NODE_COLUMN == nodeType(pNode)) { + if (COLUMN_TYPE_TBNAME == ((SColumnNode*)pNode)->colType) { + *(bool*)pContext = true; + return DEAL_RES_END; + } + } + return DEAL_RES_CONTINUE; +} + +static bool tagScanNodeListHasTbname(SNodeList* pCols) { + bool hasTbname = false; + nodesWalkExprs(pCols, tagScanNodeHasTbnameFunc, &hasTbname); + return hasTbname; +} + +static bool tagScanNodeHasTbname(SNode* pKeys) { + bool hasTbname = false; + nodesWalkExpr(pKeys, tagScanNodeHasTbnameFunc, &hasTbname); + return hasTbname; +} + +static int32_t setTagScanOnlyMetaCtbIdx(SScanLogicNode* pScan) { + SNode* pCond = nodesCloneNode(pScan->node.pConditions); + SNode* pTagCond = NULL; + SNode* pTagIndexCond = NULL; + bool bOnlyMetaCtbIdx = false; + filterPartitionCond(&pCond, NULL, &pTagIndexCond, &pTagCond, NULL); + if (pTagIndexCond || tagScanNodeListHasTbname(pScan->pScanPseudoCols) || tagScanNodeHasTbname(pTagCond)) { + bOnlyMetaCtbIdx = false; + } else { + bOnlyMetaCtbIdx = true; + } + nodesDestroyNode(pCond); + nodesDestroyNode(pTagIndexCond); + nodesDestroyNode(pTagCond); + return TSDB_CODE_SUCCESS; +} + static int32_t createScanLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSelect, SRealTableNode* pRealTable, SLogicNode** pLogicNode) { SScanLogicNode* pScan = NULL; @@ -411,6 +450,10 @@ static int32_t createScanLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSelect code = createColumnByRewriteExprs(pScan->pScanPseudoCols, &pScan->node.pTargets); } + if (pSelect->tagScan) { + code = setTagScanOnlyMetaCtbIdx(pScan); + } + if (TSDB_CODE_SUCCESS == code) { *pLogicNode = (SLogicNode*)pScan; } else { From a6839b5a9faff843bab2337bab318e373c090c06 Mon Sep 17 00:00:00 2001 From: slzhou Date: Tue, 15 Aug 2023 15:20:06 +0800 Subject: [PATCH 03/21] fix: select tags and set tag scan execution mode --- source/libs/planner/src/planLogicCreater.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index 92c797ec85..93055c1f15 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -366,7 +366,7 @@ static bool tagScanNodeHasTbname(SNode* pKeys) { return hasTbname; } -static int32_t setTagScanOnlyMetaCtbIdx(SScanLogicNode* pScan) { +static int32_t setTagScanExecutionMode(SScanLogicNode* pScan) { SNode* pCond = nodesCloneNode(pScan->node.pConditions); SNode* pTagCond = NULL; SNode* pTagIndexCond = NULL; @@ -451,7 +451,7 @@ static int32_t createScanLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSelect } if (pSelect->tagScan) { - code = setTagScanOnlyMetaCtbIdx(pScan); + code = setTagScanExecutionMode(pScan); } if (TSDB_CODE_SUCCESS == code) { From 239a79d405565f08a04c5239e22932b41bdffd2f Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Tue, 15 Aug 2023 10:10:06 +0800 Subject: [PATCH 04/21] enh: add some vnode info in SStatusReq --- include/common/tmsg.h | 7 ++++-- include/libs/sync/sync.h | 1 + source/common/src/tmsg.c | 32 +++++++++++++++++++++---- source/dnode/vnode/src/vnd/vnodeQuery.c | 3 +++ source/libs/sync/src/syncMain.c | 1 + 5 files changed, 37 insertions(+), 7 deletions(-) diff --git a/include/common/tmsg.h b/include/common/tmsg.h index 01923d2b30..ea3dca06f3 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -1163,6 +1163,9 @@ typedef struct { int32_t vgId; int8_t syncState; int8_t syncRestore; + int64_t syncTerm; + int64_t roleTimeMs; + int64_t startTimeMs; int8_t syncCanRead; int64_t cacheUsage; int64_t numOfTables; @@ -1179,9 +1182,9 @@ typedef struct { } SVnodeLoad; typedef struct { - int8_t syncState; - int8_t syncRestore; + int8_t syncState; int64_t syncTerm; + int8_t syncRestore; int64_t roleTimeMs; } SMnodeLoad; diff --git a/include/libs/sync/sync.h b/include/libs/sync/sync.h index 88ccf562c7..8844145652 100644 --- a/include/libs/sync/sync.h +++ b/include/libs/sync/sync.h @@ -241,6 +241,7 @@ typedef struct SSyncState { bool canRead; SyncTerm term; int64_t roleTimeMs; + int64_t startTimeMs; } SSyncState; int32_t syncInit(); diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index ef0006e7ab..7e69184a00 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -1079,8 +1079,8 @@ int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tEncodeI64(&encoder, pload->pointsWritten) < 0) return -1; if (tEncodeI32(&encoder, pload->numOfCachedTables) < 0) return -1; if (tEncodeI32(&encoder, reserved) < 0) return -1; - if (tEncodeI64(&encoder, reserved) < 0) return -1; - if (tEncodeI64(&encoder, reserved) < 0) return -1; + if (tEncodeI64(&encoder, pload->roleTimeMs) < 0) return -1; + if (tEncodeI64(&encoder, pload->startTimeMs) < 0) return -1; } // mnode loads @@ -1104,6 +1104,16 @@ int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tEncodeI64(&encoder, pReq->mload.syncTerm) < 0) return -1; if (tEncodeI64(&encoder, pReq->mload.roleTimeMs) < 0) return -1; if (tEncodeI8(&encoder, pReq->clusterCfg.ttlChangeOnWrite) < 0) return -1; + + // vnode extra + for (int32_t i = 0; i < vlen; ++i) { + SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i); + int64_t reserved = 0; + if (tEncodeI64(&encoder, pload->syncTerm) < 0) return -1; + if (tEncodeI64(&encoder, reserved) < 0) return -1; + if (tEncodeI64(&encoder, reserved) < 0) return -1; + if (tEncodeI64(&encoder, reserved) < 0) return -1; + } tEndEncode(&encoder); int32_t tlen = encoder.pos; @@ -1148,7 +1158,7 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { for (int32_t i = 0; i < vlen; ++i) { SVnodeLoad vload = {0}; - int64_t reserved64 = 0; + vload.syncTerm = -1; int32_t reserved32 = 0; if (tDecodeI32(&decoder, &vload.vgId) < 0) return -1; if (tDecodeI8(&decoder, &vload.syncState) < 0) return -1; @@ -1162,14 +1172,15 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tDecodeI64(&decoder, &vload.pointsWritten) < 0) return -1; if (tDecodeI32(&decoder, &vload.numOfCachedTables) < 0) return -1; if (tDecodeI32(&decoder, (int32_t *)&reserved32) < 0) return -1; - if (tDecodeI64(&decoder, &reserved64) < 0) return -1; - if (tDecodeI64(&decoder, &reserved64) < 0) return -1; + if (tDecodeI64(&decoder, &vload.roleTimeMs) < 0) return -1; + if (tDecodeI64(&decoder, &vload.startTimeMs) < 0) return -1; if (taosArrayPush(pReq->pVloads, &vload) == NULL) { terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } + // mnode loads if (tDecodeI8(&decoder, &pReq->mload.syncState) < 0) return -1; if (tDecodeI8(&decoder, &pReq->mload.syncRestore) < 0) return -1; @@ -1200,6 +1211,17 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tDecodeI8(&decoder, &pReq->clusterCfg.ttlChangeOnWrite) < 0) return -1; } + // vnode extra + if (!tDecodeIsEnd(&decoder)) { + for (int32_t i = 0; i < vlen; ++i) { + SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i); + int64_t reserved = 0; + if (tDecodeI64(&decoder, &pLoad->syncTerm) < 0) return -1; + if (tDecodeI64(&decoder, &reserved) < 0) return -1; + if (tDecodeI64(&decoder, &reserved) < 0) return -1; + if (tDecodeI64(&decoder, &reserved) < 0) return -1; + } + } tEndDecode(&decoder); tDecoderClear(&decoder); return 0; diff --git a/source/dnode/vnode/src/vnd/vnodeQuery.c b/source/dnode/vnode/src/vnd/vnodeQuery.c index 51f4cee40c..ebc2e38a5a 100644 --- a/source/dnode/vnode/src/vnd/vnodeQuery.c +++ b/source/dnode/vnode/src/vnd/vnodeQuery.c @@ -380,6 +380,9 @@ int32_t vnodeGetLoad(SVnode *pVnode, SVnodeLoad *pLoad) { pLoad->vgId = TD_VID(pVnode); pLoad->syncState = state.state; pLoad->syncRestore = state.restored; + pLoad->syncTerm = state.term; + pLoad->roleTimeMs = state.roleTimeMs; + pLoad->startTimeMs = state.startTimeMs; pLoad->syncCanRead = state.canRead; pLoad->cacheUsage = tsdbCacheGetUsage(pVnode); pLoad->numOfCachedTables = tsdbCacheGetElems(pVnode); diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index f1e3c35a49..9108090b87 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -509,6 +509,7 @@ SSyncState syncGetState(int64_t rid) { if (pSyncNode != NULL) { state.state = pSyncNode->state; state.roleTimeMs = pSyncNode->roleTimeMs; + state.startTimeMs = pSyncNode->startTime; state.restored = pSyncNode->restoreFinish; if (pSyncNode->vgId != 1) { state.canRead = syncNodeIsReadyForRead(pSyncNode); From dbdfee4c4137b44dca4f05898e2e68a11fd70677 Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Tue, 15 Aug 2023 17:10:54 +0800 Subject: [PATCH 05/21] enh: update SVnodeGid of vnode info in mndProcessStatusReq --- source/dnode/mnode/impl/inc/mndDef.h | 3 +++ source/dnode/mnode/impl/src/mndDnode.c | 17 ++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/source/dnode/mnode/impl/inc/mndDef.h b/source/dnode/mnode/impl/inc/mndDef.h index c83a40c25d..5364267567 100644 --- a/source/dnode/mnode/impl/inc/mndDef.h +++ b/source/dnode/mnode/impl/inc/mndDef.h @@ -347,8 +347,11 @@ typedef struct { typedef struct { int32_t dnodeId; ESyncState syncState; + int64_t syncTerm; bool syncRestore; bool syncCanRead; + int64_t roleTimeMs; + int64_t startTimeMs; ESyncRole nodeRole; } SVnodeGid; diff --git a/source/dnode/mnode/impl/src/mndDnode.c b/source/dnode/mnode/impl/src/mndDnode.c index 234e81a670..a52a788304 100644 --- a/source/dnode/mnode/impl/src/mndDnode.c +++ b/source/dnode/mnode/impl/src/mndDnode.c @@ -500,17 +500,22 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { for (int32_t vg = 0; vg < pVgroup->replica; ++vg) { SVnodeGid *pGid = &pVgroup->vnodeGid[vg]; if (pGid->dnodeId == statusReq.dnodeId) { - if (pGid->syncState != pVload->syncState || pGid->syncRestore != pVload->syncRestore || - pGid->syncCanRead != pVload->syncCanRead) { + roleChanged = + pGid->syncState != pVload->syncState || (pVload->syncTerm != -1 && pGid->syncTerm != pVload->syncTerm); + if (reboot || roleChanged || pGid->syncRestore != pVload->syncRestore || pGid->syncCanRead != pVload->syncCanRead) { mInfo( "vgId:%d, state changed by status msg, old state:%s restored:%d canRead:%d new state:%s restored:%d " "canRead:%d, dnode:%d", pVgroup->vgId, syncStr(pGid->syncState), pGid->syncRestore, pGid->syncCanRead, syncStr(pVload->syncState), pVload->syncRestore, pVload->syncCanRead, pDnode->id); pGid->syncState = pVload->syncState; + pGid->syncTerm = pVload->syncTerm; pGid->syncRestore = pVload->syncRestore; pGid->syncCanRead = pVload->syncCanRead; - roleChanged = true; + pGid->startTimeMs = (pVload->startTimeMs != 0) ? pVload->startTimeMs : statusReq.rebootTime; + } + if (roleChanged) { + pGid->roleTimeMs = (pVload->roleTimeMs != 0) ? pVload->roleTimeMs : taosGetTimestampMs(); } break; } @@ -533,17 +538,15 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { if (pObj != NULL) { bool roleChanged = pObj->syncState != statusReq.mload.syncState || (statusReq.mload.syncTerm != -1 && pObj->syncTerm != statusReq.mload.syncTerm); - bool restoreChanged = pObj->syncRestore != statusReq.mload.syncRestore; - if (roleChanged || restoreChanged) { + if (roleChanged || pObj->syncRestore != statusReq.mload.syncRestore) { mInfo("dnode:%d, mnode syncState from %s to %s, restoreState from %d to %d, syncTerm from %" PRId64 " to %" PRId64, pObj->id, syncStr(pObj->syncState), syncStr(statusReq.mload.syncState), pObj->syncRestore, statusReq.mload.syncRestore, pObj->syncTerm, statusReq.mload.syncTerm); pObj->syncState = statusReq.mload.syncState; - pObj->syncRestore = statusReq.mload.syncRestore; pObj->syncTerm = statusReq.mload.syncTerm; + pObj->syncRestore = statusReq.mload.syncRestore; } - if (roleChanged) { pObj->roleTimeMs = (statusReq.mload.roleTimeMs != 0) ? statusReq.mload.roleTimeMs : taosGetTimestampMs(); } From 94e0d97aa2c534fca88ce61a75b94759d8fb946e Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Tue, 15 Aug 2023 19:39:13 +0800 Subject: [PATCH 06/21] enh: update pDb stateTs on stateChanged --- source/dnode/mnode/impl/src/mndDnode.c | 7 ++++--- source/dnode/mnode/impl/src/mndMain.c | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndDnode.c b/source/dnode/mnode/impl/src/mndDnode.c index a52a788304..7fbfdfbfb1 100644 --- a/source/dnode/mnode/impl/src/mndDnode.c +++ b/source/dnode/mnode/impl/src/mndDnode.c @@ -496,11 +496,11 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { pVgroup->compStorage = pVload->compStorage; pVgroup->pointsWritten = pVload->pointsWritten; } - bool roleChanged = false; + bool stateChanged = false; for (int32_t vg = 0; vg < pVgroup->replica; ++vg) { SVnodeGid *pGid = &pVgroup->vnodeGid[vg]; if (pGid->dnodeId == statusReq.dnodeId) { - roleChanged = + bool roleChanged = pGid->syncState != pVload->syncState || (pVload->syncTerm != -1 && pGid->syncTerm != pVload->syncTerm); if (reboot || roleChanged || pGid->syncRestore != pVload->syncRestore || pGid->syncCanRead != pVload->syncCanRead) { mInfo( @@ -513,6 +513,7 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { pGid->syncRestore = pVload->syncRestore; pGid->syncCanRead = pVload->syncCanRead; pGid->startTimeMs = (pVload->startTimeMs != 0) ? pVload->startTimeMs : statusReq.rebootTime; + stateChanged = true; } if (roleChanged) { pGid->roleTimeMs = (pVload->roleTimeMs != 0) ? pVload->roleTimeMs : taosGetTimestampMs(); @@ -520,7 +521,7 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { break; } } - if (roleChanged) { + if (stateChanged) { SDbObj *pDb = mndAcquireDb(pMnode, pVgroup->dbName); if (pDb != NULL && pDb->stateTs != curMs) { mInfo("db:%s, stateTs changed by status msg, old stateTs:%" PRId64 " new stateTs:%" PRId64, pDb->name, diff --git a/source/dnode/mnode/impl/src/mndMain.c b/source/dnode/mnode/impl/src/mndMain.c index 1071a6cf6e..b28ad207ea 100644 --- a/source/dnode/mnode/impl/src/mndMain.c +++ b/source/dnode/mnode/impl/src/mndMain.c @@ -185,7 +185,7 @@ static void mndSetVgroupOffline(SMnode *pMnode, int32_t dnodeId, int64_t curMs) pIter = sdbFetch(pSdb, SDB_VGROUP, pIter, (void **)&pVgroup); if (pIter == NULL) break; - bool roleChanged = false; + bool stateChanged = false; for (int32_t vg = 0; vg < pVgroup->replica; ++vg) { SVnodeGid *pGid = &pVgroup->vnodeGid[vg]; if (pGid->dnodeId == dnodeId) { @@ -197,13 +197,14 @@ static void mndSetVgroupOffline(SMnode *pMnode, int32_t dnodeId, int64_t curMs) pGid->syncState = TAOS_SYNC_STATE_OFFLINE; pGid->syncRestore = 0; pGid->syncCanRead = 0; - roleChanged = true; + pGid->startTimeMs = 0; + stateChanged = true; } break; } } - if (roleChanged) { + if (stateChanged) { SDbObj *pDb = mndAcquireDb(pMnode, pVgroup->dbName); if (pDb != NULL && pDb->stateTs != curMs) { mInfo("db:%s, stateTs changed by offline check, old newTs:%" PRId64 " newTs:%" PRId64, pDb->name, pDb->stateTs, From ca246071621b3e0c9abc521cfe9c5741bc36e75d Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Tue, 15 Aug 2023 22:13:20 +0800 Subject: [PATCH 07/21] fix: pass plannertest --- source/libs/planner/src/planLogicCreater.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index 93055c1f15..33ffb4af7a 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -367,6 +367,9 @@ static bool tagScanNodeHasTbname(SNode* pKeys) { } static int32_t setTagScanExecutionMode(SScanLogicNode* pScan) { + if (pScan->node.pConditions == NULL) { + return TSDB_CODE_SUCCESS; + } SNode* pCond = nodesCloneNode(pScan->node.pConditions); SNode* pTagCond = NULL; SNode* pTagIndexCond = NULL; From b21c177ce2e99751326b1f21aa9919d011bc9b1f Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Tue, 15 Aug 2023 22:31:23 +0800 Subject: [PATCH 08/21] fix: add only meta ctb idx --- source/libs/planner/src/planLogicCreater.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index 33ffb4af7a..7c97ec81a0 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -367,15 +367,24 @@ static bool tagScanNodeHasTbname(SNode* pKeys) { } static int32_t setTagScanExecutionMode(SScanLogicNode* pScan) { - if (pScan->node.pConditions == NULL) { + //TODO: set pScan->onlyMetaCtbIdx + bool bOnlyMetaCtbIdx = false; + + if (tagScanNodeListHasTbname(pScan->pScanPseudoCols)) { + bOnlyMetaCtbIdx = false; return TSDB_CODE_SUCCESS; } + + if (pScan->node.pConditions == NULL) { + bOnlyMetaCtbIdx = true; + return TSDB_CODE_SUCCESS; + } + SNode* pCond = nodesCloneNode(pScan->node.pConditions); SNode* pTagCond = NULL; SNode* pTagIndexCond = NULL; - bool bOnlyMetaCtbIdx = false; filterPartitionCond(&pCond, NULL, &pTagIndexCond, &pTagCond, NULL); - if (pTagIndexCond || tagScanNodeListHasTbname(pScan->pScanPseudoCols) || tagScanNodeHasTbname(pTagCond)) { + if (pTagIndexCond || tagScanNodeHasTbname(pTagCond)) { bOnlyMetaCtbIdx = false; } else { bOnlyMetaCtbIdx = true; From 33cb9dce780fd71a039a8b28b2575fc247f0e934 Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Wed, 16 Aug 2023 09:57:26 +0800 Subject: [PATCH 09/21] enh: set roleTimeMs default as statusReq.rebootTime for both of vnodes and mnodes --- source/dnode/mnode/impl/src/mndDnode.c | 28 ++++++++++++++++---------- source/dnode/mnode/impl/src/mndMnode.c | 11 ++-------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndDnode.c b/source/dnode/mnode/impl/src/mndDnode.c index 7fbfdfbfb1..25e7ff0158 100644 --- a/source/dnode/mnode/impl/src/mndDnode.c +++ b/source/dnode/mnode/impl/src/mndDnode.c @@ -500,8 +500,15 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { for (int32_t vg = 0; vg < pVgroup->replica; ++vg) { SVnodeGid *pGid = &pVgroup->vnodeGid[vg]; if (pGid->dnodeId == statusReq.dnodeId) { - bool roleChanged = - pGid->syncState != pVload->syncState || (pVload->syncTerm != -1 && pGid->syncTerm != pVload->syncTerm); + if (pVload->startTimeMs == 0) { + pVload->startTimeMs = statusReq.rebootTime; + } + if (pVload->roleTimeMs == 0) { + pVload->roleTimeMs = statusReq.rebootTime; + } + bool roleChanged = pGid->syncState != pVload->syncState || + (pVload->syncTerm != -1 && pGid->syncTerm != pVload->syncTerm) || + pGid->roleTimeMs != pVload->roleTimeMs; if (reboot || roleChanged || pGid->syncRestore != pVload->syncRestore || pGid->syncCanRead != pVload->syncCanRead) { mInfo( "vgId:%d, state changed by status msg, old state:%s restored:%d canRead:%d new state:%s restored:%d " @@ -512,12 +519,10 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { pGid->syncTerm = pVload->syncTerm; pGid->syncRestore = pVload->syncRestore; pGid->syncCanRead = pVload->syncCanRead; - pGid->startTimeMs = (pVload->startTimeMs != 0) ? pVload->startTimeMs : statusReq.rebootTime; + pGid->startTimeMs = pVload->startTimeMs; + pGid->roleTimeMs = pVload->roleTimeMs; stateChanged = true; } - if (roleChanged) { - pGid->roleTimeMs = (pVload->roleTimeMs != 0) ? pVload->roleTimeMs : taosGetTimestampMs(); - } break; } } @@ -537,8 +542,12 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { SMnodeObj *pObj = mndAcquireMnode(pMnode, pDnode->id); if (pObj != NULL) { + if (statusReq.mload.roleTimeMs == 0) { + statusReq.mload.roleTimeMs = statusReq.rebootTime; + } bool roleChanged = pObj->syncState != statusReq.mload.syncState || - (statusReq.mload.syncTerm != -1 && pObj->syncTerm != statusReq.mload.syncTerm); + (statusReq.mload.syncTerm != -1 && pObj->syncTerm != statusReq.mload.syncTerm) || + pObj->roleTimeMs != statusReq.mload.roleTimeMs; if (roleChanged || pObj->syncRestore != statusReq.mload.syncRestore) { mInfo("dnode:%d, mnode syncState from %s to %s, restoreState from %d to %d, syncTerm from %" PRId64 " to %" PRId64, @@ -547,11 +556,8 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { pObj->syncState = statusReq.mload.syncState; pObj->syncTerm = statusReq.mload.syncTerm; pObj->syncRestore = statusReq.mload.syncRestore; + pObj->roleTimeMs = statusReq.mload.roleTimeMs; } - if (roleChanged) { - pObj->roleTimeMs = (statusReq.mload.roleTimeMs != 0) ? statusReq.mload.roleTimeMs : taosGetTimestampMs(); - } - mndReleaseMnode(pMnode, pObj); } diff --git a/source/dnode/mnode/impl/src/mndMnode.c b/source/dnode/mnode/impl/src/mndMnode.c index 4ee2bc159b..8912d15553 100644 --- a/source/dnode/mnode/impl/src/mndMnode.c +++ b/source/dnode/mnode/impl/src/mndMnode.c @@ -859,15 +859,8 @@ static int32_t mndRetrieveMnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB colDataSetVal(pColInfo, numOfRows, (const char *)&pObj->createdTime, false); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - if (pObj->syncTerm != pSelfObj->syncTerm || !isDnodeOnline) { - // state of old term / no status report => use dummyTimeMs - if (pObj->syncTerm > pSelfObj->syncTerm) { - mError("mnode:%d has a newer term:%" PRId64 " than me:%" PRId64, pObj->id, pObj->syncTerm, pSelfObj->syncTerm); - } - colDataSetVal(pColInfo, numOfRows, (const char *)&dummyTimeMs, false); - } else { - colDataSetVal(pColInfo, numOfRows, (const char *)&pObj->roleTimeMs, false); - } + colDataSetVal(pColInfo, numOfRows, (isDnodeOnline) ? (const char *)&pObj->roleTimeMs : (const char *)&dummyTimeMs, + false); numOfRows++; sdbRelease(pSdb, pObj); From 8b26ea7a55ee6518a263d9cf435ff2475e9f6502 Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Wed, 16 Aug 2023 13:31:43 +0800 Subject: [PATCH 10/21] enh: add command show vnodes on dnode --- source/libs/parser/inc/sql.y | 4 +- source/libs/parser/src/sql.c | 2257 ++++++++++++++++++++++++++-------- 2 files changed, 1721 insertions(+), 540 deletions(-) diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 6c3f589159..5e7d0fb8ac 100755 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -475,8 +475,8 @@ cmd ::= SHOW TAGS FROM table_name_cond(A) from_db_opt(B). cmd ::= SHOW TAGS FROM db_name(B) NK_DOT table_name(A). { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &B), createIdentifierValueNode(pCxt, &A), OP_TYPE_EQUAL); } cmd ::= SHOW TABLE TAGS tag_list_opt(C) FROM table_name_cond(A) from_db_opt(B). { pCxt->pRootNode = createShowTableTagsStmt(pCxt, A, B, C); } cmd ::= SHOW TABLE TAGS tag_list_opt(C) FROM db_name(B) NK_DOT table_name(A). { pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &A), createIdentifierValueNode(pCxt, &B), C); } -cmd ::= SHOW VNODES NK_INTEGER(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &A), NULL); } -cmd ::= SHOW VNODES NK_STRING(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &A)); } +cmd ::= SHOW VNODES ON DNODE NK_INTEGER(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &A), NULL); } +cmd ::= SHOW VNODES ON DNODE NK_STRING(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &A)); } // show alive cmd ::= SHOW db_name_cond_opt(A) ALIVE. { pCxt->pRootNode = createShowAliveStmt(pCxt, A, QUERY_NODE_SHOW_DB_ALIVE_STMT); } cmd ::= SHOW CLUSTER ALIVE. { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index a912fb4e71..34f459222c 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -1,3 +1,5 @@ +/* This file is automatically generated by Lemon from input grammar +** source file "sql.y". */ /* ** 2000-05-29 ** @@ -22,9 +24,8 @@ ** The following is the concatenation of all %include directives from the ** input grammar file: */ -#include -#include /************ Begin %include sections from the grammar ************************/ +#line 11 "sql.y" #include #include @@ -41,12 +42,350 @@ #include "parAst.h" #define YYSTACKDEPTH 0 +#line 46 "sql.c" /**************** End of %include directives **********************************/ -/* These constants specify the various numeric values for terminal symbols -** in a format understandable to "makeheaders". This section is blank unless -** "lemon" is run with the "-m" command-line option. -***************** Begin makeheaders token definitions *************************/ -/**************** End makeheaders token definitions ***************************/ +/* These constants specify the various numeric values for terminal symbols. +***************** Begin token definitions *************************************/ +#ifndef TK_OR +#define TK_OR 1 +#define TK_AND 2 +#define TK_UNION 3 +#define TK_ALL 4 +#define TK_MINUS 5 +#define TK_EXCEPT 6 +#define TK_INTERSECT 7 +#define TK_NK_BITAND 8 +#define TK_NK_BITOR 9 +#define TK_NK_LSHIFT 10 +#define TK_NK_RSHIFT 11 +#define TK_NK_PLUS 12 +#define TK_NK_MINUS 13 +#define TK_NK_STAR 14 +#define TK_NK_SLASH 15 +#define TK_NK_REM 16 +#define TK_NK_CONCAT 17 +#define TK_CREATE 18 +#define TK_ACCOUNT 19 +#define TK_NK_ID 20 +#define TK_PASS 21 +#define TK_NK_STRING 22 +#define TK_ALTER 23 +#define TK_PPS 24 +#define TK_TSERIES 25 +#define TK_STORAGE 26 +#define TK_STREAMS 27 +#define TK_QTIME 28 +#define TK_DBS 29 +#define TK_USERS 30 +#define TK_CONNS 31 +#define TK_STATE 32 +#define TK_USER 33 +#define TK_ENABLE 34 +#define TK_NK_INTEGER 35 +#define TK_SYSINFO 36 +#define TK_DROP 37 +#define TK_GRANT 38 +#define TK_ON 39 +#define TK_TO 40 +#define TK_REVOKE 41 +#define TK_FROM 42 +#define TK_SUBSCRIBE 43 +#define TK_NK_COMMA 44 +#define TK_READ 45 +#define TK_WRITE 46 +#define TK_NK_DOT 47 +#define TK_WITH 48 +#define TK_DNODE 49 +#define TK_PORT 50 +#define TK_DNODES 51 +#define TK_RESTORE 52 +#define TK_NK_IPTOKEN 53 +#define TK_FORCE 54 +#define TK_UNSAFE 55 +#define TK_LOCAL 56 +#define TK_QNODE 57 +#define TK_BNODE 58 +#define TK_SNODE 59 +#define TK_MNODE 60 +#define TK_VNODE 61 +#define TK_DATABASE 62 +#define TK_USE 63 +#define TK_FLUSH 64 +#define TK_TRIM 65 +#define TK_COMPACT 66 +#define TK_IF 67 +#define TK_NOT 68 +#define TK_EXISTS 69 +#define TK_BUFFER 70 +#define TK_CACHEMODEL 71 +#define TK_CACHESIZE 72 +#define TK_COMP 73 +#define TK_DURATION 74 +#define TK_NK_VARIABLE 75 +#define TK_MAXROWS 76 +#define TK_MINROWS 77 +#define TK_KEEP 78 +#define TK_PAGES 79 +#define TK_PAGESIZE 80 +#define TK_TSDB_PAGESIZE 81 +#define TK_PRECISION 82 +#define TK_REPLICA 83 +#define TK_VGROUPS 84 +#define TK_SINGLE_STABLE 85 +#define TK_RETENTIONS 86 +#define TK_SCHEMALESS 87 +#define TK_WAL_LEVEL 88 +#define TK_WAL_FSYNC_PERIOD 89 +#define TK_WAL_RETENTION_PERIOD 90 +#define TK_WAL_RETENTION_SIZE 91 +#define TK_WAL_ROLL_PERIOD 92 +#define TK_WAL_SEGMENT_SIZE 93 +#define TK_STT_TRIGGER 94 +#define TK_TABLE_PREFIX 95 +#define TK_TABLE_SUFFIX 96 +#define TK_NK_COLON 97 +#define TK_MAX_SPEED 98 +#define TK_START 99 +#define TK_TIMESTAMP 100 +#define TK_END 101 +#define TK_TABLE 102 +#define TK_NK_LP 103 +#define TK_NK_RP 104 +#define TK_STABLE 105 +#define TK_ADD 106 +#define TK_COLUMN 107 +#define TK_MODIFY 108 +#define TK_RENAME 109 +#define TK_TAG 110 +#define TK_SET 111 +#define TK_NK_EQ 112 +#define TK_USING 113 +#define TK_TAGS 114 +#define TK_BOOL 115 +#define TK_TINYINT 116 +#define TK_SMALLINT 117 +#define TK_INT 118 +#define TK_INTEGER 119 +#define TK_BIGINT 120 +#define TK_FLOAT 121 +#define TK_DOUBLE 122 +#define TK_BINARY 123 +#define TK_NCHAR 124 +#define TK_UNSIGNED 125 +#define TK_JSON 126 +#define TK_VARCHAR 127 +#define TK_MEDIUMBLOB 128 +#define TK_BLOB 129 +#define TK_VARBINARY 130 +#define TK_GEOMETRY 131 +#define TK_DECIMAL 132 +#define TK_COMMENT 133 +#define TK_MAX_DELAY 134 +#define TK_WATERMARK 135 +#define TK_ROLLUP 136 +#define TK_TTL 137 +#define TK_SMA 138 +#define TK_DELETE_MARK 139 +#define TK_FIRST 140 +#define TK_LAST 141 +#define TK_SHOW 142 +#define TK_PRIVILEGES 143 +#define TK_DATABASES 144 +#define TK_TABLES 145 +#define TK_STABLES 146 +#define TK_MNODES 147 +#define TK_QNODES 148 +#define TK_FUNCTIONS 149 +#define TK_INDEXES 150 +#define TK_ACCOUNTS 151 +#define TK_APPS 152 +#define TK_CONNECTIONS 153 +#define TK_LICENCES 154 +#define TK_GRANTS 155 +#define TK_QUERIES 156 +#define TK_SCORES 157 +#define TK_TOPICS 158 +#define TK_VARIABLES 159 +#define TK_CLUSTER 160 +#define TK_BNODES 161 +#define TK_SNODES 162 +#define TK_TRANSACTIONS 163 +#define TK_DISTRIBUTED 164 +#define TK_CONSUMERS 165 +#define TK_SUBSCRIPTIONS 166 +#define TK_VNODES 167 +#define TK_ALIVE 168 +#define TK_LIKE 169 +#define TK_TBNAME 170 +#define TK_QTAGS 171 +#define TK_AS 172 +#define TK_INDEX 173 +#define TK_FUNCTION 174 +#define TK_INTERVAL 175 +#define TK_COUNT 176 +#define TK_LAST_ROW 177 +#define TK_META 178 +#define TK_ONLY 179 +#define TK_TOPIC 180 +#define TK_CONSUMER 181 +#define TK_GROUP 182 +#define TK_DESC 183 +#define TK_DESCRIBE 184 +#define TK_RESET 185 +#define TK_QUERY 186 +#define TK_CACHE 187 +#define TK_EXPLAIN 188 +#define TK_ANALYZE 189 +#define TK_VERBOSE 190 +#define TK_NK_BOOL 191 +#define TK_RATIO 192 +#define TK_NK_FLOAT 193 +#define TK_OUTPUTTYPE 194 +#define TK_AGGREGATE 195 +#define TK_BUFSIZE 196 +#define TK_LANGUAGE 197 +#define TK_REPLACE 198 +#define TK_STREAM 199 +#define TK_INTO 200 +#define TK_PAUSE 201 +#define TK_RESUME 202 +#define TK_TRIGGER 203 +#define TK_AT_ONCE 204 +#define TK_WINDOW_CLOSE 205 +#define TK_IGNORE 206 +#define TK_EXPIRED 207 +#define TK_FILL_HISTORY 208 +#define TK_UPDATE 209 +#define TK_SUBTABLE 210 +#define TK_UNTREATED 211 +#define TK_KILL 212 +#define TK_CONNECTION 213 +#define TK_TRANSACTION 214 +#define TK_BALANCE 215 +#define TK_VGROUP 216 +#define TK_LEADER 217 +#define TK_MERGE 218 +#define TK_REDISTRIBUTE 219 +#define TK_SPLIT 220 +#define TK_DELETE 221 +#define TK_INSERT 222 +#define TK_NULL 223 +#define TK_NK_QUESTION 224 +#define TK_NK_ARROW 225 +#define TK_ROWTS 226 +#define TK_QSTART 227 +#define TK_QEND 228 +#define TK_QDURATION 229 +#define TK_WSTART 230 +#define TK_WEND 231 +#define TK_WDURATION 232 +#define TK_IROWTS 233 +#define TK_ISFILLED 234 +#define TK_CAST 235 +#define TK_NOW 236 +#define TK_TODAY 237 +#define TK_TIMEZONE 238 +#define TK_CLIENT_VERSION 239 +#define TK_SERVER_VERSION 240 +#define TK_SERVER_STATUS 241 +#define TK_CURRENT_USER 242 +#define TK_CASE 243 +#define TK_WHEN 244 +#define TK_THEN 245 +#define TK_ELSE 246 +#define TK_BETWEEN 247 +#define TK_IS 248 +#define TK_NK_LT 249 +#define TK_NK_GT 250 +#define TK_NK_LE 251 +#define TK_NK_GE 252 +#define TK_NK_NE 253 +#define TK_MATCH 254 +#define TK_NMATCH 255 +#define TK_CONTAINS 256 +#define TK_IN 257 +#define TK_JOIN 258 +#define TK_INNER 259 +#define TK_SELECT 260 +#define TK_DISTINCT 261 +#define TK_WHERE 262 +#define TK_PARTITION 263 +#define TK_BY 264 +#define TK_SESSION 265 +#define TK_STATE_WINDOW 266 +#define TK_EVENT_WINDOW 267 +#define TK_SLIDING 268 +#define TK_FILL 269 +#define TK_VALUE 270 +#define TK_VALUE_F 271 +#define TK_NONE 272 +#define TK_PREV 273 +#define TK_NULL_F 274 +#define TK_LINEAR 275 +#define TK_NEXT 276 +#define TK_HAVING 277 +#define TK_RANGE 278 +#define TK_EVERY 279 +#define TK_ORDER 280 +#define TK_SLIMIT 281 +#define TK_SOFFSET 282 +#define TK_LIMIT 283 +#define TK_OFFSET 284 +#define TK_ASC 285 +#define TK_NULLS 286 +#define TK_ABORT 287 +#define TK_AFTER 288 +#define TK_ATTACH 289 +#define TK_BEFORE 290 +#define TK_BEGIN 291 +#define TK_BITAND 292 +#define TK_BITNOT 293 +#define TK_BITOR 294 +#define TK_BLOCKS 295 +#define TK_CHANGE 296 +#define TK_COMMA 297 +#define TK_CONCAT 298 +#define TK_CONFLICT 299 +#define TK_COPY 300 +#define TK_DEFERRED 301 +#define TK_DELIMITERS 302 +#define TK_DETACH 303 +#define TK_DIVIDE 304 +#define TK_DOT 305 +#define TK_EACH 306 +#define TK_FAIL 307 +#define TK_FILE 308 +#define TK_FOR 309 +#define TK_GLOB 310 +#define TK_ID 311 +#define TK_IMMEDIATE 312 +#define TK_IMPORT 313 +#define TK_INITIALLY 314 +#define TK_INSTEAD 315 +#define TK_ISNULL 316 +#define TK_KEY 317 +#define TK_MODULES 318 +#define TK_NK_BITNOT 319 +#define TK_NK_SEMI 320 +#define TK_NOTNULL 321 +#define TK_OF 322 +#define TK_PLUS 323 +#define TK_PRIVILEGE 324 +#define TK_RAISE 325 +#define TK_RESTRICT 326 +#define TK_ROW 327 +#define TK_SEMI 328 +#define TK_STAR 329 +#define TK_STATEMENT 330 +#define TK_STRICT 331 +#define TK_STRING 332 +#define TK_TIMES 333 +#define TK_VALUES 334 +#define TK_VARIABLE 335 +#define TK_VIEW 336 +#define TK_WAL 337 +#endif +/**************** End token definitions ***************************************/ /* The next sections is a series of control #defines. ** various aspects of the generated parser. @@ -140,18 +479,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 800 +#define YYNSTATE 802 #define YYNRULE 600 #define YYNRULE_WITH_ACTION 600 #define YYNTOKEN 338 -#define YY_MAX_SHIFT 799 -#define YY_MIN_SHIFTREDUCE 1180 -#define YY_MAX_SHIFTREDUCE 1779 -#define YY_ERROR_ACTION 1780 -#define YY_ACCEPT_ACTION 1781 -#define YY_NO_ACTION 1782 -#define YY_MIN_REDUCE 1783 -#define YY_MAX_REDUCE 2382 +#define YY_MAX_SHIFT 801 +#define YY_MIN_SHIFTREDUCE 1182 +#define YY_MAX_SHIFTREDUCE 1781 +#define YY_ERROR_ACTION 1782 +#define YY_ACCEPT_ACTION 1783 +#define YY_NO_ACTION 1784 +#define YY_MIN_REDUCE 1785 +#define YY_MAX_REDUCE 2384 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -220,292 +559,292 @@ typedef union { *********** Begin parsing tables **********************************************/ #define YY_ACTTAB_COUNT (2858) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 2126, 2193, 2171, 2082, 221, 690, 1960, 2154, 537, 1949, - /* 10 */ 1826, 670, 48, 46, 1706, 394, 2179, 1213, 2079, 677, - /* 20 */ 401, 2358, 1555, 41, 40, 135, 2175, 47, 45, 44, - /* 30 */ 43, 42, 574, 1636, 453, 1553, 2171, 539, 1582, 2211, - /* 40 */ 41, 40, 1781, 536, 47, 45, 44, 43, 42, 254, - /* 50 */ 1951, 2161, 1945, 706, 630, 531, 1215, 2353, 1218, 1219, - /* 60 */ 2175, 181, 1631, 529, 2177, 398, 525, 521, 19, 1238, - /* 70 */ 66, 1237, 2359, 188, 700, 1561, 30, 2354, 656, 348, - /* 80 */ 689, 369, 2065, 361, 140, 690, 1960, 2192, 1580, 2228, - /* 90 */ 667, 144, 112, 2194, 710, 2196, 2197, 705, 2177, 700, - /* 100 */ 796, 168, 1239, 15, 185, 135, 2281, 103, 700, 1901, - /* 110 */ 397, 2277, 579, 497, 2082, 416, 48, 46, 690, 1960, - /* 120 */ 415, 689, 1769, 190, 401, 264, 1555, 1665, 1371, 2080, - /* 130 */ 677, 2307, 1953, 1580, 38, 306, 1746, 1636, 193, 1553, - /* 140 */ 1638, 1639, 1806, 1362, 735, 734, 733, 1366, 732, 1368, - /* 150 */ 1369, 731, 728, 1805, 1377, 725, 1379, 1380, 722, 719, - /* 160 */ 716, 184, 630, 51, 655, 2353, 1631, 2353, 94, 62, - /* 170 */ 1611, 1621, 19, 2000, 212, 211, 1637, 1640, 675, 1561, - /* 180 */ 2359, 188, 654, 188, 1666, 2354, 656, 2354, 656, 2296, - /* 190 */ 288, 1556, 2161, 1554, 286, 2289, 666, 496, 136, 665, - /* 200 */ 169, 2353, 1795, 2161, 796, 41, 40, 15, 2193, 47, - /* 210 */ 45, 44, 43, 42, 62, 2293, 654, 188, 707, 1315, - /* 220 */ 435, 2354, 656, 1559, 1560, 1783, 1610, 1613, 1614, 1615, - /* 230 */ 1616, 1617, 1618, 1619, 1620, 702, 698, 1629, 1630, 1632, - /* 240 */ 1633, 1634, 1635, 2, 1638, 1639, 2211, 437, 433, 134, - /* 250 */ 133, 132, 131, 130, 129, 128, 127, 126, 2161, 1317, - /* 260 */ 706, 1784, 37, 399, 1660, 1661, 1662, 1663, 1664, 1668, - /* 270 */ 1669, 1670, 1671, 534, 1611, 1621, 535, 1819, 551, 1580, - /* 280 */ 1637, 1640, 125, 1464, 1465, 124, 123, 122, 121, 120, - /* 290 */ 119, 118, 117, 116, 2192, 1556, 2228, 1554, 645, 112, - /* 300 */ 2194, 710, 2196, 2197, 705, 650, 700, 2044, 395, 147, - /* 310 */ 1580, 151, 2252, 2281, 1581, 2193, 166, 397, 2277, 1238, - /* 320 */ 191, 1237, 667, 144, 1962, 670, 191, 1559, 1560, 1703, - /* 330 */ 1610, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 702, - /* 340 */ 698, 1629, 1630, 1632, 1633, 1634, 1635, 2, 12, 48, - /* 350 */ 46, 745, 1239, 2211, 2013, 410, 409, 401, 2182, 1555, - /* 360 */ 2358, 367, 62, 2353, 181, 2161, 1582, 706, 615, 2011, - /* 370 */ 1636, 191, 1553, 592, 591, 590, 690, 1960, 1562, 2357, - /* 380 */ 582, 141, 586, 2354, 2356, 2066, 585, 649, 651, 646, - /* 390 */ 639, 584, 589, 377, 376, 146, 56, 583, 2252, 1631, - /* 400 */ 252, 2192, 629, 2228, 251, 19, 112, 2194, 710, 2196, - /* 410 */ 2197, 705, 1561, 700, 2184, 2211, 297, 298, 185, 542, - /* 420 */ 2281, 296, 535, 1819, 397, 2277, 187, 2289, 2290, 2193, - /* 430 */ 142, 2294, 1221, 655, 1406, 1407, 2353, 796, 1579, 707, - /* 440 */ 15, 1828, 41, 40, 1272, 2308, 47, 45, 44, 43, - /* 450 */ 42, 654, 188, 48, 46, 1641, 2354, 656, 223, 2193, - /* 460 */ 1612, 401, 537, 1555, 1826, 93, 475, 2211, 356, 707, - /* 470 */ 648, 381, 166, 608, 1636, 474, 1553, 1638, 1639, 2161, - /* 480 */ 1963, 706, 2358, 125, 1273, 2353, 124, 123, 122, 121, - /* 490 */ 120, 119, 118, 117, 116, 2013, 62, 2211, 1804, 667, - /* 500 */ 144, 2357, 382, 1631, 12, 2354, 2355, 1611, 1621, 2161, - /* 510 */ 2011, 706, 109, 1637, 1640, 2192, 1561, 2228, 288, 191, - /* 520 */ 112, 2194, 710, 2196, 2197, 705, 60, 700, 1556, 145, - /* 530 */ 1554, 578, 2373, 627, 2281, 577, 1565, 1952, 397, 2277, - /* 540 */ 1710, 796, 690, 1960, 49, 2192, 1580, 2228, 2161, 2193, - /* 550 */ 170, 2194, 710, 2196, 2197, 705, 12, 700, 10, 707, - /* 560 */ 1559, 1560, 451, 1610, 1613, 1614, 1615, 1616, 1617, 1618, - /* 570 */ 1619, 1620, 702, 698, 1629, 1630, 1632, 1633, 1634, 1635, - /* 580 */ 2, 1638, 1639, 445, 1326, 444, 1702, 2211, 41, 40, - /* 590 */ 631, 2318, 47, 45, 44, 43, 42, 1325, 2296, 2161, - /* 600 */ 1583, 706, 669, 186, 2289, 2290, 165, 142, 2294, 1561, - /* 610 */ 1803, 1611, 1621, 690, 1960, 443, 406, 1637, 1640, 2006, - /* 620 */ 2008, 41, 40, 404, 2292, 47, 45, 44, 43, 42, - /* 630 */ 2296, 163, 1556, 452, 1554, 2192, 676, 2228, 383, 1962, - /* 640 */ 112, 2194, 710, 2196, 2197, 705, 2011, 700, 253, 689, - /* 650 */ 447, 2193, 2256, 191, 2281, 446, 2291, 2155, 397, 2277, - /* 660 */ 2161, 707, 506, 2315, 1559, 1560, 154, 1610, 1613, 1614, - /* 670 */ 1615, 1616, 1617, 1618, 1619, 1620, 702, 698, 1629, 1630, - /* 680 */ 1632, 1633, 1634, 1635, 2, 48, 46, 1937, 549, 2211, - /* 690 */ 2075, 457, 2061, 401, 755, 1555, 1612, 630, 667, 144, - /* 700 */ 2353, 2161, 2013, 706, 630, 1936, 1636, 2353, 1553, 391, - /* 710 */ 47, 45, 44, 43, 42, 2359, 188, 2011, 1526, 1527, - /* 720 */ 2354, 656, 2359, 188, 463, 2061, 55, 2354, 656, 14, - /* 730 */ 13, 1734, 51, 690, 1960, 1631, 1947, 2192, 202, 2228, - /* 740 */ 597, 676, 112, 2194, 710, 2196, 2197, 705, 1561, 700, - /* 750 */ 690, 1960, 266, 465, 2373, 607, 2281, 1862, 41, 40, - /* 760 */ 397, 2277, 47, 45, 44, 43, 42, 2193, 1802, 250, - /* 770 */ 480, 205, 745, 796, 690, 1960, 49, 704, 642, 641, - /* 780 */ 1732, 1733, 1735, 1736, 1737, 600, 490, 2061, 2357, 48, - /* 790 */ 46, 1935, 594, 674, 481, 2075, 1776, 401, 249, 1555, - /* 800 */ 404, 1581, 189, 2289, 2290, 2211, 142, 2294, 166, 692, - /* 810 */ 1636, 2253, 1553, 1638, 1639, 1846, 1962, 2161, 2161, 706, - /* 820 */ 743, 156, 155, 740, 739, 738, 153, 592, 591, 590, - /* 830 */ 2007, 2008, 1679, 210, 582, 141, 586, 593, 70, 1631, - /* 840 */ 585, 69, 52, 1611, 1621, 584, 589, 377, 376, 1637, - /* 850 */ 1640, 583, 1561, 2192, 1745, 2228, 1241, 1242, 342, 2194, - /* 860 */ 710, 2196, 2197, 705, 1556, 700, 1554, 2247, 41, 40, - /* 870 */ 1801, 1943, 47, 45, 44, 43, 42, 796, 570, 569, - /* 880 */ 15, 2193, 743, 156, 155, 740, 739, 738, 153, 1800, - /* 890 */ 613, 707, 207, 2328, 1799, 1964, 1559, 1560, 1775, 1610, - /* 900 */ 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 702, 698, - /* 910 */ 1629, 1630, 1632, 1633, 1634, 1635, 2, 1638, 1639, 2211, - /* 920 */ 2161, 1481, 1482, 606, 743, 156, 155, 740, 739, 738, - /* 930 */ 153, 2161, 86, 706, 2013, 85, 604, 630, 602, 2161, - /* 940 */ 2353, 396, 690, 1960, 2161, 690, 1960, 1611, 1621, 2011, - /* 950 */ 736, 690, 1960, 1637, 1640, 2359, 188, 1480, 1483, 259, - /* 960 */ 2354, 656, 550, 737, 1722, 1957, 2004, 2192, 1556, 2228, - /* 970 */ 1554, 255, 112, 2194, 710, 2196, 2197, 705, 9, 700, - /* 980 */ 588, 587, 34, 2147, 2373, 1330, 2281, 676, 41, 40, - /* 990 */ 397, 2277, 47, 45, 44, 43, 42, 1798, 1329, 191, - /* 1000 */ 1559, 1560, 1859, 1610, 1613, 1614, 1615, 1616, 1617, 1618, - /* 1010 */ 1619, 1620, 702, 698, 1629, 1630, 1632, 1633, 1634, 1635, - /* 1020 */ 2, 1646, 352, 167, 1578, 690, 1960, 1580, 327, 690, - /* 1030 */ 1960, 488, 423, 90, 504, 572, 571, 503, 2171, 685, - /* 1040 */ 407, 2075, 324, 73, 2144, 263, 72, 2161, 166, 673, - /* 1050 */ 371, 2013, 2180, 471, 671, 505, 1962, 349, 405, 1955, - /* 1060 */ 473, 701, 2175, 508, 1797, 658, 2011, 1794, 219, 516, - /* 1070 */ 514, 511, 773, 772, 771, 770, 413, 1938, 769, 768, - /* 1080 */ 148, 763, 762, 761, 760, 759, 758, 757, 158, 753, - /* 1090 */ 752, 751, 412, 411, 748, 747, 746, 176, 175, 1583, - /* 1100 */ 2177, 630, 690, 1960, 2353, 1583, 370, 237, 62, 374, - /* 1110 */ 700, 44, 43, 42, 2161, 690, 1960, 2161, 459, 2359, - /* 1120 */ 188, 149, 301, 173, 2354, 656, 690, 1960, 262, 690, - /* 1130 */ 1960, 568, 564, 560, 556, 687, 236, 1793, 662, 694, - /* 1140 */ 1667, 2253, 767, 765, 1792, 1791, 688, 111, 501, 307, - /* 1150 */ 1790, 495, 494, 493, 492, 487, 486, 485, 484, 483, - /* 1160 */ 479, 478, 477, 476, 351, 468, 467, 466, 659, 461, - /* 1170 */ 460, 368, 690, 1960, 2301, 1699, 91, 1612, 375, 234, - /* 1180 */ 373, 372, 1837, 576, 90, 1789, 1788, 2161, 81, 80, - /* 1190 */ 450, 2193, 408, 200, 2161, 2161, 1787, 2013, 1699, 741, - /* 1200 */ 2161, 707, 2004, 637, 595, 578, 442, 440, 1786, 577, - /* 1210 */ 1956, 742, 2012, 320, 2004, 1902, 1990, 350, 35, 54, - /* 1220 */ 431, 3, 2193, 429, 425, 421, 418, 443, 1672, 2211, - /* 1230 */ 756, 454, 707, 1922, 2346, 2161, 2161, 1218, 1219, 154, - /* 1240 */ 83, 2161, 137, 706, 455, 74, 2161, 233, 227, 580, - /* 1250 */ 242, 203, 2193, 240, 232, 547, 244, 265, 2161, 243, - /* 1260 */ 2211, 430, 707, 246, 2300, 191, 245, 248, 154, 581, - /* 1270 */ 247, 1313, 2161, 225, 706, 1835, 50, 2192, 610, 2228, - /* 1280 */ 609, 50, 112, 2194, 710, 2196, 2197, 705, 697, 700, - /* 1290 */ 2211, 1311, 1778, 1779, 2373, 84, 2281, 598, 1796, 1521, - /* 1300 */ 397, 2277, 2161, 643, 706, 1564, 270, 154, 2192, 108, - /* 1310 */ 2228, 2321, 283, 112, 2194, 710, 2196, 2197, 705, 105, - /* 1320 */ 700, 50, 294, 1563, 1555, 2373, 71, 2281, 1524, 152, - /* 1330 */ 154, 397, 2277, 14, 13, 64, 1731, 1553, 2192, 50, - /* 1340 */ 2228, 1730, 2193, 112, 2194, 710, 2196, 2197, 705, 50, - /* 1350 */ 700, 1829, 707, 410, 409, 2373, 277, 2281, 36, 714, - /* 1360 */ 139, 397, 2277, 1569, 41, 40, 272, 672, 47, 45, - /* 1370 */ 44, 43, 42, 2193, 1636, 1900, 1562, 1561, 663, 152, - /* 1380 */ 2211, 1478, 299, 707, 154, 749, 682, 1899, 2212, 303, - /* 1390 */ 1356, 750, 2161, 138, 706, 1673, 384, 152, 2070, 1622, - /* 1400 */ 414, 791, 796, 1631, 1820, 1825, 660, 1291, 2001, 319, - /* 1410 */ 2193, 2211, 2311, 1289, 668, 285, 1561, 282, 422, 1384, - /* 1420 */ 707, 1, 417, 2161, 5, 706, 365, 1586, 2192, 438, - /* 1430 */ 2228, 1502, 196, 112, 2194, 710, 2196, 2197, 705, 1388, - /* 1440 */ 700, 696, 439, 1657, 1395, 2254, 441, 2281, 2211, 195, - /* 1450 */ 198, 397, 2277, 1393, 314, 1579, 456, 157, 209, 2192, - /* 1460 */ 2161, 2228, 706, 1567, 112, 2194, 710, 2196, 2197, 705, - /* 1470 */ 1583, 700, 462, 458, 469, 499, 693, 2071, 2281, 464, - /* 1480 */ 1578, 1566, 397, 2277, 482, 491, 489, 2063, 498, 500, - /* 1490 */ 509, 510, 507, 1556, 213, 1554, 2192, 214, 2228, 2193, - /* 1500 */ 512, 113, 2194, 710, 2196, 2197, 705, 513, 700, 707, - /* 1510 */ 1584, 216, 532, 515, 517, 2281, 4, 533, 540, 2280, - /* 1520 */ 2277, 541, 543, 1581, 224, 1559, 1560, 226, 1585, 544, - /* 1530 */ 545, 1587, 1570, 546, 1565, 229, 548, 2211, 231, 88, - /* 1540 */ 89, 552, 235, 573, 355, 575, 1950, 114, 2193, 2161, - /* 1550 */ 239, 706, 1946, 612, 614, 92, 150, 618, 707, 315, - /* 1560 */ 256, 619, 617, 2135, 1573, 1575, 241, 159, 160, 1948, - /* 1570 */ 258, 260, 1944, 161, 2193, 162, 2132, 698, 1629, 1630, - /* 1580 */ 1632, 1633, 1634, 1635, 704, 2192, 2211, 2228, 625, 1509, - /* 1590 */ 113, 2194, 710, 2196, 2197, 705, 2131, 700, 2161, 644, - /* 1600 */ 706, 622, 634, 8, 2281, 2312, 2327, 680, 695, 2277, - /* 1610 */ 640, 2322, 2211, 387, 624, 2326, 647, 623, 268, 271, - /* 1620 */ 2303, 653, 276, 635, 2161, 2193, 706, 632, 633, 281, - /* 1630 */ 2376, 388, 1699, 661, 708, 707, 2228, 664, 2193, 113, - /* 1640 */ 2194, 710, 2196, 2197, 705, 143, 700, 1582, 707, 289, - /* 1650 */ 178, 1588, 278, 2281, 2076, 316, 98, 360, 2277, 2297, - /* 1660 */ 2192, 317, 2228, 2211, 678, 342, 2194, 710, 2196, 2197, - /* 1670 */ 705, 703, 700, 691, 2246, 2161, 2211, 706, 679, 683, - /* 1680 */ 2090, 279, 174, 684, 2089, 280, 100, 2193, 2161, 318, - /* 1690 */ 706, 2088, 393, 102, 61, 2262, 104, 707, 2352, 1961, - /* 1700 */ 712, 2005, 1923, 792, 2193, 284, 793, 321, 795, 2153, - /* 1710 */ 357, 2192, 310, 2228, 707, 358, 171, 2194, 710, 2196, - /* 1720 */ 2197, 705, 53, 700, 2192, 2211, 2228, 325, 323, 113, - /* 1730 */ 2194, 710, 2196, 2197, 705, 345, 700, 2161, 2152, 706, - /* 1740 */ 330, 344, 2211, 2281, 334, 2151, 78, 385, 2278, 2148, - /* 1750 */ 419, 420, 1546, 2193, 2161, 1547, 706, 194, 424, 2146, - /* 1760 */ 426, 427, 428, 707, 2145, 366, 2143, 657, 2374, 432, - /* 1770 */ 2142, 2141, 434, 2192, 436, 2228, 1537, 2193, 170, 2194, - /* 1780 */ 710, 2196, 2197, 705, 2122, 700, 197, 707, 2121, 199, - /* 1790 */ 2192, 2211, 2228, 1505, 79, 343, 2194, 710, 2196, 2197, - /* 1800 */ 705, 1504, 700, 2161, 2193, 706, 2103, 2102, 2101, 448, - /* 1810 */ 449, 2100, 2099, 2054, 707, 2211, 1455, 2053, 2050, 2319, - /* 1820 */ 386, 201, 2049, 82, 2193, 2048, 2047, 2161, 2052, 706, - /* 1830 */ 204, 2051, 2046, 2045, 707, 2043, 2042, 2041, 206, 2192, - /* 1840 */ 470, 2228, 2211, 2040, 336, 2194, 710, 2196, 2197, 705, - /* 1850 */ 472, 700, 2056, 2039, 2161, 2038, 706, 2037, 2036, 2035, - /* 1860 */ 2034, 2033, 2211, 2192, 2032, 2228, 2031, 392, 343, 2194, - /* 1870 */ 710, 2196, 2197, 705, 2161, 700, 706, 208, 2024, 2023, - /* 1880 */ 87, 2022, 2021, 2055, 2020, 2019, 215, 652, 2030, 2029, - /* 1890 */ 2192, 2193, 2228, 2028, 2027, 171, 2194, 710, 2196, 2197, - /* 1900 */ 705, 707, 700, 2026, 2025, 2018, 2017, 2016, 1457, 2015, - /* 1910 */ 2192, 502, 2228, 2014, 1327, 343, 2194, 710, 2196, 2197, - /* 1920 */ 705, 2193, 700, 353, 354, 1865, 1323, 1864, 1863, 2211, - /* 1930 */ 1331, 707, 217, 218, 400, 1861, 1858, 520, 1857, 519, - /* 1940 */ 524, 2161, 1850, 706, 523, 518, 522, 2375, 527, 526, - /* 1950 */ 1839, 528, 530, 1815, 1220, 76, 1814, 220, 2120, 2211, - /* 1960 */ 2110, 77, 182, 222, 402, 2098, 2181, 183, 538, 228, - /* 1970 */ 2097, 2161, 230, 706, 553, 554, 555, 2192, 2074, 2228, - /* 1980 */ 2193, 1939, 343, 2194, 710, 2196, 2197, 705, 616, 700, - /* 1990 */ 707, 1860, 1856, 1265, 1854, 558, 557, 1852, 559, 561, - /* 2000 */ 562, 563, 1849, 565, 566, 567, 799, 2192, 1834, 2228, - /* 2010 */ 1832, 1833, 343, 2194, 710, 2196, 2197, 705, 2211, 700, - /* 2020 */ 313, 1831, 1811, 1941, 1940, 1400, 1399, 764, 1314, 766, - /* 2030 */ 2161, 1312, 706, 1310, 1309, 1308, 180, 1847, 1307, 1301, - /* 2040 */ 1306, 63, 238, 1838, 789, 785, 781, 777, 1303, 311, - /* 2050 */ 1302, 1300, 378, 2193, 379, 1836, 380, 596, 1810, 1809, - /* 2060 */ 599, 601, 603, 707, 1808, 2119, 611, 605, 2228, 115, - /* 2070 */ 1531, 338, 2194, 710, 2196, 2197, 705, 1533, 700, 1530, - /* 2080 */ 1535, 1511, 29, 67, 2193, 1515, 2109, 2096, 1513, 110, - /* 2090 */ 164, 2211, 304, 620, 707, 2095, 2358, 20, 17, 1748, - /* 2100 */ 6, 21, 65, 2161, 31, 706, 57, 261, 7, 626, - /* 2110 */ 275, 638, 267, 621, 22, 1490, 1489, 274, 269, 2193, - /* 2120 */ 636, 172, 2211, 628, 1729, 686, 2182, 33, 24, 707, - /* 2130 */ 58, 273, 32, 23, 2161, 1721, 706, 1768, 18, 2192, - /* 2140 */ 1769, 2228, 95, 1763, 328, 2194, 710, 2196, 2197, 705, - /* 2150 */ 1762, 700, 389, 1767, 1766, 390, 2193, 2211, 287, 177, - /* 2160 */ 291, 2094, 2073, 292, 97, 1696, 707, 290, 59, 2161, - /* 2170 */ 2192, 706, 2228, 1695, 2072, 326, 2194, 710, 2196, 2197, - /* 2180 */ 705, 2193, 700, 96, 25, 295, 257, 99, 105, 293, - /* 2190 */ 305, 707, 1727, 300, 2211, 68, 26, 101, 1648, 11, - /* 2200 */ 13, 1647, 1571, 179, 2231, 2192, 2161, 2228, 706, 1658, - /* 2210 */ 329, 2194, 710, 2196, 2197, 705, 681, 700, 2193, 2211, - /* 2220 */ 302, 1603, 192, 711, 713, 1626, 1624, 403, 707, 699, - /* 2230 */ 39, 2161, 1623, 706, 16, 27, 717, 1595, 28, 720, - /* 2240 */ 1385, 715, 2192, 2193, 2228, 1382, 1381, 335, 2194, 710, - /* 2250 */ 2196, 2197, 705, 707, 700, 1378, 2211, 718, 721, 723, - /* 2260 */ 724, 726, 1372, 709, 1370, 729, 727, 2192, 2161, 2228, - /* 2270 */ 706, 730, 339, 2194, 710, 2196, 2197, 705, 1376, 700, - /* 2280 */ 106, 2211, 308, 1394, 1375, 1390, 107, 75, 1263, 1374, - /* 2290 */ 1373, 744, 1295, 2161, 1294, 706, 1293, 1292, 309, 1290, - /* 2300 */ 1288, 1287, 1286, 1321, 2192, 754, 2228, 1284, 1283, 331, - /* 2310 */ 2194, 710, 2196, 2197, 705, 2193, 700, 1282, 1281, 1280, - /* 2320 */ 1279, 1278, 1318, 1316, 1275, 707, 1274, 1271, 1270, 2192, - /* 2330 */ 2193, 2228, 1269, 1268, 340, 2194, 710, 2196, 2197, 705, - /* 2340 */ 707, 700, 1855, 774, 775, 776, 1853, 778, 2193, 779, - /* 2350 */ 1851, 782, 780, 2211, 783, 1848, 784, 786, 707, 788, - /* 2360 */ 1830, 790, 1210, 787, 1807, 2161, 312, 706, 2211, 794, - /* 2370 */ 1782, 1557, 798, 322, 797, 1782, 1782, 1782, 1782, 1782, - /* 2380 */ 2161, 1782, 706, 1782, 1782, 1782, 2211, 1782, 1782, 1782, - /* 2390 */ 1782, 1782, 1782, 1782, 1782, 2193, 1782, 1782, 2161, 1782, - /* 2400 */ 706, 2192, 1782, 2228, 1782, 707, 332, 2194, 710, 2196, - /* 2410 */ 2197, 705, 1782, 700, 1782, 1782, 2192, 2193, 2228, 1782, - /* 2420 */ 1782, 341, 2194, 710, 2196, 2197, 705, 707, 700, 1782, - /* 2430 */ 1782, 1782, 1782, 2211, 2192, 1782, 2228, 1782, 1782, 333, - /* 2440 */ 2194, 710, 2196, 2197, 705, 2161, 700, 706, 1782, 1782, - /* 2450 */ 1782, 1782, 1782, 1782, 1782, 2211, 1782, 1782, 1782, 1782, - /* 2460 */ 1782, 1782, 1782, 1782, 2193, 1782, 1782, 2161, 1782, 706, - /* 2470 */ 1782, 1782, 1782, 1782, 707, 1782, 1782, 1782, 1782, 1782, - /* 2480 */ 1782, 2192, 1782, 2228, 1782, 1782, 346, 2194, 710, 2196, - /* 2490 */ 2197, 705, 1782, 700, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2500 */ 1782, 1782, 2211, 2192, 1782, 2228, 1782, 1782, 347, 2194, - /* 2510 */ 710, 2196, 2197, 705, 2161, 700, 706, 1782, 1782, 1782, - /* 2520 */ 1782, 1782, 1782, 2193, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2530 */ 1782, 1782, 1782, 707, 1782, 1782, 2193, 1782, 1782, 1782, - /* 2540 */ 1782, 1782, 1782, 1782, 1782, 1782, 707, 1782, 1782, 1782, - /* 2550 */ 2192, 1782, 2228, 2193, 1782, 2205, 2194, 710, 2196, 2197, - /* 2560 */ 705, 2211, 700, 707, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2570 */ 1782, 1782, 1782, 2161, 2211, 706, 1782, 1782, 1782, 1782, - /* 2580 */ 1782, 1782, 1782, 1782, 1782, 2193, 2161, 1782, 706, 1782, - /* 2590 */ 1782, 2211, 1782, 1782, 1782, 707, 1782, 1782, 1782, 1782, - /* 2600 */ 1782, 1782, 1782, 2161, 1782, 706, 1782, 1782, 1782, 2192, - /* 2610 */ 1782, 2228, 1782, 1782, 2204, 2194, 710, 2196, 2197, 705, - /* 2620 */ 1782, 700, 2192, 2211, 2228, 1782, 1782, 2203, 2194, 710, - /* 2630 */ 2196, 2197, 705, 1782, 700, 2161, 1782, 706, 1782, 2192, - /* 2640 */ 1782, 2228, 1782, 1782, 362, 2194, 710, 2196, 2197, 705, - /* 2650 */ 1782, 700, 2193, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2660 */ 1782, 1782, 707, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2670 */ 1782, 2192, 2193, 2228, 1782, 1782, 363, 2194, 710, 2196, - /* 2680 */ 2197, 705, 707, 700, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2690 */ 2211, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2700 */ 1782, 1782, 2161, 1782, 706, 1782, 1782, 1782, 1782, 1782, - /* 2710 */ 2211, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2720 */ 1782, 1782, 2161, 1782, 706, 1782, 1782, 1782, 1782, 1782, - /* 2730 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2192, 1782, - /* 2740 */ 2228, 1782, 2193, 359, 2194, 710, 2196, 2197, 705, 1782, - /* 2750 */ 700, 1782, 707, 1782, 1782, 1782, 1782, 1782, 2192, 2193, - /* 2760 */ 2228, 1782, 1782, 364, 2194, 710, 2196, 2197, 705, 707, - /* 2770 */ 700, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2780 */ 2211, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2790 */ 1782, 1782, 2161, 1782, 706, 1782, 1782, 2211, 1782, 1782, - /* 2800 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2161, - /* 2810 */ 1782, 706, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 2820 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 708, 1782, - /* 2830 */ 2228, 1782, 1782, 338, 2194, 710, 2196, 2197, 705, 1782, - /* 2840 */ 700, 1782, 1782, 1782, 1782, 2192, 1782, 2228, 1782, 1782, - /* 2850 */ 337, 2194, 710, 2196, 2197, 705, 1782, 700, + /* 0 */ 2128, 2195, 2173, 2084, 221, 692, 1962, 2156, 539, 1951, + /* 10 */ 1828, 672, 48, 46, 1708, 394, 2181, 1215, 2081, 679, + /* 20 */ 401, 2360, 1557, 41, 40, 135, 2177, 47, 45, 44, + /* 30 */ 43, 42, 576, 1638, 453, 1555, 2173, 541, 1584, 2213, + /* 40 */ 41, 40, 1783, 538, 47, 45, 44, 43, 42, 254, + /* 50 */ 1953, 2163, 1947, 708, 632, 533, 1217, 2355, 1220, 1221, + /* 60 */ 2177, 181, 1633, 531, 2179, 398, 527, 523, 19, 1240, + /* 70 */ 66, 1239, 2361, 188, 702, 1563, 30, 2356, 658, 348, + /* 80 */ 691, 369, 2067, 361, 140, 692, 1962, 2194, 1582, 2230, + /* 90 */ 669, 144, 112, 2196, 712, 2198, 2199, 707, 2179, 702, + /* 100 */ 798, 168, 1241, 15, 185, 135, 2283, 103, 702, 1903, + /* 110 */ 397, 2279, 581, 499, 2084, 416, 48, 46, 692, 1962, + /* 120 */ 415, 691, 1771, 190, 401, 264, 1557, 1667, 1373, 2082, + /* 130 */ 679, 2309, 1955, 1582, 38, 306, 1748, 1638, 193, 1555, + /* 140 */ 1640, 1641, 1808, 1364, 737, 736, 735, 1368, 734, 1370, + /* 150 */ 1371, 733, 730, 1807, 1379, 727, 1381, 1382, 724, 721, + /* 160 */ 718, 184, 632, 51, 657, 2355, 1633, 2355, 94, 62, + /* 170 */ 1613, 1623, 19, 2002, 212, 211, 1639, 1642, 677, 1563, + /* 180 */ 2361, 188, 656, 188, 1668, 2356, 658, 2356, 658, 2298, + /* 190 */ 288, 1558, 2163, 1556, 286, 2291, 668, 498, 136, 667, + /* 200 */ 169, 2355, 1797, 2163, 798, 41, 40, 15, 2195, 47, + /* 210 */ 45, 44, 43, 42, 62, 2295, 656, 188, 709, 1317, + /* 220 */ 435, 2356, 658, 1561, 1562, 1785, 1612, 1615, 1616, 1617, + /* 230 */ 1618, 1619, 1620, 1621, 1622, 704, 700, 1631, 1632, 1634, + /* 240 */ 1635, 1636, 1637, 2, 1640, 1641, 2213, 437, 433, 134, + /* 250 */ 133, 132, 131, 130, 129, 128, 127, 126, 2163, 1319, + /* 260 */ 708, 1786, 37, 399, 1662, 1663, 1664, 1665, 1666, 1670, + /* 270 */ 1671, 1672, 1673, 536, 1613, 1623, 537, 1821, 553, 1582, + /* 280 */ 1639, 1642, 125, 1466, 1467, 124, 123, 122, 121, 120, + /* 290 */ 119, 118, 117, 116, 2194, 1558, 2230, 1556, 647, 112, + /* 300 */ 2196, 712, 2198, 2199, 707, 652, 702, 2046, 395, 147, + /* 310 */ 1582, 151, 2254, 2283, 1583, 2195, 166, 397, 2279, 1240, + /* 320 */ 191, 1239, 669, 144, 1964, 672, 191, 1561, 1562, 1705, + /* 330 */ 1612, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 704, + /* 340 */ 700, 1631, 1632, 1634, 1635, 1636, 1637, 2, 12, 48, + /* 350 */ 46, 747, 1241, 2213, 2015, 410, 409, 401, 2184, 1557, + /* 360 */ 2360, 367, 62, 2355, 181, 2163, 1584, 708, 617, 2013, + /* 370 */ 1638, 191, 1555, 594, 593, 592, 692, 1962, 1564, 2359, + /* 380 */ 584, 141, 588, 2356, 2358, 2068, 587, 651, 653, 648, + /* 390 */ 641, 586, 591, 377, 376, 146, 56, 585, 2254, 1633, + /* 400 */ 252, 2194, 631, 2230, 251, 19, 112, 2196, 712, 2198, + /* 410 */ 2199, 707, 1563, 702, 2186, 2213, 297, 298, 185, 544, + /* 420 */ 2283, 296, 537, 1821, 397, 2279, 187, 2291, 2292, 2195, + /* 430 */ 142, 2296, 1223, 657, 1408, 1409, 2355, 798, 1581, 709, + /* 440 */ 15, 1830, 41, 40, 1274, 2310, 47, 45, 44, 43, + /* 450 */ 42, 656, 188, 48, 46, 1643, 2356, 658, 223, 2195, + /* 460 */ 1614, 401, 539, 1557, 1828, 93, 477, 2213, 356, 709, + /* 470 */ 650, 381, 166, 610, 1638, 476, 1555, 1640, 1641, 2163, + /* 480 */ 1965, 708, 2360, 125, 1275, 2355, 124, 123, 122, 121, + /* 490 */ 120, 119, 118, 117, 116, 2015, 62, 2213, 1806, 669, + /* 500 */ 144, 2359, 382, 1633, 12, 2356, 2357, 1613, 1623, 2163, + /* 510 */ 2013, 708, 109, 1639, 1642, 2194, 1563, 2230, 288, 191, + /* 520 */ 112, 2196, 712, 2198, 2199, 707, 60, 702, 1558, 145, + /* 530 */ 1556, 580, 2375, 629, 2283, 579, 1567, 1954, 397, 2279, + /* 540 */ 1712, 798, 692, 1962, 49, 2194, 1582, 2230, 2163, 2195, + /* 550 */ 170, 2196, 712, 2198, 2199, 707, 12, 702, 10, 709, + /* 560 */ 1561, 1562, 451, 1612, 1615, 1616, 1617, 1618, 1619, 1620, + /* 570 */ 1621, 1622, 704, 700, 1631, 1632, 1634, 1635, 1636, 1637, + /* 580 */ 2, 1640, 1641, 445, 1328, 444, 1704, 2213, 41, 40, + /* 590 */ 633, 2320, 47, 45, 44, 43, 42, 1327, 2298, 2163, + /* 600 */ 1585, 708, 671, 186, 2291, 2292, 165, 142, 2296, 1563, + /* 610 */ 1805, 1613, 1623, 692, 1962, 443, 406, 1639, 1642, 2008, + /* 620 */ 2010, 41, 40, 404, 2294, 47, 45, 44, 43, 42, + /* 630 */ 2298, 163, 1558, 452, 1556, 2194, 678, 2230, 383, 1964, + /* 640 */ 112, 2196, 712, 2198, 2199, 707, 2013, 702, 253, 691, + /* 650 */ 447, 2195, 2258, 191, 2283, 446, 2293, 2157, 397, 2279, + /* 660 */ 2163, 709, 508, 2317, 1561, 1562, 154, 1612, 1615, 1616, + /* 670 */ 1617, 1618, 1619, 1620, 1621, 1622, 704, 700, 1631, 1632, + /* 680 */ 1634, 1635, 1636, 1637, 2, 48, 46, 1939, 551, 2213, + /* 690 */ 2077, 459, 2063, 401, 757, 1557, 1614, 632, 669, 144, + /* 700 */ 2355, 2163, 2015, 708, 632, 1938, 1638, 2355, 1555, 391, + /* 710 */ 47, 45, 44, 43, 42, 2361, 188, 2013, 1528, 1529, + /* 720 */ 2356, 658, 2361, 188, 465, 2063, 55, 2356, 658, 14, + /* 730 */ 13, 1736, 51, 692, 1962, 1633, 1949, 2194, 202, 2230, + /* 740 */ 599, 678, 112, 2196, 712, 2198, 2199, 707, 1563, 702, + /* 750 */ 692, 1962, 266, 467, 2375, 609, 2283, 1864, 41, 40, + /* 760 */ 397, 2279, 47, 45, 44, 43, 42, 2195, 1804, 250, + /* 770 */ 482, 205, 747, 798, 692, 1962, 49, 706, 644, 643, + /* 780 */ 1734, 1735, 1737, 1738, 1739, 602, 492, 2063, 2359, 48, + /* 790 */ 46, 1937, 596, 676, 483, 2077, 1778, 401, 249, 1557, + /* 800 */ 404, 1583, 189, 2291, 2292, 2213, 142, 2296, 166, 694, + /* 810 */ 1638, 2255, 1555, 1640, 1641, 1848, 1964, 2163, 2163, 708, + /* 820 */ 745, 156, 155, 742, 741, 740, 153, 594, 593, 592, + /* 830 */ 2009, 2010, 1681, 210, 584, 141, 588, 595, 70, 1633, + /* 840 */ 587, 69, 52, 1613, 1623, 586, 591, 377, 376, 1639, + /* 850 */ 1642, 585, 1563, 2194, 1747, 2230, 1243, 1244, 342, 2196, + /* 860 */ 712, 2198, 2199, 707, 1558, 702, 1556, 2249, 41, 40, + /* 870 */ 1803, 1945, 47, 45, 44, 43, 42, 798, 572, 571, + /* 880 */ 15, 2195, 745, 156, 155, 742, 741, 740, 153, 1802, + /* 890 */ 615, 709, 207, 2330, 1801, 1966, 1561, 1562, 1777, 1612, + /* 900 */ 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 704, 700, + /* 910 */ 1631, 1632, 1634, 1635, 1636, 1637, 2, 1640, 1641, 2213, + /* 920 */ 2163, 1483, 1484, 608, 745, 156, 155, 742, 741, 740, + /* 930 */ 153, 2163, 86, 708, 2015, 85, 606, 632, 604, 2163, + /* 940 */ 2355, 396, 692, 1962, 2163, 692, 1962, 1613, 1623, 2013, + /* 950 */ 738, 692, 1962, 1639, 1642, 2361, 188, 1482, 1485, 259, + /* 960 */ 2356, 658, 552, 739, 1724, 1959, 2006, 2194, 1558, 2230, + /* 970 */ 1556, 255, 112, 2196, 712, 2198, 2199, 707, 9, 702, + /* 980 */ 590, 589, 34, 2149, 2375, 1332, 2283, 678, 41, 40, + /* 990 */ 397, 2279, 47, 45, 44, 43, 42, 1800, 1331, 191, + /* 1000 */ 1561, 1562, 1861, 1612, 1615, 1616, 1617, 1618, 1619, 1620, + /* 1010 */ 1621, 1622, 704, 700, 1631, 1632, 1634, 1635, 1636, 1637, + /* 1020 */ 2, 1648, 352, 167, 1580, 692, 1962, 1582, 327, 692, + /* 1030 */ 1962, 490, 423, 90, 506, 574, 573, 505, 2173, 687, + /* 1040 */ 407, 2077, 324, 73, 2146, 263, 72, 2163, 166, 675, + /* 1050 */ 371, 2015, 2182, 473, 673, 507, 1964, 349, 405, 1957, + /* 1060 */ 475, 703, 2177, 510, 1799, 660, 2013, 1796, 219, 518, + /* 1070 */ 516, 513, 775, 774, 773, 772, 413, 1940, 771, 770, + /* 1080 */ 148, 765, 764, 763, 762, 761, 760, 759, 158, 755, + /* 1090 */ 754, 753, 412, 411, 750, 749, 748, 176, 175, 1585, + /* 1100 */ 2179, 632, 692, 1962, 2355, 1585, 370, 237, 62, 374, + /* 1110 */ 702, 44, 43, 42, 2163, 692, 1962, 2163, 461, 2361, + /* 1120 */ 188, 149, 301, 173, 2356, 658, 692, 1962, 262, 692, + /* 1130 */ 1962, 570, 566, 562, 558, 689, 236, 1795, 664, 696, + /* 1140 */ 1669, 2255, 769, 767, 1794, 1793, 690, 111, 503, 307, + /* 1150 */ 1792, 497, 496, 495, 494, 489, 488, 487, 486, 485, + /* 1160 */ 481, 480, 479, 478, 351, 470, 469, 468, 661, 463, + /* 1170 */ 462, 457, 692, 1962, 2303, 1701, 91, 1614, 375, 234, + /* 1180 */ 373, 372, 1839, 578, 90, 1791, 1790, 2163, 81, 80, + /* 1190 */ 450, 2195, 408, 200, 2163, 2163, 1789, 2015, 1701, 743, + /* 1200 */ 2163, 709, 2006, 639, 597, 580, 442, 440, 1788, 579, + /* 1210 */ 1958, 744, 2014, 320, 2006, 1904, 1992, 350, 35, 54, + /* 1220 */ 431, 3, 2195, 429, 425, 421, 418, 443, 1674, 2213, + /* 1230 */ 758, 454, 709, 1924, 2348, 2163, 2163, 1220, 1221, 154, + /* 1240 */ 83, 2163, 137, 708, 455, 74, 2163, 233, 227, 582, + /* 1250 */ 242, 203, 2195, 240, 232, 549, 244, 265, 2163, 243, + /* 1260 */ 2213, 430, 709, 246, 2302, 191, 245, 248, 154, 583, + /* 1270 */ 247, 1315, 2163, 225, 708, 1837, 50, 2194, 612, 2230, + /* 1280 */ 611, 50, 112, 2196, 712, 2198, 2199, 707, 699, 702, + /* 1290 */ 2213, 1313, 1780, 1781, 2375, 84, 2283, 600, 1798, 1523, + /* 1300 */ 397, 2279, 2163, 645, 708, 1566, 270, 154, 2194, 108, + /* 1310 */ 2230, 2323, 283, 112, 2196, 712, 2198, 2199, 707, 105, + /* 1320 */ 702, 50, 294, 1565, 1557, 2375, 71, 2283, 1526, 152, + /* 1330 */ 154, 397, 2279, 14, 13, 64, 1733, 1555, 2194, 50, + /* 1340 */ 2230, 1732, 2195, 112, 2196, 712, 2198, 2199, 707, 50, + /* 1350 */ 702, 1831, 709, 410, 409, 2375, 277, 2283, 36, 716, + /* 1360 */ 139, 397, 2279, 1571, 41, 40, 272, 674, 47, 45, + /* 1370 */ 44, 43, 42, 2195, 1638, 1902, 1564, 1563, 665, 152, + /* 1380 */ 2213, 1480, 299, 709, 154, 751, 684, 1901, 2214, 303, + /* 1390 */ 1358, 752, 2163, 138, 708, 1675, 384, 152, 2072, 1624, + /* 1400 */ 414, 793, 798, 1633, 1822, 1827, 662, 1293, 2003, 319, + /* 1410 */ 2195, 2213, 2313, 1291, 670, 285, 1563, 282, 422, 1386, + /* 1420 */ 709, 1, 417, 2163, 5, 708, 365, 1588, 2194, 438, + /* 1430 */ 2230, 1504, 196, 112, 2196, 712, 2198, 2199, 707, 1390, + /* 1440 */ 702, 698, 439, 1659, 1397, 2256, 441, 2283, 2213, 195, + /* 1450 */ 198, 397, 2279, 1395, 314, 1581, 458, 157, 209, 2194, + /* 1460 */ 2163, 2230, 708, 1569, 112, 2196, 712, 2198, 2199, 707, + /* 1470 */ 1585, 702, 464, 460, 471, 501, 695, 2073, 2283, 466, + /* 1480 */ 1580, 1568, 397, 2279, 484, 493, 491, 2065, 500, 502, + /* 1490 */ 511, 512, 509, 1558, 213, 1556, 2194, 214, 2230, 2195, + /* 1500 */ 514, 113, 2196, 712, 2198, 2199, 707, 515, 702, 709, + /* 1510 */ 1586, 216, 534, 517, 519, 2283, 4, 535, 542, 2282, + /* 1520 */ 2279, 543, 545, 1583, 224, 1561, 1562, 226, 1587, 546, + /* 1530 */ 547, 1589, 1572, 548, 1567, 229, 550, 2213, 231, 88, + /* 1540 */ 89, 554, 235, 575, 355, 577, 1952, 114, 2195, 2163, + /* 1550 */ 239, 708, 1948, 614, 616, 92, 150, 620, 709, 315, + /* 1560 */ 256, 621, 619, 2137, 1575, 1577, 241, 159, 160, 1950, + /* 1570 */ 258, 260, 1946, 161, 2195, 162, 2134, 700, 1631, 1632, + /* 1580 */ 1634, 1635, 1636, 1637, 706, 2194, 2213, 2230, 627, 1511, + /* 1590 */ 113, 2196, 712, 2198, 2199, 707, 2133, 702, 2163, 646, + /* 1600 */ 708, 624, 636, 8, 2283, 2314, 2329, 682, 697, 2279, + /* 1610 */ 642, 2324, 2213, 387, 626, 2328, 649, 625, 268, 271, + /* 1620 */ 2305, 655, 276, 637, 2163, 2195, 708, 634, 635, 281, + /* 1630 */ 2378, 388, 1701, 663, 710, 709, 2230, 666, 2195, 113, + /* 1640 */ 2196, 712, 2198, 2199, 707, 143, 702, 1584, 709, 289, + /* 1650 */ 178, 1590, 278, 2283, 2078, 316, 98, 360, 2279, 2299, + /* 1660 */ 2194, 317, 2230, 2213, 680, 342, 2196, 712, 2198, 2199, + /* 1670 */ 707, 705, 702, 693, 2248, 2163, 2213, 708, 681, 685, + /* 1680 */ 2092, 279, 174, 686, 2091, 280, 100, 2195, 2163, 318, + /* 1690 */ 708, 2090, 393, 102, 61, 2264, 104, 709, 2354, 1963, + /* 1700 */ 714, 2007, 1925, 794, 2195, 284, 795, 321, 797, 2155, + /* 1710 */ 357, 2194, 310, 2230, 709, 358, 171, 2196, 712, 2198, + /* 1720 */ 2199, 707, 53, 702, 2194, 2213, 2230, 325, 323, 113, + /* 1730 */ 2196, 712, 2198, 2199, 707, 345, 702, 2163, 2154, 708, + /* 1740 */ 330, 344, 2213, 2283, 334, 2153, 78, 385, 2280, 2150, + /* 1750 */ 419, 420, 1548, 2195, 2163, 1549, 708, 194, 424, 2148, + /* 1760 */ 426, 427, 428, 709, 2147, 366, 2145, 659, 2376, 432, + /* 1770 */ 2144, 2143, 434, 2194, 436, 2230, 1539, 2195, 170, 2196, + /* 1780 */ 712, 2198, 2199, 707, 2124, 702, 197, 709, 2123, 199, + /* 1790 */ 2194, 2213, 2230, 1507, 79, 343, 2196, 712, 2198, 2199, + /* 1800 */ 707, 1506, 702, 2163, 2195, 708, 2105, 2104, 2103, 448, + /* 1810 */ 449, 2102, 2101, 2056, 709, 2213, 1457, 2055, 456, 2321, + /* 1820 */ 386, 368, 2052, 201, 2195, 2051, 2050, 2163, 82, 708, + /* 1830 */ 2049, 2054, 204, 2053, 709, 2048, 2047, 2045, 2044, 2194, + /* 1840 */ 206, 2230, 2213, 2043, 336, 2196, 712, 2198, 2199, 707, + /* 1850 */ 2042, 702, 474, 472, 2163, 2058, 708, 2041, 2040, 2039, + /* 1860 */ 2038, 2037, 2213, 2194, 2036, 2230, 2035, 392, 343, 2196, + /* 1870 */ 712, 2198, 2199, 707, 2163, 702, 708, 353, 1459, 208, + /* 1880 */ 2026, 87, 2025, 2024, 2023, 2057, 2022, 654, 2034, 2033, + /* 1890 */ 2194, 2195, 2230, 2032, 2031, 171, 2196, 712, 2198, 2199, + /* 1900 */ 707, 709, 702, 2030, 2029, 2028, 2027, 2021, 2020, 2019, + /* 1910 */ 2194, 2018, 2230, 2017, 2016, 343, 2196, 712, 2198, 2199, + /* 1920 */ 707, 2195, 702, 504, 354, 1867, 1325, 215, 1866, 2213, + /* 1930 */ 217, 709, 1329, 1865, 400, 218, 1863, 1333, 1860, 521, + /* 1940 */ 522, 2163, 1859, 708, 525, 1852, 529, 2377, 1841, 1817, + /* 1950 */ 1816, 520, 524, 1222, 528, 532, 182, 526, 2122, 2213, + /* 1960 */ 530, 76, 2112, 77, 402, 220, 222, 2100, 2099, 228, + /* 1970 */ 2076, 2163, 230, 708, 2183, 1941, 183, 2194, 540, 2230, + /* 1980 */ 2195, 1862, 343, 2196, 712, 2198, 2199, 707, 618, 702, + /* 1990 */ 709, 1858, 555, 556, 557, 1856, 559, 1854, 561, 563, + /* 2000 */ 560, 1267, 564, 1851, 565, 568, 801, 2194, 567, 2230, + /* 2010 */ 569, 1836, 343, 2196, 712, 2198, 2199, 707, 2213, 702, + /* 2020 */ 313, 1834, 1835, 1833, 1813, 1943, 1401, 1402, 1942, 1316, + /* 2030 */ 2163, 1314, 708, 1312, 1311, 1310, 180, 1309, 1303, 1849, + /* 2040 */ 1308, 378, 1840, 1305, 791, 787, 783, 779, 1304, 311, + /* 2050 */ 766, 238, 63, 2195, 768, 1302, 379, 1838, 380, 1812, + /* 2060 */ 598, 601, 603, 709, 1811, 605, 613, 1810, 2230, 607, + /* 2070 */ 115, 338, 2196, 712, 2198, 2199, 707, 2121, 702, 1533, + /* 2080 */ 1535, 1532, 1537, 29, 2195, 67, 1513, 1515, 2111, 110, + /* 2090 */ 1517, 2213, 304, 164, 709, 622, 2098, 2097, 2360, 20, + /* 2100 */ 6, 7, 21, 2163, 31, 708, 57, 623, 17, 275, + /* 2110 */ 22, 261, 274, 33, 640, 1492, 1750, 267, 638, 2195, + /* 2120 */ 65, 172, 2213, 24, 628, 688, 1491, 2184, 1765, 709, + /* 2130 */ 630, 23, 287, 269, 2163, 1731, 708, 1723, 273, 2194, + /* 2140 */ 32, 2230, 1770, 95, 328, 2196, 712, 2198, 2199, 707, + /* 2150 */ 1764, 702, 1771, 389, 1769, 1768, 2195, 2213, 58, 390, + /* 2160 */ 291, 177, 18, 2096, 1698, 1697, 709, 290, 2075, 2163, + /* 2170 */ 2194, 708, 2230, 59, 96, 326, 2196, 712, 2198, 2199, + /* 2180 */ 707, 2195, 702, 97, 292, 25, 257, 293, 1729, 295, + /* 2190 */ 300, 709, 68, 2074, 2213, 99, 305, 101, 26, 1650, + /* 2200 */ 1649, 13, 1573, 105, 2233, 2194, 2163, 2230, 708, 1660, + /* 2210 */ 329, 2196, 712, 2198, 2199, 707, 683, 702, 2195, 2213, + /* 2220 */ 1628, 11, 302, 179, 701, 192, 1626, 1605, 709, 39, + /* 2230 */ 16, 2163, 1625, 708, 27, 715, 1597, 28, 403, 713, + /* 2240 */ 1387, 717, 2194, 2195, 2230, 1384, 719, 335, 2196, 712, + /* 2250 */ 2198, 2199, 707, 709, 702, 720, 2213, 711, 722, 1383, + /* 2260 */ 723, 725, 1380, 726, 728, 1374, 1372, 2194, 2163, 2230, + /* 2270 */ 708, 731, 339, 2196, 712, 2198, 2199, 707, 729, 702, + /* 2280 */ 732, 2213, 106, 308, 1378, 1396, 107, 75, 1392, 1377, + /* 2290 */ 1376, 1375, 746, 2163, 1265, 708, 1297, 1296, 1295, 1294, + /* 2300 */ 1292, 756, 1290, 1289, 2194, 1288, 2230, 1323, 1283, 331, + /* 2310 */ 2196, 712, 2198, 2199, 707, 2195, 702, 309, 1286, 1285, + /* 2320 */ 1284, 1320, 1282, 1281, 1280, 709, 1318, 1277, 1276, 2194, + /* 2330 */ 2195, 2230, 1273, 1272, 340, 2196, 712, 2198, 2199, 707, + /* 2340 */ 709, 702, 1271, 1270, 1857, 776, 778, 1855, 2195, 777, + /* 2350 */ 780, 781, 782, 2213, 1853, 785, 784, 786, 709, 1850, + /* 2360 */ 788, 789, 790, 1832, 792, 2163, 1809, 708, 2213, 1212, + /* 2370 */ 312, 796, 1784, 1559, 322, 1784, 799, 800, 1784, 1784, + /* 2380 */ 2163, 1784, 708, 1784, 1784, 1784, 2213, 1784, 1784, 1784, + /* 2390 */ 1784, 1784, 1784, 1784, 1784, 2195, 1784, 1784, 2163, 1784, + /* 2400 */ 708, 2194, 1784, 2230, 1784, 709, 332, 2196, 712, 2198, + /* 2410 */ 2199, 707, 1784, 702, 1784, 1784, 2194, 2195, 2230, 1784, + /* 2420 */ 1784, 341, 2196, 712, 2198, 2199, 707, 709, 702, 1784, + /* 2430 */ 1784, 1784, 1784, 2213, 2194, 1784, 2230, 1784, 1784, 333, + /* 2440 */ 2196, 712, 2198, 2199, 707, 2163, 702, 708, 1784, 1784, + /* 2450 */ 1784, 1784, 1784, 1784, 1784, 2213, 1784, 1784, 1784, 1784, + /* 2460 */ 1784, 1784, 1784, 1784, 2195, 1784, 1784, 2163, 1784, 708, + /* 2470 */ 1784, 1784, 1784, 1784, 709, 1784, 1784, 1784, 1784, 1784, + /* 2480 */ 1784, 2194, 1784, 2230, 1784, 1784, 346, 2196, 712, 2198, + /* 2490 */ 2199, 707, 1784, 702, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2500 */ 1784, 1784, 2213, 2194, 1784, 2230, 1784, 1784, 347, 2196, + /* 2510 */ 712, 2198, 2199, 707, 2163, 702, 708, 1784, 1784, 1784, + /* 2520 */ 1784, 1784, 1784, 2195, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2530 */ 1784, 1784, 1784, 709, 1784, 1784, 2195, 1784, 1784, 1784, + /* 2540 */ 1784, 1784, 1784, 1784, 1784, 1784, 709, 1784, 1784, 1784, + /* 2550 */ 2194, 1784, 2230, 2195, 1784, 2207, 2196, 712, 2198, 2199, + /* 2560 */ 707, 2213, 702, 709, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2570 */ 1784, 1784, 1784, 2163, 2213, 708, 1784, 1784, 1784, 1784, + /* 2580 */ 1784, 1784, 1784, 1784, 1784, 2195, 2163, 1784, 708, 1784, + /* 2590 */ 1784, 2213, 1784, 1784, 1784, 709, 1784, 1784, 1784, 1784, + /* 2600 */ 1784, 1784, 1784, 2163, 1784, 708, 1784, 1784, 1784, 2194, + /* 2610 */ 1784, 2230, 1784, 1784, 2206, 2196, 712, 2198, 2199, 707, + /* 2620 */ 1784, 702, 2194, 2213, 2230, 1784, 1784, 2205, 2196, 712, + /* 2630 */ 2198, 2199, 707, 1784, 702, 2163, 1784, 708, 1784, 2194, + /* 2640 */ 1784, 2230, 1784, 1784, 362, 2196, 712, 2198, 2199, 707, + /* 2650 */ 1784, 702, 2195, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2660 */ 1784, 1784, 709, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2670 */ 1784, 2194, 2195, 2230, 1784, 1784, 363, 2196, 712, 2198, + /* 2680 */ 2199, 707, 709, 702, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2690 */ 2213, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2700 */ 1784, 1784, 2163, 1784, 708, 1784, 1784, 1784, 1784, 1784, + /* 2710 */ 2213, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2720 */ 1784, 1784, 2163, 1784, 708, 1784, 1784, 1784, 1784, 1784, + /* 2730 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2194, 1784, + /* 2740 */ 2230, 1784, 2195, 359, 2196, 712, 2198, 2199, 707, 1784, + /* 2750 */ 702, 1784, 709, 1784, 1784, 1784, 1784, 1784, 2194, 2195, + /* 2760 */ 2230, 1784, 1784, 364, 2196, 712, 2198, 2199, 707, 709, + /* 2770 */ 702, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2780 */ 2213, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2790 */ 1784, 1784, 2163, 1784, 708, 1784, 1784, 2213, 1784, 1784, + /* 2800 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2163, + /* 2810 */ 1784, 708, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 2820 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 710, 1784, + /* 2830 */ 2230, 1784, 1784, 338, 2196, 712, 2198, 2199, 707, 1784, + /* 2840 */ 702, 1784, 1784, 1784, 1784, 2194, 1784, 2230, 1784, 1784, + /* 2850 */ 337, 2196, 712, 2198, 2199, 707, 1784, 702, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 375, 341, 367, 393, 346, 350, 351, 411, 350, 380, @@ -689,63 +1028,63 @@ static const YYCODETYPE yy_lookahead[] = { /* 1780 */ 434, 435, 436, 437, 0, 439, 199, 351, 0, 199, /* 1790 */ 427, 379, 429, 193, 200, 432, 433, 434, 435, 436, /* 1800 */ 437, 191, 439, 391, 341, 393, 0, 0, 0, 187, - /* 1810 */ 186, 0, 0, 0, 351, 379, 47, 0, 0, 473, - /* 1820 */ 384, 47, 0, 42, 341, 0, 0, 391, 0, 393, - /* 1830 */ 47, 0, 0, 0, 351, 0, 0, 0, 159, 427, - /* 1840 */ 35, 429, 379, 0, 432, 433, 434, 435, 436, 437, - /* 1850 */ 159, 439, 0, 0, 391, 0, 393, 0, 0, 0, + /* 1810 */ 186, 0, 0, 0, 351, 379, 47, 0, 39, 473, + /* 1820 */ 384, 49, 0, 47, 341, 0, 0, 391, 42, 393, + /* 1830 */ 0, 0, 47, 0, 351, 0, 0, 0, 0, 427, + /* 1840 */ 159, 429, 379, 0, 432, 433, 434, 435, 436, 437, + /* 1850 */ 0, 439, 159, 35, 391, 0, 393, 0, 0, 0, /* 1860 */ 0, 0, 379, 427, 0, 429, 0, 384, 432, 433, - /* 1870 */ 434, 435, 436, 437, 391, 439, 393, 47, 0, 0, - /* 1880 */ 42, 0, 0, 0, 0, 0, 62, 475, 0, 0, + /* 1870 */ 434, 435, 436, 437, 391, 439, 393, 48, 22, 47, + /* 1880 */ 0, 42, 0, 0, 0, 0, 0, 475, 0, 0, /* 1890 */ 427, 341, 429, 0, 0, 432, 433, 434, 435, 436, - /* 1900 */ 437, 351, 439, 0, 0, 0, 0, 0, 22, 0, - /* 1910 */ 427, 143, 429, 0, 22, 432, 433, 434, 435, 436, - /* 1920 */ 437, 341, 439, 48, 48, 0, 35, 0, 0, 379, - /* 1930 */ 22, 351, 62, 62, 384, 0, 0, 39, 0, 49, - /* 1940 */ 39, 391, 0, 393, 49, 35, 35, 484, 49, 35, - /* 1950 */ 0, 39, 35, 0, 14, 39, 0, 42, 0, 379, - /* 1960 */ 0, 39, 44, 40, 384, 0, 47, 47, 47, 39, - /* 1970 */ 0, 391, 182, 393, 35, 49, 39, 427, 0, 429, + /* 1900 */ 437, 351, 439, 0, 0, 0, 0, 0, 0, 0, + /* 1910 */ 427, 0, 429, 0, 0, 432, 433, 434, 435, 436, + /* 1920 */ 437, 341, 439, 143, 48, 0, 35, 62, 0, 379, + /* 1930 */ 62, 351, 22, 0, 384, 62, 0, 22, 0, 49, + /* 1940 */ 39, 391, 0, 393, 49, 0, 49, 484, 0, 0, + /* 1950 */ 0, 35, 35, 14, 35, 35, 44, 39, 0, 379, + /* 1960 */ 39, 39, 0, 39, 384, 42, 40, 0, 0, 39, + /* 1970 */ 0, 391, 182, 393, 47, 0, 47, 427, 47, 429, /* 1980 */ 341, 0, 432, 433, 434, 435, 436, 437, 1, 439, - /* 1990 */ 351, 0, 0, 69, 0, 49, 35, 0, 39, 35, - /* 2000 */ 49, 39, 0, 35, 49, 39, 19, 427, 0, 429, - /* 2010 */ 0, 0, 432, 433, 434, 435, 436, 437, 379, 439, - /* 2020 */ 33, 0, 0, 0, 0, 35, 22, 44, 35, 44, - /* 2030 */ 391, 35, 393, 35, 35, 35, 49, 0, 35, 22, - /* 2040 */ 35, 112, 110, 0, 57, 58, 59, 60, 35, 62, - /* 2050 */ 35, 35, 22, 341, 22, 0, 22, 51, 0, 0, - /* 2060 */ 35, 35, 35, 351, 0, 0, 427, 22, 429, 20, - /* 2070 */ 35, 432, 433, 434, 435, 436, 437, 35, 439, 35, - /* 2080 */ 104, 35, 103, 103, 341, 198, 0, 0, 22, 102, - /* 2090 */ 194, 379, 105, 22, 351, 0, 3, 44, 264, 104, - /* 2100 */ 48, 44, 3, 391, 103, 393, 172, 174, 48, 178, - /* 2110 */ 47, 99, 103, 172, 44, 172, 172, 44, 104, 341, - /* 2120 */ 101, 103, 379, 178, 104, 138, 47, 44, 44, 351, - /* 2130 */ 258, 103, 103, 264, 391, 104, 393, 104, 264, 427, - /* 2140 */ 104, 429, 103, 35, 432, 433, 434, 435, 436, 437, - /* 2150 */ 35, 439, 35, 35, 35, 35, 341, 379, 47, 47, - /* 2160 */ 173, 0, 0, 47, 39, 104, 351, 180, 44, 391, - /* 2170 */ 427, 393, 429, 104, 0, 432, 433, 434, 435, 436, - /* 2180 */ 437, 341, 439, 103, 103, 103, 199, 39, 113, 104, - /* 2190 */ 47, 351, 104, 103, 379, 103, 44, 103, 101, 245, - /* 2200 */ 2, 101, 22, 47, 103, 427, 391, 429, 393, 223, + /* 1990 */ 351, 0, 35, 49, 39, 0, 35, 0, 39, 35, + /* 2000 */ 49, 69, 49, 0, 39, 49, 19, 427, 35, 429, + /* 2010 */ 39, 0, 432, 433, 434, 435, 436, 437, 379, 439, + /* 2020 */ 33, 0, 0, 0, 0, 0, 22, 35, 0, 35, + /* 2030 */ 391, 35, 393, 35, 35, 35, 49, 35, 22, 0, + /* 2040 */ 35, 22, 0, 35, 57, 58, 59, 60, 35, 62, + /* 2050 */ 44, 110, 112, 341, 44, 35, 22, 0, 22, 0, + /* 2060 */ 51, 35, 35, 351, 0, 35, 427, 0, 429, 22, + /* 2070 */ 20, 432, 433, 434, 435, 436, 437, 0, 439, 35, + /* 2080 */ 35, 35, 104, 103, 341, 103, 35, 22, 0, 102, + /* 2090 */ 198, 379, 105, 194, 351, 22, 0, 0, 3, 44, + /* 2100 */ 48, 48, 44, 391, 103, 393, 172, 172, 264, 47, + /* 2110 */ 44, 174, 44, 44, 99, 172, 104, 103, 101, 341, + /* 2120 */ 3, 103, 379, 44, 178, 138, 172, 47, 35, 351, + /* 2130 */ 178, 264, 47, 104, 391, 104, 393, 104, 103, 427, + /* 2140 */ 103, 429, 104, 103, 432, 433, 434, 435, 436, 437, + /* 2150 */ 35, 439, 104, 35, 35, 35, 341, 379, 258, 35, + /* 2160 */ 173, 47, 264, 0, 104, 104, 351, 180, 0, 391, + /* 2170 */ 427, 393, 429, 44, 103, 432, 433, 434, 435, 436, + /* 2180 */ 437, 341, 439, 39, 47, 103, 199, 104, 104, 103, + /* 2190 */ 103, 351, 103, 0, 379, 39, 47, 103, 44, 101, + /* 2200 */ 101, 2, 22, 113, 103, 427, 391, 429, 393, 223, /* 2210 */ 432, 433, 434, 435, 436, 437, 175, 439, 341, 379, - /* 2220 */ 173, 22, 47, 114, 35, 104, 104, 35, 351, 103, - /* 2230 */ 103, 391, 104, 393, 103, 103, 35, 104, 103, 35, - /* 2240 */ 104, 103, 427, 341, 429, 104, 104, 432, 433, 434, - /* 2250 */ 435, 436, 437, 351, 439, 104, 379, 103, 103, 35, - /* 2260 */ 103, 35, 104, 225, 104, 35, 103, 427, 391, 429, - /* 2270 */ 393, 103, 432, 433, 434, 435, 436, 437, 125, 439, - /* 2280 */ 103, 379, 44, 35, 125, 22, 103, 103, 69, 125, - /* 2290 */ 125, 68, 35, 391, 35, 393, 35, 35, 44, 35, - /* 2300 */ 35, 35, 35, 75, 427, 97, 429, 35, 35, 432, - /* 2310 */ 433, 434, 435, 436, 437, 341, 439, 35, 22, 35, - /* 2320 */ 35, 35, 75, 35, 35, 351, 35, 35, 35, 427, - /* 2330 */ 341, 429, 22, 35, 432, 433, 434, 435, 436, 437, - /* 2340 */ 351, 439, 0, 35, 49, 39, 0, 35, 341, 49, - /* 2350 */ 0, 35, 39, 379, 49, 0, 39, 35, 351, 39, - /* 2360 */ 0, 35, 35, 49, 0, 391, 22, 393, 379, 21, - /* 2370 */ 487, 22, 20, 22, 21, 487, 487, 487, 487, 487, + /* 2220 */ 104, 245, 173, 47, 103, 47, 104, 22, 351, 103, + /* 2230 */ 103, 391, 104, 393, 103, 35, 104, 103, 35, 114, + /* 2240 */ 104, 103, 427, 341, 429, 104, 35, 432, 433, 434, + /* 2250 */ 435, 436, 437, 351, 439, 103, 379, 225, 35, 104, + /* 2260 */ 103, 35, 104, 103, 35, 104, 104, 427, 391, 429, + /* 2270 */ 393, 35, 432, 433, 434, 435, 436, 437, 103, 439, + /* 2280 */ 103, 379, 103, 44, 125, 35, 103, 103, 22, 125, + /* 2290 */ 125, 125, 68, 391, 69, 393, 35, 35, 35, 35, + /* 2300 */ 35, 97, 35, 35, 427, 35, 429, 75, 22, 432, + /* 2310 */ 433, 434, 435, 436, 437, 341, 439, 44, 35, 35, + /* 2320 */ 35, 75, 35, 35, 35, 351, 35, 35, 35, 427, + /* 2330 */ 341, 429, 35, 35, 432, 433, 434, 435, 436, 437, + /* 2340 */ 351, 439, 22, 35, 0, 35, 39, 0, 341, 49, + /* 2350 */ 35, 49, 39, 379, 0, 49, 35, 39, 351, 0, + /* 2360 */ 35, 49, 39, 0, 35, 391, 0, 393, 379, 35, + /* 2370 */ 22, 21, 487, 22, 22, 487, 21, 20, 487, 487, /* 2380 */ 391, 487, 393, 487, 487, 487, 379, 487, 487, 487, /* 2390 */ 487, 487, 487, 487, 487, 341, 487, 487, 391, 487, /* 2400 */ 393, 427, 487, 429, 487, 351, 432, 433, 434, 435, @@ -829,9 +1168,9 @@ static const YYCODETYPE yy_lookahead[] = { /* 3180 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, /* 3190 */ 338, 338, 338, 338, 338, 338, }; -#define YY_SHIFT_COUNT (799) +#define YY_SHIFT_COUNT (801) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2364) +#define YY_SHIFT_MAX (2366) static const unsigned short int yy_shift_ofst[] = { /* 0 */ 1005, 0, 104, 0, 337, 337, 337, 337, 337, 337, /* 10 */ 337, 337, 337, 337, 337, 337, 441, 673, 673, 777, @@ -878,41 +1217,42 @@ static const unsigned short int yy_shift_ofst[] = { /* 420 */ 1715, 1535, 1717, 1720, 1722, 1542, 1759, 1725, 1726, 1546, /* 430 */ 1764, 1549, 1766, 1734, 1770, 1750, 1771, 1739, 1565, 1784, /* 440 */ 1587, 1788, 1590, 1594, 1600, 1610, 1806, 1807, 1808, 1622, - /* 450 */ 1624, 1811, 1812, 1769, 1813, 1817, 1818, 1774, 1822, 1781, - /* 460 */ 1825, 1826, 1828, 1783, 1831, 1832, 1833, 1835, 1836, 1837, - /* 470 */ 1679, 1805, 1843, 1691, 1852, 1853, 1855, 1857, 1858, 1859, + /* 450 */ 1624, 1811, 1812, 1769, 1813, 1817, 1772, 1779, 1822, 1776, + /* 460 */ 1825, 1786, 1826, 1830, 1831, 1785, 1833, 1835, 1836, 1837, + /* 470 */ 1838, 1843, 1681, 1818, 1850, 1693, 1855, 1857, 1858, 1859, /* 480 */ 1860, 1861, 1864, 1866, 1888, 1889, 1893, 1894, 1903, 1904, - /* 490 */ 1830, 1878, 1838, 1879, 1881, 1882, 1883, 1884, 1885, 1886, - /* 500 */ 1905, 1906, 1907, 1768, 1909, 1913, 1892, 1875, 1908, 1876, - /* 510 */ 1925, 1824, 1891, 1927, 1870, 1928, 1871, 1935, 1936, 1910, - /* 520 */ 1890, 1898, 1938, 1911, 1895, 1901, 1942, 1914, 1899, 1912, - /* 530 */ 1950, 1917, 1953, 1915, 1916, 1918, 1919, 1920, 1940, 1921, - /* 540 */ 1956, 1923, 1922, 1958, 1960, 1965, 1930, 1790, 1970, 1978, - /* 550 */ 1981, 1924, 1991, 1992, 1939, 1926, 1937, 1994, 1961, 1946, - /* 560 */ 1959, 1997, 1964, 1951, 1962, 2002, 1968, 1955, 1966, 2008, - /* 570 */ 2010, 2011, 2021, 2022, 2023, 1929, 1932, 1990, 2004, 2024, - /* 580 */ 1993, 1996, 1998, 1999, 2000, 2003, 2005, 1983, 1985, 2013, - /* 590 */ 2015, 2017, 2016, 2037, 2030, 2043, 2032, 2006, 2055, 2034, - /* 600 */ 2025, 2058, 2026, 2059, 2027, 2064, 2045, 2049, 2035, 2042, - /* 610 */ 2044, 1976, 1979, 2065, 1934, 1980, 1887, 2046, 2066, 2086, - /* 620 */ 1896, 2071, 1941, 1933, 2087, 2095, 1943, 1931, 1944, 1945, - /* 630 */ 2093, 2053, 1834, 2001, 1995, 2009, 2052, 2019, 2060, 2012, - /* 640 */ 2014, 2057, 2070, 2020, 2018, 2028, 2029, 2031, 2073, 2063, - /* 650 */ 2079, 2039, 2083, 1869, 2033, 2036, 2099, 2084, 1874, 2108, - /* 660 */ 2115, 2117, 2118, 2119, 2120, 2061, 2069, 2111, 1872, 2124, - /* 670 */ 2112, 2161, 2162, 2080, 2125, 1919, 2116, 2081, 2085, 2088, - /* 680 */ 2082, 2090, 2041, 2092, 2174, 2148, 2047, 2094, 2075, 1919, - /* 690 */ 2143, 2152, 2097, 1954, 2100, 2198, 2180, 1986, 2101, 2121, - /* 700 */ 2126, 2122, 2127, 2128, 2156, 2131, 2132, 2175, 2133, 2199, - /* 710 */ 2038, 2135, 2109, 2136, 2189, 2192, 2138, 2141, 2201, 2154, - /* 720 */ 2142, 2204, 2155, 2151, 2224, 2157, 2158, 2226, 2163, 2160, - /* 730 */ 2230, 2168, 2153, 2159, 2164, 2165, 2177, 2238, 2183, 2248, - /* 740 */ 2184, 2238, 2238, 2263, 2219, 2223, 2257, 2259, 2261, 2262, - /* 750 */ 2264, 2265, 2266, 2267, 2228, 2208, 2254, 2272, 2273, 2282, - /* 760 */ 2296, 2284, 2285, 2286, 2247, 1983, 2288, 1985, 2289, 2291, - /* 770 */ 2292, 2293, 2310, 2298, 2342, 2308, 2295, 2306, 2346, 2312, - /* 780 */ 2300, 2313, 2350, 2316, 2305, 2317, 2355, 2322, 2314, 2320, - /* 790 */ 2360, 2326, 2327, 2364, 2344, 2348, 2349, 2351, 2353, 2352, + /* 490 */ 1905, 1906, 1832, 1880, 1839, 1882, 1883, 1884, 1885, 1886, + /* 500 */ 1907, 1856, 1908, 1909, 1911, 1780, 1913, 1914, 1910, 1829, + /* 510 */ 1915, 1876, 1925, 1865, 1891, 1928, 1868, 1933, 1873, 1936, + /* 520 */ 1938, 1916, 1890, 1901, 1942, 1917, 1895, 1918, 1945, 1919, + /* 530 */ 1897, 1921, 1948, 1920, 1949, 1923, 1922, 1912, 1927, 1929, + /* 540 */ 1939, 1931, 1950, 1926, 1924, 1958, 1962, 1967, 1930, 1790, + /* 550 */ 1968, 1970, 1975, 1932, 1981, 1991, 1957, 1944, 1955, 1995, + /* 560 */ 1961, 1951, 1959, 1997, 1964, 1953, 1965, 2003, 1973, 1956, + /* 570 */ 1971, 2011, 2021, 2022, 2023, 2024, 2025, 1940, 1941, 1992, + /* 580 */ 2004, 2028, 1994, 1996, 1998, 1999, 2000, 2002, 2005, 2006, + /* 590 */ 2010, 2008, 2013, 2016, 2020, 2039, 2019, 2042, 2034, 2009, + /* 600 */ 2057, 2036, 2026, 2059, 2027, 2064, 2030, 2067, 2047, 2050, + /* 610 */ 2044, 2045, 2046, 1978, 1980, 2077, 1934, 1982, 1892, 2051, + /* 620 */ 2065, 2088, 1899, 2073, 1935, 1937, 2096, 2097, 1943, 1946, + /* 630 */ 1954, 1952, 2095, 2055, 1844, 2001, 2012, 2014, 2052, 2017, + /* 640 */ 2053, 2015, 2029, 2058, 2066, 2031, 2018, 2035, 2037, 2033, + /* 650 */ 2068, 2062, 2080, 2040, 2069, 1867, 2038, 2048, 2117, 2079, + /* 660 */ 1898, 2093, 2115, 2118, 2119, 2120, 2124, 2060, 2061, 2085, + /* 670 */ 1900, 2129, 2114, 2163, 2168, 2071, 2144, 1927, 2137, 2082, + /* 680 */ 2083, 2084, 2086, 2087, 2041, 2089, 2193, 2156, 2049, 2094, + /* 690 */ 2090, 1927, 2149, 2154, 2098, 1976, 2099, 2199, 2180, 1986, + /* 700 */ 2101, 2116, 2121, 2122, 2126, 2128, 2176, 2127, 2131, 2178, + /* 710 */ 2132, 2205, 2032, 2134, 2125, 2136, 2200, 2203, 2138, 2141, + /* 720 */ 2211, 2152, 2155, 2223, 2157, 2158, 2226, 2160, 2161, 2229, + /* 730 */ 2175, 2162, 2236, 2177, 2159, 2164, 2165, 2166, 2179, 2239, + /* 740 */ 2183, 2250, 2184, 2239, 2239, 2266, 2225, 2224, 2261, 2262, + /* 750 */ 2263, 2264, 2265, 2267, 2268, 2270, 2232, 2204, 2273, 2283, + /* 760 */ 2284, 2285, 2286, 2287, 2288, 2289, 2246, 2006, 2291, 2010, + /* 770 */ 2292, 2293, 2297, 2298, 2320, 2308, 2344, 2310, 2300, 2307, + /* 780 */ 2347, 2315, 2302, 2313, 2354, 2321, 2306, 2318, 2359, 2325, + /* 790 */ 2312, 2323, 2363, 2329, 2334, 2366, 2348, 2350, 2351, 2352, + /* 800 */ 2355, 2357, }; #define YY_REDUCE_COUNT (322) #define YY_REDUCE_MIN (-404) @@ -953,86 +1293,87 @@ static const short yy_reduce_ofst[] = { /* 320 */ 1371, 1370, 1388, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 10 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 20 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 30 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 40 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 50 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 60 */ 2091, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 70 */ 1780, 1780, 1780, 1780, 2064, 1780, 1780, 1780, 1780, 1780, - /* 80 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 90 */ 1780, 1869, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 100 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 110 */ 1867, 2057, 2283, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 120 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 130 */ 1780, 1780, 1780, 1780, 1780, 1780, 2295, 1780, 1780, 1843, - /* 140 */ 1843, 1780, 2295, 2295, 2295, 1867, 2255, 2255, 1780, 1869, - /* 150 */ 2125, 1780, 1780, 1780, 1780, 1780, 1780, 1989, 1780, 1780, - /* 160 */ 1780, 1780, 1780, 2013, 1780, 1780, 1780, 2117, 1780, 1780, - /* 170 */ 2320, 2377, 1780, 1780, 2323, 1780, 1780, 1780, 1780, 1780, - /* 180 */ 1780, 2069, 1780, 1780, 1942, 2310, 2287, 2301, 2361, 2288, - /* 190 */ 2285, 2304, 1780, 2314, 1780, 1780, 2139, 1869, 1780, 1869, - /* 200 */ 2104, 1780, 2062, 1780, 1780, 2062, 2059, 1780, 1780, 1780, - /* 210 */ 2062, 2059, 2059, 1931, 1927, 1780, 1925, 1780, 1780, 1780, - /* 220 */ 1780, 1827, 1780, 1827, 1780, 1869, 1780, 1869, 1780, 1780, - /* 230 */ 1869, 1780, 1869, 1869, 1869, 1780, 1869, 1780, 1780, 1780, - /* 240 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 250 */ 1780, 1780, 1780, 1780, 2137, 2123, 1780, 1867, 2115, 2113, - /* 260 */ 1780, 1867, 2111, 2314, 1780, 1780, 1780, 1780, 2331, 2329, - /* 270 */ 1780, 2331, 2329, 1780, 1780, 1780, 2345, 2341, 2331, 2350, - /* 280 */ 2347, 2316, 2314, 2380, 2367, 2363, 2301, 1780, 1780, 1780, - /* 290 */ 1867, 1867, 1780, 2329, 1780, 1780, 1780, 1780, 1780, 2329, - /* 300 */ 1780, 1780, 1867, 1780, 1867, 1780, 1780, 1958, 1780, 1780, - /* 310 */ 1780, 1867, 1812, 1780, 2106, 2128, 2087, 2087, 1992, 1992, - /* 320 */ 1992, 1870, 1785, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 330 */ 1780, 1780, 1780, 1780, 1780, 2344, 2343, 2210, 1780, 2259, - /* 340 */ 2258, 2257, 2248, 2209, 1954, 1780, 2208, 2207, 1780, 1780, - /* 350 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 2078, 2077, 2201, - /* 360 */ 1780, 1780, 2202, 2200, 2199, 1780, 1780, 1780, 1780, 1780, - /* 370 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 380 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 2364, - /* 390 */ 2368, 1780, 1780, 1780, 1780, 1780, 1780, 2284, 1780, 1780, - /* 400 */ 1780, 2183, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 410 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 420 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 430 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 440 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 450 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 460 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 470 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 480 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 490 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 500 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 510 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 520 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 530 */ 1780, 1780, 1780, 1780, 1780, 1817, 2188, 1780, 1780, 1780, - /* 540 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 550 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 560 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 570 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 580 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1908, 1907, 1780, - /* 590 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 600 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 610 */ 1780, 2192, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 620 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 630 */ 2360, 2317, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 640 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 650 */ 2183, 1780, 2342, 1780, 1780, 2358, 1780, 2362, 1780, 1780, - /* 660 */ 1780, 1780, 1780, 1780, 1780, 2294, 2290, 1780, 1780, 2286, - /* 670 */ 1780, 1780, 1780, 1780, 1780, 2191, 1780, 1780, 1780, 1780, - /* 680 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 2182, - /* 690 */ 1780, 2245, 1780, 1780, 1780, 2279, 1780, 1780, 2230, 1780, - /* 700 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 2192, 1780, - /* 710 */ 2195, 1780, 1780, 1780, 1780, 1780, 1986, 1780, 1780, 1780, - /* 720 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 730 */ 1780, 1780, 1970, 1968, 1967, 1966, 1780, 1999, 1780, 1780, - /* 740 */ 1780, 1995, 1994, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 750 */ 1780, 1780, 1780, 1780, 1780, 1780, 1888, 1780, 1780, 1780, - /* 760 */ 1780, 1780, 1780, 1780, 1780, 1880, 1780, 1879, 1780, 1780, - /* 770 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 780 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, - /* 790 */ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, + /* 0 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 10 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 20 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 30 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 40 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 50 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 60 */ 2093, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 70 */ 1782, 1782, 1782, 1782, 2066, 1782, 1782, 1782, 1782, 1782, + /* 80 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 90 */ 1782, 1871, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 100 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 110 */ 1869, 2059, 2285, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 120 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 130 */ 1782, 1782, 1782, 1782, 1782, 1782, 2297, 1782, 1782, 1845, + /* 140 */ 1845, 1782, 2297, 2297, 2297, 1869, 2257, 2257, 1782, 1871, + /* 150 */ 2127, 1782, 1782, 1782, 1782, 1782, 1782, 1991, 1782, 1782, + /* 160 */ 1782, 1782, 1782, 2015, 1782, 1782, 1782, 2119, 1782, 1782, + /* 170 */ 2322, 2379, 1782, 1782, 2325, 1782, 1782, 1782, 1782, 1782, + /* 180 */ 1782, 2071, 1782, 1782, 1944, 2312, 2289, 2303, 2363, 2290, + /* 190 */ 2287, 2306, 1782, 2316, 1782, 1782, 2141, 1871, 1782, 1871, + /* 200 */ 2106, 1782, 2064, 1782, 1782, 2064, 2061, 1782, 1782, 1782, + /* 210 */ 2064, 2061, 2061, 1933, 1929, 1782, 1927, 1782, 1782, 1782, + /* 220 */ 1782, 1829, 1782, 1829, 1782, 1871, 1782, 1871, 1782, 1782, + /* 230 */ 1871, 1782, 1871, 1871, 1871, 1782, 1871, 1782, 1782, 1782, + /* 240 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 250 */ 1782, 1782, 1782, 1782, 2139, 2125, 1782, 1869, 2117, 2115, + /* 260 */ 1782, 1869, 2113, 2316, 1782, 1782, 1782, 1782, 2333, 2331, + /* 270 */ 1782, 2333, 2331, 1782, 1782, 1782, 2347, 2343, 2333, 2352, + /* 280 */ 2349, 2318, 2316, 2382, 2369, 2365, 2303, 1782, 1782, 1782, + /* 290 */ 1869, 1869, 1782, 2331, 1782, 1782, 1782, 1782, 1782, 2331, + /* 300 */ 1782, 1782, 1869, 1782, 1869, 1782, 1782, 1960, 1782, 1782, + /* 310 */ 1782, 1869, 1814, 1782, 2108, 2130, 2089, 2089, 1994, 1994, + /* 320 */ 1994, 1872, 1787, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 330 */ 1782, 1782, 1782, 1782, 1782, 2346, 2345, 2212, 1782, 2261, + /* 340 */ 2260, 2259, 2250, 2211, 1956, 1782, 2210, 2209, 1782, 1782, + /* 350 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2080, 2079, 2203, + /* 360 */ 1782, 1782, 2204, 2202, 2201, 1782, 1782, 1782, 1782, 1782, + /* 370 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 380 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2366, + /* 390 */ 2370, 1782, 1782, 1782, 1782, 1782, 1782, 2286, 1782, 1782, + /* 400 */ 1782, 2185, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 410 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 420 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 430 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 440 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 450 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 460 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 470 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 480 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 490 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 500 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 510 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 520 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 530 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1819, 2190, 1782, + /* 540 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 550 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 560 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 570 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 580 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1910, + /* 590 */ 1909, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 600 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 610 */ 1782, 1782, 1782, 2194, 1782, 1782, 1782, 1782, 1782, 1782, + /* 620 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 630 */ 1782, 1782, 2362, 2319, 1782, 1782, 1782, 1782, 1782, 1782, + /* 640 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 650 */ 1782, 1782, 2185, 1782, 2344, 1782, 1782, 2360, 1782, 2364, + /* 660 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2296, 2292, 1782, + /* 670 */ 1782, 2288, 1782, 1782, 1782, 1782, 1782, 2193, 1782, 1782, + /* 680 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 690 */ 1782, 2184, 1782, 2247, 1782, 1782, 1782, 2281, 1782, 1782, + /* 700 */ 2232, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 710 */ 2194, 1782, 2197, 1782, 1782, 1782, 1782, 1782, 1988, 1782, + /* 720 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 730 */ 1782, 1782, 1782, 1782, 1972, 1970, 1969, 1968, 1782, 2001, + /* 740 */ 1782, 1782, 1782, 1997, 1996, 1782, 1782, 1782, 1782, 1782, + /* 750 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1890, 1782, + /* 760 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1882, 1782, 1881, + /* 770 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 780 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 790 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + /* 800 */ 1782, 1782, }; /********** End of lemon-generated parsing tables *****************************/ @@ -1441,6 +1782,7 @@ struct yyParser { }; typedef struct yyParser yyParser; +#include #ifndef NDEBUG #include static FILE *yyTraceFILE = 0; @@ -2241,8 +2583,8 @@ static const char *const yyRuleName[] = { /* 267 */ "cmd ::= SHOW TAGS FROM db_name NK_DOT table_name", /* 268 */ "cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt", /* 269 */ "cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name", - /* 270 */ "cmd ::= SHOW VNODES NK_INTEGER", - /* 271 */ "cmd ::= SHOW VNODES NK_STRING", + /* 270 */ "cmd ::= SHOW VNODES ON DNODE NK_INTEGER", + /* 271 */ "cmd ::= SHOW VNODES ON DNODE NK_STRING", /* 272 */ "cmd ::= SHOW db_name_cond_opt ALIVE", /* 273 */ "cmd ::= SHOW CLUSTER ALIVE", /* 274 */ "db_name_cond_opt ::=", @@ -2772,7 +3114,9 @@ static void yy_destructor( case 482: /* query_simple_or_subquery */ case 484: /* sort_specification */ { +#line 7 "sql.y" nodesDestroyNode((yypminor->yy452)); +#line 3119 "sql.c" } break; case 339: /* account_options */ @@ -2782,7 +3126,9 @@ static void yy_destructor( case 410: /* with_meta */ case 419: /* bufsize_opt */ { +#line 54 "sql.y" +#line 3131 "sql.c" } break; case 343: /* user_name */ @@ -2803,24 +3149,32 @@ static void yy_destructor( case 439: /* noarg_func */ case 457: /* alias_opt */ { +#line 742 "sql.y" +#line 3154 "sql.c" } break; case 344: /* sysinfo_opt */ { +#line 92 "sql.y" +#line 3161 "sql.c" } break; case 345: /* privileges */ case 348: /* priv_type_list */ case 349: /* priv_type */ { +#line 101 "sql.y" +#line 3170 "sql.c" } break; case 346: /* priv_level */ { +#line 117 "sql.y" +#line 3177 "sql.c" } break; case 355: /* force_opt */ @@ -2833,7 +3187,9 @@ static void yy_destructor( case 426: /* ignore_opt */ case 462: /* set_quantifier_opt */ { +#line 146 "sql.y" +#line 3192 "sql.c" } break; case 364: /* integer_list */ @@ -2866,44 +3222,60 @@ static void yy_destructor( case 478: /* order_by_clause_opt */ case 483: /* sort_specification_list */ { +#line 270 "sql.y" nodesDestroyList((yypminor->yy812)); +#line 3227 "sql.c" } break; case 368: /* alter_db_option */ case 390: /* alter_table_option */ { +#line 243 "sql.y" +#line 3235 "sql.c" } break; case 380: /* type_name */ { +#line 364 "sql.y" +#line 3242 "sql.c" } break; case 447: /* compare_op */ case 448: /* in_op */ { +#line 930 "sql.y" +#line 3250 "sql.c" } break; case 460: /* join_type */ { +#line 1006 "sql.y" +#line 3257 "sql.c" } break; case 474: /* fill_mode */ { +#line 1081 "sql.y" +#line 3264 "sql.c" } break; case 485: /* ordering_specification_opt */ { +#line 1166 "sql.y" +#line 3271 "sql.c" } break; case 486: /* null_ordering_opt */ { +#line 1172 "sql.y" +#line 3278 "sql.c" } break; /********* End destructor definitions *****************************************/ @@ -3070,7 +3442,7 @@ static YYACTIONTYPE yy_find_shift_action( #endif /* YYWILDCARD */ return yy_default[stateno]; }else{ - assert( i>=0 && i=0 && i<(int)(sizeof(yy_action)/sizeof(yy_action[0])) ); return yy_action[i]; } }while(1); @@ -3462,8 +3834,8 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 338, /* (267) cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ 338, /* (268) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ 338, /* (269) cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ - 338, /* (270) cmd ::= SHOW VNODES NK_INTEGER */ - 338, /* (271) cmd ::= SHOW VNODES NK_STRING */ + 338, /* (270) cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ + 338, /* (271) cmd ::= SHOW VNODES ON DNODE NK_STRING */ 338, /* (272) cmd ::= SHOW db_name_cond_opt ALIVE */ 338, /* (273) cmd ::= SHOW CLUSTER ALIVE */ 395, /* (274) db_name_cond_opt ::= */ @@ -4067,8 +4439,8 @@ static const signed char yyRuleInfoNRhs[] = { -6, /* (267) cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ -7, /* (268) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ -8, /* (269) cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ - -3, /* (270) cmd ::= SHOW VNODES NK_INTEGER */ - -3, /* (271) cmd ::= SHOW VNODES NK_STRING */ + -5, /* (270) cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ + -5, /* (271) cmd ::= SHOW VNODES ON DNODE NK_STRING */ -3, /* (272) cmd ::= SHOW db_name_cond_opt ALIVE */ -3, /* (273) cmd ::= SHOW CLUSTER ALIVE */ 0, /* (274) db_name_cond_opt ::= */ @@ -4426,54 +4798,6 @@ static YYACTIONTYPE yy_reduce( (void)yyLookahead; (void)yyLookaheadToken; yymsp = yypParser->yytos; -#ifndef NDEBUG - if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - yysize = yyRuleInfoNRhs[yyruleno]; - if( yysize ){ - fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n", - yyTracePrompt, - yyruleno, yyRuleName[yyruleno], - yyrulenoyytos - yypParser->yystack)>yypParser->yyhwm ){ - yypParser->yyhwm++; - assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack)); - } -#endif -#if YYSTACKDEPTH>0 - if( yypParser->yytos>=yypParser->yystackEnd ){ - yyStackOverflow(yypParser); - /* The call to yyStackOverflow() above pops the stack until it is - ** empty, causing the main parser loop to exit. So the return value - ** is never used and does not matter. */ - return 0; - } -#else - if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){ - if( yyGrowStack(yypParser) ){ - yyStackOverflow(yypParser); - /* The call to yyStackOverflow() above pops the stack until it is - ** empty, causing the main parser loop to exit. So the return value - ** is never used and does not matter. */ - return 0; - } - yymsp = yypParser->yytos; - } -#endif - } switch( yyruleno ){ /* Beginning here are the reduction cases. A typical example @@ -4487,15 +4811,21 @@ static YYACTIONTYPE yy_reduce( /********** Begin reduce actions **********************************************/ YYMINORTYPE yylhsminor; 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 4816 "sql.c" yy_destructor(yypParser,339,&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 4822 "sql.c" yy_destructor(yypParser,340,&yymsp[0].minor); break; case 2: /* account_options ::= */ +#line 55 "sql.y" { } +#line 4828 "sql.c" break; case 3: /* account_options ::= account_options PPS literal */ case 4: /* account_options ::= account_options TSERIES literal */ yytestcase(yyruleno==4); @@ -4507,18 +4837,24 @@ static YYACTIONTYPE yy_reduce( case 10: /* account_options ::= account_options CONNS literal */ yytestcase(yyruleno==10); case 11: /* account_options ::= account_options STATE literal */ yytestcase(yyruleno==11); { yy_destructor(yypParser,339,&yymsp[-2].minor); +#line 56 "sql.y" { } +#line 4842 "sql.c" yy_destructor(yypParser,341,&yymsp[0].minor); } break; case 12: /* alter_account_options ::= alter_account_option */ { yy_destructor(yypParser,342,&yymsp[0].minor); +#line 68 "sql.y" { } +#line 4850 "sql.c" } break; case 13: /* alter_account_options ::= alter_account_options alter_account_option */ { yy_destructor(yypParser,340,&yymsp[-1].minor); +#line 69 "sql.y" { } +#line 4857 "sql.c" yy_destructor(yypParser,342,&yymsp[0].minor); } break; @@ -4532,71 +4868,111 @@ static YYACTIONTYPE yy_reduce( case 21: /* alter_account_option ::= USERS literal */ yytestcase(yyruleno==21); case 22: /* alter_account_option ::= CONNS literal */ yytestcase(yyruleno==22); case 23: /* alter_account_option ::= STATE literal */ yytestcase(yyruleno==23); +#line 73 "sql.y" { } +#line 4873 "sql.c" yy_destructor(yypParser,341,&yymsp[0].minor); break; case 24: /* cmd ::= CREATE USER user_name PASS NK_STRING sysinfo_opt */ +#line 85 "sql.y" { pCxt->pRootNode = createCreateUserStmt(pCxt, &yymsp[-3].minor.yy371, &yymsp[-1].minor.yy0, yymsp[0].minor.yy475); } +#line 4879 "sql.c" break; case 25: /* cmd ::= ALTER USER user_name PASS NK_STRING */ +#line 86 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy371, TSDB_ALTER_USER_PASSWD, &yymsp[0].minor.yy0); } +#line 4884 "sql.c" break; case 26: /* cmd ::= ALTER USER user_name ENABLE NK_INTEGER */ +#line 87 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy371, TSDB_ALTER_USER_ENABLE, &yymsp[0].minor.yy0); } +#line 4889 "sql.c" break; case 27: /* cmd ::= ALTER USER user_name SYSINFO NK_INTEGER */ +#line 88 "sql.y" { pCxt->pRootNode = createAlterUserStmt(pCxt, &yymsp[-2].minor.yy371, TSDB_ALTER_USER_SYSINFO, &yymsp[0].minor.yy0); } +#line 4894 "sql.c" break; case 28: /* cmd ::= DROP USER user_name */ +#line 89 "sql.y" { pCxt->pRootNode = createDropUserStmt(pCxt, &yymsp[0].minor.yy371); } +#line 4899 "sql.c" break; case 29: /* sysinfo_opt ::= */ +#line 93 "sql.y" { yymsp[1].minor.yy475 = 1; } +#line 4904 "sql.c" break; case 30: /* sysinfo_opt ::= SYSINFO NK_INTEGER */ +#line 94 "sql.y" { yymsp[-1].minor.yy475 = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); } +#line 4909 "sql.c" break; case 31: /* cmd ::= GRANT privileges ON priv_level with_opt TO user_name */ +#line 97 "sql.y" { pCxt->pRootNode = createGrantStmt(pCxt, yymsp[-5].minor.yy729, &yymsp[-3].minor.yy347, &yymsp[0].minor.yy371, yymsp[-2].minor.yy452); } +#line 4914 "sql.c" break; case 32: /* cmd ::= REVOKE privileges ON priv_level with_opt FROM user_name */ +#line 98 "sql.y" { pCxt->pRootNode = createRevokeStmt(pCxt, yymsp[-5].minor.yy729, &yymsp[-3].minor.yy347, &yymsp[0].minor.yy371, yymsp[-2].minor.yy452); } +#line 4919 "sql.c" break; case 33: /* privileges ::= ALL */ +#line 102 "sql.y" { yymsp[0].minor.yy729 = PRIVILEGE_TYPE_ALL; } +#line 4924 "sql.c" break; case 34: /* privileges ::= priv_type_list */ case 36: /* priv_type_list ::= priv_type */ yytestcase(yyruleno==36); +#line 103 "sql.y" { yylhsminor.yy729 = yymsp[0].minor.yy729; } +#line 4930 "sql.c" yymsp[0].minor.yy729 = yylhsminor.yy729; break; case 35: /* privileges ::= SUBSCRIBE */ +#line 104 "sql.y" { yymsp[0].minor.yy729 = PRIVILEGE_TYPE_SUBSCRIBE; } +#line 4936 "sql.c" break; case 37: /* priv_type_list ::= priv_type_list NK_COMMA priv_type */ +#line 109 "sql.y" { yylhsminor.yy729 = yymsp[-2].minor.yy729 | yymsp[0].minor.yy729; } +#line 4941 "sql.c" yymsp[-2].minor.yy729 = yylhsminor.yy729; break; case 38: /* priv_type ::= READ */ +#line 113 "sql.y" { yymsp[0].minor.yy729 = PRIVILEGE_TYPE_READ; } +#line 4947 "sql.c" break; case 39: /* priv_type ::= WRITE */ +#line 114 "sql.y" { yymsp[0].minor.yy729 = PRIVILEGE_TYPE_WRITE; } +#line 4952 "sql.c" break; case 40: /* priv_level ::= NK_STAR NK_DOT NK_STAR */ +#line 118 "sql.y" { yylhsminor.yy347.first = yymsp[-2].minor.yy0; yylhsminor.yy347.second = yymsp[0].minor.yy0; } +#line 4957 "sql.c" yymsp[-2].minor.yy347 = yylhsminor.yy347; break; case 41: /* priv_level ::= db_name NK_DOT NK_STAR */ +#line 119 "sql.y" { yylhsminor.yy347.first = yymsp[-2].minor.yy371; yylhsminor.yy347.second = yymsp[0].minor.yy0; } +#line 4963 "sql.c" yymsp[-2].minor.yy347 = yylhsminor.yy347; break; case 42: /* priv_level ::= db_name NK_DOT table_name */ +#line 120 "sql.y" { yylhsminor.yy347.first = yymsp[-2].minor.yy371; yylhsminor.yy347.second = yymsp[0].minor.yy371; } +#line 4969 "sql.c" yymsp[-2].minor.yy347 = yylhsminor.yy347; break; case 43: /* priv_level ::= topic_name */ +#line 121 "sql.y" { yylhsminor.yy347.first = yymsp[0].minor.yy371; yylhsminor.yy347.second = nil_token; } +#line 4975 "sql.c" yymsp[0].minor.yy347 = yylhsminor.yy347; break; case 44: /* with_opt ::= */ @@ -4615,46 +4991,72 @@ static YYACTIONTYPE yy_reduce( case 567: /* every_opt ::= */ yytestcase(yyruleno==567); case 580: /* slimit_clause_opt ::= */ yytestcase(yyruleno==580); case 584: /* limit_clause_opt ::= */ yytestcase(yyruleno==584); +#line 123 "sql.y" { yymsp[1].minor.yy452 = NULL; } +#line 4996 "sql.c" break; case 45: /* with_opt ::= WITH search_condition */ case 503: /* from_clause_opt ::= FROM table_reference_list */ yytestcase(yyruleno==503); case 532: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==532); case 563: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==563); +#line 124 "sql.y" { yymsp[-1].minor.yy452 = yymsp[0].minor.yy452; } +#line 5004 "sql.c" break; case 46: /* cmd ::= CREATE DNODE dnode_endpoint */ +#line 127 "sql.y" { pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[0].minor.yy371, NULL); } +#line 5009 "sql.c" break; case 47: /* cmd ::= CREATE DNODE dnode_endpoint PORT NK_INTEGER */ +#line 128 "sql.y" { pCxt->pRootNode = createCreateDnodeStmt(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy0); } +#line 5014 "sql.c" break; case 48: /* cmd ::= DROP DNODE NK_INTEGER force_opt */ +#line 129 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy667, false); } +#line 5019 "sql.c" break; case 49: /* cmd ::= DROP DNODE dnode_endpoint force_opt */ +#line 130 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy371, yymsp[0].minor.yy667, false); } +#line 5024 "sql.c" break; case 50: /* cmd ::= DROP DNODE NK_INTEGER unsafe_opt */ +#line 131 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy0, false, yymsp[0].minor.yy667); } +#line 5029 "sql.c" break; case 51: /* cmd ::= DROP DNODE dnode_endpoint unsafe_opt */ +#line 132 "sql.y" { pCxt->pRootNode = createDropDnodeStmt(pCxt, &yymsp[-1].minor.yy371, false, yymsp[0].minor.yy667); } +#line 5034 "sql.c" break; case 52: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING */ +#line 133 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, NULL); } +#line 5039 "sql.c" break; case 53: /* cmd ::= ALTER DNODE NK_INTEGER NK_STRING NK_STRING */ +#line 134 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, &yymsp[-2].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } +#line 5044 "sql.c" break; case 54: /* cmd ::= ALTER ALL DNODES NK_STRING */ +#line 135 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, NULL, &yymsp[0].minor.yy0, NULL); } +#line 5049 "sql.c" break; case 55: /* cmd ::= ALTER ALL DNODES NK_STRING NK_STRING */ +#line 136 "sql.y" { pCxt->pRootNode = createAlterDnodeStmt(pCxt, NULL, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } +#line 5054 "sql.c" break; case 56: /* cmd ::= RESTORE DNODE NK_INTEGER */ +#line 137 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_DNODE_STMT, &yymsp[0].minor.yy0); } +#line 5059 "sql.c" break; case 57: /* dnode_endpoint ::= NK_STRING */ case 58: /* dnode_endpoint ::= NK_ID */ yytestcase(yyruleno==58); @@ -4687,7 +5089,9 @@ static YYACTIONTYPE yy_reduce( case 458: /* star_func ::= FIRST */ yytestcase(yyruleno==458); case 459: /* star_func ::= LAST */ yytestcase(yyruleno==459); case 460: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==460); +#line 141 "sql.y" { yylhsminor.yy371 = yymsp[0].minor.yy0; } +#line 5094 "sql.c" yymsp[0].minor.yy371 = yylhsminor.yy371; break; case 60: /* force_opt ::= */ @@ -4698,282 +5102,428 @@ static YYACTIONTYPE yy_reduce( case 334: /* or_replace_opt ::= */ yytestcase(yyruleno==334); case 356: /* ignore_opt ::= */ yytestcase(yyruleno==356); case 521: /* set_quantifier_opt ::= */ yytestcase(yyruleno==521); +#line 147 "sql.y" { yymsp[1].minor.yy667 = false; } +#line 5107 "sql.c" break; case 61: /* force_opt ::= FORCE */ case 62: /* unsafe_opt ::= UNSAFE */ yytestcase(yyruleno==62); case 322: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==322); case 329: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==329); case 522: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==522); +#line 148 "sql.y" { yymsp[0].minor.yy667 = true; } +#line 5116 "sql.c" break; case 63: /* cmd ::= ALTER LOCAL NK_STRING */ +#line 155 "sql.y" { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[0].minor.yy0, NULL); } +#line 5121 "sql.c" break; case 64: /* cmd ::= ALTER LOCAL NK_STRING NK_STRING */ +#line 156 "sql.y" { pCxt->pRootNode = createAlterLocalStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } +#line 5126 "sql.c" break; case 65: /* cmd ::= CREATE QNODE ON DNODE NK_INTEGER */ +#line 159 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_QNODE_STMT, &yymsp[0].minor.yy0); } +#line 5131 "sql.c" break; case 66: /* cmd ::= DROP QNODE ON DNODE NK_INTEGER */ +#line 160 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_QNODE_STMT, &yymsp[0].minor.yy0); } +#line 5136 "sql.c" break; case 67: /* cmd ::= RESTORE QNODE ON DNODE NK_INTEGER */ +#line 161 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_QNODE_STMT, &yymsp[0].minor.yy0); } +#line 5141 "sql.c" break; case 68: /* cmd ::= CREATE BNODE ON DNODE NK_INTEGER */ +#line 164 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_BNODE_STMT, &yymsp[0].minor.yy0); } +#line 5146 "sql.c" break; case 69: /* cmd ::= DROP BNODE ON DNODE NK_INTEGER */ +#line 165 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_BNODE_STMT, &yymsp[0].minor.yy0); } +#line 5151 "sql.c" break; case 70: /* cmd ::= CREATE SNODE ON DNODE NK_INTEGER */ +#line 168 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_SNODE_STMT, &yymsp[0].minor.yy0); } +#line 5156 "sql.c" break; case 71: /* cmd ::= DROP SNODE ON DNODE NK_INTEGER */ +#line 169 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_SNODE_STMT, &yymsp[0].minor.yy0); } +#line 5161 "sql.c" break; case 72: /* cmd ::= CREATE MNODE ON DNODE NK_INTEGER */ +#line 172 "sql.y" { pCxt->pRootNode = createCreateComponentNodeStmt(pCxt, QUERY_NODE_CREATE_MNODE_STMT, &yymsp[0].minor.yy0); } +#line 5166 "sql.c" break; case 73: /* cmd ::= DROP MNODE ON DNODE NK_INTEGER */ +#line 173 "sql.y" { pCxt->pRootNode = createDropComponentNodeStmt(pCxt, QUERY_NODE_DROP_MNODE_STMT, &yymsp[0].minor.yy0); } +#line 5171 "sql.c" break; case 74: /* cmd ::= RESTORE MNODE ON DNODE NK_INTEGER */ +#line 174 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_MNODE_STMT, &yymsp[0].minor.yy0); } +#line 5176 "sql.c" break; case 75: /* cmd ::= RESTORE VNODE ON DNODE NK_INTEGER */ +#line 177 "sql.y" { pCxt->pRootNode = createRestoreComponentNodeStmt(pCxt, QUERY_NODE_RESTORE_VNODE_STMT, &yymsp[0].minor.yy0); } +#line 5181 "sql.c" break; case 76: /* cmd ::= CREATE DATABASE not_exists_opt db_name db_options */ +#line 180 "sql.y" { pCxt->pRootNode = createCreateDatabaseStmt(pCxt, yymsp[-2].minor.yy667, &yymsp[-1].minor.yy371, yymsp[0].minor.yy452); } +#line 5186 "sql.c" break; case 77: /* cmd ::= DROP DATABASE exists_opt db_name */ +#line 181 "sql.y" { pCxt->pRootNode = createDropDatabaseStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 5191 "sql.c" break; case 78: /* cmd ::= USE db_name */ +#line 182 "sql.y" { pCxt->pRootNode = createUseDatabaseStmt(pCxt, &yymsp[0].minor.yy371); } +#line 5196 "sql.c" break; case 79: /* cmd ::= ALTER DATABASE db_name alter_db_options */ +#line 183 "sql.y" { pCxt->pRootNode = createAlterDatabaseStmt(pCxt, &yymsp[-1].minor.yy371, yymsp[0].minor.yy452); } +#line 5201 "sql.c" break; case 80: /* cmd ::= FLUSH DATABASE db_name */ +#line 184 "sql.y" { pCxt->pRootNode = createFlushDatabaseStmt(pCxt, &yymsp[0].minor.yy371); } +#line 5206 "sql.c" break; case 81: /* cmd ::= TRIM DATABASE db_name speed_opt */ +#line 185 "sql.y" { pCxt->pRootNode = createTrimDatabaseStmt(pCxt, &yymsp[-1].minor.yy371, yymsp[0].minor.yy416); } +#line 5211 "sql.c" break; case 82: /* cmd ::= COMPACT DATABASE db_name start_opt end_opt */ +#line 186 "sql.y" { pCxt->pRootNode = createCompactStmt(pCxt, &yymsp[-2].minor.yy371, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 5216 "sql.c" break; case 83: /* not_exists_opt ::= IF NOT EXISTS */ +#line 190 "sql.y" { yymsp[-2].minor.yy667 = true; } +#line 5221 "sql.c" break; case 85: /* exists_opt ::= IF EXISTS */ case 335: /* or_replace_opt ::= OR REPLACE */ yytestcase(yyruleno==335); case 357: /* ignore_opt ::= IGNORE UNTREATED */ yytestcase(yyruleno==357); +#line 195 "sql.y" { yymsp[-1].minor.yy667 = true; } +#line 5228 "sql.c" break; case 87: /* db_options ::= */ +#line 198 "sql.y" { yymsp[1].minor.yy452 = createDefaultDatabaseOptions(pCxt); } +#line 5233 "sql.c" break; case 88: /* db_options ::= db_options BUFFER NK_INTEGER */ +#line 199 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_BUFFER, &yymsp[0].minor.yy0); } +#line 5238 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 89: /* db_options ::= db_options CACHEMODEL NK_STRING */ +#line 200 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_CACHEMODEL, &yymsp[0].minor.yy0); } +#line 5244 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 90: /* db_options ::= db_options CACHESIZE NK_INTEGER */ +#line 201 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_CACHESIZE, &yymsp[0].minor.yy0); } +#line 5250 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 91: /* db_options ::= db_options COMP NK_INTEGER */ +#line 202 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_COMP, &yymsp[0].minor.yy0); } +#line 5256 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 92: /* db_options ::= db_options DURATION NK_INTEGER */ case 93: /* db_options ::= db_options DURATION NK_VARIABLE */ yytestcase(yyruleno==93); +#line 203 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_DAYS, &yymsp[0].minor.yy0); } +#line 5263 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 94: /* db_options ::= db_options MAXROWS NK_INTEGER */ +#line 205 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_MAXROWS, &yymsp[0].minor.yy0); } +#line 5269 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 95: /* db_options ::= db_options MINROWS NK_INTEGER */ +#line 206 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_MINROWS, &yymsp[0].minor.yy0); } +#line 5275 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 96: /* db_options ::= db_options KEEP integer_list */ case 97: /* db_options ::= db_options KEEP variable_list */ yytestcase(yyruleno==97); +#line 207 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_KEEP, yymsp[0].minor.yy812); } +#line 5282 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 98: /* db_options ::= db_options PAGES NK_INTEGER */ +#line 209 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_PAGES, &yymsp[0].minor.yy0); } +#line 5288 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 99: /* db_options ::= db_options PAGESIZE NK_INTEGER */ +#line 210 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_PAGESIZE, &yymsp[0].minor.yy0); } +#line 5294 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 100: /* db_options ::= db_options TSDB_PAGESIZE NK_INTEGER */ +#line 211 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_TSDB_PAGESIZE, &yymsp[0].minor.yy0); } +#line 5300 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 101: /* db_options ::= db_options PRECISION NK_STRING */ +#line 212 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_PRECISION, &yymsp[0].minor.yy0); } +#line 5306 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 102: /* db_options ::= db_options REPLICA NK_INTEGER */ +#line 213 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_REPLICA, &yymsp[0].minor.yy0); } +#line 5312 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 103: /* db_options ::= db_options VGROUPS NK_INTEGER */ +#line 215 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_VGROUPS, &yymsp[0].minor.yy0); } +#line 5318 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 104: /* db_options ::= db_options SINGLE_STABLE NK_INTEGER */ +#line 216 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_SINGLE_STABLE, &yymsp[0].minor.yy0); } +#line 5324 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 105: /* db_options ::= db_options RETENTIONS retention_list */ +#line 217 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_RETENTIONS, yymsp[0].minor.yy812); } +#line 5330 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 106: /* db_options ::= db_options SCHEMALESS NK_INTEGER */ +#line 218 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_SCHEMALESS, &yymsp[0].minor.yy0); } +#line 5336 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 107: /* db_options ::= db_options WAL_LEVEL NK_INTEGER */ +#line 219 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL, &yymsp[0].minor.yy0); } +#line 5342 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 108: /* db_options ::= db_options WAL_FSYNC_PERIOD NK_INTEGER */ +#line 220 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_FSYNC, &yymsp[0].minor.yy0); } +#line 5348 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 109: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_INTEGER */ +#line 221 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL_RETENTION_PERIOD, &yymsp[0].minor.yy0); } +#line 5354 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 110: /* db_options ::= db_options WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ +#line 222 "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.yy452 = setDatabaseOption(pCxt, yymsp[-3].minor.yy452, DB_OPTION_WAL_RETENTION_PERIOD, &t); } +#line 5364 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 111: /* db_options ::= db_options WAL_RETENTION_SIZE NK_INTEGER */ +#line 227 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL_RETENTION_SIZE, &yymsp[0].minor.yy0); } +#line 5370 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 112: /* db_options ::= db_options WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ +#line 228 "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.yy452 = setDatabaseOption(pCxt, yymsp[-3].minor.yy452, DB_OPTION_WAL_RETENTION_SIZE, &t); } +#line 5380 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 113: /* db_options ::= db_options WAL_ROLL_PERIOD NK_INTEGER */ +#line 233 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL_ROLL_PERIOD, &yymsp[0].minor.yy0); } +#line 5386 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 114: /* db_options ::= db_options WAL_SEGMENT_SIZE NK_INTEGER */ +#line 234 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_WAL_SEGMENT_SIZE, &yymsp[0].minor.yy0); } +#line 5392 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 115: /* db_options ::= db_options STT_TRIGGER NK_INTEGER */ +#line 235 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_STT_TRIGGER, &yymsp[0].minor.yy0); } +#line 5398 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 116: /* db_options ::= db_options TABLE_PREFIX signed */ +#line 236 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_TABLE_PREFIX, yymsp[0].minor.yy452); } +#line 5404 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 117: /* db_options ::= db_options TABLE_SUFFIX signed */ +#line 237 "sql.y" { yylhsminor.yy452 = setDatabaseOption(pCxt, yymsp[-2].minor.yy452, DB_OPTION_TABLE_SUFFIX, yymsp[0].minor.yy452); } +#line 5410 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 118: /* alter_db_options ::= alter_db_option */ +#line 239 "sql.y" { yylhsminor.yy452 = createAlterDatabaseOptions(pCxt); yylhsminor.yy452 = setAlterDatabaseOption(pCxt, yylhsminor.yy452, &yymsp[0].minor.yy365); } +#line 5416 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 119: /* alter_db_options ::= alter_db_options alter_db_option */ +#line 240 "sql.y" { yylhsminor.yy452 = setAlterDatabaseOption(pCxt, yymsp[-1].minor.yy452, &yymsp[0].minor.yy365); } +#line 5422 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 120: /* alter_db_option ::= BUFFER NK_INTEGER */ +#line 244 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_BUFFER; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5428 "sql.c" break; case 121: /* alter_db_option ::= CACHEMODEL NK_STRING */ +#line 245 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_CACHEMODEL; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5433 "sql.c" break; case 122: /* alter_db_option ::= CACHESIZE NK_INTEGER */ +#line 246 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_CACHESIZE; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5438 "sql.c" break; case 123: /* alter_db_option ::= WAL_FSYNC_PERIOD NK_INTEGER */ +#line 247 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_FSYNC; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5443 "sql.c" break; case 124: /* alter_db_option ::= KEEP integer_list */ case 125: /* alter_db_option ::= KEEP variable_list */ yytestcase(yyruleno==125); +#line 248 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_KEEP; yymsp[-1].minor.yy365.pList = yymsp[0].minor.yy812; } +#line 5449 "sql.c" break; case 126: /* alter_db_option ::= PAGES NK_INTEGER */ +#line 250 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_PAGES; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5454 "sql.c" break; case 127: /* alter_db_option ::= REPLICA NK_INTEGER */ +#line 251 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_REPLICA; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5459 "sql.c" break; case 128: /* alter_db_option ::= WAL_LEVEL NK_INTEGER */ +#line 253 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_WAL; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5464 "sql.c" break; case 129: /* alter_db_option ::= STT_TRIGGER NK_INTEGER */ +#line 254 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_STT_TRIGGER; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5469 "sql.c" break; case 130: /* alter_db_option ::= MINROWS NK_INTEGER */ +#line 255 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_MINROWS; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5474 "sql.c" break; case 131: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_INTEGER */ +#line 256 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5479 "sql.c" break; case 132: /* alter_db_option ::= WAL_RETENTION_PERIOD NK_MINUS NK_INTEGER */ +#line 257 "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; yymsp[-2].minor.yy365.type = DB_OPTION_WAL_RETENTION_PERIOD; yymsp[-2].minor.yy365.val = t; } +#line 5488 "sql.c" break; case 133: /* alter_db_option ::= WAL_RETENTION_SIZE NK_INTEGER */ +#line 262 "sql.y" { yymsp[-1].minor.yy365.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5493 "sql.c" break; case 134: /* alter_db_option ::= WAL_RETENTION_SIZE NK_MINUS NK_INTEGER */ +#line 263 "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; yymsp[-2].minor.yy365.type = DB_OPTION_WAL_RETENTION_SIZE; yymsp[-2].minor.yy365.val = t; } +#line 5502 "sql.c" break; case 135: /* integer_list ::= NK_INTEGER */ +#line 271 "sql.y" { yylhsminor.yy812 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } +#line 5507 "sql.c" yymsp[0].minor.yy812 = yylhsminor.yy812; break; case 136: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ case 367: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==367); +#line 272 "sql.y" { yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } +#line 5514 "sql.c" yymsp[-2].minor.yy812 = yylhsminor.yy812; break; case 137: /* variable_list ::= NK_VARIABLE */ +#line 276 "sql.y" { yylhsminor.yy812 = createNodeList(pCxt, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 5520 "sql.c" yymsp[0].minor.yy812 = yylhsminor.yy812; break; case 138: /* variable_list ::= variable_list NK_COMMA NK_VARIABLE */ +#line 277 "sql.y" { yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 5526 "sql.c" yymsp[-2].minor.yy812 = yylhsminor.yy812; break; case 139: /* retention_list ::= retention */ @@ -4990,7 +5540,9 @@ static YYACTIONTYPE yy_reduce( case 524: /* select_list ::= select_item */ yytestcase(yyruleno==524); case 535: /* partition_list ::= partition_item */ yytestcase(yyruleno==535); case 591: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==591); +#line 281 "sql.y" { yylhsminor.yy812 = createNodeList(pCxt, yymsp[0].minor.yy452); } +#line 5545 "sql.c" yymsp[0].minor.yy812 = yylhsminor.yy812; break; case 140: /* retention_list ::= retention_list NK_COMMA retention */ @@ -5005,105 +5557,157 @@ static YYACTIONTYPE yy_reduce( case 525: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==525); case 536: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==536); case 592: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==592); +#line 282 "sql.y" { yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, yymsp[0].minor.yy452); } +#line 5562 "sql.c" yymsp[-2].minor.yy812 = yylhsminor.yy812; break; case 141: /* retention ::= NK_VARIABLE NK_COLON NK_VARIABLE */ +#line 284 "sql.y" { yylhsminor.yy452 = createNodeListNodeEx(pCxt, createDurationValueNode(pCxt, &yymsp[-2].minor.yy0), createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 5568 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 142: /* speed_opt ::= */ case 330: /* bufsize_opt ::= */ yytestcase(yyruleno==330); +#line 288 "sql.y" { yymsp[1].minor.yy416 = 0; } +#line 5575 "sql.c" break; case 143: /* speed_opt ::= MAX_SPEED NK_INTEGER */ case 331: /* bufsize_opt ::= BUFSIZE NK_INTEGER */ yytestcase(yyruleno==331); +#line 289 "sql.y" { yymsp[-1].minor.yy416 = taosStr2Int32(yymsp[0].minor.yy0.z, NULL, 10); } +#line 5581 "sql.c" break; case 145: /* start_opt ::= START WITH NK_INTEGER */ case 149: /* end_opt ::= END WITH NK_INTEGER */ yytestcase(yyruleno==149); +#line 292 "sql.y" { yymsp[-2].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0); } +#line 5587 "sql.c" break; case 146: /* start_opt ::= START WITH NK_STRING */ case 150: /* end_opt ::= END WITH NK_STRING */ yytestcase(yyruleno==150); +#line 293 "sql.y" { yymsp[-2].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +#line 5593 "sql.c" break; case 147: /* start_opt ::= START WITH TIMESTAMP NK_STRING */ case 151: /* end_opt ::= END WITH TIMESTAMP NK_STRING */ yytestcase(yyruleno==151); +#line 294 "sql.y" { yymsp[-3].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +#line 5599 "sql.c" break; case 152: /* cmd ::= CREATE TABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def_opt table_options */ case 154: /* cmd ::= CREATE STABLE not_exists_opt full_table_name NK_LP column_def_list NK_RP tags_def table_options */ yytestcase(yyruleno==154); +#line 303 "sql.y" { pCxt->pRootNode = createCreateTableStmt(pCxt, yymsp[-6].minor.yy667, yymsp[-5].minor.yy452, yymsp[-3].minor.yy812, yymsp[-1].minor.yy812, yymsp[0].minor.yy452); } +#line 5605 "sql.c" break; case 153: /* cmd ::= CREATE TABLE multi_create_clause */ +#line 304 "sql.y" { pCxt->pRootNode = createCreateMultiTableStmt(pCxt, yymsp[0].minor.yy812); } +#line 5610 "sql.c" break; case 155: /* cmd ::= DROP TABLE multi_drop_clause */ +#line 307 "sql.y" { pCxt->pRootNode = createDropTableStmt(pCxt, yymsp[0].minor.yy812); } +#line 5615 "sql.c" break; case 156: /* cmd ::= DROP STABLE exists_opt full_table_name */ +#line 308 "sql.y" { pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy667, yymsp[0].minor.yy452); } +#line 5620 "sql.c" break; case 157: /* cmd ::= ALTER TABLE alter_table_clause */ case 369: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==369); case 370: /* cmd ::= insert_query */ yytestcase(yyruleno==370); +#line 310 "sql.y" { pCxt->pRootNode = yymsp[0].minor.yy452; } +#line 5627 "sql.c" break; case 158: /* cmd ::= ALTER STABLE alter_table_clause */ +#line 311 "sql.y" { pCxt->pRootNode = setAlterSuperTableType(yymsp[0].minor.yy452); } +#line 5632 "sql.c" break; case 159: /* alter_table_clause ::= full_table_name alter_table_options */ +#line 313 "sql.y" { yylhsminor.yy452 = createAlterTableModifyOptions(pCxt, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 5637 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 160: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ +#line 315 "sql.y" { yylhsminor.yy452 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310); } +#line 5643 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 161: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ +#line 316 "sql.y" { yylhsminor.yy452 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy452, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy371); } +#line 5649 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 162: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ +#line 318 "sql.y" { yylhsminor.yy452 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310); } +#line 5655 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 163: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ +#line 320 "sql.y" { yylhsminor.yy452 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy371, &yymsp[0].minor.yy371); } +#line 5661 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 164: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ +#line 322 "sql.y" { yylhsminor.yy452 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310); } +#line 5667 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 165: /* alter_table_clause ::= full_table_name DROP TAG column_name */ +#line 323 "sql.y" { yylhsminor.yy452 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy452, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy371); } +#line 5673 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 166: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ +#line 325 "sql.y" { yylhsminor.yy452 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310); } +#line 5679 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 167: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ +#line 327 "sql.y" { yylhsminor.yy452 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy452, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy371, &yymsp[0].minor.yy371); } +#line 5685 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 168: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ signed_literal */ +#line 329 "sql.y" { yylhsminor.yy452 = createAlterTableSetTag(pCxt, yymsp[-5].minor.yy452, &yymsp[-2].minor.yy371, yymsp[0].minor.yy452); } +#line 5691 "sql.c" yymsp[-5].minor.yy452 = yylhsminor.yy452; break; case 170: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ case 470: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==470); +#line 334 "sql.y" { yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-1].minor.yy812, yymsp[0].minor.yy452); } +#line 5698 "sql.c" yymsp[-1].minor.yy812 = yylhsminor.yy812; break; case 171: /* create_subtable_clause ::= not_exists_opt full_table_name USING full_table_name specific_cols_opt TAGS NK_LP expression_list NK_RP table_options */ +#line 338 "sql.y" { yylhsminor.yy452 = createCreateSubTableClause(pCxt, yymsp[-9].minor.yy667, yymsp[-8].minor.yy452, yymsp[-6].minor.yy452, yymsp[-5].minor.yy812, yymsp[-2].minor.yy812, yymsp[0].minor.yy452); } +#line 5704 "sql.c" yymsp[-9].minor.yy452 = yylhsminor.yy452; break; case 174: /* drop_table_clause ::= exists_opt full_table_name */ +#line 345 "sql.y" { yylhsminor.yy452 = createDropTableClause(pCxt, yymsp[-1].minor.yy667, yymsp[0].minor.yy452); } +#line 5710 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 175: /* specific_cols_opt ::= */ @@ -5114,535 +5718,847 @@ static YYACTIONTYPE yy_reduce( case 533: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==533); case 558: /* group_by_clause_opt ::= */ yytestcase(yyruleno==558); case 578: /* order_by_clause_opt ::= */ yytestcase(yyruleno==578); +#line 349 "sql.y" { yymsp[1].minor.yy812 = NULL; } +#line 5723 "sql.c" break; case 176: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ case 341: /* col_list_opt ::= NK_LP col_name_list NK_RP */ yytestcase(yyruleno==341); +#line 350 "sql.y" { yymsp[-2].minor.yy812 = yymsp[-1].minor.yy812; } +#line 5729 "sql.c" break; case 177: /* full_table_name ::= table_name */ +#line 352 "sql.y" { yylhsminor.yy452 = createRealTableNode(pCxt, NULL, &yymsp[0].minor.yy371, NULL); } +#line 5734 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 178: /* full_table_name ::= db_name NK_DOT table_name */ +#line 353 "sql.y" { yylhsminor.yy452 = createRealTableNode(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371, NULL); } +#line 5740 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 181: /* column_def ::= column_name type_name */ +#line 360 "sql.y" { yylhsminor.yy452 = createColumnDefNode(pCxt, &yymsp[-1].minor.yy371, yymsp[0].minor.yy310, NULL); } +#line 5746 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 182: /* type_name ::= BOOL */ +#line 365 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_BOOL); } +#line 5752 "sql.c" break; case 183: /* type_name ::= TINYINT */ +#line 366 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_TINYINT); } +#line 5757 "sql.c" break; case 184: /* type_name ::= SMALLINT */ +#line 367 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_SMALLINT); } +#line 5762 "sql.c" break; case 185: /* type_name ::= INT */ case 186: /* type_name ::= INTEGER */ yytestcase(yyruleno==186); +#line 368 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_INT); } +#line 5768 "sql.c" break; case 187: /* type_name ::= BIGINT */ +#line 370 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_BIGINT); } +#line 5773 "sql.c" break; case 188: /* type_name ::= FLOAT */ +#line 371 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_FLOAT); } +#line 5778 "sql.c" break; case 189: /* type_name ::= DOUBLE */ +#line 372 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_DOUBLE); } +#line 5783 "sql.c" break; case 190: /* type_name ::= BINARY NK_LP NK_INTEGER NK_RP */ +#line 373 "sql.y" { yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_BINARY, &yymsp[-1].minor.yy0); } +#line 5788 "sql.c" break; case 191: /* type_name ::= TIMESTAMP */ +#line 374 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_TIMESTAMP); } +#line 5793 "sql.c" break; case 192: /* type_name ::= NCHAR NK_LP NK_INTEGER NK_RP */ +#line 375 "sql.y" { yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_NCHAR, &yymsp[-1].minor.yy0); } +#line 5798 "sql.c" break; case 193: /* type_name ::= TINYINT UNSIGNED */ +#line 376 "sql.y" { yymsp[-1].minor.yy310 = createDataType(TSDB_DATA_TYPE_UTINYINT); } +#line 5803 "sql.c" break; case 194: /* type_name ::= SMALLINT UNSIGNED */ +#line 377 "sql.y" { yymsp[-1].minor.yy310 = createDataType(TSDB_DATA_TYPE_USMALLINT); } +#line 5808 "sql.c" break; case 195: /* type_name ::= INT UNSIGNED */ +#line 378 "sql.y" { yymsp[-1].minor.yy310 = createDataType(TSDB_DATA_TYPE_UINT); } +#line 5813 "sql.c" break; case 196: /* type_name ::= BIGINT UNSIGNED */ +#line 379 "sql.y" { yymsp[-1].minor.yy310 = createDataType(TSDB_DATA_TYPE_UBIGINT); } +#line 5818 "sql.c" break; case 197: /* type_name ::= JSON */ +#line 380 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_JSON); } +#line 5823 "sql.c" break; case 198: /* type_name ::= VARCHAR NK_LP NK_INTEGER NK_RP */ +#line 381 "sql.y" { yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_VARCHAR, &yymsp[-1].minor.yy0); } +#line 5828 "sql.c" break; case 199: /* type_name ::= MEDIUMBLOB */ +#line 382 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_MEDIUMBLOB); } +#line 5833 "sql.c" break; case 200: /* type_name ::= BLOB */ +#line 383 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_BLOB); } +#line 5838 "sql.c" break; case 201: /* type_name ::= VARBINARY NK_LP NK_INTEGER NK_RP */ +#line 384 "sql.y" { yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_VARBINARY, &yymsp[-1].minor.yy0); } +#line 5843 "sql.c" break; case 202: /* type_name ::= GEOMETRY NK_LP NK_INTEGER NK_RP */ +#line 385 "sql.y" { yymsp[-3].minor.yy310 = createVarLenDataType(TSDB_DATA_TYPE_GEOMETRY, &yymsp[-1].minor.yy0); } +#line 5848 "sql.c" break; case 203: /* type_name ::= DECIMAL */ +#line 386 "sql.y" { yymsp[0].minor.yy310 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +#line 5853 "sql.c" break; case 204: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_RP */ +#line 387 "sql.y" { yymsp[-3].minor.yy310 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +#line 5858 "sql.c" break; case 205: /* type_name ::= DECIMAL NK_LP NK_INTEGER NK_COMMA NK_INTEGER NK_RP */ +#line 388 "sql.y" { yymsp[-5].minor.yy310 = createDataType(TSDB_DATA_TYPE_DECIMAL); } +#line 5863 "sql.c" break; case 207: /* tags_def_opt ::= tags_def */ case 343: /* tag_def_or_ref_opt ::= tags_def */ yytestcase(yyruleno==343); case 462: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==462); +#line 393 "sql.y" { yylhsminor.yy812 = yymsp[0].minor.yy812; } +#line 5870 "sql.c" yymsp[0].minor.yy812 = yylhsminor.yy812; break; case 208: /* tags_def ::= TAGS NK_LP column_def_list NK_RP */ case 344: /* tag_def_or_ref_opt ::= TAGS NK_LP col_name_list NK_RP */ yytestcase(yyruleno==344); +#line 397 "sql.y" { yymsp[-3].minor.yy812 = yymsp[-1].minor.yy812; } +#line 5877 "sql.c" break; case 209: /* table_options ::= */ +#line 399 "sql.y" { yymsp[1].minor.yy452 = createDefaultTableOptions(pCxt); } +#line 5882 "sql.c" break; case 210: /* table_options ::= table_options COMMENT NK_STRING */ +#line 400 "sql.y" { yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_COMMENT, &yymsp[0].minor.yy0); } +#line 5887 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 211: /* table_options ::= table_options MAX_DELAY duration_list */ +#line 401 "sql.y" { yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_MAXDELAY, yymsp[0].minor.yy812); } +#line 5893 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 212: /* table_options ::= table_options WATERMARK duration_list */ +#line 402 "sql.y" { yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_WATERMARK, yymsp[0].minor.yy812); } +#line 5899 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 213: /* table_options ::= table_options ROLLUP NK_LP rollup_func_list NK_RP */ +#line 403 "sql.y" { yylhsminor.yy452 = setTableOption(pCxt, yymsp[-4].minor.yy452, TABLE_OPTION_ROLLUP, yymsp[-1].minor.yy812); } +#line 5905 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 214: /* table_options ::= table_options TTL NK_INTEGER */ +#line 404 "sql.y" { yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_TTL, &yymsp[0].minor.yy0); } +#line 5911 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 215: /* table_options ::= table_options SMA NK_LP col_name_list NK_RP */ +#line 405 "sql.y" { yylhsminor.yy452 = setTableOption(pCxt, yymsp[-4].minor.yy452, TABLE_OPTION_SMA, yymsp[-1].minor.yy812); } +#line 5917 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 216: /* table_options ::= table_options DELETE_MARK duration_list */ +#line 406 "sql.y" { yylhsminor.yy452 = setTableOption(pCxt, yymsp[-2].minor.yy452, TABLE_OPTION_DELETE_MARK, yymsp[0].minor.yy812); } +#line 5923 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 217: /* alter_table_options ::= alter_table_option */ +#line 408 "sql.y" { yylhsminor.yy452 = createAlterTableOptions(pCxt); yylhsminor.yy452 = setTableOption(pCxt, yylhsminor.yy452, yymsp[0].minor.yy365.type, &yymsp[0].minor.yy365.val); } +#line 5929 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 218: /* alter_table_options ::= alter_table_options alter_table_option */ +#line 409 "sql.y" { yylhsminor.yy452 = setTableOption(pCxt, yymsp[-1].minor.yy452, yymsp[0].minor.yy365.type, &yymsp[0].minor.yy365.val); } +#line 5935 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 219: /* alter_table_option ::= COMMENT NK_STRING */ +#line 413 "sql.y" { yymsp[-1].minor.yy365.type = TABLE_OPTION_COMMENT; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5941 "sql.c" break; case 220: /* alter_table_option ::= TTL NK_INTEGER */ +#line 414 "sql.y" { yymsp[-1].minor.yy365.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy365.val = yymsp[0].minor.yy0; } +#line 5946 "sql.c" break; case 221: /* duration_list ::= duration_literal */ case 426: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==426); +#line 418 "sql.y" { yylhsminor.yy812 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } +#line 5952 "sql.c" yymsp[0].minor.yy812 = yylhsminor.yy812; break; case 222: /* duration_list ::= duration_list NK_COMMA duration_literal */ case 427: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==427); +#line 419 "sql.y" { yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } +#line 5959 "sql.c" yymsp[-2].minor.yy812 = yylhsminor.yy812; break; case 225: /* rollup_func_name ::= function_name */ +#line 426 "sql.y" { yylhsminor.yy452 = createFunctionNode(pCxt, &yymsp[0].minor.yy371, NULL); } +#line 5965 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 226: /* rollup_func_name ::= FIRST */ case 227: /* rollup_func_name ::= LAST */ yytestcase(yyruleno==227); case 285: /* tag_item ::= QTAGS */ yytestcase(yyruleno==285); +#line 427 "sql.y" { yylhsminor.yy452 = createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL); } +#line 5973 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 230: /* col_name ::= column_name */ case 286: /* tag_item ::= column_name */ yytestcase(yyruleno==286); +#line 435 "sql.y" { yylhsminor.yy452 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy371); } +#line 5980 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 231: /* cmd ::= SHOW DNODES */ +#line 438 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DNODES_STMT); } +#line 5986 "sql.c" break; case 232: /* cmd ::= SHOW USERS */ +#line 439 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USERS_STMT); } +#line 5991 "sql.c" break; case 233: /* cmd ::= SHOW USER PRIVILEGES */ +#line 440 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_USER_PRIVILEGES_STMT); } +#line 5996 "sql.c" break; case 234: /* cmd ::= SHOW DATABASES */ +#line 441 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_DATABASES_STMT); } +#line 6001 "sql.c" break; case 235: /* cmd ::= SHOW db_name_cond_opt TABLES like_pattern_opt */ +#line 442 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TABLES_STMT, yymsp[-2].minor.yy452, yymsp[0].minor.yy452, OP_TYPE_LIKE); } +#line 6006 "sql.c" break; case 236: /* cmd ::= SHOW db_name_cond_opt STABLES like_pattern_opt */ +#line 443 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_STABLES_STMT, yymsp[-2].minor.yy452, yymsp[0].minor.yy452, OP_TYPE_LIKE); } +#line 6011 "sql.c" break; case 237: /* cmd ::= SHOW db_name_cond_opt VGROUPS */ +#line 444 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_VGROUPS_STMT, yymsp[-1].minor.yy452, NULL, OP_TYPE_LIKE); } +#line 6016 "sql.c" break; case 238: /* cmd ::= SHOW MNODES */ +#line 445 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_MNODES_STMT); } +#line 6021 "sql.c" break; case 239: /* cmd ::= SHOW QNODES */ +#line 447 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QNODES_STMT); } +#line 6026 "sql.c" break; case 240: /* cmd ::= SHOW FUNCTIONS */ +#line 448 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_FUNCTIONS_STMT); } +#line 6031 "sql.c" break; case 241: /* cmd ::= SHOW INDEXES FROM table_name_cond from_db_opt */ +#line 449 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, yymsp[0].minor.yy452, yymsp[-1].minor.yy452, OP_TYPE_EQUAL); } +#line 6036 "sql.c" break; case 242: /* cmd ::= SHOW INDEXES FROM db_name NK_DOT table_name */ +#line 450 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_INDEXES_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy371), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371), OP_TYPE_EQUAL); } +#line 6041 "sql.c" break; case 243: /* cmd ::= SHOW STREAMS */ +#line 451 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_STREAMS_STMT); } +#line 6046 "sql.c" break; case 244: /* cmd ::= SHOW ACCOUNTS */ +#line 452 "sql.y" { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } +#line 6051 "sql.c" break; case 245: /* cmd ::= SHOW APPS */ +#line 453 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_APPS_STMT); } +#line 6056 "sql.c" break; case 246: /* cmd ::= SHOW CONNECTIONS */ +#line 454 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONNECTIONS_STMT); } +#line 6061 "sql.c" break; case 247: /* cmd ::= SHOW LICENCES */ case 248: /* cmd ::= SHOW GRANTS */ yytestcase(yyruleno==248); +#line 455 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LICENCES_STMT); } +#line 6067 "sql.c" break; case 249: /* cmd ::= SHOW CREATE DATABASE db_name */ +#line 457 "sql.y" { pCxt->pRootNode = createShowCreateDatabaseStmt(pCxt, &yymsp[0].minor.yy371); } +#line 6072 "sql.c" break; case 250: /* cmd ::= SHOW CREATE TABLE full_table_name */ +#line 458 "sql.y" { pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_TABLE_STMT, yymsp[0].minor.yy452); } +#line 6077 "sql.c" break; case 251: /* cmd ::= SHOW CREATE STABLE full_table_name */ +#line 459 "sql.y" { pCxt->pRootNode = createShowCreateTableStmt(pCxt, QUERY_NODE_SHOW_CREATE_STABLE_STMT, yymsp[0].minor.yy452); } +#line 6082 "sql.c" break; case 252: /* cmd ::= SHOW QUERIES */ +#line 460 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_QUERIES_STMT); } +#line 6087 "sql.c" break; case 253: /* cmd ::= SHOW SCORES */ +#line 461 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SCORES_STMT); } +#line 6092 "sql.c" break; case 254: /* cmd ::= SHOW TOPICS */ +#line 462 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TOPICS_STMT); } +#line 6097 "sql.c" break; case 255: /* cmd ::= SHOW VARIABLES */ case 256: /* cmd ::= SHOW CLUSTER VARIABLES */ yytestcase(yyruleno==256); +#line 463 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_VARIABLES_STMT); } +#line 6103 "sql.c" break; case 257: /* cmd ::= SHOW LOCAL VARIABLES */ +#line 465 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_LOCAL_VARIABLES_STMT); } +#line 6108 "sql.c" break; case 258: /* cmd ::= SHOW DNODE NK_INTEGER VARIABLES like_pattern_opt */ +#line 466 "sql.y" { pCxt->pRootNode = createShowDnodeVariablesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[-2].minor.yy0), yymsp[0].minor.yy452); } +#line 6113 "sql.c" break; case 259: /* cmd ::= SHOW BNODES */ +#line 467 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_BNODES_STMT); } +#line 6118 "sql.c" break; case 260: /* cmd ::= SHOW SNODES */ +#line 468 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SNODES_STMT); } +#line 6123 "sql.c" break; case 261: /* cmd ::= SHOW CLUSTER */ +#line 469 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CLUSTER_STMT); } +#line 6128 "sql.c" break; case 262: /* cmd ::= SHOW TRANSACTIONS */ +#line 470 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_TRANSACTIONS_STMT); } +#line 6133 "sql.c" break; case 263: /* cmd ::= SHOW TABLE DISTRIBUTED full_table_name */ +#line 471 "sql.y" { pCxt->pRootNode = createShowTableDistributedStmt(pCxt, yymsp[0].minor.yy452); } +#line 6138 "sql.c" break; case 264: /* cmd ::= SHOW CONSUMERS */ +#line 472 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_CONSUMERS_STMT); } +#line 6143 "sql.c" break; case 265: /* cmd ::= SHOW SUBSCRIPTIONS */ +#line 473 "sql.y" { pCxt->pRootNode = createShowStmt(pCxt, QUERY_NODE_SHOW_SUBSCRIPTIONS_STMT); } +#line 6148 "sql.c" break; case 266: /* cmd ::= SHOW TAGS FROM table_name_cond from_db_opt */ +#line 474 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, yymsp[0].minor.yy452, yymsp[-1].minor.yy452, OP_TYPE_EQUAL); } +#line 6153 "sql.c" break; case 267: /* cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ +#line 475 "sql.y" { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy371), createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371), OP_TYPE_EQUAL); } +#line 6158 "sql.c" break; case 268: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ +#line 476 "sql.y" { pCxt->pRootNode = createShowTableTagsStmt(pCxt, yymsp[-1].minor.yy452, yymsp[0].minor.yy452, yymsp[-3].minor.yy812); } +#line 6163 "sql.c" break; case 269: /* cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ +#line 477 "sql.y" { pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy371), yymsp[-4].minor.yy812); } +#line 6168 "sql.c" break; - case 270: /* cmd ::= SHOW VNODES NK_INTEGER */ + case 270: /* cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ +#line 478 "sql.y" { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } +#line 6173 "sql.c" break; - case 271: /* cmd ::= SHOW VNODES NK_STRING */ + case 271: /* cmd ::= SHOW VNODES ON DNODE NK_STRING */ +#line 479 "sql.y" { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &yymsp[0].minor.yy0)); } +#line 6178 "sql.c" break; case 272: /* cmd ::= SHOW db_name_cond_opt ALIVE */ +#line 481 "sql.y" { pCxt->pRootNode = createShowAliveStmt(pCxt, yymsp[-1].minor.yy452, QUERY_NODE_SHOW_DB_ALIVE_STMT); } +#line 6183 "sql.c" break; case 273: /* cmd ::= SHOW CLUSTER ALIVE */ +#line 482 "sql.y" { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } +#line 6188 "sql.c" break; case 274: /* db_name_cond_opt ::= */ case 279: /* from_db_opt ::= */ yytestcase(yyruleno==279); +#line 484 "sql.y" { yymsp[1].minor.yy452 = createDefaultDatabaseCondValue(pCxt); } +#line 6194 "sql.c" break; case 275: /* db_name_cond_opt ::= db_name NK_DOT */ +#line 485 "sql.y" { yylhsminor.yy452 = createIdentifierValueNode(pCxt, &yymsp[-1].minor.yy371); } +#line 6199 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 277: /* like_pattern_opt ::= LIKE NK_STRING */ +#line 488 "sql.y" { yymsp[-1].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } +#line 6205 "sql.c" break; case 278: /* table_name_cond ::= table_name */ +#line 490 "sql.y" { yylhsminor.yy452 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371); } +#line 6210 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 280: /* from_db_opt ::= FROM db_name */ +#line 493 "sql.y" { yymsp[-1].minor.yy452 = createIdentifierValueNode(pCxt, &yymsp[0].minor.yy371); } +#line 6216 "sql.c" break; case 284: /* tag_item ::= TBNAME */ +#line 501 "sql.y" { yylhsminor.yy452 = setProjectionAlias(pCxt, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL), &yymsp[0].minor.yy0); } +#line 6221 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 287: /* tag_item ::= column_name column_alias */ +#line 504 "sql.y" { yylhsminor.yy452 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-1].minor.yy371), &yymsp[0].minor.yy371); } +#line 6227 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 288: /* tag_item ::= column_name AS column_alias */ +#line 505 "sql.y" { yylhsminor.yy452 = setProjectionAlias(pCxt, createColumnNode(pCxt, NULL, &yymsp[-2].minor.yy371), &yymsp[0].minor.yy371); } +#line 6233 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 289: /* cmd ::= CREATE SMA INDEX not_exists_opt full_index_name ON full_table_name index_options */ +#line 509 "sql.y" { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_SMA, yymsp[-4].minor.yy667, yymsp[-3].minor.yy452, yymsp[-1].minor.yy452, NULL, yymsp[0].minor.yy452); } +#line 6239 "sql.c" break; case 290: /* cmd ::= CREATE INDEX not_exists_opt full_index_name ON full_table_name NK_LP col_name_list NK_RP */ +#line 511 "sql.y" { pCxt->pRootNode = createCreateIndexStmt(pCxt, INDEX_TYPE_NORMAL, yymsp[-6].minor.yy667, yymsp[-5].minor.yy452, yymsp[-3].minor.yy452, yymsp[-1].minor.yy812, NULL); } +#line 6244 "sql.c" break; case 291: /* cmd ::= DROP INDEX exists_opt full_index_name */ +#line 512 "sql.y" { pCxt->pRootNode = createDropIndexStmt(pCxt, yymsp[-1].minor.yy667, yymsp[0].minor.yy452); } +#line 6249 "sql.c" break; case 292: /* full_index_name ::= index_name */ +#line 514 "sql.y" { yylhsminor.yy452 = createRealTableNodeForIndexName(pCxt, NULL, &yymsp[0].minor.yy371); } +#line 6254 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 293: /* full_index_name ::= db_name NK_DOT index_name */ +#line 515 "sql.y" { yylhsminor.yy452 = createRealTableNodeForIndexName(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371); } +#line 6260 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 294: /* index_options ::= FUNCTION NK_LP func_list NK_RP INTERVAL NK_LP duration_literal NK_RP sliding_opt sma_stream_opt */ +#line 518 "sql.y" { yymsp[-9].minor.yy452 = createIndexOption(pCxt, yymsp[-7].minor.yy812, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), NULL, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 6266 "sql.c" break; case 295: /* 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 521 "sql.y" { yymsp[-11].minor.yy452 = createIndexOption(pCxt, yymsp[-9].minor.yy812, releaseRawExprNode(pCxt, yymsp[-5].minor.yy452), releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 6271 "sql.c" break; case 298: /* func ::= sma_func_name NK_LP expression_list NK_RP */ +#line 528 "sql.y" { yylhsminor.yy452 = createFunctionNode(pCxt, &yymsp[-3].minor.yy371, yymsp[-1].minor.yy812); } +#line 6276 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 299: /* sma_func_name ::= function_name */ case 513: /* alias_opt ::= table_alias */ yytestcase(yyruleno==513); +#line 532 "sql.y" { yylhsminor.yy371 = yymsp[0].minor.yy371; } +#line 6283 "sql.c" yymsp[0].minor.yy371 = yylhsminor.yy371; break; case 304: /* sma_stream_opt ::= */ case 345: /* stream_options ::= */ yytestcase(yyruleno==345); +#line 538 "sql.y" { yymsp[1].minor.yy452 = createStreamOptions(pCxt); } +#line 6290 "sql.c" break; case 305: /* sma_stream_opt ::= sma_stream_opt WATERMARK duration_literal */ +#line 539 "sql.y" { ((SStreamOptions*)yymsp[-2].minor.yy452)->pWatermark = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = yymsp[-2].minor.yy452; } +#line 6295 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 306: /* sma_stream_opt ::= sma_stream_opt MAX_DELAY duration_literal */ +#line 540 "sql.y" { ((SStreamOptions*)yymsp[-2].minor.yy452)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = yymsp[-2].minor.yy452; } +#line 6301 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 307: /* sma_stream_opt ::= sma_stream_opt DELETE_MARK duration_literal */ +#line 541 "sql.y" { ((SStreamOptions*)yymsp[-2].minor.yy452)->pDeleteMark = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = yymsp[-2].minor.yy452; } +#line 6307 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 308: /* with_meta ::= AS */ +#line 546 "sql.y" { yymsp[0].minor.yy416 = 0; } +#line 6313 "sql.c" break; case 309: /* with_meta ::= WITH META AS */ +#line 547 "sql.y" { yymsp[-2].minor.yy416 = 1; } +#line 6318 "sql.c" break; case 310: /* with_meta ::= ONLY META AS */ +#line 548 "sql.y" { yymsp[-2].minor.yy416 = 2; } +#line 6323 "sql.c" break; case 311: /* cmd ::= CREATE TOPIC not_exists_opt topic_name AS query_or_subquery */ +#line 550 "sql.y" { pCxt->pRootNode = createCreateTopicStmtUseQuery(pCxt, yymsp[-3].minor.yy667, &yymsp[-2].minor.yy371, yymsp[0].minor.yy452); } +#line 6328 "sql.c" break; case 312: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta DATABASE db_name */ +#line 552 "sql.y" { pCxt->pRootNode = createCreateTopicStmtUseDb(pCxt, yymsp[-4].minor.yy667, &yymsp[-3].minor.yy371, &yymsp[0].minor.yy371, yymsp[-2].minor.yy416); } +#line 6333 "sql.c" break; case 313: /* cmd ::= CREATE TOPIC not_exists_opt topic_name with_meta STABLE full_table_name where_clause_opt */ +#line 554 "sql.y" { pCxt->pRootNode = createCreateTopicStmtUseTable(pCxt, yymsp[-5].minor.yy667, &yymsp[-4].minor.yy371, yymsp[-1].minor.yy452, yymsp[-3].minor.yy416, yymsp[0].minor.yy452); } +#line 6338 "sql.c" break; case 314: /* cmd ::= DROP TOPIC exists_opt topic_name */ +#line 556 "sql.y" { pCxt->pRootNode = createDropTopicStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 6343 "sql.c" break; case 315: /* cmd ::= DROP CONSUMER GROUP exists_opt cgroup_name ON topic_name */ +#line 557 "sql.y" { pCxt->pRootNode = createDropCGroupStmt(pCxt, yymsp[-3].minor.yy667, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371); } +#line 6348 "sql.c" break; case 316: /* cmd ::= DESC full_table_name */ case 317: /* cmd ::= DESCRIBE full_table_name */ yytestcase(yyruleno==317); +#line 560 "sql.y" { pCxt->pRootNode = createDescribeStmt(pCxt, yymsp[0].minor.yy452); } +#line 6354 "sql.c" break; case 318: /* cmd ::= RESET QUERY CACHE */ +#line 564 "sql.y" { pCxt->pRootNode = createResetQueryCacheStmt(pCxt); } +#line 6359 "sql.c" break; case 319: /* cmd ::= EXPLAIN analyze_opt explain_options query_or_subquery */ case 320: /* cmd ::= EXPLAIN analyze_opt explain_options insert_query */ yytestcase(yyruleno==320); +#line 567 "sql.y" { pCxt->pRootNode = createExplainStmt(pCxt, yymsp[-2].minor.yy667, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 6365 "sql.c" break; case 323: /* explain_options ::= */ +#line 575 "sql.y" { yymsp[1].minor.yy452 = createDefaultExplainOptions(pCxt); } +#line 6370 "sql.c" break; case 324: /* explain_options ::= explain_options VERBOSE NK_BOOL */ +#line 576 "sql.y" { yylhsminor.yy452 = setExplainVerbose(pCxt, yymsp[-2].minor.yy452, &yymsp[0].minor.yy0); } +#line 6375 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 325: /* explain_options ::= explain_options RATIO NK_FLOAT */ +#line 577 "sql.y" { yylhsminor.yy452 = setExplainRatio(pCxt, yymsp[-2].minor.yy452, &yymsp[0].minor.yy0); } +#line 6381 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 326: /* 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 582 "sql.y" { pCxt->pRootNode = createCreateFunctionStmt(pCxt, yymsp[-7].minor.yy667, yymsp[-9].minor.yy667, &yymsp[-6].minor.yy371, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy310, yymsp[-1].minor.yy416, &yymsp[0].minor.yy371, yymsp[-10].minor.yy667); } +#line 6387 "sql.c" break; case 327: /* cmd ::= DROP FUNCTION exists_opt function_name */ +#line 583 "sql.y" { pCxt->pRootNode = createDropFunctionStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 6392 "sql.c" break; case 332: /* language_opt ::= */ +#line 597 "sql.y" { yymsp[1].minor.yy371 = nil_token; } +#line 6397 "sql.c" break; case 333: /* language_opt ::= LANGUAGE NK_STRING */ +#line 598 "sql.y" { yymsp[-1].minor.yy371 = yymsp[0].minor.yy0; } +#line 6402 "sql.c" break; case 336: /* 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 608 "sql.y" { pCxt->pRootNode = createCreateStreamStmt(pCxt, yymsp[-9].minor.yy667, &yymsp[-8].minor.yy371, yymsp[-5].minor.yy452, yymsp[-7].minor.yy452, yymsp[-3].minor.yy812, yymsp[-2].minor.yy452, yymsp[0].minor.yy452, yymsp[-4].minor.yy812); } +#line 6407 "sql.c" break; case 337: /* cmd ::= DROP STREAM exists_opt stream_name */ +#line 609 "sql.y" { pCxt->pRootNode = createDropStreamStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 6412 "sql.c" break; case 338: /* cmd ::= PAUSE STREAM exists_opt stream_name */ +#line 610 "sql.y" { pCxt->pRootNode = createPauseStreamStmt(pCxt, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 6417 "sql.c" break; case 339: /* cmd ::= RESUME STREAM exists_opt ignore_opt stream_name */ +#line 611 "sql.y" { pCxt->pRootNode = createResumeStreamStmt(pCxt, yymsp[-2].minor.yy667, yymsp[-1].minor.yy667, &yymsp[0].minor.yy371); } +#line 6422 "sql.c" break; case 346: /* stream_options ::= stream_options TRIGGER AT_ONCE */ case 347: /* stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ yytestcase(yyruleno==347); +#line 625 "sql.y" { yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-2].minor.yy452, SOPT_TRIGGER_TYPE_SET, &yymsp[0].minor.yy0, NULL); } +#line 6428 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 348: /* stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ +#line 627 "sql.y" { yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-3].minor.yy452, SOPT_TRIGGER_TYPE_SET, &yymsp[-1].minor.yy0, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } +#line 6434 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 349: /* stream_options ::= stream_options WATERMARK duration_literal */ +#line 628 "sql.y" { yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-2].minor.yy452, SOPT_WATERMARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } +#line 6440 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 350: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ +#line 629 "sql.y" { yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-3].minor.yy452, SOPT_IGNORE_EXPIRED_SET, &yymsp[0].minor.yy0, NULL); } +#line 6446 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 351: /* stream_options ::= stream_options FILL_HISTORY NK_INTEGER */ +#line 630 "sql.y" { yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-2].minor.yy452, SOPT_FILL_HISTORY_SET, &yymsp[0].minor.yy0, NULL); } +#line 6452 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 352: /* stream_options ::= stream_options DELETE_MARK duration_literal */ +#line 631 "sql.y" { yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-2].minor.yy452, SOPT_DELETE_MARK_SET, NULL, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } +#line 6458 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 353: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ +#line 632 "sql.y" { yylhsminor.yy452 = setStreamOptions(pCxt, yymsp[-3].minor.yy452, SOPT_IGNORE_UPDATE_SET, &yymsp[0].minor.yy0, NULL); } +#line 6464 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 355: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ case 547: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==547); case 568: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==568); +#line 635 "sql.y" { yymsp[-3].minor.yy452 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy452); } +#line 6472 "sql.c" break; case 358: /* cmd ::= KILL CONNECTION NK_INTEGER */ +#line 643 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } +#line 6477 "sql.c" break; case 359: /* cmd ::= KILL QUERY NK_STRING */ +#line 644 "sql.y" { pCxt->pRootNode = createKillQueryStmt(pCxt, &yymsp[0].minor.yy0); } +#line 6482 "sql.c" break; case 360: /* cmd ::= KILL TRANSACTION NK_INTEGER */ +#line 645 "sql.y" { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_TRANSACTION_STMT, &yymsp[0].minor.yy0); } +#line 6487 "sql.c" break; case 361: /* cmd ::= BALANCE VGROUP */ +#line 648 "sql.y" { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } +#line 6492 "sql.c" break; case 362: /* cmd ::= BALANCE VGROUP LEADER */ +#line 649 "sql.y" { pCxt->pRootNode = createBalanceVgroupLeaderStmt(pCxt); } +#line 6497 "sql.c" break; case 363: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ +#line 650 "sql.y" { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } +#line 6502 "sql.c" break; case 364: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ +#line 651 "sql.y" { pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy812); } +#line 6507 "sql.c" break; case 365: /* cmd ::= SPLIT VGROUP NK_INTEGER */ +#line 652 "sql.y" { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } +#line 6512 "sql.c" break; case 366: /* dnode_list ::= DNODE NK_INTEGER */ +#line 656 "sql.y" { yymsp[-1].minor.yy812 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } +#line 6517 "sql.c" break; case 368: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ +#line 663 "sql.y" { pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 6522 "sql.c" break; case 371: /* insert_query ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ +#line 672 "sql.y" { yymsp[-6].minor.yy452 = createInsertStmt(pCxt, yymsp[-4].minor.yy452, yymsp[-2].minor.yy812, yymsp[0].minor.yy452); } +#line 6527 "sql.c" break; case 372: /* insert_query ::= INSERT INTO full_table_name query_or_subquery */ +#line 673 "sql.y" { yymsp[-3].minor.yy452 = createInsertStmt(pCxt, yymsp[-1].minor.yy452, NULL, yymsp[0].minor.yy452); } +#line 6532 "sql.c" break; case 373: /* literal ::= NK_INTEGER */ +#line 676 "sql.y" { yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } +#line 6537 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 374: /* literal ::= NK_FLOAT */ +#line 677 "sql.y" { yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } +#line 6543 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 375: /* literal ::= NK_STRING */ +#line 678 "sql.y" { yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } +#line 6549 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 376: /* literal ::= NK_BOOL */ +#line 679 "sql.y" { yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } +#line 6555 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 377: /* literal ::= TIMESTAMP NK_STRING */ +#line 680 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } +#line 6561 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 378: /* literal ::= duration_literal */ @@ -5666,61 +6582,87 @@ static YYACTIONTYPE yy_reduce( case 571: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==571); case 574: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==574); case 576: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==576); +#line 681 "sql.y" { yylhsminor.yy452 = yymsp[0].minor.yy452; } +#line 6587 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 379: /* literal ::= NULL */ +#line 682 "sql.y" { yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } +#line 6593 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 380: /* literal ::= NK_QUESTION */ +#line 683 "sql.y" { yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 6599 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 381: /* duration_literal ::= NK_VARIABLE */ +#line 685 "sql.y" { yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } +#line 6605 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 382: /* signed ::= NK_INTEGER */ +#line 687 "sql.y" { yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } +#line 6611 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 383: /* signed ::= NK_PLUS NK_INTEGER */ +#line 688 "sql.y" { yymsp[-1].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } +#line 6617 "sql.c" break; case 384: /* signed ::= NK_MINUS NK_INTEGER */ +#line 689 "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.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &t); } +#line 6626 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 385: /* signed ::= NK_FLOAT */ +#line 694 "sql.y" { yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } +#line 6632 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 386: /* signed ::= NK_PLUS NK_FLOAT */ +#line 695 "sql.y" { yymsp[-1].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } +#line 6638 "sql.c" break; case 387: /* signed ::= NK_MINUS NK_FLOAT */ +#line 696 "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.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &t); } +#line 6647 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 389: /* signed_literal ::= NK_STRING */ +#line 703 "sql.y" { yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } +#line 6653 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 390: /* signed_literal ::= NK_BOOL */ +#line 704 "sql.y" { yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } +#line 6659 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 391: /* signed_literal ::= TIMESTAMP NK_STRING */ +#line 705 "sql.y" { yymsp[-1].minor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } +#line 6665 "sql.c" break; case 392: /* signed_literal ::= duration_literal */ case 394: /* signed_literal ::= literal_func */ yytestcase(yyruleno==394); @@ -5730,106 +6672,138 @@ static YYACTIONTYPE yy_reduce( case 575: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==575); case 577: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==577); case 590: /* search_condition ::= common_expression */ yytestcase(yyruleno==590); +#line 706 "sql.y" { yylhsminor.yy452 = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); } +#line 6677 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 393: /* signed_literal ::= NULL */ +#line 707 "sql.y" { yylhsminor.yy452 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } +#line 6683 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 395: /* signed_literal ::= NK_QUESTION */ +#line 709 "sql.y" { yylhsminor.yy452 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } +#line 6689 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 415: /* expression ::= NK_LP expression NK_RP */ case 499: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==499); case 589: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==589); +#line 770 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } +#line 6697 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 416: /* expression ::= NK_PLUS expr_or_subquery */ +#line 771 "sql.y" { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } +#line 6706 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 417: /* expression ::= NK_MINUS expr_or_subquery */ +#line 775 "sql.y" { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy452), NULL)); } +#line 6715 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 418: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ +#line 779 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_ADD, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6725 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 419: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ +#line 784 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_SUB, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6735 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 420: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ +#line 789 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_MULTI, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6745 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 421: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ +#line 794 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_DIV, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6755 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 422: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ +#line 799 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_REM, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6765 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 423: /* expression ::= column_reference NK_ARROW NK_STRING */ +#line 804 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } +#line 6774 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 424: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ +#line 808 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6784 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 425: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ +#line 813 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, OP_TYPE_BIT_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6794 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 428: /* column_reference ::= column_name */ +#line 824 "sql.y" { yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy371, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy371)); } +#line 6800 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 429: /* column_reference ::= table_name NK_DOT column_name */ +#line 825 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371, createColumnNode(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy371)); } +#line 6806 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 430: /* pseudo_column ::= ROWTS */ @@ -5844,191 +6818,278 @@ static YYACTIONTYPE yy_reduce( case 440: /* pseudo_column ::= ISFILLED */ yytestcase(yyruleno==440); case 441: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==441); case 447: /* literal_func ::= NOW */ yytestcase(yyruleno==447); +#line 827 "sql.y" { yylhsminor.yy452 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } +#line 6823 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 432: /* pseudo_column ::= table_name NK_DOT TBNAME */ +#line 829 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy371)))); } +#line 6829 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 442: /* function_expression ::= function_name NK_LP expression_list NK_RP */ case 443: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==443); +#line 840 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy371, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy371, yymsp[-1].minor.yy812)); } +#line 6836 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 444: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ +#line 843 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), yymsp[-1].minor.yy310)); } +#line 6842 "sql.c" yymsp[-5].minor.yy452 = yylhsminor.yy452; break; case 446: /* literal_func ::= noarg_func NK_LP NK_RP */ +#line 846 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy371, NULL)); } +#line 6848 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 461: /* star_func_para_list ::= NK_STAR */ +#line 870 "sql.y" { yylhsminor.yy812 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } +#line 6854 "sql.c" yymsp[0].minor.yy812 = yylhsminor.yy812; break; case 466: /* star_func_para ::= table_name NK_DOT NK_STAR */ case 530: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==530); +#line 879 "sql.y" { yylhsminor.yy452 = createColumnNode(pCxt, &yymsp[-2].minor.yy371, &yymsp[0].minor.yy0); } +#line 6861 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 467: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ +#line 882 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy812, yymsp[-1].minor.yy452)); } +#line 6867 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 468: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ +#line 884 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), yymsp[-2].minor.yy812, yymsp[-1].minor.yy452)); } +#line 6873 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 471: /* when_then_expr ::= WHEN common_expression THEN common_expression */ +#line 891 "sql.y" { yymsp[-3].minor.yy452 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452)); } +#line 6879 "sql.c" break; case 473: /* case_when_else_opt ::= ELSE common_expression */ +#line 894 "sql.y" { yymsp[-1].minor.yy452 = releaseRawExprNode(pCxt, yymsp[0].minor.yy452); } +#line 6884 "sql.c" break; case 474: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ case 479: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==479); +#line 897 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createOperatorNode(pCxt, yymsp[-1].minor.yy354, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6894 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 475: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ +#line 904 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-4].minor.yy452), releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6904 "sql.c" yymsp[-4].minor.yy452 = yylhsminor.yy452; break; case 476: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ +#line 910 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createNotBetweenAnd(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy452), releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 6914 "sql.c" yymsp[-5].minor.yy452 = yylhsminor.yy452; break; case 477: /* predicate ::= expr_or_subquery IS NULL */ +#line 915 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), NULL)); } +#line 6923 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 478: /* predicate ::= expr_or_subquery IS NOT NULL */ +#line 919 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), NULL)); } +#line 6932 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 480: /* compare_op ::= NK_LT */ +#line 931 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_LOWER_THAN; } +#line 6938 "sql.c" break; case 481: /* compare_op ::= NK_GT */ +#line 932 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_GREATER_THAN; } +#line 6943 "sql.c" break; case 482: /* compare_op ::= NK_LE */ +#line 933 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_LOWER_EQUAL; } +#line 6948 "sql.c" break; case 483: /* compare_op ::= NK_GE */ +#line 934 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_GREATER_EQUAL; } +#line 6953 "sql.c" break; case 484: /* compare_op ::= NK_NE */ +#line 935 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_NOT_EQUAL; } +#line 6958 "sql.c" break; case 485: /* compare_op ::= NK_EQ */ +#line 936 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_EQUAL; } +#line 6963 "sql.c" break; case 486: /* compare_op ::= LIKE */ +#line 937 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_LIKE; } +#line 6968 "sql.c" break; case 487: /* compare_op ::= NOT LIKE */ +#line 938 "sql.y" { yymsp[-1].minor.yy354 = OP_TYPE_NOT_LIKE; } +#line 6973 "sql.c" break; case 488: /* compare_op ::= MATCH */ +#line 939 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_MATCH; } +#line 6978 "sql.c" break; case 489: /* compare_op ::= NMATCH */ +#line 940 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_NMATCH; } +#line 6983 "sql.c" break; case 490: /* compare_op ::= CONTAINS */ +#line 941 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_JSON_CONTAINS; } +#line 6988 "sql.c" break; case 491: /* in_op ::= IN */ +#line 945 "sql.y" { yymsp[0].minor.yy354 = OP_TYPE_IN; } +#line 6993 "sql.c" break; case 492: /* in_op ::= NOT IN */ +#line 946 "sql.y" { yymsp[-1].minor.yy354 = OP_TYPE_NOT_IN; } +#line 6998 "sql.c" break; case 493: /* in_predicate_value ::= NK_LP literal_list NK_RP */ +#line 948 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy812)); } +#line 7003 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 495: /* boolean_value_expression ::= NOT boolean_primary */ +#line 952 "sql.y" { SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy452), NULL)); } +#line 7012 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 496: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ +#line 957 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_OR, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 7022 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 497: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ +#line 963 "sql.y" { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy452); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy452); yylhsminor.yy452 = createRawExprNodeExt(pCxt, &s, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_AND, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 7032 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 505: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ +#line 981 "sql.y" { yylhsminor.yy452 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy452, yymsp[0].minor.yy452, NULL); } +#line 7038 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 508: /* table_primary ::= table_name alias_opt */ +#line 987 "sql.y" { yylhsminor.yy452 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy371, &yymsp[0].minor.yy371); } +#line 7044 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 509: /* table_primary ::= db_name NK_DOT table_name alias_opt */ +#line 988 "sql.y" { yylhsminor.yy452 = createRealTableNode(pCxt, &yymsp[-3].minor.yy371, &yymsp[-1].minor.yy371, &yymsp[0].minor.yy371); } +#line 7050 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 510: /* table_primary ::= subquery alias_opt */ +#line 989 "sql.y" { yylhsminor.yy452 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452), &yymsp[0].minor.yy371); } +#line 7056 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 512: /* alias_opt ::= */ +#line 994 "sql.y" { yymsp[1].minor.yy371 = nil_token; } +#line 7062 "sql.c" break; case 514: /* alias_opt ::= AS table_alias */ +#line 996 "sql.y" { yymsp[-1].minor.yy371 = yymsp[0].minor.yy371; } +#line 7067 "sql.c" break; case 515: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ case 516: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==516); +#line 998 "sql.y" { yymsp[-2].minor.yy452 = yymsp[-1].minor.yy452; } +#line 7073 "sql.c" break; case 517: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ +#line 1003 "sql.y" { yylhsminor.yy452 = createJoinTableNode(pCxt, yymsp[-4].minor.yy140, yymsp[-5].minor.yy452, yymsp[-2].minor.yy452, yymsp[0].minor.yy452); } +#line 7078 "sql.c" yymsp[-5].minor.yy452 = yylhsminor.yy452; break; case 518: /* join_type ::= */ +#line 1007 "sql.y" { yymsp[1].minor.yy140 = JOIN_TYPE_INNER; } +#line 7084 "sql.c" break; case 519: /* join_type ::= INNER */ +#line 1008 "sql.y" { yymsp[0].minor.yy140 = JOIN_TYPE_INNER; } +#line 7089 "sql.c" break; case 520: /* query_specification ::= SELECT set_quantifier_opt select_list from_clause_opt where_clause_opt partition_by_clause_opt range_opt every_opt fill_opt twindow_clause_opt group_by_clause_opt having_clause_opt */ +#line 1014 "sql.y" { yymsp[-11].minor.yy452 = createSelectStmt(pCxt, yymsp[-10].minor.yy667, yymsp[-9].minor.yy812, yymsp[-8].minor.yy452); yymsp[-11].minor.yy452 = addWhereClause(pCxt, yymsp[-11].minor.yy452, yymsp[-7].minor.yy452); @@ -6040,138 +7101,213 @@ static YYACTIONTYPE yy_reduce( yymsp[-11].minor.yy452 = addEveryClause(pCxt, yymsp[-11].minor.yy452, yymsp[-4].minor.yy452); yymsp[-11].minor.yy452 = addFillClause(pCxt, yymsp[-11].minor.yy452, yymsp[-3].minor.yy452); } +#line 7104 "sql.c" break; case 523: /* set_quantifier_opt ::= ALL */ +#line 1030 "sql.y" { yymsp[0].minor.yy667 = false; } +#line 7109 "sql.c" break; case 526: /* select_item ::= NK_STAR */ +#line 1037 "sql.y" { yylhsminor.yy452 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } +#line 7114 "sql.c" yymsp[0].minor.yy452 = yylhsminor.yy452; break; case 528: /* select_item ::= common_expression column_alias */ case 538: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==538); +#line 1039 "sql.y" { yylhsminor.yy452 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452), &yymsp[0].minor.yy371); } +#line 7121 "sql.c" yymsp[-1].minor.yy452 = yylhsminor.yy452; break; case 529: /* select_item ::= common_expression AS column_alias */ case 539: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==539); +#line 1040 "sql.y" { yylhsminor.yy452 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), &yymsp[0].minor.yy371); } +#line 7128 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 534: /* partition_by_clause_opt ::= PARTITION BY partition_list */ case 559: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==559); case 579: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==579); +#line 1049 "sql.y" { yymsp[-2].minor.yy812 = yymsp[0].minor.yy812; } +#line 7136 "sql.c" break; case 541: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ +#line 1062 "sql.y" { yymsp[-5].minor.yy452 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } +#line 7141 "sql.c" break; case 542: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ +#line 1063 "sql.y" { yymsp[-3].minor.yy452 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } +#line 7146 "sql.c" break; case 543: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ +#line 1065 "sql.y" { yymsp[-5].minor.yy452 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), NULL, yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 7151 "sql.c" break; case 544: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ +#line 1068 "sql.y" { yymsp[-7].minor.yy452 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy452), releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), yymsp[-1].minor.yy452, yymsp[0].minor.yy452); } +#line 7156 "sql.c" break; case 545: /* twindow_clause_opt ::= EVENT_WINDOW START WITH search_condition END WITH search_condition */ +#line 1070 "sql.y" { yymsp[-6].minor.yy452 = createEventWindowNode(pCxt, yymsp[-3].minor.yy452, yymsp[0].minor.yy452); } +#line 7161 "sql.c" break; case 549: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ +#line 1076 "sql.y" { yymsp[-3].minor.yy452 = createFillNode(pCxt, yymsp[-1].minor.yy844, NULL); } +#line 7166 "sql.c" break; case 550: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA expression_list NK_RP */ +#line 1077 "sql.y" { yymsp[-5].minor.yy452 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy812)); } +#line 7171 "sql.c" break; case 551: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA expression_list NK_RP */ +#line 1078 "sql.y" { yymsp[-5].minor.yy452 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy812)); } +#line 7176 "sql.c" break; case 552: /* fill_mode ::= NONE */ +#line 1082 "sql.y" { yymsp[0].minor.yy844 = FILL_MODE_NONE; } +#line 7181 "sql.c" break; case 553: /* fill_mode ::= PREV */ +#line 1083 "sql.y" { yymsp[0].minor.yy844 = FILL_MODE_PREV; } +#line 7186 "sql.c" break; case 554: /* fill_mode ::= NULL */ +#line 1084 "sql.y" { yymsp[0].minor.yy844 = FILL_MODE_NULL; } +#line 7191 "sql.c" break; case 555: /* fill_mode ::= NULL_F */ +#line 1085 "sql.y" { yymsp[0].minor.yy844 = FILL_MODE_NULL_F; } +#line 7196 "sql.c" break; case 556: /* fill_mode ::= LINEAR */ +#line 1086 "sql.y" { yymsp[0].minor.yy844 = FILL_MODE_LINEAR; } +#line 7201 "sql.c" break; case 557: /* fill_mode ::= NEXT */ +#line 1087 "sql.y" { yymsp[0].minor.yy844 = FILL_MODE_NEXT; } +#line 7206 "sql.c" break; case 560: /* group_by_list ::= expr_or_subquery */ +#line 1096 "sql.y" { yylhsminor.yy812 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 7211 "sql.c" yymsp[0].minor.yy812 = yylhsminor.yy812; break; case 561: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ +#line 1097 "sql.y" { yylhsminor.yy812 = addNodeToList(pCxt, yymsp[-2].minor.yy812, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy452))); } +#line 7217 "sql.c" yymsp[-2].minor.yy812 = yylhsminor.yy812; break; case 565: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ +#line 1104 "sql.y" { yymsp[-5].minor.yy452 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy452), releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } +#line 7223 "sql.c" break; case 566: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_RP */ +#line 1106 "sql.y" { yymsp[-3].minor.yy452 = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy452)); } +#line 7228 "sql.c" break; case 569: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ +#line 1113 "sql.y" { yylhsminor.yy452 = addOrderByClause(pCxt, yymsp[-3].minor.yy452, yymsp[-2].minor.yy812); yylhsminor.yy452 = addSlimitClause(pCxt, yylhsminor.yy452, yymsp[-1].minor.yy452); yylhsminor.yy452 = addLimitClause(pCxt, yylhsminor.yy452, yymsp[0].minor.yy452); } +#line 7237 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 572: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ +#line 1123 "sql.y" { yylhsminor.yy452 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy452, yymsp[0].minor.yy452); } +#line 7243 "sql.c" yymsp[-3].minor.yy452 = yylhsminor.yy452; break; case 573: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ +#line 1125 "sql.y" { yylhsminor.yy452 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy452, yymsp[0].minor.yy452); } +#line 7249 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 581: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ case 585: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==585); +#line 1139 "sql.y" { yymsp[-1].minor.yy452 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } +#line 7256 "sql.c" break; case 582: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ case 586: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==586); +#line 1140 "sql.y" { yymsp[-3].minor.yy452 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } +#line 7262 "sql.c" break; case 583: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ case 587: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==587); +#line 1141 "sql.y" { yymsp[-3].minor.yy452 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } +#line 7268 "sql.c" break; case 588: /* subquery ::= NK_LP query_expression NK_RP */ +#line 1149 "sql.y" { yylhsminor.yy452 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy452); } +#line 7273 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 593: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ +#line 1163 "sql.y" { yylhsminor.yy452 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy452), yymsp[-1].minor.yy690, yymsp[0].minor.yy399); } +#line 7279 "sql.c" yymsp[-2].minor.yy452 = yylhsminor.yy452; break; case 594: /* ordering_specification_opt ::= */ +#line 1167 "sql.y" { yymsp[1].minor.yy690 = ORDER_ASC; } +#line 7285 "sql.c" break; case 595: /* ordering_specification_opt ::= ASC */ +#line 1168 "sql.y" { yymsp[0].minor.yy690 = ORDER_ASC; } +#line 7290 "sql.c" break; case 596: /* ordering_specification_opt ::= DESC */ +#line 1169 "sql.y" { yymsp[0].minor.yy690 = ORDER_DESC; } +#line 7295 "sql.c" break; case 597: /* null_ordering_opt ::= */ +#line 1173 "sql.y" { yymsp[1].minor.yy399 = NULL_ORDER_DEFAULT; } +#line 7300 "sql.c" break; case 598: /* null_ordering_opt ::= NULLS FIRST */ +#line 1174 "sql.y" { yymsp[-1].minor.yy399 = NULL_ORDER_FIRST; } +#line 7305 "sql.c" break; case 599: /* null_ordering_opt ::= NULLS LAST */ +#line 1175 "sql.y" { yymsp[-1].minor.yy399 = NULL_ORDER_LAST; } +#line 7310 "sql.c" break; default: break; @@ -6233,6 +7369,7 @@ static void yy_syntax_error( ParseCTX_FETCH #define TOKEN yyminor /************ Begin %syntax_error code ****************************************/ +#line 29 "sql.y" if (TSDB_CODE_SUCCESS == pCxt->errCode) { if(TOKEN.z) { @@ -6243,6 +7380,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 7383 "sql.c" /************ End %syntax_error code ******************************************/ ParseARG_STORE /* Suppress warning about unused %extra_argument variable */ ParseCTX_STORE @@ -6328,12 +7466,56 @@ void Parse( } #endif - do{ + while(1){ /* Exit by "break" */ + assert( yypParser->yytos>=yypParser->yystack ); assert( yyact==yypParser->yytos->stateno ); yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact); if( yyact >= YY_MIN_REDUCE ){ - yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor, - yyminor ParseCTX_PARAM); + unsigned int yyruleno = yyact - YY_MIN_REDUCE; /* Reduce by this rule */ +#ifndef NDEBUG + assert( yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ); + if( yyTraceFILE ){ + int yysize = yyRuleInfoNRhs[yyruleno]; + if( yysize ){ + fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n", + yyTracePrompt, + yyruleno, yyRuleName[yyruleno], + yyrulenoyytos[yysize].stateno); + }else{ + fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n", + yyTracePrompt, yyruleno, yyRuleName[yyruleno], + yyrulenoyytos - yypParser->yystack)>yypParser->yyhwm ){ + yypParser->yyhwm++; + assert( yypParser->yyhwm == + (int)(yypParser->yytos - yypParser->yystack)); + } +#endif +#if YYSTACKDEPTH>0 + if( yypParser->yytos>=yypParser->yystackEnd ){ + yyStackOverflow(yypParser); + break; + } +#else + if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){ + if( yyGrowStack(yypParser) ){ + yyStackOverflow(yypParser); + break; + } + } +#endif + } + yyact = yy_reduce(yypParser,yyruleno,yymajor,yyminor ParseCTX_PARAM); }else if( yyact <= YY_MAX_SHIFTREDUCE ){ yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor); #ifndef YYNOERRORRECOVERY @@ -6389,14 +7571,13 @@ void Parse( yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion); yymajor = YYNOCODE; }else{ - while( yypParser->yytos >= yypParser->yystack - && (yyact = yy_find_reduce_action( - yypParser->yytos->stateno, - YYERRORSYMBOL)) > YY_MAX_SHIFTREDUCE - ){ + while( yypParser->yytos > yypParser->yystack ){ + yyact = yy_find_reduce_action(yypParser->yytos->stateno, + YYERRORSYMBOL); + if( yyact<=YY_MAX_SHIFTREDUCE ) break; yy_pop_parser_stack(yypParser); } - if( yypParser->yytos < yypParser->yystack || yymajor==0 ){ + if( yypParser->yytos <= yypParser->yystack || yymajor==0 ){ yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); yy_parse_failed(yypParser); #ifndef YYNOERRORRECOVERY @@ -6446,7 +7627,7 @@ void Parse( break; #endif } - }while( yypParser->yytos>yypParser->yystack ); + } #ifndef NDEBUG if( yyTraceFILE ){ yyStackEntry *i; From e93ed3b55617494527d030f99c6b6268163a222d Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Wed, 16 Aug 2023 14:09:22 +0800 Subject: [PATCH 11/21] enhance: table san type and disable partition tags optimize for tag scan --- source/libs/executor/inc/executil.h | 2 +- source/libs/executor/src/cachescanoperator.c | 2 +- source/libs/executor/src/executil.c | 2 +- source/libs/executor/src/scanoperator.c | 15 +++++---------- source/libs/planner/src/planLogicCreater.c | 19 +++++++++---------- source/libs/planner/src/planOptimizer.c | 3 ++- 6 files changed, 19 insertions(+), 24 deletions(-) diff --git a/source/libs/executor/inc/executil.h b/source/libs/executor/inc/executil.h index f273f63770..2552523e73 100644 --- a/source/libs/executor/inc/executil.h +++ b/source/libs/executor/inc/executil.h @@ -117,7 +117,7 @@ void* tableListDestroy(STableListInfo* pTableListInfo); void tableListClear(STableListInfo* pTableListInfo); int32_t tableListGetOutputGroups(const STableListInfo* pTableList); bool oneTableForEachGroup(const STableListInfo* pTableList); -uint64_t getTableGroupId(const STableListInfo* pTableList, uint64_t tableUid); +uint64_t tableListGetTableGroupId(const STableListInfo* pTableList, uint64_t tableUid); int32_t tableListAddTableInfo(STableListInfo* pTableList, uint64_t uid, uint64_t gid); int32_t tableListGetGroupList(const STableListInfo* pTableList, int32_t ordinalIndex, STableKeyInfo** pKeyInfo, int32_t* num); diff --git a/source/libs/executor/src/cachescanoperator.c b/source/libs/executor/src/cachescanoperator.c index ce39ebab59..a07a9d5dbd 100644 --- a/source/libs/executor/src/cachescanoperator.c +++ b/source/libs/executor/src/cachescanoperator.c @@ -218,7 +218,7 @@ SSDataBlock* doScanCache(SOperatorInfo* pOperator) { return NULL; } - pRes->info.id.groupId = getTableGroupId(pTableList, pRes->info.id.uid); + pRes->info.id.groupId = tableListGetTableGroupId(pTableList, pRes->info.id.uid); pInfo->indexOfBufferedRes += 1; return pRes; } else { diff --git a/source/libs/executor/src/executil.c b/source/libs/executor/src/executil.c index 5bb8f8a38b..057847e57a 100644 --- a/source/libs/executor/src/executil.c +++ b/source/libs/executor/src/executil.c @@ -1930,7 +1930,7 @@ void tableListGetSourceTableInfo(const STableListInfo* pTableList, uint64_t* psu *type = pTableList->idInfo.tableType; } -uint64_t getTableGroupId(const STableListInfo* pTableList, uint64_t tableUid) { +uint64_t tableListGetTableGroupId(const STableListInfo* pTableList, uint64_t tableUid) { int32_t* slot = taosHashGet(pTableList->map, &tableUid, sizeof(tableUid)); ASSERT(pTableList->map != NULL && slot != NULL); diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 09b45d1c9d..184cb558fe 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -693,7 +693,7 @@ static SSDataBlock* doTableScanImpl(SOperatorInfo* pOperator) { } if (pBlock->info.id.uid) { - pBlock->info.id.groupId = getTableGroupId(pTableScanInfo->base.pTableListInfo, pBlock->info.id.uid); + pBlock->info.id.groupId = tableListGetTableGroupId(pTableScanInfo->base.pTableListInfo, pBlock->info.id.uid); } uint32_t status = 0; @@ -1088,7 +1088,7 @@ static SSDataBlock* readPreVersionData(SOperatorInfo* pTableScanOp, uint64_t tbU if (hasNext) { /*SSDataBlock* p = */ pAPI->tsdReader.tsdReaderRetrieveDataBlock(pReader, NULL); doSetTagColumnData(&pTableScanInfo->base, pBlock, pTaskInfo, pBlock->info.rows); - pBlock->info.id.groupId = getTableGroupId(pTableScanInfo->base.pTableListInfo, pBlock->info.id.uid); + pBlock->info.id.groupId = tableListGetTableGroupId(pTableScanInfo->base.pTableListInfo, pBlock->info.id.uid); } pAPI->tsdReader.tsdReaderClose(pReader); @@ -1110,7 +1110,7 @@ static uint64_t getGroupIdByCol(SStreamScanInfo* pInfo, uint64_t uid, TSKEY ts, static uint64_t getGroupIdByUid(SStreamScanInfo* pInfo, uint64_t uid) { STableScanInfo* pTableScanInfo = pInfo->pTableScanOp->info; - return getTableGroupId(pTableScanInfo->base.pTableListInfo, uid); + return tableListGetTableGroupId(pTableScanInfo->base.pTableListInfo, uid); } static uint64_t getGroupIdByData(SStreamScanInfo* pInfo, uint64_t uid, TSKEY ts, int64_t maxVersion) { @@ -1651,7 +1651,7 @@ static int32_t setBlockIntoRes(SStreamScanInfo* pInfo, const SSDataBlock* pBlock pBlockInfo->version = pBlock->info.version; STableScanInfo* pTableScanInfo = pInfo->pTableScanOp->info; - pBlockInfo->id.groupId = getTableGroupId(pTableScanInfo->base.pTableListInfo, pBlock->info.id.uid); + pBlockInfo->id.groupId = tableListGetTableGroupId(pTableScanInfo->base.pTableListInfo, pBlock->info.id.uid); // todo extract method for (int32_t i = 0; i < taosArrayGetSize(pInfo->matchInfo.pList); ++i) { @@ -2795,11 +2795,6 @@ static void tagScanFilterByTagCond(SArray* aUidTags, SNode* pTagCond, SArray* aF static void tagScanFillOneCellWithTag(const STUidTagInfo* pUidTagInfo, SExprInfo* pExprInfo, SColumnInfoData* pColInfo, int rowIndex, const SStorageAPI* pAPI, void* pVnode) { if (fmIsScanPseudoColumnFunc(pExprInfo->pExpr->_function.functionId)) { // tbname char str[TSDB_TABLE_FNAME_LEN + VARSTR_HEADER_SIZE] = {0}; -// if (pUidTagInfo->name != NULL) { -// STR_TO_VARSTR(str, pUidTagInfo->name); -// } else { // name is not retrieved during filter -// pAPI->metaFn.getTableNameByUid(pVnode, pUidTagInfo->uid, str); -// } STR_TO_VARSTR(str, "ctbidx"); colDataSetVal(pColInfo, rowIndex, str, false); @@ -3106,7 +3101,7 @@ static SSDataBlock* getBlockForTableMergeScan(void* param) { continue; } - pBlock->info.id.groupId = getTableGroupId(pInfo->base.pTableListInfo, pBlock->info.id.uid); + pBlock->info.id.groupId = tableListGetTableGroupId(pInfo->base.pTableListInfo, pBlock->info.id.uid); pOperator->resultInfo.totalRows += pBlock->info.rows; pInfo->base.readRecorder.elapsedTime += (taosGetTimestampUs() - st) / 1000.0; diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index 7c97ec81a0..3c02675bc7 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -253,7 +253,7 @@ static EScanType getScanType(SLogicPlanContext* pCxt, SNodeList* pScanPseudoCols return SCAN_TYPE_SYSTEM_TABLE; } - if (tagScan) { + if (tagScan && 0 == LIST_LENGTH(pScanCols) && 0 != LIST_LENGTH(pScanPseudoCols)) { return SCAN_TYPE_TAG; } @@ -366,17 +366,16 @@ static bool tagScanNodeHasTbname(SNode* pKeys) { return hasTbname; } -static int32_t setTagScanExecutionMode(SScanLogicNode* pScan) { - //TODO: set pScan->onlyMetaCtbIdx - bool bOnlyMetaCtbIdx = false; +static int32_t tagScanSetExecutionMode(SScanLogicNode* pScan) { + pScan->onlyMetaCtbIdx = false; if (tagScanNodeListHasTbname(pScan->pScanPseudoCols)) { - bOnlyMetaCtbIdx = false; + pScan->onlyMetaCtbIdx = false; return TSDB_CODE_SUCCESS; } if (pScan->node.pConditions == NULL) { - bOnlyMetaCtbIdx = true; + pScan->onlyMetaCtbIdx = true; return TSDB_CODE_SUCCESS; } @@ -385,9 +384,9 @@ static int32_t setTagScanExecutionMode(SScanLogicNode* pScan) { SNode* pTagIndexCond = NULL; filterPartitionCond(&pCond, NULL, &pTagIndexCond, &pTagCond, NULL); if (pTagIndexCond || tagScanNodeHasTbname(pTagCond)) { - bOnlyMetaCtbIdx = false; + pScan->onlyMetaCtbIdx = false; } else { - bOnlyMetaCtbIdx = true; + pScan->onlyMetaCtbIdx = true; } nodesDestroyNode(pCond); nodesDestroyNode(pTagIndexCond); @@ -462,8 +461,8 @@ static int32_t createScanLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSelect code = createColumnByRewriteExprs(pScan->pScanPseudoCols, &pScan->node.pTargets); } - if (pSelect->tagScan) { - code = setTagScanExecutionMode(pScan); + if (pScan->scanType == SCAN_TYPE_TAG) { + code = tagScanSetExecutionMode(pScan); } if (TSDB_CODE_SUCCESS == code) { diff --git a/source/libs/planner/src/planOptimizer.c b/source/libs/planner/src/planOptimizer.c index 6944fc9f18..ff95f9a988 100644 --- a/source/libs/planner/src/planOptimizer.c +++ b/source/libs/planner/src/planOptimizer.c @@ -1563,7 +1563,8 @@ static bool planOptNodeListHasTbname(SNodeList* pKeys) { static bool partTagsIsOptimizableNode(SLogicNode* pNode) { bool ret = 1 == LIST_LENGTH(pNode->pChildren) && - QUERY_NODE_LOGIC_PLAN_SCAN == nodeType(nodesListGetNode(pNode->pChildren, 0)); + QUERY_NODE_LOGIC_PLAN_SCAN == nodeType(nodesListGetNode(pNode->pChildren, 0) && + SCAN_TYPE_TAG != ((SScanLogicNode*)(nodesListGetNode(pNode->pChildren, 0)))->scanType); if (!ret) return ret; switch (nodeType(pNode)) { case QUERY_NODE_LOGIC_PLAN_PARTITION: { From 27d7c659bccedde5c12e5ca82205be613388ab03 Mon Sep 17 00:00:00 2001 From: slzhou Date: Wed, 16 Aug 2023 14:17:48 +0800 Subject: [PATCH 12/21] fix: minor error --- source/libs/planner/src/planOptimizer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/libs/planner/src/planOptimizer.c b/source/libs/planner/src/planOptimizer.c index ff95f9a988..a9e36d4d03 100644 --- a/source/libs/planner/src/planOptimizer.c +++ b/source/libs/planner/src/planOptimizer.c @@ -1563,8 +1563,8 @@ static bool planOptNodeListHasTbname(SNodeList* pKeys) { static bool partTagsIsOptimizableNode(SLogicNode* pNode) { bool ret = 1 == LIST_LENGTH(pNode->pChildren) && - QUERY_NODE_LOGIC_PLAN_SCAN == nodeType(nodesListGetNode(pNode->pChildren, 0) && - SCAN_TYPE_TAG != ((SScanLogicNode*)(nodesListGetNode(pNode->pChildren, 0)))->scanType); + QUERY_NODE_LOGIC_PLAN_SCAN == nodeType(nodesListGetNode(pNode->pChildren, 0)) && + SCAN_TYPE_TAG != ((SScanLogicNode*)nodesListGetNode(pNode->pChildren, 0))->scanType; if (!ret) return ret; switch (nodeType(pNode)) { case QUERY_NODE_LOGIC_PLAN_PARTITION: { From 0c62eed08fcc20a720aace78277e856b66e36f62 Mon Sep 17 00:00:00 2001 From: slzhou Date: Wed, 16 Aug 2023 15:14:02 +0800 Subject: [PATCH 13/21] fix: select tags - change tbname error --- source/libs/nodes/src/nodesCloneFuncs.c | 1 + source/libs/planner/src/planLogicCreater.c | 9 ++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/libs/nodes/src/nodesCloneFuncs.c b/source/libs/nodes/src/nodesCloneFuncs.c index d3cbaac5e1..afb5ce6c9a 100644 --- a/source/libs/nodes/src/nodesCloneFuncs.c +++ b/source/libs/nodes/src/nodesCloneFuncs.c @@ -399,6 +399,7 @@ static int32_t logicScanCopy(const SScanLogicNode* pSrc, SScanLogicNode* pDst) { CLONE_NODE_FIELD(pSubtable); COPY_SCALAR_FIELD(igLastNull); COPY_SCALAR_FIELD(groupOrderScan); + COPY_SCALAR_FIELD(onlyMetaCtbIdx); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index 3c02675bc7..a822c7f9fe 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -345,11 +345,10 @@ static int32_t makeScanLogicNode(SLogicPlanContext* pCxt, SRealTableNode* pRealT static bool needScanDefaultCol(EScanType scanType) { return SCAN_TYPE_TABLE_COUNT != scanType; } static EDealRes tagScanNodeHasTbnameFunc(SNode* pNode, void* pContext) { - if (QUERY_NODE_COLUMN == nodeType(pNode)) { - if (COLUMN_TYPE_TBNAME == ((SColumnNode*)pNode)->colType) { - *(bool*)pContext = true; - return DEAL_RES_END; - } + if (QUERY_NODE_FUNCTION == nodeType(pNode) && FUNCTION_TYPE_TBNAME == ((SFunctionNode*)pNode)->funcType || + (QUERY_NODE_COLUMN == nodeType(pNode) && COLUMN_TYPE_TBNAME == ((SColumnNode*)pNode)->colType)) { + *(bool*)pContext = true; + return DEAL_RES_END; } return DEAL_RES_CONTINUE; } From c21559c3d55367d35f4765c06ada123a026abdf7 Mon Sep 17 00:00:00 2001 From: slzhou Date: Wed, 16 Aug 2023 16:00:16 +0800 Subject: [PATCH 14/21] fix: select tags - error of stmt can not be created --- source/libs/parser/src/parAstCreater.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index ef0653198f..b897faebdf 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -853,7 +853,7 @@ SNode* createSelectStmt(SAstCreateContext* pCxt, bool isDistinct, SNodeList* pPr } SNode* setSelectStmtTagMode(SAstCreateContext* pCxt, SNode* pStmt, bool bSelectTags) { - if (QUERY_NODE_SELECT_STMT == nodeType(pStmt)) { + if (pStmt && QUERY_NODE_SELECT_STMT == nodeType(pStmt)) { ((SSelectStmt*)pStmt)->tagScan = bSelectTags; } return pStmt; From a94b8aeea6d497f2782860aa7e2c583fc10e1e8d Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Wed, 16 Aug 2023 15:23:34 +0800 Subject: [PATCH 15/21] feat: update vnodesSchema and mndRetrieveVnodes for show vnodes --- source/common/src/systable.c | 12 +++---- source/dnode/mnode/impl/src/mndMnode.c | 5 ++- source/dnode/mnode/impl/src/mndVgroup.c | 48 +++++++++++++++---------- 3 files changed, 37 insertions(+), 28 deletions(-) diff --git a/source/common/src/systable.c b/source/common/src/systable.c index 0940fcef6a..123d1ec33e 100644 --- a/source/common/src/systable.c +++ b/source/common/src/systable.c @@ -284,7 +284,6 @@ static const SSysDbTableSchema topicSchema[] = { {.name = "type", .bytes = 8 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY, .sysInfo = false}, }; - static const SSysDbTableSchema subscriptionSchema[] = { {.name = "topic_name", .bytes = TSDB_TOPIC_FNAME_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY, .sysInfo = false}, {.name = "consumer_group", .bytes = TSDB_CGROUP_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY, .sysInfo = false}, @@ -295,12 +294,13 @@ static const SSysDbTableSchema subscriptionSchema[] = { }; static const SSysDbTableSchema vnodesSchema[] = { - {.name = "vgroup_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = true}, - {.name = "replica", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT, .sysInfo = true}, - {.name = "status", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, - {.name = "db_name", .bytes = SYSTABLE_SCH_DB_NAME_LEN, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, {.name = "dnode_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = true}, - {.name = "dnode_ep", .bytes = TSDB_EP_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, + {.name = "vgroup_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = true}, + {.name = "db_name", .bytes = SYSTABLE_SCH_DB_NAME_LEN, .type = TSDB_DATA_TYPE_BINARY, .sysInfo = false}, + {.name = "status", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, + {.name = "role_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = true}, + {.name = "start_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = true}, + {.name = "restored", .bytes = 1, .type = TSDB_DATA_TYPE_BOOL, .sysInfo = true}, }; static const SSysDbTableSchema userUserPrivilegesSchema[] = { diff --git a/source/dnode/mnode/impl/src/mndMnode.c b/source/dnode/mnode/impl/src/mndMnode.c index 8912d15553..2757578d35 100644 --- a/source/dnode/mnode/impl/src/mndMnode.c +++ b/source/dnode/mnode/impl/src/mndMnode.c @@ -807,7 +807,6 @@ static int32_t mndRetrieveMnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB ESdbStatus objStatus = 0; char *pWrite; int64_t curMs = taosGetTimestampMs(); - int64_t dummyTimeMs = 0; pSelfObj = sdbAcquire(pSdb, SDB_MNODE, &pMnode->selfDnodeId); if (pSelfObj == NULL) { @@ -858,9 +857,9 @@ static int32_t mndRetrieveMnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)&pObj->createdTime, false); + int64_t roleTimeMs = (isDnodeOnline) ? pObj->roleTimeMs : 0; pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (isDnodeOnline) ? (const char *)&pObj->roleTimeMs : (const char *)&dummyTimeMs, - false); + colDataSetVal(pColInfo, numOfRows, (const char *)&roleTimeMs, false); numOfRows++; sdbRelease(pSdb, pObj); diff --git a/source/dnode/mnode/impl/src/mndVgroup.c b/source/dnode/mnode/impl/src/mndVgroup.c index f3dded9c76..406392271c 100644 --- a/source/dnode/mnode/impl/src/mndVgroup.c +++ b/source/dnode/mnode/impl/src/mndVgroup.c @@ -961,27 +961,24 @@ static int32_t mndRetrieveVnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB int32_t numOfRows = 0; SVgObj *pVgroup = NULL; int32_t cols = 0; + int64_t curMs = taosGetTimestampMs(); while (numOfRows < rows) { pShow->pIter = sdbFetch(pSdb, SDB_VGROUP, pShow->pIter, (void **)&pVgroup); if (pShow->pIter == NULL) break; for (int32_t i = 0; i < pVgroup->replica && numOfRows < rows; ++i) { - SVnodeGid *pVgid = &pVgroup->vnodeGid[i]; + SVnodeGid *pGid = &pVgroup->vnodeGid[i]; SColumnInfoData *pColInfo = NULL; cols = 0; + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + colDataSetVal(pColInfo, numOfRows, (const char *)&pGid->dnodeId, false); + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)&pVgroup->vgId, false); - pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (const char *)&pVgroup->replica, false); - - char buf[20] = {0}; - STR_TO_VARSTR(buf, syncStr(pVgid->syncState)); - pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (const char *)buf, false); - + // db_name const char *dbname = mndGetDbStr(pVgroup->dbName); char b1[TSDB_DB_NAME_LEN + VARSTR_HEADER_SIZE] = {0}; if (dbname != NULL) { @@ -992,20 +989,33 @@ static int32_t mndRetrieveVnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)b1, false); - pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (const char *)&pVgid->dnodeId, false); - - SDnodeObj *pDnode = mndAcquireDnode(pMnode, pVgid->dnodeId); - char b2[TSDB_EP_LEN + VARSTR_HEADER_SIZE] = {0}; - if (pDnode != NULL) { - STR_WITH_MAXSIZE_TO_VARSTR(b2, pDnode->ep, TSDB_EP_LEN + VARSTR_HEADER_SIZE); - } else { - STR_WITH_MAXSIZE_TO_VARSTR(b2, "NULL", TSDB_EP_LEN + VARSTR_HEADER_SIZE); + // dnode is online? + SDnodeObj *pDnode = mndAcquireDnode(pMnode, pGid->dnodeId); + if (pDnode == NULL) { + mError("failed to acquire dnode. dnodeId:%d", pGid->dnodeId); + break; } + bool isDnodeOnline = mndIsDnodeOnline(pDnode, curMs); + + char buf[20] = {0}; + ESyncState syncState = (isDnodeOnline) ? pGid->syncState : TAOS_SYNC_STATE_OFFLINE; + STR_TO_VARSTR(buf, syncStr(syncState)); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (const char *)b2, false); + colDataSetVal(pColInfo, numOfRows, (const char *)buf, false); + + int64_t roleTimeMs = (isDnodeOnline) ? pGid->roleTimeMs : 0; + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + colDataSetVal(pColInfo, numOfRows, (const char *)&roleTimeMs, false); + + int64_t startTimeMs = (isDnodeOnline) ? pGid->startTimeMs : 0; + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + colDataSetVal(pColInfo, numOfRows, (const char *)&startTimeMs, false); + + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + colDataSetVal(pColInfo, numOfRows, (const char *)&pGid->syncRestore, false); numOfRows++; + sdbRelease(pSdb, pDnode); } sdbRelease(pSdb, pVgroup); From 80518cf82b307d2c0722604011ee8ba844da0e50 Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Wed, 16 Aug 2023 15:55:34 +0800 Subject: [PATCH 16/21] feat: support sql command show vnodes for all dnodes --- source/libs/parser/inc/sql.y | 2 +- source/libs/parser/src/parTranslater.c | 2 - source/libs/parser/src/sql.c | 1088 ++++++++++++------------ 3 files changed, 545 insertions(+), 547 deletions(-) diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 5e7d0fb8ac..54307fa460 100755 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -476,7 +476,7 @@ cmd ::= SHOW TAGS FROM db_name(B) NK_DOT table_name(A). cmd ::= SHOW TABLE TAGS tag_list_opt(C) FROM table_name_cond(A) from_db_opt(B). { pCxt->pRootNode = createShowTableTagsStmt(pCxt, A, B, C); } cmd ::= SHOW TABLE TAGS tag_list_opt(C) FROM db_name(B) NK_DOT table_name(A). { pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &A), createIdentifierValueNode(pCxt, &B), C); } cmd ::= SHOW VNODES ON DNODE NK_INTEGER(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &A), NULL); } -cmd ::= SHOW VNODES ON DNODE NK_STRING(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &A)); } +cmd ::= SHOW VNODES. { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, NULL); } // show alive cmd ::= SHOW db_name_cond_opt(A) ALIVE. { pCxt->pRootNode = createShowAliveStmt(pCxt, A, QUERY_NODE_SHOW_DB_ALIVE_STMT); } cmd ::= SHOW CLUSTER ALIVE. { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 38118c03f8..4ef00d934d 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -8054,8 +8054,6 @@ static int32_t rewriteShowVnodes(STranslateContext* pCxt, SQuery* pQuery) { if (TSDB_CODE_SUCCESS == code) { if (NULL != pShow->pDnodeId) { code = createOperatorNode(OP_TYPE_EQUAL, "dnode_id", pShow->pDnodeId, &pStmt->pWhere); - } else { - code = createOperatorNode(OP_TYPE_EQUAL, "dnode_ep", pShow->pDnodeEndpoint, &pStmt->pWhere); } } if (TSDB_CODE_SUCCESS == code) { diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index 34f459222c..9fa815491c 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -479,18 +479,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 802 +#define YYNSTATE 801 #define YYNRULE 600 #define YYNRULE_WITH_ACTION 600 #define YYNTOKEN 338 -#define YY_MAX_SHIFT 801 -#define YY_MIN_SHIFTREDUCE 1182 -#define YY_MAX_SHIFTREDUCE 1781 -#define YY_ERROR_ACTION 1782 -#define YY_ACCEPT_ACTION 1783 -#define YY_NO_ACTION 1784 -#define YY_MIN_REDUCE 1785 -#define YY_MAX_REDUCE 2384 +#define YY_MAX_SHIFT 800 +#define YY_MIN_SHIFTREDUCE 1181 +#define YY_MAX_SHIFTREDUCE 1780 +#define YY_ERROR_ACTION 1781 +#define YY_ACCEPT_ACTION 1782 +#define YY_NO_ACTION 1783 +#define YY_MIN_REDUCE 1784 +#define YY_MAX_REDUCE 2383 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -559,292 +559,292 @@ typedef union { *********** Begin parsing tables **********************************************/ #define YY_ACTTAB_COUNT (2858) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 2128, 2195, 2173, 2084, 221, 692, 1962, 2156, 539, 1951, - /* 10 */ 1828, 672, 48, 46, 1708, 394, 2181, 1215, 2081, 679, - /* 20 */ 401, 2360, 1557, 41, 40, 135, 2177, 47, 45, 44, - /* 30 */ 43, 42, 576, 1638, 453, 1555, 2173, 541, 1584, 2213, - /* 40 */ 41, 40, 1783, 538, 47, 45, 44, 43, 42, 254, - /* 50 */ 1953, 2163, 1947, 708, 632, 533, 1217, 2355, 1220, 1221, - /* 60 */ 2177, 181, 1633, 531, 2179, 398, 527, 523, 19, 1240, - /* 70 */ 66, 1239, 2361, 188, 702, 1563, 30, 2356, 658, 348, - /* 80 */ 691, 369, 2067, 361, 140, 692, 1962, 2194, 1582, 2230, - /* 90 */ 669, 144, 112, 2196, 712, 2198, 2199, 707, 2179, 702, - /* 100 */ 798, 168, 1241, 15, 185, 135, 2283, 103, 702, 1903, - /* 110 */ 397, 2279, 581, 499, 2084, 416, 48, 46, 692, 1962, - /* 120 */ 415, 691, 1771, 190, 401, 264, 1557, 1667, 1373, 2082, - /* 130 */ 679, 2309, 1955, 1582, 38, 306, 1748, 1638, 193, 1555, - /* 140 */ 1640, 1641, 1808, 1364, 737, 736, 735, 1368, 734, 1370, - /* 150 */ 1371, 733, 730, 1807, 1379, 727, 1381, 1382, 724, 721, - /* 160 */ 718, 184, 632, 51, 657, 2355, 1633, 2355, 94, 62, - /* 170 */ 1613, 1623, 19, 2002, 212, 211, 1639, 1642, 677, 1563, - /* 180 */ 2361, 188, 656, 188, 1668, 2356, 658, 2356, 658, 2298, - /* 190 */ 288, 1558, 2163, 1556, 286, 2291, 668, 498, 136, 667, - /* 200 */ 169, 2355, 1797, 2163, 798, 41, 40, 15, 2195, 47, - /* 210 */ 45, 44, 43, 42, 62, 2295, 656, 188, 709, 1317, - /* 220 */ 435, 2356, 658, 1561, 1562, 1785, 1612, 1615, 1616, 1617, - /* 230 */ 1618, 1619, 1620, 1621, 1622, 704, 700, 1631, 1632, 1634, - /* 240 */ 1635, 1636, 1637, 2, 1640, 1641, 2213, 437, 433, 134, - /* 250 */ 133, 132, 131, 130, 129, 128, 127, 126, 2163, 1319, - /* 260 */ 708, 1786, 37, 399, 1662, 1663, 1664, 1665, 1666, 1670, - /* 270 */ 1671, 1672, 1673, 536, 1613, 1623, 537, 1821, 553, 1582, - /* 280 */ 1639, 1642, 125, 1466, 1467, 124, 123, 122, 121, 120, - /* 290 */ 119, 118, 117, 116, 2194, 1558, 2230, 1556, 647, 112, - /* 300 */ 2196, 712, 2198, 2199, 707, 652, 702, 2046, 395, 147, - /* 310 */ 1582, 151, 2254, 2283, 1583, 2195, 166, 397, 2279, 1240, - /* 320 */ 191, 1239, 669, 144, 1964, 672, 191, 1561, 1562, 1705, - /* 330 */ 1612, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 704, - /* 340 */ 700, 1631, 1632, 1634, 1635, 1636, 1637, 2, 12, 48, - /* 350 */ 46, 747, 1241, 2213, 2015, 410, 409, 401, 2184, 1557, - /* 360 */ 2360, 367, 62, 2355, 181, 2163, 1584, 708, 617, 2013, - /* 370 */ 1638, 191, 1555, 594, 593, 592, 692, 1962, 1564, 2359, - /* 380 */ 584, 141, 588, 2356, 2358, 2068, 587, 651, 653, 648, - /* 390 */ 641, 586, 591, 377, 376, 146, 56, 585, 2254, 1633, - /* 400 */ 252, 2194, 631, 2230, 251, 19, 112, 2196, 712, 2198, - /* 410 */ 2199, 707, 1563, 702, 2186, 2213, 297, 298, 185, 544, - /* 420 */ 2283, 296, 537, 1821, 397, 2279, 187, 2291, 2292, 2195, - /* 430 */ 142, 2296, 1223, 657, 1408, 1409, 2355, 798, 1581, 709, - /* 440 */ 15, 1830, 41, 40, 1274, 2310, 47, 45, 44, 43, - /* 450 */ 42, 656, 188, 48, 46, 1643, 2356, 658, 223, 2195, - /* 460 */ 1614, 401, 539, 1557, 1828, 93, 477, 2213, 356, 709, - /* 470 */ 650, 381, 166, 610, 1638, 476, 1555, 1640, 1641, 2163, - /* 480 */ 1965, 708, 2360, 125, 1275, 2355, 124, 123, 122, 121, - /* 490 */ 120, 119, 118, 117, 116, 2015, 62, 2213, 1806, 669, - /* 500 */ 144, 2359, 382, 1633, 12, 2356, 2357, 1613, 1623, 2163, - /* 510 */ 2013, 708, 109, 1639, 1642, 2194, 1563, 2230, 288, 191, - /* 520 */ 112, 2196, 712, 2198, 2199, 707, 60, 702, 1558, 145, - /* 530 */ 1556, 580, 2375, 629, 2283, 579, 1567, 1954, 397, 2279, - /* 540 */ 1712, 798, 692, 1962, 49, 2194, 1582, 2230, 2163, 2195, - /* 550 */ 170, 2196, 712, 2198, 2199, 707, 12, 702, 10, 709, - /* 560 */ 1561, 1562, 451, 1612, 1615, 1616, 1617, 1618, 1619, 1620, - /* 570 */ 1621, 1622, 704, 700, 1631, 1632, 1634, 1635, 1636, 1637, - /* 580 */ 2, 1640, 1641, 445, 1328, 444, 1704, 2213, 41, 40, - /* 590 */ 633, 2320, 47, 45, 44, 43, 42, 1327, 2298, 2163, - /* 600 */ 1585, 708, 671, 186, 2291, 2292, 165, 142, 2296, 1563, - /* 610 */ 1805, 1613, 1623, 692, 1962, 443, 406, 1639, 1642, 2008, - /* 620 */ 2010, 41, 40, 404, 2294, 47, 45, 44, 43, 42, - /* 630 */ 2298, 163, 1558, 452, 1556, 2194, 678, 2230, 383, 1964, - /* 640 */ 112, 2196, 712, 2198, 2199, 707, 2013, 702, 253, 691, - /* 650 */ 447, 2195, 2258, 191, 2283, 446, 2293, 2157, 397, 2279, - /* 660 */ 2163, 709, 508, 2317, 1561, 1562, 154, 1612, 1615, 1616, - /* 670 */ 1617, 1618, 1619, 1620, 1621, 1622, 704, 700, 1631, 1632, - /* 680 */ 1634, 1635, 1636, 1637, 2, 48, 46, 1939, 551, 2213, - /* 690 */ 2077, 459, 2063, 401, 757, 1557, 1614, 632, 669, 144, - /* 700 */ 2355, 2163, 2015, 708, 632, 1938, 1638, 2355, 1555, 391, - /* 710 */ 47, 45, 44, 43, 42, 2361, 188, 2013, 1528, 1529, - /* 720 */ 2356, 658, 2361, 188, 465, 2063, 55, 2356, 658, 14, - /* 730 */ 13, 1736, 51, 692, 1962, 1633, 1949, 2194, 202, 2230, - /* 740 */ 599, 678, 112, 2196, 712, 2198, 2199, 707, 1563, 702, - /* 750 */ 692, 1962, 266, 467, 2375, 609, 2283, 1864, 41, 40, - /* 760 */ 397, 2279, 47, 45, 44, 43, 42, 2195, 1804, 250, - /* 770 */ 482, 205, 747, 798, 692, 1962, 49, 706, 644, 643, - /* 780 */ 1734, 1735, 1737, 1738, 1739, 602, 492, 2063, 2359, 48, - /* 790 */ 46, 1937, 596, 676, 483, 2077, 1778, 401, 249, 1557, - /* 800 */ 404, 1583, 189, 2291, 2292, 2213, 142, 2296, 166, 694, - /* 810 */ 1638, 2255, 1555, 1640, 1641, 1848, 1964, 2163, 2163, 708, - /* 820 */ 745, 156, 155, 742, 741, 740, 153, 594, 593, 592, - /* 830 */ 2009, 2010, 1681, 210, 584, 141, 588, 595, 70, 1633, - /* 840 */ 587, 69, 52, 1613, 1623, 586, 591, 377, 376, 1639, - /* 850 */ 1642, 585, 1563, 2194, 1747, 2230, 1243, 1244, 342, 2196, - /* 860 */ 712, 2198, 2199, 707, 1558, 702, 1556, 2249, 41, 40, - /* 870 */ 1803, 1945, 47, 45, 44, 43, 42, 798, 572, 571, - /* 880 */ 15, 2195, 745, 156, 155, 742, 741, 740, 153, 1802, - /* 890 */ 615, 709, 207, 2330, 1801, 1966, 1561, 1562, 1777, 1612, - /* 900 */ 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 704, 700, - /* 910 */ 1631, 1632, 1634, 1635, 1636, 1637, 2, 1640, 1641, 2213, - /* 920 */ 2163, 1483, 1484, 608, 745, 156, 155, 742, 741, 740, - /* 930 */ 153, 2163, 86, 708, 2015, 85, 606, 632, 604, 2163, - /* 940 */ 2355, 396, 692, 1962, 2163, 692, 1962, 1613, 1623, 2013, - /* 950 */ 738, 692, 1962, 1639, 1642, 2361, 188, 1482, 1485, 259, - /* 960 */ 2356, 658, 552, 739, 1724, 1959, 2006, 2194, 1558, 2230, - /* 970 */ 1556, 255, 112, 2196, 712, 2198, 2199, 707, 9, 702, - /* 980 */ 590, 589, 34, 2149, 2375, 1332, 2283, 678, 41, 40, - /* 990 */ 397, 2279, 47, 45, 44, 43, 42, 1800, 1331, 191, - /* 1000 */ 1561, 1562, 1861, 1612, 1615, 1616, 1617, 1618, 1619, 1620, - /* 1010 */ 1621, 1622, 704, 700, 1631, 1632, 1634, 1635, 1636, 1637, - /* 1020 */ 2, 1648, 352, 167, 1580, 692, 1962, 1582, 327, 692, - /* 1030 */ 1962, 490, 423, 90, 506, 574, 573, 505, 2173, 687, - /* 1040 */ 407, 2077, 324, 73, 2146, 263, 72, 2163, 166, 675, - /* 1050 */ 371, 2015, 2182, 473, 673, 507, 1964, 349, 405, 1957, - /* 1060 */ 475, 703, 2177, 510, 1799, 660, 2013, 1796, 219, 518, - /* 1070 */ 516, 513, 775, 774, 773, 772, 413, 1940, 771, 770, - /* 1080 */ 148, 765, 764, 763, 762, 761, 760, 759, 158, 755, - /* 1090 */ 754, 753, 412, 411, 750, 749, 748, 176, 175, 1585, - /* 1100 */ 2179, 632, 692, 1962, 2355, 1585, 370, 237, 62, 374, - /* 1110 */ 702, 44, 43, 42, 2163, 692, 1962, 2163, 461, 2361, - /* 1120 */ 188, 149, 301, 173, 2356, 658, 692, 1962, 262, 692, - /* 1130 */ 1962, 570, 566, 562, 558, 689, 236, 1795, 664, 696, - /* 1140 */ 1669, 2255, 769, 767, 1794, 1793, 690, 111, 503, 307, - /* 1150 */ 1792, 497, 496, 495, 494, 489, 488, 487, 486, 485, - /* 1160 */ 481, 480, 479, 478, 351, 470, 469, 468, 661, 463, - /* 1170 */ 462, 457, 692, 1962, 2303, 1701, 91, 1614, 375, 234, - /* 1180 */ 373, 372, 1839, 578, 90, 1791, 1790, 2163, 81, 80, - /* 1190 */ 450, 2195, 408, 200, 2163, 2163, 1789, 2015, 1701, 743, - /* 1200 */ 2163, 709, 2006, 639, 597, 580, 442, 440, 1788, 579, - /* 1210 */ 1958, 744, 2014, 320, 2006, 1904, 1992, 350, 35, 54, - /* 1220 */ 431, 3, 2195, 429, 425, 421, 418, 443, 1674, 2213, - /* 1230 */ 758, 454, 709, 1924, 2348, 2163, 2163, 1220, 1221, 154, - /* 1240 */ 83, 2163, 137, 708, 455, 74, 2163, 233, 227, 582, - /* 1250 */ 242, 203, 2195, 240, 232, 549, 244, 265, 2163, 243, - /* 1260 */ 2213, 430, 709, 246, 2302, 191, 245, 248, 154, 583, - /* 1270 */ 247, 1315, 2163, 225, 708, 1837, 50, 2194, 612, 2230, - /* 1280 */ 611, 50, 112, 2196, 712, 2198, 2199, 707, 699, 702, - /* 1290 */ 2213, 1313, 1780, 1781, 2375, 84, 2283, 600, 1798, 1523, - /* 1300 */ 397, 2279, 2163, 645, 708, 1566, 270, 154, 2194, 108, - /* 1310 */ 2230, 2323, 283, 112, 2196, 712, 2198, 2199, 707, 105, - /* 1320 */ 702, 50, 294, 1565, 1557, 2375, 71, 2283, 1526, 152, - /* 1330 */ 154, 397, 2279, 14, 13, 64, 1733, 1555, 2194, 50, - /* 1340 */ 2230, 1732, 2195, 112, 2196, 712, 2198, 2199, 707, 50, - /* 1350 */ 702, 1831, 709, 410, 409, 2375, 277, 2283, 36, 716, - /* 1360 */ 139, 397, 2279, 1571, 41, 40, 272, 674, 47, 45, - /* 1370 */ 44, 43, 42, 2195, 1638, 1902, 1564, 1563, 665, 152, - /* 1380 */ 2213, 1480, 299, 709, 154, 751, 684, 1901, 2214, 303, - /* 1390 */ 1358, 752, 2163, 138, 708, 1675, 384, 152, 2072, 1624, - /* 1400 */ 414, 793, 798, 1633, 1822, 1827, 662, 1293, 2003, 319, - /* 1410 */ 2195, 2213, 2313, 1291, 670, 285, 1563, 282, 422, 1386, - /* 1420 */ 709, 1, 417, 2163, 5, 708, 365, 1588, 2194, 438, - /* 1430 */ 2230, 1504, 196, 112, 2196, 712, 2198, 2199, 707, 1390, - /* 1440 */ 702, 698, 439, 1659, 1397, 2256, 441, 2283, 2213, 195, - /* 1450 */ 198, 397, 2279, 1395, 314, 1581, 458, 157, 209, 2194, - /* 1460 */ 2163, 2230, 708, 1569, 112, 2196, 712, 2198, 2199, 707, - /* 1470 */ 1585, 702, 464, 460, 471, 501, 695, 2073, 2283, 466, - /* 1480 */ 1580, 1568, 397, 2279, 484, 493, 491, 2065, 500, 502, - /* 1490 */ 511, 512, 509, 1558, 213, 1556, 2194, 214, 2230, 2195, - /* 1500 */ 514, 113, 2196, 712, 2198, 2199, 707, 515, 702, 709, - /* 1510 */ 1586, 216, 534, 517, 519, 2283, 4, 535, 542, 2282, - /* 1520 */ 2279, 543, 545, 1583, 224, 1561, 1562, 226, 1587, 546, - /* 1530 */ 547, 1589, 1572, 548, 1567, 229, 550, 2213, 231, 88, - /* 1540 */ 89, 554, 235, 575, 355, 577, 1952, 114, 2195, 2163, - /* 1550 */ 239, 708, 1948, 614, 616, 92, 150, 620, 709, 315, - /* 1560 */ 256, 621, 619, 2137, 1575, 1577, 241, 159, 160, 1950, - /* 1570 */ 258, 260, 1946, 161, 2195, 162, 2134, 700, 1631, 1632, - /* 1580 */ 1634, 1635, 1636, 1637, 706, 2194, 2213, 2230, 627, 1511, - /* 1590 */ 113, 2196, 712, 2198, 2199, 707, 2133, 702, 2163, 646, - /* 1600 */ 708, 624, 636, 8, 2283, 2314, 2329, 682, 697, 2279, - /* 1610 */ 642, 2324, 2213, 387, 626, 2328, 649, 625, 268, 271, - /* 1620 */ 2305, 655, 276, 637, 2163, 2195, 708, 634, 635, 281, - /* 1630 */ 2378, 388, 1701, 663, 710, 709, 2230, 666, 2195, 113, - /* 1640 */ 2196, 712, 2198, 2199, 707, 143, 702, 1584, 709, 289, - /* 1650 */ 178, 1590, 278, 2283, 2078, 316, 98, 360, 2279, 2299, - /* 1660 */ 2194, 317, 2230, 2213, 680, 342, 2196, 712, 2198, 2199, - /* 1670 */ 707, 705, 702, 693, 2248, 2163, 2213, 708, 681, 685, - /* 1680 */ 2092, 279, 174, 686, 2091, 280, 100, 2195, 2163, 318, - /* 1690 */ 708, 2090, 393, 102, 61, 2264, 104, 709, 2354, 1963, - /* 1700 */ 714, 2007, 1925, 794, 2195, 284, 795, 321, 797, 2155, - /* 1710 */ 357, 2194, 310, 2230, 709, 358, 171, 2196, 712, 2198, - /* 1720 */ 2199, 707, 53, 702, 2194, 2213, 2230, 325, 323, 113, - /* 1730 */ 2196, 712, 2198, 2199, 707, 345, 702, 2163, 2154, 708, - /* 1740 */ 330, 344, 2213, 2283, 334, 2153, 78, 385, 2280, 2150, - /* 1750 */ 419, 420, 1548, 2195, 2163, 1549, 708, 194, 424, 2148, - /* 1760 */ 426, 427, 428, 709, 2147, 366, 2145, 659, 2376, 432, - /* 1770 */ 2144, 2143, 434, 2194, 436, 2230, 1539, 2195, 170, 2196, - /* 1780 */ 712, 2198, 2199, 707, 2124, 702, 197, 709, 2123, 199, - /* 1790 */ 2194, 2213, 2230, 1507, 79, 343, 2196, 712, 2198, 2199, - /* 1800 */ 707, 1506, 702, 2163, 2195, 708, 2105, 2104, 2103, 448, - /* 1810 */ 449, 2102, 2101, 2056, 709, 2213, 1457, 2055, 456, 2321, - /* 1820 */ 386, 368, 2052, 201, 2195, 2051, 2050, 2163, 82, 708, - /* 1830 */ 2049, 2054, 204, 2053, 709, 2048, 2047, 2045, 2044, 2194, - /* 1840 */ 206, 2230, 2213, 2043, 336, 2196, 712, 2198, 2199, 707, - /* 1850 */ 2042, 702, 474, 472, 2163, 2058, 708, 2041, 2040, 2039, - /* 1860 */ 2038, 2037, 2213, 2194, 2036, 2230, 2035, 392, 343, 2196, - /* 1870 */ 712, 2198, 2199, 707, 2163, 702, 708, 353, 1459, 208, - /* 1880 */ 2026, 87, 2025, 2024, 2023, 2057, 2022, 654, 2034, 2033, - /* 1890 */ 2194, 2195, 2230, 2032, 2031, 171, 2196, 712, 2198, 2199, - /* 1900 */ 707, 709, 702, 2030, 2029, 2028, 2027, 2021, 2020, 2019, - /* 1910 */ 2194, 2018, 2230, 2017, 2016, 343, 2196, 712, 2198, 2199, - /* 1920 */ 707, 2195, 702, 504, 354, 1867, 1325, 215, 1866, 2213, - /* 1930 */ 217, 709, 1329, 1865, 400, 218, 1863, 1333, 1860, 521, - /* 1940 */ 522, 2163, 1859, 708, 525, 1852, 529, 2377, 1841, 1817, - /* 1950 */ 1816, 520, 524, 1222, 528, 532, 182, 526, 2122, 2213, - /* 1960 */ 530, 76, 2112, 77, 402, 220, 222, 2100, 2099, 228, - /* 1970 */ 2076, 2163, 230, 708, 2183, 1941, 183, 2194, 540, 2230, - /* 1980 */ 2195, 1862, 343, 2196, 712, 2198, 2199, 707, 618, 702, - /* 1990 */ 709, 1858, 555, 556, 557, 1856, 559, 1854, 561, 563, - /* 2000 */ 560, 1267, 564, 1851, 565, 568, 801, 2194, 567, 2230, - /* 2010 */ 569, 1836, 343, 2196, 712, 2198, 2199, 707, 2213, 702, - /* 2020 */ 313, 1834, 1835, 1833, 1813, 1943, 1401, 1402, 1942, 1316, - /* 2030 */ 2163, 1314, 708, 1312, 1311, 1310, 180, 1309, 1303, 1849, - /* 2040 */ 1308, 378, 1840, 1305, 791, 787, 783, 779, 1304, 311, - /* 2050 */ 766, 238, 63, 2195, 768, 1302, 379, 1838, 380, 1812, - /* 2060 */ 598, 601, 603, 709, 1811, 605, 613, 1810, 2230, 607, - /* 2070 */ 115, 338, 2196, 712, 2198, 2199, 707, 2121, 702, 1533, - /* 2080 */ 1535, 1532, 1537, 29, 2195, 67, 1513, 1515, 2111, 110, - /* 2090 */ 1517, 2213, 304, 164, 709, 622, 2098, 2097, 2360, 20, - /* 2100 */ 6, 7, 21, 2163, 31, 708, 57, 623, 17, 275, - /* 2110 */ 22, 261, 274, 33, 640, 1492, 1750, 267, 638, 2195, - /* 2120 */ 65, 172, 2213, 24, 628, 688, 1491, 2184, 1765, 709, - /* 2130 */ 630, 23, 287, 269, 2163, 1731, 708, 1723, 273, 2194, - /* 2140 */ 32, 2230, 1770, 95, 328, 2196, 712, 2198, 2199, 707, - /* 2150 */ 1764, 702, 1771, 389, 1769, 1768, 2195, 2213, 58, 390, - /* 2160 */ 291, 177, 18, 2096, 1698, 1697, 709, 290, 2075, 2163, - /* 2170 */ 2194, 708, 2230, 59, 96, 326, 2196, 712, 2198, 2199, - /* 2180 */ 707, 2195, 702, 97, 292, 25, 257, 293, 1729, 295, - /* 2190 */ 300, 709, 68, 2074, 2213, 99, 305, 101, 26, 1650, - /* 2200 */ 1649, 13, 1573, 105, 2233, 2194, 2163, 2230, 708, 1660, - /* 2210 */ 329, 2196, 712, 2198, 2199, 707, 683, 702, 2195, 2213, - /* 2220 */ 1628, 11, 302, 179, 701, 192, 1626, 1605, 709, 39, - /* 2230 */ 16, 2163, 1625, 708, 27, 715, 1597, 28, 403, 713, - /* 2240 */ 1387, 717, 2194, 2195, 2230, 1384, 719, 335, 2196, 712, - /* 2250 */ 2198, 2199, 707, 709, 702, 720, 2213, 711, 722, 1383, - /* 2260 */ 723, 725, 1380, 726, 728, 1374, 1372, 2194, 2163, 2230, - /* 2270 */ 708, 731, 339, 2196, 712, 2198, 2199, 707, 729, 702, - /* 2280 */ 732, 2213, 106, 308, 1378, 1396, 107, 75, 1392, 1377, - /* 2290 */ 1376, 1375, 746, 2163, 1265, 708, 1297, 1296, 1295, 1294, - /* 2300 */ 1292, 756, 1290, 1289, 2194, 1288, 2230, 1323, 1283, 331, - /* 2310 */ 2196, 712, 2198, 2199, 707, 2195, 702, 309, 1286, 1285, - /* 2320 */ 1284, 1320, 1282, 1281, 1280, 709, 1318, 1277, 1276, 2194, - /* 2330 */ 2195, 2230, 1273, 1272, 340, 2196, 712, 2198, 2199, 707, - /* 2340 */ 709, 702, 1271, 1270, 1857, 776, 778, 1855, 2195, 777, - /* 2350 */ 780, 781, 782, 2213, 1853, 785, 784, 786, 709, 1850, - /* 2360 */ 788, 789, 790, 1832, 792, 2163, 1809, 708, 2213, 1212, - /* 2370 */ 312, 796, 1784, 1559, 322, 1784, 799, 800, 1784, 1784, - /* 2380 */ 2163, 1784, 708, 1784, 1784, 1784, 2213, 1784, 1784, 1784, - /* 2390 */ 1784, 1784, 1784, 1784, 1784, 2195, 1784, 1784, 2163, 1784, - /* 2400 */ 708, 2194, 1784, 2230, 1784, 709, 332, 2196, 712, 2198, - /* 2410 */ 2199, 707, 1784, 702, 1784, 1784, 2194, 2195, 2230, 1784, - /* 2420 */ 1784, 341, 2196, 712, 2198, 2199, 707, 709, 702, 1784, - /* 2430 */ 1784, 1784, 1784, 2213, 2194, 1784, 2230, 1784, 1784, 333, - /* 2440 */ 2196, 712, 2198, 2199, 707, 2163, 702, 708, 1784, 1784, - /* 2450 */ 1784, 1784, 1784, 1784, 1784, 2213, 1784, 1784, 1784, 1784, - /* 2460 */ 1784, 1784, 1784, 1784, 2195, 1784, 1784, 2163, 1784, 708, - /* 2470 */ 1784, 1784, 1784, 1784, 709, 1784, 1784, 1784, 1784, 1784, - /* 2480 */ 1784, 2194, 1784, 2230, 1784, 1784, 346, 2196, 712, 2198, - /* 2490 */ 2199, 707, 1784, 702, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2500 */ 1784, 1784, 2213, 2194, 1784, 2230, 1784, 1784, 347, 2196, - /* 2510 */ 712, 2198, 2199, 707, 2163, 702, 708, 1784, 1784, 1784, - /* 2520 */ 1784, 1784, 1784, 2195, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2530 */ 1784, 1784, 1784, 709, 1784, 1784, 2195, 1784, 1784, 1784, - /* 2540 */ 1784, 1784, 1784, 1784, 1784, 1784, 709, 1784, 1784, 1784, - /* 2550 */ 2194, 1784, 2230, 2195, 1784, 2207, 2196, 712, 2198, 2199, - /* 2560 */ 707, 2213, 702, 709, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2570 */ 1784, 1784, 1784, 2163, 2213, 708, 1784, 1784, 1784, 1784, - /* 2580 */ 1784, 1784, 1784, 1784, 1784, 2195, 2163, 1784, 708, 1784, - /* 2590 */ 1784, 2213, 1784, 1784, 1784, 709, 1784, 1784, 1784, 1784, - /* 2600 */ 1784, 1784, 1784, 2163, 1784, 708, 1784, 1784, 1784, 2194, - /* 2610 */ 1784, 2230, 1784, 1784, 2206, 2196, 712, 2198, 2199, 707, - /* 2620 */ 1784, 702, 2194, 2213, 2230, 1784, 1784, 2205, 2196, 712, - /* 2630 */ 2198, 2199, 707, 1784, 702, 2163, 1784, 708, 1784, 2194, - /* 2640 */ 1784, 2230, 1784, 1784, 362, 2196, 712, 2198, 2199, 707, - /* 2650 */ 1784, 702, 2195, 1784, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2660 */ 1784, 1784, 709, 1784, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2670 */ 1784, 2194, 2195, 2230, 1784, 1784, 363, 2196, 712, 2198, - /* 2680 */ 2199, 707, 709, 702, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2690 */ 2213, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2700 */ 1784, 1784, 2163, 1784, 708, 1784, 1784, 1784, 1784, 1784, - /* 2710 */ 2213, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2720 */ 1784, 1784, 2163, 1784, 708, 1784, 1784, 1784, 1784, 1784, - /* 2730 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2194, 1784, - /* 2740 */ 2230, 1784, 2195, 359, 2196, 712, 2198, 2199, 707, 1784, - /* 2750 */ 702, 1784, 709, 1784, 1784, 1784, 1784, 1784, 2194, 2195, - /* 2760 */ 2230, 1784, 1784, 364, 2196, 712, 2198, 2199, 707, 709, - /* 2770 */ 702, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2780 */ 2213, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2790 */ 1784, 1784, 2163, 1784, 708, 1784, 1784, 2213, 1784, 1784, - /* 2800 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2163, - /* 2810 */ 1784, 708, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, - /* 2820 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 710, 1784, - /* 2830 */ 2230, 1784, 1784, 338, 2196, 712, 2198, 2199, 707, 1784, - /* 2840 */ 702, 1784, 1784, 1784, 1784, 2194, 1784, 2230, 1784, 1784, - /* 2850 */ 337, 2196, 712, 2198, 2199, 707, 1784, 702, + /* 0 */ 2127, 2194, 2172, 2083, 221, 691, 1961, 2155, 538, 1950, + /* 10 */ 1827, 671, 48, 46, 1707, 394, 2180, 1214, 2080, 678, + /* 20 */ 401, 2359, 1556, 41, 40, 135, 2176, 47, 45, 44, + /* 30 */ 43, 42, 575, 1637, 453, 1554, 2172, 540, 1583, 2212, + /* 40 */ 41, 40, 1782, 537, 47, 45, 44, 43, 42, 254, + /* 50 */ 1952, 2162, 1946, 707, 631, 532, 1216, 2354, 1219, 1220, + /* 60 */ 2176, 181, 1632, 530, 2178, 398, 526, 522, 19, 1239, + /* 70 */ 66, 1238, 2360, 188, 701, 1562, 30, 2355, 657, 348, + /* 80 */ 690, 369, 2066, 361, 140, 691, 1961, 2193, 1581, 2229, + /* 90 */ 668, 144, 112, 2195, 711, 2197, 2198, 706, 2178, 701, + /* 100 */ 797, 168, 1240, 15, 185, 135, 2282, 103, 701, 1902, + /* 110 */ 397, 2278, 580, 498, 2083, 416, 48, 46, 691, 1961, + /* 120 */ 415, 690, 1770, 190, 401, 264, 1556, 1666, 1372, 2081, + /* 130 */ 678, 2308, 1954, 1581, 38, 306, 1747, 1637, 193, 1554, + /* 140 */ 1639, 1640, 1807, 1363, 736, 735, 734, 1367, 733, 1369, + /* 150 */ 1370, 732, 729, 1806, 1378, 726, 1380, 1381, 723, 720, + /* 160 */ 717, 184, 631, 51, 656, 2354, 1632, 2354, 94, 62, + /* 170 */ 1612, 1622, 19, 2001, 212, 211, 1638, 1641, 676, 1562, + /* 180 */ 2360, 188, 655, 188, 1667, 2355, 657, 2355, 657, 2297, + /* 190 */ 288, 1557, 2162, 1555, 286, 2290, 667, 497, 136, 666, + /* 200 */ 169, 2354, 1796, 2162, 797, 41, 40, 15, 2194, 47, + /* 210 */ 45, 44, 43, 42, 62, 2294, 655, 188, 708, 1316, + /* 220 */ 435, 2355, 657, 1560, 1561, 1784, 1611, 1614, 1615, 1616, + /* 230 */ 1617, 1618, 1619, 1620, 1621, 703, 699, 1630, 1631, 1633, + /* 240 */ 1634, 1635, 1636, 2, 1639, 1640, 2212, 437, 433, 134, + /* 250 */ 133, 132, 131, 130, 129, 128, 127, 126, 2162, 1318, + /* 260 */ 707, 1785, 37, 399, 1661, 1662, 1663, 1664, 1665, 1669, + /* 270 */ 1670, 1671, 1672, 535, 1612, 1622, 536, 1820, 552, 1581, + /* 280 */ 1638, 1641, 125, 1465, 1466, 124, 123, 122, 121, 120, + /* 290 */ 119, 118, 117, 116, 2193, 1557, 2229, 1555, 646, 112, + /* 300 */ 2195, 711, 2197, 2198, 706, 651, 701, 2045, 395, 147, + /* 310 */ 1581, 151, 2253, 2282, 1582, 2194, 166, 397, 2278, 1239, + /* 320 */ 191, 1238, 668, 144, 1963, 671, 191, 1560, 1561, 1704, + /* 330 */ 1611, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 703, + /* 340 */ 699, 1630, 1631, 1633, 1634, 1635, 1636, 2, 12, 48, + /* 350 */ 46, 746, 1240, 2212, 2014, 410, 409, 401, 2183, 1556, + /* 360 */ 2359, 367, 62, 2354, 181, 2162, 1583, 707, 616, 2012, + /* 370 */ 1637, 191, 1554, 593, 592, 591, 691, 1961, 1563, 2358, + /* 380 */ 583, 141, 587, 2355, 2357, 2067, 586, 650, 652, 647, + /* 390 */ 640, 585, 590, 377, 376, 146, 56, 584, 2253, 1632, + /* 400 */ 252, 2193, 630, 2229, 251, 19, 112, 2195, 711, 2197, + /* 410 */ 2198, 706, 1562, 701, 2185, 2212, 297, 298, 185, 543, + /* 420 */ 2282, 296, 536, 1820, 397, 2278, 187, 2290, 2291, 2194, + /* 430 */ 142, 2295, 1222, 656, 1407, 1408, 2354, 797, 1580, 708, + /* 440 */ 15, 1829, 41, 40, 1273, 2309, 47, 45, 44, 43, + /* 450 */ 42, 655, 188, 48, 46, 1642, 2355, 657, 223, 2194, + /* 460 */ 1613, 401, 538, 1556, 1827, 93, 476, 2212, 356, 708, + /* 470 */ 649, 381, 166, 609, 1637, 475, 1554, 1639, 1640, 2162, + /* 480 */ 1964, 707, 2359, 125, 1274, 2354, 124, 123, 122, 121, + /* 490 */ 120, 119, 118, 117, 116, 2014, 62, 2212, 1805, 668, + /* 500 */ 144, 2358, 382, 1632, 12, 2355, 2356, 1612, 1622, 2162, + /* 510 */ 2012, 707, 109, 1638, 1641, 2193, 1562, 2229, 288, 191, + /* 520 */ 112, 2195, 711, 2197, 2198, 706, 60, 701, 1557, 145, + /* 530 */ 1555, 579, 2374, 628, 2282, 578, 1566, 1953, 397, 2278, + /* 540 */ 1711, 797, 691, 1961, 49, 2193, 1581, 2229, 2162, 2194, + /* 550 */ 170, 2195, 711, 2197, 2198, 706, 12, 701, 10, 708, + /* 560 */ 1560, 1561, 451, 1611, 1614, 1615, 1616, 1617, 1618, 1619, + /* 570 */ 1620, 1621, 703, 699, 1630, 1631, 1633, 1634, 1635, 1636, + /* 580 */ 2, 1639, 1640, 445, 1327, 444, 1703, 2212, 41, 40, + /* 590 */ 632, 2319, 47, 45, 44, 43, 42, 1326, 2297, 2162, + /* 600 */ 1584, 707, 670, 186, 2290, 2291, 165, 142, 2295, 1562, + /* 610 */ 1804, 1612, 1622, 691, 1961, 443, 406, 1638, 1641, 2007, + /* 620 */ 2009, 41, 40, 404, 2293, 47, 45, 44, 43, 42, + /* 630 */ 2297, 163, 1557, 452, 1555, 2193, 677, 2229, 383, 1963, + /* 640 */ 112, 2195, 711, 2197, 2198, 706, 2012, 701, 253, 690, + /* 650 */ 447, 2194, 2257, 191, 2282, 446, 2292, 2156, 397, 2278, + /* 660 */ 2162, 708, 507, 2316, 1560, 1561, 154, 1611, 1614, 1615, + /* 670 */ 1616, 1617, 1618, 1619, 1620, 1621, 703, 699, 1630, 1631, + /* 680 */ 1633, 1634, 1635, 1636, 2, 48, 46, 1938, 550, 2212, + /* 690 */ 2076, 458, 2062, 401, 756, 1556, 1613, 631, 668, 144, + /* 700 */ 2354, 2162, 2014, 707, 631, 1937, 1637, 2354, 1554, 391, + /* 710 */ 47, 45, 44, 43, 42, 2360, 188, 2012, 1527, 1528, + /* 720 */ 2355, 657, 2360, 188, 464, 2062, 55, 2355, 657, 14, + /* 730 */ 13, 1735, 51, 691, 1961, 1632, 1948, 2193, 202, 2229, + /* 740 */ 598, 677, 112, 2195, 711, 2197, 2198, 706, 1562, 701, + /* 750 */ 691, 1961, 266, 466, 2374, 608, 2282, 1863, 41, 40, + /* 760 */ 397, 2278, 47, 45, 44, 43, 42, 2194, 1803, 250, + /* 770 */ 481, 205, 746, 797, 691, 1961, 49, 705, 643, 642, + /* 780 */ 1733, 1734, 1736, 1737, 1738, 601, 491, 2062, 2358, 48, + /* 790 */ 46, 1936, 595, 675, 482, 2076, 1777, 401, 249, 1556, + /* 800 */ 404, 1582, 189, 2290, 2291, 2212, 142, 2295, 166, 693, + /* 810 */ 1637, 2254, 1554, 1639, 1640, 1847, 1963, 2162, 2162, 707, + /* 820 */ 744, 156, 155, 741, 740, 739, 153, 593, 592, 591, + /* 830 */ 2008, 2009, 1680, 210, 583, 141, 587, 594, 70, 1632, + /* 840 */ 586, 69, 52, 1612, 1622, 585, 590, 377, 376, 1638, + /* 850 */ 1641, 584, 1562, 2193, 1746, 2229, 1242, 1243, 342, 2195, + /* 860 */ 711, 2197, 2198, 706, 1557, 701, 1555, 2248, 41, 40, + /* 870 */ 1802, 1944, 47, 45, 44, 43, 42, 797, 571, 570, + /* 880 */ 15, 2194, 744, 156, 155, 741, 740, 739, 153, 1801, + /* 890 */ 614, 708, 207, 2329, 1800, 1965, 1560, 1561, 1776, 1611, + /* 900 */ 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 703, 699, + /* 910 */ 1630, 1631, 1633, 1634, 1635, 1636, 2, 1639, 1640, 2212, + /* 920 */ 2162, 1482, 1483, 607, 744, 156, 155, 741, 740, 739, + /* 930 */ 153, 2162, 86, 707, 2014, 85, 605, 631, 603, 2162, + /* 940 */ 2354, 396, 691, 1961, 2162, 691, 1961, 1612, 1622, 2012, + /* 950 */ 737, 691, 1961, 1638, 1641, 2360, 188, 1481, 1484, 259, + /* 960 */ 2355, 657, 551, 738, 1723, 1958, 2005, 2193, 1557, 2229, + /* 970 */ 1555, 255, 112, 2195, 711, 2197, 2198, 706, 9, 701, + /* 980 */ 589, 588, 34, 2148, 2374, 1331, 2282, 677, 41, 40, + /* 990 */ 397, 2278, 47, 45, 44, 43, 42, 1799, 1330, 191, + /* 1000 */ 1560, 1561, 1860, 1611, 1614, 1615, 1616, 1617, 1618, 1619, + /* 1010 */ 1620, 1621, 703, 699, 1630, 1631, 1633, 1634, 1635, 1636, + /* 1020 */ 2, 1647, 352, 167, 1579, 691, 1961, 1581, 327, 691, + /* 1030 */ 1961, 489, 423, 90, 505, 573, 572, 504, 2172, 686, + /* 1040 */ 407, 2076, 324, 73, 2145, 263, 72, 2162, 166, 674, + /* 1050 */ 371, 2014, 2181, 472, 672, 506, 1963, 349, 405, 1956, + /* 1060 */ 474, 702, 2176, 509, 1798, 659, 2012, 1795, 219, 517, + /* 1070 */ 515, 512, 774, 773, 772, 771, 413, 1939, 770, 769, + /* 1080 */ 148, 764, 763, 762, 761, 760, 759, 758, 158, 754, + /* 1090 */ 753, 752, 412, 411, 749, 748, 747, 176, 175, 1584, + /* 1100 */ 2178, 631, 691, 1961, 2354, 1584, 370, 237, 62, 374, + /* 1110 */ 701, 44, 43, 42, 2162, 691, 1961, 2162, 460, 2360, + /* 1120 */ 188, 149, 301, 173, 2355, 657, 691, 1961, 660, 691, + /* 1130 */ 1961, 569, 565, 561, 557, 688, 236, 1794, 663, 695, + /* 1140 */ 1668, 2254, 768, 766, 1793, 1792, 689, 111, 502, 307, + /* 1150 */ 1791, 496, 495, 494, 493, 488, 487, 486, 485, 484, + /* 1160 */ 480, 479, 478, 477, 351, 469, 468, 467, 698, 462, + /* 1170 */ 461, 368, 691, 1961, 2302, 1700, 91, 1613, 375, 234, + /* 1180 */ 373, 372, 1838, 577, 90, 1790, 1789, 2162, 81, 80, + /* 1190 */ 450, 2194, 408, 200, 2162, 2162, 1788, 2014, 1700, 742, + /* 1200 */ 2162, 708, 2005, 638, 596, 579, 442, 440, 1787, 578, + /* 1210 */ 1957, 743, 2013, 320, 2005, 262, 1991, 350, 35, 54, + /* 1220 */ 431, 3, 2194, 429, 425, 421, 418, 443, 1673, 2212, + /* 1230 */ 757, 2055, 708, 1923, 2347, 2162, 2162, 1219, 1220, 154, + /* 1240 */ 83, 2162, 137, 707, 1903, 74, 2162, 233, 227, 154, + /* 1250 */ 242, 203, 2194, 240, 232, 548, 244, 265, 2162, 243, + /* 1260 */ 2212, 430, 708, 246, 2301, 191, 245, 1797, 248, 581, + /* 1270 */ 456, 247, 2162, 225, 707, 582, 1836, 2193, 611, 2229, + /* 1280 */ 610, 50, 112, 2195, 711, 2197, 2198, 706, 1565, 701, + /* 1290 */ 2212, 1314, 1779, 1780, 2374, 84, 2282, 1312, 599, 1522, + /* 1300 */ 397, 2278, 2162, 644, 707, 1564, 750, 50, 2193, 1525, + /* 1310 */ 2229, 14, 13, 112, 2195, 711, 2197, 2198, 706, 270, + /* 1320 */ 701, 154, 50, 1658, 1556, 2374, 294, 2282, 1292, 71, + /* 1330 */ 152, 397, 2278, 2322, 751, 154, 64, 1554, 2193, 50, + /* 1340 */ 2229, 1732, 2194, 112, 2195, 711, 2197, 2198, 706, 50, + /* 1350 */ 701, 1830, 708, 410, 409, 2374, 1290, 2282, 36, 715, + /* 1360 */ 283, 397, 2278, 1570, 41, 40, 661, 1731, 47, 45, + /* 1370 */ 44, 43, 42, 2194, 1637, 108, 1563, 1562, 664, 272, + /* 1380 */ 2212, 673, 1479, 708, 152, 105, 299, 139, 277, 683, + /* 1390 */ 303, 1901, 2162, 154, 707, 1357, 1674, 138, 152, 1623, + /* 1400 */ 2213, 792, 797, 1632, 1900, 384, 414, 2071, 1821, 319, + /* 1410 */ 2194, 2212, 1826, 2002, 2312, 669, 1562, 282, 285, 1385, + /* 1420 */ 708, 1, 5, 2162, 417, 707, 422, 365, 2193, 1587, + /* 1430 */ 2229, 439, 438, 112, 2195, 711, 2197, 2198, 706, 196, + /* 1440 */ 701, 697, 195, 441, 1389, 2255, 1568, 2282, 2212, 198, + /* 1450 */ 1503, 397, 2278, 1396, 314, 1580, 457, 1394, 157, 2193, + /* 1460 */ 2162, 2229, 707, 1567, 112, 2195, 711, 2197, 2198, 706, + /* 1470 */ 209, 701, 1584, 459, 2072, 463, 694, 500, 2282, 465, + /* 1480 */ 1579, 490, 397, 2278, 470, 483, 2064, 492, 499, 501, + /* 1490 */ 510, 511, 508, 1557, 213, 1555, 2193, 214, 2229, 2194, + /* 1500 */ 513, 113, 2195, 711, 2197, 2198, 706, 514, 701, 708, + /* 1510 */ 1585, 533, 216, 516, 518, 2282, 4, 534, 541, 2281, + /* 1520 */ 2278, 542, 544, 1582, 224, 1560, 1561, 545, 226, 1586, + /* 1530 */ 546, 1588, 1571, 547, 1566, 229, 549, 2212, 231, 88, + /* 1540 */ 89, 553, 235, 574, 355, 576, 1951, 114, 2194, 2162, + /* 1550 */ 239, 707, 1947, 613, 615, 619, 92, 618, 708, 315, + /* 1560 */ 150, 256, 620, 2136, 1574, 1576, 241, 159, 160, 1949, + /* 1570 */ 258, 260, 1945, 161, 2194, 162, 2133, 699, 1630, 1631, + /* 1580 */ 1633, 1634, 1635, 1636, 705, 2193, 2212, 2229, 626, 1510, + /* 1590 */ 113, 2195, 711, 2197, 2198, 706, 623, 701, 2162, 2132, + /* 1600 */ 707, 635, 645, 681, 2282, 8, 2328, 2313, 696, 2278, + /* 1610 */ 2323, 641, 2212, 387, 625, 2327, 648, 624, 268, 271, + /* 1620 */ 2304, 654, 276, 636, 2162, 2194, 707, 633, 634, 662, + /* 1630 */ 281, 388, 1700, 284, 709, 708, 2229, 2353, 2194, 113, + /* 1640 */ 2195, 711, 2197, 2198, 706, 2377, 701, 143, 708, 665, + /* 1650 */ 1583, 178, 278, 2282, 2298, 289, 1589, 360, 2278, 2077, + /* 1660 */ 2193, 98, 2229, 2212, 316, 342, 2195, 711, 2197, 2198, + /* 1670 */ 706, 704, 701, 692, 2247, 2162, 2212, 707, 174, 679, + /* 1680 */ 279, 280, 684, 100, 685, 680, 317, 2194, 2162, 318, + /* 1690 */ 707, 2091, 2090, 102, 2089, 61, 2263, 708, 393, 104, + /* 1700 */ 713, 1924, 2006, 1962, 2194, 321, 793, 2154, 325, 345, + /* 1710 */ 796, 2193, 794, 2229, 708, 330, 171, 2195, 711, 2197, + /* 1720 */ 2198, 706, 310, 701, 2193, 2212, 2229, 53, 323, 113, + /* 1730 */ 2195, 711, 2197, 2198, 706, 344, 701, 2162, 357, 707, + /* 1740 */ 2153, 358, 2212, 2282, 334, 2152, 78, 385, 2279, 2149, + /* 1750 */ 419, 420, 1547, 2194, 2162, 1548, 707, 194, 424, 2147, + /* 1760 */ 426, 427, 428, 708, 2146, 366, 2144, 658, 2375, 432, + /* 1770 */ 2143, 2142, 434, 2193, 436, 2229, 1538, 2194, 170, 2195, + /* 1780 */ 711, 2197, 2198, 706, 2123, 701, 197, 708, 2122, 199, + /* 1790 */ 2193, 2212, 2229, 79, 1506, 343, 2195, 711, 2197, 2198, + /* 1800 */ 706, 1505, 701, 2162, 2194, 707, 2104, 2103, 2102, 448, + /* 1810 */ 449, 2101, 2100, 2054, 708, 2212, 1456, 454, 2051, 2320, + /* 1820 */ 386, 455, 201, 2050, 2194, 82, 2049, 2162, 2048, 707, + /* 1830 */ 2053, 2052, 204, 2047, 708, 2046, 2044, 2043, 2042, 2193, + /* 1840 */ 206, 2229, 2212, 2041, 336, 2195, 711, 2197, 2198, 706, + /* 1850 */ 473, 701, 471, 2057, 2162, 2040, 707, 2039, 2038, 2037, + /* 1860 */ 2036, 2035, 2212, 2193, 2034, 2229, 2033, 392, 343, 2195, + /* 1870 */ 711, 2197, 2198, 706, 2162, 701, 707, 353, 1458, 208, + /* 1880 */ 2025, 87, 2024, 2023, 2022, 2056, 2021, 653, 2032, 2031, + /* 1890 */ 2193, 2194, 2229, 2030, 2029, 171, 2195, 711, 2197, 2198, + /* 1900 */ 706, 708, 701, 2028, 2027, 2026, 2020, 2019, 2018, 2017, + /* 1910 */ 2193, 503, 2229, 2016, 2015, 343, 2195, 711, 2197, 2198, + /* 1920 */ 706, 2194, 701, 1328, 354, 1866, 1324, 215, 1865, 2212, + /* 1930 */ 217, 708, 1332, 1864, 400, 218, 1862, 1859, 521, 520, + /* 1940 */ 1858, 2162, 1851, 707, 524, 528, 519, 2376, 1840, 1816, + /* 1950 */ 523, 525, 527, 531, 1815, 529, 2121, 1221, 2111, 2212, + /* 1960 */ 76, 220, 2099, 77, 402, 228, 182, 2182, 230, 222, + /* 1970 */ 183, 2162, 2098, 707, 539, 2075, 1940, 2193, 1861, 2229, + /* 1980 */ 2194, 1857, 343, 2195, 711, 2197, 2198, 706, 617, 701, + /* 1990 */ 708, 556, 554, 555, 1855, 558, 559, 1853, 560, 1266, + /* 2000 */ 562, 1850, 563, 564, 566, 568, 800, 2193, 1835, 2229, + /* 2010 */ 567, 1833, 343, 2195, 711, 2197, 2198, 706, 2212, 701, + /* 2020 */ 313, 1834, 1832, 1812, 1942, 1401, 1400, 1941, 1315, 765, + /* 2030 */ 2162, 1313, 707, 1311, 1310, 1309, 180, 1308, 1307, 767, + /* 2040 */ 1304, 1303, 238, 63, 790, 786, 782, 778, 1302, 311, + /* 2050 */ 1301, 1848, 378, 2194, 379, 1837, 380, 1811, 1810, 1809, + /* 2060 */ 597, 606, 2120, 708, 1839, 115, 612, 1536, 2229, 57, + /* 2070 */ 600, 338, 2195, 711, 2197, 2198, 706, 602, 701, 604, + /* 2080 */ 29, 1532, 1534, 1531, 2194, 67, 2110, 1512, 1514, 110, + /* 2090 */ 1516, 2212, 304, 621, 708, 2097, 2096, 2359, 17, 58, + /* 2100 */ 20, 6, 65, 2162, 1764, 707, 23, 622, 7, 21, + /* 2110 */ 275, 1491, 261, 1490, 1749, 31, 267, 637, 639, 2194, + /* 2120 */ 2183, 269, 2212, 627, 629, 687, 22, 274, 164, 708, + /* 2130 */ 2095, 33, 1730, 1722, 2162, 1769, 707, 1770, 18, 2193, + /* 2140 */ 172, 2229, 24, 273, 328, 2195, 711, 2197, 2198, 706, + /* 2150 */ 1763, 701, 32, 95, 389, 1768, 2194, 2212, 287, 1767, + /* 2160 */ 291, 390, 59, 177, 2074, 1697, 708, 290, 97, 2162, + /* 2170 */ 2193, 707, 2229, 2073, 1696, 326, 2195, 711, 2197, 2198, + /* 2180 */ 706, 2194, 701, 96, 292, 293, 257, 25, 99, 1728, + /* 2190 */ 105, 708, 295, 300, 2212, 682, 68, 305, 302, 26, + /* 2200 */ 101, 1649, 1648, 13, 179, 2193, 2162, 2229, 707, 1572, + /* 2210 */ 329, 2195, 711, 2197, 2198, 706, 11, 701, 2194, 2212, + /* 2220 */ 2232, 192, 1604, 712, 714, 1627, 1625, 403, 708, 1624, + /* 2230 */ 700, 2162, 1596, 707, 39, 16, 27, 1659, 28, 718, + /* 2240 */ 1386, 716, 2193, 2194, 2229, 1383, 719, 335, 2195, 711, + /* 2250 */ 2197, 2198, 706, 708, 701, 1382, 2212, 721, 1379, 722, + /* 2260 */ 724, 710, 725, 727, 1373, 728, 730, 2193, 2162, 2229, + /* 2270 */ 707, 1371, 339, 2195, 711, 2197, 2198, 706, 731, 701, + /* 2280 */ 106, 2212, 308, 1377, 107, 1395, 1376, 75, 1375, 1391, + /* 2290 */ 1374, 1296, 1264, 2162, 745, 707, 1295, 1294, 1293, 1291, + /* 2300 */ 1289, 1288, 1322, 1287, 2193, 755, 2229, 1285, 1282, 331, + /* 2310 */ 2195, 711, 2197, 2198, 706, 2194, 701, 309, 1284, 1283, + /* 2320 */ 1281, 1319, 1280, 1279, 1317, 708, 1276, 1275, 1272, 2193, + /* 2330 */ 2194, 2229, 1271, 1269, 340, 2195, 711, 2197, 2198, 706, + /* 2340 */ 708, 701, 1270, 1856, 775, 776, 777, 1854, 2194, 779, + /* 2350 */ 780, 781, 1852, 2212, 783, 784, 785, 1849, 708, 787, + /* 2360 */ 789, 1831, 788, 791, 1211, 2162, 1808, 707, 2212, 799, + /* 2370 */ 312, 795, 1783, 1558, 1783, 322, 798, 1783, 1783, 1783, + /* 2380 */ 2162, 1783, 707, 1783, 1783, 1783, 2212, 1783, 1783, 1783, + /* 2390 */ 1783, 1783, 1783, 1783, 1783, 2194, 1783, 1783, 2162, 1783, + /* 2400 */ 707, 2193, 1783, 2229, 1783, 708, 332, 2195, 711, 2197, + /* 2410 */ 2198, 706, 1783, 701, 1783, 1783, 2193, 2194, 2229, 1783, + /* 2420 */ 1783, 341, 2195, 711, 2197, 2198, 706, 708, 701, 1783, + /* 2430 */ 1783, 1783, 1783, 2212, 2193, 1783, 2229, 1783, 1783, 333, + /* 2440 */ 2195, 711, 2197, 2198, 706, 2162, 701, 707, 1783, 1783, + /* 2450 */ 1783, 1783, 1783, 1783, 1783, 2212, 1783, 1783, 1783, 1783, + /* 2460 */ 1783, 1783, 1783, 1783, 2194, 1783, 1783, 2162, 1783, 707, + /* 2470 */ 1783, 1783, 1783, 1783, 708, 1783, 1783, 1783, 1783, 1783, + /* 2480 */ 1783, 2193, 1783, 2229, 1783, 1783, 346, 2195, 711, 2197, + /* 2490 */ 2198, 706, 1783, 701, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2500 */ 1783, 1783, 2212, 2193, 1783, 2229, 1783, 1783, 347, 2195, + /* 2510 */ 711, 2197, 2198, 706, 2162, 701, 707, 1783, 1783, 1783, + /* 2520 */ 1783, 1783, 1783, 2194, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2530 */ 1783, 1783, 1783, 708, 1783, 1783, 2194, 1783, 1783, 1783, + /* 2540 */ 1783, 1783, 1783, 1783, 1783, 1783, 708, 1783, 1783, 1783, + /* 2550 */ 2193, 1783, 2229, 2194, 1783, 2206, 2195, 711, 2197, 2198, + /* 2560 */ 706, 2212, 701, 708, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2570 */ 1783, 1783, 1783, 2162, 2212, 707, 1783, 1783, 1783, 1783, + /* 2580 */ 1783, 1783, 1783, 1783, 1783, 2194, 2162, 1783, 707, 1783, + /* 2590 */ 1783, 2212, 1783, 1783, 1783, 708, 1783, 1783, 1783, 1783, + /* 2600 */ 1783, 1783, 1783, 2162, 1783, 707, 1783, 1783, 1783, 2193, + /* 2610 */ 1783, 2229, 1783, 1783, 2205, 2195, 711, 2197, 2198, 706, + /* 2620 */ 1783, 701, 2193, 2212, 2229, 1783, 1783, 2204, 2195, 711, + /* 2630 */ 2197, 2198, 706, 1783, 701, 2162, 1783, 707, 1783, 2193, + /* 2640 */ 1783, 2229, 1783, 1783, 362, 2195, 711, 2197, 2198, 706, + /* 2650 */ 1783, 701, 2194, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2660 */ 1783, 1783, 708, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2670 */ 1783, 2193, 2194, 2229, 1783, 1783, 363, 2195, 711, 2197, + /* 2680 */ 2198, 706, 708, 701, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2690 */ 2212, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2700 */ 1783, 1783, 2162, 1783, 707, 1783, 1783, 1783, 1783, 1783, + /* 2710 */ 2212, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2720 */ 1783, 1783, 2162, 1783, 707, 1783, 1783, 1783, 1783, 1783, + /* 2730 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 2193, 1783, + /* 2740 */ 2229, 1783, 2194, 359, 2195, 711, 2197, 2198, 706, 1783, + /* 2750 */ 701, 1783, 708, 1783, 1783, 1783, 1783, 1783, 2193, 2194, + /* 2760 */ 2229, 1783, 1783, 364, 2195, 711, 2197, 2198, 706, 708, + /* 2770 */ 701, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2780 */ 2212, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2790 */ 1783, 1783, 2162, 1783, 707, 1783, 1783, 2212, 1783, 1783, + /* 2800 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 2162, + /* 2810 */ 1783, 707, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + /* 2820 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 709, 1783, + /* 2830 */ 2229, 1783, 1783, 338, 2195, 711, 2197, 2198, 706, 1783, + /* 2840 */ 701, 1783, 1783, 1783, 1783, 2193, 1783, 2229, 1783, 1783, + /* 2850 */ 337, 2195, 711, 2197, 2198, 706, 1783, 701, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 375, 341, 367, 393, 346, 350, 351, 411, 350, 380, @@ -959,132 +959,132 @@ static const YYCODETYPE yy_lookahead[] = { /* 1090 */ 88, 89, 90, 91, 92, 93, 94, 95, 96, 20, /* 1100 */ 429, 458, 350, 351, 461, 20, 102, 33, 103, 37, /* 1110 */ 439, 14, 15, 16, 391, 350, 351, 391, 114, 476, - /* 1120 */ 477, 44, 370, 49, 481, 482, 350, 351, 417, 350, + /* 1120 */ 477, 44, 370, 49, 481, 482, 350, 351, 44, 350, /* 1130 */ 351, 57, 58, 59, 60, 370, 62, 341, 44, 443, /* 1140 */ 169, 445, 364, 365, 341, 341, 370, 142, 144, 370, /* 1150 */ 341, 147, 148, 149, 150, 151, 152, 153, 154, 155, - /* 1160 */ 156, 157, 158, 159, 160, 161, 162, 163, 44, 165, + /* 1160 */ 156, 157, 158, 159, 160, 161, 162, 163, 68, 165, /* 1170 */ 166, 167, 350, 351, 258, 259, 102, 170, 106, 105, /* 1180 */ 108, 109, 0, 111, 359, 341, 341, 391, 183, 184, /* 1190 */ 185, 341, 370, 188, 391, 391, 341, 379, 259, 388, /* 1200 */ 391, 351, 391, 353, 22, 133, 201, 202, 341, 137, - /* 1210 */ 385, 388, 394, 372, 391, 368, 375, 212, 247, 42, + /* 1210 */ 385, 388, 394, 372, 391, 417, 375, 212, 247, 42, /* 1220 */ 215, 44, 341, 218, 219, 220, 221, 222, 257, 379, - /* 1230 */ 366, 22, 351, 369, 353, 391, 391, 45, 46, 44, - /* 1240 */ 42, 391, 44, 393, 35, 114, 391, 173, 174, 13, + /* 1230 */ 366, 0, 351, 369, 353, 391, 391, 45, 46, 44, + /* 1240 */ 42, 391, 44, 393, 368, 114, 391, 173, 174, 44, /* 1250 */ 107, 172, 341, 110, 180, 181, 107, 172, 391, 110, - /* 1260 */ 379, 217, 351, 107, 353, 260, 110, 107, 44, 13, - /* 1270 */ 110, 35, 391, 199, 393, 0, 44, 427, 207, 429, - /* 1280 */ 209, 44, 432, 433, 434, 435, 436, 437, 68, 439, - /* 1290 */ 379, 35, 140, 141, 444, 164, 446, 22, 342, 104, - /* 1300 */ 450, 451, 391, 474, 393, 35, 44, 44, 427, 103, - /* 1310 */ 429, 401, 485, 432, 433, 434, 435, 436, 437, 113, - /* 1320 */ 439, 44, 44, 35, 22, 444, 44, 446, 104, 44, - /* 1330 */ 44, 450, 451, 1, 2, 44, 104, 35, 427, 44, + /* 1260 */ 379, 217, 351, 107, 353, 260, 110, 342, 107, 13, + /* 1270 */ 39, 110, 391, 199, 393, 13, 0, 427, 207, 429, + /* 1280 */ 209, 44, 432, 433, 434, 435, 436, 437, 35, 439, + /* 1290 */ 379, 35, 140, 141, 444, 164, 446, 35, 22, 104, + /* 1300 */ 450, 451, 391, 474, 393, 35, 13, 44, 427, 104, + /* 1310 */ 429, 1, 2, 432, 433, 434, 435, 436, 437, 44, + /* 1320 */ 439, 44, 44, 223, 22, 444, 44, 446, 35, 44, + /* 1330 */ 44, 450, 451, 401, 13, 44, 44, 35, 427, 44, /* 1340 */ 429, 104, 341, 432, 433, 434, 435, 436, 437, 44, - /* 1350 */ 439, 0, 351, 12, 13, 444, 468, 446, 2, 44, - /* 1360 */ 354, 450, 451, 22, 8, 9, 104, 104, 12, 13, - /* 1370 */ 14, 15, 16, 341, 33, 367, 35, 75, 284, 44, - /* 1380 */ 379, 104, 104, 351, 44, 13, 104, 367, 379, 104, - /* 1390 */ 104, 13, 391, 44, 393, 104, 410, 44, 401, 104, - /* 1400 */ 354, 50, 100, 62, 349, 351, 282, 35, 390, 104, - /* 1410 */ 341, 379, 401, 35, 460, 478, 75, 452, 49, 104, - /* 1420 */ 351, 462, 412, 391, 262, 393, 428, 20, 427, 206, - /* 1430 */ 429, 189, 359, 432, 433, 434, 435, 436, 437, 104, - /* 1440 */ 439, 100, 421, 223, 104, 444, 421, 446, 379, 426, - /* 1450 */ 359, 450, 451, 104, 414, 20, 351, 104, 42, 427, + /* 1350 */ 439, 0, 351, 12, 13, 444, 35, 446, 2, 44, + /* 1360 */ 485, 450, 451, 22, 8, 9, 282, 104, 12, 13, + /* 1370 */ 14, 15, 16, 341, 33, 103, 35, 75, 284, 104, + /* 1380 */ 379, 104, 104, 351, 44, 113, 104, 354, 468, 104, + /* 1390 */ 104, 367, 391, 44, 393, 104, 104, 44, 44, 104, + /* 1400 */ 379, 50, 100, 62, 367, 410, 354, 401, 349, 104, + /* 1410 */ 341, 379, 351, 390, 401, 460, 75, 452, 478, 104, + /* 1420 */ 351, 462, 262, 391, 412, 393, 49, 428, 427, 20, + /* 1430 */ 429, 421, 206, 432, 433, 434, 435, 436, 437, 359, + /* 1440 */ 439, 100, 426, 421, 104, 444, 193, 446, 379, 359, + /* 1450 */ 189, 450, 451, 104, 414, 20, 351, 104, 104, 427, /* 1460 */ 391, 429, 393, 193, 432, 433, 434, 435, 436, 437, - /* 1470 */ 20, 439, 351, 398, 396, 169, 444, 401, 446, 398, - /* 1480 */ 20, 193, 450, 451, 350, 398, 351, 350, 396, 396, + /* 1470 */ 42, 439, 20, 398, 401, 351, 444, 169, 446, 398, + /* 1480 */ 20, 351, 450, 451, 396, 350, 350, 398, 396, 396, /* 1490 */ 101, 363, 99, 191, 362, 193, 427, 350, 429, 341, /* 1500 */ 98, 432, 433, 434, 435, 436, 437, 361, 439, 351, - /* 1510 */ 20, 350, 343, 350, 350, 446, 48, 347, 343, 450, - /* 1520 */ 451, 347, 421, 20, 359, 223, 224, 359, 20, 393, + /* 1510 */ 20, 343, 350, 350, 350, 446, 48, 347, 343, 450, + /* 1520 */ 451, 347, 421, 20, 359, 223, 224, 393, 359, 20, /* 1530 */ 352, 20, 191, 413, 193, 359, 352, 379, 359, 359, /* 1540 */ 359, 350, 359, 343, 343, 379, 379, 350, 341, 391, - /* 1550 */ 379, 393, 379, 210, 425, 103, 423, 197, 351, 421, - /* 1560 */ 357, 420, 196, 391, 223, 224, 379, 379, 379, 379, + /* 1550 */ 379, 393, 379, 210, 425, 197, 103, 196, 351, 421, + /* 1560 */ 423, 357, 420, 391, 223, 224, 379, 379, 379, 379, /* 1570 */ 419, 357, 379, 379, 341, 379, 391, 236, 237, 238, /* 1580 */ 239, 240, 241, 242, 351, 427, 379, 429, 350, 195, - /* 1590 */ 432, 433, 434, 435, 436, 437, 391, 439, 391, 269, - /* 1600 */ 393, 393, 391, 277, 446, 401, 467, 268, 450, 451, - /* 1610 */ 391, 401, 379, 391, 412, 467, 391, 418, 406, 406, - /* 1620 */ 470, 182, 469, 279, 391, 341, 393, 263, 278, 412, - /* 1630 */ 486, 286, 259, 281, 427, 351, 429, 283, 341, 432, - /* 1640 */ 433, 434, 435, 436, 437, 351, 439, 20, 351, 357, - /* 1650 */ 352, 20, 466, 446, 404, 406, 357, 450, 451, 431, - /* 1660 */ 427, 406, 429, 379, 391, 432, 433, 434, 435, 436, - /* 1670 */ 437, 438, 439, 440, 441, 391, 379, 393, 391, 174, - /* 1680 */ 391, 465, 467, 403, 391, 464, 357, 341, 391, 375, - /* 1690 */ 393, 391, 391, 357, 103, 449, 103, 351, 480, 351, - /* 1700 */ 383, 391, 369, 36, 341, 479, 344, 350, 343, 0, - /* 1710 */ 407, 427, 357, 429, 351, 407, 432, 433, 434, 435, - /* 1720 */ 436, 437, 415, 439, 427, 379, 429, 339, 358, 432, - /* 1730 */ 433, 434, 435, 436, 437, 422, 439, 391, 0, 393, - /* 1740 */ 373, 373, 379, 446, 373, 0, 42, 384, 451, 0, + /* 1590 */ 432, 433, 434, 435, 436, 437, 393, 439, 391, 391, + /* 1600 */ 393, 391, 269, 268, 446, 277, 467, 401, 450, 451, + /* 1610 */ 401, 391, 379, 391, 412, 467, 391, 418, 406, 406, + /* 1620 */ 470, 182, 469, 279, 391, 341, 393, 263, 278, 281, + /* 1630 */ 412, 286, 259, 479, 427, 351, 429, 480, 341, 432, + /* 1640 */ 433, 434, 435, 436, 437, 486, 439, 351, 351, 283, + /* 1650 */ 20, 352, 466, 446, 431, 357, 20, 450, 451, 404, + /* 1660 */ 427, 357, 429, 379, 406, 432, 433, 434, 435, 436, + /* 1670 */ 437, 438, 439, 440, 441, 391, 379, 393, 467, 391, + /* 1680 */ 465, 464, 174, 357, 403, 391, 406, 341, 391, 375, + /* 1690 */ 393, 391, 391, 357, 391, 103, 449, 351, 391, 103, + /* 1700 */ 383, 369, 391, 351, 341, 350, 36, 0, 339, 422, + /* 1710 */ 343, 427, 344, 429, 351, 373, 432, 433, 434, 435, + /* 1720 */ 436, 437, 357, 439, 427, 379, 429, 415, 358, 432, + /* 1730 */ 433, 434, 435, 436, 437, 373, 439, 391, 407, 393, + /* 1740 */ 0, 407, 379, 446, 373, 0, 42, 384, 451, 0, /* 1750 */ 35, 216, 35, 341, 391, 35, 393, 35, 216, 0, /* 1760 */ 35, 35, 216, 351, 0, 216, 0, 483, 484, 35, /* 1770 */ 0, 0, 22, 427, 35, 429, 211, 341, 432, 433, /* 1780 */ 434, 435, 436, 437, 0, 439, 199, 351, 0, 199, - /* 1790 */ 427, 379, 429, 193, 200, 432, 433, 434, 435, 436, + /* 1790 */ 427, 379, 429, 200, 193, 432, 433, 434, 435, 436, /* 1800 */ 437, 191, 439, 391, 341, 393, 0, 0, 0, 187, - /* 1810 */ 186, 0, 0, 0, 351, 379, 47, 0, 39, 473, - /* 1820 */ 384, 49, 0, 47, 341, 0, 0, 391, 42, 393, + /* 1810 */ 186, 0, 0, 0, 351, 379, 47, 35, 0, 473, + /* 1820 */ 384, 49, 47, 0, 341, 42, 0, 391, 0, 393, /* 1830 */ 0, 0, 47, 0, 351, 0, 0, 0, 0, 427, /* 1840 */ 159, 429, 379, 0, 432, 433, 434, 435, 436, 437, - /* 1850 */ 0, 439, 159, 35, 391, 0, 393, 0, 0, 0, + /* 1850 */ 159, 439, 35, 0, 391, 0, 393, 0, 0, 0, /* 1860 */ 0, 0, 379, 427, 0, 429, 0, 384, 432, 433, /* 1870 */ 434, 435, 436, 437, 391, 439, 393, 48, 22, 47, /* 1880 */ 0, 42, 0, 0, 0, 0, 0, 475, 0, 0, /* 1890 */ 427, 341, 429, 0, 0, 432, 433, 434, 435, 436, /* 1900 */ 437, 351, 439, 0, 0, 0, 0, 0, 0, 0, - /* 1910 */ 427, 0, 429, 0, 0, 432, 433, 434, 435, 436, - /* 1920 */ 437, 341, 439, 143, 48, 0, 35, 62, 0, 379, - /* 1930 */ 62, 351, 22, 0, 384, 62, 0, 22, 0, 49, - /* 1940 */ 39, 391, 0, 393, 49, 0, 49, 484, 0, 0, - /* 1950 */ 0, 35, 35, 14, 35, 35, 44, 39, 0, 379, - /* 1960 */ 39, 39, 0, 39, 384, 42, 40, 0, 0, 39, - /* 1970 */ 0, 391, 182, 393, 47, 0, 47, 427, 47, 429, + /* 1910 */ 427, 143, 429, 0, 0, 432, 433, 434, 435, 436, + /* 1920 */ 437, 341, 439, 22, 48, 0, 35, 62, 0, 379, + /* 1930 */ 62, 351, 22, 0, 384, 62, 0, 0, 39, 49, + /* 1940 */ 0, 391, 0, 393, 49, 49, 35, 484, 0, 0, + /* 1950 */ 35, 39, 35, 35, 0, 39, 0, 14, 0, 379, + /* 1960 */ 39, 42, 0, 39, 384, 39, 44, 47, 182, 40, + /* 1970 */ 47, 391, 0, 393, 47, 0, 0, 427, 0, 429, /* 1980 */ 341, 0, 432, 433, 434, 435, 436, 437, 1, 439, - /* 1990 */ 351, 0, 35, 49, 39, 0, 35, 0, 39, 35, - /* 2000 */ 49, 69, 49, 0, 39, 49, 19, 427, 35, 429, - /* 2010 */ 39, 0, 432, 433, 434, 435, 436, 437, 379, 439, - /* 2020 */ 33, 0, 0, 0, 0, 0, 22, 35, 0, 35, - /* 2030 */ 391, 35, 393, 35, 35, 35, 49, 35, 22, 0, - /* 2040 */ 35, 22, 0, 35, 57, 58, 59, 60, 35, 62, - /* 2050 */ 44, 110, 112, 341, 44, 35, 22, 0, 22, 0, - /* 2060 */ 51, 35, 35, 351, 0, 35, 427, 0, 429, 22, - /* 2070 */ 20, 432, 433, 434, 435, 436, 437, 0, 439, 35, - /* 2080 */ 35, 35, 104, 103, 341, 103, 35, 22, 0, 102, - /* 2090 */ 198, 379, 105, 194, 351, 22, 0, 0, 3, 44, - /* 2100 */ 48, 48, 44, 391, 103, 393, 172, 172, 264, 47, - /* 2110 */ 44, 174, 44, 44, 99, 172, 104, 103, 101, 341, - /* 2120 */ 3, 103, 379, 44, 178, 138, 172, 47, 35, 351, - /* 2130 */ 178, 264, 47, 104, 391, 104, 393, 104, 103, 427, - /* 2140 */ 103, 429, 104, 103, 432, 433, 434, 435, 436, 437, - /* 2150 */ 35, 439, 104, 35, 35, 35, 341, 379, 258, 35, - /* 2160 */ 173, 47, 264, 0, 104, 104, 351, 180, 0, 391, - /* 2170 */ 427, 393, 429, 44, 103, 432, 433, 434, 435, 436, - /* 2180 */ 437, 341, 439, 39, 47, 103, 199, 104, 104, 103, - /* 2190 */ 103, 351, 103, 0, 379, 39, 47, 103, 44, 101, - /* 2200 */ 101, 2, 22, 113, 103, 427, 391, 429, 393, 223, - /* 2210 */ 432, 433, 434, 435, 436, 437, 175, 439, 341, 379, - /* 2220 */ 104, 245, 173, 47, 103, 47, 104, 22, 351, 103, - /* 2230 */ 103, 391, 104, 393, 103, 35, 104, 103, 35, 114, - /* 2240 */ 104, 103, 427, 341, 429, 104, 35, 432, 433, 434, - /* 2250 */ 435, 436, 437, 351, 439, 103, 379, 225, 35, 104, - /* 2260 */ 103, 35, 104, 103, 35, 104, 104, 427, 391, 429, - /* 2270 */ 393, 35, 432, 433, 434, 435, 436, 437, 103, 439, - /* 2280 */ 103, 379, 103, 44, 125, 35, 103, 103, 22, 125, - /* 2290 */ 125, 125, 68, 391, 69, 393, 35, 35, 35, 35, - /* 2300 */ 35, 97, 35, 35, 427, 35, 429, 75, 22, 432, + /* 1990 */ 351, 39, 35, 49, 0, 35, 49, 0, 39, 69, + /* 2000 */ 35, 0, 49, 39, 35, 39, 19, 427, 0, 429, + /* 2010 */ 49, 0, 432, 433, 434, 435, 436, 437, 379, 439, + /* 2020 */ 33, 0, 0, 0, 0, 35, 22, 0, 35, 44, + /* 2030 */ 391, 35, 393, 35, 35, 35, 49, 35, 35, 44, + /* 2040 */ 35, 35, 110, 112, 57, 58, 59, 60, 22, 62, + /* 2050 */ 35, 0, 22, 341, 22, 0, 22, 0, 0, 0, + /* 2060 */ 51, 22, 0, 351, 0, 20, 427, 104, 429, 172, + /* 2070 */ 35, 432, 433, 434, 435, 436, 437, 35, 439, 35, + /* 2080 */ 103, 35, 35, 35, 341, 103, 0, 35, 22, 102, + /* 2090 */ 198, 379, 105, 22, 351, 0, 0, 3, 264, 258, + /* 2100 */ 44, 48, 3, 391, 35, 393, 264, 172, 48, 44, + /* 2110 */ 47, 172, 174, 172, 104, 103, 103, 101, 99, 341, + /* 2120 */ 47, 104, 379, 178, 178, 138, 44, 44, 194, 351, + /* 2130 */ 0, 44, 104, 104, 391, 104, 393, 104, 264, 427, + /* 2140 */ 103, 429, 44, 103, 432, 433, 434, 435, 436, 437, + /* 2150 */ 35, 439, 103, 103, 35, 35, 341, 379, 47, 35, + /* 2160 */ 173, 35, 44, 47, 0, 104, 351, 180, 39, 391, + /* 2170 */ 427, 393, 429, 0, 104, 432, 433, 434, 435, 436, + /* 2180 */ 437, 341, 439, 103, 47, 104, 199, 103, 39, 104, + /* 2190 */ 113, 351, 103, 103, 379, 175, 103, 47, 173, 44, + /* 2200 */ 103, 101, 101, 2, 47, 427, 391, 429, 393, 22, + /* 2210 */ 432, 433, 434, 435, 436, 437, 245, 439, 341, 379, + /* 2220 */ 103, 47, 22, 114, 35, 104, 104, 35, 351, 104, + /* 2230 */ 103, 391, 104, 393, 103, 103, 103, 223, 103, 35, + /* 2240 */ 104, 103, 427, 341, 429, 104, 103, 432, 433, 434, + /* 2250 */ 435, 436, 437, 351, 439, 104, 379, 35, 104, 103, + /* 2260 */ 35, 225, 103, 35, 104, 103, 35, 427, 391, 429, + /* 2270 */ 393, 104, 432, 433, 434, 435, 436, 437, 103, 439, + /* 2280 */ 103, 379, 44, 125, 103, 35, 125, 103, 125, 22, + /* 2290 */ 125, 35, 69, 391, 68, 393, 35, 35, 35, 35, + /* 2300 */ 35, 35, 75, 35, 427, 97, 429, 35, 22, 432, /* 2310 */ 433, 434, 435, 436, 437, 341, 439, 44, 35, 35, /* 2320 */ 35, 75, 35, 35, 35, 351, 35, 35, 35, 427, /* 2330 */ 341, 429, 35, 35, 432, 433, 434, 435, 436, 437, - /* 2340 */ 351, 439, 22, 35, 0, 35, 39, 0, 341, 49, - /* 2350 */ 35, 49, 39, 379, 0, 49, 35, 39, 351, 0, - /* 2360 */ 35, 49, 39, 0, 35, 391, 0, 393, 379, 35, - /* 2370 */ 22, 21, 487, 22, 22, 487, 21, 20, 487, 487, + /* 2340 */ 351, 439, 22, 0, 35, 49, 39, 0, 341, 35, + /* 2350 */ 49, 39, 0, 379, 35, 49, 39, 0, 351, 35, + /* 2360 */ 39, 0, 49, 35, 35, 391, 0, 393, 379, 20, + /* 2370 */ 22, 21, 487, 22, 487, 22, 21, 487, 487, 487, /* 2380 */ 391, 487, 393, 487, 487, 487, 379, 487, 487, 487, /* 2390 */ 487, 487, 487, 487, 487, 341, 487, 487, 391, 487, /* 2400 */ 393, 427, 487, 429, 487, 351, 432, 433, 434, 435, @@ -1168,7 +1168,7 @@ static const YYCODETYPE yy_lookahead[] = { /* 3180 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, /* 3190 */ 338, 338, 338, 338, 338, 338, }; -#define YY_SHIFT_COUNT (801) +#define YY_SHIFT_COUNT (800) #define YY_SHIFT_MIN (0) #define YY_SHIFT_MAX (2366) static const unsigned short int yy_shift_ofst[] = { @@ -1191,68 +1191,68 @@ static const unsigned short int yy_shift_ofst[] = { /* 160 */ 28, 28, 28, 28, 28, 28, 28, 1987, 757, 261, /* 170 */ 580, 613, 508, 49, 123, 343, 343, 526, 354, 1007, /* 180 */ 299, 1079, 1192, 418, 398, 1085, 916, 939, 785, 916, - /* 190 */ 1177, 325, 290, 1162, 1369, 1407, 1223, 211, 1407, 211, - /* 200 */ 1242, 1435, 1416, 1450, 1435, 1416, 1306, 1460, 1435, 1460, - /* 210 */ 1416, 1306, 1306, 1389, 1393, 1460, 1402, 1460, 1460, 1460, - /* 220 */ 1490, 1468, 1490, 1468, 1407, 211, 1503, 211, 1508, 1511, - /* 230 */ 211, 1508, 211, 211, 211, 1460, 211, 1490, 68, 68, + /* 190 */ 1177, 325, 290, 1160, 1377, 1409, 1226, 211, 1409, 211, + /* 200 */ 1261, 1435, 1428, 1452, 1435, 1428, 1308, 1460, 1435, 1460, + /* 210 */ 1428, 1308, 1308, 1389, 1393, 1460, 1402, 1460, 1460, 1460, + /* 220 */ 1490, 1468, 1490, 1468, 1409, 211, 1503, 211, 1509, 1511, + /* 230 */ 211, 1509, 211, 211, 211, 1460, 211, 1490, 68, 68, /* 240 */ 68, 68, 68, 68, 68, 68, 68, 68, 68, 1460, - /* 250 */ 1490, 534, 534, 534, 1343, 1452, 1407, 284, 1360, 1366, - /* 260 */ 1503, 284, 1394, 1162, 1460, 1450, 1450, 534, 1330, 1339, - /* 270 */ 534, 1330, 1339, 534, 534, 68, 1326, 1439, 1330, 1344, - /* 280 */ 1350, 1364, 1162, 1345, 1354, 1352, 1373, 1435, 1627, 1508, - /* 290 */ 284, 284, 1631, 1339, 534, 534, 534, 534, 534, 1339, - /* 300 */ 534, 1505, 284, 836, 284, 1435, 1591, 1593, 534, 619, - /* 310 */ 1460, 284, 1667, 1490, 2858, 2858, 2858, 2858, 2858, 2858, + /* 250 */ 1490, 534, 534, 534, 1343, 1453, 1409, 284, 1358, 1361, + /* 260 */ 1503, 284, 1394, 1160, 1460, 1452, 1452, 534, 1333, 1335, + /* 270 */ 534, 1333, 1335, 534, 534, 68, 1328, 1439, 1333, 1344, + /* 280 */ 1350, 1364, 1160, 1345, 1366, 1348, 1373, 1435, 1630, 1509, + /* 290 */ 284, 284, 1636, 1335, 534, 534, 534, 534, 534, 1335, + /* 300 */ 534, 1508, 284, 836, 284, 1435, 1592, 1596, 534, 619, + /* 310 */ 1460, 284, 1670, 1490, 2858, 2858, 2858, 2858, 2858, 2858, /* 320 */ 2858, 2858, 2858, 1002, 1074, 225, 32, 736, 750, 860, /* 330 */ 687, 980, 1356, 434, 791, 197, 197, 197, 197, 197, /* 340 */ 197, 197, 197, 197, 749, 265, 698, 698, 29, 6, /* 350 */ 34, 307, 830, 562, 963, 902, 514, 282, 282, 1097, - /* 360 */ 728, 971, 1097, 1097, 1097, 983, 1044, 622, 1209, 1198, - /* 370 */ 1131, 1077, 1143, 1149, 1156, 1160, 1236, 1256, 815, 1182, - /* 380 */ 1275, 1071, 1195, 1224, 63, 1232, 1237, 1262, 1152, 1124, - /* 390 */ 1094, 1263, 1277, 1278, 1282, 1285, 1286, 1332, 1291, 1220, - /* 400 */ 1295, 311, 1305, 1315, 1335, 1340, 1349, 1353, 1206, 1270, - /* 410 */ 1288, 1372, 1378, 409, 1351, 1709, 1738, 1745, 1704, 1749, + /* 360 */ 728, 971, 1097, 1097, 1097, 983, 1044, 622, 1231, 1198, + /* 370 */ 1131, 1077, 1143, 1149, 1156, 1161, 1256, 1262, 815, 1182, + /* 380 */ 1276, 1071, 1195, 1205, 63, 1237, 1263, 1275, 1152, 1084, + /* 390 */ 1094, 1277, 1278, 1282, 1285, 1286, 1291, 1310, 1292, 1100, + /* 400 */ 1295, 311, 1305, 1315, 1340, 1349, 1353, 1354, 1272, 1253, + /* 410 */ 1270, 1293, 1321, 409, 1351, 1707, 1740, 1745, 1704, 1749, /* 420 */ 1715, 1535, 1717, 1720, 1722, 1542, 1759, 1725, 1726, 1546, /* 430 */ 1764, 1549, 1766, 1734, 1770, 1750, 1771, 1739, 1565, 1784, - /* 440 */ 1587, 1788, 1590, 1594, 1600, 1610, 1806, 1807, 1808, 1622, - /* 450 */ 1624, 1811, 1812, 1769, 1813, 1817, 1772, 1779, 1822, 1776, - /* 460 */ 1825, 1786, 1826, 1830, 1831, 1785, 1833, 1835, 1836, 1837, - /* 470 */ 1838, 1843, 1681, 1818, 1850, 1693, 1855, 1857, 1858, 1859, + /* 440 */ 1587, 1788, 1590, 1593, 1601, 1610, 1806, 1807, 1808, 1622, + /* 450 */ 1624, 1811, 1812, 1769, 1813, 1782, 1772, 1818, 1775, 1823, + /* 460 */ 1783, 1826, 1828, 1830, 1785, 1831, 1833, 1835, 1836, 1837, + /* 470 */ 1838, 1681, 1817, 1843, 1691, 1853, 1855, 1857, 1858, 1859, /* 480 */ 1860, 1861, 1864, 1866, 1888, 1889, 1893, 1894, 1903, 1904, - /* 490 */ 1905, 1906, 1832, 1880, 1839, 1882, 1883, 1884, 1885, 1886, - /* 500 */ 1907, 1856, 1908, 1909, 1911, 1780, 1913, 1914, 1910, 1829, - /* 510 */ 1915, 1876, 1925, 1865, 1891, 1928, 1868, 1933, 1873, 1936, - /* 520 */ 1938, 1916, 1890, 1901, 1942, 1917, 1895, 1918, 1945, 1919, - /* 530 */ 1897, 1921, 1948, 1920, 1949, 1923, 1922, 1912, 1927, 1929, - /* 540 */ 1939, 1931, 1950, 1926, 1924, 1958, 1962, 1967, 1930, 1790, - /* 550 */ 1968, 1970, 1975, 1932, 1981, 1991, 1957, 1944, 1955, 1995, - /* 560 */ 1961, 1951, 1959, 1997, 1964, 1953, 1965, 2003, 1973, 1956, - /* 570 */ 1971, 2011, 2021, 2022, 2023, 2024, 2025, 1940, 1941, 1992, - /* 580 */ 2004, 2028, 1994, 1996, 1998, 1999, 2000, 2002, 2005, 2006, - /* 590 */ 2010, 2008, 2013, 2016, 2020, 2039, 2019, 2042, 2034, 2009, - /* 600 */ 2057, 2036, 2026, 2059, 2027, 2064, 2030, 2067, 2047, 2050, - /* 610 */ 2044, 2045, 2046, 1978, 1980, 2077, 1934, 1982, 1892, 2051, - /* 620 */ 2065, 2088, 1899, 2073, 1935, 1937, 2096, 2097, 1943, 1946, - /* 630 */ 1954, 1952, 2095, 2055, 1844, 2001, 2012, 2014, 2052, 2017, - /* 640 */ 2053, 2015, 2029, 2058, 2066, 2031, 2018, 2035, 2037, 2033, - /* 650 */ 2068, 2062, 2080, 2040, 2069, 1867, 2038, 2048, 2117, 2079, - /* 660 */ 1898, 2093, 2115, 2118, 2119, 2120, 2124, 2060, 2061, 2085, - /* 670 */ 1900, 2129, 2114, 2163, 2168, 2071, 2144, 1927, 2137, 2082, - /* 680 */ 2083, 2084, 2086, 2087, 2041, 2089, 2193, 2156, 2049, 2094, - /* 690 */ 2090, 1927, 2149, 2154, 2098, 1976, 2099, 2199, 2180, 1986, - /* 700 */ 2101, 2116, 2121, 2122, 2126, 2128, 2176, 2127, 2131, 2178, - /* 710 */ 2132, 2205, 2032, 2134, 2125, 2136, 2200, 2203, 2138, 2141, - /* 720 */ 2211, 2152, 2155, 2223, 2157, 2158, 2226, 2160, 2161, 2229, - /* 730 */ 2175, 2162, 2236, 2177, 2159, 2164, 2165, 2166, 2179, 2239, - /* 740 */ 2183, 2250, 2184, 2239, 2239, 2266, 2225, 2224, 2261, 2262, - /* 750 */ 2263, 2264, 2265, 2267, 2268, 2270, 2232, 2204, 2273, 2283, - /* 760 */ 2284, 2285, 2286, 2287, 2288, 2289, 2246, 2006, 2291, 2010, - /* 770 */ 2292, 2293, 2297, 2298, 2320, 2308, 2344, 2310, 2300, 2307, - /* 780 */ 2347, 2315, 2302, 2313, 2354, 2321, 2306, 2318, 2359, 2325, - /* 790 */ 2312, 2323, 2363, 2329, 2334, 2366, 2348, 2350, 2351, 2352, - /* 800 */ 2355, 2357, + /* 490 */ 1905, 1832, 1880, 1839, 1882, 1883, 1884, 1885, 1886, 1906, + /* 500 */ 1856, 1907, 1908, 1909, 1768, 1913, 1914, 1901, 1829, 1910, + /* 510 */ 1876, 1925, 1865, 1891, 1928, 1868, 1933, 1873, 1936, 1937, + /* 520 */ 1911, 1890, 1899, 1940, 1915, 1895, 1912, 1942, 1917, 1896, + /* 530 */ 1916, 1948, 1918, 1949, 1919, 1921, 1922, 1920, 1923, 1943, + /* 540 */ 1927, 1954, 1929, 1924, 1956, 1958, 1962, 1926, 1786, 1972, + /* 550 */ 1975, 1976, 1930, 1978, 1981, 1957, 1944, 1952, 1994, 1960, + /* 560 */ 1947, 1959, 1997, 1965, 1953, 1964, 2001, 1969, 1961, 1966, + /* 570 */ 2008, 2011, 2021, 2022, 2023, 2024, 1931, 1932, 1990, 2004, + /* 580 */ 2027, 1993, 1996, 1998, 1999, 2000, 2002, 2003, 1985, 1995, + /* 590 */ 2005, 2006, 2026, 2015, 2051, 2030, 2064, 2032, 2009, 2055, + /* 600 */ 2034, 2035, 2057, 2042, 2058, 2044, 2059, 2039, 2045, 2046, + /* 610 */ 2047, 2048, 1963, 1977, 2062, 1897, 1982, 1892, 2052, 2066, + /* 620 */ 2086, 1934, 2071, 1935, 1938, 2095, 2096, 1939, 1945, 1941, + /* 630 */ 1946, 2094, 2056, 1834, 2012, 2010, 2013, 2053, 2016, 2060, + /* 640 */ 2019, 2017, 2065, 2082, 2028, 2037, 2040, 2049, 2029, 2083, + /* 650 */ 2063, 2073, 2050, 2087, 1842, 2031, 2033, 2099, 2098, 1874, + /* 660 */ 2069, 2115, 2119, 2120, 2124, 2126, 2061, 2070, 2111, 1841, + /* 670 */ 2118, 2116, 2130, 2164, 2080, 2129, 1920, 2137, 2084, 2081, + /* 680 */ 2085, 2089, 2090, 2020, 2093, 2173, 2149, 2025, 2097, 2077, + /* 690 */ 1920, 2150, 2155, 2100, 1971, 2101, 2201, 2187, 2014, 2117, + /* 700 */ 2121, 2127, 2122, 2131, 2125, 2157, 2132, 2133, 2174, 2128, + /* 710 */ 2200, 2036, 2135, 2109, 2136, 2189, 2192, 2138, 2141, 2204, + /* 720 */ 2143, 2151, 2222, 2156, 2154, 2225, 2159, 2160, 2228, 2162, + /* 730 */ 2167, 2231, 2175, 2158, 2161, 2163, 2165, 2177, 2238, 2181, + /* 740 */ 2250, 2184, 2238, 2238, 2267, 2223, 2226, 2256, 2261, 2262, + /* 750 */ 2263, 2264, 2265, 2266, 2268, 2227, 2208, 2273, 2272, 2283, + /* 760 */ 2284, 2286, 2285, 2287, 2288, 2246, 1985, 2289, 1995, 2291, + /* 770 */ 2292, 2293, 2297, 2320, 2298, 2343, 2309, 2296, 2307, 2347, + /* 780 */ 2314, 2301, 2312, 2352, 2319, 2306, 2317, 2357, 2324, 2313, + /* 790 */ 2321, 2361, 2328, 2329, 2366, 2348, 2350, 2351, 2353, 2355, + /* 800 */ 2349, }; #define YY_REDUCE_COUNT (322) #define YY_REDUCE_MIN (-404) @@ -1274,106 +1274,106 @@ static const short yy_reduce_ofst[] = { /* 130 */ 809, 844, 845, 855, 867, -217, -242, -15, 438, 523, /* 140 */ 680, 616, -242, 167, 199, -250, 366, 696, 778, 825, /* 150 */ -375, -47, 93, 575, 818, 811, 823, 841, 864, -371, - /* 160 */ -328, 356, 491, 515, 579, 681, 515, 711, 847, 956, - /* 170 */ 910, 827, 829, 1006, 888, 1008, 1020, 1009, 986, 1009, - /* 180 */ 1046, 997, 1055, 1054, 1018, 1011, 954, 954, 937, 954, - /* 190 */ 965, 959, 1009, 1010, 998, 1021, 1023, 1073, 1025, 1091, - /* 200 */ 1040, 1105, 1075, 1076, 1121, 1081, 1078, 1134, 1135, 1137, - /* 210 */ 1087, 1092, 1093, 1128, 1132, 1147, 1146, 1161, 1163, 1164, - /* 220 */ 1169, 1170, 1175, 1174, 1101, 1165, 1136, 1168, 1178, 1120, + /* 160 */ -328, 356, 491, 515, 579, 681, 515, 798, 876, 925, + /* 170 */ 932, 875, 829, 1033, 920, 1024, 1037, 1021, 995, 1021, + /* 180 */ 1052, 1006, 1059, 1061, 1023, 1013, 955, 955, 940, 955, + /* 190 */ 965, 959, 1021, 1012, 999, 1010, 1016, 1080, 1022, 1090, + /* 200 */ 1040, 1105, 1075, 1073, 1124, 1081, 1088, 1135, 1130, 1136, + /* 210 */ 1089, 1092, 1093, 1128, 1132, 1147, 1146, 1162, 1163, 1164, + /* 220 */ 1168, 1170, 1175, 1174, 1101, 1165, 1134, 1169, 1178, 1120, /* 230 */ 1176, 1184, 1179, 1180, 1181, 1191, 1183, 1200, 1166, 1167, /* 240 */ 1171, 1173, 1187, 1188, 1189, 1190, 1193, 1194, 1196, 1197, - /* 250 */ 1201, 1172, 1185, 1205, 1129, 1133, 1138, 1203, 1141, 1151, - /* 260 */ 1208, 1214, 1199, 1202, 1238, 1204, 1210, 1211, 1139, 1212, - /* 270 */ 1219, 1148, 1213, 1222, 1225, 1009, 1150, 1153, 1215, 1186, - /* 280 */ 1216, 1221, 1217, 1144, 1218, 1226, 954, 1294, 1228, 1298, - /* 290 */ 1292, 1299, 1250, 1249, 1273, 1287, 1289, 1293, 1300, 1255, - /* 300 */ 1301, 1280, 1329, 1314, 1336, 1348, 1246, 1317, 1310, 1333, - /* 310 */ 1357, 1355, 1362, 1365, 1307, 1313, 1303, 1308, 1367, 1368, - /* 320 */ 1371, 1370, 1388, + /* 250 */ 1201, 1172, 1185, 1208, 1129, 1137, 1138, 1204, 1142, 1151, + /* 260 */ 1203, 1214, 1199, 1202, 1238, 1206, 1209, 1210, 1139, 1212, + /* 270 */ 1220, 1148, 1213, 1222, 1225, 1021, 1150, 1153, 1211, 1186, + /* 280 */ 1215, 1217, 1218, 1159, 1157, 1154, 955, 1296, 1223, 1299, + /* 290 */ 1298, 1304, 1255, 1258, 1288, 1294, 1300, 1301, 1303, 1280, + /* 300 */ 1307, 1281, 1326, 1314, 1336, 1352, 1247, 1317, 1311, 1332, + /* 310 */ 1355, 1365, 1368, 1367, 1312, 1287, 1331, 1334, 1342, 1362, + /* 320 */ 1371, 1370, 1369, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 10 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 20 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 30 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 40 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 50 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 60 */ 2093, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 70 */ 1782, 1782, 1782, 1782, 2066, 1782, 1782, 1782, 1782, 1782, - /* 80 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 90 */ 1782, 1871, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 100 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 110 */ 1869, 2059, 2285, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 120 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 130 */ 1782, 1782, 1782, 1782, 1782, 1782, 2297, 1782, 1782, 1845, - /* 140 */ 1845, 1782, 2297, 2297, 2297, 1869, 2257, 2257, 1782, 1871, - /* 150 */ 2127, 1782, 1782, 1782, 1782, 1782, 1782, 1991, 1782, 1782, - /* 160 */ 1782, 1782, 1782, 2015, 1782, 1782, 1782, 2119, 1782, 1782, - /* 170 */ 2322, 2379, 1782, 1782, 2325, 1782, 1782, 1782, 1782, 1782, - /* 180 */ 1782, 2071, 1782, 1782, 1944, 2312, 2289, 2303, 2363, 2290, - /* 190 */ 2287, 2306, 1782, 2316, 1782, 1782, 2141, 1871, 1782, 1871, - /* 200 */ 2106, 1782, 2064, 1782, 1782, 2064, 2061, 1782, 1782, 1782, - /* 210 */ 2064, 2061, 2061, 1933, 1929, 1782, 1927, 1782, 1782, 1782, - /* 220 */ 1782, 1829, 1782, 1829, 1782, 1871, 1782, 1871, 1782, 1782, - /* 230 */ 1871, 1782, 1871, 1871, 1871, 1782, 1871, 1782, 1782, 1782, - /* 240 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 250 */ 1782, 1782, 1782, 1782, 2139, 2125, 1782, 1869, 2117, 2115, - /* 260 */ 1782, 1869, 2113, 2316, 1782, 1782, 1782, 1782, 2333, 2331, - /* 270 */ 1782, 2333, 2331, 1782, 1782, 1782, 2347, 2343, 2333, 2352, - /* 280 */ 2349, 2318, 2316, 2382, 2369, 2365, 2303, 1782, 1782, 1782, - /* 290 */ 1869, 1869, 1782, 2331, 1782, 1782, 1782, 1782, 1782, 2331, - /* 300 */ 1782, 1782, 1869, 1782, 1869, 1782, 1782, 1960, 1782, 1782, - /* 310 */ 1782, 1869, 1814, 1782, 2108, 2130, 2089, 2089, 1994, 1994, - /* 320 */ 1994, 1872, 1787, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 330 */ 1782, 1782, 1782, 1782, 1782, 2346, 2345, 2212, 1782, 2261, - /* 340 */ 2260, 2259, 2250, 2211, 1956, 1782, 2210, 2209, 1782, 1782, - /* 350 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2080, 2079, 2203, - /* 360 */ 1782, 1782, 2204, 2202, 2201, 1782, 1782, 1782, 1782, 1782, - /* 370 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 380 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2366, - /* 390 */ 2370, 1782, 1782, 1782, 1782, 1782, 1782, 2286, 1782, 1782, - /* 400 */ 1782, 2185, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 410 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 420 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 430 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 440 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 450 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 460 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 470 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 480 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 490 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 500 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 510 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 520 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 530 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1819, 2190, 1782, - /* 540 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 550 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 560 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 570 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 580 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1910, - /* 590 */ 1909, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 600 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 610 */ 1782, 1782, 1782, 2194, 1782, 1782, 1782, 1782, 1782, 1782, - /* 620 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 630 */ 1782, 1782, 2362, 2319, 1782, 1782, 1782, 1782, 1782, 1782, - /* 640 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 650 */ 1782, 1782, 2185, 1782, 2344, 1782, 1782, 2360, 1782, 2364, - /* 660 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 2296, 2292, 1782, - /* 670 */ 1782, 2288, 1782, 1782, 1782, 1782, 1782, 2193, 1782, 1782, - /* 680 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 690 */ 1782, 2184, 1782, 2247, 1782, 1782, 1782, 2281, 1782, 1782, - /* 700 */ 2232, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 710 */ 2194, 1782, 2197, 1782, 1782, 1782, 1782, 1782, 1988, 1782, - /* 720 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 730 */ 1782, 1782, 1782, 1782, 1972, 1970, 1969, 1968, 1782, 2001, - /* 740 */ 1782, 1782, 1782, 1997, 1996, 1782, 1782, 1782, 1782, 1782, - /* 750 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1890, 1782, - /* 760 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1882, 1782, 1881, - /* 770 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 780 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 790 */ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, - /* 800 */ 1782, 1782, + /* 0 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 10 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 20 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 30 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 40 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 50 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 60 */ 2092, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 70 */ 1781, 1781, 1781, 1781, 2065, 1781, 1781, 1781, 1781, 1781, + /* 80 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 90 */ 1781, 1870, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 100 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 110 */ 1868, 2058, 2284, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 120 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 130 */ 1781, 1781, 1781, 1781, 1781, 1781, 2296, 1781, 1781, 1844, + /* 140 */ 1844, 1781, 2296, 2296, 2296, 1868, 2256, 2256, 1781, 1870, + /* 150 */ 2126, 1781, 1781, 1781, 1781, 1781, 1781, 1990, 1781, 1781, + /* 160 */ 1781, 1781, 1781, 2014, 1781, 1781, 1781, 2118, 1781, 1781, + /* 170 */ 2321, 2378, 1781, 1781, 2324, 1781, 1781, 1781, 1781, 1781, + /* 180 */ 1781, 2070, 1781, 1781, 1943, 2311, 2288, 2302, 2362, 2289, + /* 190 */ 2286, 2305, 1781, 2315, 1781, 1781, 2140, 1870, 1781, 1870, + /* 200 */ 2105, 1781, 2063, 1781, 1781, 2063, 2060, 1781, 1781, 1781, + /* 210 */ 2063, 2060, 2060, 1932, 1928, 1781, 1926, 1781, 1781, 1781, + /* 220 */ 1781, 1828, 1781, 1828, 1781, 1870, 1781, 1870, 1781, 1781, + /* 230 */ 1870, 1781, 1870, 1870, 1870, 1781, 1870, 1781, 1781, 1781, + /* 240 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 250 */ 1781, 1781, 1781, 1781, 2138, 2124, 1781, 1868, 2116, 2114, + /* 260 */ 1781, 1868, 2112, 2315, 1781, 1781, 1781, 1781, 2332, 2330, + /* 270 */ 1781, 2332, 2330, 1781, 1781, 1781, 2346, 2342, 2332, 2351, + /* 280 */ 2348, 2317, 2315, 2381, 2368, 2364, 2302, 1781, 1781, 1781, + /* 290 */ 1868, 1868, 1781, 2330, 1781, 1781, 1781, 1781, 1781, 2330, + /* 300 */ 1781, 1781, 1868, 1781, 1868, 1781, 1781, 1959, 1781, 1781, + /* 310 */ 1781, 1868, 1813, 1781, 2107, 2129, 2088, 2088, 1993, 1993, + /* 320 */ 1993, 1871, 1786, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 330 */ 1781, 1781, 1781, 1781, 1781, 2345, 2344, 2211, 1781, 2260, + /* 340 */ 2259, 2258, 2249, 2210, 1955, 1781, 2209, 2208, 1781, 1781, + /* 350 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 2079, 2078, 2202, + /* 360 */ 1781, 1781, 2203, 2201, 2200, 1781, 1781, 1781, 1781, 1781, + /* 370 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 380 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 2365, + /* 390 */ 2369, 1781, 1781, 1781, 1781, 1781, 1781, 2285, 1781, 1781, + /* 400 */ 1781, 2184, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 410 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 420 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 430 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 440 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 450 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 460 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 470 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 480 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 490 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 500 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 510 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 520 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 530 */ 1781, 1781, 1781, 1781, 1781, 1781, 1818, 2189, 1781, 1781, + /* 540 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 550 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 560 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 570 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 580 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1909, 1908, + /* 590 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 600 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 610 */ 1781, 1781, 2193, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 620 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 630 */ 1781, 2361, 2318, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 640 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 650 */ 1781, 2184, 1781, 2343, 1781, 1781, 2359, 1781, 2363, 1781, + /* 660 */ 1781, 1781, 1781, 1781, 1781, 1781, 2295, 2291, 1781, 1781, + /* 670 */ 2287, 1781, 1781, 1781, 1781, 1781, 2192, 1781, 1781, 1781, + /* 680 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 690 */ 2183, 1781, 2246, 1781, 1781, 1781, 2280, 1781, 1781, 2231, + /* 700 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 2193, + /* 710 */ 1781, 2196, 1781, 1781, 1781, 1781, 1781, 1987, 1781, 1781, + /* 720 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 730 */ 1781, 1781, 1781, 1971, 1969, 1968, 1967, 1781, 2000, 1781, + /* 740 */ 1781, 1781, 1996, 1995, 1781, 1781, 1781, 1781, 1781, 1781, + /* 750 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1889, 1781, 1781, + /* 760 */ 1781, 1781, 1781, 1781, 1781, 1781, 1881, 1781, 1880, 1781, + /* 770 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 780 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 790 */ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, + /* 800 */ 1781, }; /********** End of lemon-generated parsing tables *****************************/ @@ -2584,7 +2584,7 @@ static const char *const yyRuleName[] = { /* 268 */ "cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt", /* 269 */ "cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name", /* 270 */ "cmd ::= SHOW VNODES ON DNODE NK_INTEGER", - /* 271 */ "cmd ::= SHOW VNODES ON DNODE NK_STRING", + /* 271 */ "cmd ::= SHOW VNODES", /* 272 */ "cmd ::= SHOW db_name_cond_opt ALIVE", /* 273 */ "cmd ::= SHOW CLUSTER ALIVE", /* 274 */ "db_name_cond_opt ::=", @@ -3835,7 +3835,7 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 338, /* (268) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ 338, /* (269) cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ 338, /* (270) cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ - 338, /* (271) cmd ::= SHOW VNODES ON DNODE NK_STRING */ + 338, /* (271) cmd ::= SHOW VNODES */ 338, /* (272) cmd ::= SHOW db_name_cond_opt ALIVE */ 338, /* (273) cmd ::= SHOW CLUSTER ALIVE */ 395, /* (274) db_name_cond_opt ::= */ @@ -4440,7 +4440,7 @@ static const signed char yyRuleInfoNRhs[] = { -7, /* (268) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ -8, /* (269) cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ -5, /* (270) cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ - -5, /* (271) cmd ::= SHOW VNODES ON DNODE NK_STRING */ + -2, /* (271) cmd ::= SHOW VNODES */ -3, /* (272) cmd ::= SHOW db_name_cond_opt ALIVE */ -3, /* (273) cmd ::= SHOW CLUSTER ALIVE */ 0, /* (274) db_name_cond_opt ::= */ @@ -6172,9 +6172,9 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } #line 6173 "sql.c" break; - case 271: /* cmd ::= SHOW VNODES ON DNODE NK_STRING */ + case 271: /* cmd ::= SHOW VNODES */ #line 479 "sql.y" -{ pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &yymsp[0].minor.yy0)); } +{ pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, NULL); } #line 6178 "sql.c" break; case 272: /* cmd ::= SHOW db_name_cond_opt ALIVE */ From bad2bb52b5ab9b889e68fda6a7d6447523b7a971 Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Wed, 16 Aug 2023 18:17:43 +0800 Subject: [PATCH 17/21] enh: update test cases for show vnodes --- source/libs/parser/test/parShowToUse.cpp | 4 +-- tests/script/tsim/db/basic1.sim | 32 +++++++++++++----------- tests/system-test/0-others/show.py | 2 +- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/source/libs/parser/test/parShowToUse.cpp b/source/libs/parser/test/parShowToUse.cpp index b7bd0e802c..3e1482d420 100644 --- a/source/libs/parser/test/parShowToUse.cpp +++ b/source/libs/parser/test/parShowToUse.cpp @@ -239,9 +239,9 @@ TEST_F(ParserShowToUseTest, showVgroups) { TEST_F(ParserShowToUseTest, showVnodes) { useDb("root", "test"); - run("SHOW VNODES 1"); + run("SHOW VNODES ON DNODE 1"); - run("SHOW VNODES 'node1:7030'"); + run("SHOW VNODES"); } TEST_F(ParserShowToUseTest, splitVgroup) { diff --git a/tests/script/tsim/db/basic1.sim b/tests/script/tsim/db/basic1.sim index 5d7d0bd9e9..8eb6dce759 100644 --- a/tests/script/tsim/db/basic1.sim +++ b/tests/script/tsim/db/basic1.sim @@ -107,35 +107,39 @@ if $data30 != 12 then return -1 endi -print =============== show vnodes -sql show vnodes 1 +print =============== show vnodes on dnode 1 +sql show vnodes on dnode 1 if $rows != 9 then return -1 endi -if $data(4)[1] != 1 then - return -1 +if $data10 != 1 then + return -1 endi -if $data(4)[2] != leader then - return -1 +if $data11 != 5 then + return -1 endi -if $data(4)[3] != d2 then - return -1 +if $data12 != d2 then + return -1 endi -if $data(4)[4] != 1 then - return -1 +if $data13 != leader then + return -1 endi -if $data(4)[5] != localhost:7100 then - return -1 +print $data14 +print $data15 + +if $data16 != 1 then + return -1 endi -sql show vnodes 'localhost:7100' +print ================ show vnodes +sql show vnodes if $rows != 9 then - return -1 + return -1 endi print =============== drop database diff --git a/tests/system-test/0-others/show.py b/tests/system-test/0-others/show.py index 9d26b3a2ae..4ef323db22 100644 --- a/tests/system-test/0-others/show.py +++ b/tests/system-test/0-others/show.py @@ -128,7 +128,7 @@ class TDTestCase: continue else: tdLog.exit(f"show create database check failed with {key} {value}") - tdSql.query('show vnodes 1') + tdSql.query('show vnodes on dnode 1') tdSql.checkRows(self.vgroups) tdSql.execute(f'use {self.dbname}') From 9b089d644695123175f569edfe96ace033d635a9 Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Thu, 17 Aug 2023 11:58:09 +0800 Subject: [PATCH 18/21] enh: wrap state updating of vnodes and mnodes in mndProcessStatusReq --- source/dnode/mnode/impl/src/mndDnode.c | 73 +++++++++++++++----------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndDnode.c b/source/dnode/mnode/impl/src/mndDnode.c index 25e7ff0158..39285ced5d 100644 --- a/source/dnode/mnode/impl/src/mndDnode.c +++ b/source/dnode/mnode/impl/src/mndDnode.c @@ -424,6 +424,47 @@ static int32_t mndCheckClusterCfgPara(SMnode *pMnode, SDnodeObj *pDnode, const S return 0; } +static bool mndUpdateVnodeState(int32_t vgId, SVnodeGid *pGid, SVnodeLoad *pVload) { + bool stateChanged = false; + bool roleChanged = pGid->syncState != pVload->syncState || + (pVload->syncTerm != -1 && pGid->syncTerm != pVload->syncTerm) || + pGid->roleTimeMs != pVload->roleTimeMs; + if (roleChanged || pGid->syncRestore != pVload->syncRestore || pGid->syncCanRead != pVload->syncCanRead || + pGid->startTimeMs != pVload->startTimeMs) { + mInfo( + "vgId:%d, state changed by status msg, old state:%s restored:%d canRead:%d new state:%s restored:%d " + "canRead:%d, dnode:%d", + vgId, syncStr(pGid->syncState), pGid->syncRestore, pGid->syncCanRead, syncStr(pVload->syncState), + pVload->syncRestore, pVload->syncCanRead, pGid->dnodeId); + pGid->syncState = pVload->syncState; + pGid->syncTerm = pVload->syncTerm; + pGid->syncRestore = pVload->syncRestore; + pGid->syncCanRead = pVload->syncCanRead; + pGid->startTimeMs = pVload->startTimeMs; + pGid->roleTimeMs = pVload->roleTimeMs; + stateChanged = true; + } + return stateChanged; +} + +static bool mndUpdateMnodeState(SMnodeObj *pObj, SMnodeLoad *pMload) { + bool stateChanged = false; + bool roleChanged = pObj->syncState != pMload->syncState || + (pMload->syncTerm != -1 && pObj->syncTerm != pMload->syncTerm) || + pObj->roleTimeMs != pMload->roleTimeMs; + if (roleChanged || pObj->syncRestore != pMload->syncRestore) { + mInfo("dnode:%d, mnode syncState from %s to %s, restoreState from %d to %d, syncTerm from %" PRId64 " to %" PRId64, + pObj->id, syncStr(pObj->syncState), syncStr(pMload->syncState), pObj->syncRestore, pMload->syncRestore, + pObj->syncTerm, pMload->syncTerm); + pObj->syncState = pMload->syncState; + pObj->syncTerm = pMload->syncTerm; + pObj->syncRestore = pMload->syncRestore; + pObj->roleTimeMs = pMload->roleTimeMs; + stateChanged = true; + } + return stateChanged; +} + static int32_t mndProcessStatusReq(SRpcMsg *pReq) { SMnode *pMnode = pReq->info.node; SStatusReq statusReq = {0}; @@ -506,23 +547,7 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { if (pVload->roleTimeMs == 0) { pVload->roleTimeMs = statusReq.rebootTime; } - bool roleChanged = pGid->syncState != pVload->syncState || - (pVload->syncTerm != -1 && pGid->syncTerm != pVload->syncTerm) || - pGid->roleTimeMs != pVload->roleTimeMs; - if (reboot || roleChanged || pGid->syncRestore != pVload->syncRestore || pGid->syncCanRead != pVload->syncCanRead) { - mInfo( - "vgId:%d, state changed by status msg, old state:%s restored:%d canRead:%d new state:%s restored:%d " - "canRead:%d, dnode:%d", - pVgroup->vgId, syncStr(pGid->syncState), pGid->syncRestore, pGid->syncCanRead, - syncStr(pVload->syncState), pVload->syncRestore, pVload->syncCanRead, pDnode->id); - pGid->syncState = pVload->syncState; - pGid->syncTerm = pVload->syncTerm; - pGid->syncRestore = pVload->syncRestore; - pGid->syncCanRead = pVload->syncCanRead; - pGid->startTimeMs = pVload->startTimeMs; - pGid->roleTimeMs = pVload->roleTimeMs; - stateChanged = true; - } + stateChanged = mndUpdateVnodeState(pVgroup->vgId, pGid, pVload); break; } } @@ -545,19 +570,7 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { if (statusReq.mload.roleTimeMs == 0) { statusReq.mload.roleTimeMs = statusReq.rebootTime; } - bool roleChanged = pObj->syncState != statusReq.mload.syncState || - (statusReq.mload.syncTerm != -1 && pObj->syncTerm != statusReq.mload.syncTerm) || - pObj->roleTimeMs != statusReq.mload.roleTimeMs; - if (roleChanged || pObj->syncRestore != statusReq.mload.syncRestore) { - mInfo("dnode:%d, mnode syncState from %s to %s, restoreState from %d to %d, syncTerm from %" PRId64 - " to %" PRId64, - pObj->id, syncStr(pObj->syncState), syncStr(statusReq.mload.syncState), pObj->syncRestore, - statusReq.mload.syncRestore, pObj->syncTerm, statusReq.mload.syncTerm); - pObj->syncState = statusReq.mload.syncState; - pObj->syncTerm = statusReq.mload.syncTerm; - pObj->syncRestore = statusReq.mload.syncRestore; - pObj->roleTimeMs = statusReq.mload.roleTimeMs; - } + mndUpdateMnodeState(pObj, &statusReq.mload); mndReleaseMnode(pMnode, pObj); } From 3abf47e011522d5e81b337ada9805e962786e8d8 Mon Sep 17 00:00:00 2001 From: liuyao <38781207+54liuyao@users.noreply.github.com> Date: Thu, 17 Aug 2023 14:23:00 +0800 Subject: [PATCH 19/21] Update 14-stream.md --- docs/en/12-taos-sql/14-stream.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/en/12-taos-sql/14-stream.md b/docs/en/12-taos-sql/14-stream.md index 329e98dbe3..c8be1753a2 100644 --- a/docs/en/12-taos-sql/14-stream.md +++ b/docs/en/12-taos-sql/14-stream.md @@ -168,3 +168,11 @@ All [scalar functions](../function/#scalar-functions) are available in stream pr - [unique](../function/#unique) - [mode](../function/#mode) +## Pause\Resume stream +1.pause stream +PAUSE STREAM [IF EXISTS] stream_name; +If "IF EXISTS" is not specified and the stream does not exist, an error will be reported; If "IF EXISTS" is specified and the stream does not exist, success is returned; If the stream exists, paused all stream tasks. + +2.resume stream +RESUME STREAM [IF EXISTS] [IGNORE UNTREATED] stream_name; +If "IF EXISTS" is not specified and the stream does not exist, an error will be reported. If "IF EXISTS" is specified and the stream does not exist, success is returned; If the stream exists, all of the stream tasks will be resumed. If "IGNORE UntREATED" is specified, data written during the pause period of stream is ignored when resuming stream. From 4a9391929cd7084acf5427f1ad4eccb48fb25b7e Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Thu, 17 Aug 2023 14:59:17 +0800 Subject: [PATCH 20/21] fix: select tags - ctb cursor pause/unlock and lock/resume --- include/libs/executor/storageapi.h | 6 +- source/dnode/vnode/src/inc/vnodeInt.h | 4 +- source/dnode/vnode/src/meta/metaQuery.c | 81 ++++++++++++++++------- source/dnode/vnode/src/vnd/vnodeInitApi.c | 2 + source/dnode/vnode/src/vnd/vnodeQuery.c | 6 +- source/libs/executor/src/scanoperator.c | 17 ++++- 6 files changed, 85 insertions(+), 31 deletions(-) diff --git a/include/libs/executor/storageapi.h b/include/libs/executor/storageapi.h index 724d6638db..873b95b29f 100644 --- a/include/libs/executor/storageapi.h +++ b/include/libs/executor/storageapi.h @@ -106,6 +106,8 @@ typedef struct SMCtbCursor { void *pVal; int kLen; int vLen; + int8_t paused; + int lock; } SMCtbCursor; typedef struct SRowBuffPos { @@ -295,7 +297,9 @@ int32_t vnodeGetCtbIdListByFilter(void *pVnode, int64_t suid, SArray *list, bool int32_t vnodeGetStbIdList(void *pVnode, int64_t suid, SArray *list); */ SMCtbCursor* (*openCtbCursor)(void *pVnode, tb_uid_t uid, int lock); - void (*closeCtbCursor)(SMCtbCursor *pCtbCur, int lock); + int32_t (*resumeCtbCursor)(SMCtbCursor* pCtbCur, int8_t first); + void (*pauseCtbCursor)(SMCtbCursor* pCtbCur); + void (*closeCtbCursor)(SMCtbCursor *pCtbCur); tb_uid_t (*ctbCursorNext)(SMCtbCursor* pCur); } SStoreMeta; diff --git a/source/dnode/vnode/src/inc/vnodeInt.h b/source/dnode/vnode/src/inc/vnodeInt.h index e3b2d3e41e..4f6a5bb765 100644 --- a/source/dnode/vnode/src/inc/vnodeInt.h +++ b/source/dnode/vnode/src/inc/vnodeInt.h @@ -168,7 +168,9 @@ int metaDropIndexFromSTable(SMeta* pMeta, int64_t version, SDropIndexReq* pReq); int64_t metaGetTimeSeriesNum(SMeta* pMeta); SMCtbCursor* metaOpenCtbCursor(void* pVnode, tb_uid_t uid, int lock); -void metaCloseCtbCursor(SMCtbCursor* pCtbCur, int lock); +int32_t metaResumeCtbCursor(SMCtbCursor* pCtbCur, int8_t first); +void metaPauseCtbCursor(SMCtbCursor* pCtbCur); +void metaCloseCtbCursor(SMCtbCursor* pCtbCur); tb_uid_t metaCtbCursorNext(SMCtbCursor* pCtbCur); SMStbCursor* metaOpenStbCursor(SMeta* pMeta, tb_uid_t uid); void metaCloseStbCursor(SMStbCursor* pStbCur); diff --git a/source/dnode/vnode/src/meta/metaQuery.c b/source/dnode/vnode/src/meta/metaQuery.c index 0dea0f346d..a46186c92e 100644 --- a/source/dnode/vnode/src/meta/metaQuery.c +++ b/source/dnode/vnode/src/meta/metaQuery.c @@ -423,40 +423,75 @@ SMCtbCursor *metaOpenCtbCursor(void* pVnode, tb_uid_t uid, int lock) { pCtbCur->pMeta = pMeta; pCtbCur->suid = uid; - if (lock) { - metaRLock(pMeta); - } + pCtbCur->lock = lock; + pCtbCur->paused = 1; - ret = tdbTbcOpen(pMeta->pCtbIdx, (TBC**)&pCtbCur->pCur, NULL); + ret = metaResumeCtbCursor(pCtbCur, 1); if (ret < 0) { - metaULock(pMeta); - taosMemoryFree(pCtbCur); return NULL; } - - // move to the suid - ctbIdxKey.suid = uid; - ctbIdxKey.uid = INT64_MIN; - tdbTbcMoveTo(pCtbCur->pCur, &ctbIdxKey, sizeof(ctbIdxKey), &c); - if (c > 0) { - tdbTbcMoveToNext(pCtbCur->pCur); - } - return pCtbCur; } -void metaCloseCtbCursor(SMCtbCursor *pCtbCur, int lock) { +void metaCloseCtbCursor(SMCtbCursor *pCtbCur) { if (pCtbCur) { - if (pCtbCur->pMeta && lock) metaULock(pCtbCur->pMeta); - if (pCtbCur->pCur) { - tdbTbcClose(pCtbCur->pCur); + if (!pCtbCur->paused) { + if (pCtbCur->pMeta && pCtbCur->lock) metaULock(pCtbCur->pMeta); + if (pCtbCur->pCur) { + tdbTbcClose(pCtbCur->pCur); + } + } + tdbFree(pCtbCur->pKey); + tdbFree(pCtbCur->pVal); + } + taosMemoryFree(pCtbCur); +} - tdbFree(pCtbCur->pKey); - tdbFree(pCtbCur->pVal); +void metaPauseCtbCursor(SMCtbCursor* pCtbCur) { + if (!pCtbCur->paused) { + tdbTbcClose((TBC*)pCtbCur->pCur); + if (pCtbCur->lock) { + metaULock(pCtbCur->pMeta); + } + pCtbCur->paused = 1; + } +} + +int32_t metaResumeCtbCursor(SMCtbCursor* pCtbCur, int8_t first) { + if (pCtbCur->paused) { + pCtbCur->paused = 0; + + if (pCtbCur->lock) { + metaRLock(pCtbCur->pMeta); + } + int ret = 0; + ret = tdbTbcOpen(pCtbCur->pMeta->pCtbIdx, (TBC**)&pCtbCur->pCur, NULL); + if (ret < 0) { + metaCloseCtbCursor(pCtbCur); + return -1; } - taosMemoryFree(pCtbCur); + if (first) { + SCtbIdxKey ctbIdxKey; + // move to the suid + ctbIdxKey.suid = pCtbCur->suid; + ctbIdxKey.uid = INT64_MIN; + int c = 0; + tdbTbcMoveTo(pCtbCur->pCur, &ctbIdxKey, sizeof(ctbIdxKey), &c); + if (c > 0) { + tdbTbcMoveToNext(pCtbCur->pCur); + } + } else { + int c = 0; + ret = tdbTbcMoveTo(pCtbCur->pCur, pCtbCur->pKey, pCtbCur->kLen, &c); + if (c < 0) { + tdbTbcMoveToPrev(pCtbCur->pCur); + } else { + tdbTbcMoveToNext(pCtbCur->pCur); + } + } } + return 0; } tb_uid_t metaCtbCursorNext(SMCtbCursor *pCtbCur) { @@ -1414,7 +1449,7 @@ int32_t metaGetTableTags(void *pVnode, uint64_t suid, SArray *pUidTagInfo) { } taosHashCleanup(pSepecifiedUidMap); - metaCloseCtbCursor(pCur, 1); + metaCloseCtbCursor(pCur); return TSDB_CODE_SUCCESS; } diff --git a/source/dnode/vnode/src/vnd/vnodeInitApi.c b/source/dnode/vnode/src/vnd/vnodeInitApi.c index dca8dd271c..c72ecd4824 100644 --- a/source/dnode/vnode/src/vnd/vnodeInitApi.c +++ b/source/dnode/vnode/src/vnd/vnodeInitApi.c @@ -98,6 +98,8 @@ void initMetadataAPI(SStoreMeta* pMeta) { pMeta->metaPutTbGroupToCache = metaPutTbGroupToCache; pMeta->openCtbCursor = metaOpenCtbCursor; + pMeta->resumeCtbCursor = metaResumeCtbCursor; + pMeta->pauseCtbCursor = metaPauseCtbCursor; pMeta->closeCtbCursor = metaCloseCtbCursor; pMeta->ctbCursorNext = metaCtbCursorNext; } diff --git a/source/dnode/vnode/src/vnd/vnodeQuery.c b/source/dnode/vnode/src/vnd/vnodeQuery.c index 48f8ec021d..a40accf4fe 100644 --- a/source/dnode/vnode/src/vnd/vnodeQuery.c +++ b/source/dnode/vnode/src/vnd/vnodeQuery.c @@ -452,7 +452,7 @@ int32_t vnodeGetAllTableList(SVnode *pVnode, uint64_t uid, SArray *list) { taosArrayPush(list, &info); } - metaCloseCtbCursor(pCur, 1); + metaCloseCtbCursor(pCur); return TSDB_CODE_SUCCESS; } @@ -473,7 +473,7 @@ int32_t vnodeGetCtbIdList(void *pVnode, int64_t suid, SArray *list) { taosArrayPush(list, &id); } - metaCloseCtbCursor(pCur, 1); + metaCloseCtbCursor(pCur); return TSDB_CODE_SUCCESS; } @@ -536,7 +536,7 @@ int32_t vnodeGetCtbNum(SVnode *pVnode, int64_t suid, int64_t *num) { ++(*num); } - metaCloseCtbCursor(pCur, 0); + metaCloseCtbCursor(pCur); return TSDB_CODE_SUCCESS; } diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 184cb558fe..4caa604c3e 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -2863,12 +2863,14 @@ static SSDataBlock* doTagScanFromCtbIdx(SOperatorInfo* pOperator) { if (pInfo->pCtbCursor == NULL) { pInfo->pCtbCursor = pAPI->metaFn.openCtbCursor(pInfo->readHandle.vnode, pInfo->suid, 1); + } else { + pAPI->metaFn.resumeCtbCursor(pInfo->pCtbCursor, 0); } SArray* aUidTags = pInfo->aUidTags; SArray* aFilterIdxs = pInfo->aFilterIdxs; int32_t count = 0; - + bool ctbCursorFinished = false; while (1) { taosArrayClearEx(aUidTags, tagScanFreeUidTag); taosArrayClear(aFilterIdxs); @@ -2878,6 +2880,7 @@ static SSDataBlock* doTagScanFromCtbIdx(SOperatorInfo* pOperator) { SMCtbCursor* pCur = pInfo->pCtbCursor; tb_uid_t uid = pAPI->metaFn.ctbCursorNext(pInfo->pCtbCursor); if (uid == 0) { + ctbCursorFinished = true; break; } STUidTagInfo info = {.uid = uid, .pTagVal = pCur->pVal}; @@ -2906,7 +2909,15 @@ static SSDataBlock* doTagScanFromCtbIdx(SOperatorInfo* pOperator) { break; } } - + + if (count > 0) { + pAPI->metaFn.pauseCtbCursor(pInfo->pCtbCursor); + } + if (count == 0 || ctbCursorFinished) { + pAPI->metaFn.closeCtbCursor(pInfo->pCtbCursor); + pInfo->pCtbCursor = NULL; + setOperatorCompleted(pOperator); + } pRes->info.rows = count; pOperator->resultInfo.totalRows += count; return (pRes->info.rows == 0) ? NULL : pInfo->pRes; @@ -2971,7 +2982,7 @@ static SSDataBlock* doTagScanFromMetaEntry(SOperatorInfo* pOperator) { static void destroyTagScanOperatorInfo(void* param) { STagScanInfo* pInfo = (STagScanInfo*)param; if (pInfo->pCtbCursor != NULL) { - pInfo->pStorageAPI->metaFn.closeCtbCursor(pInfo->pCtbCursor, 1); + pInfo->pStorageAPI->metaFn.closeCtbCursor(pInfo->pCtbCursor); } taosHashCleanup(pInfo->filterCtx.colHash); taosArrayDestroy(pInfo->filterCtx.cInfoList); From 92524ca02910832b9eb5d85277ff1ce6ba15e70f Mon Sep 17 00:00:00 2001 From: slzhou Date: Thu, 17 Aug 2023 15:46:38 +0800 Subject: [PATCH 21/21] feature: select tags - add test case --- tests/script/tsim/query/tag_scan.sim | 82 ++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/tests/script/tsim/query/tag_scan.sim b/tests/script/tsim/query/tag_scan.sim index 03e3a20632..3a64cf1a1c 100644 --- a/tests/script/tsim/query/tag_scan.sim +++ b/tests/script/tsim/query/tag_scan.sim @@ -45,4 +45,86 @@ if $rows != 4 then return -1 endi +sql create table stt1(ts timestamp, f int) tags (t int, b varchar(10)); +sql insert into ctt11 using stt1 tags(1, '1aa') values(now, 1); +sql insert into ctt12 using stt1 tags(2, '1bb') values(now, 2); +sql insert into ctt13 using stt1 tags(3, '1cc') values(now, 3); +sql insert into ctt14 using stt1 tags(4, '1dd') values(now, 4); +sql insert into ctt14 values(now, 5); + +sql create table stt2(ts timestamp, f int) tags (t int, b varchar(10)); +sql insert into ctt21 using stt2 tags(1, '2aa') values(now, 1); +sql insert into ctt22 using stt2 tags(2, '2bb') values(now, 2); +sql insert into ctt23 using stt2 tags(3, '2cc') values(now, 3); +sql insert into ctt24 using stt2 tags(4, '2dd') values(now, 4); + +sql select tags t, b from stt1 order by t +print $rows +print $data00 $data01 $data10 $data11 $data20 $data21 $data30 $data31 +if $rows != 4 then + return -1 +endi +if $data31 != @1dd@ then + return -1 +endi + +sql select tags t, b from stt2 order by t +print $rows +print $data00 $data01 $data10 $data11 $data20 $data21 $data30 $data31 +if $rows != 4 then + return -1 +endi +if $data31 != @2dd@ then + return -1 +endi + +sql select tags t,b,f from stt1 order by t +print $rows +print $data00 $data01 $data02 $data10 $data11 $data12 $data20 $data21 $data22 $data30 $data31 $data32 $data40 $data41 $data42 +if $rows != 5 then + return -1 +endi +if $data42 != 5 then + return -1 +endi + +sql select tags tbname,t,b from stt1 order by t +print $rows +print $data00 $data01 $data02 $data10 $data11 $data12 $data20 $data21 $data22 $data30 $data31 $data32 +if $rows != 4 then + return -1 +endi +if $data30 != @ctt14@ then + return -1 +endi +if $data32 != @1dd@ then + return -1 +endi + +sql select tags t,b from stt1 where t=1 +print $rows +print $data00 $data01 +if $rows != 1 then + return -1 +endi +if $data00 != @1@ then + return -1 +endi +if $data01 != @1aa@ then + return -1 +endi + +sql select tags t,b from stt1 where tbname='ctt11' +print $rows +print $data00 $data01 +if $rows != 1 then + return -1 +endi +if $data00 != @1@ then + return -1 +endi +if $data01 != @1aa@ then + return -1 +endi + system sh/exec.sh -n dnode1 -s stop -x SIGINT