From: Tom Lane Date: Wed, 3 Jun 2009 18:42:13 +0000 (+0000) Subject: Fix tsquerysel() to not fail on an empty TSQuery. Per report from X-Git-Tag: REL8_4_RC1~58 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a734979e0a786276e3dc1d4755f025d664a4a4de;p=postgresql Fix tsquerysel() to not fail on an empty TSQuery. Per report from Tatsuo Ishii. --- diff --git a/src/backend/tsearch/ts_selfuncs.c b/src/backend/tsearch/ts_selfuncs.c index 27cb30f77b..890019c058 100644 --- a/src/backend/tsearch/ts_selfuncs.c +++ b/src/backend/tsearch/ts_selfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/tsearch/ts_selfuncs.c,v 1.2 2009/01/01 17:23:48 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/tsearch/ts_selfuncs.c,v 1.3 2009/06/03 18:42:13 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -146,19 +146,23 @@ static Selectivity tsquerysel(VariableStatData *vardata, Datum constval) { Selectivity selec; + TSQuery query; + + /* The caller made sure the const is a TSQuery, so get it now */ + query = DatumGetTSQuery(constval); + + /* Empty query matches nothing */ + if (query->size == 0) + return (Selectivity) 0.0; if (HeapTupleIsValid(vardata->statsTuple)) { - TSQuery query; Form_pg_statistic stats; Datum *values; int nvalues; float4 *numbers; int nnumbers; - /* The caller made sure the const is a TSQuery, so get it now */ - query = DatumGetTSQuery(constval); - stats = (Form_pg_statistic) GETSTRUCT(vardata->statsTuple); /* MCELEM will be an array of TEXT elements for a tsvector column */