done :) On Tue, Jul 21, 2015 at 6:16 PM, Jacques Nadeau <jacq...@dremio.com> wrote:
> Whoa, something strange is going on. > > Expected > select * from dfs.tmp.test2; > +-----------------+ > | dimensions | > +-----------------+ > | {"adults":"A"} | > +-----------------+ > > select p.dimensions as b from dfs.tmp.test2 p; > +-----------------+ > | b | > +-----------------+ > | {"adults":"A"} | > +-----------------+ > > select p.dimensions as b from dfs.tmp.test2 p; > +-----------------+ > | b | > +-----------------+ > | {"adults":"A"} | > +-----------------+ > > select p.dimensions.nonexist as a from dfs.tmp.test2 p; > +-------+ > | b | > +-------+ > | null | > +-------+ > > Unexpected > > select p.dimensions.nonexist as a, p.dimensions as b from dfs.tmp.test2 p; > +----+-------+ > | a | b | > +----+-------+ > | A | null | > +----+-------+ > > <<both wrong>> > > select p.dimensions as b, p.dimensions.nonexist as a from dfs.tmp.test2 p; > +-------+-------+ > | b | a | > +-------+-------+ > | null | null | > +-------+-------+ > > << b is wrong, a is correct>> > > Stefan, not sure what is going on here. It looks like an issue with > resolution of a nonexistent field in a multilevel structure. It exists > whether it is Parquet or JSON. Can you file a JIRA and mark it Critical? > > > On Tue, Jul 21, 2015 at 10:46 AM, Stefán Baxter <ste...@activitystream.com > > > wrote: > > > Hi, > > > > all kidding aside then this renders Drill+Parquet unusable for us at the > > moment. > > > > If there is a quick fix then please let me know. :) > > > > Regards, > > -Stefan > > > > On Tue, Jul 21, 2015 at 5:37 PM, Stefán Baxter < > ste...@activitystream.com> > > wrote: > > > > > Well, > > > > > > After some more testing it appears that this has nothing to do with > trim. > > > (any non existing nested-value will be pushed aside) > > > > > > select p.dimensions.budgetLevel as `field1`, lower(p.dimensions.adults) > > as > > > `field2` from dfs.tmp.`/test/0_0_0.parquet` as p; > > > > > > also returns: > > > +---------+---------+ > > > | field1 | field2 | > > > +---------+---------+ > > > | a | null | > > > +---------+---------+ > > > > > > I just as puzzled though :) > > > > > > Regards, > > > -Stefan > > > > > > On Tue, Jul 21, 2015 at 5:32 PM, Stefán Baxter < > > ste...@activitystream.com> > > > wrote: > > > > > >> Hi, > > >> > > >> Here is small trick I think you will like :). > > >> > > >> - With this minimal dataset as /tmp/test.json: > > >> {"dimensions":{"adults":"A"}} > > >> > > >> - Running this: > > >> select lower(p.dimensions.budgetLevel) as `field1`, > > >> lower(p.dimensions.adults) as `field2` from dfs.tmp.`/test.json` as > > p; > > >> > > >> - To no surprise returns this: > > >> +---------+---------+ > > >> | field1 | field2 | > > >> +---------+---------+ > > >> | null | a | > > >> +---------+---------+ > > >> > > >> Here comes the trick(y) part (hold your breath): > > >> > > >> - With the same data as a Parquet file > > >> CREATE TABLE dfs.tmp.`/test` AS SELECT * FROM dfs.tmp.`/test.json`; > > >> > > >> - The same query: > > >> select lower(p.dimensions.budgetLevel) as `field1`, > > >> lower(p.dimensions.adults) as `field2` from > > dfs.tmp.`/test/0_0_0.parquet` > > >> as p; > > >> > > >> - Return this: > > >> +---------+---------+ > > >> | field1 | field2 | > > >> +---------+---------+ > > >> | a | null | > > >> +---------+---------+ > > >> > > >> ta ta ! > > >> > > >> Best regards, > > >> -Stefan > > >> > > >> > > >> > > >> > > > > > >