Hi

When using the config PG_USE_COPY option the copy command does not include the 
destination FID in the field list. In my case the destination FID field is a 
primary key with a not null constraint, so the copy fails.

e.g.

ogr2ogr --config PG_USE_COPY TRUE -append -preserve_fid -f "PostgreSQL" 
"PG:host=localhost user=myuser dbname=my_db" test.vrt -lco GEOMETRY_NAME=shape 
-nln test3 -select id,data1,data2

when the destination table looks like this:

CREATE TABLE test3
(
  id integer NOT NULL PRIMARY KEY,
  data1 TEXT,
  data2 TEXT,
  shape geometry
);

However when I don't use the PG_USE_COPY option and the driver uses plain SQL 
inserts it works e.g:

ogr2ogr -append -preserve_fid -f "PostgreSQL" "PG:host=localhost user=myuser 
dbname=my_db" test.vrt -lco GEOMETRY_NAME=shape -nln test3 -select 
id,data1,data2

Looking down into this it seems it has to do with the layers FieldDefn not 
including the FID in its list, and the OGRPGTableLayer::BuildCopyFields() 
method only adding the FID to the copy field list if it's in the layer 
FieldDefn. While the CreateFeatureViaInsert() method only checks if the FID 
field is set for the layer and the feature itself has the FID data set.

Is there a specific reason for the OGRPGTableLayer::BuildCopyFields (and 
CreateFeatureViaCopy) checking that the field must exist in the layer FieldDefn 
before adding it to the copy field list? Or is this a bug?

Cheers,
Jeremy


#####################################################################################

This message contains information, which is confidential and may be subject to 
legal privilege. 
If you are not the intended recipient, you must not peruse, use, disseminate, 
distribute or copy this message.
If you have received this message in error, please notify us immediately (Phone 
0800 665 463 or i...@linz.govt.nz) and destroy the original message.
LINZ accepts no responsibility for changes to this email, or for any 
attachments, after its transmission from LINZ.

Thank You.

#####################################################################################
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to