@@ -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: "20022324050607080"
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\\NNNbefore trigger fired
83
99
10000213141before trigger fired
84
100
10001223242before trigger fired
85
101
10002233343before trigger fired
86
102
10003243444before trigger fired
87
103
10004253545before trigger fired
88
104
10005263646before trigger fired
89
105
6\N4580before trigger fired
106
+ 7\Nx\\xbefore trigger fired
107
+ 8\N,\\,before trigger fired
108
+ 3000\Nc\Nbefore trigger fired
109
+ 4000\NC\Nbefore trigger fired
110
+ 40011emptybefore trigger fired
111
+ 40022null\Nbefore trigger fired
112
+ 40033Backslash\\before trigger fired
113
+ 40044BackslashX\\Xbefore trigger fired
114
+ 40055NNbefore trigger fired
115
+ 40066BackslashN\\Nbefore trigger fired
116
+ 40077XXXXbefore trigger fired
117
+ 40088Delimiter:before trigger fired
90
118
11stufftest_1after trigger fired
91
119
22stufftest_2after trigger fired
92
120
33stufftest_3after trigger fired
93
121
44stufftest_4after trigger fired
94
122
55stufftest_5after trigger fired
95
123
COPY x (c, e) TO stdout;
124
+ \\Nbefore trigger fired
96
125
31before trigger fired
97
126
32before trigger fired
98
127
33before trigger fired
99
128
34before trigger fired
100
129
35before trigger fired
101
130
36before trigger fired
102
131
45before trigger fired
132
+ xbefore trigger fired
133
+ ,before trigger fired
134
+ cbefore trigger fired
135
+ Cbefore trigger fired
136
+ emptybefore trigger fired
137
+ nullbefore trigger fired
138
+ Backslashbefore trigger fired
139
+ BackslashXbefore trigger fired
140
+ Nbefore trigger fired
141
+ BackslashNbefore trigger fired
142
+ XXbefore trigger fired
143
+ Delimiterbefore trigger fired
103
144
stuffafter trigger fired
104
145
stuffafter trigger fired
105
146
stuffafter trigger fired
106
147
stuffafter trigger fired
107
148
stuffafter trigger fired
108
149
COPY x (b, e) TO stdout WITH NULL 'I''m null';
150
+ I'm nullbefore trigger fired
109
151
21before trigger fired
110
152
22before trigger fired
111
153
23before trigger fired
112
154
24before trigger fired
113
155
25before trigger fired
114
156
26before trigger fired
115
157
I'm nullbefore trigger fired
158
+ I'm nullbefore trigger fired
159
+ I'm nullbefore trigger fired
160
+ I'm nullbefore trigger fired
161
+ I'm nullbefore trigger fired
162
+ 1before trigger fired
163
+ 2before trigger fired
164
+ 3before trigger fired
165
+ 4before trigger fired
166
+ 5before trigger fired
167
+ 6before trigger fired
168
+ 7before trigger fired
169
+ 8before trigger fired
116
170
1after trigger fired
117
171
2after trigger fired
118
172
3after trigger fired