diff options
author | Ted Trask <ttrask01@yahoo.com> | 2010-04-05 15:37:51 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2010-04-05 15:37:51 +0000 |
commit | 634d462012974596104a8febbb892515ae557250 (patch) | |
tree | 86a11df7efb432b32449b1cffc1bdf9d5a15ce3f /did-model.lua | |
parent | 06867f0d8d63db99b9aaa147158314bd588510b0 (diff) | |
download | acf-did-634d462012974596104a8febbb892515ae557250.tar.bz2 acf-did-634d462012974596104a8febbb892515ae557250.tar.xz |
Added listdefs function to speed up process when only need dids.
Diffstat (limited to 'did-model.lua')
-rw-r--r-- | did-model.lua | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/did-model.lua b/did-model.lua index c9256c8..1a2db96 100644 --- a/did-model.lua +++ b/did-model.lua @@ -236,6 +236,20 @@ local listdefinitions = function(did, identification, description, department) return getdefinitionentries(sql) end +local listdefs = function(did, identification, description, department) + local sql = "SELECT did FROM definition"..generatewhereclause(did, nil, identification, description, department).." ORDER BY did" + local entries = {} + cur = assert (con:execute(sql)) + row = cur:fetch ({}, "a") + while row do + entries[#entries+1] = row.did + row = cur:fetch (row, "a") + end + -- close everything + cur:close() + return entries +end + local listexchanges = function() local entries = {} local sql = "SELECT substring(did from 1 for 6) AS exchange FROM definition GROUP BY exchange ORDER BY exchange" @@ -580,6 +594,7 @@ end local describechange = function(olddef, newdef) local changes = {} + olddef = olddef or {} for name,val in pairs(newdef) do if name ~= "did" and name ~= "rules" and val ~= (olddef[name] or "") then changes[#changes+1] = name.." from '"..(olddef[name] or "").."' to '"..val.."'" @@ -688,10 +703,7 @@ function searchdefinitions(did) local result = {} local res, err = pcall(function() local connected = databaseconnect(DatabaseUser) - local list = listdefinitions("^"..stripdash(did)) - for i,d in ipairs(list) do - result[#result+1] = adddash(d.did) - end + result = listdefs(did) if connected then databasedisconnect() end end) if not res then @@ -811,7 +823,7 @@ function deletedefinition(did) databasedisconnect() local pw = format.parse_ini_file(fs.read_file(configfile) or "", "", "password") or "" databaseconnect(DatabaseOwner, pw) - local def = listdefinitions(did) + local def = listdefs(did) if #def == 1 then deletedefinitionentry(did) result.value = "DID Number Deleted" @@ -880,9 +892,9 @@ function publishdefinition(did) local res, err = pcall(function() databasedisconnect() databaseconnect(DatabaseOwner, pw) - local dids = listdefinitions() + local dids = listdefs() for i,d in ipairs(dids) do - if d.did == did then + if d == did then local rules = getdailyentry(did) publishrules(did, rules) errtxt = nil @@ -906,11 +918,11 @@ function publishalldefinitions() local res, err = pcall(function() databasedisconnect() databaseconnect(DatabaseOwner, pw) - local dids = listdefinitions() + local dids = listdefs() local time = os.time() - for i,d in ipairs(dids) do - local rules = getdailyentry(d.did, time) - publishrules(d.did, rules) + for i,did in ipairs(dids) do + local rules = getdailyentry(did, time) + publishrules(did, rules) end result = "Published "..#dids.." DID rules" logme("Publishing "..#dids.." DIDs took "..os.time()-time.." seconds") |