pgsql: Fix handling of empty arrays in array_fill().

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix handling of empty arrays in array_fill().
Date: 2017-01-05 16:34:11
Message-ID: E1cPAzT-0002Me-R6@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix handling of empty arrays in array_fill().

array_fill(..., array[0]) produced an empty array, which is probably
what users expect, but it was a one-dimensional zero-length array
which is not our standard representation of empty arrays. Also, for
no very good reason, it rejected empty input arrays; that case should
be allowed and produce an empty output array.

In passing, remove the restriction that the input array(s) have lower
bound 1. That seems rather pointless, and it would have needed extra
complexity to make the check deal with empty input arrays.

Per bug #14487 from Andrew Gierth. It's been broken all along, so
back-patch to all supported branches.

Discussion: https://postgr.es/m/20170105152156.10135.64195@wrigleys.postgresql.org

Branch
------
REL9_2_STABLE

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

Modified Files
--------------
src/backend/utils/adt/arrayfuncs.c | 26 +++++++-------------------
src/test/regress/expected/arrays.out | 27 +++++++++++++++++++++++++++
src/test/regress/sql/arrays.sql | 8 ++++++++
3 files changed, 42 insertions(+), 19 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2017-01-05 17:31:43 pgsql: Fix possible crash reading pg_stat_activity.
Previous Message Simon Riggs 2017-01-05 10:40:47 pgsql: Fix format for TAP test docs