Hi Julian
If you really must use "Project" for whichever reason this will project
all fields of donut into output_MAP:
…
{
"op" : "project",
"@id" : 2,
"input" : 1,
"projections" : [ {
"ref" : "output._MAP",
"expr" : "donuts"
} ]
}
…
resulting in:
…
{ "_MAP" : { "id" : "0005", "sales" : 700, "name" : "Apple Fritter", "topping"
: [ { "id" : "5002", "type" : "Glazed" } ], "ppu" : 1.0, "type" : "donut",
"batters" : { "batter" : [ { "id" : "1001", "type" : "Regular" } ] } }
…
HTH.
-david
On Mar 26, 2013, at 3:59 PM, Julian Hyde <[email protected]> wrote:
> I would like to generate a trivial project operator that returns the entire
> input record. What expression should I use?
>
> When implementing "select * from donuts", here is the logical plan I am
> currently generating:
>
> {
> "head" : {
> "type" : "apache_drill_logical_plan",
> "version" : 1,
> "generator" : {
> "type" : "manual",
> "info" : "na"
> }
> },
> "storage" : [ {
> "type" : "classpath",
> "name" : "donuts-json"
> }, {
> "type" : "queue",
> "name" : "queue"
> } ],
> "query" : [ {
> "op" : "scan",
> "@id" : 1,
> "memo" : "initial_scan",
> "storageengine" : "donuts-json",
> "selection" : {
> "path" : "/donuts.json",
> "type" : "JSON"
> },
> "ref" : "donuts"
> }, {
> "op" : "project",
> "@id" : 2,
> "input" : 1,
> "exprs" : [ {
> "ref" : "output._MAP",
> "expr" : null
> } ]
> }, {
> "op" : "store",
> "@id" : 3,
> "memo" : "output sink",
> "input" : 2,
> "target" : {
> "number" : 0
> },
> "partition" : null,
> "storageEngine" : "queue"
> } ]
> }
>
> The
>
> "expr" : null
>
> causes the reference implementation to barf (not surprisingly). What should I
> put in place of "null"?
>
> Julian