[COMMITTERS] pgsql: Prevent crash when ts_rewrite() replaces a non-top-levelsubtree - Mailing list pgsql-committers

From Tom Lane
Subject [COMMITTERS] pgsql: Prevent crash when ts_rewrite() replaces a non-top-levelsubtree
Date
Msg-id E1cG8Zi-0007C9-71@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Prevent crash when ts_rewrite() replaces a non-top-level subtree with null.

When ts_rewrite()'s replacement argument is an empty tsquery, it's supposed
to simplify any operator nodes whose operand(s) become NULL; but it failed
to do that reliably, because dropvoidsubtree() only examined the top level
of the result tree.  Rather than make a second recursive pass, let's just
give the responsibility to dofindsubquery() to simplify while it's doing
the main replacement pass.  Per report from Andreas Seltenreich.

Artur Zakirov, with some cosmetic changes by me.  Back-patch to all
supported branches.

Discussion: https://postgr.es/m/8737i01dew.fsf@credativ.de

Branch
------
REL9_2_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/f4ccee408d7fc9d52adf9a9153130f1298e3acb1

Modified Files
--------------
src/backend/utils/adt/tsquery_rewrite.c | 58 ++++++++++++++++-----------------
src/test/regress/expected/tsearch.out   | 15 +++++++++
src/test/regress/sql/tsearch.sql        |  3 ++
3 files changed, 47 insertions(+), 29 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: [COMMITTERS] pgsql: Be more careful about Python refcounts while creatingexception
Next
From: Tom Lane
Date:
Subject: [COMMITTERS] pgsql: Use "%option prefix" to set API names in ecpg's lexer.