diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/updatable_views.out | 37 | ||||
-rw-r--r-- | src/test/regress/sql/updatable_views.sql | 14 |
2 files changed, 47 insertions, 4 deletions
diff --git a/src/test/regress/expected/updatable_views.out b/src/test/regress/expected/updatable_views.out index 2ee7deda9b5..8af3b1a1584 100644 --- a/src/test/regress/expected/updatable_views.out +++ b/src/test/regress/expected/updatable_views.out @@ -2789,6 +2789,7 @@ insert into base_tab_def_view values (12), (13); insert into base_tab_def_view values (14, default, default, default, default); insert into base_tab_def_view values (15, default, default, default, default), (16, default, default, default, default); +insert into base_tab_def_view values (17), (default); select * from base_tab_def order by a; a | b | c | d | e ----+---------------+---------------+--------------+--- @@ -2804,7 +2805,9 @@ select * from base_tab_def order by a; 14 | View default | Table default | View default | 15 | View default | Table default | View default | 16 | View default | Table default | View default | -(12 rows) + 17 | View default | Table default | View default | + | View default | Table default | View default | +(14 rows) -- Adding an INSTEAD OF trigger should cause NULLs to be inserted instead of -- table defaults, where there are no view defaults. @@ -2830,6 +2833,7 @@ insert into base_tab_def_view values (12), (13); insert into base_tab_def_view values (14, default, default, default, default); insert into base_tab_def_view values (15, default, default, default, default), (16, default, default, default, default); +insert into base_tab_def_view values (17), (default); select * from base_tab_def order by a; a | b | c | d | e ----+---------------+---------------+--------------+--- @@ -2845,7 +2849,9 @@ select * from base_tab_def order by a; 14 | View default | | View default | 15 | View default | | View default | 16 | View default | | View default | -(12 rows) + 17 | View default | | View default | + | View default | | View default | +(14 rows) -- Using an unconditional DO INSTEAD rule should also cause NULLs to be -- inserted where there are no view defaults. @@ -2864,6 +2870,7 @@ insert into base_tab_def_view values (12), (13); insert into base_tab_def_view values (14, default, default, default, default); insert into base_tab_def_view values (15, default, default, default, default), (16, default, default, default, default); +insert into base_tab_def_view values (17), (default); select * from base_tab_def order by a; a | b | c | d | e ----+---------------+---------------+--------------+--- @@ -2879,7 +2886,9 @@ select * from base_tab_def order by a; 14 | View default | | View default | 15 | View default | | View default | 16 | View default | | View default | -(12 rows) + 17 | View default | | View default | + | View default | | View default | +(14 rows) -- A DO ALSO rule should cause each row to be inserted twice. The first -- insert should behave the same as an auto-updatable view (using table @@ -2900,6 +2909,7 @@ insert into base_tab_def_view values (12), (13); insert into base_tab_def_view values (14, default, default, default, default); insert into base_tab_def_view values (15, default, default, default, default), (16, default, default, default, default); +insert into base_tab_def_view values (17), (default); select * from base_tab_def order by a, c NULLS LAST; a | b | c | d | e ----+---------------+---------------+--------------+--- @@ -2921,7 +2931,26 @@ select * from base_tab_def order by a, c NULLS LAST; 15 | View default | | View default | 16 | View default | Table default | View default | 16 | View default | | View default | -(18 rows) + 17 | View default | Table default | View default | + 17 | View default | | View default | + | View default | Table default | View default | + | View default | | View default | +(22 rows) drop view base_tab_def_view; drop table base_tab_def; +-- Test defaults with array assignments +create table base_tab (a serial, b int[], c text, d text default 'Table default'); +create view base_tab_view as select c, a, b from base_tab; +alter view base_tab_view alter column c set default 'View default'; +insert into base_tab_view (b[1], b[2], c, b[5], b[4], a, b[3]) +values (1, 2, default, 5, 4, default, 3), (10, 11, 'C value', 14, 13, 100, 12); +select * from base_tab order by a; + a | b | c | d +-----+------------------+--------------+--------------- + 1 | {1,2,3,4,5} | View default | Table default + 100 | {10,11,12,13,14} | C value | Table default +(2 rows) + +drop view base_tab_view; +drop table base_tab; diff --git a/src/test/regress/sql/updatable_views.sql b/src/test/regress/sql/updatable_views.sql index 56d4c19e2a8..e928e86ca3c 100644 --- a/src/test/regress/sql/updatable_views.sql +++ b/src/test/regress/sql/updatable_views.sql @@ -1397,6 +1397,7 @@ insert into base_tab_def_view values (12), (13); insert into base_tab_def_view values (14, default, default, default, default); insert into base_tab_def_view values (15, default, default, default, default), (16, default, default, default, default); +insert into base_tab_def_view values (17), (default); select * from base_tab_def order by a; -- Adding an INSTEAD OF trigger should cause NULLs to be inserted instead of @@ -1423,6 +1424,7 @@ insert into base_tab_def_view values (12), (13); insert into base_tab_def_view values (14, default, default, default, default); insert into base_tab_def_view values (15, default, default, default, default), (16, default, default, default, default); +insert into base_tab_def_view values (17), (default); select * from base_tab_def order by a; -- Using an unconditional DO INSTEAD rule should also cause NULLs to be @@ -1442,6 +1444,7 @@ insert into base_tab_def_view values (12), (13); insert into base_tab_def_view values (14, default, default, default, default); insert into base_tab_def_view values (15, default, default, default, default), (16, default, default, default, default); +insert into base_tab_def_view values (17), (default); select * from base_tab_def order by a; -- A DO ALSO rule should cause each row to be inserted twice. The first @@ -1463,7 +1466,18 @@ insert into base_tab_def_view values (12), (13); insert into base_tab_def_view values (14, default, default, default, default); insert into base_tab_def_view values (15, default, default, default, default), (16, default, default, default, default); +insert into base_tab_def_view values (17), (default); select * from base_tab_def order by a, c NULLS LAST; drop view base_tab_def_view; drop table base_tab_def; + +-- Test defaults with array assignments +create table base_tab (a serial, b int[], c text, d text default 'Table default'); +create view base_tab_view as select c, a, b from base_tab; +alter view base_tab_view alter column c set default 'View default'; +insert into base_tab_view (b[1], b[2], c, b[5], b[4], a, b[3]) +values (1, 2, default, 5, 4, default, 3), (10, 11, 'C value', 14, 13, 100, 12); +select * from base_tab order by a; +drop view base_tab_view; +drop table base_tab; |