@@ -908,15 +908,29 @@ MergeInsert MergeInsertClause() : {
908
908
Column Column() #Column :
909
909
{
910
910
String databaseName = null, schemaName = null, tableName = null, columnName = null;
911
+ String token = null;
911
912
}
912
913
{
913
- (
914
+ columnName = RelObjectName()
915
+ ( "." [LOOKAHEAD(2) token = RelObjectName()] { tableName = columnName; columnName = token; token = null;}
916
+ ( "." token = RelObjectName() { schemaName = tableName; tableName = columnName; columnName = token; token = null;}
917
+ ( "." token = RelObjectName() { databaseName = schemaName; schemaName = tableName; tableName = columnName; columnName = token; }
918
+ )?
919
+ )?
920
+ )?
921
+
922
+ /*(
914
923
LOOKAHEAD(7) databaseName=RelObjectName() "." [schemaName=RelObjectName()] "." tableName=RelObjectName() "." columnName=RelObjectName()
915
924
| LOOKAHEAD(5) schemaName=RelObjectName() "." tableName=RelObjectName() "." columnName=RelObjectName()
916
925
| LOOKAHEAD(3) tableName=RelObjectName() "." columnName=RelObjectName()
917
926
| columnName=RelObjectName()
918
- )
927
+ )*/
928
+
919
929
{
930
+ if (tableName==null && (databaseName!=null || schemaName!=null)) {
931
+ throw generateParseException();
932
+ }
933
+
920
934
final Database database = new Database(databaseName);
921
935
final Table table = new Table(database, schemaName, tableName);
922
936
Column col = new Column(table, columnName);
@@ -2372,7 +2386,7 @@ Expression PrimaryExpression():
2372
2386
2373
2387
| LOOKAHEAD(2) retval=DateTimeLiteralExpression()
2374
2388
2375
- | LOOKAHEAD(Column()) retval=Column()
2389
+ | retval=Column()
2376
2390
2377
2391
| LOOKAHEAD("(" SimpleExpression() ")") "(" retval=SimpleExpression() ")" {retval = new Parenthesis(retval); }
2378
2392
0 commit comments