[GRASS-user] Imported .e00 Yesterday, Re-import Today Yields Errors

   Please help me to understand why an .e00 file that I imported yesterday
(when dbf was the default attribute database) produces errors when I try
today to re-import it using the pg database driver and I am connected (and
logged in) to the appropriate database. Here is the grass_cmd_history
contents:

(Wed Mar 21 08:03:27 2012) v.in.e00 -v --overwrite file=/home/rshepard/GIS/data/Washington/hydrography/kettle_river/s7020002.e00 type=line vect=streams
An error may appear next which will be ignored...
E00 Compressed ASCII found. Will uncompress first...
...converted to Arc Coverage in current directory
Importing lines...
Over-riding projection check
Layer: ARC
Column name changed: 'S7020002#' -> 'S7020002_'
Column name changed: 'S7020002-ID' -> 'S7020002_ID'
Column name changed: 'STATE-2' -> 'STATE_2'
Column name changed: 'COUNTY-2' -> 'COUNTY_2'
Column name changed: 'QUAD100-2' -> 'QUAD100_2'
Column name changed: 'QUAD75-2' -> 'QUAD75_2'
Column name changed: 'PNTR#' -> 'PNTR_'
DBMI-Postgres driver error:
Cannot execute:
create table streams (cat integer, UserId integer, FNODE_
integer, TNODE_ integer, LPOLY_ integer, RPOLY_ integer,
LENGTH double precision, S7020002_ integer, S7020002_ID
integer, FEAT_NAME varchar ( 60 ), HUC integer, SEG integer,
RMI double precision, MAJOR1 integer, MINOR1 integer, MINOR2
integer, MINOR3 integer, FEAT_SRC varchar ( 2 ), STATE
varchar ( 4 ), STATE_2 varchar ( 4 ), COUNTY varchar ( 15 ),
COUNTY_2 varchar ( 15 ), QUAD100 varchar ( 26 ), QUAD100_2
varchar ( 26 ), QUAD75 varchar ( 25 ), QUAD75_2 varchar ( 25
), CEN integer, CUMLENGTH double precision, DNARC integer,
PNTR_ integer, SAVENEG integer, SINUOUS double precision,
UHUC1 integer, UPNTR1 integer, UHUC2 integer, UPNTR2
integer, UHUC3 integer, UPNTR3 integer, UFLAG integer, DHUC
integer, DPNTR integer, CSEG integer, CRMI double precision,
CNAME varchar ( 30 ), RRN varchar ( 17 ), LLID varchar ( 13
), OW_NAME varchar ( 60 ), PRIMARY integer, SECONDARY
integer, DESCRIPTOR integer)
ERROR: syntax error at or near "integer"
LINE 1: ...D varchar ( 13 ), OW_NAME varchar ( 60 ), PRIMARY
integer, S...
  ^
ERROR: Unable to create table: 'create table streams (cat integer, UserId integer, FNODE_ integer, TNODE_ integer, LPOLY_ integer, RPOLY_ integer, LENGTH double precision, S7020002_ integer, S7020002_ID integer, FEAT_NAME varchar ( 60 ), HUC integer, SEG integer, RMI double precision, MAJOR1 integer, MINOR1 integer, MINOR2 integer, MINOR3 integer, FEAT_SRC varchar ( 2 ), STATE varchar ( 4 ), STATE_2 varchar ( 4 ), COUNTY varchar ( 15 ), COUNTY_2 varchar ( 15 ), QUAD100 varchar ( 26 ), QUAD100_2 varchar ( 26 ), QUAD75 varchar ( 25 ), QUAD75_2 varchar ( 25 ), CEN integer, CUMLENGTH double precision, DNARC integer, PNTR_ integer, SAVENEG integer, SINUOUS double precision, UHUC1 integer, UPNTR1 integer, UHUC2 integer, UPNTR2 integer, UHUC3 integer, UPNTR3 integer, UFLAG integer, DHUC integer, DPNTR integer, CSEG integer, CRMI double precision, CNAME varchar ( 30 ), RRN varchar ( 17 ), LLID varchar ( 13 ), OW_NAME varchar ( 60 ), PRIMARY integer, SECONDARY integer, DESCRIPTOR inte
ger)'
ERROR: An error occurred while running v.in.ogr
(Wed Mar 21 08:03:27 2012) Command finished (0 sec)

   db.connect -p shows connection to the proper database and I'm logged in
(db,login) as the user (who owns that database).

   There must be something in the spelling of 'integer' that grass doesn't
like, but I cannot find the error. And, I've no idea where to look.

Rich

I’d bet it’s because “PRIMARY” is a Postgresql (and most DB’s) reserved word…
Try using the cnames param to v.in.ogr to change names for all columns.

On Wed, 21 Mar 2012, Micha Silver wrote:

I'd bet it's because "PRIMARY" is a Postgresql (and most DB's) reserved word...
Try using the cnames param to v.in.ogr to change names for all columns.

   Good catch, Micha! I completely missed that, probably because I am too
close to the problem.

   Thank you for the pointer to cnames.

Rich

On Wed, 21 Mar 2012, Micha Silver wrote:

Try using the cnames param to v.in.ogr to change names for all columns.

   Problems here: v.in.ogr does not recognize the ESRI export format (.e00),
only ShapeFiles, and the -w option to change column names to lowercase does
not change the postgres reserved word 'PRIMARY'. However, editing the .e00
file and changing PRIMARY to XPRIMARY solves the problem.

   Also, v.in.e00 does not offer the -w option to change column names to
lowercase, even though it's a wrapper that called v.in.ogr.

Thanks again,

Rich