[FWTools] ogrinfo warns about 'Multi-column primary key' but there is none

Mateusz Loskot mateusz at loskot.net
Tue Dec 11 19:27:47 EST 2007


Stefan Keller wrote:
> I have a PostgreSQL table which goes like shon below.
> When I'm querying the my db 'gisdb' with ogrinfo it issues a warning:
> 
> ogrinfo -ro PG:"dbname=gisdb"
> Warning 1: Multi-column primary key in 'towns' detected but not supported.
> INFO: Open of `PG:dbname=gisdb'
>       using driver `PostgreSQL' successful.
> 1: towns (Multi Polygon)
> 
> So the orginfo pretends that there is a "Multi-column primary key" but there
> is no primary key.
> 
> Someone any explanation on this?
> 
> -- Stefan
> 
>  CREATE TABLE towns
> ( gid serial NOT NULL, objectid int8, towns_id int8, town_id int4,
>   town varchar, fips_stco int4, ccd_mcd varchar, fips_place varchar,
>   pop1980 int4, pop1990 int4, pop2000 int4, popch80_90 int4, popch90_00
> int4,
>   fourcolor int4, "type" varchar, island int4, fips_mcd int4,
>   fips_count int4, shape_area numeric, shape_len numeric, the_geom geometry,
>   CONSTRAINT enforce_geotype_the_geom
>     CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS
> NULL),
>   CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 26986)
> )

Hi Stefan,

This i strange.
It looks like the condition in following line

http://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp#L173

is insufficient.

I just tested non-PK table and I confirm this problem occurs.

Shortly, if query status is PGRES_TUPLES_OK then PQntuples should return
value greater than 0. In other words, following condition is supposed to
*never* happen as true (according to the PostgreSQL manual):

PGRES_TUPLES_OK == PQresultStatus(hResult) && 0 == PQntuples(hResult)

but what we are experiencing is that this condition actually occurs :-)

I'm investigating it. Thanks for the report.

Cheers
-- 
Mateusz Loskot
http://mateusz.loskot.net


More information about the FWTools mailing list