[gdal-dev] Inserting into PostGIS table with primary key using ogr2ogr

Luca Sigfrido Percich sigfrido at tiscali.it
Tue Dec 13 07:53:07 EST 2011


Even,

Il giorno mar, 13/12/2011 alle 13.18 +0100, Even Rouault ha scritto:
> Selon Luca Sigfrido Percich <sigfrido at tiscali.it>:

> Yes, when the driver detects a PK column, it considers it as the FID column,
> which is a particular column, different from the regular columns. So it will be
> ommited in the INSERT statements, unless the feature to be inserted as a FID
> value set. Which is not the case by default when using ogr2ogr.
> 
> I'd suggest you to try to add the -preserve_fid option to ogr2ogr.

thank you, I missed the -preserve_fid option which is listed at the
beginning of the documentation page in http://www.gdal.org/ogr2ogr.html,
but is not further documented, so please add the description to the
docpage.

With -preserve_fid the shapefile is being loaded with no errors; but the
values 0,1,2...n are inserted in the existing integer PK column: 0 in
the first row, 1 in the second and so on. So it seems that this option
ignores the PK values from the shapefile, too.

Following your explanation, I tried, to no avail, to tell OGR that my
column id is the FID, with
-sql "select id as FID, name, ogr_geometry from test_pk_data"
(tried also ogr_fid and ogc_fid aliases)

> Looking at the code (in trunk), it isn't obvious that the PG and SQLite driver
> would behave differently, but I haven't actually tried, and if you are not using
> trunk, it is possible that there have been changes that might have altered the
> behaviour w.r.t older GDAL/OGR versions.

Actually I'm compiling from trunk. I tested with a SQLite table with PK,
and the shapefile gets loaded with no complains.

I will send you a gz file with test shapefile and PG/SQLite SQL scripts.

I'm waiting your advice to file the bug.

Thanks again

Sig


_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).


More information about the gdal-dev mailing list