[GRASS-dev] [GRASS-SVN] r60596 - grass/trunk/vector/v.in.ogr
Huidae Cho
grass4u at gmail.com
Sat Sep 6 09:59:11 PDT 2014
Hi,
Glad to hear that you solved the issue. Even before this revision,
strcmp(db_get_default_driver_name(), "pg") was there... Anyway, I think
initializing a database connection in the location wizard is the right way
to fix it.
Thanks.
Huidae
On Sat, Sep 6, 2014 at 9:25 AM, Anna Petrášová <kratochanna at gmail.com>
wrote:
>
>
>
> 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
>>
>
>
> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20140906/f85d7d68/attachment.html>
More information about the grass-dev
mailing list