Обсуждение: Disparity in search_path SHOW and SET

Поиск
Список
Период
Сортировка

Disparity in search_path SHOW and SET

От
"Greg Sabino Mullane"
Дата:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


I'm trying to figure out a way to modify the search_path temporarily, but
the "$user" construct is making this difficult. I need to prepend a schema
to the path. This works fine:

SELECT set_config('search_path', '$schema,' || current_setting('search_path'), true);

...but does not last outside of a transaction.

The problem is really that the output of "SHOW search_path" cannot be fed
back into "SET search_path" if the search_path contains the string "$user".

My only option appears to be to have the application parse the string returned
from SHOW search_path, quote the dollar-values, and rebuild the string. Is
there an easier way?

- --
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 200512201205
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iD8DBQFDqDvOvJuQZxSWSsgRAgUKAKDrRJoCfe8M7Fe2mi+/KFlEKKn+fQCgthpw
jPV95zpbejZsaRvIBeLd8rM=
=xRza
-----END PGP SIGNATURE-----




Re: Disparity in search_path SHOW and SET

От
Tom Lane
Дата:
"Greg Sabino Mullane" <greg@turnstep.com> writes:
> This works fine:

> SELECT set_config('search_path', '$schema,' || current_setting('search_path'), true);

> ...but does not last outside of a transaction.

Well, sure, because you told it to.  Why isn't the last parameter
"false"?
        regards, tom lane


Re: Disparity in search_path SHOW and SET

От
"Greg Sabino Mullane"
Дата:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


> Well, sure, because you told it to.  Why isn't the last parameter "false"?

Thanks. I knew I was overlooking something. I've obviously been staring at
the code too long. :) Still, would it make more sense for SHOW search_path
to return this:

"$user",public

- --
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 200512201227
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iD8DBQFDqD83vJuQZxSWSsgRAj1gAKDIRGqzD7zORJQwrxLM+oKWOiAPKgCg9/xK
OGZIoWEnLdw+Qi71lKbCg0g=
=0dBJ
-----END PGP SIGNATURE-----




Re: Disparity in search_path SHOW and SET

От
Tom Lane
Дата:
"Greg Sabino Mullane" <greg@turnstep.com> writes:
> Still, would it make more sense for SHOW search_path
> to return this:
> "$user",public

Can't get excited about it.  SHOW is meant for human consumption,
not programs ...
        regards, tom lane