I have been thinking about this for a while now, and I feel it would be a
good idea to remove the Required vector types from Drill, and only use the
Nullable version of vectors. I think this will greatly simplify the code.
It will also simplify the creation of UDFs. As is, if a function has custom
null handling (i.e. INTERNAL), the function has to be separately
implemented for each permutation of nullability of the inputs. But if drill
data types are always nullable, this wouldn't be a problem.

I don't think there would be much impact on performance. In practice, I
think the required type is used very rarely. And there are other ways we
can optimize for when a column is known to have no nulls.

Thoughts?

Reply via email to