Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 962987a

Browse files
committed
Add NULL regression tests.
Manfred Koizar
1 parent d7c971a commit 962987a

File tree

2 files changed

+90
-17
lines changed

2 files changed

+90
-17
lines changed

src/test/regress/expected/copy2.out

Lines changed: 70 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ CREATE TABLE x (
22
a serial,
33
b int,
44
c text not null default 'stuff',
5-
d text not null,
5+
d text,
66
e text
77
);
88
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
4848
CONTEXT: COPY x, line 1: "2002 232 40 50 60 70 80"
4949
-- various COPY options: delimiters, oids, NULL string
5050
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';
5153
-- check results of copy in
5254
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)
6883

6984
-- COPY w/ oids on a table w/o oids should fail
7085
CREATE TABLE no_oids (
@@ -80,39 +95,78 @@ COPY no_oids TO stdout WITH OIDS;
8095
ERROR: table "no_oids" does not have OIDs
8196
-- check copy out
8297
COPY x TO stdout;
98+
9999 \N \\N NN before trigger fired
8399
10000 21 31 41 before trigger fired
84100
10001 22 32 42 before trigger fired
85101
10002 23 33 43 before trigger fired
86102
10003 24 34 44 before trigger fired
87103
10004 25 35 45 before trigger fired
88104
10005 26 36 46 before trigger fired
89105
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
90118
1 1 stuff test_1 after trigger fired
91119
2 2 stuff test_2 after trigger fired
92120
3 3 stuff test_3 after trigger fired
93121
4 4 stuff test_4 after trigger fired
94122
5 5 stuff test_5 after trigger fired
95123
COPY x (c, e) TO stdout;
124+
\\N before trigger fired
96125
31 before trigger fired
97126
32 before trigger fired
98127
33 before trigger fired
99128
34 before trigger fired
100129
35 before trigger fired
101130
36 before trigger fired
102131
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
103144
stuff after trigger fired
104145
stuff after trigger fired
105146
stuff after trigger fired
106147
stuff after trigger fired
107148
stuff after trigger fired
108149
COPY x (b, e) TO stdout WITH NULL 'I''m null';
150+
I'm null before trigger fired
109151
21 before trigger fired
110152
22 before trigger fired
111153
23 before trigger fired
112154
24 before trigger fired
113155
25 before trigger fired
114156
26 before trigger fired
115157
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
116170
1 after trigger fired
117171
2 after trigger fired
118172
3 after trigger fired

src/test/regress/sql/copy2.sql

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ CREATE TABLE x (
22
a serial,
33
b int,
44
c text not null default 'stuff',
5-
d text not null,
5+
d text,
66
e text
77
);
88

@@ -27,6 +27,7 @@ CREATE TRIGGER trg_x_before BEFORE INSERT ON x
2727
FOR EACH ROW EXECUTE PROCEDURE fn_x_before();
2828

2929
COPY x (a, b, c, d, e) from stdin;
30+
9999 \N \\N \NN \N
3031
10000 21 31 41 51
3132
\.
3233

@@ -74,6 +75,24 @@ COPY x from stdin;
7475
-- various COPY options: delimiters, oids, NULL string
7576
COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x';
7677
500000,x,45,80,90
78+
500001,x,\x,\\x,\\\x
79+
500002,x,\,,\\\,,\\
80+
\.
81+
82+
COPY x from stdin WITH DELIMITER AS ';' NULL AS '';
83+
3000;;c;;
84+
\.
85+
86+
COPY x from stdin WITH DELIMITER AS ':' NULL AS '\\X';
87+
4000:\X:C:\X:\X
88+
4001:1:empty::
89+
4002:2:null:\X:\X
90+
4003:3:Backslash:\\:\\
91+
4004:4:BackslashX:\\X:\\X
92+
4005:5:N:\N:\N
93+
4006:6:BackslashN:\\N:\\N
94+
4007:7:XX:\XX:\XX
95+
4008:8:Delimiter:\::\:
7796
\.
7897

7998
-- check results of copy in

0 commit comments

Comments
 (0)