We changed query hints from being interpreted as strings to being parsed properly in commit ce9b332e <https://github.com/apache/impala/commit/ce9b332ee9e640d79c8ae35e7abb8c7d787ddf78#diff-27ff375b57f7fc982be98c4f503cb04dR2385> for IMPALA-4163 <https://issues.apache.org/jira/browse/IMPALA-4163>. Before that change we called String.trim() on the hint which I suspect preserved the ``. After this change we parse it as an IDENT, which likely strips the ``.
I feel that hints are not the right solution to embed a query id into the view definition, but I cannot think of a better one, either. With the current syntax you can write the hint as queryId_abc or queryId(abc) and while you'll get a bunch of warning it seems to work on my end. I also think there's a (unrelated) bug in SelectList.java:87 <https://github.com/apache/impala/blob/64e6719870db5602a6fa85014bc6c264080b9414/fe/src/main/java/org/apache/impala/analysis/SelectList.java#L87>: It should have a continue statement inside the check, or wrap the call to setIsStraightJoin() in an else clause. On Thu, Aug 23, 2018 at 8:19 PM Quanlong Huang <huangquanl...@gmail.com> wrote: > Yeah, the results of CreateView statement is different. We created the > same view by impala-2.5. The difference is that impala-2.12 delete the > quotes in the comment. > > Found the difference in beeline: > > > show create table view_2_12; > > createtab_stmt > > CREATE VIEW `view_2_12` AS SELECT > > -- +queryId=abc > > * FROM test.video_parq > > 3 rows selected (4.518 seconds) > > > > show create table view_2_5; > > createtab_stmt > > CREATE VIEW `view_2_5` AS SELECT > > -- +`queryId=abc` > > * FROM test.video_parq > > 3 rows selected (1.202 seconds) > > view_2_12 is created by impala-2.12, while view_2_5 is created by > impala-2.5. > > Todd Lipcon <t...@cloudera.com> 于2018年8月24日周五 上午10:53写道: > >> I'm curious: can you describe the view using Hive to see what the stored >> query consists of? >> >> On Thu, Aug 23, 2018, 7:44 PM Quanlong Huang <huangquanl...@gmail.com> >> wrote: >> >>> Hi all, >>> >>> After we upgrade Impala from 2.5 to 2.12, we found some queries on views >>> failed. The views contain a query hint which I think is the cause. I >>> can't >>> find anything about such kind of incompatibility was mentioned in >>> >>> https://www.cloudera.com/documentation/enterprise/release-notes/topics/impala_new_features.html >>> or >>> >>> https://www.cloudera.com/documentation/enterprise/release-notes/topics/impala_incompatible_changes.html >>> >>> The error can be reproduced by >>> >>> [impala-shell:21000] > use test; >>> [impala-shell:21000] > create view view_2_12 as select /* >>> +`queryId=abc` */ * from video_parq; >>> Query: create view view_2_12 as select /* +`queryId=abc` */ * from >>> video_parq >>> +------------------------+ >>> | summary | >>> +------------------------+ >>> | View has been created. | >>> +------------------------+ >>> WARNINGS: PLAN hint not recognized: queryId=abc >>> >>> Fetched 1 row(s) in 24.00s >>> [impala-shell:21000] > desc formatted view_2_12; >>> Query: describe formatted view_2_12 >>> ERROR: AnalysisException: Failed to parse view-definition statement of >>> view: test.view_2_12 >>> CAUSED BY: TableLoadingException: Failed to parse view-definition >>> statement of view: test.view_2_12 >>> >>> >>> Since this's an emergency for us, I post an email here for help. I'm also >>> looking into the history of the cup file and looking for a hotfix for >>> this. >>> Thanks if anyone can give some pointers! >>> >>> Thanks, >>> Quanlong >>> >>