@@ -625,6 +625,8 @@ Insert Insert():
625625 boolean useSet = false;
626626 List<Column> setColumns = new ArrayList<Column>();
627627 List<Expression> setExpressionList = new ArrayList<Expression>();
628+ String name = null;
629+ boolean useAs = false;
628630}
629631{
630632 <K_INSERT>
@@ -634,7 +636,8 @@ Insert Insert():
634636 }]
635637 [<K_IGNORE>{ modifierIgnore = true; }]
636638 [<K_INTO>] table=Table()
637-
639+
640+ [ [<K_AS> { useAs = true; } ] name=RelObjectNameWithoutValue() { table.setAlias(new Alias(name,useAs)); }]
638641
639642 [LOOKAHEAD(2) "(" tableColumn=Column() { columns.add(tableColumn); } ("," tableColumn=Column() { columns.add(tableColumn); } )* ")" ]
640643 (
@@ -940,15 +943,18 @@ Column Column() #Column :
940943 }
941944}
942945
943- String RelObjectName() :
946+ /*
947+ Not all names should be allowed for aliases.
948+ */
949+ String RelObjectNameWithoutValue() :
944950{ Token tk = null; }
945951{
946952 (tk=<S_IDENTIFIER> | tk=<S_QUOTED_IDENTIFIER>
947953 | tk=<K_CAST> | tk=<K_DO> | tk=<K_EXTRACT> | tk=<K_FIRST> | tk=<K_FOLLOWING>
948954 | tk=<K_LAST> | tk=<K_MATERIALIZED> | tk=<K_NULLS> | tk=<K_PARTITION> | tk=<K_RANGE>
949- | tk=<K_ROW> | tk=<K_ROWS> | tk=<K_SIBLINGS> | tk=<K_VALUE> | tk=< K_XML>
955+ | tk=<K_ROW> | tk=<K_ROWS> | tk=<K_SIBLINGS> | tk=<K_XML>
950956 | tk=<K_COLUMN> | tk=<K_REPLACE> | tk=<K_TRUNCATE> | tk=<K_KEY> | tk=<K_ANY>
951- | tk=<K_OPEN> | tk=<K_OVER> | tk=<K_VALUES> | tk=< K_PERCENT> | tk=<K_PRIOR>
957+ | tk=<K_OPEN> | tk=<K_OVER> | tk=<K_PERCENT> | tk=<K_PRIOR>
952958 | tk=<K_SEPARATOR> | tk=<K_NO> | tk=<K_ACTION> | tk=<K_CASCADE> | tk=<K_END>
953959 | tk=<K_TABLE> | tk=<K_DATETIMELITERAL> | tk=<K_COMMIT> | tk=<K_PRECISION>
954960 | tk=<K_INSERT>
@@ -958,7 +964,21 @@ String RelObjectName() :
958964}
959965
960966/*
961- Extended usage of object names.
967+ Normal names.
968+ */
969+ String RelObjectName() :
970+ { Token tk = null; String result = null; }
971+ {
972+ (result = RelObjectNameWithoutValue() | tk=<K_VALUE> | tk=<K_VALUES>)
973+
974+ {
975+ if (tk!=null) result=tk.image;
976+ return result;
977+ }
978+ }
979+
980+ /*
981+ Extended version of object names.
962982*/
963983String RelObjectNameExt():
964984{ Token tk = null;
0 commit comments