Archives of Support Questions (Read Only)

This is an archived board for historical reference. Information and links may no longer be available or relevant
Announcements
This board is archived and read-only for historical reference. To ask a new question, please post a new topic on the appropriate active board.

Not possible to use IS NULL / IS NOT NULL operator on structs

avatar
Rising Star

It does not seem like the IS NULL / IS NOT NULL operator is supported for struct data types. We are using Impala 2.3.0/CDH5.5.1. This seem like a basic and vital operator to have. Especially when using wide tables. Anybody out there that has a patch or workaround or that actually succeeded to use this operator on structs?

 

I have reported IMPALA-3060 on the topic.

1 ACCEPTED SOLUTION

avatar

Thanks for reporting this issue! I agree that it is an unfortunate limitation.

 

FWIW, this limitation is explained here in the docs here: http://www.cloudera.com/documentation/enterprise/latest/topics/impala_complex_types.html#complex_typ...

 

"Currently, Impala built-in functions and user-defined functions cannot accept complex types as parameters or produce them as function return values"

 

 

 

 

View solution in original post

4 REPLIES 4

avatar

Thanks for reporting this issue! I agree that it is an unfortunate limitation.

 

FWIW, this limitation is explained here in the docs here: http://www.cloudera.com/documentation/enterprise/latest/topics/impala_complex_types.html#complex_typ...

 

"Currently, Impala built-in functions and user-defined functions cannot accept complex types as parameters or produce them as function return values"

 

 

 

 

avatar
Rising Star

Thank you for your prompt reply! I will hold my attempts using this operation.

avatar
Explorer

Is there a solution to this yet ?

I am running into the same issue. I am using a IS NOT NULL clause in the Where condition and it is being ignored and rows with null values in that column are being retured by the query.

avatar
Rising Star
Hi,
 
I have not followed the development of Impala lateley.If this i still a limitation you might try the following approach.Design the schema with an additional column with information about which rows holds information for a particular struct column and then use this additional column in the WHERE clause. Something like:

name      complex1      complex2   complex3
complex1  content       NULL       NULL
complex3  NULL          NULL       content
and then:
 
SELECT complex1.*
FROM myTable
WHERE name = 'complex1'
Br,
Petter