Elliot West created HIVE-19896:
----------------------------------
Summary: Create view stores invalid, mutated version of original
SQL text
Key: HIVE-19896
URL: https://issues.apache.org/jira/browse/HIVE-19896
Project: Hive
Issue Type: Bug
Components: Views
Affects Versions: 2.3.0, 1.2.1
Reporter: Elliot West
We perform additional processing on some of our view definitions and we've
found that in some cases Hive actually stores malformed representations of the
original source SQL text definition of the view. We have examples where the
stored original view text is in fact an unparsable statement. This prevents
later processing of the view (recompiling for column adjustments for example)
and is counter intuitive to the user.
Specifically the failure appears to be focused on the removal of necessary
back-tick quoting from the original text on aliases (but possibly other
identifiers).
h2. Steps to reproduce (formatted for clarity):
Create a view that is subject to malformation:
{code}
hive> create view v as select * from (select 1) as `a.b`;
OK
{code}
View view definition to obtain original text:
{code}
describe extended v;
...
Detailed Table Information Table(
tableName:v,
dbName:default,
viewOriginalText:select * from (select 1) as a.b,
viewExpandedText:select `a.b`.`_c0` from (select 1) as `a.b`,
tableType:VIRTUAL_VIEW)
{code}
Note that {{viewOriginalText}} value does not equal the text supplied on the
first step.
Executing {{viewOriginalText}} results in failure:
{code}
hive> select * from (select 1) as a.b;
NoViableAltException(17@[215:51: ( KW_AS )?])
at org.antlr.runtime.DFA.noViableAlt(DFA.java:158)
...
FAILED: ParseException line 1:29 cannot recognize input near 'as' 'a' '.' in
subquery source
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)