暂无个人介绍
自己暂时解决了,问题出在::date转换上,把jsonb里的date字符串转成date格式,内置的方法,均不是immutable属性(稳定属性),所以不允许建立索引。包括to_date()函数。
解决办法:自己按照内置的to_date()函数,改一个to_date_immutable()函数。
然后给to_date_immutable()函数immutable属性。
然后用自己的to_date_immutable()函数转换格式。就可以创建索引了。
虽然官方不建议在非immutable属性上强行索引,但是为了解决问题。。。没办法了
谁有更好的办法,可以留言哈~!
创建函数代码:
CREATE OR REPLACE FUNCTION to_date_immutable(
text,
text)
RETURNS date AS
'to_date'
LANGUAGE internal immutable STRICT
COST 1;
ALTER FUNCTION to_date_immutable(text, text)
OWNER TO postgres;
COMMENT ON FUNCTION to_date_immutable(text, text) IS 'convert text to date';
建立索引代码:
create index item_date_idx on item using btree((to_date_immutable(info_bak->>'release_date','yyyy-mm-dd')));