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 по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: [SQL] insert values into arrays
Следующее
От: david tzuriel
Дата:
Сообщение: (no subject)