Unfortunately, the queries come from a system that we don't have control. I think we should change the behavior of the CreateView statement to save everything in the comments.
Lars Volker <l...@cloudera.com> 于2018年8月24日周五 上午11:37写道: > 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 >>>> >>>