[GRASS-SVN] r62200 - in grass/trunk: db/db.columns db/db.databases db/db.select display/d.thematic.area display/d.vect display/d.vect.chart misc/m.nviz.image raster/r.stream.extract raster/r.stream.order raster/r.to.vect raster3d/r3.flow vector/v.buffer vector/v.colors vector/v.colors.out vector/v.convert vector/v.db.select vector/v.edit vector/v.in.db vector/v.in.dwg vector/v.in.dxf vector/v.in.lidar vector/v.kcv vector/v.label.sa vector/v.lidar.correction vector/v.lidar.edgedetection vector/v.lrs/v.lrs.create vector/v.lrs/v.lrs.segment vector/v.mkgrid vector/v.net vector/v.net.allpairs vector/v.net.centrality vector/v.net.distance vector/v.net.flow vector/v.net.path vector/v.out.postgis vector/v.out.vtk vector/v.outlier vector/v.overlay vector/v.patch vector/v.reclass vector/v.sample vector/v.surf.bspline vector/v.surf.rst vector/v.to.db vector/v.to.rast vector/v.to.rast3 vector/v.univar vector/v.vol.rst vector/v.what vector/v.what.rast vector/v.what.rast3

svn_grass at osgeo.org svn_grass at osgeo.org
Tue Oct 7 03:29:02 PDT 2014


Author: martinl
Date: 2014-10-07 03:29:02 -0700 (Tue, 07 Oct 2014)
New Revision: 62200

Modified:
   grass/trunk/db/db.columns/main.c
   grass/trunk/db/db.databases/main.c
   grass/trunk/db/db.select/main.c
   grass/trunk/display/d.thematic.area/plot1.c
   grass/trunk/display/d.vect.chart/plot.c
   grass/trunk/display/d.vect/shape.c
   grass/trunk/misc/m.nviz.image/vector.c
   grass/trunk/raster/r.stream.extract/close.c
   grass/trunk/raster/r.stream.order/stream_vector.c
   grass/trunk/raster/r.to.vect/main.c
   grass/trunk/raster3d/r3.flow/main.c
   grass/trunk/vector/v.buffer/main.c
   grass/trunk/vector/v.colors.out/make_colors.c
   grass/trunk/vector/v.colors/scan_attr.c
   grass/trunk/vector/v.colors/write_rgb.c
   grass/trunk/vector/v.convert/att.c
   grass/trunk/vector/v.db.select/main.c
   grass/trunk/vector/v.edit/select.c
   grass/trunk/vector/v.in.db/main.c
   grass/trunk/vector/v.in.dwg/main.c
   grass/trunk/vector/v.in.dxf/write_vect.c
   grass/trunk/vector/v.in.lidar/main.c
   grass/trunk/vector/v.kcv/main.c
   grass/trunk/vector/v.label.sa/labels.c
   grass/trunk/vector/v.lidar.correction/main.c
   grass/trunk/vector/v.lidar.edgedetection/main.c
   grass/trunk/vector/v.lrs/v.lrs.create/main.c
   grass/trunk/vector/v.lrs/v.lrs.segment/main.c
   grass/trunk/vector/v.mkgrid/main.c
   grass/trunk/vector/v.net.allpairs/main.c
   grass/trunk/vector/v.net.centrality/main.c
   grass/trunk/vector/v.net.distance/main.c
   grass/trunk/vector/v.net.flow/main.c
   grass/trunk/vector/v.net.path/path.c
   grass/trunk/vector/v.net/turntable.c
   grass/trunk/vector/v.out.postgis/table.c
   grass/trunk/vector/v.out.vtk/writeVTK.c
   grass/trunk/vector/v.outlier/main.c
   grass/trunk/vector/v.overlay/main.c
   grass/trunk/vector/v.patch/main.c
   grass/trunk/vector/v.reclass/main.c
   grass/trunk/vector/v.sample/main.c
   grass/trunk/vector/v.surf.bspline/main.c
   grass/trunk/vector/v.surf.rst/main.c
   grass/trunk/vector/v.to.db/update.c
   grass/trunk/vector/v.to.rast/vect2rast.c
   grass/trunk/vector/v.to.rast3/main.c
   grass/trunk/vector/v.univar/main.c
   grass/trunk/vector/v.vol.rst/main.c
   grass/trunk/vector/v.what.rast/main.c
   grass/trunk/vector/v.what.rast3/main.c
   grass/trunk/vector/v.what/what.c
Log:
update modules: use db_set_error_handler_driver()


Modified: grass/trunk/db/db.columns/main.c
===================================================================
--- grass/trunk/db/db.columns/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/db/db.columns/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -13,9 +13,10 @@
  *
  *****************************************************************************/
 
+#include <stdlib.h>
+
 #include <grass/gis.h>
 #include <grass/dbmi.h>
-#include <stdlib.h>
 #include <grass/glocale.h>
 
 
@@ -52,12 +53,13 @@
     db_init_handle(&handle);
     db_set_handle(&handle, parms.database, NULL);
     if (db_open_database(driver, &handle) != DB_OK)
-	exit(EXIT_FAILURE);
+        G_fatal_error(_("Unable to open database <%s>"), parms.database);
+    db_set_error_handler_driver(driver);
 
     db_init_string(&table_name);
     db_set_string(&table_name, parms.table);
     if (db_describe_table(driver, &table_name, &table) != DB_OK)
-	exit(EXIT_FAILURE);
+	G_fatal_error(_("Unable to describe table <%s>"), parms.table);
 
     db_close_database(driver);
     db_shutdown_driver(driver);

Modified: grass/trunk/db/db.databases/main.c
===================================================================
--- grass/trunk/db/db.databases/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/db/db.databases/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -48,10 +48,11 @@
 	G_fatal_error(_("Unable to start driver <%s>"), parms.driver);
 
     if (db_list_databases(driver, &locations,
-                          nlocs, &handles, &count) != DB_OK)
+                          nlocs, &handles, &count) != DB_OK) {
+        db_shutdown_driver(driver);
         G_fatal_error(_("Unable to list databases. "
                         "Try to define correct connection settings by db.login."));
-    
+    }
     db_shutdown_driver(driver);
 
     for (i = 0; i < count; i++) {

Modified: grass/trunk/db/db.select/main.c
===================================================================
--- grass/trunk/db/db.select/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/db/db.select/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -79,7 +79,8 @@
     db_set_handle(&handle, parms.database, NULL);
     if (db_open_database(driver, &handle) != DB_OK)
 	G_fatal_error(_("Unable to open database <%s>"), parms.database);
-
+    db_set_error_handler_driver(driver);
+ 
     /* check for sql, table, and input */
     if (parms.sql) {
         /* parms.sql */

Modified: grass/trunk/display/d.thematic.area/plot1.c
===================================================================
--- grass/trunk/display/d.thematic.area/plot1.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/display/d.thematic.area/plot1.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -110,6 +110,7 @@
 	if (driver == NULL)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  fi->database, fi->driver);
+         db_set_error_handler_driver(driver);
     }
 
     if (table_colors_flag) {

Modified: grass/trunk/display/d.vect/shape.c
===================================================================
--- grass/trunk/display/d.vect/shape.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/display/d.vect/shape.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -7,13 +7,6 @@
 
 static int ncolor_rules_skipped = 0;
 
-static void error_handler(void *p)
-{
-    dbDriver *driver = (dbDriver *) p;
-    
-    db_close_database_shutdown_driver(driver);
-}
-
 int get_num_color_rules_skipped()
 {
     return ncolor_rules_skipped;
@@ -50,9 +43,7 @@
 	if (!driver)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  fi->database, fi->driver);
-
-	/* add error handler */
-	G_add_error_handler(error_handler, driver);
+        db_set_error_handler_driver(driver);
     }
     
     /* fisrt search for color table */
@@ -183,9 +174,6 @@
     }
 
     if (open_db) {
-	/* remove error handler */
-	G_remove_error_handler(error_handler, driver);
-	
 	db_close_database_shutdown_driver(driver);
     }
 

Modified: grass/trunk/display/d.vect.chart/plot.c
===================================================================
--- grass/trunk/display/d.vect.chart/plot.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/display/d.vect.chart/plot.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -45,6 +45,7 @@
 		  Fi->driver);
 	return 1;
     }
+    db_set_error_handler_driver(driver);
 
     val = (double *)G_malloc((ncols + 1) * sizeof(double));	/* + 1 for sizecol */
 

Modified: grass/trunk/misc/m.nviz.image/vector.c
===================================================================
--- grass/trunk/misc/m.nviz.image/vector.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/misc/m.nviz.image/vector.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -24,8 +24,6 @@
 static int load_vectors(const struct Option *, const struct Option *,
 			const struct Option *, const struct Option *, int,
 			nv_data *);
-static void error_handler_vector(void *);
-static void error_handler_db(void *);
 
 /*!
    \brief Load vector maps (lines)
@@ -280,7 +278,7 @@
 
     if (1 > Vect_open_old(&Map, map, ""))
 	G_fatal_error(_("Unable to open vector map <%s>"), map);
-    G_add_error_handler(error_handler_vector, &Map);
+    Vect_set_error_handler_io(&Map, NULL);
 
     if (with_z)
 	*with_z = Vect_is_3d(&Map);
@@ -294,7 +292,7 @@
 	if (!driver)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  Fi->database, Fi->driver);
-	G_add_error_handler(error_handler_db, driver);
+        db_set_error_handler_driver(driver);
 
 	if (color) {
 	    db_get_column(driver, Fi->table, color, &column);
@@ -337,30 +335,10 @@
 		G_fatal_error(_("Data type of marker column must be character"));
 	}
 
-	G_remove_error_handler(error_handler_db, driver);
 	db_close_database_shutdown_driver(driver);
     }
 
-    G_remove_error_handler(error_handler_vector, &Map);
     Vect_close(&Map);
 
     return 0;
 }
-
-void error_handler_vector(void *p)
-{
-    struct Map_info *Map;
-
-    Map = (struct Map_info *)p;
-
-    Vect_close(Map);
-}
-
-void error_handler_db(void *p)
-{
-    dbDriver *driver;
-
-    driver = (dbDriver *) p;
-    if (driver)
-	db_close_database_shutdown_driver(driver);
-}

Modified: grass/trunk/raster/r.stream.extract/close.c
===================================================================
--- grass/trunk/raster/r.stream.extract/close.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/raster/r.stream.extract/close.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -171,6 +171,7 @@
     if (driver == NULL) {
 	G_fatal_error(_("Unable to start driver <%s>"), Fi->driver);
     }
+    db_set_error_handler_driver(driver);
 
     G_debug(1, "table: %s", Fi->table);
     G_debug(1, "driver: %s", Fi->driver);

Modified: grass/trunk/raster/r.stream.order/stream_vector.c
===================================================================
--- grass/trunk/raster/r.stream.order/stream_vector.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/raster/r.stream.order/stream_vector.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -227,6 +227,7 @@
     driver = db_start_driver_open_database(Fi->driver,
 					   Vect_subst_var(Fi->database,
 							         &Out));
+    db_set_error_handler_driver(driver);
 
     /* create table */
     for (i = 0; i < number_of_streams; ++i)
@@ -267,10 +268,7 @@
     db_set_string(&db_sql, buf);
 
     if (db_execute_immediate(driver, &db_sql) != DB_OK) {
-	db_close_database(driver);
-	db_shutdown_driver(driver);
-	G_warning("Unable to create table: '%s'", db_get_string(&db_sql));
-	return -1;
+	G_fatal_error("Unable to create table: '%s'", db_get_string(&db_sql));
     }
 
     if (db_create_index2(driver, Fi->table, cat_col_name) != DB_OK)
@@ -351,10 +349,7 @@
 	db_set_string(&db_sql, buf);
 
 	if (db_execute_immediate(driver, &db_sql) != DB_OK) {
-	    db_close_database(driver);
-	    db_shutdown_driver(driver);
-	    G_warning(_("Unable to inset new row: '%s'"), db_get_string(&db_sql));
-	    return -1;
+            G_fatal_error(_("Unable to inset new row: '%s'"), db_get_string(&db_sql));
 	}
     }				/* end for */
 

Modified: grass/trunk/raster/r.to.vect/main.c
===================================================================
--- grass/trunk/raster/r.to.vect/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/raster/r.to.vect/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -178,6 +178,7 @@
 	if (driver == NULL)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  Fi->database, Fi->driver);
+        db_set_error_handler_driver(driver);
 
 	/* Create new table */
 	db_zero_string(&sql);

Modified: grass/trunk/raster3d/r3.flow/main.c
===================================================================
--- grass/trunk/raster3d/r3.flow/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/raster3d/r3.flow/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -46,6 +46,8 @@
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Vect_subst_var(fi->database, flowline_vec), fi->driver);
     }
+    db_set_error_handler_driver(drvr);
+
     *driver = drvr;
     sprintf(buf, "create table %s (cat integer, velocity double precision",
 	    fi->table);

Modified: grass/trunk/vector/v.buffer/main.c
===================================================================
--- grass/trunk/vector/v.buffer/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.buffer/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -413,6 +413,7 @@
 	if (Driver == NULL)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  Fi->database, Fi->driver);
+        db_set_error_handler_driver(Driver);
 
 	/* Note do not check if the column exists in the table because it may be expression */
 

Modified: grass/trunk/vector/v.colors/scan_attr.c
===================================================================
--- grass/trunk/vector/v.colors/scan_attr.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.colors/scan_attr.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -28,7 +28,8 @@
     if (!driver)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      fi->database, fi->driver);
-    
+    db_set_error_handler_driver(driver);
+
     ctype = db_column_Ctype(driver, fi->table, column_name);
     if (ctype == -1)
 	G_fatal_error(_("Column <%s> not found in table <%s>"),

Modified: grass/trunk/vector/v.colors/write_rgb.c
===================================================================
--- grass/trunk/vector/v.colors/write_rgb.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.colors/write_rgb.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -24,6 +24,7 @@
     if (!driver)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      fi->database, fi->driver);
+    db_set_error_handler_driver(driver);
 
     db_init_string(&stmt);
     

Modified: grass/trunk/vector/v.colors.out/make_colors.c
===================================================================
--- grass/trunk/vector/v.colors.out/make_colors.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.colors.out/make_colors.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -35,7 +35,8 @@
     if (!driver)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      fi->database, fi->driver);
-    
+    db_set_error_handler_driver(driver);
+
     ctype = db_column_Ctype(driver, fi->table, column);
     if (ctype == -1)
 	G_fatal_error(_("Column <%s> not found in table <%s>"),

Modified: grass/trunk/vector/v.convert/att.c
===================================================================
--- grass/trunk/vector/v.convert/att.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.convert/att.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -74,10 +74,9 @@
 	G_fatal_error(_("Unable to open database <%s>"),
 		      fi->database);
     }
+    db_set_error_handler_driver(driver);
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
-	db_close_database(driver);
-	db_shutdown_driver(driver);
 	G_fatal_error(_("Unable to create table: '%s'"),
 		      db_get_string(&sql));
     }
@@ -106,8 +105,6 @@
 	G_debug(3, db_get_string(&sql));
 
 	if (db_execute_immediate(driver, &sql) != DB_OK) {
-	    db_close_database(driver);
-	    db_shutdown_driver(driver);
 	    G_fatal_error(_("Unable to insert new record: '%s'"),
 			  db_get_string(&sql));
 	}

Modified: grass/trunk/vector/v.db.select/main.c
===================================================================
--- grass/trunk/vector/v.db.select/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.db.select/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -170,6 +170,7 @@
     if (!driver)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(driver);
 
     if (col_opt->answer)
 	sprintf(query, "SELECT %s FROM ", col_opt->answer);

Modified: grass/trunk/vector/v.edit/select.c
===================================================================
--- grass/trunk/vector/v.edit/select.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.edit/select.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -515,6 +515,7 @@
     if (db_open_database(driver, &handle) != DB_OK)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(driver);
 
     ncats = db_select_int(driver, Fi->table, Fi->key, where, &cats);
 

Modified: grass/trunk/vector/v.in.db/main.c
===================================================================
--- grass/trunk/vector/v.in.db/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.in.db/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -302,6 +302,7 @@
                 G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
                               fi->database, fi->driver);
             }
+            db_set_error_handler_driver(driver);
 
             /* add key column */
             sprintf(buf, "ALTER TABLE %s ADD COLUMN %s INTEGER",

Modified: grass/trunk/vector/v.in.dwg/main.c
===================================================================
--- grass/trunk/vector/v.in.dwg/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.in.dwg/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -213,6 +213,8 @@
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Vect_subst_var(Fi->database, &Map), Fi->driver);
     }
+    db_set_error_handler_driver(driver);
+
     db_begin_transaction(driver);
 
     /* Create table */

Modified: grass/trunk/vector/v.in.dxf/write_vect.c
===================================================================
--- grass/trunk/vector/v.in.dxf/write_vect.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.in.dxf/write_vect.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -211,6 +211,7 @@
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  Vect_subst_var(Fi[i]->database, Map),
 			  Fi[i]->driver);
+        db_set_error_handler_driver(driver);
 
 	db_begin_transaction(driver);
 

Modified: grass/trunk/vector/v.in.lidar/main.c
===================================================================
--- grass/trunk/vector/v.in.lidar/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.in.lidar/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -604,10 +604,9 @@
 	    G_fatal_error(_("Unable open database <%s> by driver <%s>"),
 			  Vect_subst_var(Fi->database, &Map), Fi->driver);
 	}
+        db_set_error_handler_driver(driver);
 
 	if (db_execute_immediate(driver, &sql) != DB_OK) {
-	    db_close_database(driver);
-	    db_shutdown_driver(driver);
 	    G_fatal_error(_("Unable to create table: '%s'"),
 			  db_get_string(&sql));
 	}
@@ -780,8 +779,6 @@
 	    G_debug(3, db_get_string(&sql));
 
 	    if (db_execute_immediate(driver, &sql) != DB_OK) {
-		db_close_database(driver);
-		db_shutdown_driver(driver);
 		G_fatal_error(_("Cannot insert new row: %s"),
 			      db_get_string(&sql));
 	    }

Modified: grass/trunk/vector/v.kcv/main.c
===================================================================
--- grass/trunk/vector/v.kcv/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.kcv/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -125,6 +125,7 @@
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
     }
+    db_set_error_handler_driver(Driver);
 
     buf[0] = '\0';
     if (nlinks < 1)

Modified: grass/trunk/vector/v.label.sa/labels.c
===================================================================
--- grass/trunk/vector/v.label.sa/labels.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.label.sa/labels.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -77,6 +77,7 @@
     if (driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      fi->database, fi->driver);
+    db_set_error_handler_driver(driver);
 
     sql_len = strlen(p->column->answer) + strlen(fi->table) +
 	strlen(fi->key) + 30;

Modified: grass/trunk/vector/v.lidar.correction/main.c
===================================================================
--- grass/trunk/vector/v.lidar.correction/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.lidar.correction/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -164,6 +164,8 @@
 	if (driver == NULL)
 	    G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
 			  dvr);
+        db_set_error_handler_driver(driver);
+        
 	if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
 	    G_fatal_error(_("Old auxiliar table could not be dropped"));
 	db_close_database_shutdown_driver(driver);
@@ -224,6 +226,7 @@
     if (driver == NULL)
 	G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
 		      dvr);
+    db_set_error_handler_driver(driver);
 
     /* Create auxiliar table */
     if ((flag_auxiliar =
@@ -235,7 +238,7 @@
     }
 
     db_create_index2(driver, table_name, "ID");
-    /* sqlite likes that */
+    /* sqlite likes that ??? */
     db_close_database_shutdown_driver(driver);
     driver = db_start_driver_open_database(dvr, db);
 

Modified: grass/trunk/vector/v.lidar.edgedetection/main.c
===================================================================
--- grass/trunk/vector/v.lidar.edgedetection/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.lidar.edgedetection/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -250,6 +250,7 @@
     if (driver == NULL)
 	G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
 		      dvr);
+    db_set_error_handler_driver(driver);
 
     /* Create auxiliar and interpolation table */
     if ((flag_auxiliar = P_Create_Aux4_Table(driver, table_name)) == FALSE)
@@ -261,7 +262,7 @@
 
     db_create_index2(driver, table_name, "ID");
     db_create_index2(driver, table_interpolation, "ID");
-    /* sqlite likes that */
+    /* sqlite likes that ??? */
     db_close_database_shutdown_driver(driver);
     driver = db_start_driver_open_database(dvr, db);
 

Modified: grass/trunk/vector/v.lrs/v.lrs.create/main.c
===================================================================
--- grass/trunk/vector/v.lrs/v.lrs.create/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.lrs/v.lrs.create/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -295,6 +295,7 @@
     if (db_open_database(ldriver, &lhandle) != DB_OK)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Lfi->database, Lfi->driver);
+    db_set_error_handler_driver(ldriver);
 
     db_init_handle(&phandle);
     db_init_string(&pstmt);
@@ -303,6 +304,7 @@
     if (db_open_database(pdriver, &phandle) != DB_OK)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Pfi->database, Pfi->driver);
+    db_set_error_handler_driver(pdriver);
 
     /* Open database for RS table */
     db_init_handle(&rshandle);
@@ -311,6 +313,7 @@
     db_set_handle(&rshandle, database_opt->answer, NULL);
     if (db_open_database(rsdriver, &rshandle) != DB_OK)
 	G_fatal_error(_("Unable to open database for reference table"));
+    db_set_error_handler_driver(rsdriver);
 
     /* Create new reference table */
     /* perhaps drop table to be conditionalized upon --o ? */

Modified: grass/trunk/vector/v.lrs/v.lrs.segment/main.c
===================================================================
--- grass/trunk/vector/v.lrs/v.lrs.segment/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.lrs/v.lrs.segment/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -153,6 +153,7 @@
     db_set_handle(&rshandle, database_opt->answer, NULL);
     if (db_open_database(rsdriver, &rshandle) != DB_OK)
 	G_fatal_error(_("Unable to open database for reference table"));
+    db_set_error_handler_driver(rsdriver);
 
     points_read = 0;
     lines_read = 0;

Modified: grass/trunk/vector/v.mkgrid/main.c
===================================================================
--- grass/trunk/vector/v.mkgrid/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.mkgrid/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -240,6 +240,7 @@
     if (Driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(Driver);
 
     if (grid_info.num_rows < 27 && grid_info.num_cols < 27) {
 	sprintf(buf,

Modified: grass/trunk/vector/v.net/turntable.c
===================================================================
--- grass/trunk/vector/v.net/turntable.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.net/turntable.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -7,13 +7,6 @@
 #include <grass/glocale.h>
 #include "proto.h"
 
-void close_db(void *p)
-{
-    dbDriver *driver = (dbDriver *) p;
-
-    db_close_database_shutdown_driver(driver);
-}
-
 static double compute_line_nodes_angle(struct line_pnts *points)
 {
     double x_start, y_start, z;
@@ -726,7 +719,7 @@
     if (driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> using driver <%s>"),
 		      database_name, driver_name);
-    G_add_error_handler(close_db, driver);
+    db_set_error_handler_driver(driver);
 
     key_col = "cat";
     sprintf(buf,
@@ -760,7 +753,7 @@
 		       tucfield, afield, type);
     Vect_close(&InMap);
 
-    close_db(driver);
+    db_close_database_shutdown_driver(driver);
 
     Vect_build_partial(&OutMap, GV_BUILD_NONE);	/*must be there in order to be topology build */
     Vect_build(&OutMap);

Modified: grass/trunk/vector/v.net.allpairs/main.c
===================================================================
--- grass/trunk/vector/v.net.allpairs/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.net.allpairs/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -165,6 +165,7 @@
     if (driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(driver);
 
     sprintf(buf,
 	    "create table %s ( cat integer, from_cat integer, to_cat integer, cost double precision)",

Modified: grass/trunk/vector/v.net.centrality/main.c
===================================================================
--- grass/trunk/vector/v.net.centrality/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.net.centrality/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -245,6 +245,7 @@
     if (driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(driver);
 
     db_init_string(&tmp);
     if (deg_opt->answer)
@@ -262,7 +263,6 @@
     G_debug(2, db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
-	db_close_database_shutdown_driver(driver);
 	G_fatal_error(_("Unable to create table: '%s'"), db_get_string(&sql));
     }
 

Modified: grass/trunk/vector/v.net.distance/main.c
===================================================================
--- grass/trunk/vector/v.net.distance/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.net.distance/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -249,6 +249,7 @@
     if (driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(driver);
 
     sprintf(buf,
 	    "create table %s ( cat integer, tcat integer, dist double precision)",
@@ -258,7 +259,6 @@
     G_debug(2, db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
-	db_close_database_shutdown_driver(driver);
 	G_fatal_error(_("Unable to create table: '%s'"), db_get_string(&sql));
     }
 
@@ -321,7 +321,6 @@
 	    db_set_string(&sql, buf);
 	    G_debug(3, db_get_string(&sql));
 	    if (db_execute_immediate(driver, &sql) != DB_OK) {
-		db_close_database_shutdown_driver(driver);
 		G_fatal_error(_("Cannot insert new record: %s"),
 			      db_get_string(&sql));
 	    };

Modified: grass/trunk/vector/v.net.flow/main.c
===================================================================
--- grass/trunk/vector/v.net.flow/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.net.flow/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -168,6 +168,7 @@
     if (driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(driver);
 
     sprintf(buf, "create table %s (cat integer, flow double precision)",
 	    Fi->table);

Modified: grass/trunk/vector/v.net.path/path.c
===================================================================
--- grass/trunk/vector/v.net.path/path.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.net.path/path.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -95,6 +95,7 @@
     if (driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(driver);
 
     sprintf(buf,
 	    "create table %s ( cat integer, id integer, fcat integer, tcat integer, "
@@ -105,7 +106,6 @@
     G_debug(2, db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
-	db_close_database_shutdown_driver(driver);
 	G_fatal_error(_("Unable to create table: '%s'"), db_get_string(&sql));
     }
 
@@ -330,7 +330,6 @@
 	G_debug(3, db_get_string(&sql));
 
 	if (db_execute_immediate(driver, &sql) != DB_OK) {
-	    db_close_database_shutdown_driver(driver);
 	    G_fatal_error(_("Cannot insert new record: %s"),
 			  db_get_string(&sql));
 	}

Modified: grass/trunk/vector/v.out.postgis/table.c
===================================================================
--- grass/trunk/vector/v.out.postgis/table.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.out.postgis/table.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -33,11 +33,11 @@
     if (!driver)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      fi->database, fi->driver);
-    
+    db_set_error_handler_driver(driver);
+     
     db_init_string(&stmt);
     db_set_string(&stmt, fi->table);
     if (db_describe_table(driver, &stmt, &table) != DB_OK) {
-	db_close_database_shutdown_driver(driver);
 	G_fatal_error(_("Unable to describe table <%s>"), fi->table);
     }
     

Modified: grass/trunk/vector/v.out.vtk/writeVTK.c
===================================================================
--- grass/trunk/vector/v.out.vtk/writeVTK.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.out.vtk/writeVTK.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -648,6 +648,7 @@
     if (db_open_database(Driver, &handle) != DB_OK)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(Driver);
 
     db_set_string(&dbstring, Fi->table);
     if (db_describe_table(Driver, &dbstring, &Table) != DB_OK)
@@ -728,8 +729,6 @@
 					    db_get_column_name(Column), cat,
 					    Fi, Driver, ncol);
 				if (valbuf == NULL) {
-				    db_close_database(Driver);
-				    db_shutdown_driver(Driver);
 				    G_fatal_error(_("Error reading value of attribute '%s'"),
 						  db_get_column_name(Column));
 				}
@@ -761,8 +760,6 @@
 					    db_get_column_name(Column), cat,
 					    Fi, Driver, ncol);
 				if (valbuf == NULL) {
-				    db_close_database(Driver);
-				    db_shutdown_driver(Driver);
 				    G_fatal_error(_("Error reading value of attribute '%s'"),
 						  db_get_column_name(Column));
 				}
@@ -794,8 +791,6 @@
 					    db_get_column_name(Column), cat,
 					    Fi, Driver, ncol);
 				if (valbuf == NULL) {
-				    db_close_database(Driver);
-				    db_shutdown_driver(Driver);
 				    G_fatal_error(_("Error reading value of attribute '%s'"),
 						  db_get_column_name(Column));
 				}
@@ -825,8 +820,6 @@
 				get_att((char *)db_get_column_name(Column),
 					cat, Fi, Driver, ncol);
 			    if (valbuf == NULL) {
-				db_close_database(Driver);
-				db_shutdown_driver(Driver);
 				G_fatal_error(_("Error reading value of attribute '%s'"),
 					      db_get_column_name(Column));
 			    }

Modified: grass/trunk/vector/v.outlier/main.c
===================================================================
--- grass/trunk/vector/v.outlier/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.outlier/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -184,6 +184,8 @@
 	if (driver == NULL)
 	    G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
 			  dvr);
+        db_set_error_handler_driver(driver);
+
 	if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
 	    G_fatal_error(_("Old auxiliar table could not be dropped"));
 	db_close_database_shutdown_driver(driver);
@@ -250,6 +252,7 @@
     if (driver == NULL)
 	G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
 		      dvr);
+    db_set_error_handler_driver(driver);
 
     /* Create auxiliar table */
     if ((flag_auxiliar =
@@ -257,7 +260,7 @@
 	G_fatal_error(_("It was impossible to create <%s> table."), table_name);
 
     db_create_index2(driver, table_name, "ID");
-    /* sqlite likes that */
+    /* sqlite likes that ??? */
     db_close_database_shutdown_driver(driver);
     driver = db_start_driver_open_database(dvr, db);
 

Modified: grass/trunk/vector/v.overlay/main.c
===================================================================
--- grass/trunk/vector/v.overlay/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.overlay/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -236,6 +236,8 @@
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  Fi->database, Fi->driver);
 	}
+        db_set_error_handler_driver(driver);
+
 	db_begin_transaction(driver);
     }
     else {

Modified: grass/trunk/vector/v.patch/main.c
===================================================================
--- grass/trunk/vector/v.patch/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.patch/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -137,6 +137,7 @@
 		    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 				  fi_out->database, fi_out->driver);
 		}
+                db_set_error_handler_driver(driver_out);
 
 		db_set_string(&table_name_out, fi_out->table);
 		if (db_describe_table(driver_out, &table_name_out, &table_out)
@@ -168,6 +169,7 @@
 		    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 				  fi_in->database, fi_in->driver);
 		}
+                db_set_error_handler_driver(driver_in);
 
 		if (!append->answer && i == 0) {
 		    table = &table_out;
@@ -287,6 +289,8 @@
 		G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			      fi_out->database, fi_out->driver);
 	    }
+            db_set_error_handler_driver(driver_out);
+
 	    db_begin_transaction(driver_out);
 	}
 
@@ -356,6 +360,7 @@
 		    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 				  fi_in->database, fi_in->driver);
 		}
+                db_set_error_handler_driver(driver_in);
 
 		db_set_string(&table_name_in, fi_in->table);
 		copy_records(driver_in, &table_name_in,
@@ -430,8 +435,8 @@
 	char buf[2000];
 
 	if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK) {
+	    db_close_cursor(&cursor);
 	    G_fatal_error(_("Cannot fetch row"));
-	    db_close_cursor(&cursor);
 	}
 	if (!more)
 	    break;

Modified: grass/trunk/vector/v.reclass/main.c
===================================================================
--- grass/trunk/vector/v.reclass/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.reclass/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -132,6 +132,7 @@
     if (Driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(Driver);
 
     if (col_opt->answer) {
 	int ctype;
@@ -174,6 +175,7 @@
 						    Vect_subst_var(NewFi->
 								   database,
 								   &Out));
+            db_set_error_handler_driver(Driver2);
 
 	    /* get string column length */
 	    db_set_string(&stmt, Fi->table);
@@ -205,8 +207,6 @@
 
 	    if (db_execute_immediate(Driver2, &stmt2) != DB_OK) {
 		Vect_close(&Out);
-		db_close_database_shutdown_driver(Driver);
-		db_close_database_shutdown_driver(Driver2);
 		G_fatal_error("Unable to create table: '%s'",
 			      db_get_string(&stmt2));
 	    }
@@ -285,8 +285,6 @@
 
 		    if (db_execute_immediate(Driver2, &stmt2) != DB_OK) {
 			Vect_close(&Out);
-			db_close_database_shutdown_driver(Driver);
-			db_close_database_shutdown_driver(Driver2);
 			G_fatal_error(_("Cannot insert data: [%s]"),
 				      db_get_string(&stmt2));
 		    }

Modified: grass/trunk/vector/v.sample/main.c
===================================================================
--- grass/trunk/vector/v.sample/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.sample/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -137,6 +137,7 @@
     if (Driver == NULL)
 	G_fatal_error("Unable to open database <%s> by driver <%s>",
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(Driver);
 
     nrecords = db_select_CatValArray(Driver, Fi->table, Fi->key,
 				     parm.column->answer, NULL, &cvarr);
@@ -177,6 +178,7 @@
     if (Driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(Driver);
 
     db_begin_transaction(Driver);
     sprintf(buf,

Modified: grass/trunk/vector/v.surf.bspline/main.c
===================================================================
--- grass/trunk/vector/v.surf.bspline/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.surf.bspline/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -240,6 +240,8 @@
 	if (driver == NULL)
 	    G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
 			  drv);
+        db_set_error_handler_driver(driver);
+
 	if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
 	    G_fatal_error(_("Old auxiliary table could not be dropped"));
 	db_close_database_shutdown_driver(driver);
@@ -379,6 +381,7 @@
 	if (driver_cats == NULL)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  Fi->database, Fi->driver);
+        db_set_error_handler_driver(driver_cats);
 
 	nrec =
 	    db_select_CatValArray(driver_cats, Fi->table, Fi->key,
@@ -406,6 +409,7 @@
     if (driver == NULL)
 	G_fatal_error(_("No database connection for driver <%s> is defined. "
 			"Run db.connect."), drv);
+    db_set_error_handler_driver(driver);
 
     /* Create auxiliary table */
     if (vector) {
@@ -416,7 +420,7 @@
 			  table_name);
 	}
 	/* db_create_index2(driver, table_name, "ID"); */
-	/* sqlite likes that */
+	/* sqlite likes that ??? */
 	db_close_database_shutdown_driver(driver);
 	driver = db_start_driver_open_database(drv, db);
     }

Modified: grass/trunk/vector/v.surf.rst/main.c
===================================================================
--- grass/trunk/vector/v.surf.rst/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.surf.rst/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -589,10 +589,9 @@
 	if (driver2 == NULL)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  ff->database, ff->driver);
+        db_set_error_handler_driver(driver2);
 
 	if (db_execute_immediate(driver2, &sql2) != DB_OK) {
-	    db_close_database(driver2);
-	    db_shutdown_driver(driver2);
 	    G_fatal_error(_("Unable to create table '%s'"),
 			  db_get_string(&sql2));
 	}

Modified: grass/trunk/vector/v.to.db/update.c
===================================================================
--- grass/trunk/vector/v.to.db/update.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.to.db/update.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -46,6 +46,7 @@
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
     }
+    db_set_error_handler_driver(driver);
 
     db_begin_transaction(driver);
 

Modified: grass/trunk/vector/v.to.rast/vect2rast.c
===================================================================
--- grass/trunk/vector/v.to.rast/vect2rast.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.to.rast/vect2rast.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -59,6 +59,7 @@
 	     db_start_driver_open_database(Fi->driver, Fi->database)) == NULL)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  Fi->database, Fi->driver);
+        db_set_error_handler_driver(Driver);
 
 	/* Note do not check if the column exists in the table because it may be expression */
 

Modified: grass/trunk/vector/v.to.rast3/main.c
===================================================================
--- grass/trunk/vector/v.to.rast3/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.to.rast3/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -83,7 +83,8 @@
     if (Driver == NULL)
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
-
+    db_set_error_handler_driver(Driver);
+    
     /* Note: do not check if the column exists in the table because it may be expression */
 
     nrec = db_select_CatValArray(Driver, Fi->table, Fi->key,

Modified: grass/trunk/vector/v.univar/main.c
===================================================================
--- grass/trunk/vector/v.univar/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.univar/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -231,6 +231,8 @@
 	if (Driver == NULL)
 	    G_fatal_error("Unable to open database <%s> by driver <%s>",
 			  Fi->database, Fi->driver);
+        db_set_error_handler_driver(Driver);
+
 	ncats = db_select_int(Driver, Fi->table, Fi->key, where_opt->answer,
 			      &cats);
 	if (ncats == -1)
@@ -340,6 +342,7 @@
     if (Driver == NULL)
 	G_fatal_error("Unable to open database <%s> by driver <%s>",
 		      Fi->database, Fi->driver);
+    db_set_error_handler_driver(Driver);
 
     /* Note do not check if the column exists in the table because it may be an expression */
     db_CatValArray_init(&Cvarr);

Modified: grass/trunk/vector/v.vol.rst/main.c
===================================================================
--- grass/trunk/vector/v.vol.rst/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.vol.rst/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -600,10 +600,9 @@
 	if (driver == NULL)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  f->database, f->driver);
+        db_set_error_handler_driver(driver);
 
 	if (db_execute_immediate(driver, &sql) != DB_OK) {
-	    db_close_database(driver);
-	    db_shutdown_driver(driver);
 	    G_fatal_error(_("Unable to create table '%s'"), db_get_string(&sql));
 	}
 	count = 1;

Modified: grass/trunk/vector/v.what/what.c
===================================================================
--- grass/trunk/vector/v.what/what.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.what/what.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -50,6 +50,7 @@
     G_debug(2, "Open database");
     if (db_open_database(driver, &handle) != DB_OK)
 	G_fatal_error("Cannot open database");
+    db_set_error_handler_driver(driver);
 
     G_debug(2, "Database opened");
 

Modified: grass/trunk/vector/v.what.rast/main.c
===================================================================
--- grass/trunk/vector/v.what.rast/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.what.rast/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -143,6 +143,7 @@
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 			  Fi->database, Fi->driver);
 	}
+        db_set_error_handler_driver(driver);
     }
 
     /* Open raster */

Modified: grass/trunk/vector/v.what.rast3/main.c
===================================================================
--- grass/trunk/vector/v.what.rast3/main.c	2014-10-07 10:06:36 UTC (rev 62199)
+++ grass/trunk/vector/v.what.rast3/main.c	2014-10-07 10:29:02 UTC (rev 62200)
@@ -125,7 +125,8 @@
 	G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
 		      Fi->database, Fi->driver);
     }
-    
+    db_set_error_handler_driver(driver);
+
     map = Rast3d_open_cell_old(opt.rast3d->answer, G_find_raster3d(opt.rast3d->answer, ""), &region,
                           RASTER3D_TILE_SAME_AS_FILE, RASTER3D_USE_CACHE_DEFAULT);
 



More information about the grass-commit mailing list