Skip to content

Releases: nalgeon/sqlean

0.28.1

06 Feb 21:22

Choose a tag to compare

fileio: fix unicode filenames on Windows by @MVV90

0.28.0

01 Sep 07:49

Choose a tag to compare

Added xxHash, a very fast non-cryptographic hash algorithm, to the crypto extension.

Changed the SHA2 implementation.

All extensions are now built with the -O3 optimization level.

⚠️ Renamed build artifacts:

  • sqlean-linux-x86.zipsqlean-linux-x64.zip
  • sqlean-macos-x86.zipsqlean-macos-x64.zip

⚠️ Dropped support for 32-bit Windows.

0.27.4

30 Aug 11:55

Choose a tag to compare

Made the time and uuid extensions compatible with Android.

0.27.3

29 Aug 04:22

Choose a tag to compare

Made the time and uuid extensions compatible with POSIX systems that don't have timespec_get but do have clock_gettime.

0.27.2

02 May 03:40

Choose a tag to compare

Nothing fancy, just some handy improvements and nice bug fixes:

Huge thanks to all Sqlean contributors!

0.27.1

27 Aug 16:02

Choose a tag to compare

This release adds the time extension to the single-file sqlean bundle.

0.27.0

08 Aug 10:12

Choose a tag to compare

This release introduces the new time extension — a structured, high-precision date/time API with a rich set of functions from working with Unix time to time comparison and arithmetic to truncation and rounding.

Creating time values:

time_now()
time_date(year, month, day[, hour, min, sec[, nsec[, offset_sec]]])

Extracting time fields:

time_get_year(t)
time_get_month(t)
time_get_day(t)
time_get_hour(t)
time_get_minute(t)
time_get_second(t)
time_get_nano(t)
time_get_weekday(t)
time_get_yearday(t)
time_get_isoyear(t)
time_get_isoweek(t)
time_get(t, field)

Unix time:

time_unix(sec[, nsec])
time_milli(msec)
time_micro(usec)
time_nano(nsec)
time_to_unix(t)
time_to_milli(t)
time_to_micro(t)
time_to_nano(t)

Time comparison:

time_after(t, u)
time_before(t, u)
time_compare(t, u)
time_equal(t, u)

Time arithmetic:

time_add(t, d)
time_add_date(t, years[, months[, days]])
time_sub(t, u)
time_since(t)
time_until(t)

Rounding:

time_trunc(t, field)
time_trunc(t, d)
time_round(t, d)

Formatting:

time_fmt_iso(t[, offset_sec])
time_fmt_datetime(t[, offset_sec])
time_fmt_date(t[, offset_sec])
time_fmt_time(t[, offset_sec])
time_parse(s)

Duration constants:

dur_ns()
dur_us()
dur_ms()
dur_s()
dur_m()
dur_h()

See the docs for full details.

0.26.0

03 Aug 14:50

Choose a tag to compare

This release introduces consistent naming. All functions are now prefixed with the module name:

  • crypto_md5,
  • fuzzy_hamming,
  • stats_median,
  • etc.

⚠️ The old names are retained for now for backward compatibility, but may be removed in future releases.

0.25.0

01 Aug 22:42

Choose a tag to compare

Unicode-aware case functions in the text extension. Powered by stc from @tylov. Thank you, Tyge!

⚠️ The unicode extension is now deprecated and will be removed in future releases. Use the text extension instead.

text_upper

Transforms a string to upper case.

select text_upper('cómo estás');
-- CÓMO ESTÁS

text_lower

Transforms a string to lower case.

select text_lower('CÓMO ESTÁS');
-- cómo estás

text_title

Transforms a string to title case.

select text_title('cómo estás');
-- Cómo Estás

text_like

Reports whether a string matches a pattern using the LIKE syntax.

select text_like('cóm_ está_', 'CÓMO ESTÁS');
-- 1

select text_like('ça%', 'Ça roule');
-- 1

text_nocase

The text_nocase collating sequence compares strings without regard to case.

select 1 where 'cómo estás' = 'CÓMO ESTÁS';
-- (null)

select 1 where 'cómo estás' = 'CÓMO ESTÁS' collate text_nocase;
-- 1

0.24.2

25 Jul 09:20

Choose a tag to compare

Escape quotes in define's undefine to prevent possible SQL injection, courtesy of @sivukhin. Thank you, Nikita!