aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/regress/expected/delete.out23
-rw-r--r--src/test/regress/expected/insert.out17
-rw-r--r--src/test/regress/expected/update.out9
-rw-r--r--src/test/regress/sql/delete.sql12
-rw-r--r--src/test/regress/sql/insert.sql7
-rw-r--r--src/test/regress/sql/update.sql4
6 files changed, 62 insertions, 10 deletions
diff --git a/src/test/regress/expected/delete.out b/src/test/regress/expected/delete.out
index 604d067f228..d3d1a357c0b 100644
--- a/src/test/regress/expected/delete.out
+++ b/src/test/regress/expected/delete.out
@@ -1,11 +1,12 @@
CREATE TABLE delete_test (
id SERIAL PRIMARY KEY,
- a INT
+ a INT,
+ b text
);
NOTICE: CREATE TABLE will create implicit sequence "delete_test_id_seq" for serial column "delete_test.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "delete_test_pkey" for table "delete_test"
INSERT INTO delete_test (a) VALUES (10);
-INSERT INTO delete_test (a) VALUES (50);
+INSERT INTO delete_test (a, b) VALUES (50, repeat('x', 10000));
INSERT INTO delete_test (a) VALUES (100);
-- allow an alias to be specified for DELETE's target table
DELETE FROM delete_test AS dt WHERE dt.a > 75;
@@ -16,11 +17,19 @@ ERROR: invalid reference to FROM-clause entry for table "delete_test"
LINE 1: DELETE FROM delete_test dt WHERE delete_test.a > 25;
^
HINT: Perhaps you meant to reference the table alias "dt".
-SELECT * FROM delete_test;
- id | a
-----+----
- 1 | 10
- 2 | 50
+SELECT id, a, char_length(b) FROM delete_test;
+ id | a | char_length
+----+----+-------------
+ 1 | 10 |
+ 2 | 50 | 10000
(2 rows)
+-- delete a row with a TOASTed value
+DELETE FROM delete_test WHERE a > 25;
+SELECT id, a, char_length(b) FROM delete_test;
+ id | a | char_length
+----+----+-------------
+ 1 | 10 |
+(1 row)
+
DROP TABLE delete_test;
diff --git a/src/test/regress/expected/insert.out b/src/test/regress/expected/insert.out
index d8510ea334f..50bcead449d 100644
--- a/src/test/regress/expected/insert.out
+++ b/src/test/regress/expected/insert.out
@@ -62,4 +62,21 @@ select * from inserttest;
2 | 3 | values are fun!
(7 rows)
+--
+-- TOASTed value test
+--
+insert into inserttest values(30, 50, repeat('x', 10000));
+select col1, col2, char_length(col3) from inserttest;
+ col1 | col2 | char_length
+------+------+-------------
+ | 3 | 7
+ | 5 | 7
+ | 5 | 4
+ | 7 | 7
+ 10 | 20 | 2
+ -1 | 2 | 7
+ 2 | 3 | 15
+ 30 | 50 | 10000
+(8 rows)
+
drop table inserttest;
diff --git a/src/test/regress/expected/update.out b/src/test/regress/expected/update.out
index 02aeccc7356..71b856f95c6 100644
--- a/src/test/regress/expected/update.out
+++ b/src/test/regress/expected/update.out
@@ -87,4 +87,13 @@ ERROR: invalid reference to FROM-clause entry for table "update_test"
LINE 1: UPDATE update_test AS t SET b = update_test.b + 10 WHERE t.a...
^
HINT: Perhaps you meant to reference the table alias "t".
+-- Make sure that we can update to a TOASTed value.
+UPDATE update_test SET c = repeat('x', 10000) WHERE c = 'car';
+SELECT a, b, char_length(c) FROM update_test;
+ a | b | char_length
+-----+----+-------------
+ 100 | 20 |
+ 11 | 41 | 10000
+(2 rows)
+
DROP TABLE update_test;
diff --git a/src/test/regress/sql/delete.sql b/src/test/regress/sql/delete.sql
index 6b870bbbd53..d8cb99e93cb 100644
--- a/src/test/regress/sql/delete.sql
+++ b/src/test/regress/sql/delete.sql
@@ -1,10 +1,11 @@
CREATE TABLE delete_test (
id SERIAL PRIMARY KEY,
- a INT
+ a INT,
+ b text
);
INSERT INTO delete_test (a) VALUES (10);
-INSERT INTO delete_test (a) VALUES (50);
+INSERT INTO delete_test (a, b) VALUES (50, repeat('x', 10000));
INSERT INTO delete_test (a) VALUES (100);
-- allow an alias to be specified for DELETE's target table
@@ -14,6 +15,11 @@ DELETE FROM delete_test AS dt WHERE dt.a > 75;
-- to be referenced
DELETE FROM delete_test dt WHERE delete_test.a > 25;
-SELECT * FROM delete_test;
+SELECT id, a, char_length(b) FROM delete_test;
+
+-- delete a row with a TOASTed value
+DELETE FROM delete_test WHERE a > 25;
+
+SELECT id, a, char_length(b) FROM delete_test;
DROP TABLE delete_test;
diff --git a/src/test/regress/sql/insert.sql b/src/test/regress/sql/insert.sql
index 8a9ccce2ea2..a0ae85003fb 100644
--- a/src/test/regress/sql/insert.sql
+++ b/src/test/regress/sql/insert.sql
@@ -28,4 +28,11 @@ insert into inserttest values(10, 20, '40'), (-1, 2, DEFAULT),
select * from inserttest;
+--
+-- TOASTed value test
+--
+insert into inserttest values(30, 50, repeat('x', 10000));
+
+select col1, col2, char_length(col3) from inserttest;
+
drop table inserttest;
diff --git a/src/test/regress/sql/update.sql b/src/test/regress/sql/update.sql
index b378d584a4a..a8a028f7101 100644
--- a/src/test/regress/sql/update.sql
+++ b/src/test/regress/sql/update.sql
@@ -54,4 +54,8 @@ UPDATE update_test SET (a,b) = (select a,b FROM update_test where c = 'foo')
-- to the original table name
UPDATE update_test AS t SET b = update_test.b + 10 WHERE t.a = 10;
+-- Make sure that we can update to a TOASTed value.
+UPDATE update_test SET c = repeat('x', 10000) WHERE c = 'car';
+SELECT a, b, char_length(c) FROM update_test;
+
DROP TABLE update_test;