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.

In fact, I think the entire function asString can be writting more
correctly as:

 private def asString(pos: Int, rs: ResultSet, md: ResultSetMetaData) = 
rs.getString(pos)

i _think_ getString does "the right thing" in all cases, at least for
Postgres :-)

An even better approach would be to return a (list of) list of objects
from resultSetTo, ie.  strings, Int, Double, BigDecimal etc, but I guess
this would break existing code.

/Jeppe

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to