Cscott has submitted this change and it was merged.

Change subject: Add read-only functionality to Db module; bug fix for Db.get().
......................................................................


Add read-only functionality to Db module; bug fix for Db.get().

Change-Id: I1737fd5bcef392007dd4edfe22bf8b886e508cc1
---
M lib/db.js
1 file changed, 14 insertions(+), 6 deletions(-)

Approvals:
  Cscott: Verified; Looks good to me, approved



diff --git a/lib/db.js b/lib/db.js
index a6d7a5f..2cc2331 100644
--- a/lib/db.js
+++ b/lib/db.js
@@ -4,15 +4,22 @@
 var when = require('when');
 var nodefn = require("when/node/function");
 
-var Db = module.exports = function(filename) {
+var Db = module.exports = function(filename, options) {
+       options = options || {};
        // use promises!
        var deferred = when.defer();
-       var db = new sqlite3.Database(filename, 
nodefn.createCallback(deferred));
+       var mode = options.readonly ? sqlite3.OPEN_READONLY :
+               ( sqlite3.OPEN_CREATE | sqlite3.OPEN_READWRITE );
+       var db = new sqlite3.Database(
+               filename, mode, nodefn.createCallback(deferred)
+       );
        // this.db is a promise for the database, once tables have been created
        this.db = deferred.promise.then(function() {
-               return nodefn.call(db.run.bind(db),
-                                                  "CREATE TABLE IF NOT EXISTS 
"+
-                                                  "kv_table (key TEXT PRIMARY 
KEY, val TEXT);");
+               if (!options.readonly) {
+                       return nodefn.call(db.run.bind(db),
+                                                          "CREATE TABLE IF NOT 
EXISTS "+
+                                                          "kv_table (key TEXT 
PRIMARY KEY, val TEXT);");
+               }
        }).then(function() { return db; });
 };
 
@@ -22,7 +29,8 @@
                return nodefn.call(db.get.bind(db),
                                                   "SELECT val FROM kv_table 
WHERE key = ?;",
                                                   '' + key);
-       }).then(function(val) {
+       }).then(function(row) {
+               var val = row.val;
                return nojson ? val : JSON.parse(val);
        });
 };

-- 
To view, visit https://gerrit.wikimedia.org/r/96355
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1737fd5bcef392007dd4edfe22bf8b886e508cc1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator/bundler
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>
Gerrit-Reviewer: Cscott <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to