fix bug about dateadd func
This commit is contained in:
@ -1391,18 +1391,24 @@ bit_expr '|' bit_expr %prec '|'
|
||||
}
|
||||
| bit_expr '+' INTERVAL expr date_unit %prec '+'
|
||||
{
|
||||
ParseNode *tmp_node = NULL;
|
||||
malloc_terminal_node(tmp_node, result->malloc_pool_, T_DEFAULT_INT);
|
||||
tmp_node->value_ = 1;
|
||||
ParseNode *params = NULL;
|
||||
malloc_non_terminal_node(params, result->malloc_pool_, T_EXPR_LIST, 3, $1, $4, $5);
|
||||
make_name_node($$, result->malloc_pool_, "date_add_date_interval");
|
||||
malloc_non_terminal_node(params, result->malloc_pool_, T_EXPR_LIST, 4, $1, $4, $5, tmp_node);
|
||||
make_name_node($$, result->malloc_pool_, "date_add");
|
||||
malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS, 2, $$, params);
|
||||
check_ret(setup_token_pos_info_and_dup_string($$, result, @1.first_column, @4.last_column),
|
||||
&@1, result);
|
||||
}
|
||||
| INTERVAL expr date_unit '+' bit_expr
|
||||
{
|
||||
ParseNode *tmp_node = NULL;
|
||||
malloc_terminal_node(tmp_node, result->malloc_pool_, T_DEFAULT_INT);
|
||||
tmp_node->value_ = 2;
|
||||
ParseNode *params = NULL;
|
||||
malloc_non_terminal_node(params, result->malloc_pool_, T_EXPR_LIST, 3, $2, $3, $5);
|
||||
make_name_node($$, result->malloc_pool_, "date_add_interval_date");
|
||||
malloc_non_terminal_node(params, result->malloc_pool_, T_EXPR_LIST, 4, $2, $3, $5, tmp_node);
|
||||
make_name_node($$, result->malloc_pool_, "date_add");
|
||||
malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS, 2, $$, params);
|
||||
check_ret(setup_token_pos_info_and_dup_string($$, result, @1.first_column, @4.last_column),
|
||||
&@1, result);
|
||||
|
||||
Reference in New Issue
Block a user