From b7a4c89fc8195d64cd9eaa5622627f23c72f6286 Mon Sep 17 00:00:00 2001 From: Paul Kulchenko Date: Fri, 20 Oct 2023 22:31:59 -0700 Subject: [PATCH] Add database readonly check to redbean sqlite --- tool/net/lsqlite3.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tool/net/lsqlite3.c b/tool/net/lsqlite3.c index 5bf636c53..049f40042 100644 --- a/tool/net/lsqlite3.c +++ b/tool/net/lsqlite3.c @@ -920,6 +920,15 @@ static int pusherrstr(lua_State *L, char *str) { return 2; } +static int db_readonly(lua_State *L) { + sdb *db = lsqlite_checkdb(L, 1); + const char *zDb = luaL_optstring(L, 2, "main"); + int res = sqlite3_db_readonly(db->db, zDb); + if (res == -1) return pusherrstr(L, "unknown (not attached) database name"); + lua_pushboolean(L, res); + return 1; +} + static int db_wal_checkpoint(lua_State *L) { sdb *db = lsqlite_checkdb(L, 1); int eMode = luaL_optinteger(L, 2, SQLITE_CHECKPOINT_PASSIVE); @@ -2612,6 +2621,7 @@ static const struct { static const luaL_Reg dblib[] = { {"isopen", db_isopen }, + {"readonly", db_readonly }, {"last_insert_rowid", db_last_insert_rowid }, {"changes", db_changes }, {"total_changes", db_total_changes },