Version History
1.3.0 - 18th August 2009
- Starting from this version mIRC SQLite will open databases and files from the directory specified by $mircdir by default (earlier it used the directory where $mircexe was in). Due to this change in mIRC installations where $mircexe is not in $mircdir, databases needs to be moved to $mircdir if the scripts open databases by using relative paths. The reason for this change was that the DLL wasn't consistent with mIRC's built-in aliases and identifiers, because they used different directory than mIRC SQLite.
- Updated SQLite to version 3.6.17. Upgrading is recommended.
- Updated PCRE to version 7.9.
- Added /sqlite_bind_null.
- Added $sqlite_fetch_num.
- Added $sqlite_fetch_assoc.
- Added $sqlite_fetch_all.
- Added $sqlite_safe_encode.
- Added $sqlite_safe_decode.
- Fixed $sqlite_fetch_bound fetching one byte too little when fetching non-binary data from an unbuffered query result into a binary variable.
- Fixed $sqlite_fetch_bound not returning $null when there's an error.
- Fixed $sqlite_fetch_bound not returning 0 when there's no more rows to fetch.
- Fixed $sqlite_bind_field not returning 1 on success.
- Fixed problems with passing binary data if there was a space in the temporary path used by Windows.
- Fixed "* /bread: invalid parameters" if trying to fetch binary data that is empty.
- Changed $sqlite_fetch_single and $sqlite_fetch_field return maximum string length from 900 bytes to 4096 bytes for mIRC versions 6.32+.
1.2.1 - 1st March 2009
- Updated SQLite to version 3.6.11. Upgrading is recommended.
- Fixed $sqlite_prepare failing to prepare any statements. This critical bug was introduced in 1.2.0 (thanks to Sprak for reporting it).
- Changed SQLite to be compiled with SQLITE_ENABLE_UPDATE_DELETE_LIMIT flag, which allows user to use ORDER BY and LIMIT clause on UPDATE and DELETE statements. This was already changed in 1.2.0, but there was no note for it in the change log.
1.2.0 - 22nd December 2008
- Due to the few major additions, changes and bug fixes in this version, this version will be called 1.2.0. Upgrading is strongly recommended.
- Added $sqlite_exec_file for executing a file as SQL.
- Added a .file property to $sqlite_exec for executing a file as SQL.
- Added a .file property to $sqlite_query for executing a file as SQL.
- Added a .file property to $sqlite_unbuffered_query for executing a file as SQL.
- Added a .file property to $sqlite_prepare for executing a file as SQL.
- Added a feature to bind parameters for non-prepared statements using $sqlite_exec, $sqlite_query and $sqlite_unbuffered_query. This will make writing cleaner queries much easier. See Prepared Statements page for example.
- Updated SQLite to version 3.6.7. This version adds new functionality and fixes a lot of important bugs from the previous SQLite version the library used, upgrading is strongly recommended!
- Updated PCRE to version 7.8.
- Fixed $sqlite_open when opening a database from an existing file. It now creates triggers, views, indices and sequence values correctly.
- Fixed a bug with parameter binding for /sqlite_exec and $sqlite_unbuffered_query.
- Fixed a critical bug with the REGEXP operator implementation (thanks to Sir-Loopy for reporting it).
- Fixed a bug with the autocommit feature.
- Changed $sqlite_write_to_file. It now uses a custom written function which is more portable than the previous solution.
1.1.2 - 22nd April 2008
- Updated SQLite to version 3.5.8.
- Fixed a serious bug that caused /sqlite_free to stop working correctly. This bug was introduced in 1.1.0, upgrading is strongly recommended.
1.1.1 - 5th March 2008
- Added /sqlite_help.
- Added /sqlite_autocommit.
- Updated $sqlite_query, /sqlite_exec and $sqlite_unbuffered_query to support binding values to prepared statements.
- Updated SQLite to version 3.5.6.
- Updated PCRE to version 7.6.
- Fixed a serious bug that caused /sqlite_rollback to commit instead of rollback.
1.1.0 - 13th January 2008
- Due to the major additions, changes and bug fixes in this version, this version will be called 1.1.0. Upgrading is strongly recommended.
- Added support for prepared queries and binding parameters. For information about various binding styles that are supported by mSQLite, see Prepared Statements.
- Added $sqlite_unbuffered_query.
- Added $sqlite_prepare.
- Added $sqlite_bind_field and its alias $sqlite_bind_column.
- Added $sqlite_bind_param.
- Added $sqlite_bind_value.
- Added $sqlite_clear_bindings.
- Added $sqlite_fetch_bound.
- Added $sqlite_current_bound.
- Added $sqlite_is_valid_statement.
- Added $sqlite_begin.
- Added $sqlite_commit.
- Added $sqlite_rollback.
- Added $sqlite_finalize.
- Updated $sqlite_exec and $sqlite_query to be able to execute prepared statements.
- Updated $sqlite_fetch_row to set $SQLITE_NOMOREROWS as an error code when there are no more rows.
- Updated $sqlite_open and $sqlite_open_memory to also copy triggers and views when copying database from another file.
- Updated SQLite to version 3.5.4. There are a lot of important bug fixes inbetween this version and 3.4.1. Upgrading is strongly recommended.
- Updated PCRE to verion 7.4.
- Updated mSQLite to enable the FTS3 module in core by default.
- Fixed a long standing bug in $sqlite_query not returning 0 when the query is a type of query that never returns rows (INSERT/UPDATE/DELETE).
- Fixed a bug where user defined functions that run nested queries removed temporary file created by TMPARG() prematurely.
- Removed FTS1 and FTS2 modules from the core to reduce size since they're obsolete. It's recommended to update your existing code to use FTS3 instead. You can still use the older versions by compiling and loading the modules by yourself.
1.0.15 - 30th July 2007
- Fixed a critical bug that caused mIRC to crash upon loading a database when FTS2 module was enabled. Upgrading is strongly recommended.
1.0.14 - 30th July 2007
- Updated SQLite to version 3.4.1. This release fixes a bug in VACUUM that can lead to database corruption. The bug was introduced in version 3.3.14. Upgrading is recommended for all users.
- Updated PCRE to version 7.2.
- Updated $sqlite_create_aggregate to have distinct properties for step and finalize alias. This allows users to create custom aggregates with only one mIRC alias by checking the $prop identifier's value. See User Defined Aggregates for details and example.
- Fixed a lot of old information on documentation and added some new information on how-to pages for new users.
1.0.13 - 18th June 2007
- Updated SQLite to version 3.4.0. Fixes two seperate bugs that can cause a database corruption and adds explicit limits on the sizes and quantities of things SQLite will handle.
- Updated configuration file to automatically set temporary storage to memory instead of file. Before this was done by modifying the SQLite library source code, which meant that the corresponding edit had to be done for every version which is easy to forget. This ensures that temporary storage will be memory for every version unless you change it yourself.
- Updated the mIRC script to use an alias for the DLL path so people who wish to change where the DLL resides can do so easily by editing the corresponding alias.
1.0.12 - 27th April 2007
- Updated SQLite to version 3.3.17. Performance improvements added in 3.3.14 but mistakenly turned off in 3.3.15 have been reinstated. A bug has been fixed that prevented VACUUM from running if a NULL value was in a UNIQUE column. This version fixes a bug in the forwards-compatibility logic of SQLite that was causing a database to become unreadable when it should have been read-only.
- Updated PCRE to version 7.1.
1.0.11 - 15th April 2007
- Updated SQLite to version 3.3.15. An annoying bug introduced in 3.3.14 has been fixed. There are also many enhancements to the test suite.
1.0.10 - 8th April 2007
- Fixed a bug in custom functions argument encoder.
- Updated SQLite to version 3.3.14. This version focuses on performance improvements, you can see performance improvements up to 35% or more compared to the previois version. This version also adds support for exclusive access mode.
- Updated mSQLite to enable the FTS2 (new version of the Full-text Search) module in the core by default.
1.0.9 - 15th February 2007
- Updated SQLite to version 3.3.13. This version fixes a subtle bug in the ORDER BY optimizer that can occur when using joins. There are also a few minor enhancements. Upgrading is recommended.
1.0.8 - 30th January 2007
- Fixed $SQLITE_NOTMEMORYDB returning wrong value.
- Fixed $sqlite_fetch_field outputting not intended debug information on certain errors.
- Updated the library to automatically find unique identifier for mSQLite if user doesn't specify one. You're no longer prompted to input an unique id on script load, but you can still force a certain id to be used by specifying it in msqlite.ini.
- Updated SQLite to version 3.3.12. This update fixes several bugs that were introduced in 3.3.10, upgrading is recommended.
1.0.7 - 14th January 2007
- Fixed some minor memory leaks in $sqlite_query and $sqlite_exec when queries failed.
- Updated SQLite to version 3.3.10. This update fixes several bugs that were introduced in 3.3.9, upgrading is recommended.
1.0.6 - 6th January 2007
- Updated SQLite to version 3.3.9. This update contains important changes and bug fixes, upgrading is recommended.
- Updated PCRE to version 7.0.
1.0.5 - 4th December 2006
- Added $sqlite_set_authorizer.
- Fixed script failed to automatically unload when tried to load on older mIRC and script filename had spaces.
- Fixed various typos and misinformation in documentation.
1.0.4 - 3rd November 2006
- Fixed $sqlite_open not supporting files or directories with spaces on them.
- Fixed mSQLite temporary tables storage using files instead of memory. This was misconfigured in version 1.0.3.
- Updated $sqlite_fetch_field and $sqlite_result to use case-insensitive matching when using field names.
1.0.3 - 11th October 2006
- Added $sqlite_result.
- Updated SQLite to version 3.3.8, which adds support for full-text search. See this article for details.
1.0.2 - 5th September 2006
- Added $sqlite_open_memory.
- Added $sqlite_write_to_file.
- Added $sqlite_fetch_field.
- Added $sqlite_is_valid_db.
- Added $sqlite_is_valid_result.
- Added $sqlite_is_memory_db.
- Added /sqlite_reload.
- Added possibility of opening transient databases by using empty file name for $sqlite_open.
- Added possibility of opening memory databases by using :memory: as file name for $sqlite_open.
- Added new configuration options for loading extensions and running pragmas by default. See Installing and Configuring mSQLite for details.
- Fixed a bug opening msqlite.ini from mIRC dir, instead of the script dir.
- Fixed a bug in the ini parser, where it did not correctly remove enclosing quotes around value.
- Fixed $sqlite_rewind not working.
- Fixed various typos and mistakes in documentation.
- Updated to store temporary tables on memory instead of temp files by default. This is much more efficient.
- Updated $sqlite_fetch_single to return size of binary variable, instead of 1, when binvar is specified.
- Updated $sqlite_load_extension to use native SQLite API instead of query for improved efficiency. You can still use load_extension in queries.
1.0.1 - 23rd August 2006
- Added $sqlite_field_metadata.
- Added $sqlite_load_extension.
- Fixed $sqlite_open not setting the busy timeout to the default value specified in msqlite.ini.
- Updated SQLite to version 3.3.7.
- Updated PCRE to version 6.7.
- Updated to allow queries to load dynamic extensions; Starting from version 3.6.7 SQLite allows users to dynamically load extensions. Note. This feature is still beta.
1.0.0 - 6th August 2006
- Initial release.