summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorTom Lane2016-07-29 18:13:19 +0000
committerTom Lane2016-07-29 18:13:19 +0000
commitbf4ae685ae6f37b7fe83336abacf44298431b2f0 (patch)
tree870a6909dd8c6e46484f8fd17a27fca842973bae /src/test
parent80b346c2084928c11b6f9e495a7e9d559d96703d (diff)
Fix tqueue.c's range-remapping code.
It's depressingly clear that nobody ever tested this.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/rangetypes.out17
-rw-r--r--src/test/regress/sql/rangetypes.sql14
2 files changed, 31 insertions, 0 deletions
diff --git a/src/test/regress/expected/rangetypes.out b/src/test/regress/expected/rangetypes.out
index 23cdbc3902b..4a2336cd8d3 100644
--- a/src/test/regress/expected/rangetypes.out
+++ b/src/test/regress/expected/rangetypes.out
@@ -1337,6 +1337,23 @@ select array[1,3] <@ arrayrange(array[1,2], array[2,1]);
(1 row)
--
+-- Ranges of composites
+--
+create type two_ints as (a int, b int);
+create type two_ints_range as range (subtype = two_ints);
+-- with force_parallel_mode on, this exercises tqueue.c's range remapping
+select *, row_to_json(upper(t)) as u from
+ (values (two_ints_range(row(1,2), row(3,4))),
+ (two_ints_range(row(5,6), row(7,8)))) v(t);
+ t | u
+-------------------+---------------
+ ["(1,2)","(3,4)") | {"a":3,"b":4}
+ ["(5,6)","(7,8)") | {"a":7,"b":8}
+(2 rows)
+
+drop type two_ints cascade;
+NOTICE: drop cascades to type two_ints_range
+--
-- OUT/INOUT/TABLE functions
--
create function outparam_succeed(i anyrange, out r anyrange, out t text)
diff --git a/src/test/regress/sql/rangetypes.sql b/src/test/regress/sql/rangetypes.sql
index 6d2696f7bf2..a60df9095e9 100644
--- a/src/test/regress/sql/rangetypes.sql
+++ b/src/test/regress/sql/rangetypes.sql
@@ -448,6 +448,20 @@ select array[1,1] <@ arrayrange(array[1,2], array[2,1]);
select array[1,3] <@ arrayrange(array[1,2], array[2,1]);
--
+-- Ranges of composites
+--
+
+create type two_ints as (a int, b int);
+create type two_ints_range as range (subtype = two_ints);
+
+-- with force_parallel_mode on, this exercises tqueue.c's range remapping
+select *, row_to_json(upper(t)) as u from
+ (values (two_ints_range(row(1,2), row(3,4))),
+ (two_ints_range(row(5,6), row(7,8)))) v(t);
+
+drop type two_ints cascade;
+
+--
-- OUT/INOUT/TABLE functions
--