Fix pg_dump bug in the database-level collation patch. "datcollate" and
[PostgreSQL.git] / src / test / regress / sql / box.sql
bloba689295a8bdc3e9b11b98e97d6f6283d4523c267
1 --
2 -- BOX
3 --
5 --
6 -- box logic
7 --           o
8 -- 3      o--|X
9 --        |  o|
10 -- 2    +-+-+ |
11 --      | | | |
12 -- 1    | o-+-o
13 --      |   |
14 -- 0    +---+
16 --      0 1 2 3
19 -- boxes are specified by two points, given by four floats x1,y1,x2,y2
22 CREATE TABLE BOX_TBL (f1 box);
24 INSERT INTO BOX_TBL (f1) VALUES ('(2.0,2.0,0.0,0.0)');
26 INSERT INTO BOX_TBL (f1) VALUES ('(1.0,1.0,3.0,3.0)');
28 -- degenerate cases where the box is a line or a point 
29 -- note that lines and points boxes all have zero area 
30 INSERT INTO BOX_TBL (f1) VALUES ('(2.5, 2.5, 2.5,3.5)');
32 INSERT INTO BOX_TBL (f1) VALUES ('(3.0, 3.0,3.0,3.0)');
34 -- badly formatted box inputs 
35 INSERT INTO BOX_TBL (f1) VALUES ('(2.3, 4.5)');
37 INSERT INTO BOX_TBL (f1) VALUES ('asdfasdf(ad');
40 SELECT '' AS four, * FROM BOX_TBL;
42 SELECT '' AS four, b.*, area(b.f1) as barea
43    FROM BOX_TBL b;
45 -- overlap 
46 SELECT '' AS three, b.f1
47    FROM BOX_TBL b  
48    WHERE b.f1 && box '(2.5,2.5,1.0,1.0)';
50 -- left-or-overlap (x only) 
51 SELECT '' AS two, b1.*
52    FROM BOX_TBL b1
53    WHERE b1.f1 &< box '(2.0,2.0,2.5,2.5)';
55 -- right-or-overlap (x only) 
56 SELECT '' AS two, b1.*
57    FROM BOX_TBL b1
58    WHERE b1.f1 &> box '(2.0,2.0,2.5,2.5)';
60 -- left of 
61 SELECT '' AS two, b.f1
62    FROM BOX_TBL b
63    WHERE b.f1 << box '(3.0,3.0,5.0,5.0)';
65 -- area <= 
66 SELECT '' AS four, b.f1
67    FROM BOX_TBL b
68    WHERE b.f1 <= box '(3.0,3.0,5.0,5.0)';
70 -- area < 
71 SELECT '' AS two, b.f1
72    FROM BOX_TBL b
73    WHERE b.f1 < box '(3.0,3.0,5.0,5.0)';
75 -- area = 
76 SELECT '' AS two, b.f1
77    FROM BOX_TBL b
78    WHERE b.f1 = box '(3.0,3.0,5.0,5.0)';
80 -- area > 
81 SELECT '' AS two, b.f1
82    FROM BOX_TBL b                               -- zero area 
83    WHERE b.f1 > box '(3.5,3.0,4.5,3.0)';        
85 -- area >= 
86 SELECT '' AS four, b.f1
87    FROM BOX_TBL b                               -- zero area 
88    WHERE b.f1 >= box '(3.5,3.0,4.5,3.0)';
90 -- right of 
91 SELECT '' AS two, b.f1
92    FROM BOX_TBL b
93    WHERE box '(3.0,3.0,5.0,5.0)' >> b.f1;
95 -- contained in 
96 SELECT '' AS three, b.f1
97    FROM BOX_TBL b
98    WHERE b.f1 <@ box '(0,0,3,3)';
100 -- contains 
101 SELECT '' AS three, b.f1
102    FROM BOX_TBL b
103    WHERE box '(0,0,3,3)' @> b.f1;
105 -- box equality 
106 SELECT '' AS one, b.f1
107    FROM BOX_TBL b
108    WHERE box '(1,1,3,3)' ~= b.f1;
110 -- center of box, left unary operator 
111 SELECT '' AS four, @@(b1.f1) AS p
112    FROM BOX_TBL b1;
114 -- wholly-contained 
115 SELECT '' AS one, b1.*, b2.*
116    FROM BOX_TBL b1, BOX_TBL b2 
117    WHERE b1.f1 @> b2.f1 and not b1.f1 ~= b2.f1;
119 SELECT '' AS four, height(f1), width(f1) FROM BOX_TBL;