You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by bu...@apache.org on 2015/10/31 00:16:14 UTC

[06/51] [partial] incubator-asterixdb git commit: SQL++ parser: 1. refactored asterix-aql to become asterix-lang-common and asterix-lang-aql, where the former is the common part for different languages; 2. added asterix-lang-sqlpp on top of asterix-lang-

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_03.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_03.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_03.ast
new file mode 100644
index 0000000..d890e8a
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_03.ast
@@ -0,0 +1,52 @@
+DataverseUse test
+TypeDecl MyRecord [
+  open RecordType {
+    id : int32,
+    kwds : string,
+    line1 : line,
+    line2 : line,
+    poly1 : polygon,
+    poly2 : polygon,
+    rec : rectangle
+  }
+]
+DatasetDecl MyData(MyRecord) partitioned by [[id]]
+WriteOutputTo nc1:rttest/rtree-index-join_spatial-intersect-point_03.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [a]
+    :
+    Variable [ Name=a ]
+  )
+  (
+    LiteralExpr [STRING] [b]
+    :
+    Variable [ Name=b ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [MyData]
+  ]
+  AS
+  Variable [ Name=a ]
+,
+  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [MyData]
+  ]
+  AS
+  Variable [ Name=b ]
+]
+Where
+  FunctionCall test.spatial-intersect@2[
+    FieldAccessor [
+      Variable [ Name=a ]
+      Field=point
+    ]
+    FieldAccessor [
+      Variable [ Name=b ]
+      Field=point
+    ]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_04.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_04.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_04.ast
new file mode 100644
index 0000000..038fc0a
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_04.ast
@@ -0,0 +1,53 @@
+DataverseUse test
+TypeDecl MyRecord [
+  open RecordType {
+    id : int32,
+    kwds : string,
+    line1 : line,
+    line2 : line,
+    poly1 : polygon,
+    poly2 : polygon,
+    rec : rectangle
+  }
+]
+DatasetDecl MyData1(MyRecord) partitioned by [[id]]
+DatasetDecl MyData2(MyRecord) partitioned by [[id]]
+WriteOutputTo nc1:rttest/rtree-index-join_spatial-intersect-point_02.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [a]
+    :
+    Variable [ Name=a ]
+  )
+  (
+    LiteralExpr [STRING] [b]
+    :
+    Variable [ Name=b ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [MyData1]
+  ]
+  AS
+  Variable [ Name=a ]
+,
+  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [MyData2]
+  ]
+  AS
+  Variable [ Name=b ]
+]
+Where
+  FunctionCall test.spatial-intersect@2[
+    FieldAccessor [
+      Variable [ Name=a ]
+      Field=point
+    ]
+    FieldAccessor [
+      Variable [ Name=b ]
+      Field=point
+    ]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_05.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_05.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_05.ast
new file mode 100644
index 0000000..038fc0a
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/open-index-enforced/rtree-index-join/spatial-intersect-point_05.ast
@@ -0,0 +1,53 @@
+DataverseUse test
+TypeDecl MyRecord [
+  open RecordType {
+    id : int32,
+    kwds : string,
+    line1 : line,
+    line2 : line,
+    poly1 : polygon,
+    poly2 : polygon,
+    rec : rectangle
+  }
+]
+DatasetDecl MyData1(MyRecord) partitioned by [[id]]
+DatasetDecl MyData2(MyRecord) partitioned by [[id]]
+WriteOutputTo nc1:rttest/rtree-index-join_spatial-intersect-point_02.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [a]
+    :
+    Variable [ Name=a ]
+  )
+  (
+    LiteralExpr [STRING] [b]
+    :
+    Variable [ Name=b ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [MyData1]
+  ]
+  AS
+  Variable [ Name=a ]
+,
+  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [MyData2]
+  ]
+  AS
+  Variable [ Name=b ]
+]
+Where
+  FunctionCall test.spatial-intersect@2[
+    FieldAccessor [
+      Variable [ Name=a ]
+      Field=point
+    ]
+    FieldAccessor [
+      Variable [ Name=b ]
+      Field=point
+    ]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orderby-desc-using-gby.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orderby-desc-using-gby.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orderby-desc-using-gby.ast
new file mode 100644
index 0000000..e2d5014
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orderby-desc-using-gby.ast
@@ -0,0 +1,62 @@
+DataverseUse gby-using-orderby-desc
+TypeDecl AddressType [
+  closed RecordType {
+    number : int32,
+    street : string,
+    city : string
+  }
+]
+TypeDecl CustomerType [
+  closed RecordType {
+    cid : int32,
+    name : string,
+    age : int32?,
+    address : AddressType?,
+    lastorder :       open RecordType {
+        oid : int32,
+        total : float
+      }
+
+  }
+]
+DatasetDecl Customers(CustomerType) partitioned by [[cid]]
+WriteOutputTo nc1:rttest/gby-using-orderby-desc.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [name]
+    :
+    Variable [ Name=name ]
+  )
+  (
+    LiteralExpr [STRING] [age]
+    :
+    FunctionCall Metadata.dataset@1[
+      LiteralExpr [STRING] [age]
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Customers]
+  ]
+  AS
+  Variable [ Name=c ]
+]
+Groupby
+  Variable [ Name=name ]
+  :=
+  FieldAccessor [
+    Variable [ Name=c ]
+    Field=name
+  ]
+  With
+  Variable [ Name=c ]
+
+Orderby
+  Variable [ Name=name ]
+  DESC
+  Variable [ Name=age ]
+  ASC
+

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-aggreg.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-aggreg.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-aggreg.ast
new file mode 100644
index 0000000..643a8b0
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-aggreg.ast
@@ -0,0 +1,82 @@
+DataverseUse orders-aggreg
+TypeDecl OrderType [
+  closed RecordType {
+    oid : int32,
+    cid : int32,
+    orderstatus : string,
+    orderpriority : string,
+    clerk : string,
+    total : float
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[oid]]
+WriteOutputTo nc1:/tmp/orders-aggreg.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [cid]
+    :
+    Variable [ Name=cid ]
+  )
+  (
+    LiteralExpr [STRING] [ordpercust]
+    :
+    FunctionCall orders-aggreg.count@1[
+      Variable [ Name=o ]
+    ]
+  )
+  (
+    LiteralExpr [STRING] [totalcust]
+    :
+    FunctionCall orders-aggreg.sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=i ]
+          Field=total
+        ]
+        ]
+        FROM [          Variable [ Name=o ]
+          AS
+          Variable [ Name=i ]
+        ]
+      )
+    ]
+  )
+  (
+    LiteralExpr [STRING] [avgcust]
+    :
+    FunctionCall orders-aggreg.avg@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=i ]
+          Field=total
+        ]
+        ]
+        FROM [          Variable [ Name=o ]
+          AS
+          Variable [ Name=i ]
+        ]
+      )
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Groupby
+  Variable [ Name=cid ]
+  :=
+  FieldAccessor [
+    Variable [ Name=o ]
+    Field=cid
+  ]
+  With
+  Variable [ Name=o ]
+

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-composite-index-search.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-composite-index-search.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-composite-index-search.ast
new file mode 100644
index 0000000..ca0be74
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-composite-index-search.ast
@@ -0,0 +1,71 @@
+DataverseUse index_search
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/index_search.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_custkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_orderstatus]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderstatus
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_custkey
+      ]
+      =
+      LiteralExpr [LONG] [40]
+    ]
+    and
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_orderstatus
+      ]
+      =
+      LiteralExpr [STRING] [P]
+    ]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive-open_01.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive-open_01.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive-open_01.ast
new file mode 100644
index 0000000..66d6a4b
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive-open_01.ast
@@ -0,0 +1,70 @@
+DataverseUse tpch
+TypeDecl OrderType [
+  open RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/index_search-conjunctive.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_custkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_custkey
+      ]
+      =
+      LiteralExpr [LONG] [40]
+    ]
+    and
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_totalprice
+      ]
+      >
+      LiteralExpr [DOUBLE] [150000.0]
+    ]
+  ]
+Orderby
+  FieldAccessor [
+    Variable [ Name=o ]
+    Field=o_orderkey
+  ]
+  ASC
+

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive-open_02.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive-open_02.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive-open_02.ast
new file mode 100644
index 0000000..860b0fd
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive-open_02.ast
@@ -0,0 +1,78 @@
+DataverseUse tpch
+TypeDecl OrderType [
+  open RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/index_search-conjunctive.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_custkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_totalprice]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_totalprice
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_custkey
+      ]
+      =
+      LiteralExpr [LONG] [40]
+    ]
+    and
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_totalprice
+      ]
+      >
+      LiteralExpr [DOUBLE] [150000.0]
+    ]
+  ]
+Orderby
+  FieldAccessor [
+    Variable [ Name=o ]
+    Field=o_orderkey
+  ]
+  ASC
+

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive_01.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive_01.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive_01.ast
new file mode 100644
index 0000000..9e4beb4
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive_01.ast
@@ -0,0 +1,70 @@
+DataverseUse tpch
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/index_search-conjunctive.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_custkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_custkey
+      ]
+      =
+      LiteralExpr [LONG] [40]
+    ]
+    and
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_totalprice
+      ]
+      >
+      LiteralExpr [DOUBLE] [150000.0]
+    ]
+  ]
+Orderby
+  FieldAccessor [
+    Variable [ Name=o ]
+    Field=o_orderkey
+  ]
+  ASC
+

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive_02.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive_02.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive_02.ast
new file mode 100644
index 0000000..136f1f8
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-conjunctive_02.ast
@@ -0,0 +1,78 @@
+DataverseUse tpch
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/index_search-conjunctive.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_custkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_totalprice]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_totalprice
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_custkey
+      ]
+      =
+      LiteralExpr [LONG] [40]
+    ]
+    and
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=o ]
+        Field=o_totalprice
+      ]
+      >
+      LiteralExpr [DOUBLE] [150000.0]
+    ]
+  ]
+Orderby
+  FieldAccessor [
+    Variable [ Name=o ]
+    Field=o_orderkey
+  ]
+  ASC
+

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-open.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-open.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-open.ast
new file mode 100644
index 0000000..7eeb2b7
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search-open.ast
@@ -0,0 +1,52 @@
+DataverseUse index_search
+TypeDecl OrderType [
+  open RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/index_search.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_custkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+    =
+    LiteralExpr [LONG] [40]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search.ast
new file mode 100644
index 0000000..31fe195
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/orders-index-search.ast
@@ -0,0 +1,52 @@
+DataverseUse index_search
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/index_search.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_custkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+    =
+    LiteralExpr [LONG] [40]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/prim-idx-search-open.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/prim-idx-search-open.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/prim-idx-search-open.ast
new file mode 100644
index 0000000..4217fa0
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/prim-idx-search-open.ast
@@ -0,0 +1,52 @@
+DataverseUse prim_index_search
+TypeDecl OrderType [
+  open RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/prim_index_search.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_custkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+    =
+    LiteralExpr [LONG] [34]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/prim-idx-search.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/prim-idx-search.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/prim-idx-search.ast
new file mode 100644
index 0000000..6574c68
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/prim-idx-search.ast
@@ -0,0 +1,52 @@
+DataverseUse prim_index_search
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/prim_index_search.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [o_custkey]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_custkey
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderkey
+    ]
+    =
+    LiteralExpr [LONG] [34]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/pull_select_above_eq_join.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/pull_select_above_eq_join.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/pull_select_above_eq_join.ast
new file mode 100644
index 0000000..2f71b8b
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/pull_select_above_eq_join.ast
@@ -0,0 +1,81 @@
+DataverseUse pull-select-above-eq-join
+TypeDecl UserType [
+  open RecordType {
+    uid : int32,
+    name : string,
+    city : string,
+    lottery_numbers : UnorderedList <int32>
+
+  }
+]
+TypeDecl VisitorType [
+  open RecordType {
+    vid : int32,
+    name : string,
+    city : string,
+    lottery_numbers : UnorderedList <int32>
+
+  }
+]
+DatasetDecl Users(UserType) partitioned by [[uid]]
+DatasetDecl Visitors(VisitorType) partitioned by [[vid]]
+WriteOutputTo nc1:/tmp/pull-select-above-eq-join.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [uid]
+    :
+    FieldAccessor [
+      Variable [ Name=user ]
+      Field=uid
+    ]
+  )
+  (
+    LiteralExpr [STRING] [vid]
+    :
+    FieldAccessor [
+      Variable [ Name=visitor ]
+      Field=vid
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Users]
+  ]
+  AS
+  Variable [ Name=user ]
+,
+  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Visitors]
+  ]
+  AS
+  Variable [ Name=visitor ]
+]
+Where
+  OperatorExpr [
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=user ]
+        Field=name
+      ]
+      =
+      FieldAccessor [
+        Variable [ Name=visitor ]
+        Field=name
+      ]
+    ]
+    and
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=user ]
+        Field=city
+      ]
+      !=
+      FieldAccessor [
+        Variable [ Name=visitor ]
+        Field=city
+      ]
+    ]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/push-project-through-group.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/push-project-through-group.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/push-project-through-group.ast
new file mode 100644
index 0000000..45841bd
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/push-project-through-group.ast
@@ -0,0 +1,64 @@
+DataverseUse fuzzyjoin_080
+TypeDecl DBLPType [
+  open RecordType {
+    id : int32,
+    dblpid : string,
+    title : string,
+    authors : string,
+    misc : string
+  }
+]
+DatasetDecl DBLP(DBLPType) partitioned by [[id]]
+WriteOutputTo nc1:rttest/fuzzyjoin_080.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [id]
+    :
+    FieldAccessor [
+      Variable [ Name=paperDBLP ]
+      Field=id
+    ]
+  )
+  (
+    LiteralExpr [STRING] [matches]
+    :
+    Variable [ Name=matches ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [DBLP]
+  ]
+  AS
+  Variable [ Name=paperDBLP ]
+]
+LetVariable [ Name=matches ]
+  :=
+  (
+    SELECT ELEMENT [
+    FieldAccessor [
+      Variable [ Name=paper ]
+      Field=title
+    ]
+    ]
+    FROM [      FunctionCall Metadata.dataset@1[
+        LiteralExpr [STRING] [DBLP]
+      ]
+      AS
+      Variable [ Name=paper ]
+    ]
+    Where
+      OperatorExpr [
+        FieldAccessor [
+          Variable [ Name=paper ]
+          Field=authors
+        ]
+        =
+        FieldAccessor [
+          Variable [ Name=paperDBLP ]
+          Field=authors
+        ]
+      ]
+  )

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/push_limit.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/push_limit.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/push_limit.ast
new file mode 100644
index 0000000..914f997
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/push_limit.ast
@@ -0,0 +1,63 @@
+DataverseUse tpch
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+WriteOutputTo nc1:/tmp/push_limit.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [price]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_totalprice
+    ]
+  )
+  (
+    LiteralExpr [STRING] [date]
+    :
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_orderdate
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+]
+Where
+  OperatorExpr [
+    FieldAccessor [
+      Variable [ Name=o ]
+      Field=o_totalprice
+    ]
+    >
+    LiteralExpr [LONG] [100]
+  ]
+Orderby
+  FieldAccessor [
+    Variable [ Name=o ]
+    Field=o_orderkey
+  ]
+  ASC
+
+Limit
+  LiteralExpr [LONG] [10]
+  Offset
+    LiteralExpr [LONG] [5]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q01_pricing_summary_report_nt.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q01_pricing_summary_report_nt.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q01_pricing_summary_report_nt.ast
new file mode 100644
index 0000000..9ed8f0e
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q01_pricing_summary_report_nt.ast
@@ -0,0 +1,239 @@
+DataverseUse tpch
+TypeDecl LineItemType [
+  closed RecordType {
+    l_orderkey : int32,
+    l_partkey : int32,
+    l_suppkey : int32,
+    l_linenumber : int32,
+    l_quantity : double,
+    l_extendedprice : double,
+    l_discount : double,
+    l_tax : double,
+    l_returnflag : string,
+    l_linestatus : string,
+    l_shipdate : string,
+    l_commitdate : string,
+    l_receiptdate : string,
+    l_shipinstruct : string,
+    l_shipmode : string,
+    l_comment : string
+  }
+]
+DatasetDecl LineItem(LineItemType) partitioned by [[l_orderkey], [l_linenumber]]
+WriteOutputTo nc1:rttest/tpch_q1_pricing_summary_report_nt.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [l_returnflag]
+    :
+    Variable [ Name=l_returnflag ]
+  )
+  (
+    LiteralExpr [STRING] [l_linestatus]
+    :
+    Variable [ Name=l_linestatus ]
+  )
+  (
+    LiteralExpr [STRING] [sum_qty]
+    :
+    FunctionCall tpch.sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=i ]
+          Field=l_quantity
+        ]
+        ]
+        FROM [          Variable [ Name=l ]
+          AS
+          Variable [ Name=i ]
+        ]
+      )
+    ]
+  )
+  (
+    LiteralExpr [STRING] [sum_base_price]
+    :
+    FunctionCall tpch.sum@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=i ]
+          Field=l_extendedprice
+        ]
+        ]
+        FROM [          Variable [ Name=l ]
+          AS
+          Variable [ Name=i ]
+        ]
+      )
+    ]
+  )
+  (
+    LiteralExpr [STRING] [sum_disc_price]
+    :
+    FunctionCall tpch.sum@1[
+      (
+        SELECT ELEMENT [
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=i ]
+            Field=l_extendedprice
+          ]
+          *
+          OperatorExpr [
+            LiteralExpr [LONG] [1]
+            -
+            FieldAccessor [
+              Variable [ Name=i ]
+              Field=l_discount
+            ]
+          ]
+        ]
+        ]
+        FROM [          Variable [ Name=l ]
+          AS
+          Variable [ Name=i ]
+        ]
+      )
+    ]
+  )
+  (
+    LiteralExpr [STRING] [sum_charge]
+    :
+    FunctionCall tpch.sum@1[
+      (
+        SELECT ELEMENT [
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=i ]
+            Field=l_extendedprice
+          ]
+          *
+          OperatorExpr [
+            LiteralExpr [LONG] [1]
+            -
+            FieldAccessor [
+              Variable [ Name=i ]
+              Field=l_discount
+            ]
+          ]
+          *
+          OperatorExpr [
+            LiteralExpr [LONG] [1]
+            +
+            FieldAccessor [
+              Variable [ Name=i ]
+              Field=l_tax
+            ]
+          ]
+        ]
+        ]
+        FROM [          Variable [ Name=l ]
+          AS
+          Variable [ Name=i ]
+        ]
+      )
+    ]
+  )
+  (
+    LiteralExpr [STRING] [ave_qty]
+    :
+    FunctionCall tpch.avg@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=i ]
+          Field=l_quantity
+        ]
+        ]
+        FROM [          Variable [ Name=l ]
+          AS
+          Variable [ Name=i ]
+        ]
+      )
+    ]
+  )
+  (
+    LiteralExpr [STRING] [ave_price]
+    :
+    FunctionCall tpch.avg@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=i ]
+          Field=l_extendedprice
+        ]
+        ]
+        FROM [          Variable [ Name=l ]
+          AS
+          Variable [ Name=i ]
+        ]
+      )
+    ]
+  )
+  (
+    LiteralExpr [STRING] [ave_disc]
+    :
+    FunctionCall tpch.avg@1[
+      (
+        SELECT ELEMENT [
+        FieldAccessor [
+          Variable [ Name=i ]
+          Field=l_discount
+        ]
+        ]
+        FROM [          Variable [ Name=l ]
+          AS
+          Variable [ Name=i ]
+        ]
+      )
+    ]
+  )
+  (
+    LiteralExpr [STRING] [count_order]
+    :
+    FunctionCall tpch.count@1[
+      Variable [ Name=l ]
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [LineItem]
+  ]
+  AS
+  Variable [ Name=l ]
+]
+Where
+  OperatorExpr [
+    FieldAccessor [
+      Variable [ Name=l ]
+      Field=l_shipdate
+    ]
+    <=
+    LiteralExpr [STRING] [1998-09-02]
+  ]
+Groupby
+  Variable [ Name=l_returnflag ]
+  :=
+  FieldAccessor [
+    Variable [ Name=l ]
+    Field=l_returnflag
+  ]
+  Variable [ Name=l_linestatus ]
+  :=
+  FieldAccessor [
+    Variable [ Name=l ]
+    Field=l_linestatus
+  ]
+  With
+  Variable [ Name=l ]
+
+Orderby
+  Variable [ Name=l_returnflag ]
+  ASC
+  Variable [ Name=l_linestatus ]
+  ASC
+

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q03_shipping_priority.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q03_shipping_priority.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q03_shipping_priority.ast
new file mode 100644
index 0000000..81491c0
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q03_shipping_priority.ast
@@ -0,0 +1,209 @@
+DataverseUse q3_shipping_priority
+TypeDecl LineItemType [
+  closed RecordType {
+    l_orderkey : int32,
+    l_partkey : int32,
+    l_suppkey : int32,
+    l_linenumber : int32,
+    l_quantity : double,
+    l_extendedprice : double,
+    l_discount : double,
+    l_tax : double,
+    l_returnflag : string,
+    l_linestatus : string,
+    l_shipdate : string,
+    l_commitdate : string,
+    l_receiptdate : string,
+    l_shipinstruct : string,
+    l_shipmode : string,
+    l_comment : string
+  }
+]
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+TypeDecl CustomerType [
+  closed RecordType {
+    c_custkey : int32,
+    c_name : string,
+    c_address : string,
+    c_nationkey : int32,
+    c_phone : string,
+    c_acctbal : double,
+    c_mktsegment : string,
+    c_comment : string
+  }
+]
+DatasetDecl LineItems(LineItemType) partitioned by [[l_orderkey], [l_linenumber]]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+DatasetDecl Customers(CustomerType) partitioned by [[c_custkey]]
+WriteOutputTo nc1:/tmp/q3_shipping_priority.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [l_orderkey]
+    :
+    Variable [ Name=l_orderkey ]
+  )
+  (
+    LiteralExpr [STRING] [revenue]
+    :
+    Variable [ Name=revenue ]
+  )
+  (
+    LiteralExpr [STRING] [o_orderdate]
+    :
+    Variable [ Name=o_orderdate ]
+  )
+  (
+    LiteralExpr [STRING] [o_shippriority]
+    :
+    Variable [ Name=o_shippriority ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Customers]
+  ]
+  AS
+  Variable [ Name=c ]
+,
+  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Orders]
+  ]
+  AS
+  Variable [ Name=o ]
+,
+  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [LineItems]
+  ]
+  AS
+  Variable [ Name=l ]
+]
+Where
+  OperatorExpr [
+    OperatorExpr [
+      OperatorExpr [
+        FieldAccessor [
+          Variable [ Name=c ]
+          Field=c_mktsegment
+        ]
+        =
+        LiteralExpr [STRING] [BUILDING]
+      ]
+      and
+      OperatorExpr [
+        FieldAccessor [
+          Variable [ Name=c ]
+          Field=c_custkey
+        ]
+        =
+        FieldAccessor [
+          Variable [ Name=o ]
+          Field=o_custkey
+        ]
+      ]
+    ]
+    and
+    OperatorExpr [
+      OperatorExpr [
+        FieldAccessor [
+          Variable [ Name=l ]
+          Field=l_orderkey
+        ]
+        =
+        FieldAccessor [
+          Variable [ Name=o ]
+          Field=o_orderkey
+        ]
+      ]
+      and
+      OperatorExpr [
+        FieldAccessor [
+          Variable [ Name=o ]
+          Field=o_orderdate
+        ]
+        <
+        LiteralExpr [STRING] [1995-03-15]
+      ]
+      and
+      OperatorExpr [
+        FieldAccessor [
+          Variable [ Name=l ]
+          Field=l_shipdate
+        ]
+        >
+        LiteralExpr [STRING] [1995-03-15]
+      ]
+    ]
+  ]
+Groupby
+  Variable [ Name=l_orderkey ]
+  :=
+  FieldAccessor [
+    Variable [ Name=l ]
+    Field=l_orderkey
+  ]
+  Variable [ Name=o_orderdate ]
+  :=
+  FieldAccessor [
+    Variable [ Name=o ]
+    Field=o_orderdate
+  ]
+  Variable [ Name=o_shippriority ]
+  :=
+  FieldAccessor [
+    Variable [ Name=o ]
+    Field=o_shippriority
+  ]
+  With
+  Variable [ Name=c ]
+  Variable [ Name=l ]
+  Variable [ Name=o ]
+
+LetVariable [ Name=revenue ]
+  :=
+  FunctionCall q3_shipping_priority.sum@1[
+    (
+      SELECT ELEMENT [
+      OperatorExpr [
+        FieldAccessor [
+          Variable [ Name=i ]
+          Field=l_extendedprice
+        ]
+        *
+        OperatorExpr [
+          LiteralExpr [LONG] [1]
+          -
+          FieldAccessor [
+            Variable [ Name=i ]
+            Field=l_discount
+          ]
+        ]
+      ]
+      ]
+      FROM [        Variable [ Name=l ]
+        AS
+        Variable [ Name=i ]
+      ]
+    )
+  ]
+Orderby
+  Variable [ Name=revenue ]
+  DESC
+  Variable [ Name=o_orderdate ]
+  ASC
+
+Limit
+  LiteralExpr [LONG] [10]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q05_local_supplier_volume.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q05_local_supplier_volume.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q05_local_supplier_volume.ast
new file mode 100644
index 0000000..0e1f7ee
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q05_local_supplier_volume.ast
@@ -0,0 +1,433 @@
+DataverseUse q5_local_supplier
+TypeDecl LineItemType [
+  closed RecordType {
+    l_orderkey : int32,
+    l_partkey : int32,
+    l_suppkey : int32,
+    l_linenumber : int32,
+    l_quantity : double,
+    l_extendedprice : double,
+    l_discount : double,
+    l_tax : double,
+    l_returnflag : string,
+    l_linestatus : string,
+    l_shipdate : string,
+    l_commitdate : string,
+    l_receiptdate : string,
+    l_shipinstruct : string,
+    l_shipmode : string,
+    l_comment : string
+  }
+]
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+TypeDecl CustomerType [
+  closed RecordType {
+    c_custkey : int32,
+    c_name : string,
+    c_address : string,
+    c_nationkey : int32,
+    c_phone : string,
+    c_acctbal : double,
+    c_mktsegment : string,
+    c_comment : string
+  }
+]
+TypeDecl SupplierType [
+  closed RecordType {
+    s_suppkey : int32,
+    s_name : string,
+    s_address : string,
+    s_nationkey : int32,
+    s_phone : string,
+    s_acctbal : double,
+    s_comment : string
+  }
+]
+TypeDecl NationType [
+  closed RecordType {
+    n_nationkey : int32,
+    n_name : string,
+    n_regionkey : int32,
+    n_comment : string
+  }
+]
+TypeDecl RegionType [
+  closed RecordType {
+    r_regionkey : int32,
+    r_name : string,
+    r_comment : string
+  }
+]
+DatasetDecl LineItems(LineItemType) partitioned by [[l_orderkey], [l_linenumber]]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+DatasetDecl Customers(CustomerType) partitioned by [[c_custkey]]
+DatasetDecl Suppliers(SupplierType) partitioned by [[s_suppkey]]
+DatasetDecl Nations(NationType) partitioned by [[n_nationkey]]
+DatasetDecl Regions(RegionType) partitioned by [[r_regionkey]]
+WriteOutputTo nc1:/tmp/q5_local_supplier.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [n_name]
+    :
+    Variable [ Name=n_name ]
+  )
+  (
+    LiteralExpr [STRING] [revenue]
+    :
+    Variable [ Name=revenue ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Customers]
+  ]
+  AS
+  Variable [ Name=c ]
+,
+  (
+    SELECT ELEMENT [
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [n_name]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=n_name
+        ]
+      )
+      (
+        LiteralExpr [STRING] [l_extendedprice]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=l_extendedprice
+        ]
+      )
+      (
+        LiteralExpr [STRING] [l_discount]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=l_discount
+        ]
+      )
+      (
+        LiteralExpr [STRING] [s_nationkey]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=s_nationkey
+        ]
+      )
+      (
+        LiteralExpr [STRING] [o_custkey]
+        :
+        FieldAccessor [
+          Variable [ Name=o ]
+          Field=o_custkey
+        ]
+      )
+    ]
+    ]
+    FROM [      FunctionCall Metadata.dataset@1[
+        LiteralExpr [STRING] [Orders]
+      ]
+      AS
+      Variable [ Name=o ]
+,
+      (
+        SELECT ELEMENT [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [n_name]
+            :
+            FieldAccessor [
+              Variable [ Name=s1 ]
+              Field=n_name
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_extendedprice]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_extendedprice
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_discount]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_discount
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_orderkey]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_orderkey
+            ]
+          )
+          (
+            LiteralExpr [STRING] [s_nationkey]
+            :
+            FieldAccessor [
+              Variable [ Name=s1 ]
+              Field=s_nationkey
+            ]
+          )
+        ]
+        ]
+        FROM [          FunctionCall Metadata.dataset@1[
+            LiteralExpr [STRING] [LineItems]
+          ]
+          AS
+          Variable [ Name=l ]
+,
+          (
+            SELECT ELEMENT [
+            RecordConstructor [
+              (
+                LiteralExpr [STRING] [n_name]
+                :
+                FieldAccessor [
+                  Variable [ Name=n1 ]
+                  Field=n_name
+                ]
+              )
+              (
+                LiteralExpr [STRING] [s_suppkey]
+                :
+                FieldAccessor [
+                  Variable [ Name=s ]
+                  Field=s_suppkey
+                ]
+              )
+              (
+                LiteralExpr [STRING] [s_nationkey]
+                :
+                FieldAccessor [
+                  Variable [ Name=s ]
+                  Field=s_nationkey
+                ]
+              )
+            ]
+            ]
+            FROM [              FunctionCall Metadata.dataset@1[
+                LiteralExpr [STRING] [Suppliers]
+              ]
+              AS
+              Variable [ Name=s ]
+,
+              (
+                SELECT ELEMENT [
+                RecordConstructor [
+                  (
+                    LiteralExpr [STRING] [n_name]
+                    :
+                    FieldAccessor [
+                      Variable [ Name=n ]
+                      Field=n_name
+                    ]
+                  )
+                  (
+                    LiteralExpr [STRING] [n_nationkey]
+                    :
+                    FieldAccessor [
+                      Variable [ Name=n ]
+                      Field=n_nationkey
+                    ]
+                  )
+                ]
+                ]
+                FROM [                  FunctionCall Metadata.dataset@1[
+                    LiteralExpr [STRING] [Nations]
+                  ]
+                  AS
+                  Variable [ Name=n ]
+,
+                  FunctionCall Metadata.dataset@1[
+                    LiteralExpr [STRING] [Regions]
+                  ]
+                  AS
+                  Variable [ Name=r ]
+                ]
+                Where
+                  OperatorExpr [
+                    OperatorExpr [
+                      FieldAccessor [
+                        Variable [ Name=n ]
+                        Field=n_regionkey
+                      ]
+                      =
+                      FieldAccessor [
+                        Variable [ Name=r ]
+                        Field=r_regionkey
+                      ]
+                    ]
+                    and
+                    OperatorExpr [
+                      FieldAccessor [
+                        Variable [ Name=r ]
+                        Field=r_name
+                      ]
+                      =
+                      LiteralExpr [STRING] [ASIA]
+                    ]
+                  ]
+              )
+              AS
+              Variable [ Name=n1 ]
+            ]
+            Where
+              OperatorExpr [
+                FieldAccessor [
+                  Variable [ Name=s ]
+                  Field=s_nationkey
+                ]
+                =
+                FieldAccessor [
+                  Variable [ Name=n1 ]
+                  Field=n_nationkey
+                ]
+              ]
+          )
+          AS
+          Variable [ Name=s1 ]
+        ]
+        Where
+          OperatorExpr [
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_suppkey
+            ]
+            =
+            FieldAccessor [
+              Variable [ Name=s1 ]
+              Field=s_suppkey
+            ]
+          ]
+      )
+      AS
+      Variable [ Name=l1 ]
+    ]
+    Where
+      OperatorExpr [
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=l1 ]
+            Field=l_orderkey
+          ]
+          =
+          FieldAccessor [
+            Variable [ Name=o ]
+            Field=o_orderkey
+          ]
+        ]
+        and
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=o ]
+            Field=o_orderdate
+          ]
+          >=
+          LiteralExpr [STRING] [1994-01-01]
+        ]
+        and
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=o ]
+            Field=o_orderdate
+          ]
+          <
+          LiteralExpr [STRING] [1995-01-01]
+        ]
+      ]
+  )
+  AS
+  Variable [ Name=o1 ]
+]
+Where
+  OperatorExpr [
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=c ]
+        Field=c_nationkey
+      ]
+      =
+      FieldAccessor [
+        Variable [ Name=o1 ]
+        Field=s_nationkey
+      ]
+    ]
+    and
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=c ]
+        Field=c_custkey
+      ]
+      =
+      FieldAccessor [
+        Variable [ Name=o1 ]
+        Field=o_custkey
+      ]
+    ]
+  ]
+Groupby
+  Variable [ Name=n_name ]
+  :=
+  FieldAccessor [
+    Variable [ Name=o1 ]
+    Field=n_name
+  ]
+  With
+  Variable [ Name=o1 ]
+  Variable [ Name=c ]
+
+LetVariable [ Name=revenue ]
+  :=
+  FunctionCall q5_local_supplier.sum@1[
+    (
+      SELECT ELEMENT [
+      OperatorExpr [
+        FieldAccessor [
+          Variable [ Name=i ]
+          Field=l_extendedprice
+        ]
+        *
+        OperatorExpr [
+          LiteralExpr [LONG] [1]
+          -
+          FieldAccessor [
+            Variable [ Name=i ]
+            Field=l_discount
+          ]
+        ]
+      ]
+      ]
+      FROM [        Variable [ Name=o1 ]
+        AS
+        Variable [ Name=i ]
+      ]
+    )
+  ]
+Orderby
+  Variable [ Name=revenue ]
+  DESC
+

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q08_group_by.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q08_group_by.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q08_group_by.ast
new file mode 100644
index 0000000..0e9337f
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q08_group_by.ast
@@ -0,0 +1,442 @@
+DataverseUse q08_group_by
+TypeDecl LineItemType [
+  closed RecordType {
+    l_orderkey : int32,
+    l_partkey : int32,
+    l_suppkey : int32,
+    l_linenumber : int32,
+    l_quantity : double,
+    l_extendedprice : double,
+    l_discount : double,
+    l_tax : double,
+    l_returnflag : string,
+    l_linestatus : string,
+    l_shipdate : string,
+    l_commitdate : string,
+    l_receiptdate : string,
+    l_shipinstruct : string,
+    l_shipmode : string,
+    l_comment : string
+  }
+]
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+TypeDecl CustomerType [
+  closed RecordType {
+    c_custkey : int32,
+    c_name : string,
+    c_address : string,
+    c_nationkey : int32,
+    c_phone : string,
+    c_acctbal : double,
+    c_mktsegment : string,
+    c_comment : string
+  }
+]
+TypeDecl SupplierType [
+  closed RecordType {
+    s_suppkey : int32,
+    s_name : string,
+    s_address : string,
+    s_nationkey : int32,
+    s_phone : string,
+    s_acctbal : double,
+    s_comment : string
+  }
+]
+TypeDecl NationType [
+  closed RecordType {
+    n_nationkey : int32,
+    n_name : string,
+    n_regionkey : int32,
+    n_comment : string
+  }
+]
+TypeDecl RegionType [
+  closed RecordType {
+    r_regionkey : int32,
+    r_name : string,
+    r_comment : string
+  }
+]
+TypeDecl PartType [
+  closed RecordType {
+    p_partkey : int32,
+    p_name : string,
+    p_mfgr : string,
+    p_brand : string,
+    p_type : string,
+    p_size : int32,
+    p_container : string,
+    p_retailprice : double,
+    p_comment : string
+  }
+]
+DatasetDecl LineItem(LineItemType) partitioned by [[l_orderkey], [l_linenumber]]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+DatasetDecl Customer(CustomerType) partitioned by [[c_custkey]]
+DatasetDecl Supplier(SupplierType) partitioned by [[s_suppkey]]
+DatasetDecl Nation(NationType) partitioned by [[n_nationkey]]
+DatasetDecl Region(RegionType) partitioned by [[r_regionkey]]
+DatasetDecl Part(PartType) partitioned by [[p_partkey]]
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [o_orderdate]
+    :
+    FieldAccessor [
+      Variable [ Name=lnrcop ]
+      Field=o_orderdate
+    ]
+  )
+  (
+    LiteralExpr [STRING] [l_discount]
+    :
+    FieldAccessor [
+      Variable [ Name=lnrcop ]
+      Field=l_discount
+    ]
+  )
+  (
+    LiteralExpr [STRING] [l_extendedprice]
+    :
+    FieldAccessor [
+      Variable [ Name=lnrcop ]
+      Field=l_extendedprice
+    ]
+  )
+  (
+    LiteralExpr [STRING] [l_suppkey]
+    :
+    FieldAccessor [
+      Variable [ Name=lnrcop ]
+      Field=l_suppkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [s_nationkey]
+    :
+    FieldAccessor [
+      Variable [ Name=s ]
+      Field=s_nationkey
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Supplier]
+  ]
+  AS
+  Variable [ Name=s ]
+,
+  (
+    SELECT ELEMENT [
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [o_orderdate]
+        :
+        FieldAccessor [
+          Variable [ Name=lnrco ]
+          Field=o_orderdate
+        ]
+      )
+      (
+        LiteralExpr [STRING] [l_discount]
+        :
+        FieldAccessor [
+          Variable [ Name=lnrco ]
+          Field=l_discount
+        ]
+      )
+      (
+        LiteralExpr [STRING] [l_extendedprice]
+        :
+        FieldAccessor [
+          Variable [ Name=lnrco ]
+          Field=l_extendedprice
+        ]
+      )
+      (
+        LiteralExpr [STRING] [l_suppkey]
+        :
+        FieldAccessor [
+          Variable [ Name=lnrco ]
+          Field=l_suppkey
+        ]
+      )
+    ]
+    ]
+    FROM [      (
+        SELECT ELEMENT [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [o_orderdate]
+            :
+            FieldAccessor [
+              Variable [ Name=nrco ]
+              Field=o_orderdate
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_partkey]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_partkey
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_discount]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_discount
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_extendedprice]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_extendedprice
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_suppkey]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_suppkey
+            ]
+          )
+        ]
+        ]
+        FROM [          FunctionCall Metadata.dataset@1[
+            LiteralExpr [STRING] [LineItem]
+          ]
+          AS
+          Variable [ Name=l ]
+,
+          (
+            SELECT ELEMENT [
+            RecordConstructor [
+              (
+                LiteralExpr [STRING] [o_orderdate]
+                :
+                FieldAccessor [
+                  Variable [ Name=o ]
+                  Field=o_orderdate
+                ]
+              )
+              (
+                LiteralExpr [STRING] [o_orderkey]
+                :
+                FieldAccessor [
+                  Variable [ Name=o ]
+                  Field=o_orderkey
+                ]
+              )
+            ]
+            ]
+            FROM [              FunctionCall Metadata.dataset@1[
+                LiteralExpr [STRING] [Orders]
+              ]
+              AS
+              Variable [ Name=o ]
+,
+              (
+                SELECT ELEMENT [
+                RecordConstructor [
+                  (
+                    LiteralExpr [STRING] [c_custkey]
+                    :
+                    FieldAccessor [
+                      Variable [ Name=c ]
+                      Field=c_custkey
+                    ]
+                  )
+                ]
+                ]
+                FROM [                  FunctionCall Metadata.dataset@1[
+                    LiteralExpr [STRING] [Customer]
+                  ]
+                  AS
+                  Variable [ Name=c ]
+,
+                  (
+                    SELECT ELEMENT [
+                    RecordConstructor [
+                      (
+                        LiteralExpr [STRING] [n_nationkey]
+                        :
+                        FieldAccessor [
+                          Variable [ Name=n1 ]
+                          Field=n_nationkey
+                        ]
+                      )
+                    ]
+                    ]
+                    FROM [                      FunctionCall Metadata.dataset@1[
+                        LiteralExpr [STRING] [Nation]
+                      ]
+                      AS
+                      Variable [ Name=n1 ]
+,
+                      FunctionCall Metadata.dataset@1[
+                        LiteralExpr [STRING] [Region]
+                      ]
+                      AS
+                      Variable [ Name=r1 ]
+                    ]
+                    Where
+                      OperatorExpr [
+                        OperatorExpr [
+                          FieldAccessor [
+                            Variable [ Name=n1 ]
+                            Field=n_regionkey
+                          ]
+                          =
+                          FieldAccessor [
+                            Variable [ Name=r1 ]
+                            Field=r_regionkey
+                          ]
+                        ]
+                        and
+                        OperatorExpr [
+                          FieldAccessor [
+                            Variable [ Name=r1 ]
+                            Field=r_name
+                          ]
+                          =
+                          LiteralExpr [STRING] [AMERICA]
+                        ]
+                      ]
+                  )
+                  AS
+                  Variable [ Name=nr ]
+                ]
+                Where
+                  OperatorExpr [
+                    FieldAccessor [
+                      Variable [ Name=c ]
+                      Field=c_nationkey
+                    ]
+                    =
+                    FieldAccessor [
+                      Variable [ Name=nr ]
+                      Field=n_nationkey
+                    ]
+                  ]
+              )
+              AS
+              Variable [ Name=nrc ]
+            ]
+            Where
+              OperatorExpr [
+                FieldAccessor [
+                  Variable [ Name=nrc ]
+                  Field=c_custkey
+                ]
+                =
+                FieldAccessor [
+                  Variable [ Name=o ]
+                  Field=o_custkey
+                ]
+              ]
+          )
+          AS
+          Variable [ Name=nrco ]
+        ]
+        Where
+          OperatorExpr [
+            OperatorExpr [
+              FieldAccessor [
+                Variable [ Name=l ]
+                Field=l_orderkey
+              ]
+              =
+              FieldAccessor [
+                Variable [ Name=nrco ]
+                Field=o_orderkey
+              ]
+            ]
+            and
+            OperatorExpr [
+              FieldAccessor [
+                Variable [ Name=nrco ]
+                Field=o_orderdate
+              ]
+              >=
+              LiteralExpr [STRING] [1995-01-01]
+            ]
+            and
+            OperatorExpr [
+              FieldAccessor [
+                Variable [ Name=nrco ]
+                Field=o_orderdate
+              ]
+              <=
+              LiteralExpr [STRING] [1996-12-31]
+            ]
+          ]
+      )
+      AS
+      Variable [ Name=lnrco ]
+,
+      FunctionCall Metadata.dataset@1[
+        LiteralExpr [STRING] [Part]
+      ]
+      AS
+      Variable [ Name=p ]
+    ]
+    Where
+      OperatorExpr [
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=p ]
+            Field=p_partkey
+          ]
+          =
+          FieldAccessor [
+            Variable [ Name=lnrco ]
+            Field=l_partkey
+          ]
+        ]
+        and
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=p ]
+            Field=p_type
+          ]
+          =
+          LiteralExpr [STRING] [ECONOMY ANODIZED STEEL]
+        ]
+      ]
+  )
+  AS
+  Variable [ Name=lnrcop ]
+]
+Where
+  OperatorExpr [
+    FieldAccessor [
+      Variable [ Name=s ]
+      Field=s_suppkey
+    ]
+    =
+    FieldAccessor [
+      Variable [ Name=lnrcop ]
+      Field=l_suppkey
+    ]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q09_group_by.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q09_group_by.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q09_group_by.ast
new file mode 100644
index 0000000..8f0e8b8
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q09_group_by.ast
@@ -0,0 +1,412 @@
+DataverseUse q09_group_by
+TypeDecl LineItemType [
+  closed RecordType {
+    l_orderkey : int32,
+    l_partkey : int32,
+    l_suppkey : int32,
+    l_linenumber : int32,
+    l_quantity : int32,
+    l_extendedprice : double,
+    l_discount : double,
+    l_tax : double,
+    l_returnflag : string,
+    l_linestatus : string,
+    l_shipdate : string,
+    l_commitdate : string,
+    l_receiptdate : string,
+    l_shipinstruct : string,
+    l_shipmode : string,
+    l_comment : string
+  }
+]
+TypeDecl OrderType [
+  closed RecordType {
+    o_orderkey : int32,
+    o_custkey : int32,
+    o_orderstatus : string,
+    o_totalprice : double,
+    o_orderdate : string,
+    o_orderpriority : string,
+    o_clerk : string,
+    o_shippriority : int32,
+    o_comment : string
+  }
+]
+TypeDecl CustomerType [
+  closed RecordType {
+    c_custkey : int32,
+    c_name : string,
+    c_address : string,
+    c_nationkey : int32,
+    c_phone : string,
+    c_acctbal : double,
+    c_mktsegment : string,
+    c_comment : string
+  }
+]
+TypeDecl SupplierType [
+  closed RecordType {
+    s_suppkey : int32,
+    s_name : string,
+    s_address : string,
+    s_nationkey : int32,
+    s_phone : string,
+    s_acctbal : double,
+    s_comment : string
+  }
+]
+TypeDecl NationType [
+  closed RecordType {
+    n_nationkey : int32,
+    n_name : string,
+    n_regionkey : int32,
+    n_comment : string
+  }
+]
+TypeDecl RegionType [
+  closed RecordType {
+    r_regionkey : int32,
+    r_name : string,
+    r_comment : string
+  }
+]
+TypeDecl PartType [
+  closed RecordType {
+    p_partkey : int32,
+    p_name : string,
+    p_mfgr : string,
+    p_brand : string,
+    p_type : string,
+    p_size : int32,
+    p_container : string,
+    p_retailprice : double,
+    p_comment : string
+  }
+]
+TypeDecl PartSuppType [
+  closed RecordType {
+    ps_partkey : int32,
+    ps_suppkey : int32,
+    ps_availqty : int32,
+    ps_supplycost : double,
+    ps_comment : string
+  }
+]
+DatasetDecl LineItem(LineItemType) partitioned by [[l_orderkey], [l_linenumber]]
+DatasetDecl Orders(OrderType) partitioned by [[o_orderkey]]
+DatasetDecl Supplier(SupplierType) partitioned by [[s_suppkey]]
+DatasetDecl Region(RegionType) partitioned by [[r_regionkey]]
+DatasetDecl Nation(NationType) partitioned by [[n_nationkey]]
+DatasetDecl Part(PartType) partitioned by [[p_partkey]]
+DatasetDecl Partsupp(PartSuppType) partitioned by [[ps_partkey], [ps_suppkey]]
+DatasetDecl Customer(CustomerType) partitioned by [[c_custkey]]
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [l_extendedprice]
+    :
+    FieldAccessor [
+      Variable [ Name=l2 ]
+      Field=l_extendedprice
+    ]
+  )
+  (
+    LiteralExpr [STRING] [l_discount]
+    :
+    FieldAccessor [
+      Variable [ Name=l2 ]
+      Field=l_discount
+    ]
+  )
+  (
+    LiteralExpr [STRING] [l_quantity]
+    :
+    FieldAccessor [
+      Variable [ Name=l2 ]
+      Field=l_quantity
+    ]
+  )
+  (
+    LiteralExpr [STRING] [l_orderkey]
+    :
+    FieldAccessor [
+      Variable [ Name=l2 ]
+      Field=l_orderkey
+    ]
+  )
+  (
+    LiteralExpr [STRING] [n_name]
+    :
+    FieldAccessor [
+      Variable [ Name=l2 ]
+      Field=n_name
+    ]
+  )
+  (
+    LiteralExpr [STRING] [ps_supplycost]
+    :
+    FieldAccessor [
+      Variable [ Name=l2 ]
+      Field=ps_supplycost
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Part]
+  ]
+  AS
+  Variable [ Name=p ]
+,
+  (
+    SELECT ELEMENT [
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [l_extendedprice]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=l_extendedprice
+        ]
+      )
+      (
+        LiteralExpr [STRING] [l_discount]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=l_discount
+        ]
+      )
+      (
+        LiteralExpr [STRING] [l_quantity]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=l_quantity
+        ]
+      )
+      (
+        LiteralExpr [STRING] [l_partkey]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=l_partkey
+        ]
+      )
+      (
+        LiteralExpr [STRING] [l_orderkey]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=l_orderkey
+        ]
+      )
+      (
+        LiteralExpr [STRING] [n_name]
+        :
+        FieldAccessor [
+          Variable [ Name=l1 ]
+          Field=n_name
+        ]
+      )
+      (
+        LiteralExpr [STRING] [ps_supplycost]
+        :
+        FieldAccessor [
+          Variable [ Name=ps ]
+          Field=ps_supplycost
+        ]
+      )
+    ]
+    ]
+    FROM [      FunctionCall Metadata.dataset@1[
+        LiteralExpr [STRING] [Partsupp]
+      ]
+      AS
+      Variable [ Name=ps ]
+,
+      (
+        SELECT ELEMENT [
+        RecordConstructor [
+          (
+            LiteralExpr [STRING] [l_suppkey]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_suppkey
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_extendedprice]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_extendedprice
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_discount]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_discount
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_quantity]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_quantity
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_partkey]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_partkey
+            ]
+          )
+          (
+            LiteralExpr [STRING] [l_orderkey]
+            :
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_orderkey
+            ]
+          )
+          (
+            LiteralExpr [STRING] [n_name]
+            :
+            FieldAccessor [
+              Variable [ Name=s1 ]
+              Field=n_name
+            ]
+          )
+        ]
+        ]
+        FROM [          (
+            SELECT ELEMENT [
+            RecordConstructor [
+              (
+                LiteralExpr [STRING] [s_suppkey]
+                :
+                FieldAccessor [
+                  Variable [ Name=s ]
+                  Field=s_suppkey
+                ]
+              )
+              (
+                LiteralExpr [STRING] [n_name]
+                :
+                FieldAccessor [
+                  Variable [ Name=n ]
+                  Field=n_name
+                ]
+              )
+            ]
+            ]
+            FROM [              FunctionCall Metadata.dataset@1[
+                LiteralExpr [STRING] [Supplier]
+              ]
+              AS
+              Variable [ Name=s ]
+,
+              FunctionCall Metadata.dataset@1[
+                LiteralExpr [STRING] [Nation]
+              ]
+              AS
+              Variable [ Name=n ]
+            ]
+            Where
+              OperatorExpr [
+                FieldAccessor [
+                  Variable [ Name=n ]
+                  Field=n_nationkey
+                ]
+                =
+                FieldAccessor [
+                  Variable [ Name=s ]
+                  Field=s_nationkey
+                ]
+              ]
+          )
+          AS
+          Variable [ Name=s1 ]
+,
+          FunctionCall Metadata.dataset@1[
+            LiteralExpr [STRING] [LineItem]
+          ]
+          AS
+          Variable [ Name=l ]
+        ]
+        Where
+          OperatorExpr [
+            FieldAccessor [
+              Variable [ Name=s1 ]
+              Field=s_suppkey
+            ]
+            =
+            FieldAccessor [
+              Variable [ Name=l ]
+              Field=l_suppkey
+            ]
+          ]
+      )
+      AS
+      Variable [ Name=l1 ]
+    ]
+    Where
+      OperatorExpr [
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=ps ]
+            Field=ps_suppkey
+          ]
+          =
+          FieldAccessor [
+            Variable [ Name=l1 ]
+            Field=l_suppkey
+          ]
+        ]
+        and
+        OperatorExpr [
+          FieldAccessor [
+            Variable [ Name=ps ]
+            Field=ps_partkey
+          ]
+          =
+          FieldAccessor [
+            Variable [ Name=l1 ]
+            Field=l_partkey
+          ]
+        ]
+      ]
+  )
+  AS
+  Variable [ Name=l2 ]
+]
+Where
+  OperatorExpr [
+    FunctionCall q09_group_by.contains@2[
+      FieldAccessor [
+        Variable [ Name=p ]
+        Field=p_name
+      ]
+      LiteralExpr [STRING] [green]
+    ]
+    and
+    OperatorExpr [
+      FieldAccessor [
+        Variable [ Name=p ]
+        Field=p_partkey
+      ]
+      =
+      FieldAccessor [
+        Variable [ Name=l2 ]
+        Field=l_partkey
+      ]
+    ]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q1.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q1.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q1.ast
new file mode 100644
index 0000000..4c5e744
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q1.ast
@@ -0,0 +1,63 @@
+DataverseUse events
+TypeDecl AddressType [
+  closed RecordType {
+    street : string,
+    city : string,
+    zip : string,
+    latlong : point
+  }
+]
+TypeDecl UserType [
+  open RecordType {
+    name : string,
+    email : string,
+    interests : UnorderedList <string>
+,
+    address : AddressType,
+    member_of : UnorderedList <          open RecordType {
+            sig_name : string,
+            chapter_name : string,
+            member_since : date
+          }
+>
+
+  }
+]
+DatasetDecl User(UserType) partitioned by [[name]]
+WriteOutputTo nc1:/tmp/q1.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [name]
+    :
+    FieldAccessor [
+      Variable [ Name=user ]
+      Field=name
+    ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [User]
+  ]
+  AS
+  Variable [ Name=user ]
+]
+Where
+  QuantifiedExpression SOME [
+    [Variable [ Name=i ]
+    In
+      FieldAccessor [
+        Variable [ Name=user ]
+        Field=interests
+      ]
+    ]
+    Satifies [
+      OperatorExpr [
+        Variable [ Name=i ]
+        =
+        LiteralExpr [STRING] [movies]
+      ]
+    ]
+  ]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q2.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q2.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q2.ast
new file mode 100644
index 0000000..a7bc644
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/q2.ast
@@ -0,0 +1,145 @@
+DataverseUse events
+TypeDecl AddressType [
+  closed RecordType {
+    street : string,
+    city : string,
+    zip : string
+  }
+]
+TypeDecl EventType [
+  closed RecordType {
+    name : string,
+    location : AddressType?,
+    organizers : UnorderedList <          open RecordType {
+            name : string,
+            role : string
+          }
+>
+,
+    sponsoring_sigs : OrderedList [          open RecordType {
+            sig_name : string,
+            chapter_name : string
+          }
+]
+,
+    interest_keywords : UnorderedList <string>
+,
+    price : double?,
+    start_time : datetime,
+    end_time : datetime
+  }
+]
+DatasetDecl Event(EventType) partitioned by [[name]]
+WriteOutputTo nc1:/tmp/q2.adm
+Query:
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [sig_name]
+    :
+    Variable [ Name=sig_name ]
+  )
+  (
+    LiteralExpr [STRING] [total_count]
+    :
+    Variable [ Name=sig_sponsorship_count ]
+  )
+  (
+    LiteralExpr [STRING] [chapter_breakdown]
+    :
+    Variable [ Name=by_chapter ]
+  )
+]
+]
+FROM [  FunctionCall Metadata.dataset@1[
+    LiteralExpr [STRING] [Event]
+  ]
+  AS
+  Variable [ Name=event ]
+,
+  FieldAccessor [
+    Variable [ Name=event ]
+    Field=sponsoring_sigs
+  ]
+  AS
+  Variable [ Name=sponsor ]
+]
+LetVariable [ Name=es ]
+  :=
+  RecordConstructor [
+    (
+      LiteralExpr [STRING] [event]
+      :
+      Variable [ Name=event ]
+    )
+    (
+      LiteralExpr [STRING] [sponsor]
+      :
+      Variable [ Name=sponsor ]
+    )
+  ]
+Groupby
+  Variable [ Name=sig_name ]
+  :=
+  FieldAccessor [
+    Variable [ Name=sponsor ]
+    Field=sig_name
+  ]
+  With
+  Variable [ Name=es ]
+  Variable [ Name=sponsor ]
+  Variable [ Name=event ]
+
+LetVariable [ Name=sig_sponsorship_count ]
+  :=
+  FunctionCall events.count@1[
+    Variable [ Name=es ]
+  ]
+LetVariable [ Name=by_chapter ]
+  :=
+  (
+    SELECT ELEMENT [
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [chapter_name]
+        :
+        Variable [ Name=chapter_name ]
+      )
+      (
+        LiteralExpr [STRING] [escount]
+        :
+        FunctionCall events.count@1[
+          Variable [ Name=e ]
+        ]
+      )
+    ]
+    ]
+    FROM [      Variable [ Name=es ]
+      AS
+      Variable [ Name=e ]
+    ]
+    Groupby
+      Variable [ Name=chapter_name ]
+      :=
+      FieldAccessor [
+        FieldAccessor [
+          Variable [ Name=e ]
+          Field=sponsor
+        ]
+        Field=chapter_name
+      ]
+      With
+      Variable [ Name=e ]
+      Variable [ Name=by_chapter ]
+      Variable [ Name=sig_sponsorship_count ]
+      Variable [ Name=es ]
+      Variable [ Name=sponsor ]
+      Variable [ Name=event ]
+
+  )
+Orderby
+  Variable [ Name=sig_sponsorship_count ]
+  DESC
+
+Limit
+  LiteralExpr [LONG] [5]

http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/391f09e5/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue550.ast
----------------------------------------------------------------------
diff --git a/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue550.ast b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue550.ast
new file mode 100644
index 0000000..416cf4e
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/results_parser_sqlpp/query-issue550.ast
@@ -0,0 +1,186 @@
+Query:
+LetVariable [ Name=sample ]
+  :=
+  UnorderedListConstructor [
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [r]
+        :
+        LiteralExpr [LONG] [1]
+      )
+      (
+        LiteralExpr [STRING] [uid]
+        :
+        LiteralExpr [STRING] [1a2b]
+      )
+      (
+        LiteralExpr [STRING] [t]
+        :
+        FunctionCall null.datetime@1[
+          LiteralExpr [STRING] [2000-01-01T01:00:00]
+        ]
+      )
+      (
+        LiteralExpr [STRING] [event]
+        :
+        LiteralExpr [STRING] [e1]
+      )
+    ]
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [r]
+        :
+        LiteralExpr [LONG] [2]
+      )
+      (
+        LiteralExpr [STRING] [uid]
+        :
+        LiteralExpr [STRING] [1a2b]
+      )
+      (
+        LiteralExpr [STRING] [t]
+        :
+        FunctionCall null.datetime@1[
+          LiteralExpr [STRING] [2000-01-01T01:01:00]
+        ]
+      )
+      (
+        LiteralExpr [STRING] [event]
+        :
+        LiteralExpr [STRING] [e2]
+      )
+    ]
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [r]
+        :
+        LiteralExpr [LONG] [3]
+      )
+      (
+        LiteralExpr [STRING] [uid]
+        :
+        LiteralExpr [STRING] [3c4d]
+      )
+      (
+        LiteralExpr [STRING] [t]
+        :
+        FunctionCall null.datetime@1[
+          LiteralExpr [STRING] [2000-01-01T01:02:00]
+        ]
+      )
+      (
+        LiteralExpr [STRING] [event]
+        :
+        LiteralExpr [STRING] [e1]
+      )
+    ]
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [r]
+        :
+        LiteralExpr [LONG] [4]
+      )
+      (
+        LiteralExpr [STRING] [uid]
+        :
+        LiteralExpr [STRING] [3c4d]
+      )
+      (
+        LiteralExpr [STRING] [t]
+        :
+        FunctionCall null.datetime@1[
+          LiteralExpr [STRING] [2000-01-01T01:03:00]
+        ]
+      )
+      (
+        LiteralExpr [STRING] [event]
+        :
+        LiteralExpr [STRING] [e3]
+      )
+    ]
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [r]
+        :
+        LiteralExpr [LONG] [5]
+      )
+      (
+        LiteralExpr [STRING] [uid]
+        :
+        LiteralExpr [STRING] [1a2b]
+      )
+      (
+        LiteralExpr [STRING] [t]
+        :
+        FunctionCall null.datetime@1[
+          LiteralExpr [STRING] [2000-01-01T01:04:00]
+        ]
+      )
+      (
+        LiteralExpr [STRING] [event]
+        :
+        LiteralExpr [STRING] [e1]
+      )
+    ]
+    RecordConstructor [
+      (
+        LiteralExpr [STRING] [r]
+        :
+        LiteralExpr [LONG] [6]
+      )
+      (
+        LiteralExpr [STRING] [uid]
+        :
+        LiteralExpr [STRING] [1a2b]
+      )
+      (
+        LiteralExpr [STRING] [t]
+        :
+        FunctionCall null.datetime@1[
+          LiteralExpr [STRING] [2000-01-01T01:05:00]
+        ]
+      )
+      (
+        LiteralExpr [STRING] [event]
+        :
+        LiteralExpr [STRING] [e4]
+      )
+    ]
+  ]
+SELECT ELEMENT [
+RecordConstructor [
+  (
+    LiteralExpr [STRING] [u]
+    :
+    Variable [ Name=u ]
+  )
+  (
+    LiteralExpr [STRING] [recs]
+    :
+    (
+      SELECT ELEMENT [
+      Variable [ Name=srec ]
+      ]
+      FROM [        Variable [ Name=s ]
+        AS
+        Variable [ Name=srec ]
+      ]
+    )
+  )
+]
+]
+FROM [  Variable [ Name=sample ]
+  AS
+  Variable [ Name=s ]
+]
+Groupby
+  Variable [ Name=u ]
+  :=
+  FieldAccessor [
+    Variable [ Name=s ]
+    Field=uid
+  ]
+  With
+  Variable [ Name=s ]
+  Variable [ Name=sample ]
+