2000-01-05 07:06:23 +01:00
|
|
|
--
|
|
|
|
-- PATH
|
|
|
|
--
|
|
|
|
--DROP TABLE PATH_TBL;
|
|
|
|
CREATE TABLE PATH_TBL (f1 path);
|
|
|
|
INSERT INTO PATH_TBL VALUES ('[(1,2),(3,4)]');
|
2018-09-26 10:45:21 +02:00
|
|
|
INSERT INTO PATH_TBL VALUES (' ( ( 1 , 2 ) , ( 3 , 4 ) ) ');
|
|
|
|
INSERT INTO PATH_TBL VALUES ('[ (0,0),(3,0),(4,5),(1,6) ]');
|
|
|
|
INSERT INTO PATH_TBL VALUES ('((1,2) ,(3,4 ))');
|
|
|
|
INSERT INTO PATH_TBL VALUES ('1,2 ,3,4 ');
|
|
|
|
INSERT INTO PATH_TBL VALUES (' [1,2,3, 4] ');
|
|
|
|
INSERT INTO PATH_TBL VALUES ('((10,20))'); -- Only one point
|
|
|
|
INSERT INTO PATH_TBL VALUES ('[ 11,12,13,14 ]');
|
|
|
|
INSERT INTO PATH_TBL VALUES ('( 11,12,13,14) ');
|
2000-01-05 07:06:23 +01:00
|
|
|
-- bad values for parser testing
|
2018-09-26 10:45:21 +02:00
|
|
|
INSERT INTO PATH_TBL VALUES ('[]');
|
|
|
|
ERROR: invalid input syntax for type path: "[]"
|
|
|
|
LINE 1: INSERT INTO PATH_TBL VALUES ('[]');
|
|
|
|
^
|
2000-01-05 07:06:23 +01:00
|
|
|
INSERT INTO PATH_TBL VALUES ('[(,2),(3,4)]');
|
2003-09-25 08:58:07 +02:00
|
|
|
ERROR: invalid input syntax for type path: "[(,2),(3,4)]"
|
2008-09-01 22:42:46 +02:00
|
|
|
LINE 1: INSERT INTO PATH_TBL VALUES ('[(,2),(3,4)]');
|
|
|
|
^
|
2000-01-05 07:06:23 +01:00
|
|
|
INSERT INTO PATH_TBL VALUES ('[(1,2),(3,4)');
|
2003-09-25 08:58:07 +02:00
|
|
|
ERROR: invalid input syntax for type path: "[(1,2),(3,4)"
|
2008-09-01 22:42:46 +02:00
|
|
|
LINE 1: INSERT INTO PATH_TBL VALUES ('[(1,2),(3,4)');
|
|
|
|
^
|
2018-09-26 10:45:21 +02:00
|
|
|
INSERT INTO PATH_TBL VALUES ('(1,2,3,4');
|
|
|
|
ERROR: invalid input syntax for type path: "(1,2,3,4"
|
|
|
|
LINE 1: INSERT INTO PATH_TBL VALUES ('(1,2,3,4');
|
|
|
|
^
|
|
|
|
INSERT INTO PATH_TBL VALUES ('(1,2),(3,4)]');
|
|
|
|
ERROR: invalid input syntax for type path: "(1,2),(3,4)]"
|
|
|
|
LINE 1: INSERT INTO PATH_TBL VALUES ('(1,2),(3,4)]');
|
|
|
|
^
|
2020-12-15 21:54:06 +01:00
|
|
|
SELECT f1 AS open_path FROM PATH_TBL WHERE isopen(f1);
|
|
|
|
open_path
|
|
|
|
---------------------------
|
|
|
|
[(1,2),(3,4)]
|
|
|
|
[(0,0),(3,0),(4,5),(1,6)]
|
|
|
|
[(1,2),(3,4)]
|
|
|
|
[(11,12),(13,14)]
|
1997-05-11 17:42:09 +02:00
|
|
|
(4 rows)
|
|
|
|
|
2020-12-15 21:54:06 +01:00
|
|
|
SELECT f1 AS closed_path FROM PATH_TBL WHERE isclosed(f1);
|
|
|
|
closed_path
|
|
|
|
-------------------
|
|
|
|
((1,2),(3,4))
|
|
|
|
((1,2),(3,4))
|
|
|
|
((1,2),(3,4))
|
|
|
|
((10,20))
|
|
|
|
((11,12),(13,14))
|
2018-09-26 10:45:21 +02:00
|
|
|
(5 rows)
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2020-12-15 21:54:06 +01:00
|
|
|
SELECT pclose(f1) AS closed_path FROM PATH_TBL;
|
|
|
|
closed_path
|
|
|
|
---------------------------
|
|
|
|
((1,2),(3,4))
|
|
|
|
((1,2),(3,4))
|
|
|
|
((0,0),(3,0),(4,5),(1,6))
|
|
|
|
((1,2),(3,4))
|
|
|
|
((1,2),(3,4))
|
|
|
|
((1,2),(3,4))
|
|
|
|
((10,20))
|
|
|
|
((11,12),(13,14))
|
|
|
|
((11,12),(13,14))
|
2018-09-26 10:45:21 +02:00
|
|
|
(9 rows)
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2020-12-15 21:54:06 +01:00
|
|
|
SELECT popen(f1) AS open_path FROM PATH_TBL;
|
|
|
|
open_path
|
|
|
|
---------------------------
|
|
|
|
[(1,2),(3,4)]
|
|
|
|
[(1,2),(3,4)]
|
|
|
|
[(0,0),(3,0),(4,5),(1,6)]
|
|
|
|
[(1,2),(3,4)]
|
|
|
|
[(1,2),(3,4)]
|
|
|
|
[(1,2),(3,4)]
|
|
|
|
[(10,20)]
|
|
|
|
[(11,12),(13,14)]
|
|
|
|
[(11,12),(13,14)]
|
2018-09-26 10:45:21 +02:00
|
|
|
(9 rows)
|
1997-05-11 17:42:09 +02:00
|
|
|
|
2022-12-14 22:10:20 +01:00
|
|
|
-- test non-error-throwing API for some core types
|
|
|
|
SELECT pg_input_is_valid('[(1,2),(3)]', 'path');
|
|
|
|
pg_input_is_valid
|
|
|
|
-------------------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
2023-02-28 00:04:13 +01:00
|
|
|
SELECT * FROM pg_input_error_info('[(1,2),(3)]', 'path');
|
|
|
|
message | detail | hint | sql_error_code
|
|
|
|
---------------------------------------------------+--------+------+----------------
|
|
|
|
invalid input syntax for type path: "[(1,2),(3)]" | | | 22P02
|
2022-12-14 22:10:20 +01:00
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT pg_input_is_valid('[(1,2,6),(3,4,6)]', 'path');
|
|
|
|
pg_input_is_valid
|
|
|
|
-------------------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
2023-02-28 00:04:13 +01:00
|
|
|
SELECT * FROM pg_input_error_info('[(1,2,6),(3,4,6)]', 'path');
|
|
|
|
message | detail | hint | sql_error_code
|
|
|
|
---------------------------------------------------------+--------+------+----------------
|
|
|
|
invalid input syntax for type path: "[(1,2,6),(3,4,6)]" | | | 22P02
|
2022-12-14 22:10:20 +01:00
|
|
|
(1 row)
|
|
|
|
|