From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andreas Seltenreich <seltenreich(at)gmx(dot)de> |
Cc: | Oleg Bartunov <obartunov(at)gmail(dot)com>, Teodor Sigaev <teodor(at)sigaev(dot)ru>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: [sqlsmith] Failed assertion in TS_phrase_execute |
Date: | 2016-11-26 18:51:17 |
Message-ID: | 14732.1480186277@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Andreas Seltenreich <seltenreich(at)gmx(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2016-11-26 21:45:22 | Re: Parallel bitmap heap scan |
Previous Message | Andres Freund | 2016-11-26 16:41:28 | Re: Skipping PgStat_FunctionCallUsage for many expressions |