Thread: inheritance question

inheritance question

From
evgeny tsurkin
Date:
Hi All!
That probably was already asked thousand times
but i did not find an exact answer:
I want to have two tables the second one will have
all the columns from the first + some extra .The data
should be complittly separate .I was trying to use
inheritance and setted the  SQL_INHERITANCE = false
to separate the data ,but when trying to add a column
to the father i have got an error:
ERROR:  Attribute must be added to child tables too
what can i do ?
Thanks
Evgeny.


Re: inheritance question

From
mike g
Date:
According to your posting below the second table will have all the
columns of the first table plus extra columns.  If that is true then why
are you trying to add a column to your first table and not your second
table as well?

On Tue, 2004-07-13 at 06:32, evgeny tsurkin wrote:
> Hi All!
> That probably was already asked thousand times
> but i did not find an exact answer:
> I want to have two tables the second one will have
> all the columns from the first + some extra .The data
> should be complittly separate .I was trying to use
> inheritance and setted the  SQL_INHERITANCE = false
> to separate the data ,but when trying to add a column
> to the father i have got an error:
> ERROR:  Attribute must be added to child tables too
> what can i do ?
> Thanks
> Evgeny.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster

Re: inheritance question

From
evgeny tsurkin
Date:
I am but that is what actually want : to be able to add a column
to the first table and have the second to be added a coulumns
automatically.The target is realy simple :
i want to simplify management of the schema and thus be able to
manage only parantes - children should be managed aoutomagically
But the data is NOT the same!
Isn't it the inheretence is all about - to inherit?
On Fri, 16 Jul 2004, mike g wrote:

> According to your posting below the second table will have all the
> columns of the first table plus extra columns.  If that is true then why
> are you trying to add a column to your first table and not your second
> table as well?
>
> On Tue, 2004-07-13 at 06:32, evgeny tsurkin wrote:
> > Hi All!
> > That probably was already asked thousand times
> > but i did not find an exact answer:
> > I want to have two tables the second one will have
> > all the columns from the first + some extra .The data
> > should be complittly separate .I was trying to use
> > inheritance and setted the  SQL_INHERITANCE = false
> > to separate the data ,but when trying to add a column
> > to the father i have got an error:
> > ERROR:  Attribute must be added to child tables too
> > what can i do ?
> > Thanks
> > Evgeny.
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
>

--
-------------------------------------------
Evgeny.

Re: inheritance question

From
Stephan Szabo
Date:
On Tue, 13 Jul 2004, evgeny tsurkin wrote:

> Hi All!
> That probably was already asked thousand times
> but i did not find an exact answer:
> I want to have two tables the second one will have
> all the columns from the first + some extra .The data
> should be complittly separate .I was trying to use
> inheritance and setted the  SQL_INHERITANCE = false
> to separate the data ,but when trying to add a column
> to the father i have got an error:
> ERROR:  Attribute must be added to child tables too
> what can i do ?

Either don't use SQL_INHERITANCE=false, or specify that you want
to act upon the entire tree using the older syntax which I think
would look like ALTER TABLE first* add column ...
(note the *)



Re: inheritance question

From
Tsirkin Evgeny
Date:
But this way i will touch both the schema AND data
And what i want is to change the schema ONLY.
Thanks

On Sun, 18 Jul 2004, Stephan Szabo wrote:

> On Tue, 13 Jul 2004, evgeny tsurkin wrote:
>
> > Hi All!
> > That probably was already asked thousand times
> > but i did not find an exact answer:
> > I want to have two tables the second one will have
> > all the columns from the first + some extra .The data
> > should be complittly separate .I was trying to use
> > inheritance and setted the  SQL_INHERITANCE = false
> > to separate the data ,but when trying to add a column
> > to the father i have got an error:
> > ERROR:  Attribute must be added to child tables too
> > what can i do ?
>
> Either don't use SQL_INHERITANCE=false, or specify that you want
> to act upon the entire tree using the older syntax which I think
> would look like ALTER TABLE first* add column ...
> (note the *)
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>

--
-------------------------------------------
Evgeny.

Re: inheritance question

From
Stephan Szabo
Date:
On Mon, 19 Jul 2004, Tsirkin Evgeny wrote:

> But this way i will touch both the schema AND data
> And what i want is to change the schema ONLY.

The use the ALTER TABLE table* ADD COLUMN syntax to alter
the schema for table and its descendants.

In general, SQL_INHERITANCE=false is primarily there for
applications that were written for older versions of PostgreSQL.
You probably should be using queries that use the ONLY keyword
rather than relying on the guc variable.

> On Sun, 18 Jul 2004, Stephan Szabo wrote:
>
> > On Tue, 13 Jul 2004, evgeny tsurkin wrote:
> >
> > > Hi All!
> > > That probably was already asked thousand times
> > > but i did not find an exact answer:
> > > I want to have two tables the second one will have
> > > all the columns from the first + some extra .The data
> > > should be complittly separate .I was trying to use
> > > inheritance and setted the  SQL_INHERITANCE = false
> > > to separate the data ,but when trying to add a column
> > > to the father i have got an error:
> > > ERROR:  Attribute must be added to child tables too
> > > what can i do ?
> >
> > Either don't use SQL_INHERITANCE=false, or specify that you want
> > to act upon the entire tree using the older syntax which I think
> > would look like ALTER TABLE first* add column ...
> > (note the *)