[pgrouting-users] ultimate solution to assign_vertex_id() bug :-)

Stephen Woodbridge woodbri at swoodbridge.com
Tue Oct 4 23:07:49 EDT 2011


YuLongzhen,

Thank you for your report. I think your analysis and solution are correct.

Daniel or Anton,

quote_ident() should only be used when quoting a column or table when it 
is actually being used as a column or table object in the SQL and not 
when it is being used as a string. But you guys know that and I assume 
this is just a brain slip when editing the script. Anyway, please update 
git when you have a chance.

Thanks,
   -Steve

On 10/4/2011 7:26 PM, realylz wrote:
>
>       Description:
>
> CREATE TABLE will create implicit sequence "vertices_tmp_id_seq" for
> serial column "vertices_tmp.id" CONTEXT: SQL statement "CREATE TABLE
> vertices_tmp (id serial)" PL/pgSQL function "assign_vertex_id" line 21
> at EXECUTE statement ERROR: relation "baharestan.roads" does not exist
> CONTEXT: SQL statement "SELECT count(*) as countids FROM
> "baharestan.roads"" PL/pgSQL function "assign_vertex_id" line 28 at FOR
> over EXECUTE statement
>
> sorry for my poor english:
>
> I read plpgsql program of assign_vertex_id in pgAdminIII and find a
> bug,there are three lines like followed:
>
> *... *
>
> *FOR _r IN EXECUTE 'SELECT srid FROM geometry_columns WHERE
> f_table_name='''|| quote_ident(geom_table)||''';' LOOP
> srid := _r.srid;
> END LOOP; *
>
> *... *
>
> there is something wrong with "quote_ident(tablename)",this command
> will add " around tablename, just like *quote_ident(tablename) <=>
> "tablename" *
> However, the above condition, program should modified to:
>
> *... *
>
> *FOR _r IN EXECUTE 'SELECT srid FROM geometry_columns WHERE
> f_table_name='''|| geom_table||''';' LOOP
> srid := _r.srid;
> END LOOP; *
>
> *... *
>
> that's because there are ' around tablename, there will be error with
> '"tablename"' instead of 'tablename'.
> ok! with above the little modification, there will be no error with
> assign_vertex_id() :-)
> YuLongzhen
> 266061 Qingdao, China.
> realylz at 126.com <mailto:realylz at 126.com>
>
>
> _______________________________________________
> Pgrouting-users mailing list
> Pgrouting-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-users



More information about the Pgrouting-users mailing list