equal
deleted
inserted
replaced
45 end |
45 end |
46 end |
46 end |
47 |
47 |
48 do -- process options to get a db connection |
48 do -- process options to get a db connection |
49 params = params or { driver = "SQLite3" }; |
49 params = params or { driver = "SQLite3" }; |
50 |
50 |
51 if params.driver == "SQLite3" then |
51 if params.driver == "SQLite3" then |
52 params.database = resolve_relative_path(prosody.paths.data or ".", params.database or "prosody.sqlite"); |
52 params.database = resolve_relative_path(prosody.paths.data or ".", params.database or "prosody.sqlite"); |
53 end |
53 end |
54 |
54 |
55 assert(params.driver and params.database, "Both the SQL driver and the database need to be specified"); |
55 assert(params.driver and params.database, "Both the SQL driver and the database need to be specified"); |
56 |
56 |
57 assert(connect()); |
57 assert(connect()); |
58 end |
58 end |
59 |
59 |
60 local function getsql(sql, ...) |
60 local function getsql(sql, ...) |
61 if params.driver == "PostgreSQL" then |
61 if params.driver == "PostgreSQL" then |
68 if not stmt then module:log("error", "QUERY FAILED: %s %s", err, debug.traceback()); return nil, err; end |
68 if not stmt then module:log("error", "QUERY FAILED: %s %s", err, debug.traceback()); return nil, err; end |
69 -- run query |
69 -- run query |
70 local ok, err = stmt:execute(...); |
70 local ok, err = stmt:execute(...); |
71 if not ok and not test_connection() then error("connection failed"); end |
71 if not ok and not test_connection() then error("connection failed"); end |
72 if not ok then return nil, err; end |
72 if not ok then return nil, err; end |
73 |
73 |
74 return stmt; |
74 return stmt; |
75 end |
75 end |
76 local function setsql(sql, ...) |
76 local function setsql(sql, ...) |
77 local stmt, err = getsql(sql, ...); |
77 local stmt, err = getsql(sql, ...); |
78 if not stmt then return stmt, err; end |
78 if not stmt then return stmt, err; end |