drop dataverse test if exists;
create dataverse test;
use dataverse test;

create type MyRecord as closed {
  id: int32,
  point: point,
  kwds: string,
  line1: line,
  line2: line,
  poly1: polygon,
  poly2: polygon,
  rec: rectangle
}

create nodegroup group1  if not exists on nc1, nc2;

create dataset MyData(MyRecord)
  partitioned by key id on group1;

load dataset MyData 
using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
(("path"="nc1://data/spatial/spatialData.json"),("format"="adm")) pre-sorted;

create index rtree_index_point on MyData(point) type rtree;

delete $m from dataset MyData where $m.id>10;

write output to nc1:"rttest/dml_scan-delete-rtree-secondary-index.adm";

for $o in dataset('MyData')
where spatial-intersect($o.point, create-polygon(create-point(0.0,1.0), create-point(0.0,4.0), create-point(12.0,4.0), create-point(12.0,1.0)))
order by $o.id
return {"id":$o.id}
