[FEAT MERGE] [OBKV] support TTL

Co-authored-by: IHEII <602280108@qq.com>
This commit is contained in:
shenyunlong.syl
2023-09-04 01:10:36 +00:00
committed by ob-robot
parent 464ba63de9
commit b60e4f8d97
133 changed files with 12634 additions and 725 deletions

View File

@ -289,7 +289,7 @@ END_P SET_VAR DELIMITER
JOB JSON JSON_ARRAYAGG JSON_OBJECTAGG JSON_VALUE JSON_TABLE
KEY_BLOCK_SIZE KEY_VERSION KVCACHE
KEY_BLOCK_SIZE KEY_VERSION KVCACHE KV_ATTRIBUTES
LAG LANGUAGE LAST LAST_VALUE LEAD LEADER LEAVES LESS LEAK LEAK_MOD LEAK_RATE LIB LINESTRING LIST_
LISTAGG LOCAL LOCALITY LOCATION LOCKED LOCKS LOGFILE LOGONLY_REPLICA_NUM LOGS LOCK_ LOGICAL_READS
@ -344,7 +344,7 @@ END_P SET_VAR DELIMITER
TABLE_CHECKSUM TABLE_MODE TABLE_ID TABLE_NAME TABLEGROUPS TABLES TABLESPACE TABLET TABLET_ID TABLET_MAX_SIZE
TEMPLATE TEMPORARY TEMPTABLE TENANT TEXT THAN TIME TIMESTAMP TIMESTAMPADD TIMESTAMPDIFF TP_NO
TP_NAME TRACE TRADITIONAL TRANSACTION TRIGGERS TRIM TRUNCATE TYPE TYPES TASK TABLET_SIZE
TABLEGROUP_ID TENANT_ID THROTTLE TIME_ZONE_INFO TOP_K_FRE_HIST TIMES TRIM_SPACE
TABLEGROUP_ID TENANT_ID THROTTLE TIME_ZONE_INFO TOP_K_FRE_HIST TIMES TRIM_SPACE TTL
UNCOMMITTED UNDEFINED UNDO_BUFFER_SIZE UNDOFILE UNICODE UNINSTALL UNIT UNIT_GROUP UNIT_NUM UNLOCKED UNTIL
UNUSUAL UPGRADE USE_BLOOM_FILTER UNKNOWN USE_FRM USER USER_RESOURCES UNBOUNDED UP UNLIMITED
@ -516,6 +516,7 @@ END_P SET_VAR DELIMITER
%type <node> opt_value_on_empty_or_error_or_mismatch opt_on_mismatch
%type <node> table_values_caluse table_values_caluse_with_order_by_and_limit values_row_list row_value
%type <node> ttl_definition ttl_expr ttl_unit
%start sql_stmt
%%
////////////////////////////////////////////////////////////////
@ -6341,6 +6342,16 @@ TABLE_MODE opt_equal_mark STRING_VALUE
(void)($2) ; /* make bison mute */
malloc_non_terminal_node($$, result->malloc_pool_, T_EXTERNAL_FILE_PATTERN, 1, $3);
}
| TTL '(' ttl_definition ')'
{
merge_nodes($$, result, T_TTL_DEFINITION, $3);
dup_expr_string($$, result, @3.first_column, @3.last_column);
}
| KV_ATTRIBUTES opt_equal_mark STRING_VALUE
{
(void)($2); /* make bison mute*/
malloc_non_terminal_node($$, result->malloc_pool_, T_KV_ATTRIBUTES, 1, $3);
}
;
parallel_option:
@ -6362,6 +6373,64 @@ PARALLEL opt_equal_mark INTNUM
}
;
ttl_definition:
ttl_expr
{
$$ = $1;
}
| ttl_definition ',' ttl_expr
{
malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 2, $1, $3);
}
;
ttl_expr:
simple_expr '+' INTERVAL INTNUM ttl_unit
{
malloc_non_terminal_node($$, result->malloc_pool_, T_TTL_EXPR, 3, $1, $4, $5);
dup_expr_string($$, result, @1.first_column, @1.last_column);
}
;
ttl_unit:
SECOND
{
malloc_terminal_node($$, result->malloc_pool_, T_INT);
$$->value_ = DATE_UNIT_SECOND;
dup_expr_string($$, result, @1.first_column, @1.last_column);
}
| MINUTE
{
malloc_terminal_node($$, result->malloc_pool_, T_INT);
$$->value_ = DATE_UNIT_MINUTE;
dup_expr_string($$, result, @1.first_column, @1.last_column);
}
| HOUR
{
malloc_terminal_node($$, result->malloc_pool_, T_INT);
$$->value_ = DATE_UNIT_HOUR;
dup_expr_string($$, result, @1.first_column, @1.last_column);
}
| DAY
{
malloc_terminal_node($$, result->malloc_pool_, T_INT);
$$->value_ = DATE_UNIT_DAY;
dup_expr_string($$, result, @1.first_column, @1.last_column);
}
| MONTH
{
malloc_terminal_node($$, result->malloc_pool_, T_INT);
$$->value_ = DATE_UNIT_MONTH;
dup_expr_string($$, result, @1.first_column, @1.last_column);
}
| YEAR
{
malloc_terminal_node($$, result->malloc_pool_, T_INT);
$$->value_ = DATE_UNIT_YEAR;
dup_expr_string($$, result, @1.first_column, @1.last_column);
}
;
relation_name_or_string:
relation_name
{ $$ = $1; $$->type_ = T_VARCHAR;}
@ -14234,6 +14303,10 @@ DROP CONSTRAINT constraint_name
// merge_nodes(col_list, result->malloc_pool_, T_COLUMN_LIST, $3);
// malloc_non_terminal_node($$, result->malloc_pool_, T_ORDER_BY, 1, col_list);
// }*/
| REMOVE TTL
{
malloc_terminal_node($$, result->malloc_pool_, T_REMOVE_TTL);
}
;
// mysql 模式下的 constraint 特指 check constraint
@ -15468,6 +15541,38 @@ ALTER SYSTEM RESUME BACKUP
malloc_non_terminal_node($$, result->malloc_pool_, T_BACKUP_MANAGE, 2, type, value);
}
|
ALTER SYSTEM TRIGGER TTL opt_tenant_list_v2
{
ParseNode *type = NULL;
malloc_terminal_node(type, result->malloc_pool_, T_INT);
type->value_ = 0;
malloc_non_terminal_node($$, result->malloc_pool_, T_TABLE_TTL, 2, type, $5);
}
|
ALTER SYSTEM SUSPEND TTL opt_tenant_list_v2
{
ParseNode *type = NULL;
malloc_terminal_node(type, result->malloc_pool_, T_INT);
type->value_ = 1;
malloc_non_terminal_node($$, result->malloc_pool_, T_TABLE_TTL, 2, type, $5);
}
|
ALTER SYSTEM RESUME TTL opt_tenant_list_v2
{
ParseNode *type = NULL;
malloc_terminal_node(type, result->malloc_pool_, T_INT);
type->value_ = 2;
malloc_non_terminal_node($$, result->malloc_pool_, T_TABLE_TTL, 2, type, $5);
}
|
ALTER SYSTEM CANCEL TTL opt_tenant_list_v2
{
ParseNode *type = NULL;
malloc_terminal_node(type, result->malloc_pool_, T_INT);
type->value_ = 3;
malloc_non_terminal_node($$, result->malloc_pool_, T_TABLE_TTL, 2, type, $5);
}
|
ALTER SYSTEM VALIDATE DATABASE opt_copy_id
{
ParseNode *type = NULL;
@ -18512,6 +18617,7 @@ ACCOUNT
| TRIM
| TRIM_SPACE
| TRUNCATE
| TTL
| TYPE
| TYPES
| TABLEGROUP_ID
@ -18598,6 +18704,7 @@ ACCOUNT
| MY_NAME
| CONNECT
| STATEMENT_ID
| KV_ATTRIBUTES
;
unreserved_keyword_special: