[BUGS] BUG #14623: pg_trgm doesn't correctly process some regexp withnegative lookahead
От | jeff.janes@gmail.com |
---|---|
Тема | [BUGS] BUG #14623: pg_trgm doesn't correctly process some regexp withnegative lookahead |
Дата | |
Msg-id | 20170413180503.25948.94871@wrigleys.postgresql.org обсуждение исходный текст |
Ответы |
Re: [BUGS] BUG #14623: pg_trgm doesn't correctly process some regexp with negative lookahead
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 14623 Logged by: Jeff Janes Email address: jeff.janes@gmail.com PostgreSQL version: 9.6.2 Operating system: Linux Description: I'm reporting this bug based on https://dba.stackexchange.com/questions/170669/postgres-function-index-doesnt-work-correctly-with-regular-expressions/170897#170897 This simplified case is easy to reproduce back to at least 9.4, and is still present in 10dev HEAD. Matches are missed when using the trgm index, but not when doing the full table scan. create table foobar (x text); insert into foobar values ('eldrazi scion'),('eldrazi scio'); create extension pg_trgm ; create index on foobar using gin (x gin_trgm_ops); select * from foobar where x ~ 'eldrazi (?!scion)'; -- returns 1 row set enable_seqscan TO off; select * from foobar where x ~ 'eldrazi (?!scion)'; -- returns 0 rows Building a gist rather than gin index exhibits the same bug. The trigrams seem to be extracted correctly, but the graph stuffed into extra_data is not correct. Looking at /tmp/packed.dot, there are no arrays pointing to the successful termination state s1. Instead, I get lead to a dead-end state s7. If I change the regexp to 'eldrazi (?!s)', then bug goes away, and /tmp/packed.dot shows the correct graph pointing to s1. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
В списке pgsql-bugs по дате отправления: