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
>>>
>>

Reply via email to