提交 85c2f0ab 编写于 作者: D ds0 提交者: wangzelin.wzl

: ob-mysql support 'sql_no_cache' and 'SUBPARTITION xxx ENGINE=InnoDB' now .

上级 04204295
......@@ -111,6 +111,7 @@
%nonassoc LOWER_PARENS
//%nonassoc STRING_VALUE
%left '(' ')'
%nonassoc SQL_CACHE SQL_NO_CACHE /*for shift/reduce conflict between opt_query_expresion_option_list and SQL_CACHE*/
%nonassoc HIGHER_PARENS TRANSACTION /*for simple_expr conflict*/
%left '.'
%right NOT NOT2
......@@ -315,7 +316,7 @@ END_P SET_VAR DELIMITER
%type <node> opt_resource_unit_option_list resource_unit_option
%type <node> tenant_option zone_list resource_pool_list
%type <node> opt_partition_option partition_option hash_partition_option key_partition_option opt_use_partition use_partition range_partition_option subpartition_option opt_range_partition_list opt_range_subpartition_list range_partition_list range_subpartition_list range_partition_element range_subpartition_element range_partition_expr range_expr_list range_expr opt_part_id sample_clause opt_block seed sample_percent opt_sample_scope modify_partition_info modify_tg_partition_info opt_partition_range_or_list column_partition_option opt_column_partition_option auto_partition_option auto_range_type partition_size auto_partition_type
%type <node> subpartition_template_option subpartition_individual_option opt_hash_partition_list hash_partition_list hash_partition_element opt_hash_subpartition_list hash_subpartition_list hash_subpartition_element opt_subpartition_list
%type <node> subpartition_template_option subpartition_individual_option opt_hash_partition_list hash_partition_list hash_partition_element opt_hash_subpartition_list hash_subpartition_list hash_subpartition_element opt_subpartition_list opt_engine_option
%type <node> date_unit date_params timestamp_params
%type <node> drop_table_stmt table_list drop_view_stmt table_or_tables
%type <node> explain_stmt explainable_stmt format_name kill_stmt create_outline_stmt alter_outline_stmt drop_outline_stmt opt_outline_target
......@@ -5598,12 +5599,21 @@ hash_subpartition_element
}
hash_subpartition_element:
SUBPARTITION relation_factor
SUBPARTITION relation_factor opt_engine_option
{
UNUSED($3);
malloc_non_terminal_node($$, result->malloc_pool_, T_PARTITION_ELEMENT, 5, $2, NULL, NULL, NULL, NULL);
}
;
opt_engine_option:
ENGINE_ COMP_EQ INNODB
{
// fix the error report by xabank.xyhf_mysql
$$ = NULL;
}
| /* empty */{$$=NULL;};
opt_range_subpartition_list:
'(' range_subpartition_list ')'
{
......@@ -7857,11 +7867,15 @@ opt_having:
;
opt_query_expression_option_list:
query_expression_option_list
query_expression_option_list %prec LOWER_PARENS
{
merge_nodes($$, result, T_QEURY_EXPRESSION_LIST, $1);
if ($1 == NULL) {
$$ = NULL;
} else {
merge_nodes($$, result, T_QEURY_EXPRESSION_LIST, $1);
}
}
|
| %prec LOWER_PARENS
{
$$ = NULL;
}
......@@ -7872,9 +7886,13 @@ query_expression_option
{
$$ = $1;
}
| query_expression_option query_expression_option
| query_expression_option_list query_expression_option
{
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 2, $1, $2);
if ($1 == NULL) {
$$ = $2;
} else {
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 2, $1, $2);
}
}
;
......@@ -7894,8 +7912,19 @@ ALL
| SQL_CALC_FOUND_ROWS
{
malloc_terminal_node($$, result->malloc_pool_, T_FOUND_ROWS);
}
| SQL_NO_CACHE
{
// SQL_NO_CACHE/SQL_CACHE is deprecated and will be removed in a future release
// we only support it in parser, but actually do nothing.
$$=NULL;
}
| SQL_CACHE
{
$$=NULL;
}
;
projection:
expr %prec LOWER_PARENS
{
......
......@@ -379,6 +379,7 @@ const char* get_type_name(int type)
case T_FUN_SYS_IS_IPV4_MAPPED : return "T_FUN_SYS_IS_IPV4_MAPPED";
case T_FUN_SYS_IS_IPV4_COMPAT : return "T_FUN_SYS_IS_IPV4_COMPAT";
case T_FUN_SYS_INETATON : return "T_FUN_SYS_INETATON";
case T_FUN_SYS_CRC32 : return "T_FUN_SYS_CRC32";
case T_MYSQL_ONLY_SYS_MAX_OP : return "T_MYSQL_ONLY_SYS_MAX_OP";
case T_FUN_SYS_CONNECT_BY_PATH : return "T_FUN_SYS_CONNECT_BY_PATH";
case T_FUN_SYS_SYSTIMESTAMP : return "T_FUN_SYS_SYSTIMESTAMP";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册