From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | mpg4(at)duluoz(dot)net |
Cc: | pgsql-sql(at)postgreSQL(dot)org |
Subject: | Re: [SQL] Geometric types in SELECT? |
Date: | 2000-01-21 01:22:02 |
Message-ID: | 25692.948417722@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
mpg4(at)duluoz(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | david tzuriel | 2000-01-21 12:25:48 | (no subject) |
Previous Message | Peter Eisentraut | 2000-01-20 21:55:19 | Re: [SQL] insert values into arrays |