Re: [SQL] Geometric types in SELECT?
От | Tom Lane |
---|---|
Тема | Re: [SQL] Geometric types in SELECT? |
Дата | |
Msg-id | 25692.948417722@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Geometric types in SELECT? (mpg4@duluoz.net) |
Список | pgsql-sql |
mpg4@duluoz.net writes: > =>select length( '((0,0),coord)'::lseg ) from address; > I receive this error: > Bad lseg external representation '((0,0), coord)' > If I replace coord with an actual value, I don't get the error. Am I > somehow mangling the syntax? Yup. '((0,0),coord)'::lseg is a literal constant --- in general, 'anything'::typename is a literal constant in Postgres. And it's not a valid literal constant for lseg. I suppose coord is the name of a point column in your table? To do it correctly, you'd need something like select length( makelseg( '(0,0)'::point, coord )) from table; I'm not sure if there is a function that makes an lseg from two points, and if there is it probably isn't called "makelseg", but hopefully you get the idea. I am pretty sure there is a function that computes the distance between two points, so what you are likely to end up really writing is select distance( '(0,0)'::point, coord ) from table; (after you dig through the documentation to find the actual name of that function...) regards, tom lane
В списке pgsql-sql по дате отправления: