Thread: SQL display of inheriting tables wrong

SQL display of inheriting tables wrong

From
Peter Eisentraut
Date:
The SQL visualization of tables that inherit from another table is wrong in
pgAdmin.  You can check that with the table "emp" in the regression test
database.  The actual definition (as produced by pg_dump) is this:

CREATE TABLE person (
    name text,
    age integer,
    "location" point
);

CREATE TABLE emp (
    salary integer,
    manager name
)
INHERITS (person);


pgAdmin produces this:

CREATE TABLE emp
(
  name text,
  age int4,
  "location" point,
  salary int4,
  manager name
) INHERITS (person)
WITH OIDS;

While this also works (the common columns are merged), executing this and
redumping it with pg_dump produces this:

CREATE TABLE emp (
    name text,
    age integer,
    "location" point,
    salary integer,
    manager name
)
INHERITS (person);

which is not the same we started out with.

I'm not exactly sure what is going on here, but it's confusing.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

Re: SQL display of inheriting tables wrong

From
Andreas Pflug
Date:
Peter Eisentraut wrote:
> The SQL visualization of tables that inherit from another table is wrong in
> pgAdmin.  You can check that with the table "emp" in the regression test
> database.  The actual definition (as produced by pg_dump) is this:

> CREATE TABLE emp (
>     name text,
>     age integer,
>     "location" point,
>     salary integer,
>     manager name
> )
> INHERITS (person);
>
> which is not the same we started out with.
>
> I'm not exactly sure what is going on here, but it's confusing.

The columns are probably overloaded.
The table code didn't obey the column's inherit flag, fixed in SVN for
HEAD and 1.4, thanks for reporting.

We didn't catch trying to edit an inherited column from the table
dialog; corrected now too.

Regards,
Andreas