summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorBruce Momjian2002-08-28 20:18:29 +0000
committerBruce Momjian2002-08-28 20:18:29 +0000
commitb60acaf568bec8afd72a37dc0a486e17d4c21ba3 (patch)
tree1c2872108f041b947d0b50740f23007ab5900cb6 /src/test
parent1923816c37037bbbf526180306c1c2d8c61bd081 (diff)
The following small patch provides a couple of minor updates (against
CVS HEAD): Amended "strings" regression test. TOAST tests now insert two values with storage set to "external", to exercise properly the TOAST slice routines which fetch only a subset of the chunks. Changed now-misleading comment on AlterTableCreateToastTable in tablecmds.c, because both columns of the index on a toast table are now used. John Gray
Diffstat (limited to 'src/test')
-rw-r--r--src/test/regress/expected/strings.out38
-rw-r--r--src/test/regress/sql/strings.sql16
2 files changed, 48 insertions, 6 deletions
diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out
index 373746ca7ac..ae0b48590cf 100644
--- a/src/test/regress/expected/strings.out
+++ b/src/test/regress/expected/strings.out
@@ -579,6 +579,13 @@ SELECT text 'text' || varchar ' and varchar' AS "Concat text to varchar";
CREATE TABLE toasttest(f1 text);
insert into toasttest values(repeat('1234567890',10000));
insert into toasttest values(repeat('1234567890',10000));
+--
+-- Ensure that some values are uncompressed, to test the faster substring
+-- operation used in that case
+--
+alter table toasttest alter column f1 set storage external;
+insert into toasttest values(repeat('1234567890',10000));
+insert into toasttest values(repeat('1234567890',10000));
-- If the starting position is zero or less, then return from the start of the string
-- adjusting the length to be consistent with the "negative start" per SQL92.
SELECT substr(f1, -1, 5) from toasttest;
@@ -586,7 +593,9 @@ SELECT substr(f1, -1, 5) from toasttest;
--------
123
123
-(2 rows)
+ 123
+ 123
+(4 rows)
-- If the length is less than zero, an ERROR is thrown.
SELECT substr(f1, 5, -1) from toasttest;
@@ -598,7 +607,9 @@ SELECT substr(f1, 99995) from toasttest;
--------
567890
567890
-(2 rows)
+ 567890
+ 567890
+(4 rows)
-- If start plus length is > string length, the result is truncated to
-- string length
@@ -607,7 +618,9 @@ SELECT substr(f1, 99995, 10) from toasttest;
--------
567890
567890
-(2 rows)
+ 567890
+ 567890
+(4 rows)
DROP TABLE toasttest;
--
@@ -616,6 +629,13 @@ DROP TABLE toasttest;
CREATE TABLE toasttest(f1 bytea);
insert into toasttest values(decode(repeat('1234567890',10000),'escape'));
insert into toasttest values(decode(repeat('1234567890',10000),'escape'));
+--
+-- Ensure that some values are uncompressed, to test the faster substring
+-- operation used in that case
+--
+alter table toasttest alter column f1 set storage external;
+insert into toasttest values(decode(repeat('1234567890',10000),'escape'));
+insert into toasttest values(decode(repeat('1234567890',10000),'escape'));
-- If the starting position is zero or less, then return from the start of the string
-- adjusting the length to be consistent with the "negative start" per SQL92.
SELECT substr(f1, -1, 5) from toasttest;
@@ -623,7 +643,9 @@ SELECT substr(f1, -1, 5) from toasttest;
--------
123
123
-(2 rows)
+ 123
+ 123
+(4 rows)
-- If the length is less than zero, an ERROR is thrown.
SELECT substr(f1, 5, -1) from toasttest;
@@ -635,7 +657,9 @@ SELECT substr(f1, 99995) from toasttest;
--------
567890
567890
-(2 rows)
+ 567890
+ 567890
+(4 rows)
-- If start plus length is > string length, the result is truncated to
-- string length
@@ -644,7 +668,9 @@ SELECT substr(f1, 99995, 10) from toasttest;
--------
567890
567890
-(2 rows)
+ 567890
+ 567890
+(4 rows)
DROP TABLE toasttest;
--
diff --git a/src/test/regress/sql/strings.sql b/src/test/regress/sql/strings.sql
index af83a0b5715..2095848a39d 100644
--- a/src/test/regress/sql/strings.sql
+++ b/src/test/regress/sql/strings.sql
@@ -206,6 +206,14 @@ CREATE TABLE toasttest(f1 text);
insert into toasttest values(repeat('1234567890',10000));
insert into toasttest values(repeat('1234567890',10000));
+--
+-- Ensure that some values are uncompressed, to test the faster substring
+-- operation used in that case
+--
+alter table toasttest alter column f1 set storage external;
+insert into toasttest values(repeat('1234567890',10000));
+insert into toasttest values(repeat('1234567890',10000));
+
-- If the starting position is zero or less, then return from the start of the string
-- adjusting the length to be consistent with the "negative start" per SQL92.
SELECT substr(f1, -1, 5) from toasttest;
@@ -231,6 +239,14 @@ CREATE TABLE toasttest(f1 bytea);
insert into toasttest values(decode(repeat('1234567890',10000),'escape'));
insert into toasttest values(decode(repeat('1234567890',10000),'escape'));
+--
+-- Ensure that some values are uncompressed, to test the faster substring
+-- operation used in that case
+--
+alter table toasttest alter column f1 set storage external;
+insert into toasttest values(decode(repeat('1234567890',10000),'escape'));
+insert into toasttest values(decode(repeat('1234567890',10000),'escape'));
+
-- If the starting position is zero or less, then return from the start of the string
-- adjusting the length to be consistent with the "negative start" per SQL92.
SELECT substr(f1, -1, 5) from toasttest;