[GRASS-user] Trouble with v.db.join and sqlite

Glynn Clements glynn at gclements.plus.com
Fri May 30 16:03:36 EDT 2008


Moritz Lennert wrote:

> >>> can you replicate this with Spearfish or the NC data set?
> >>> Then we could easier test things...
> >>>
> >>> Markus
> >>>
> >>>
> >> Hi Markus,
> >>
> >> those are the steps to replicate the problem with NC dataset ( all is done
> >> in a new mapset called sqlite):
> >>
> >> db.connect driver=sqlite
> >> database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite.db'
> >> g.copy vect=urbanarea at PERMANENT,urbanarea
> >> v.extract -t input=urbanarea output=urban_point type=point,centroid
> >> v.db.addtable urban_point
> >>
> >> v.db.join map=urbanarea column=cat otable=urban_point ocolumn=cat
> >> ..
> >> DBMI-SQLite driver error:
> >> Error in sqlite3_prepare():
> >> duplicate column name: cat
> >>
> >> ERROR: Error while executing: 'ALTER TABLE urban_point ADD COLUMN cat
> >>       INTEGER
> >>       '
> >> ERROR: Cannot continue (problem adding column).
> >> ERROR: Cannot continue.
> >>
> >> Thanks for your help
> > 
> > Like this it was easy to replicated.
> > (Hopefully) fixed in 6.4.develbranch and 7.trunk.
> 
> Do I understand correctly that the patch ignores the column if the name 
> already exists ? Wouldn't it be more "user-friendly" to rename it ?

I don't know about "user-friendly", but it would be safer to just
abort with an error if the column already exists.

If you're going to replace the contents of an existing column, you
should only do so if --overwrite is given.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-user mailing list