diff --git a/runner/lua/sqlite.lua b/runner/lua/sqlite.lua index 0a24190..a5a66fc 100644 --- a/runner/lua/sqlite.lua +++ b/runner/lua/sqlite.lua @@ -263,6 +263,21 @@ local connection_mt = { return results[1] end, + exists = function(self, table_name, where, params, ...) + if type(table_name) ~= "string" then + error("connection:exists: table_name must be a string", 2) + end + + local query = "SELECT 1 FROM " .. table_name + if where then + query = query .. " WHERE " .. where + end + query = query .. " LIMIT 1" + + local results = self:query(query, normalize_params(params, ...)) + return #results > 0 + end, + begin = function(self) return self:exec("BEGIN TRANSACTION") end,