Fix issue849.

Change-Id: I4d2933c94c4139a6c8e2cf15e3cd1f6a52335f6b
Reviewed-on: http://fulliautomatix.ics.uci.edu:8443/217
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Young-Seok Kim <kisskys@gmail.com>
Reviewed-by: Steven Jacobs <sjaco002@ucr.edu>
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849-2/query_issue849-2.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849-2/query_issue849-2.1.ddl.aql
new file mode 100644
index 0000000..3dfda04
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849-2/query_issue849-2.1.ddl.aql
@@ -0,0 +1,14 @@
+/*
+ * Description  : This test case is to verify the fix for issue827
+ * https://code.google.com/p/asterixdb/issues/detail?id=849
+ * Expected Res : SUCCESS
+ * Date         : 2nd Feb. 2015
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type sType as closed{b : int32};
+create dataset s(sType) primary key b;
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849-2/query_issue849-2.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849-2/query_issue849-2.2.update.aql
new file mode 100644
index 0000000..94bcec2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849-2/query_issue849-2.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Description  : This test case is to verify the fix for issue827
+ * https://code.google.com/p/asterixdb/issues/detail?id=849
+ * Expected Res : SUCCESS
+ * Date         : 2nd Feb. 2015
+ */
+
+use dataverse test;
+
+insert into dataset s ({ "b" : 1});
+insert into dataset s ({ "b" : 3});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849-2/query_issue849-2.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849-2/query_issue849-2.3.query.aql
new file mode 100644
index 0000000..6a56624
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849-2/query_issue849-2.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description  : This test case is to verify the fix for issue827
+ * https://code.google.com/p/asterixdb/issues/detail?id=849
+ * Expected Res : SUCCESS
+ * Date         : 2nd Feb. 2015
+ */
+
+use dataverse test;
+
+for $x in dataset s
+for $y in (
+ for $z in {{ {"a":1, "c":1},{"a":2, "c":2},{"a":1, "c":null} }} where $x.b=$z.a
+    return $z.c
+)
+return {"x":$x,"y":$y}
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849/query_issue849.1.ddl.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849/query_issue849.1.ddl.aql
new file mode 100644
index 0000000..3dfda04
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849/query_issue849.1.ddl.aql
@@ -0,0 +1,14 @@
+/*
+ * Description  : This test case is to verify the fix for issue827
+ * https://code.google.com/p/asterixdb/issues/detail?id=849
+ * Expected Res : SUCCESS
+ * Date         : 2nd Feb. 2015
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use dataverse test;
+
+create type sType as closed{b : int32};
+create dataset s(sType) primary key b;
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849/query_issue849.2.update.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849/query_issue849.2.update.aql
new file mode 100644
index 0000000..94bcec2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849/query_issue849.2.update.aql
@@ -0,0 +1,12 @@
+/*
+ * Description  : This test case is to verify the fix for issue827
+ * https://code.google.com/p/asterixdb/issues/detail?id=849
+ * Expected Res : SUCCESS
+ * Date         : 2nd Feb. 2015
+ */
+
+use dataverse test;
+
+insert into dataset s ({ "b" : 1});
+insert into dataset s ({ "b" : 3});
+
diff --git a/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849/query_issue849.3.query.aql b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849/query_issue849.3.query.aql
new file mode 100644
index 0000000..19fb6ca
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/leftouterjoin/query_issue849/query_issue849.3.query.aql
@@ -0,0 +1,15 @@
+/*
+ * Description  : This test case is to verify the fix for issue827
+ * https://code.google.com/p/asterixdb/issues/detail?id=849
+ * Expected Res : SUCCESS
+ * Date         : 2nd Feb. 2015
+ */
+
+use dataverse test;
+
+for $x in {{ {"a":1},{"a":2} }}
+for $y in (
+ for $z in dataset s where $x.a=$z.b
+    return $z.b
+)
+return {"x":$x,"y":$y}
diff --git a/asterix-app/src/test/resources/runtimets/results/leftouterjoin/query_issue849-2/query_issue849-2.1.adm b/asterix-app/src/test/resources/runtimets/results/leftouterjoin/query_issue849-2/query_issue849-2.1.adm
new file mode 100644
index 0000000..1a5a7c0
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/leftouterjoin/query_issue849-2/query_issue849-2.1.adm
@@ -0,0 +1,3 @@
+[ { "x": { "b": 1 }, "y": 1 }
+, { "x": { "b": 1 }, "y": null }
+ ]
diff --git a/asterix-app/src/test/resources/runtimets/results/leftouterjoin/query_issue849/query_issue849.1.adm b/asterix-app/src/test/resources/runtimets/results/leftouterjoin/query_issue849/query_issue849.1.adm
new file mode 100644
index 0000000..ba46ac2
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/leftouterjoin/query_issue849/query_issue849.1.adm
@@ -0,0 +1,2 @@
+[ { "x": { "a": 1 }, "y": 1 }
+ ]
\ 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 06829ad..e5ea4d3 100644
--- a/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -5403,6 +5403,16 @@
                 <output-dir compare="Text">query_issue285-2</output-dir>
             </compilation-unit>
         </test-case>
+        <test-case FilePath="leftouterjoin">
+            <compilation-unit name="query_issue849">
+                <output-dir compare="Text">query_issue849</output-dir>
+            </compilation-unit>
+        </test-case>
+        <test-case FilePath="leftouterjoin">
+            <compilation-unit name="query_issue849-2">
+                <output-dir compare="Text">query_issue849-2</output-dir>
+            </compilation-unit>
+        </test-case>
     </test-group>
     <test-group name="index-leftouterjoin">
         <test-case FilePath="index-leftouterjoin">