hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prasanth J (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-5272) Column statistics on a invalid column name results in IndexOutOfBoundsException
Date Tue, 24 Sep 2013 23:00:03 GMT

     [ https://issues.apache.org/jira/browse/HIVE-5272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Prasanth J updated HIVE-5272:
-----------------------------

    Attachment: HIVE-5272.2.patch.txt

Added fix for failing negative cli driver tests (columnstats_tbllvl.q and columnstats_tbllvl_incorrect_column.q).
Other failing tests seems to be unrelated to this patch. 
                
> Column statistics on a invalid column name results in IndexOutOfBoundsException
> -------------------------------------------------------------------------------
>
>                 Key: HIVE-5272
>                 URL: https://issues.apache.org/jira/browse/HIVE-5272
>             Project: Hive
>          Issue Type: Bug
>          Components: Statistics
>    Affects Versions: 0.13.0
>            Reporter: Prasanth J
>            Assignee: Prasanth J
>              Labels: statistics
>             Fix For: 0.13.0
>
>         Attachments: HIVE-5272.1.patch.txt, HIVE-5272.2.patch.txt
>
>
> When invalid column name is specified for column statistics IndexOutOfBoundsException
is thrown. 
> {code}hive> analyze table customer_staging compute statistics for columns c_first_name,
invalid_name, c_customer_sk;
> FAILED: IndexOutOfBoundsException Index: 2, Size: 1{code}
> If the invalid column name appears at first or last then INVALID_COLUMN_REFERENCE is
thrown at query planning stage. But if the invalid column name appears somewhere in the middle
of column lists then IndexOutOfBoundsException is thrown at semantic analysis step. The problem
is with getTableColumnType() and getPartitionColumnType() methods. The following segment 
> {code}    for (int i=0; i <numCols; i++) {
>       colName = colNames.get(i);
>       for (FieldSchema col: cols) {
>         if (colName.equalsIgnoreCase(col.getName())) {
>           colTypes.add(i, new String(col.getType()));
>         }
>       }
>     }{code}
> is the reason for it. If the invalid column names appears in the middle of column list
then the equalsIgnoreCase() skips the invalid name and increments the i. Since the list is
not initialized it results in exception. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message