Github user paul-rogers commented on a diff in the pull request:
https://github.com/apache/drill/pull/1164#discussion_r174328025
--- Diff: exec/vector/src/main/codegen/templates/VariableLengthVectors.java
---
@@ -514,6 +516,22 @@ public boolean isNull(int index){
* The equivalent Java primitive is '${minor.javaType!type.javaType}'
*
* NB: this class is automatically generated from ValueVectorTypes.tdd
using FreeMarker.
+ * </p>
+ * <h2>Contract</h2>
--- End diff --
Might be worth summarizing how to use this:
1) Write to values sequentially. Fixed-width vectors allow random access,
but special care is needed.
2) Keep track in client code of the total time count. Call
`setValueCount()` once the vector is full to set the final value. (The vector
does not know its count while a write is in progress.)
3) Either take responsibility for allocating enough memory, or call the
`setSafe()` methods to automatically extend the vector.
4) Once vectors are written, they are immutable; no additional writes of
any kind are allowed to that vector.
---