Summary of changes in tzdata2018d (2018-03-22 07:05:46 -0700):
In 2018, Palestine starts DST on March 24 (today!), not March 31
Casey Station in Antarctica changed from +11 to +08 on 2018-03-11
at 04:00.
Various adjustments to some historical conversions (several for
Uruguay (1920 .. 1990), one fpr Enderbury and Kiritimati (1994/5),
one for Portugal and colonies (1912) and Jamaica and Turks & Caicos
(pre 1913)).
Summary of changes in tzdata2018d (2018-03-22 07:05:46 -0700):
In 2018, Palestine starts DST on March 24 (today!), not March 31
Casey Station in Antarctica changed from +11 to +08 on 2018-03-11
at 04:00.
Various adjustments to some historical conversions (several for
Uruguay (1920 .. 1990), one fpr Enderbury and Kiritimati (1994/5),
one for Portugal and colonies (1912) and Jamaica and Turks & Caicos
(pre 1913)).
Summary of changes in tzdata2018c (2018-01-22 23:00:44 -0800):
Summary of changes in tzdata2018b (2018-01-17 23:24:48 -0800):
Summary of changes in tzdata2018a (2018-01-12 22:29:21 -0800):
2018a and 2018b were (kind of) released, but never announced.
Some "issues" were found with them that caused the relatively
quick updates...
The updates are from the previous version (2017c) to the
current one (2018c) - that 2018a & 2018b intervened is best
forgotten... (changes in 2018a that were corrected (2018b) or
reverted (2018c) are not mentioned).
Briefly:
Sao Tome and Principe (An island nation off west coast of Equatorial Africa)
switched from +00 to +01.
Brazil's DST will now start on November's first Sunday.
Use Debian-style installation locations, instead of 4.3BSD-style.
(this does not affect NetBSD, we do not use the tzdata Makefile)
Changes to past and future time stamps
Sao Tome and Principe switched from +00 to +01 on 2018-01-01 at
01:00. (Thanks to Steffen Thorsen and Michael Deckers.)
Changes to future time stamps
Starting in 2018 southern Brazil will begin DST on November's
first Sunday instead of October's third Sunday. (Thanks to
Steffen Thorsen.)
Changes to past time stamps
Japanese DST transitions (1948-1951) were Sundays at 00:00, not
Saturdays or Sundays at 02:00. (Thanks to Takayuki Nikai.)
A discrepancy of 4 s in timestamps before 1931 in South Sudan has
been corrected. The 'backzone' and 'zone.tab' files did not agree
with the 'africa' and 'zone1970.tab' files. (Problem reported by
Michael Deckers.)
The abbreviation invented for Bolivia Summer Time (1931-2) is now
BST instead of BOST, to be more consistent with the convention
used for Latvian Summer Time (1918-9) and for British Summer Time.
Northern Cyprus switches from +03 to +02/+03 on 2017-10-29.
Fiji ends DST 2018-01-14, not 2018-01-21.
Namibia switches from +01/+02 to +02 on 2018-04-01.
Sudan switches from +03 to +02 on 2017-11-01.
Tonga likely switches from +13/+14 to +13 on 2017-11-05.
Turks & Caicos switches from -04 to -05/-04 on 2018-11-04.
Some corrections to (mostly ancient) historical data.
Summary of changes in tzdata2017b (2017-03-17 07:30:38 -0700):
Haiti resumed observance of DST in 2017 (on Mar 12)
Liberia changed from -004430 to +00 on 1972-01-07, not 1972-05-01.
Use "MMT" to abbreviate Liberia's time zone before 1972,
as "-004430" (tzdata2016a) is one byte over the POSIX limit.
Approximately 25% better performance from the R-Tree extension.
Uses compiler built-ins (ex: __builtin_bswap32() or _byteswap_ulong()) for byteswapping when available.
Uses the sqlite3_blob key/value access object instead of SQL for pulling content out of R-Tree nodes
Other miscellaneous enhancements such as loop unrolling.
Add the SQLITE_DEFAULT_LOOKASIDE compile-time option.
Increase the default lookaside size from 512,125 to 1200,100 as this provides better performance while only adding 56KB of extra memory per connection. Memory-sensitive applications can restore the old default at compile-time, start-time, or run-time.
Use compiler built-ins __builtin_sub_overflow(), __builtin_add_overflow(), and __builtin_mul_overflow() when available. (All compiler built-ins can be omitted with the SQLITE_DISABLE_INTRINSIC compile-time option.)
Added the SQLITE_ENABLE_NULL_TRIM compile-time option, which can result in significantly smaller database files for some applications, at the risk of being incompatible with older versions of SQLite.
Change SQLITE_DEFAULT_PCACHE_INITSZ from 100 to 20, for improved performance.
Added the SQLITE_UINT64_TYPE compile-time option as an analog to SQLITE_INT64_TYPE.
Perform some UPDATE operations in a single pass instead of in two passes.
Enhance the session extension to support WITHOUT ROWID tables.
Fixed performance problems and potential stack overflows when creating views from multi-row VALUES clauses with hundreds of thousands of rows.
Added the sha1.c extension.
In the command-line shell, enhance the ".mode" command so that it restores the default column and row separators for modes "line", "list", "column", and "tcl".
Enhance the SQLITE_DIRECT_OVERFLOW_READ option so that it works in WAL mode as long as the pages being read are not in the WAL file.
Enhance the LEMON parser generator so that it can store the parser object as a stack variable rather than allocating space from the heap and make use of that enhancement in the amalgamation.
Other performance improvements. Uses about 6.5% fewer CPU cycles.
Bug Fixes:
Throw an error if the ON clause of a LEFT JOIN references tables to the right of the ON clause. This is the same behavior as PostgreSQL. Formerly, SQLite silently converted the LEFT JOIN into an INNER JOIN. Fix for ticket 25e335f802dd.
Use the correct affinity for columns of automatic indexes. Ticket 7ffd1ca1d2ad4ec.
Ensure that the sqlite3_blob_reopen() interface can correctly handle short rows. Fix for ticket e6e962d6b0f06f46e.
Hashes:
SQLITE_SOURCE_ID: "2017-02-13 16:02:40 ada05cfa86ad7f5645450ac7a2a21c9aa6e57d2c"
SHA1 for sqlite3.c: cc7d708bb073c44102a59ed63ce6142da1f174d1
2017-01-06 (3.16.2)
Fix the REPLACE statement for WITHOUT ROWID tables that lack secondary indexes so that it works correctly with triggers and foreign keys. This was a new bug caused by performance optimizations added in version 3.16.0. Ticket 30027b613b4
Fix the sqlite3_value_text() interface so that it correctly translates content generated by zeroblob() into a string of all 0x00 characters. This is a long-standing issue discovered after the 3.16.1 release by OSS-Fuzz
Fix the bytecode generator to deal with a subquery in the FROM clause that is itself a UNION ALL where one side of the UNION ALL is a view that contains an ORDER BY. This is a long-standing issue that was discovered after the release of 3.16.1. See ticket 190c2507.
Adjust the sqlite3_column_count() API so it more often returns the same values for PRAGMA statements as it did in prior releases, to minimize disruption to applications that might be using that interface in unexpected ways.
Hashes:
SQLITE_SOURCE_ID: "2017-01-06 16:32:41 a65a62893ca8319e89e48b8a38cf8a59c69a8209"
SHA1 for sqlite3.c: 2bebdc3f24911c0d12b6d6c0123c3f84d6946b08
2017-01-03 (3.16.1)
Fix a bug concerning the use of row values within triggers (see ticket 8c9458e7) that was in version 3.15.0 but was not reported until moments after the 3.16.0 release was published.
Hashes:
SQLITE_SOURCE_ID: "2017-01-03 18:27:03 979f04392853b8053817a3eea2fc679947b437fd"
SHA1 for sqlite3.c: 354f6223490b30fd5320b4066b1535e4ce33988d
2017-01-02 (3.16.0)
Uses 9% fewer CPU cycles. (See the CPU performance measurement report for details on how this performance increase was computed.)
Added experimental support for PRAGMA functions.
Added the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option to sqlite3_db_config().
Enhance the date and time functions so that the 'unixepoch' modifier works for the full span of supported dates.
Changed the default configuration of the lookaside memory allocator from 500 slots of 128 bytes each into 125 slots of 512 bytes each.
Enhanced "WHERE x NOT NULL" partial indexes so that they are usable if the "x" column appears in a LIKE or GLOB operator.
Enhanced sqlite3_interrupt() so that it interrupts checkpoint operations that are in process.
Enhanced the LIKE and GLOB matching algorithm to be faster for cases when the pattern contains multiple wildcards.
Added the SQLITE_FCNTL_WIN32_GET_HANDLE file control opcode.
Added ".mode quote" to the command-line shell.
Added ".lint fkey-indexes" to the command-line shell.
Added the .imposter dot-command to the command-line shell.
Added the remember(V,PTR) SQL function as a loadable extension.
Rename the SQLITE_OMIT_BUILTIN_TEST compile-time option to SQLITE_UNTESTABLE to better reflect the implications of using it.
Bug Fixes:
Fix a long-standing bug in the query planner that caused incorrect results on a LEFT JOIN where the left-hand table is a subquery and the join constraint is a bare column name coming from the left-hand subquery. Ticket 2df0107b.
Correctly handle the integer literal -0x8000000000000000 in the query planner.
Hashes:
SQLITE_SOURCE_ID: "2017-01-02 11:57:58 04ac0b75b1716541b2b97704f4809cb7ef19cccf"
SHA1 for sqlite3.c: e2920fb885569d14197c9b7958e6f1db573ee669
2016-11-28 (3.15.2)
Multiple bug fixes to the row value logic that was introduced in version 3.15.0.
Fix a NULL pointer dereference in ATTACH/DETACH following a maliciously constructed syntax error. Ticket 2f1b168ab4d4844.
Fix a crash that can occur following an out-of-memory condition in the built-in instr() function.
In the JSON extension, fix the JSON validator so that it correctly rejects invalid backslash escapes within strings.
Hashes:
SQLITE_SOURCE_ID: "2016-11-28 19:13:37 bbd85d235f7037c6a033a9690534391ffeacecc8"
SHA1 for sqlite3.c: 06d77b42a3e70609f8d4bbb97caf53652f1082cb
2016-11-04 (3.15.1)
Added SQLITE_FCNTL_WIN32_GET_HANDLE file control opcode.
Fix the VACUUM command so that it spills excess content to disk rather than holding everything in memory, and possible causing an out-of-memory error for larger database files. This fixes an issue introduced by version 3.15.0.
Fix a case (present since 3.8.0 - 2013-08-26) where OR-connected terms in the ON clause of a LEFT JOIN might cause incorrect results. Ticket 34a579141b2c5ac.
Fix a case where the use of row values in the ON clause of a LEFT JOIN might cause incorrect results. Ticket fef4bb4bd9185ec8f.
Hashes:
SQLITE_SOURCE_ID: "2016-11-04 12:08:49 1136863c76576110e710dd5d69ab6bf347c65e36"
SHA1 for sqlite3.c: e7c26a7be3e431dd06898f8d262c4ef240c07366
2016-10-14 (3.15.0)
Added support for row values.
Allow deterministic SQL functions in the WHERE clause of a partial index.
Added the "modeof=filename" URI parameter on the unix VFS
Added support for SQLITE_DBCONFIG_MAINDBNAME.
Added the ability to VACUUM an ATTACH-ed database.
Enhancements to the command-line shell:
Add the ".testcase" and ".check" dot-commands.
Added the --new option to the ".open" dot-command, causing any prior content in the database to be purged prior to opening.
Enhance the fts5vocab virtual table to handle "ORDER BY term" efficiently.
Miscellaneous micro-optimizations reduce CPU usage by more than 7% on common workloads. Most optimization in this release has been on the front-end (sqlite3_prepare_v2()).
Bug Fixes:
The multiply operator now correctly detects 64-bit integer overflow and promotes to floating point in all corner-cases. Fix for ticket 1ec41379c9c1e400.
Correct handling of columns with redundant unique indexes when those columns are used on the LHS of an IN operator. Fix for ticket 0eab1ac759.
Skip NULL entries on range queries in indexes on expressions. Fix for ticket 4baa46491212947.
Ensure that the AUTOINCREMENT counters in the sqlite_sequence table are initialized doing "Xfer Optimization" on "INSERT ... SELECT" statements. Fix for ticket 7b3328086a5c116c.
Make sure the ORDER BY LIMIT optimization (from check-in 559733b09e) works with IN operators on INTEGER PRIMARY KEYs. Fix for ticket 96c1454c
Hashes:
SQLITE_SOURCE_ID: "2016-10-14 10:20:30 707875582fcba352b4906a595ad89198d84711d8"
SHA1 for sqlite3.c: fba106f8f6493c66eeed08a2dfff0907de54ae76
2016-09-12 (3.14.2)
Improved support for using the STDCALL calling convention in winsqlite3.dll.
Fix the sqlite3_trace_v2() interface so that it is disabled if either the callback or the mask arguments are zero, in accordance with the documentation.
Fix commenting errors and improve the comments generated on EXPLAIN listings when the -DSQLITE_ENABLE_EXPLAIN_COMMENTS compile-time option is used.
Fix the ".read" command in the command-line shell so that it understands that its input is not interactive.
Correct affinity computations for a SELECT on the RHS of an IN operator. Fix for ticket 199df4168c.
The ORDER BY LIMIT optimization is not valid unless the inner-most IN operator loop is actually used by the query plan. Fix for ticket 0c4df46116e90f92.
Fix an internal code generator problem that was causing some DELETE operations to no-op. Ticket ef360601
Hashes:
SQLITE_SOURCE_ID: "2016-09-12 18:50:49 29dbef4b8585f753861a36d6dd102ca634197bd6"
SHA1 for sqlite3.c: bcc4a1989db45e7f223191f2d0f66c1c28946383
2016-08-11 (3.14.1)
A performance enhancement to the page-cache "truncate" operation reduces COMMIT time by dozens of milliseconds on systems with a large page cache.
Fix to the --rbu option of sqldiff.
Hashes:
SQLITE_SOURCE_ID: "2016-08-11 18:53:32 a12d8059770df4bca59e321c266410344242bf7b"
SHA1 for sqlite3.c: d545b24892278272ce4e40e0567d69c8babf12ea
2016-08-08 (3.14)
Celebrating the SQLite "# release" with a home-baked pie.
Added support for WITHOUT ROWID virtual tables.
Improved the query planner so that the OR optimization can be used on virtual tables even if one or more of the disjuncts use the LIKE, GLOB, REGEXP, MATCH operators.
Added the CSV virtual table for reading RFC 4180 formatted comma-separated value files.
Added the carray() table-valued function extension.
Enabled persistent loadable extensions using the new SQLITE_OK_LOAD_PERMANENTLY return code from the extension entry point.
Added the SQLITE_DBSTATUS_CACHE_USED_SHARED option to sqlite3_db_status().
Add the vfsstat.c loadable extension - a VFS shim that measures I/O together with an eponymous virtual table that provides access to the measurements.
Improved algorithm for running queries with both an ORDER BY and a LIMIT where only the inner-most loop naturally generates rows in the correct order.
Enhancements to Lemon parser generator, so that it generates a faster parser.
The PRAGMA compile_options command now attempts to show the version number of the compiler that generated the library.
Enhance PRAGMA table_info so that it provides information about eponymous virtual tables.
Added the "win32-none" VFS, analogous to the "unix-none" VFS, that works like the default "win32" VFS except that it ignores all file locks.
The query planner uses a full scan of a partial index instead of a full scan of the main table, in cases where that makes sense.
Allow table-valued functions to appear on the right-hand side of an IN operator.
Created the dbhash.exe command-line utility.
Added two new C-language interfaces: sqlite3_expanded_sql() and sqlite3_trace_v2(). These new interfaces subsume the functions of sqlite3_trace() and sqlite3_profile() which are now deprecated.
Added the json_quote() SQL function to the json1 extension.
Disable the authorizer callback while reparsing the schema.
Added the SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option and turned that option on by default when building the command-line shell.
Bug Fixes:
Fix the ALTER TABLE command so that it does not corrupt descending indexes when adding a column to a legacy file format database. Ticket f68bf68513a1c15f
Fix a NULL-pointer dereference/crash that could occurs when a transitive WHERE clause references a non-existent collating sequence. Ticket e8d439c77685eca6.
Improved the cost estimation for an index scan which includes a WHERE clause that can be partially or fully evaluated using columns in the index and without having to do a table lookup. This fixes a performance regression that occurred for some obscure queries following the ORDER BY LIMIT optimization introduced in version 3.12.0.
Hashes:
SQLITE_SOURCE_ID: "2016-08-08 13:40:27 d5e98057028abcf7217d0d2b2e29bbbcdf09d6de"
SHA1 for sqlite3.c: 234a3275d03a287434ace3ccdf1afb208e6b0e92
Summary of changes in tzdata2017a (2017-02-28 00:05:36 -0800):
Briefly: Southern Chile moves from -04/-03 to -03, and Mongolia
discontinues DST.
Changes to future time stamps
Mongolia no longer observes DST.
Chile's Region of Magallanes moves from -04/-03 to -03 year-round.
Changes to past time stamps
Fix many entries for historical time stamps for Europe/Madrid
before 1979, to agree with tables compiled by Pere Planesas of the
National Astronomical Observatory of Spain. As a side effect,
this changes some time stamps for Africa/Ceuta before 1929, which
are probably guesswork anyway.
Ecuador observed DST from 1992-11-28 to 1993-02-05.
Asia/Atyrau and Asia/Oral were at +03 (not +04) before 1930-06-21.
Changes to past and future time zone abbreviations
Switch to numeric time zone abbreviations for South America, as
part of the ongoing project of removing invented abbreviations.
For Alaska time from 1900 through 1967, instead of "CAT" use the
abbreviation "AST", the abbreviation commonly used at the time
(Atlantic Standard Time had not been standardized yet). Use "AWT"
and "APT" instead of the invented abbreviations "CAWT" and "CAPT".
Use "CST" and "CDT" instead of invented abbreviations for Macau
before 1999 and Taiwan before 1938, and use "JST" instead of the
invented abbreviation "JCST" for Japan and Korea before 1938.
Change to database entry category
Move the Pacific/Johnston link from 'australasia' to 'backward',
since Johnston is now uninhabited.
Summary of changes in tzdata2016j (2016-11-22 23:17:13 -0800):
Saratov, Russia switches from +03 to +04 on 2016-12-04 at 02:00.
This creates a new zone Europe/Saratov.
New zone Asia/Atyrau for Atyrau Region, Kazakhstan, is like
Asia/Aqtau except it switched from +04/+05 to +05/+06 in spring
1999, not fall 1994.
Asia/Gaza and Asia/Hebron now use "EEST", not "EET", to denote
summer time before 1948. The old use of "EET" was a typo.
(one which used a different key for the signature of the data file...)
Allow either key to work. Also update the name of the sets list
file to match modern reality (only affects instructions issued to user.)
I skipped committing these changes until it had been used a few times
to verify that it actually works properly... it seems to.
Summary of changes in tzdata2016i (2016-11-01 23:19:52 -0700):
Cyprus split into two time zones on 2016-10-30 (new zone is
Asia/Famagusta and is UTC+3 year round). Tonga reintroduces
summer time on 2016-11-06 (assumed for now to be aligned with Fiji).
This year's summer time switch (from +08 to +11) for Antarctica/Casey
occurred 2016-10-22.
Also (minor) adjustments to some historic data for Italy (most
recent applies to time of day of switch out of summer time in period
1967-1970 & 1972-1974, other changes relate to 1910's and 1940's.)
Summary of changes in tzdata2016h (2016-10-19 23:17:57 -0700):
Asia/Gaza and Asia/Hebron end of summer time for 2016 is
2016-10-29 at 01:00 rather than 2016-10-21 at 00:00 (which
is within hours after this update). Guess that future
end dates will be the last Sat of October.
Corrected some historic time (and one date) transition
times for Turkey (all 1990 or before.)
Switch Sri-Lanka to use numeric abbreviation for time zone
as the tzdata invented one is not correct, and the correct
one seems not to be widely used.
Summary of changes in tzdata2016g (2016-09-13 08:56:38 -0700):
Timezone switch in Turkey (summer time becomes standard time)
Transition time corrections for historic timestamps in
America/Los_Angeles
zones using USSR rules in early 20th century
Some (more) time zone abbreviations converted to numeric form
Asia/Rangoon becomes Asia/Yangon (with backward compat link)
Summary of changes in tzdata2016g (2016-09-13 08:56:38 -0700):
Timezone switch in Turkey (summer time becomes standard time)
Transition time corrections for historic timestamps in
America/Los_Angeles
zones using USSR rules in early 20th century
Some (more) time zone abbreviations converted to numeric form
Asia/Rangoon becomes Asia/Yangon (with backward compat link)
Summary of changes in tzdata2016f (2016-07-05 16:26:51 +0200):
* The Egyptian government changed its mind on short notice, and
Africa/Cairo will not introduce DST starting 2016-07-07 after all.
* Asia/Novosibirsk switches from +06 to +07 on 2016-07-24 at 02:00.
* Asia/Novokuznetsk and Asia/Novosibirsk now use numeric time zone
abbreviations instead of invented ones.
* Europe/Minsk's 1992-03-29 spring-forward transition was at 02:00 not 00:00.
Summary of changes in tzdata2016e (2016-06-14 08:46:16 -0700):
* Africa/Cairo observes DST in 2016 from July 7 to the end of October.
(change obsoleted by 2016f)
* Locations while uninhabited now use '-00', not 'zzz', as a
placeholder time zone abbreviation.
* Asia/Baku's 1992-09-27 transition from +04 (DST) to +04 (non-DST) was
at 03:00, not 23:00 the previous day.
* zic now outputs a dummy transition at time 2**31 - 1 in zones
whose POSIX-style TZ strings contain a '<'.
* Changes affecting documentation and commentary.
Following changes have been made since the last import (taken from https://www.sqlite.org/news.html):
2016-05-18 - Release 3.13.0
SQLite version 3.13.0 is a regularly schedule maintenance release containg
performance enhancements and fixes for obscure bugs.
2016-04-18 - Release 3.12.2
Yikes! The 3.12.0 and 3.12.1 releases contain a backwards compatibility bug!
Tables that declare a column with type "INTEGER" PRIMARY KEY (where the
datatype name INTEGER is quoted) generate an incompatible database file. The
mistake came about because the developers have never thought to put a typename
in quotes before, and so there was no documentation of that capability nor any
tests. (There are tests now, though, of course.) Instances of quoting the
datatype name are probably infrequent in the wild, so we do not expect the
impact of this bug to be too severe. Upgrading is still strongly recommended.
Fixes for three other minor issues were included in this patch release. The
other issues would have normally been deferred until the next scheduled
release, but since a patch release is being issued anyhow, they might as well
be included.
2016-04-08 - Release 3.12.1
SQLite version 3.12.1 is an emergency patch release to address a crash bug that
snuck into version 3.12.0. Upgrading from version 3.12.0 is highly recommended.
Another minor problem involving datatypes on view columns, and a query planner
deficiency are fixed at the same time. These two issues did not justify a new
release on their own, but since a release is being issued to deal with the
crash bug, we included these other fixes for good measure.
2016-03-29 - Release 3.12.0
SQLite version 3.12.0 is a regularly scheduled maintenance release. A notable
change in this release is an increase in the default page size for newly
created database files. There are also various performance improvements. See
the change log for details.
2016-03-03 - Release 3.11.1
SQLite version 3.11.1 is a patch release that fixes problems in the new FTS5
extension and increases a default setting in the spellfix1 extension, and
implements enhancements to some of the Windows makefiles. The SQLite core is
unchanged from 3.11.0. Upgrading is optional.
2016-02-15 - Release 3.11.0
SQLite version 3.11.0 is a regularly scheduled maintenance release.
2016-01-20 - Release 3.10.2
Yikes! An optimization attempt gone bad resulted in a bug in the LIKE operator
which is fixed by this patch release. Three other minor but low-risk fixes are
also included in the patch.
2016-01-14 - Release 3.10.1
SQLite version 3.10.1 is a bug-fix release primarily targeting the fix for the
query planner bug cb3aa0641d9a4 discovered by Mapscape. Also included is a
minor API enhancement requested by the Firefox developers at Mozilla. The
differences from version 3.10.0 are minimal.
2016-01-06 - Release 3.10.0
SQLite version 3.10.0 is a regularly scheduled maintenance release.
2015-11-02 - Release 3.9.2
SQLite version 3.9.2 is a patch release fixing two obscure bugs. (Details: (1),
(2)). Upgrade only if you are having problems.
2015-10-16 - Release 3.9.1
SQlite version 3.9.1 is a small patch to version 3.9.0 that includes a few
simple build script and #ifdef tweaks to make the code easier to compile on a
wider variety of platform. There are no functional changes, except for a single
minor bug-fix in the json1 extension to stop it from recognizing form-feed
(ASCII 0x0c) as a whitespace character, in conformance with RFC7159.
2015-10-14 - Release 3.9.0
SQLite version 3.9.0 is a regularly schedule maintenance release. Key changes
include:
Begin using semantic versioning.
JSON SQL functions
The FTS5 full-text search engine
Support for indexes on expressions
Support for table-valued functions
See the change log for a long and more complete list of changes.
2015-07-29 - Release 3.8.11.1
SQLite version 3.8.11.1 is a patch release that fixes two arcane issues that
were reported shortly after 3.8.11 was released. Upgrade from 3.8.11 only in
the unlikely event that one of these obscure issues affect your code.
2015-07-27 - Release 3.8.11
SQLite version 3.8.11 is a regularly scheduled maintenance release. See the
change log for details.
2015-05-20 - Release 3.8.10.2
Yikes! Index corruption after a sequence of valid SQL statements!
It has been many years since anything like this bug has snuck into an official
SQLite release. But for the pasts seven months (version 3.8.7 through version
3.8.10.1) if you do an INSERT into a carefully crafted schema in which there
are two nested triggers that convert an index key value from TEXT to INTEGER
and then back to TEXT again, the INTEGER value might get inserted as the index
key instead of the correct TEXT, resulting in index corruption. This patch
release adds a single line of code to fix the problem.
If you do actually encounter this problem, running REINDEX on the damaged
indexes will clear it.
2015-05-09 - Release 3.8.10.1
The 3.8.10 release did not add the new SQLITE_ENABLE_DBSTAT_VTAB compile-time
option to the sqlite3_compileoption_used() interface. This patch release fixes
that omission. And while we are at it, the associated dbstat virtual table was
enhanced slightly and a harmless compiler warning was fixed.
There is no reason to upgrade from version 3.8.10 unless you are using the new
SQLITE_ENABLE_DBSTAT_VTAB compile-time option.
2015-05-07 - Release 3.8.10
SQLite version 3.8.10 is a regularly scheduled maintenance release. This
release features performance improvements, fixes to several arcane bugs found
by the AFL fuzzer, the new "sqldiff.exe" command-line utility, improvements to
the documentation, and other enhancements. See the release notes for additional
information.
2015-04-08 - Release 3.8.9
SQLite version 3.8.9 is a regularly scheduled maintenance release. New features
in this release include the PRAGMA index_xinfo command, the sqlite3_status64()
interface, and the ".dbinfo" command of the command-line shell. See the release
notes for additional information.
2015-02-25 - Release 3.8.8.3
The 3.8.8.3 patch release fixes an obscure problem in the SQLite code generator
that can cause incorrect results when the qualifying expression of a partial
index is used inside the ON clause of a LEFT JOIN. This problem has been in the
code since support for partial indexes was first added in version 3.8.0.
However, it is difficult to imagine a valid reason to every put the qualifying
constraint inside the ON clause of a LEFT JOIN, and so this issue has never
come up before.
Any applications that is vulnerable to this bug would have encountered problems
already. Hence, upgrading from the previous release is optional.
2015-01-30 - Release 3.8.8.2
The 3.8.8.2 patch release fixes a single minor problem: It ensures that the
sqlite3_wal_checkpoint(TRUNCATE) operation will always truncate the write-ahead
log even if log had already been reset and contained no new content. It is
unclear if this is a bug fix or a new feature.
Something like this would normally go into the next regularly scheduled
release, but a prominent SQLite user needed the change in a hurry so we were
happy to rush it out via this patch.
There is no reason to upgrade unless you actually need the enhanced behavior of
sqlite3_wal_checkpoint(TRUNCATE).
2015-01-20 - Release 3.8.8.1
Within hours of releasing version 3.8.8, a bug was reported against the
10-month-old 3.8.4 release. As that bug exists in all subsequent releases, the
decision was made to issue a small patch to the 3.8.8 before it came into
widespread use.
See ticket f97c4637102a3ae72b7911 for a description of the bug.
The changes between versions 3.8.8 and 3.8.8.1 are minimal.
2015-01-16 - Release 3.8.8
SQLite version 3.8.8 is a regularly schedule maintenance release of SQLite.
There are no dramatic new features or performance enhancements in this release,
merely incremental improvements. Most of the performance gain in this release
comes from refactoring the B-Tree rebalancing logic to avoid unnecessary
memcpy() operations. New features include the PRAGMA data_version statement and
the ability to accept a VALUES clause with no arbitrary limit on the number of
rows. Several obscure bugs have been fixed, including some multithreading races
and a work-around for a compiler bug on some Macs.
See the change log for a longer list of enhancements and bug fixes.
2014-12-09 - Release 3.8.7.4
SQLite version 3.8.7.4 an unscheduled bug-fix release. Changes from the
previous release and from version 3.8.7 are minimal.
This release fixes adds in a mutex that is required by the changes of the
3.8.7.3 patch but was accidentally omitted. The mutex was not required by any
of the internal SQLite tests, but Firefox crashes without it. Test cases have
been added to ensure that mutex is never again missed.
2014-12-06 - Release 3.8.7.3
SQLite version 3.8.7.3 an unscheduled bug-fix release. Changes from the
previous release and from version 3.8.7 are minimal.
This release fixes two obscure bugs that can result in incorrect query results
and/or application crashes, but not (as far as we can tell) security
vulnerabilities. Both bugs have been latent in the code across multiple prior
releases and have never before been encountered, so they are unlikely to cause
problems. Nevertheless it seems prudent to publish fixes for them both. See the
change log for details.
2014-11-19 - Release 3.8.7.2
SQLite version 3.8.7.2 is a patch and bug-fix release. Changes from the
previous release are minimal.
The primary reason for this release is to enhance the ROLLBACK command so that
it allows running queries on the same database connection to continue running
as long as the ROLLBACK does not change the schema. In all previous versions of
SQLite, a ROLLBACK would cause pending queries to stop immediately and return
SQLITE_ABORT or SQLITE_ABORT_ROLLBACK. Pending queries still abort if the
ROLLBACK changes the database schema, but as of this patch release, the queries
are allowed to continue running if the schema is unmodified.
In addition to the ROLLBACK enhancement, this patch release also includes fixes
for three obscure bugs. See the change log for details.
2014-10-30 - Release 3.8.7.1
SQLite version 3.8.7.1 is a bug-fix release.
The primary reason for this bug-fix release is to address a problem with
updating the value of fields at the end of a table that were added using ALTER
TABLE ADD COLUMN. This problem 1 first appeared in the 3.8.7 release.
Another minor annoyance in the 3.8.7 release was the fact that the Android
build tried to use the strchrnul() function from the standard C library but
that function is not available on Android. Android builds had to add
-DHAVE_STRCHRNUL=0 to work around the problem. This patch fixes that so that
Android builds should now work without any changes.
The operation of PRAGMA journal_mode=TRUNCATE has been enhanced so that it
invokes fsync() after truncating the journal file when PRAGMA synchronous=FULL.
This helps to preserve transaction durability in the case of a power loss
occurring shortly after commit.
Finally, a couple of long-standing and obscure problems associated with run
UPDATE and DELETE on VIEWs were fixed.
The changes from 3.8.7 are minimal.
2014-10-17 - Release 3.8.7
SQLite version 3.8.7 is a regularly scheduled maintenance release. Upgrading
from all prior versions is recommended.
Most of the changes from the previous release have been micro-optimizations
designed to help SQLite run a little faster. Each individual optimization has
an unmeasurably small performance impact. But the improvements add up. Measured
on a well-defined workload (which the SQLite developers use as a proxy for a
typical application workload) using cachegrind on Linux and compiled with gcc
4.8.1 and -Os on x64 linux, the current release does over 20% more work for the
same number of CPU cycles compared to the previous release. Cachegrind is not a
real CPU, and the workload used for measurement is only a proxy. So your
performance may vary. We expect to see about half the measured and reported
improvement in real-world applications. 10% is less than 20% but it is still
pretty good, we think.
This release includes a new set of C-language interfaces that have unsigned
64-bit instead of signed 32-bit length parameters. The new APIs do not provide
any new capabilities. But they do make it easier to write applications that are
more resistant to integer overflow vulnerabilities.
This release also includes a new sorter that is able to use multiple threads to
help with large sort operations. (Sort operations are sometimes required to
implement ORDER BY and/or GROUP BY clauses and are almost always required for
CREATE INDEX.) The multi-threads sorter is turned off by default and must be
enabled using the PRAGMA threads SQL command. Note that the multi-threaded
sorter provides faster real-time performance for large sorts, but it also uses
more CPU cycles and more energy.
2014-08-15 - Release 3.8.6
SQLite version 3.8.6 is a regularly scheduled maintenance release. Upgrading
from all previous versions is recommended.
This release contains the usual assortment of obscure bug fixes. One bug,
however, deserves special attention. A problem appeared in the CREATE INDEX
command beginning with version 3.8.2 (2013-12-06) that allowed, under some
circumstances, a UNIQUE index to be created on a column that was not unique.
Once the index was created, no new non-unique entries could be inserted, but
preexisting non-unique entries would remain. See ticket 9a6daf340df99ba93c for
further information. In addition to fixing this bug, the PRAGMA integrity_check
command has been enhanced to detect non-uniqueness in UNIQUE indices, so that
if this bug did introduce any problems in databases, those problems can be
easily detected.
Other noteworthy changes include the addition of support for hexadecimal
integers (ex: 0x1234), and performance enhancements to the IN operator which,
according to mailing list reports, help some queries run up to five times
faster.
Version 3.8.6 uses 25% fewer CPU cycles than version 3.8.0 from approximately
one year ago, according to valgrind and the test/speedtest1.c test program. On
the other hand, the compiled binary for version 3.8.6 is about 5% larger than
3.8.0. The size increase is due in part to the addition of new features such as
WITHOUT ROWID tables and common table expressions.
2014-06-04 - Release 3.8.5
SQLite version 3.8.5 is a regularly scheduled maintenance release. Upgrading
from the previous version is recommended.
Version 3.8.5 fixes more than a dozen obscure bugs. None of these bugs should
be a problem for existing applications. Nor do any of the bugs represent a
security vulnerability. Nevertheless, upgrading is recommended to prevent
future problems.
In addition to bug fixes, the 3.8.5 release adds improvements to the query
planner, especially regarding sorting using indices and handling OR terms in
the WHERE clause for WITHOUT ROWID tables. The ".system" and ".once"
dot-commands were added to the command-line interface. And there were
enhancements to the FTS4 and RTREE virtual tables. See the change log for
details.
2014-04-03 - Release 3.8.4.3
The optimizations added in version 3.8.4 caused some queries that involve
subqueries in the FROM clause, DISTINCT, and ORDER BY clauses, to give an
incorrect result. See ticket 98825a79ce145 for details. This release adds a
one-character change to a single line of code to fix the problem.
2014-03-26 - Release 3.8.4.2
The code changes that resulted in the performance improvements in version 3.8.4
missed a single buffer overflow test, which could result in a read past the end
of a buffer while searching a database that is corrupted in a particular way.
Version 3.8.4.2 fixes that problem using a one-line patch.
We are not aware of any problems in version 3.8.4 when working with well-formed
database files. The problem fixed by this release only comes up when reading
corrupt database files.
2014-03-11 - Release 3.8.4.1
SQLite version 3.8.4.1 is a patch against version 3.8.4 that fixes two minor
issues:
Work around a C-preprocessor macro conflict that causes compilation problems
for some configurations of Visual Studio.
Adjust the cost computation for the skip-scan optimization for improved
performance.
Both of these issues came to light within minutes of tagging the previous
release. Neither issue is serious but they can be annoying. Hence, the decision
was made to do a quick patch release to address both issues.
2014-03-10 - Release 3.8.4
SQLite version 3.8.4 is a maintenance release featuring performance
enhancements and fixes for a number of obscure bugs. There are no significant
new features in SQLite version 3.8.4. However, the number of CPU cycles
(measured by valgrind) needed to do many common operations has be reduced by
about 12% relative to the previous release, and by about 25% relative to
version 3.7.16 from approximately one year ago.
Version 3.8.4 of SQLite fixes several corner-case bugs that were found since
the previous release. These bugs were unlikely to appear in practice, and none
represent a security vulnerability. Nevertheless, developers are encouraged to
upgrade from all prior releases.
Summary of changes in tzdata2016d (2016-04-17 22:50:29 -0700):
* America/Caracas switches from -0430 to -04 on 2016-05-01 at 02:30.
* Asia/Magadan switches from +10 to +11 on 2016-04-24 at 02:00.
* New zone Asia/Tomsk, split off from Asia/Novosibirsk.
* New zone Europe/Kirov, split off from Europe/Volgograd.
* Russia and nearby locations had daylight-saving transitions on
1992-03-29 at 02:00 and 1992-09-27 at 03:00, instead of on
1992-03-28 at 23:00 and 1992-09-26 at 23:00.
* Many corrections to historical time in Kazakhstan from 1991
through 2005.
* Mention Internet RFCs 7808 (TZDIST) and 7809 (CalDAV time zone references).
Summary of changes in tzdata2016c (2016-03-23 00:51:27 -0700):
* Azerbaijan no longer observes DST.
* Chile reverts from permanent to seasonal DST.
* Europe/Kaliningrad and Europe/Vilnius changed from +03/+04 to
+02/+03 on 1989-03-26, not 1991-03-31.
* Several updates and URLs for historical and proposed Russian changes.
Summary of changes in tzdata2016b (2016-03-12 17:30:14 -0800):
* New zones Europe/Astrakhan and Europe/Ulyanovsk for Astrakhan and
Ulyanovsk Oblasts, Russia, both of which will switch from +03 to +04 on
2016-03-27 at 02:00 local time.
* As a trial of a new system that needs less information to be made up,
the new zones use numeric time zone abbreviations like "+04"
instead of invented abbreviations like "ASTT".
* Haiti will not observe DST in 2016.
* Palestine's spring-forward transition on 2016-03-26 is at 01:00, not 00:00.
* Europe/Chisinau observed DST during 1990, and switched from +04 to
+03 at 1990-05-06 02:00, instead of switching from +03 to +02.
* 1991 abbreviations in Europe/Samara should be SAMT/SAMST, not
KUYT/KUYST.
* tzselect's diagnostics and checking, and checktab.awk's checking,
have been improved.
* tzcode now builds under MinGW.
* tzselect now tests Julian-date TZ settings more accurately.
* Comments in zone tables have been improved.
* tzselect again limits its menu comments so that menus fit on a
24x80 alphanumeric display.
* A new web page tz-how-to.html.
* In the Theory file, the description of possible time zone abbreviations in
tzdata has been cleaned up, as the old description was unclear and
inconsistent.
Summary of changes in tzdata2016a (2016-01-26 23:28:02 -0800):
* America/Cayman will not observe daylight saving this year after all.
* Asia/Chita switches from +0800 to +0900 on 2016-03-27 at 02:00.
* Asia/Tehran now has DST predictions for the year 2038 and later,
to be March 21 00:00 to September 21 00:00.
* America/Metlakatla switched from PST all year to AKST/AKDT on
2015-11-01 at 02:00.
* America/Santa_Isabel has been removed, and replaced with a
backward compatibility link to America/Tijuana.
* Asia/Karachi's two transition times in 2002 were off by a minute.
* Changes affecting documentation and commentary.
Summary of changes in tzdata2015g (2015-10-01 00:39:51 -0700):
* Turkey's 2015 fall-back transition is scheduled for Nov.
* Norfolk moves from +1130 to +1100 on 2015-10-04 at 02:00 local time.
* Fiji's 2016 fall-back transition is scheduled for January 17, not 24.
* Fort Nelson, British Columbia will not fall back on 2015-11-01.
* Norfolk observed DST from 1974-10-27 02:00 to 1975-03-02 02:00.
* Changes affecting documentation.