]> err.no Git - mapper/commitdiff
Move clearing of old data to their own functions.
authorKaj-Michael Lang <milang@angel.tal.org>
Fri, 27 Jul 2007 12:27:35 +0000 (15:27 +0300)
committerKaj-Michael Lang <milang@angel.tal.org>
Fri, 27 Jul 2007 12:27:35 +0000 (15:27 +0300)
src/osm.c

index ce5b1bb267c30981280c73e1ffa0b0be826968e5..9340c0d02b57b8475411fb00c278057f4256281a 100644 (file)
--- a/src/osm.c
+++ b/src/osm.c
@@ -29,6 +29,7 @@ static gint dbnode_cnt=0;
 static gint dbnoded_cnt=0;
 static gint dbway_cnt=0;
 
+static gboolean is_update=FALSE;
 static XML_Parser xp;
 
 typedef struct _node_data node_data;
@@ -877,13 +878,19 @@ g_slist_free(osm_poi);
 
 /*********************************************************************/
 
+void
+osm_planet_clear_nodes(void)
+{
+g_print("Clearing old nodes\n");
+sqlite3_step(sql.delete_nodes);
+}
+
 void
 osm_planet_save_nodes(void)
 {
 g_print("Storing nodes...\n");
 
 sqlite3_exec(db, "begin;", NULL, NULL, NULL);
-sqlite3_step(sql.delete_nodes);
 g_hash_table_foreach(osm_nodes, osm_node_save_node, NULL);
 sqlite3_exec(db, "commit;", NULL, NULL, NULL);
 }
@@ -902,16 +909,18 @@ if (dbway_cnt % 8192==0) {
 }
 
 void
-osm_planet_save_ways(void)
+osm_planet_clear_ways(void)
 {
-g_print("Storing ways...\n");
-
 g_print("Clearing old data:\n");
 sqlite3_step(sql.delete_way);
 sqlite3_step(sql.delete_way_seg);
 sqlite3_step(sql.delete_way_name);
 sqlite3_step(sql.delete_way_ref);
+}
 
+void
+osm_planet_save_ways(void)
+{
 g_print("Inserting new ways:\n");
 sqlite3_exec(db, "begin;", NULL, NULL, NULL);
 g_slist_foreach(osm_ways, osm_node_save_way, NULL);
@@ -924,10 +933,18 @@ void
 osm_planet_save_to_db(void)
 {
 g_printf("Saving planet to database:\n");
+
 osm_planet_poi_clear_nodes();
 osm_planet_poi_save_nodes();
+
+if (!is_update) {
+       osm_planet_clear_nodes();
+       osm_planet_clear_ways();
+}
+
 osm_planet_save_nodes();
 osm_planet_save_ways();
+
 g_printf("Data saved.\n");
 }
 
@@ -1172,7 +1189,7 @@ switch (t) {
 
 /************************************************************************/
 
-gboolean
+void
 osm_planet_parse_init(void)
 {
 xp=XML_ParserCreate(NULL);
@@ -1322,4 +1339,5 @@ storage_free();
 
 sqlite3_close(db);
 sync();
+return 0;
 }