mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Declare assorted array functions using anycompatible not anyelement.
Convert array_append, array_prepend, array_cat, array_position,
array_positions, array_remove, array_replace, and width_bucket
to use anycompatiblearray. This is a simple extension of commit
5c292e6b9
to hit some other places where there's a pretty obvious
gain in usability from doing so.
Ideally we'd also modify other functions taking multiple old-style
polymorphic arguments. But most of the remainder are tied into one
or more operator classes, making any such change a much larger can of
worms than I desire to open right now.
Discussion: https://postgr.es/m/77675130-89da-dab1-51dd-492c93dcf5d1@postgresfriends.org
This commit is contained in:
@ -311,6 +311,7 @@ SELECT ARRAY[[['hello','world']]] || ARRAY[[['happy','birthday']]] AS "ARRAY";
|
||||
SELECT ARRAY[[1,2],[3,4]] || ARRAY[5,6] AS "{{1,2},{3,4},{5,6}}";
|
||||
SELECT ARRAY[0,0] || ARRAY[1,1] || ARRAY[2,2] AS "{0,0,1,1,2,2}";
|
||||
SELECT 0 || ARRAY[1,2] || 3 AS "{0,1,2,3}";
|
||||
SELECT ARRAY[1.1] || ARRAY[2,3,4];
|
||||
|
||||
SELECT * FROM array_op_test WHERE i @> '{32}' ORDER BY seqno;
|
||||
SELECT * FROM array_op_test WHERE i && '{32}' ORDER BY seqno;
|
||||
@ -616,6 +617,7 @@ select array_remove(array[1,2,2,3], 2);
|
||||
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(array[1.0, 2.1, 3.3], 1);
|
||||
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);
|
||||
|
Reference in New Issue
Block a user