@@ -9,6 +9,7 @@ export class FlinkErrorListener extends ParseErrorListener {
9
9
10
10
private objectNames : Map < number , string > = new Map ( [
11
11
[ FlinkSqlParser . RULE_catalogPath , 'catalog' ] ,
12
+ [ FlinkSqlParser . RULE_catalogPathCreate , 'catalog' ] ,
12
13
[ FlinkSqlParser . RULE_databasePath , 'database' ] ,
13
14
[ FlinkSqlParser . RULE_databasePathCreate , 'database' ] ,
14
15
[ FlinkSqlParser . RULE_tablePath , 'table' ] ,
@@ -39,6 +40,7 @@ export class FlinkErrorListener extends ParseErrorListener {
39
40
const candidates = core . collectCandidates ( token . tokenIndex , currentContext ) ;
40
41
41
42
if ( candidates . rules . size ) {
43
+ const result : string [ ] = [ ] ;
42
44
// get expectedText as collect rules first
43
45
for ( const candidate of candidates . rules ) {
44
46
const [ ruleType ] = candidate ;
@@ -48,28 +50,23 @@ export class FlinkErrorListener extends ParseErrorListener {
48
50
case FlinkSqlParser . RULE_tablePath :
49
51
case FlinkSqlParser . RULE_viewPath :
50
52
case FlinkSqlParser . RULE_functionName :
51
- case FlinkSqlParser . RULE_columnName : {
52
- if ( ! name ) {
53
- expectedText = '{newObj}' ;
54
- } else {
55
- expectedText = `{new}${ name } ` ;
56
- }
53
+ case FlinkSqlParser . RULE_columnName :
54
+ case FlinkSqlParser . RULE_catalogPath : {
55
+ result . push ( `{existing}${ name } ` ) ;
57
56
break ;
58
57
}
59
58
case FlinkSqlParser . RULE_databasePathCreate :
60
59
case FlinkSqlParser . RULE_tablePathCreate :
61
60
case FlinkSqlParser . RULE_functionNameCreate :
62
61
case FlinkSqlParser . RULE_viewPathCreate :
63
- case FlinkSqlParser . RULE_columnNameCreate : {
64
- if ( ! name ) {
65
- expectedText = '{existingObj}' ;
66
- } else {
67
- expectedText = `{existing}${ name } ` ;
68
- }
62
+ case FlinkSqlParser . RULE_columnNameCreate :
63
+ case FlinkSqlParser . RULE_catalogPathCreate : {
64
+ result . push ( `{new}${ name } ` ) ;
69
65
break ;
70
66
}
71
67
}
72
68
}
69
+ expectedText = result . join ( '{or}' ) ;
73
70
}
74
71
if ( candidates . tokens . size ) {
75
72
expectedText += expectedText ? '{orKeyword}' : '{keyword}' ;
0 commit comments