drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From GitBox <...@apache.org>
Subject [GitHub] [drill] paul-rogers commented on a change in pull request #2026: DRILL-7330: Implement metadata usage for all format plugins
Date Sat, 14 Mar 2020 19:37:15 GMT
paul-rogers commented on a change in pull request #2026: DRILL-7330: Implement metadata usage
for all format plugins
URL: https://github.com/apache/drill/pull/2026#discussion_r392609647
 
 

 ##########
 File path: exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/scan/project/ReaderSchemaOrchestrator.java
 ##########
 @@ -118,9 +135,59 @@ public void endBatch() {
       // Fill in the null and metadata columns.
       populateNonDataColumns();
     }
+    if (projected) {
+      setProjectMetadata(null);
+    }
     rootTuple.setRowCount(tableContainer.getRecordCount());
   }
 
+  /**
+   * Updates {@code PROJECT_METADATA} implicit column value to {@code "FALSE"} to handle
current batch as
+   * a batch with metadata information only for the case when this batch is first and empty.
+   */
+  private boolean resolveProjectingMetadata() {
+    if (tableContainer.getRecordCount() == 0 && !hasSchema() && eof) {
+      if (setProjectMetadata(Boolean.FALSE.toString())) {
+        tableContainer.setValueCount(tableContainer.getRecordCount() + 1);
+        return true;
+      }
+    }
+    return false;
+  }
+
+  /**
+   * Sets {@code PROJECT_METADATA} implicit column value.
+   *
+   * @param value value to set
+   * @return {@code true} if {@code PROJECT_METADATA} implicit column
+   * is present in scan projection and its value is updated
+   */
+  private boolean setProjectMetadata(String value) {
 
 Review comment:
   I suspect I'll need to help with this. The design in this present mechanism is that you'd
add a "metadata" (should be "implicit") column parser that will look for, or insert, the target
column. You'd then add a mechanism to populate the resulting vector using the `ResultSetLoader`.
See `MetadataManager` (which should be renamed to avoid confusion with your "real" metadata.)
Then, a generic merge mechanism combines the reader data, file implicit columns, missing (null)
columns, and your new implicit column.
   
   As it turns out, this is exactly the bit that I'm slightly revising at the moment. (The
current design works, and did make explicit what the original code was trying to do, but ended
up being a bit overly complex itself.) Still we can get your PR to work with the existing
mechanism, then I can adjust this code as needed in my revision.

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

Mime
View raw message