aboutsummaryrefslogtreecommitdiff
path: root/src/test/regress/sql/geometry.sql
blob: bd2b88a1a7b3cea0546b37245bec804d9ceb8b9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
--
-- Points
--

SELECT point(f1) FROM CIRCLE_TBL;

SELECT '' AS two, p1.f1
    FROM POINT_TBL p1
    WHERE ishorizontal(p1.f1, '(0,0)'::point);

SELECT '' AS one, p1.f1
    FROM POINT_TBL p1
    WHERE isvertical(p1.f1, '(5.1,34.5)'::point);

--
-- Line segments
--

--
-- Lines
--

--
-- Boxes
--

SELECT center(f1) FROM BOX_TBL;

SELECT box(f1) FROM CIRCLE_TBL;

-- translation
SELECT '' AS count, b.f1 + p.f1
    FROM BOX_TBL b, POINT_TBL p;

-- scaling and rotation
SELECT '' AS count, b.f1 * p.f1
    FROM BOX_TBL b, POINT_TBL p;

--
-- Paths
--

SET geqo TO 'off';

SELECT points(f1) AS npoints, f1 AS path FROM PATH_TBL;

SELECT path(f1) FROM POLYGON_TBL;

-- translation
SELECT '' AS eight, p1.f1 + '(10,10)'::point AS dist_add
    FROM PATH_TBL p1;

-- scaling and rotation
SELECT '' AS eight, p1.f1 * '(2,-1)'::point AS dist_mul
    FROM PATH_TBL p1;

RESET geqo;

--
-- Polygons
--

SELECT points(f1) AS npoints, f1 AS polygon FROM POLYGON_TBL;

SELECT polygon(f1) FROM BOX_TBL;

SELECT polygon(f1) FROM PATH_TBL WHERE isclosed(f1);

SELECT f1 AS open_path, polygon( pclose(f1)) AS polygon FROM PATH_TBL WHERE isopen(f1);

-- convert circles to polygons using the default number of points
SELECT polygon(f1) FROM CIRCLE_TBL;

-- convert the circle to an 8-point polygon
SELECT polygon(8, f1) FROM CIRCLE_TBL;

--
-- Circles
--

SELECT circle( f1, 50.0) FROM POINT_TBL;

SELECT '' AS twentyfour, c1.f1 AS circle, p1.f1 AS point, (p1.f1 <===> c1.f1) AS distance
 from CIRCLE_TBL c1, POINT_TBL p1
 WHERE (p1.f1 <===> c1.f1) > 0
 ORDER BY distance, circle;