[ 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)