Re: Bug in CREATE TABLE .. LIKE .. INCLUDING STATISTICS?

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Srinath Reddy Sadipiralla <srinath2133@gmail.com>, Julien Tachoires <julien@tachoires.me>, dgrowleyml@gmail.com
Cc: pgsql-bugs@lists.postgresql.org
Date: 2026-04-21T15:19:36Z
Lists: pgsql-bugs

Attachments

On 2026-04-16 Th 3:44 AM, Srinath Reddy Sadipiralla wrote:
> Hi Julien,
>
> On Wed, Apr 15, 2026 at 7:47 PM Julien Tachoires <julien@tachoires.me> 
> wrote:
>
>     Hi,
>
>     One of our customer is experiencing an issue when executing CREATE
>     TABLE
>     .. LIKE .. INCLUDING ALL; on 14, the following kind of error happens:
>     ERROR: cache lookup failed for attribute X of relation ZZZZZZ
>
>     It seems to come from generateClonedExtStatsStmt(): get_attname()
>     appears to be called with an attribute number (attnum) that does not
>     exist.
>
>
> yeah, i was able to reproduce and also check the flow which is the same
> as you mentioned.
>
>
>     Please find attached 2 patches for the master branch, the first
>     one adds
>     a test that triggers the problem, the 2nd one is an attempt to fix it.
>
>
> I think it's better to write a 4 column test, with this it covers both
> cases of lookup either returning the wrong column name or errors
> out when the attnum does not exist in the child, thoughts?
>
> something like this ....
>
> CREATE TABLE parent_like_stats (a int, b int, c int, d int);
> ALTER TABLE parent_like_stats DROP COLUMN b;
> CREATE STATISTICS s_parent ON a, c FROM parent_like_stats;
> CREATE TABLE child_like_stats (LIKE parent_like_stats INCLUDING 
> STATISTICS);
>
> other than this patches LGTM.
>
>
>

OK, here's a version that does that in a combined patch, and adjusts the 
function comments to mention we also remap the stxkeys. Releases before 
18 will need a little adjustment in the test files.


cheers


andrew

--
Andrew Dunstan
EDB:https://www.enterprisedb.com

Commits

  1. Fix attnum remapping in generateClonedExtStatsStmt()