]> granicus.if.org Git - postgresql/blob - src/test/regress/expected/polygon.out
Remove useless whitespace at end of lines
[postgresql] / src / test / regress / expected / polygon.out
1 --
2 -- POLYGON
3 --
4 -- polygon logic
5 --
6 -- 3          o
7 --            |
8 -- 2        + |
9 --         /  |
10 -- 1      # o +
11 --       /    |
12 -- 0    #-----o-+
13 --
14 --      0 1 2 3 4
15 --
16 CREATE TABLE POLYGON_TBL(f1 polygon);
17 INSERT INTO POLYGON_TBL(f1) VALUES ('(2.0,0.0),(2.0,4.0),(0.0,0.0)');
18 INSERT INTO POLYGON_TBL(f1) VALUES ('(3.0,1.0),(3.0,3.0),(1.0,0.0)');
19 -- degenerate polygons
20 INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,0.0)');
21 INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,1.0),(0.0,1.0)');
22 -- bad polygon input strings
23 INSERT INTO POLYGON_TBL(f1) VALUES ('0.0');
24 ERROR:  invalid input syntax for type polygon: "0.0"
25 LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('0.0');
26                                             ^
27 INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0 0.0');
28 ERROR:  invalid input syntax for type polygon: "(0.0 0.0"
29 LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0 0.0');
30                                             ^
31 INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2)');
32 ERROR:  invalid input syntax for type polygon: "(0,1,2)"
33 LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2)');
34                                             ^
35 INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2,3');
36 ERROR:  invalid input syntax for type polygon: "(0,1,2,3"
37 LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2,3');
38                                             ^
39 INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');
40 ERROR:  invalid input syntax for type polygon: "asdf"
41 LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');
42                                             ^
43 SELECT '' AS four, * FROM POLYGON_TBL;
44  four |         f1          
45 ------+---------------------
46       | ((2,0),(2,4),(0,0))
47       | ((3,1),(3,3),(1,0))
48       | ((0,0))
49       | ((0,1),(0,1))
50 (4 rows)
51
52 -- overlap
53 SELECT '' AS three, p.*
54    FROM POLYGON_TBL p
55    WHERE p.f1 && '(3.0,1.0),(3.0,3.0),(1.0,0.0)';
56  three |         f1          
57 -------+---------------------
58        | ((2,0),(2,4),(0,0))
59        | ((3,1),(3,3),(1,0))
60 (2 rows)
61
62 -- left overlap
63 SELECT '' AS four, p.*
64    FROM POLYGON_TBL p
65    WHERE p.f1 &< '(3.0,1.0),(3.0,3.0),(1.0,0.0)';
66  four |         f1          
67 ------+---------------------
68       | ((2,0),(2,4),(0,0))
69       | ((3,1),(3,3),(1,0))
70       | ((0,0))
71       | ((0,1),(0,1))
72 (4 rows)
73
74 -- right overlap
75 SELECT '' AS two, p.*
76    FROM POLYGON_TBL p
77    WHERE p.f1 &> '(3.0,1.0),(3.0,3.0),(1.0,0.0)';
78  two |         f1          
79 -----+---------------------
80      | ((3,1),(3,3),(1,0))
81 (1 row)
82
83 -- left of
84 SELECT '' AS one, p.*
85    FROM POLYGON_TBL p
86    WHERE p.f1 << '(3.0,1.0),(3.0,3.0),(1.0,0.0)';
87  one |      f1       
88 -----+---------------
89      | ((0,0))
90      | ((0,1),(0,1))
91 (2 rows)
92
93 -- right of
94 SELECT '' AS zero, p.*
95    FROM POLYGON_TBL p
96    WHERE p.f1 >> '(3.0,1.0),(3.0,3.0),(1.0,0.0)';
97  zero | f1 
98 ------+----
99 (0 rows)
100
101 -- contained
102 SELECT '' AS one, p.*
103    FROM POLYGON_TBL p
104    WHERE p.f1 <@ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)';
105  one |         f1          
106 -----+---------------------
107      | ((3,1),(3,3),(1,0))
108 (1 row)
109
110 -- same
111 SELECT '' AS one, p.*
112    FROM POLYGON_TBL p
113    WHERE p.f1 ~= polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)';
114  one |         f1          
115 -----+---------------------
116      | ((3,1),(3,3),(1,0))
117 (1 row)
118
119 -- contains
120 SELECT '' AS one, p.*
121    FROM POLYGON_TBL p
122    WHERE p.f1 @> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)';
123  one |         f1          
124 -----+---------------------
125      | ((3,1),(3,3),(1,0))
126 (1 row)
127
128 --
129 -- polygon logic
130 --
131 -- 3          o
132 --            |
133 -- 2        + |
134 --         /  |
135 -- 1      / o +
136 --       /    |
137 -- 0    +-----o-+
138 --
139 --      0 1 2 3 4
140 --
141 -- left of
142 SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
143  false 
144 -------
145  f
146 (1 row)
147
148 -- left overlap
149 SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true;
150  true 
151 ------
152  f
153 (1 row)
154
155 -- right overlap
156 SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' &> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
157  false 
158 -------
159  f
160 (1 row)
161
162 -- right of
163 SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' >> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
164  false 
165 -------
166  f
167 (1 row)
168
169 -- contained in
170 SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' <@ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
171  false 
172 -------
173  f
174 (1 row)
175
176 -- contains
177 SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' @> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
178  false 
179 -------
180  f
181 (1 row)
182
183 --     +------------------------+
184 --     |    *---*               1
185 --     |  + |   |
186 --     |  2 *---*
187 --     +------------------------+
188 --                              3
189 --     endpoints '+' is ofr one polygon, '*' - for another
190 --     Edges 1-2, 2-3 are not shown on picture
191 SELECT '((0,4),(6,4),(1,2),(6,0),(0,0))'::polygon @> '((2,1),(2,3),(3,3),(3,1))'::polygon AS "false";
192  false 
193 -------
194  f
195 (1 row)
196
197 --     +-----------+
198 --     |    *---* /
199 --     |    |   |/
200 --     |    |   +
201 --     |    |   |\
202 --     |    *---* \
203 --     +-----------+
204 SELECT '((0,4),(6,4),(3,2),(6,0),(0,0))'::polygon @> '((2,1),(2,3),(3,3),(3,1))'::polygon AS "true";
205  true 
206 ------
207  t
208 (1 row)
209
210 --     +-----------------+
211 --     |                 |
212 --     |   +---*---*-----+
213 --     |   |   |   |
214 --     |   +---*---*-----+
215 --     |                 |
216 --     +-----------------+
217 SELECT '((1,1),(1,4),(5,4),(5,3),(2,3),(2,2),(5,2),(5,1))'::polygon @> '((3,2),(3,3),(4,3),(4,2))'::polygon AS "false";
218  false 
219 -------
220  f
221 (1 row)
222
223 --     +---------+
224 --     |         |
225 --     |    *----*
226 --     |    |    |
227 --     |    *----*
228 --     |         |
229 --     +---------+
230 SELECT '((0,0),(0,3),(3,3),(3,0))'::polygon @> '((2,1),(2,2),(3,2),(3,1))'::polygon AS "true";
231  true 
232 ------
233  t
234 (1 row)
235
236 -- same
237 SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' ~= polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;
238  false 
239 -------
240  f
241 (1 row)
242
243 -- overlap
244 SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' && polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true;
245  true 
246 ------
247  t
248 (1 row)
249
250 --     +--------------------+
251 --     |    *---*               1
252 --     |  + |   |
253 --     |  2 *---*
254 --     +--------------------+
255 --                              3
256 --     Edges 1-2, 2-3 are not shown on picture
257 SELECT '((0,4),(6,4),(1,2),(6,0),(0,0))'::polygon && '((2,1),(2,3),(3,3),(3,1))'::polygon AS "true";
258  true 
259 ------
260  t
261 (1 row)
262
263 --     +--+ *--*
264 --     |  | |  |
265 --     |  | *--*
266 --     |  +----+
267 --     |       |
268 --     +-------+
269 SELECT '((1,4),(1,1),(4,1),(4,2),(2,2),(2,4),(1,4))'::polygon && '((3,3),(4,3),(4,4),(3,4),(3,3))'::polygon AS "false";
270  false 
271 -------
272  f
273 (1 row)
274
275 SELECT '((200,800),(800,800),(800,200),(200,200))' &&  '(1000,1000,0,0)'::polygon AS "true";
276  true 
277 ------
278  t
279 (1 row)
280