[17] Special search_path names "!pg_temp" and "!pg_catalog"

From: Jeff Davis <pgsql(at)j-davis(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: [17] Special search_path names "!pg_temp" and "!pg_catalog"
Date: 2023-08-18 21:44:31
Message-ID: a6865db287596c9c6ea12bdd9de87216cb5e7902.camel@j-davis.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

The attached patch adds some special names to prevent pg_temp and/or
pg_catalog from being included implicitly.

This is a useful safety feature for functions that don't have any need
to search pg_temp.

The current (v16) recommendation is to include pg_temp last, which does
add to the safety, but it's confusing to *include* a namespace when
your intention is actually to *exclude* it, and it's also not
completely excluding pg_temp.

Although the syntax in the attached patch is not much friendlier, at
least it's clear that the intent is to exclude pg_temp. Furthermore, it
will be friendlier if we adopt the SEARCH SYSTEM syntax proposed in
another thread[1].

Additionally, this patch adds a WARNING when creating a schema that
uses one of these special names. Previously, there was no warning when
creating a schema with the name "$user", which could cause confusion.

[1]
https://www.postgresql.org/message-id/flat/2710f56add351a1ed553efb677408e51b060e67c(dot)camel(at)j-davis(dot)com

--
Jeff Davis
PostgreSQL Contributor Team - AWS

Attachment Content-Type Size
0001-Special-names-pg_temp-and-pg_catalog-for-search_path.patch text/x-patch 9.2 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2023-08-18 22:19:06 Re: Use of additional index columns in rows filtering
Previous Message Chapman Flack 2023-08-18 21:02:52 Re: Extract numeric filed in JSONB more effectively