Fix xslt_process() to ensure that it inserts a NULL terminator after the
[PostgreSQL.git] / src / test / regress / expected / polygon.out
blob56b72aaa8e12b9a436a657c30bbf75913a4fea9b
1 --
2 -- POLYGON
3 --
4 -- polygon logic
5 --
6 -- 3          o
7 --            |
8 -- 2        + |
9 --         /  |
10 -- 1      # o +
11 --       /    |
12 -- 0    #-----o-+
14 --      0 1 2 3 4
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)
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)
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)
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)
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)
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)
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)
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)
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)
129 -- polygon logic
131 -- 3          o
132 --            |
133 -- 2        + |
134 --         /  |
135 -- 1      / o +
136 --       /    |
137 -- 0    +-----o-+
139 --      0 1 2 3 4
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 -------
146 (1 row)
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 ------
153 (1 row)
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 -------
160 (1 row)
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 -------
167 (1 row)
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 -------
174 (1 row)
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 -------
181 (1 row)
183 -- same 
184 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;
185  false 
186 -------
188 (1 row)
190 -- overlap 
191 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;
192  true 
193 ------
195 (1 row)