From 44a86d8f16934135626702874cffe5799535cf81 Mon Sep 17 00:00:00 2001 From: Julien Lopez <julien.lopez@lri.fr> Date: Thu, 1 Mar 2018 10:34:49 +0100 Subject: [PATCH] Add test on side effect with free variables --- .../tests/pgsql/QuerySideEffectWithFreeVars.R | 17 +++++++++++++++++ .../tests/pgsql/QuerySideEffectWithFreeVars.out | 7 +++++++ 2 files changed, 24 insertions(+) create mode 100644 com.oracle.truffle.r.test/tests/pgsql/QuerySideEffectWithFreeVars.R create mode 100644 com.oracle.truffle.r.test/tests/pgsql/QuerySideEffectWithFreeVars.out diff --git a/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffectWithFreeVars.R b/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffectWithFreeVars.R new file mode 100644 index 0000000000..eb9b872a57 --- /dev/null +++ b/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffectWithFreeVars.R @@ -0,0 +1,17 @@ +conv = function (a) a * 89.0 / 100.0 +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){ + a = dol * 89.0 / 100.0 + while (a > 1000.0) a = conv(a) + a + })(x$sal) + 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/QuerySideEffectWithFreeVars.out b/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffectWithFreeVars.out new file mode 100644 index 0000000000..ae30189ca4 --- /dev/null +++ b/com.oracle.truffle.r.test/tests/pgsql/QuerySideEffectWithFreeVars.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 930.9438795980075 +5 ADAMS 11 978.2054933202209 + -- GitLab