diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/inherit.out | 41 | ||||
| -rw-r--r-- | src/test/regress/sql/inherit.sql | 16 |
2 files changed, 42 insertions, 15 deletions
diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out index ed99bdde7f8..658fed79226 100644 --- a/src/test/regress/expected/inherit.out +++ b/src/test/regress/expected/inherit.out @@ -1717,23 +1717,36 @@ reset enable_bitmapscan; -- -- Check handling of MULTIEXPR SubPlans in inherited updates -- -create table inhpar(f1 int, f2 text[]); +create table inhpar(f1 int, f2 text[], f3 int); insert into inhpar select generate_series(1,10); create table inhcld() inherits(inhpar); insert into inhcld select generate_series(11,10000); vacuum analyze inhcld; vacuum analyze inhpar; explain (verbose, costs off) -update inhpar set (f1, f2[1]) = (select p2.unique2, p2.stringu1 - from int4_tbl limit 1) +update inhpar set + (f1, f2[1]) = (select p2.unique2, p2.stringu1 from int4_tbl limit 1), + (f2[2], f2[3]) = (select 'x', 'y' from int4_tbl limit 1), + (f3, f2[4]) = (select p2.unique2, p2.stringu1 from int4_tbl limit 1), + (f2[5], f2[6]) = (select 'x', 'y' from int4_tbl limit 1) from onek p2 where inhpar.f1 = p2.unique1; - QUERY PLAN ------------------------------------------------------------------------------------------------ + QUERY PLAN +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Update on public.inhpar Update on public.inhpar Update on public.inhcld inhpar_1 + InitPlan 2 (returns $4,$5) + -> Limit + Output: 'x'::text, 'y'::text + -> Seq Scan on public.int4_tbl int4_tbl_1 + Output: 'x'::text, 'y'::text + InitPlan 4 (returns $10,$11) + -> Limit + Output: 'x'::text, 'y'::text + -> Seq Scan on public.int4_tbl int4_tbl_3 + Output: 'x'::text, 'y'::text -> Merge Join - Output: $4, inhpar.f2[1] := $5, (SubPlan 1 (returns $2,$3)), inhpar.ctid, p2.ctid + Output: $12, (((((inhpar.f2[1] := $13)[2] := $4)[3] := $5)[4] := $15)[5] := $10)[6] := $11, $14, (SubPlan 1 (returns $2,$3)), NULL::record, (SubPlan 3 (returns $8,$9)), NULL::record, inhpar.ctid, p2.ctid Merge Cond: (p2.unique1 = inhpar.f1) -> Index Scan using onek_unique1 on public.onek p2 Output: p2.unique2, p2.stringu1, p2.ctid, p2.unique1 @@ -1747,8 +1760,13 @@ from onek p2 where inhpar.f1 = p2.unique1; Output: (p2.unique2), (p2.stringu1) -> Seq Scan on public.int4_tbl Output: p2.unique2, p2.stringu1 + SubPlan 3 (returns $8,$9) + -> Limit + Output: (p2.unique2), (p2.stringu1) + -> Seq Scan on public.int4_tbl int4_tbl_2 + Output: p2.unique2, p2.stringu1 -> Hash Join - Output: $6, inhpar_1.f2[1] := $7, (SubPlan 1 (returns $2,$3)), inhpar_1.ctid, p2.ctid + Output: $16, (((((inhpar_1.f2[1] := $17)[2] := $4)[3] := $5)[4] := $19)[5] := $10)[6] := $11, $18, (SubPlan 1 (returns $2,$3)), NULL::record, (SubPlan 3 (returns $8,$9)), NULL::record, inhpar_1.ctid, p2.ctid Hash Cond: (inhpar_1.f1 = p2.unique1) -> Seq Scan on public.inhcld inhpar_1 Output: inhpar_1.f2, inhpar_1.ctid, inhpar_1.f1 @@ -1756,10 +1774,13 @@ from onek p2 where inhpar.f1 = p2.unique1; Output: p2.unique2, p2.stringu1, p2.ctid, p2.unique1 -> Seq Scan on public.onek p2 Output: p2.unique2, p2.stringu1, p2.ctid, p2.unique1 -(27 rows) +(42 rows) -update inhpar set (f1, f2[1]) = (select p2.unique2, p2.stringu1 - from int4_tbl limit 1) +update inhpar set + (f1, f2[1]) = (select p2.unique2, p2.stringu1 from int4_tbl limit 1), + (f2[2], f2[3]) = (select 'x', 'y' from int4_tbl limit 1), + (f3, f2[4]) = (select p2.unique2, p2.stringu1 from int4_tbl limit 1), + (f2[5], f2[6]) = (select 'x', 'y' from int4_tbl limit 1) from onek p2 where inhpar.f1 = p2.unique1; drop table inhpar cascade; NOTICE: drop cascades to table inhcld diff --git a/src/test/regress/sql/inherit.sql b/src/test/regress/sql/inherit.sql index 7d3813704e1..a4a33a3da8b 100644 --- a/src/test/regress/sql/inherit.sql +++ b/src/test/regress/sql/inherit.sql @@ -632,7 +632,7 @@ reset enable_bitmapscan; -- -- Check handling of MULTIEXPR SubPlans in inherited updates -- -create table inhpar(f1 int, f2 text[]); +create table inhpar(f1 int, f2 text[], f3 int); insert into inhpar select generate_series(1,10); create table inhcld() inherits(inhpar); insert into inhcld select generate_series(11,10000); @@ -640,11 +640,17 @@ vacuum analyze inhcld; vacuum analyze inhpar; explain (verbose, costs off) -update inhpar set (f1, f2[1]) = (select p2.unique2, p2.stringu1 - from int4_tbl limit 1) +update inhpar set + (f1, f2[1]) = (select p2.unique2, p2.stringu1 from int4_tbl limit 1), + (f2[2], f2[3]) = (select 'x', 'y' from int4_tbl limit 1), + (f3, f2[4]) = (select p2.unique2, p2.stringu1 from int4_tbl limit 1), + (f2[5], f2[6]) = (select 'x', 'y' from int4_tbl limit 1) from onek p2 where inhpar.f1 = p2.unique1; -update inhpar set (f1, f2[1]) = (select p2.unique2, p2.stringu1 - from int4_tbl limit 1) +update inhpar set + (f1, f2[1]) = (select p2.unique2, p2.stringu1 from int4_tbl limit 1), + (f2[2], f2[3]) = (select 'x', 'y' from int4_tbl limit 1), + (f3, f2[4]) = (select p2.unique2, p2.stringu1 from int4_tbl limit 1), + (f2[5], f2[6]) = (select 'x', 'y' from int4_tbl limit 1) from onek p2 where inhpar.f1 = p2.unique1; drop table inhpar cascade; |
