The ultimate set of SQLite extensions
Linux ARM build (sqlean-linux-arm64.zip), courtesy of @flaviomartins. Thank you, Flavio!
Print the actual error message when regexp compilation fails (#104).
Before:
select regexp_substr('abc5xyz', 'a(?<=\D*)\d');
-- Runtime error: out of memory (7)
Now:
select regexp_substr('abc5xyz', 'a(?<=\D*)\d');
-- Runtime error: lookbehind assertion is not fixed length (offset 1)
Marked unicode functions as deterministic to allow their use in virtual columns (#109).
Update to the define extension from it's author @0x09:
This updates the
define
virtual table with fixes from sqlite-statement-vtab, including a potential vulnerability on platforms with uncommon integer sizes detailed in https://github.com/0x09/sqlite-statement-vtab/commit/400bea16a314bb3994c3912a6639f488af98e9e0
No functional changes. Fixed utf8_lookup
global symbol to facilitate sqlean.go (#92).
Huge thanks to @riyaz-ali for porting sqlean
to Go!
No functional changes. Recompiled Linux extensions on Ubuntu 20.04 instead of 22.04 to fix #90.
Disabled symlink
on Windows in the fileio extension.
Also, 0.21.5 is the first version of sqlean
available as Python and JavaScript packages! 🎉
Added the ipaddr extension to the single-file sqlean
bundle (except for Windows).
This release brings a single-file bundle containing all extensions from the main set:
sqlean.so
for Linuxsqlean.dll
for Windowssqlean.dylib
for macOSThe bundle loads like other extensions, e.g:
sqlite> .load ./sqlean
sqlite> select median(value) from generate_series(1, 99);
When loaded, it activates functions from all existing extensions (except ipaddr
, which does not work on Windows).
This release brings the new text extension — a rich set of string functions, from slice
, contains
and count
to split_part
, trim
and repeat
.
Provides 25 functions, many of which are postgres-compatible.
Substrings and slicing:
text_substring(str, start [,length])
text_slice(str, start [,end])
text_left(str, length)
text_right(str, length)
Search and match:
text_index(str, other)
text_last_index(str, other)
text_contains(str, other)
text_has_prefix(str, other)
text_has_suffix(str, other)
text_count(str, other)
Split and join:
text_split(str, sep, n)
text_concat(str, ...)
text_join(sep, str, ...)
text_repeat(str, count)
Trim and pad:
text_ltrim(str [,chars])
text_rtrim(str [,chars])
text_trim(str [,chars])
text_lpad(str, length [,fill])
text_rpad(str, length [,fill])
Other modifications:
text_replace(str, old, new [,count])
text_translate(str, from, to)
text_reverse(str)
String properties:
text_length(str)
text_size(str)
text_bitsize(str)