mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
Don't emit non-canonical empty arrays in array_remove().
Dean Rasheed
This commit is contained in:
parent
01497e738e
commit
97c4d9b7c7
@ -5398,6 +5398,14 @@ array_replace_internal(ArrayType *array,
|
||||
return array;
|
||||
}
|
||||
|
||||
/* If all elements were removed return an empty array */
|
||||
if (nresult == 0)
|
||||
{
|
||||
pfree(values);
|
||||
pfree(nulls);
|
||||
return construct_empty_array(element_type);
|
||||
}
|
||||
|
||||
/* Allocate and initialize the result array */
|
||||
if (hasnulls)
|
||||
{
|
||||
|
@ -1577,6 +1577,12 @@ select array_remove(array['A','CC','D','C','RR'], 'RR');
|
||||
|
||||
select array_remove('{{1,2,2},{1,4,3}}', 2); -- not allowed
|
||||
ERROR: removing elements from multidimensional arrays is not supported
|
||||
select array_remove(array['X','X','X'], 'X') = '{}';
|
||||
?column?
|
||||
----------
|
||||
t
|
||||
(1 row)
|
||||
|
||||
select array_replace(array[1,2,5,4],5,3);
|
||||
array_replace
|
||||
---------------
|
||||
|
@ -438,6 +438,7 @@ select array_remove(array[1,2,2,3], 5);
|
||||
select array_remove(array[1,NULL,NULL,3], NULL);
|
||||
select array_remove(array['A','CC','D','C','RR'], 'RR');
|
||||
select array_remove('{{1,2,2},{1,4,3}}', 2); -- not allowed
|
||||
select array_remove(array['X','X','X'], 'X') = '{}';
|
||||
select array_replace(array[1,2,5,4],5,3);
|
||||
select array_replace(array[1,2,5,4],5,NULL);
|
||||
select array_replace(array[1,2,NULL,4,NULL],NULL,5);
|
||||
|
Loading…
Reference in New Issue
Block a user