| From: | Josh Berkus <josh(at)berkus(dot)org> |
|---|---|
| To: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | jsonb_to_tsvector should be immutable |
| Date: | 2017-06-08 18:07:15 |
| Message-ID: | ec5775ba-a1bf-ad2c-8d05-5ffce1f0cd19@berkus.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Wanted to pull this out of my general report, because nobody seems to
have seen it:
P3: apparently jsonb_to_tsvector with lang parameter isn't immutable?
This means that it can't be used for indexing:
libdata=# create index bookdata_fts on bookdata using gin ((
to_tsvector('english',bookdata)));
ERROR: functions in index expression must be marked IMMUTABLE
... and indeed it's not:
select proname, prosrc, proargtypes, provolatile from pg_proc where
proname = 'to_tsvector';
proname | prosrc | proargtypes | provolatile
-------------+------------------------+-------------+-------------
to_tsvector | jsonb_to_tsvector | 3802 | s
to_tsvector | to_tsvector_byid | 3734 25 | i
to_tsvector | to_tsvector | 25 | s
to_tsvector | json_to_tsvector | 114 | s
to_tsvector | jsonb_to_tsvector_byid | 3734 3802 | s
to_tsvector | json_to_tsvector_byid | 3734 114 | s
Both of the _byid functions should be marked immutable, no? Otherwise
how can users use the new functions for indexing?
--
Josh Berkus
Containers & Databases Oh My!
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 2017-06-08 18:11:19 | Re: PG10 transition tables, wCTEs and multiple operations on the same table |
| Previous Message | Peter Geoghegan | 2017-06-08 18:05:43 | Re: PG10 transition tables, wCTEs and multiple operations on the same table |