\! gs_ktool -d all
DELETE ALL

\! gs_ktool -g
GENERATE
1
DROP CLIENT MASTER KEY IF EXISTS copyCMK CASCADE;
NOTICE:  client master key "copycmk" does not exist
CREATE CLIENT MASTER KEY copyCMK WITH ( KEY_STORE = gs_ktool , KEY_PATH = "gs_ktool/1" , ALGORITHM = AES_256_CBC);
CREATE COLUMN ENCRYPTION KEY copyCEK WITH VALUES (CLIENT_MASTER_KEY = copyCMK, ALGORITHM = AEAD_AES_256_CBC_HMAC_SHA256);
CREATE TABLE IF NOT EXISTS CopyFromTbl(i0 INT, i1 INT ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = copyCEK, ENCRYPTION_TYPE = DETERMINISTIC) , i2 INT);
COPY copyfromtbl FROM stdin;
-- fail   error
COPY copyfromtbl FROM stdin;
ERROR:  extra data after last expected column
--?CONTEXT:  COPY copyfromtbl, line 1: .*
SELECT * FROM CopyFromTbl ORDER BY i0;
 i0 | i1 | i2 
----+----+----
  5 | 10 |  7
 20 | 20 |  8
 30 | 10 | 12
 50 | 35 | 12
 80 | 15 | 23
(5 rows)

COPY copyfromtbl (i0, i1,i2) FROM stdin;
SELECT * FROM CopyFromTbl ORDER BY i0;
 i0 | i1 | i2 
----+----+----
  5 | 10 |  7
  5 | 10 |  7
 20 | 20 |  8
 20 | 20 |  8
 30 | 10 | 12
 30 | 10 | 12
 50 | 35 | 12
 50 | 35 | 12
 80 | 15 | 23
 80 | 15 | 23
(10 rows)

-- false
COPY copyfromtbl (i0, i1,i2) FROM stdin;
COPY copyfromtbl (i0, i1,i2) FROM stdin;
ERROR:  COPY from stdin failed: aborted because of read failure
CONTEXT:  COPY copyfromtbl, line 1
\.
invalid command \.
\copy copyfromtbl (i0, i1,i2) FROM stdin;
\copy copyfromtbl (i0, i1,i2) FROM stdin;
ERROR:  COPY from stdin failed: aborted because of read failure
CONTEXT:  COPY copyfromtbl, line 1
\.
invalid command \.
\copy CopyFromTbl FROM '@abs_srcdir@/data/ce_copy_from.csv' WITH DELIMITER ',' CSV HEADER;
SELECT * FROM CopyFromTbl ORDER BY i0;
   i0    |  i1  | i2 
---------+------+----
       5 |   10 |  7
       5 |   10 |  7
       5 |   12 |  7
       5 |   12 |  7
      20 |   20 |  8
      20 |   20 |  8
      30 |   10 | 12
      30 |   10 | 12
      50 |   35 | 12
      50 |   35 | 12
      80 |   15 | 23
      80 |   15 | 23
 2450812 | 1388 | 23
 2450835 | 1393 | 21
 2450845 | 1399 | 22
 2450855 | 1400 | 23
(16 rows)

\copy (SELECT * FROM CopyFromTbl ORDER BY i2) TO '@abs_srcdir@/data/ce_copy_to.csv' WITH DELIMITER ',' CSV HEADER;
copy CopyFromTbl FROM '@abs_srcdir@/data/ce_copy_from.csv' WITH DELIMITER ',' CSV HEADER;
ERROR(CLIENT): column encryption does't support copy from server file to table
copy CopyFromTbl (i0, i1,i2) FROM '@abs_srcdir@/data/ce_copy_from.csv' WITH DELIMITER ',' CSV HEADER;
ERROR(CLIENT): column encryption does't support copy from server file to table
copy CopyFromTbl TO '@abs_srcdir@/data/ce_copy_to.csv' WITH DELIMITER ',' CSV HEADER;
ERROR(CLIENT): column encryption does't support copy from server file to table
copy (SELECT * FROM CopyFromTbl ORDER BY i2) TO '@abs_srcdir@/data/ce_copy_to.csv' WITH DELIMITER ',' CSV HEADER;
ERROR(CLIENT): column encryption does't support copy from server file to table
CREATE TABLE IF NOT EXISTS CopyTOTbl(i0 INT, i1 INT ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY=copyCEK, ENCRYPTION_TYPE = DETERMINISTIC) , i2 INT);
\copy CopyToTbl FROM '@abs_srcdir@/data/ce_copy_to.csv' WITH DELIMITER ',' CSV HEADER;
SELECT * FROM CopyToTbl ORDER BY i0;
   i0    |  i1  | i2 
---------+------+----
       5 |   10 |  7
       5 |   10 |  7
       5 |   12 |  7
       5 |   12 |  7
      20 |   20 |  8
      20 |   20 |  8
      30 |   10 | 12
      30 |   10 | 12
      50 |   35 | 12
      50 |   35 | 12
      80 |   15 | 23
      80 |   15 | 23
 2450812 | 1388 | 23
 2450835 | 1393 | 21
 2450845 | 1399 | 22
 2450855 | 1400 | 23
(16 rows)

COPY (SELECT * FROM CopyFromTbl ORDER BY i0) TO stdout;
5	10	7
5	10	7
5	12	7
5	12	7
20	20	8
20	20	8
30	10	12
30	10	12
50	35	12
50	35	12
80	15	23
80	15	23
2450812	1388	23
2450835	1393	21
2450845	1399	22
2450855	1400	23
DROP TABLE IF EXISTS encrypted_tb;
NOTICE:  table "encrypted_tb" does not exist, skipping
create table encrypted_tb(     inv_date_sk  integer  not null,inv_item_sk  integer  not null,     inv_warehouse_sk integer      encrypted with (column_encryption_key = copyCEK, encryption_type = DETERMINISTIC));
\copy encrypted_tb FROM '@abs_srcdir@/data/ce_copy_from.csv' WITH (delimiter',',IGNORE_EXTRA_DATA 'on');
select * FROM encrypted_tb ORDER BY inv_date_sk;
 inv_date_sk | inv_item_sk | inv_warehouse_sk 
-------------+-------------+------------------
     2450811 |        1382 |               24
     2450812 |        1388 |               23
     2450835 |        1393 |               21
     2450845 |        1399 |               22
     2450855 |        1400 |               23
(5 rows)

DROP TABLE IF EXISTS encrypted_tb;
DROP TABLE IF EXISTS CopyFromTbl;
DROP TABLE IF EXISTS CopyToTbl;
DROP CLIENT MASTER KEY copyCMK CASCADE;
NOTICE:  drop cascades to column encryption key: copycek
\! gs_ktool -d all
DELETE ALL
 1