Hi Even,

> I'm not sure why you see a difference of behaviour between the 2
>syntax.
> Perhaps it is due to the way the primary key has been defined. It >might be that
> when given by layer name, OGR detects the primary key column, whereas >it
> doesn't when passed with -sql.
Yes,
but the issue is more complex.

In the first way (export all the schema) with this sintax:

 ogr2ogr.exe --config PG_LIST_ALL_TABLES YES --config PG_SKIP_VIEWS YES
 -f "SQLite" prova.sqlite -progress PG:"dbname='test' active_schema=work
 schemas=work host='local' port='5432' user='postgres'
 password='postgres' " -overwrite -lco LAUNDER=yes -dsco SPATIALITE=yes
 -lco SPATIAL_INDEX=yes -gt 65536

ogr2ogr probably is unable to understand what is the primary key, but this don't explain why if the primary-key was defined on an alphanumeric field, that field is correctly exported, and, instead, if the primary key was defined on an integer field, that field is surely ignored and don't exported. If the issue was only "don't able to understand what is the PK" it should lost the pk field also when it is defined on an alphanumeric field.

In the second way:
if I ask to export every single table each by each
using a sintax like this:

ogr2ogr.exe --config PG_LIST_ALL_TABLES YES --config PG_SKIP_VIEWS YES -f "SQLite" prova.sqlite -progress PG:"dbname='test' active_schema=work schemas=work,public host='localhost' port='5432' user='postgres' password='postgres' " -overwrite -lco GEOMETRY_NAME=geom -dsco SPATIALITE=yes -lco SPATIAL_INDEX=yes -gt 65536 -sql "select * from work.accesso"

All the filed are correctly exported indipendently if they are primary key of integer type or primary key of alphanumeric type.

>Could you paste the schema of the >table ?

surely I can paste you a table schema however I tested it with many table schema also this was tested with others Database .
It seem a systematic question.

I can give you this simple case test:

using this very simple script sql:
(the sintax is for the new postgis 2.0)

-------------------------------------------------
-------------------------------------------------
drop schema if exists testing cascade;
create schema testing;

create table testing.table1 (id integer primary key, field_2 varchar(10), field_3 integer, geometry geometry(Point,4326));

insert into testing.table1 (id, field_2, field_3,geometry) values(1,'aaa',3, ST_GeomFromText('POINT(1 1)',4326));

create table testing.table2 (id varchar(10) primary key, field_2 varchar(10), field_3 integer, geometry geometry(Point,4326));

insert into testing.table2 (id, field_2, field_3,geometry) values('1','aaa',3,ST_GeomFromText('POINT(1 1)',4326))
-------------------------------------------------
-------------------------------------------------

it will create a "testing" schema and populate it with two tables (table1 and table2) and add to each a single record . The first table has an integer pk, menawhile the second table has an alphanumeric pk.

after this if I try lo export this schema in shapefile using:

ogr2ogr.exe -f "ESRI Shapefile" folder_name -progress PG:"dbname='test' active_schema=testing schemas=testing host='localhost' port='5432' user='user' password='pwd' " -overwrite

In a folder named "folder".
I can see the two shapefile where the table-1 shapefile has lost the field "id" instead the table-2 shapefile has the id field (the table-2 has an alphanumeric id).

Regards,

Andrea.






Il 21/01/2012 10:13, Even Rouault ha scritto:
Le dimanche 15 janvier 2012 15:20:32, aperi2007 a écrit :
  >  The integer primary column might be going into the sqlite datasource
  >
  >as
  >
  >  the FID.

Hi Chaitanya,

unfortunatelly seem no.

To have a more test I try to export from PG to shapefile.
I can confirm that the integer primary key field is lost in exportation.

I notice also that this happened only if I ask to ogr2ogr to export to
shapefile a full schema.
Instead if I ask to ogr2ogr to export only one table using the -sql
"select * from table_test" , the primary key integer is correctly exported.

I'm not sure why you see a difference of behaviour between the 2 syntax.
Perhaps it is due to the way the primary key has been defined. It might be that
when given by layer name, OGR detects the primary key column, whereas it
doesn't when passed with -sql. Could you paste the schema of the table ?

Otherwise, FID are special columns in OGR. If you want to preserve them with
ogr2ogr, you need to add the -preserve_fid option in the ogr2ogr command line.


Andrea.

Il 14/01/2012 11:59, Chaitanya kumar CH ha scritto:
Andrea,

The integer primary column might be going into the sqlite datasource as
the FID.

On Sat, Jan 14, 2012 at 1:35 AM, aperi2007<aperi2...@gmail.com

<mailto:aperi2...@gmail.com>>  wrote:
     Hi,

     I notice that try-ing exporting from Postgres using ogr2ogr.exe
     It lost completely the primary key filed if that is a integer field.
     Instead it don't lost the same primary key field if it is a varchar
     type.

     Is a know bug this ?

     I'm use the gdal 1.9.

     I try exporting to a spatialite or to a shapefile.
     Both report the lost of the field PK.

     The sintax I'm using is this:

     ogr2ogr.exe --config PG_LIST_ALL_TABLES YES --config PG_SKIP_VIEWS
     YES -f "SQLite" prova.sqlite -progress PG:"dbname='test'
     active_schema=work schemas=work host='local' port='5432'
     user='postgres'
     password='postgres' " -overwrite -lco LAUNDER=yes -dsco
     SPATIALITE=yes -lco SPATIAL_INDEX=yes -gt 65536

     Thx,

     Andrea.

     _________________________________________________
     gdal-dev mailing list
     gdal-dev@lists.osgeo.org<mailto:gdal-dev@lists.osgeo.org>
     http://lists.osgeo.org/__mailman/listinfo/gdal-dev
     <http://lists.osgeo.org/mailman/listinfo/gdal-dev>

--
Best regards,
Chaitanya kumar CH.

+91-9494447584
17.2416N 80.1426E

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


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

Reply via email to