diff options
author | Peter Eisentraut <peter@eisentraut.org> | 2025-03-04 09:18:32 +0100 |
---|---|---|
committer | Peter Eisentraut <peter@eisentraut.org> | 2025-03-04 09:18:32 +0100 |
commit | f011acdd61fc296ec8822ca4edc18e32b6bd2b56 (patch) | |
tree | 4476fed226cd9d1ff92d5ff55f77630f35e9adaf /src/backend/access/gist/gistvalidate.c | |
parent | 716a051aaccdef9296c41826034d85c196549146 (diff) | |
download | postgresql-f011acdd61fc296ec8822ca4edc18e32b6bd2b56.tar.gz postgresql-f011acdd61fc296ec8822ca4edc18e32b6bd2b56.zip |
Fix ALTER TABLE ADD VIRTUAL GENERATED COLUMN when table rewrite
demo:
CREATE TABLE gtest20a (a int PRIMARY KEY, b int GENERATED ALWAYS AS (a * 2) VIRTUAL);
ALTER TABLE gtest20a ADD COLUMN c float8 DEFAULT RANDOM() CHECK (b < 60);
ERROR: no generation expression found for column number 2 of table "pg_temp_17306"
In ATRewriteTable, the variable OIDNewHeap (if valid) corresponding
pg_attrdef default expression entry was not populated. So OIDNewHeap
cannot be used to call expand_generated_columns_in_expr or
build_generation_expression. Therefore in ATRewriteTable, we can only
use the existing relation to expand the generated expression.
Author: jian he <jian.universality@gmail.com>
Reviewed-by: Srinath Reddy <srinath2133@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/CACJufxEJ%3DFoajabWXjszo_yrQeKSxdZ87KJqBW373rSbajKGAA%40mail.gmail.com
Diffstat (limited to 'src/backend/access/gist/gistvalidate.c')
0 files changed, 0 insertions, 0 deletions