From: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Bug in pg_dump --filter? - Invalid object types can be misinterpreted as valid |
Date: | 2025-08-02 09:47:42 |
Message-ID: | CAHGQGwFzPKUwiV5C-NLBqz1oK1+z9K8cgrF+LcxFem-p3_Ftug@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
It looks like pg_dump --filter can mistakenly treat invalid object types
in the filter file as valid ones. For example, the invalid type "table-data"
(probably a typo for "table_data") is incorrectly recognized as "table",
and pg_dump runs without error when it should fail.
--------------------------------------------
$ cat filter.txt
exclude table-data one
$ pg_dump --filter filter.txt
--
-- PostgreSQL database dump
--
...
$ echo $?
0
--------------------------------------------
This happens because pg_dump (filter_get_keyword() in pg_dump/filter.c)
identifies tokens as sequences of ASCII alphabetic characters, treating
non-alphabetic characters (like hyphens) as token boundaries. As a result,
"table-data" is parsed as "table".
To fix this, I've attached the patch that updates pg_dump --filter so that
it treats tokens as strings of non-space characters separated by spaces
or line endings, ensuring invalid types like "table-data" are correctly
rejected. Thought?
With the patch:
--------------------------------------------
$ cat filter.txt
exclude table-data one
$ pg_dump --filter filter.txt
pg_dump: error: invalid format in filter read from file "filter.txt"
on line 1: unsupported filter object type: "table-data"
--------------------------------------------
Regards,
--
Fujii Masao
Attachment | Content-Type | Size |
---|---|---|
v1-0001-pg_dump-Fix-incorrect-parsing-of-object-types-in-.patch | application/octet-stream | 4.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Etsuro Fujita | 2025-08-02 09:50:48 | Re: Document transition table triggers are not allowed on views/foreign tables |
Previous Message | Peter Eisentraut | 2025-08-02 09:09:16 | Remove INT64_HEX_FORMAT and UINT64_HEX_FORMAT |