jsonb_to_tsvector should be immutable

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: Raw Message | Whole Thread | 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!

Responses

Browse pgsql-hackers by date

  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