On Oct 14, 6:42 pm, cult hero <[email protected]> wrote:
> I'm in the process of evaluating Sequel for working with an existing
> database (i.e. any opinions about the structure don't matter because
> it is what it is). One of the databases is PostgreSQL and the other is
> MSSQL.
>
> In PostgreSQL I can migrate a database with the type ":uuid" I get a
> string representation of that UUID back when I query the DB. So,
> "B016F9B6-7E41-4B94-9EA1-75C5FCEC9D89" is what I get and that, for the
> most part, works.

This appears to be how PostgreSQL returns UUIDs:

SELECT 'a0eebc999c0b4ef8bb6d6bb9bd380a11'::uuid;
                 uuid
--------------------------------------
 a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11

> When dealing with a UUID in MSSQL however, I get something that looks
> like this: "\xB6\xF9\x16\xB0A~\x94K\x9E\xA1u\xC5\xFC\xEC\x9D\x89"

That's probably the UUID in binary form.

> Is the PostgreSQL driver returning a string or is Sequel doing the
> conversion?

PostgreSQL.  It's not the ruby driver either, it's just how PostgreSQL
returns things (the above example is the output from psql).

> I could be wrong, but since internally the UUID isn't
> stored as a string with PostgreSQL it seems odd to be returning a
> string.

There are a lot of types that PostgreSQL doesn't store as strings but
are returned as strings (dates, timestamps, etc.).

> If Sequel is doing it, can you point me to where so I can make a
> similar change for MSSQL?
>
> (If it's the driver I already posted something over on the TinyTDS
> project page about it.)

Sequel doesn't do it's own typecasting in the tinytds adapter (leaving
it to TinyTDS), so it would have to be done in TinyTDS.

Of course, if you are using models, it should be easy to handle things
but adding an after_initialize hook that does the conversion.
Alternatively, for datasets, you could use a custom row_proc that does
the conversion.

Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" 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/sequel-talk?hl=en.

Reply via email to