mirror of https://github.com/postgres/postgres
Pass proper old rlocator to smgr when creating relations and indexes (#156)
parent
3bf4f5c45d
commit
e92fee7662
@ -0,0 +1,134 @@ |
|||||||
|
CREATE EXTENSION IF NOT EXISTS pg_tde; |
||||||
|
SELECT pg_tde_add_key_provider_file('file-vault','/tmp/pg_tde_test_keyring.per'); |
||||||
|
pg_tde_add_key_provider_file |
||||||
|
------------------------------ |
||||||
|
1 |
||||||
|
(1 row) |
||||||
|
|
||||||
|
SELECT pg_tde_set_principal_key('test-db-principal-key','file-vault'); |
||||||
|
pg_tde_set_principal_key |
||||||
|
-------------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
SET default_table_access_method = "tde_heap"; |
||||||
|
CREATE TABLE t1(n integer); |
||||||
|
SELECT pg_tde_is_encrypted('t1'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
VACUUM FULL t1; |
||||||
|
SELECT pg_tde_is_encrypted('t1'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
CREATE TABLE test_tab1 AS SELECT generate_series(1,10) a; |
||||||
|
CREATE INDEX test_idx1 ON test_tab1(a); |
||||||
|
SELECT pg_tde_is_encrypted('test_tab1'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
SELECT pg_tde_is_encrypted('test_idx1'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
REINDEX index CONCURRENTLY test_idx1; |
||||||
|
SELECT pg_tde_is_encrypted('test_tab1'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
SELECT pg_tde_is_encrypted('test_idx1'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
CREATE TABLE mvtest_t (id int NOT NULL PRIMARY KEY, type text NOT NULL, amt numeric NOT NULL); |
||||||
|
INSERT INTO mvtest_t VALUES |
||||||
|
(1, 'x', 2), |
||||||
|
(2, 'x', 3), |
||||||
|
(3, 'y', 5), |
||||||
|
(4, 'y', 7), |
||||||
|
(5, 'z', 11); |
||||||
|
CREATE MATERIALIZED VIEW mvtest_tm AS SELECT type, sum(amt) AS totamt FROM mvtest_t GROUP BY type WITH NO DATA; |
||||||
|
SELECT pg_tde_is_encrypted('mvtest_tm'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
REFRESH MATERIALIZED VIEW mvtest_tm; |
||||||
|
SELECT pg_tde_is_encrypted('mvtest_tm'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
CREATE TYPE rewritetype AS (a int); |
||||||
|
CREATE TABLE rewritemetoo1 OF rewritetype; |
||||||
|
CREATE TABLE rewritemetoo2 OF rewritetype; |
||||||
|
SELECT pg_tde_is_encrypted('rewritemetoo1'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
SELECT pg_tde_is_encrypted('rewritemetoo2'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
ALTER TYPE rewritetype ALTER ATTRIBUTE a TYPE text cascade; |
||||||
|
SELECT pg_tde_is_encrypted('rewritemetoo1'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
SELECT pg_tde_is_encrypted('rewritemetoo2'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
CREATE TABLE encrypted_table ( |
||||||
|
id SERIAL, |
||||||
|
data TEXT, |
||||||
|
created_at DATE NOT NULL, |
||||||
|
PRIMARY KEY (id, created_at) |
||||||
|
) USING tde_heap; |
||||||
|
CREATE INDEX idx_date ON encrypted_table (created_at); |
||||||
|
SELECT pg_tde_is_encrypted('encrypted_table'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
CLUSTER encrypted_table USING idx_date; |
||||||
|
SELECT pg_tde_is_encrypted('encrypted_table'); |
||||||
|
pg_tde_is_encrypted |
||||||
|
--------------------- |
||||||
|
t |
||||||
|
(1 row) |
||||||
|
|
||||||
|
DROP EXTENSION pg_tde CASCADE; |
||||||
|
NOTICE: drop cascades to 7 other objects |
||||||
|
DETAIL: drop cascades to table t1 |
||||||
|
drop cascades to table test_tab1 |
||||||
|
drop cascades to table mvtest_t |
||||||
|
drop cascades to materialized view mvtest_tm |
||||||
|
drop cascades to table rewritemetoo1 |
||||||
|
drop cascades to table rewritemetoo2 |
||||||
|
drop cascades to table encrypted_table |
||||||
|
RESET default_table_access_method; |
@ -0,0 +1,54 @@ |
|||||||
|
CREATE EXTENSION IF NOT EXISTS pg_tde; |
||||||
|
|
||||||
|
SELECT pg_tde_add_key_provider_file('file-vault','/tmp/pg_tde_test_keyring.per'); |
||||||
|
SELECT pg_tde_set_principal_key('test-db-principal-key','file-vault'); |
||||||
|
|
||||||
|
SET default_table_access_method = "tde_heap"; |
||||||
|
|
||||||
|
CREATE TABLE t1(n integer); |
||||||
|
SELECT pg_tde_is_encrypted('t1'); |
||||||
|
VACUUM FULL t1; |
||||||
|
SELECT pg_tde_is_encrypted('t1'); |
||||||
|
|
||||||
|
CREATE TABLE test_tab1 AS SELECT generate_series(1,10) a; |
||||||
|
CREATE INDEX test_idx1 ON test_tab1(a); |
||||||
|
SELECT pg_tde_is_encrypted('test_tab1'); |
||||||
|
SELECT pg_tde_is_encrypted('test_idx1'); |
||||||
|
REINDEX index CONCURRENTLY test_idx1; |
||||||
|
SELECT pg_tde_is_encrypted('test_tab1'); |
||||||
|
SELECT pg_tde_is_encrypted('test_idx1'); |
||||||
|
|
||||||
|
CREATE TABLE mvtest_t (id int NOT NULL PRIMARY KEY, type text NOT NULL, amt numeric NOT NULL); |
||||||
|
INSERT INTO mvtest_t VALUES |
||||||
|
(1, 'x', 2), |
||||||
|
(2, 'x', 3), |
||||||
|
(3, 'y', 5), |
||||||
|
(4, 'y', 7), |
||||||
|
(5, 'z', 11); |
||||||
|
CREATE MATERIALIZED VIEW mvtest_tm AS SELECT type, sum(amt) AS totamt FROM mvtest_t GROUP BY type WITH NO DATA; |
||||||
|
SELECT pg_tde_is_encrypted('mvtest_tm'); |
||||||
|
REFRESH MATERIALIZED VIEW mvtest_tm; |
||||||
|
SELECT pg_tde_is_encrypted('mvtest_tm'); |
||||||
|
|
||||||
|
CREATE TYPE rewritetype AS (a int); |
||||||
|
CREATE TABLE rewritemetoo1 OF rewritetype; |
||||||
|
CREATE TABLE rewritemetoo2 OF rewritetype; |
||||||
|
SELECT pg_tde_is_encrypted('rewritemetoo1'); |
||||||
|
SELECT pg_tde_is_encrypted('rewritemetoo2'); |
||||||
|
ALTER TYPE rewritetype ALTER ATTRIBUTE a TYPE text cascade; |
||||||
|
SELECT pg_tde_is_encrypted('rewritemetoo1'); |
||||||
|
SELECT pg_tde_is_encrypted('rewritemetoo2'); |
||||||
|
|
||||||
|
CREATE TABLE encrypted_table ( |
||||||
|
id SERIAL, |
||||||
|
data TEXT, |
||||||
|
created_at DATE NOT NULL, |
||||||
|
PRIMARY KEY (id, created_at) |
||||||
|
) USING tde_heap; |
||||||
|
CREATE INDEX idx_date ON encrypted_table (created_at); |
||||||
|
SELECT pg_tde_is_encrypted('encrypted_table'); |
||||||
|
CLUSTER encrypted_table USING idx_date; |
||||||
|
SELECT pg_tde_is_encrypted('encrypted_table'); |
||||||
|
|
||||||
|
DROP EXTENSION pg_tde CASCADE; |
||||||
|
RESET default_table_access_method; |
Loading…
Reference in new issue