在Postgresql中从search_path中提取第一个没有引号的模式

时间:2013-07-21 08:05:40

标签: postgresql

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

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

search_path将始终如下:

"068503358dddd23c",spikeadmin

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

我认为正则表达式可能是有序的吗?

1 个答案:

答案 0 :(得分:0)

问题是,PostgreSQL有一个quote_ident函数但没有合适的unquote函数。而"068503358dddd23c"quote_ident的输出。

所以你可以做点别的事情:

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

如果架构中包含,,则无效。但对于十六进制代码,这应该不是问题。