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?

Thanks,

Anna
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to