2000-01-05 07:06:23 +01:00
|
|
|
--
|
|
|
|
-- LSEG
|
|
|
|
-- Line segments
|
|
|
|
--
|
|
|
|
--DROP TABLE LSEG_TBL;
|
|
|
|
CREATE TABLE LSEG_TBL (s lseg);
|
|
|
|
INSERT INTO LSEG_TBL VALUES ('[(1,2),(3,4)]');
|
|
|
|
INSERT INTO LSEG_TBL VALUES ('(0,0),(6,6)');
|
|
|
|
INSERT INTO LSEG_TBL VALUES ('10,-10 ,-3,-4');
|
|
|
|
INSERT INTO LSEG_TBL VALUES ('[-1e6,2e2,3e5, -4e1]');
|
|
|
|
INSERT INTO LSEG_TBL VALUES ('(11,22,33,44)');
|
|
|
|
-- bad values for parser testing
|
|
|
|
INSERT INTO LSEG_TBL VALUES ('(3asdf,2 ,3,4r2)');
|
2003-09-25 08:58:07 +02:00
|
|
|
ERROR: invalid input syntax for type lseg: "(3asdf,2 ,3,4r2)"
|
2000-01-05 07:06:23 +01:00
|
|
|
INSERT INTO LSEG_TBL VALUES ('[1,2,3, 4');
|
2003-09-25 08:58:07 +02:00
|
|
|
ERROR: invalid input syntax for type lseg: "[1,2,3, 4"
|
2000-01-05 07:06:23 +01:00
|
|
|
INSERT INTO LSEG_TBL VALUES ('[(,2),(3,4)]');
|
2003-09-25 08:58:07 +02:00
|
|
|
ERROR: invalid input syntax for type lseg: "[(,2),(3,4)]"
|
2000-01-05 07:06:23 +01:00
|
|
|
INSERT INTO LSEG_TBL VALUES ('[(1,2),(3,4)');
|
2003-09-25 08:58:07 +02:00
|
|
|
ERROR: invalid input syntax for type lseg: "[(1,2),(3,4)"
|
2000-01-05 07:06:23 +01:00
|
|
|
select * from LSEG_TBL;
|
|
|
|
s
|
|
|
|
-------------------------------
|
|
|
|
[(1,2),(3,4)]
|
|
|
|
[(0,0),(6,6)]
|
|
|
|
[(10,-10),(-3,-4)]
|
|
|
|
[(-1000000,200),(300000,-40)]
|
|
|
|
[(11,22),(33,44)]
|
1997-05-11 17:42:09 +02:00
|
|
|
(5 rows)
|
|
|
|
|
2000-01-05 07:06:23 +01:00
|
|
|
SELECT * FROM LSEG_TBL WHERE s <= lseg '[(1,2),(3,4)]';
|
|
|
|
s
|
|
|
|
---------------
|
|
|
|
[(1,2),(3,4)]
|
1998-02-11 05:13:33 +01:00
|
|
|
(1 row)
|
|
|
|
|
2000-01-05 07:06:23 +01:00
|
|
|
SELECT * FROM LSEG_TBL WHERE (s <-> lseg '[(1,2),(3,4)]') < 10;
|
|
|
|
s
|
|
|
|
--------------------
|
|
|
|
[(1,2),(3,4)]
|
|
|
|
[(0,0),(6,6)]
|
|
|
|
[(10,-10),(-3,-4)]
|
1997-05-11 17:42:09 +02:00
|
|
|
(3 rows)
|
|
|
|
|