Add code for checking if opened DB is readonly 88/145588/1
authorInkyun Kil <inkyun.kil@samsung.com>
Tue, 22 Aug 2017 09:38:46 +0000 (18:38 +0900)
committerInkyun Kil <inkyun.kil@samsung.com>
Wed, 23 Aug 2017 04:28:54 +0000 (13:28 +0900)
Change-Id: I031e8e92a5da991cc847e70cbd4e1530daecb11b
Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
backend/sqlite.c

index 477977c..7eac34c 100644 (file)
@@ -64,8 +64,17 @@ static sqlite3 *open_sqlite3(const char *dbpath, bool readonly)
        }
 
        db = g_hash_table_lookup(dbs, dbpath);
-       if (db)
-               return db;
+       if (db) {
+               int is_ro;
+               is_ro = sqlite3_db_readonly(db, "main");
+               if (is_ro != readonly) {
+                       bxt_dbg("'%s' : readonly[%d], required readonly[%d]",
+                                       dbpath, is_ro, readonly);
+                       g_hash_table_remove(dbs, dbpath);
+               } else {
+                       return db;
+               }
+       }
 
        nm = strdup(dbpath);
        if (!nm) {