BUG #18468: CREATE TABLE ... LIKE leaves orphaned column reference in extended statistics
The Post Office <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: exclusion@gmail.com
Date: 2024-05-15T11:00:01Z
Lists: pgsql-bugs
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 ...
Commits
-
Fix handling of extended expression statistics in CREATE TABLE LIKE.
- 5278668d7a46 17.0 landed
- 2f3cfcf7677f 15.8 landed
- 2aa90c02dc69 16.4 landed
- 1015162c3535 14.13 landed
-
Extended statistics on expressions
- a4d75c86bf15 14.0 cited