From 531db63ac8818a31caa31fafd578ddb6b653987d Mon Sep 17 00:00:00 2001
From: Julien Lopez <julien.lopez@lri.fr>
Date: Wed, 22 Nov 2017 13:52:51 +0100
Subject: [PATCH] Add tests between databases

---
 com.oracle.truffle.r.engine/hive.config       |  5 ++++
 com.oracle.truffle.r.test/hive.config         |  5 ++++
 com.oracle.truffle.r.test/tests/HBASE-HBASE.R | 25 +++++++++++++++++++
 .../tests/HBASE-HBASE.out                     | 18 +++++++++++++
 com.oracle.truffle.r.test/tests/HBASE-HIVE.R  | 25 +++++++++++++++++++
 .../tests/HBASE-HIVE.out                      | 18 +++++++++++++
 com.oracle.truffle.r.test/tests/HBASE-PGSQL.R | 25 +++++++++++++++++++
 .../tests/HBASE-PGSQL.out                     | 18 +++++++++++++
 com.oracle.truffle.r.test/tests/HIVE-HBASE.R  | 25 +++++++++++++++++++
 .../tests/HIVE-HBASE.out                      | 18 +++++++++++++
 com.oracle.truffle.r.test/tests/HIVE-HIVE.R   | 25 +++++++++++++++++++
 com.oracle.truffle.r.test/tests/HIVE-HIVE.out | 18 +++++++++++++
 com.oracle.truffle.r.test/tests/HIVE-PGSQL.R  | 25 +++++++++++++++++++
 .../tests/HIVE-PGSQL.out                      | 18 +++++++++++++
 com.oracle.truffle.r.test/tests/PGSQL-HBASE.R | 25 +++++++++++++++++++
 .../tests/PGSQL-HBASE.out                     | 18 +++++++++++++
 com.oracle.truffle.r.test/tests/PGSQL-HIVE.R  | 25 +++++++++++++++++++
 .../tests/PGSQL-HIVE.out                      | 18 +++++++++++++
 com.oracle.truffle.r.test/tests/PGSQL-PGSQL.R | 25 +++++++++++++++++++
 .../tests/PGSQL-PGSQL.out                     | 18 +++++++++++++
 20 files changed, 397 insertions(+)
 create mode 100644 com.oracle.truffle.r.engine/hive.config
 create mode 100644 com.oracle.truffle.r.test/hive.config
 create mode 100644 com.oracle.truffle.r.test/tests/HBASE-HBASE.R
 create mode 100644 com.oracle.truffle.r.test/tests/HBASE-HBASE.out
 create mode 100644 com.oracle.truffle.r.test/tests/HBASE-HIVE.R
 create mode 100644 com.oracle.truffle.r.test/tests/HBASE-HIVE.out
 create mode 100644 com.oracle.truffle.r.test/tests/HBASE-PGSQL.R
 create mode 100644 com.oracle.truffle.r.test/tests/HBASE-PGSQL.out
 create mode 100644 com.oracle.truffle.r.test/tests/HIVE-HBASE.R
 create mode 100644 com.oracle.truffle.r.test/tests/HIVE-HBASE.out
 create mode 100644 com.oracle.truffle.r.test/tests/HIVE-HIVE.R
 create mode 100644 com.oracle.truffle.r.test/tests/HIVE-HIVE.out
 create mode 100644 com.oracle.truffle.r.test/tests/HIVE-PGSQL.R
 create mode 100644 com.oracle.truffle.r.test/tests/HIVE-PGSQL.out
 create mode 100644 com.oracle.truffle.r.test/tests/PGSQL-HBASE.R
 create mode 100644 com.oracle.truffle.r.test/tests/PGSQL-HBASE.out
 create mode 100644 com.oracle.truffle.r.test/tests/PGSQL-HIVE.R
 create mode 100644 com.oracle.truffle.r.test/tests/PGSQL-HIVE.out
 create mode 100644 com.oracle.truffle.r.test/tests/PGSQL-PGSQL.R
 create mode 100644 com.oracle.truffle.r.test/tests/PGSQL-PGSQL.out

diff --git a/com.oracle.truffle.r.engine/hive.config b/com.oracle.truffle.r.engine/hive.config
new file mode 100644
index 0000000000..07e9cbd1e1
--- /dev/null
+++ b/com.oracle.truffle.r.engine/hive.config
@@ -0,0 +1,5 @@
+host = localhost
+sid = default
+port = 10000
+user = julien
+passwd = Pa$$w0rd
diff --git a/com.oracle.truffle.r.test/hive.config b/com.oracle.truffle.r.test/hive.config
new file mode 100644
index 0000000000..07e9cbd1e1
--- /dev/null
+++ b/com.oracle.truffle.r.test/hive.config
@@ -0,0 +1,5 @@
+host = localhost
+sid = default
+port = 10000
+user = julien
+passwd = Pa$$w0rd
diff --git a/com.oracle.truffle.r.test/tests/HBASE-HBASE.R b/com.oracle.truffle.r.test/tests/HBASE-HBASE.R
new file mode 100644
index 0000000000..11964ee70e
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HBASE-HBASE.R
@@ -0,0 +1,25 @@
+# Returns the exchange rate between rfrom and rto
+getRate = function(rfrom, rto)
+{
+  change = new.tableRef("change", "HBase", "hbase-site.xml", "default")
+  rate = query.force(query.where(function (r) r$cfrom == rfrom && r$cto == rto,
+                     query.from(change)))
+  if (rfrom == rto) 1.0 else rate$change
+}
+
+# Returns the names of employees earning at least minSalary in the curr
+# currency
+atLeast = function(minSalary, curr)
+{
+  emp = new.tableRef("emp", "HBase", "hbase-site.xml", "default")
+  query.select(function (e) { r = new.env()
+                        r$name = e$ename
+                        r },
+  query.where(function (e) e$sal >= minSalary * getRate("USD", curr),
+  query.from(emp)))
+}
+
+richUSPeople = atLeast(2000.0, "USD")
+richEURPeople = atLeast(2000.0, "EUR")
+print(query.force(richUSPeople))
+print(query.force(richEURPeople))
diff --git a/com.oracle.truffle.r.test/tests/HBASE-HBASE.out b/com.oracle.truffle.r.test/tests/HBASE-HBASE.out
new file mode 100644
index 0000000000..ea36bce72b
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HBASE-HBASE.out
@@ -0,0 +1,18 @@
+    name
+1  SMITH
+2  ADAMS
+3 MILLER
+4  ALLEN
+5   WARD
+6  JONES
+7  SCOTT
+    name
+1  SMITH
+2  ADAMS
+3   FORD
+4 MILLER
+5  ALLEN
+6   WARD
+7  JONES
+8  SCOTT
+
diff --git a/com.oracle.truffle.r.test/tests/HBASE-HIVE.R b/com.oracle.truffle.r.test/tests/HBASE-HIVE.R
new file mode 100644
index 0000000000..dc42626335
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HBASE-HIVE.R
@@ -0,0 +1,25 @@
+# Returns the exchange rate between rfrom and rto
+getRate = function(rfrom, rto)
+{
+  change = new.tableRef("change", "Hive", "hive.config", "main")
+  rate = query.force(query.where(function (r) r$cfrom == rfrom && r$cto == rto,
+                     query.from(change)))
+  if (rfrom == rto) 1.0 else rate$change
+}
+
+# Returns the names of employees earning at least minSalary in the curr
+# currency
+atLeast = function(minSalary, curr)
+{
+  emp = new.tableRef("emp", "HBase", "hbase-site.xml", "default")
+  query.select(function (e) { r = new.env()
+                        r$name = e$ename
+                        r },
+  query.where(function (e) e$sal >= minSalary * getRate("USD", curr),
+  query.from(emp)))
+}
+
+richUSPeople = atLeast(2000.0, "USD")
+richEURPeople = atLeast(2000.0, "EUR")
+print(query.force(richUSPeople))
+print(query.force(richEURPeople))
diff --git a/com.oracle.truffle.r.test/tests/HBASE-HIVE.out b/com.oracle.truffle.r.test/tests/HBASE-HIVE.out
new file mode 100644
index 0000000000..ea36bce72b
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HBASE-HIVE.out
@@ -0,0 +1,18 @@
+    name
+1  SMITH
+2  ADAMS
+3 MILLER
+4  ALLEN
+5   WARD
+6  JONES
+7  SCOTT
+    name
+1  SMITH
+2  ADAMS
+3   FORD
+4 MILLER
+5  ALLEN
+6   WARD
+7  JONES
+8  SCOTT
+
diff --git a/com.oracle.truffle.r.test/tests/HBASE-PGSQL.R b/com.oracle.truffle.r.test/tests/HBASE-PGSQL.R
new file mode 100644
index 0000000000..629712b79c
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HBASE-PGSQL.R
@@ -0,0 +1,25 @@
+# Returns the exchange rate between rfrom and rto
+getRate = function(rfrom, rto)
+{
+  change = new.tableRef("change", "PostgreSQL", "postgre.config", "public")
+  rate = query.force(query.where(function (r) r$cfrom == rfrom && r$cto == rto,
+                     query.from(change)))
+  if (rfrom == rto) 1.0 else rate$change
+}
+
+# Returns the names of employees earning at least minSalary in the curr
+# currency
+atLeast = function(minSalary, curr)
+{
+  emp = new.tableRef("emp", "HBase", "hbase-site.xml", "default")
+  query.select(function (e) { r = new.env()
+                        r$name = e$ename
+                        r },
+  query.where(function (e) e$sal >= minSalary * getRate("USD", curr),
+  query.from(emp)))
+}
+
+richUSPeople = atLeast(2000.0, "USD")
+richEURPeople = atLeast(2000.0, "EUR")
+print(query.force(richUSPeople))
+print(query.force(richEURPeople))
diff --git a/com.oracle.truffle.r.test/tests/HBASE-PGSQL.out b/com.oracle.truffle.r.test/tests/HBASE-PGSQL.out
new file mode 100644
index 0000000000..ea36bce72b
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HBASE-PGSQL.out
@@ -0,0 +1,18 @@
+    name
+1  SMITH
+2  ADAMS
+3 MILLER
+4  ALLEN
+5   WARD
+6  JONES
+7  SCOTT
+    name
+1  SMITH
+2  ADAMS
+3   FORD
+4 MILLER
+5  ALLEN
+6   WARD
+7  JONES
+8  SCOTT
+
diff --git a/com.oracle.truffle.r.test/tests/HIVE-HBASE.R b/com.oracle.truffle.r.test/tests/HIVE-HBASE.R
new file mode 100644
index 0000000000..9c96c49395
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HIVE-HBASE.R
@@ -0,0 +1,25 @@
+# Returns the exchange rate between rfrom and rto
+getRate = function(rfrom, rto)
+{
+  change = new.tableRef("change", "HBase", "hbase-site.xml", "default")
+  rate = query.force(query.where(function (r) r$cfrom == rfrom && r$cto == rto,
+                     query.from(change)))
+  if (rfrom == rto) 1.0 else rate$change
+}
+
+# Returns the names of employees earning at least minSalary in the curr
+# currency
+atLeast = function(minSalary, curr)
+{
+  emp = new.tableRef("emp", "Hive", "hive.config", "main")
+  query.select(function (e) { r = new.env()
+                        r$name = e$ename
+                        r },
+  query.where(function (e) e$sal >= minSalary * getRate("USD", curr),
+  query.from(emp)))
+}
+
+richUSPeople = atLeast(2000.0, "USD")
+richEURPeople = atLeast(2000.0, "EUR")
+print(query.force(richUSPeople))
+print(query.force(richEURPeople))
diff --git a/com.oracle.truffle.r.test/tests/HIVE-HBASE.out b/com.oracle.truffle.r.test/tests/HIVE-HBASE.out
new file mode 100644
index 0000000000..53da7150c8
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HIVE-HBASE.out
@@ -0,0 +1,18 @@
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7 MILLER
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7   FORD
+8 MILLER
+
diff --git a/com.oracle.truffle.r.test/tests/HIVE-HIVE.R b/com.oracle.truffle.r.test/tests/HIVE-HIVE.R
new file mode 100644
index 0000000000..fc709f98e5
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HIVE-HIVE.R
@@ -0,0 +1,25 @@
+# Returns the exchange rate between rfrom and rto
+getRate = function(rfrom, rto)
+{
+  change = new.tableRef("change", "Hive", "hive.config", "main")
+  rate = query.force(query.where(function (r) r$cfrom == rfrom && r$cto == rto,
+                     query.from(change)))
+  if (rfrom == rto) 1.0 else rate$change
+}
+
+# Returns the names of employees earning at least minSalary in the curr
+# currency
+atLeast = function(minSalary, curr)
+{
+  emp = new.tableRef("emp", "Hive", "hive.config", "main")
+  query.select(function (e) { r = new.env()
+                        r$name = e$ename
+                        r },
+  query.where(function (e) e$sal >= minSalary * getRate("USD", curr),
+  query.from(emp)))
+}
+
+richUSPeople = atLeast(2000.0, "USD")
+richEURPeople = atLeast(2000.0, "EUR")
+print(query.force(richUSPeople))
+print(query.force(richEURPeople))
diff --git a/com.oracle.truffle.r.test/tests/HIVE-HIVE.out b/com.oracle.truffle.r.test/tests/HIVE-HIVE.out
new file mode 100644
index 0000000000..ea36bce72b
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HIVE-HIVE.out
@@ -0,0 +1,18 @@
+    name
+1  SMITH
+2  ADAMS
+3 MILLER
+4  ALLEN
+5   WARD
+6  JONES
+7  SCOTT
+    name
+1  SMITH
+2  ADAMS
+3   FORD
+4 MILLER
+5  ALLEN
+6   WARD
+7  JONES
+8  SCOTT
+
diff --git a/com.oracle.truffle.r.test/tests/HIVE-PGSQL.R b/com.oracle.truffle.r.test/tests/HIVE-PGSQL.R
new file mode 100644
index 0000000000..6d4489915d
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HIVE-PGSQL.R
@@ -0,0 +1,25 @@
+# Returns the exchange rate between rfrom and rto
+getRate = function(rfrom, rto)
+{
+  change = new.tableRef("change", "PostgreSQL", "postgre.config", "public")
+  rate = query.force(query.where(function (r) r$cfrom == rfrom && r$cto == rto,
+                     query.from(change)))
+  if (rfrom == rto) 1.0 else rate$change
+}
+
+# Returns the names of employees earning at least minSalary in the curr
+# currency
+atLeast = function(minSalary, curr)
+{
+  emp = new.tableRef("emp", "Hive", "hive.config", "main")
+  query.select(function (e) { r = new.env()
+                        r$name = e$ename
+                        r },
+  query.where(function (e) e$sal >= minSalary * getRate("USD", curr),
+  query.from(emp)))
+}
+
+richUSPeople = atLeast(2000.0, "USD")
+richEURPeople = atLeast(2000.0, "EUR")
+print(query.force(richUSPeople))
+print(query.force(richEURPeople))
diff --git a/com.oracle.truffle.r.test/tests/HIVE-PGSQL.out b/com.oracle.truffle.r.test/tests/HIVE-PGSQL.out
new file mode 100644
index 0000000000..53da7150c8
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/HIVE-PGSQL.out
@@ -0,0 +1,18 @@
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7 MILLER
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7   FORD
+8 MILLER
+
diff --git a/com.oracle.truffle.r.test/tests/PGSQL-HBASE.R b/com.oracle.truffle.r.test/tests/PGSQL-HBASE.R
new file mode 100644
index 0000000000..b767f74eeb
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/PGSQL-HBASE.R
@@ -0,0 +1,25 @@
+# Returns the exchange rate between rfrom and rto
+getRate = function(rfrom, rto)
+{
+  change = new.tableRef("change", "HBase", "hbase-site.xml", "default")
+  rate = query.force(query.where(function (r) r$cfrom == rfrom && r$cto == rto,
+                     query.from(change)))
+  if (rfrom == rto) 1.0 else rate$change
+}
+
+# Returns the names of employees earning at least minSalary in the curr
+# currency
+atLeast = function(minSalary, curr)
+{
+  emp = new.tableRef("emp", "PostgreSQL", "postgre.config", "public")
+  query.select(function (e) { r = new.env()
+                        r$name = e$ename
+                        r },
+  query.where(function (e) e$sal >= minSalary * getRate("USD", curr),
+  query.from(emp)))
+}
+
+richUSPeople = atLeast(2000.0, "USD")
+richEURPeople = atLeast(2000.0, "EUR")
+print(query.force(richUSPeople))
+print(query.force(richEURPeople))
diff --git a/com.oracle.truffle.r.test/tests/PGSQL-HBASE.out b/com.oracle.truffle.r.test/tests/PGSQL-HBASE.out
new file mode 100644
index 0000000000..53da7150c8
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/PGSQL-HBASE.out
@@ -0,0 +1,18 @@
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7 MILLER
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7   FORD
+8 MILLER
+
diff --git a/com.oracle.truffle.r.test/tests/PGSQL-HIVE.R b/com.oracle.truffle.r.test/tests/PGSQL-HIVE.R
new file mode 100644
index 0000000000..13b2a4f8ed
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/PGSQL-HIVE.R
@@ -0,0 +1,25 @@
+# Returns the exchange rate between rfrom and rto
+getRate = function(rfrom, rto)
+{
+  change = new.tableRef("change", "Hive", "hive.config", "main")
+  rate = query.force(query.where(function (r) r$cfrom == rfrom && r$cto == rto,
+                     query.from(change)))
+  if (rfrom == rto) 1.0 else rate$change
+}
+
+# Returns the names of employees earning at least minSalary in the curr
+# currency
+atLeast = function(minSalary, curr)
+{
+  emp = new.tableRef("emp", "PostgreSQL", "postgre.config", "public")
+  query.select(function (e) { r = new.env()
+                        r$name = e$ename
+                        r },
+  query.where(function (e) e$sal >= minSalary * getRate("USD", curr),
+  query.from(emp)))
+}
+
+richUSPeople = atLeast(2000.0, "USD")
+richEURPeople = atLeast(2000.0, "EUR")
+print(query.force(richUSPeople))
+print(query.force(richEURPeople))
diff --git a/com.oracle.truffle.r.test/tests/PGSQL-HIVE.out b/com.oracle.truffle.r.test/tests/PGSQL-HIVE.out
new file mode 100644
index 0000000000..53da7150c8
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/PGSQL-HIVE.out
@@ -0,0 +1,18 @@
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7 MILLER
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7   FORD
+8 MILLER
+
diff --git a/com.oracle.truffle.r.test/tests/PGSQL-PGSQL.R b/com.oracle.truffle.r.test/tests/PGSQL-PGSQL.R
new file mode 100644
index 0000000000..4ddc544bb0
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/PGSQL-PGSQL.R
@@ -0,0 +1,25 @@
+# Returns the exchange rate between rfrom and rto
+getRate = function(rfrom, rto)
+{
+  change = new.tableRef("change", "PostgreSQL", "postgre.config", "public")
+  rate = query.force(query.where(function (r) r$cfrom == rfrom && r$cto == rto,
+                     query.from(change)))
+  if (rfrom == rto) 1.0 else rate$change
+}
+
+# Returns the names of employees earning at least minSalary in the curr
+# currency
+atLeast = function(minSalary, curr)
+{
+  emp = new.tableRef("emp", "PostgreSQL", "postgre.config", "public")
+  query.select(function (e) { r = new.env()
+                        r$name = e$ename
+                        r },
+  query.where(function (e) e$sal >= minSalary * getRate("USD", curr),
+  query.from(emp)))
+}
+
+richUSPeople = atLeast(2000.0, "USD")
+richEURPeople = atLeast(2000.0, "EUR")
+print(query.force(richUSPeople))
+print(query.force(richEURPeople))
diff --git a/com.oracle.truffle.r.test/tests/PGSQL-PGSQL.out b/com.oracle.truffle.r.test/tests/PGSQL-PGSQL.out
new file mode 100644
index 0000000000..53da7150c8
--- /dev/null
+++ b/com.oracle.truffle.r.test/tests/PGSQL-PGSQL.out
@@ -0,0 +1,18 @@
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7 MILLER
+    name
+1  SMITH
+2  ALLEN
+3   WARD
+4  JONES
+5  SCOTT
+6  ADAMS
+7   FORD
+8 MILLER
+
-- 
GitLab