Skip to content

Instantly share code, notes, and snippets.

@jos3000
Created February 1, 2011 16:34
Show Gist options
  • Save jos3000/806109 to your computer and use it in GitHub Desktop.
Save jos3000/806109 to your computer and use it in GitHub Desktop.
Lawnchair.prototype.allKeys = function(callback) {this.adaptor.allKeys(callback)},
WebkitSQLiteAdaptor.prototype.allKeys = function(callback) {
var cb = this.terseToVerboseCallback(callback);
var that = this;
this.db.transaction(function(t) {
var sql = "SELECT id FROM " + that.table + " ORDER BY timestamp DESC";
t.executeSql(sql, [], function(tx, results) {
if (results.rows.length == 0 ) {
cb([]);
} else {
var r = [];
for (var i = 0, l = results.rows.length; i < l; i++) {
r.push(results.rows.item(i).id);
}
cb(r);
}
},
that.onError);
});
};
Lawnchair.prototype.multiget = function(keys, callback) {this.adaptor.multiget(keys, callback)},
WebkitSQLiteAdaptor.prototype.multiget = function(keys, callback) {
var cb = this.terseToVerboseCallback(callback);
var that = this;
this.db.transaction(function(t) {
var v = [];
for(var i=0; i<keys.length; i++) v.push('?');
var sql = "SELECT * FROM " + that.table + " WHERE id IN ("+v.join(',')+")";
t.executeSql(sql, keys, function(tx, results) {
if (results.rows.length == 0 ) {
cb([]);
} else {
var r = [];
for (var i = 0, l = results.rows.length; i < l; i++) {
var raw = results.rows.item(i).value;
var obj = that.deserialize(raw);
obj.key = results.rows.item(i).id;
r[keys.indexOf(obj.key)] = obj;
}
cb(r);
}
},
that.onError);
});
};
@brianleroux
Copy link

hey man, I'm working on it... new release coming very soon and both these ideas are in there. stay tuned!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment