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

Reply via email to