diff --git a/asterix-app/src/test/resources/optimizerts/queries/query_issue849-2.aql b/asterix-app/src/test/resources/optimizerts/queries/query_issue849-2.aql
new file mode 100644
index 0000000..929c5f1
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/queries/query_issue849-2.aql
@@ -0,0 +1,24 @@
+/*
+ * 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;
+
+insert into dataset s ({ "b" : 1});
+insert into dataset s ({ "b" : 3});
+
+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}
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/optimizerts/queries/query_issue849.aql b/asterix-app/src/test/resources/optimizerts/queries/query_issue849.aql
new file mode 100644
index 0000000..5e45938
--- /dev/null
+++ b/asterix-app/src/test/resources/optimizerts/queries/query_issue849.aql
@@ -0,0 +1,24 @@
+/*
+ * 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;
+
+insert into dataset s ({ "b" : 1});
+insert into dataset s ({ "b" : 3});
+
+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}
\ No newline at end of file
