The following bug has been logged on the website:
Bug reference: 18468
Logged by: Alexander Lakhin
Email address: exclusion@gmail.com
PostgreSQL version: 16.3
Operating system: Ubuntu 22.04
Description:
The following script:
CREATE TABLE t0 (a int, c text, b text);
CREATE STATISTICS ext_stat ON (a || b) FROM t0;
ALTER TABLE t0 DROP COLUMN c;
CREATE TABLE t1 (LIKE t0 INCLUDING ALL);
produces an invalid statistics definition:
\d+ t1
ERROR: invalid attnum 3 for relation "t1"
SELECT stxname, stxexprs FROM pg_statistic_ext;
ext_stat | ({OPEXPR :opno 2780 ... {VAR :varno 1 :varattno 3 ...
t1_expr_stat | ({OPEXPR :opno 2780 ... {VAR :varno 1 :varattno 3 ...
Though an index definition transferred correctly:
CREATE TABLE t0 (a int, c text, b text);
CREATE INDEX t_idx ON t0((a || b));
ALTER TABLE t0 DROP COLUMN c;
CREATE TABLE t1 (LIKE t0 INCLUDING ALL);
\d+ t1
...
Indexes:
"t1_expr_idx" btree ((a || b))
SELECT relname, indexprs FROM pg_index, pg_class WHERE indexrelid = oid
AND relname = 't1_expr_idx';
t1_expr_idx | ({OPEXPR :opno 2780 ... {VAR :varno 1 :varattno 2 ...