6
我有一個postgresql表,其中有一個數據類型='文本'列,其中我需要創建一個索引,涉及此類被轉換爲整型[]類型。但是,每當我嘗試這樣做,我得到以下錯誤:在文本列創建postgresql索引到數組
錯誤:在索引表達式功能必須註明IMMUTABLE
下面是代碼:
create table test (a integer[], b text);
insert into test values ('{10,20,30}','{40,50,60}');
CREATE INDEX index_test on test USING GIN (( b::integer[] ));
需要注意的是一個潛在的解決方法是創建一個標記爲IMMUTABLE的函數,它接收列值並在函數中執行類型轉換,但問題(除了增加開銷)是因爲我有許多不同的「目標」數組數據類型(EG:text [],int2 [],int4 []等等),並且不可能爲每個潛在的目標數組數據創建單獨的函數t YPE。
那麼你的問題是什麼? ;-) –
在郵件列表中也詢問了這個問題。如果你在Stack Overflow和郵件列表上提出問題,請說*你已經完成*並從郵件列表文章鏈接到Stack Overflow文章和/或從你的堆棧溢出問題鏈接到存檔列表文章。 [編輯:鑑於發佈日期的不同,可能是別人幾乎完全相同的問題。我的錯。] –