Reputation: 5706
I have following table in Cassandra (CQL spec 3.3.0 ):-
Users: <a,b,c,d>, Primary key a Int, B: Map<Int,Date>
Where Users table has column names as a,b,c,d
. Now I want to select all the columns for the rows where column b is null
. I did following query:-
select from Users where b = null;
but this fails with error = "message="Invalid null value in condition"
Is there any way to solve it? Or should I select all the columns from all the rows and manually check null programmatically, which of course would be very inefficient for a large database.
Upvotes: 5
Views: 12056
Reputation: 9475
Cassandra doesn't support querying based on null, even for secondary indexes.
You could add another field to your table called something like "uninitialized" as a boolean that you set to true when you first insert the row, and you'd create a secondary index on the "uninitialized" field.
When you set the map to something, you would set "uninitialized" to false. Then to find the rows where the map is null, you'd query for rows where "uninitialized" is true.
Upvotes: 4