8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-24 04:03:03 +01:00
This commit is contained in:
asfernandes 2006-09-14 02:27:59 +00:00
parent 31aa0f6ed5
commit addb91948c

View File

@ -3405,37 +3405,37 @@ insert : INSERT INTO simple_table_name ins_column_parens_opt
/* MERGE statement */ /* MERGE statement */
merge merge
: MERGE INTO simple_table_name USING table_reference ON search_condition : MERGE INTO simple_table_name USING table_reference ON search_condition
merge_when_clause merge_when_clause
{ {
$$ = make_node(nod_merge, e_mrg_count, $3, $5, $7, $8); $$ = make_node(nod_merge, e_mrg_count, $3, $5, $7, $8);
} }
; ;
merge_when_clause merge_when_clause
: merge_when_matched_clause merge_when_not_matched_clause : merge_when_matched_clause merge_when_not_matched_clause
{ $$ = make_node(nod_merge_when, e_mrg_when_count, $1, $2); } { $$ = make_node(nod_merge_when, e_mrg_when_count, $1, $2); }
| merge_when_not_matched_clause merge_when_matched_clause | merge_when_not_matched_clause merge_when_matched_clause
{ $$ = make_node(nod_merge_when, e_mrg_when_count, $2, $1); } { $$ = make_node(nod_merge_when, e_mrg_when_count, $2, $1); }
; ;
merge_when_matched_clause merge_when_matched_clause
: WHEN MATCHED THEN merge_update_specification : WHEN MATCHED THEN merge_update_specification
{ $$ = $4; } { $$ = $4; }
; ;
merge_when_not_matched_clause merge_when_not_matched_clause
: WHEN NOT MATCHED THEN merge_insert_specification : WHEN NOT MATCHED THEN merge_insert_specification
{ $$ = $5; } { $$ = $5; }
; ;
merge_update_specification merge_update_specification
: UPDATE SET assignments : UPDATE SET assignments
{ $$ = make_node(nod_merge_update, e_mrg_update_count, make_list($3)); } { $$ = make_node(nod_merge_update, e_mrg_update_count, make_list($3)); }
; ;
merge_insert_specification merge_insert_specification
: INSERT ins_column_parens_opt VALUES '(' value_list ')' : INSERT ins_column_parens_opt VALUES '(' value_list ')'
{ $$ = make_node(nod_merge_insert, e_mrg_insert_count, make_list($2), make_list($5)); } { $$ = make_node(nod_merge_insert, e_mrg_insert_count, make_list($2), make_list($5)); }
; ;