ALTER TABLE support for dropping generation expression

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

ALTER TABLE support for dropping generation expression

Peter Eisentraut-6
A small add-on to the generated columns feature:  Add an ALTER TABLE
subcommand for dropping the generated property from a column, per SQL
standard.

--
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

0001-ALTER-TABLE-.-ALTER-COLUMN-.-DROP-EXPRESSION.patch (22K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: ALTER TABLE support for dropping generation expression

Sergei Kornilov
The following review has been posted through the commitfest application:
make installcheck-world:  not tested
Implements feature:       tested, failed
Spec compliant:           not tested
Documentation:            tested, passed

Hello

Patch does not apply to master. Could you rebase?

Code looks good and very similar to "ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY"

I noticed one bug:

create table testdrop (i int, b int, m int GENERATED ALWAYS AS ( i*2) stored);
insert into testdrop(i,b) values (3,4);
alter table testdrop alter COLUMN m drop expression ;
alter table testdrop drop column i;

Here is no "m" column anymore. Possible due some forgotten dependency?

regards, Sergei

The new status of this patch is: Waiting on Author
Reply | Threaded
Open this post in threaded view
|

Re: ALTER TABLE support for dropping generation expression

Peter Eisentraut-6
On 2019-12-25 12:01, Sergei Kornilov wrote:
> Patch does not apply to master. Could you rebase?

done

> I noticed one bug:
>
> create table testdrop (i int, b int, m int GENERATED ALWAYS AS ( i*2) stored);
> insert into testdrop(i,b) values (3,4);
> alter table testdrop alter COLUMN m drop expression ;
> alter table testdrop drop column i;
>
> Here is no "m" column anymore. Possible due some forgotten dependency?

fixed -- good catch

--
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

v2-0001-ALTER-TABLE-.-ALTER-COLUMN-.-DROP-EXPRESSION.patch (25K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: ALTER TABLE support for dropping generation expression

Sergei Kornilov
Hello

Thank you, but I am late: patch has another merge conflict.

Conflict seems trivial and patch looks fine for me.

regards, Sergei


Reply | Threaded
Open this post in threaded view
|

Re: ALTER TABLE support for dropping generation expression

Peter Eisentraut-6
On 2020-01-10 13:20, Sergei Kornilov wrote:
> Thank you, but I am late: patch has another merge conflict.
>
> Conflict seems trivial and patch looks fine for me.

Here is another patch version.  I have resolved the conflict and also
added a check that you don't drop the generation expression from an
inherited column.

--
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

v3-0001-ALTER-TABLE-.-ALTER-COLUMN-.-DROP-EXPRESSION.patch (26K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: ALTER TABLE support for dropping generation expression

Sergei Kornilov
The following review has been posted through the commitfest application:
make installcheck-world:  tested, passed
Implements feature:       tested, passed
Spec compliant:           not tested
Documentation:            tested, passed

Thank you!
Looks good to me. I have no further comments. I'll mark as ready for committer.

The new status of this patch is: Ready for Committer
Reply | Threaded
Open this post in threaded view
|

Re: ALTER TABLE support for dropping generation expression

Peter Eisentraut-6
On 2020-01-13 10:56, Sergei Kornilov wrote:

> The following review has been posted through the commitfest application:
> make installcheck-world:  tested, passed
> Implements feature:       tested, passed
> Spec compliant:           not tested
> Documentation:            tested, passed
>
> Thank you!
> Looks good to me. I have no further comments. I'll mark as ready for committer.
>
> The new status of this patch is: Ready for Committer

committed, thanks

--
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services