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 
statementERROR: 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() :-)
 
I'think there maybe someother similar error because of the quote_ident. I'm 
thankful for your hardship!
 
YuLongzhen
266061 Qingdao, China.
[email protected] 
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to