Fix regrole and regnamespace types to honor quoting like other reg* types.
Tom Lane <tgl@sss.pgh.pa.us>
Fix regrole and regnamespace types to honor quoting like other reg* types. Aside from any consistency arguments, this is logically necessary because the I/O functions for these types also handle numeric OID values. Without a quoting rule it is impossible to distinguish numeric OIDs from role or namespace names that happen to contain only digits. Also change the to_regrole and to_regnamespace functions to dequote their arguments. While not logically essential, this seems like a good idea since the other to_reg* functions do it. Anyone who really wants raw lookup of an uninterpreted name can fall back on the time-honored solution of (SELECT oid FROM pg_namespace WHERE nspname = whatever). Report and patch by Jim Nasby, reviewed by Michael Paquier
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/regproc.c | modified | +40 −8 |
| src/test/regress/expected/regproc.out | modified | +125 −44 |
| src/test/regress/sql/regproc.sql | modified | +36 −8 |