[postgis-users] [OT] How to construct and float8[][] array?
Humberto Cereser Ibanez
humberto at pastoraldacrianca.org.br
Fri Jun 28 12:55:31 PDT 2013
Hi Steve,
did you try execute the most nested subquery and the upper one to see
which one causes the ERROR?
There is also an array_cat function that support multidimensional
arrays.
http://www.postgresql.org/docs/9.1/static/arrays.html
best regards,
Humberto Cereser Ibanez
Em Sex, 2013-06-28 às 14:53 -0400, Stephen Woodbridge escreveu:
> Hi all,
>
> This is a little bit off topic but I'm trying to create a nxn array like
> the following in SQL:
>
> {{0,1,2,3},{1,0,3,2},{2,3,0,4},{3,2,4,0}}
>
> select array_ndims('{{0,1,2,3},{1,0,3,2},{2,3,0,4},{3,2,4,0}}'::float[][]);
> -- 2
>
> select array_dims('{{0,1,2,3},{1,0,3,2},{2,3,0,4},{3,2,4,0}}'::float[][]);
> -- [1:4][1:4]
>
> select pg_typeof('{{0,1,2,3},{1,0,3,2},{2,3,0,4},{3,2,4,0}}'::float[][]);
> -- double precision[]
>
> So I came up with the following:
>
> select array_agg(arow) as dm from (
> select i, array_agg(dist) as arow from (
> select a.source_id as i,
> b.source_id as j,
> st_distance(st_makepoint(a.x, a.y),
> st_makepoint(b.x, b.y)) as dist
> from tsp_00 a, tsp_00 b
> order by a.source_id, b.source_id
> ) as foo group by i order by i
> ) as bar;
>
> But I get the following error:
>
> ERROR: could not find array type for data type double precision[]
>
> ********** Error **********
>
> ERROR: could not find array type for data type double precision[]
> SQL state: 42704
>
> So the question is how can I construct float[][] object like the
> constant using sql?
>
> I would like to use this in pgRouting to build a distance matrix and
> pass it to our TSP solver, like:
>
> select * from pgr_tsp(
> (select array_agg(arow) as dmatrix from (
> select i, array_agg(dist) as arow from (
> select a.source_id as i,
> b.source_id as j,
> st_distance(st_makepoint(a.x, a.y),
> st_makepoint(b.x, b.y)) as dist
> from tsp_00 a, tsp_00 b
> order by a.source_id, b.source_id
> ) as foo group by i order by i
> ) as bar),
> 0
> );
>
>
> Thanks,
> -Steve
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
More information about the postgis-users
mailing list