Re: Cleaning up array_in()
От | Alexander Lakhin |
---|---|
Тема | Re: Cleaning up array_in() |
Дата | |
Msg-id | 34a99683-6263-2985-4e0b-2ab2416433cd@gmail.com обсуждение исходный текст |
Ответ на | Cleaning up array_in() (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Cleaning up array_in()
|
Список | pgsql-hackers |
02.05.2023 18:41, Tom Lane wrote: > So, here's a rewrite. > > Although I view this as a bug fix, AFAICT the only effects are to > accept input that should be rejected. So again I don't advocate > back-patching. But should we sneak it into v16, or wait for v17? I've tested the patch from a user perspective and found no interesting cases that were valid before, but not accepted with the patch (or vice versa): The only thing that confused me, is the error message (it's not new, too): select '{{{{{{{{{{1}}}}}}}}}}'::int[]; or even: select '{{{{{{{{{{'::int[]; ERROR: number of array dimensions (7) exceeds the maximum allowed (6) Maybe it could be reworded like that?: too many opening braces defining dimensions (maximum dimensions allowed: 6) Beside that, I would like to note the following error text changes (all of these are feasible, I think): select '{{1},{{'::int[]; Before: ERROR: malformed array literal: "{{1},{{" LINE 1: select '{{1},{{'::int[]; ^ DETAIL: Unexpected end of input. After: ERROR: malformed array literal: "{{1},{{" LINE 1: select '{{1},{{'::int[]; ^ DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions. --- select '{{1},{{{{{{'::int[]; Before: ERROR: number of array dimensions (7) exceeds the maximum allowed (6) After: ERROR: malformed array literal: "{{1},{{{{{{" LINE 1: select '{{1},{{{{{{'::int[]; ^ DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions. --- select '{{1},{}}}'::int[]; Before: ERROR: malformed array literal: "{{1},{}}}" LINE 1: select '{{1},{}}}'::int[]; ^ DETAIL: Unexpected "}" character. After: ERROR: malformed array literal: "{{1},{}}}" LINE 1: select '{{1},{}}}'::int[]; ^ DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions. --- select '{{}}}'::int[]; Before: ERROR: malformed array literal: "{{}}}" LINE 1: select '{{}}}'::int[]; ^ DETAIL: Unexpected "}" character. After: ERROR: malformed array literal: "{{}}}" LINE 1: select '{{}}}'::int[]; ^ DETAIL: Junk after closing right brace. Best regards, Alexander
В списке pgsql-hackers по дате отправления: