On Fri, Sep 5, 2014 at 11:54 PM, Anna Petrášová <[email protected]> wrote:
> > > > On Fri, May 30, 2014 at 12:46 AM, <[email protected]> wrote: > >> Author: hcho >> Date: 2014-05-29 21:46:55 -0700 (Thu, 29 May 2014) >> New Revision: 60596 >> >> Modified: >> grass/trunk/vector/v.in.ogr/main.c >> Log: >> v.in.ogr: fallback datetime type for pg and dbf drivers >> >> Modified: grass/trunk/vector/v.in.ogr/main.c >> =================================================================== >> --- grass/trunk/vector/v.in.ogr/main.c 2014-05-30 04:01:53 UTC (rev >> 60595) >> +++ grass/trunk/vector/v.in.ogr/main.c 2014-05-30 04:46:55 UTC (rev >> 60596) >> @@ -103,6 +103,8 @@ >> int OFTIntegerListlength; >> >> char *dsn; >> + const char *driver_name; >> + char *datetime_type; >> char *output; >> char **layer_names; /* names of layers to be imported >> */ >> int *layers; /* layer indexes */ >> @@ -336,9 +338,18 @@ >> G_fatal_error(_("Required parameter <%s> not set"), >> param.dsn->key); >> } >> >> + driver_name = db_get_default_driver_name(); >> + >> + if (strcmp(driver_name, "pg") == 0) >> + datetime_type = G_store("timestamp with time zone"); >> + else if (strcmp(driver_name, "dbf") == 0) >> + datetime_type = G_store("varchar(22)"); >> + else >> + datetime_type = G_store("datetime"); >> + >> /* dsn is 'PG:', check default connection settings */ >> dsn = NULL; >> - if (strcmp(db_get_default_driver_name(), "pg") == 0 && >> + if (strcmp(driver_name, "pg") == 0 && >> G_strcasecmp(param.dsn->answer, "PG:") == 0) { >> const char *dbname; >> dbConnection conn; >> @@ -1010,7 +1021,7 @@ >> sprintf(buf, ", %s time", Ogr_fieldname); >> } >> else if (Ogr_ftype == OFTDateTime) { >> - sprintf(buf, ", %s datetime", Ogr_fieldname); >> + sprintf(buf, ", %s %s", Ogr_fieldname, datetime_type); >> #endif >> } >> else if (Ogr_ftype == OFTString) { >> >> _______________________________________________ >> grass-commit mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/grass-commit >> > > > Hi, > > this revision broke running v.in.ogr during creating a new location with > Location Wizard based on georeferenced file (e.g. shapefile). User is asked > if he wants to also import the data into that location and then it fails > because v.in.ogr crashes. The problem is on line > > driver_name = db_get_default_driver_name(); > > driver_name seems to be NULL. Running the same v.in.ogr command after > starting normal grass session works. Is there and initialization missing? > I added db.connect -c before importing the vector in gis_set.py. That seems to solve it (r61815, and backported in r61816). > Thanks, > > Anna >
_______________________________________________ grass-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-dev
