Various updates, mostly around Lua:
Compile Lua as C++. When Lua is compiled as C, it uses setjmp/longjmp
for error handling, resulting in failure to unwind intermediate stack
frames. Trying to ensure no objects with non-trivial destructors are in
scope when raising a Lua error is error-prone. In particular,
converting an exception to a Lua error becomes convoluted, and raising a
Lua error from a constructor is effectively impossible.
Updated Lua to 5.4.4 - this includes a brand-new garbage collector
implementation with better performance. The main thing removed is the
deprecated bitlib.
Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes
a number of issues, including not correctly handling errors when Lua is
built as C++.
Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic
links on Windows, as well as Lua 5.4 compatibility.
Updated LuaSQLite3 to version 0.9.5 - this fixes issues in
multi-threaded environments, as well as Lua 5.4 compatibility.
Fixed double-free after attempting to construct a debugger expression
from Lua with an invalid string, and exposed expression error to Lua in
a better way.
Added warning level print function to Lua.
Fixed saving cheats with shift operators in expressions, although this
code isn't actually used as there's no cheat editor.
2023-03-06 15:39:42 +01:00
|
|
|
2018-June-30
|
|
|
|
|
|
|
|
Version "0.9.5"
|
|
|
|
|
|
|
|
Since the "0.9.4-devel" release of this Lua library...
|
|
|
|
|
|
|
|
Lua 5.4 compatibility (backward compatible with Lua 5.3, 5.2, and Lua 5.1.5).
|
|
|
|
|
|
|
|
2016-November-13
|
2016-11-07 16:12:06 +01:00
|
|
|
|
|
|
|
Version "0.9.4"
|
|
|
|
|
|
|
|
Since the "0.9.3-devel" release of this Lua library...
|
|
|
|
|
Various updates, mostly around Lua:
Compile Lua as C++. When Lua is compiled as C, it uses setjmp/longjmp
for error handling, resulting in failure to unwind intermediate stack
frames. Trying to ensure no objects with non-trivial destructors are in
scope when raising a Lua error is error-prone. In particular,
converting an exception to a Lua error becomes convoluted, and raising a
Lua error from a constructor is effectively impossible.
Updated Lua to 5.4.4 - this includes a brand-new garbage collector
implementation with better performance. The main thing removed is the
deprecated bitlib.
Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes
a number of issues, including not correctly handling errors when Lua is
built as C++.
Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic
links on Windows, as well as Lua 5.4 compatibility.
Updated LuaSQLite3 to version 0.9.5 - this fixes issues in
multi-threaded environments, as well as Lua 5.4 compatibility.
Fixed double-free after attempting to construct a debugger expression
from Lua with an invalid string, and exposed expression error to Lua in
a better way.
Added warning level print function to Lua.
Fixed saving cheats with shift operators in expressions, although this
code isn't actually used as there's no cheat editor.
2023-03-06 15:39:42 +01:00
|
|
|
Add functions db:get_ptr() and sqlite3.open_ptr(db_ptr) to pass a db connection between threads.
|
|
|
|
Add function db:db_filename(name).
|
|
|
|
Update sqlite3_open to sqlite3_open_v2 and add open flags constants.
|
|
|
|
Thanks to Wolfgang Oertl!
|
|
|
|
|
2016-11-07 16:12:06 +01:00
|
|
|
Added second module 'lsqlite3complete' that statically links sqlite.c. Continue to use
|
|
|
|
'lsqlite3' for dynamic linking to 'sqlite3.so' or 'sqlite3.dll'.
|
|
|
|
|
|
|
|
Added Online Backup API
|
|
|
|
|
|
|
|
Added unit tests for NULs in BLOBs and TEXT columns. (Refute defect report.)
|
|
|
|
|
|
|
|
Use lua_createtable() in lieu of lua_newtable() when number of table elements is known.
|
|
|
|
This will improve performance.
|
|
|
|
Thanks to Egil Hjelmeland for the suggestion.
|
|
|
|
|
|
|
|
2015-January-06
|
|
|
|
|
|
|
|
Version "0.9.3"
|
|
|
|
|
|
|
|
Since the "0.9.2-devel" release of this Lua library...
|
|
|
|
|
|
|
|
Added lversion() function to report library version, "0.9.3".
|
|
|
|
|
|
|
|
Added db:load_extension() function to support SQLite extension libraries.
|
|
|
|
|
|
|
|
Added some tests for new funcitons and Lua 5.3 64-bit integers in the database.
|
|
|
|
|
|
|
|
Fixed longstanding bug: if db is no longer live, it is auto-closed by gc, but there may still
|
|
|
|
be live prepared statements. Executing these statements would produce an error. Prepared
|
|
|
|
statements now hold a reference to the db to prevent it from being collected while the prepared
|
|
|
|
statement is live. Manually closing the db will continue to finalize the statements, as before.
|
|
|
|
|
|
|
|
Fixed bug in PUSH_INT64 macro for Lua < 5.3 introduced in version 0.9.2-devel.
|
|
|
|
|
|
|
|
2015-January-04
|
|
|
|
|
|
|
|
Version "0.9.2-devel"
|
|
|
|
|
|
|
|
Since the "0.9.1-devel" release of this Lua library...
|
|
|
|
|
|
|
|
Lua 5.3 compatibility (backward compatible with Lua 5.2 and Lua 5.1.5).
|
|
|
|
|
|
|
|
Finally uses sqlite3_prepare_v2() to preserve detailed error codes in statement stepping
|
|
|
|
|
|
|
|
With Lua 5.3, 64-bit integer database values are supported for reading and writing columns;
|
|
|
|
all other values, e.g., status and counts, are now also returned as integers. The only use of
|
|
|
|
doubles is for values of that type read from or written to columns.
|
|
|
|
|
|
|
|
Added support for stmt:last_insert_rowid() as requested
|
|
|
|
|
|
|
|
2013-April-08
|
|
|
|
|
|
|
|
Version "0.9.1-devel"
|
|
|
|
|
|
|
|
Since the "0.9-devel" release of this Lua library...
|
|
|
|
|
|
|
|
Updated examples and tests from Dmitry Pashkevich.
|
|
|
|
|
|
|
|
2013-March-30
|
|
|
|
|
|
|
|
Version "0.9-devel"
|
|
|
|
|
|
|
|
Since the "0.8-devel" release of this Lua library...
|
|
|
|
|
|
|
|
Updates for Lua 5.2 (backward compatible with Lua 5.1.5).
|
|
|
|
|
|
|
|
Uses lunitx-0.6-1.rockspec for Lua 5.2 compatible testing.
|
|
|
|
|
|
|
|
Added sqlite3.update_hook(), sqlite3.commit_hook() and
|
|
|
|
sqlite3.rollback_hook() at the suggesiton of Dmitry Pashkevich, who
|
|
|
|
also contributed examples and some testing assistance on this release.
|
|
|
|
|
|
|
|
Converted Makefile to depend on luarocks.
|
|
|
|
|
|
|
|
2011-January-10
|
|
|
|
|
|
|
|
Version "0.8-devel"
|
|
|
|
|
|
|
|
Since the "0.7-devel" release of this Lua library...
|
|
|
|
|
|
|
|
Added a missing lua_pop in dbvm_bind_names()
|
|
|
|
Now dbvm_bind_index() binds a boolean as 1 or 0
|
|
|
|
Thanks to Ronny Dierckx
|
|
|
|
|
|
|
|
Since the "0.6-devel" release of this Lua library...
|
|
|
|
|
|
|
|
Made db_exec_callback thread safe.
|
|
|
|
Thanks to Grant Robinson.
|
|
|
|
|
|
|
|
Bug fix in dbvm_bind_index error message.
|
|
|
|
Thanks to Dirk Feytons.
|
|
|
|
|
|
|
|
Added a few casts and changed a few comments to ANSI C style.
|
|
|
|
Thanks to Corey Stup.
|
|
|
|
|
|
|
|
Note that Thomas Lauer has a patch referenced on LuaForge
|
|
|
|
to make collations thread safe(r). This issue is still
|
|
|
|
under investigation: the patch has wide ranging affect
|
|
|
|
and to me it appears unsafe wrt GC. The whole issue of
|
|
|
|
thread references in callbacks deserves thorough review.
|
|
|
|
A new design that places referenced values in the upvalues
|
|
|
|
of the callback function (rather than in the registry of
|
|
|
|
the function defining thread) would be preferable. It may
|
|
|
|
also make sense to keep thread references in a shared
|
|
|
|
environment of the library's functions, and/or require
|
|
|
|
all callbacks to be defined in the main lua state (so
|
|
|
|
they the state is guaranteed to outlive other threads).
|
|
|
|
|
|
|
|
-=-
|
|
|
|
|
|
|
|
2007-August-15 e
|
|
|
|
|
|
|
|
Version "0.6-devel"
|
|
|
|
|
|
|
|
Since the "0.5-devel" release of this Lua library...
|
|
|
|
|
|
|
|
Tested with SQLite 3.4.2
|
|
|
|
|
|
|
|
Added some documentation.
|
|
|
|
|
|
|
|
Thanks to Thomas Lauer...
|
|
|
|
|
|
|
|
Moved line 525 ("luaL_checktype(L, 2, LUA_TTABLE);")
|
|
|
|
below the declarations to eliminate non-gcc compiler errors.
|
|
|
|
|
|
|
|
Added create-collation, and associated test case.
|
|
|
|
|
|
|
|
-=-
|
|
|
|
|
|
|
|
2006-October-02 e
|
|
|
|
|
|
|
|
Since the "0.1-devel" release of this Lua library...
|
|
|
|
- updated for Lua 5.1
|
|
|
|
- provide automatic re-preparation of queries after schema changes
|
|
|
|
- made prepared statements with bindings work with for-loops
|
|
|
|
- added some compatibility names
|
|
|
|
- added many test cases, and ported Mike Roth's tests and examples
|
|
|
|
|
|
|
|
-=-
|
|
|
|
|
|
|
|
Below is a header comment from the 2004 "0.1" version of the library...
|
|
|
|
|
|
|
|
/************************************************************************
|
|
|
|
$Id: lsqlite3.c,v 1.3 2004/09/05 17:50:32 tngd Exp $
|
|
|
|
|
|
|
|
To consider:
|
|
|
|
------------
|
|
|
|
|
|
|
|
EXPERIMENTAL APIs
|
|
|
|
|
|
|
|
* sqlite3_progress_handler (implemented)
|
|
|
|
* sqlite3_commit_hook
|
|
|
|
|
|
|
|
TODO?
|
|
|
|
|
|
|
|
* sqlite3_create_collation
|
|
|
|
|
|
|
|
Changes:
|
|
|
|
04-09-2004
|
|
|
|
----------
|
|
|
|
* changed second return value of db:compile to be the rest of the
|
|
|
|
sql statement that was not processed instead of the number of
|
|
|
|
characters of sql not processed (situation in case of success).
|
|
|
|
* progress callback register function parameter order changed.
|
|
|
|
number of opcodes is given before the callback now.
|
|
|
|
|
|
|
|
29-08-2004 e
|
|
|
|
------------
|
|
|
|
* added version() (now supported in sqlite 3.0.5)
|
|
|
|
* added db:errmsg db:errcode db:total_changes
|
|
|
|
* rename vm:get_column to vm:get_value
|
|
|
|
* merge in Tiago's v1.11 change in dbvm_tostring
|
|
|
|
|
|
|
|
23-06-2004 e
|
|
|
|
------------
|
|
|
|
* heavily revised for SQLite3 C API
|
|
|
|
* row values now returned as native type (not always text)
|
|
|
|
* added db:nrows (named rows)
|
|
|
|
* added vm:bind_blob
|
|
|
|
* added vm:get_column
|
|
|
|
* removed encode_binary decode_binary (no longer needed or supported)
|
|
|
|
* removed version encoding error_string (unsupported in v 3.0.1 -- soon?)
|
|
|
|
|
|
|
|
09-04-2004
|
|
|
|
----------
|
|
|
|
* renamed db:rows to db:urows
|
|
|
|
* renamed db:prows to db:rows
|
|
|
|
|
|
|
|
* added vm:get_unames()
|
|
|
|
* added vm:get_utypes()
|
|
|
|
* added vm:get_uvalues()
|
|
|
|
|
|
|
|
08-04-2004
|
|
|
|
----------
|
|
|
|
* changed db:encoding() and db:version() to use sqlite_libencoding() and
|
|
|
|
sqlite_libversion()
|
|
|
|
|
|
|
|
* added vm:columns()
|
|
|
|
* added vm:get_named_types()
|
|
|
|
* added vm:get_named_values()
|
|
|
|
|
|
|
|
* added db:prows - like db:rows but returns a table with the column values
|
|
|
|
instead of returning multiple columns seperatly on each iteration
|
|
|
|
|
|
|
|
* added compatibility functions idata,iname,itype,data,type
|
|
|
|
|
|
|
|
* added luaopen_sqlite_module. allow the library to be loaded without
|
|
|
|
setting a global variable. does the same as luaopen_sqlite, but does not
|
|
|
|
set the global name "sqlite".
|
|
|
|
|
|
|
|
* vm:bind now also returns an error string in case of error
|
|
|
|
|
|
|
|
31-03-2004 - 01-04-2004
|
|
|
|
-----------------------
|
|
|
|
* changed most of the internals. now using references (luaL_ref) in
|
|
|
|
most of the places
|
|
|
|
|
|
|
|
* make the virtual machine interface seperate from the database
|
|
|
|
handle. db:compile now returns a vm handle
|
|
|
|
|
|
|
|
* added db:rows [for ... in db:rows(...) do ... end]
|
|
|
|
|
|
|
|
* added db:close_vm
|
|
|
|
|
|
|
|
* added sqlite.encode_binary and sqlite.decode_binary
|
|
|
|
|
|
|
|
* attempt to do a strict checking on the return type of the user
|
|
|
|
defined functions returned values
|
|
|
|
|
|
|
|
18-01-2004
|
|
|
|
----------
|
|
|
|
* add check on sql function callback to ensure there is enough stack
|
|
|
|
space to pass column values as parameters
|
|
|
|
|
|
|
|
03-12-2003
|
|
|
|
----------
|
|
|
|
* callback functions now have to return boolean values to abort or
|
|
|
|
continue operation instead of a zero or non-zero value
|
|
|
|
|
|
|
|
06-12-2003
|
|
|
|
----------
|
|
|
|
* make version member of sqlite table a function instead of a string
|
|
|
|
************************************************************************/
|