# Returns the exchange rate between rfrom and rto getRate = function(rfrom, rto) { change = new.tableRef("change", "PostgreSQL", "postgre.config", "public") rate = query.force(where(function (r) r$cfrom == rfrom && r$cto == rto, 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") select(function (e) { r = new.env() r$name = e$ename r }, where(function (e) e$sal >= minSalary * getRate("USD", curr), from(emp))) } richUSPeople = atLeast(2000.0, "USD") richEURPeople = atLeast(2000.0, "EUR") print(query.force(richUSPeople)) print(query.force(richEURPeople))