Re: [sqlsmith] Failed assertion in TS_phrase_execute

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

In response to

Responses

Browse pgsql-hackers by date

  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