Github user jacques-n commented on a diff in the pull request:

    https://github.com/apache/drill/pull/233#discussion_r43777175
  
    --- Diff: exec/java-exec/src/main/codegen/templates/MapWriters.java ---
    @@ -110,9 +110,9 @@ public ListWriter list(String name) {
         FieldWriter writer = fields.get(name.toLowerCase());
         if(writer == null) {
           writer = new SingleListWriter(name, container, this);
    -      writer.setPosition(${index});
           fields.put(name.toLowerCase(), writer);
         }
    +    writer.setPosition(${index});
    --- End diff --
    
    Your change seems to violate the design pattern of the writers. Position is 
managed via the setPosition call at line 152. If you're seeing problems, you 
should figure who isn't calling that method. I believe the code before your 
change is correct: the only reason we should have to reposition a writer when 
we retrieve it is it didn't previously exist and we had to create a new one. 
This is the pattern used across the board for position in the context of all 
the writers. Position is managed externally and only a new field creation 
should cause a location position set.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to