Merge 0.10->trunk
authorKim Alvefur <zash@zash.se>
Mon, 21 Mar 2016 13:52:43 +0000 (14:52 +0100)
committerKim Alvefur <zash@zash.se>
Mon, 21 Mar 2016 13:52:43 +0000 (14:52 +0100)
plugins/mod_storage_sql.lua
util/sql.lua

index 70f1ab83c3a2f40a91f201821a00f7cb21f55ac8..4f46b3f662a5ef2a199ea4cad07240c454ac60da 100644 (file)
@@ -82,16 +82,14 @@ local function keyval_store_set(data)
                local extradata = {};
                for key, value in pairs(data) do
                        if type(key) == "string" and key ~= "" then
-                               local t, value = serialize(value);
-                               assert(t, value);
+                               local t, value = assert(serialize(value));
                                engine:insert("INSERT INTO `prosody` (`host`,`user`,`store`,`key`,`type`,`value`) VALUES (?,?,?,?,?,?)", host, user or "", store, key, t, value);
                        else
                                extradata[key] = value;
                        end
                end
                if next(extradata) ~= nil then
-                       local t, extradata = serialize(extradata);
-                       assert(t, extradata);
+                       local t, extradata = assert(serialize(extradata));
                        engine:insert("INSERT INTO `prosody` (`host`,`user`,`store`,`key`,`type`,`value`) VALUES (?,?,?,?,?,?)", host, user or "", store, "", t, extradata);
                end
        end
@@ -197,7 +195,7 @@ function archive_store:append(username, key, value, when, with)
                else
                        key = uuid.generate();
                end
-               local t, value = serialize(value);
+               local t, value = assert(serialize(value));
                engine:insert("INSERT INTO `prosodyarchive` (`host`, `user`, `store`, `when`, `with`, `key`, `type`, `value`) VALUES (?,?,?,?,?,?,?,?)", host, user or "", store, when, with, key, t, value);
                return key;
        end);
index dcf665fb0f2d01500c6ac3352f9d7e6b1c85438c..f64e8e10a141c4cc0a9583bfa0e6e0819e589a0f 100644 (file)
@@ -102,11 +102,12 @@ function engine:connect()
        local params = self.params;
        assert(params.driver, "no driver")
        log("debug", "Connecting to [%s] %s...", params.driver, params.database);
-       local dbh, err = DBI.Connect(
+       local ok, dbh, err = pcall(DBI.Connect,
                params.driver, params.database,
                params.username, params.password,
                params.host, params.port
        );
+       if not ok then return ok, dbh; end
        if not dbh then return nil, err; end
        dbh:autocommit(false); -- don't commit automatically
        self.conn = dbh;