postgresql/src/test/regress/expected/circle.out

126 lines
3.2 KiB
Plaintext

--
-- CIRCLE
--
-- Back off displayed precision a little bit to reduce platform-to-platform
-- variation in results.
SET extra_float_digits = -1;
CREATE TABLE CIRCLE_TBL (f1 circle);
INSERT INTO CIRCLE_TBL VALUES ('<(5,1),3>');
INSERT INTO CIRCLE_TBL VALUES ('((1,2),100)');
INSERT INTO CIRCLE_TBL VALUES (' 1 , 3 , 5 ');
INSERT INTO CIRCLE_TBL VALUES (' ( ( 1 , 2 ) , 3 ) ');
INSERT INTO CIRCLE_TBL VALUES (' ( 100 , 200 ) , 10 ');
INSERT INTO CIRCLE_TBL VALUES (' < ( 100 , 1 ) , 115 > ');
INSERT INTO CIRCLE_TBL VALUES ('<(3,5),0>'); -- Zero radius
INSERT INTO CIRCLE_TBL VALUES ('<(3,5),NaN>'); -- NaN radius
-- bad values
INSERT INTO CIRCLE_TBL VALUES ('<(-100,0),-100>');
ERROR: invalid input syntax for type circle: "<(-100,0),-100>"
LINE 1: INSERT INTO CIRCLE_TBL VALUES ('<(-100,0),-100>');
^
INSERT INTO CIRCLE_TBL VALUES ('<(100,200),10');
ERROR: invalid input syntax for type circle: "<(100,200),10"
LINE 1: INSERT INTO CIRCLE_TBL VALUES ('<(100,200),10');
^
INSERT INTO CIRCLE_TBL VALUES ('<(100,200),10> x');
ERROR: invalid input syntax for type circle: "<(100,200),10> x"
LINE 1: INSERT INTO CIRCLE_TBL VALUES ('<(100,200),10> x');
^
INSERT INTO CIRCLE_TBL VALUES ('1abc,3,5');
ERROR: invalid input syntax for type circle: "1abc,3,5"
LINE 1: INSERT INTO CIRCLE_TBL VALUES ('1abc,3,5');
^
INSERT INTO CIRCLE_TBL VALUES ('(3,(1,2),3)');
ERROR: invalid input syntax for type circle: "(3,(1,2),3)"
LINE 1: INSERT INTO CIRCLE_TBL VALUES ('(3,(1,2),3)');
^
SELECT * FROM CIRCLE_TBL;
f1
----------------
<(5,1),3>
<(1,2),100>
<(1,3),5>
<(1,2),3>
<(100,200),10>
<(100,1),115>
<(3,5),0>
<(3,5),NaN>
(8 rows)
SELECT center(f1) AS center
FROM CIRCLE_TBL;
center
-----------
(5,1)
(1,2)
(1,3)
(1,2)
(100,200)
(100,1)
(3,5)
(3,5)
(8 rows)
SELECT radius(f1) AS radius
FROM CIRCLE_TBL;
radius
--------
3
100
5
3
10
115
0
NaN
(8 rows)
SELECT diameter(f1) AS diameter
FROM CIRCLE_TBL;
diameter
----------
6
200
10
6
20
230
0
NaN
(8 rows)
SELECT f1 FROM CIRCLE_TBL WHERE radius(f1) < 5;
f1
-----------
<(5,1),3>
<(1,2),3>
<(3,5),0>
(3 rows)
SELECT f1 FROM CIRCLE_TBL WHERE diameter(f1) >= 10;
f1
----------------
<(1,2),100>
<(1,3),5>
<(100,200),10>
<(100,1),115>
<(3,5),NaN>
(5 rows)
SELECT c1.f1 AS one, c2.f1 AS two, (c1.f1 <-> c2.f1) AS distance
FROM CIRCLE_TBL c1, CIRCLE_TBL c2
WHERE (c1.f1 < c2.f1) AND ((c1.f1 <-> c2.f1) > 0)
ORDER BY distance, area(c1.f1), area(c2.f1);
one | two | distance
----------------+----------------+------------------
<(3,5),0> | <(1,2),3> | 0.60555127546399
<(3,5),0> | <(5,1),3> | 1.4721359549996
<(100,200),10> | <(100,1),115> | 74
<(100,200),10> | <(1,2),100> | 111.37072977248
<(1,3),5> | <(100,200),10> | 205.4767561445
<(5,1),3> | <(100,200),10> | 207.51303816328
<(3,5),0> | <(100,200),10> | 207.79348015953
<(1,2),3> | <(100,200),10> | 208.37072977248
(8 rows)