Re: Bug in pg_dump --filter? - Invalid object types can be misinterpreted as valid - Mailing list pgsql-hackers

From Srinath Reddy Sadipiralla
Subject Re: Bug in pg_dump --filter? - Invalid object types can be misinterpreted as valid
Date
Msg-id CAFC+b6rJneLNpAgan1ofvUvSHsVD-Xi5b-mhkszetPzU3RfVbQ@mail.gmail.com
Whole thread Raw
In response to Bug in pg_dump --filter? - Invalid object types can be misinterpreted as valid  (Fujii Masao <masao.fujii@gmail.com>)
List pgsql-hackers


On Sat, Aug 2, 2025 at 3:18 PM Fujii Masao <masao.fujii@gmail.com> wrote:
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"
--------------------------------------------


Hi Fujii-san , +1 for the patch , I have reviewed and tested it and LGTM.

--
Thanks,
Srinath Reddy Sadipiralla
EDB: https://www.enterprisedb.com/

pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: pg_dump --with-* options
Next
From: Nathan Bossart
Date:
Subject: Re: Remove INT64_HEX_FORMAT and UINT64_HEX_FORMAT