@@ -2,7 +2,7 @@ CREATE TABLE x (
2
2
a serial,
3
3
b int,
4
4
c text not null default 'stuff',
5
- d text not null ,
5
+ d text,
6
6
e text
7
7
);
8
8
NOTICE: CREATE TABLE will create implicit sequence "x_a_seq" for "serial" column "x.a"
@@ -48,23 +48,38 @@ ERROR: extra data after last expected column
48
48
CONTEXT: COPY x, line 1: "2002 232 40 50 60 70 80"
49
49
-- various COPY options: delimiters, oids, NULL string
50
50
COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x';
51
+ COPY x from stdin WITH DELIMITER AS ';' NULL AS '';
52
+ COPY x from stdin WITH DELIMITER AS ':' NULL AS '\\X';
51
53
-- check results of copy in
52
54
SELECT * FROM x;
53
- a | b | c | d | e
54
- -------+----+-------+--------+----------------------
55
- 10000 | 21 | 31 | 41 | before trigger fired
56
- 10001 | 22 | 32 | 42 | before trigger fired
57
- 10002 | 23 | 33 | 43 | before trigger fired
58
- 10003 | 24 | 34 | 44 | before trigger fired
59
- 10004 | 25 | 35 | 45 | before trigger fired
60
- 10005 | 26 | 36 | 46 | before trigger fired
61
- 6 | | 45 | 80 | before trigger fired
62
- 1 | 1 | stuff | test_1 | after trigger fired
63
- 2 | 2 | stuff | test_2 | after trigger fired
64
- 3 | 3 | stuff | test_3 | after trigger fired
65
- 4 | 4 | stuff | test_4 | after trigger fired
66
- 5 | 5 | stuff | test_5 | after trigger fired
67
- (12 rows)
55
+ a | b | c | d | e
56
+ -------+----+------------+--------+----------------------
57
+ 9999 | | \N | NN | before trigger fired
58
+ 10000 | 21 | 31 | 41 | before trigger fired
59
+ 10001 | 22 | 32 | 42 | before trigger fired
60
+ 10002 | 23 | 33 | 43 | before trigger fired
61
+ 10003 | 24 | 34 | 44 | before trigger fired
62
+ 10004 | 25 | 35 | 45 | before trigger fired
63
+ 10005 | 26 | 36 | 46 | before trigger fired
64
+ 6 | | 45 | 80 | before trigger fired
65
+ 7 | | x | \x | before trigger fired
66
+ 8 | | , | \, | before trigger fired
67
+ 3000 | | c | | before trigger fired
68
+ 4000 | | C | | before trigger fired
69
+ 4001 | 1 | empty | | before trigger fired
70
+ 4002 | 2 | null | | before trigger fired
71
+ 4003 | 3 | Backslash | \ | before trigger fired
72
+ 4004 | 4 | BackslashX | \X | before trigger fired
73
+ 4005 | 5 | N | N | before trigger fired
74
+ 4006 | 6 | BackslashN | \N | before trigger fired
75
+ 4007 | 7 | XX | XX | before trigger fired
76
+ 4008 | 8 | Delimiter | : | before trigger fired
77
+ 1 | 1 | stuff | test_1 | after trigger fired
78
+ 2 | 2 | stuff | test_2 | after trigger fired
79
+ 3 | 3 | stuff | test_3 | after trigger fired
80
+ 4 | 4 | stuff | test_4 | after trigger fired
81
+ 5 | 5 | stuff | test_5 | after trigger fired
82
+ (25 rows)
68
83
69
84
-- COPY w/ oids on a table w/o oids should fail
70
85
CREATE TABLE no_oids (
@@ -80,39 +95,78 @@ COPY no_oids TO stdout WITH OIDS;
80
95
ERROR: table "no_oids" does not have OIDs
81
96
-- check copy out
82
97
COPY x TO stdout;
98
+ 9999 \N \\N NN before trigger fired
83
99
10000 21 31 41 before trigger fired
84
100
10001 22 32 42 before trigger fired
85
101
10002 23 33 43 before trigger fired
86
102
10003 24 34 44 before trigger fired
87
103
10004 25 35 45 before trigger fired
88
104
10005 26 36 46 before trigger fired
89
105
6 \N 45 80 before trigger fired
106
+ 7 \N x \\x before trigger fired
107
+ 8 \N , \\, before trigger fired
108
+ 3000 \N c \N before trigger fired
109
+ 4000 \N C \N before trigger fired
110
+ 4001 1 empty before trigger fired
111
+ 4002 2 null \N before trigger fired
112
+ 4003 3 Backslash \\ before trigger fired
113
+ 4004 4 BackslashX \\X before trigger fired
114
+ 4005 5 N N before trigger fired
115
+ 4006 6 BackslashN \\N before trigger fired
116
+ 4007 7 XX XX before trigger fired
117
+ 4008 8 Delimiter : before trigger fired
90
118
1 1 stuff test_1 after trigger fired
91
119
2 2 stuff test_2 after trigger fired
92
120
3 3 stuff test_3 after trigger fired
93
121
4 4 stuff test_4 after trigger fired
94
122
5 5 stuff test_5 after trigger fired
95
123
COPY x (c, e) TO stdout;
124
+ \\N before trigger fired
96
125
31 before trigger fired
97
126
32 before trigger fired
98
127
33 before trigger fired
99
128
34 before trigger fired
100
129
35 before trigger fired
101
130
36 before trigger fired
102
131
45 before trigger fired
132
+ x before trigger fired
133
+ , before trigger fired
134
+ c before trigger fired
135
+ C before trigger fired
136
+ empty before trigger fired
137
+ null before trigger fired
138
+ Backslash before trigger fired
139
+ BackslashX before trigger fired
140
+ N before trigger fired
141
+ BackslashN before trigger fired
142
+ XX before trigger fired
143
+ Delimiter before trigger fired
103
144
stuff after trigger fired
104
145
stuff after trigger fired
105
146
stuff after trigger fired
106
147
stuff after trigger fired
107
148
stuff after trigger fired
108
149
COPY x (b, e) TO stdout WITH NULL 'I''m null';
150
+ I'm null before trigger fired
109
151
21 before trigger fired
110
152
22 before trigger fired
111
153
23 before trigger fired
112
154
24 before trigger fired
113
155
25 before trigger fired
114
156
26 before trigger fired
115
157
I'm null before trigger fired
158
+ I'm null before trigger fired
159
+ I'm null before trigger fired
160
+ I'm null before trigger fired
161
+ I'm null before trigger fired
162
+ 1 before trigger fired
163
+ 2 before trigger fired
164
+ 3 before trigger fired
165
+ 4 before trigger fired
166
+ 5 before trigger fired
167
+ 6 before trigger fired
168
+ 7 before trigger fired
169
+ 8 before trigger fired
116
170
1 after trigger fired
117
171
2 after trigger fired
118
172
3 after trigger fired
0 commit comments