aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/plpgsql.out32
-rw-r--r--src/test/regress/sql/plpgsql.sql12
2 files changed, 44 insertions, 0 deletions
diff --git a/src/test/regress/expected/plpgsql.out b/src/test/regress/expected/plpgsql.out
index d0e0556224a..2b0454559df 100644
--- a/src/test/regress/expected/plpgsql.out
+++ b/src/test/regress/expected/plpgsql.out
@@ -5340,6 +5340,38 @@ select i, a from
1 | {1,1}
(1 row)
+explain (verbose, costs off)
+select consumes_rw_array(a), a from returns_rw_array(1) a;
+ QUERY PLAN
+--------------------------------------------
+ Function Scan on public.returns_rw_array a
+ Output: consumes_rw_array(a), a
+ Function Call: returns_rw_array(1)
+(3 rows)
+
+select consumes_rw_array(a), a from returns_rw_array(1) a;
+ consumes_rw_array | a
+-------------------+-------
+ 1 | {1,1}
+(1 row)
+
+explain (verbose, costs off)
+select consumes_rw_array(a), a from
+ (values (returns_rw_array(1)), (returns_rw_array(2))) v(a);
+ QUERY PLAN
+---------------------------------------------------------------------
+ Values Scan on "*VALUES*"
+ Output: consumes_rw_array("*VALUES*".column1), "*VALUES*".column1
+(2 rows)
+
+select consumes_rw_array(a), a from
+ (values (returns_rw_array(1)), (returns_rw_array(2))) v(a);
+ consumes_rw_array | a
+-------------------+-------
+ 1 | {1,1}
+ 2 | {2,2}
+(2 rows)
+
--
-- Test access to call stack
--
diff --git a/src/test/regress/sql/plpgsql.sql b/src/test/regress/sql/plpgsql.sql
index df436ee4a28..a375394bbc2 100644
--- a/src/test/regress/sql/plpgsql.sql
+++ b/src/test/regress/sql/plpgsql.sql
@@ -4225,6 +4225,18 @@ select i, a from
(select returns_rw_array(1) as a offset 0) ss,
lateral consumes_rw_array(a) i;
+explain (verbose, costs off)
+select consumes_rw_array(a), a from returns_rw_array(1) a;
+
+select consumes_rw_array(a), a from returns_rw_array(1) a;
+
+explain (verbose, costs off)
+select consumes_rw_array(a), a from
+ (values (returns_rw_array(1)), (returns_rw_array(2))) v(a);
+
+select consumes_rw_array(a), a from
+ (values (returns_rw_array(1)), (returns_rw_array(2))) v(a);
+
--
-- Test access to call stack