how to make table inherits another ?

Started by Oleg Bartunovalmost 21 years ago5 messages
#1Oleg Bartunov
oleg@sai.msu.su

Hi there,

is't possible to make table to be inherited from another table in case
both tables already exist. I tried to insert record to pg_inherits,
but it doesn't helped.

openfts=# select * from pg_inherits;
inhrelid | inhparent | inhseqno
----------+-----------+----------
2617283 | 2417279 | 1

did I miss something ?

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

#2Noname
elein@varlena.com
In reply to: Oleg Bartunov (#1)
Re: how to make table inherits another ?

You specify the inheritance on the creation of the child table.
See CREATE TABLE

--elein

Show quoted text

On Wed, Feb 16, 2005 at 11:48:54PM +0300, Oleg Bartunov wrote:

Hi there,

is't possible to make table to be inherited from another table in case
both tables already exist. I tried to insert record to pg_inherits,
but it doesn't helped.

openfts=# select * from pg_inherits;
inhrelid | inhparent | inhseqno
----------+-----------+----------
2617283 | 2417279 | 1

did I miss something ?

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

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

#3Oleg Bartunov
oleg@sai.msu.su
In reply to: Noname (#2)
Re: how to make table inherits another ?

On Wed, 16 Feb 2005, elein wrote:

You specify the inheritance on the creation of the child table.
See CREATE TABLE

I know this. I need to create inheritance for already created tables.
There is no way to do this using alter table, so I tried to
define it by hand :)

--elein

On Wed, Feb 16, 2005 at 11:48:54PM +0300, Oleg Bartunov wrote:

Hi there,

is't possible to make table to be inherited from another table in case
both tables already exist. I tried to insert record to pg_inherits,
but it doesn't helped.

openfts=# select * from pg_inherits;
inhrelid | inhparent | inhseqno
----------+-----------+----------
2617283 | 2417279 | 1

did I miss something ?

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

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

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

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Oleg Bartunov (#3)
Re: how to make table inherits another ?

Oleg Bartunov <oleg@sai.msu.su> writes:

I know this. I need to create inheritance for already created tables.
There is no way to do this using alter table, so I tried to
define it by hand :)

Did you remember to set relhassubclass for the parent table?
AFAIR, all that you really need are that and the pg_inherits row.

It'd be a good idea to install a pg_depend entry, and to modify the
child's pg_attribute rows to show the columns as inherited (attislocal
and attinhcount) but I believe the latter would only bite you if you
tried to do ALTER commands on the tables later.

regards, tom lane

#5Oleg Bartunov
oleg@sai.msu.su
In reply to: Tom Lane (#4)
Re: how to make table inherits another ?

On Wed, 16 Feb 2005, Tom Lane wrote:

Oleg Bartunov <oleg@sai.msu.su> writes:

I know this. I need to create inheritance for already created tables.
There is no way to do this using alter table, so I tried to
define it by hand :)

Did you remember to set relhassubclass for the parent table?
AFAIR, all that you really need are that and the pg_inherits row.

Aha, that works. Thanks, Tom.

It'd be a good idea to install a pg_depend entry, and to modify the
child's pg_attribute rows to show the columns as inherited (attislocal
and attinhcount) but I believe the latter would only bite you if you
tried to do ALTER commands on the tables later.

I'll save this info.

regards, tom lane

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