[
https://issues.apache.org/jira/browse/IMPALA-12126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
yx91490 updated IMPALA-12126:
-----------------------------
Description:
There is a keywords and builtin function names conflict introduced by
IMPALA-3916
, I can reproduce it by:
{code:java}
create view v1 as select 1 as `ilike`;
show create view v1; {code}
it will report error: "Failed to parse view-definition statement of view:
default.v1".
the exception stacktrace in impalad is :
{code:java}
I0509 17:03:43.819247 91698 jni-util.cc:286] 134f64cbdaecfa83:58b80d1700000000]
org.apache.impala.common.AnalysisException:
org.apache.impala.catalog.TableLoadingException: Failed to parse
view-definition statement of view: default.v1
at org.apache.impala.analysis.Analyzer.getTable(Analyzer.java:3452)
at
org.apache.impala.analysis.ShowCreateTableStmt.analyze(ShowCreateTableStmt.java:63)
at
org.apache.impala.analysis.AnalysisContext.analyze(AnalysisContext.java:545)
at
org.apache.impala.analysis.AnalysisContext.analyzeAndAuthorize(AnalysisContext.java:465)
at
org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:2035)
at
org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:2001)
at
org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1971)
at
org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:237)
Caused by: org.apache.impala.catalog.TableLoadingException: Failed to parse
view-definition statement of view: default.v1
at
org.apache.impala.catalog.IncompleteTable.loadFromThrift(IncompleteTable.java:123)
at org.apache.impala.catalog.Table.fromThrift(Table.java:485)
at
org.apache.impala.catalog.ImpaladCatalog.addTable(ImpaladCatalog.java:471)
at
org.apache.impala.catalog.ImpaladCatalog.addCatalogObject(ImpaladCatalog.java:326)
at
org.apache.impala.catalog.ImpaladCatalog.updateCatalog(ImpaladCatalog.java:255)
at
org.apache.impala.service.FeCatalogManager$CatalogdImpl.updateCatalogCache(FeCatalogManager.java:114)
at
org.apache.impala.service.Frontend.updateCatalogCache(Frontend.java:560)
at
org.apache.impala.service.JniFrontend.updateCatalogCache(JniFrontend.java:258)
at ========.<Remote stack trace on catalogd>:
org.apache.impala.catalog.TableLoadingException: Failed to parse
view-definition statement of view: default.v1
at org.apache.impala.catalog.View.parseViewDef(View.java:146)
at org.apache.impala.catalog.View.load(View.java:102)
at org.apache.impala.catalog.TableLoader.load(TableLoader.java:86)
at
org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:244)
at
org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:241)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750){code}
after I add some debug code in catalog, the error log shows:
{code:java}
Java exception follows:
org.apache.impala.analysis.Parser$ParseException: Syntax error in line 1:
SELECT 1 ilike
^
Encountered: EOF
Expected: CASE, CAST, DATE, DEFAULT, EXISTS, FALSE, GROUPING, IF, INTERVAL,
LEFT, NOT, NULL, REPLACE, RIGHT, TRUNCATE, TRUE, UNNEST, IDENTIFIER
at org.apache.impala.analysis.Parser.parse(Parser.java:71)
at org.apache.impala.analysis.Parser.parse(Parser.java:42)
at org.apache.impala.catalog.View.parseViewDef(View.java:146)
at org.apache.impala.catalog.View.load(View.java:107)
at org.apache.impala.catalog.TableLoader.load(TableLoader.java:144)
at
org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:245)
at
org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:242)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.Exception: Syntax error
at
org.apache.impala.analysis.SqlParser.unrecovered_syntax_error(SqlParser.java:1756)
at java_cup.runtime.lr_parser.parse(lr_parser.java:619)
at org.apache.impala.analysis.Parser.parse(Parser.java:63)
... 10 more {code}
in this case, 'ilike' is both a function name and a keyword, according to
IMPALA-3916 , the reserved words don't contains it, [the saved sql won't quote
'ilike'|https://github.com/apache/impala/blob/master/fe/src/main/java/org/apache/impala/analysis/ToSqlUtils.java#L189,
cauing parser pase error when loading the view in catalogd.
was:
There is a keywords and builtin function names conflict introduced by
IMPALA-3916
, I can reproduce it by:
{code:java}
create view v1 as select 1 as `ilike`;
show create view v1; {code}
it will report error: "Failed to parse view-definition statement of view:
default.v1".
the exception stacktrace in impalad is :
{code:java}
I0509 17:03:43.819247 91698 jni-util.cc:286] 134f64cbdaecfa83:58b80d1700000000]
org.apache.impala.common.AnalysisException:
org.apache.impala.catalog.TableLoadingException: Failed to parse
view-definition statement of view: default.v1
at org.apache.impala.analysis.Analyzer.getTable(Analyzer.java:3452)
at
org.apache.impala.analysis.ShowCreateTableStmt.analyze(ShowCreateTableStmt.java:63)
at
org.apache.impala.analysis.AnalysisContext.analyze(AnalysisContext.java:545)
at
org.apache.impala.analysis.AnalysisContext.analyzeAndAuthorize(AnalysisContext.java:465)
at
org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:2035)
at
org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:2001)
at
org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1971)
at
org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:237)
Caused by: org.apache.impala.catalog.TableLoadingException: Failed to parse
view-definition statement of view: default.v1
at
org.apache.impala.catalog.IncompleteTable.loadFromThrift(IncompleteTable.java:123)
at org.apache.impala.catalog.Table.fromThrift(Table.java:485)
at
org.apache.impala.catalog.ImpaladCatalog.addTable(ImpaladCatalog.java:471)
at
org.apache.impala.catalog.ImpaladCatalog.addCatalogObject(ImpaladCatalog.java:326)
at
org.apache.impala.catalog.ImpaladCatalog.updateCatalog(ImpaladCatalog.java:255)
at
org.apache.impala.service.FeCatalogManager$CatalogdImpl.updateCatalogCache(FeCatalogManager.java:114)
at
org.apache.impala.service.Frontend.updateCatalogCache(Frontend.java:560)
at
org.apache.impala.service.JniFrontend.updateCatalogCache(JniFrontend.java:258)
at ========.<Remote stack trace on catalogd>:
org.apache.impala.catalog.TableLoadingException: Failed to parse
view-definition statement of view: default.v1
at org.apache.impala.catalog.View.parseViewDef(View.java:146)
at org.apache.impala.catalog.View.load(View.java:102)
at org.apache.impala.catalog.TableLoader.load(TableLoader.java:86)
at
org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:244)
at
org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:241)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750){code}
in this case, 'ilike' is both a function name and a keyword, according to
IMPALA-3916 , the reserved words don't contains it, the saved sql won't quote
'ilike', cauing parser pase error when loading the view in catalogd.
> Keywords and builtin function names conflict
> --------------------------------------------
>
> Key: IMPALA-12126
> URL: https://issues.apache.org/jira/browse/IMPALA-12126
> Project: IMPALA
> Issue Type: Bug
> Affects Versions: Impala 4.0.0
> Reporter: yx91490
> Assignee: yx91490
> Priority: Major
>
> There is a keywords and builtin function names conflict introduced by
> IMPALA-3916
> , I can reproduce it by:
> {code:java}
> create view v1 as select 1 as `ilike`;
> show create view v1; {code}
> it will report error: "Failed to parse view-definition statement of view:
> default.v1".
> the exception stacktrace in impalad is :
> {code:java}
> I0509 17:03:43.819247 91698 jni-util.cc:286]
> 134f64cbdaecfa83:58b80d1700000000]
> org.apache.impala.common.AnalysisException:
> org.apache.impala.catalog.TableLoadingException: Failed to parse
> view-definition statement of view: default.v1
> at org.apache.impala.analysis.Analyzer.getTable(Analyzer.java:3452)
> at
> org.apache.impala.analysis.ShowCreateTableStmt.analyze(ShowCreateTableStmt.java:63)
> at
> org.apache.impala.analysis.AnalysisContext.analyze(AnalysisContext.java:545)
> at
> org.apache.impala.analysis.AnalysisContext.analyzeAndAuthorize(AnalysisContext.java:465)
> at
> org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:2035)
> at
> org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:2001)
> at
> org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1971)
> at
> org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:237)
> Caused by: org.apache.impala.catalog.TableLoadingException: Failed to parse
> view-definition statement of view: default.v1
> at
> org.apache.impala.catalog.IncompleteTable.loadFromThrift(IncompleteTable.java:123)
> at org.apache.impala.catalog.Table.fromThrift(Table.java:485)
> at
> org.apache.impala.catalog.ImpaladCatalog.addTable(ImpaladCatalog.java:471)
> at
> org.apache.impala.catalog.ImpaladCatalog.addCatalogObject(ImpaladCatalog.java:326)
> at
> org.apache.impala.catalog.ImpaladCatalog.updateCatalog(ImpaladCatalog.java:255)
> at
> org.apache.impala.service.FeCatalogManager$CatalogdImpl.updateCatalogCache(FeCatalogManager.java:114)
> at
> org.apache.impala.service.Frontend.updateCatalogCache(Frontend.java:560)
> at
> org.apache.impala.service.JniFrontend.updateCatalogCache(JniFrontend.java:258)
> at ========.<Remote stack trace on catalogd>:
> org.apache.impala.catalog.TableLoadingException: Failed to parse
> view-definition statement of view: default.v1
> at org.apache.impala.catalog.View.parseViewDef(View.java:146)
> at org.apache.impala.catalog.View.load(View.java:102)
> at org.apache.impala.catalog.TableLoader.load(TableLoader.java:86)
> at
> org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:244)
> at
> org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:241)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:750){code}
> after I add some debug code in catalog, the error log shows:
>
> {code:java}
> Java exception follows:
> org.apache.impala.analysis.Parser$ParseException: Syntax error in line 1:
> SELECT 1 ilike
> ^
> Encountered: EOF
> Expected: CASE, CAST, DATE, DEFAULT, EXISTS, FALSE, GROUPING, IF, INTERVAL,
> LEFT, NOT, NULL, REPLACE, RIGHT, TRUNCATE, TRUE, UNNEST, IDENTIFIER
> at org.apache.impala.analysis.Parser.parse(Parser.java:71)
> at org.apache.impala.analysis.Parser.parse(Parser.java:42)
> at org.apache.impala.catalog.View.parseViewDef(View.java:146)
> at org.apache.impala.catalog.View.load(View.java:107)
> at org.apache.impala.catalog.TableLoader.load(TableLoader.java:144)
> at
> org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:245)
> at
> org.apache.impala.catalog.TableLoadingMgr$2.call(TableLoadingMgr.java:242)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.Exception: Syntax error
> at
> org.apache.impala.analysis.SqlParser.unrecovered_syntax_error(SqlParser.java:1756)
> at java_cup.runtime.lr_parser.parse(lr_parser.java:619)
> at org.apache.impala.analysis.Parser.parse(Parser.java:63)
> ... 10 more {code}
>
> in this case, 'ilike' is both a function name and a keyword, according to
> IMPALA-3916 , the reserved words don't contains it, [the saved sql won't
> quote
> 'ilike'|https://github.com/apache/impala/blob/master/fe/src/main/java/org/apache/impala/analysis/ToSqlUtils.java#L189,
> cauing parser pase error when loading the view in catalogd.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]