[GRASS-user] Re: v.db.join

Markus Neteler neteler at osgeo.org
Mon Oct 18 17:03:19 EDT 2010


On Fri, Oct 8, 2010 at 12:56 PM, Jón Eiríksson <jeir at hi.is> wrote:
> Hi,
>
> I have a truncation problem with v.db.join. This has been raised before -
>
...
> The new data columns are apparently defined as 1 character long, and the
> data become truncated accordingly, much against my intention. I use mysql.
>
> Can anyone point out a solution? I copy a session with the spearfish60
> data below.
>
> Jon
>
> GRASS 6.4.0 (spearfish60):~ > g.copy vect=soils,mysoils
> Copy vector <soils at PERMANENT> to current mapset as <mysoils>
> GRASS 6.4.0 (spearfish60):~ > db.select mysoils
> cat|label
> 1|Aab
> 2|Ba
> 3|Bb
> 4|BcB
> 5|BcC
> 6|BeE
> .
> .
> .
> GRASS 6.4.0 (spearfish60):~ > db.in.ogr soils_legend.csv out=soils_legend
> Imported table <soils_legend> with 55 rows
> GRASS 6.4.0 (spearfish60):~ > db.select soils_legend
> id|shortname|longname
> 0|no data|no data
> 1|AaB|Alice fine sandy loam, 0 to 6
> 2|Ba|Barnum silt loam
> 3|Bb|Barnum silt loam, channeled
> 4|BcB|Boneek silt loam, 2 to 6
> 5|BcC|Boneek silt loam, 6 to 9
> 6|BeE|Butche stony loam, 6 to 50
> .
> .

...so far so nice...

could you please edit v.db.join and add a -x to the first line?
Find the script with
 which v.db.join

So: before
#!/bin/sh

after:

#!/bin/sh -x

Then run v.db.join:

> GRASS 6.4.0 (spearfish60):~ > v.db.join mysoils col=label
> otable=soils_legend ocol=shortname

and check where the stuff is eaten. Please send relevant chunks (if long,
maybe better open a ticket at http://trac.osgeo.org/grass/ for this).

> GRASS 6.4.0 (spearfish60):~ > v.db.select mysoils
> cat|label|id|shortname|longname
> 1|Aab|1|A|A
> 2|Ba|2|B|B
> 3|Bb|3|B|B
> 4|BcB|4|B|B
> 5|BcC|5|B|B
> 6|BeE|6|B|B
> .
> .
> .
> GRASS 6.4.0 (spearfish60):~ > db.describe -c mysoils
> ncols: 5
> nrows: 54
> Column 1: cat:INTEGER:11
> Column 2: label:CHARACTER:13
> Column 3: id:CHARACTER:1
> Column 4: shortname:CHARACTER:1
> Column 5: longname:CHARACTER:1
> GRASS 6.4.0 (spearfish60):~ > db.describe -c soils_legend
> ncols: 3
> nrows: 55
> Column 1: id:CHARACTER:255
> Column 2: shortname:CHARACTER:255
> Column 3: longname:CHARACTER:255

We need to understand what happens in v.db.join with mysql.

Markus


More information about the grass-user mailing list