[GRASS-dev] Re: [GRASS-CVS] markus: grass6/lib/vector/Vlib field.c,
1.38, 1.39
Huidae Cho
grass4u at gmail.com
Wed Jun 14 17:15:34 EDT 2006
On Wed, Jun 14, 2006 at 10:59:35PM +0200, Markus Neteler wrote:
> On Tue, Jun 13, 2006 at 11:41:05PM -0500, Huidae Cho wrote:
> > On Wed, Jun 14, 2006 at 12:52:10AM +0200, grass at intevation.de wrote:
> > > Author: markus
> > >
> > > Update of /grassrepository/grass6/lib/vector/Vlib
> > > In directory doto:/tmp/cvs-serv19408
> > >
> > > Modified Files:
> > > field.c
> > > Log Message:
> > > GID search added; auto-search of FID fixed (still non-functional due to apparent OGR_L_GetFIDColumn() failure; auto-search disabled
> > >
> >
> > Markus,
> >
> > The FID auto-search works well with PostgreSQL:
> >
> > GRASS 6.1.cvs (Bryan):~/tmp > v.external dsn="PG:host=localhost dbname=mydb user=me" layer=tmp output=tmp
> > D0/0: Using FID column <ogc_fid> in OGR DB
> > Building topology ...
> > WARNING: Random read is not supported by OGR for this layer, cannot build
> > support.
> >
> > It looks like not all the OGR formats support FID column
> > (http://ogr.maptools.org/classOGRLayer.html#a26). For example, shape files
> > have no FID columns.
>
> Here is the related wish report:
>
> Subject: [Bug 1019] Method to determine and return FID-colum in OGRLayer
> http://bugzilla.remotesensing.org/show_bug.cgi?id=1019
>
> There seems to be support for
> - PostgreSQL
> - MySQL
> - Oracle
>
> > FYI, find attached the patch for gdal-1.3.2.
>
> Could you tell me more about this patch? Needed to make
> PG support functioning?
>
> thanks
>
> Markus
Markus,
I checked if v.info worked with a v.externaled PostgreSQL vector and,
unfortunately, it didn't:
GRASS 6.1.cvs (Bryan):~/tmp > v.info tmp
D1/3: Vect_open_old(): name = tmp mapset= PERMANENT update = 0
D1/3: Vect_set_thresh(): thresh = 0.000000
D3/3: dig_init_plus()
D1/3: dig_spidx_init()
D3/3: dig_cidx_init()
D1/3: open format file: 'PERMANENT/vector/tmp/frmt'
D3/3: dig_read_frmt_ascii()
D1/3: Vector format: 1 (non-native)
D1/3: Vect_set_thresh(): thresh = 0.000000
D1/3: Vect__read_head(): vector = tmp at PERMANENT
D1/3: Vect_set_thresh(): thresh = 0.000000
D1/3: Level request = 2
D1/3: Vect_open_topo(): name = tmp mapset= PERMANENT
D1/3: Topo file for vector 'tmp at PERMANENT' not available.
D2/3: G__home home = /home/hcho
ERROR: Cannot open old vector tmp at PERMANENT on level 2
GRASS 6.1.cvs (Bryan):~/tmp >
Without the attached patch, the resulting SQL query from v.out.ogr will look
like (invalid SQL query):
INSERT INTO "table" (WKB_GEOMETRY ) VALUES (INSERT INTO "table" (WKB_GEOMETRY )
VALUES ('\\001\\002....')
because osCommand already has "INSERT INTO 'table' (WKB_GEOMETRY ) VALUES (" in
it and it's appended to itself again by "osCommand += osCommand ...", which I
fixed. Note "INSERT INTO" command after the first VALUES. This bug has been
reported to the gdal bugzilla.
Huidae Cho
More information about the grass-dev
mailing list