23 #ifndef _PARSE_TREE_H_ 24 #define _PARSE_TREE_H_ 26 #if defined (SERVER_MODE) 27 #error Does not belong to server module 47 #define MAX_PRINT_ERROR_CONTEXT_LENGTH 64 50 #define pt_cat_error(parser, node, setNo, msgNo, ...) \ 51 pt_frob_error(parser, node, msgcat_message(MSGCAT_CATALOG_CUBRID, setNo, msgNo), ##__VA_ARGS__) 53 #if 1 //not necessary anymore thanks to new pt_cat_error() and existing pt_frob_error() 54 #define PT_ERROR(parser, node, msg) pt_frob_error(parser, node, msg) 55 #define PT_ERRORc(parser, node, msg) pt_frob_error( parser, node, "%s", msg) 57 #define PT_ERRORf(parser, node, msg, arg1) pt_frob_error(parser, node, msg, arg1) 58 #define PT_ERRORf2(parser, node, msg, arg1, arg2) pt_frob_error(parser, node, msg, arg1, arg2) 59 #define PT_ERRORf3(parser, node, msg, arg1, arg2, arg3) pt_frob_error(parser, node, msg, arg1, arg2, arg3) 60 #define PT_ERRORf4(parser, node, msg, arg1, arg2, arg3, arg4) pt_frob_error(parser, node, msg, arg1, arg2, arg3, arg4) 61 #define PT_ERRORf5(parser, node, msg, arg1, arg2, arg3, arg4, arg5) pt_frob_error(parser, node, msg, arg1, arg2, arg3, arg4, arg5) 63 #define PT_ERRORm(parser, node, setNo, msgNo) pt_cat_error(parser, node, setNo, msgNo) 64 #define PT_ERRORmf(parser, node, setNo, msgNo, arg1) pt_cat_error(parser, node, setNo, msgNo, arg1) 65 #define PT_ERRORmf2(parser, node, setNo, msgNo, arg1, arg2) pt_cat_error(parser, node, setNo, msgNo, arg1, arg2) 66 #define PT_ERRORmf3(parser, node, setNo, msgNo, arg1, arg2, arg3) pt_cat_error(parser, node, setNo, msgNo, arg1, arg2, arg3) 67 #define PT_ERRORmf4(parser, node, setNo, msgNo, arg1, arg2, arg3, arg4) pt_cat_error(parser, node, setNo, msgNo, arg1, arg2, arg3, arg4) 68 #define PT_ERRORmf5(parser, node, setNo, msgNo, arg1, arg2, arg3, arg4 , arg5) pt_cat_error(parser, node, setNo, msgNo, arg1, arg2, arg3, arg4, arg5) 72 #define pt_cat_warning(parser, node, setNo, msgNo, ...) \ 73 pt_frob_warning(parser, node, msgcat_message(MSGCAT_CATALOG_CUBRID, setNo, msgNo), ##__VA_ARGS__) 75 #if 1 //not necessary anymore thanks to pt_cat_warning() and existing pt_frob_warning() 76 #define PT_WARNING( parser, node, msg ) pt_frob_warning(parser, node, msg) 77 #define PT_WARNINGm(parser, node, setNo, msgNo) pt_cat_warning(parser, node, setNo, msgNo) 78 #define PT_WARNINGc( parser, node, msg ) pt_frob_warning(parser, node, msg) 80 #define PT_WARNINGf( parser, node, msg, arg1) pt_cat_warning(parser, node, msg, arg1) 81 #define PT_WARNINGf2( parser, node, msg, arg1, arg2) pt_cat_warning(parser, node, msg, arg1, arg2) 82 #define PT_WARNINGf3( parser, node, msg, arg1, arg2, arg3) pt_cat_warning(parser, node, msg, arg1, arg2, arg3) 84 #define PT_WARNINGmf(parser, node, setNo, msgNo, arg1) pt_cat_warning(parser, node, setNo, msgNo, arg1) 85 #define PT_WARNINGmf2(parser, node, setNo, msgNo, arg1, arg2) pt_cat_warning(parser, node, setNo, msgNo, arg1, arg2) 86 #define PT_WARNINGmf3(parser, node, setNo, msgNo, arg1, arg2, arg3) pt_cat_warning(parser, node, setNo, msgNo, arg1, arg2, arg3) 89 #define PT_SET_JMP_ENV(parser) \ 91 if (setjmp((parser)->jmp_env) != 0) { \ 92 pt_record_error((parser), (parser)->statement_number, \ 95 msgcat_message (MSGCAT_CATALOG_CUBRID, \ 96 MSGCAT_SET_PARSER_SEMANTIC, \ 97 MSGCAT_SEMANTIC_OUT_OF_MEMORY), \ 99 (parser)->jmp_env_active = 0; \ 100 if ((parser)->au_save) \ 101 AU_ENABLE((parser)->au_save); \ 104 else (parser)->jmp_env_active = 1; \ 107 #define PT_CLEAR_JMP_ENV(parser) \ 109 (parser)->jmp_env_active = 0; \ 112 #define PT_INTERNAL_ERROR(parser, what) \ 113 pt_internal_error((parser), __FILE__, __LINE__, (what)) 115 #define PT_IS_QUERY_NODE_TYPE(x) \ 116 ( (x) == PT_SELECT || (x) == PT_UNION \ 117 || (x) == PT_DIFFERENCE || (x) == PT_INTERSECTION) 119 #define PT_IS_CLASSOID_NAME(x) \ 120 ( (x)->info.name.meta_class == PT_CLASSOID_ATTR) 122 #define PT_IS_NULL_NODE(e) ((e)->type_enum==PT_TYPE_NA \ 123 || (e)->type_enum==PT_TYPE_NULL) 125 #define PT_IS_NUMERIC_TYPE(t) \ 126 ( ((t) == PT_TYPE_INTEGER) || \ 127 ((t) == PT_TYPE_BIGINT) || \ 128 ((t) == PT_TYPE_FLOAT) || \ 129 ((t) == PT_TYPE_DOUBLE) || \ 130 ((t) == PT_TYPE_SMALLINT) || \ 131 ((t) == PT_TYPE_MONETARY) || \ 132 ((t) == PT_TYPE_LOGICAL) || \ 133 ((t) == PT_TYPE_NUMERIC)) 135 #define PT_IS_DISCRETE_NUMBER_TYPE(t) \ 136 ( ((t) == PT_TYPE_INTEGER) || \ 137 ((t) == PT_TYPE_BIGINT) || \ 138 ((t) == PT_TYPE_SMALLINT)) 140 #define PT_IS_COUNTER_TYPE(t) \ 141 PT_IS_DISCRETE_NUMBER_TYPE(t) 143 #define PT_IS_COLLECTION_TYPE(t) \ 144 ( ((t) == PT_TYPE_SET) || \ 145 ((t) == PT_TYPE_MULTISET) || \ 146 ((t) == PT_TYPE_SEQUENCE)) 148 #define PT_IS_STRING_TYPE(t) \ 149 ( ((t) == PT_TYPE_CHAR) || \ 150 ((t) == PT_TYPE_VARCHAR) || \ 151 ((t) == PT_TYPE_NCHAR) || \ 152 ((t) == PT_TYPE_VARNCHAR) || \ 153 ((t) == PT_TYPE_BIT) || \ 154 ((t) == PT_TYPE_VARBIT)) 156 #define PT_IS_NATIONAL_CHAR_STRING_TYPE(t) \ 157 ( ((t) == PT_TYPE_NCHAR) || \ 158 ((t) == PT_TYPE_VARNCHAR)) 160 #define PT_IS_SIMPLE_CHAR_STRING_TYPE(t) \ 161 ( ((t) == PT_TYPE_CHAR) || \ 162 ((t) == PT_TYPE_VARCHAR)) 164 #define PT_IS_CHAR_STRING_TYPE(t) \ 165 ( ((t) == PT_TYPE_CHAR) || \ 166 ((t) == PT_TYPE_VARCHAR) || \ 167 ((t) == PT_TYPE_NCHAR) || \ 168 ((t) == PT_TYPE_VARNCHAR)) 170 #define PT_IS_BIT_STRING_TYPE(t) \ 171 ( ((t) == PT_TYPE_BIT) || \ 172 ((t) == PT_TYPE_VARBIT)) 174 #define PT_IS_COMPLEX_TYPE(t) \ 175 ( ((t) == PT_TYPE_MONETARY) || \ 176 ((t) == PT_TYPE_NUMERIC) || \ 177 ((t) == PT_TYPE_CHAR) || \ 178 ((t) == PT_TYPE_VARCHAR) || \ 179 ((t) == PT_TYPE_NCHAR) || \ 180 ((t) == PT_TYPE_VARNCHAR) || \ 181 ((t) == PT_TYPE_BIT) || \ 182 ((t) == PT_TYPE_VARBIT) || \ 183 ((t) == PT_TYPE_OBJECT) || \ 184 ((t) == PT_TYPE_SET) || \ 185 ((t) == PT_TYPE_MULTISET) || \ 186 ((t) == PT_TYPE_SEQUENCE) || \ 187 ((t) == PT_TYPE_ENUMERATION)) 189 #define PT_IS_DATE_TIME_WITH_TZ_TYPE(t) \ 190 ( (t) == PT_TYPE_TIMESTAMPTZ || \ 191 (t) == PT_TYPE_TIMESTAMPLTZ || \ 192 (t) == PT_TYPE_DATETIMETZ || \ 193 (t) == PT_TYPE_DATETIMELTZ) 195 #define PT_IS_DATE_TIME_TYPE(t) \ 196 ( ((t) == PT_TYPE_DATE) || \ 197 ((t) == PT_TYPE_TIME) || \ 198 ((t) == PT_TYPE_TIMESTAMP) || \ 199 ((t) == PT_TYPE_DATETIME) || \ 200 ((t) == PT_TYPE_DATETIMETZ) || \ 201 ((t) == PT_TYPE_DATETIMELTZ) || \ 202 ((t) == PT_TYPE_TIMESTAMPTZ) || \ 203 ((t) == PT_TYPE_TIMESTAMPLTZ)) 205 #define PT_HAS_DATE_PART(t) \ 206 ( ((t) == PT_TYPE_DATE) || \ 207 ((t) == PT_TYPE_TIMESTAMP) || \ 208 ((t) == PT_TYPE_DATETIME) || \ 209 ((t) == PT_TYPE_DATETIMETZ) || \ 210 ((t) == PT_TYPE_DATETIMELTZ) || \ 211 ((t) == PT_TYPE_TIMESTAMPTZ) || \ 212 ((t) == PT_TYPE_TIMESTAMPLTZ)) 214 #define PT_HAS_TIME_PART(t) \ 215 ( ((t) == PT_TYPE_TIME) || \ 216 ((t) == PT_TYPE_TIMESTAMP) || \ 217 ((t) == PT_TYPE_TIMESTAMPTZ) || \ 218 ((t) == PT_TYPE_TIMESTAMPLTZ) || \ 219 ((t) == PT_TYPE_DATETIME) || \ 220 ((t) == PT_TYPE_DATETIMETZ) || \ 221 ((t) == PT_TYPE_DATETIMELTZ)) 223 #define PT_IS_LTZ_TYPE(t) \ 224 ((t) == PT_TYPE_TIMESTAMPLTZ || (t) == PT_TYPE_DATETIMELTZ) 226 #define PT_IS_PRIMITIVE_TYPE(t) \ 227 ( ((t) != PT_TYPE_OBJECT) && ((t) != PT_TYPE_NONE)) 229 #define PT_IS_PARAMETERIZED_TYPE(t) \ 230 ( ((t) == PT_TYPE_NUMERIC) || \ 231 ((t) == PT_TYPE_VARCHAR) || \ 232 ((t) == PT_TYPE_CHAR) || \ 233 ((t) == PT_TYPE_VARNCHAR) || \ 234 ((t) == PT_TYPE_NCHAR) || \ 235 ((t) == PT_TYPE_VARBIT) || \ 236 ((t) == PT_TYPE_BIT) || \ 237 ((t) == PT_TYPE_ENUMERATION)) 239 #define PT_IS_LOB_TYPE(t) \ 240 ( ((t) == PT_TYPE_BLOB) || \ 241 ((t) == PT_TYPE_CLOB)) 243 #define PT_HAS_COLLATION(t) \ 244 ( ((t) == PT_TYPE_CHAR) || \ 245 ((t) == PT_TYPE_VARCHAR) || \ 246 ((t) == PT_TYPE_NCHAR) || \ 247 ((t) == PT_TYPE_VARNCHAR) || \ 248 ((t) == PT_TYPE_ENUMERATION)) 250 #define PT_VALUE_GET_BYTES(node) \ 251 ((node) == NULL ? NULL : \ 252 (node)->info.value.data_value.str->bytes) 254 #define pt_is_select(n) PT_IS_SELECT(n) 255 #define pt_is_union(n) PT_IS_UNION(n) 256 #define pt_is_intersection(n) PT_IS_INTERSECTION(n) 257 #define pt_is_difference(n) PT_IS_DIFFERENCE(n) 258 #define pt_is_query(n) PT_IS_QUERY(n) 259 #define pt_is_correlated_subquery(n) PT_IS_CORRELATED_SUBQUERY(n) 260 #define pt_is_dot_node(n) PT_IS_DOT_NODE(n) 261 #define pt_is_expr_node(n) PT_IS_EXPR_NODE(n) 262 #define pt_is_function(n) PT_IS_FUNCTION(n) 263 #define pt_is_multi_col_term(n) PT_IS_MULTI_COL_TERM(n) 264 #define pt_is_name_node(n) PT_IS_NAME_NODE(n) 265 #define pt_is_oid_name(n) PT_IS_OID_NAME(n) 266 #define pt_is_value_node(n) PT_IS_VALUE_NODE(n) 267 #define pt_is_set_type(n) PT_IS_SET_TYPE(n) 268 #define pt_is_hostvar(n) PT_IS_HOSTVAR(n) 269 #define pt_is_input_hostvar(n) PT_IS_INPUT_HOSTVAR(n) 270 #define pt_is_output_hostvar(n) PT_IS_OUTPUT_HOSTVAR(n) 271 #define pt_is_const(n) PT_IS_CONST(n) 272 #define pt_is_parameter(n) PT_IS_PARAMETER(n) 273 #define pt_is_input_parameter(n) PT_IS_INPUT_PARAMETER(n) 274 #define pt_is_const_not_hostvar(n) PT_IS_CONST_NOT_HOSTVAR(n) 275 #define pt_is_const_input_hostvar(n) PT_IS_CONST_INPUT_HOSTVAR(n) 276 #define pt_is_cast_const_input_hostvar(n) PT_IS_CAST_CONST_INPUT_HOSTVAR(n) 277 #define pt_is_instnum(n) PT_IS_INSTNUM(n) 278 #define pt_is_orderbynum(n) PT_IS_ORDERBYNUM(n) 279 #define pt_is_distinct(n) PT_IS_DISTINCT(n) 280 #define pt_is_meta(n) PT_IS_META(n) 281 #define pt_is_update_object(n) PT_IS_UPDATE_OBJECT(n) 282 #define pt_is_unary(op) PT_IS_UNARY(op) 284 #define PT_IS_SELECT(n) \ 285 ( (n) && ((n)->node_type == PT_SELECT) ) 287 #define PT_IS_UNION(n) \ 288 ( (n) && ((n)->node_type == PT_UNION) ) 290 #define PT_IS_INTERSECTION(n) \ 291 ( (n) && ((n)->node_type == PT_INTERSECTION) ) 293 #define PT_IS_DIFFERENCE(n) \ 294 ( (n) && ((n)->node_type == PT_DIFFERENCE) ) 296 #define PT_IS_QUERY(n) \ 297 ( (n) && (PT_IS_QUERY_NODE_TYPE((n)->node_type)) ) 299 #define PT_IS_CORRELATED_SUBQUERY(n) \ 300 ( PT_IS_QUERY((n)) && ((n)->info.query.correlation_level > 0) ) 302 #define PT_IS_DOT_NODE(n) \ 303 ( (n) && ((n)->node_type == PT_DOT_) ) 305 #define PT_IS_EXPR_NODE(n) \ 306 ( (n) && ((n)->node_type == PT_EXPR) ) 308 #define PT_IS_ASSIGN_NODE(n) \ 309 ( (n) && ((n)->node_type == PT_EXPR && (n)->info.expr.op == PT_ASSIGN) ) 311 #define PT_IS_FUNCTION(n) \ 312 ( (n) && ((n)->node_type == PT_FUNCTION) ) 314 #define PT_IS_MULTI_COL_TERM(n) \ 316 PT_IS_FUNCTION((n)) && \ 317 PT_IS_SET_TYPE ((n)) && \ 318 (n)->info.function.function_type == F_SEQUENCE) 320 #define PT_IS_NAME_NODE(n) \ 321 ( (n) && ((n)->node_type == PT_NAME) ) 323 #define PT_IS_OID_NAME(n) \ 325 ((n)->node_type == PT_NAME && \ 326 ((n)->info.name.meta_class == PT_OID_ATTR || \ 327 (n)->info.name.meta_class == PT_VID_ATTR) ) \ 330 #define PT_IS_VALUE_NODE(n) \ 331 ( (n) && ((n)->node_type == PT_VALUE) ) 333 #define PT_IS_INSERT_VALUE_NODE(n) \ 334 ( (n) && ((n)->node_type == PT_INSERT_VALUE) ) 336 #define PT_IS_SET_TYPE(n) \ 337 ( (n) && ((n)->type_enum == PT_TYPE_SET || \ 338 (n)->type_enum == PT_TYPE_MULTISET || \ 339 (n)->type_enum == PT_TYPE_SEQUENCE) \ 342 #define PT_IS_HOSTVAR(n) \ 343 ( (n) && ((n)->node_type == PT_HOST_VAR) ) 345 #define PT_IS_INPUT_HOSTVAR(n) \ 346 ( (n) && ((n)->node_type == PT_HOST_VAR && \ 347 (n)->info.host_var.var_type == PT_HOST_IN) \ 350 #define PT_IS_OUTPUT_HOSTVAR(n) \ 351 ( (n) && ((n)->node_type == PT_HOST_VAR && \ 352 (n)->info.host_var.var_type == PT_HOST_OUT) \ 355 #define PT_IS_PARAMETER(n) \ 356 ( (n) && ((n)->node_type == PT_NAME && \ 357 (n)->info.name.meta_class == PT_PARAMETER) ) 359 #define PT_IS_INPUT_PARAMETER(n) \ 360 ( (n) && ((n)->node_type == PT_NAME && \ 361 (n)->info.name.meta_class == PT_PARAMETER && \ 362 (n)->info.name.resolved == NULL) ) 364 #define PT_IS_CONST(n) \ 365 ( (n) && ((n)->node_type == PT_VALUE || \ 366 (n)->node_type == PT_HOST_VAR || \ 367 ((n)->node_type == PT_NAME && (n)->info.name.meta_class == PT_PARAMETER) ) \ 370 #define PT_IS_CONST_NOT_HOSTVAR(n) \ 371 ( (n) && ((n)->node_type == PT_VALUE || \ 372 ((n)->node_type == PT_NAME && (n)->info.name.meta_class == PT_PARAMETER) ) \ 375 #define PT_IS_CONST_INPUT_HOSTVAR(n) \ 376 ( (n) && ((n)->node_type == PT_VALUE || \ 377 ((n)->node_type == PT_NAME && (n)->info.name.meta_class == PT_PARAMETER) || \ 378 ((n)->node_type == PT_HOST_VAR && (n)->info.host_var.var_type == PT_HOST_IN)) \ 381 #define PT_IS_CAST_CONST_INPUT_HOSTVAR(n) \ 383 (n)->node_type == PT_EXPR && \ 384 (n)->info.expr.op == PT_CAST && \ 385 PT_IS_CONST_INPUT_HOSTVAR((n)->info.expr.arg1) ) 387 #define PT_IS_INSTNUM(n) \ 388 ( (n) && ((n)->node_type == PT_EXPR && \ 389 ((n)->info.expr.op == PT_INST_NUM || (n)->info.expr.op == PT_ROWNUM)) \ 392 #define PT_IS_ORDERBYNUM(n) \ 393 ( (n) && ((n)->node_type == PT_EXPR && ((n)->info.expr.op == PT_ORDERBY_NUM)) ) 395 #define PT_IS_DISTINCT(n) \ 396 ( (n) && PT_IS_QUERY_NODE_TYPE((n)->node_type) && (n)->info.query.all_distinct != PT_ALL ) 398 #define PT_IS_META(n) \ 399 ( ((n) ? ((n)->node_type == PT_NAME ? \ 400 ((n)->info.name.meta_class == PT_META_CLASS || \ 401 (n)->info.name.meta_class == PT_META_ATTR || \ 402 (n)->info.name.meta_class == PT_CLASSOID_ATTR || \ 403 (n)->info.name.meta_class == PT_OID_ATTR) : \ 404 ((n)->node_type == PT_SPEC && ((n)->info.spec.meta_class == PT_META_CLASS))) \ 406 #define PT_IS_HINT_NODE(n) \ 407 ( (n) && ((n)->node_type == PT_NAME && (n)->info.name.meta_class == PT_HINT_NAME) ) 409 #define PT_IS_UPDATE_OBJECT(n) \ 410 ( (n) && (n)->node_type == PT_UPDATE && (n)->info.update.spec == NULL ) 412 #define PT_IS_UNARY(op) \ 413 ( (op) == PT_NOT || \ 414 (op) == PT_IS_NULL || \ 415 (op) == PT_IS_NOT_NULL || \ 416 (op) == PT_EXISTS || \ 417 (op) == PT_PRIOR || \ 418 (op) == PT_CONNECT_BY_ROOT || \ 419 (op) == PT_QPRIOR || \ 420 (op) == PT_UNARY_MINUS) ) 422 #define PT_IS_N_COLUMN_UPDATE_EXPR(n) \ 424 (n)->node_type == PT_EXPR && \ 425 (n)->info.expr.op == PT_PATH_EXPR_SET ) 427 #define PT_DOES_FUNCTION_HAVE_DIFFERENT_ARGS(op) \ 428 ((op) == PT_MODULUS || (op) == PT_SUBSTRING || \ 429 (op) == PT_LPAD || (op) == PT_RPAD || (op) == PT_ADD_MONTHS || \ 430 (op) == PT_TO_CHAR || (op) == PT_TO_NUMBER || \ 431 (op) == PT_POWER || (op) == PT_ROUND || \ 432 (op) == PT_TRUNC || (op) == PT_INSTR || \ 433 (op) == PT_LEAST || (op) == PT_GREATEST || \ 434 (op) == PT_FIELD || \ 435 (op) == PT_REPEAT || (op) == PT_SUBSTRING_INDEX || \ 436 (op) == PT_MAKEDATE || (op) == PT_MAKETIME || (op) == PT_IF || \ 437 (op) == PT_STR_TO_DATE) 439 #define PT_REQUIRES_HIERARCHICAL_QUERY(op) \ 440 ( (op) == PT_LEVEL || \ 441 (op) == PT_CONNECT_BY_ISCYCLE || \ 442 (op) == PT_CONNECT_BY_ISLEAF || \ 443 (op) == PT_PRIOR || \ 444 (op) == PT_CONNECT_BY_ROOT || \ 445 (op) == PT_QPRIOR || \ 446 (op) == PT_SYS_CONNECT_BY_PATH ) 448 #define PT_CHECK_HQ_OP_EXCEPT_PRIOR(op) \ 449 ( (op) == PT_LEVEL || \ 450 (op) == PT_CONNECT_BY_ISCYCLE || \ 451 (op) == PT_CONNECT_BY_ISLEAF || \ 452 (op) == PT_CONNECT_BY_ROOT || \ 453 (op) == PT_SYS_CONNECT_BY_PATH ) 455 #define PT_IS_NUMBERING_AFTER_EXECUTION(op) \ 456 ( (op) == PT_INST_NUM || \ 457 (op) == PT_ROWNUM || \ 459 (op) == PT_ORDERBY_NUM ) 461 #define PT_IS_SERIAL(op) \ 462 ( (op) == PT_CURRENT_VALUE || (op) == PT_NEXT_VALUE ) 464 #define PT_IS_EXPR_NODE_WITH_OPERATOR(n, op_type) \ 465 ( (PT_IS_EXPR_NODE (n)) && ((n)->info.expr.op == (op_type)) ) 467 #define PT_IS_EXPR_WITH_PRIOR_ARG(x) (PT_IS_EXPR_NODE (x) && \ 468 PT_IS_EXPR_NODE_WITH_OPERATOR ((x)->info.expr.arg1, PT_PRIOR)) 470 #define PT_NODE_DATA_TYPE(n) \ 471 ( (n) ? (n)->data_type : NULL ) 473 #define PT_IS_SORT_SPEC_NODE(n) \ 474 ( (n) && ((n)->node_type == PT_SORT_SPEC) ) 476 #define PT_IS_VALUE_QUERY(n) \ 477 ((n)->flag.is_value_query == 1) 479 #define PT_SET_VALUE_QUERY(n) \ 480 ((n)->flag.is_value_query = 1) 482 #define PT_IS_ORDER_DEPENDENT(n) \ 484 (PT_IS_EXPR_NODE (n) ? (n)->info.expr.is_order_dependent \ 485 : (PT_IS_FUNCTION(n) ? (n)->info.function.is_order_dependent \ 486 : (PT_IS_QUERY(n) ? (n)->info.query.is_order_dependent : false))) \ 489 #define PT_IS_ANALYTIC_NODE(n) \ 490 ( (n) && (n)->node_type == PT_FUNCTION && \ 491 (n)->info.function.analytic.is_analytic ) 493 #define PT_IS_POINTER_REF_NODE(n) \ 494 ( (n) && (n)->node_type == PT_NODE_POINTER && \ 495 (n)->info.pointer.type == PT_POINTER_REF ) 497 #define PT_IS_VACUUM_NODE(n) \ 498 ( (n) && (n)->node_type == PT_VACUUM ) 500 #define PT_SET_ORDER_DEPENDENT_FLAG(n, f) \ 504 if (PT_IS_EXPR_NODE (n)) \ 505 (n)->info.expr.is_order_dependent = (f); \ 506 else if (PT_IS_FUNCTION (n)) \ 507 (n)->info.function.is_order_dependent = (f); \ 508 else if (PT_IS_QUERY (n)) \ 509 (n)->info.query.is_order_dependent = (f); \ 513 #if !defined (SERVER_MODE) 520 #define CLEAR_HOST_VARIABLES(parser_) \ 521 do { DB_VALUE *hv; int i; \ 522 for (i = 0, hv = parser_->host_variables; \ 523 i < (parser_->host_var_count + parser_->auto_param_count); i++, hv++) \ 524 db_value_clear(hv); \ 525 free_and_init(parser_->host_variables); \ 526 free_and_init(parser_->host_var_expected_domains);} while (0) 528 #define SET_HOST_VARIABLES_IF_INTERNAL_STATEMENT(parser_) \ 529 do { if (parent_parser) { \ 530 if (parser_->host_variables != NULL && \ 531 parser_->host_variables != parent_parser->host_variables) { \ 532 CLEAR_HOST_VARIABLES(parser_); } \ 533 parser_->host_variables = parent_parser->host_variables; \ 534 parser_->host_var_expected_domains = parent_parser->host_var_expected_domains; \ 535 parser_->host_var_count = parent_parser->host_var_count; \ 536 parser_->auto_param_count = parent_parser->auto_param_count; \ 537 parser_->flag.set_host_var = 1; } } while (0) 539 #define RESET_HOST_VARIABLES_IF_INTERNAL_STATEMENT(parser_) \ 540 do { if (parent_parser) { \ 541 parser_->host_variables = NULL; parser_->host_var_count = 0; \ 542 parser_->host_var_expected_domains = NULL; \ 543 parser_->auto_param_count = 0; parser_->flag.set_host_var = 0; } } while (0) 548 #define IS_UPDATE_OBJ(node) (node->node_type == PT_UPDATE && node->info.update.object_parameter) 550 #define PT_NODE_INIT_OUTERLINK(n) \ 554 (n)->or_next = NULL; \ 556 (n)->alias_print = NULL; \ 560 #define PT_NODE_COPY_NUMBER_OUTERLINK(t, s) \ 563 (t)->line_number = (s)->line_number; \ 564 (t)->column_number = (s)->column_number; \ 565 (t)->next = (s)->next; \ 566 (t)->or_next = (s)->or_next; \ 567 (t)->etc = (s)->etc; \ 568 (t)->alias_print = (s)->alias_print; \ 572 #define PT_NODE_MOVE_NUMBER_OUTERLINK(t, s) \ 574 PT_NODE_COPY_NUMBER_OUTERLINK((t), (s)); \ 575 PT_NODE_INIT_OUTERLINK((s)); \ 578 #define PT_NODE_PRINT_TO_ALIAS(p, n, c) \ 580 unsigned int save_custom; \ 582 if (!(p) || !(n) || (n->alias_print)) \ 584 save_custom = (p)->custom_print; \ 585 (p)->custom_print |= (c); \ 586 if (((p)->custom_print & PT_SHORT_PRINT) != 0) \ 588 (n)->alias_print = pt_short_print ((p), (n)); \ 592 (n)->alias_print = parser_print_tree ((p), (n)); \ 594 (p)->custom_print = save_custom; \ 597 #define PT_NODE_PRINT_VALUE_TO_TEXT(p, n) \ 599 if (!(p) || !(n) || (n)->node_type != PT_VALUE \ 600 || (n)->info.value.text) \ 604 (n)->info.value.text = parser_print_tree ((p), (n)); \ 607 #define CAST_POINTER_TO_NODE(p) \ 609 while ((p) && (p)->node_type == PT_NODE_POINTER && \ 610 (p)->info.pointer.type == PT_POINTER_NORMAL) \ 612 (p) = (p)->info.pointer.node; \ 616 #define PT_EMPTY INT_MAX 617 #define MAX_NUM_PLAN_TRACE 100 619 #define PT_GET_COLLATION_MODIFIER(p) \ 620 (((p)->node_type == PT_EXPR) ? ((p)->info.expr.coll_modifier - 1) : \ 621 (((p)->node_type == PT_VALUE) ? ((p)->info.value.coll_modifier - 1) : \ 622 (((p)->node_type == PT_NAME) ? ((p)->info.name.coll_modifier - 1) : \ 623 (((p)->node_type == PT_FUNCTION) ? ((p)->info.function.coll_modifier - 1) :\ 624 (((p)->node_type == PT_DOT_) ? ((p)->info.dot.coll_modifier - 1) : (-1)))))) 626 #define PT_SET_NODE_COLL_MODIFIER(p, coll) \ 628 assert ((p) != NULL); \ 629 if ((p)->node_type == PT_EXPR) \ 631 (p)->info.expr.coll_modifier = (coll) + 1; \ 633 else if ((p)->node_type == PT_VALUE) \ 635 (p)->info.value.coll_modifier = (coll) + 1; \ 637 else if ((p)->node_type == PT_NAME) \ 639 (p)->info.name.coll_modifier = (coll) + 1; \ 641 else if ((p)->node_type == PT_FUNCTION) \ 643 (p)->info.function.coll_modifier = (coll) + 1; \ 647 assert ((p)->node_type == PT_DOT_); \ 648 (p)->info.dot.coll_modifier = (coll) + 1; \ 653 #define PT_IS_SPEC_FLAG_SET(spec_, flags_) \ 654 (((spec_)->info.spec.flag & (flags_)) != 0) 656 #define PT_SPEC_SPECIAL_INDEX_SCAN(spec_) \ 657 (((spec_)->info.spec.flag & \ 658 (PT_SPEC_FLAG_KEY_INFO_SCAN | PT_SPEC_FLAG_BTREE_NODE_INFO_SCAN)) != 0) 661 #define PT_SPEC_GET_RESERVED_NAME_TYPE(spec_) \ 662 (((spec_) == NULL || (spec_)->node_type != PT_SPEC \ 663 || (spec_)->info.spec.flag == 0) ? \ 665 RESERVED_NAME_INVALID : \ 667 ((PT_IS_SPEC_FLAG_SET (spec_, PT_SPEC_FLAG_RECORD_INFO_SCAN)) ? \ 669 RESERVED_NAME_RECORD_INFO : \ 671 ((PT_IS_SPEC_FLAG_SET (spec_, PT_SPEC_FLAG_PAGE_INFO_SCAN)) ? \ 673 RESERVED_NAME_PAGE_INFO : \ 675 ((PT_IS_SPEC_FLAG_SET (spec_, PT_SPEC_FLAG_KEY_INFO_SCAN)) ? \ 677 RESERVED_NAME_KEY_INFO : \ 679 ((PT_IS_SPEC_FLAG_SET(spec_, PT_SPEC_FLAG_BTREE_NODE_INFO_SCAN) ? \ 681 RESERVED_NAME_BTREE_NODE_INFO : \ 683 RESERVED_NAME_INVALID)))))) 686 #define PT_SHOULD_BIND_RESERVED_NAME(spec_) \ 687 (PT_SPEC_GET_RESERVED_NAME_TYPE (spec_) != RESERVED_NAME_INVALID) 690 #define PT_SPEC_IS_DERIVED(spec_) \ 691 ((spec_)->info.spec.derived_table != NULL) 694 #define PT_SPEC_IS_CTE(spec_) \ 695 ((spec_)->info.spec.cte_pointer != NULL) 698 #define PT_SPEC_IS_ENTITY(spec_) \ 699 ((spec_)->info.spec.entity_name != NULL) 701 #define PT_IS_FALSE_WHERE_VALUE(node) \ 702 (((node) != NULL && (node)->node_type == PT_VALUE \ 703 && ((node)->type_enum == PT_TYPE_NULL \ 704 || ((node)->type_enum == PT_TYPE_SET \ 705 && ((node)->info.value.data_value.set == NULL)))) ? true : false) 707 #define PT_IS_SPEC_REAL_TABLE(spec_) PT_SPEC_IS_ENTITY(spec_) 828 #if defined (ENABLE_UNUSED_FUNCTION) 1258 #if defined (ENABLE_RENAME_CONSTRAINT) 1259 PT_RENAME_CONSTRAINT,
1636 #if defined (ENABLE_UNUSED_FUNCTION) 1637 typedef struct pt_use_info PT_USE_INFO;
1886 unsigned retain_lock:1;
1920 unsigned or_replace:1;
1921 unsigned if_not_exists:1;
1930 #if defined (ENABLE_RENAME_CONSTRAINT) 1998 unsigned if_exists:1;
2033 #define PARTITIONED_SUB_CLASS_TAG "__p__" 2076 unsigned has_trigger:1;
2077 unsigned server_delete:1;
2078 unsigned rewrite_limit:1;
2079 unsigned execute_with_commit_allowed:1;
2207 #define PT_EXPR_INFO_CNF_DONE 1 2208 #define PT_EXPR_INFO_EMPTY_RANGE 2 2209 #define PT_EXPR_INFO_INSTNUM_C 4 2210 #define PT_EXPR_INFO_INSTNUM_NC 8 2211 #define PT_EXPR_INFO_GROUPBYNUM_C 16 2212 #define PT_EXPR_INFO_GROUPBYNUM_NC 32 2213 #define PT_EXPR_INFO_ORDERBYNUM_C \ 2214 PT_EXPR_INFO_INSTNUM_C 2215 #define PT_EXPR_INFO_ORDERBYNUM_NC \ 2216 PT_EXPR_INFO_INSTNUM_NC 2217 #define PT_EXPR_INFO_TRANSITIVE 64 2218 #define PT_EXPR_INFO_LEFT_OUTER 128 2219 #define PT_EXPR_INFO_RIGHT_OUTER 256 2220 #define PT_EXPR_INFO_COPYPUSH 512 2223 #define PT_EXPR_INFO_FULL_RANGE 1024 2225 #define PT_EXPR_INFO_CAST_NOFAIL 2048 2227 #define PT_EXPR_INFO_CAST_SHOULD_FOLD 4096 2229 #define PT_EXPR_INFO_FUNCTION_INDEX 8192 2231 #define PT_EXPR_INFO_CAST_COLL_MODIFIER 16384 2233 #define PT_EXPR_INFO_GROUPBYNUM_LIMIT 32768 2235 #define PT_EXPR_INFO_DO_NOT_AUTOPARAM 65536 2236 #define PT_EXPR_INFO_CAST_WRAP 131072 2238 #define PT_EXPR_INFO_IS_FLAGED(e, f) ((e)->info.expr.flag & (int) (f)) 2239 #define PT_EXPR_INFO_SET_FLAG(e, f) (e)->info.expr.flag |= (int) (f) 2240 #define PT_EXPR_INFO_CLEAR_FLAG(e, f) (e)->info.expr.flag &= (int) ~(f) 2348 unsigned execute_with_commit_allowed:1;
2357 unsigned async_ws:1;
2477 #define PT_GET_RESERVED_NAME_TYPE(reserved_id) \ 2478 (((reserved_id) >= RESERVED_FIRST_RECORD_INFO \ 2479 && (reserved_id) <= RESERVED_LAST_RECORD_INFO) ? \ 2481 RESERVED_NAME_RECORD_INFO : \ 2483 (((reserved_id) >= RESERVED_FIRST_PAGE_INFO \ 2484 && (reserved_id) <= RESERVED_LAST_PAGE_INFO) ? \ 2486 RESERVED_NAME_PAGE_INFO : \ 2488 (((reserved_id) >= RESERVED_FIRST_KEY_INFO \ 2489 && (reserved_id) <= RESERVED_LAST_KEY_INFO) ? \ 2491 RESERVED_NAME_KEY_INFO : \ 2493 (((reserved_id) >= RESERVED_FIRST_BT_NODE_INFO \ 2494 && (reserved_id) <= RESERVED_LAST_BT_NODE_INFO) ? \ 2496 RESERVED_NAME_BTREE_NODE_INFO : \ 2498 RESERVED_NAME_INVALID)))) 2501 #define PT_GET_RESERVED_NAME_FIRST_AND_LAST(type, first, last) \ 2504 case RESERVED_NAME_RECORD_INFO: \ 2505 (first) = RESERVED_FIRST_RECORD_INFO; \ 2506 (last) = RESERVED_LAST_RECORD_INFO; \ 2508 case RESERVED_NAME_PAGE_INFO: \ 2509 (first) = RESERVED_FIRST_PAGE_INFO; \ 2510 (last) = RESERVED_LAST_PAGE_INFO; \ 2512 case RESERVED_NAME_KEY_INFO: \ 2513 (first) = RESERVED_FIRST_KEY_INFO; \ 2514 (last) = RESERVED_LAST_KEY_INFO; \ 2516 case RESERVED_NAME_BTREE_NODE_INFO: \ 2517 (first) = RESERVED_FIRST_BT_NODE_INFO; \ 2518 (last) = RESERVED_LAST_BT_NODE_INFO; \ 2528 #define PT_CHECK_RESERVED_NAME_BIND(spec_, reserved_id) \ 2529 (PT_SPEC_GET_RESERVED_NAME_TYPE (spec_) \ 2530 == PT_GET_RESERVED_NAME_TYPE (reserved_id)) 2536 #define NAME_FROM_PT_DOT 1 2537 #define NAME_FROM_CLASSNAME_DOT_STAR 2 2538 #define NAME_FROM_STAR 3 2539 #define NAME_IN_PATH_EXPR 4 2558 #define PT_NAME_INFO_DOT_SPEC 1 2559 #define PT_NAME_INFO_DOT_NAME 2 2560 #define PT_NAME_INFO_STAR 4 2561 #define PT_NAME_INFO_DOT_STAR 8 2562 #define PT_NAME_INFO_CONSTANT 16 2563 #define PT_NAME_INFO_EXTERNAL 32 2564 #define PT_NAME_INFO_DESC 64 2565 #define PT_NAME_INFO_FILL_DEFAULT 128 2566 #define PT_NAME_INFO_GENERATED_OID 256 2568 #define PT_NAME_ALLOW_REUSABLE_OID 512 2569 #define PT_NAME_GENERATED_DERIVED_SPEC 1024 2570 #define PT_NAME_FOR_UPDATE 2048 2571 #define PT_NAME_DEFAULTF_ACCEPTS 4096 2574 #define PT_NAME_INFO_IS_FLAGED(e, f) ((e)->info.name.flag & (short) (f)) 2575 #define PT_NAME_INFO_SET_FLAG(e, f) (e)->info.name.flag |= (short) (f) 2576 #define PT_NAME_INFO_CLEAR_FLAG(e, f) (e)->info.name.flag &= (short) ~(f) 2607 #define PT_IDX_HINT_ORDER(hint_node) \ 2608 ((hint_node->etc == (void *) PT_IDX_HINT_CLASS_NONE) ? 1 : \ 2609 (hint_node->etc == (void *) PT_IDX_HINT_IGNORE ? 2 : \ 2610 (hint_node->etc == (void *) PT_IDX_HINT_FORCE ? 3 : \ 2611 (hint_node->etc == (void *) PT_IDX_HINT_USE ? 4 : 0)))) 2666 unsigned is_leaf_node:1;
2711 unsigned single_table_opt:1;
2714 #define PT_SELECT_INFO_ANSI_JOIN 0x01 2715 #define PT_SELECT_INFO_ORACLE_OUTER 0x02 2716 #define PT_SELECT_INFO_DUMMY 0x04 2717 #define PT_SELECT_INFO_HAS_AGG 0x08 2718 #define PT_SELECT_INFO_HAS_ANALYTIC 0x10 2719 #define PT_SELECT_INFO_MULTI_UPDATE_AGG 0x20 2720 #define PT_SELECT_INFO_IDX_SCHEMA 0x40 2721 #define PT_SELECT_INFO_COLS_SCHEMA 0x80 2722 #define PT_SELECT_FULL_INFO_COLS_SCHEMA 0x0100 2723 #define PT_SELECT_INFO_IS_MERGE_QUERY 0x0200 2724 #define PT_SELECT_INFO_LIST_PUSHER 0x0400 2726 #define PT_SELECT_INFO_NO_STRICT_OID_CHECK 0x0800 2729 #define PT_SELECT_INFO_IS_UPD_DEL_QUERY 0x1000 2730 #define PT_SELECT_INFO_FOR_UPDATE 0x2000 2731 #define PT_SELECT_INFO_DISABLE_LOOSE_SCAN 0x4000 2732 #define PT_SELECT_INFO_MVCC_LOCK_NEEDED 0x8000 2733 #define PT_SELECT_INFO_READ_ONLY 0x010000 2735 #define PT_SELECT_INFO_IS_FLAGED(s, f) \ 2736 ((s)->info.query.q.select.flag & (f)) 2737 #define PT_SELECT_INFO_SET_FLAG(s, f) \ 2738 (s)->info.query.q.select.flag |= (f) 2739 #define PT_SELECT_INFO_CLEAR_FLAG(s, f) \ 2740 (s)->info.query.q.select.flag &= ~(f) 2757 unsigned has_outer_spec:1;
2758 unsigned is_sort_spec:1;
2759 unsigned is_insert_select:1;
2760 unsigned single_tuple:1;
2761 unsigned vspec_as_derived:1;
2762 unsigned reexecute:1;
2763 unsigned do_cache:1;
2764 unsigned do_not_cache:1;
2765 unsigned order_siblings:1;
2766 unsigned rewrite_limit:1;
2767 unsigned has_system_class:1;
2879 unsigned has_trigger:1;
2880 unsigned has_unique:1;
2881 unsigned server_update:1;
2882 unsigned do_class_attrs:1;
2883 unsigned rewrite_limit:1;
2884 unsigned execute_with_commit_allowed:1;
2903 #if defined (ENABLE_UNUSED_FUNCTION) 2908 PT_MISC_TYPE relative;
2946 #define PT_MERGE_INFO_HAS_UNIQUE 1 2947 #define PT_MERGE_INFO_SERVER_OP 2 2948 #define PT_MERGE_INFO_INSERT_ONLY 4 3148 unsigned or_replace:1;
3355 #if defined (ENABLE_UNUSED_FUNCTION) 3431 unsigned char bytes[1];
3461 unsigned recompile:1;
3462 unsigned cannot_prepare:1;
3463 unsigned partition_pruned:1;
3464 unsigned si_datetime:1;
3465 unsigned si_tran_id:1;
3466 unsigned clt_cache_check:1;
3467 unsigned clt_cache_reusable:1;
3468 unsigned use_plan_cache:1;
3469 unsigned use_query_cache:1;
3470 unsigned is_hidden_column:1;
3471 unsigned is_paren:1;
3472 unsigned with_rollup:1;
3473 unsigned force_auto_parameterize:1;
3475 unsigned do_not_fold:1;
3476 unsigned is_cnf_start:1;
3477 unsigned is_click_counter:1;
3478 unsigned is_value_query:1;
3480 unsigned do_not_replace_orderby:1;
3481 unsigned is_added_by_parser:1;
3482 unsigned is_alias_enabled_expr:1;
3483 unsigned is_wrapped_res_for_coll:1;
3484 unsigned is_system_generated_stmt:1;
3485 unsigned use_auto_commit:1;
3502 #define MAX_KEYWORD_SIZE (20 + 1 + 3) 3507 #if defined(ENABLE_UNUSED_FUNCTION) 3602 unsigned has_internal_error:1;
3605 unsigned set_host_var:1;
3606 unsigned dont_prt_long_string:1;
3607 unsigned long_string_skipped:1;
3608 unsigned print_type_ambiguity:1;
3610 unsigned strings_have_no_escapes:1;
3611 unsigned is_in_and_list:1;
3615 unsigned is_holdable:1;
3616 unsigned is_xasl_pinned_reference:1;
3620 unsigned recompile_xasl_pinned:1;
3621 unsigned dont_collect_exec_stats:1;
3622 unsigned return_generated_keys:1;
3623 unsigned is_system_generated_stmt:1;
3624 unsigned is_auto_commit:1;
3686 , can_force_cs (true)
3707 #if !defined (SERVER_MODE)
bool pt_is_json_value_type(PT_TYPE_ENUM type)
PT_GET_OPT_LVL_INFO get_opt_lvl
QFILE_TUPLE_VALUE_POSITION pos_descr
PT_MISC_TYPE delete_action
PT_NODE * trigger_reference
PT_NODE * resolution_list
PT_METHOD_CALL_INFO method_call
PT_METHOD_DEF_INFO method_def
NESTED_VIEW_VERSION_INFO * next
struct qo_summary * qo_summary
PT_CHECK_OPTION_INFO check_option
size_t input_buffer_length
TP_DOMAIN * expected_domain
PT_NODE * table_option_list
PARSER_VARCHAR * expr_before_const_folding
PT_ATTR_ORDERING_INFO attr_ordering
PT_MISC_TYPE call_or_expr
PT_JSON_TABLE_COLUMN_INFO json_table_column_info
size_t json_table_column_index
void * parser_allocate_string_buffer(const PARSER_CONTEXT *parser, const int length, const int align)
PT_INT_FUNCTION next_byte
PT_NODE * Oracle_outerjoin_spec
PT_NODE * trigger_priority
PT_TYPE_ENUM recursive_type
unsigned int virtual_cache_snapshot_version
PT_NODE * trigger_name_list
PT_MISC_TYPE all_or_distinct
PT_GET_XACTION_INFO get_xaction
QUERY_TRACE_FORMAT format
PT_TABLE_OPTION_INFO table_option
enum pt_type_enum PT_TYPE_ENUM
unsigned int virtual_cache_local_schema_id
VIEW_CACHE_INFO * view_cache
PT_STORED_PROC_PARAM_INFO sp_param
PT_NODE * path_correlation
NESTED_VIEW_VERSION_INFO * nested_views
unsigned int custom_print
PT_NODE * vquery_for_partial_update
PT_NODE * as_attr_mthd_name
struct xasl_node * parent_proc_xasl
unsigned int custom_print
PT_DROP_USER_INFO drop_user
PT_CONNECT_BY_CHECK_CYCLES
PT_NODE_LIST_INFO node_list
PT_NODE * attr_mthd_name_list
PT_INT_FUNCTION next_char
SCAN_OPERATION_TYPE scan_op_type
PT_REMOVE_TRIGGER_INFO remove_trigger
PT_ATTACH_INFO prepare_to_commit
DB_VALUE * host_variables
PT_WITH_CLAUSE_INFO with_clause
enum pt_time_zones PT_TIMEZONE
PT_MISC_TYPE element_type
DB_DEFAULT_EXPR_TYPE default_expr_type
enum pt_pointer_type PT_POINTER_TYPE
PT_FOREIGN_KEY_INFO foreign_key
PT_MISC_TYPE trigger_status
PT_NODE * method_args_list
PT_JSON_TABLE_INFO json_table_info
SERVER_INSERT_ALLOWED server_allowed
int(* PT_CASECMP_FUN)(const char *s1, const char *s2)
PT_PRINT_VALUE_FUNC print_db_value
PT_NODE * class_attr_def_list
int Oracle_outerjoin_attr_num
PT_KILLSTMT_INFO killstmt
PT_NODE * trigger_priority
enum query_trace_format QUERY_TRACE_FORMAT
void pt_init_node(PT_NODE *node, PT_NODE_TYPE node_type)
PT_MISC_TYPE class_or_inst
PT_MISC_TYPE derived_table_type
PT_TIMESTAMPTZ timestamptz
enum pt_coll_coerc_lev PT_COLL_COERC_LEV
PT_NODE * vquery_for_update
PT_NODE * del_search_cond
PT_NODE * cte_definition_list
PT_CONNECT_BY_CHECK_CYCLES check_cycles
PARSER_VARCHAR * json_schema
PT_NODE * constraint_list
PT_NODE * resolution_list
int Oracle_outerjoin_subq_num
PT_NODE * referenced_attrs
size_t input_buffer_position
PT_TYPE_ENUM virt_type_enum
PT_CREATE_TRIGGER_INFO create_trigger
PT_NODE * odku_assignments
PT_NODE * of_sup_class_name
PT_MISC_TYPE grant_option
PT_MISC_TYPE with_check_option
bool pt_is_json_doc_type(PT_TYPE_ENUM type)
PT_NODE * vquery_for_query_in_gdb
PT_MISC_TYPE trigger_status
PT_SET_XACTION_INFO set_xaction
PARSER_CONTEXT * parent_parser
PT_INCLUDE_OID_TYPE oid_included
PT_NODE * flat_entity_list
PT_MISC_TYPE all_distinct
PT_NODE * trigger_spec_list
PT_MISC_TYPE nulls_first_or_last
PT_PARTITION_INFO partition
DB_VALUE local_transaction_id
PT_DROP_SESSION_VAR_INFO drop_session_var
bool is_constant_expression
PT_EXECUTE_TRIGGER_INFO execute_trigger
PT_FILE_PATH_INFO file_path
PT_SHOWSTMT_INFO showstmt
PT_ISOLATION_LVL_INFO isolation_lvl
PT_INCLUDE_OR_EXCLUDE_HIDDEN_COLUMNS
PT_NODE * inverted_vquery_for_update
PT_DATA_TYPE_INFO data_type
PT_ATTR_DEF_INFO attr_def
PT_RESERVED_NAME pt_Reserved_name_table[]
PT_GET_TRIGGER_INFO get_trigger
PT_NODE * referenced_attrs
unsigned short hash_value
PT_EVENT_OBJECT_INFO event_object
PT_JSON_TABLE_NODE_INFO json_table_node_info
PT_TABLE_OPTION_TYPE option
PT_CREATE_SELECT_ACTION create_select_action
PT_CREATE_ENTITY_INFO create_entity
PT_ZZ_ERROR_MSG_INFO error_msg
PT_NODE * trigger_spec_list
short db_value_is_in_workspace
PT_AUTH_CMD_INFO auth_cmd
json_table_column_function
PT_TRIGGER_SPEC_LIST_INFO trigger_spec_list
PT_EVENT_TARGET_INFO event_target
PT_EVALUATE_INFO evaluate
PT_AUTO_INCREMENT_INFO auto_increment
PT_RENAME_TRIGGER_INFO rename_trigger
TP_DOMAIN ** host_var_expected_domains
PT_SET_NAMES_INFO set_names
SM_INDEX_STATUS index_status
PT_TUPLE_VALUE_INFO tuple_value
bool is_cascade_constraints
PT_NODE * inverted_vquery_for_update_in_gdb
DB_DEFAULT_EXPR_TYPE on_update
PT_NODE * vquery_for_update_in_gdb
const char * generic_name
PT_SET_SYS_PARAMS_INFO set_sys_params
short db_value_is_initialized
PT_UPDATE_STATS_INFO update_stats
PT_NODE * referenced_class
PT_SORT_SPEC_INFO sort_spec
unsigned int virtual_cache_global_schema_id
PT_NODE * odku_non_null_attrs
struct pt_plan_trace_info PT_PLAN_TRACE_INFO
enum pt_currency_types PT_CURRENCY
PT_COLL_COERC_LEV coerc_level
PT_NODE * trigger_condition
PT_MISC_TYPE update_action
QFILE_LIST_ID * push_list
void(* PARSER_GENERIC_VOID_FUNCTION)()
int Oracle_outerjoin_path_num
PT_COMMIT_WORK_INFO commit_work
PT_RESOLUTION_INFO resolution
PT_NODE * non_recursive_part
const char * original_buffer
PT_SET_TIMEZONE_INFO set_timezone
PT_ALTER_TRIGGER_INFO alter_trigger
enum intl_codeset INTL_CODESET
PT_ROLLBACK_WORK_INFO rollback_work
PT_ALTER_USER_INFO alter_user
PT_NODE * data_default_list
PT_DROP_TRIGGER_INFO drop_trigger
PT_RESERVED_NAME_ID reserved_id
PT_NODE * after_cb_filter
PT_TYPE_ENUM virt_type_enum
PT_GET_STATS_INFO get_stats
PT_NODE * method_def_list
PT_NODE * method_file_list
PT_SET_OPT_LVL_INFO set_opt_lvl
PT_NODE * trigger_spec_list
PT_NODE * correlation_name
#define MAX_NUM_PLAN_TRACE
PARSER_VARCHAR *(* PT_PRINT_VALUE_FUNC)(PARSER_CONTEXT *parser, const PT_NODE *val)
unsigned short correlation_level
int mvcc_reev_extra_cls_cnt
static WHEN_DESC on_error
PT_MISC_TYPE attr_or_mthd
bool has_keys_in_expression
DB_DATETIMETZ PT_DATETIMETZ
PT_TRUNCATE_INFO truncate
int(* PT_INT_FUNCTION)(PARSER_CONTEXT *c)
PT_DROP_VARIABLE_INFO drop_variable
PT_SAVEPOINT_INFO savepoint
PT_NODE * vquery_for_query
enum pt_node_type PT_NODE_TYPE
PT_NODE * trigger_spec_list
PT_NAMED_ARG_INFO named_arg
PT_SET_TRIGGER_INFO set_trigger
PT_TRIGGER_ACTION_INFO trigger_action
PT_CONSTRAINT_INFO constraint
PT_ENUM_ELEMENT enumeration
struct symbol_info * symbols
PT_SET_SESSION_VARIABLE_INFO set_variables
PT_MISC_TYPE is_subinsert
CUBRID_STMT_TYPE stmt_type
PT_NODE * object_parameter
PT_DATA_DEFAULT_INFO data_default
struct json_t * json_plan
PT_EVENT_SPEC_INFO event_spec
PT_HOST_VAR_INFO host_var
TP_DOMAIN_COLL_ACTION collation_flag
PT_MISC_TYPE condition_time
PT_CREATE_USER_INFO create_user
PT_NODE * constraint_list
PT_COMP_TO_BETWEEN_OP_CODE_TYPE
PT_INSERT_VALUE_INFO insert_value
DB_TIMESTAMPTZ PT_TIMESTAMPTZ
EXECUTION_STATE_VALUES execution_values