Releases of SQLite Utilities

3.0.4 current version, released on: 2023-05-01

  • fixed: missing dark mode support for all message boxes

3.0.3 released on: 2023-05-01

  • fixed: possible crash while using the SQLite extension "define" - by disabling its caching and removing the relevant cache handling functions
  • fixed: crash while querying the virtual playlist table, after the number of playlists were changed
  • fixed: after changing the media library table or the playlist table in the preferences, the OK button needed to be pressed twice
  • fixed: adding a new column to the playlist table was not handled properly in certain cases
  • fixed: cutting the preferences pages for media library table and playlist table with DPI scales > 100%

3.0.2 released on: 2023-04-22

fixed: Wrong null value handling for certain numeric fields

3.0.1 released on: 2023-04-22

  • fixed: Possible crash during reading meta data.

3.0.0 released on: 2023-04-22

  • added: dark mode support
  • added: possibility to activate the SQLite console from the library viewer preferences section
  • added: added file_created and file_attributes to the default columns for the virtual tables
  • added: some maintenance scripts
  • fixed: wrong row limit exceeded message in the console
  • fixed: virtual table materialization needed an application restart after a database lock
  • fixed: fallback/transform value was wrongly written as a lookup value in certain cases
  • fixed: "Copy all" in the SQLite console didn't work properly after something was already copied before
  • fixed: wrong handling of tag value fields for multivalue lookup fields
  • fixed: The structure of the relevant lookup tables were not updated on changing the lookup table for a SQLite tag
  • fixed: The values of a lookup table column got last after removing this column
  • fixed: materializing the media library didn't properly work while moving files inside the library from one HDD to another in case user defined unique indexes were present
  • fixed: unusued lookup values where not deleted anymore
  • fixed: no default values for the virtual tables were added automatically on a fresh installation
  • changed: metadb access optimizations for foobar2000 v2
  • changed: the SQLite eval extension is now part of the define extension
  • changed: using SQLite tags trailing empty tag values are not removed anymore for non-empty multivalue tags
  • changed: define several extension functions as deterministic functions for allowing them to be used in indexes
  • changed: when using the capitalize() SQL function roman numbers are now also properly detected inside parenthesis or other special characters
  • other: foobar2000 2.0+ is now required
  • other: upgraded SQLite to version 3.41.2
  • other: upgraded some SQLite 3rdparty extensions to their latest version
  • other: compiled with SDK-2023-04-18
  • other: 32bit and 64bit versions are available

2.1.5 released on: 2022-07-07

  • fixed: crash when trying to open a corrupt user database
  • fixed: Changing the advanced option for roman numbers below a defined value was reset to default after application restart
  • fixed: possible crashes in certain cases
  • fixed: The row limit exceeded message was not shown in the console anymore
  • fixed: A transformed overwritten lookup value was written to the lookup table on subsequent unrelated tag updates
  • changed: Minor status message adjustments in the SQLite console
  • changed: set default value for the advanced option for roman numbers below a defined value to 50
  • other: upgraded SQLite to version 3.39.0

2.1.4 released on: 2022-05-09

  • fixed: Roman numbers were not processed properly anymore by the capitalize() db function

2.1.3 released on: 2022-05-08

  • fixed: wrong original tag values were shown on the details tab of the properties dialog after applying "Undo last SQLite tag change"
  • fixed: adding a column defnition for the virtual tables screwed up the column order on the preferences page
  • other: changed component display name to "SQLite Utilities"
  • other: upgraded SQLite to version 3.38.5

2.1.1 released on: 2022-03-24

  • fixed: possible crash on shutting down the application
  • fixed: all but the first column header were missing, if the whole result content in the SQLite console is copied
  • changed: move the initializationo of some database tables to the application start to avoid issues with running the initialization later

2.1.0 released on: 2022-03-20

  • maybe fixed: possible crash on shutting down the application
  • fixed: add missing column header for the first column, if the whole result content in the SQLite console is copied
  • fixed: the current directory was changed, when opening a file dialog SQLite console dialog
  • fixed: the relevant help pages couldn't be opened from the preferences dialog
  • fixed: wrong encoding was used when loading utf-8 files without BOM in the query node dialog
  • fixed: add missing uint extension description in the documentation
  • fixed: after showing an error dialog in the SQLite console, closing the error dialog and then the SQL console, causes foobar2000 to be not the active window anymore
  • fixed: the headers in the SQLite console were not updated, if the number of columns for two consecutive queries were the same
  • changed: the value of a cell in the result list of the SQLite console is not limited to 64k anymore
  • changed: adjust logging output
  • added: advanced options to disable the shipped SQLite extensions individually
  • added: additional sqlite extensions: array, besttype, closure, crypto, dbdump, define, envfuncs, isodate, math_funcs, math2, memstat, more_str_funcs, pivot_vtab, stats, stats2, stmt, text, vsv, xml_to_json
  • other: added missing license information for rapidjson
  • other: fix documentation

2.0.0 released on: 2022-03-13

  • breaking change: the usage of the metadb_handle pseudo column has been replaced by the actual file path and subsong index, which affects the following functionalities:
    • the function tf requires path and optionally subsong as the first parameter(s) instead of metadb_handle as the first parameter and it's not restricted anymore to be used only with a virtual table.
    • inserting entries into the virtual playlist table requires now also the path and optionally subsong to be used instead of the metadb_handle column
  • breaking change: the default for LIKE comparisons is now case sensitive
  • added: a column "playlist_id" for the Playlist table, which identifies a playlist uniquely independent from the playlist index
  • added: support for materializing the media library and the playlist virtual tables
  • added: support for reading and writing tags into the database in addition to or instead of the file
  • added: show a placeholder for null values in the result of the SQLite console
  • added: advanced option to set an interval after which a long running background query is reported and can be aborted
  • added: advanced option to set an interval after which a query is interrupted to allow UI refreshes and other checks
  • added: advanced option to set an interval after which a lock conflict is reported and the relevant query can be aborted
  • added: advanced option to set an interval after which a query will try to continue because of a lock conflict
  • added: advanced option to set the meta value separator
  • added: capitalize() function
  • added: json_find() function
  • added: fb2k_profile_path() function
  • added: console_log() function
  • added: updatable virtual tables (MediaLibraryUpdatable and PlaylistUpdatable) are now automatically created
  • added: uint collation
  • added: utf8 support for the regexp functions
  • added: support for updating replaygain values by using the updatable virtual tables
  • added: support for ORDER BY and LIMIT clauses for DELETE and UPDATE statements
  • added: possibility to copy a whole column from the SQLite console result
  • added: support for multiple instances of the SQLite console
  • added: support to minimize and maximize the SQLite console
  • added: argument type and range check for all internal custom SQL functions
  • changed: replaced the advanced option for showing execution times by different other options to control the logging behavior
  • changed: include the column headers, if the whole result content in the SQLite console is copied
  • changed: replaced the uuid extension from Ralph Schleicher by the one, which is provided by the SQLite source repository
  • changed: autosize columns in the result of the SQLite console
  • changed: remove the 30000 character limit for the SQLite console input
  • fixed: long running queries were not aborted on shutdown of foobar2000, which caused the program to hang until the query was finished
  • fixed: possible issues with improper handling of the multivalue separator for a tag
  • fixed: disallow some tag names and ignore invalid tag names when adding them as defaults to avoid issues with the creation of the virtual tables
  • fixed: when a query was running in the sql tree no query could've been executed in the sqlite console
  • fixed: clicking on "Configure" in the "Installed media library viewers" section of the "Media Library" preferences didn't work
  • fixed: queries with more than one occurance of the Playlist table returned incorrect results
  • fixed: deleting items from the virtual updatable playlist table by using a tag based filter removed arbitrary items.
  • fixed: the virtual playlist table column "item_has_focus" returned the wrong result
  • fixed: added missing check for invalid column names
  • fixed: possible crash during file operation from the SQLite console
  • other: enhance performance for updating the virtual tables
  • other: upgraded SQLite to version 3.38.1
  • other: upgraded all external extensions to their latest version, if available
  • other: compiled with SDK-2022-01-04
  • other: foobar2000 1.5+ is now required
  • other: windows runtime libraries need to be installed (automatically provided by foobar2000 1.4+)
  • other: Windows XP and Windows Vista are not supported anymore
  • other: fix documentation

1.1.0 released on: 2017-08-09

  • fixed: the strpos function caused an endless loop, if the search pattern was longer than the searched string
  • added: the modules csv, eval, fileio, series and totype from the sqlite source tree as autoloaded modules
  • added: the module md5 as autoloaded module
  • added: the module unicode as autoloaded module
  • added: the module uuid as autoloaded module
  • added: the modules damerau_levenshtein, levenshtein and metaphone as autoloaded modules
  • added: the custom functions regexp (which also implements the REGEXP operator of SQLite), regexp_replace, regexp_replace_first and regexp_search
  • added: the custom function strsortgroup
  • other: upgrade to SQLite 3.20.0


  • fixed: Using the round() function didn't work properly anymore
  • fixed: crash, if a column in a filter condition had a null value
  • other: upgrade to SQLite 3.19.1


  • fixed: a query on the MediaLibrary or Playlist virtual table, using colum entries containing double quotes in the where clause returned a wrong result
  • fixed: creating a new playlist with INSERT INTO for an updatable virtual table, didn't work after the playlist with the relevant name was deleted
  • fixed: links in the documentation where not relative
  • changed: use "SQLite Viewer playlist" instead of "SQL Tree playlist" as the default for inserting entries into a playlist
  • other: upgrade to SQLite 3.15.2


  • fixed: open the SQLite console from external didn't set the relevant SQL in the SQLite console, if the SQLite console was newly opened
  • fixed: subsequent calls of an SQL update statement caused a partial rerun of previous update statements


  • initial version, SQL functionality extracted from SQL Tree
  • fixed: two or more update statements on the virtual tables in a batch were executed in parallel instead of one after another in autocommit mode (outside transaction)
  • fixed: tracknumber was missing as default column for the virtual tables
  • added: STRG-A selects the whole content in the SQLite console
  • changed: Don't show an error anymore in the SQLite console, if the error code is "not an error"
  • other: upgrade to SQLite 3.13.0