I am blocked on getting a test (testComplexQuery3) to work that contains a row of a couple int columns plus a map column where that map contains 2 additional int fields. Rows just containing simple integer fields work. Next step is let a column of the top level row be a map that is a pair of additional fields, and that's failing.
The test fails in the assert here: @Override public void endArrayValue() { assert state == State.IN_ROW; // FAILS HERE WITH State.IDLE for (AbstractObjectWriter writer : writers) { writer.events().endArrayValue(); } } (That is at line 306 of AbstractTupleWriter.java) This recursively calls endArrayValue on the child writers, and the state of the first of these is IDLE, not IN_ROW, so it fails the assert. This must mean I am doing something wrong with the setup/creation of the metadata for the map column (line 193 of DrillDaffodilSchemaVisitor.java) ... and/or creating and populating the data for this map column (line 177 of DaffodilDrillInfosetOutputter.java). Any insights would be helpful. The PR is here: https://github.com/apache/drill/pull/2836 My fork is here: https://github.com/mbeckerle/drill/tree/daffodil-2835 (that's branch daffodil-2835) Note this fork works with the current 3.7.0-SNAPSHOT version of Apache Daffodil, but the features in Daffodil it needs are not yet in an "official" release. On Linux, in daffodil 'sbt publishM2' before rebuilding drill should do it once you have everything installed needed to build daffodil (See BUILD.md in Daffodil). Mike Beckerle Apache Daffodil PMC | daffodil.apache.org OGF DFDL Workgroup Co-Chair | www.ogf.org/ogf/doku.php/standards/dfdl/dfdl Owl Cyber Defense | www.owlcyberdefense.com