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
************************************************************************/
