mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
A few additional test cases for array functionality
This commit is contained in:
@ -725,7 +725,14 @@ select * from arr_tbl where f1 > '{1,2,3}' and f1 <= '{1,5,3}';
|
|||||||
{1,5,3}
|
{1,5,3}
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
-- note: if above select doesn't produce the expected tuple order,
|
select * from arr_tbl where f1 >= '{1,2,3}' and f1 < '{1,5,3}';
|
||||||
|
f1
|
||||||
|
----------
|
||||||
|
{1,2,3}
|
||||||
|
{1,2,10}
|
||||||
|
(2 rows)
|
||||||
|
|
||||||
|
-- note: if above selects don't produce the expected tuple order,
|
||||||
-- then you didn't get an indexscan plan, and something is busted.
|
-- then you didn't get an indexscan plan, and something is busted.
|
||||||
reset enable_seqscan;
|
reset enable_seqscan;
|
||||||
reset enable_bitmapscan;
|
reset enable_bitmapscan;
|
||||||
@ -858,6 +865,12 @@ select array[]::text[];
|
|||||||
{}
|
{}
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
select '[0:1]={1.1,2.2}'::float8[];
|
||||||
|
float8
|
||||||
|
-----------------
|
||||||
|
[0:1]={1.1,2.2}
|
||||||
|
(1 row)
|
||||||
|
|
||||||
-- all of the above should be accepted
|
-- all of the above should be accepted
|
||||||
-- tests for array aggregates
|
-- tests for array aggregates
|
||||||
CREATE TEMP TABLE arraggtest ( f1 INT[], f2 TEXT[][], f3 FLOAT[]);
|
CREATE TEMP TABLE arraggtest ( f1 INT[], f2 TEXT[][], f3 FLOAT[]);
|
||||||
@ -1014,3 +1027,51 @@ ERROR: wrong number of array_subscripts
|
|||||||
DETAIL: Low bound array has different size than dimensions array.
|
DETAIL: Low bound array has different size than dimensions array.
|
||||||
select array_fill(1, array[1,2,null]);
|
select array_fill(1, array[1,2,null]);
|
||||||
ERROR: dimension values cannot be null
|
ERROR: dimension values cannot be null
|
||||||
|
select string_to_array('1|2|3', '|');
|
||||||
|
string_to_array
|
||||||
|
-----------------
|
||||||
|
{1,2,3}
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select string_to_array('1|2|3|', '|');
|
||||||
|
string_to_array
|
||||||
|
-----------------
|
||||||
|
{1,2,3,""}
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select string_to_array('1||2|3||', '||');
|
||||||
|
string_to_array
|
||||||
|
-----------------
|
||||||
|
{1,2|3,""}
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select string_to_array('1|2|3', '');
|
||||||
|
string_to_array
|
||||||
|
-----------------
|
||||||
|
{1|2|3}
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select string_to_array('', '|');
|
||||||
|
string_to_array
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select string_to_array('1|2|3', NULL);
|
||||||
|
string_to_array
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select string_to_array(NULL, '|');
|
||||||
|
string_to_array
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
select array_to_string(string_to_array('1|2|3', '|'), '|');
|
||||||
|
array_to_string
|
||||||
|
-----------------
|
||||||
|
1|2|3
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
@ -257,7 +257,8 @@ insert into arr_tbl values ('{1,2,10}');
|
|||||||
set enable_seqscan to off;
|
set enable_seqscan to off;
|
||||||
set enable_bitmapscan to off;
|
set enable_bitmapscan to off;
|
||||||
select * from arr_tbl where f1 > '{1,2,3}' and f1 <= '{1,5,3}';
|
select * from arr_tbl where f1 > '{1,2,3}' and f1 <= '{1,5,3}';
|
||||||
-- note: if above select doesn't produce the expected tuple order,
|
select * from arr_tbl where f1 >= '{1,2,3}' and f1 < '{1,5,3}';
|
||||||
|
-- note: if above selects don't produce the expected tuple order,
|
||||||
-- then you didn't get an indexscan plan, and something is busted.
|
-- then you didn't get an indexscan plan, and something is busted.
|
||||||
reset enable_seqscan;
|
reset enable_seqscan;
|
||||||
reset enable_bitmapscan;
|
reset enable_bitmapscan;
|
||||||
@ -297,6 +298,7 @@ select '{
|
|||||||
@ 1 hour @ 42 minutes @ 20 seconds
|
@ 1 hour @ 42 minutes @ 20 seconds
|
||||||
}'::interval[];
|
}'::interval[];
|
||||||
select array[]::text[];
|
select array[]::text[];
|
||||||
|
select '[0:1]={1.1,2.2}'::float8[];
|
||||||
-- all of the above should be accepted
|
-- all of the above should be accepted
|
||||||
|
|
||||||
-- tests for array aggregates
|
-- tests for array aggregates
|
||||||
@ -374,3 +376,13 @@ select array_fill(1, null, array[2,2]);
|
|||||||
select array_fill(1, array[2,2], null);
|
select array_fill(1, array[2,2], null);
|
||||||
select array_fill(1, array[3,3], array[1,1,1]);
|
select array_fill(1, array[3,3], array[1,1,1]);
|
||||||
select array_fill(1, array[1,2,null]);
|
select array_fill(1, array[1,2,null]);
|
||||||
|
|
||||||
|
select string_to_array('1|2|3', '|');
|
||||||
|
select string_to_array('1|2|3|', '|');
|
||||||
|
select string_to_array('1||2|3||', '||');
|
||||||
|
select string_to_array('1|2|3', '');
|
||||||
|
select string_to_array('', '|');
|
||||||
|
select string_to_array('1|2|3', NULL);
|
||||||
|
select string_to_array(NULL, '|');
|
||||||
|
|
||||||
|
select array_to_string(string_to_array('1|2|3', '|'), '|');
|
||||||
|
Reference in New Issue
Block a user