I monkey patched the PG adapter to type cast calculated values returned
from views. I think this solves the problem in this thread.

https://gist.github.com/1624535

If this looks like a solution to the original poster I can expand it to map
more datatypes and submit a pull request.

Cheers,

Anthony Richardson

On Tue, Jan 17, 2012 at 10:30 AM, Jeremy Evans <[email protected]>wrote:

> On Mon, Jan 16, 2012 at 12:08 PM, Aaron Patterson
> <[email protected]> wrote:
> > On Sat, Jan 14, 2012 at 01:26:08PM +1300, Michael Koziarski wrote:
> >> Most database protocols include type information along with the values
> themselves, the drivers should be able to do introspection and 'magically'
> cast them completely removing our casting from the picture.
> >
> > I'm not sure if the pg "over the wire" protocol contains that
> > information, but I can tell you that libpg doesn't provide functions for
> > casting to C types (that I can find).
> >
> > See PQgetvalue:
> >
> >  http://www.postgresql.org/docs/6.4/static/libpq-chapter16943.htm
>
> PQftype returns a type id integer that represents the database type.
> The ruby postgres drivers (pg, postgres, postgres-pr) expose this
> information via the type or ftype method on the PGresult class.  The
> common database types have fixed type id integers you can statically
> map to ruby classes (16 -> boolean, 700 and 701 -> float, etc.).
>
> You may be correct that libpq lacks a function that casts to C types.
> But it's fairly simple to cast the C string directly to the desired
> ruby type using a mapping based on the type id integer.
>
> Jeremy
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Core" 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/rubyonrails-core?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" 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/rubyonrails-core?hl=en.

Reply via email to