[GRASS-dev] db commands on vectors stored in another mapset

Dylan Beaudette dylan.beaudette at gmail.com
Wed Apr 16 10:52:54 EDT 2008


Hi,

Using the spearfish dataset:

# start grass
grass63 grass/spearfish60/user1/

# dump the table associated with 'bugsites' in PERMANENT
db.select bugsites at PERMANENT

dbmi: Protocol error
dbmi: Protocol error

# one more try:
db.select bugsites

DBMI-DBF driver error:
Table 'bugsites' doesn't exist.
Error in db_open_select_cursor()


# now with some debugging:
db.select bugsites

D2/5: opendir /usr/local/grass-6.3.svn/driver/db/

D2/5: opendir /usr/local/grass-6.3.svn/driver/db/

D2/5: DBF: db__driver_open_database() name =
'$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/'
D3/5: tokens[0] = $GISDBASE
D3/5:    -> /home/dylan/grass
D3/5: tokens[1] = $LOCATION_NAME
D3/5:    -> spearfish60
D3/5: tokens[2] = $MAPSET
D3/5:    -> user1
D3/5: tokens[3] = dbf
D2/5: db.name = /home/dylan/grass/spearfish60/user1/dbf/
D3/5: SQL statement parsed successfully: select * from bugsites
D2/5: find_table(): table = bugsites
DBMI-DBF driver error:
Table 'bugsites' doesn't exist.
Error in db_open_select_cursor()

# one more try with the @mapset notation:
db.select bugsites at PERMANENT
D2/5: opendir /usr/local/grass-6.3.svn/driver/db/

D2/5: opendir /usr/local/grass-6.3.svn/driver/db/

D2/5: DBF: db__driver_open_database() name =
'$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/'
D3/5: tokens[0] = $GISDBASE
D3/5:    -> /home/dylan/grass
D3/5: tokens[1] = $LOCATION_NAME
D3/5:    -> spearfish60
D3/5: tokens[2] = $MAPSET
D3/5:    -> user1
D3/5: tokens[3] = dbf
D2/5: db.name = /home/dylan/grass/spearfish60/user1/dbf/
dbmi: Protocol error
dbmi: Protocol error

Is this the normal behavior? i.e. I can "use" raster and vector files
across mapsets, but why not vector attributes?

This is on GRASS SVN (31012) x86 and AMD.

As a work-around, it is possible to first copy the vector from one
mapset to another, and then the regular db.* commands will work.

Cheers,

Dylan


More information about the grass-dev mailing list