Comparison

util/sqlite3.lua @ 12848:ccb030d988ac

util.sqlite3: Skip prepared statements when no parameters are given Seems CREATE INDEX is unhappy as a prepared statement. Perhaps because the table has not been COMMIT-ed yet?
author Kim Alvefur <zash@zash.se>
date Mon, 01 Aug 2022 17:25:40 +0200
parent 12847:d6cdde74cd9b
child 12872:a20923f7d5fd
comparison
equal deleted inserted replaced
12847:d6cdde74cd9b 12848:ccb030d988ac
162 function engine:execute(sql, ...) 162 function engine:execute(sql, ...)
163 local success, err = self:connect(); 163 local success, err = self:connect();
164 if not success then return success, err; end 164 if not success then return success, err; end
165 local prepared = self.prepared; 165 local prepared = self.prepared;
166 166
167 if select('#', ...) == 0 then
168 local ret = self.conn:exec(sql);
169 if ret ~= lsqlite3.OK then
170 local err = sqlite_errors.new(err);
171 err.text = self.conn:errmsg();
172 return err;
173 end
174 return true;
175 end
176
167 local stmt = prepared[sql]; 177 local stmt = prepared[sql];
168 if not stmt then 178 if not stmt then
169 local err; 179 local err;
170 stmt, err = self.conn:prepare(sql); 180 stmt, err = self.conn:prepare(sql);
171 if not stmt then 181 if not stmt then