-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/56546/#review167827
-----------------------------------------------------------




common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
Lines 1207 (patched)
<https://reviews.apache.org/r/56546/#comment239798>

    I think finally I understand the approach you are taking. :)
    
    You are removing the avro literal/url so the avro schemas are inferred from 
the table structure.
    
    For avro table definition, we can define hive schema and/or avro schema and 
we can have both or either of them. If avro schema exists, seems the hive 
schema will be ignored.
    
    I feel the approach to drop literal/url will cause some issues since the 
user could create a table using avro schema. If the avro file generated from 
other tools changes, the users can just update the avro schema itself to 
reflect in hive table. With this patch, it will break such logic.
    
    My suggestion to this fix is: just simply give an error to mention that you 
can't add columns if url/literal is used (such add column operation is 
supported with hive schema and without avro schema), just like replace columns. 
    
    hive> alter table employees_avro replace columns (salary int);
    FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask. Replace columns is not supported for 
table employees_avro. SerDe may be incompatible.
    
    You need to use hive schema rather than avro schema to define the table in 
order to support alter table operations.


- Aihua Xu


On Feb. 22, 2017, 11:48 a.m., Adam Szita wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/56546/
> -----------------------------------------------------------
> 
> (Updated Feb. 22, 2017, 11:48 a.m.)
> 
> 
> Review request for hive, Aihua Xu, Peter Vary, and Sergio Pena.
> 
> 
> Bugs: HIVE-13780
>     https://issues.apache.org/jira/browse/HIVE-13780
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> Allow user to update AVRO table schema via command even if table's definition 
> was defined through schema file / literal in tblproperties
> 
> 
> Diffs
> -----
> 
>   common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 
> 3777fa96ba8eac79e07e454ee437fb05583158c5 
>   ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java 
> adabe70fa8f0fe1b990c6ac578a14ff5af06fc93 
>   ql/src/test/queries/clientnegative/avro_add_column_extschema.q PRE-CREATION 
>   ql/src/test/queries/clientpositive/avro_add_column_extschema.q PRE-CREATION 
>   ql/src/test/results/clientnegative/avro_add_column_extschema.q.out 
> PRE-CREATION 
>   ql/src/test/results/clientpositive/avro_add_column_extschema.q.out 
> PRE-CREATION 
>   serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java 
> f18585da1d108abdd500437362eb388b21030ec7 
> 
> 
> Diff: https://reviews.apache.org/r/56546/diff/2/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Adam Szita
> 
>

Reply via email to