Обсуждение: [BUGS] BUG #14745: to_tsvector(regconfig, json[b]) is NOT immutable
The following bug has been logged on the website: Bug reference: 14745 Logged by: Bob Jones Email address: 007reader@gmail.com PostgreSQL version: 10beta2 Operating system: Debian in Docker container Description: According to https://www.postgresql.org/about/news/1763/ Beta 2 marked to_tsvector(regconfig, json[b]) immutable, but it still doesn't work, at least in the docker version of Beta 2. Here is the result: create table test (j JSON, jb JSONB); CREATE TABLE create index j_ixd on test using gin(to_tsvector(j)); ERROR: functions in index expression must be marked IMMUTABLE create index jb_ixd on test using gin(to_tsvector(jb)); ERROR: functions in index expression must be marked IMMUTABLE -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
007reader@gmail.com writes: > According to https://www.postgresql.org/about/news/1763/ Beta 2 marked > to_tsvector(regconfig, json[b]) immutable, but it still doesn't work, at > least in the docker version of Beta 2. Here is the result: > create table test (j JSON, jb JSONB); > CREATE TABLE > create index j_ixd on test using gin(to_tsvector(j)); > ERROR: functions in index expression must be marked IMMUTABLE > create index jb_ixd on test using gin(to_tsvector(jb)); > ERROR: functions in index expression must be marked IMMUTABLE Um, but that's not the two-argument version of to_tsvector. You need something like regression=# create index j_ixd on test using gin(to_tsvector('english', j)); CREATE INDEX regression=# create index j_ixd2 on test using gin(to_tsvector('english', jb)); CREATE INDEX The point here is that the single-argument versions are affected by the configuration setting default_text_search_config, so they can't be used in an index. Nailing down which tsconfig to use makes them indexable. regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
On Sun, Jul 16, 2017 at 11:10 AM, <007reader@gmail.com> wrote:
to_tsvector(regconfig, json[b]) and to_tsvector(json[b]) are not the same thing.
The following bug has been logged on the website:
Bug reference: 14745
Logged by: Bob Jones
Email address: 007reader@gmail.com
PostgreSQL version: 10beta2
Operating system: Debian in Docker container
Description:
According to https://www.postgresql.org/about/news/1763/ Beta 2 marked
to_tsvector(regconfig, json[b]) immutable, but it still doesn't work, at
least in the docker version of Beta 2. Here is the result:
create table test (j JSON, jb JSONB);
CREATE TABLE
create index j_ixd on test using gin(to_tsvector(j));
ERROR: functions in index expression must be marked IMMUTABLE
Only the first is immutable, you are using the second.
Cheers,
Jeff