Detect redundant GROUP BY columns using UNIQUE indexes
[pgsql.git] / src / test / regress / expected / copyselect.out
blobbb9e026f913aed4963f8d42ab289eaab0a73918e
1 --
2 -- Test cases for COPY (select) TO
3 --
4 create table test1 (id serial, t text);
5 insert into test1 (t) values ('a');
6 insert into test1 (t) values ('b');
7 insert into test1 (t) values ('c');
8 insert into test1 (t) values ('d');
9 insert into test1 (t) values ('e');
10 create table test2 (id serial, t text);
11 insert into test2 (t) values ('A');
12 insert into test2 (t) values ('B');
13 insert into test2 (t) values ('C');
14 insert into test2 (t) values ('D');
15 insert into test2 (t) values ('E');
16 create view v_test1
17 as select 'v_'||t from test1;
19 -- Test COPY table TO
21 copy test1 to stdout;
22 1       a
23 2       b
24 3       c
25 4       d
26 5       e
28 -- This should fail
30 copy v_test1 to stdout;
31 ERROR:  cannot copy from view "v_test1"
32 HINT:  Try the COPY (SELECT ...) TO variant.
34 -- Test COPY (select) TO
36 copy (select t from test1 where id=1) to stdout;
39 -- Test COPY (select for update) TO
41 copy (select t from test1 where id=3 for update) to stdout;
44 -- This should fail
46 copy (select t into temp test3 from test1 where id=3) to stdout;
47 ERROR:  COPY (SELECT INTO) is not supported
49 -- This should fail
51 copy (select * from test1) from stdin;
52 ERROR:  syntax error at or near "from"
53 LINE 1: copy (select * from test1) from stdin;
54                                    ^
56 -- This should fail
58 copy (select * from test1) (t,id) to stdout;
59 ERROR:  syntax error at or near "("
60 LINE 1: copy (select * from test1) (t,id) to stdout;
61                                    ^
63 -- Test JOIN
65 copy (select * from test1 join test2 using (id)) to stdout;
66 1       a       A
67 2       b       B
68 3       c       C
69 4       d       D
70 5       e       E
72 -- Test UNION SELECT
74 copy (select t from test1 where id = 1 UNION select * from v_test1 ORDER BY 1) to stdout;
76 v_a
77 v_b
78 v_c
79 v_d
80 v_e
82 -- Test subselect
84 copy (select * from (select t from test1 where id = 1 UNION select * from v_test1 ORDER BY 1) t1) to stdout;
86 v_a
87 v_b
88 v_c
89 v_d
90 v_e
92 -- Test headers, CSV and quotes
94 copy (select t from test1 where id = 1) to stdout csv header force quote t;
96 "a"
98 -- Test psql builtins, plain table
100 \copy test1 to stdout
101 1       a
102 2       b
103 3       c
104 4       d
105 5       e
107 -- This should fail
109 \copy v_test1 to stdout
110 ERROR:  cannot copy from view "v_test1"
111 HINT:  Try the COPY (SELECT ...) TO variant.
113 -- Test \copy (select ...)
115 \copy (select "id",'id','id""'||t,(id + 1)*id,t,"test1"."t" from test1 where id=3) to stdout
116 3       id      id""c   12      c       c
118 -- Drop everything
120 drop table test2;
121 drop view v_test1;
122 drop table test1;
123 -- psql handling of COPY in multi-command strings
124 copy (select 1) to stdout\; select 1/0; -- row, then error
126 ERROR:  division by zero
127 select 1/0\; copy (select 1) to stdout; -- error only
128 ERROR:  division by zero
129 copy (select 1) to stdout\; copy (select 2) to stdout\; select 3\; select 4; -- 1 2 3 4
132  ?column? 
133 ----------
134         3
135 (1 row)
137  ?column? 
138 ----------
139         4
140 (1 row)
142 create table test3 (c int);
143 select 0\; copy test3 from stdin\; copy test3 from stdin\; select 1; -- 0 1
144  ?column? 
145 ----------
146         0
147 (1 row)
149  ?column? 
150 ----------
151         1
152 (1 row)
154 select * from test3;
155  c 
159 (2 rows)
161 drop table test3;