IS NULL and IS NOT NULL predicates
I'm not sure if this is a bug or expected behavior... I was testing some queries in a columnstore table of 3B rows where a column named string_val is nearly always null. When doing a query for "IS NOT NULL" i see no partition blocks were eliminated using calGetTrace(). I assume this is because the information_schema.COLUMNSTORE_EXTENTS table does not know which blocks contain a null, just the min and max?
The way column store works I'm not going to take a big space hit if I change the column to not null default '', is that correct?
Answer Answered by David Thompson in this comment.
Yes, also the extent elimination generally works best for columns that are ascending over time like surrogate ids and date columns. We don't currently do any sort of user defined partition or sorting of the data to support other types of columns.
On your last question, no but be aware of the above and the fact that we don't currently distinguish empty string from null.