]> granicus.if.org Git - postgresql/commit
Fix ts_delete(tsvector, text[]) to cope with duplicate array entries.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 5 Aug 2016 19:14:08 +0000 (15:14 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 5 Aug 2016 19:14:19 +0000 (15:14 -0400)
commitc50d192ce33c10fa06411306f8644b4f47ce9a06
treeeaa0ac8af76c72925d3678170d6df8585f8ad7f0
parent33fe7360afdc0bb1820743ea5bfe3fc7d522f6c4
Fix ts_delete(tsvector, text[]) to cope with duplicate array entries.

Such cases either failed an Assert, or produced a corrupt tsvector in
non-Assert builds, as reported by Andreas Seltenreich.  The reason is
that tsvector_delete_by_indices() just assumed that its input array had
no duplicates.  Fix by explicitly de-duping.

In passing, improve some comments, and fix a number of tests for null
values to use ERRCODE_NULL_VALUE_NOT_ALLOWED not
ERRCODE_INVALID_PARAMETER_VALUE.

Discussion: <87invhoj6e.fsf@credativ.de>
src/backend/utils/adt/tsvector_op.c
src/test/regress/expected/tstypes.out
src/test/regress/sql/tstypes.sql