The use of clear flag at ValueVector#getBuffers(clear) seems very
inconsistent to me.

Because the implementation does not truly "clear" the vector when the flag
is set but instead
(i) L74: increments the ref count first
(ii) L79: decrements the ref count and replaces the underlying buffer later.

My expectation was a "complete clear" at this point. So what was the
intended use of the flag? Would not it be nicer if we separated returning
buffers from clearing vectors/buffers entirely?


[1]:
https://github.com/apache/drill/blob/master/exec/java-exec/src/main/java/org/apache/drill/exec/vector/BaseDataValueVector.java#L67


Thanks.
-Hanifi

Reply via email to