Thread: how to make table inherits another ?

how to make table inherits another ?

From
Oleg Bartunov
Date:
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


Re: how to make table inherits another ?

From
elein@varlena.com (elein)
Date:
You specify the inheritance on the creation of the child table.
See CREATE TABLE

--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
> 


Re: how to make table inherits another ?

From
Oleg Bartunov
Date:
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


Re: how to make table inherits another ?

From
Tom Lane
Date:
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


Re: how to make table inherits another ?

From
Oleg Bartunov
Date:
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