In Drill's run-time generated code, if an expression's output type is of nullable, the run-time will call setSafe() only when the output value is not null. When the output value is null, there is no check at all. However, the value vector may not hold any additional null value, because its offset value vector may run out of space. The missing checking will cause the run-time code to continue to add null value to the nullable value vector, and could hit IOBE in down stream operator.
In stead, we should add a new method to all nullable value vector, to make sure it still has capacity to hold new value in the run-time code.