David Pollak <[email protected]> writes: > On Wed, Jul 22, 2009 at 6:07 AM, Jeppe Nejsum Madsen <[email protected]>wrote: > >> >> Hi, >> >> I'm using adhoc queries and I'm running into a problem where the results >> of aggregate functions get mapped to integers: >> >> I have this >> >> val (_,result) = DB.runQuery("SELECT AVG(vt.fuel_efficiency), >> vt.fuel_type, vt.category FROM "+ >> "vehicles v JOIN vehicle_types vt ON v.vehicle_type_id= >> vt.id "+ >> "WHERE v.account_id=? "+ >> "GROUP BY vt.fuel_type, vt.category "+ >> "ORDER BY vt.fuel_type, vt.category", >> List(User.currentUser.open_!.account.is)) >> >> in Postgres, the first column is returned as NUMERIC, ie with decimals, but >> in >> >> private def asString(pos: Int, rs: ResultSet, md: ResultSetMetaData) >> >> we have this: >> >> case BIGINT | INTEGER | DECIMAL | NUMERIC | SMALLINT | TINYINT => >> rs.getLong(pos).toString >> >> which seems wrong. > > > So... numeric should be rs.getDouble(pos).toString ?
Yes, or BigDecimal. Same goes for DECIMAL I think. "The recommended Java mapping for the DECIMAL and NUMERIC types is java.math.BigDecimal" [1] > The rs.getString(pos) does not work correctly for all types in all JDBC > drivers. I assumed there was a reason for asString :-) /Jeppe [1] http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/getstart/mapping.html --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---
