Re: Problem migrating from 8.0.3 to 8.2.3

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Problem migrating from 8.0.3 to 8.2.3
Дата
Msg-id 13055.1174322296@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Problem migrating from 8.0.3 to 8.2.3  ("Anton Pikhteryev" <apikhteryev@sandvine.com>)
Список pgsql-admin
"Anton Pikhteryev" <apikhteryev@sandvine.com> writes:
> I created valid_user domain on the old system (8.0.3) a long time ago
> as:

> CREATE DOMAIN valid_user
>     AS name     -- pg_catalog.pg_user.usename%TYPE
>     DEFAULT SESSION_USER
>     CONSTRAINT user_exists
>         CHECK (has_table_privilege(VALUE,'pg_user','SELECT'));

Ah.  That seems a rather strange way to check that a user exists,
but anyway the missing bit of information was that the domain is
over type "name" which is subscriptable.  You need the attached
patch (which will be in 8.2.4).

            regards, tom lane


Index: src/backend/utils/cache/lsyscache.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/cache/lsyscache.c,v
retrieving revision 1.138
diff -c -r1.138 lsyscache.c
*** src/backend/utils/cache/lsyscache.c    4 Oct 2006 00:30:00 -0000    1.138
--- src/backend/utils/cache/lsyscache.c    19 Mar 2007 15:56:30 -0000
***************
*** 1366,1375 ****

      /*
       * Array types get their typelem as parameter; everybody else gets their
!      * own type OID as parameter.  (This is a change from 8.0, in which only
!      * composite types got their own OID as parameter.)
       */
!     if (OidIsValid(typeStruct->typelem))
          return typeStruct->typelem;
      else
          return HeapTupleGetOid(typeTuple);
--- 1366,1375 ----

      /*
       * Array types get their typelem as parameter; everybody else gets their
!      * own type OID as parameter.  (As of 8.2, domains must get their own OID
!      * even if their base type is an array.)
       */
!     if (typeStruct->typtype == 'b' && OidIsValid(typeStruct->typelem))
          return typeStruct->typelem;
      else
          return HeapTupleGetOid(typeTuple);

В списке pgsql-admin по дате отправления:

Предыдущее
От: "Anton Pikhteryev"
Дата:
Сообщение: Re: Problem migrating from 8.0.3 to 8.2.3
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Problem migrating from 8.0.3 to 8.2.3