diff options
| author | Robert Haas | 2021-03-25 23:55:32 +0000 |
|---|---|---|
| committer | Robert Haas | 2021-03-25 23:55:32 +0000 |
| commit | 5db1fd7823a1a12e2bdad98abc8e102fd71ffbda (patch) | |
| tree | eb2f2a7db5a5351357d04c863c1374c568431415 /src/test | |
| parent | 71f4c8c6f74ba021e55d35b1128d22fb8c6e1629 (diff) | |
Fix interaction of TOAST compression with expression indexes.
Before, trying to compress a value for insertion into an expression
index would crash.
Dilip Kumar, with some editing by me. Report by Jaime Casanova.
Discussion: http://postgr.es/m/CAJKUy5gcs0zGOp6JXU2mMVdthYhuQpFk=S3V8DOKT=LZC1L36Q@mail.gmail.com
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/compression.out | 6 | ||||
| -rw-r--r-- | src/test/regress/expected/compression_1.out | 13 | ||||
| -rw-r--r-- | src/test/regress/sql/compression.sql | 7 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/test/regress/expected/compression.out b/src/test/regress/expected/compression.out index 566a1877eac..61e97cb33ce 100644 --- a/src/test/regress/expected/compression.out +++ b/src/test/regress/expected/compression.out @@ -313,6 +313,12 @@ SELECT pg_column_compression(f1) FROM cmdata; lz4 (2 rows) +-- test expression index +DROP TABLE cmdata2; +CREATE TABLE cmdata2 (f1 TEXT COMPRESSION pglz, f2 TEXT COMPRESSION lz4); +CREATE UNIQUE INDEX idx1 ON cmdata2 ((f1 || f2)); +INSERT INTO cmdata2 VALUES((SELECT array_agg(md5(g::TEXT))::TEXT FROM +generate_series(1, 50) g), VERSION()); -- check data is ok SELECT length(f1) FROM cmdata; length diff --git a/src/test/regress/expected/compression_1.out b/src/test/regress/expected/compression_1.out index 39909334154..d03d6255ae3 100644 --- a/src/test/regress/expected/compression_1.out +++ b/src/test/regress/expected/compression_1.out @@ -309,6 +309,19 @@ SELECT pg_column_compression(f1) FROM cmdata; pglz (2 rows) +-- test expression index +DROP TABLE cmdata2; +CREATE TABLE cmdata2 (f1 TEXT COMPRESSION pglz, f2 TEXT COMPRESSION lz4); +ERROR: unsupported LZ4 compression method +DETAIL: This functionality requires the server to be built with lz4 support. +HINT: You need to rebuild PostgreSQL using --with-lz4. +CREATE UNIQUE INDEX idx1 ON cmdata2 ((f1 || f2)); +ERROR: relation "cmdata2" does not exist +INSERT INTO cmdata2 VALUES((SELECT array_agg(md5(g::TEXT))::TEXT FROM +generate_series(1, 50) g), VERSION()); +ERROR: relation "cmdata2" does not exist +LINE 1: INSERT INTO cmdata2 VALUES((SELECT array_agg(md5(g::TEXT))::... + ^ -- check data is ok SELECT length(f1) FROM cmdata; length diff --git a/src/test/regress/sql/compression.sql b/src/test/regress/sql/compression.sql index 5e178be04a2..76d1776d832 100644 --- a/src/test/regress/sql/compression.sql +++ b/src/test/regress/sql/compression.sql @@ -130,6 +130,13 @@ SELECT pg_column_compression(f1) FROM cmdata; VACUUM FULL cmdata; SELECT pg_column_compression(f1) FROM cmdata; +-- test expression index +DROP TABLE cmdata2; +CREATE TABLE cmdata2 (f1 TEXT COMPRESSION pglz, f2 TEXT COMPRESSION lz4); +CREATE UNIQUE INDEX idx1 ON cmdata2 ((f1 || f2)); +INSERT INTO cmdata2 VALUES((SELECT array_agg(md5(g::TEXT))::TEXT FROM +generate_series(1, 50) g), VERSION()); + -- check data is ok SELECT length(f1) FROM cmdata; SELECT length(f1) FROM cmdata1; |
