Fix ts_delete(tsvector, text[]) to cope with duplicate array entries.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: c50d192ce33c10fa06411306f8644b4f47ce9a06
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2016-08-05T19:14:19Z
Releases: 9.6.0
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>

Files