Re: Can't register python class for domain? - Mailing list psycopg

From Daniele Varrazzo
Subject Re: Can't register python class for domain?
Date
Msg-id CA+mi_8aG4dOcHk1zw-XMsNQzVKDMDzY6=mQdvKzyNRj4u0vTVA@mail.gmail.com
Whole thread Raw
In response to Can't register python class for domain?  ("W. Matthew Wilson" <matt@tplus1.com>)
Responses Re: Can't register python class for domain?  ("W. Matthew Wilson" <matt@tplus1.com>)
List psycopg
On Fri, Jan 23, 2015 at 3:16 PM, W. Matthew Wilson <matt@tplus1.com> wrote:
> I created this domain:
>
>     create domain milliamp as double precision check (value >= 0);
>
> Then when I register a python class named Milliamp, it never gets
> used!  I think the problem is related to the type code coming back as
> the underlying double precision type:
>
>     >>> cursor.execute("select 4444::milliamp as m")
>     >>> cursor.description[0][1]
>     701
>     >>> cursor.execute("select 4444::double precision as f")
>     >>> cursor.description[0][1]
>     701
>
> But there really is a type called milliamp in postgresql, I promise:
>
>     > select typname, oid from pg_type where typname in ('float8', 'milliamp');
>     typname   oid
>     -------- ------
>     float8      701
>     milliamp 949531
>     (2 rows)
>
> I found this code, and it suggests other people have run into this same problem:
>
> https://github.com/beyang/psycopg2/blob/master/sandbox/domainoid.py
>
> Any ideas what is going on?

Yes, I've found that too. Although domains have an oid of their own,
unlike types, the libpq returns the oid of their base type instead. I
googled about that some times ago and found a laconic conversation
with someone making this question and Tom Lane answering "yes, that's
how it is" (the further question of the OP "will it be fixed" got
ignored).

So I'm afraid I don't know how to help with that: it seems the libpq
doesn't give enough information to the client.

-- Daniele


psycopg by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Can't register python class for domain?
Next
From: "W. Matthew Wilson"
Date:
Subject: Re: Can't register python class for domain?