On 04/04/12 07:56, Michael Barton wrote:
I'm trying to do a dissolve but keep getting an error saying that it
only works with integer or string columns. But the column I'm using for
the dissolve IS string.

GRASS 7.0.svn (Spain_utm_wgs84z30):~ > db.describe table=muro_temp
table:muro_temp
description:
insert:?
delete:?
ncols:4
nrows:177

column:cat
description:
type:INTEGER
len:20
scale:0
precision:0
default:
nullok:yes
select:?
update:?

column:Subsector
description:
type:TEXT
len:1000
scale:0
precision:0
default:
nullok:yes
select:?
update:?

column:valley
description:
type:TEXT
len:1000
scale:0
precision:0
default:
nullok:yes
select:?
update:?

column:sector
description:
type:TEXT
len:1000
scale:0
precision:0
default:
nullok:yes
select:?
update:?


GRASS 7.0.svn (Spain_utm_wgs84z30):~ > v.dissolve input=muro_temp
column=sector output=muro_sectors3
ERROR: Key column must be of type integer or string
GRASS 7.0.svn (Spain_utm_wgs84z30):~ >


Note above that the column "sector" IS text.

So what is wrong?

v.dissolve checks for integer and character, but not for text.

Try this simple patch:

--- v.dissolve.py       2011-08-17 13:49:29.000000000 +0200
+++ v.dissolve.new.py   2012-04-04 08:04:00.000000000 +0200
@@ -66,7 +66,7 @@
         except KeyError:
             grass.fatal(_('Column <%s> not found') % column)

-       if coltype['type'] not in ('INTEGER', 'CHARACTER'):
+       if coltype['type'] not in ('INTEGER', 'CHARACTER', 'TEXT'):
            grass.fatal(_("Key column must be of type integer or string"))

         f = grass.vector_layer_db(input, layer)


Moritz
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to