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

Ship it!


Ship It!

- Ashutosh Chauhan


On Nov. 14, 2014, 12:03 a.m., Venki Korukanti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14890/
> -----------------------------------------------------------
> 
> (Updated Nov. 14, 2014, 12:03 a.m.)
> 
> 
> Review request for hive, Ashutosh Chauhan and Thejas Nair.
> 
> 
> Bugs: HIVE-5631
>     https://issues.apache.org/jira/browse/HIVE-5631
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> Repro steps:
> CREATE DATABASE skewtest;
> USE skewtest;
> CREATE TABLE skew (id bigint, acct string) SKEWED BY (acct) ON ('CC','CH');
> CREATE INDEX skew_indx ON TABLE skew (id) as 
> 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' WITH DEFERRED 
> REBUILD;
> 
> Last DDL fails with following error.
> FAILED: Execution Error, return code 1 from 
> org.apache.hadoop.hive.ql.exec.DDLTask. 
> InvalidObjectException(message:Invalid skew column [acct])
> 
> When creating a table, Hive has sanity tests to make sure the columns have 
> proper names and the skewed columns are subset of the table columns. Here we 
> fail because index table has skewed column info. Index tables's skewed 
> columns include {acct} and the columns are {id, _bucketname, _offsets}. As 
> the skewed column {acct} is not part of the table columns Hive throws the 
> exception. 
> 
> The reason why Index table got skewed column info even though its definition 
> has no such info is: When creating the index table a deep copy of the base 
> table's StorageDescriptor (SD) (in this case 'skew') is made. And in that 
> copied SD, index specific parameters are set and unrelated parameters are 
> reset. Here skewed column info is not reset (there are few other params that 
> are not reset). That's why the index table contains the skewed column info.
> 
> Fix: Instead of deep copying the base table StorageDescriptor, create a new 
> one from gathered info. This way it avoids the index table to inherit 
> unnecessary properties in SD from base table.
> 
> 
> Diffs
> -----
> 
>   ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java b900627 
>   ql/src/test/queries/clientpositive/index_skewtable.q PRE-CREATION 
>   ql/src/test/results/clientpositive/index_skewtable.q.out PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/14890/diff/
> 
> 
> Testing
> -------
> 
> Added unittest and ran the index related unittest queries
> 
> 
> Thanks,
> 
> Venki Korukanti
> 
>

Reply via email to