diff --git a/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffect2.R b/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffect2.R
new file mode 100644
index 0000000000000000000000000000000000000000..cb26c8cc160edc1aef08c202d310dce05aa1a6c5
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffect2.R
@@ -0,0 +1,16 @@
+emp = new.tableRef("emp", "PostgreSQL", "postgre.config", "public")
+minsalary = 2500.0
+q = query.select(function (x) {
+             res = new.env()
+             res$empno = x$empno
+             res$ename = x$ename
+             res$salary = (function (dol, dept){
+               a = dol * 89.0 / 100.0
+               while (a > 500.0 * dept) a = a * 89.0 / 100.0
+               a
+             })(x$sal, x$deptno)
+             res },
+    query.where(function (x) x$sal >= minsalary,
+    query.from(emp)))
+results = query.force(q)
+print(results)
diff --git a/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffect2.out b/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffect2.out
new file mode 100644
index 0000000000000000000000000000000000000000..62a719451bb16a770585bf4db6c147d5384d7a55
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffect2.out
@@ -0,0 +1,7 @@
+  ename empno             salary
+1 SMITH     1  984.1472014255202
+2  WARD     3  908.9094161734163
+3 JONES     4   971.310575818447
+4 SCOTT     8 1483.7593697011998
+5 ADAMS    11 1387.5865368834952
+