Why an array in pg_group?

Started by Reinoud van Leeuwenabout 23 years ago3 messages
#1Reinoud van Leeuwen
reinoud.v@n.leeuwen.net

Hi,

Is there any reason why the grolist field in the table pg_group is
implemented as an array and not as a separate table?

According to the documentation:

<quote source="Postgresql 7.2 User Manual, chapter 6 near the end">
Arrays are not sets; using arrays in the manner described in the previous
paragraph is often a sign of database misdesign.
</quote>

I have trouble implementing a way to easily check whether a user is part
of a group. (I use Apache::AuthDBI to implement authentication and wanted
to make a view with columns username, userid , groupname. And installing
the contrib/array give's me a postgresql that is different from all the
others :-(

--
__________________________________________________
"Nothing is as subjective as reality"
Reinoud van Leeuwen reinoud.v@n.leeuwen.net
http://www.xs4all.nl/~reinoud
__________________________________________________

#2Hannu Krosing
hannu@tm.ee
In reply to: Reinoud van Leeuwen (#1)
Re: Why an array in pg_group?

Reinoud van Leeuwen kirjutas K, 20.11.2002 kell 17:03:

Hi,

Is there any reason why the grolist field in the table pg_group is
implemented as an array and not as a separate table?

most likely for performance reasons.

According to the documentation:

<quote source="Postgresql 7.2 User Manual, chapter 6 near the end">
Arrays are not sets; using arrays in the manner described in the previous
paragraph is often a sign of database misdesign.
</quote>

I have trouble implementing a way to easily check whether a user is part
of a group. (I use Apache::AuthDBI to implement authentication and wanted
to make a view with columns username, userid , groupname. And installing
the contrib/array give's me a postgresql that is different from all the
others :-(

not from those who also have installed contrib/array ;)

but you should actually be using contrib/intagg (and perhaps contrib
intarray) for performance reasons ;)

--
Hannu Krosing <hannu@tm.ee>

#3snpe
snpe@snpe.co.yu
In reply to: Hannu Krosing (#2)
Re: Why an array in pg_group?

On Tuesday 26 November 2002 09:05 pm, Hannu Krosing wrote:

Reinoud van Leeuwen kirjutas K, 20.11.2002 kell 17:03:

Hi,

Is there any reason why the grolist field in the table pg_group is
implemented as an array and not as a separate table?

most likely for performance reasons.

According to the documentation:

<quote source="Postgresql 7.2 User Manual, chapter 6 near the end">
Arrays are not sets; using arrays in the manner described in the previous
paragraph is often a sign of database misdesign.
</quote>

I have trouble implementing a way to easily check whether a user is part
of a group. (I use Apache::AuthDBI to implement authentication and wanted
to make a view with columns username, userid , groupname. And installing
the contrib/array give's me a postgresql that is different from all the
others :-(

not from those who also have installed contrib/array ;)

but you should actually be using contrib/intagg (and perhaps contrib
intarray) for performance reasons ;)

Can You make syntax (operator or function) like :

scalar integer IN array integers
for join scalar and array fileds ?

in base PostgreSQL ?

regards
Haris Peco