ERROR: invalid input syntax for type circle
David Zhang <david.zhang@highgo.ca>
From: David Zhang <david.zhang@highgo.ca>
To: pgsql-hackers@postgresql.org, David Zhang <david.zhang@highgo.ca>
Date: 2020-04-06T21:12:38Z
Lists: pgsql-hackers
Attachments
- circle-in-input-format-fix.patch (text/plain) patch
Hi,
I got an error when I was trying to insert a circle using the syntax
(the 3rd one) specified in the latest document.
https://www.postgresql.org/docs/current/datatype-geometric.html#DATATYPE-CIRCLE
< ( x , y ) , r >
( ( x , y ) , r )
( x , y ) , r
x , y , r
Here is how to reproduce it.
CREATE TABLE tbl_circle(id serial PRIMARY KEY, a circle);
INSERT INTO tbl_circle(a) VALUES('( 1 , 1 ) , 5'::circle );
ERROR: invalid input syntax for type circle: "( 1 , 1 ) , 5"
LINE 1: INSERT INTO tbl_circle(a) VALUES('( 1 , 1 ) , 5'::circle );
I made a little change in the "circle_in" function, and then I can enter
a circle using the 3rd way.
INSERT INTO tbl_circle(a) VALUES('( 1 , 1 ) , 5'::circle );
INSERT 0 1
The fix does generate the same output as the other three ways.
INSERT INTO tbl_circle(a) VALUES( '< ( 1 , 1 ) , 5 >'::circle );
INSERT INTO tbl_circle(a) VALUES( '( ( 1 , 1 ) , 5 )'::circle );
INSERT INTO tbl_circle(a) VALUES( '1 , 1 , 5'::circle );
select * from tbl_circle;
id | a
----+-----------
1 | <(1,1),5>
2 | <(1,1),5>
3 | <(1,1),5>
4 | <(1,1),5>
(4 rows)
Sor far, no error found during the "make check".
The patch based on tag "REL_12_2" is attached.
--
David
Software Engineer
Highgo Software Inc. (Canada)
www.highgo.ca
Commits
-
Fix circle_in to accept "(x,y),r" as it's advertised to do.
- 41a194f49177 13.0 landed
- ebd194ac58f8 9.5.22 landed
- 5fae66410155 11.8 landed
- 4c7a311a2df9 10.13 landed
- 35d1eefb29d0 12.3 landed
- 049e9f48e967 9.6.18 landed