I will file a Jira issue for this problem with a more detailed description.  
https://issues.apache.org/jira/browse/DRILL-6242

I put some solution possibilities in the Jira.  Someone with more knowledge can 
take a look at see if any of the solution approach makes sense first.

Thanks.
 
-- Jiang


On 3/13/18, 9:56 PM, "Kunal Khatua" <ku...@apache.org> wrote:

    Hi Jiang
    
    Thanks for bringing this to our attention.
    
    However, we're not actively developing the Mongo storage plugin at the
    moment, so it might be a while before this is updated.
    
    Do you think you could help with submitting a pull-request against a JIRA
    filed for this? You already appear to have become familiar with the Drill
    codebase, and we're looking to contributions from the community.
    
    
    ~ Kunal
    
    On Tue, Mar 13, 2018 at 3:23 PM, Jiang Wu <jiang...@mulesoft.com> wrote:
    
    > Setup:
    >
    >
    >   1.  Mongodb with this sample data inside:
    >
    > db.test.findOne();
    > {
    >      "_id" : ObjectId("5aa8487d470dd39a635a12f5"),
    >      "name" : "orange",
    >      "context" : {
    >            "time" : ISODate("2018-03-13T21:52:54.940Z"),
    >            "user" : "jack"
    >      }
    > }
    >
    >
    >   1.  Connect with Drill 1.12 and run the query:
    >
    >
    > select t.context.`time` as `time`, t.context from mongo.test.test t;
    >
    > The result is:
    >
    > +------------+---------+
    > | time       | context |
    > +------------+---------+
    > | 2018-03-13 | 
{"time":{"dayOfYear":72,"year":2018,"dayOfMonth":13,"dayOfWeek":2,
    > ... },"user":"jack"} |
    > +------------+---------+
    >
    > Note how the output formatting of the same field “time” is different
    > depending on whether the time is shown as a first level column or as a
    > nested JSON field.  Has anyone seen this behavior?
    >
    > Looking at the source code, it appears that the JSON output is produced
    > from JsonStringHashMap.java:79 (org.apache.drill.exec:vector:1.12.0).
    > This class uses its own ObjectMapper instance to serialize the map.
    >
    > Would it better to add some Mixin’s to the various complex types that may
    > appear inside this JsonStringHashMap?  For example, DateTime object can be
    > serialized using the logical representation, rather than the getters of 
the
    > DataTime class used by Drill.
    >
    > Thanks.
    >
    > -- Jiang
    >
    >
    

Reply via email to