Re: CREATE FUNCTION ... SEARCH { DEFAULT | SYSTEM | SESSION }

Jeff Davis <pgsql@j-davis.com>

From: Jeff Davis <pgsql@j-davis.com>
To: Joe Conway <mail@joeconway.com>, Robert Haas <robertmhaas@gmail.com>
Cc: Peter Eisentraut <peter@eisentraut.org>, pgsql-hackers@postgresql.org
Date: 2023-09-25T18:03:01Z
Lists: pgsql-hackers
On Mon, 2023-09-25 at 12:00 -0400, Joe Conway wrote:
> Should there be a way to have a separate "execution" search_path?

I hadn't considered that and I like that idea for a few reasons:

  * a lot of the problem cases are for functions that don't need to
access tables at all, e.g., in an index expression.
  * it avoids annoyances with pg_temp, because that's not searched for
functions/operators anyway
  * perhaps we could force the object search_path to be empty for
IMMUTABLE functions?

I haven't thought it through in detail, but it seems like a promising
approach.

Regards,
	Jeff Davis




Commits

  1. Cache opaque handle for GUC option to avoid repeasted lookups.

  2. Add cache for recomputeNamespacePath().