drop dataverse test if exists;

create dataverse test;

use dataverse test;

create type AddressType as open {
  number: int32, 
  street: string,
  city: string
}

create type CustomerType as open {
  cid: int32, 
  name: string,
  age: int32?,
  address: AddressType?,
  lastorder: {
    oid: int32,
    total: float
  }
}

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

create type CustomerOrdersType as open {
  cid: int32,
  cust: CustomerType,
  orders: [OrderType]
}

create dataset Customers1(CustomerType) 
  partitioned by key cid;
create dataset Orders1(OrderType)
  partitioned by key oid;
create dataset CustomerOrders1(CustomerOrdersType)
  partitioned by key cid;

load dataset Customers1 
using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
(("path"="nc1://data/custord-tiny/customer-tiny.adm"),("format"="adm")) pre-sorted;

load dataset Orders1 
using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
(("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm")) pre-sorted;

// write output to nc1:"rttest/denorm-cust-order_01.adm";

write into dataset CustomerOrders1 (

for $c in dataset('Customers1')
for $o in dataset('Orders1')
where $c.cid = $o.cid and $c.age < 21 and $c.total > 50.0
group by $cid := $c.cid decor $cust := $c with $o
return {"cid":$cid, "cust": $cust, "orders": $o} 

);
