]> err.no Git - mapper/blobdiff - src/db.c
GpsBluez: cleanups
[mapper] / src / db.c
index cf19118e9f3e1833aeaa1794725e9f31d630782c..4b9cece0919eb8c835d2e460bd13b23d2e433e68 100644 (file)
--- a/src/db.c
+++ b/src/db.c
@@ -1,6 +1,8 @@
 /*
  * This file is part of mapper
  *
+ * Generic sqlite database helper functions.
+ *
  * Copyright (C) 2007 Kaj-Michael Lang
  *
  * This program is free software; you can redistribute it and/or modify
 #include <sqlite3.h>
 
 #include "db.h"
-#include "osm-sql-tables.h"
 
 sqlite3 *_db=NULL;
 gchar *_mapper_db=NULL;
 
-void
-db_create_tables(sqlite3 *db)
+gboolean
+db_exec_sql_array(sqlite3 *db, const gchar **sql)
 {
-db_exec_sql(db, OSM_TABLE_NODES);
-db_exec_sql(db, OSM_TABLE_NODE_TAGS);
-db_exec_sql(db, OSM_TABLE_WAY);
-db_exec_sql(db, OSM_TABLE_WAY_TAGS);
-db_exec_sql(db, OSM_TABLE_WAY_UPDATES);
-db_exec_sql(db, OSM_TABLE_WAY_N2N);
-db_exec_sql(db, OSM_TABLE_WAY_NAMES);
-db_exec_sql(db, OSM_TABLE_WAY_PC);
-db_exec_sql(db, OSM_TABLE_WAY_NAMES_NLS);
-db_exec_sql(db, OSM_TABLE_WAY_REF);
-db_exec_sql(db, OSM_TABLE_PLACES);
-db_exec_sql(db, OSM_TABLE_POI);
-db_exec_sql(db, OSM_TABLE_POI_CATEGORY);
+gboolean r=TRUE;
+const char **d;
+
+d=sql;
+while (*d!=NULL) {
+       if (db_exec_sql(db, *d)==FALSE)
+               r=FALSE;
+       d++;
 }
-
-void
-db_create_indexes(sqlite3 *db)
-{
-db_exec_sql(db, OSM_INDEX_1);
-db_exec_sql(db, OSM_INDEX_2);
-db_exec_sql(db, OSM_INDEX_3);
-db_exec_sql(db, OSM_INDEX_4);
-db_exec_sql(db, OSM_INDEX_5);
-db_exec_sql(db, OSM_INDEX_6);
-db_exec_sql(db, OSM_INDEX_7);
-db_exec_sql(db, OSM_INDEX_8);
-db_exec_sql(db, OSM_INDEX_9);
-db_exec_sql(db, OSM_INDEX_10);
-db_exec_sql(db, OSM_INDEX_11);
-db_exec_sql(db, OSM_INDEX_12);
-db_exec_sql(db, OSM_INDEX_13);
-db_exec_sql(db, OSM_INDEX_14);
-db_exec_sql(db, OSM_INDEX_15);
+return r;
 }
 
 /**
@@ -161,12 +139,15 @@ if (!mapper_db)
        return FALSE;
 
 if (SQLITE_OK!=(sqlite3_open(mapper_db, db))) {
-       g_printerr("SQL OPEN: %s\n", sqlite3_errmsg(db));
+       g_printerr("SQL OPEN: %s\n", sqlite3_errmsg(*db));
        sqlite3_close(*db);
        *db=NULL;
        return FALSE;
 }
 
+sqlite3_exec(*db, "PRAGMA page_size=4096;", NULL, NULL, NULL);
+sqlite3_exec(*db, "PRAGMA encoding = \"UTF-8\";", NULL, NULL, NULL);
+
 /* Use smaller cache as the IT does not have much memory to spare */
 #ifdef WITH_DEVICE_770
 sqlite3_exec(*db, "PRAGMA cache_size = 2000;", NULL, NULL, NULL);