util.sql: Do lazy fetching of affected/rowcount
authorKim Alvefur <zash@zash.se>
Fri, 12 Jul 2013 15:44:30 +0000 (17:44 +0200)
committerKim Alvefur <zash@zash.se>
Fri, 12 Jul 2013 15:44:30 +0000 (17:44 +0200)
util/sql.lua

index 771df7aae0ee6eed49e21e2a02d647f3408ce0dc..63c399ff1d027ab347255381cb32128bf6891dfa 100644 (file)
@@ -177,8 +177,8 @@ function engine:execute(sql, ...)
 end
 
 local result_mt = { __index = {
-       affected = function(self) return self.__affected; end;
-       rowcount = function(self) return self.__rowcount; end;
+       affected = function(self) return self.__stmt:affected(); end;
+       rowcount = function(self) return self.__stmt:rowcount(); end;
 } };
 
 function engine:execute_query(sql, ...)
@@ -200,7 +200,7 @@ function engine:execute_update(sql, ...)
                prepared[sql] = stmt;
        end
        assert(stmt:execute(...));
-       return setmetatable({ __affected = stmt:affected(), __rowcount = stmt:rowcount() }, result_mt);
+       return setmetatable({ __stmt = stmt }, result_mt);
 end
 engine.insert = engine.execute_update;
 engine.select = engine.execute_query;