Thread: Location of a new column

Location of a new column

From
Terry Hampton
Date:
    All,

    I thought this was answered before, but I
    could not find anything in my saved email.

    I need to ALTER a table to add a new column.
    I want the new column to be between two existing
    columns,  however.     Didn't I see mention of
    an "AFTER" parameter that specified the location
    in the table where the new column should be
    placed ?    Maybe not ..........     How then,
    can I specify the location within the table,   of
    new column ?

        7.3  &  RH Linux



        Many thanks !

        Terry


--
Terry L. Hampton
Project Manager
LimaCorp, LLC   www.limacorp.com
513.587.1874



Re: Location of a new column

From
Stephan Szabo
Date:
On Thu, 8 Apr 2004, Terry Hampton wrote:

>     I thought this was answered before, but I
>     could not find anything in my saved email.
>
>     I need to ALTER a table to add a new column.
>     I want the new column to be between two existing
>     columns,  however.     Didn't I see mention of
>     an "AFTER" parameter that specified the location
>     in the table where the new column should be
>     placed ?    Maybe not ..........     How then,
>     can I specify the location within the table,   of
>     new column ?

AFAIK, you can't using add column. It currently does no more than the
SQL92/99 spec requires in that respect (which is put the column at the
end).

About all you can do to put it somewhere else is a sequence with a new
table, copying data and renaming (and fixing constraints).

Re: Location of a new column

From
Robert Treat
Date:
On Thu, 2004-04-08 at 09:55, Stephan Szabo wrote:
>
> On Thu, 8 Apr 2004, Terry Hampton wrote:
>
> >     I thought this was answered before, but I
> >     could not find anything in my saved email.
> >
> >     I need to ALTER a table to add a new column.
> >     I want the new column to be between two existing
> >     columns,  however.     Didn't I see mention of
> >     an "AFTER" parameter that specified the location
> >     in the table where the new column should be
> >     placed ?    Maybe not ..........     How then,
> >     can I specify the location within the table,   of
> >     new column ?
>
> AFAIK, you can't using add column. It currently does no more than the
> SQL92/99 spec requires in that respect (which is put the column at the
> end).
>
> About all you can do to put it somewhere else is a sequence with a new
> table, copying data and renaming (and fixing constraints).
>

IIRC this option is available in 7.5. At least I seem to remember some
(Chris K-L) posting a patch and it getting committed. You could check
the developers docs to verify I suppose.

Robert Treat
--
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL


Re: Location of a new column

From
Tom Lane
Date:
Robert Treat <xzilla@users.sourceforge.net> writes:
> On Thu, 2004-04-08 at 09:55, Stephan Szabo wrote:
>> AFAIK, you can't using add column. It currently does no more than the
>> SQL92/99 spec requires in that respect (which is put the column at the
>> end).

> IIRC this option is available in 7.5.

No, there has been some discussion but no move to implement it.

AFAIR there is no reasonable way to implement it without breaking apps
that depend on the existing semantics of pg_attribute.attnum :-(.
Check the pghackers archives if you want to know more.

            regards, tom lane