16
16
CREATE TABLE POLYGON_TBL (f1 polygon );
17
17
18
18
19
- INSERT INTO POLYGON_TBL(f1) VALUES (' (2.0,2.0,0 .0,0.0,4 .0,0.0)' );
19
+ INSERT INTO POLYGON_TBL(f1) VALUES (' (2.0,0.0),(2 .0,4.0),(0 .0,0.0)' );
20
20
21
- INSERT INTO POLYGON_TBL(f1) VALUES (' (3.0,3.0,1 .0,1.0,3 .0,0.0)' );
21
+ INSERT INTO POLYGON_TBL(f1) VALUES (' (3.0,1.0),(3 .0,3.0),(1 .0,0.0)' );
22
22
23
23
-- degenerate polygons
24
24
INSERT INTO POLYGON_TBL(f1) VALUES (' (0.0,0.0)' );
25
25
26
- INSERT INTO POLYGON_TBL(f1) VALUES (' (0.0,0.0,1.0,1.0)' );
26
+ INSERT INTO POLYGON_TBL(f1) VALUES (' (0.0,1.0),(0.0,1.0)' );
27
+
27
28
-- bad polygon input strings
28
29
INSERT INTO POLYGON_TBL(f1) VALUES (' 0.0' );
29
30
@@ -41,42 +42,42 @@ SELECT '' AS four, POLYGON_TBL.*;
41
42
-- overlap
42
43
SELECT ' ' AS three, p.*
43
44
FROM POLYGON_TBL p
44
- WHERE p .f1 && ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ;
45
+ WHERE p .f1 && ' (3.0,1.0),(3 .0,3.0),(1 .0,0.0)' ;
45
46
46
47
-- left overlap
47
48
SELECT ' ' AS four, p.*
48
49
FROM POLYGON_TBL p
49
- WHERE p .f1 &< ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ;
50
+ WHERE p .f1 &< ' (3.0,1.0),(3 .0,3.0),(1 .0,0.0)' ;
50
51
51
52
-- right overlap
52
53
SELECT ' ' AS two, p.*
53
54
FROM POLYGON_TBL p
54
- WHERE p .f1 &> ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ;
55
+ WHERE p .f1 &> ' (3.0,1.0),(3 .0,3.0),(1 .0,0.0)' ;
55
56
56
57
-- left of
57
58
SELECT ' ' AS one, p.*
58
59
FROM POLYGON_TBL p
59
- WHERE p .f1 << ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ;
60
+ WHERE p .f1 << ' (3.0,1.0),(3 .0,3.0),(1 .0,0.0)' ;
60
61
61
62
-- right of
62
63
SELECT ' ' AS zero, p.*
63
64
FROM POLYGON_TBL p
64
- WHERE p .f1 >> ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ;
65
+ WHERE p .f1 >> ' (3.0,1.0),(3 .0,3.0),(1 .0,0.0)' ;
65
66
66
67
-- contained
67
68
SELECT ' ' AS one, p.*
68
69
FROM POLYGON_TBL p
69
- WHERE p .f1 @ ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ;
70
+ WHERE p .f1 @ ' (3.0,1.0),(3 .0,3.0),(1 .0,0.0)' ;
70
71
71
72
-- same
72
73
SELECT ' ' AS one, p.*
73
74
FROM POLYGON_TBL p
74
- WHERE p .f1 ~= ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ;
75
+ WHERE p .f1 ~= ' (3.0,1.0),(3 .0,3.0),(1 .0,0.0)' ;
75
76
76
77
-- contains
77
78
SELECT ' ' AS one, p.*
78
79
FROM POLYGON_TBL p
79
- WHERE p .f1 ~ ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ;
80
+ WHERE p .f1 ~ ' (3.0,1.0),(3 .0,3.0),(1 .0,0.0)' ;
80
81
81
82
--
82
83
-- polygon logic
@@ -92,26 +93,26 @@ SELECT '' AS one, p.*
92
93
-- 0 1 2 3 4
93
94
--
94
95
-- left of
95
- SELECT ' (2.0,2.0,0 .0,0.0,4 .0,0.0)' ::polygon << ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ::polygon AS false;
96
+ SELECT ' (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)' ::polygon AS false;
96
97
97
98
-- left overlap
98
- SELECT ' (2.0,2.0,0 .0,0.0,4 .0,0.0)' ::polygon & < ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ::polygon AS true;
99
+ SELECT ' (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)' ::polygon AS true;
99
100
100
101
-- right overlap
101
- SELECT ' (2.0,2.0,0 .0,0.0,4 .0,0.0)' ::polygon &> ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ::polygon AS true;
102
+ SELECT ' (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)' ::polygon AS true;
102
103
103
104
-- right of
104
- SELECT ' (2.0,2.0,0 .0,0.0,4 .0,0.0)' ::polygon >> ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ::polygon AS false;
105
+ SELECT ' (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)' ::polygon AS false;
105
106
106
107
-- contained in
107
- SELECT ' (2.0,2.0,0 .0,0.0,4 .0,0.0)' ::polygon @ ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ::polygon AS false;
108
+ SELECT ' (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)' ::polygon AS false;
108
109
109
110
-- contains
110
- SELECT ' (2.0,2.0,0 .0,0.0,4 .0,0.0)' ::polygon ~ ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ::polygon AS false;
111
+ SELECT ' (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)' ::polygon AS false;
111
112
112
113
-- same
113
- SELECT ' (2.0,2.0,0 .0,0.0,4 .0,0.0)' ::polygon ~= ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ::polygon AS false;
114
+ SELECT ' (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)' ::polygon AS false;
114
115
115
116
-- overlap
116
- SELECT ' (2.0,2.0,0 .0,0.0,4 .0,0.0)' ::polygon && ' (3.0,3.0,1 .0,1.0,3 .0,0.0)' ::polygon AS true;
117
+ SELECT ' (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)' ::polygon AS true;
117
118
0 commit comments