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

_________________________________________________
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/users

Reply via email to