11
CREATE INDEX message_fulltext_idx ON feedback USING gin(to_tsvector(message));
ERROR: functions in index predicate must be marked IMMUTABLE
Jak tego uniknąć?Postgres indeksy pełny
CREATE INDEX message_fulltext_idx ON feedback USING gin(to_tsvector(message));
ERROR: functions in index predicate must be marked IMMUTABLE
Jak tego uniknąć?Postgres indeksy pełny
Musisz dołączyć opcjonalny parametr konfiguracyjny. Bez tego funkcja nie jest niezmienna. Na przykład, jeśli chcesz przetworzyć standardowy tekst w języku angielskim:
CREATE INDEX message_fulltext_idx ON feedback
USING gin(to_tsvector('english', message));
To jest poprawna odpowiedź. Pierwsza forma 'to_tsvector' użyje domyślnego parametru konfiguracyjnego, który pochodzi z ustawienia' default_text_search_config'. Ponieważ jest to zmienne ustawienie, funkcja nie jest niezmienna. Gdyby się to zmieniło, istniejący indeks oparty na niezmiennej funkcji byłby cicho uszkodzony. Więc jest to zabronione. Zobacz http://www.postgresql.org/docs/current/static/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX. – Edmund