Andreas Seltenreich <seltenre...@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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers