[racket] Doubt about ryanc/db unreadable values

From: Ryan Culpepper (ryan at cs.utah.edu)
Date: Thu Nov 10 08:38:18 EST 2011

It looks like main.the_procedure is returning either defined composite 
types or some ad hoc ROW type, neither of which is fully supported by 
db. (And I didn't realize I left partial support turned on.)

As a workaround, you can extract the components of the ROW value so 
they're separate fields in the query result.

The underlying problem is that the db library requests binary format for 
most data types---except datetime types and decimals, which it requests 
as text. So mixing the two kinds of data in a single ROW means that the 
parts normally received as text can't be read. The solution will be to 
add binary readers for the remaining types.

Ryan


On 11/10/2011 04:52 AM, Eduardo Bellani wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello list.
>
> I am somewhat stuck with a mysterious return from my postgresql DB. I
> have a stored procedure that behaves like this:
>
> my_test_db=# select main.the_procedure();
>       the_procedure
> - --------------------------------------------
>   (1,1,16642,3,"2011-11-10 10:41:58.574135")
>   (4,1,16642,3,"2011-11-10 10:42:11.916132")
> (2 rows)
>
> While on racket world:
>
> (require (planet ryanc/db:1:5))
>
> (for/vector ([x
>                (in-query (get-db-connection) ;; returns a DB connection
>                  "select main.the_procedure")])
>          (displayln x))
>
>
> =>
>
> #(1 1 16642 3 unreadable)
> #(4 1 16642 3 unreadable)
>
>
> Did anyone stumbled on this behavior before? Any hints?
> Thanks all.
>
> - --
> Eduardo Bellani
>
> omnia mutantur, nihil interit.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (GNU/Linux)
>
> iEYEARECAAYFAk67yQUACgkQSbLl0kCTjGkAPgCeILJdycRFSFQhiZCSGoe/GuGR
> UkoAoIM20iAE2LXM2xdojMSjVi3JvkUb
> =xTRj
> -----END PGP SIGNATURE-----
> _________________________________________________
>    For list-related administrative tasks:
>    http://lists.racket-lang.org/listinfo/users



Posted on the users mailing list.