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