diff --git a/include/common/tmsg.h b/include/common/tmsg.h index a5aeda5b4c..0703dc6099 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -1754,6 +1754,7 @@ typedef struct { #define STREAM_FILL_HISTORY_ON 1 #define STREAM_FILL_HISTORY_OFF 0 #define STREAM_DEFAULT_FILL_HISTORY STREAM_FILL_HISTORY_OFF +#define STREAM_DEFAULT_IGNORE_UPDATE 0 typedef struct { char name[TSDB_STREAM_FNAME_LEN]; @@ -1771,6 +1772,7 @@ typedef struct { SArray* pTags; // array of SField // 3.0.20 int64_t checkpointFreq; // ms + int8_t igUpdate; } SCMCreateStreamReq; typedef struct { diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index c69926839c..1d69e129f4 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -16,330 +16,329 @@ #ifndef _TD_COMMON_TOKEN_H_ #define _TD_COMMON_TOKEN_H_ -#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_DNODE 48 -#define TK_PORT 49 -#define TK_DNODES 50 -#define TK_NK_IPTOKEN 51 -#define TK_FORCE 52 -#define TK_LOCAL 53 -#define TK_QNODE 54 -#define TK_BNODE 55 -#define TK_SNODE 56 -#define TK_MNODE 57 -#define TK_DATABASE 58 -#define TK_USE 59 -#define TK_FLUSH 60 -#define TK_TRIM 61 -#define TK_IF 62 -#define TK_NOT 63 -#define TK_EXISTS 64 -#define TK_BUFFER 65 -#define TK_CACHEMODEL 66 -#define TK_CACHESIZE 67 -#define TK_COMP 68 -#define TK_DURATION 69 -#define TK_NK_VARIABLE 70 -#define TK_MAXROWS 71 -#define TK_MINROWS 72 -#define TK_KEEP 73 -#define TK_PAGES 74 -#define TK_PAGESIZE 75 -#define TK_TSDB_PAGESIZE 76 -#define TK_PRECISION 77 -#define TK_REPLICA 78 -#define TK_VGROUPS 79 -#define TK_SINGLE_STABLE 80 -#define TK_RETENTIONS 81 -#define TK_SCHEMALESS 82 -#define TK_WAL_LEVEL 83 -#define TK_WAL_FSYNC_PERIOD 84 -#define TK_WAL_RETENTION_PERIOD 85 -#define TK_WAL_RETENTION_SIZE 86 -#define TK_WAL_ROLL_PERIOD 87 -#define TK_WAL_SEGMENT_SIZE 88 -#define TK_STT_TRIGGER 89 -#define TK_TABLE_PREFIX 90 -#define TK_TABLE_SUFFIX 91 -#define TK_NK_COLON 92 -#define TK_MAX_SPEED 93 -#define TK_TABLE 94 -#define TK_NK_LP 95 -#define TK_NK_RP 96 -#define TK_STABLE 97 -#define TK_ADD 98 -#define TK_COLUMN 99 -#define TK_MODIFY 100 -#define TK_RENAME 101 -#define TK_TAG 102 -#define TK_SET 103 -#define TK_NK_EQ 104 -#define TK_USING 105 -#define TK_TAGS 106 -#define TK_COMMENT 107 -#define TK_BOOL 108 -#define TK_TINYINT 109 -#define TK_SMALLINT 110 -#define TK_INT 111 -#define TK_INTEGER 112 -#define TK_BIGINT 113 -#define TK_FLOAT 114 -#define TK_DOUBLE 115 -#define TK_BINARY 116 -#define TK_TIMESTAMP 117 -#define TK_NCHAR 118 -#define TK_UNSIGNED 119 -#define TK_JSON 120 -#define TK_VARCHAR 121 -#define TK_MEDIUMBLOB 122 -#define TK_BLOB 123 -#define TK_VARBINARY 124 -#define TK_DECIMAL 125 -#define TK_MAX_DELAY 126 -#define TK_WATERMARK 127 -#define TK_ROLLUP 128 -#define TK_TTL 129 -#define TK_SMA 130 -#define TK_DELETE_MARK 131 -#define TK_FIRST 132 -#define TK_LAST 133 -#define TK_SHOW 134 -#define TK_PRIVILEGES 135 -#define TK_DATABASES 136 -#define TK_TABLES 137 -#define TK_STABLES 138 -#define TK_MNODES 139 -#define TK_QNODES 140 -#define TK_FUNCTIONS 141 -#define TK_INDEXES 142 -#define TK_ACCOUNTS 143 -#define TK_APPS 144 -#define TK_CONNECTIONS 145 -#define TK_LICENCES 146 -#define TK_GRANTS 147 -#define TK_QUERIES 148 -#define TK_SCORES 149 -#define TK_TOPICS 150 -#define TK_VARIABLES 151 -#define TK_CLUSTER 152 -#define TK_BNODES 153 -#define TK_SNODES 154 -#define TK_TRANSACTIONS 155 -#define TK_DISTRIBUTED 156 -#define TK_CONSUMERS 157 -#define TK_SUBSCRIPTIONS 158 -#define TK_VNODES 159 -#define TK_LIKE 160 -#define TK_TBNAME 161 -#define TK_QTAGS 162 -#define TK_AS 163 -#define TK_INDEX 164 -#define TK_FUNCTION 165 -#define TK_INTERVAL 166 -#define TK_TOPIC 167 -#define TK_WITH 168 -#define TK_META 169 -#define TK_CONSUMER 170 -#define TK_GROUP 171 -#define TK_DESC 172 -#define TK_DESCRIBE 173 -#define TK_RESET 174 -#define TK_QUERY 175 -#define TK_CACHE 176 -#define TK_EXPLAIN 177 -#define TK_ANALYZE 178 -#define TK_VERBOSE 179 -#define TK_NK_BOOL 180 -#define TK_RATIO 181 -#define TK_NK_FLOAT 182 -#define TK_OUTPUTTYPE 183 -#define TK_AGGREGATE 184 -#define TK_BUFSIZE 185 -#define TK_STREAM 186 -#define TK_INTO 187 -#define TK_TRIGGER 188 -#define TK_AT_ONCE 189 -#define TK_WINDOW_CLOSE 190 -#define TK_IGNORE 191 -#define TK_EXPIRED 192 -#define TK_FILL_HISTORY 193 -#define TK_SUBTABLE 194 -#define TK_KILL 195 -#define TK_CONNECTION 196 -#define TK_TRANSACTION 197 -#define TK_BALANCE 198 -#define TK_VGROUP 199 -#define TK_MERGE 200 -#define TK_REDISTRIBUTE 201 -#define TK_SPLIT 202 -#define TK_DELETE 203 -#define TK_INSERT 204 -#define TK_NULL 205 -#define TK_NK_QUESTION 206 -#define TK_NK_ARROW 207 -#define TK_ROWTS 208 -#define TK_QSTART 209 -#define TK_QEND 210 -#define TK_QDURATION 211 -#define TK_WSTART 212 -#define TK_WEND 213 -#define TK_WDURATION 214 -#define TK_IROWTS 215 -#define TK_CAST 216 -#define TK_NOW 217 -#define TK_TODAY 218 -#define TK_TIMEZONE 219 -#define TK_CLIENT_VERSION 220 -#define TK_SERVER_VERSION 221 -#define TK_SERVER_STATUS 222 -#define TK_CURRENT_USER 223 -#define TK_COUNT 224 -#define TK_LAST_ROW 225 -#define TK_CASE 226 -#define TK_END 227 -#define TK_WHEN 228 -#define TK_THEN 229 -#define TK_ELSE 230 -#define TK_BETWEEN 231 -#define TK_IS 232 -#define TK_NK_LT 233 -#define TK_NK_GT 234 -#define TK_NK_LE 235 -#define TK_NK_GE 236 -#define TK_NK_NE 237 -#define TK_MATCH 238 -#define TK_NMATCH 239 -#define TK_CONTAINS 240 -#define TK_IN 241 -#define TK_JOIN 242 -#define TK_INNER 243 -#define TK_SELECT 244 -#define TK_DISTINCT 245 -#define TK_WHERE 246 -#define TK_PARTITION 247 -#define TK_BY 248 -#define TK_SESSION 249 -#define TK_STATE_WINDOW 250 -#define TK_SLIDING 251 -#define TK_FILL 252 -#define TK_VALUE 253 -#define TK_VALUE_F 254 -#define TK_NONE 255 -#define TK_PREV 256 -#define TK_NULL_F 257 -#define TK_LINEAR 258 -#define TK_NEXT 259 -#define TK_HAVING 260 -#define TK_RANGE 261 -#define TK_EVERY 262 -#define TK_ORDER 263 -#define TK_SLIMIT 264 -#define TK_SOFFSET 265 -#define TK_LIMIT 266 -#define TK_OFFSET 267 -#define TK_ASC 268 -#define TK_NULLS 269 -#define TK_ABORT 270 -#define TK_AFTER 271 -#define TK_ATTACH 272 -#define TK_BEFORE 273 -#define TK_BEGIN 274 -#define TK_BITAND 275 -#define TK_BITNOT 276 -#define TK_BITOR 277 -#define TK_BLOCKS 278 -#define TK_CHANGE 279 -#define TK_COMMA 280 -#define TK_COMPACT 281 -#define TK_CONCAT 282 -#define TK_CONFLICT 283 -#define TK_COPY 284 -#define TK_DEFERRED 285 -#define TK_DELIMITERS 286 -#define TK_DETACH 287 -#define TK_DIVIDE 288 -#define TK_DOT 289 -#define TK_EACH 290 -#define TK_FAIL 291 -#define TK_FILE 292 -#define TK_FOR 293 -#define TK_GLOB 294 -#define TK_ID 295 -#define TK_IMMEDIATE 296 -#define TK_IMPORT 297 -#define TK_INITIALLY 298 -#define TK_INSTEAD 299 -#define TK_ISNULL 300 -#define TK_KEY 301 -#define TK_MODULES 302 -#define TK_NK_BITNOT 303 -#define TK_NK_SEMI 304 -#define TK_NOTNULL 305 -#define TK_OF 306 -#define TK_PLUS 307 -#define TK_PRIVILEGE 308 -#define TK_RAISE 309 -#define TK_REPLACE 310 -#define TK_RESTRICT 311 -#define TK_ROW 312 -#define TK_SEMI 313 -#define TK_STAR 314 -#define TK_STATEMENT 315 -#define TK_STRICT 316 -#define TK_STRING 317 -#define TK_TIMES 318 -#define TK_UPDATE 319 -#define TK_VALUES 320 -#define TK_VARIABLE 321 -#define TK_VIEW 322 -#define TK_WAL 323 - +#define TK_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_DNODE 48 +#define TK_PORT 49 +#define TK_DNODES 50 +#define TK_NK_IPTOKEN 51 +#define TK_FORCE 52 +#define TK_LOCAL 53 +#define TK_QNODE 54 +#define TK_BNODE 55 +#define TK_SNODE 56 +#define TK_MNODE 57 +#define TK_DATABASE 58 +#define TK_USE 59 +#define TK_FLUSH 60 +#define TK_TRIM 61 +#define TK_IF 62 +#define TK_NOT 63 +#define TK_EXISTS 64 +#define TK_BUFFER 65 +#define TK_CACHEMODEL 66 +#define TK_CACHESIZE 67 +#define TK_COMP 68 +#define TK_DURATION 69 +#define TK_NK_VARIABLE 70 +#define TK_MAXROWS 71 +#define TK_MINROWS 72 +#define TK_KEEP 73 +#define TK_PAGES 74 +#define TK_PAGESIZE 75 +#define TK_TSDB_PAGESIZE 76 +#define TK_PRECISION 77 +#define TK_REPLICA 78 +#define TK_VGROUPS 79 +#define TK_SINGLE_STABLE 80 +#define TK_RETENTIONS 81 +#define TK_SCHEMALESS 82 +#define TK_WAL_LEVEL 83 +#define TK_WAL_FSYNC_PERIOD 84 +#define TK_WAL_RETENTION_PERIOD 85 +#define TK_WAL_RETENTION_SIZE 86 +#define TK_WAL_ROLL_PERIOD 87 +#define TK_WAL_SEGMENT_SIZE 88 +#define TK_STT_TRIGGER 89 +#define TK_TABLE_PREFIX 90 +#define TK_TABLE_SUFFIX 91 +#define TK_NK_COLON 92 +#define TK_MAX_SPEED 93 +#define TK_TABLE 94 +#define TK_NK_LP 95 +#define TK_NK_RP 96 +#define TK_STABLE 97 +#define TK_ADD 98 +#define TK_COLUMN 99 +#define TK_MODIFY 100 +#define TK_RENAME 101 +#define TK_TAG 102 +#define TK_SET 103 +#define TK_NK_EQ 104 +#define TK_USING 105 +#define TK_TAGS 106 +#define TK_COMMENT 107 +#define TK_BOOL 108 +#define TK_TINYINT 109 +#define TK_SMALLINT 110 +#define TK_INT 111 +#define TK_INTEGER 112 +#define TK_BIGINT 113 +#define TK_FLOAT 114 +#define TK_DOUBLE 115 +#define TK_BINARY 116 +#define TK_TIMESTAMP 117 +#define TK_NCHAR 118 +#define TK_UNSIGNED 119 +#define TK_JSON 120 +#define TK_VARCHAR 121 +#define TK_MEDIUMBLOB 122 +#define TK_BLOB 123 +#define TK_VARBINARY 124 +#define TK_DECIMAL 125 +#define TK_MAX_DELAY 126 +#define TK_WATERMARK 127 +#define TK_ROLLUP 128 +#define TK_TTL 129 +#define TK_SMA 130 +#define TK_DELETE_MARK 131 +#define TK_FIRST 132 +#define TK_LAST 133 +#define TK_SHOW 134 +#define TK_PRIVILEGES 135 +#define TK_DATABASES 136 +#define TK_TABLES 137 +#define TK_STABLES 138 +#define TK_MNODES 139 +#define TK_QNODES 140 +#define TK_FUNCTIONS 141 +#define TK_INDEXES 142 +#define TK_ACCOUNTS 143 +#define TK_APPS 144 +#define TK_CONNECTIONS 145 +#define TK_LICENCES 146 +#define TK_GRANTS 147 +#define TK_QUERIES 148 +#define TK_SCORES 149 +#define TK_TOPICS 150 +#define TK_VARIABLES 151 +#define TK_CLUSTER 152 +#define TK_BNODES 153 +#define TK_SNODES 154 +#define TK_TRANSACTIONS 155 +#define TK_DISTRIBUTED 156 +#define TK_CONSUMERS 157 +#define TK_SUBSCRIPTIONS 158 +#define TK_VNODES 159 +#define TK_LIKE 160 +#define TK_TBNAME 161 +#define TK_QTAGS 162 +#define TK_AS 163 +#define TK_INDEX 164 +#define TK_FUNCTION 165 +#define TK_INTERVAL 166 +#define TK_TOPIC 167 +#define TK_WITH 168 +#define TK_META 169 +#define TK_CONSUMER 170 +#define TK_GROUP 171 +#define TK_DESC 172 +#define TK_DESCRIBE 173 +#define TK_RESET 174 +#define TK_QUERY 175 +#define TK_CACHE 176 +#define TK_EXPLAIN 177 +#define TK_ANALYZE 178 +#define TK_VERBOSE 179 +#define TK_NK_BOOL 180 +#define TK_RATIO 181 +#define TK_NK_FLOAT 182 +#define TK_OUTPUTTYPE 183 +#define TK_AGGREGATE 184 +#define TK_BUFSIZE 185 +#define TK_STREAM 186 +#define TK_INTO 187 +#define TK_TRIGGER 188 +#define TK_AT_ONCE 189 +#define TK_WINDOW_CLOSE 190 +#define TK_IGNORE 191 +#define TK_EXPIRED 192 +#define TK_FILL_HISTORY 193 +#define TK_UPDATE 194 +#define TK_SUBTABLE 195 +#define TK_KILL 196 +#define TK_CONNECTION 197 +#define TK_TRANSACTION 198 +#define TK_BALANCE 199 +#define TK_VGROUP 200 +#define TK_MERGE 201 +#define TK_REDISTRIBUTE 202 +#define TK_SPLIT 203 +#define TK_DELETE 204 +#define TK_INSERT 205 +#define TK_NULL 206 +#define TK_NK_QUESTION 207 +#define TK_NK_ARROW 208 +#define TK_ROWTS 209 +#define TK_QSTART 210 +#define TK_QEND 211 +#define TK_QDURATION 212 +#define TK_WSTART 213 +#define TK_WEND 214 +#define TK_WDURATION 215 +#define TK_IROWTS 216 +#define TK_CAST 217 +#define TK_NOW 218 +#define TK_TODAY 219 +#define TK_TIMEZONE 220 +#define TK_CLIENT_VERSION 221 +#define TK_SERVER_VERSION 222 +#define TK_SERVER_STATUS 223 +#define TK_CURRENT_USER 224 +#define TK_COUNT 225 +#define TK_LAST_ROW 226 +#define TK_CASE 227 +#define TK_END 228 +#define TK_WHEN 229 +#define TK_THEN 230 +#define TK_ELSE 231 +#define TK_BETWEEN 232 +#define TK_IS 233 +#define TK_NK_LT 234 +#define TK_NK_GT 235 +#define TK_NK_LE 236 +#define TK_NK_GE 237 +#define TK_NK_NE 238 +#define TK_MATCH 239 +#define TK_NMATCH 240 +#define TK_CONTAINS 241 +#define TK_IN 242 +#define TK_JOIN 243 +#define TK_INNER 244 +#define TK_SELECT 245 +#define TK_DISTINCT 246 +#define TK_WHERE 247 +#define TK_PARTITION 248 +#define TK_BY 249 +#define TK_SESSION 250 +#define TK_STATE_WINDOW 251 +#define TK_SLIDING 252 +#define TK_FILL 253 +#define TK_VALUE 254 +#define TK_VALUE_F 255 +#define TK_NONE 256 +#define TK_PREV 257 +#define TK_NULL_F 258 +#define TK_LINEAR 259 +#define TK_NEXT 260 +#define TK_HAVING 261 +#define TK_RANGE 262 +#define TK_EVERY 263 +#define TK_ORDER 264 +#define TK_SLIMIT 265 +#define TK_SOFFSET 266 +#define TK_LIMIT 267 +#define TK_OFFSET 268 +#define TK_ASC 269 +#define TK_NULLS 270 +#define TK_ABORT 271 +#define TK_AFTER 272 +#define TK_ATTACH 273 +#define TK_BEFORE 274 +#define TK_BEGIN 275 +#define TK_BITAND 276 +#define TK_BITNOT 277 +#define TK_BITOR 278 +#define TK_BLOCKS 279 +#define TK_CHANGE 280 +#define TK_COMMA 281 +#define TK_COMPACT 282 +#define TK_CONCAT 283 +#define TK_CONFLICT 284 +#define TK_COPY 285 +#define TK_DEFERRED 286 +#define TK_DELIMITERS 287 +#define TK_DETACH 288 +#define TK_DIVIDE 289 +#define TK_DOT 290 +#define TK_EACH 291 +#define TK_FAIL 292 +#define TK_FILE 293 +#define TK_FOR 294 +#define TK_GLOB 295 +#define TK_ID 296 +#define TK_IMMEDIATE 297 +#define TK_IMPORT 298 +#define TK_INITIALLY 299 +#define TK_INSTEAD 300 +#define TK_ISNULL 301 +#define TK_KEY 302 +#define TK_MODULES 303 +#define TK_NK_BITNOT 304 +#define TK_NK_SEMI 305 +#define TK_NOTNULL 306 +#define TK_OF 307 +#define TK_PLUS 308 +#define TK_PRIVILEGE 309 +#define TK_RAISE 310 +#define TK_REPLACE 311 +#define TK_RESTRICT 312 +#define TK_ROW 313 +#define TK_SEMI 314 +#define TK_STAR 315 +#define TK_STATEMENT 316 +#define TK_STRICT 317 +#define TK_STRING 318 +#define TK_TIMES 319 +#define TK_VALUES 320 +#define TK_VARIABLE 321 +#define TK_VIEW 322 +#define TK_WAL 323 #define TK_NK_SPACE 600 #define TK_NK_COMMENT 601 diff --git a/include/libs/nodes/cmdnodes.h b/include/libs/nodes/cmdnodes.h index b1054e7b85..de27806912 100644 --- a/include/libs/nodes/cmdnodes.h +++ b/include/libs/nodes/cmdnodes.h @@ -389,6 +389,7 @@ typedef struct SStreamOptions { SNode* pDeleteMark; int8_t fillHistory; int8_t ignoreExpired; + int8_t ignoreUpdate; } SStreamOptions; typedef struct SCreateStreamStmt { diff --git a/include/libs/nodes/plannodes.h b/include/libs/nodes/plannodes.h index d885665117..80fa0d3e78 100644 --- a/include/libs/nodes/plannodes.h +++ b/include/libs/nodes/plannodes.h @@ -93,6 +93,7 @@ typedef struct SScanLogicNode { int64_t watermark; int64_t deleteMark; int8_t igExpired; + int8_t igCheckUpdate; SArray* pSmaIndexes; SNodeList* pGroupTags; bool groupSort; @@ -217,6 +218,7 @@ typedef struct SWindowLogicNode { int64_t watermark; int64_t deleteMark; int8_t igExpired; + int8_t igCheckUpdate; EWindowAlgorithm windowAlgo; EOrder inputTsOrder; EOrder outputTsOrder; @@ -357,6 +359,7 @@ typedef struct STableScanPhysiNode { int64_t watermark; int8_t igExpired; bool assignBlockUid; + int8_t igCheckUpdate; } STableScanPhysiNode; typedef STableScanPhysiNode STableSeqScanPhysiNode; diff --git a/include/libs/planner/planner.h b/include/libs/planner/planner.h index f7bd68393e..41c0e98084 100644 --- a/include/libs/planner/planner.h +++ b/include/libs/planner/planner.h @@ -36,6 +36,7 @@ typedef struct SPlanContext { int64_t watermark; int64_t deleteMark; int8_t igExpired; + int8_t igCheckUpdate; char* pMsg; int32_t msgLen; const char* pUser; diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index 891f5e21ab..ec617163a2 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -5425,6 +5425,7 @@ int32_t tSerializeSCMCreateStreamReq(void *buf, int32_t bufLen, const SCMCreateS if (tEncodeI32(&encoder, pField->bytes) < 0) return -1; if (tEncodeCStr(&encoder, pField->name) < 0) return -1; } + if (tEncodeI8(&encoder, pReq->igUpdate) < 0) return -1; tEndEncode(&encoder); @@ -5486,6 +5487,8 @@ int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStrea } } + if (tDecodeI8(&decoder, &pReq->igUpdate) < 0) return -1; + tEndDecode(&decoder); tDecoderClear(&decoder); diff --git a/source/dnode/mnode/impl/inc/mndDef.h b/source/dnode/mnode/impl/inc/mndDef.h index 2f824b48b4..6f6f801c39 100644 --- a/source/dnode/mnode/impl/inc/mndDef.h +++ b/source/dnode/mnode/impl/inc/mndDef.h @@ -648,6 +648,7 @@ typedef struct { int64_t checkpointFreq; // ms int64_t currentTick; // do not serialize int64_t deleteMark; + int8_t igCheckUpdate; } SStreamObj; int32_t tEncodeSStreamObj(SEncoder* pEncoder, const SStreamObj* pObj); diff --git a/source/dnode/mnode/impl/src/mndDef.c b/source/dnode/mnode/impl/src/mndDef.c index a5f77513de..75177f4158 100644 --- a/source/dnode/mnode/impl/src/mndDef.c +++ b/source/dnode/mnode/impl/src/mndDef.c @@ -78,6 +78,7 @@ int32_t tEncodeSStreamObj(SEncoder *pEncoder, const SStreamObj *pObj) { // 3.0.20 if (tEncodeI64(pEncoder, pObj->checkpointFreq) < 0) return -1; + if (tEncodeI8(pEncoder, pObj->igCheckUpdate) < 0) return -1; tEndEncode(pEncoder); return pEncoder->pos; @@ -145,6 +146,7 @@ int32_t tDecodeSStreamObj(SDecoder *pDecoder, SStreamObj *pObj, int32_t sver) { // 3.0.20 if (sver >= 2) { if (tDecodeI64(pDecoder, &pObj->checkpointFreq) < 0) return -1; + if (tDecodeI8(pDecoder, &pObj->igCheckUpdate) < 0) return -1; } tEndDecode(pDecoder); return 0; @@ -489,7 +491,7 @@ int32_t tEncodeSubscribeObj(void **buf, const SMqSubscribeObj *pSub) { tlen += tEncodeSMqConsumerEp(buf, pConsumerEp); cnt++; } - if(cnt != sz) return -1; + if (cnt != sz) return -1; tlen += taosEncodeArray(buf, pSub->unassignedVgs, (FEncode)tEncodeSMqVgEp); tlen += taosEncodeString(buf, pSub->dbName); return tlen; diff --git a/source/dnode/mnode/impl/src/mndStream.c b/source/dnode/mnode/impl/src/mndStream.c index 8f6c7e19ed..61e9fc5366 100644 --- a/source/dnode/mnode/impl/src/mndStream.c +++ b/source/dnode/mnode/impl/src/mndStream.c @@ -297,6 +297,7 @@ static int32_t mndBuildStreamObjFromCreateReq(SMnode *pMnode, SStreamObj *pObj, pObj->triggerParam = pCreate->maxDelay; pObj->watermark = pCreate->watermark; pObj->fillHistory = pCreate->fillHistory; + pObj->igCheckUpdate = pCreate->igUpdate; memcpy(pObj->sourceDb, pCreate->sourceDB, TSDB_DB_FNAME_LEN); SDbObj *pSourceDb = mndAcquireDb(pMnode, pCreate->sourceDB); @@ -345,6 +346,7 @@ static int32_t mndBuildStreamObjFromCreateReq(SMnode *pMnode, SStreamObj *pObj, .triggerType = pObj->trigger == STREAM_TRIGGER_MAX_DELAY ? STREAM_TRIGGER_WINDOW_CLOSE : pObj->trigger, .watermark = pObj->watermark, .igExpired = pObj->igExpired, + .igCheckUpdate = pObj->igCheckUpdate, }; // using ast and param to build physical plan diff --git a/source/libs/executor/inc/executorimpl.h b/source/libs/executor/inc/executorimpl.h index 4ae178d508..999a7965fb 100644 --- a/source/libs/executor/inc/executorimpl.h +++ b/source/libs/executor/inc/executorimpl.h @@ -474,6 +474,8 @@ typedef struct SStreamScanInfo { int32_t blockRecoverContiCnt; int32_t blockRecoverTotCnt; + int8_t igCheckUpdate; + int8_t igExpired; } SStreamScanInfo; typedef struct { diff --git a/source/libs/executor/src/groupoperator.c b/source/libs/executor/src/groupoperator.c index 5febfbb2f3..9d88126220 100644 --- a/source/libs/executor/src/groupoperator.c +++ b/source/libs/executor/src/groupoperator.c @@ -1109,7 +1109,7 @@ void initParDownStream(SOperatorInfo* downstream, SPartitionBySupporter* pParSup SStreamScanInfo* pScanInfo = downstream->info; pScanInfo->partitionSup = *pParSup; pScanInfo->pPartScalarSup = pExpr; - if (!pScanInfo->pUpdateInfo) { + if (!pScanInfo->igCheckUpdate && !pScanInfo->pUpdateInfo) { pScanInfo->pUpdateInfo = updateInfoInit(60000, TSDB_TIME_PRECISION_MILLI, 0); } } diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 6d3eb67f16..f90cc6699b 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -1435,7 +1435,12 @@ static void checkUpdateData(SStreamScanInfo* pInfo, bool invertible, SSDataBlock dumyInfo.cur.pageId = -1; bool isClosed = false; STimeWindow win = {.skey = INT64_MIN, .ekey = INT64_MAX}; - if (tableInserted && isOverdue(tsCol[rowId], &pInfo->twAggSup)) { + bool overDue = isOverdue(tsCol[rowId], &pInfo->twAggSup); + if (pInfo->igExpired && overDue) { + continue; + } + + if (tableInserted && overDue) { win = getActiveTimeWindow(NULL, &dumyInfo, tsCol[rowId], &pInfo->interval, TSDB_ORDER_ASC); isClosed = isCloseWindow(&win, &pInfo->twAggSup); } @@ -1701,41 +1706,6 @@ static SSDataBlock* doStreamScan(SOperatorInfo* pOperator) { SStreamScanInfo* pInfo = pOperator->info; qDebug("stream scan called"); -#if 0 - SStreamState* pState = pTaskInfo->streamInfo.pState; - if (pState) { - printf(">>>>>>>> stream write backend\n"); - SWinKey key = { - .ts = 1, - .groupId = 2, - }; - char tmp[100] = "abcdefg1"; - if (streamStatePut(pState, &key, &tmp, strlen(tmp) + 1) < 0) { - ASSERT(0); - } - - key.ts = 2; - char tmp2[100] = "abcdefg2"; - if (streamStatePut(pState, &key, &tmp2, strlen(tmp2) + 1) < 0) { - ASSERT(0); - } - - key.groupId = 5; - key.ts = 1; - char tmp3[100] = "abcdefg3"; - if (streamStatePut(pState, &key, &tmp3, strlen(tmp3) + 1) < 0) { - ASSERT(0); - } - - char* val2 = NULL; - int32_t sz; - if (streamStateGet(pState, &key, (void**)&val2, &sz) < 0) { - ASSERT(0); - } - printf("stream read %s %d\n", val2, sz); - streamFreeVal(val2); - } -#endif if (pTaskInfo->streamInfo.recoverStep == STREAM_RECOVER_STEP__PREPARE1 || pTaskInfo->streamInfo.recoverStep == STREAM_RECOVER_STEP__PREPARE2) { @@ -2368,6 +2338,9 @@ SOperatorInfo* createStreamScanOperatorInfo(SReadHandle* pHandle, STableScanPhys pInfo->pUpdateDataRes = createSpecialDataBlock(STREAM_CLEAR); pInfo->assignBlockUid = pTableScanNode->assignBlockUid; pInfo->partitionSup.needCalc = false; + pInfo->igCheckUpdate = pTableScanNode->igCheckUpdate; + pInfo->igExpired = pTableScanNode->igExpired; + pInfo->twAggSup.maxTs = INT64_MIN; setOperatorInfo(pOperator, "StreamScanOperator", QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN, false, OP_NOT_OPENED, pInfo, pTaskInfo); diff --git a/source/libs/executor/src/timewindowoperator.c b/source/libs/executor/src/timewindowoperator.c index d320ef6e9e..0dbed103c8 100644 --- a/source/libs/executor/src/timewindowoperator.c +++ b/source/libs/executor/src/timewindowoperator.c @@ -1726,7 +1726,7 @@ void initIntervalDownStream(SOperatorInfo* downstream, uint16_t type, SAggSuppor SStreamScanInfo* pScanInfo = downstream->info; pScanInfo->windowSup.parentType = type; pScanInfo->windowSup.pIntervalAggSup = pSup; - if (!pScanInfo->pUpdateInfo) { + if (!pScanInfo->igCheckUpdate && !pScanInfo->pUpdateInfo) { pScanInfo->pUpdateInfo = updateInfoInitP(pInterval, pTwSup->waterMark); } pScanInfo->interval = *pInterval; @@ -2893,7 +2893,7 @@ void initDownStream(SOperatorInfo* downstream, SStreamAggSupporter* pAggSup, uin } SStreamScanInfo* pScanInfo = downstream->info; pScanInfo->windowSup = (SWindowSupporter){.pStreamAggSup = pAggSup, .gap = pAggSup->gap, .parentType = type}; - if (!pScanInfo->pUpdateInfo) { + if (!pScanInfo->igCheckUpdate && !pScanInfo->pUpdateInfo) { pScanInfo->pUpdateInfo = updateInfoInit(60000, TSDB_TIME_PRECISION_MILLI, pTwSup->waterMark); } pScanInfo->twAggSup = *pTwSup; diff --git a/source/libs/nodes/src/nodesCloneFuncs.c b/source/libs/nodes/src/nodesCloneFuncs.c index 7b9c54ab2c..2b1819d5c0 100644 --- a/source/libs/nodes/src/nodesCloneFuncs.c +++ b/source/libs/nodes/src/nodesCloneFuncs.c @@ -380,6 +380,7 @@ static int32_t logicScanCopy(const SScanLogicNode* pSrc, SScanLogicNode* pDst) { COPY_SCALAR_FIELD(watermark); COPY_SCALAR_FIELD(deleteMark); COPY_SCALAR_FIELD(igExpired); + COPY_SCALAR_FIELD(igCheckUpdate); CLONE_NODE_LIST_FIELD(pGroupTags); COPY_SCALAR_FIELD(groupSort); CLONE_NODE_LIST_FIELD(pTags); @@ -467,6 +468,7 @@ static int32_t logicWindowCopy(const SWindowLogicNode* pSrc, SWindowLogicNode* p COPY_SCALAR_FIELD(watermark); COPY_SCALAR_FIELD(deleteMark); COPY_SCALAR_FIELD(igExpired); + COPY_SCALAR_FIELD(igCheckUpdate); COPY_SCALAR_FIELD(windowAlgo); COPY_SCALAR_FIELD(inputTsOrder); COPY_SCALAR_FIELD(outputTsOrder); diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index 1a4ba8e43e..c19f64bb3a 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -1553,6 +1553,7 @@ static const char* jkTableScanPhysiPlanGroupSort = "GroupSort"; static const char* jkTableScanPhysiPlanTags = "Tags"; static const char* jkTableScanPhysiPlanSubtable = "Subtable"; static const char* jkTableScanPhysiPlanAssignBlockUid = "AssignBlockUid"; +static const char* jkTableScanPhysiPlanIgnoreUpdate = "IgnoreUpdate"; static int32_t physiTableScanNodeToJson(const void* pObj, SJson* pJson) { const STableScanPhysiNode* pNode = (const STableScanPhysiNode*)pObj; @@ -1618,6 +1619,9 @@ static int32_t physiTableScanNodeToJson(const void* pObj, SJson* pJson) { if (TSDB_CODE_SUCCESS == code) { code = tjsonAddBoolToObject(pJson, jkTableScanPhysiPlanAssignBlockUid, pNode->assignBlockUid); } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonAddIntegerToObject(pJson, jkTableScanPhysiPlanIgnoreUpdate, pNode->igCheckUpdate); + } return code; } @@ -1686,6 +1690,9 @@ static int32_t jsonToPhysiTableScanNode(const SJson* pJson, void* pObj) { if (TSDB_CODE_SUCCESS == code) { code = tjsonGetBoolValue(pJson, jkTableScanPhysiPlanAssignBlockUid, &pNode->assignBlockUid); } + if (TSDB_CODE_SUCCESS == code) { + code = tjsonGetTinyIntValue(pJson, jkTableScanPhysiPlanIgnoreUpdate, &pNode->igCheckUpdate); + } return code; } diff --git a/source/libs/nodes/src/nodesMsgFuncs.c b/source/libs/nodes/src/nodesMsgFuncs.c index dfe2f6c8b9..274cac405d 100644 --- a/source/libs/nodes/src/nodesMsgFuncs.c +++ b/source/libs/nodes/src/nodesMsgFuncs.c @@ -2078,6 +2078,9 @@ static int32_t physiTableScanNodeInlineToMsg(const void* pObj, STlvEncoder* pEnc if (TSDB_CODE_SUCCESS == code) { code = tlvEncodeValueBool(pEncoder, pNode->assignBlockUid); } + if (TSDB_CODE_SUCCESS == code) { + code = tlvEncodeValueI8(pEncoder, pNode->igCheckUpdate); + } return code; } @@ -2154,6 +2157,9 @@ static int32_t msgToPhysiTableScanNodeInline(STlvDecoder* pDecoder, void* pObj) if (TSDB_CODE_SUCCESS == code) { code = tlvDecodeValueBool(pDecoder, &pNode->assignBlockUid); } + if (TSDB_CODE_SUCCESS == code) { + code = tlvDecodeValueI8(pDecoder, &pNode->igCheckUpdate); + } return code; } diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index cce7c99c9c..44a8f7e89f 100644 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -544,6 +544,7 @@ stream_options(A) ::= stream_options(B) TRIGGER MAX_DELAY duration_literal(C). stream_options(A) ::= stream_options(B) WATERMARK duration_literal(C). { ((SStreamOptions*)B)->pWatermark = releaseRawExprNode(pCxt, C); A = B; } stream_options(A) ::= stream_options(B) IGNORE EXPIRED NK_INTEGER(C). { ((SStreamOptions*)B)->ignoreExpired = taosStr2Int8(C.z, NULL, 10); A = B; } stream_options(A) ::= stream_options(B) FILL_HISTORY NK_INTEGER(C). { ((SStreamOptions*)B)->fillHistory = taosStr2Int8(C.z, NULL, 10); A = B; } +stream_options(A) ::= stream_options(B) IGNORE UPDATE NK_INTEGER(C). { ((SStreamOptions*)B)->ignoreUpdate = taosStr2Int8(C.z, NULL, 10); A = B; } subtable_opt(A) ::= . { A = NULL; } subtable_opt(A) ::= SUBTABLE NK_LP expression(B) NK_RP. { A = releaseRawExprNode(pCxt, B); } @@ -1077,4 +1078,4 @@ null_ordering_opt(A) ::= NULLS LAST. %fallback ABORT AFTER ATTACH BEFORE BEGIN BITAND BITNOT BITOR BLOCKS CHANGE COMMA COMPACT CONCAT CONFLICT COPY DEFERRED DELIMITERS DETACH DIVIDE DOT EACH END FAIL FILE FOR GLOB ID IMMEDIATE IMPORT INITIALLY INSTEAD ISNULL KEY MODULES NK_BITNOT NK_SEMI NOTNULL OF PLUS PRIVILEGE RAISE REPLACE RESTRICT ROW SEMI STAR STATEMENT - STRICT STRING TIMES UPDATE VALUES VARIABLE VIEW WAL. + STRICT STRING TIMES VALUES VARIABLE VIEW WAL. diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index eaa72b1377..d1f861a5fc 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -1763,6 +1763,7 @@ SNode* createStreamOptions(SAstCreateContext* pCxt) { pOptions->triggerType = STREAM_TRIGGER_AT_ONCE; pOptions->fillHistory = STREAM_DEFAULT_FILL_HISTORY; pOptions->ignoreExpired = STREAM_DEFAULT_IGNORE_EXPIRED; + pOptions->ignoreUpdate = STREAM_DEFAULT_IGNORE_UPDATE; return (SNode*)pOptions; } diff --git a/source/libs/parser/src/parTokenizer.c b/source/libs/parser/src/parTokenizer.c index b20810678c..b248efee59 100644 --- a/source/libs/parser/src/parTokenizer.c +++ b/source/libs/parser/src/parTokenizer.c @@ -233,6 +233,7 @@ static SKeyword keywordTable[] = { {"TTL", TK_TTL}, {"UNION", TK_UNION}, {"UNSIGNED", TK_UNSIGNED}, + {"UPDATE", TK_UPDATE}, {"USE", TK_USE}, {"USER", TK_USER}, {"USERS", TK_USERS}, diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index cb84d38370..2c99e50ff3 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -5741,6 +5741,7 @@ static int32_t buildCreateStreamReq(STranslateContext* pCxt, SCreateStreamStmt* pReq->watermark = (NULL != pStmt->pOptions->pWatermark ? ((SValueNode*)pStmt->pOptions->pWatermark)->datum.i : 0); pReq->fillHistory = pStmt->pOptions->fillHistory; pReq->igExpired = pStmt->pOptions->ignoreExpired; + pReq->igUpdate = pStmt->pOptions->ignoreUpdate; columnDefNodeToField(pStmt->pTags, &pReq->pTags); pReq->numOfTags = LIST_LENGTH(pStmt->pTags); } diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index 56db5a3955..9cd3a3c65c 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -139,18 +139,17 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 714 -#define YYNRULE 543 -#define YYNRULE_WITH_ACTION 543 +#define YYNSTATE 715 +#define YYNRULE 544 #define YYNTOKEN 324 -#define YY_MAX_SHIFT 713 -#define YY_MIN_SHIFTREDUCE 1059 -#define YY_MAX_SHIFTREDUCE 1601 -#define YY_ERROR_ACTION 1602 -#define YY_ACCEPT_ACTION 1603 -#define YY_NO_ACTION 1604 -#define YY_MIN_REDUCE 1605 -#define YY_MAX_REDUCE 2147 +#define YY_MAX_SHIFT 714 +#define YY_MIN_SHIFTREDUCE 1061 +#define YY_MAX_SHIFTREDUCE 1604 +#define YY_ERROR_ACTION 1605 +#define YY_ACCEPT_ACTION 1606 +#define YY_NO_ACTION 1607 +#define YY_MIN_REDUCE 1608 +#define YY_MAX_REDUCE 2151 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -217,754 +216,744 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2622) +#define YY_ACTTAB_COUNT (2733) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 461, 355, 462, 1641, 569, 603, 581, 2123, 2118, 156, - /* 10 */ 1947, 2118, 43, 41, 1530, 33, 276, 1747, 1760, 124, - /* 20 */ 363, 1943, 1380, 568, 174, 602, 500, 2122, 2119, 570, - /* 30 */ 1961, 2119, 2121, 1460, 1405, 1378, 1758, 132, 470, 408, - /* 40 */ 462, 1641, 36, 35, 1947, 589, 42, 40, 39, 38, - /* 50 */ 37, 1939, 1945, 345, 543, 1943, 168, 581, 1455, 467, - /* 60 */ 588, 1979, 613, 16, 368, 463, 1811, 1804, 1806, 584, - /* 70 */ 1386, 602, 1406, 331, 1929, 159, 619, 334, 1858, 320, - /* 80 */ 1712, 1979, 1809, 43, 41, 1939, 1945, 346, 132, 563, - /* 90 */ 479, 363, 477, 1380, 1867, 12, 613, 327, 173, 2056, - /* 100 */ 2057, 1960, 130, 2061, 1460, 1995, 1378, 1407, 101, 1962, - /* 110 */ 623, 1964, 1965, 618, 603, 613, 1111, 710, 1110, 564, - /* 120 */ 171, 460, 2048, 602, 465, 1647, 357, 2044, 124, 1455, - /* 130 */ 562, 211, 1462, 1463, 16, 505, 1805, 1806, 1489, 569, - /* 140 */ 176, 1386, 158, 2118, 1617, 1758, 46, 1112, 2074, 256, - /* 150 */ 2056, 580, 581, 125, 579, 1628, 1961, 2118, 568, 174, - /* 160 */ 603, 1436, 1445, 2119, 570, 581, 12, 42, 40, 39, - /* 170 */ 38, 37, 568, 174, 52, 1314, 1315, 2119, 570, 98, - /* 180 */ 1381, 589, 1379, 132, 1261, 1262, 469, 1979, 710, 465, - /* 190 */ 1647, 1758, 1736, 133, 1490, 617, 132, 1406, 46, 1929, - /* 200 */ 1929, 1750, 619, 1462, 1463, 1384, 1385, 63, 1435, 1438, - /* 210 */ 1439, 1440, 1441, 1442, 1443, 1444, 615, 611, 1453, 1454, - /* 220 */ 1456, 1457, 1458, 1459, 1461, 1464, 2, 1960, 598, 1405, - /* 230 */ 1867, 1995, 1436, 1445, 312, 1962, 623, 1964, 1965, 618, - /* 240 */ 616, 613, 604, 2013, 175, 2056, 2057, 1408, 130, 2061, - /* 250 */ 258, 1381, 2063, 1379, 479, 657, 583, 172, 2056, 2057, - /* 260 */ 559, 130, 2061, 1557, 59, 32, 361, 1484, 1485, 1486, - /* 270 */ 1487, 1488, 1492, 1493, 1494, 1495, 1384, 1385, 2060, 1435, - /* 280 */ 1438, 1439, 1440, 1441, 1442, 1443, 1444, 615, 611, 1453, - /* 290 */ 1454, 1456, 1457, 1458, 1459, 1461, 1464, 2, 59, 9, - /* 300 */ 43, 41, 1674, 228, 59, 1603, 1788, 590, 363, 1627, - /* 310 */ 1380, 556, 555, 1555, 1556, 1558, 1559, 1560, 1961, 354, - /* 320 */ 59, 1460, 1871, 1378, 1218, 645, 644, 643, 1222, 642, - /* 330 */ 1224, 1225, 641, 1227, 638, 2123, 1233, 635, 1235, 1236, - /* 340 */ 632, 629, 81, 565, 560, 259, 1455, 177, 401, 1979, - /* 350 */ 400, 16, 1407, 1929, 267, 268, 128, 620, 1386, 266, - /* 360 */ 1178, 170, 1929, 1626, 619, 1753, 397, 515, 514, 513, - /* 370 */ 378, 43, 41, 1465, 1798, 129, 509, 402, 1734, 363, - /* 380 */ 508, 1380, 59, 12, 86, 507, 512, 399, 395, 1960, - /* 390 */ 183, 506, 1460, 1995, 1378, 1180, 101, 1962, 623, 1964, - /* 400 */ 1965, 618, 1961, 613, 603, 710, 135, 1929, 142, 2019, - /* 410 */ 2048, 529, 548, 177, 357, 2044, 2118, 1455, 179, 548, - /* 420 */ 1462, 1463, 68, 2118, 527, 1111, 525, 1110, 1591, 1386, - /* 430 */ 1405, 2124, 174, 1979, 1606, 1758, 2119, 570, 2124, 174, - /* 440 */ 657, 620, 1625, 2119, 570, 1624, 1929, 177, 619, 1436, - /* 450 */ 1445, 11, 10, 177, 44, 114, 1112, 603, 113, 112, - /* 460 */ 111, 110, 109, 108, 107, 106, 105, 81, 1381, 177, - /* 470 */ 1379, 406, 76, 1960, 511, 510, 710, 1995, 681, 679, - /* 480 */ 161, 1962, 623, 1964, 1965, 618, 1929, 613, 1758, 1929, - /* 490 */ 1754, 1462, 1463, 1384, 1385, 258, 1435, 1438, 1439, 1440, - /* 500 */ 1441, 1442, 1443, 1444, 615, 611, 1453, 1454, 1456, 1457, - /* 510 */ 1458, 1459, 1461, 1464, 2, 1092, 515, 514, 513, 47, - /* 520 */ 1436, 1445, 603, 713, 129, 509, 1811, 186, 227, 508, - /* 530 */ 590, 177, 571, 2139, 507, 512, 407, 283, 1408, 1381, - /* 540 */ 506, 1379, 1810, 36, 35, 1872, 1503, 42, 40, 39, - /* 550 */ 38, 37, 167, 1758, 1094, 1408, 1097, 1098, 703, 699, - /* 560 */ 695, 691, 281, 78, 1384, 1385, 77, 1435, 1438, 1439, - /* 570 */ 1440, 1441, 1442, 1443, 1444, 615, 611, 1453, 1454, 1456, - /* 580 */ 1457, 1458, 1459, 1461, 1464, 2, 43, 41, 168, 603, - /* 590 */ 156, 1357, 1358, 444, 363, 1947, 1380, 1605, 99, 1761, - /* 600 */ 9, 274, 7, 416, 1961, 1623, 1943, 1460, 114, 1378, - /* 610 */ 1859, 113, 112, 111, 110, 109, 108, 107, 106, 105, - /* 620 */ 1758, 123, 122, 121, 120, 119, 118, 117, 116, 115, - /* 630 */ 1622, 92, 1455, 1621, 599, 1979, 1939, 1945, 358, 1811, - /* 640 */ 655, 1404, 1491, 584, 1386, 648, 356, 613, 1929, 1929, - /* 650 */ 619, 190, 189, 1751, 605, 1809, 2020, 43, 41, 147, - /* 660 */ 146, 652, 651, 650, 144, 363, 1961, 1380, 177, 44, - /* 670 */ 1534, 261, 587, 1620, 1929, 1960, 1405, 1929, 1460, 1995, - /* 680 */ 1378, 235, 101, 1962, 623, 1964, 1965, 618, 1351, 613, - /* 690 */ 230, 710, 1811, 2063, 171, 2063, 2048, 1979, 236, 367, - /* 700 */ 357, 2044, 607, 1455, 2020, 620, 1462, 1463, 1809, 226, - /* 710 */ 1929, 1619, 619, 30, 548, 1386, 576, 1929, 2118, 2059, - /* 720 */ 9, 2058, 2075, 1496, 36, 35, 1743, 1616, 42, 40, - /* 730 */ 39, 38, 37, 2124, 174, 1436, 1445, 1960, 2119, 570, - /* 740 */ 12, 1995, 366, 1386, 102, 1962, 623, 1964, 1965, 618, - /* 750 */ 156, 613, 1097, 1098, 1381, 1929, 1379, 145, 2048, 1760, - /* 760 */ 36, 35, 710, 2045, 42, 40, 39, 38, 37, 83, - /* 770 */ 322, 1929, 670, 533, 1728, 531, 1615, 1462, 1463, 1384, - /* 780 */ 1385, 669, 1435, 1438, 1439, 1440, 1441, 1442, 1443, 1444, - /* 790 */ 615, 611, 1453, 1454, 1456, 1457, 1458, 1459, 1461, 1464, - /* 800 */ 2, 319, 134, 1403, 2123, 2019, 1436, 1445, 2118, 51, - /* 810 */ 438, 649, 1568, 451, 1802, 1745, 450, 1437, 603, 212, - /* 820 */ 1929, 603, 369, 6, 2122, 1381, 1671, 1379, 2119, 2120, - /* 830 */ 156, 422, 430, 452, 163, 431, 424, 1614, 1527, 1760, - /* 840 */ 496, 492, 488, 484, 209, 39, 38, 37, 1546, 1758, - /* 850 */ 1384, 1385, 1758, 1435, 1438, 1439, 1440, 1441, 1442, 1443, - /* 860 */ 1444, 615, 611, 1453, 1454, 1456, 1457, 1458, 1459, 1461, - /* 870 */ 1464, 2, 2122, 1916, 1613, 1854, 1612, 335, 1470, 1854, - /* 880 */ 82, 1929, 1389, 207, 1405, 1854, 182, 1405, 1741, 412, - /* 890 */ 184, 687, 686, 685, 684, 373, 188, 683, 682, 136, - /* 900 */ 677, 676, 675, 674, 673, 672, 671, 149, 667, 666, - /* 910 */ 665, 372, 371, 662, 661, 660, 659, 658, 1929, 448, - /* 920 */ 1929, 385, 443, 442, 441, 440, 437, 436, 435, 434, - /* 930 */ 433, 429, 428, 427, 426, 336, 419, 418, 417, 577, - /* 940 */ 414, 413, 333, 157, 1611, 1610, 1609, 603, 296, 504, - /* 950 */ 206, 200, 376, 205, 1380, 1735, 475, 2068, 1523, 1661, - /* 960 */ 1961, 478, 294, 67, 1608, 603, 66, 1378, 520, 36, - /* 970 */ 35, 503, 198, 42, 40, 39, 38, 37, 1758, 1755, - /* 980 */ 1841, 516, 1749, 530, 194, 457, 455, 573, 1929, 1929, - /* 990 */ 1929, 1979, 409, 1943, 548, 603, 1758, 225, 2118, 620, - /* 1000 */ 653, 603, 1386, 1802, 1929, 410, 619, 654, 1929, 140, - /* 1010 */ 1802, 61, 523, 2124, 174, 544, 50, 517, 2119, 570, - /* 1020 */ 59, 547, 224, 1939, 1945, 1437, 1758, 1523, 1437, 1392, - /* 1030 */ 290, 1960, 1758, 1788, 613, 1995, 1948, 603, 101, 1962, - /* 1040 */ 623, 1964, 1965, 618, 48, 613, 3, 1943, 61, 710, - /* 1050 */ 2138, 585, 2048, 138, 231, 126, 357, 2044, 65, 100, - /* 1060 */ 603, 64, 655, 1554, 1961, 36, 35, 2082, 1758, 42, - /* 1070 */ 40, 39, 38, 37, 271, 603, 603, 1939, 1945, 1526, - /* 1080 */ 603, 147, 146, 652, 651, 650, 144, 1654, 613, 600, - /* 1090 */ 601, 1758, 614, 217, 277, 1979, 215, 75, 74, 405, - /* 1100 */ 1553, 25, 181, 620, 1388, 240, 1758, 1758, 1929, 518, - /* 1110 */ 619, 1758, 1381, 219, 1379, 221, 218, 647, 220, 1961, - /* 1120 */ 318, 610, 603, 393, 45, 391, 387, 383, 380, 377, - /* 1130 */ 1618, 425, 572, 1598, 234, 1960, 370, 1384, 1385, 1995, - /* 1140 */ 1652, 264, 101, 1962, 623, 1964, 1965, 618, 1713, 613, - /* 1150 */ 1979, 2088, 223, 1758, 2138, 222, 2048, 242, 620, 1950, - /* 1160 */ 357, 2044, 521, 1929, 1648, 619, 1600, 1601, 141, 177, - /* 1170 */ 143, 2112, 557, 84, 29, 210, 1327, 1140, 145, 1961, - /* 1180 */ 36, 35, 360, 359, 42, 40, 39, 38, 37, 253, - /* 1190 */ 1960, 247, 1394, 269, 1995, 11, 10, 101, 1962, 623, - /* 1200 */ 1964, 1965, 618, 1460, 613, 1387, 1980, 1952, 574, 2138, - /* 1210 */ 1979, 2048, 1141, 705, 97, 357, 2044, 374, 620, 1642, - /* 1220 */ 595, 1863, 273, 1929, 94, 619, 2067, 1799, 1455, 1597, - /* 1230 */ 1211, 31, 61, 45, 1961, 2078, 582, 36, 35, 45, - /* 1240 */ 1386, 42, 40, 39, 38, 37, 627, 143, 145, 127, - /* 1250 */ 1960, 1391, 143, 252, 1995, 1733, 255, 101, 1962, 623, - /* 1260 */ 1964, 1965, 618, 1481, 613, 1979, 663, 4, 1, 2023, - /* 1270 */ 379, 2048, 384, 620, 332, 357, 2044, 1344, 1929, 375, - /* 1280 */ 619, 187, 284, 411, 1497, 1446, 1408, 609, 1159, 36, - /* 1290 */ 35, 289, 1864, 42, 40, 39, 38, 37, 1239, 1243, - /* 1300 */ 1250, 1248, 536, 446, 148, 1960, 415, 420, 1403, 1995, - /* 1310 */ 432, 1856, 101, 1962, 623, 1964, 1965, 618, 439, 613, - /* 1320 */ 445, 548, 447, 453, 2021, 2118, 2048, 1961, 36, 35, - /* 1330 */ 357, 2044, 42, 40, 39, 38, 37, 1409, 664, 454, - /* 1340 */ 2124, 174, 191, 456, 548, 2119, 570, 458, 2118, 459, - /* 1350 */ 1395, 468, 1390, 1411, 197, 471, 472, 1410, 1979, 199, - /* 1360 */ 1157, 473, 655, 2124, 174, 1412, 620, 474, 2119, 570, - /* 1370 */ 202, 1929, 476, 619, 204, 1398, 1400, 480, 79, 80, - /* 1380 */ 208, 147, 146, 652, 651, 650, 144, 611, 1453, 1454, - /* 1390 */ 1456, 1457, 1458, 1459, 1114, 1961, 499, 497, 1960, 501, - /* 1400 */ 498, 1748, 1995, 214, 1744, 101, 1962, 623, 1964, 1965, - /* 1410 */ 618, 321, 613, 216, 150, 1906, 104, 606, 151, 2048, - /* 1420 */ 1905, 1746, 1742, 357, 2044, 1961, 1979, 535, 152, 153, - /* 1430 */ 229, 538, 537, 232, 620, 285, 545, 558, 542, 1929, - /* 1440 */ 2094, 619, 539, 593, 155, 552, 554, 2079, 246, 347, - /* 1450 */ 2093, 5, 553, 2089, 561, 1961, 1979, 567, 551, 238, - /* 1460 */ 164, 2070, 249, 241, 620, 550, 1960, 248, 250, 1929, - /* 1470 */ 1995, 619, 578, 102, 1962, 623, 1964, 1965, 618, 251, - /* 1480 */ 613, 348, 2117, 575, 2141, 254, 1979, 2048, 1523, 131, - /* 1490 */ 1407, 2047, 2044, 2064, 620, 586, 1960, 351, 260, 1929, - /* 1500 */ 1995, 619, 1413, 102, 1962, 623, 1964, 1965, 618, 1868, - /* 1510 */ 613, 1961, 591, 286, 596, 592, 1877, 2048, 1876, 1875, - /* 1520 */ 353, 608, 2044, 287, 1759, 89, 621, 1961, 288, 597, - /* 1530 */ 1995, 58, 91, 102, 1962, 623, 1964, 1965, 618, 2029, - /* 1540 */ 613, 93, 1979, 625, 1803, 291, 1729, 2048, 280, 706, - /* 1550 */ 620, 326, 2044, 707, 709, 1929, 323, 619, 1979, 339, - /* 1560 */ 49, 315, 324, 300, 1923, 314, 620, 304, 293, 295, - /* 1570 */ 1922, 1929, 72, 619, 1921, 1920, 73, 1917, 381, 382, - /* 1580 */ 1372, 1373, 1960, 180, 1915, 386, 1995, 388, 1961, 160, - /* 1590 */ 1962, 623, 1964, 1965, 618, 389, 613, 390, 1960, 1914, - /* 1600 */ 392, 1913, 1995, 394, 1961, 160, 1962, 623, 1964, 1965, - /* 1610 */ 618, 1912, 613, 396, 1911, 398, 1347, 1346, 1888, 1979, - /* 1620 */ 340, 1887, 338, 337, 403, 502, 404, 620, 1305, 504, - /* 1630 */ 549, 2085, 1929, 1886, 619, 1979, 1885, 1849, 1848, 1846, - /* 1640 */ 137, 1845, 1844, 620, 421, 185, 1837, 2086, 1929, 1847, - /* 1650 */ 619, 503, 1843, 1842, 1840, 1839, 1838, 423, 1836, 1960, - /* 1660 */ 1835, 1834, 1833, 1995, 1832, 1831, 306, 1962, 623, 1964, - /* 1670 */ 1965, 618, 1830, 613, 1829, 1960, 1828, 1827, 1961, 1995, - /* 1680 */ 1826, 1825, 161, 1962, 623, 1964, 1965, 618, 1824, 613, - /* 1690 */ 1823, 1822, 139, 1821, 1961, 1820, 1819, 1818, 1817, 1816, - /* 1700 */ 1307, 1815, 1814, 1813, 449, 1812, 1186, 1676, 1675, 1979, - /* 1710 */ 566, 1673, 1637, 169, 352, 192, 1636, 620, 70, 1901, - /* 1720 */ 1949, 193, 1929, 1100, 619, 1979, 195, 1099, 71, 464, - /* 1730 */ 466, 1895, 196, 617, 203, 2140, 1884, 1883, 1929, 201, - /* 1740 */ 619, 1866, 1737, 1672, 1670, 481, 1668, 1961, 1666, 1960, - /* 1750 */ 1133, 1664, 482, 1995, 483, 485, 313, 1962, 623, 1964, - /* 1760 */ 1965, 618, 486, 613, 487, 1960, 491, 1961, 489, 1995, - /* 1770 */ 490, 494, 312, 1962, 623, 1964, 1965, 618, 1979, 613, - /* 1780 */ 493, 2014, 1651, 362, 1650, 1633, 620, 1739, 495, 60, - /* 1790 */ 1255, 1929, 1254, 619, 1738, 1177, 213, 1176, 1979, 1175, - /* 1800 */ 1174, 678, 680, 364, 1171, 1169, 620, 1170, 1168, 1662, - /* 1810 */ 341, 1929, 1655, 619, 342, 1653, 519, 343, 1960, 1632, - /* 1820 */ 1961, 522, 1995, 1631, 524, 313, 1962, 623, 1964, 1965, - /* 1830 */ 618, 526, 613, 1630, 103, 528, 1961, 1362, 1960, 1361, - /* 1840 */ 532, 1900, 1995, 1364, 1894, 313, 1962, 623, 1964, 1965, - /* 1850 */ 618, 1979, 613, 1353, 24, 1882, 540, 1880, 154, 620, - /* 1860 */ 17, 2123, 26, 14, 1929, 56, 619, 1979, 57, 53, - /* 1870 */ 1570, 237, 244, 239, 1552, 620, 162, 245, 1950, 28, - /* 1880 */ 1929, 62, 619, 18, 541, 243, 546, 1545, 27, 233, - /* 1890 */ 19, 534, 344, 85, 1961, 1995, 1590, 1591, 308, 1962, - /* 1900 */ 623, 1964, 1965, 618, 1585, 613, 1584, 1960, 349, 1589, - /* 1910 */ 1961, 1995, 1588, 1520, 297, 1962, 623, 1964, 1965, 618, - /* 1920 */ 350, 613, 1519, 257, 55, 1979, 165, 1881, 1879, 1878, - /* 1930 */ 262, 20, 1865, 620, 263, 15, 1550, 265, 1929, 88, - /* 1940 */ 619, 1979, 270, 87, 90, 275, 594, 21, 94, 620, - /* 1950 */ 10, 1998, 1396, 166, 1929, 1961, 619, 1472, 1482, 1471, - /* 1960 */ 1450, 272, 612, 34, 8, 1960, 1448, 13, 54, 1995, - /* 1970 */ 22, 1961, 298, 1962, 623, 1964, 1965, 618, 1447, 613, - /* 1980 */ 178, 1960, 1420, 1428, 23, 1995, 1979, 624, 299, 1962, - /* 1990 */ 623, 1964, 1965, 618, 620, 613, 1217, 1240, 626, 1929, - /* 2000 */ 365, 619, 1979, 628, 630, 1237, 622, 631, 633, 1234, - /* 2010 */ 620, 634, 636, 1228, 637, 1929, 1226, 619, 639, 640, - /* 2020 */ 95, 1232, 646, 1231, 1230, 278, 1960, 1249, 1245, 1229, - /* 2030 */ 1995, 96, 69, 305, 1962, 623, 1964, 1965, 618, 1131, - /* 2040 */ 613, 656, 1960, 1165, 1164, 1961, 1995, 1163, 1162, 309, - /* 2050 */ 1962, 623, 1964, 1965, 618, 1161, 613, 1160, 1158, 1156, - /* 2060 */ 1155, 1961, 1154, 1184, 1152, 279, 1151, 1150, 668, 1149, - /* 2070 */ 1148, 1147, 1146, 1181, 1179, 1143, 1979, 1142, 1139, 1138, - /* 2080 */ 1137, 1136, 1669, 688, 620, 1667, 689, 692, 690, 1929, - /* 2090 */ 694, 619, 1979, 693, 1665, 696, 698, 1663, 697, 700, - /* 2100 */ 620, 701, 702, 1649, 704, 1929, 1961, 619, 1089, 1629, - /* 2110 */ 282, 1382, 708, 712, 292, 1604, 1960, 711, 1604, 1604, - /* 2120 */ 1995, 1604, 1604, 301, 1962, 623, 1964, 1965, 618, 1604, - /* 2130 */ 613, 1604, 1960, 1604, 1961, 1604, 1995, 1979, 1604, 310, - /* 2140 */ 1962, 623, 1964, 1965, 618, 620, 613, 1604, 1604, 1604, - /* 2150 */ 1929, 1604, 619, 1604, 1604, 1604, 1604, 1604, 1604, 1604, - /* 2160 */ 1604, 1604, 1604, 1604, 1961, 1979, 1604, 1604, 1604, 1604, - /* 2170 */ 1604, 1604, 1604, 620, 1604, 1604, 1604, 1960, 1929, 1604, - /* 2180 */ 619, 1995, 1604, 1604, 302, 1962, 623, 1964, 1965, 618, - /* 2190 */ 1604, 613, 1961, 1604, 1604, 1979, 1604, 1604, 1604, 1604, - /* 2200 */ 1604, 1604, 1604, 620, 1604, 1960, 1604, 1604, 1929, 1995, - /* 2210 */ 619, 1604, 311, 1962, 623, 1964, 1965, 618, 1604, 613, - /* 2220 */ 1604, 1604, 1961, 1979, 1604, 1604, 1604, 1604, 1604, 1604, - /* 2230 */ 1604, 620, 1604, 1604, 1604, 1960, 1929, 1604, 619, 1995, - /* 2240 */ 1604, 1604, 303, 1962, 623, 1964, 1965, 618, 1604, 613, - /* 2250 */ 1604, 1604, 1604, 1979, 1604, 1604, 1604, 1604, 1604, 1604, - /* 2260 */ 1604, 620, 1604, 1960, 1604, 1604, 1929, 1995, 619, 1604, - /* 2270 */ 316, 1962, 623, 1964, 1965, 618, 1604, 613, 1604, 1604, - /* 2280 */ 1604, 1604, 1961, 1604, 1604, 1604, 1604, 1604, 1604, 1604, - /* 2290 */ 1604, 1604, 1604, 1960, 1604, 1604, 1604, 1995, 1604, 1961, - /* 2300 */ 317, 1962, 623, 1964, 1965, 618, 1604, 613, 1604, 1604, - /* 2310 */ 1604, 1604, 1604, 1979, 1604, 1604, 1604, 1604, 1604, 1604, - /* 2320 */ 1604, 620, 1604, 1604, 1604, 1604, 1929, 1961, 619, 1604, - /* 2330 */ 1979, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 620, 1604, - /* 2340 */ 1604, 1604, 1604, 1929, 1604, 619, 1604, 1604, 1604, 1604, - /* 2350 */ 1604, 1604, 1604, 1960, 1604, 1604, 1604, 1995, 1979, 1604, - /* 2360 */ 1973, 1962, 623, 1964, 1965, 618, 620, 613, 1604, 1604, - /* 2370 */ 1960, 1929, 1604, 619, 1995, 1604, 1604, 1972, 1962, 623, - /* 2380 */ 1964, 1965, 618, 1604, 613, 1604, 1604, 1604, 1604, 1961, - /* 2390 */ 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1960, 1604, - /* 2400 */ 1604, 1604, 1995, 1604, 1604, 1971, 1962, 623, 1964, 1965, - /* 2410 */ 618, 1604, 613, 1604, 1604, 1604, 1604, 1961, 1604, 1604, - /* 2420 */ 1979, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 620, 1604, - /* 2430 */ 1604, 1604, 1604, 1929, 1961, 619, 1604, 1604, 1604, 1604, - /* 2440 */ 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1979, 1604, - /* 2450 */ 1604, 1604, 1604, 1604, 1604, 1604, 620, 1604, 1604, 1604, - /* 2460 */ 1960, 1929, 1961, 619, 1995, 1979, 1604, 328, 1962, 623, - /* 2470 */ 1964, 1965, 618, 620, 613, 1604, 1604, 1604, 1929, 1604, - /* 2480 */ 619, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1960, 1604, - /* 2490 */ 1604, 1604, 1995, 1979, 1604, 329, 1962, 623, 1964, 1965, - /* 2500 */ 618, 620, 613, 1604, 1604, 1960, 1929, 1604, 619, 1995, - /* 2510 */ 1604, 1604, 325, 1962, 623, 1964, 1965, 618, 1604, 613, - /* 2520 */ 1961, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, - /* 2530 */ 1604, 1604, 1604, 1960, 1604, 1604, 1961, 1995, 1604, 1604, - /* 2540 */ 330, 1962, 623, 1964, 1965, 618, 1604, 613, 1604, 1604, - /* 2550 */ 1604, 1979, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 620, - /* 2560 */ 1604, 1604, 1604, 1604, 1929, 1604, 619, 1979, 1604, 1604, - /* 2570 */ 1604, 1604, 1604, 1604, 1604, 620, 1604, 1604, 1604, 1604, - /* 2580 */ 1929, 1604, 619, 1604, 1604, 1604, 1604, 1604, 1604, 1604, - /* 2590 */ 1604, 621, 1604, 1604, 1604, 1995, 1604, 1604, 308, 1962, - /* 2600 */ 623, 1964, 1965, 618, 1604, 613, 1604, 1960, 1604, 1604, - /* 2610 */ 1604, 1995, 1604, 1604, 307, 1962, 623, 1964, 1965, 618, - /* 2620 */ 1604, 613, + /* 0 */ 462, 369, 463, 1644, 1807, 1809, 403, 1965, 1752, 33, + /* 10 */ 276, 170, 43, 41, 1533, 1631, 1750, 570, 168, 1947, + /* 20 */ 364, 2122, 1383, 1951, 1801, 42, 40, 39, 38, 37, + /* 30 */ 1965, 604, 1606, 1463, 1947, 1381, 569, 174, 1983, 334, + /* 40 */ 1861, 2123, 571, 1808, 1809, 52, 621, 590, 549, 1943, + /* 50 */ 1949, 1933, 2122, 620, 11, 10, 1408, 588, 1458, 1933, + /* 60 */ 614, 1983, 1761, 16, 1943, 1949, 346, 2128, 174, 585, + /* 70 */ 1389, 1409, 2123, 571, 1933, 614, 620, 461, 1964, 603, + /* 80 */ 466, 1650, 1999, 43, 41, 161, 1966, 624, 1968, 1969, + /* 90 */ 619, 364, 614, 1383, 478, 12, 1870, 379, 603, 549, + /* 100 */ 604, 1964, 159, 2122, 1463, 1999, 1381, 1715, 101, 1966, + /* 110 */ 624, 1968, 1969, 619, 124, 614, 259, 711, 2128, 174, + /* 120 */ 171, 501, 2052, 2123, 571, 228, 358, 2048, 1791, 1458, + /* 130 */ 603, 1761, 1465, 1466, 16, 97, 604, 572, 2143, 549, + /* 140 */ 176, 1389, 582, 2122, 471, 94, 463, 1644, 2078, 1506, + /* 150 */ 124, 157, 1180, 59, 46, 86, 296, 506, 2128, 174, + /* 160 */ 591, 1439, 1448, 2123, 571, 470, 12, 1761, 466, 1650, + /* 170 */ 294, 67, 355, 132, 66, 1874, 2067, 516, 515, 514, + /* 180 */ 1384, 1677, 1382, 1263, 1264, 129, 510, 1182, 711, 1952, + /* 190 */ 509, 356, 194, 458, 456, 508, 513, 1316, 1317, 156, + /* 200 */ 1947, 507, 2064, 1465, 1466, 46, 1387, 1388, 1763, 1438, + /* 210 */ 1441, 1442, 1443, 1444, 1445, 1446, 1447, 616, 612, 1456, + /* 220 */ 1457, 1459, 1460, 1461, 1462, 1464, 1467, 2, 59, 604, + /* 230 */ 1943, 1949, 1439, 1448, 256, 2060, 581, 589, 125, 580, + /* 240 */ 1410, 614, 2122, 179, 468, 1408, 516, 515, 514, 168, + /* 250 */ 464, 1384, 226, 1382, 129, 510, 50, 569, 174, 509, + /* 260 */ 1761, 548, 2123, 571, 508, 513, 480, 100, 36, 35, + /* 270 */ 507, 1862, 42, 40, 39, 38, 37, 1387, 1388, 377, + /* 280 */ 1438, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 616, 612, + /* 290 */ 1456, 1457, 1459, 1460, 1461, 1462, 1464, 1467, 2, 521, + /* 300 */ 9, 43, 41, 177, 177, 75, 74, 406, 92, 364, + /* 310 */ 181, 1383, 83, 322, 531, 1983, 344, 98, 532, 1965, + /* 320 */ 59, 549, 1463, 564, 1381, 2122, 1814, 145, 225, 318, + /* 330 */ 1754, 133, 394, 357, 392, 388, 384, 381, 378, 1753, + /* 340 */ 2128, 174, 1812, 524, 1951, 2123, 571, 1458, 518, 367, + /* 350 */ 1983, 63, 16, 224, 370, 1947, 1571, 156, 621, 1389, + /* 360 */ 2127, 658, 156, 1933, 563, 620, 1763, 39, 38, 37, + /* 370 */ 590, 1763, 43, 41, 1468, 565, 59, 1410, 177, 51, + /* 380 */ 364, 1965, 1383, 258, 12, 1943, 1949, 347, 59, 65, + /* 390 */ 1964, 81, 64, 1463, 1999, 1381, 614, 101, 1966, 624, + /* 400 */ 1968, 1969, 619, 9, 614, 128, 711, 135, 1494, 142, + /* 410 */ 2023, 2052, 1983, 1739, 1756, 358, 2048, 599, 1458, 1870, + /* 420 */ 621, 1465, 1466, 267, 268, 1933, 1094, 620, 266, 1737, + /* 430 */ 1389, 1220, 646, 645, 644, 1224, 643, 1226, 1227, 642, + /* 440 */ 1229, 639, 59, 1235, 636, 1237, 1238, 633, 630, 649, + /* 450 */ 1439, 1448, 1964, 1594, 1409, 44, 1999, 1608, 186, 102, + /* 460 */ 1966, 624, 1968, 1969, 619, 1096, 614, 1099, 1100, 1384, + /* 470 */ 177, 1382, 402, 2052, 401, 480, 1408, 711, 2049, 409, + /* 480 */ 30, 123, 122, 121, 120, 119, 118, 117, 116, 115, + /* 490 */ 1499, 658, 1465, 1466, 78, 1387, 1388, 77, 1438, 1441, + /* 500 */ 1442, 1443, 1444, 1445, 1446, 1447, 616, 612, 1456, 1457, + /* 510 */ 1459, 1460, 1461, 1462, 1464, 1467, 2, 512, 511, 320, + /* 520 */ 258, 1439, 1448, 1609, 114, 604, 177, 113, 112, 111, + /* 530 */ 110, 109, 108, 107, 106, 105, 81, 1407, 177, 407, + /* 540 */ 1384, 158, 1382, 1620, 114, 1389, 1630, 113, 112, 111, + /* 550 */ 110, 109, 108, 107, 106, 105, 1761, 36, 35, 1757, + /* 560 */ 1965, 42, 40, 39, 38, 37, 1387, 1388, 47, 1438, + /* 570 */ 1441, 1442, 1443, 1444, 1445, 1446, 1447, 616, 612, 1456, + /* 580 */ 1457, 1459, 1460, 1461, 1462, 1464, 1467, 2, 43, 41, + /* 590 */ 1933, 1983, 177, 25, 410, 445, 364, 591, 1383, 585, + /* 600 */ 339, 1113, 670, 1112, 1933, 560, 620, 411, 9, 1463, + /* 610 */ 7, 1381, 1875, 1814, 1814, 606, 211, 2024, 36, 35, + /* 620 */ 368, 331, 42, 40, 39, 38, 37, 6, 1629, 1812, + /* 630 */ 1812, 1964, 1114, 1951, 1458, 1999, 530, 582, 101, 1966, + /* 640 */ 624, 1968, 1969, 619, 1947, 614, 1389, 1560, 604, 528, + /* 650 */ 171, 526, 2052, 190, 189, 582, 358, 2048, 2067, 43, + /* 660 */ 41, 340, 408, 338, 337, 1746, 503, 364, 132, 1383, + /* 670 */ 505, 44, 1933, 327, 1943, 1949, 359, 1748, 2079, 1761, + /* 680 */ 1463, 398, 1381, 1411, 2063, 614, 132, 570, 1537, 566, + /* 690 */ 561, 2122, 504, 711, 1408, 557, 556, 1558, 1559, 1561, + /* 700 */ 1562, 1563, 544, 400, 396, 1458, 569, 174, 1465, 1466, + /* 710 */ 1628, 2123, 571, 227, 1492, 2127, 1627, 1389, 177, 2122, + /* 720 */ 36, 35, 604, 1744, 42, 40, 39, 38, 37, 173, + /* 730 */ 2060, 2061, 1411, 130, 2065, 2126, 417, 1439, 1448, 2123, + /* 740 */ 2125, 2127, 12, 2067, 1473, 2122, 584, 172, 2060, 2061, + /* 750 */ 1408, 130, 2065, 1761, 1933, 231, 1384, 608, 1382, 2024, + /* 760 */ 1933, 2126, 505, 1626, 711, 2123, 2124, 36, 35, 2062, + /* 770 */ 1493, 42, 40, 39, 38, 37, 1359, 1360, 134, 1465, + /* 780 */ 1466, 2023, 1387, 1388, 504, 1438, 1441, 1442, 1443, 1444, + /* 790 */ 1445, 1446, 1447, 616, 612, 1456, 1457, 1459, 1460, 1461, + /* 800 */ 1462, 1464, 1467, 2, 319, 2126, 1406, 1933, 1439, 1448, + /* 810 */ 1113, 615, 1112, 439, 682, 680, 452, 36, 35, 451, + /* 820 */ 1857, 42, 40, 39, 38, 37, 183, 1384, 1674, 1382, + /* 830 */ 650, 182, 1526, 1805, 423, 1440, 453, 1625, 1530, 425, + /* 840 */ 1624, 1114, 32, 362, 1487, 1488, 1489, 1490, 1491, 1495, + /* 850 */ 1496, 1497, 1498, 1387, 1388, 1549, 1438, 1441, 1442, 1443, + /* 860 */ 1444, 1445, 1446, 1447, 616, 612, 1456, 1457, 1459, 1460, + /* 870 */ 1461, 1462, 1464, 1467, 2, 236, 29, 1623, 648, 1622, + /* 880 */ 335, 1933, 36, 35, 1933, 1621, 42, 40, 39, 38, + /* 890 */ 37, 1440, 413, 688, 687, 686, 685, 374, 1619, 684, + /* 900 */ 683, 136, 678, 677, 676, 675, 674, 673, 672, 149, + /* 910 */ 668, 667, 666, 373, 372, 663, 662, 661, 660, 659, + /* 920 */ 1618, 1933, 449, 1933, 1965, 444, 443, 442, 441, 438, + /* 930 */ 437, 436, 435, 434, 430, 429, 428, 427, 336, 420, + /* 940 */ 419, 418, 1933, 415, 414, 333, 1617, 1965, 1616, 1857, + /* 950 */ 1857, 290, 361, 360, 1791, 1983, 1615, 604, 604, 1411, + /* 960 */ 184, 188, 1397, 621, 1933, 604, 604, 1614, 1933, 1738, + /* 970 */ 620, 431, 432, 1463, 156, 1390, 1408, 582, 1983, 371, + /* 980 */ 479, 1601, 671, 1764, 1731, 1814, 621, 2092, 1761, 1761, + /* 990 */ 1933, 1933, 1933, 620, 376, 1964, 1761, 1761, 1458, 1999, + /* 1000 */ 1933, 1813, 101, 1966, 624, 1968, 1969, 619, 132, 614, + /* 1010 */ 1389, 1933, 1099, 1100, 2142, 1613, 2052, 1716, 1964, 1612, + /* 1020 */ 358, 2048, 1999, 1844, 1611, 101, 1966, 624, 1968, 1969, + /* 1030 */ 619, 2086, 614, 1965, 574, 31, 549, 2142, 253, 2052, + /* 1040 */ 2122, 36, 35, 358, 2048, 42, 40, 39, 38, 37, + /* 1050 */ 654, 2072, 1526, 1805, 2116, 2128, 174, 610, 1920, 1933, + /* 1060 */ 2123, 571, 655, 1933, 1983, 1805, 573, 212, 1933, 175, + /* 1070 */ 2060, 2061, 621, 130, 2065, 210, 656, 1933, 1600, 620, + /* 1080 */ 1529, 1664, 163, 1657, 48, 138, 3, 126, 497, 493, + /* 1090 */ 489, 485, 209, 68, 558, 147, 146, 653, 652, 651, + /* 1100 */ 144, 577, 235, 517, 1964, 519, 386, 534, 1999, 533, + /* 1110 */ 1965, 101, 1966, 624, 1968, 1969, 619, 1440, 614, 604, + /* 1120 */ 1398, 217, 1393, 2142, 215, 2052, 1603, 1604, 82, 358, + /* 1130 */ 2048, 207, 1392, 1758, 1965, 664, 219, 234, 1383, 218, + /* 1140 */ 2071, 1983, 61, 76, 61, 240, 1401, 1403, 656, 621, + /* 1150 */ 1761, 1381, 604, 1655, 1933, 1391, 620, 1161, 612, 1456, + /* 1160 */ 1457, 1459, 1460, 1461, 1462, 1983, 140, 147, 146, 653, + /* 1170 */ 652, 651, 144, 621, 426, 522, 84, 611, 1933, 1965, + /* 1180 */ 620, 1964, 247, 1761, 221, 1999, 1389, 220, 101, 1966, + /* 1190 */ 624, 1968, 1969, 619, 1557, 614, 1556, 242, 206, 200, + /* 1200 */ 2027, 205, 2052, 45, 476, 1964, 358, 2048, 1984, 1999, + /* 1210 */ 1983, 1736, 101, 1966, 624, 1968, 1969, 619, 621, 614, + /* 1220 */ 198, 11, 10, 1933, 2025, 620, 2052, 375, 1866, 264, + /* 1230 */ 358, 2048, 604, 711, 1965, 36, 35, 604, 1645, 42, + /* 1240 */ 40, 39, 38, 37, 2082, 141, 545, 143, 145, 61, + /* 1250 */ 1964, 586, 604, 604, 1999, 1329, 575, 101, 1966, 624, + /* 1260 */ 1968, 1969, 619, 1761, 614, 1983, 271, 601, 1761, 607, + /* 1270 */ 1802, 2052, 604, 621, 223, 358, 2048, 222, 1933, 1395, + /* 1280 */ 620, 269, 537, 1761, 1761, 255, 602, 36, 35, 583, + /* 1290 */ 1965, 42, 40, 39, 38, 37, 1384, 596, 1382, 273, + /* 1300 */ 1213, 1500, 1394, 1761, 45, 1964, 1954, 45, 628, 1999, + /* 1310 */ 143, 145, 102, 1966, 624, 1968, 1969, 619, 656, 614, + /* 1320 */ 1484, 1983, 1387, 1388, 549, 578, 2052, 1651, 2122, 621, + /* 1330 */ 2051, 2048, 127, 604, 1933, 1965, 620, 147, 146, 653, + /* 1340 */ 652, 651, 144, 2128, 174, 665, 143, 277, 2123, 571, + /* 1350 */ 1142, 252, 1, 4, 1956, 380, 1449, 385, 1965, 289, + /* 1360 */ 1241, 1964, 1245, 1252, 1761, 1999, 1983, 1159, 102, 1966, + /* 1370 */ 624, 1968, 1969, 619, 621, 614, 706, 332, 1346, 1933, + /* 1380 */ 284, 620, 2052, 187, 1250, 1143, 609, 2048, 412, 1983, + /* 1390 */ 155, 1411, 1867, 416, 447, 421, 1406, 618, 148, 433, + /* 1400 */ 1859, 454, 1933, 440, 620, 446, 622, 191, 448, 455, + /* 1410 */ 1999, 457, 459, 102, 1966, 624, 1968, 1969, 619, 1412, + /* 1420 */ 614, 460, 469, 1414, 473, 472, 1413, 2052, 197, 1964, + /* 1430 */ 199, 326, 2048, 1999, 1415, 474, 312, 1966, 624, 1968, + /* 1440 */ 1969, 619, 617, 614, 605, 2017, 1965, 477, 202, 475, + /* 1450 */ 204, 79, 481, 80, 208, 500, 1116, 1909, 538, 498, + /* 1460 */ 502, 499, 1965, 1751, 536, 321, 214, 104, 285, 539, + /* 1470 */ 559, 2083, 229, 1747, 1908, 2093, 216, 1983, 540, 232, + /* 1480 */ 546, 2098, 150, 151, 594, 621, 1749, 1745, 152, 153, + /* 1490 */ 1933, 2097, 620, 1983, 5, 568, 2074, 246, 554, 552, + /* 1500 */ 543, 621, 249, 164, 551, 553, 1933, 248, 620, 555, + /* 1510 */ 348, 349, 562, 250, 579, 2145, 576, 1964, 1965, 1526, + /* 1520 */ 131, 1999, 2121, 238, 160, 1966, 624, 1968, 1969, 619, + /* 1530 */ 241, 614, 1410, 1964, 587, 254, 260, 1999, 352, 1416, + /* 1540 */ 160, 1966, 624, 1968, 1969, 619, 1965, 614, 251, 1983, + /* 1550 */ 2068, 1871, 286, 592, 593, 1880, 287, 621, 1879, 1878, + /* 1560 */ 354, 597, 1933, 598, 620, 550, 2089, 89, 288, 91, + /* 1570 */ 58, 2033, 1762, 93, 626, 291, 707, 1983, 1806, 1732, + /* 1580 */ 708, 280, 2090, 710, 49, 621, 315, 295, 300, 1964, + /* 1590 */ 1933, 314, 620, 1999, 1927, 323, 306, 1966, 624, 1968, + /* 1600 */ 1969, 619, 324, 614, 304, 293, 1926, 72, 1965, 1925, + /* 1610 */ 1924, 73, 1921, 382, 1375, 383, 1376, 1964, 180, 387, + /* 1620 */ 714, 1999, 1919, 389, 161, 1966, 624, 1968, 1969, 619, + /* 1630 */ 390, 614, 391, 1918, 283, 393, 1917, 395, 1916, 1983, + /* 1640 */ 567, 397, 1915, 399, 353, 1349, 1348, 621, 1891, 167, + /* 1650 */ 1890, 405, 1933, 404, 620, 704, 700, 696, 692, 281, + /* 1660 */ 1889, 1888, 1307, 1965, 185, 137, 1848, 1847, 1850, 1846, + /* 1670 */ 1845, 1843, 1842, 1841, 422, 1840, 424, 2144, 1852, 1964, + /* 1680 */ 1851, 1849, 1839, 1999, 1838, 1837, 313, 1966, 624, 1968, + /* 1690 */ 1969, 619, 1836, 614, 1983, 99, 1835, 1834, 274, 1833, + /* 1700 */ 1832, 1831, 618, 1830, 1829, 1828, 1827, 1933, 1826, 620, + /* 1710 */ 1825, 1824, 1823, 1822, 1821, 1820, 139, 1309, 1819, 1818, + /* 1720 */ 1817, 450, 1816, 1815, 1188, 1965, 70, 169, 195, 1639, + /* 1730 */ 1102, 600, 1679, 1678, 1964, 192, 1676, 193, 1999, 1640, + /* 1740 */ 1953, 312, 1966, 624, 1968, 1969, 619, 1904, 614, 465, + /* 1750 */ 2018, 1101, 1898, 1887, 467, 1965, 1983, 196, 203, 1886, + /* 1760 */ 71, 363, 1869, 201, 621, 1740, 1675, 1673, 261, 1933, + /* 1770 */ 482, 620, 1671, 1135, 1669, 483, 486, 484, 487, 488, + /* 1780 */ 490, 492, 491, 1667, 494, 1353, 1983, 230, 1654, 496, + /* 1790 */ 1653, 365, 495, 1636, 621, 1742, 1964, 1256, 60, 1933, + /* 1800 */ 1999, 620, 1741, 313, 1966, 624, 1968, 1969, 619, 1171, + /* 1810 */ 614, 1257, 1179, 1965, 1178, 1177, 1176, 679, 1665, 1173, + /* 1820 */ 1172, 1170, 681, 341, 1658, 342, 1964, 213, 1656, 1965, + /* 1830 */ 1999, 343, 520, 313, 1966, 624, 1968, 1969, 619, 523, + /* 1840 */ 614, 1635, 525, 1634, 1983, 527, 1633, 529, 1364, 103, + /* 1850 */ 1365, 1363, 621, 1367, 1903, 24, 1355, 1933, 1897, 620, + /* 1860 */ 1983, 53, 541, 1885, 1883, 2127, 17, 14, 621, 18, + /* 1870 */ 56, 154, 62, 1933, 1965, 620, 57, 244, 245, 28, + /* 1880 */ 15, 1954, 19, 1588, 535, 1573, 26, 237, 1999, 162, + /* 1890 */ 1965, 308, 1966, 624, 1968, 1969, 619, 547, 614, 257, + /* 1900 */ 1964, 239, 1555, 243, 1999, 1983, 542, 297, 1966, 624, + /* 1910 */ 1968, 1969, 619, 621, 614, 27, 233, 345, 1933, 1548, + /* 1920 */ 620, 1983, 85, 1587, 350, 1592, 55, 1591, 351, 621, + /* 1930 */ 165, 1884, 1593, 1594, 1933, 1523, 620, 1882, 1522, 1881, + /* 1940 */ 20, 262, 1868, 263, 265, 1964, 1553, 88, 270, 1999, + /* 1950 */ 87, 90, 298, 1966, 624, 1968, 1969, 619, 275, 614, + /* 1960 */ 21, 1964, 595, 272, 94, 1999, 10, 1965, 299, 1966, + /* 1970 */ 624, 1968, 1969, 619, 54, 614, 1475, 1399, 1431, 2002, + /* 1980 */ 166, 1453, 613, 178, 625, 8, 1474, 627, 366, 631, + /* 1990 */ 34, 1965, 1451, 1450, 13, 22, 634, 1423, 1983, 23, + /* 2000 */ 637, 1242, 629, 1485, 640, 1239, 621, 632, 623, 1236, + /* 2010 */ 635, 1933, 638, 620, 1230, 1228, 641, 1234, 1219, 95, + /* 2020 */ 278, 1233, 1983, 96, 1251, 1232, 1247, 647, 1167, 1231, + /* 2030 */ 621, 1133, 1166, 69, 657, 1933, 1165, 620, 1964, 669, + /* 2040 */ 1164, 1163, 1999, 1162, 1160, 305, 1966, 624, 1968, 1969, + /* 2050 */ 619, 1158, 614, 1965, 1157, 1156, 1186, 279, 1154, 1153, + /* 2060 */ 1152, 1151, 1964, 1150, 1149, 1148, 1999, 1181, 1183, 309, + /* 2070 */ 1966, 624, 1968, 1969, 619, 1145, 614, 1144, 1141, 1140, + /* 2080 */ 1139, 1138, 1672, 1965, 1983, 689, 690, 691, 1670, 694, + /* 2090 */ 693, 695, 621, 1668, 697, 698, 699, 1933, 1666, 620, + /* 2100 */ 701, 702, 703, 1652, 705, 1091, 1632, 282, 709, 1607, + /* 2110 */ 1607, 1385, 292, 712, 1983, 713, 1607, 1607, 1607, 1607, + /* 2120 */ 1607, 1607, 621, 1607, 1964, 1607, 1607, 1933, 1999, 620, + /* 2130 */ 1607, 301, 1966, 624, 1968, 1969, 619, 1607, 614, 1607, + /* 2140 */ 1607, 1965, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2150 */ 1607, 1607, 1607, 1607, 1964, 1607, 1607, 1965, 1999, 1607, + /* 2160 */ 1607, 310, 1966, 624, 1968, 1969, 619, 1607, 614, 1607, + /* 2170 */ 1607, 1607, 1983, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2180 */ 621, 1607, 1607, 1607, 1607, 1933, 1607, 620, 1983, 1607, + /* 2190 */ 1607, 1607, 1607, 1607, 1607, 1607, 621, 1607, 1607, 1607, + /* 2200 */ 1607, 1933, 1965, 620, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2210 */ 1607, 1607, 1964, 1607, 1607, 1607, 1999, 1607, 1965, 302, + /* 2220 */ 1966, 624, 1968, 1969, 619, 1607, 614, 1607, 1964, 1607, + /* 2230 */ 1607, 1607, 1999, 1983, 1607, 311, 1966, 624, 1968, 1969, + /* 2240 */ 619, 621, 614, 1607, 1607, 1607, 1933, 1607, 620, 1983, + /* 2250 */ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 621, 1607, 1607, + /* 2260 */ 1607, 1607, 1933, 1607, 620, 1607, 1607, 1607, 1607, 1607, + /* 2270 */ 1607, 1607, 1607, 1964, 1607, 1607, 1607, 1999, 1607, 1607, + /* 2280 */ 303, 1966, 624, 1968, 1969, 619, 1607, 614, 1607, 1964, + /* 2290 */ 1607, 1607, 1607, 1999, 1607, 1965, 316, 1966, 624, 1968, + /* 2300 */ 1969, 619, 1607, 614, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2310 */ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1965, + /* 2320 */ 1607, 1607, 1607, 1607, 1607, 1607, 1983, 1607, 1607, 1607, + /* 2330 */ 1607, 1607, 1607, 1607, 621, 1607, 1607, 1607, 1607, 1933, + /* 2340 */ 1607, 620, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2350 */ 1983, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 621, 1607, + /* 2360 */ 1607, 1607, 1607, 1933, 1607, 620, 1964, 1607, 1607, 1607, + /* 2370 */ 1999, 1607, 1607, 317, 1966, 624, 1968, 1969, 619, 1607, + /* 2380 */ 614, 1965, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2390 */ 1964, 1607, 1607, 1607, 1999, 1607, 1607, 1977, 1966, 624, + /* 2400 */ 1968, 1969, 619, 1607, 614, 1607, 1607, 1607, 1607, 1607, + /* 2410 */ 1607, 1965, 1983, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2420 */ 621, 1607, 1607, 1607, 1607, 1933, 1607, 620, 1607, 1607, + /* 2430 */ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2440 */ 1607, 1607, 1983, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2450 */ 621, 1607, 1964, 1607, 1607, 1933, 1999, 620, 1607, 1976, + /* 2460 */ 1966, 624, 1968, 1969, 619, 1607, 614, 1607, 1607, 1965, + /* 2470 */ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2480 */ 1607, 1607, 1964, 1607, 1607, 1965, 1999, 1607, 1607, 1975, + /* 2490 */ 1966, 624, 1968, 1969, 619, 1607, 614, 1607, 1607, 1607, + /* 2500 */ 1983, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 621, 1607, + /* 2510 */ 1607, 1607, 1607, 1933, 1607, 620, 1983, 1607, 1607, 1607, + /* 2520 */ 1607, 1607, 1607, 1607, 621, 1607, 1607, 1607, 1607, 1933, + /* 2530 */ 1965, 620, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2540 */ 1964, 1607, 1607, 1607, 1999, 1607, 1965, 328, 1966, 624, + /* 2550 */ 1968, 1969, 619, 1607, 614, 1607, 1964, 1607, 1607, 1607, + /* 2560 */ 1999, 1983, 1607, 329, 1966, 624, 1968, 1969, 619, 621, + /* 2570 */ 614, 1607, 1607, 1607, 1933, 1607, 620, 1983, 1607, 1607, + /* 2580 */ 1607, 1607, 1607, 1607, 1607, 621, 1607, 1607, 1607, 1607, + /* 2590 */ 1933, 1607, 620, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2600 */ 1607, 1964, 1607, 1607, 1607, 1999, 1607, 1607, 325, 1966, + /* 2610 */ 624, 1968, 1969, 619, 1607, 614, 1607, 1964, 1607, 1607, + /* 2620 */ 1607, 1999, 1607, 1965, 330, 1966, 624, 1968, 1969, 619, + /* 2630 */ 1607, 614, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + /* 2640 */ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1965, 1607, 1607, + /* 2650 */ 1607, 1607, 1607, 1607, 1983, 1607, 1607, 1607, 1607, 1607, + /* 2660 */ 1607, 1607, 621, 1607, 1607, 1607, 1607, 1933, 1607, 620, + /* 2670 */ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1983, 1607, + /* 2680 */ 1607, 1607, 1607, 1607, 1607, 1607, 621, 1607, 1607, 1607, + /* 2690 */ 1607, 1933, 1607, 620, 622, 1607, 1607, 1607, 1999, 1607, + /* 2700 */ 1607, 308, 1966, 624, 1968, 1969, 619, 1607, 614, 1607, + /* 2710 */ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1964, 1607, + /* 2720 */ 1607, 1607, 1999, 1607, 1607, 307, 1966, 624, 1968, 1969, + /* 2730 */ 619, 1607, 614, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 331, 350, 333, 334, 431, 335, 335, 431, 435, 358, - /* 10 */ 360, 435, 12, 13, 14, 420, 421, 359, 367, 349, - /* 20 */ 20, 371, 22, 450, 451, 20, 356, 451, 455, 456, - /* 30 */ 327, 455, 456, 33, 20, 35, 366, 366, 331, 335, - /* 40 */ 333, 334, 8, 9, 360, 335, 12, 13, 14, 15, - /* 50 */ 16, 401, 402, 403, 393, 371, 358, 335, 58, 14, - /* 60 */ 20, 358, 412, 63, 369, 20, 358, 372, 373, 366, - /* 70 */ 70, 20, 20, 365, 371, 342, 373, 379, 380, 375, - /* 80 */ 347, 358, 374, 12, 13, 401, 402, 403, 366, 366, - /* 90 */ 62, 20, 382, 22, 384, 95, 412, 63, 427, 428, - /* 100 */ 429, 398, 431, 432, 33, 402, 35, 20, 405, 406, - /* 110 */ 407, 408, 409, 410, 335, 412, 20, 117, 22, 20, - /* 120 */ 417, 332, 419, 20, 335, 336, 423, 424, 349, 58, - /* 130 */ 407, 35, 132, 133, 63, 356, 372, 373, 104, 431, - /* 140 */ 437, 70, 326, 435, 328, 366, 95, 51, 445, 427, - /* 150 */ 428, 429, 335, 431, 432, 327, 327, 435, 450, 451, - /* 160 */ 335, 161, 162, 455, 456, 335, 95, 12, 13, 14, - /* 170 */ 15, 16, 450, 451, 349, 161, 162, 455, 456, 339, - /* 180 */ 180, 335, 182, 366, 132, 133, 332, 358, 117, 335, - /* 190 */ 336, 366, 0, 353, 160, 366, 366, 20, 95, 371, - /* 200 */ 371, 361, 373, 132, 133, 205, 206, 4, 208, 209, + /* 0 */ 331, 369, 333, 334, 372, 373, 389, 327, 360, 420, + /* 10 */ 421, 357, 12, 13, 14, 327, 359, 431, 358, 371, + /* 20 */ 20, 435, 22, 360, 370, 12, 13, 14, 15, 16, + /* 30 */ 327, 335, 324, 33, 371, 35, 450, 451, 358, 379, + /* 40 */ 380, 455, 456, 372, 373, 349, 366, 335, 431, 401, + /* 50 */ 402, 371, 435, 373, 1, 2, 20, 389, 58, 371, + /* 60 */ 412, 358, 366, 63, 401, 402, 403, 450, 451, 366, + /* 70 */ 70, 20, 455, 456, 371, 412, 373, 332, 398, 20, + /* 80 */ 335, 336, 402, 12, 13, 405, 406, 407, 408, 409, + /* 90 */ 410, 20, 412, 22, 382, 95, 384, 389, 20, 431, + /* 100 */ 335, 398, 342, 435, 33, 402, 35, 347, 405, 406, + /* 110 */ 407, 408, 409, 410, 349, 412, 58, 117, 450, 451, + /* 120 */ 417, 356, 419, 455, 456, 351, 423, 424, 354, 58, + /* 130 */ 20, 366, 132, 133, 63, 95, 335, 457, 458, 431, + /* 140 */ 437, 70, 335, 435, 331, 105, 333, 334, 445, 96, + /* 150 */ 349, 18, 35, 95, 95, 97, 23, 356, 450, 451, + /* 160 */ 373, 161, 162, 455, 456, 332, 95, 366, 335, 336, + /* 170 */ 37, 38, 385, 366, 41, 388, 404, 65, 66, 67, + /* 180 */ 180, 0, 182, 132, 133, 73, 74, 70, 117, 360, + /* 190 */ 78, 350, 59, 60, 61, 83, 84, 161, 162, 358, + /* 200 */ 371, 89, 430, 132, 133, 95, 206, 207, 367, 209, /* 210 */ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - /* 220 */ 220, 221, 222, 223, 224, 225, 226, 398, 382, 20, - /* 230 */ 384, 402, 161, 162, 405, 406, 407, 408, 409, 410, - /* 240 */ 411, 412, 413, 414, 427, 428, 429, 20, 431, 432, - /* 250 */ 163, 180, 404, 182, 62, 62, 426, 427, 428, 429, - /* 260 */ 166, 431, 432, 205, 95, 231, 232, 233, 234, 235, - /* 270 */ 236, 237, 238, 239, 240, 241, 205, 206, 430, 208, + /* 220 */ 220, 221, 222, 223, 224, 225, 226, 227, 95, 335, + /* 230 */ 401, 402, 161, 162, 427, 428, 429, 20, 431, 432, + /* 240 */ 20, 412, 435, 349, 14, 20, 65, 66, 67, 358, + /* 250 */ 20, 180, 127, 182, 73, 74, 163, 450, 451, 78, + /* 260 */ 366, 168, 455, 456, 83, 84, 62, 134, 8, 9, + /* 270 */ 89, 380, 12, 13, 14, 15, 16, 206, 207, 389, /* 280 */ 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - /* 290 */ 219, 220, 221, 222, 223, 224, 225, 226, 95, 228, - /* 300 */ 12, 13, 0, 351, 95, 324, 354, 373, 20, 327, - /* 310 */ 22, 253, 254, 255, 256, 257, 258, 259, 327, 385, - /* 320 */ 95, 33, 388, 35, 108, 109, 110, 111, 112, 113, - /* 330 */ 114, 115, 116, 117, 118, 3, 120, 121, 122, 123, - /* 340 */ 124, 125, 341, 249, 250, 58, 58, 244, 179, 358, - /* 350 */ 181, 63, 20, 371, 126, 127, 355, 366, 70, 131, - /* 360 */ 35, 357, 371, 327, 373, 364, 175, 65, 66, 67, - /* 370 */ 389, 12, 13, 14, 370, 73, 74, 389, 0, 20, - /* 380 */ 78, 22, 95, 95, 97, 83, 84, 196, 197, 398, - /* 390 */ 163, 89, 33, 402, 35, 70, 405, 406, 407, 408, - /* 400 */ 409, 410, 327, 412, 335, 117, 415, 371, 417, 418, - /* 410 */ 419, 21, 431, 244, 423, 424, 435, 58, 349, 431, - /* 420 */ 132, 133, 106, 435, 34, 20, 36, 22, 96, 70, - /* 430 */ 20, 450, 451, 358, 0, 366, 455, 456, 450, 451, - /* 440 */ 62, 366, 327, 455, 456, 327, 371, 244, 373, 161, - /* 450 */ 162, 1, 2, 244, 95, 21, 51, 335, 24, 25, - /* 460 */ 26, 27, 28, 29, 30, 31, 32, 341, 180, 244, - /* 470 */ 182, 349, 156, 398, 344, 345, 117, 402, 344, 345, - /* 480 */ 405, 406, 407, 408, 409, 410, 371, 412, 366, 371, - /* 490 */ 364, 132, 133, 205, 206, 163, 208, 209, 210, 211, - /* 500 */ 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - /* 510 */ 222, 223, 224, 225, 226, 4, 65, 66, 67, 95, - /* 520 */ 161, 162, 335, 19, 73, 74, 358, 58, 126, 78, - /* 530 */ 373, 244, 457, 458, 83, 84, 349, 33, 20, 180, - /* 540 */ 89, 182, 374, 8, 9, 388, 96, 12, 13, 14, - /* 550 */ 15, 16, 48, 366, 43, 20, 45, 46, 54, 55, - /* 560 */ 56, 57, 58, 94, 205, 206, 97, 208, 209, 210, - /* 570 */ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - /* 580 */ 221, 222, 223, 224, 225, 226, 12, 13, 358, 335, - /* 590 */ 358, 189, 190, 79, 20, 360, 22, 0, 94, 367, - /* 600 */ 228, 97, 230, 349, 327, 327, 371, 33, 21, 35, - /* 610 */ 380, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 620 */ 366, 24, 25, 26, 27, 28, 29, 30, 31, 32, - /* 630 */ 327, 339, 58, 327, 130, 358, 401, 402, 403, 358, - /* 640 */ 107, 20, 160, 366, 70, 106, 365, 412, 371, 371, - /* 650 */ 373, 137, 138, 361, 416, 374, 418, 12, 13, 126, - /* 660 */ 127, 128, 129, 130, 131, 20, 327, 22, 244, 95, - /* 670 */ 14, 167, 389, 327, 371, 398, 20, 371, 33, 402, - /* 680 */ 35, 163, 405, 406, 407, 408, 409, 410, 184, 412, - /* 690 */ 186, 117, 358, 404, 417, 404, 419, 358, 163, 365, - /* 700 */ 423, 424, 416, 58, 418, 366, 132, 133, 374, 127, - /* 710 */ 371, 327, 373, 231, 431, 70, 44, 371, 435, 430, - /* 720 */ 228, 430, 445, 241, 8, 9, 359, 327, 12, 13, - /* 730 */ 14, 15, 16, 450, 451, 161, 162, 398, 455, 456, - /* 740 */ 95, 402, 350, 70, 405, 406, 407, 408, 409, 410, - /* 750 */ 358, 412, 45, 46, 180, 371, 182, 44, 419, 367, - /* 760 */ 8, 9, 117, 424, 12, 13, 14, 15, 16, 187, - /* 770 */ 188, 371, 346, 191, 348, 193, 327, 132, 133, 205, - /* 780 */ 206, 70, 208, 209, 210, 211, 212, 213, 214, 215, - /* 790 */ 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - /* 800 */ 226, 18, 415, 20, 431, 418, 161, 162, 435, 96, - /* 810 */ 27, 368, 96, 30, 371, 359, 33, 161, 335, 33, - /* 820 */ 371, 335, 350, 39, 451, 180, 0, 182, 455, 456, - /* 830 */ 358, 48, 349, 50, 48, 349, 53, 327, 4, 367, - /* 840 */ 54, 55, 56, 57, 58, 14, 15, 16, 96, 366, - /* 850 */ 205, 206, 366, 208, 209, 210, 211, 212, 213, 214, - /* 860 */ 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - /* 870 */ 225, 226, 3, 0, 327, 366, 327, 94, 14, 366, - /* 880 */ 94, 371, 35, 97, 20, 366, 377, 20, 359, 106, - /* 890 */ 377, 65, 66, 67, 68, 69, 377, 71, 72, 73, - /* 900 */ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - /* 910 */ 84, 85, 86, 87, 88, 89, 90, 91, 371, 136, - /* 920 */ 371, 48, 139, 140, 141, 142, 143, 144, 145, 146, - /* 930 */ 147, 148, 149, 150, 151, 152, 153, 154, 155, 267, - /* 940 */ 157, 158, 159, 18, 327, 327, 327, 335, 23, 107, - /* 950 */ 164, 165, 389, 167, 22, 0, 170, 242, 243, 0, - /* 960 */ 327, 349, 37, 38, 327, 335, 41, 35, 4, 8, - /* 970 */ 9, 129, 186, 12, 13, 14, 15, 16, 366, 349, - /* 980 */ 0, 22, 360, 19, 59, 60, 61, 44, 371, 371, - /* 990 */ 371, 358, 22, 371, 431, 335, 366, 33, 435, 366, - /* 1000 */ 368, 335, 70, 371, 371, 35, 373, 368, 371, 349, - /* 1010 */ 371, 44, 48, 450, 451, 349, 163, 53, 455, 456, - /* 1020 */ 95, 168, 58, 401, 402, 161, 366, 243, 161, 182, - /* 1030 */ 351, 398, 366, 354, 412, 402, 360, 335, 405, 406, - /* 1040 */ 407, 408, 409, 410, 42, 412, 44, 371, 44, 117, - /* 1050 */ 417, 349, 419, 42, 359, 44, 423, 424, 94, 134, - /* 1060 */ 335, 97, 107, 96, 327, 8, 9, 434, 366, 12, - /* 1070 */ 13, 14, 15, 16, 349, 335, 335, 401, 402, 245, - /* 1080 */ 335, 126, 127, 128, 129, 130, 131, 0, 412, 349, - /* 1090 */ 349, 366, 359, 99, 349, 358, 102, 172, 173, 174, - /* 1100 */ 96, 44, 177, 366, 35, 44, 366, 366, 371, 22, - /* 1110 */ 373, 366, 180, 99, 182, 99, 102, 359, 102, 327, - /* 1120 */ 195, 63, 335, 198, 44, 200, 201, 202, 203, 204, - /* 1130 */ 328, 151, 263, 172, 58, 398, 349, 205, 206, 402, - /* 1140 */ 0, 44, 405, 406, 407, 408, 409, 410, 347, 412, - /* 1150 */ 358, 381, 99, 366, 417, 102, 419, 96, 366, 47, - /* 1160 */ 423, 424, 22, 371, 0, 373, 132, 133, 44, 244, - /* 1170 */ 44, 434, 448, 97, 2, 337, 96, 35, 44, 327, - /* 1180 */ 8, 9, 12, 13, 12, 13, 14, 15, 16, 459, - /* 1190 */ 398, 442, 22, 96, 402, 1, 2, 405, 406, 407, - /* 1200 */ 408, 409, 410, 33, 412, 35, 358, 95, 265, 417, - /* 1210 */ 358, 419, 70, 49, 95, 423, 424, 337, 366, 334, - /* 1220 */ 96, 381, 96, 371, 105, 373, 434, 370, 58, 268, - /* 1230 */ 96, 2, 44, 44, 327, 381, 433, 8, 9, 44, - /* 1240 */ 70, 12, 13, 14, 15, 16, 44, 44, 44, 44, - /* 1250 */ 398, 182, 44, 425, 402, 0, 452, 405, 406, 407, - /* 1260 */ 408, 409, 410, 205, 412, 358, 13, 246, 436, 417, - /* 1270 */ 400, 419, 48, 366, 399, 423, 424, 178, 371, 389, - /* 1280 */ 373, 42, 391, 378, 96, 96, 20, 117, 35, 8, - /* 1290 */ 9, 96, 381, 12, 13, 14, 15, 16, 96, 96, - /* 1300 */ 96, 96, 389, 160, 96, 398, 378, 376, 20, 402, - /* 1310 */ 335, 335, 405, 406, 407, 408, 409, 410, 378, 412, - /* 1320 */ 376, 431, 376, 93, 417, 435, 419, 327, 8, 9, - /* 1330 */ 423, 424, 12, 13, 14, 15, 16, 20, 13, 343, - /* 1340 */ 450, 451, 335, 335, 431, 455, 456, 335, 435, 329, - /* 1350 */ 180, 329, 182, 20, 341, 395, 373, 20, 358, 341, - /* 1360 */ 35, 336, 107, 450, 451, 20, 366, 390, 455, 456, - /* 1370 */ 341, 371, 336, 373, 341, 205, 206, 335, 341, 341, - /* 1380 */ 341, 126, 127, 128, 129, 130, 131, 217, 218, 219, - /* 1390 */ 220, 221, 222, 223, 52, 327, 329, 338, 398, 358, - /* 1400 */ 338, 358, 402, 358, 358, 405, 406, 407, 408, 409, - /* 1410 */ 410, 329, 412, 358, 358, 371, 335, 417, 358, 419, - /* 1420 */ 371, 358, 358, 423, 424, 327, 358, 194, 358, 358, - /* 1430 */ 339, 185, 397, 339, 366, 395, 335, 252, 373, 371, - /* 1440 */ 441, 373, 394, 251, 163, 371, 371, 381, 443, 371, - /* 1450 */ 441, 260, 262, 381, 371, 327, 358, 171, 261, 386, - /* 1460 */ 441, 444, 439, 386, 366, 247, 398, 440, 438, 371, - /* 1470 */ 402, 373, 266, 405, 406, 407, 408, 409, 410, 400, - /* 1480 */ 412, 269, 454, 264, 460, 453, 358, 419, 243, 366, - /* 1490 */ 20, 423, 424, 404, 366, 335, 398, 336, 339, 371, - /* 1500 */ 402, 373, 20, 405, 406, 407, 408, 409, 410, 384, - /* 1510 */ 412, 327, 371, 386, 165, 371, 371, 419, 371, 371, - /* 1520 */ 371, 423, 424, 386, 366, 339, 398, 327, 354, 383, - /* 1530 */ 402, 95, 339, 405, 406, 407, 408, 409, 410, 422, - /* 1540 */ 412, 95, 358, 362, 371, 335, 348, 419, 339, 36, - /* 1550 */ 366, 423, 424, 330, 329, 371, 387, 373, 358, 37, - /* 1560 */ 392, 396, 387, 352, 0, 352, 366, 352, 340, 325, - /* 1570 */ 0, 371, 187, 373, 0, 0, 42, 0, 35, 199, - /* 1580 */ 35, 35, 398, 35, 0, 199, 402, 35, 327, 405, - /* 1590 */ 406, 407, 408, 409, 410, 35, 412, 199, 398, 0, - /* 1600 */ 199, 0, 402, 35, 327, 405, 406, 407, 408, 409, - /* 1610 */ 410, 0, 412, 22, 0, 35, 182, 180, 0, 358, - /* 1620 */ 98, 0, 100, 101, 176, 103, 175, 366, 47, 107, - /* 1630 */ 446, 447, 371, 0, 373, 358, 0, 0, 0, 0, - /* 1640 */ 42, 0, 0, 366, 35, 151, 0, 447, 371, 0, - /* 1650 */ 373, 129, 0, 0, 0, 0, 0, 151, 0, 398, - /* 1660 */ 0, 0, 0, 402, 0, 0, 405, 406, 407, 408, - /* 1670 */ 409, 410, 0, 412, 0, 398, 0, 0, 327, 402, - /* 1680 */ 0, 0, 405, 406, 407, 408, 409, 410, 0, 412, - /* 1690 */ 0, 0, 42, 0, 327, 0, 0, 0, 0, 0, - /* 1700 */ 22, 0, 0, 0, 135, 0, 35, 0, 0, 358, - /* 1710 */ 449, 0, 0, 44, 363, 58, 0, 366, 39, 0, - /* 1720 */ 47, 58, 371, 14, 373, 358, 42, 14, 39, 47, - /* 1730 */ 47, 0, 40, 366, 171, 458, 0, 0, 371, 39, - /* 1740 */ 373, 0, 0, 0, 0, 35, 0, 327, 0, 398, - /* 1750 */ 64, 0, 48, 402, 39, 35, 405, 406, 407, 408, - /* 1760 */ 409, 410, 48, 412, 39, 398, 39, 327, 35, 402, - /* 1770 */ 48, 48, 405, 406, 407, 408, 409, 410, 358, 412, - /* 1780 */ 35, 414, 0, 363, 0, 0, 366, 0, 39, 104, - /* 1790 */ 35, 371, 22, 373, 0, 35, 102, 35, 358, 35, - /* 1800 */ 35, 44, 44, 363, 35, 22, 366, 35, 35, 0, - /* 1810 */ 22, 371, 0, 373, 22, 0, 50, 22, 398, 0, - /* 1820 */ 327, 35, 402, 0, 35, 405, 406, 407, 408, 409, - /* 1830 */ 410, 35, 412, 0, 20, 22, 327, 35, 398, 35, - /* 1840 */ 192, 0, 402, 96, 0, 405, 406, 407, 408, 409, - /* 1850 */ 410, 358, 412, 35, 95, 0, 22, 0, 183, 366, - /* 1860 */ 44, 3, 95, 248, 371, 44, 373, 358, 44, 163, - /* 1870 */ 96, 95, 44, 96, 96, 366, 95, 47, 47, 44, - /* 1880 */ 371, 3, 373, 248, 163, 95, 169, 96, 95, 165, - /* 1890 */ 44, 398, 163, 95, 327, 402, 96, 96, 405, 406, - /* 1900 */ 407, 408, 409, 410, 35, 412, 35, 398, 35, 35, - /* 1910 */ 327, 402, 35, 96, 405, 406, 407, 408, 409, 410, - /* 1920 */ 35, 412, 96, 47, 44, 358, 47, 0, 0, 0, - /* 1930 */ 47, 95, 0, 366, 96, 248, 96, 95, 371, 39, - /* 1940 */ 373, 358, 95, 95, 95, 47, 166, 44, 105, 366, - /* 1950 */ 2, 95, 22, 47, 371, 327, 373, 227, 205, 227, - /* 1960 */ 96, 164, 95, 95, 229, 398, 96, 95, 242, 402, - /* 1970 */ 95, 327, 405, 406, 407, 408, 409, 410, 96, 412, - /* 1980 */ 47, 398, 96, 22, 95, 402, 358, 106, 405, 406, - /* 1990 */ 407, 408, 409, 410, 366, 412, 22, 96, 35, 371, - /* 2000 */ 35, 373, 358, 95, 35, 96, 207, 95, 35, 96, - /* 2010 */ 366, 95, 35, 96, 95, 371, 96, 373, 35, 95, - /* 2020 */ 95, 119, 107, 119, 119, 44, 398, 35, 22, 119, - /* 2030 */ 402, 95, 95, 405, 406, 407, 408, 409, 410, 64, - /* 2040 */ 412, 63, 398, 35, 35, 327, 402, 35, 35, 405, - /* 2050 */ 406, 407, 408, 409, 410, 35, 412, 35, 35, 35, - /* 2060 */ 35, 327, 35, 70, 35, 44, 35, 35, 92, 22, - /* 2070 */ 35, 35, 35, 70, 35, 35, 358, 35, 35, 35, - /* 2080 */ 22, 35, 0, 35, 366, 0, 48, 35, 39, 371, - /* 2090 */ 39, 373, 358, 48, 0, 35, 39, 0, 48, 35, - /* 2100 */ 366, 48, 39, 0, 35, 371, 327, 373, 35, 0, - /* 2110 */ 22, 22, 21, 20, 22, 461, 398, 21, 461, 461, - /* 2120 */ 402, 461, 461, 405, 406, 407, 408, 409, 410, 461, - /* 2130 */ 412, 461, 398, 461, 327, 461, 402, 358, 461, 405, - /* 2140 */ 406, 407, 408, 409, 410, 366, 412, 461, 461, 461, - /* 2150 */ 371, 461, 373, 461, 461, 461, 461, 461, 461, 461, - /* 2160 */ 461, 461, 461, 461, 327, 358, 461, 461, 461, 461, - /* 2170 */ 461, 461, 461, 366, 461, 461, 461, 398, 371, 461, - /* 2180 */ 373, 402, 461, 461, 405, 406, 407, 408, 409, 410, - /* 2190 */ 461, 412, 327, 461, 461, 358, 461, 461, 461, 461, - /* 2200 */ 461, 461, 461, 366, 461, 398, 461, 461, 371, 402, - /* 2210 */ 373, 461, 405, 406, 407, 408, 409, 410, 461, 412, - /* 2220 */ 461, 461, 327, 358, 461, 461, 461, 461, 461, 461, - /* 2230 */ 461, 366, 461, 461, 461, 398, 371, 461, 373, 402, - /* 2240 */ 461, 461, 405, 406, 407, 408, 409, 410, 461, 412, - /* 2250 */ 461, 461, 461, 358, 461, 461, 461, 461, 461, 461, - /* 2260 */ 461, 366, 461, 398, 461, 461, 371, 402, 373, 461, - /* 2270 */ 405, 406, 407, 408, 409, 410, 461, 412, 461, 461, - /* 2280 */ 461, 461, 327, 461, 461, 461, 461, 461, 461, 461, - /* 2290 */ 461, 461, 461, 398, 461, 461, 461, 402, 461, 327, - /* 2300 */ 405, 406, 407, 408, 409, 410, 461, 412, 461, 461, - /* 2310 */ 461, 461, 461, 358, 461, 461, 461, 461, 461, 461, - /* 2320 */ 461, 366, 461, 461, 461, 461, 371, 327, 373, 461, - /* 2330 */ 358, 461, 461, 461, 461, 461, 461, 461, 366, 461, - /* 2340 */ 461, 461, 461, 371, 461, 373, 461, 461, 461, 461, - /* 2350 */ 461, 461, 461, 398, 461, 461, 461, 402, 358, 461, - /* 2360 */ 405, 406, 407, 408, 409, 410, 366, 412, 461, 461, - /* 2370 */ 398, 371, 461, 373, 402, 461, 461, 405, 406, 407, - /* 2380 */ 408, 409, 410, 461, 412, 461, 461, 461, 461, 327, - /* 2390 */ 461, 461, 461, 461, 461, 461, 461, 461, 398, 461, - /* 2400 */ 461, 461, 402, 461, 461, 405, 406, 407, 408, 409, - /* 2410 */ 410, 461, 412, 461, 461, 461, 461, 327, 461, 461, - /* 2420 */ 358, 461, 461, 461, 461, 461, 461, 461, 366, 461, - /* 2430 */ 461, 461, 461, 371, 327, 373, 461, 461, 461, 461, - /* 2440 */ 461, 461, 461, 461, 461, 461, 461, 461, 358, 461, - /* 2450 */ 461, 461, 461, 461, 461, 461, 366, 461, 461, 461, - /* 2460 */ 398, 371, 327, 373, 402, 358, 461, 405, 406, 407, - /* 2470 */ 408, 409, 410, 366, 412, 461, 461, 461, 371, 461, - /* 2480 */ 373, 461, 461, 461, 461, 461, 461, 461, 398, 461, - /* 2490 */ 461, 461, 402, 358, 461, 405, 406, 407, 408, 409, - /* 2500 */ 410, 366, 412, 461, 461, 398, 371, 461, 373, 402, - /* 2510 */ 461, 461, 405, 406, 407, 408, 409, 410, 461, 412, - /* 2520 */ 327, 461, 461, 461, 461, 461, 461, 461, 461, 461, - /* 2530 */ 461, 461, 461, 398, 461, 461, 327, 402, 461, 461, - /* 2540 */ 405, 406, 407, 408, 409, 410, 461, 412, 461, 461, - /* 2550 */ 461, 358, 461, 461, 461, 461, 461, 461, 461, 366, - /* 2560 */ 461, 461, 461, 461, 371, 461, 373, 358, 461, 461, - /* 2570 */ 461, 461, 461, 461, 461, 366, 461, 461, 461, 461, - /* 2580 */ 371, 461, 373, 461, 461, 461, 461, 461, 461, 461, - /* 2590 */ 461, 398, 461, 461, 461, 402, 461, 461, 405, 406, - /* 2600 */ 407, 408, 409, 410, 461, 412, 461, 398, 461, 461, - /* 2610 */ 461, 402, 461, 461, 405, 406, 407, 408, 409, 410, - /* 2620 */ 461, 412, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2630 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2640 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2650 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2660 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2670 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2680 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2690 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2700 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2710 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2720 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2730 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2740 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2750 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2760 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2770 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2780 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2790 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2800 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2810 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2820 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2830 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2840 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2850 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2860 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2870 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2880 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2890 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2900 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2910 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2920 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2930 */ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - /* 2940 */ 324, 324, 324, 324, 324, 324, + /* 290 */ 219, 220, 221, 222, 223, 224, 225, 226, 227, 4, + /* 300 */ 229, 12, 13, 245, 245, 172, 173, 174, 339, 20, + /* 310 */ 177, 22, 187, 188, 19, 358, 191, 339, 193, 327, + /* 320 */ 95, 431, 33, 366, 35, 435, 358, 44, 33, 196, + /* 330 */ 361, 353, 199, 365, 201, 202, 203, 204, 205, 361, + /* 340 */ 450, 451, 374, 48, 360, 455, 456, 58, 53, 350, + /* 350 */ 358, 4, 63, 58, 350, 371, 96, 358, 366, 70, + /* 360 */ 3, 62, 358, 371, 407, 373, 367, 14, 15, 16, + /* 370 */ 335, 367, 12, 13, 14, 20, 95, 20, 245, 96, + /* 380 */ 20, 327, 22, 163, 95, 401, 402, 403, 95, 94, + /* 390 */ 398, 341, 97, 33, 402, 35, 412, 405, 406, 407, + /* 400 */ 408, 409, 410, 229, 412, 355, 117, 415, 160, 417, + /* 410 */ 418, 419, 358, 0, 364, 423, 424, 382, 58, 384, + /* 420 */ 366, 132, 133, 126, 127, 371, 4, 373, 131, 0, + /* 430 */ 70, 108, 109, 110, 111, 112, 113, 114, 115, 116, + /* 440 */ 117, 118, 95, 120, 121, 122, 123, 124, 125, 106, + /* 450 */ 161, 162, 398, 96, 20, 95, 402, 0, 58, 405, + /* 460 */ 406, 407, 408, 409, 410, 43, 412, 45, 46, 180, + /* 470 */ 245, 182, 179, 419, 181, 62, 20, 117, 424, 335, + /* 480 */ 232, 24, 25, 26, 27, 28, 29, 30, 31, 32, + /* 490 */ 242, 62, 132, 133, 94, 206, 207, 97, 209, 210, + /* 500 */ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + /* 510 */ 221, 222, 223, 224, 225, 226, 227, 344, 345, 375, + /* 520 */ 163, 161, 162, 0, 21, 335, 245, 24, 25, 26, + /* 530 */ 27, 28, 29, 30, 31, 32, 341, 20, 245, 349, + /* 540 */ 180, 326, 182, 328, 21, 70, 327, 24, 25, 26, + /* 550 */ 27, 28, 29, 30, 31, 32, 366, 8, 9, 364, + /* 560 */ 327, 12, 13, 14, 15, 16, 206, 207, 95, 209, + /* 570 */ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + /* 580 */ 220, 221, 222, 223, 224, 225, 226, 227, 12, 13, + /* 590 */ 371, 358, 245, 44, 22, 79, 20, 373, 22, 366, + /* 600 */ 37, 20, 70, 22, 371, 166, 373, 35, 229, 33, + /* 610 */ 231, 35, 388, 358, 358, 416, 35, 418, 8, 9, + /* 620 */ 365, 365, 12, 13, 14, 15, 16, 39, 327, 374, + /* 630 */ 374, 398, 51, 360, 58, 402, 21, 335, 405, 406, + /* 640 */ 407, 408, 409, 410, 371, 412, 70, 206, 335, 34, + /* 650 */ 417, 36, 419, 137, 138, 335, 423, 424, 404, 12, + /* 660 */ 13, 98, 349, 100, 101, 359, 103, 20, 366, 22, + /* 670 */ 107, 95, 371, 63, 401, 402, 403, 359, 445, 366, + /* 680 */ 33, 175, 35, 20, 430, 412, 366, 431, 14, 250, + /* 690 */ 251, 435, 129, 117, 20, 254, 255, 256, 257, 258, + /* 700 */ 259, 260, 393, 197, 198, 58, 450, 451, 132, 133, + /* 710 */ 327, 455, 456, 126, 104, 431, 327, 70, 245, 435, + /* 720 */ 8, 9, 335, 359, 12, 13, 14, 15, 16, 427, + /* 730 */ 428, 429, 20, 431, 432, 451, 349, 161, 162, 455, + /* 740 */ 456, 431, 95, 404, 14, 435, 426, 427, 428, 429, + /* 750 */ 20, 431, 432, 366, 371, 359, 180, 416, 182, 418, + /* 760 */ 371, 451, 107, 327, 117, 455, 456, 8, 9, 430, + /* 770 */ 160, 12, 13, 14, 15, 16, 189, 190, 415, 132, + /* 780 */ 133, 418, 206, 207, 129, 209, 210, 211, 212, 213, + /* 790 */ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + /* 800 */ 224, 225, 226, 227, 18, 3, 20, 371, 161, 162, + /* 810 */ 20, 359, 22, 27, 344, 345, 30, 8, 9, 33, + /* 820 */ 366, 12, 13, 14, 15, 16, 163, 180, 0, 182, + /* 830 */ 368, 377, 244, 371, 48, 161, 50, 327, 4, 53, + /* 840 */ 327, 51, 232, 233, 234, 235, 236, 237, 238, 239, + /* 850 */ 240, 241, 242, 206, 207, 96, 209, 210, 211, 212, + /* 860 */ 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + /* 870 */ 223, 224, 225, 226, 227, 163, 2, 327, 359, 327, + /* 880 */ 94, 371, 8, 9, 371, 328, 12, 13, 14, 15, + /* 890 */ 16, 161, 106, 65, 66, 67, 68, 69, 327, 71, + /* 900 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + /* 910 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + /* 920 */ 327, 371, 136, 371, 327, 139, 140, 141, 142, 143, + /* 930 */ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + /* 940 */ 154, 155, 371, 157, 158, 159, 327, 327, 327, 366, + /* 950 */ 366, 351, 12, 13, 354, 358, 327, 335, 335, 20, + /* 960 */ 377, 377, 22, 366, 371, 335, 335, 327, 371, 0, + /* 970 */ 373, 349, 349, 33, 358, 35, 20, 335, 358, 349, + /* 980 */ 349, 172, 346, 367, 348, 358, 366, 381, 366, 366, + /* 990 */ 371, 371, 371, 373, 389, 398, 366, 366, 58, 402, + /* 1000 */ 371, 374, 405, 406, 407, 408, 409, 410, 366, 412, + /* 1010 */ 70, 371, 45, 46, 417, 327, 419, 347, 398, 327, + /* 1020 */ 423, 424, 402, 0, 327, 405, 406, 407, 408, 409, + /* 1030 */ 410, 434, 412, 327, 44, 2, 431, 417, 459, 419, + /* 1040 */ 435, 8, 9, 423, 424, 12, 13, 14, 15, 16, + /* 1050 */ 368, 243, 244, 371, 434, 450, 451, 117, 0, 371, + /* 1060 */ 455, 456, 368, 371, 358, 371, 264, 33, 371, 427, + /* 1070 */ 428, 429, 366, 431, 432, 337, 107, 371, 269, 373, + /* 1080 */ 246, 0, 48, 0, 42, 42, 44, 44, 54, 55, + /* 1090 */ 56, 57, 58, 106, 448, 126, 127, 128, 129, 130, + /* 1100 */ 131, 44, 163, 22, 398, 22, 48, 192, 402, 194, + /* 1110 */ 327, 405, 406, 407, 408, 409, 410, 161, 412, 335, + /* 1120 */ 180, 99, 182, 417, 102, 419, 132, 133, 94, 423, + /* 1130 */ 424, 97, 35, 349, 327, 13, 99, 58, 22, 102, + /* 1140 */ 434, 358, 44, 156, 44, 44, 206, 207, 107, 366, + /* 1150 */ 366, 35, 335, 0, 371, 35, 373, 35, 218, 219, + /* 1160 */ 220, 221, 222, 223, 224, 358, 349, 126, 127, 128, + /* 1170 */ 129, 130, 131, 366, 151, 22, 97, 63, 371, 327, + /* 1180 */ 373, 398, 442, 366, 99, 402, 70, 102, 405, 406, + /* 1190 */ 407, 408, 409, 410, 96, 412, 96, 96, 164, 165, + /* 1200 */ 417, 167, 419, 44, 170, 398, 423, 424, 358, 402, + /* 1210 */ 358, 0, 405, 406, 407, 408, 409, 410, 366, 412, + /* 1220 */ 186, 1, 2, 371, 417, 373, 419, 337, 381, 44, + /* 1230 */ 423, 424, 335, 117, 327, 8, 9, 335, 334, 12, + /* 1240 */ 13, 14, 15, 16, 381, 44, 349, 44, 44, 44, + /* 1250 */ 398, 349, 335, 335, 402, 96, 266, 405, 406, 407, + /* 1260 */ 408, 409, 410, 366, 412, 358, 349, 349, 366, 417, + /* 1270 */ 370, 419, 335, 366, 99, 423, 424, 102, 371, 182, + /* 1280 */ 373, 96, 389, 366, 366, 452, 349, 8, 9, 433, + /* 1290 */ 327, 12, 13, 14, 15, 16, 180, 96, 182, 96, + /* 1300 */ 96, 96, 182, 366, 44, 398, 47, 44, 44, 402, + /* 1310 */ 44, 44, 405, 406, 407, 408, 409, 410, 107, 412, + /* 1320 */ 206, 358, 206, 207, 431, 268, 419, 0, 435, 366, + /* 1330 */ 423, 424, 44, 335, 371, 327, 373, 126, 127, 128, + /* 1340 */ 129, 130, 131, 450, 451, 13, 44, 349, 455, 456, + /* 1350 */ 35, 425, 436, 247, 95, 400, 96, 48, 327, 96, + /* 1360 */ 96, 398, 96, 96, 366, 402, 358, 35, 405, 406, + /* 1370 */ 407, 408, 409, 410, 366, 412, 49, 399, 178, 371, + /* 1380 */ 391, 373, 419, 42, 96, 70, 423, 424, 378, 358, + /* 1390 */ 163, 20, 381, 378, 160, 376, 20, 366, 96, 335, + /* 1400 */ 335, 93, 371, 378, 373, 376, 398, 335, 376, 343, + /* 1410 */ 402, 335, 335, 405, 406, 407, 408, 409, 410, 20, + /* 1420 */ 412, 329, 329, 20, 373, 395, 20, 419, 341, 398, + /* 1430 */ 341, 423, 424, 402, 20, 336, 405, 406, 407, 408, + /* 1440 */ 409, 410, 411, 412, 413, 414, 327, 336, 341, 390, + /* 1450 */ 341, 341, 335, 341, 341, 329, 52, 371, 397, 338, + /* 1460 */ 358, 338, 327, 358, 195, 329, 358, 335, 395, 185, + /* 1470 */ 253, 381, 339, 358, 371, 381, 358, 358, 394, 339, + /* 1480 */ 335, 441, 358, 358, 252, 366, 358, 358, 358, 358, + /* 1490 */ 371, 441, 373, 358, 261, 171, 444, 443, 263, 262, + /* 1500 */ 373, 366, 439, 441, 248, 371, 371, 440, 373, 371, + /* 1510 */ 371, 270, 371, 438, 267, 460, 265, 398, 327, 244, + /* 1520 */ 366, 402, 454, 386, 405, 406, 407, 408, 409, 410, + /* 1530 */ 386, 412, 20, 398, 335, 453, 339, 402, 336, 20, + /* 1540 */ 405, 406, 407, 408, 409, 410, 327, 412, 400, 358, + /* 1550 */ 404, 384, 386, 371, 371, 371, 386, 366, 371, 371, + /* 1560 */ 371, 165, 371, 383, 373, 446, 447, 339, 354, 339, + /* 1570 */ 95, 422, 366, 95, 362, 335, 36, 358, 371, 348, + /* 1580 */ 330, 339, 447, 329, 392, 366, 396, 325, 352, 398, + /* 1590 */ 371, 352, 373, 402, 0, 387, 405, 406, 407, 408, + /* 1600 */ 409, 410, 387, 412, 352, 340, 0, 187, 327, 0, + /* 1610 */ 0, 42, 0, 35, 35, 200, 35, 398, 35, 200, + /* 1620 */ 19, 402, 0, 35, 405, 406, 407, 408, 409, 410, + /* 1630 */ 35, 412, 200, 0, 33, 200, 0, 35, 0, 358, + /* 1640 */ 449, 22, 0, 35, 363, 182, 180, 366, 0, 48, + /* 1650 */ 0, 175, 371, 176, 373, 54, 55, 56, 57, 58, + /* 1660 */ 0, 0, 47, 327, 151, 42, 0, 0, 0, 0, + /* 1670 */ 0, 0, 0, 0, 35, 0, 151, 458, 0, 398, + /* 1680 */ 0, 0, 0, 402, 0, 0, 405, 406, 407, 408, + /* 1690 */ 409, 410, 0, 412, 358, 94, 0, 0, 97, 0, + /* 1700 */ 0, 0, 366, 0, 0, 0, 0, 371, 0, 373, + /* 1710 */ 0, 0, 0, 0, 0, 0, 42, 22, 0, 0, + /* 1720 */ 0, 135, 0, 0, 35, 327, 39, 44, 42, 0, + /* 1730 */ 14, 130, 0, 0, 398, 58, 0, 58, 402, 0, + /* 1740 */ 47, 405, 406, 407, 408, 409, 410, 0, 412, 47, + /* 1750 */ 414, 14, 0, 0, 47, 327, 358, 40, 171, 0, + /* 1760 */ 39, 363, 0, 39, 366, 0, 0, 0, 167, 371, + /* 1770 */ 35, 373, 0, 64, 0, 48, 35, 39, 48, 39, + /* 1780 */ 35, 39, 48, 0, 35, 184, 358, 186, 0, 39, + /* 1790 */ 0, 363, 48, 0, 366, 0, 398, 22, 104, 371, + /* 1800 */ 402, 373, 0, 405, 406, 407, 408, 409, 410, 22, + /* 1810 */ 412, 35, 35, 327, 35, 35, 35, 44, 0, 35, + /* 1820 */ 35, 35, 44, 22, 0, 22, 398, 102, 0, 327, + /* 1830 */ 402, 22, 50, 405, 406, 407, 408, 409, 410, 35, + /* 1840 */ 412, 0, 35, 0, 358, 35, 0, 22, 35, 20, + /* 1850 */ 35, 35, 366, 96, 0, 95, 35, 371, 0, 373, + /* 1860 */ 358, 163, 22, 0, 0, 3, 44, 249, 366, 249, + /* 1870 */ 44, 183, 3, 371, 327, 373, 44, 44, 47, 44, + /* 1880 */ 249, 47, 44, 35, 398, 96, 95, 95, 402, 95, + /* 1890 */ 327, 405, 406, 407, 408, 409, 410, 169, 412, 47, + /* 1900 */ 398, 96, 96, 95, 402, 358, 163, 405, 406, 407, + /* 1910 */ 408, 409, 410, 366, 412, 95, 165, 163, 371, 96, + /* 1920 */ 373, 358, 95, 35, 35, 35, 44, 35, 35, 366, + /* 1930 */ 47, 0, 96, 96, 371, 96, 373, 0, 96, 0, + /* 1940 */ 95, 47, 0, 96, 95, 398, 96, 39, 95, 402, + /* 1950 */ 95, 95, 405, 406, 407, 408, 409, 410, 47, 412, + /* 1960 */ 44, 398, 166, 164, 105, 402, 2, 327, 405, 406, + /* 1970 */ 407, 408, 409, 410, 243, 412, 228, 22, 22, 95, + /* 1980 */ 47, 96, 95, 47, 106, 230, 228, 35, 35, 35, + /* 1990 */ 95, 327, 96, 96, 95, 95, 35, 96, 358, 95, + /* 2000 */ 35, 96, 95, 206, 35, 96, 366, 95, 208, 96, + /* 2010 */ 95, 371, 95, 373, 96, 96, 95, 119, 22, 95, + /* 2020 */ 44, 119, 358, 95, 35, 119, 22, 107, 35, 119, + /* 2030 */ 366, 64, 35, 95, 63, 371, 35, 373, 398, 92, + /* 2040 */ 35, 35, 402, 35, 35, 405, 406, 407, 408, 409, + /* 2050 */ 410, 35, 412, 327, 35, 35, 70, 44, 35, 35, + /* 2060 */ 35, 22, 398, 35, 35, 35, 402, 35, 70, 405, + /* 2070 */ 406, 407, 408, 409, 410, 35, 412, 35, 35, 35, + /* 2080 */ 22, 35, 0, 327, 358, 35, 48, 39, 0, 48, + /* 2090 */ 35, 39, 366, 0, 35, 48, 39, 371, 0, 373, + /* 2100 */ 35, 48, 39, 0, 35, 35, 0, 22, 21, 461, + /* 2110 */ 461, 22, 22, 21, 358, 20, 461, 461, 461, 461, + /* 2120 */ 461, 461, 366, 461, 398, 461, 461, 371, 402, 373, + /* 2130 */ 461, 405, 406, 407, 408, 409, 410, 461, 412, 461, + /* 2140 */ 461, 327, 461, 461, 461, 461, 461, 461, 461, 461, + /* 2150 */ 461, 461, 461, 461, 398, 461, 461, 327, 402, 461, + /* 2160 */ 461, 405, 406, 407, 408, 409, 410, 461, 412, 461, + /* 2170 */ 461, 461, 358, 461, 461, 461, 461, 461, 461, 461, + /* 2180 */ 366, 461, 461, 461, 461, 371, 461, 373, 358, 461, + /* 2190 */ 461, 461, 461, 461, 461, 461, 366, 461, 461, 461, + /* 2200 */ 461, 371, 327, 373, 461, 461, 461, 461, 461, 461, + /* 2210 */ 461, 461, 398, 461, 461, 461, 402, 461, 327, 405, + /* 2220 */ 406, 407, 408, 409, 410, 461, 412, 461, 398, 461, + /* 2230 */ 461, 461, 402, 358, 461, 405, 406, 407, 408, 409, + /* 2240 */ 410, 366, 412, 461, 461, 461, 371, 461, 373, 358, + /* 2250 */ 461, 461, 461, 461, 461, 461, 461, 366, 461, 461, + /* 2260 */ 461, 461, 371, 461, 373, 461, 461, 461, 461, 461, + /* 2270 */ 461, 461, 461, 398, 461, 461, 461, 402, 461, 461, + /* 2280 */ 405, 406, 407, 408, 409, 410, 461, 412, 461, 398, + /* 2290 */ 461, 461, 461, 402, 461, 327, 405, 406, 407, 408, + /* 2300 */ 409, 410, 461, 412, 461, 461, 461, 461, 461, 461, + /* 2310 */ 461, 461, 461, 461, 461, 461, 461, 461, 461, 327, + /* 2320 */ 461, 461, 461, 461, 461, 461, 358, 461, 461, 461, + /* 2330 */ 461, 461, 461, 461, 366, 461, 461, 461, 461, 371, + /* 2340 */ 461, 373, 461, 461, 461, 461, 461, 461, 461, 461, + /* 2350 */ 358, 461, 461, 461, 461, 461, 461, 461, 366, 461, + /* 2360 */ 461, 461, 461, 371, 461, 373, 398, 461, 461, 461, + /* 2370 */ 402, 461, 461, 405, 406, 407, 408, 409, 410, 461, + /* 2380 */ 412, 327, 461, 461, 461, 461, 461, 461, 461, 461, + /* 2390 */ 398, 461, 461, 461, 402, 461, 461, 405, 406, 407, + /* 2400 */ 408, 409, 410, 461, 412, 461, 461, 461, 461, 461, + /* 2410 */ 461, 327, 358, 461, 461, 461, 461, 461, 461, 461, + /* 2420 */ 366, 461, 461, 461, 461, 371, 461, 373, 461, 461, + /* 2430 */ 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, + /* 2440 */ 461, 461, 358, 461, 461, 461, 461, 461, 461, 461, + /* 2450 */ 366, 461, 398, 461, 461, 371, 402, 373, 461, 405, + /* 2460 */ 406, 407, 408, 409, 410, 461, 412, 461, 461, 327, + /* 2470 */ 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, + /* 2480 */ 461, 461, 398, 461, 461, 327, 402, 461, 461, 405, + /* 2490 */ 406, 407, 408, 409, 410, 461, 412, 461, 461, 461, + /* 2500 */ 358, 461, 461, 461, 461, 461, 461, 461, 366, 461, + /* 2510 */ 461, 461, 461, 371, 461, 373, 358, 461, 461, 461, + /* 2520 */ 461, 461, 461, 461, 366, 461, 461, 461, 461, 371, + /* 2530 */ 327, 373, 461, 461, 461, 461, 461, 461, 461, 461, + /* 2540 */ 398, 461, 461, 461, 402, 461, 327, 405, 406, 407, + /* 2550 */ 408, 409, 410, 461, 412, 461, 398, 461, 461, 461, + /* 2560 */ 402, 358, 461, 405, 406, 407, 408, 409, 410, 366, + /* 2570 */ 412, 461, 461, 461, 371, 461, 373, 358, 461, 461, + /* 2580 */ 461, 461, 461, 461, 461, 366, 461, 461, 461, 461, + /* 2590 */ 371, 461, 373, 461, 461, 461, 461, 461, 461, 461, + /* 2600 */ 461, 398, 461, 461, 461, 402, 461, 461, 405, 406, + /* 2610 */ 407, 408, 409, 410, 461, 412, 461, 398, 461, 461, + /* 2620 */ 461, 402, 461, 327, 405, 406, 407, 408, 409, 410, + /* 2630 */ 461, 412, 461, 461, 461, 461, 461, 461, 461, 461, + /* 2640 */ 461, 461, 461, 461, 461, 461, 461, 327, 461, 461, + /* 2650 */ 461, 461, 461, 461, 358, 461, 461, 461, 461, 461, + /* 2660 */ 461, 461, 366, 461, 461, 461, 461, 371, 461, 373, + /* 2670 */ 461, 461, 461, 461, 461, 461, 461, 461, 358, 461, + /* 2680 */ 461, 461, 461, 461, 461, 461, 366, 461, 461, 461, + /* 2690 */ 461, 371, 461, 373, 398, 461, 461, 461, 402, 461, + /* 2700 */ 461, 405, 406, 407, 408, 409, 410, 461, 412, 461, + /* 2710 */ 461, 461, 461, 461, 461, 461, 461, 461, 398, 461, + /* 2720 */ 461, 461, 402, 461, 461, 405, 406, 407, 408, 409, + /* 2730 */ 410, 461, 412, }; -#define YY_SHIFT_COUNT (713) +#define YY_SHIFT_COUNT (714) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2109) +#define YY_SHIFT_MAX (2106) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 925, 0, 71, 0, 288, 288, 288, 288, 288, 288, - /* 10 */ 288, 288, 288, 359, 574, 574, 645, 574, 574, 574, - /* 20 */ 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, - /* 30 */ 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, - /* 40 */ 574, 574, 574, 574, 574, 574, 103, 209, 51, 169, - /* 50 */ 287, 225, 424, 225, 51, 51, 1170, 1170, 1170, 225, - /* 60 */ 1170, 1170, 203, 225, 5, 5, 511, 511, 14, 52, - /* 70 */ 45, 45, 5, 5, 5, 5, 5, 5, 5, 40, - /* 80 */ 5, 5, 28, 5, 5, 99, 5, 177, 5, 40, - /* 90 */ 410, 5, 5, 410, 5, 410, 410, 410, 5, 193, - /* 100 */ 783, 34, 34, 587, 451, 932, 932, 932, 932, 932, - /* 110 */ 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, - /* 120 */ 932, 932, 932, 932, 1522, 332, 14, 52, 192, 325, - /* 130 */ 87, 87, 87, 378, 372, 372, 325, 621, 621, 621, - /* 140 */ 539, 177, 492, 410, 673, 410, 673, 673, 539, 711, - /* 150 */ 216, 216, 216, 216, 216, 216, 216, 504, 434, 302, - /* 160 */ 535, 961, 58, 96, 94, 656, 864, 405, 227, 707, - /* 170 */ 842, 518, 715, 784, 869, 715, 1002, 834, 867, 1021, - /* 180 */ 1224, 1099, 1239, 1266, 1239, 1143, 1288, 1288, 1239, 1143, - /* 190 */ 1143, 1230, 1288, 1288, 1288, 1317, 1317, 1333, 28, 177, - /* 200 */ 28, 1337, 1345, 28, 1337, 28, 28, 28, 1288, 28, - /* 210 */ 1342, 1342, 1317, 410, 410, 410, 410, 410, 410, 410, - /* 220 */ 410, 410, 410, 410, 1288, 1317, 673, 673, 1233, 1333, - /* 230 */ 193, 1246, 177, 193, 1288, 1266, 1266, 673, 1185, 1192, - /* 240 */ 673, 1185, 1192, 673, 673, 410, 1191, 1286, 1185, 1190, - /* 250 */ 1197, 1218, 1021, 1212, 1206, 1219, 1245, 621, 1470, 1288, - /* 260 */ 1337, 193, 1482, 1192, 673, 673, 673, 673, 673, 1192, - /* 270 */ 673, 1349, 193, 539, 193, 621, 1436, 1446, 673, 711, - /* 280 */ 1288, 193, 1513, 1317, 2622, 2622, 2622, 2622, 2622, 2622, - /* 290 */ 2622, 2622, 2622, 826, 786, 597, 964, 716, 1057, 752, - /* 300 */ 955, 1172, 1229, 1281, 1255, 1320, 1320, 1320, 1320, 1320, - /* 310 */ 1320, 1320, 1320, 1320, 533, 582, 155, 155, 191, 469, - /* 320 */ 514, 390, 402, 228, 228, 831, 450, 482, 831, 831, - /* 330 */ 831, 713, 873, 970, 1011, 316, 980, 994, 1014, 1016, - /* 340 */ 1053, 959, 1087, 1140, 1076, 967, 1004, 1061, 1034, 943, - /* 350 */ 672, 853, 1080, 1097, 1124, 1126, 1134, 1194, 1188, 847, - /* 360 */ 1069, 1058, 1189, 1112, 1195, 1202, 1203, 1204, 1205, 1208, - /* 370 */ 1119, 1253, 1325, 1142, 1164, 1564, 1570, 1385, 1574, 1575, - /* 380 */ 1534, 1577, 1543, 1380, 1545, 1546, 1548, 1386, 1584, 1552, - /* 390 */ 1560, 1398, 1599, 1401, 1601, 1568, 1611, 1591, 1614, 1580, - /* 400 */ 1434, 1437, 1618, 1621, 1448, 1451, 1633, 1636, 1581, 1637, - /* 410 */ 1638, 1639, 1598, 1641, 1642, 1649, 1652, 1653, 1654, 1655, - /* 420 */ 1656, 1494, 1609, 1646, 1506, 1658, 1660, 1661, 1662, 1664, - /* 430 */ 1665, 1672, 1674, 1676, 1677, 1680, 1681, 1688, 1690, 1691, - /* 440 */ 1650, 1693, 1695, 1696, 1697, 1698, 1678, 1699, 1701, 1702, - /* 450 */ 1569, 1703, 1705, 1671, 1707, 1657, 1708, 1663, 1711, 1712, - /* 460 */ 1684, 1679, 1669, 1673, 1709, 1682, 1713, 1683, 1716, 1692, - /* 470 */ 1689, 1719, 1731, 1736, 1700, 1563, 1737, 1741, 1742, 1686, - /* 480 */ 1743, 1744, 1710, 1704, 1715, 1746, 1720, 1714, 1725, 1748, - /* 490 */ 1733, 1722, 1727, 1751, 1745, 1723, 1749, 1782, 1784, 1785, - /* 500 */ 1787, 1685, 1694, 1755, 1770, 1794, 1760, 1762, 1764, 1765, - /* 510 */ 1757, 1758, 1769, 1772, 1783, 1773, 1809, 1788, 1812, 1792, - /* 520 */ 1766, 1815, 1795, 1786, 1819, 1789, 1823, 1796, 1833, 1813, - /* 530 */ 1814, 1802, 1804, 1648, 1747, 1759, 1841, 1706, 1818, 1844, - /* 540 */ 1675, 1834, 1721, 1724, 1855, 1857, 1729, 1717, 1858, 1816, - /* 550 */ 1615, 1767, 1774, 1776, 1777, 1821, 1824, 1778, 1781, 1790, - /* 560 */ 1793, 1791, 1828, 1830, 1831, 1798, 1835, 1635, 1800, 1801, - /* 570 */ 1878, 1846, 1687, 1869, 1871, 1873, 1874, 1877, 1885, 1817, - /* 580 */ 1826, 1876, 1726, 1880, 1879, 1927, 1928, 1929, 1673, 1883, - /* 590 */ 1836, 1838, 1840, 1842, 1847, 1780, 1848, 1932, 1900, 1797, - /* 600 */ 1849, 1843, 1673, 1898, 1903, 1730, 1735, 1732, 1948, 1930, - /* 610 */ 1753, 1856, 1864, 1867, 1870, 1868, 1882, 1906, 1872, 1875, - /* 620 */ 1933, 1886, 1961, 1799, 1889, 1881, 1901, 1963, 1965, 1908, - /* 630 */ 1909, 1969, 1912, 1913, 1973, 1916, 1917, 1977, 1919, 1920, - /* 640 */ 1983, 1924, 1902, 1904, 1905, 1910, 1974, 1915, 1925, 1981, - /* 650 */ 1936, 1992, 1937, 1981, 1981, 2006, 1975, 1978, 2008, 2009, - /* 660 */ 2012, 2013, 2020, 2022, 2023, 2024, 2025, 2027, 1993, 1976, - /* 670 */ 2021, 2029, 2031, 2032, 2047, 2035, 2036, 2037, 2003, 1757, - /* 680 */ 2039, 1758, 2040, 2042, 2043, 2044, 2058, 2046, 2082, 2048, - /* 690 */ 2038, 2049, 2085, 2052, 2045, 2051, 2094, 2060, 2050, 2057, - /* 700 */ 2097, 2064, 2053, 2063, 2103, 2069, 2073, 2109, 2088, 2091, - /* 710 */ 2089, 2092, 2096, 2093, + /* 0 */ 133, 0, 71, 0, 289, 289, 289, 289, 289, 289, + /* 10 */ 289, 289, 289, 360, 576, 576, 647, 576, 576, 576, + /* 20 */ 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + /* 30 */ 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + /* 40 */ 576, 576, 576, 576, 576, 576, 59, 225, 110, 293, + /* 50 */ 58, 281, 473, 281, 110, 110, 940, 940, 940, 281, + /* 60 */ 940, 940, 347, 281, 78, 78, 422, 422, 36, 51, + /* 70 */ 230, 230, 78, 78, 78, 78, 78, 78, 78, 217, + /* 80 */ 78, 78, 204, 78, 78, 355, 78, 434, 78, 217, + /* 90 */ 456, 78, 78, 456, 78, 456, 456, 456, 78, 299, + /* 100 */ 786, 610, 610, 503, 112, 1116, 1116, 1116, 1116, 1116, + /* 110 */ 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + /* 120 */ 1116, 1116, 1116, 1116, 563, 357, 36, 51, 413, 117, + /* 130 */ 220, 220, 220, 429, 379, 379, 117, 517, 517, 517, + /* 140 */ 343, 434, 174, 456, 475, 456, 475, 475, 343, 532, + /* 150 */ 323, 323, 323, 323, 323, 323, 323, 1601, 523, 181, + /* 160 */ 712, 809, 441, 581, 439, 674, 730, 790, 663, 967, + /* 170 */ 655, 939, 808, 588, 802, 808, 1042, 834, 956, 1106, + /* 180 */ 1309, 1200, 1341, 1371, 1341, 1234, 1376, 1376, 1341, 1234, + /* 190 */ 1234, 1308, 1376, 1376, 1376, 1399, 1399, 1403, 204, 434, + /* 200 */ 204, 1406, 1414, 204, 1406, 204, 204, 204, 1376, 204, + /* 210 */ 1404, 1404, 1399, 456, 456, 456, 456, 456, 456, 456, + /* 220 */ 456, 456, 456, 456, 1376, 1399, 475, 475, 1269, 1403, + /* 230 */ 299, 1284, 434, 299, 1376, 1371, 1371, 475, 1217, 1232, + /* 240 */ 475, 1217, 1232, 475, 475, 456, 1233, 1324, 1217, 1235, + /* 250 */ 1237, 1256, 1106, 1241, 1247, 1251, 1275, 517, 1512, 1376, + /* 260 */ 1406, 299, 1519, 1232, 475, 475, 475, 475, 475, 1232, + /* 270 */ 475, 1396, 299, 343, 299, 517, 1475, 1478, 475, 532, + /* 280 */ 1376, 299, 1540, 1399, 2733, 2733, 2733, 2733, 2733, 2733, + /* 290 */ 2733, 2733, 2733, 828, 1034, 457, 295, 260, 549, 759, + /* 300 */ 969, 874, 1033, 1227, 1211, 1279, 1279, 1279, 1279, 1279, + /* 310 */ 1279, 1279, 1279, 1279, 1041, 125, 13, 13, 506, 400, + /* 320 */ 516, 615, 587, 297, 297, 353, 53, 248, 353, 353, + /* 330 */ 353, 283, 1058, 572, 1043, 987, 1023, 1022, 1037, 1085, + /* 340 */ 1175, 1081, 1083, 1153, 915, 1079, 1098, 1100, 1101, 994, + /* 350 */ 990, 1057, 93, 1159, 1185, 1201, 1203, 1204, 1220, 1205, + /* 360 */ 1097, 1120, 1114, 1260, 1259, 1263, 1264, 1266, 1267, 1288, + /* 370 */ 1302, 40, 1122, 1332, 1315, 1327, 1594, 1606, 1420, 1609, + /* 380 */ 1610, 1569, 1612, 1578, 1415, 1579, 1581, 1583, 1419, 1622, + /* 390 */ 1588, 1595, 1432, 1633, 1435, 1636, 1602, 1638, 1619, 1642, + /* 400 */ 1608, 1463, 1466, 1648, 1650, 1477, 1476, 1660, 1661, 1615, + /* 410 */ 1678, 1680, 1681, 1623, 1666, 1667, 1668, 1669, 1670, 1671, + /* 420 */ 1672, 1673, 1513, 1639, 1675, 1525, 1682, 1684, 1685, 1692, + /* 430 */ 1696, 1697, 1699, 1700, 1701, 1703, 1704, 1705, 1706, 1708, + /* 440 */ 1710, 1674, 1711, 1712, 1713, 1714, 1715, 1695, 1718, 1719, + /* 450 */ 1720, 1586, 1722, 1723, 1689, 1732, 1677, 1733, 1679, 1736, + /* 460 */ 1739, 1686, 1687, 1683, 1693, 1716, 1702, 1737, 1707, 1729, + /* 470 */ 1717, 1721, 1747, 1752, 1753, 1724, 1587, 1759, 1762, 1765, + /* 480 */ 1709, 1766, 1767, 1735, 1727, 1738, 1772, 1741, 1730, 1740, + /* 490 */ 1774, 1745, 1734, 1742, 1783, 1749, 1744, 1750, 1788, 1790, + /* 500 */ 1793, 1795, 1694, 1725, 1776, 1775, 1802, 1777, 1779, 1780, + /* 510 */ 1781, 1773, 1778, 1784, 1785, 1787, 1786, 1818, 1801, 1824, + /* 520 */ 1803, 1782, 1828, 1809, 1804, 1841, 1807, 1843, 1810, 1846, + /* 530 */ 1825, 1829, 1813, 1815, 1816, 1757, 1760, 1854, 1698, 1821, + /* 540 */ 1858, 1688, 1840, 1743, 1751, 1863, 1864, 1754, 1728, 1862, + /* 550 */ 1822, 1618, 1791, 1789, 1792, 1805, 1826, 1832, 1806, 1794, + /* 560 */ 1808, 1820, 1823, 1833, 1831, 1834, 1827, 1835, 1620, 1836, + /* 570 */ 1837, 1869, 1838, 1631, 1848, 1888, 1889, 1890, 1892, 1893, + /* 580 */ 1839, 1842, 1852, 1731, 1882, 1883, 1931, 1937, 1939, 1693, + /* 590 */ 1894, 1845, 1847, 1850, 1849, 1853, 1796, 1855, 1942, 1908, + /* 600 */ 1799, 1856, 1859, 1693, 1911, 1916, 1748, 1755, 1758, 1964, + /* 610 */ 1955, 1797, 1884, 1885, 1887, 1896, 1895, 1897, 1933, 1899, + /* 620 */ 1900, 1936, 1901, 1956, 1800, 1904, 1878, 1905, 1952, 1953, + /* 630 */ 1907, 1909, 1954, 1912, 1913, 1961, 1915, 1918, 1965, 1917, + /* 640 */ 1919, 1969, 1921, 1898, 1902, 1906, 1910, 1996, 1920, 1924, + /* 650 */ 1976, 1928, 1989, 1938, 1976, 1976, 2004, 1967, 1971, 1993, + /* 660 */ 1997, 2001, 2005, 2006, 2008, 2009, 2016, 2019, 2020, 1986, + /* 670 */ 1947, 2013, 2023, 2024, 2025, 2039, 2028, 2029, 2030, 1998, + /* 680 */ 1773, 2032, 1778, 2040, 2042, 2043, 2044, 2058, 2046, 2082, + /* 690 */ 2050, 2038, 2048, 2088, 2055, 2041, 2052, 2093, 2059, 2047, + /* 700 */ 2057, 2098, 2065, 2053, 2063, 2103, 2069, 2070, 2106, 2085, + /* 710 */ 2087, 2089, 2090, 2092, 2095, }; #define YY_REDUCE_COUNT (292) -#define YY_REDUCE_MIN (-427) -#define YY_REDUCE_MAX (2209) +#define YY_REDUCE_MIN (-414) +#define YY_REDUCE_MAX (2320) static const short yy_reduce_ofst[] = { - /* 0 */ -19, -297, -9, 277, 633, 737, 792, 852, 907, 1000, - /* 10 */ 1068, 1098, 1128, -171, 1184, 75, 339, 1200, 1261, 1277, - /* 20 */ 1351, 1367, 1420, 1440, 1493, 1509, 1567, 1583, 1628, 1644, - /* 30 */ 1718, 1734, 1779, 1807, 1837, 1865, 1895, 1955, 1972, 2000, - /* 40 */ 2062, 2090, 2107, 2135, 2193, 2209, -278, -292, -170, -12, - /* 50 */ 283, 563, 890, 913, -329, -183, -350, -316, 235, -427, - /* 60 */ 622, 676, -424, 373, -330, -221, -331, -293, -302, -305, - /* 70 */ -211, -146, -175, 69, 122, 187, 254, 483, 486, -290, - /* 80 */ 612, 630, 1, 660, 666, -277, 702, -66, 725, -154, - /* 90 */ -349, 740, 741, 281, 745, 392, 334, 472, 787, -160, - /* 100 */ -296, -405, -405, -184, -267, -172, -18, 36, 115, 118, - /* 110 */ 278, 303, 306, 346, 384, 400, 449, 510, 547, 549, - /* 120 */ 617, 618, 619, 637, 4, -152, 230, -236, 126, 130, - /* 130 */ -152, 289, 291, 292, 238, 286, 134, 509, 513, 519, - /* 140 */ -48, 157, 387, 232, 443, 168, 632, 639, 679, 426, - /* 150 */ -342, 367, 456, 529, 695, 733, 758, -339, 802, 801, - /* 160 */ 770, 730, 724, 838, 749, 848, 848, 880, 840, 885, - /* 170 */ 857, 854, 803, 803, 804, 803, 828, 832, 848, 870, - /* 180 */ 875, 891, 905, 911, 928, 931, 975, 976, 940, 944, - /* 190 */ 946, 996, 1007, 1008, 1012, 1020, 1022, 960, 1013, 983, - /* 200 */ 1018, 1025, 977, 1029, 1036, 1033, 1037, 1038, 1042, 1039, - /* 210 */ 1059, 1062, 1067, 1041, 1043, 1045, 1046, 1055, 1056, 1060, - /* 220 */ 1063, 1064, 1070, 1071, 1081, 1082, 1044, 1049, 1035, 1040, - /* 230 */ 1091, 1048, 1065, 1094, 1101, 1066, 1072, 1074, 999, 1073, - /* 240 */ 1075, 1009, 1077, 1078, 1083, 848, 1017, 1005, 1019, 1027, - /* 250 */ 1023, 1030, 1079, 1024, 1028, 1032, 803, 1123, 1089, 1160, - /* 260 */ 1161, 1159, 1125, 1127, 1141, 1144, 1145, 1147, 1148, 1137, - /* 270 */ 1149, 1146, 1186, 1174, 1193, 1158, 1117, 1181, 1173, 1198, - /* 280 */ 1210, 1209, 1223, 1225, 1168, 1165, 1169, 1175, 1211, 1213, - /* 290 */ 1215, 1228, 1244, + /* 0 */ -292, -297, -8, 233, 597, 620, 706, 783, 807, 852, + /* 10 */ 907, 963, 1008, 1031, 1119, -320, 54, 1135, 1191, 1219, + /* 20 */ 1281, 1336, 1398, 1428, 1486, 1502, 1547, 1563, 1640, 1664, + /* 30 */ 1726, 1756, 1814, 1830, 1875, 1891, 1968, 1992, 2054, 2084, + /* 40 */ 2142, 2158, 2203, 2219, 2296, 2320, -193, 256, 320, -383, + /* 50 */ -332, -110, 605, 893, 302, 642, -337, -16, 273, -414, + /* 60 */ -352, -171, 284, 310, -235, -199, -331, -187, -340, -368, + /* 70 */ -255, -167, -304, -106, 190, 313, 387, 622, 623, -288, + /* 80 */ 631, 784, 50, 817, 897, -43, 902, -213, 917, 35, + /* 90 */ -159, 918, 937, -32, 998, -1, 255, 4, 630, -22, + /* 100 */ 144, -411, -411, 215, -240, -312, 219, 301, 383, 389, + /* 110 */ 436, 510, 513, 550, 552, 571, 593, 619, 621, 629, + /* 120 */ 640, 688, 692, 697, -346, -228, -109, -329, 195, 173, + /* 130 */ -228, 254, 339, -31, 199, 341, 470, 454, 583, 584, + /* 140 */ -226, 224, 363, 616, 462, 627, 682, 694, 600, 636, + /* 150 */ -343, 306, 318, 364, 396, 452, 519, 309, 557, 670, + /* 160 */ 606, 579, 646, 738, 740, 850, 850, 890, 847, 904, + /* 170 */ 900, 863, 856, 856, 833, 856, 926, 916, 850, 955, + /* 180 */ 978, 989, 1010, 1011, 1015, 1019, 1064, 1065, 1025, 1029, + /* 190 */ 1032, 1066, 1072, 1076, 1077, 1092, 1093, 1030, 1087, 1051, + /* 200 */ 1089, 1099, 1059, 1107, 1111, 1109, 1110, 1112, 1117, 1113, + /* 210 */ 1121, 1123, 1126, 1102, 1105, 1108, 1115, 1118, 1124, 1125, + /* 220 */ 1128, 1129, 1130, 1131, 1132, 1136, 1086, 1103, 1061, 1073, + /* 230 */ 1133, 1084, 1127, 1140, 1145, 1090, 1094, 1134, 1040, 1137, + /* 240 */ 1138, 1050, 1144, 1139, 1141, 850, 1052, 1054, 1062, 1067, + /* 250 */ 1063, 1075, 1148, 1055, 1068, 1082, 856, 1154, 1146, 1199, + /* 260 */ 1202, 1197, 1167, 1166, 1182, 1183, 1184, 1187, 1188, 1170, + /* 270 */ 1189, 1180, 1228, 1214, 1230, 1206, 1149, 1212, 1207, 1231, + /* 280 */ 1240, 1242, 1250, 1254, 1192, 1190, 1208, 1215, 1236, 1239, + /* 290 */ 1252, 1265, 1262, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 10 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 20 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 30 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 40 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 50 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 60 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1857, 1602, - /* 70 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 80 */ 1602, 1602, 1680, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 90 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1678, - /* 100 */ 1850, 2050, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 110 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 120 */ 1602, 1602, 1602, 1602, 1602, 2062, 1602, 1602, 1680, 1602, - /* 130 */ 2062, 2062, 2062, 1678, 2022, 2022, 1602, 1602, 1602, 1602, - /* 140 */ 1787, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1787, 1602, - /* 150 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1896, 1602, 1602, - /* 160 */ 2087, 2142, 1602, 1602, 2090, 1602, 1602, 1602, 1862, 1602, - /* 170 */ 1740, 2077, 2054, 2068, 2126, 2055, 2052, 2071, 1602, 2081, - /* 180 */ 1602, 1889, 1855, 1602, 1855, 1852, 1602, 1602, 1855, 1852, - /* 190 */ 1852, 1731, 1602, 1602, 1602, 1602, 1602, 1602, 1680, 1602, - /* 200 */ 1680, 1602, 1602, 1680, 1602, 1680, 1680, 1680, 1602, 1680, - /* 210 */ 1659, 1659, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 220 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1909, 1602, - /* 230 */ 1678, 1898, 1602, 1678, 1602, 1602, 1602, 1602, 2097, 2095, - /* 240 */ 1602, 2097, 2095, 1602, 1602, 1602, 2111, 2107, 2097, 2115, - /* 250 */ 2113, 2083, 2081, 2145, 2132, 2128, 2068, 1602, 1602, 1602, - /* 260 */ 1602, 1678, 1602, 2095, 1602, 1602, 1602, 1602, 1602, 2095, - /* 270 */ 1602, 1602, 1678, 1602, 1678, 1602, 1602, 1756, 1602, 1602, - /* 280 */ 1602, 1678, 1634, 1602, 1891, 1902, 1874, 1874, 1790, 1790, - /* 290 */ 1790, 1681, 1607, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 300 */ 1602, 1602, 1602, 1602, 1602, 2110, 2109, 1978, 1602, 2026, - /* 310 */ 2025, 2024, 2015, 1977, 1752, 1602, 1976, 1975, 1602, 1602, - /* 320 */ 1602, 1602, 1602, 1870, 1869, 1969, 1602, 1602, 1970, 1968, - /* 330 */ 1967, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 340 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 2129, - /* 350 */ 2133, 1602, 1602, 1602, 1602, 1602, 1602, 2051, 1602, 1602, - /* 360 */ 1602, 1602, 1602, 1951, 1602, 1602, 1602, 1602, 1602, 1602, - /* 370 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 380 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 390 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 400 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 410 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 420 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 430 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 440 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 450 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 460 */ 1602, 1602, 1639, 1956, 1602, 1602, 1602, 1602, 1602, 1602, - /* 470 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 480 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 490 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 500 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 510 */ 1719, 1718, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 520 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 530 */ 1602, 1602, 1602, 1602, 1960, 1602, 1602, 1602, 1602, 1602, - /* 540 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 2125, 2084, - /* 550 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 560 */ 1602, 1602, 1602, 1602, 1951, 1602, 2108, 1602, 1602, 2123, - /* 570 */ 1602, 2127, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 2061, - /* 580 */ 2057, 1602, 1602, 2053, 1602, 1602, 1602, 1602, 1959, 1602, - /* 590 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 600 */ 1602, 1602, 1950, 1602, 2012, 1602, 1602, 1602, 2046, 1602, - /* 610 */ 1602, 1997, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 620 */ 1602, 1960, 1602, 1963, 1602, 1602, 1602, 1602, 1602, 1784, - /* 630 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 640 */ 1602, 1602, 1769, 1767, 1766, 1765, 1602, 1762, 1602, 1797, - /* 650 */ 1602, 1602, 1602, 1793, 1792, 1602, 1602, 1602, 1602, 1602, - /* 660 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 670 */ 1699, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1691, - /* 680 */ 1602, 1690, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 690 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 700 */ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, - /* 710 */ 1602, 1602, 1602, 1602, + /* 0 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 10 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 20 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 30 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 40 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 50 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 60 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1860, 1605, + /* 70 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 80 */ 1605, 1605, 1683, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 90 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1681, + /* 100 */ 1853, 2054, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 110 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 120 */ 1605, 1605, 1605, 1605, 1605, 2066, 1605, 1605, 1683, 1605, + /* 130 */ 2066, 2066, 2066, 1681, 2026, 2026, 1605, 1605, 1605, 1605, + /* 140 */ 1790, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1790, 1605, + /* 150 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1899, 1605, 1605, + /* 160 */ 2091, 2146, 1605, 1605, 2094, 1605, 1605, 1605, 1865, 1605, + /* 170 */ 1743, 2081, 2058, 2072, 2130, 2059, 2056, 2075, 1605, 2085, + /* 180 */ 1605, 1892, 1858, 1605, 1858, 1855, 1605, 1605, 1858, 1855, + /* 190 */ 1855, 1734, 1605, 1605, 1605, 1605, 1605, 1605, 1683, 1605, + /* 200 */ 1683, 1605, 1605, 1683, 1605, 1683, 1683, 1683, 1605, 1683, + /* 210 */ 1662, 1662, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 220 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1913, 1605, + /* 230 */ 1681, 1901, 1605, 1681, 1605, 1605, 1605, 1605, 2101, 2099, + /* 240 */ 1605, 2101, 2099, 1605, 1605, 1605, 2115, 2111, 2101, 2119, + /* 250 */ 2117, 2087, 2085, 2149, 2136, 2132, 2072, 1605, 1605, 1605, + /* 260 */ 1605, 1681, 1605, 2099, 1605, 1605, 1605, 1605, 1605, 2099, + /* 270 */ 1605, 1605, 1681, 1605, 1681, 1605, 1605, 1759, 1605, 1605, + /* 280 */ 1605, 1681, 1637, 1605, 1894, 1905, 1877, 1877, 1793, 1793, + /* 290 */ 1793, 1684, 1610, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 300 */ 1605, 1605, 1605, 1605, 1605, 2114, 2113, 1982, 1605, 2030, + /* 310 */ 2029, 2028, 2019, 1981, 1755, 1605, 1980, 1979, 1605, 1605, + /* 320 */ 1605, 1605, 1605, 1873, 1872, 1973, 1605, 1605, 1974, 1972, + /* 330 */ 1971, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 340 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 350 */ 2133, 2137, 1605, 1605, 1605, 1605, 1605, 1605, 2055, 1605, + /* 360 */ 1605, 1605, 1605, 1605, 1955, 1605, 1605, 1605, 1605, 1605, + /* 370 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 380 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 390 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 400 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 410 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 420 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 430 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 440 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 450 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 460 */ 1605, 1605, 1605, 1642, 1960, 1605, 1605, 1605, 1605, 1605, + /* 470 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 480 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 490 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 500 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 510 */ 1605, 1722, 1721, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 520 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 530 */ 1605, 1605, 1605, 1605, 1605, 1964, 1605, 1605, 1605, 1605, + /* 540 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 2129, + /* 550 */ 2088, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 560 */ 1605, 1605, 1605, 1605, 1605, 1955, 1605, 2112, 1605, 1605, + /* 570 */ 2127, 1605, 2131, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 580 */ 2065, 2061, 1605, 1605, 2057, 1605, 1605, 1605, 1605, 1963, + /* 590 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 600 */ 1605, 1605, 1605, 1954, 1605, 2016, 1605, 1605, 1605, 2050, + /* 610 */ 1605, 1605, 2001, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 620 */ 1605, 1605, 1964, 1605, 1967, 1605, 1605, 1605, 1605, 1605, + /* 630 */ 1787, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 640 */ 1605, 1605, 1605, 1772, 1770, 1769, 1768, 1605, 1765, 1605, + /* 650 */ 1800, 1605, 1605, 1605, 1796, 1795, 1605, 1605, 1605, 1605, + /* 660 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 670 */ 1605, 1702, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 680 */ 1694, 1605, 1693, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 690 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 700 */ 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, 1605, + /* 710 */ 1605, 1605, 1605, 1605, 1605, }; /********** End of lemon-generated parsing tables *****************************/ @@ -1178,6 +1167,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* IGNORE => nothing */ 0, /* EXPIRED => nothing */ 0, /* FILL_HISTORY => nothing */ + 0, /* UPDATE => nothing */ 0, /* SUBTABLE => nothing */ 0, /* KILL => nothing */ 0, /* CONNECTION => nothing */ @@ -1211,7 +1201,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* COUNT => nothing */ 0, /* LAST_ROW => nothing */ 0, /* CASE => nothing */ - 270, /* END => ABORT */ + 271, /* END => ABORT */ 0, /* WHEN => nothing */ 0, /* THEN => nothing */ 0, /* ELSE => nothing */ @@ -1255,59 +1245,58 @@ static const YYCODETYPE yyFallback[] = { 0, /* ASC => nothing */ 0, /* NULLS => nothing */ 0, /* ABORT => nothing */ - 270, /* AFTER => ABORT */ - 270, /* ATTACH => ABORT */ - 270, /* BEFORE => ABORT */ - 270, /* BEGIN => ABORT */ - 270, /* BITAND => ABORT */ - 270, /* BITNOT => ABORT */ - 270, /* BITOR => ABORT */ - 270, /* BLOCKS => ABORT */ - 270, /* CHANGE => ABORT */ - 270, /* COMMA => ABORT */ - 270, /* COMPACT => ABORT */ - 270, /* CONCAT => ABORT */ - 270, /* CONFLICT => ABORT */ - 270, /* COPY => ABORT */ - 270, /* DEFERRED => ABORT */ - 270, /* DELIMITERS => ABORT */ - 270, /* DETACH => ABORT */ - 270, /* DIVIDE => ABORT */ - 270, /* DOT => ABORT */ - 270, /* EACH => ABORT */ - 270, /* FAIL => ABORT */ - 270, /* FILE => ABORT */ - 270, /* FOR => ABORT */ - 270, /* GLOB => ABORT */ - 270, /* ID => ABORT */ - 270, /* IMMEDIATE => ABORT */ - 270, /* IMPORT => ABORT */ - 270, /* INITIALLY => ABORT */ - 270, /* INSTEAD => ABORT */ - 270, /* ISNULL => ABORT */ - 270, /* KEY => ABORT */ - 270, /* MODULES => ABORT */ - 270, /* NK_BITNOT => ABORT */ - 270, /* NK_SEMI => ABORT */ - 270, /* NOTNULL => ABORT */ - 270, /* OF => ABORT */ - 270, /* PLUS => ABORT */ - 270, /* PRIVILEGE => ABORT */ - 270, /* RAISE => ABORT */ - 270, /* REPLACE => ABORT */ - 270, /* RESTRICT => ABORT */ - 270, /* ROW => ABORT */ - 270, /* SEMI => ABORT */ - 270, /* STAR => ABORT */ - 270, /* STATEMENT => ABORT */ - 270, /* STRICT => ABORT */ - 270, /* STRING => ABORT */ - 270, /* TIMES => ABORT */ - 270, /* UPDATE => ABORT */ - 270, /* VALUES => ABORT */ - 270, /* VARIABLE => ABORT */ - 270, /* VIEW => ABORT */ - 270, /* WAL => ABORT */ + 271, /* AFTER => ABORT */ + 271, /* ATTACH => ABORT */ + 271, /* BEFORE => ABORT */ + 271, /* BEGIN => ABORT */ + 271, /* BITAND => ABORT */ + 271, /* BITNOT => ABORT */ + 271, /* BITOR => ABORT */ + 271, /* BLOCKS => ABORT */ + 271, /* CHANGE => ABORT */ + 271, /* COMMA => ABORT */ + 271, /* COMPACT => ABORT */ + 271, /* CONCAT => ABORT */ + 271, /* CONFLICT => ABORT */ + 271, /* COPY => ABORT */ + 271, /* DEFERRED => ABORT */ + 271, /* DELIMITERS => ABORT */ + 271, /* DETACH => ABORT */ + 271, /* DIVIDE => ABORT */ + 271, /* DOT => ABORT */ + 271, /* EACH => ABORT */ + 271, /* FAIL => ABORT */ + 271, /* FILE => ABORT */ + 271, /* FOR => ABORT */ + 271, /* GLOB => ABORT */ + 271, /* ID => ABORT */ + 271, /* IMMEDIATE => ABORT */ + 271, /* IMPORT => ABORT */ + 271, /* INITIALLY => ABORT */ + 271, /* INSTEAD => ABORT */ + 271, /* ISNULL => ABORT */ + 271, /* KEY => ABORT */ + 271, /* MODULES => ABORT */ + 271, /* NK_BITNOT => ABORT */ + 271, /* NK_SEMI => ABORT */ + 271, /* NOTNULL => ABORT */ + 271, /* OF => ABORT */ + 271, /* PLUS => ABORT */ + 271, /* PRIVILEGE => ABORT */ + 271, /* RAISE => ABORT */ + 271, /* REPLACE => ABORT */ + 271, /* RESTRICT => ABORT */ + 271, /* ROW => ABORT */ + 271, /* SEMI => ABORT */ + 271, /* STAR => ABORT */ + 271, /* STATEMENT => ABORT */ + 271, /* STRICT => ABORT */ + 271, /* STRING => ABORT */ + 271, /* TIMES => ABORT */ + 271, /* VALUES => ABORT */ + 271, /* VARIABLE => ABORT */ + 271, /* VIEW => ABORT */ + 271, /* WAL => ABORT */ }; #endif /* YYFALLBACK */ @@ -1589,132 +1578,132 @@ static const char *const yyTokenName[] = { /* 191 */ "IGNORE", /* 192 */ "EXPIRED", /* 193 */ "FILL_HISTORY", - /* 194 */ "SUBTABLE", - /* 195 */ "KILL", - /* 196 */ "CONNECTION", - /* 197 */ "TRANSACTION", - /* 198 */ "BALANCE", - /* 199 */ "VGROUP", - /* 200 */ "MERGE", - /* 201 */ "REDISTRIBUTE", - /* 202 */ "SPLIT", - /* 203 */ "DELETE", - /* 204 */ "INSERT", - /* 205 */ "NULL", - /* 206 */ "NK_QUESTION", - /* 207 */ "NK_ARROW", - /* 208 */ "ROWTS", - /* 209 */ "QSTART", - /* 210 */ "QEND", - /* 211 */ "QDURATION", - /* 212 */ "WSTART", - /* 213 */ "WEND", - /* 214 */ "WDURATION", - /* 215 */ "IROWTS", - /* 216 */ "CAST", - /* 217 */ "NOW", - /* 218 */ "TODAY", - /* 219 */ "TIMEZONE", - /* 220 */ "CLIENT_VERSION", - /* 221 */ "SERVER_VERSION", - /* 222 */ "SERVER_STATUS", - /* 223 */ "CURRENT_USER", - /* 224 */ "COUNT", - /* 225 */ "LAST_ROW", - /* 226 */ "CASE", - /* 227 */ "END", - /* 228 */ "WHEN", - /* 229 */ "THEN", - /* 230 */ "ELSE", - /* 231 */ "BETWEEN", - /* 232 */ "IS", - /* 233 */ "NK_LT", - /* 234 */ "NK_GT", - /* 235 */ "NK_LE", - /* 236 */ "NK_GE", - /* 237 */ "NK_NE", - /* 238 */ "MATCH", - /* 239 */ "NMATCH", - /* 240 */ "CONTAINS", - /* 241 */ "IN", - /* 242 */ "JOIN", - /* 243 */ "INNER", - /* 244 */ "SELECT", - /* 245 */ "DISTINCT", - /* 246 */ "WHERE", - /* 247 */ "PARTITION", - /* 248 */ "BY", - /* 249 */ "SESSION", - /* 250 */ "STATE_WINDOW", - /* 251 */ "SLIDING", - /* 252 */ "FILL", - /* 253 */ "VALUE", - /* 254 */ "VALUE_F", - /* 255 */ "NONE", - /* 256 */ "PREV", - /* 257 */ "NULL_F", - /* 258 */ "LINEAR", - /* 259 */ "NEXT", - /* 260 */ "HAVING", - /* 261 */ "RANGE", - /* 262 */ "EVERY", - /* 263 */ "ORDER", - /* 264 */ "SLIMIT", - /* 265 */ "SOFFSET", - /* 266 */ "LIMIT", - /* 267 */ "OFFSET", - /* 268 */ "ASC", - /* 269 */ "NULLS", - /* 270 */ "ABORT", - /* 271 */ "AFTER", - /* 272 */ "ATTACH", - /* 273 */ "BEFORE", - /* 274 */ "BEGIN", - /* 275 */ "BITAND", - /* 276 */ "BITNOT", - /* 277 */ "BITOR", - /* 278 */ "BLOCKS", - /* 279 */ "CHANGE", - /* 280 */ "COMMA", - /* 281 */ "COMPACT", - /* 282 */ "CONCAT", - /* 283 */ "CONFLICT", - /* 284 */ "COPY", - /* 285 */ "DEFERRED", - /* 286 */ "DELIMITERS", - /* 287 */ "DETACH", - /* 288 */ "DIVIDE", - /* 289 */ "DOT", - /* 290 */ "EACH", - /* 291 */ "FAIL", - /* 292 */ "FILE", - /* 293 */ "FOR", - /* 294 */ "GLOB", - /* 295 */ "ID", - /* 296 */ "IMMEDIATE", - /* 297 */ "IMPORT", - /* 298 */ "INITIALLY", - /* 299 */ "INSTEAD", - /* 300 */ "ISNULL", - /* 301 */ "KEY", - /* 302 */ "MODULES", - /* 303 */ "NK_BITNOT", - /* 304 */ "NK_SEMI", - /* 305 */ "NOTNULL", - /* 306 */ "OF", - /* 307 */ "PLUS", - /* 308 */ "PRIVILEGE", - /* 309 */ "RAISE", - /* 310 */ "REPLACE", - /* 311 */ "RESTRICT", - /* 312 */ "ROW", - /* 313 */ "SEMI", - /* 314 */ "STAR", - /* 315 */ "STATEMENT", - /* 316 */ "STRICT", - /* 317 */ "STRING", - /* 318 */ "TIMES", - /* 319 */ "UPDATE", + /* 194 */ "UPDATE", + /* 195 */ "SUBTABLE", + /* 196 */ "KILL", + /* 197 */ "CONNECTION", + /* 198 */ "TRANSACTION", + /* 199 */ "BALANCE", + /* 200 */ "VGROUP", + /* 201 */ "MERGE", + /* 202 */ "REDISTRIBUTE", + /* 203 */ "SPLIT", + /* 204 */ "DELETE", + /* 205 */ "INSERT", + /* 206 */ "NULL", + /* 207 */ "NK_QUESTION", + /* 208 */ "NK_ARROW", + /* 209 */ "ROWTS", + /* 210 */ "QSTART", + /* 211 */ "QEND", + /* 212 */ "QDURATION", + /* 213 */ "WSTART", + /* 214 */ "WEND", + /* 215 */ "WDURATION", + /* 216 */ "IROWTS", + /* 217 */ "CAST", + /* 218 */ "NOW", + /* 219 */ "TODAY", + /* 220 */ "TIMEZONE", + /* 221 */ "CLIENT_VERSION", + /* 222 */ "SERVER_VERSION", + /* 223 */ "SERVER_STATUS", + /* 224 */ "CURRENT_USER", + /* 225 */ "COUNT", + /* 226 */ "LAST_ROW", + /* 227 */ "CASE", + /* 228 */ "END", + /* 229 */ "WHEN", + /* 230 */ "THEN", + /* 231 */ "ELSE", + /* 232 */ "BETWEEN", + /* 233 */ "IS", + /* 234 */ "NK_LT", + /* 235 */ "NK_GT", + /* 236 */ "NK_LE", + /* 237 */ "NK_GE", + /* 238 */ "NK_NE", + /* 239 */ "MATCH", + /* 240 */ "NMATCH", + /* 241 */ "CONTAINS", + /* 242 */ "IN", + /* 243 */ "JOIN", + /* 244 */ "INNER", + /* 245 */ "SELECT", + /* 246 */ "DISTINCT", + /* 247 */ "WHERE", + /* 248 */ "PARTITION", + /* 249 */ "BY", + /* 250 */ "SESSION", + /* 251 */ "STATE_WINDOW", + /* 252 */ "SLIDING", + /* 253 */ "FILL", + /* 254 */ "VALUE", + /* 255 */ "VALUE_F", + /* 256 */ "NONE", + /* 257 */ "PREV", + /* 258 */ "NULL_F", + /* 259 */ "LINEAR", + /* 260 */ "NEXT", + /* 261 */ "HAVING", + /* 262 */ "RANGE", + /* 263 */ "EVERY", + /* 264 */ "ORDER", + /* 265 */ "SLIMIT", + /* 266 */ "SOFFSET", + /* 267 */ "LIMIT", + /* 268 */ "OFFSET", + /* 269 */ "ASC", + /* 270 */ "NULLS", + /* 271 */ "ABORT", + /* 272 */ "AFTER", + /* 273 */ "ATTACH", + /* 274 */ "BEFORE", + /* 275 */ "BEGIN", + /* 276 */ "BITAND", + /* 277 */ "BITNOT", + /* 278 */ "BITOR", + /* 279 */ "BLOCKS", + /* 280 */ "CHANGE", + /* 281 */ "COMMA", + /* 282 */ "COMPACT", + /* 283 */ "CONCAT", + /* 284 */ "CONFLICT", + /* 285 */ "COPY", + /* 286 */ "DEFERRED", + /* 287 */ "DELIMITERS", + /* 288 */ "DETACH", + /* 289 */ "DIVIDE", + /* 290 */ "DOT", + /* 291 */ "EACH", + /* 292 */ "FAIL", + /* 293 */ "FILE", + /* 294 */ "FOR", + /* 295 */ "GLOB", + /* 296 */ "ID", + /* 297 */ "IMMEDIATE", + /* 298 */ "IMPORT", + /* 299 */ "INITIALLY", + /* 300 */ "INSTEAD", + /* 301 */ "ISNULL", + /* 302 */ "KEY", + /* 303 */ "MODULES", + /* 304 */ "NK_BITNOT", + /* 305 */ "NK_SEMI", + /* 306 */ "NOTNULL", + /* 307 */ "OF", + /* 308 */ "PLUS", + /* 309 */ "PRIVILEGE", + /* 310 */ "RAISE", + /* 311 */ "REPLACE", + /* 312 */ "RESTRICT", + /* 313 */ "ROW", + /* 314 */ "SEMI", + /* 315 */ "STAR", + /* 316 */ "STATEMENT", + /* 317 */ "STRICT", + /* 318 */ "STRING", + /* 319 */ "TIMES", /* 320 */ "VALUES", /* 321 */ "VARIABLE", /* 322 */ "VIEW", @@ -2167,245 +2156,246 @@ static const char *const yyRuleName[] = { /* 301 */ "stream_options ::= stream_options WATERMARK duration_literal", /* 302 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", /* 303 */ "stream_options ::= stream_options FILL_HISTORY NK_INTEGER", - /* 304 */ "subtable_opt ::=", - /* 305 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", - /* 306 */ "cmd ::= KILL CONNECTION NK_INTEGER", - /* 307 */ "cmd ::= KILL QUERY NK_STRING", - /* 308 */ "cmd ::= KILL TRANSACTION NK_INTEGER", - /* 309 */ "cmd ::= BALANCE VGROUP", - /* 310 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", - /* 311 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", - /* 312 */ "cmd ::= SPLIT VGROUP NK_INTEGER", - /* 313 */ "dnode_list ::= DNODE NK_INTEGER", - /* 314 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", - /* 315 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", - /* 316 */ "cmd ::= query_or_subquery", - /* 317 */ "cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", - /* 318 */ "cmd ::= INSERT INTO full_table_name query_or_subquery", - /* 319 */ "literal ::= NK_INTEGER", - /* 320 */ "literal ::= NK_FLOAT", - /* 321 */ "literal ::= NK_STRING", - /* 322 */ "literal ::= NK_BOOL", - /* 323 */ "literal ::= TIMESTAMP NK_STRING", - /* 324 */ "literal ::= duration_literal", - /* 325 */ "literal ::= NULL", - /* 326 */ "literal ::= NK_QUESTION", - /* 327 */ "duration_literal ::= NK_VARIABLE", - /* 328 */ "signed ::= NK_INTEGER", - /* 329 */ "signed ::= NK_PLUS NK_INTEGER", - /* 330 */ "signed ::= NK_MINUS NK_INTEGER", - /* 331 */ "signed ::= NK_FLOAT", - /* 332 */ "signed ::= NK_PLUS NK_FLOAT", - /* 333 */ "signed ::= NK_MINUS NK_FLOAT", - /* 334 */ "signed_literal ::= signed", - /* 335 */ "signed_literal ::= NK_STRING", - /* 336 */ "signed_literal ::= NK_BOOL", - /* 337 */ "signed_literal ::= TIMESTAMP NK_STRING", - /* 338 */ "signed_literal ::= duration_literal", - /* 339 */ "signed_literal ::= NULL", - /* 340 */ "signed_literal ::= literal_func", - /* 341 */ "signed_literal ::= NK_QUESTION", - /* 342 */ "literal_list ::= signed_literal", - /* 343 */ "literal_list ::= literal_list NK_COMMA signed_literal", - /* 344 */ "db_name ::= NK_ID", - /* 345 */ "table_name ::= NK_ID", - /* 346 */ "column_name ::= NK_ID", - /* 347 */ "function_name ::= NK_ID", - /* 348 */ "table_alias ::= NK_ID", - /* 349 */ "column_alias ::= NK_ID", - /* 350 */ "user_name ::= NK_ID", - /* 351 */ "topic_name ::= NK_ID", - /* 352 */ "stream_name ::= NK_ID", - /* 353 */ "cgroup_name ::= NK_ID", - /* 354 */ "index_name ::= NK_ID", - /* 355 */ "expr_or_subquery ::= expression", - /* 356 */ "expression ::= literal", - /* 357 */ "expression ::= pseudo_column", - /* 358 */ "expression ::= column_reference", - /* 359 */ "expression ::= function_expression", - /* 360 */ "expression ::= case_when_expression", - /* 361 */ "expression ::= NK_LP expression NK_RP", - /* 362 */ "expression ::= NK_PLUS expr_or_subquery", - /* 363 */ "expression ::= NK_MINUS expr_or_subquery", - /* 364 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", - /* 365 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", - /* 366 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", - /* 367 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", - /* 368 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", - /* 369 */ "expression ::= column_reference NK_ARROW NK_STRING", - /* 370 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", - /* 371 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", - /* 372 */ "expression_list ::= expr_or_subquery", - /* 373 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", - /* 374 */ "column_reference ::= column_name", - /* 375 */ "column_reference ::= table_name NK_DOT column_name", - /* 376 */ "pseudo_column ::= ROWTS", - /* 377 */ "pseudo_column ::= TBNAME", - /* 378 */ "pseudo_column ::= table_name NK_DOT TBNAME", - /* 379 */ "pseudo_column ::= QSTART", - /* 380 */ "pseudo_column ::= QEND", - /* 381 */ "pseudo_column ::= QDURATION", - /* 382 */ "pseudo_column ::= WSTART", - /* 383 */ "pseudo_column ::= WEND", - /* 384 */ "pseudo_column ::= WDURATION", - /* 385 */ "pseudo_column ::= IROWTS", - /* 386 */ "pseudo_column ::= QTAGS", - /* 387 */ "function_expression ::= function_name NK_LP expression_list NK_RP", - /* 388 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", - /* 389 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", - /* 390 */ "function_expression ::= literal_func", - /* 391 */ "literal_func ::= noarg_func NK_LP NK_RP", - /* 392 */ "literal_func ::= NOW", - /* 393 */ "noarg_func ::= NOW", - /* 394 */ "noarg_func ::= TODAY", - /* 395 */ "noarg_func ::= TIMEZONE", - /* 396 */ "noarg_func ::= DATABASE", - /* 397 */ "noarg_func ::= CLIENT_VERSION", - /* 398 */ "noarg_func ::= SERVER_VERSION", - /* 399 */ "noarg_func ::= SERVER_STATUS", - /* 400 */ "noarg_func ::= CURRENT_USER", - /* 401 */ "noarg_func ::= USER", - /* 402 */ "star_func ::= COUNT", - /* 403 */ "star_func ::= FIRST", - /* 404 */ "star_func ::= LAST", - /* 405 */ "star_func ::= LAST_ROW", - /* 406 */ "star_func_para_list ::= NK_STAR", - /* 407 */ "star_func_para_list ::= other_para_list", - /* 408 */ "other_para_list ::= star_func_para", - /* 409 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", - /* 410 */ "star_func_para ::= expr_or_subquery", - /* 411 */ "star_func_para ::= table_name NK_DOT NK_STAR", - /* 412 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", - /* 413 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", - /* 414 */ "when_then_list ::= when_then_expr", - /* 415 */ "when_then_list ::= when_then_list when_then_expr", - /* 416 */ "when_then_expr ::= WHEN common_expression THEN common_expression", - /* 417 */ "case_when_else_opt ::=", - /* 418 */ "case_when_else_opt ::= ELSE common_expression", - /* 419 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", - /* 420 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", - /* 421 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", - /* 422 */ "predicate ::= expr_or_subquery IS NULL", - /* 423 */ "predicate ::= expr_or_subquery IS NOT NULL", - /* 424 */ "predicate ::= expr_or_subquery in_op in_predicate_value", - /* 425 */ "compare_op ::= NK_LT", - /* 426 */ "compare_op ::= NK_GT", - /* 427 */ "compare_op ::= NK_LE", - /* 428 */ "compare_op ::= NK_GE", - /* 429 */ "compare_op ::= NK_NE", - /* 430 */ "compare_op ::= NK_EQ", - /* 431 */ "compare_op ::= LIKE", - /* 432 */ "compare_op ::= NOT LIKE", - /* 433 */ "compare_op ::= MATCH", - /* 434 */ "compare_op ::= NMATCH", - /* 435 */ "compare_op ::= CONTAINS", - /* 436 */ "in_op ::= IN", - /* 437 */ "in_op ::= NOT IN", - /* 438 */ "in_predicate_value ::= NK_LP literal_list NK_RP", - /* 439 */ "boolean_value_expression ::= boolean_primary", - /* 440 */ "boolean_value_expression ::= NOT boolean_primary", - /* 441 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", - /* 442 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", - /* 443 */ "boolean_primary ::= predicate", - /* 444 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", - /* 445 */ "common_expression ::= expr_or_subquery", - /* 446 */ "common_expression ::= boolean_value_expression", - /* 447 */ "from_clause_opt ::=", - /* 448 */ "from_clause_opt ::= FROM table_reference_list", - /* 449 */ "table_reference_list ::= table_reference", - /* 450 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", - /* 451 */ "table_reference ::= table_primary", - /* 452 */ "table_reference ::= joined_table", - /* 453 */ "table_primary ::= table_name alias_opt", - /* 454 */ "table_primary ::= db_name NK_DOT table_name alias_opt", - /* 455 */ "table_primary ::= subquery alias_opt", - /* 456 */ "table_primary ::= parenthesized_joined_table", - /* 457 */ "alias_opt ::=", - /* 458 */ "alias_opt ::= table_alias", - /* 459 */ "alias_opt ::= AS table_alias", - /* 460 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", - /* 461 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", - /* 462 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", - /* 463 */ "join_type ::=", - /* 464 */ "join_type ::= INNER", - /* 465 */ "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", - /* 466 */ "set_quantifier_opt ::=", - /* 467 */ "set_quantifier_opt ::= DISTINCT", - /* 468 */ "set_quantifier_opt ::= ALL", - /* 469 */ "select_list ::= select_item", - /* 470 */ "select_list ::= select_list NK_COMMA select_item", - /* 471 */ "select_item ::= NK_STAR", - /* 472 */ "select_item ::= common_expression", - /* 473 */ "select_item ::= common_expression column_alias", - /* 474 */ "select_item ::= common_expression AS column_alias", - /* 475 */ "select_item ::= table_name NK_DOT NK_STAR", - /* 476 */ "where_clause_opt ::=", - /* 477 */ "where_clause_opt ::= WHERE search_condition", - /* 478 */ "partition_by_clause_opt ::=", - /* 479 */ "partition_by_clause_opt ::= PARTITION BY partition_list", - /* 480 */ "partition_list ::= partition_item", - /* 481 */ "partition_list ::= partition_list NK_COMMA partition_item", - /* 482 */ "partition_item ::= expr_or_subquery", - /* 483 */ "partition_item ::= expr_or_subquery column_alias", - /* 484 */ "partition_item ::= expr_or_subquery AS column_alias", - /* 485 */ "twindow_clause_opt ::=", - /* 486 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", - /* 487 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", - /* 488 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", - /* 489 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", - /* 490 */ "sliding_opt ::=", - /* 491 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", - /* 492 */ "fill_opt ::=", - /* 493 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", - /* 494 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP", - /* 495 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP", - /* 496 */ "fill_mode ::= NONE", - /* 497 */ "fill_mode ::= PREV", - /* 498 */ "fill_mode ::= NULL", - /* 499 */ "fill_mode ::= NULL_F", - /* 500 */ "fill_mode ::= LINEAR", - /* 501 */ "fill_mode ::= NEXT", - /* 502 */ "group_by_clause_opt ::=", - /* 503 */ "group_by_clause_opt ::= GROUP BY group_by_list", - /* 504 */ "group_by_list ::= expr_or_subquery", - /* 505 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", - /* 506 */ "having_clause_opt ::=", - /* 507 */ "having_clause_opt ::= HAVING search_condition", - /* 508 */ "range_opt ::=", - /* 509 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", - /* 510 */ "every_opt ::=", - /* 511 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", - /* 512 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", - /* 513 */ "query_simple ::= query_specification", - /* 514 */ "query_simple ::= union_query_expression", - /* 515 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", - /* 516 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", - /* 517 */ "query_simple_or_subquery ::= query_simple", - /* 518 */ "query_simple_or_subquery ::= subquery", - /* 519 */ "query_or_subquery ::= query_expression", - /* 520 */ "query_or_subquery ::= subquery", - /* 521 */ "order_by_clause_opt ::=", - /* 522 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", - /* 523 */ "slimit_clause_opt ::=", - /* 524 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", - /* 525 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", - /* 526 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 527 */ "limit_clause_opt ::=", - /* 528 */ "limit_clause_opt ::= LIMIT NK_INTEGER", - /* 529 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", - /* 530 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", - /* 531 */ "subquery ::= NK_LP query_expression NK_RP", - /* 532 */ "subquery ::= NK_LP subquery NK_RP", - /* 533 */ "search_condition ::= common_expression", - /* 534 */ "sort_specification_list ::= sort_specification", - /* 535 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", - /* 536 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", - /* 537 */ "ordering_specification_opt ::=", - /* 538 */ "ordering_specification_opt ::= ASC", - /* 539 */ "ordering_specification_opt ::= DESC", - /* 540 */ "null_ordering_opt ::=", - /* 541 */ "null_ordering_opt ::= NULLS FIRST", - /* 542 */ "null_ordering_opt ::= NULLS LAST", + /* 304 */ "stream_options ::= stream_options IGNORE UPDATE NK_INTEGER", + /* 305 */ "subtable_opt ::=", + /* 306 */ "subtable_opt ::= SUBTABLE NK_LP expression NK_RP", + /* 307 */ "cmd ::= KILL CONNECTION NK_INTEGER", + /* 308 */ "cmd ::= KILL QUERY NK_STRING", + /* 309 */ "cmd ::= KILL TRANSACTION NK_INTEGER", + /* 310 */ "cmd ::= BALANCE VGROUP", + /* 311 */ "cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER", + /* 312 */ "cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list", + /* 313 */ "cmd ::= SPLIT VGROUP NK_INTEGER", + /* 314 */ "dnode_list ::= DNODE NK_INTEGER", + /* 315 */ "dnode_list ::= dnode_list DNODE NK_INTEGER", + /* 316 */ "cmd ::= DELETE FROM full_table_name where_clause_opt", + /* 317 */ "cmd ::= query_or_subquery", + /* 318 */ "cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery", + /* 319 */ "cmd ::= INSERT INTO full_table_name query_or_subquery", + /* 320 */ "literal ::= NK_INTEGER", + /* 321 */ "literal ::= NK_FLOAT", + /* 322 */ "literal ::= NK_STRING", + /* 323 */ "literal ::= NK_BOOL", + /* 324 */ "literal ::= TIMESTAMP NK_STRING", + /* 325 */ "literal ::= duration_literal", + /* 326 */ "literal ::= NULL", + /* 327 */ "literal ::= NK_QUESTION", + /* 328 */ "duration_literal ::= NK_VARIABLE", + /* 329 */ "signed ::= NK_INTEGER", + /* 330 */ "signed ::= NK_PLUS NK_INTEGER", + /* 331 */ "signed ::= NK_MINUS NK_INTEGER", + /* 332 */ "signed ::= NK_FLOAT", + /* 333 */ "signed ::= NK_PLUS NK_FLOAT", + /* 334 */ "signed ::= NK_MINUS NK_FLOAT", + /* 335 */ "signed_literal ::= signed", + /* 336 */ "signed_literal ::= NK_STRING", + /* 337 */ "signed_literal ::= NK_BOOL", + /* 338 */ "signed_literal ::= TIMESTAMP NK_STRING", + /* 339 */ "signed_literal ::= duration_literal", + /* 340 */ "signed_literal ::= NULL", + /* 341 */ "signed_literal ::= literal_func", + /* 342 */ "signed_literal ::= NK_QUESTION", + /* 343 */ "literal_list ::= signed_literal", + /* 344 */ "literal_list ::= literal_list NK_COMMA signed_literal", + /* 345 */ "db_name ::= NK_ID", + /* 346 */ "table_name ::= NK_ID", + /* 347 */ "column_name ::= NK_ID", + /* 348 */ "function_name ::= NK_ID", + /* 349 */ "table_alias ::= NK_ID", + /* 350 */ "column_alias ::= NK_ID", + /* 351 */ "user_name ::= NK_ID", + /* 352 */ "topic_name ::= NK_ID", + /* 353 */ "stream_name ::= NK_ID", + /* 354 */ "cgroup_name ::= NK_ID", + /* 355 */ "index_name ::= NK_ID", + /* 356 */ "expr_or_subquery ::= expression", + /* 357 */ "expression ::= literal", + /* 358 */ "expression ::= pseudo_column", + /* 359 */ "expression ::= column_reference", + /* 360 */ "expression ::= function_expression", + /* 361 */ "expression ::= case_when_expression", + /* 362 */ "expression ::= NK_LP expression NK_RP", + /* 363 */ "expression ::= NK_PLUS expr_or_subquery", + /* 364 */ "expression ::= NK_MINUS expr_or_subquery", + /* 365 */ "expression ::= expr_or_subquery NK_PLUS expr_or_subquery", + /* 366 */ "expression ::= expr_or_subquery NK_MINUS expr_or_subquery", + /* 367 */ "expression ::= expr_or_subquery NK_STAR expr_or_subquery", + /* 368 */ "expression ::= expr_or_subquery NK_SLASH expr_or_subquery", + /* 369 */ "expression ::= expr_or_subquery NK_REM expr_or_subquery", + /* 370 */ "expression ::= column_reference NK_ARROW NK_STRING", + /* 371 */ "expression ::= expr_or_subquery NK_BITAND expr_or_subquery", + /* 372 */ "expression ::= expr_or_subquery NK_BITOR expr_or_subquery", + /* 373 */ "expression_list ::= expr_or_subquery", + /* 374 */ "expression_list ::= expression_list NK_COMMA expr_or_subquery", + /* 375 */ "column_reference ::= column_name", + /* 376 */ "column_reference ::= table_name NK_DOT column_name", + /* 377 */ "pseudo_column ::= ROWTS", + /* 378 */ "pseudo_column ::= TBNAME", + /* 379 */ "pseudo_column ::= table_name NK_DOT TBNAME", + /* 380 */ "pseudo_column ::= QSTART", + /* 381 */ "pseudo_column ::= QEND", + /* 382 */ "pseudo_column ::= QDURATION", + /* 383 */ "pseudo_column ::= WSTART", + /* 384 */ "pseudo_column ::= WEND", + /* 385 */ "pseudo_column ::= WDURATION", + /* 386 */ "pseudo_column ::= IROWTS", + /* 387 */ "pseudo_column ::= QTAGS", + /* 388 */ "function_expression ::= function_name NK_LP expression_list NK_RP", + /* 389 */ "function_expression ::= star_func NK_LP star_func_para_list NK_RP", + /* 390 */ "function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP", + /* 391 */ "function_expression ::= literal_func", + /* 392 */ "literal_func ::= noarg_func NK_LP NK_RP", + /* 393 */ "literal_func ::= NOW", + /* 394 */ "noarg_func ::= NOW", + /* 395 */ "noarg_func ::= TODAY", + /* 396 */ "noarg_func ::= TIMEZONE", + /* 397 */ "noarg_func ::= DATABASE", + /* 398 */ "noarg_func ::= CLIENT_VERSION", + /* 399 */ "noarg_func ::= SERVER_VERSION", + /* 400 */ "noarg_func ::= SERVER_STATUS", + /* 401 */ "noarg_func ::= CURRENT_USER", + /* 402 */ "noarg_func ::= USER", + /* 403 */ "star_func ::= COUNT", + /* 404 */ "star_func ::= FIRST", + /* 405 */ "star_func ::= LAST", + /* 406 */ "star_func ::= LAST_ROW", + /* 407 */ "star_func_para_list ::= NK_STAR", + /* 408 */ "star_func_para_list ::= other_para_list", + /* 409 */ "other_para_list ::= star_func_para", + /* 410 */ "other_para_list ::= other_para_list NK_COMMA star_func_para", + /* 411 */ "star_func_para ::= expr_or_subquery", + /* 412 */ "star_func_para ::= table_name NK_DOT NK_STAR", + /* 413 */ "case_when_expression ::= CASE when_then_list case_when_else_opt END", + /* 414 */ "case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END", + /* 415 */ "when_then_list ::= when_then_expr", + /* 416 */ "when_then_list ::= when_then_list when_then_expr", + /* 417 */ "when_then_expr ::= WHEN common_expression THEN common_expression", + /* 418 */ "case_when_else_opt ::=", + /* 419 */ "case_when_else_opt ::= ELSE common_expression", + /* 420 */ "predicate ::= expr_or_subquery compare_op expr_or_subquery", + /* 421 */ "predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery", + /* 422 */ "predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery", + /* 423 */ "predicate ::= expr_or_subquery IS NULL", + /* 424 */ "predicate ::= expr_or_subquery IS NOT NULL", + /* 425 */ "predicate ::= expr_or_subquery in_op in_predicate_value", + /* 426 */ "compare_op ::= NK_LT", + /* 427 */ "compare_op ::= NK_GT", + /* 428 */ "compare_op ::= NK_LE", + /* 429 */ "compare_op ::= NK_GE", + /* 430 */ "compare_op ::= NK_NE", + /* 431 */ "compare_op ::= NK_EQ", + /* 432 */ "compare_op ::= LIKE", + /* 433 */ "compare_op ::= NOT LIKE", + /* 434 */ "compare_op ::= MATCH", + /* 435 */ "compare_op ::= NMATCH", + /* 436 */ "compare_op ::= CONTAINS", + /* 437 */ "in_op ::= IN", + /* 438 */ "in_op ::= NOT IN", + /* 439 */ "in_predicate_value ::= NK_LP literal_list NK_RP", + /* 440 */ "boolean_value_expression ::= boolean_primary", + /* 441 */ "boolean_value_expression ::= NOT boolean_primary", + /* 442 */ "boolean_value_expression ::= boolean_value_expression OR boolean_value_expression", + /* 443 */ "boolean_value_expression ::= boolean_value_expression AND boolean_value_expression", + /* 444 */ "boolean_primary ::= predicate", + /* 445 */ "boolean_primary ::= NK_LP boolean_value_expression NK_RP", + /* 446 */ "common_expression ::= expr_or_subquery", + /* 447 */ "common_expression ::= boolean_value_expression", + /* 448 */ "from_clause_opt ::=", + /* 449 */ "from_clause_opt ::= FROM table_reference_list", + /* 450 */ "table_reference_list ::= table_reference", + /* 451 */ "table_reference_list ::= table_reference_list NK_COMMA table_reference", + /* 452 */ "table_reference ::= table_primary", + /* 453 */ "table_reference ::= joined_table", + /* 454 */ "table_primary ::= table_name alias_opt", + /* 455 */ "table_primary ::= db_name NK_DOT table_name alias_opt", + /* 456 */ "table_primary ::= subquery alias_opt", + /* 457 */ "table_primary ::= parenthesized_joined_table", + /* 458 */ "alias_opt ::=", + /* 459 */ "alias_opt ::= table_alias", + /* 460 */ "alias_opt ::= AS table_alias", + /* 461 */ "parenthesized_joined_table ::= NK_LP joined_table NK_RP", + /* 462 */ "parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP", + /* 463 */ "joined_table ::= table_reference join_type JOIN table_reference ON search_condition", + /* 464 */ "join_type ::=", + /* 465 */ "join_type ::= INNER", + /* 466 */ "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", + /* 467 */ "set_quantifier_opt ::=", + /* 468 */ "set_quantifier_opt ::= DISTINCT", + /* 469 */ "set_quantifier_opt ::= ALL", + /* 470 */ "select_list ::= select_item", + /* 471 */ "select_list ::= select_list NK_COMMA select_item", + /* 472 */ "select_item ::= NK_STAR", + /* 473 */ "select_item ::= common_expression", + /* 474 */ "select_item ::= common_expression column_alias", + /* 475 */ "select_item ::= common_expression AS column_alias", + /* 476 */ "select_item ::= table_name NK_DOT NK_STAR", + /* 477 */ "where_clause_opt ::=", + /* 478 */ "where_clause_opt ::= WHERE search_condition", + /* 479 */ "partition_by_clause_opt ::=", + /* 480 */ "partition_by_clause_opt ::= PARTITION BY partition_list", + /* 481 */ "partition_list ::= partition_item", + /* 482 */ "partition_list ::= partition_list NK_COMMA partition_item", + /* 483 */ "partition_item ::= expr_or_subquery", + /* 484 */ "partition_item ::= expr_or_subquery column_alias", + /* 485 */ "partition_item ::= expr_or_subquery AS column_alias", + /* 486 */ "twindow_clause_opt ::=", + /* 487 */ "twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP", + /* 488 */ "twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP", + /* 489 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt", + /* 490 */ "twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt", + /* 491 */ "sliding_opt ::=", + /* 492 */ "sliding_opt ::= SLIDING NK_LP duration_literal NK_RP", + /* 493 */ "fill_opt ::=", + /* 494 */ "fill_opt ::= FILL NK_LP fill_mode NK_RP", + /* 495 */ "fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP", + /* 496 */ "fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP", + /* 497 */ "fill_mode ::= NONE", + /* 498 */ "fill_mode ::= PREV", + /* 499 */ "fill_mode ::= NULL", + /* 500 */ "fill_mode ::= NULL_F", + /* 501 */ "fill_mode ::= LINEAR", + /* 502 */ "fill_mode ::= NEXT", + /* 503 */ "group_by_clause_opt ::=", + /* 504 */ "group_by_clause_opt ::= GROUP BY group_by_list", + /* 505 */ "group_by_list ::= expr_or_subquery", + /* 506 */ "group_by_list ::= group_by_list NK_COMMA expr_or_subquery", + /* 507 */ "having_clause_opt ::=", + /* 508 */ "having_clause_opt ::= HAVING search_condition", + /* 509 */ "range_opt ::=", + /* 510 */ "range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP", + /* 511 */ "every_opt ::=", + /* 512 */ "every_opt ::= EVERY NK_LP duration_literal NK_RP", + /* 513 */ "query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt", + /* 514 */ "query_simple ::= query_specification", + /* 515 */ "query_simple ::= union_query_expression", + /* 516 */ "union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery", + /* 517 */ "union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery", + /* 518 */ "query_simple_or_subquery ::= query_simple", + /* 519 */ "query_simple_or_subquery ::= subquery", + /* 520 */ "query_or_subquery ::= query_expression", + /* 521 */ "query_or_subquery ::= subquery", + /* 522 */ "order_by_clause_opt ::=", + /* 523 */ "order_by_clause_opt ::= ORDER BY sort_specification_list", + /* 524 */ "slimit_clause_opt ::=", + /* 525 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER", + /* 526 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER", + /* 527 */ "slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 528 */ "limit_clause_opt ::=", + /* 529 */ "limit_clause_opt ::= LIMIT NK_INTEGER", + /* 530 */ "limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER", + /* 531 */ "limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER", + /* 532 */ "subquery ::= NK_LP query_expression NK_RP", + /* 533 */ "subquery ::= NK_LP subquery NK_RP", + /* 534 */ "search_condition ::= common_expression", + /* 535 */ "sort_specification_list ::= sort_specification", + /* 536 */ "sort_specification_list ::= sort_specification_list NK_COMMA sort_specification", + /* 537 */ "sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt", + /* 538 */ "ordering_specification_opt ::=", + /* 539 */ "ordering_specification_opt ::= ASC", + /* 540 */ "ordering_specification_opt ::= DESC", + /* 541 */ "null_ordering_opt ::=", + /* 542 */ "null_ordering_opt ::= NULLS FIRST", + /* 543 */ "null_ordering_opt ::= NULLS LAST", }; #endif /* NDEBUG */ @@ -2848,18 +2838,15 @@ static YYACTIONTYPE yy_find_shift_action( do{ i = yy_shift_ofst[stateno]; assert( i>=0 ); - assert( i<=YY_ACTTAB_COUNT ); - assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); + /* assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD ); */ assert( iLookAhead!=YYNOCODE ); assert( iLookAhead < YYNTOKEN ); i += iLookAhead; - assert( i<(int)YY_NLOOKAHEAD ); - if( yy_lookahead[i]!=iLookAhead ){ + if( i>=YY_NLOOKAHEAD || yy_lookahead[i]!=iLookAhead ){ #ifdef YYFALLBACK YYCODETYPE iFallback; /* Fallback token */ - assert( iLookAhead %s\n", @@ -2874,8 +2861,16 @@ static YYACTIONTYPE yy_find_shift_action( #ifdef YYWILDCARD { int j = i - iLookAhead + YYWILDCARD; - assert( j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) ); - if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){ + if( +#if YY_SHIFT_MIN+YYWILDCARD<0 + j>=0 && +#endif +#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT + j0 + ){ #ifndef NDEBUG if( yyTraceFILE ){ fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", @@ -2889,7 +2884,6 @@ static YYACTIONTYPE yy_find_shift_action( #endif /* YYWILDCARD */ return yy_default[stateno]; }else{ - assert( i>=0 && iyytos; #ifndef NDEBUG if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - yysize = yyRuleInfoNRhs[yyruleno]; + yysize = yyRuleInfo[yyruleno].nrhs; if( yysize ){ - fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n", + fprintf(yyTraceFILE, "%sReduce %d [%s], go to state %d.\n", yyTracePrompt, - yyruleno, yyRuleName[yyruleno], - yyrulenoyytos - yypParser->yystack)>yypParser->yyhwm ){ yypParser->yyhwm++; @@ -4297,7 +3745,7 @@ static YYACTIONTYPE yy_reduce( yymsp[-2].minor.yy77 = yylhsminor.yy77; break; case 42: /* priv_level ::= topic_name */ - case 458: /* alias_opt ::= table_alias */ yytestcase(yyruleno==458); + case 459: /* alias_opt ::= table_alias */ yytestcase(yyruleno==459); { yylhsminor.yy77 = yymsp[0].minor.yy77; } yymsp[0].minor.yy77 = yylhsminor.yy77; break; @@ -4328,30 +3776,30 @@ static YYACTIONTYPE yy_reduce( case 51: /* dnode_endpoint ::= NK_STRING */ case 52: /* dnode_endpoint ::= NK_ID */ yytestcase(yyruleno==52); case 53: /* dnode_endpoint ::= NK_IPTOKEN */ yytestcase(yyruleno==53); - case 344: /* db_name ::= NK_ID */ yytestcase(yyruleno==344); - case 345: /* table_name ::= NK_ID */ yytestcase(yyruleno==345); - case 346: /* column_name ::= NK_ID */ yytestcase(yyruleno==346); - case 347: /* function_name ::= NK_ID */ yytestcase(yyruleno==347); - case 348: /* table_alias ::= NK_ID */ yytestcase(yyruleno==348); - case 349: /* column_alias ::= NK_ID */ yytestcase(yyruleno==349); - case 350: /* user_name ::= NK_ID */ yytestcase(yyruleno==350); - case 351: /* topic_name ::= NK_ID */ yytestcase(yyruleno==351); - case 352: /* stream_name ::= NK_ID */ yytestcase(yyruleno==352); - case 353: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==353); - case 354: /* index_name ::= NK_ID */ yytestcase(yyruleno==354); - case 393: /* noarg_func ::= NOW */ yytestcase(yyruleno==393); - case 394: /* noarg_func ::= TODAY */ yytestcase(yyruleno==394); - case 395: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==395); - case 396: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==396); - case 397: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==397); - case 398: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==398); - case 399: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==399); - case 400: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==400); - case 401: /* noarg_func ::= USER */ yytestcase(yyruleno==401); - case 402: /* star_func ::= COUNT */ yytestcase(yyruleno==402); - case 403: /* star_func ::= FIRST */ yytestcase(yyruleno==403); - case 404: /* star_func ::= LAST */ yytestcase(yyruleno==404); - case 405: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==405); + case 345: /* db_name ::= NK_ID */ yytestcase(yyruleno==345); + case 346: /* table_name ::= NK_ID */ yytestcase(yyruleno==346); + case 347: /* column_name ::= NK_ID */ yytestcase(yyruleno==347); + case 348: /* function_name ::= NK_ID */ yytestcase(yyruleno==348); + case 349: /* table_alias ::= NK_ID */ yytestcase(yyruleno==349); + case 350: /* column_alias ::= NK_ID */ yytestcase(yyruleno==350); + case 351: /* user_name ::= NK_ID */ yytestcase(yyruleno==351); + case 352: /* topic_name ::= NK_ID */ yytestcase(yyruleno==352); + case 353: /* stream_name ::= NK_ID */ yytestcase(yyruleno==353); + case 354: /* cgroup_name ::= NK_ID */ yytestcase(yyruleno==354); + case 355: /* index_name ::= NK_ID */ yytestcase(yyruleno==355); + case 394: /* noarg_func ::= NOW */ yytestcase(yyruleno==394); + case 395: /* noarg_func ::= TODAY */ yytestcase(yyruleno==395); + case 396: /* noarg_func ::= TIMEZONE */ yytestcase(yyruleno==396); + case 397: /* noarg_func ::= DATABASE */ yytestcase(yyruleno==397); + case 398: /* noarg_func ::= CLIENT_VERSION */ yytestcase(yyruleno==398); + case 399: /* noarg_func ::= SERVER_VERSION */ yytestcase(yyruleno==399); + case 400: /* noarg_func ::= SERVER_STATUS */ yytestcase(yyruleno==400); + case 401: /* noarg_func ::= CURRENT_USER */ yytestcase(yyruleno==401); + case 402: /* noarg_func ::= USER */ yytestcase(yyruleno==402); + case 403: /* star_func ::= COUNT */ yytestcase(yyruleno==403); + case 404: /* star_func ::= FIRST */ yytestcase(yyruleno==404); + case 405: /* star_func ::= LAST */ yytestcase(yyruleno==405); + case 406: /* star_func ::= LAST_ROW */ yytestcase(yyruleno==406); { yylhsminor.yy77 = yymsp[0].minor.yy0; } yymsp[0].minor.yy77 = yylhsminor.yy77; break; @@ -4360,13 +3808,13 @@ static YYACTIONTYPE yy_reduce( case 75: /* exists_opt ::= */ yytestcase(yyruleno==75); case 284: /* analyze_opt ::= */ yytestcase(yyruleno==284); case 291: /* agg_func_opt ::= */ yytestcase(yyruleno==291); - case 466: /* set_quantifier_opt ::= */ yytestcase(yyruleno==466); + case 467: /* set_quantifier_opt ::= */ yytestcase(yyruleno==467); { yymsp[1].minor.yy841 = false; } break; case 55: /* force_opt ::= FORCE */ case 285: /* analyze_opt ::= ANALYZE */ yytestcase(yyruleno==285); case 292: /* agg_func_opt ::= AGGREGATE */ yytestcase(yyruleno==292); - case 467: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==467); + case 468: /* set_quantifier_opt ::= DISTINCT */ yytestcase(yyruleno==468); { yymsp[0].minor.yy841 = true; } break; case 56: /* cmd ::= ALTER LOCAL NK_STRING */ @@ -4589,7 +4037,7 @@ static YYACTIONTYPE yy_reduce( yymsp[0].minor.yy601 = yylhsminor.yy601; break; case 120: /* integer_list ::= integer_list NK_COMMA NK_INTEGER */ - case 314: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==314); + case 315: /* dnode_list ::= dnode_list DNODE NK_INTEGER */ yytestcase(yyruleno==315); { yylhsminor.yy601 = addNodeToList(pCxt, yymsp[-2].minor.yy601, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } yymsp[-2].minor.yy601 = yylhsminor.yy601; break; @@ -4609,12 +4057,12 @@ static YYACTIONTYPE yy_reduce( case 204: /* col_name_list ::= col_name */ yytestcase(yyruleno==204); case 253: /* tag_list_opt ::= tag_item */ yytestcase(yyruleno==253); case 266: /* func_list ::= func */ yytestcase(yyruleno==266); - case 342: /* literal_list ::= signed_literal */ yytestcase(yyruleno==342); - case 408: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==408); - case 414: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==414); - case 469: /* select_list ::= select_item */ yytestcase(yyruleno==469); - case 480: /* partition_list ::= partition_item */ yytestcase(yyruleno==480); - case 534: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==534); + case 343: /* literal_list ::= signed_literal */ yytestcase(yyruleno==343); + case 409: /* other_para_list ::= star_func_para */ yytestcase(yyruleno==409); + case 415: /* when_then_list ::= when_then_expr */ yytestcase(yyruleno==415); + case 470: /* select_list ::= select_item */ yytestcase(yyruleno==470); + case 481: /* partition_list ::= partition_item */ yytestcase(yyruleno==481); + case 535: /* sort_specification_list ::= sort_specification */ yytestcase(yyruleno==535); { yylhsminor.yy601 = createNodeList(pCxt, yymsp[0].minor.yy600); } yymsp[0].minor.yy601 = yylhsminor.yy601; break; @@ -4624,11 +4072,11 @@ static YYACTIONTYPE yy_reduce( case 205: /* col_name_list ::= col_name_list NK_COMMA col_name */ yytestcase(yyruleno==205); case 254: /* tag_list_opt ::= tag_list_opt NK_COMMA tag_item */ yytestcase(yyruleno==254); case 267: /* func_list ::= func_list NK_COMMA func */ yytestcase(yyruleno==267); - case 343: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==343); - case 409: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==409); - case 470: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==470); - case 481: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==481); - case 535: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==535); + case 344: /* literal_list ::= literal_list NK_COMMA signed_literal */ yytestcase(yyruleno==344); + case 410: /* other_para_list ::= other_para_list NK_COMMA star_func_para */ yytestcase(yyruleno==410); + case 471: /* select_list ::= select_list NK_COMMA select_item */ yytestcase(yyruleno==471); + case 482: /* partition_list ::= partition_list NK_COMMA partition_item */ yytestcase(yyruleno==482); + case 536: /* sort_specification_list ::= sort_specification_list NK_COMMA sort_specification */ yytestcase(yyruleno==536); { yylhsminor.yy601 = addNodeToList(pCxt, yymsp[-2].minor.yy601, yymsp[0].minor.yy600); } yymsp[-2].minor.yy601 = yylhsminor.yy601; break; @@ -4658,7 +4106,7 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createDropSuperTableStmt(pCxt, yymsp[-1].minor.yy841, yymsp[0].minor.yy600); } break; case 133: /* cmd ::= ALTER TABLE alter_table_clause */ - case 316: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==316); + case 317: /* cmd ::= query_or_subquery */ yytestcase(yyruleno==317); { pCxt->pRootNode = yymsp[0].minor.yy600; } break; case 134: /* cmd ::= ALTER STABLE alter_table_clause */ @@ -4706,7 +4154,7 @@ static YYACTIONTYPE yy_reduce( break; case 146: /* multi_create_clause ::= multi_create_clause create_subtable_clause */ case 149: /* multi_drop_clause ::= multi_drop_clause drop_table_clause */ yytestcase(yyruleno==149); - case 415: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==415); + case 416: /* when_then_list ::= when_then_list when_then_expr */ yytestcase(yyruleno==416); { yylhsminor.yy601 = addNodeToList(pCxt, yymsp[-1].minor.yy601, yymsp[0].minor.yy600); } yymsp[-1].minor.yy601 = yylhsminor.yy601; break; @@ -4721,9 +4169,9 @@ static YYACTIONTYPE yy_reduce( case 151: /* specific_cols_opt ::= */ case 182: /* tags_def_opt ::= */ yytestcase(yyruleno==182); case 252: /* tag_list_opt ::= */ yytestcase(yyruleno==252); - case 478: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==478); - case 502: /* group_by_clause_opt ::= */ yytestcase(yyruleno==502); - case 521: /* order_by_clause_opt ::= */ yytestcase(yyruleno==521); + case 479: /* partition_by_clause_opt ::= */ yytestcase(yyruleno==479); + case 503: /* group_by_clause_opt ::= */ yytestcase(yyruleno==503); + case 522: /* order_by_clause_opt ::= */ yytestcase(yyruleno==522); { yymsp[1].minor.yy601 = NULL; } break; case 152: /* specific_cols_opt ::= NK_LP col_name_list NK_RP */ @@ -4813,7 +4261,7 @@ static YYACTIONTYPE yy_reduce( { yymsp[-5].minor.yy888 = createDataType(TSDB_DATA_TYPE_DECIMAL); } break; case 183: /* tags_def_opt ::= tags_def */ - case 407: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==407); + case 408: /* star_func_para_list ::= other_para_list */ yytestcase(yyruleno==408); { yylhsminor.yy601 = yymsp[0].minor.yy601; } yymsp[0].minor.yy601 = yylhsminor.yy601; break; @@ -4866,12 +4314,12 @@ static YYACTIONTYPE yy_reduce( { yymsp[-1].minor.yy661.type = TABLE_OPTION_TTL; yymsp[-1].minor.yy661.val = yymsp[0].minor.yy0; } break; case 197: /* duration_list ::= duration_literal */ - case 372: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==372); + case 373: /* expression_list ::= expr_or_subquery */ yytestcase(yyruleno==373); { yylhsminor.yy601 = createNodeList(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy600)); } yymsp[0].minor.yy601 = yylhsminor.yy601; break; case 198: /* duration_list ::= duration_list NK_COMMA duration_literal */ - case 373: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==373); + case 374: /* expression_list ::= expression_list NK_COMMA expr_or_subquery */ yytestcase(yyruleno==374); { yylhsminor.yy601 = addNodeToList(pCxt, yymsp[-2].minor.yy601, releaseRawExprNode(pCxt, yymsp[0].minor.yy600)); } yymsp[-2].minor.yy601 = yylhsminor.yy601; break; @@ -5009,18 +4457,18 @@ static YYACTIONTYPE yy_reduce( yymsp[-1].minor.yy600 = yylhsminor.yy600; break; case 247: /* like_pattern_opt ::= */ - case 304: /* subtable_opt ::= */ yytestcase(yyruleno==304); - case 417: /* case_when_else_opt ::= */ yytestcase(yyruleno==417); - case 447: /* from_clause_opt ::= */ yytestcase(yyruleno==447); - case 476: /* where_clause_opt ::= */ yytestcase(yyruleno==476); - case 485: /* twindow_clause_opt ::= */ yytestcase(yyruleno==485); - case 490: /* sliding_opt ::= */ yytestcase(yyruleno==490); - case 492: /* fill_opt ::= */ yytestcase(yyruleno==492); - case 506: /* having_clause_opt ::= */ yytestcase(yyruleno==506); - case 508: /* range_opt ::= */ yytestcase(yyruleno==508); - case 510: /* every_opt ::= */ yytestcase(yyruleno==510); - case 523: /* slimit_clause_opt ::= */ yytestcase(yyruleno==523); - case 527: /* limit_clause_opt ::= */ yytestcase(yyruleno==527); + case 305: /* subtable_opt ::= */ yytestcase(yyruleno==305); + case 418: /* case_when_else_opt ::= */ yytestcase(yyruleno==418); + case 448: /* from_clause_opt ::= */ yytestcase(yyruleno==448); + case 477: /* where_clause_opt ::= */ yytestcase(yyruleno==477); + case 486: /* twindow_clause_opt ::= */ yytestcase(yyruleno==486); + case 491: /* sliding_opt ::= */ yytestcase(yyruleno==491); + case 493: /* fill_opt ::= */ yytestcase(yyruleno==493); + case 507: /* having_clause_opt ::= */ yytestcase(yyruleno==507); + case 509: /* range_opt ::= */ yytestcase(yyruleno==509); + case 511: /* every_opt ::= */ yytestcase(yyruleno==511); + case 524: /* slimit_clause_opt ::= */ yytestcase(yyruleno==524); + case 528: /* limit_clause_opt ::= */ yytestcase(yyruleno==528); { yymsp[1].minor.yy600 = NULL; } break; case 248: /* like_pattern_opt ::= LIKE NK_STRING */ @@ -5160,108 +4608,112 @@ static YYACTIONTYPE yy_reduce( { ((SStreamOptions*)yymsp[-2].minor.yy600)->fillHistory = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy600 = yymsp[-2].minor.yy600; } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 305: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ - case 491: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==491); - case 511: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==511); + case 304: /* stream_options ::= stream_options IGNORE UPDATE NK_INTEGER */ +{ ((SStreamOptions*)yymsp[-3].minor.yy600)->ignoreUpdate = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy600 = yymsp[-3].minor.yy600; } + yymsp[-3].minor.yy600 = yylhsminor.yy600; + break; + case 306: /* subtable_opt ::= SUBTABLE NK_LP expression NK_RP */ + case 492: /* sliding_opt ::= SLIDING NK_LP duration_literal NK_RP */ yytestcase(yyruleno==492); + case 512: /* every_opt ::= EVERY NK_LP duration_literal NK_RP */ yytestcase(yyruleno==512); { yymsp[-3].minor.yy600 = releaseRawExprNode(pCxt, yymsp[-1].minor.yy600); } break; - case 306: /* cmd ::= KILL CONNECTION NK_INTEGER */ + case 307: /* cmd ::= KILL CONNECTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } break; - case 307: /* cmd ::= KILL QUERY NK_STRING */ + case 308: /* cmd ::= KILL QUERY NK_STRING */ { pCxt->pRootNode = createKillQueryStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 308: /* cmd ::= KILL TRANSACTION NK_INTEGER */ + case 309: /* cmd ::= KILL TRANSACTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_TRANSACTION_STMT, &yymsp[0].minor.yy0); } break; - case 309: /* cmd ::= BALANCE VGROUP */ + case 310: /* cmd ::= BALANCE VGROUP */ { pCxt->pRootNode = createBalanceVgroupStmt(pCxt); } break; - case 310: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ + case 311: /* cmd ::= MERGE VGROUP NK_INTEGER NK_INTEGER */ { pCxt->pRootNode = createMergeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); } break; - case 311: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ + case 312: /* cmd ::= REDISTRIBUTE VGROUP NK_INTEGER dnode_list */ { pCxt->pRootNode = createRedistributeVgroupStmt(pCxt, &yymsp[-1].minor.yy0, yymsp[0].minor.yy601); } break; - case 312: /* cmd ::= SPLIT VGROUP NK_INTEGER */ + case 313: /* cmd ::= SPLIT VGROUP NK_INTEGER */ { pCxt->pRootNode = createSplitVgroupStmt(pCxt, &yymsp[0].minor.yy0); } break; - case 313: /* dnode_list ::= DNODE NK_INTEGER */ + case 314: /* dnode_list ::= DNODE NK_INTEGER */ { yymsp[-1].minor.yy601 = createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0)); } break; - case 315: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ + case 316: /* cmd ::= DELETE FROM full_table_name where_clause_opt */ { pCxt->pRootNode = createDeleteStmt(pCxt, yymsp[-1].minor.yy600, yymsp[0].minor.yy600); } break; - case 317: /* cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ + case 318: /* cmd ::= INSERT INTO full_table_name NK_LP col_name_list NK_RP query_or_subquery */ { pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-4].minor.yy600, yymsp[-2].minor.yy601, yymsp[0].minor.yy600); } break; - case 318: /* cmd ::= INSERT INTO full_table_name query_or_subquery */ + case 319: /* cmd ::= INSERT INTO full_table_name query_or_subquery */ { pCxt->pRootNode = createInsertStmt(pCxt, yymsp[-1].minor.yy600, NULL, yymsp[0].minor.yy600); } break; - case 319: /* literal ::= NK_INTEGER */ + case 320: /* literal ::= NK_INTEGER */ { yylhsminor.yy600 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 320: /* literal ::= NK_FLOAT */ + case 321: /* literal ::= NK_FLOAT */ { yylhsminor.yy600 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 321: /* literal ::= NK_STRING */ + case 322: /* literal ::= NK_STRING */ { yylhsminor.yy600 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 322: /* literal ::= NK_BOOL */ + case 323: /* literal ::= NK_BOOL */ { yylhsminor.yy600 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 323: /* literal ::= TIMESTAMP NK_STRING */ + case 324: /* literal ::= TIMESTAMP NK_STRING */ { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0)); } yymsp[-1].minor.yy600 = yylhsminor.yy600; break; - case 324: /* literal ::= duration_literal */ - case 334: /* signed_literal ::= signed */ yytestcase(yyruleno==334); - case 355: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==355); - case 356: /* expression ::= literal */ yytestcase(yyruleno==356); - case 357: /* expression ::= pseudo_column */ yytestcase(yyruleno==357); - case 358: /* expression ::= column_reference */ yytestcase(yyruleno==358); - case 359: /* expression ::= function_expression */ yytestcase(yyruleno==359); - case 360: /* expression ::= case_when_expression */ yytestcase(yyruleno==360); - case 390: /* function_expression ::= literal_func */ yytestcase(yyruleno==390); - case 439: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==439); - case 443: /* boolean_primary ::= predicate */ yytestcase(yyruleno==443); - case 445: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==445); - case 446: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==446); - case 449: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==449); - case 451: /* table_reference ::= table_primary */ yytestcase(yyruleno==451); - case 452: /* table_reference ::= joined_table */ yytestcase(yyruleno==452); - case 456: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==456); - case 513: /* query_simple ::= query_specification */ yytestcase(yyruleno==513); - case 514: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==514); - case 517: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==517); - case 519: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==519); + case 325: /* literal ::= duration_literal */ + case 335: /* signed_literal ::= signed */ yytestcase(yyruleno==335); + case 356: /* expr_or_subquery ::= expression */ yytestcase(yyruleno==356); + case 357: /* expression ::= literal */ yytestcase(yyruleno==357); + case 358: /* expression ::= pseudo_column */ yytestcase(yyruleno==358); + case 359: /* expression ::= column_reference */ yytestcase(yyruleno==359); + case 360: /* expression ::= function_expression */ yytestcase(yyruleno==360); + case 361: /* expression ::= case_when_expression */ yytestcase(yyruleno==361); + case 391: /* function_expression ::= literal_func */ yytestcase(yyruleno==391); + case 440: /* boolean_value_expression ::= boolean_primary */ yytestcase(yyruleno==440); + case 444: /* boolean_primary ::= predicate */ yytestcase(yyruleno==444); + case 446: /* common_expression ::= expr_or_subquery */ yytestcase(yyruleno==446); + case 447: /* common_expression ::= boolean_value_expression */ yytestcase(yyruleno==447); + case 450: /* table_reference_list ::= table_reference */ yytestcase(yyruleno==450); + case 452: /* table_reference ::= table_primary */ yytestcase(yyruleno==452); + case 453: /* table_reference ::= joined_table */ yytestcase(yyruleno==453); + case 457: /* table_primary ::= parenthesized_joined_table */ yytestcase(yyruleno==457); + case 514: /* query_simple ::= query_specification */ yytestcase(yyruleno==514); + case 515: /* query_simple ::= union_query_expression */ yytestcase(yyruleno==515); + case 518: /* query_simple_or_subquery ::= query_simple */ yytestcase(yyruleno==518); + case 520: /* query_or_subquery ::= query_expression */ yytestcase(yyruleno==520); { yylhsminor.yy600 = yymsp[0].minor.yy600; } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 325: /* literal ::= NULL */ + case 326: /* literal ::= NULL */ { yylhsminor.yy600 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 326: /* literal ::= NK_QUESTION */ + case 327: /* literal ::= NK_QUESTION */ { yylhsminor.yy600 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 327: /* duration_literal ::= NK_VARIABLE */ + case 328: /* duration_literal ::= NK_VARIABLE */ { yylhsminor.yy600 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createDurationValueNode(pCxt, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 328: /* signed ::= NK_INTEGER */ + case 329: /* signed ::= NK_INTEGER */ { yylhsminor.yy600 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 329: /* signed ::= NK_PLUS NK_INTEGER */ + case 330: /* signed ::= NK_PLUS NK_INTEGER */ { yymsp[-1].minor.yy600 = createValueNode(pCxt, TSDB_DATA_TYPE_UBIGINT, &yymsp[0].minor.yy0); } break; - case 330: /* signed ::= NK_MINUS NK_INTEGER */ + case 331: /* signed ::= NK_MINUS NK_INTEGER */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; @@ -5269,14 +4721,14 @@ static YYACTIONTYPE yy_reduce( } yymsp[-1].minor.yy600 = yylhsminor.yy600; break; - case 331: /* signed ::= NK_FLOAT */ + case 332: /* signed ::= NK_FLOAT */ { yylhsminor.yy600 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 332: /* signed ::= NK_PLUS NK_FLOAT */ + case 333: /* signed ::= NK_PLUS NK_FLOAT */ { yymsp[-1].minor.yy600 = createValueNode(pCxt, TSDB_DATA_TYPE_DOUBLE, &yymsp[0].minor.yy0); } break; - case 333: /* signed ::= NK_MINUS NK_FLOAT */ + case 334: /* signed ::= NK_MINUS NK_FLOAT */ { SToken t = yymsp[-1].minor.yy0; t.n = (yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z; @@ -5284,57 +4736,57 @@ static YYACTIONTYPE yy_reduce( } yymsp[-1].minor.yy600 = yylhsminor.yy600; break; - case 335: /* signed_literal ::= NK_STRING */ + case 336: /* signed_literal ::= NK_STRING */ { yylhsminor.yy600 = createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 336: /* signed_literal ::= NK_BOOL */ + case 337: /* signed_literal ::= NK_BOOL */ { yylhsminor.yy600 = createValueNode(pCxt, TSDB_DATA_TYPE_BOOL, &yymsp[0].minor.yy0); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 337: /* signed_literal ::= TIMESTAMP NK_STRING */ + case 338: /* signed_literal ::= TIMESTAMP NK_STRING */ { yymsp[-1].minor.yy600 = createValueNode(pCxt, TSDB_DATA_TYPE_TIMESTAMP, &yymsp[0].minor.yy0); } break; - case 338: /* signed_literal ::= duration_literal */ - case 340: /* signed_literal ::= literal_func */ yytestcase(yyruleno==340); - case 410: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==410); - case 472: /* select_item ::= common_expression */ yytestcase(yyruleno==472); - case 482: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==482); - case 518: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==518); - case 520: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==520); - case 533: /* search_condition ::= common_expression */ yytestcase(yyruleno==533); + case 339: /* signed_literal ::= duration_literal */ + case 341: /* signed_literal ::= literal_func */ yytestcase(yyruleno==341); + case 411: /* star_func_para ::= expr_or_subquery */ yytestcase(yyruleno==411); + case 473: /* select_item ::= common_expression */ yytestcase(yyruleno==473); + case 483: /* partition_item ::= expr_or_subquery */ yytestcase(yyruleno==483); + case 519: /* query_simple_or_subquery ::= subquery */ yytestcase(yyruleno==519); + case 521: /* query_or_subquery ::= subquery */ yytestcase(yyruleno==521); + case 534: /* search_condition ::= common_expression */ yytestcase(yyruleno==534); { yylhsminor.yy600 = releaseRawExprNode(pCxt, yymsp[0].minor.yy600); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 339: /* signed_literal ::= NULL */ + case 340: /* signed_literal ::= NULL */ { yylhsminor.yy600 = createValueNode(pCxt, TSDB_DATA_TYPE_NULL, &yymsp[0].minor.yy0); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 341: /* signed_literal ::= NK_QUESTION */ + case 342: /* signed_literal ::= NK_QUESTION */ { yylhsminor.yy600 = createPlaceholderValueNode(pCxt, &yymsp[0].minor.yy0); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 361: /* expression ::= NK_LP expression NK_RP */ - case 444: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==444); - case 532: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==532); + case 362: /* expression ::= NK_LP expression NK_RP */ + case 445: /* boolean_primary ::= NK_LP boolean_value_expression NK_RP */ yytestcase(yyruleno==445); + case 533: /* subquery ::= NK_LP subquery NK_RP */ yytestcase(yyruleno==533); { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, releaseRawExprNode(pCxt, yymsp[-1].minor.yy600)); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 362: /* expression ::= NK_PLUS expr_or_subquery */ + case 363: /* expression ::= NK_PLUS expr_or_subquery */ { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, releaseRawExprNode(pCxt, yymsp[0].minor.yy600)); } yymsp[-1].minor.yy600 = yylhsminor.yy600; break; - case 363: /* expression ::= NK_MINUS expr_or_subquery */ + case 364: /* expression ::= NK_MINUS expr_or_subquery */ { SToken t = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &t, createOperatorNode(pCxt, OP_TYPE_MINUS, releaseRawExprNode(pCxt, yymsp[0].minor.yy600), NULL)); } yymsp[-1].minor.yy600 = yylhsminor.yy600; break; - case 364: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ + case 365: /* expression ::= expr_or_subquery NK_PLUS expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5342,7 +4794,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 365: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ + case 366: /* expression ::= expr_or_subquery NK_MINUS expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5350,7 +4802,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 366: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ + case 367: /* expression ::= expr_or_subquery NK_STAR expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5358,7 +4810,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 367: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ + case 368: /* expression ::= expr_or_subquery NK_SLASH expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5366,7 +4818,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 368: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ + case 369: /* expression ::= expr_or_subquery NK_REM expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5374,14 +4826,14 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 369: /* expression ::= column_reference NK_ARROW NK_STRING */ + case 370: /* expression ::= column_reference NK_ARROW NK_STRING */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); yylhsminor.yy600 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_JSON_GET_VALUE, releaseRawExprNode(pCxt, yymsp[-2].minor.yy600), createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[0].minor.yy0))); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 370: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ + case 371: /* expression ::= expr_or_subquery NK_BITAND expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5389,7 +4841,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 371: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ + case 372: /* expression ::= expr_or_subquery NK_BITOR expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5397,70 +4849,70 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 374: /* column_reference ::= column_name */ + case 375: /* column_reference ::= column_name */ { yylhsminor.yy600 = createRawExprNode(pCxt, &yymsp[0].minor.yy77, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy77)); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 375: /* column_reference ::= table_name NK_DOT column_name */ + case 376: /* column_reference ::= table_name NK_DOT column_name */ { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy77, &yymsp[0].minor.yy77, createColumnNode(pCxt, &yymsp[-2].minor.yy77, &yymsp[0].minor.yy77)); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 376: /* pseudo_column ::= ROWTS */ - case 377: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==377); - case 379: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==379); - case 380: /* pseudo_column ::= QEND */ yytestcase(yyruleno==380); - case 381: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==381); - case 382: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==382); - case 383: /* pseudo_column ::= WEND */ yytestcase(yyruleno==383); - case 384: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==384); - case 385: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==385); - case 386: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==386); - case 392: /* literal_func ::= NOW */ yytestcase(yyruleno==392); + case 377: /* pseudo_column ::= ROWTS */ + case 378: /* pseudo_column ::= TBNAME */ yytestcase(yyruleno==378); + case 380: /* pseudo_column ::= QSTART */ yytestcase(yyruleno==380); + case 381: /* pseudo_column ::= QEND */ yytestcase(yyruleno==381); + case 382: /* pseudo_column ::= QDURATION */ yytestcase(yyruleno==382); + case 383: /* pseudo_column ::= WSTART */ yytestcase(yyruleno==383); + case 384: /* pseudo_column ::= WEND */ yytestcase(yyruleno==384); + case 385: /* pseudo_column ::= WDURATION */ yytestcase(yyruleno==385); + case 386: /* pseudo_column ::= IROWTS */ yytestcase(yyruleno==386); + case 387: /* pseudo_column ::= QTAGS */ yytestcase(yyruleno==387); + case 393: /* literal_func ::= NOW */ yytestcase(yyruleno==393); { yylhsminor.yy600 = createRawExprNode(pCxt, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, NULL)); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 378: /* pseudo_column ::= table_name NK_DOT TBNAME */ + case 379: /* pseudo_column ::= table_name NK_DOT TBNAME */ { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy77, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[0].minor.yy0, createNodeList(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BINARY, &yymsp[-2].minor.yy77)))); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 387: /* function_expression ::= function_name NK_LP expression_list NK_RP */ - case 388: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==388); + case 388: /* function_expression ::= function_name NK_LP expression_list NK_RP */ + case 389: /* function_expression ::= star_func NK_LP star_func_para_list NK_RP */ yytestcase(yyruleno==389); { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy77, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-3].minor.yy77, yymsp[-1].minor.yy601)); } yymsp[-3].minor.yy600 = yylhsminor.yy600; break; - case 389: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ + case 390: /* function_expression ::= CAST NK_LP expr_or_subquery AS type_name NK_RP */ { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, createCastFunctionNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy600), yymsp[-1].minor.yy888)); } yymsp[-5].minor.yy600 = yylhsminor.yy600; break; - case 391: /* literal_func ::= noarg_func NK_LP NK_RP */ + case 392: /* literal_func ::= noarg_func NK_LP NK_RP */ { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy77, &yymsp[0].minor.yy0, createFunctionNode(pCxt, &yymsp[-2].minor.yy77, NULL)); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 406: /* star_func_para_list ::= NK_STAR */ + case 407: /* star_func_para_list ::= NK_STAR */ { yylhsminor.yy601 = createNodeList(pCxt, createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0)); } yymsp[0].minor.yy601 = yylhsminor.yy601; break; - case 411: /* star_func_para ::= table_name NK_DOT NK_STAR */ - case 475: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==475); + case 412: /* star_func_para ::= table_name NK_DOT NK_STAR */ + case 476: /* select_item ::= table_name NK_DOT NK_STAR */ yytestcase(yyruleno==476); { yylhsminor.yy600 = createColumnNode(pCxt, &yymsp[-2].minor.yy77, &yymsp[0].minor.yy0); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 412: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ + case 413: /* case_when_expression ::= CASE when_then_list case_when_else_opt END */ { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, NULL, yymsp[-2].minor.yy601, yymsp[-1].minor.yy600)); } yymsp[-3].minor.yy600 = yylhsminor.yy600; break; - case 413: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ + case 414: /* case_when_expression ::= CASE common_expression when_then_list case_when_else_opt END */ { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0, createCaseWhenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy600), yymsp[-2].minor.yy601, yymsp[-1].minor.yy600)); } yymsp[-4].minor.yy600 = yylhsminor.yy600; break; - case 416: /* when_then_expr ::= WHEN common_expression THEN common_expression */ + case 417: /* when_then_expr ::= WHEN common_expression THEN common_expression */ { yymsp[-3].minor.yy600 = createWhenThenNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy600), releaseRawExprNode(pCxt, yymsp[0].minor.yy600)); } break; - case 418: /* case_when_else_opt ::= ELSE common_expression */ + case 419: /* case_when_else_opt ::= ELSE common_expression */ { yymsp[-1].minor.yy600 = releaseRawExprNode(pCxt, yymsp[0].minor.yy600); } break; - case 419: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ - case 424: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==424); + case 420: /* predicate ::= expr_or_subquery compare_op expr_or_subquery */ + case 425: /* predicate ::= expr_or_subquery in_op in_predicate_value */ yytestcase(yyruleno==425); { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5468,7 +4920,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 420: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ + case 421: /* predicate ::= expr_or_subquery BETWEEN expr_or_subquery AND expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-4].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5476,7 +4928,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-4].minor.yy600 = yylhsminor.yy600; break; - case 421: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ + case 422: /* predicate ::= expr_or_subquery NOT BETWEEN expr_or_subquery AND expr_or_subquery */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-5].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5484,71 +4936,71 @@ static YYACTIONTYPE yy_reduce( } yymsp[-5].minor.yy600 = yylhsminor.yy600; break; - case 422: /* predicate ::= expr_or_subquery IS NULL */ + case 423: /* predicate ::= expr_or_subquery IS NULL */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); yylhsminor.yy600 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NULL, releaseRawExprNode(pCxt, yymsp[-2].minor.yy600), NULL)); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 423: /* predicate ::= expr_or_subquery IS NOT NULL */ + case 424: /* predicate ::= expr_or_subquery IS NOT NULL */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-3].minor.yy600); yylhsminor.yy600 = createRawExprNodeExt(pCxt, &s, &yymsp[0].minor.yy0, createOperatorNode(pCxt, OP_TYPE_IS_NOT_NULL, releaseRawExprNode(pCxt, yymsp[-3].minor.yy600), NULL)); } yymsp[-3].minor.yy600 = yylhsminor.yy600; break; - case 425: /* compare_op ::= NK_LT */ + case 426: /* compare_op ::= NK_LT */ { yymsp[0].minor.yy666 = OP_TYPE_LOWER_THAN; } break; - case 426: /* compare_op ::= NK_GT */ + case 427: /* compare_op ::= NK_GT */ { yymsp[0].minor.yy666 = OP_TYPE_GREATER_THAN; } break; - case 427: /* compare_op ::= NK_LE */ + case 428: /* compare_op ::= NK_LE */ { yymsp[0].minor.yy666 = OP_TYPE_LOWER_EQUAL; } break; - case 428: /* compare_op ::= NK_GE */ + case 429: /* compare_op ::= NK_GE */ { yymsp[0].minor.yy666 = OP_TYPE_GREATER_EQUAL; } break; - case 429: /* compare_op ::= NK_NE */ + case 430: /* compare_op ::= NK_NE */ { yymsp[0].minor.yy666 = OP_TYPE_NOT_EQUAL; } break; - case 430: /* compare_op ::= NK_EQ */ + case 431: /* compare_op ::= NK_EQ */ { yymsp[0].minor.yy666 = OP_TYPE_EQUAL; } break; - case 431: /* compare_op ::= LIKE */ + case 432: /* compare_op ::= LIKE */ { yymsp[0].minor.yy666 = OP_TYPE_LIKE; } break; - case 432: /* compare_op ::= NOT LIKE */ + case 433: /* compare_op ::= NOT LIKE */ { yymsp[-1].minor.yy666 = OP_TYPE_NOT_LIKE; } break; - case 433: /* compare_op ::= MATCH */ + case 434: /* compare_op ::= MATCH */ { yymsp[0].minor.yy666 = OP_TYPE_MATCH; } break; - case 434: /* compare_op ::= NMATCH */ + case 435: /* compare_op ::= NMATCH */ { yymsp[0].minor.yy666 = OP_TYPE_NMATCH; } break; - case 435: /* compare_op ::= CONTAINS */ + case 436: /* compare_op ::= CONTAINS */ { yymsp[0].minor.yy666 = OP_TYPE_JSON_CONTAINS; } break; - case 436: /* in_op ::= IN */ + case 437: /* in_op ::= IN */ { yymsp[0].minor.yy666 = OP_TYPE_IN; } break; - case 437: /* in_op ::= NOT IN */ + case 438: /* in_op ::= NOT IN */ { yymsp[-1].minor.yy666 = OP_TYPE_NOT_IN; } break; - case 438: /* in_predicate_value ::= NK_LP literal_list NK_RP */ + case 439: /* in_predicate_value ::= NK_LP literal_list NK_RP */ { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, createNodeListNode(pCxt, yymsp[-1].minor.yy601)); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 440: /* boolean_value_expression ::= NOT boolean_primary */ + case 441: /* boolean_value_expression ::= NOT boolean_primary */ { SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-1].minor.yy0, &e, createLogicConditionNode(pCxt, LOGIC_COND_TYPE_NOT, releaseRawExprNode(pCxt, yymsp[0].minor.yy600), NULL)); } yymsp[-1].minor.yy600 = yylhsminor.yy600; break; - case 441: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ + case 442: /* boolean_value_expression ::= boolean_value_expression OR boolean_value_expression */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5556,7 +5008,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 442: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ + case 443: /* boolean_value_expression ::= boolean_value_expression AND boolean_value_expression */ { SToken s = getTokenFromRawExprNode(pCxt, yymsp[-2].minor.yy600); SToken e = getTokenFromRawExprNode(pCxt, yymsp[0].minor.yy600); @@ -5564,48 +5016,48 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 448: /* from_clause_opt ::= FROM table_reference_list */ - case 477: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==477); - case 507: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==507); + case 449: /* from_clause_opt ::= FROM table_reference_list */ + case 478: /* where_clause_opt ::= WHERE search_condition */ yytestcase(yyruleno==478); + case 508: /* having_clause_opt ::= HAVING search_condition */ yytestcase(yyruleno==508); { yymsp[-1].minor.yy600 = yymsp[0].minor.yy600; } break; - case 450: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ + case 451: /* table_reference_list ::= table_reference_list NK_COMMA table_reference */ { yylhsminor.yy600 = createJoinTableNode(pCxt, JOIN_TYPE_INNER, yymsp[-2].minor.yy600, yymsp[0].minor.yy600, NULL); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 453: /* table_primary ::= table_name alias_opt */ + case 454: /* table_primary ::= table_name alias_opt */ { yylhsminor.yy600 = createRealTableNode(pCxt, NULL, &yymsp[-1].minor.yy77, &yymsp[0].minor.yy77); } yymsp[-1].minor.yy600 = yylhsminor.yy600; break; - case 454: /* table_primary ::= db_name NK_DOT table_name alias_opt */ + case 455: /* table_primary ::= db_name NK_DOT table_name alias_opt */ { yylhsminor.yy600 = createRealTableNode(pCxt, &yymsp[-3].minor.yy77, &yymsp[-1].minor.yy77, &yymsp[0].minor.yy77); } yymsp[-3].minor.yy600 = yylhsminor.yy600; break; - case 455: /* table_primary ::= subquery alias_opt */ + case 456: /* table_primary ::= subquery alias_opt */ { yylhsminor.yy600 = createTempTableNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy600), &yymsp[0].minor.yy77); } yymsp[-1].minor.yy600 = yylhsminor.yy600; break; - case 457: /* alias_opt ::= */ + case 458: /* alias_opt ::= */ { yymsp[1].minor.yy77 = nil_token; } break; - case 459: /* alias_opt ::= AS table_alias */ + case 460: /* alias_opt ::= AS table_alias */ { yymsp[-1].minor.yy77 = yymsp[0].minor.yy77; } break; - case 460: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ - case 461: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==461); + case 461: /* parenthesized_joined_table ::= NK_LP joined_table NK_RP */ + case 462: /* parenthesized_joined_table ::= NK_LP parenthesized_joined_table NK_RP */ yytestcase(yyruleno==462); { yymsp[-2].minor.yy600 = yymsp[-1].minor.yy600; } break; - case 462: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ + case 463: /* joined_table ::= table_reference join_type JOIN table_reference ON search_condition */ { yylhsminor.yy600 = createJoinTableNode(pCxt, yymsp[-4].minor.yy560, yymsp[-5].minor.yy600, yymsp[-2].minor.yy600, yymsp[0].minor.yy600); } yymsp[-5].minor.yy600 = yylhsminor.yy600; break; - case 463: /* join_type ::= */ + case 464: /* join_type ::= */ { yymsp[1].minor.yy560 = JOIN_TYPE_INNER; } break; - case 464: /* join_type ::= INNER */ + case 465: /* join_type ::= INNER */ { yymsp[0].minor.yy560 = JOIN_TYPE_INNER; } break; - case 465: /* 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 */ + case 466: /* 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.yy600 = createSelectStmt(pCxt, yymsp[-10].minor.yy841, yymsp[-9].minor.yy601, yymsp[-8].minor.yy600); yymsp[-11].minor.yy600 = addWhereClause(pCxt, yymsp[-11].minor.yy600, yymsp[-7].minor.yy600); @@ -5618,79 +5070,79 @@ static YYACTIONTYPE yy_reduce( yymsp[-11].minor.yy600 = addFillClause(pCxt, yymsp[-11].minor.yy600, yymsp[-3].minor.yy600); } break; - case 468: /* set_quantifier_opt ::= ALL */ + case 469: /* set_quantifier_opt ::= ALL */ { yymsp[0].minor.yy841 = false; } break; - case 471: /* select_item ::= NK_STAR */ + case 472: /* select_item ::= NK_STAR */ { yylhsminor.yy600 = createColumnNode(pCxt, NULL, &yymsp[0].minor.yy0); } yymsp[0].minor.yy600 = yylhsminor.yy600; break; - case 473: /* select_item ::= common_expression column_alias */ - case 483: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==483); + case 474: /* select_item ::= common_expression column_alias */ + case 484: /* partition_item ::= expr_or_subquery column_alias */ yytestcase(yyruleno==484); { yylhsminor.yy600 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy600), &yymsp[0].minor.yy77); } yymsp[-1].minor.yy600 = yylhsminor.yy600; break; - case 474: /* select_item ::= common_expression AS column_alias */ - case 484: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==484); + case 475: /* select_item ::= common_expression AS column_alias */ + case 485: /* partition_item ::= expr_or_subquery AS column_alias */ yytestcase(yyruleno==485); { yylhsminor.yy600 = setProjectionAlias(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy600), &yymsp[0].minor.yy77); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 479: /* partition_by_clause_opt ::= PARTITION BY partition_list */ - case 503: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==503); - case 522: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==522); + case 480: /* partition_by_clause_opt ::= PARTITION BY partition_list */ + case 504: /* group_by_clause_opt ::= GROUP BY group_by_list */ yytestcase(yyruleno==504); + case 523: /* order_by_clause_opt ::= ORDER BY sort_specification_list */ yytestcase(yyruleno==523); { yymsp[-2].minor.yy601 = yymsp[0].minor.yy601; } break; - case 486: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ + case 487: /* twindow_clause_opt ::= SESSION NK_LP column_reference NK_COMMA duration_literal NK_RP */ { yymsp[-5].minor.yy600 = createSessionWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy600), releaseRawExprNode(pCxt, yymsp[-1].minor.yy600)); } break; - case 487: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ + case 488: /* twindow_clause_opt ::= STATE_WINDOW NK_LP expr_or_subquery NK_RP */ { yymsp[-3].minor.yy600 = createStateWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-1].minor.yy600)); } break; - case 488: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ + case 489: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_RP sliding_opt fill_opt */ { yymsp[-5].minor.yy600 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy600), NULL, yymsp[-1].minor.yy600, yymsp[0].minor.yy600); } break; - case 489: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ + case 490: /* twindow_clause_opt ::= INTERVAL NK_LP duration_literal NK_COMMA duration_literal NK_RP sliding_opt fill_opt */ { yymsp[-7].minor.yy600 = createIntervalWindowNode(pCxt, releaseRawExprNode(pCxt, yymsp[-5].minor.yy600), releaseRawExprNode(pCxt, yymsp[-3].minor.yy600), yymsp[-1].minor.yy600, yymsp[0].minor.yy600); } break; - case 493: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ + case 494: /* fill_opt ::= FILL NK_LP fill_mode NK_RP */ { yymsp[-3].minor.yy600 = createFillNode(pCxt, yymsp[-1].minor.yy798, NULL); } break; - case 494: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ + case 495: /* fill_opt ::= FILL NK_LP VALUE NK_COMMA literal_list NK_RP */ { yymsp[-5].minor.yy600 = createFillNode(pCxt, FILL_MODE_VALUE, createNodeListNode(pCxt, yymsp[-1].minor.yy601)); } break; - case 495: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP */ + case 496: /* fill_opt ::= FILL NK_LP VALUE_F NK_COMMA literal_list NK_RP */ { yymsp[-5].minor.yy600 = createFillNode(pCxt, FILL_MODE_VALUE_F, createNodeListNode(pCxt, yymsp[-1].minor.yy601)); } break; - case 496: /* fill_mode ::= NONE */ + case 497: /* fill_mode ::= NONE */ { yymsp[0].minor.yy798 = FILL_MODE_NONE; } break; - case 497: /* fill_mode ::= PREV */ + case 498: /* fill_mode ::= PREV */ { yymsp[0].minor.yy798 = FILL_MODE_PREV; } break; - case 498: /* fill_mode ::= NULL */ + case 499: /* fill_mode ::= NULL */ { yymsp[0].minor.yy798 = FILL_MODE_NULL; } break; - case 499: /* fill_mode ::= NULL_F */ + case 500: /* fill_mode ::= NULL_F */ { yymsp[0].minor.yy798 = FILL_MODE_NULL_F; } break; - case 500: /* fill_mode ::= LINEAR */ + case 501: /* fill_mode ::= LINEAR */ { yymsp[0].minor.yy798 = FILL_MODE_LINEAR; } break; - case 501: /* fill_mode ::= NEXT */ + case 502: /* fill_mode ::= NEXT */ { yymsp[0].minor.yy798 = FILL_MODE_NEXT; } break; - case 504: /* group_by_list ::= expr_or_subquery */ + case 505: /* group_by_list ::= expr_or_subquery */ { yylhsminor.yy601 = createNodeList(pCxt, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy600))); } yymsp[0].minor.yy601 = yylhsminor.yy601; break; - case 505: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ + case 506: /* group_by_list ::= group_by_list NK_COMMA expr_or_subquery */ { yylhsminor.yy601 = addNodeToList(pCxt, yymsp[-2].minor.yy601, createGroupingSetNode(pCxt, releaseRawExprNode(pCxt, yymsp[0].minor.yy600))); } yymsp[-2].minor.yy601 = yylhsminor.yy601; break; - case 509: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ + case 510: /* range_opt ::= RANGE NK_LP expr_or_subquery NK_COMMA expr_or_subquery NK_RP */ { yymsp[-5].minor.yy600 = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, yymsp[-3].minor.yy600), releaseRawExprNode(pCxt, yymsp[-1].minor.yy600)); } break; - case 512: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ + case 513: /* query_expression ::= query_simple order_by_clause_opt slimit_clause_opt limit_clause_opt */ { yylhsminor.yy600 = addOrderByClause(pCxt, yymsp[-3].minor.yy600, yymsp[-2].minor.yy601); yylhsminor.yy600 = addSlimitClause(pCxt, yylhsminor.yy600, yymsp[-1].minor.yy600); @@ -5698,59 +5150,59 @@ static YYACTIONTYPE yy_reduce( } yymsp[-3].minor.yy600 = yylhsminor.yy600; break; - case 515: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ + case 516: /* union_query_expression ::= query_simple_or_subquery UNION ALL query_simple_or_subquery */ { yylhsminor.yy600 = createSetOperator(pCxt, SET_OP_TYPE_UNION_ALL, yymsp[-3].minor.yy600, yymsp[0].minor.yy600); } yymsp[-3].minor.yy600 = yylhsminor.yy600; break; - case 516: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ + case 517: /* union_query_expression ::= query_simple_or_subquery UNION query_simple_or_subquery */ { yylhsminor.yy600 = createSetOperator(pCxt, SET_OP_TYPE_UNION, yymsp[-2].minor.yy600, yymsp[0].minor.yy600); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 524: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ - case 528: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==528); + case 525: /* slimit_clause_opt ::= SLIMIT NK_INTEGER */ + case 529: /* limit_clause_opt ::= LIMIT NK_INTEGER */ yytestcase(yyruleno==529); { yymsp[-1].minor.yy600 = createLimitNode(pCxt, &yymsp[0].minor.yy0, NULL); } break; - case 525: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ - case 529: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==529); + case 526: /* slimit_clause_opt ::= SLIMIT NK_INTEGER SOFFSET NK_INTEGER */ + case 530: /* limit_clause_opt ::= LIMIT NK_INTEGER OFFSET NK_INTEGER */ yytestcase(yyruleno==530); { yymsp[-3].minor.yy600 = createLimitNode(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 526: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ - case 530: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==530); + case 527: /* slimit_clause_opt ::= SLIMIT NK_INTEGER NK_COMMA NK_INTEGER */ + case 531: /* limit_clause_opt ::= LIMIT NK_INTEGER NK_COMMA NK_INTEGER */ yytestcase(yyruleno==531); { yymsp[-3].minor.yy600 = createLimitNode(pCxt, &yymsp[0].minor.yy0, &yymsp[-2].minor.yy0); } break; - case 531: /* subquery ::= NK_LP query_expression NK_RP */ + case 532: /* subquery ::= NK_LP query_expression NK_RP */ { yylhsminor.yy600 = createRawExprNodeExt(pCxt, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-1].minor.yy600); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 536: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ + case 537: /* sort_specification ::= expr_or_subquery ordering_specification_opt null_ordering_opt */ { yylhsminor.yy600 = createOrderByExprNode(pCxt, releaseRawExprNode(pCxt, yymsp[-2].minor.yy600), yymsp[-1].minor.yy32, yymsp[0].minor.yy385); } yymsp[-2].minor.yy600 = yylhsminor.yy600; break; - case 537: /* ordering_specification_opt ::= */ + case 538: /* ordering_specification_opt ::= */ { yymsp[1].minor.yy32 = ORDER_ASC; } break; - case 538: /* ordering_specification_opt ::= ASC */ + case 539: /* ordering_specification_opt ::= ASC */ { yymsp[0].minor.yy32 = ORDER_ASC; } break; - case 539: /* ordering_specification_opt ::= DESC */ + case 540: /* ordering_specification_opt ::= DESC */ { yymsp[0].minor.yy32 = ORDER_DESC; } break; - case 540: /* null_ordering_opt ::= */ + case 541: /* null_ordering_opt ::= */ { yymsp[1].minor.yy385 = NULL_ORDER_DEFAULT; } break; - case 541: /* null_ordering_opt ::= NULLS FIRST */ + case 542: /* null_ordering_opt ::= NULLS FIRST */ { yymsp[-1].minor.yy385 = NULL_ORDER_FIRST; } break; - case 542: /* null_ordering_opt ::= NULLS LAST */ + case 543: /* null_ordering_opt ::= NULLS LAST */ { yymsp[-1].minor.yy385 = NULL_ORDER_LAST; } break; default: break; /********** End reduce actions ************************************************/ }; - assert( yyrulenoflags, pExpectField->flags); } } + ASSERT_EQ(req.igUpdate, expect.igUpdate); tFreeSCMCreateStreamReq(&req); }); @@ -708,12 +711,11 @@ TEST_F(ParserInitialCTest, createStream) { setCreateStreamReq( "s1", "test", - "create stream if not exists s1 trigger max_delay 20s watermark 10s ignore expired 0 fill_history 1 into st1 " - "as select count(*) from t1 interval(10s)", - "st1", 1, STREAM_TRIGGER_MAX_DELAY, 20 * MILLISECOND_PER_SECOND, 10 * MILLISECOND_PER_SECOND, 0, 1); - run("CREATE STREAM IF NOT EXISTS s1 TRIGGER MAX_DELAY 20s WATERMARK 10s IGNORE EXPIRED 0 FILL_HISTORY 1 INTO st1 AS " - "SELECT COUNT(*) " - "FROM t1 INTERVAL(10S)"); + "create stream if not exists s1 trigger max_delay 20s watermark 10s ignore expired 0 fill_history 1 ignore " + "update 1 into st1 as select count(*) from t1 interval(10s)", + "st1", 1, STREAM_TRIGGER_MAX_DELAY, 20 * MILLISECOND_PER_SECOND, 10 * MILLISECOND_PER_SECOND, 0, 1, 1); + run("CREATE STREAM IF NOT EXISTS s1 TRIGGER MAX_DELAY 20s WATERMARK 10s IGNORE EXPIRED 0 FILL_HISTORY 1 IGNORE " + "UPDATE 1 INTO st1 AS SELECT COUNT(*) FROM t1 INTERVAL(10S)"); clearCreateStreamReq(); setCreateStreamReq("s1", "test", diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index bd1823a770..bfde50761a 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -343,6 +343,13 @@ static int32_t createScanLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSelect pScan->node.groupAction = GROUP_ACTION_NONE; pScan->node.resultDataOrder = DATA_ORDER_LEVEL_IN_BLOCK; + if (pCxt->pPlanCxt->streamQuery) { + pScan->triggerType = pCxt->pPlanCxt->triggerType; + pScan->watermark = pCxt->pPlanCxt->watermark; + pScan->deleteMark = pCxt->pPlanCxt->deleteMark; + pScan->igExpired = pCxt->pPlanCxt->igExpired; + pScan->igCheckUpdate = pCxt->pPlanCxt->igCheckUpdate; + } // set columns to scan if (TSDB_CODE_SUCCESS == code) { @@ -705,6 +712,7 @@ static int32_t createWindowLogicNodeFinalize(SLogicPlanContext* pCxt, SSelectStm pWindow->watermark = pCxt->pPlanCxt->watermark; pWindow->deleteMark = pCxt->pPlanCxt->deleteMark; pWindow->igExpired = pCxt->pPlanCxt->igExpired; + pWindow->igCheckUpdate = pCxt->pPlanCxt->igCheckUpdate; } pWindow->inputTsOrder = ORDER_ASC; pWindow->outputTsOrder = ORDER_ASC; diff --git a/source/libs/planner/src/planOptimizer.c b/source/libs/planner/src/planOptimizer.c index e901297f4d..90a7261074 100644 --- a/source/libs/planner/src/planOptimizer.c +++ b/source/libs/planner/src/planOptimizer.c @@ -328,10 +328,6 @@ static void scanPathOptSetScanWin(SScanLogicNode* pScan) { pScan->sliding = ((SWindowLogicNode*)pParent)->sliding; pScan->intervalUnit = ((SWindowLogicNode*)pParent)->intervalUnit; pScan->slidingUnit = ((SWindowLogicNode*)pParent)->slidingUnit; - pScan->triggerType = ((SWindowLogicNode*)pParent)->triggerType; - pScan->watermark = ((SWindowLogicNode*)pParent)->watermark; - pScan->deleteMark = ((SWindowLogicNode*)pParent)->deleteMark; - pScan->igExpired = ((SWindowLogicNode*)pParent)->igExpired; } } diff --git a/source/libs/planner/src/planPhysiCreater.c b/source/libs/planner/src/planPhysiCreater.c index df10fe8ee3..f016ca165b 100644 --- a/source/libs/planner/src/planPhysiCreater.c +++ b/source/libs/planner/src/planPhysiCreater.c @@ -582,6 +582,7 @@ static int32_t createTableScanPhysiNode(SPhysiPlanContext* pCxt, SSubplan* pSubp pTableScan->triggerType = pScanLogicNode->triggerType; pTableScan->watermark = pScanLogicNode->watermark; pTableScan->igExpired = pScanLogicNode->igExpired; + pTableScan->igCheckUpdate = pScanLogicNode->igCheckUpdate; pTableScan->assignBlockUid = pCxt->pPlanCxt->rSmaQuery ? true : false; int32_t code = createScanPhysiNodeFinalize(pCxt, pSubplan, pScanLogicNode, (SScanPhysiNode*)pTableScan, pPhyNode); diff --git a/tests/script/tsim/stream/basic3.sim b/tests/script/tsim/stream/basic3.sim index e598919e34..2df33541b4 100644 --- a/tests/script/tsim/stream/basic3.sim +++ b/tests/script/tsim/stream/basic3.sim @@ -81,6 +81,15 @@ if $rows == 0 then return -1 endi +sleep 3000 + +sql drop stream if exists streamd1; +sql drop stream if exists streamd2; +sql drop stream if exists streamd3; +sql drop stream if exists streamd4; +sql drop stream if exists streamd5; +sql drop stream if exists streamd6; + sql create stream streamd10 into streamd10 as select _wstart, _wend, count(*), first(ca), last(cb) as c2 from t1 interval(10s); sql desc streamd10; @@ -100,15 +109,6 @@ if $rows == 0 then return -1 endi -sleep 3000 - -sql drop stream if exists streamd1; -sql drop stream if exists streamd2; -sql drop stream if exists streamd3; -sql drop stream if exists streamd4; -sql drop stream if exists streamd5; -sql drop stream if exists streamd6; - _OVER: system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/tsim/stream/ignoreCheckUpdate.sim b/tests/script/tsim/stream/ignoreCheckUpdate.sim new file mode 100644 index 0000000000..7f99c534c8 --- /dev/null +++ b/tests/script/tsim/stream/ignoreCheckUpdate.sim @@ -0,0 +1,285 @@ +system sh/stop_dnodes.sh +system sh/deploy.sh -n dnode1 -i 1 +system sh/exec.sh -n dnode1 -s start +sleep 50 +sql connect + +print step 1 start + +sql drop stream if exists streams0; +sql drop database if exists test; +sql create database test vgroups 1; +sql use test; +sql create table t1(ts timestamp, a int, b int , c int); + +print create stream streams0 trigger at_once ignore update 1 into streamt as select _wstart c1, count(*) c2, max(b) c3 from t1 interval(10s); + +sql create stream streams0 trigger at_once ignore update 1 into streamt as select _wstart c1, count(*) c2, max(b) c3 from t1 interval(10s); + +sql insert into t1 values(1648791213000,1,1,1); +sql insert into t1 values(1648791213000,2,2,2); + +$loop_count = 0 + +loop0: +sleep 300 +sql select * from streamt order by 1,2,3; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $data01 != 2 then + print =====data01=$data01 + goto loop0 +endi + +if $data02 != 2 then + print =====data02=$data02 + goto loop0 +endi + + +sql insert into t1 values(1648791213000,3,3,3); + +$loop_count = 0 + +loop1: +sleep 300 +sql select * from streamt order by 1,2,3; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $data01 != 3 then + print =====data01=$data01 + goto loop1 +endi + +if $data02 != 3 then + print =====data02=$data02 + goto loop1 +endi + +print step 1 end + +print step 2 start + +sql drop stream if exists streams1; +sql drop database if exists test1; +sql create database test1 vgroups 1; +sql use test1; +sql create table t1(ts timestamp, a int, b int , c int); + +print create stream streams1 trigger at_once ignore update 1 into streamt1 as select _wstart c1, count(*) c2, max(b) c3 from t1 session(ts, 10s); + +sql create stream streams1 trigger at_once ignore update 1 into streamt1 as select _wstart c1, count(*) c2, max(b) c3 from t1 session(ts, 10s); + +sql insert into t1 values(1648791213000,1,1,1); +sql insert into t1 values(1648791213000,2,2,2); + +$loop_count = 0 + +loop2: +sleep 300 +sql select * from streamt1 order by 1,2,3; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $data01 != 2 then + print =====data01=$data01 + goto loop2 +endi + +if $data02 != 2 then + print =====data02=$data02 + goto loop2 +endi + + +sql insert into t1 values(1648791213000,3,3,3); + +$loop_count = 0 + +loop3: + +sleep 300 +sql select * from streamt1 order by 1,2,3; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $data01 != 3 then + print =====data01=$data01 + goto loop3 +endi + +if $data02 != 3 then + print =====data02=$data02 + goto loop3 +endi + +print step 2 end + +print step 3 start + +sql drop stream if exists streams2; +sql drop database if exists test2; +sql create database test2 vgroups 1; +sql use test2; +sql create table t1(ts timestamp, a int, b int , c int); + +print create stream streams2 trigger at_once ignore update 1 into streamt2 as select _wstart c1, count(*) c2, max(b) c3 from t1 state_window(c); + +sql create stream streams2 trigger at_once ignore update 1 into streamt2 as select _wstart c1, count(*) c2, max(b) c3 from t1 state_window(c); + +sql insert into t1 values(1648791213000,1,1,1); +sql insert into t1 values(1648791213000,2,2,1); + +$loop_count = 0 + +loop2: +sleep 300 +sql select * from streamt2 order by 1,2,3; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $data01 != 2 then + print =====data01=$data01 + goto loop2 +endi + +if $data02 != 2 then + print =====data02=$data02 + goto loop2 +endi + + +sql insert into t1 values(1648791213000,3,3,1); + +$loop_count = 0 + +loop3: + +sleep 300 +sql select * from streamt2 order by 1,2,3; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $data01 != 3 then + print =====data01=$data01 + goto loop3 +endi + +if $data02 != 3 then + print =====data02=$data02 + goto loop3 +endi + +print step 3 end + +print step 4 start + +sql drop stream if exists streams3; +sql drop database if exists test3; +sql create database test3 vgroups 4; +sql use test3; +sql create stable st(ts timestamp,a int,b int,c int) tags(ta int,tb int,tc int); +sql create table t1 using st tags(1,1,1); +sql create table t2 using st tags(2,2,2); + +print create stream streams3 trigger at_once ignore update 1 into streamt3 as select _wstart c1, count(*) c2, max(b) c3 from st interval(10s); + +sql create stream streams3 trigger at_once ignore update 1 into streamt3 as select _wstart c1, count(*) c2, max(b) c3 from st interval(10s); + +sql insert into t1 values(1648791213000,1,1,1); +sql insert into t1 values(1648791213000,2,2,2); + +sql insert into t2 values(1648791213000,1,1,1); +sql insert into t2 values(1648791213000,2,2,2); + +$loop_count = 0 + +loop0: +sleep 300 +sql select * from streamt3 order by 1,2,3; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $data01 != 4 then + print =====data01=$data01 + goto loop0 +endi + +if $data02 != 2 then + print =====data02=$data02 + goto loop0 +endi + + +sql insert into t1 values(1648791213000,3,3,3); + +$loop_count = 0 + +loop1: +sleep 300 +sql select * from streamt3 order by 1,2,3; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $data01 != 5 then + print =====data01=$data01 + goto loop1 +endi + +if $data02 != 3 then + print =====data02=$data02 + goto loop1 +endi + +sql insert into t2 values(1648791213000,4,4,4); + +$loop_count = 0 + +loop1: +sleep 300 +sql select * from streamt3 order by 1,2,3; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $data01 != 6 then + print =====data01=$data01 + goto loop1 +endi + +if $data02 != 4 then + print =====data02=$data02 + goto loop1 +endi + +print step 4 end + +system sh/stop_dnodes.sh diff --git a/tests/script/tsim/stream/ignoreExpiredData.sim b/tests/script/tsim/stream/ignoreExpiredData.sim index 03f574bc52..b143b7977f 100644 --- a/tests/script/tsim/stream/ignoreExpiredData.sim +++ b/tests/script/tsim/stream/ignoreExpiredData.sim @@ -52,6 +52,7 @@ sql insert into t1 values(1648791213000,1,2,3,1.0); sql insert into t1 values(1648791223001,1,2,3,1.1); sql insert into t1 values(1648791233002,2,2,3,2.1); sql insert into t1 values(1648791243003,2,2,3,3.1); +sleep 300 sql insert into t1 values(1648791200000,4,2,3,4.1); $loop_count = 0 @@ -115,6 +116,7 @@ sql create stream stream_t1 trigger at_once IGNORE EXPIRED 1 into streamtST1 as sql create stream stream_t2 trigger at_once IGNORE EXPIRED 1 into streamtST2 as select _wstart, count(*) c1, count(a) c2 , sum(a) c3 , max(b) c5, min(c) c6 from st session(ts, 10s) ; sql insert into ts1 values(1648791211000,1,2,3); sql insert into ts1 values(1648791222001,2,2,3); +sleep 300 sql insert into ts2 values(1648791211000,1,2,3); sql insert into ts2 values(1648791222001,2,2,3);