Re: "...integer[] references..." = error

Поиск
Список
Период
Сортировка
От Oleg Bartunov
Тема Re: "...integer[] references..." = error
Дата
Msg-id Pine.GSO.4.44.0209052134570.13637-100000@ra.sai.msu.su
обсуждение исходный текст
Ответ на Re: "...integer[] references..." = error  ("Nigel J. Andrews" <nandrews@investsystems.co.uk>)
Ответы Re: "...integer[] references..." = error  (Joel Rodrigues <borgempath@Phreaker.net>)
Список pgsql-general
On Thu, 5 Sep 2002, Nigel J. Andrews wrote:

> On Thu, 5 Sep 2002, Joel Rodrigues wrote:
>
> > Hello,
> >
> > Does anyone know why trying to create this column:
> >
> > "role    INTEGER[] REFERENCES role (roleid)"
> >
> >
> > returns this error:
> >
> >
> > ERROR:  Unable to identify an operator '=' for types 'integer[]'
> > and 'integer'
> >          You will have to retype this query using an explicit cast
> >
> > psql:individual.sql:22: ERROR:  Unable to identify an
> > operator '=' for types 'integer[]' and 'integer'
> >          You will have to retype this query using an explicit cast
> >
>
> Let me guess, roleid is a plain integer?
>
> >
> > If I remove the array "[]", it works fine, but I need the array
> > to refer to more than one "roleid".
>
> Sounds like it.
>
> Well I believe there is something in contrib, intarr may be, that provides a
> set of operators for integer arrays. If so I think I also saw mention on the
> list that it's unstable in 7.3beta.

contrib/intarray is your friend.
it's broken (in 7.3 beta1) due to some changes in main source tree.
We hope we'll submit a fix next week. But 7.2.X are solid in used for
long time in many project.

>
> However, I'm thinking you've got an entirely different problem since you don't
> need an equality operator defined you need something entirely different that
> defined like an int[]/int equality operator but knows to check each element
> against the referenced column. Best solution would seem to be a custom
> function. As there obviously isn't such an equality operator already defined
> won't cause problems elsewhere, however, it would probably have to be
> specialised to your exact situation, although...

He needs contains operator.  Something like
select message.mid from message where message.sections @ '{1,2}';


>



>
>

    Regards,
        Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83


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

Предыдущее
От: "Nigel J. Andrews"
Дата:
Сообщение: Re: "...integer[] references..." = error
Следующее
От: "Jan Weerts"
Дата:
Сообщение: postgresql does seqscan instead of using an existing index