Comparison

plugins/mod_storage_sql2.lua @ 6736:4aee55c0cc5c

mod_storage_sql2: Add some comments
author Matthew Wild <mwild1@gmail.com>
date Wed, 24 Jun 2015 22:54:17 +0100
parent 6532:a966efeb6cb3
child 6737:9f932a31eeba
comparison
equal deleted inserted replaced
6735:b553a30620b2 6736:4aee55c0cc5c
190 end 190 end
191 end 191 end
192 return true; 192 return true;
193 end 193 end
194 194
195 --- Key/value store API (default store type)
196
195 local keyval_store = {}; 197 local keyval_store = {};
196 keyval_store.__index = keyval_store; 198 keyval_store.__index = keyval_store;
197 function keyval_store:get(username) 199 function keyval_store:get(username)
198 user,store = username,self.store; 200 user,store = username,self.store;
199 local ok, result = engine:transaction(keyval_store_get); 201 local ok, result = engine:transaction(keyval_store_get);
211 return engine:select("SELECT DISTINCT `user` FROM `prosody` WHERE `host`=? AND `store`=?", host, self.store); 213 return engine:select("SELECT DISTINCT `user` FROM `prosody` WHERE `host`=? AND `store`=?", host, self.store);
212 end); 214 end);
213 if not ok then return ok, result end 215 if not ok then return ok, result end
214 return iterator(result); 216 return iterator(result);
215 end 217 end
218
219 --- Archive store API
216 220
217 local archive_store = {} 221 local archive_store = {}
218 archive_store.__index = archive_store 222 archive_store.__index = archive_store
219 function archive_store:append(username, key, when, with, value) 223 function archive_store:append(username, key, when, with, value)
220 if value == nil then -- COMPAT early versions 224 if value == nil then -- COMPAT early versions
340 local stores = { 344 local stores = {
341 keyval = keyval_store; 345 keyval = keyval_store;
342 archive = archive_store; 346 archive = archive_store;
343 }; 347 };
344 348
349 --- Implement storage driver API
350
351 -- FIXME: Some of these operations need to operate on the archive store(s) too
352
345 local driver = {}; 353 local driver = {};
346 354
347 function driver:open(store, typ) 355 function driver:open(store, typ)
348 local store_mt = stores[typ or "keyval"]; 356 local store_mt = stores[typ or "keyval"];
349 if store_mt then 357 if store_mt then