[gdal-dev] PostgreSQL problems

Even Rouault even.rouault at mines-paris.org
Fri Oct 14 17:59:54 EDT 2011


> OK now we are getting somewhere!  I did the following:
> 
> env PG_LIST_ALL_TABLES=YES ogrinfo --debug on PG:'dbname=mydb'
> PG: DBName="mydb"
> PG: PostgreSQL version string : 'PostgreSQL 8.4.9 on
> x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.5.1 20100924 (Red
> Hat 4.5.1-4), 64-bit'
> PG: PostGIS version string : '1.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1'
> PG: Field f_table_name is of unknown format type name (type=name).
> PG: Field f_table_catalog is of unknown format type name (type=name).
> PG: Field f_table_schema is of unknown format type name (type=name).
> PG: Field f_geography_column is of unknown format type name (type=name).
> PG: Primary key name (FID): id
> PG: Using column 'id' as FID for table 'products_swordxml'
> OGR: OGROpen(PG:dbname=mydb/0xbd4940) succeeded as PostgreSQL.
> INFO: Open of `PG:dbname=mydb'
>        using driver `PostgreSQL' successful.
> OGR: GetLayerCount() = 6
> 
> 1: geography_columns (None)
> 2: products_swordxml (None)
> 3: pxml_points
> 4: sword_trap
> 5: sword_trap2
> 6: sword_trapz
> 
> Now I know the last 3 tables/layers do have geometry because I can
> display them in QGIS.

I believe that now you should be able to display their content. 

The (none) behind the 2 first one means that OGR detects that they are indeed 
not spatial tables. The absence of it on the 4 last tables means that OGR 
detects a geometry column but cannot determine the precise geometry type : 
that is to say if its a point, line, polygon, etc... But that's OK.

So you could try "env PG_LIST_ALL_TABLES=YES ogrinfo PG:'dbname=mydb' 
pxml_points" and I believe you should see features with their geometry 
reported.

> 
> The original table products_swordxml was given to me as a mysql file and
> has no gemetry per se.
> There are coordinates embedded in the table. So I did a create table as
> select *, geomfromtext etc
> to get the geometry into geometry.  Could this be why ogr is not seeing
> it as geometry even though qgis does?

Hum, my guess is that the way you have created them did not register them in 
the geometry_columns table. OGR only lists by default spatial tables 
registered into that table.

So you could try adding manually an entry in geometry_columns for those tables 
with the appropriate SELECT AddGeometryColumn(....) statement. See PostGIS doc 
for that. After doing so, the PG_LIST_ALL_TABLES=YES will not be necessary.



More information about the gdal-dev mailing list