Re: Can't register python class for domain?

Поиск
Список
Период
Сортировка
От Daniele Varrazzo
Тема Re: Can't register python class for domain?
Дата
Msg-id CA+mi_8aG4dOcHk1zw-XMsNQzVKDMDzY6=mQdvKzyNRj4u0vTVA@mail.gmail.com
обсуждение исходный текст
Ответ на Can't register python class for domain?  ("W. Matthew Wilson" <matt@tplus1.com>)
Ответы Re: Can't register python class for domain?  ("W. Matthew Wilson" <matt@tplus1.com>)
Список 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 по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: Can't register python class for domain?
Следующее
От: "W. Matthew Wilson"
Дата:
Сообщение: Re: Can't register python class for domain?