@@ -9,6 +9,7 @@ export class FlinkErrorListener extends ParseErrorListener {
99
1010 private objectNames : Map < number , string > = new Map ( [
1111 [ FlinkSqlParser . RULE_catalogPath , 'catalog' ] ,
12+ [ FlinkSqlParser . RULE_catalogPathCreate , 'catalog' ] ,
1213 [ FlinkSqlParser . RULE_databasePath , 'database' ] ,
1314 [ FlinkSqlParser . RULE_databasePathCreate , 'database' ] ,
1415 [ FlinkSqlParser . RULE_tablePath , 'table' ] ,
@@ -39,6 +40,7 @@ export class FlinkErrorListener extends ParseErrorListener {
3940 const candidates = core . collectCandidates ( token . tokenIndex , currentContext ) ;
4041
4142 if ( candidates . rules . size ) {
43+ const result : string [ ] = [ ] ;
4244 // get expectedText as collect rules first
4345 for ( const candidate of candidates . rules ) {
4446 const [ ruleType ] = candidate ;
@@ -48,28 +50,23 @@ export class FlinkErrorListener extends ParseErrorListener {
4850 case FlinkSqlParser . RULE_tablePath :
4951 case FlinkSqlParser . RULE_viewPath :
5052 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 } ` ) ;
5756 break ;
5857 }
5958 case FlinkSqlParser . RULE_databasePathCreate :
6059 case FlinkSqlParser . RULE_tablePathCreate :
6160 case FlinkSqlParser . RULE_functionNameCreate :
6261 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 } ` ) ;
6965 break ;
7066 }
7167 }
7268 }
69+ expectedText = result . join ( '{or}' ) ;
7370 }
7471 if ( candidates . tokens . size ) {
7572 expectedText += expectedText ? '{orKeyword}' : '{keyword}' ;
0 commit comments