Thread: Disparity in search_path SHOW and SET
-----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-----
"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
-----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-----
"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