Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Adjust dates in the change log to exactly correspond to the version control check-in dates. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
cc892543703da3314d8be3584430ad08 |
User & Date: | drh 2015-10-12 17:05:18.160 |
Context
2015-10-12
| ||
18:04 | Fix typos. (check-in: 63898e2980 user: drh tags: trunk) | |
17:05 | Adjust dates in the change log to exactly correspond to the version control check-in dates. (check-in: cc89254370 user: drh tags: trunk) | |
12:24 | More succinct intro text on the chronology page. (check-in: 6cb597fbc9 user: drh tags: trunk) | |
Changes
Changes to pages/changes.in.
︙ | ︙ | |||
289 290 291 292 293 294 295 | chng {2014-12-09 (3.8.7.4)} { <li>Bug fix: Add in a mutex that was omitted from the previous release. <li>SQLITE_SOURCE_ID: "2014-12-09 01:34:36 f66f7a17b78ba617acde90fc810107f34f1a1f2e" <li>SHA1 for sqlite3.c: 0a56693a3c24aa3217098afab1b6fecccdedfd23 } | | | | | 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 | chng {2014-12-09 (3.8.7.4)} { <li>Bug fix: Add in a mutex that was omitted from the previous release. <li>SQLITE_SOURCE_ID: "2014-12-09 01:34:36 f66f7a17b78ba617acde90fc810107f34f1a1f2e" <li>SHA1 for sqlite3.c: 0a56693a3c24aa3217098afab1b6fecccdedfd23 } chng {2014-12-05 (3.8.7.3)} { <li>Bug fix: Ensure the cached KeyInfo objects (an internal abstraction not visible to the application) do not go stale when operating in [shared cache mode] and frequently closing and reopening some database connections while leaving other database connections on the same shared cache open continuously. Ticket [https://www.sqlite.org/src/info/e4a18565a36884b00edf|e4a18565a36884b00edf]. <li>Bug fix: Recognize that any column in the right-hand table of a LEFT JOIN can be NULL even if the column has a NOT NULL constraint. Do not apply optimizations that assume the column is never NULL. Ticket [https://www.sqlite.org/src/info/6f2222d550f5b0ee7ed|6f2222d550f5b0ee7ed]. <li>SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86" <li>SHA1 for sqlite3.c: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261 } chng {2014-11-18 (3.8.7.2)} { <li>Enhance the [ROLLBACK] command so that pending queries are allowed to continue as long as the schema is unchanged. Formerly, a ROLLBACK would cause all pending queries to fail with an [SQLITE_ABORT] or [SQLITE_ABORT_ROLLBACK] error. That error is still returned if the ROLLBACK modifies the schema. <li>Bug fix: Make sure that NULL results from OP_Column are fully and completely NULL and do not have the MEM_Ephem bit set. Ticket [http://www.sqlite.org/src/info/094d39a4c95ee4|094d39a4c95ee4]. <li>Bug fix: The %c format in sqlite3_mprintf() is able to handle precisions greater than 70. <li>Bug fix: Do not automatically remove the DISTINCT keyword from a SELECT that forms the right-hand side of an IN operator since it is necessary if the SELECT also contains a LIMIT. Ticket [http://www.sqlite.org/src/info/db87229497|db87229497]. <li>SQLITE_SOURCE_ID: "2014-11-18 20:57:56 2ab564bf9655b7c7b97ab85cafc8a48329b27f93" <li>SHA1 for sqlite3.c: b2a68d5783f48dba6a8cb50d8bf69b238c5ec53a } chng {2014-10-29 (3.8.7.1)} { <li>In [PRAGMA journal_mode=TRUNCATE] mode, call fsync() immediately after truncating the journal file to ensure that the transaction is durable across a power loss. <li>Fix an assertion fault that can occur when updating the NULL value of a field at the end of a table that was added using [ALTER TABLE|ALTER TABLE ADD COLUMN]. <li>Do not attempt to use the strchrnul() function from the standard C library unless the HAVE_STRCHRNULL compile-time option is set. <li>Fix a couple of problems associated with running an UPDATE or DELETE on a |
︙ | ︙ | |||
1306 1307 1308 1309 1310 1311 1312 | [PRAGMA case_sensitive_like] statements compiled using sqlite3_prepare() to fail with an [SQLITE_SCHEMA] error. <li> SQLITE_SOURCE_ID: "2011-06-28 17:39:05 af0d91adf497f5f36ec3813f04235a6e195a605f" <li> SHA1 for sqlite3.c: d47594b8a02f6cf58e91fb673e96cb1b397aace0 } | | | 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 | [PRAGMA case_sensitive_like] statements compiled using sqlite3_prepare() to fail with an [SQLITE_SCHEMA] error. <li> SQLITE_SOURCE_ID: "2011-06-28 17:39:05 af0d91adf497f5f36ec3813f04235a6e195a605f" <li> SHA1 for sqlite3.c: d47594b8a02f6cf58e91fb673e96cb1b397aace0 } chng {2011-06-23 (3.7.7)} { <li> Add support for [URI filenames] <li> Add the [sqlite3_vtab_config()] interface in support of [ON CONFLICT] clauses with [virtual tables]. <li> Add the [xSavepoint], [xRelease] and [xRollbackTo] methods in [virtual tables] in support of [SAVEPOINT] for virtual tables. <li> Update the built-in [FTS3|FTS3/FTS4] and [RTREE] virtual tables to support [ON CONFLICT] clauses and [REPLACE]. |
︙ | ︙ | |||
1339 1340 1341 1342 1343 1344 1345 | POSIX. Without this fix, pthreads does not work correctly on NetBSD. <li> SQLITE_SOURCE_ID: "2011-04-17 17:25:17 154ddbc17120be2915eb03edc52af1225eb7cb5e" <li> SHA1 for sqlite3.c: 806577fd524dd5f3bfd8d4d27392ed2752bc9701 } | | | 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 | POSIX. Without this fix, pthreads does not work correctly on NetBSD. <li> SQLITE_SOURCE_ID: "2011-04-17 17:25:17 154ddbc17120be2915eb03edc52af1225eb7cb5e" <li> SHA1 for sqlite3.c: 806577fd524dd5f3bfd8d4d27392ed2752bc9701 } chng {2011-04-13 (3.7.6.1)} { <li> Fix a bug in 3.7.6 that only appears if the [SQLITE_FCNTL_SIZE_HINT] file control is used with a build of SQLite that makes use of the HAVE_POSIX_FALLOCATE compile-time option and which has SQLITE_ENABLE_LOCKING_MODE turned off. <li> SQLITE_SOURCE_ID: "2011-04-13 14:40:25 a35e83eac7b185f4d363d7fa51677f2fdfa27695" <li> SHA1 for sqlite3.c: b81bfa27d3e09caf3251475863b1ce6dd9f6ab66 |
︙ | ︙ | |||
1407 1408 1409 1410 1411 1412 1413 | operation code. <li> The SQLite core invokes the [SQLITE_FCNTL_SYNC_OMITTED] [sqlite3_file_control | file control] to the VFS in place of a call to xSync if the database has [PRAGMA synchronous] set to OFF. } | | | 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 | operation code. <li> The SQLite core invokes the [SQLITE_FCNTL_SYNC_OMITTED] [sqlite3_file_control | file control] to the VFS in place of a call to xSync if the database has [PRAGMA synchronous] set to OFF. } chng {2010-12-07 (3.7.4)} { <li> Added the [sqlite3_blob_reopen()] interface to allow an existing [sqlite3_blob] object to be rebound to a new row. <li> Use the new [sqlite3_blob_reopen()] interface to improve the performance of FTS. <li> [sqlite3_vfs | VFSes] that do not support shared memory are allowed to access [WAL] databases if [PRAGMA locking_mode] is set to EXCLUSIVE. <li> Enhancements to [EXPLAIN QUERY PLAN]. |
︙ | ︙ | |||
1493 1494 1495 1496 1497 1498 1499 | and version 3.6.23.1 alternately write to the same database file. <a href="http://www.sqlite.org/src/info/51ae9cad317a1"> Ticket [51ae9cad317a1]</a> <li> Fix a performance regression related to the query planner enhancements of version 3.7.0. } | | | | 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 | and version 3.6.23.1 alternately write to the same database file. <a href="http://www.sqlite.org/src/info/51ae9cad317a1"> Ticket [51ae9cad317a1]</a> <li> Fix a performance regression related to the query planner enhancements of version 3.7.0. } chng {2010-07-21 (3.7.0)} { <li> Added support for [WAL | write-ahead logging]. <li> Query planner enhancement - automatic transient indices are created when doing so reduces the estimated query time. <li> Query planner enhancement - the ORDER BY becomes a no-op if the query also contains a GROUP BY clause that forces the correct output order. <li> Add the [SQLITE_DBSTATUS_CACHE_USED] verb for [sqlite3_db_status()]. <li> The logical database size is now stored in the database header so that bytes can be appended to the end of the database file without corrupting it and so that SQLite will work correctly on systems that lack support for ftruncate(). } chng {2010-03-26 (3.6.23.1)} { <li> Fix a bug in the offsets() function of [FTS3] <li> Fix a missing "sync" that when omitted could lead to database corruption if a power failure or OS crash occurred just as a ROLLBACK operation was finishing. } chng {2010-03-09 (3.6.23)} { |
︙ | ︙ | |||
2443 2444 2445 2446 2447 2448 2449 | chng {2006-01-16 (3.3.1 alpha)} { <li>Countless bug fixes</li> <li>Speed improvements</li> <li>Database connections can now be used by multiple threads, not just the thread in which they were created.</li> } | | | 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 | chng {2006-01-16 (3.3.1 alpha)} { <li>Countless bug fixes</li> <li>Speed improvements</li> <li>Database connections can now be used by multiple threads, not just the thread in which they were created.</li> } chng {2006-01-11 (3.3.0 alpha)} { <li>CHECK constraints</li> <li>IF EXISTS and IF NOT EXISTS clauses on CREATE/DROP TABLE/INDEX.</li> <li>DESC indices</li> <li>More efficient encoding of boolean values resulting in smaller database files</li> <li>More aggressive [SQLITE_OMIT_FLOATING_POINT]</li> <li>Separate INTEGER and REAL affinity</li> |
︙ | ︙ | |||
2552 2553 2554 2555 2556 2557 2558 | <li>Use indices to help with GLOB expressions and LIKE expressions too when the case_sensitive_like pragma is enabled</li> <li>Added support for grave-accent quoting for compatibility with MySQL</li> <li>Improved test coverage</li> <li>Dozens of minor bug fixes</li> } | | | 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 | <li>Use indices to help with GLOB expressions and LIKE expressions too when the case_sensitive_like pragma is enabled</li> <li>Added support for grave-accent quoting for compatibility with MySQL</li> <li>Improved test coverage</li> <li>Dozens of minor bug fixes</li> } chng {2005-06-12 (3.2.2)} { <li>Added the sqlite3_db_handle() API</li> <li>Added the sqlite3_get_autocommit() API</li> <li>Added a REGEXP operator to the parser. There is no function to back up this operator in the standard build but users can add their own using sqlite3_create_function()</li> <li>Speed improvements and library footprint reductions.</li> <li>Fix byte alignment problems on 64-bit architectures.</li> |
︙ | ︙ | |||
2575 2576 2577 2578 2579 2580 2581 | chng {2005-03-21 (3.2.0)} { <li>Added support for ALTER TABLE ADD COLUMN.</li> <li>Added support for the "T" separator in ISO-8601 date/time strings.</li> <li>Improved support for Cygwin.</li> <li>Numerous bug fixes and documentation updates.</li> } | | | | 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 | chng {2005-03-21 (3.2.0)} { <li>Added support for ALTER TABLE ADD COLUMN.</li> <li>Added support for the "T" separator in ISO-8601 date/time strings.</li> <li>Improved support for Cygwin.</li> <li>Numerous bug fixes and documentation updates.</li> } chng {2005-03-17 (3.1.6)} { <li>Fix a bug that could cause database corruption when inserting record into tables with around 125 columns.</li> <li>sqlite3_step() is now much more likely to invoke the busy handler and less likely to return SQLITE_BUSY.</li> <li>Fix memory leaks that used to occur after a malloc() failure.</li> } chng {2005-03-11 (3.1.5)} { <li>The ioctl on Mac OS X to control syncing to disk is F_FULLFSYNC, not F_FULLSYNC. The previous release had it wrong.</li> } chng {2005-03-11 (3.1.4)} { <li>Fix a bug in autovacuum that could cause database corruption if a CREATE UNIQUE INDEX fails because of a constraint violation. This problem only occurs if the new autovacuum feature introduced in version 3.1 is turned on.</li> <li>The F_FULLSYNC ioctl (currently only supported on Mac OS X) is disabled if the synchronous pragma is set to something other than "full".</li> <li>Add additional forward compatibility to the future version 3.2 database |
︙ | ︙ | |||
2656 2657 2658 2659 2660 2661 2662 | and reduce the library footprint.</li> <li>The REINDEX command was added.</li> <li>The engine no longer consults the main table if it can get all the information it needs from an index.</li> <li>Many nuisance bugs fixed.</li> } | | | 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 | and reduce the library footprint.</li> <li>The REINDEX command was added.</li> <li>The engine no longer consults the main table if it can get all the information it needs from an index.</li> <li>Many nuisance bugs fixed.</li> } chng {2004-10-12 (3.0.8)} { <li>Add support for DEFERRED, IMMEDIATE, and EXCLUSIVE transactions.</li> <li>Allow new user-defined functions to be created when there are already one or more precompiled SQL statements.<li> <li>Fix portability problems for MinGW/MSYS.</li> <li>Fix a byte alignment problem on 64-bit Sparc machines.</li> <li>Fix the ".import" command of the shell so that it ignores \r characters at the end of lines.</li> |
︙ | ︙ | |||
2711 2712 2713 2714 2715 2716 2717 | <li>Add the ability to specify an alternative temporary file directory using the "sqlite_temp_directory" global variable.</li> <li>A compile-time option (SQLITE_BUSY_RESERVED_LOCK) causes the busy handler to be called when there is contention for a RESERVED lock.</li> <li>Various bug fixes and optimizations</li> } | | | 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 | <li>Add the ability to specify an alternative temporary file directory using the "sqlite_temp_directory" global variable.</li> <li>A compile-time option (SQLITE_BUSY_RESERVED_LOCK) causes the busy handler to be called when there is contention for a RESERVED lock.</li> <li>Various bug fixes and optimizations</li> } chng {2004-08-09 (3.0.4 beta)} { <li>CREATE TABLE and DROP TABLE now work correctly as prepared statements.</li> <li>Fix a bug in VACUUM and UNIQUE indices.</li> <li>Add the ".import" command to the command-line shell.</li> <li>Fix a bug that could cause index corruption when an attempt to delete rows of a table is blocked by a pending query.</li> <li>Library size optimizations.</li> <li>Other minor bug fixes.</li> |
︙ | ︙ | |||
2806 2807 2808 2809 2810 2811 2812 | } chng {2004-01-14 (2.8.11)} { <li>Fix a bug in how the IN operator handles NULLs in subqueries. The bug was introduced by the previous release.</li> } | | | | | 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 | } chng {2004-01-14 (2.8.11)} { <li>Fix a bug in how the IN operator handles NULLs in subqueries. The bug was introduced by the previous release.</li> } chng {2004-01-14 (2.8.10)} { <li>Fix a potential database corruption problem on Unix caused by the fact that all POSIX advisory locks are cleared whenever you close() a file. The work around it to embargo all close() calls while locks are outstanding.</li> <li>Performance enhancements on some corner cases of COUNT(*).</li> <li>Make sure the in-memory backend response sanely if malloc() fails.</li> <li>Allow sqlite_exec() to be called from within user-defined SQL functions.</li> <li>Improved accuracy of floating-point conversions using "long double".</li> <li>Bug fixes in the experimental date/time functions.</li> } chng {2004-01-06 (2.8.9)} { <li>Fix a 32-bit integer overflow problem that could result in corrupt indices in a database if large negative numbers (less than -2147483648) were inserted into an indexed numeric column.</li> <li>Fix a locking problem on multi-threaded Linux implementations.</li> <li>Always use "." instead of "," as the decimal point even if the locale requests ",".</li> <li>Added UTC to localtime conversions to the experimental date/time functions.</li> <li>Bug fixes to date/time functions.</li> } chng {2003-12-18 (2.8.8)} { <li>Fix a critical bug introduced into 2.8.0 which could cause database corruption.</li> <li>Fix a problem with 3-way joins that do not use indices</li> <li>The VACUUM command now works with the non-callback API</li> <li>Improvements to the "PRAGMA integrity_check" command</li> } |
︙ | ︙ | |||
2854 2855 2856 2857 2858 2859 2860 | <li>Documentation updates and typo fixes</li> <li>Added experimental sqlite_progress_handler() callback API</li> <li>Removed support for the Oracle8 outer join syntax.</li> <li>Allow GLOB and LIKE operators to work as functions.</li> <li>Other minor documentation and makefile changes and bug fixes.</li> } | | | 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 | <li>Documentation updates and typo fixes</li> <li>Added experimental sqlite_progress_handler() callback API</li> <li>Removed support for the Oracle8 outer join syntax.</li> <li>Allow GLOB and LIKE operators to work as functions.</li> <li>Other minor documentation and makefile changes and bug fixes.</li> } chng {2003-08-22 (2.8.6)} { <li>Moved the CVS repository to www.sqlite.org</li> <li>Update the NULL-handling documentation.</li> <li>Experimental date/time functions added.</li> <li>Bug fix: correctly evaluate a view of a view without segfaulting.</li> <li>Bug fix: prevent database corruption if you dropped a trigger that had the same name as a table.</li> <li>Bug fix: allow a VACUUM (without segfaulting) on an empty |
︙ | ︙ | |||
2903 2904 2905 2906 2907 2908 2909 | } chng {2003-05-17 (2.8.2)} { <li>Fix a problem that will corrupt the database file if you drop a table from the main database that has a TEMP index.</li> } | | | 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 | } chng {2003-05-17 (2.8.2)} { <li>Fix a problem that will corrupt the database file if you drop a table from the main database that has a TEMP index.</li> } chng {2003-05-17 (2.8.1)} { <li>Reactivated the VACUUM command that reclaims unused disk space in a database file.</li> <li>Added the ATTACH and DETACH commands to allow interacting with multiple database files at the same time.</li> <li>Added support for TEMP triggers and indices.</li> <li>Added support for in-memory databases.</li> <li>Removed the experimental sqlite_open_aux_file(). Its function is |
︙ | ︙ | |||
2934 2935 2936 2937 2938 2939 2940 | not been written - see the source code comments for instructions on how to use this function.</li> <li>Fix a bug in the GLOB operator that was preventing it from working with upper-case letters.</li> <li>Various minor bug fixes.</li> } | | | | 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 | not been written - see the source code comments for instructions on how to use this function.</li> <li>Fix a bug in the GLOB operator that was preventing it from working with upper-case letters.</li> <li>Various minor bug fixes.</li> } chng {2002-12-28 (2.7.5)} { <li>Fix an uninitialized variable in pager.c which could (with a probability of about 1 in 4 billion) result in a corrupted database.</li> } chng {2002-12-17 (2.7.4)} { <li>Database files can now grow to be up to 2^41 bytes. The old limit was 2^31 bytes.</li> <li>The optimizer will now scan tables in the reverse if doing so will satisfy an ORDER BY ... DESC clause.</li> <li>The full pathname of the database file is now remembered even if a relative path is passed into sqlite_open(). This allows the library to continue operating correctly after a chdir().</li> <li>Speed improvements in the VDBE.</li> <li>Lots of little bug fixes.</li> } chng {2002-10-31 (2.7.3)} { <li>Various compiler compatibility fixes.</li> <li>Fix a bug in the "expr IN ()" operator.</li> <li>Accept column names in parentheses.</li> <li>Fix a problem with string memory management in the VDBE</li> <li>Fix a bug in the "table_info" pragma"</li> <li>Export the sqlite_function_type() API function in the Windows DLL</li> <li>Fix locking behavior under Windows</li> |
︙ | ︙ | |||
2989 2990 2991 2992 2993 2994 2995 | numeric order.</li> <li>Allow multiple simultaneous readers under Windows by simulating the reader/writers locks that are missing from Win95/98/ME.</li> <li>An error is now returned when trying to start a transaction if another transaction is already active.</li> } | | | | | 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 | numeric order.</li> <li>Allow multiple simultaneous readers under Windows by simulating the reader/writers locks that are missing from Win95/98/ME.</li> <li>An error is now returned when trying to start a transaction if another transaction is already active.</li> } chng {2002-08-13 (2.6.3)} { <li>Add the ability to read both little-endian and big-endian databases. So a database created under SunOS or Mac OS X can be read and written under Linux or Windows and vice versa.</li> <li>Convert to the new website: http://www.sqlite.org/</li> <li>Allow transactions to span Linux Threads</li> <li>Bug fix in the processing of the ORDER BY clause for GROUP BY queries</li> } chng {2002-07-31 (2.6.2)} { <li>Text files read by the COPY command can now have line terminators of LF, CRLF, or CR.</li> <li>SQLITE_BUSY is handled correctly if encountered during database initialization.</li> <li>Fix to UPDATE triggers on TEMP tables.</li> <li>Documentation updates.</li> } chng {2002-07-19 (2.6.1)} { <li>Include a static string in the library that responds to the RCS "ident" command and which contains the library version number.</li> <li>Fix an assertion failure that occurred when deleting all rows of a table with the "count_changes" pragma turned on.</li> <li>Better error reporting when problems occur during the automatic 2.5.6 to 2.6.0 database format upgrade.</li> } chng {2002-07-18 (2.6.0)} { <li>Change the format of indices to correct a design flaw the originated with version 2.1.0. <font color="red">*** This is an incompatible file format change ***</font> When version 2.6.0 or later of the library attempts to open a database file created by version 2.5.6 or earlier, it will automatically and irreversibly convert the file format. <b>Make backup copies of older database files before opening them with version 2.6.0 of the library.</b> |
︙ | ︙ | |||
3051 3052 3053 3054 3055 3056 3057 | callback.</li> <li>Added the <b>sqlite_open_aux_file()</b> API, though it is still mostly undocumented and untested.</li> <li>Added additional test cases and fixed a few bugs that those test cases found.</li> } | | | | 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 | callback.</li> <li>Added the <b>sqlite_open_aux_file()</b> API, though it is still mostly undocumented and untested.</li> <li>Added additional test cases and fixed a few bugs that those test cases found.</li> } chng {2002-06-25 (2.5.3)} { <li>Bug fix: Database corruption can occur due to the optimization that was introduced in version 2.4.0 (check-in [410]). The problem should now be fixed. The use of versions 2.4.0 through 2.5.2 is not recommended.</li> } chng {2002-06-25 (2.5.2)} { <li>Added the new <b>SQLITE_TEMP_MASTER</b> table which records the schema for temporary tables in the same way that <b>SQLITE_MASTER</b> does for persistent tables.</li> <li>Added an optimization to UNION ALL</li> <li>Fixed a bug in the processing of LEFT OUTER JOIN</li> <li>The LIMIT clause now works on subselects</li> <li>ORDER BY works on subselects</li> |
︙ | ︙ | |||
3091 3092 3093 3094 3095 3096 3097 | generator.</li> <li>Make the LIMIT clause work on subqueries. (ORDER BY still does not work, though.)</li> <li>Added the "%Q" expansion to sqlite_*_printf().</li> <li>Bug fixes too numerous to mention (see the change log).</li> } | | | | | | | | | | | 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 | generator.</li> <li>Make the LIMIT clause work on subqueries. (ORDER BY still does not work, though.)</li> <li>Added the "%Q" expansion to sqlite_*_printf().</li> <li>Bug fixes too numerous to mention (see the change log).</li> } chng {2002-05-10 (2.4.12)} { <li>Added logic to detect when the library API routines are called out of sequence.</li> } chng {2002-05-08 (2.4.11)} { <li>Bug fix: Column names in the result set were not being generated correctly for some (rather complex) VIEWs. This could cause a segfault under certain circumstances.</li> } chng {2002-05-03 (2.4.10)} { <li>Bug fix: Generate correct column headers when a compound SELECT is used as a subquery.</li> <li>Added the sqlite_encode_binary() and sqlite_decode_binary() functions to the source tree. But they are not yet linked into the library.</li> <li>Documentation updates.</li> <li>Export the sqlite_changes() function from Windows DLLs.</li> <li>Bug fix: Do not attempt the subquery flattening optimization on queries that lack a FROM clause. To do so causes a segfault.</li> } chng {2002-04-22 (2.4.9)} { <li>Fix a bug that was causing the precompiled binary of SQLITE.EXE to report "out of memory" under Windows 98.</li> } chng {2002-04-20 (2.4.8)} { <li>Make sure VIEWs are created after their corresponding TABLEs in the output of the <b>.dump</b> command in the shell.</li> <li>Speed improvements: Do not do synchronous updates on TEMP tables.</li> <li>Many improvements and enhancements to the shell.</li> <li>Make the GLOB and LIKE operators functions that can be overridden by a programmer. This allows, for example, the LIKE operator to be changed to be case sensitive.</li> } chng {2002-04-12 (2.4.7)} { <li>Add the ability to put TABLE.* in the column list of a SELECT statement.</li> <li>Permit SELECT statements without a FROM clause.</li> <li>Added the <b>last_insert_rowid()</b> SQL function.</li> <li>Do not count rows where the IGNORE conflict resolution occurs in the row count.</li> <li>Make sure functions expressions in the VALUES clause of an INSERT are correct.</li> <li>Added the <b>sqlite_changes()</b> API function to return the number of row that changed in the most recent operation.</li> } chng {2002-04-02 (2.4.6)} { <li>Bug fix: Correctly handle terms in the WHERE clause of a join that do not contain a comparison operator.</li> } chng {2002-04-02 (2.4.5)} { <li>Bug fix: Correctly handle functions that appear in the WHERE clause of a join.</li> <li>When the PRAGMA vdbe_trace=ON is set, correctly print the P3 operand value when it is a pointer to a structure rather than a pointer to a string.</li> <li>When inserting an explicit NULL into an INTEGER PRIMARY KEY, convert the NULL value into a unique key automatically.</li> } chng {2002-03-30 (2.4.4)} { <li>Allow "VIEW" to be a column name</li> <li>Added support for CASE expressions (patch from Dan Kennedy)</li> <li>Added RPMS to the delivery (patches from Doug Henry)</li> <li>Fix typos in the documentation</li> <li>Cut over configuration management to a new CVS repository with its own CVSTrac bug tracking system.</li> } chng {2002-03-23 (2.4.3)} { <li>Fix a bug in SELECT that occurs when a compound SELECT is used as a subquery in the FROM of a SELECT.</li> <li>The <b>sqlite_get_table()</b> function now returns an error if you give it two or more SELECTs that return different numbers of columns.</li> } chng {2002-03-20 (2.4.2)} { <li>Bug fix: Fix an assertion failure that occurred when ROWID was a column in a SELECT statement on a view.</li> <li>Bug fix: Fix an uninitialized variable in the VDBE that would could an assert failure.</li> <li>Make the os.h header file more robust in detecting when the compile is for Windows and when it is for Unix.</li> } chng {2002-03-13 (2.4.1)} { <li>Using an unnamed subquery in a FROM clause would cause a segfault.</li> <li>The parser now insists on seeing a semicolon or the end of input before executing a statement. This avoids an accidental disaster if the WHERE keyword is misspelled in an UPDATE or DELETE statement.</li> } chng {2002-03-11 (2.4.0)} { <li>Change the name of the sanity_check PRAGMA to <b>integrity_check</b> and make it available in all compiles.</li> <li>SELECT min() or max() of an indexed column with no WHERE or GROUP BY clause is handled as a special case which avoids a complete table scan.</li> <li>Automatically generated ROWIDs are now sequential.</li> <li>Do not allow dot-commands of the command-line shell to occur in the middle of a real SQL command.</li> |
︙ | ︙ | |||
3216 3217 3218 3219 3220 3221 3222 | about 2.5 times faster and large DELETEs about 5 times faster.</li> <li>Made the CACHE_SIZE pragma persistent</li> <li>Added the SYNCHRONOUS pragma</li> <li>Fixed a bug that was causing updates to fail inside of transactions when the database contained a temporary table.</li> } | | | 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 | about 2.5 times faster and large DELETEs about 5 times faster.</li> <li>Made the CACHE_SIZE pragma persistent</li> <li>Added the SYNCHRONOUS pragma</li> <li>Fixed a bug that was causing updates to fail inside of transactions when the database contained a temporary table.</li> } chng {2002-02-19 (2.3.3)} { <li>Allow identifiers to be quoted in square brackets, for compatibility with MS-Access.</li> <li>Added support for sub-queries in the FROM clause of a SELECT.</li> <li>More efficient implementation of sqliteFileExists() under Windows. (by Joel Luscy)</li> <li>The VALUES clause of an INSERT can now contain expressions, including scalar SELECT clauses.</li> |
︙ | ︙ | |||
3242 3243 3244 3245 3246 3247 3248 | chng {2002-02-13 (2.3.1)} { <li>Bug fix: An assertion was failing if "PRAGMA full_column_names=ON;" was set and you did a query that used a rowid, like this: "SELECT rowid, * FROM ...".</li> } | | | 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 | chng {2002-02-13 (2.3.1)} { <li>Bug fix: An assertion was failing if "PRAGMA full_column_names=ON;" was set and you did a query that used a rowid, like this: "SELECT rowid, * FROM ...".</li> } chng {2002-02-03 (2.3.0)} { <li>Fix a serious bug in the INSERT command which was causing data to go into the wrong columns if the data source was a SELECT and the INSERT clauses specified its columns in some order other than the default.</li> <li>Added the ability to resolve constraint conflicts is ways other than an abort and rollback. See the documentation on the "ON CONFLICT" clause for details.</li> <li>Temporary files are now automatically deleted by the operating system |
︙ | ︙ | |||
3284 3285 3286 3287 3288 3289 3290 | chng {2002-01-16 (2.2.3)} { <li>Fix warning messages in VC++ 7.0. (Patches from nicolas352001)</li> <li>Make the library thread-safe. (The code is there and appears to work but has not been stressed.)</li> <li>Added the new <b>sqlite_last_insert_rowid()</b> API function.</li> } | | | 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 | chng {2002-01-16 (2.2.3)} { <li>Fix warning messages in VC++ 7.0. (Patches from nicolas352001)</li> <li>Make the library thread-safe. (The code is there and appears to work but has not been stressed.)</li> <li>Added the new <b>sqlite_last_insert_rowid()</b> API function.</li> } chng {2002-01-14 (2.2.2)} { <li>Bug fix: An assertion was failing when a temporary table with an index had the same name as a permanent table created by a separate process.</li> <li>Bug fix: Updates to tables containing an INTEGER PRIMARY KEY and an index could fail.</li> } chng {2002-01-09 (2.2.1)} { |
︙ | ︙ | |||
3312 3313 3314 3315 3316 3317 3318 | implemented the integer primary key change of the previous bullet.</li> <li>Added the ability to specify "*" as part of a larger column list in the result section of a SELECT statement. For example: <nobr>"<b>SELECT rowid, * FROM table1;</b>"</nobr>.</li> <li>Updates to comments and documentation.</li> } | | | 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 | implemented the integer primary key change of the previous bullet.</li> <li>Added the ability to specify "*" as part of a larger column list in the result section of a SELECT statement. For example: <nobr>"<b>SELECT rowid, * FROM table1;</b>"</nobr>.</li> <li>Updates to comments and documentation.</li> } chng {2001-12-15 (2.1.7)} { <li>Fix a bug in <b>CREATE TEMPORARY TABLE</b> which was causing the table to be initially allocated in the main database file instead of in the separate temporary file. This bug could cause the library to suffer an assertion failure and it could cause "page leaks" in the main database file. <li>Fix a bug in the b-tree subsystem that could sometimes cause the first row of a table to be repeated during a database scan.</li> |
︙ | ︙ | |||
3336 3337 3338 3339 3340 3341 3342 | chng {2001-12-06 (2.1.5)} { <li>Fix for another problem (unrelated to the one fixed in 2.1.4) that sometimes causes <b>sqlite_exec()</b> to return SQLITE_PROTOCOL unnecessarily. This time the bug was in the POSIX locking code and should not effect Windows users.</li> } | | | | | 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 | chng {2001-12-06 (2.1.5)} { <li>Fix for another problem (unrelated to the one fixed in 2.1.4) that sometimes causes <b>sqlite_exec()</b> to return SQLITE_PROTOCOL unnecessarily. This time the bug was in the POSIX locking code and should not effect Windows users.</li> } chng {2001-12-05 (2.1.4)} { <li>Sometimes <b>sqlite_exec()</b> would return SQLITE_PROTOCOL when it should have returned SQLITE_BUSY.</li> <li>The fix to the previous bug uncovered a deadlock which was also fixed.</li> <li>Add the ability to put a single .command in the second argument of the sqlite shell</li> <li>Updates to the FAQ</li> } chng {2001-11-24 (2.1.3)} { <li>Fix the behavior of comparison operators (ex: "<b><</b>", "<b>==</b>", etc.) so that they are consistent with the order of entries in an index.</li> <li>Correct handling of integers in SQL expressions that are larger than what can be represented by the machine integer.</li> } chng {2001-11-23 (2.1.2)} { <li>Changes to support 64-bit architectures.</li> <li>Fix a bug in the locking protocol.</li> <li>Fix a bug that could (rarely) cause the database to become unreadable after a DROP TABLE due to corruption to the SQLITE_MASTER table.</li> <li>Change the code so that version 2.1.1 databases that were rendered unreadable by the above bug can be read by this version of |
︙ | ︙ | |||
3388 3389 3390 3391 3392 3393 3394 | <li>Documentation updates</li> <li>Simplify the design of the VDBE by restricting the number of sorters and lists to 1. In practice, no more than one sorter and one list was ever used anyhow. </li> } | | | | 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 | <li>Documentation updates</li> <li>Simplify the design of the VDBE by restricting the number of sorters and lists to 1. In practice, no more than one sorter and one list was ever used anyhow. </li> } chng {2001-10-22 (2.0.7)} { <li>Any UTF-8 character or ISO8859 character can be used as part of an identifier.</li> <li>Patches from Christian Werner to improve ODBC compatibility and to fix a bug in the round() function.</li> <li>Plug some memory leaks that use to occur if malloc() failed. We have been and continue to be memory leak free as long as malloc() works.</li> <li>Changes to some test scripts so that they work on Windows in addition to Unix.</li> } chng {2001-10-19 (2.0.6)} { <li>Added the EMPTY_RESULT_CALLBACKS pragma</li> <li>Support for UTF-8 and ISO8859 characters in column and table names.</li> <li>Bug fix: Compute correct table names with the FULL_COLUMN_NAMES pragma is turned on.</li> } chng {2001-10-15 (2.0.5)} { <li>Added the COUNT_CHANGES pragma.</li> <li>Changes to the FULL_COLUMN_NAMES pragma to help out the ODBC driver.</li> <li>Bug fix: "SELECT count(*)" was returning NULL for empty tables. Now it returns 0.</li> } chng {2001-10-13 (2.0.4)} { |
︙ | ︙ | |||
3490 3491 3492 3493 3494 3495 3496 | chng {2001-07-23 (1.0.32)} { <li>Pager and btree subsystems removed. These will be used in a follow-on SQL server library named "SQLus".</li> <li>Add the ability to use quoted strings as table and column names in expressions.</li> } | | | 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 | chng {2001-07-23 (1.0.32)} { <li>Pager and btree subsystems removed. These will be used in a follow-on SQL server library named "SQLus".</li> <li>Add the ability to use quoted strings as table and column names in expressions.</li> } chng {2001-04-15 (1.0.31)} { <li>Pager subsystem added but not yet used.</li> <li>More robust handling of out-of-memory errors.</li> <li>New tests added to the test suite.</li> } chng {2001-04-06 (1.0.30)} { <li>Remove the <b>sqlite_encoding</b> TCL variable that was introduced |
︙ | ︙ | |||
3560 3561 3562 3563 3564 3565 3566 | <li>Fix a bug which was causing the UPDATE command to fail on systems where "malloc(0)" returns NULL. The problem does not appear on Windows, Linux, or HPUX but does cause the library to fail on QNX. </li> } | | | 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 | <li>Fix a bug which was causing the UPDATE command to fail on systems where "malloc(0)" returns NULL. The problem does not appear on Windows, Linux, or HPUX but does cause the library to fail on QNX. </li> } chng {2001-02-20 (1.0.23)} { <li>An unrelated (and minor) bug from Mark Muranwski fixed. The algorithm for figuring out where to put temporary files for a "memory:" database was not working quite right. </li> } chng {2001-02-19 (1.0.22)} { |
︙ | ︙ | |||
3602 3603 3604 3605 3606 3607 3608 | chng {2000-12-10 (1.0.17)} { <li>Rewrote <b>sqlite_complete()</b> to make it faster.</li> <li>Minor tweaks to other code to make it run a little faster.</li> <li>Added new tests for <b>sqlite_complete()</b> and for memory leaks.</li> } | | | | | | 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 | chng {2000-12-10 (1.0.17)} { <li>Rewrote <b>sqlite_complete()</b> to make it faster.</li> <li>Minor tweaks to other code to make it run a little faster.</li> <li>Added new tests for <b>sqlite_complete()</b> and for memory leaks.</li> } chng {2000-11-28 (1.0.16)} { <li>Documentation updates. Mostly fixing of typos and spelling errors.</li> } chng {2000-10-23 (1.0.15)} { <li>Documentation updates</li> <li>Some sanity checking code was removed from the inner loop of vdbe.c to help the library to run a little faster. The code is only removed if you compile with -DNDEBUG.</li> } chng {2000-10-19 (1.0.14)} { <li>Added a "memory:" backend driver that stores its database in an in-memory hash table.</li> } chng {2000-10-19 (1.0.13)} { <li>Break out the GDBM driver into a separate file in anticipation to added new drivers.</li> <li>Allow the name of a database to be prefixed by the driver type. For now, the only driver type is "gdbm:".</li> } chng {2000-10-17 (1.0.12)} { <li>Fixed an off-by-one error that was causing a coredump in the '%q' format directive of the new <b>sqlite_..._printf()</b> routines.</li> <li>Added the <b>sqlite_interrupt()</b> interface.</li> <li>In the shell, <b>sqlite_interrupt()</b> is invoked when the user presses Control-C</li> <li>Fixed some instances where <b>sqlite_exec()</b> was returning the wrong error code.</li> } chng {2000-10-11 (1.0.10)} { <li>Added notes on how to compile for Windows95/98.</li> <li>Removed a few variables that were not being used. Etc.</li> } chng {2000-10-09 (1.0.9)} { <li>Added the <b>sqlite_..._printf()</b> interface routines.</li> <li>Modified the <b>sqlite</b> shell program to use the new interface routines.</li> <li>Modified the <b>sqlite</b> shell program to print the schema for the built-in SQLITE_MASTER table, if explicitly requested.</li> } |
︙ | ︙ | |||
3670 3671 3672 3673 3674 3675 3676 | chng {2000-09-21 (Not Released)} { <li>Change the tclsqlite "eval" method to return a list of results if no callback script is specified.</li> <li>Change tclsqlite.c to use the Tcl_Obj interface</li> <li>Add tclsqlite.c to the libsqlite.a library</li> } | | | 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 | chng {2000-09-21 (Not Released)} { <li>Change the tclsqlite "eval" method to return a list of results if no callback script is specified.</li> <li>Change tclsqlite.c to use the Tcl_Obj interface</li> <li>Add tclsqlite.c to the libsqlite.a library</li> } chng {2000-09-14 (1.0.5)} { <li>Changed the print format for floating point values from "%g" to "%.15g". </li> <li>Changed the comparison function so that numbers in exponential notation (ex: 1.234e+05) sort in numerical order.</li> } chng {2000-08-28 (1.0.4)} { |
︙ | ︙ |
Changes to pages/howtocompile.in.
︙ | ︙ | |||
105 106 107 108 109 110 111 | option:</p> <blockquote><pre> gcc -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION shell.c sqlite3.c </pre></blockquote> <p>One might want to provide other [compile-time options] such as | | < | | < > | | > | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | option:</p> <blockquote><pre> gcc -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION shell.c sqlite3.c </pre></blockquote> <p>One might want to provide other [compile-time options] such as [-DSQLITE_ENABLE_FTS4] or [-DSQLITE_ENABLE_FTS5] for full-text search, [-DSQLITE_ENABLE_RTREE] for the R*Tree search engine extension, [-DSQLITE_ENABLE_JSON1] to include [JSON SQL functions], or [-DSQLITE_ENABLE_DBSTAT_VTAB] for the [dbstat virtual table]. In order to see extra commentary in [EXPLAIN] listings, add the [-DSQLITE_ENABLE_EXPLAIN_COMMENTS] option. On unix systems, add -DHAVE_USLEEP=1 if the host machine supports the usleep() system call. Add -DHAVE_READLINE and the -lreadline and -lncurses libraries to get command-line editing support. One might also want to specify some compiler optimization switches. (The precompiled CLI available for download from the SQLite website uses "-Os".) There are countless possible variations here. A command to compile a full-featured shell might look something like this:</p> <blockquote><pre> gcc -Os -I. -DSQLITE_THREADSAFE=0 -DSQLITE_ENABLE_FTS4 \ -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 \ -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_EXPLAIN_COMMENTS \ -DHAVE_USLEEP -DHAVE_READLINE \ shell.c sqlite3.c -ldl -lreadline -lncurses -o sqlite3 </pre></blockquote> <p>The key point is this: Building the CLI consists of compiling together two C-language files. The <b>shell.c</b> file contains the |
︙ | ︙ |