pg_dump: Fix incorrect parsing of object types in pg_dump --filter.

Previously, pg_dump --filter could misinterpret invalid object types
in the filter file as valid ones. For example, the invalid object type
"table-data" (likely a typo for the valid "table_data") could be
mistakenly recognized as "table", causing pg_dump to succeed
when it should have failed.

This happened because pg_dump identified keywords as sequences of
ASCII alphabetic characters, treating non-alphabetic characters
(like hyphens) as keyword boundaries. As a result, "table-data" was
parsed as "table".

To fix this, pg_dump --filter now treats keywords as strings of
non-whitespace characters, ensuring invalid types like "table-data"
are correctly rejected.

Back-patch to v17, where the --filter option was introduced.

Author: Fujii Masao <masao.fu...@gmail.com>
Reviewed-by: Xuneng Zhou <xunengz...@gmail.com>
Reviewed-by: Srinath Reddy <srinath2...@gmail.com>
Reviewed-by: Daniel Gustafsson <dan...@yesql.se>
Discussion: 
https://postgr.es/m/cahgqgwfzpkuwiv5c-nlbqz1ok1+z9k8cgrf+lcxfem-p3_f...@mail.gmail.com
Backpatch-through: 17

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/85ccd7e30a6dd378e025a918916f7b1d72004001

Modified Files
--------------
src/bin/pg_dump/filter.c                    | 13 ++++++++-----
src/bin/pg_dump/t/005_pg_dump_filterfile.pl | 14 ++++++++++----
2 files changed, 18 insertions(+), 9 deletions(-)

Reply via email to