public inbox for [email protected]
help / color / mirror / Atom feedFrom: Maksim.Melnikov <[email protected]>
To: [email protected]
Subject: Dump statistic issue with index on expressions
Date: Wed, 25 Feb 2026 19:37:24 +0300
Message-ID: <[email protected]> (raw)
Hi hackers.
There is an issue on new feature dump statistics related to index
processing.
In case when table has more then one index and if one of them is index
on expressions
we can get error like this:
pg_dump --verbose --statistics-only > /dev/null
...
pg_dump: reading subscriptions
pg_dump: reading subscription membership of tables
pg_dump: reading dependency data
pg_dump: saving encoding = UTF8
pg_dump: saving "standard_conforming_strings = on"
pg_dump: saving "search_path = "
pg_dump: error: could not find index attname "source_system"
For clarity, schema ddl attached
CREATE TABLE test_table_stats (
id uuid NOT NULL,
body jsonb,
source_system character varying,
source_id character varying,
model_name character varying NOT NULL
);
CREATE INDEX test_table_stats_source_system_text ON test_table_stats
USING btree (upper((source_system)::text));
CREATE UNIQUE INDEX test_table_stats_json_system_un ON test_table_stats
USING btree (source_system, source_id, model_name);
When pg_dump sequentially process indexes in case when index is
processed after index on expression,
it can use index attrs names of previously processed index. I've
attached simple patch to fix it.
Best regards
Melnikov Maksim
Attachments:
[text/x-patch] 0001-Dump-statistic-issue-with-index-on-expressions.patch (1.5K, 2-0001-Dump-statistic-issue-with-index-on-expressions.patch)
download | inline diff:
From 7af2b54d114ee2cb6bf55900e3f93b670bd29422 Mon Sep 17 00:00:00 2001
From: Maksim Melnikov <[email protected]>
Date: Wed, 25 Feb 2026 15:43:17 +0300
Subject: [PATCH] Dump statistic issue with index on expressions.
There is an issue on new feature dump statistics related to index
processing. In case when table has more then one index and if one
of them is index on expressions we can get dump error: could not
find index attname "att_name".
When pg_dump sequentially process indexes in case when index is
processed after index on expression, it can use index attrs names
of previously processed index.
---
src/bin/pg_dump/pg_dump.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 450cec285b3..7bdc2a027d9 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -8070,8 +8070,6 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
{
Oid indrelid = atooid(PQgetvalue(res, j, i_indrelid));
TableInfo *tbinfo = NULL;
- char **indAttNames = NULL;
- int nindAttNames = 0;
int numinds;
/* Count rows for this table */
@@ -8105,6 +8103,8 @@ getIndexes(Archive *fout, TableInfo tblinfo[], int numTables)
{
char contype;
char indexkind;
+ char **indAttNames = NULL;
+ int nindAttNames = 0;
RelStatsInfo *relstats;
int32 relpages = atoi(PQgetvalue(res, j, i_relpages));
int32 relallvisible = atoi(PQgetvalue(res, j, i_relallvisible));
--
2.43.0
view thread (3+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: Dump statistic issue with index on expressions
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox