Thread: pgsql: arrays: tighten checks for multi-dimensional input
arrays: tighten checks for multi-dimensional input Previously an input array string that started with a single-element array dimension would then later accept a multi-dimensional segment. BACKWARD INCOMPATIBILITY Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/d0ee93797d9c06e619b3f382705d99ee195bb573 Modified Files -------------- src/backend/utils/adt/arrayfuncs.c | 8 ++++---- src/test/regress/expected/arrays.out | 2 +- src/test/regress/sql/arrays.sql | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-)
On Sat, 2014-02-01 at 15:49 +0000, Bruce Momjian wrote: > arrays: tighten checks for multi-dimensional input > > Previously an input array string that started with a single-element > array dimension would then later accept a multi-dimensional segment. > > BACKWARD INCOMPATIBILITY -select cardinality('{{{1}},{{2,3},{3,4}}}'::int[]); +select cardinality('{{{1,9},{5,6}},{{2,3},{3,4}}}'::int[]); cardinality ------------- 8 I was a little confused by this change: the query changed, but the results did not. Was that a bugfix, or were the original semantics intentional? I didn't immediately find the thread where this was discussed, so if you send a link that might answer my question. Regards, Jeff Davis
On Tue, Feb 4, 2014 at 11:21:24AM -0800, Jeff Davis wrote: > On Sat, 2014-02-01 at 15:49 +0000, Bruce Momjian wrote: > > arrays: tighten checks for multi-dimensional input > > > > Previously an input array string that started with a single-element > > array dimension would then later accept a multi-dimensional segment. > > > > BACKWARD INCOMPATIBILITY > > -select cardinality('{{{1}},{{2,3},{3,4}}}'::int[]); > +select cardinality('{{{1,9},{5,6}},{{2,3},{3,4}}}'::int[]); > cardinality > ------------- > 8 > > I was a little confused by this change: the query changed, but the > results did not. Was that a bugfix, or were the original semantics > intentional? Yes. the problem was that the new checking would throw an error for that misformed array. > I didn't immediately find the thread where this was discussed, so if you > send a link that might answer my question. Here is the spot in the thread where I replied: http://www.postgresql.org/message-id/20140201011125.GG19957@momjian.us -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + Everyone has their own god. +