[GRASS-user] v.db.join error

Patrick_schirmer patrick_GIS at gmx.ch
Wed Dec 1 10:29:02 EST 2010


Hi, me again :-/

I got two vectorfiles with points - one file representing the current  
location of persons and the other one representing previous locations of 
the same persons. Persons are unique and have an id which is present in 
both files. I would like to calculate the distance each person has 
moved. Thought it would be best doing this in the datbase.

_my approach:_
v.db.addcolumn map=GR_xy_current col="x_current double precision, 
y_current double precision, distance double precision"
v.db.addcolumn map=GR_xy_last col="x_last double precision, y_last 
double precision"
v.to.db map=GR_xy_current option=coor col=x_current,y_current
v.to.db map=GR_xy_last option=coor col=x_last,y_last
v.db.join map=GR_xy_current column=id otable=GR_xy_last ocolumn=id

_All commands will run except the last one, creating this error:_

DBMI-Postgres driver error:
Cannot execute:
ALTER TABLE GR_xy_current ADD COLUMN x_arbeit DOUBLE PRECISION(8)
ERROR:  syntax error at or near "("
LINE 1: ... TABLE GR_xy_current ADD COLUMN x_arbeit DOUBLE PRECISION(8)
                                                                       
                                                           ^

ERROR: Error while executing: 'ALTER TABLE GR_xy_current ADD COLUMN
        x_last DOUBLE PRECISION(8)'
ERROR: Unable to add column <x_last DOUBLE PRECISION(8)>.
ERROR: Error creating column <x_last>.

The value the coord "x" has it bigger than (8), which might be the 
problem. But it is already in the table and I can't define it's length 
in the command. Is that a problem of v.db.join or can I set the length 
of the double_precision_field before creation through v.db.addcolumn?

Thanks for your hints!

Patrick

datbase: PG; Grass-version 7.0

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-user/attachments/20101201/442b655c/attachment.html


More information about the grass-user mailing list