~vcs-imports/mammoth-replicator/trunk

« back to all changes in this revision

Viewing changes to src/test/regress/sql/polygon.sql

  • Committer: alvherre
  • Date: 2005-12-16 21:24:52 UTC
  • Revision ID: svn-v4:db760fc0-0f08-0410-9d63-cc6633f64896:trunk:1
Initial import of the REL8_0_3 sources from the Pgsql CVS repository.

Show diffs side-by-side

added added

removed removed

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