walterddr commented on code in PR #9782:
URL: https://github.com/apache/pinot/pull/9782#discussion_r1023369641


##########
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/LeafStageTransferableBlockOperator.java:
##########
@@ -0,0 +1,120 @@
+package org.apache.pinot.query.runtime.operator;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.PriorityQueue;
+import javax.annotation.Nullable;
+import org.apache.pinot.common.datablock.DataBlock;
+import org.apache.pinot.common.datablock.DataBlockUtils;
+import org.apache.pinot.common.datablock.MetadataBlock;
+import org.apache.pinot.common.datatable.DataTable;
+import org.apache.pinot.common.utils.DataSchema;
+import org.apache.pinot.core.common.Operator;
+import org.apache.pinot.core.operator.BaseOperator;
+import org.apache.pinot.core.operator.blocks.InstanceResponseBlock;
+import org.apache.pinot.core.operator.blocks.results.BaseResultsBlock;
+import org.apache.pinot.query.runtime.blocks.TransferableBlock;
+
+
+/**
+ * Leaf-stage transfer block operator is used to wrap around the leaf stage 
process results. They are passed to the
+ * Pinot server to execute query thus only one {@link DataTable} were 
returned. However, to conform with the
+ * intermediate stage operators. an additional {@link MetadataBlock} needs to 
be transfer after the data block.
+ *
+ * <p>In order to achieve this:
+ * <ul>
+ *   <li>The leaf-stage result is split into data payload block and metadata 
payload block.</li>
+ *   <li>In case the leaf-stage result contains error or only metadata, we 
skip the data payload block.</li>
+ *   <li>Leaf-stage result blocks are in the {@link 
DataSchema.ColumnDataType#getStoredColumnDataTypes()} format
+ *       thus requires canonicalization.</li>

Review Comment:
   since we move leaf stage canonicalization out. we
   1. no longer need to add test to TransferableBlockUtils for this handling
   2. no longer need to test under splitBlock conditions
   3. no longer need to handle in-place updates
   
   the drawback is we create one additional list. but we will remove this class 
once we conform with the desired schema anyway.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to