[ 
https://issues.apache.org/jira/browse/HIVE-4251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13639120#comment-13639120
 ] 

Steven Willis commented on HIVE-4251:
-------------------------------------

Just tried your patch and it kind of works for me, however I'm running into a 
possibly related problem. I have a table called {{clicks}} that uses the avro 
serde, it has a column called {{url}} which is an avro record containing a 
field called {{domain}}. I'd like to index my {{clicks}} table on 
{{url.domain}} with:
{code}
CREATE INDEX domainIndex
ON TABLE clicks(url.domain)
AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler'
WITH DEFERRED REBUILD;
{code}
And I get:
{code}
FAILED: ParseException line 2:19 mismatched input '.' expecting ) near 'url' in 
create index statement
{code}

I also tried using {{`url`.domain}} and {{`url.domain`}} but those don't work 
either. I then tried making an index on the full {{url}} field. But then I just 
get the following error in the MR job:

{code}
java.lang.RuntimeException: Hash code on complex types not supported yet.
{code}

Any ideas?
                
> Indices can't be built on tables whose schema info comes from SerDe
> -------------------------------------------------------------------
>
>                 Key: HIVE-4251
>                 URL: https://issues.apache.org/jira/browse/HIVE-4251
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 0.10.0, 0.11.0, 0.10.1
>            Reporter: Mark Wagner
>            Assignee: Mark Wagner
>             Fix For: 0.11.0, 0.10.1
>
>         Attachments: HIVE-4251.1.patch, HIVE-4251.2.patch
>
>
> Building indices on tables who get the schema information from the 
> deserializer (e.g. Avro backed tables) doesn't work because when the column 
> is checked to exist, the correct API isn't used.
> {code}
> hive> describe doctors;                                                       
>                
> OK
> # col_name                    data_type               comment             
>                
> number                int                     from deserializer   
> first_name            string                  from deserializer   
> last_name             string                  from deserializer   
> Time taken: 0.215 seconds, Fetched: 5 row(s)
> hive> create index doctors_index on table doctors(number) as 'compact' with 
> deferred rebuild; 
> FAILED: Error in metadata: java.lang.RuntimeException: Check the index 
> columns, they should appear in the table being indexed.
> FAILED: Execution Error, return code 1 from 
> org.apache.hadoop.hive.ql.exec.DDLTask
> {code}

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

Reply via email to