checkpoint #1: support offset-based-indexing-unnest
diff --git a/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/base/RuleCollections.java b/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/base/RuleCollections.java
index 70ed7ef..5d52e7c 100644
--- a/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/base/RuleCollections.java
+++ b/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/base/RuleCollections.java
@@ -242,7 +242,7 @@
         physicalRewritesAllLevels.add(new EnforceStructuralPropertiesRule());
         physicalRewritesAllLevels.add(new IntroHashPartitionMergeExchange());
         physicalRewritesAllLevels.add(new SetClosedRecordConstructorsRule());
-        physicalRewritesAllLevels.add(new PullPositionalVariableFromUnnestRule());
+        //physicalRewritesAllLevels.add(new PullPositionalVariableFromUnnestRule());
         physicalRewritesAllLevels.add(new PushProjectDownRule());
         physicalRewritesAllLevels.add(new InsertProjectBeforeUnionRule());
         physicalRewritesAllLevels.add(new IntroduceMaterializationForInsertWithSelfScanRule());
diff --git a/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/rules/UnnestToDataScanRule.java b/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/rules/UnnestToDataScanRule.java
index 642ef22..7ca6e3c 100644
--- a/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/rules/UnnestToDataScanRule.java
+++ b/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/rules/UnnestToDataScanRule.java
@@ -73,6 +73,7 @@
 
             if (fid.equals(AsterixBuiltinFunctions.DATASET)) {
                 if (unnest.getPositionalVariable() != null) {
+                    // TODO remove this after enabling the support of positional variables in data scan
                     throw new AlgebricksException("No positional variables are allowed over datasets.");
                 }
                 ILogicalExpression expr = f.getArguments().get(0).getValue();
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/at01/at01.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/at01/at01.1.ddl.aql
new file mode 100644
index 0000000..03517b5
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/at01/at01.1.ddl.aql
@@ -0,0 +1,25 @@
+/*
+ * Description      :  Test for clause of the position variable in FLWOR expression
+ * Expected Result  :  Success
+ * Date             :  07/18/2013
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type OrderType as closed {
+  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
+}
+
+create dataset Orders(OrderType)
+  primary key o_orderkey;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/at01/at01.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/at01/at01.2.update.aql
new file mode 100644
index 0000000..928fc52
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/at01/at01.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Description      :  Test for clause of the position variable in FLWOR expression
+ * Expected Result  :  Success
+ * Date             :  07/18/2013
+ */
+
+use dataverse test;
+
+load dataset Orders 
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/orders-part1.tbl,
+nc2://data/tpch0.001/orders-part2.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/flwor/at01/at01.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/flwor/at01/at01.3.query.aql
new file mode 100644
index 0000000..13c367f
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/flwor/at01/at01.3.query.aql
@@ -0,0 +1,17 @@
+/*
+ * Description      :  Test for clause of the position variable in FLWOR expression
+ * Expected Result  :  Success
+ * Date             :  07/18/2013
+ */
+
+use dataverse test;
+
+/*
+for $i in dataset('Orders')
+let $i1 := $i.o_orderkey
+let $i2 := $i.o_custkey
+return {"item1": $i1, "item2": $i2}
+*/
+
+for $i at $p in ['a', 'b', 'c', 'd']
+return { "pos": $p, "items": $i }
diff --git a/asterix-app/src/test/resources/runtimets/results/misc/tid_01/tid_01.1.adm b/asterix-app/src/test/resources/runtimets/results/misc/tid_01/tid_01.1.adm
index c55eb7a..5f5fbe7 100644
--- a/asterix-app/src/test/resources/runtimets/results/misc/tid_01/tid_01.1.adm
+++ b/asterix-app/src/test/resources/runtimets/results/misc/tid_01/tid_01.1.adm
@@ -1,3 +1,3 @@
-0
 1
-2
\ No newline at end of file
+2
+3
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/testsuite.xml b/asterix-app/src/test/resources/runtimets/testsuite.xml
index 5c56084..f69698c 100644
--- a/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -13,6 +13,13 @@
  ! limitations under the License.
  !-->
 <test-suite xmlns="urn:xml.testframework.asterix.ics.uci.edu" ResultOffsetPath="results" QueryOffsetPath="queries" QueryFileExtension=".aql">
+  <test-group name="flwor">
+    <test-case FilePath="flwor">
+      <compilation-unit name="at01">
+        <output-dir compare="Text">at01</output-dir>
+      </compilation-unit>
+    </test-case>
+  </test-group>
   <test-group name="aggregate">
     <test-case FilePath="aggregate">
       <compilation-unit name="agg_null">