[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