[ 
https://issues.apache.org/jira/browse/DRILL-7377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16946373#comment-16946373
 ] 

ASF GitHub Bot commented on DRILL-7377:
---------------------------------------

paul-rogers commented on pull request #1868: DRILL-7377: Nested schemas for 
dynamic EVF columns
URL: https://github.com/apache/drill/pull/1868#discussion_r332301132
 
 

 ##########
 File path: 
exec/vector/src/main/java/org/apache/drill/exec/vector/accessor/writer/AbstractTupleWriter.java
 ##########
 @@ -205,20 +208,29 @@ public int addColumnWriter(AbstractObjectWriter 
colWriter) {
 
   @Override
   public int addColumn(ColumnMetadata column) {
-    if (listener == null) {
-      throw new UnsupportedOperationException("addColumn");
-    }
+    verifyAddColumn(column.name());
     final AbstractObjectWriter colWriter = (AbstractObjectWriter) 
listener.addColumn(this, column);
     return addColumnWriter(colWriter);
   }
 
   @Override
   public int addColumn(MaterializedField field) {
+    verifyAddColumn(field.getName());
+    final AbstractObjectWriter colWriter = (AbstractObjectWriter) 
listener.addColumn(this, field);
 
 Review comment:
   Agreed this is awkward; but it is less awkward than the alternative. The 
idea is that the interfaces provide a clean interface for clients. I tried 
making the change, but then the implementation class, `AbstractObjectWriter` 
starts leaking through in many places. For example, the `getColumn()` method in 
the `TupleWriter` must return `AbstractObjectWriter`.
   
   So, my thought was that the least intrusive solution is to simply cast to 
the implementation type the few places that it is needed rather than expose the 
implementation classes to clients.
 
----------------------------------------------------------------
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:
us...@infra.apache.org


> Can't Create Nested List using EVF with Late Schema
> ---------------------------------------------------
>
>                 Key: DRILL-7377
>                 URL: https://issues.apache.org/jira/browse/DRILL-7377
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.16.0
>            Reporter: Charles Givre
>            Assignee: Paul Rogers
>            Priority: Major
>             Fix For: 1.17.0
>
>
> Looks like the bug is that the code that adds columns on the fly (late 
> schema) skips calling the BuildFromSchema step:
>       at 
> org.apache.drill.exec.physical.resultSet.impl.ColumnBuilder.buildRepeatedList(ColumnBuilder.java:487)
>  ~[classes/:na]
>       at 
> org.apache.drill.exec.physical.resultSet.impl.ColumnBuilder.buildColumn(ColumnBuilder.java:110)
>  ~[classes/:na]
>       at 
> org.apache.drill.exec.physical.resultSet.impl.ContainerState.addColumn(ContainerState.java:93)
>  ~[classes/:na]
>       at 
> org.apache.drill.exec.physical.resultSet.impl.TupleState.addColumn(TupleState.java:505)
>  ~[classes/:na]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to