Andreas Seltenreich <[email protected]> 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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers