add mock statements
This commit is contained in:
@ -2543,6 +2543,8 @@ typedef enum ObItemType
|
|||||||
// select into outfile
|
// select into outfile
|
||||||
T_BUFFER_SIZE,
|
T_BUFFER_SIZE,
|
||||||
T_PARTITION_EXPR,
|
T_PARTITION_EXPR,
|
||||||
|
T_CACHE_INDEX,
|
||||||
|
T_LOAD_INDEX_INTO_CACHE,
|
||||||
T_MAX //Attention: add a new type before T_MAX
|
T_MAX //Attention: add a new type before T_MAX
|
||||||
} ObItemType;
|
} ObItemType;
|
||||||
|
|
||||||
|
|||||||
@ -572,6 +572,8 @@ int ObCmdExecutor::execute(ObExecContext &ctx, ObICmd &cmd)
|
|||||||
}
|
}
|
||||||
case stmt::T_REPAIR_TABLE:
|
case stmt::T_REPAIR_TABLE:
|
||||||
case stmt::T_CHECKSUM_TABLE:
|
case stmt::T_CHECKSUM_TABLE:
|
||||||
|
case stmt::T_CACHE_INDEX:
|
||||||
|
case stmt::T_LOAD_INDEX_INTO_CACHE:
|
||||||
case stmt::T_FLUSH_PRIVILEGES: {
|
case stmt::T_FLUSH_PRIVILEGES: {
|
||||||
DEFINE_EXECUTE_CMD(ObMockStmt, ObMockExecutor);
|
DEFINE_EXECUTE_CMD(ObMockStmt, ObMockExecutor);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -554,6 +554,7 @@ END_P SET_VAR DELIMITER
|
|||||||
%type <node> ttl_definition ttl_expr ttl_unit
|
%type <node> ttl_definition ttl_expr ttl_unit
|
||||||
%type <node> id_dot_id id_dot_id_dot_id
|
%type <node> id_dot_id id_dot_id_dot_id
|
||||||
%type <node> opt_table_list opt_repair_mode opt_repair_option_list repair_option repair_option_list opt_checksum_option
|
%type <node> opt_table_list opt_repair_mode opt_repair_option_list repair_option repair_option_list opt_checksum_option
|
||||||
|
%type <node> cache_index_stmt load_index_into_cache_stmt tbl_index_list tbl_index tbl_partition_list opt_tbl_partition_list tbl_index_or_partition_list tbl_index_or_partition opt_ignore_leaves key_cache_name
|
||||||
%start sql_stmt
|
%start sql_stmt
|
||||||
%%
|
%%
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
@ -18665,6 +18666,111 @@ CHECKSUM TABLE opt_table_list opt_checksum_option
|
|||||||
(void)$4;
|
(void)$4;
|
||||||
malloc_terminal_node($$, result->malloc_pool_, T_CHECKSUM_TABLE);
|
malloc_terminal_node($$, result->malloc_pool_, T_CHECKSUM_TABLE);
|
||||||
}
|
}
|
||||||
|
| cache_index_stmt
|
||||||
|
{
|
||||||
|
$$ = $1;
|
||||||
|
malloc_terminal_node($$, result->malloc_pool_, T_CACHE_INDEX);
|
||||||
|
}
|
||||||
|
| load_index_into_cache_stmt
|
||||||
|
{
|
||||||
|
$$ = $1;
|
||||||
|
malloc_terminal_node($$, result->malloc_pool_, T_LOAD_INDEX_INTO_CACHE);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
load_index_into_cache_stmt:
|
||||||
|
LOAD INDEX INTO CACHE tbl_index_or_partition_list opt_ignore_leaves
|
||||||
|
{
|
||||||
|
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 2, $5, $6);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
cache_index_stmt:
|
||||||
|
CACHE INDEX tbl_index_list IN key_cache_name
|
||||||
|
{
|
||||||
|
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 2, $3, $5);
|
||||||
|
}
|
||||||
|
| CACHE INDEX normal_relation_factor PARTITION '(' tbl_partition_list ')' IN key_cache_name
|
||||||
|
{
|
||||||
|
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 3, $3, $6, $9);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
key_cache_name:
|
||||||
|
normal_relation_factor
|
||||||
|
{
|
||||||
|
$$ = $1;
|
||||||
|
};
|
||||||
|
|
||||||
|
tbl_index_list:
|
||||||
|
tbl_index
|
||||||
|
{
|
||||||
|
$$ = $1;
|
||||||
|
}
|
||||||
|
| tbl_index_list ',' tbl_index
|
||||||
|
{
|
||||||
|
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 2, $1, $3);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
tbl_index:
|
||||||
|
normal_relation_factor opt_key_or_index opt_index_name
|
||||||
|
{
|
||||||
|
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 3, $1, $2, $3);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
tbl_partition_list:
|
||||||
|
ALL
|
||||||
|
{
|
||||||
|
malloc_terminal_node($$, result->malloc_pool_, T_INT);
|
||||||
|
$$->value_ = 1;
|
||||||
|
}
|
||||||
|
| name_list
|
||||||
|
{
|
||||||
|
$$ = $1;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
opt_tbl_partition_list:
|
||||||
|
PARTITION '(' tbl_partition_list ')'
|
||||||
|
{
|
||||||
|
$$ = $3;
|
||||||
|
}
|
||||||
|
| /*empty*/
|
||||||
|
{ $$ = NULL; }
|
||||||
|
;
|
||||||
|
|
||||||
|
tbl_index_or_partition_list:
|
||||||
|
tbl_index_or_partition
|
||||||
|
{
|
||||||
|
$$ = $1;
|
||||||
|
}
|
||||||
|
| tbl_index_or_partition_list ',' tbl_index_or_partition
|
||||||
|
{
|
||||||
|
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 2, $1, $3);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
opt_ignore_leaves:
|
||||||
|
IGNORE LEAVES
|
||||||
|
{
|
||||||
|
malloc_terminal_node($$, result->malloc_pool_, T_INT);
|
||||||
|
$$->value_ = 1;
|
||||||
|
}
|
||||||
|
| /*empty*/
|
||||||
|
{ $$ = NULL; }
|
||||||
|
;
|
||||||
|
|
||||||
|
tbl_index_or_partition:
|
||||||
|
normal_relation_factor opt_key_or_index '(' name_list ')'
|
||||||
|
{
|
||||||
|
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 3, $1, $2, $4);
|
||||||
|
}
|
||||||
|
| normal_relation_factor opt_tbl_partition_list
|
||||||
|
{
|
||||||
|
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 2, $1, $2);
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
opt_sql_throttle_for_priority:
|
opt_sql_throttle_for_priority:
|
||||||
|
|||||||
@ -37,6 +37,12 @@ int ObMockResolver::resolve(const ParseNode& parse_tree)
|
|||||||
case T_CHECKSUM_TABLE:
|
case T_CHECKSUM_TABLE:
|
||||||
mock_stmt->set_stmt_type(stmt::T_CHECKSUM_TABLE);
|
mock_stmt->set_stmt_type(stmt::T_CHECKSUM_TABLE);
|
||||||
break;
|
break;
|
||||||
|
case T_CACHE_INDEX:
|
||||||
|
mock_stmt->set_stmt_type(stmt::T_CACHE_INDEX);
|
||||||
|
break;
|
||||||
|
case T_LOAD_INDEX_INTO_CACHE:
|
||||||
|
mock_stmt->set_stmt_type(stmt::T_LOAD_INDEX_INTO_CACHE);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("unexpected parse tree type", K(ret), K(parse_tree.type_));
|
LOG_WARN("unexpected parse tree type", K(ret), K(parse_tree.type_));
|
||||||
|
|||||||
@ -1221,6 +1221,14 @@ int ObResolver::resolve(IsPrepared if_prepared, const ParseNode &parse_tree, ObS
|
|||||||
REGISTER_STMT_RESOLVER(Mock);
|
REGISTER_STMT_RESOLVER(Mock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case T_CACHE_INDEX: {
|
||||||
|
REGISTER_STMT_RESOLVER(Mock);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case T_LOAD_INDEX_INTO_CACHE: {
|
||||||
|
REGISTER_STMT_RESOLVER(Mock);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default: {
|
default: {
|
||||||
ret = OB_NOT_SUPPORTED;
|
ret = OB_NOT_SUPPORTED;
|
||||||
const char *type_name = get_type_name(parse_tree.type_);
|
const char *type_name = get_type_name(parse_tree.type_);
|
||||||
|
|||||||
@ -2332,6 +2332,8 @@ stmt::StmtType ObResolverUtils::get_stmt_type_by_item_type(const ObItemType item
|
|||||||
SET_STMT_TYPE(T_SHOW_OPEN_TABLES);
|
SET_STMT_TYPE(T_SHOW_OPEN_TABLES);
|
||||||
SET_STMT_TYPE(T_REPAIR_TABLE);
|
SET_STMT_TYPE(T_REPAIR_TABLE);
|
||||||
SET_STMT_TYPE(T_CHECKSUM_TABLE);
|
SET_STMT_TYPE(T_CHECKSUM_TABLE);
|
||||||
|
SET_STMT_TYPE(T_CACHE_INDEX);
|
||||||
|
SET_STMT_TYPE(T_LOAD_INDEX_INTO_CACHE);
|
||||||
#undef SET_STMT_TYPE
|
#undef SET_STMT_TYPE
|
||||||
case T_ROLLBACK:
|
case T_ROLLBACK:
|
||||||
case T_COMMIT: {
|
case T_COMMIT: {
|
||||||
|
|||||||
@ -355,6 +355,8 @@ OB_STMT_TYPE_DEF_UNKNOWN_AT(T_HBASE_CHECK_AND_PUT, err_stmt_type_priv, 354)
|
|||||||
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_HBASE_CHECK_AND_DELETE, err_stmt_type_priv, 355)
|
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_HBASE_CHECK_AND_DELETE, err_stmt_type_priv, 355)
|
||||||
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_HBASE_HYBRID_BATCH, err_stmt_type_priv, 356)
|
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_HBASE_HYBRID_BATCH, err_stmt_type_priv, 356)
|
||||||
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_HBASE_OTHER, err_stmt_type_priv, 357)
|
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_HBASE_OTHER, err_stmt_type_priv, 357)
|
||||||
|
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_CACHE_INDEX, no_priv_needed, 358)
|
||||||
|
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_LOAD_INDEX_INTO_CACHE, no_priv_needed, 359)
|
||||||
|
|
||||||
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_MAX, err_stmt_type_priv, 500)
|
OB_STMT_TYPE_DEF_UNKNOWN_AT(T_MAX, err_stmt_type_priv, 500)
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user