This SQLite extension embeds a Lua interpeter into SQLite, so you can execute Lua code in your SQL statements.
select lua('print "hi"');
select lua('return math.random(1, 10)');
Since the 'return' is annoying to type and is easy to forget, the extension automatically prepends a 'return' if it doesn't result in a syntax error:
select lua('math.random(1, 10)') -- same as above
Returning values of a type that doesn't have a sensible equivalent in SQLite (tables, functions, userdata, and coroutines) causes an error.
Returned booleans are converted into integers.
Values passed after the Lua statement are passed into the Lua chunk via a table named arg:
select lua('arg[1] ** 2', value) from values; -- squares values
I may introduce a "nicer" syntax for this in the future.