feat: passed parser/ast

This commit is contained in:
slzhou 2024-01-25 11:20:04 +08:00
parent 618e60cffc
commit 993728c200
4 changed files with 5181 additions and 5164 deletions

View File

@ -133,236 +133,238 @@
#define TK_NK_EQ 114 #define TK_NK_EQ 114
#define TK_USING 115 #define TK_USING 115
#define TK_TAGS 116 #define TK_TAGS 116
#define TK_BOOL 117 #define TK_PRIMARY 117
#define TK_TINYINT 118 #define TK_KEY 118
#define TK_SMALLINT 119 #define TK_BOOL 119
#define TK_INT 120 #define TK_TINYINT 120
#define TK_INTEGER 121 #define TK_SMALLINT 121
#define TK_BIGINT 122 #define TK_INT 122
#define TK_FLOAT 123 #define TK_INTEGER 123
#define TK_DOUBLE 124 #define TK_BIGINT 124
#define TK_BINARY 125 #define TK_FLOAT 125
#define TK_NCHAR 126 #define TK_DOUBLE 126
#define TK_UNSIGNED 127 #define TK_BINARY 127
#define TK_JSON 128 #define TK_NCHAR 128
#define TK_VARCHAR 129 #define TK_UNSIGNED 129
#define TK_MEDIUMBLOB 130 #define TK_JSON 130
#define TK_BLOB 131 #define TK_VARCHAR 131
#define TK_VARBINARY 132 #define TK_MEDIUMBLOB 132
#define TK_GEOMETRY 133 #define TK_BLOB 133
#define TK_DECIMAL 134 #define TK_VARBINARY 134
#define TK_COMMENT 135 #define TK_GEOMETRY 135
#define TK_MAX_DELAY 136 #define TK_DECIMAL 136
#define TK_WATERMARK 137 #define TK_COMMENT 137
#define TK_ROLLUP 138 #define TK_MAX_DELAY 138
#define TK_TTL 139 #define TK_WATERMARK 139
#define TK_SMA 140 #define TK_ROLLUP 140
#define TK_DELETE_MARK 141 #define TK_TTL 141
#define TK_FIRST 142 #define TK_SMA 142
#define TK_LAST 143 #define TK_DELETE_MARK 143
#define TK_SHOW 144 #define TK_FIRST 144
#define TK_PRIVILEGES 145 #define TK_LAST 145
#define TK_DATABASES 146 #define TK_SHOW 146
#define TK_TABLES 147 #define TK_PRIVILEGES 147
#define TK_STABLES 148 #define TK_DATABASES 148
#define TK_MNODES 149 #define TK_TABLES 149
#define TK_QNODES 150 #define TK_STABLES 150
#define TK_FUNCTIONS 151 #define TK_MNODES 151
#define TK_INDEXES 152 #define TK_QNODES 152
#define TK_ACCOUNTS 153 #define TK_FUNCTIONS 153
#define TK_APPS 154 #define TK_INDEXES 154
#define TK_CONNECTIONS 155 #define TK_ACCOUNTS 155
#define TK_LICENCES 156 #define TK_APPS 156
#define TK_GRANTS 157 #define TK_CONNECTIONS 157
#define TK_QUERIES 158 #define TK_LICENCES 158
#define TK_SCORES 159 #define TK_GRANTS 159
#define TK_TOPICS 160 #define TK_QUERIES 160
#define TK_VARIABLES 161 #define TK_SCORES 161
#define TK_CLUSTER 162 #define TK_TOPICS 162
#define TK_BNODES 163 #define TK_VARIABLES 163
#define TK_SNODES 164 #define TK_CLUSTER 164
#define TK_TRANSACTIONS 165 #define TK_BNODES 165
#define TK_DISTRIBUTED 166 #define TK_SNODES 166
#define TK_CONSUMERS 167 #define TK_TRANSACTIONS 167
#define TK_SUBSCRIPTIONS 168 #define TK_DISTRIBUTED 168
#define TK_VNODES 169 #define TK_CONSUMERS 169
#define TK_ALIVE 170 #define TK_SUBSCRIPTIONS 170
#define TK_VIEWS 171 #define TK_VNODES 171
#define TK_VIEW 172 #define TK_ALIVE 172
#define TK_COMPACTS 173 #define TK_VIEWS 173
#define TK_NORMAL 174 #define TK_VIEW 174
#define TK_CHILD 175 #define TK_COMPACTS 175
#define TK_LIKE 176 #define TK_NORMAL 176
#define TK_TBNAME 177 #define TK_CHILD 177
#define TK_QTAGS 178 #define TK_LIKE 178
#define TK_AS 179 #define TK_TBNAME 179
#define TK_SYSTEM 180 #define TK_QTAGS 180
#define TK_INDEX 181 #define TK_AS 181
#define TK_FUNCTION 182 #define TK_SYSTEM 182
#define TK_INTERVAL 183 #define TK_INDEX 183
#define TK_COUNT 184 #define TK_FUNCTION 184
#define TK_LAST_ROW 185 #define TK_INTERVAL 185
#define TK_META 186 #define TK_COUNT 186
#define TK_ONLY 187 #define TK_LAST_ROW 187
#define TK_TOPIC 188 #define TK_META 188
#define TK_CONSUMER 189 #define TK_ONLY 189
#define TK_GROUP 190 #define TK_TOPIC 190
#define TK_DESC 191 #define TK_CONSUMER 191
#define TK_DESCRIBE 192 #define TK_GROUP 192
#define TK_RESET 193 #define TK_DESC 193
#define TK_QUERY 194 #define TK_DESCRIBE 194
#define TK_CACHE 195 #define TK_RESET 195
#define TK_EXPLAIN 196 #define TK_QUERY 196
#define TK_ANALYZE 197 #define TK_CACHE 197
#define TK_VERBOSE 198 #define TK_EXPLAIN 198
#define TK_NK_BOOL 199 #define TK_ANALYZE 199
#define TK_RATIO 200 #define TK_VERBOSE 200
#define TK_NK_FLOAT 201 #define TK_NK_BOOL 201
#define TK_OUTPUTTYPE 202 #define TK_RATIO 202
#define TK_AGGREGATE 203 #define TK_NK_FLOAT 203
#define TK_BUFSIZE 204 #define TK_OUTPUTTYPE 204
#define TK_LANGUAGE 205 #define TK_AGGREGATE 205
#define TK_REPLACE 206 #define TK_BUFSIZE 206
#define TK_STREAM 207 #define TK_LANGUAGE 207
#define TK_INTO 208 #define TK_REPLACE 208
#define TK_PAUSE 209 #define TK_STREAM 209
#define TK_RESUME 210 #define TK_INTO 210
#define TK_TRIGGER 211 #define TK_PAUSE 211
#define TK_AT_ONCE 212 #define TK_RESUME 212
#define TK_WINDOW_CLOSE 213 #define TK_TRIGGER 213
#define TK_IGNORE 214 #define TK_AT_ONCE 214
#define TK_EXPIRED 215 #define TK_WINDOW_CLOSE 215
#define TK_FILL_HISTORY 216 #define TK_IGNORE 216
#define TK_UPDATE 217 #define TK_EXPIRED 217
#define TK_SUBTABLE 218 #define TK_FILL_HISTORY 218
#define TK_UNTREATED 219 #define TK_UPDATE 219
#define TK_KILL 220 #define TK_SUBTABLE 220
#define TK_CONNECTION 221 #define TK_UNTREATED 221
#define TK_TRANSACTION 222 #define TK_KILL 222
#define TK_BALANCE 223 #define TK_CONNECTION 223
#define TK_VGROUP 224 #define TK_TRANSACTION 224
#define TK_LEADER 225 #define TK_BALANCE 225
#define TK_MERGE 226 #define TK_VGROUP 226
#define TK_REDISTRIBUTE 227 #define TK_LEADER 227
#define TK_SPLIT 228 #define TK_MERGE 228
#define TK_DELETE 229 #define TK_REDISTRIBUTE 229
#define TK_INSERT 230 #define TK_SPLIT 230
#define TK_NULL 231 #define TK_DELETE 231
#define TK_NK_QUESTION 232 #define TK_INSERT 232
#define TK_NK_ALIAS 233 #define TK_NULL 233
#define TK_NK_ARROW 234 #define TK_NK_QUESTION 234
#define TK_ROWTS 235 #define TK_NK_ALIAS 235
#define TK_QSTART 236 #define TK_NK_ARROW 236
#define TK_QEND 237 #define TK_ROWTS 237
#define TK_QDURATION 238 #define TK_QSTART 238
#define TK_WSTART 239 #define TK_QEND 239
#define TK_WEND 240 #define TK_QDURATION 240
#define TK_WDURATION 241 #define TK_WSTART 241
#define TK_IROWTS 242 #define TK_WEND 242
#define TK_ISFILLED 243 #define TK_WDURATION 243
#define TK_CAST 244 #define TK_IROWTS 244
#define TK_NOW 245 #define TK_ISFILLED 245
#define TK_TODAY 246 #define TK_CAST 246
#define TK_TIMEZONE 247 #define TK_NOW 247
#define TK_CLIENT_VERSION 248 #define TK_TODAY 248
#define TK_SERVER_VERSION 249 #define TK_TIMEZONE 249
#define TK_SERVER_STATUS 250 #define TK_CLIENT_VERSION 250
#define TK_CURRENT_USER 251 #define TK_SERVER_VERSION 251
#define TK_CASE 252 #define TK_SERVER_STATUS 252
#define TK_WHEN 253 #define TK_CURRENT_USER 253
#define TK_THEN 254 #define TK_CASE 254
#define TK_ELSE 255 #define TK_WHEN 255
#define TK_BETWEEN 256 #define TK_THEN 256
#define TK_IS 257 #define TK_ELSE 257
#define TK_NK_LT 258 #define TK_BETWEEN 258
#define TK_NK_GT 259 #define TK_IS 259
#define TK_NK_LE 260 #define TK_NK_LT 260
#define TK_NK_GE 261 #define TK_NK_GT 261
#define TK_NK_NE 262 #define TK_NK_LE 262
#define TK_MATCH 263 #define TK_NK_GE 263
#define TK_NMATCH 264 #define TK_NK_NE 264
#define TK_CONTAINS 265 #define TK_MATCH 265
#define TK_IN 266 #define TK_NMATCH 266
#define TK_JOIN 267 #define TK_CONTAINS 267
#define TK_INNER 268 #define TK_IN 268
#define TK_SELECT 269 #define TK_JOIN 269
#define TK_NK_HINT 270 #define TK_INNER 270
#define TK_DISTINCT 271 #define TK_SELECT 271
#define TK_WHERE 272 #define TK_NK_HINT 272
#define TK_PARTITION 273 #define TK_DISTINCT 273
#define TK_BY 274 #define TK_WHERE 274
#define TK_SESSION 275 #define TK_PARTITION 275
#define TK_STATE_WINDOW 276 #define TK_BY 276
#define TK_EVENT_WINDOW 277 #define TK_SESSION 277
#define TK_SLIDING 278 #define TK_STATE_WINDOW 278
#define TK_FILL 279 #define TK_EVENT_WINDOW 279
#define TK_VALUE 280 #define TK_SLIDING 280
#define TK_VALUE_F 281 #define TK_FILL 281
#define TK_NONE 282 #define TK_VALUE 282
#define TK_PREV 283 #define TK_VALUE_F 283
#define TK_NULL_F 284 #define TK_NONE 284
#define TK_LINEAR 285 #define TK_PREV 285
#define TK_NEXT 286 #define TK_NULL_F 286
#define TK_HAVING 287 #define TK_LINEAR 287
#define TK_RANGE 288 #define TK_NEXT 288
#define TK_EVERY 289 #define TK_HAVING 289
#define TK_ORDER 290 #define TK_RANGE 290
#define TK_SLIMIT 291 #define TK_EVERY 291
#define TK_SOFFSET 292 #define TK_ORDER 292
#define TK_LIMIT 293 #define TK_SLIMIT 293
#define TK_OFFSET 294 #define TK_SOFFSET 294
#define TK_ASC 295 #define TK_LIMIT 295
#define TK_NULLS 296 #define TK_OFFSET 296
#define TK_ABORT 297 #define TK_ASC 297
#define TK_AFTER 298 #define TK_NULLS 298
#define TK_ATTACH 299 #define TK_ABORT 299
#define TK_BEFORE 300 #define TK_AFTER 300
#define TK_BEGIN 301 #define TK_ATTACH 301
#define TK_BITAND 302 #define TK_BEFORE 302
#define TK_BITNOT 303 #define TK_BEGIN 303
#define TK_BITOR 304 #define TK_BITAND 304
#define TK_BLOCKS 305 #define TK_BITNOT 305
#define TK_CHANGE 306 #define TK_BITOR 306
#define TK_COMMA 307 #define TK_BLOCKS 307
#define TK_CONCAT 308 #define TK_CHANGE 308
#define TK_CONFLICT 309 #define TK_COMMA 309
#define TK_COPY 310 #define TK_CONCAT 310
#define TK_DEFERRED 311 #define TK_CONFLICT 311
#define TK_DELIMITERS 312 #define TK_COPY 312
#define TK_DETACH 313 #define TK_DEFERRED 313
#define TK_DIVIDE 314 #define TK_DELIMITERS 314
#define TK_DOT 315 #define TK_DETACH 315
#define TK_EACH 316 #define TK_DIVIDE 316
#define TK_FAIL 317 #define TK_DOT 317
#define TK_FILE 318 #define TK_EACH 318
#define TK_FOR 319 #define TK_FAIL 319
#define TK_GLOB 320 #define TK_FILE 320
#define TK_ID 321 #define TK_FOR 321
#define TK_IMMEDIATE 322 #define TK_GLOB 322
#define TK_IMPORT 323 #define TK_ID 323
#define TK_INITIALLY 324 #define TK_IMMEDIATE 324
#define TK_INSTEAD 325 #define TK_IMPORT 325
#define TK_ISNULL 326 #define TK_INITIALLY 326
#define TK_KEY 327 #define TK_INSTEAD 327
#define TK_MODULES 328 #define TK_ISNULL 328
#define TK_NK_BITNOT 329 #define TK_MODULES 329
#define TK_NK_SEMI 330 #define TK_NK_BITNOT 330
#define TK_NOTNULL 331 #define TK_NK_SEMI 331
#define TK_OF 332 #define TK_NOTNULL 332
#define TK_PLUS 333 #define TK_OF 333
#define TK_PRIVILEGE 334 #define TK_PLUS 334
#define TK_RAISE 335 #define TK_PRIVILEGE 335
#define TK_RESTRICT 336 #define TK_RAISE 336
#define TK_ROW 337 #define TK_RESTRICT 337
#define TK_SEMI 338 #define TK_ROW 338
#define TK_STAR 339 #define TK_SEMI 339
#define TK_STATEMENT 340 #define TK_STAR 340
#define TK_STRICT 341 #define TK_STATEMENT 341
#define TK_STRING 342 #define TK_STRICT 342
#define TK_TIMES 343 #define TK_STRING 343
#define TK_VALUES 344 #define TK_TIMES 344
#define TK_VARIABLE 345 #define TK_VALUES 345
#define TK_WAL 346 #define TK_VARIABLE 346
#define TK_WAL 347
#define TK_NK_SPACE 600 #define TK_NK_SPACE 600
#define TK_NK_COMMENT 601 #define TK_NK_COMMENT 601

View File

@ -4584,6 +4584,7 @@ static const char* jkColumnDefColName = "ColName";
static const char* jkColumnDefDataType = "DataType"; static const char* jkColumnDefDataType = "DataType";
static const char* jkColumnDefComments = "Comments"; static const char* jkColumnDefComments = "Comments";
static const char* jkColumnDefSma = "Sma"; static const char* jkColumnDefSma = "Sma";
static const char* jkColumnDefIsPK = "IsPK";
static int32_t columnDefNodeToJson(const void* pObj, SJson* pJson) { static int32_t columnDefNodeToJson(const void* pObj, SJson* pJson) {
const SColumnDefNode* pNode = (const SColumnDefNode*)pObj; const SColumnDefNode* pNode = (const SColumnDefNode*)pObj;
@ -4598,6 +4599,9 @@ static int32_t columnDefNodeToJson(const void* pObj, SJson* pJson) {
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddBoolToObject(pJson, jkColumnDefSma, pNode->sma); code = tjsonAddBoolToObject(pJson, jkColumnDefSma, pNode->sma);
} }
if (TSDB_CODE_SUCCESS == code) {
code = tjsonAddBoolToObject(pJson, jkColumnDefIsPK, pNode->is_pk);
}
return code; return code;
} }
@ -4615,7 +4619,9 @@ static int32_t jsonToColumnDefNode(const SJson* pJson, void* pObj) {
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBoolValue(pJson, jkColumnDefSma, &pNode->sma); code = tjsonGetBoolValue(pJson, jkColumnDefSma, &pNode->sma);
} }
if (TSDB_CODE_SUCCESS == code) {
code = tjsonGetBoolValue(pJson, jkColumnDefIsPK, &pNode->is_pk);
}
return code; return code;
} }

View File

@ -128,6 +128,7 @@ static SKeyword keywordTable[] = {
{"JOIN", TK_JOIN}, {"JOIN", TK_JOIN},
{"JSON", TK_JSON}, {"JSON", TK_JSON},
{"KEEP", TK_KEEP}, {"KEEP", TK_KEEP},
{"KEY", TK_KEY},
{"KILL", TK_KILL}, {"KILL", TK_KILL},
{"LANGUAGE", TK_LANGUAGE}, {"LANGUAGE", TK_LANGUAGE},
{"LAST", TK_LAST}, {"LAST", TK_LAST},
@ -174,6 +175,7 @@ static SKeyword keywordTable[] = {
{"PASS", TK_PASS}, {"PASS", TK_PASS},
{"PORT", TK_PORT}, {"PORT", TK_PORT},
{"PPS", TK_PPS}, {"PPS", TK_PPS},
{"PRIMARY", TK_PRIMARY},
{"PRECISION", TK_PRECISION}, {"PRECISION", TK_PRECISION},
{"PREV", TK_PREV}, {"PREV", TK_PREV},
{"PRIVILEGES", TK_PRIVILEGES}, {"PRIVILEGES", TK_PRIVILEGES},

File diff suppressed because it is too large Load Diff