# 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))