drop dataverse test if exists;

create dataverse test;

use dataverse test;

create type OrderType as open {
  oid: int32,
  cid: int32,
  orderstatus: string,
  orderpriority: string,
  clerk: string,
  total: float,
  items: [int32]
}


create external dataset Orders(OrderType)
using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
(("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
        
write output to nc1:"rttest/custord_order_q_03.adm";
      
for $o in dataset('Orders')
let $c1 := [ $o.orderstatus, $o.clerk]
let $c2 := {{ $o.orderstatus, $o.clerk}}
let $c3 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
let $c4 := [$o.heList, $o.openlist, $o.loc, $o.line, $o.poly, $o.lastorder]
return { "orderid": $o.oid, "ordertot":$o.total, "list": $c1, "item1": $c1[0], "item1": $c1[?], "item2": $c1[1], "item3": $c1[2]}
