Fix ts_delete(tsvector, text[]) to cope with duplicate array entries.
Tom Lane <tgl@sss.pgh.pa.us>
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
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/tsvector_op.c | modified | +46 −31 |
| src/test/regress/expected/tstypes.out | modified | +6 −0 |
| src/test/regress/sql/tstypes.sql | modified | +1 −0 |