tighten generic_option_name, or store more carefully in catalog?

Chapman Flack <jcflack@acm.org>

From: Chapman Flack <jcflack@acm.org>
To: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-05-23T21:40:00Z
Lists: pgsql-hackers
Hi,

generic_option_name is a ColLabel, therefore a fully general SQL identifier.

But a command like CREATE FOREIGN DATA WRAPPER w ... OPTIONS ("a=b" 'c=d')
stores {a=b=c=d} in fdwoptions, from which the original intent can't be
recovered.

Should generic_option_name be restricted to be a regular identifier,
or allowed to be a delimited identifier but with = forbidden within it,
or should it be represented as delimited in the catalog when necessary
so it can be recovered faithfully?

SQL rules would also make its case-sensitivity dependent on faithfully
recovering whether it was delimited or not.

Regards,
-Chap



Commits

  1. Disallow "=" in names of reloptions and foreign-data options.