Re: Cleaning up array_in()
Alexander Law <exclusion@gmail.com>
From: Alexander Lakhin <exclusion@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>,
Nikhil Benesch <nikhil.benesch@gmail.com>,
Nathan Bossart <nathandbossart@gmail.com>,
pgsql-hackers@lists.postgresql.org, jian he <jian.universality@gmail.com>
Date: 2023-11-08T15:00:00Z
Lists: pgsql-hackers
Hello Tom,
08.11.2023 02:52, Tom Lane wrote:
> Comments?
Thank you for the update! I haven't looked into the code, just did manual
testing and rechecked commands given in the arrays documentation ([1]).
Everything works correctly, except for one minor difference:
INSERT INTO sal_emp
VALUES ('Bill',
'{10000, 10000, 10000, 10000}',
'{{"meeting", "lunch"}, {"meeting"}}');
currently gives:
ERROR: malformed array literal: "{{"meeting", "lunch"}, {"meeting"}}"
LINE 4: '{{"meeting", "lunch"}, {"meeting"}}');
^
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
not
ERROR: multidimensional arrays must have array expressions with matching dimensions
It seems that this inconsistency appeared with 475aedd1e, so it's not new
at all, but maybe fix it or describe the error more generally. (Though it
might be supposed that "for example" covers slight deviations.)
[1] https://www.postgresql.org/docs/devel/arrays.html
Best regards,
Alexander
Commits
-
Don't specify number of dimensions in cases where we don't know it.
- 8d5573b92e66 17.0 landed
-
Improve readability and error detection of array_in().
- 83472de606db 17.0 landed
-
Add trailing commas to enum definitions
- 611806cd726f 17.0 cited