Skip to content

Commit cc7cc95

Browse files
committed
improve compatibility with pg_dump
1 parent 9a70505 commit cc7cc95

File tree

4 files changed

+62
-226
lines changed

4 files changed

+62
-226
lines changed

expected/pathman_utility_stmt.out

Lines changed: 24 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -24,70 +24,6 @@ VACUUM FULL copy_stmt_hooking.test_1;
2424
VACUUM FULL copy_stmt_hooking.test_2;
2525
VACUUM FULL copy_stmt_hooking.test_3;
2626
VACUUM FULL copy_stmt_hooking.test_4;
27-
/* COPY TO */
28-
COPY copy_stmt_hooking.test TO stdout;
29-
1 comment \N \N
30-
2 comment \N \N
31-
3 comment \N \N
32-
4 comment \N \N
33-
5 comment \N \N
34-
6 comment \N \N
35-
7 comment \N \N
36-
8 comment \N \N
37-
9 comment \N \N
38-
10 comment \N \N
39-
11 comment \N \N
40-
12 comment \N \N
41-
13 comment \N \N
42-
14 comment \N \N
43-
15 comment \N \N
44-
16 comment \N \N
45-
17 comment \N \N
46-
18 comment \N \N
47-
19 comment \N \N
48-
20 comment \N \N
49-
\copy copy_stmt_hooking.test to stdout (format csv)
50-
1,comment,,
51-
2,comment,,
52-
3,comment,,
53-
4,comment,,
54-
5,comment,,
55-
6,comment,,
56-
7,comment,,
57-
8,comment,,
58-
9,comment,,
59-
10,comment,,
60-
11,comment,,
61-
12,comment,,
62-
13,comment,,
63-
14,comment,,
64-
15,comment,,
65-
16,comment,,
66-
17,comment,,
67-
18,comment,,
68-
19,comment,,
69-
20,comment,,
70-
\copy copy_stmt_hooking.test(comment) to stdout
71-
comment
72-
comment
73-
comment
74-
comment
75-
comment
76-
comment
77-
comment
78-
comment
79-
comment
80-
comment
81-
comment
82-
comment
83-
comment
84-
comment
85-
comment
86-
comment
87-
comment
88-
comment
89-
comment
90-
comment
9127
/* DELETE ROWS, COPY FROM */
9228
DELETE FROM copy_stmt_hooking.test;
9329
COPY copy_stmt_hooking.test FROM stdin;
@@ -113,32 +49,30 @@ VACUUM FULL copy_stmt_hooking.test_1;
11349
VACUUM FULL copy_stmt_hooking.test_2;
11450
VACUUM FULL copy_stmt_hooking.test_3;
11551
VACUUM FULL copy_stmt_hooking.test_4;
116-
/* COPY FROM (specified columns) */
117-
COPY copy_stmt_hooking.test (val) TO stdout;
118-
1
119-
6
120-
7
121-
11
122-
16
123-
COPY copy_stmt_hooking.test (val, comment) TO stdout;
124-
1 test_1
125-
6 test_2
126-
7 test_2
127-
11 test_3
128-
16 test_4
129-
COPY copy_stmt_hooking.test (c3, val, comment) TO stdout;
130-
0 1 test_1
131-
0 6 test_2
132-
0 7 test_2
133-
0 11 test_3
134-
0 16 test_4
135-
COPY copy_stmt_hooking.test (val, comment, c3, c4) TO stdout;
52+
/* COPY TO */
53+
COPY copy_stmt_hooking.test TO stdout; /* not ok */
54+
WARNING: COPY TO will only select rows from parent table "test"
55+
COPY copy_stmt_hooking.test (val) TO stdout; /* not ok */
56+
WARNING: COPY TO will only select rows from parent table "test"
57+
COPY (SELECT * FROM copy_stmt_hooking.test) TO stdout;
58+
1 test_1 0 0
59+
6 test_2 0 0
60+
7 test_2 0 0
61+
11 test_3 0 0
62+
16 test_4 0 0
63+
COPY (SELECT * FROM copy_stmt_hooking.test) TO stdout (FORMAT CSV);
64+
1,test_1,0,0
65+
6,test_2,0,0
66+
7,test_2,0,0
67+
11,test_3,0,0
68+
16,test_4,0,0
69+
\copy (SELECT * FROM copy_stmt_hooking.test) TO stdout
13670
1 test_1 0 0
13771
6 test_2 0 0
13872
7 test_2 0 0
13973
11 test_3 0 0
14074
16 test_4 0 0
141-
/* COPY TO (partition does not exist, NOT allowed to create partitions) */
75+
/* COPY FROM (partition does not exist, NOT allowed to create partitions) */
14276
SET pg_pathman.enable_auto_partition = OFF;
14377
COPY copy_stmt_hooking.test FROM stdin;
14478
ERROR: no suitable partition for key '21'
@@ -147,7 +81,7 @@ SELECT * FROM copy_stmt_hooking.test WHERE val > 20;
14781
-----+---------+----+----
14882
(0 rows)
14983

150-
/* COPY TO (partition does not exist, allowed to create partitions) */
84+
/* COPY FROM (partition does not exist, allowed to create partitions) */
15185
SET pg_pathman.enable_auto_partition = ON;
15286
COPY copy_stmt_hooking.test FROM stdin;
15387
SELECT * FROM copy_stmt_hooking.test WHERE val > 20;
@@ -194,18 +128,18 @@ WHERE attnum > 0 AND attrelid = 'copy_stmt_hooking.test_6'::REGCLASS;
194128
3
195129
(1 row)
196130

197-
/* COPY FROM (test transformed tuples) */
198-
COPY copy_stmt_hooking.test (val, c3, c4) TO stdout;
131+
/* test transformed tuples */
132+
COPY (SELECT * FROM copy_stmt_hooking.test) TO stdout;
199133
1 0 0
200134
6 0 0
201135
7 0 0
202136
11 0 0
203137
16 0 0
204138
21 0 0
205139
26 1 2
206-
/* COPY TO (insert into table with dropped column) */
140+
/* COPY FROM (insert into table with dropped column) */
207141
COPY copy_stmt_hooking.test(val, c3, c4) FROM stdin;
208-
/* COPY TO (insert into table without dropped column) */
142+
/* COPY FROM (insert into table without dropped column) */
209143
COPY copy_stmt_hooking.test(val, c3, c4) FROM stdin;
210144
/* check tuples from last partition (without dropped column) */
211145
SELECT *, tableoid::REGCLASS FROM copy_stmt_hooking.test ORDER BY val;

sql/pathman_utility_stmt.sql

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ VACUUM FULL copy_stmt_hooking.test_2;
2828
VACUUM FULL copy_stmt_hooking.test_3;
2929
VACUUM FULL copy_stmt_hooking.test_4;
3030

31-
/* COPY TO */
32-
COPY copy_stmt_hooking.test TO stdout;
33-
\copy copy_stmt_hooking.test to stdout (format csv)
34-
\copy copy_stmt_hooking.test(comment) to stdout
35-
3631
/* DELETE ROWS, COPY FROM */
3732
DELETE FROM copy_stmt_hooking.test;
3833
COPY copy_stmt_hooking.test FROM stdin;
@@ -52,20 +47,21 @@ VACUUM FULL copy_stmt_hooking.test_2;
5247
VACUUM FULL copy_stmt_hooking.test_3;
5348
VACUUM FULL copy_stmt_hooking.test_4;
5449

55-
/* COPY FROM (specified columns) */
56-
COPY copy_stmt_hooking.test (val) TO stdout;
57-
COPY copy_stmt_hooking.test (val, comment) TO stdout;
58-
COPY copy_stmt_hooking.test (c3, val, comment) TO stdout;
59-
COPY copy_stmt_hooking.test (val, comment, c3, c4) TO stdout;
50+
/* COPY TO */
51+
COPY copy_stmt_hooking.test TO stdout; /* not ok */
52+
COPY copy_stmt_hooking.test (val) TO stdout; /* not ok */
53+
COPY (SELECT * FROM copy_stmt_hooking.test) TO stdout;
54+
COPY (SELECT * FROM copy_stmt_hooking.test) TO stdout (FORMAT CSV);
55+
\copy (SELECT * FROM copy_stmt_hooking.test) TO stdout
6056

61-
/* COPY TO (partition does not exist, NOT allowed to create partitions) */
57+
/* COPY FROM (partition does not exist, NOT allowed to create partitions) */
6258
SET pg_pathman.enable_auto_partition = OFF;
6359
COPY copy_stmt_hooking.test FROM stdin;
6460
21 test_no_part 0 0
6561
\.
6662
SELECT * FROM copy_stmt_hooking.test WHERE val > 20;
6763

68-
/* COPY TO (partition does not exist, allowed to create partitions) */
64+
/* COPY FROM (partition does not exist, allowed to create partitions) */
6965
SET pg_pathman.enable_auto_partition = ON;
7066
COPY copy_stmt_hooking.test FROM stdin;
7167
21 test_no_part 0 0
@@ -98,16 +94,16 @@ WHERE attnum > 0 AND attrelid = 'copy_stmt_hooking.test'::REGCLASS;
9894
SELECT count(*) FROM pg_attribute
9995
WHERE attnum > 0 AND attrelid = 'copy_stmt_hooking.test_6'::REGCLASS;
10096

97+
/* test transformed tuples */
98+
COPY (SELECT * FROM copy_stmt_hooking.test) TO stdout;
10199

102-
/* COPY FROM (test transformed tuples) */
103-
COPY copy_stmt_hooking.test (val, c3, c4) TO stdout;
104100

105-
/* COPY TO (insert into table with dropped column) */
101+
/* COPY FROM (insert into table with dropped column) */
106102
COPY copy_stmt_hooking.test(val, c3, c4) FROM stdin;
107103
2 1 2
108104
\.
109105

110-
/* COPY TO (insert into table without dropped column) */
106+
/* COPY FROM (insert into table without dropped column) */
111107
COPY copy_stmt_hooking.test(val, c3, c4) FROM stdin;
112108
27 1 2
113109
\.

src/hooks.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -886,7 +886,7 @@ pathman_process_utility_hook(Node *first_arg,
886886
stmt_location, stmt_len, &processed);
887887
if (completionTag)
888888
snprintf(completionTag, COMPLETION_TAG_BUFSIZE,
889-
"PATHMAN COPY " UINT64_FORMAT, processed);
889+
"COPY " UINT64_FORMAT, processed);
890890

891891
return; /* don't call standard_ProcessUtility() or hooks */
892892
}

0 commit comments

Comments
 (0)