BUG #18632: Whether you need to consider modifying the array's handling of delimiters?
От | PG Bug reporting form |
---|---|
Тема | BUG #18632: Whether you need to consider modifying the array's handling of delimiters? |
Дата | |
Msg-id | 18632-15cedd7d4154ea2a@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #18632: Whether you need to consider modifying the array's handling of delimiters?
Re: BUG #18632: Whether you need to consider modifying the array's handling of delimiters? |
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 18632 Logged by: Man Zeng Email address: zengman@halodbtech.com PostgreSQL version: 14.10 Operating system: centos-8 Description: Hi, I found a problem with array separator handling. The current handling of delimiters is not quite as expected (not very flexible). The test SQL and results are shown below. [postgres@halo-centos-8-release ~]$ psql psql (14.10) Type "help" for help. postgres=# CREATE OR REPLACE FUNCTION arrayfunc() postgres-# RETURNS _varchar postgres-# AS $$ postgres$# SELECT '{''a,3'',''b'',''c''}'::_varchar; postgres$# $$ LANGUAGE SQL; CREATE FUNCTION postgres=# -- array cstring postgres=# SELECT arrayfunc(); arrayfunc ----------------- {'a,3','b','c'} (1 row) postgres=# -- length is 4 postgres=# SELECT array_length(arrayfunc(), 1); array_length -------------- 4 (1 row) postgres=# -- first element postgres=# SELECT (arrayfunc())[1]; arrayfunc ----------- 'a (1 row) postgres=# -- second element postgres=# SELECT (arrayfunc())[2]; arrayfunc ----------- 3' (1 row) postgres=# -- other postgres=# SELECT (arrayfunc())[3]; arrayfunc ----------- 'b' (1 row) postgres=# SELECT (arrayfunc())[4]; arrayfunc ----------- 'c' (1 row) postgres=# -- The following SQL tests are as expected postgres=# CREATE OR REPLACE FUNCTION arrayfunc2() postgres-# RETURNS _varchar postgres-# AS $$ postgres$# SELECT '{''a-3'',''b'',''c''}'::_varchar; postgres$# $$ LANGUAGE SQL; CREATE FUNCTION postgres=# -- array cstring postgres=# SELECT arrayfunc2(); arrayfunc2 ----------------- {'a-3','b','c'} (1 row) postgres=# -- length is 3 postgres=# SELECT array_length(arrayfunc2(), 1); array_length -------------- 3 (1 row) postgres=# -- first element postgres=# SELECT (arrayfunc2())[1]; arrayfunc2 ------------ 'a-3' (1 row) So should we consider modifying "array_in" to enhance the handling of separators to be more consistent with people's expectations?
В списке pgsql-bugs по дате отправления: