On Mon, Feb 06, 2006 at 02:41:39PM +0000, Andreas Erber wrote:
> Hi,
>
> I discovered some strange behaviour:
> The length() function returns different results depending on the geometric
> data type used as argument.
>
> length(lseg) produces the correct result, i.e. length(lseg('(0,0),(2,0)')) =
> 2
>
> length(path) always produces the double result (independently from the
> length of the path), i.e.
> length(path('(0,0),(2,0)')) = 4
> length(path('(0,0),(2,0),(4,0),(6,0),(8,0)')) = 16
>
> Is it supposed to be that way? If yes, why?
Yes.
You specified your path as a closed path. With its "loopback", it's twice as
long.
To specify it as an open path, do path('[(0,0),(2,0)]').
SELECT length(path('[(1,0),(0,0)]')) = '1';
SELECT length(path('(1,0),(0,0)')) = '2';
--
Regards, James William Pye