mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Implement max() and min() aggregates for array types. Patch from Koju
Iijima, reviewed by Neil Conway. Catalog version number bumped, regression tests updated.
This commit is contained in:
@ -217,3 +217,28 @@ select '{
|
||||
@ 1 hour @ 42 minutes @ 20 seconds
|
||||
}'::interval[];
|
||||
-- all of the above should be accepted
|
||||
|
||||
-- tests for array aggregates
|
||||
CREATE TEMP TABLE arraggtest ( f1 INT[], f2 TEXT[][], f3 FLOAT[]);
|
||||
|
||||
INSERT INTO arraggtest (f1, f2, f3) VALUES
|
||||
('{1,2,3,4}','{{grey,red},{blue,blue}}','{1.6, 0.0}');
|
||||
INSERT INTO arraggtest (f1, f2, f3) VALUES
|
||||
('{1,2,3}','{{grey,red},{grey,blue}}','{1.6}');
|
||||
SELECT max(f1), min(f1), max(f2), min(f2), max(f3), min(f3) FROM arraggtest;
|
||||
|
||||
INSERT INTO arraggtest (f1, f2, f3) VALUES
|
||||
('{3,3,2,4,5,6}','{{white,yellow},{pink,orange}}','{2.1,3.3,1.8,1.7,1.6}');
|
||||
SELECT max(f1), min(f1), max(f2), min(f2), max(f3), min(f3) FROM arraggtest;
|
||||
|
||||
INSERT INTO arraggtest (f1, f2, f3) VALUES
|
||||
('{2}','{{black,red},{green,orange}}','{1.6,2.2,2.6,0.4}');
|
||||
SELECT max(f1), min(f1), max(f2), min(f2), max(f3), min(f3) FROM arraggtest;
|
||||
|
||||
INSERT INTO arraggtest (f1, f2, f3) VALUES
|
||||
('{4,2,6,7,8,1}','{{red},{black},{purple},{blue},{blue}}',NULL);
|
||||
SELECT max(f1), min(f1), max(f2), min(f2), max(f3), min(f3) FROM arraggtest;
|
||||
|
||||
INSERT INTO arraggtest (f1, f2, f3) VALUES
|
||||
('{}','{{pink,white,blue,red,grey,orange}}','{2.1,1.87,1.4,2.2}');
|
||||
SELECT max(f1), min(f1), max(f2), min(f2), max(f3), min(f3) FROM arraggtest;
|
||||
|
Reference in New Issue
Block a user