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

Reply via email to