0

我想使用 postgres 本身从 postgres search_path 中提取第一个模式。实际函数需要在更大的 SELECT 中作为 WHERE 子句中的条件工作:

SELECT * from something WHERE domain_hash = THEFUNCTION AND etc...

search_path 将始终类似于:

"068503358dddd23c",spikeadmin

我希望该函数在068503358dddd23c没有引号的情况下返回。

我在想一个正则表达式可能是为了?

4

1 回答 1

0

问题是,PostgreSQL 有一个quote_ident函数但没有适当的取消引用函数。并且"068503358dddd23c"是 的输出quote_ident

所以你可以做其他事情:

SELECT * FROM something 
    WHERE 
        quote_ident(domainhash) = split_part(current_setting('search_path'), ',', 1)
        AND /* whatever */

如果其中包含架构,这将不起作用,。但是对于十六进制代码,这应该不是问题。

于 2013-07-21T16:48:37.863 回答