[GRASS-dev] [GRASS-SVN] r60596 - grass/trunk/vector/v.in.ogr

Anna Petrášová kratochanna at gmail.com
Sat Sep 6 06:25:31 PDT 2014


On Fri, Sep 5, 2014 at 11:54 PM, Anna Petrášová <kratochanna at gmail.com>
wrote:

>
>
>
> On Fri, May 30, 2014 at 12:46 AM, <svn_grass at osgeo.org> 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
>> grass-commit at lists.osgeo.org
>> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20140906/efdc7125/attachment-0001.html>


More information about the grass-dev mailing list