Remove pg_authid's TOAST table.
authorNathan Bossart <[email protected]>
Sat, 21 Sep 2024 20:17:46 +0000 (15:17 -0500)
committerNathan Bossart <[email protected]>
Sat, 21 Sep 2024 20:17:46 +0000 (15:17 -0500)
commit6aa44060a3c94ee10273bb8a89e98a5bb2fbbacb
tree860a2df0a7b7b30c95acdf9ad8d0a8b7eaeb0dcd
parentc4d5cb71d229095a39fda1121a75ee40e6069a2a
Remove pg_authid's TOAST table.

pg_authid's only varlena column is rolpassword, which unfortunately
cannot be de-TOASTed during authentication because we haven't
selected a database yet and cannot read pg_class.  By removing
pg_authid's TOAST table, attempts to set password hashes that
require out-of-line storage will fail with a "row is too big"
error instead.  We may want to provide a more user-friendly error
in the future, but for now let's just remove the useless TOAST
table.

Bumps catversion.

Reported-by: Alexander Lakhin
Reviewed-by: Tom Lane, Michael Paquier
Discussion: https://postgr.es/m/89e8649c-eb74-db25-7945-6d6b23992394%40gmail.com
src/backend/catalog/catalog.c
src/include/catalog/catversion.h
src/include/catalog/pg_authid.h
src/test/regress/expected/create_index.out
src/test/regress/expected/misc_sanity.out
src/test/regress/expected/tablespace.out
src/test/regress/sql/create_index.sql
src/test/regress/sql/misc_sanity.sql
src/test/regress/sql/tablespace.sql