Commit e2a277bd authored by Peter Eisentraut's avatar Peter Eisentraut

A few additional test cases for array functionality

parent e0dc7d02
......@@ -725,7 +725,14 @@ select * from arr_tbl where f1 > '{1,2,3}' and f1 <= '{1,5,3}';
{1,5,3}
(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.
reset enable_seqscan;
reset enable_bitmapscan;
......@@ -858,6 +865,12 @@ select array[]::text[];
{}
(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
-- tests for array aggregates
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.
select array_fill(1, array[1,2,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_bitmapscan to off;
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.
reset enable_seqscan;
reset enable_bitmapscan;
......@@ -297,6 +298,7 @@ select '{
@ 1 hour @ 42 minutes @ 20 seconds
}'::interval[];
select array[]::text[];
select '[0:1]={1.1,2.2}'::float8[];
-- all of the above should be accepted
-- 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[3,3], array[1,1,1]);
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', '|'), '|');
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment