Re: [sqlsmith] Failed assertion in TS_phrase_execute
От | Tom Lane |
---|---|
Тема | Re: [sqlsmith] Failed assertion in TS_phrase_execute |
Дата | |
Msg-id | 14732.1480186277@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | [sqlsmith] Failed assertion in TS_phrase_execute (Andreas Seltenreich <seltenreich@gmx.de>) |
Ответы |
Re: [sqlsmith] Failed assertion in TS_phrase_execute
|
Список | pgsql-hackers |
Andreas Seltenreich <seltenreich@gmx.de> writes: > the query below triggers an assertion in TS_phrase_execute. Testing was > done on master at dbdfd11. > -- TRAP: FailedAssertion("!(curitem->qoperator.oper == 4)", File: "tsvector_op.c", Line: 1432) > select 'moscow' @@ > ts_rewrite('moscow', 'moscow', > ts_rewrite( > tsquery_phrase('moscow','moscow'), > 'moscow', > $$ 'sanct' & 'peter'$$)); Hmm. If you run the ts_rewrite alone, it prints regression=# select ts_rewrite('moscow', 'moscow', ts_rewrite( tsquery_phrase('moscow','moscow'), 'moscow', $$ 'sanct' & 'peter'$$)); ts_rewrite -------------------------------------------------( 'sanct' & 'peter' ) <-> ( 'sanct' & 'peter' ) (1 row) and if you put that in explicitly, all's well: regression=# select 'moscow' @@ $$( 'sanct' & 'peter' ) <-> ( 'sanct' & 'peter' )$$::tsquery;?column? ----------f (1 row) but I notice that some normalization seems to be getting done by tsqueryin: regression=# select $$( 'sanct' & 'peter' ) <-> ( 'sanct' & 'peter' )$$::tsquery; tsquery -------------------------------------------------------------------------------- -------'sanct' <-> 'sanct' & 'peter' <-> 'sanct' & 'sanct' <-> 'peter' & 'peter' <-> ' peter' (1 row) so this seems to boil down to ts_rewrite failing to apply required normalization. Or maybe the normalization shouldn't be required. regards, tom lane
В списке pgsql-hackers по дате отправления: