Github user sachouche commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1060#discussion_r161039122
  
    --- Diff: exec/vector/src/main/codegen/templates/FixedValueVectors.java ---
    @@ -874,6 +880,46 @@ public void setSafe(int index, BigDecimal value) {
           set(index, value);
         }
     
    +    /**
    +     * Copies the bulk input into this value vector and extends its 
capacity if necessary.
    +     * @param input bulk input
    +     */
    +    public <T extends VLBulkEntry> void setSafe(VLBulkInput<T> input) {
    +      setSafe(input, null);
    +    }
    +
    +    /**
    +     * Copies the bulk input into this value vector and extends its 
capacity if necessary. The callback
    +     * mechanism allows decoration as caller is invoked for each bulk 
entry.
    +     *
    +     * @param input bulk input
    +     * @param callback a bulk input callback object (optional)
    +     */
    +    public <T extends VLBulkEntry> void setSafe(VLBulkInput<T> input, 
VLBulkInput.BulkInputCallback<T> callback) {
    --- End diff --
    
    This code is not Parquet specific. Instead, it can be triggered by any 
Reader which desires to load data in a bulk fashion. Vectors currently expose 
Mutator APIs for loading single values; I see no good reason which prevent us 
from passing bulk values instead of a single one at a time which prevent us 
from code optimization. Look at ByBuffer APIs they allow you to pass single 
byte values but also byte arrays.


---

Reply via email to