diff options
author | dan miller | 2007-10-20 02:49:29 +0000 |
---|---|---|
committer | dan miller | 2007-10-20 02:49:29 +0000 |
commit | e36d23a85ebff914d74bb541558c2b6082b78edb (patch) | |
tree | 54b58fdf162e78af64055282a6035c8d2443389d /libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl | |
parent | * Fixed an issue whereby avatar chat distances were being calculated against ... (diff) | |
download | opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.zip opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.gz opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.bz2 opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.xz |
sqlite source (unix build) added to libraries
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl')
-rw-r--r-- | libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl | 1866 |
1 files changed, 1866 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl b/libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl new file mode 100644 index 0000000..df697ad --- /dev/null +++ b/libraries/sqlite/unix/sqlite-3.5.1/www/changes.tcl | |||
@@ -0,0 +1,1866 @@ | |||
1 | # | ||
2 | # Run this script to generated a changes.html output file | ||
3 | # | ||
4 | source common.tcl | ||
5 | header {SQLite changes} | ||
6 | puts { | ||
7 | <p> | ||
8 | This page provides a high-level summary of changes to SQLite. | ||
9 | For more detail, refer the the checkin logs generated by | ||
10 | CVS at | ||
11 | <a href="http://www.sqlite.org/cvstrac/timeline"> | ||
12 | http://www.sqlite.org/cvstrac/timeline</a>. | ||
13 | </p> | ||
14 | |||
15 | <DL> | ||
16 | } | ||
17 | |||
18 | |||
19 | proc chng {date desc} { | ||
20 | if {[regexp {\(([0-9.]+)\)} $date all vers]} { | ||
21 | set label [string map {. _} $vers] | ||
22 | puts "<A NAME=\"version_$label\">" | ||
23 | } | ||
24 | puts "<DT><B>$date</B></DT>" | ||
25 | regsub -all {[Tt]icket #(\d+)} $desc \ | ||
26 | {<a href="http://www.sqlite.org/cvstrac/tktview?tn=\1">\0</a>} desc | ||
27 | puts "<DD><P><UL>$desc</UL></P>" | ||
28 | puts "</DD>" | ||
29 | } | ||
30 | |||
31 | chng {2007 Oct 04 (3.5.1)} { | ||
32 | <li><i><b>Nota Bene:</b> We are not using terms "alpha" or "beta" on this | ||
33 | release because the code is stable and because if we use those terms, | ||
34 | nobody will upgrade. However, we still reserve the right to make | ||
35 | incompatible changes to the new VFS interface in future releases.</i></li> | ||
36 | |||
37 | <li>Fix a bug in the handling of SQLITE_FULL errors that could lead | ||
38 | to database corruption. Ticket #2686. | ||
39 | <li>The test_async.c drive now does full file locking and works correctly | ||
40 | when used simultaneously by multiple processes on the same database. | ||
41 | <li>The CLI ignores whitespace (including comments) at the end of lines | ||
42 | <li>Make sure the query optimizer checks dependences on all terms of | ||
43 | a compound SELECT statement. Ticket #2640. | ||
44 | <li>Add demonstration code showing how to build a VFS for a raw | ||
45 | mass storage without a filesystem. | ||
46 | <li>Added an output buffer size parameter to the xGetTempname() method | ||
47 | of the VFS layer. | ||
48 | <li>Sticky SQLITE_FULL or SQLITE_IOERR errors in the pager are reset | ||
49 | when a new transaction is started. | ||
50 | } | ||
51 | |||
52 | |||
53 | chng {2007 Sep 04 (3.5.0) alpha} { | ||
54 | <li>Redesign the OS interface layer. See | ||
55 | <a href="34to35.html">34to35.html</a> for details. | ||
56 | <font color="red">*** Potentially incompatible change ***</font> | ||
57 | <li>The <a href="capi3ref.html#sqlite3_release_memory"> | ||
58 | sqlite3_release_memory()</a>, | ||
59 | <a href="capi3ref.html#sqlite3_soft_heap_limit"> | ||
60 | sqlite3_soft_heap_limit()</a>, | ||
61 | and <a href="capi3ref.html#sqlite3_enable_shared_cache"> | ||
62 | sqlite3_enable_shared_cache()</a> interfaces now work cross all | ||
63 | threads in the process, not just the single thread in which they | ||
64 | are invoked. | ||
65 | <font color="red">*** Potentially incompatible change ***</font> | ||
66 | <li>Added the | ||
67 | <a href="capi3ref.html#sqlite3_open_v2">sqlite3_open_v2()</a> | ||
68 | interface. | ||
69 | <li>Reimplemented the memory allocation subsystem and made it | ||
70 | replacable at compile-time. | ||
71 | <li>Created a new mutex subsystem and made it replacable at | ||
72 | compile-time. | ||
73 | <li>The same database connection may now be used simultaneously by | ||
74 | separate threads. | ||
75 | } | ||
76 | |||
77 | |||
78 | chng {2007 August 13 (3.4.2)} { | ||
79 | <li>Fix a database corruption bug that might occur if a ROLLBACK command | ||
80 | is executed in <a href="pragma.html#pragma_auto_vacuum">auto-vacuum mode</a> | ||
81 | and a very small <a href="capi3ref.html#sqlite3_soft_heap_limit"> | ||
82 | soft_heap_limit</a> is set. | ||
83 | <a href="http://www.sqlite.org/cvstrac/tktview?tn=2565">Ticket #2565</a>. | ||
84 | |||
85 | <li>Add the ability to run a full regression test with a small | ||
86 | <a href="capi3ref.html#sqlite3_soft_heap_limit">soft_heap_limit</a>. | ||
87 | |||
88 | <li>Fix other minor problems with using small soft heap limits. | ||
89 | |||
90 | <li>Work-around for | ||
91 | <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32575">GCC bug 32575</a>. | ||
92 | |||
93 | <li>Improved error detection of misused aggregate functions. | ||
94 | |||
95 | <li>Improvements to the amalgamation generator script so that all symbols | ||
96 | are prefixed with either SQLITE_PRIVATE or SQLITE_API. | ||
97 | } | ||
98 | |||
99 | chng {2007 July 20 (3.4.1)} { | ||
100 | <li>Fix a bug in <a href="lang_vacuum.html">VACUUM</a> that can lead to | ||
101 | <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption"> | ||
102 | database corruption</a> if two | ||
103 | processes are connected to the database at the same time and one | ||
104 | VACUUMs then the other then modifies the database.</li> | ||
105 | <li>The expression "+column" is now considered the same as "column" | ||
106 | when computing the collating sequence to use on the expression.</li> | ||
107 | <li>In the <a href="tclsqlite.html">TCL language interface</a>, | ||
108 | "@variable" instead of "$variable" always binds as a blob.</li> | ||
109 | <li>Added <a href="pragma.html#pragma_freelist_count">PRAGMA freelist_count</a> | ||
110 | for determining the current size of the freelist.</li> | ||
111 | <li>The <a href="pragma.html#pragma_auto_vacuum"> | ||
112 | PRAGMA auto_vacuum=incremental</a> setting is now persistent.</li> | ||
113 | <li>Add FD_CLOEXEC to all open files under unix.</li> | ||
114 | <li>Fix a bug in the <a href="optoverview.html#minmax"> | ||
115 | min()/max() optimization</a> when applied to | ||
116 | descending indices.</li> | ||
117 | <li>Make sure the TCL language interface works correctly with 64-bit | ||
118 | integers on 64-bit machines.</li> | ||
119 | <li>Allow the value -9223372036854775808 as an integer literal in SQL | ||
120 | statements.</li> | ||
121 | <li>Add the capability of "hidden" columns in virtual tables.</li> | ||
122 | <li>Use the macro SQLITE_PRIVATE (defaulting to "static") on all | ||
123 | internal functions in the amalgamation.</li> | ||
124 | <li>Add pluggable tokenizers and <a href="http://www.icu-project.org/">ICU</a> | ||
125 | tokenization support to FTS2</li> | ||
126 | <li>Other minor bug fixes and documentation enhancements</li> | ||
127 | } | ||
128 | |||
129 | chng {2007 June 18 (3.4.0)} { | ||
130 | <li>Fix a bug that can lead to database corruption if an SQLITE_BUSY error | ||
131 | occurs in the middle of an explicit transaction and that transaction | ||
132 | is later committed. | ||
133 | <a href="http://www.sqlite.org/cvstrac/tktview?tn=2409">Ticket #2409.</a> | ||
134 | See the | ||
135 | <a href="http://www.sqlite.org/cvstrac/wiki?p=CorruptionFollowingBusyError"> | ||
136 | CorruptionFollowingBusyError</a> wiki page for details.</i> | ||
137 | <li>Fix a bug that can lead to database corruption if autovacuum mode is | ||
138 | on and a malloc() failure follows a CREATE TABLE or CREATE INDEX statement | ||
139 | which itself follows a cache overflow inside a transaction. See | ||
140 | <a href="http://www.sqlite.org/cvstrac/tktview?tn=2418">ticket #2418</a>. | ||
141 | </li> | ||
142 | <li>Added explicit <a href="limits.html">upper bounds</a> on the sizes and | ||
143 | quantities of things SQLite can process. This change might cause | ||
144 | compatibility problems for | ||
145 | applications that use SQLite in the extreme, which is why the current | ||
146 | release is 3.4.0 instead of 3.3.18.</li> | ||
147 | <li>Added support for <a href="capi3ref.html#sqlite3_blob_open"> | ||
148 | Incremental BLOB I/O</a>.</li> | ||
149 | <li>Added the <a href="capi3ref.html#sqlite3_bind_zeroblob">zeroblob API</a> | ||
150 | and the <a href="lang_expr.html#zeroblob">zeroblob()</a> SQL function.</li> | ||
151 | <li>Added support for <a href="pragma.html#pragma_incremental_vacuum"> | ||
152 | Incremental Vacuum</a>.</li> | ||
153 | <li>Added the SQLITE_MIXED_ENDIAN_64BIT_FLOAT compile-time option to suppport | ||
154 | ARM7 processors with goofy endianness.</li> | ||
155 | <li>Removed all instances of sprintf() and strcpy() from the core library.</li> | ||
156 | <li>Added support for <a href="http://www.icu-project.org/"> | ||
157 | International Components for Unicode (ICU)</a> to the full-text search | ||
158 | extensions. | ||
159 | </ul><p> | ||
160 | <ul type="circle"> | ||
161 | <li>In the windows OS driver, reacquire a SHARED lock if an attempt to | ||
162 | acquire an EXCLUSIVE lock fails. Ticket #2354</li> | ||
163 | <li>Fix the REPLACE() function so that it returns NULL if the second argument | ||
164 | is an empty string. Ticket #2324.</li> | ||
165 | <li>Document the hazards of type coversions in | ||
166 | <a href="capi3ref.html#sqlite3_column_blob">sqlite3_column_blob()</a> | ||
167 | and related APIs. Fix unnecessary type conversions. Ticket #2321.</li> | ||
168 | <li>Internationalization of the TRIM() function. Ticket #2323</li> | ||
169 | <li>Use memmove() instead of memcpy() when moving between memory regions | ||
170 | that might overlap. Ticket #2334</li> | ||
171 | <li>Fix an optimizer bug involving subqueries in a compound SELECT that has | ||
172 | both an ORDER BY and a LIMIT clause. Ticket #2339.</li> | ||
173 | <li>Make sure the <a href="capi3ref.html#sqlite3_snprintf">sqlite3_snprintf() | ||
174 | </a> interface does not zero-terminate the buffer if the buffer size is | ||
175 | less than 1. Ticket #2341</li> | ||
176 | <li>Fix the built-in printf logic so that it prints "NaN" not "Inf" for | ||
177 | floating-point NaNs. Ticket #2345</li> | ||
178 | <li>When converting BLOB to TEXT, use the text encoding of the main database. | ||
179 | Ticket #2349</li> | ||
180 | <li>Keep the full precision of integers (if possible) when casting to | ||
181 | NUMERIC. Ticket #2364</li> | ||
182 | <li>Fix a bug in the handling of UTF16 codepoint 0xE000</li> | ||
183 | <li>Consider explicit collate clauses when matching WHERE constraints | ||
184 | to indices in the query optimizer. Ticket #2391</li> | ||
185 | <li>Fix the query optimizer to correctly handle constant expressions in | ||
186 | the ON clause of a LEFT JOIN. Ticket #2403</li> | ||
187 | <li>Fix the query optimizer to handle rowid comparisions to NULL | ||
188 | correctly. Ticket #2404</li> | ||
189 | <li>Fix many potental segfaults that could be caused by malicious SQL | ||
190 | statements.</li> | ||
191 | } | ||
192 | |||
193 | chng {2007 April 25 (3.3.17)} { | ||
194 | <li>When the "write_version" value of the database header is larger than | ||
195 | what the library understands, make the database read-only instead of | ||
196 | unreadable.</li> | ||
197 | <li>Other minor bug fixes</li> | ||
198 | } | ||
199 | |||
200 | chng {2007 April 18 (3.3.16)} { | ||
201 | <li>Fix a bug that caused VACUUM to fail if NULLs appeared in a | ||
202 | UNIQUE column.</li> | ||
203 | <li>Reinstate performance improvements that were added in 3.3.14 | ||
204 | but regressed in 3.3.15.</li> | ||
205 | <li>Fix problems with the handling of ORDER BY expressions on | ||
206 | compound SELECT statements in subqueries.</li> | ||
207 | <li>Fix a potential segfault when destroying locks on WinCE in | ||
208 | a multi-threaded environment.</li> | ||
209 | <li>Documentation updates.</li> | ||
210 | } | ||
211 | |||
212 | chng {2007 April 9 (3.3.15)} { | ||
213 | <li>Fix a bug introduced in 3.3.14 that caused a rollback of | ||
214 | CREATE TEMP TABLE to leave the database connection wedged.</li> | ||
215 | <li>Fix a bug that caused an extra NULL row to be returned when | ||
216 | a descending query was interrupted by a change to the database.</li> | ||
217 | <li>The FOR EACH STATEMENT clause on a trigger now causes a syntax | ||
218 | error. It used to be silently ignored.</li> | ||
219 | <li>Fix an obscure and relatively harmless problem that might have caused | ||
220 | a resource leak following an I/O error.</li> | ||
221 | <li>Many improvements to the test suite. Test coverage now exceeded 98%</li> | ||
222 | } | ||
223 | |||
224 | chng {2007 April 2 (3.3.14)} { | ||
225 | <li>Fix a <a href="http://www.sqlite.org/cvstrac/tktview?tn=2273">bug</a> | ||
226 | in 3.3.13 that could cause a segfault when the IN operator | ||
227 | is used one one term of a two-column index and the right-hand side of | ||
228 | the IN operator contains a NULL.</li> | ||
229 | <li>Added a new OS interface method for determining the sector size | ||
230 | of underlying media: sqlite3OsSectorSize().</li> | ||
231 | <li>A new algorithm for statements of the form | ||
232 | INSERT INTO <i>table1</i> SELECT * FROM <i>table2</i> | ||
233 | is faster and reduces fragmentation. VACUUM uses statements of | ||
234 | this form and thus runs faster and defragments better.</li> | ||
235 | <li>Performance enhancements through reductions in disk I/O: | ||
236 | <ul> | ||
237 | <li>Do not read the last page of an overflow chain when | ||
238 | deleting the row - just add that page to the freelist.</li> | ||
239 | <li>Do not store pages being deleted in the | ||
240 | rollback journal.</li> | ||
241 | <li>Do not read in the (meaningless) content of | ||
242 | pages extracted from the freelist.</li> | ||
243 | <li>Do not flush the page cache (and thus avoiding | ||
244 | a cache refill) unless another process changes the underlying | ||
245 | database file.</li> | ||
246 | <li>Truncate rather than delete the rollback journal when committing | ||
247 | a transaction in exclusive access mode, or when committing the TEMP | ||
248 | database.</li> | ||
249 | </ul></li> | ||
250 | <li>Added support for exclusive access mode using | ||
251 | <a href="pragma.html#pragma_locking_mode"> | ||
252 | "PRAGMA locking_mode=EXCLUSIVE"</a></li> | ||
253 | <li>Use heap space instead of stack space for large buffers in the | ||
254 | pager - useful on embedded platforms with stack-space | ||
255 | limitations.</li> | ||
256 | <li>Add a makefile target "sqlite3.c" that builds an amalgamation containing | ||
257 | the core SQLite library C code in a single file.</li> | ||
258 | <li>Get the library working correctly when compiled | ||
259 | with GCC option "-fstrict-aliasing".</li> | ||
260 | <li>Removed the vestigal SQLITE_PROTOCOL error.</li> | ||
261 | <li>Improvements to test coverage, other minor bugs fixed, | ||
262 | memory leaks plugged, | ||
263 | code refactored and/or recommented in places for easier reading.</li> | ||
264 | } | ||
265 | |||
266 | chng {2007 February 13 (3.3.13)} { | ||
267 | <li>Add a "fragmentation" measurement in the output of sqlite3_analyzer.</li> | ||
268 | <li>Add the COLLATE operator used to explicitly set the collating sequence | ||
269 | used by an expression. This feature is considered experimental pending | ||
270 | additional testing.</li> | ||
271 | <li>Allow up to 64 tables in a join - the old limit was 32.</li> | ||
272 | <li>Added two new experimental functions: | ||
273 | <a href="lang_expr.html#randomblobFunc">randomBlob()</a> and | ||
274 | <a href="lang_expr.html#hexFunc">hex()</a>. | ||
275 | Their intended use is to facilitate generating | ||
276 | <a href="http://en.wikipedia.org/wiki/UUID">UUIDs</a>. | ||
277 | </li> | ||
278 | <li>Fix a problem where | ||
279 | <a href="pragma.html#pragma_count_changes">PRAGMA count_changes</a> was | ||
280 | causing incorrect results for updates on tables with triggers</li> | ||
281 | <li>Fix a bug in the ORDER BY clause optimizer for joins where the | ||
282 | left-most table in the join is constrained by a UNIQUE index.</li> | ||
283 | <li>Fixed a bug in the "copy" method of the TCL interface.</li> | ||
284 | <li>Bug fixes in fts1 and fts2 modules.</li> | ||
285 | } | ||
286 | |||
287 | chng {2007 January 27 (3.3.12)} { | ||
288 | <li>Fix another bug in the IS NULL optimization that was added in | ||
289 | version 3.3.9.</li> | ||
290 | <li>Fix a assertion fault that occurred on deeply nested views.</li> | ||
291 | <li>Limit the amount of output that | ||
292 | <a href="pragma.html#pragma_integrity_check">PRAGMA integrity_check</a> | ||
293 | generates.</li> | ||
294 | <li>Minor syntactic changes to support a wider variety of compilers.</li> | ||
295 | } | ||
296 | |||
297 | chng {2007 January 22 (3.3.11)} { | ||
298 | <li>Fix another bug in the implementation of the new | ||
299 | <a href="capi3ref.html#sqlite3_prepare_v2">sqlite3_prepare_v2()</a> API. | ||
300 | We'll get it right eventually...</li> | ||
301 | <li>Fix a bug in the IS NULL optimization that was added in version 3.3.9 - | ||
302 | the bug was causing incorrect results on certain LEFT JOINs that included | ||
303 | in the WHERE clause an IS NULL constraint for the right table of the | ||
304 | LEFT JOIN.</li> | ||
305 | <li>Make AreFileApisANSI() a no-op macro in winCE since winCE does not | ||
306 | support this function.</li> | ||
307 | } | ||
308 | |||
309 | chng {2007 January 9 (3.3.10)} { | ||
310 | <li>Fix bugs in the implementation of the new | ||
311 | <a href="capi3ref.html#sqlite3_prepare_v2">sqlite3_prepare_v2()</a> API | ||
312 | that can lead to segfaults.</li> | ||
313 | <li>Fix 1-second round-off errors in the | ||
314 | <a href="http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions"> | ||
315 | strftime()</a> function</li> | ||
316 | <li>Enhance the windows OS layer to provide detailed error codes</li> | ||
317 | <li>Work around a win2k problem so that SQLite can use single-character | ||
318 | database file names</li> | ||
319 | <li>The | ||
320 | <a href="pragma.html#pragma_user_version">user_version</a> and | ||
321 | <a href="pragma.html#pragma_schema_version">schema_version</a> pragmas | ||
322 | correctly set their column names in the result set</li> | ||
323 | <li>Documentation updates</li> | ||
324 | } | ||
325 | |||
326 | chng {2007 January 4 (3.3.9)} { | ||
327 | <li>Fix bugs in pager.c that could lead to database corruption if two | ||
328 | processes both try to recover a hot journal at the same instant</li> | ||
329 | <li>Added the <a href="capi3ref.html#sqlite3_prepare_v2">sqlite3_prepare_v2()</a> | ||
330 | API.</li> | ||
331 | <li>Fixed the ".dump" command in the command-line shell to show | ||
332 | indices, triggers and views again.</li> | ||
333 | <li>Change the table_info pragma so that it returns NULL for the default | ||
334 | value if there is no default value</li> | ||
335 | <li>Support for non-ASCII characters in win95 filenames</li> | ||
336 | <li>Query optimizer enhancements: | ||
337 | <ul> | ||
338 | <li>Optimizer does a better job of using indices to satisfy ORDER BY | ||
339 | clauses that sort on the integer primary key</li> | ||
340 | <li>Use an index to satisfy an IS NULL operator in the WHERE clause</li> | ||
341 | <li>Fix a bug that was causing the optimizer to miss an OR optimization | ||
342 | opportunity</li> | ||
343 | <li>The optimizer has more freedom to reorder tables in the FROM clause | ||
344 | even in there are LEFT joins.</li> | ||
345 | </ul> | ||
346 | <li>Extension loading supported added to winCE</li> | ||
347 | <li>Allow constraint names on the DEFAULT clause in a table definition</li> | ||
348 | <li>Added the ".bail" command to the command-line shell</li> | ||
349 | <li>Make CSV (comma separate value) output from the command-line shell | ||
350 | more closely aligned to accepted practice</li> | ||
351 | <li>Experimental FTS2 module added</li> | ||
352 | <li>Use sqlite3_mprintf() instead of strdup() to avoid libc dependencies</li> | ||
353 | <li>VACUUM uses a temporary file in the official TEMP folder, not in the | ||
354 | same directory as the original database</li> | ||
355 | <li>The prefix on temporary filenames on windows is changed from "sqlite" | ||
356 | to "etilqs".</li> | ||
357 | } | ||
358 | |||
359 | chng {2006 October 9 (3.3.8)} { | ||
360 | <li>Support for full text search using the | ||
361 | <a href="http://www.sqlite.org/cvstrac/wiki?p=FullTextIndex">FTS1 module</a> | ||
362 | (beta)</li> | ||
363 | <li>Added OS-X locking patches (beta - disabled by default)</li> | ||
364 | <li>Introduce extended error codes and add error codes for various | ||
365 | kinds of I/O errors.</li> | ||
366 | <li>Added support for IF EXISTS on CREATE/DROP TRIGGER/VIEW</li> | ||
367 | <li>Fix the regression test suite so that it works with Tcl8.5</li> | ||
368 | <li>Enhance sqlite3_set_authorizer() to provide notification of calls to | ||
369 | SQL functions.</li> | ||
370 | <li>Added experimental API: sqlite3_auto_extension()</li> | ||
371 | <li>Various minor bug fixes</li> | ||
372 | } | ||
373 | |||
374 | chng {2006 August 12 (3.3.7)} { | ||
375 | <li>Added support for | ||
376 | <a href="http://www.sqlite.org/cvstrac/wiki?p=VirtualTables">virtual tables</a> | ||
377 | (beta)</li> | ||
378 | <li>Added support for | ||
379 | <a href="http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions"> | ||
380 | dynamically loaded extensions</a> (beta)</li> | ||
381 | <li>The | ||
382 | <a href="capi3ref.html#sqlite3_interrupt">sqlite3_interrupt()</a> | ||
383 | routine can be called for a different thread</li> | ||
384 | <li>Added the <a href="lang_expr.html#match">MATCH</a> operator.</li> | ||
385 | <li>The default file format is now 1. | ||
386 | } | ||
387 | |||
388 | chng {2006 June 6 (3.3.6)} { | ||
389 | <li>Plays better with virus scanners on windows</li> | ||
390 | <li>Faster :memory: databases</li> | ||
391 | <li>Fix an obscure segfault in UTF-8 to UTF-16 conversions</li> | ||
392 | <li>Added driver for OS/2</li> | ||
393 | <li>Correct column meta-information returned for aggregate queries</li> | ||
394 | <li>Enhanced output from EXPLAIN QUERY PLAN</li> | ||
395 | <li>LIMIT 0 now works on subqueries</li> | ||
396 | <li>Bug fixes and performance enhancements in the query optimizer</li> | ||
397 | <li>Correctly handle NULL filenames in ATTACH and DETACH</li> | ||
398 | <li>Inproved syntax error messages in the parser</li> | ||
399 | <li>Fix type coercion rules for the IN operator</li> | ||
400 | } | ||
401 | |||
402 | chng {2006 April 5 (3.3.5)} { | ||
403 | <li>CHECK constraints use conflict resolution algorithms correctly.</li> | ||
404 | <li>The SUM() function throws an error on integer overflow.</li> | ||
405 | <li>Choose the column names in a compound query from the left-most SELECT | ||
406 | instead of the right-most.</li> | ||
407 | <li>The sqlite3_create_collation() function | ||
408 | honors the SQLITE_UTF16_ALIGNED flag.</li> | ||
409 | <li>SQLITE_SECURE_DELETE compile-time option causes deletes to overwrite | ||
410 | old data with zeros.</li> | ||
411 | <li>Detect integer overflow in abs().</li> | ||
412 | <li>The random() function provides 64 bits of randomness instead of | ||
413 | only 32 bits.</li> | ||
414 | <li>Parser detects and reports automaton stack overflow.</li> | ||
415 | <li>Change the round() function to return REAL instead of TEXT.</li> | ||
416 | <li>Allow WHERE clause terms on the left table of a LEFT OUTER JOIN to | ||
417 | contain aggregate subqueries.</li> | ||
418 | <li>Skip over leading spaces in text to numeric conversions.</li> | ||
419 | <li>Various minor bug and documentation typo fixes and | ||
420 | performance enhancements.</li> | ||
421 | } | ||
422 | |||
423 | chng {2006 February 11 (3.3.4)} { | ||
424 | <li>Fix a blunder in the Unix mutex implementation that can lead to | ||
425 | deadlock on multithreaded systems.</li> | ||
426 | <li>Fix an alignment problem on 64-bit machines</li> | ||
427 | <li>Added the fullfsync pragma.</li> | ||
428 | <li>Fix an optimizer bug that could have caused some unusual LEFT OUTER JOINs | ||
429 | to give incorrect results.</li> | ||
430 | <li>The SUM function detects integer overflow and converts to accumulating | ||
431 | an approximate result using floating point numbers</li> | ||
432 | <li>Host parameter names can begin with '@' for compatibility with SQL Server. | ||
433 | </li> | ||
434 | <li>Other miscellaneous bug fixes</li> | ||
435 | } | ||
436 | |||
437 | chng {2006 January 31 (3.3.3)} { | ||
438 | <li>Removed support for an ON CONFLICT clause on CREATE INDEX - it never | ||
439 | worked correctly so this should not present any backward compatibility | ||
440 | problems.</li> | ||
441 | <li>Authorizer callback now notified of ALTER TABLE ADD COLUMN commands</li> | ||
442 | <li>After any changes to the TEMP database schema, all prepared statements | ||
443 | are invalidated and must be recreated using a new call to | ||
444 | sqlite3_prepare()</li> | ||
445 | <li>Other minor bug fixes in preparation for the first stable release | ||
446 | of version 3.3</li> | ||
447 | } | ||
448 | |||
449 | chng {2006 January 24 (3.3.2 beta)} { | ||
450 | <li>Bug fixes and speed improvements. Improved test coverage.</li> | ||
451 | <li>Changes to the OS-layer interface: mutexes must now be recursive.</li> | ||
452 | <li>Discontinue the use of thread-specific data for out-of-memory | ||
453 | exception handling</li> | ||
454 | } | ||
455 | |||
456 | chng {2006 January 16 (3.3.1 alpha)} { | ||
457 | <li>Countless bug fixes</li> | ||
458 | <li>Speed improvements</li> | ||
459 | <li>Database connections can now be used by multiple threads, not just | ||
460 | the thread in which they were created.</li> | ||
461 | } | ||
462 | |||
463 | chng {2006 January 10 (3.3.0 alpha)} { | ||
464 | <li>CHECK constraints</li> | ||
465 | <li>IF EXISTS and IF NOT EXISTS clauses on CREATE/DROP TABLE/INDEX.</li> | ||
466 | <li>DESC indices</li> | ||
467 | <li>More efficient encoding of boolean values resulting in smaller database | ||
468 | files</li> | ||
469 | <li>More aggressive SQLITE_OMIT_FLOATING_POINT</li> | ||
470 | <li>Separate INTEGER and REAL affinity</li> | ||
471 | <li>Added a virtual function layer for the OS interface</li> | ||
472 | <li>"exists" method added to the TCL interface</li> | ||
473 | <li>Improved response to out-of-memory errors</li> | ||
474 | <li>Database cache can be optionally shared between connections | ||
475 | in the same thread</li> | ||
476 | <li>Optional READ UNCOMMITTED isolation (instead of the default | ||
477 | isolation level of SERIALIZABLE) and table level locking when | ||
478 | database connections share a common cache.</li> | ||
479 | } | ||
480 | |||
481 | chng {2005 December 19 (3.2.8)} { | ||
482 | <li>Fix an obscure bug that can cause database corruption under the | ||
483 | following unusual circumstances: A large INSERT or UPDATE statement which | ||
484 | is part of an even larger transaction fails due to a uniqueness contraint | ||
485 | but the containing transaction commits.</li> | ||
486 | } | ||
487 | |||
488 | chng {2005 December 19 (2.8.17)} { | ||
489 | <li>Fix an obscure bug that can cause database corruption under the | ||
490 | following unusual circumstances: A large INSERT or UPDATE statement which | ||
491 | is part of an even larger transaction fails due to a uniqueness contraint | ||
492 | but the containing transaction commits.</li> | ||
493 | } | ||
494 | |||
495 | chng {2005 September 24 (3.2.7)} { | ||
496 | <li>GROUP BY now considers NULLs to be equal again, as it should | ||
497 | </li> | ||
498 | <li>Now compiles on Solaris and OpenBSD and other Unix variants | ||
499 | that lack the fdatasync() function</li> | ||
500 | <li>Now compiles on MSVC++6 again</li> | ||
501 | <li>Fix uninitialized variables causing malfunctions for various obscure | ||
502 | queries</li> | ||
503 | <li>Correctly compute a LEFT OUTER JOINs that is constrained on the | ||
504 | left table only</li> | ||
505 | } | ||
506 | |||
507 | chng {2005 September 17 (3.2.6)} { | ||
508 | <li>Fix a bug that can cause database corruption if a VACUUM (or | ||
509 | autovacuum) fails and is rolled back on a database that is | ||
510 | larger than 1GiB</li> | ||
511 | <li>LIKE optiization now works for columns with COLLATE NOCASE</li> | ||
512 | <li>ORDER BY and GROUP BY now use bounded memory</li> | ||
513 | <li>Added support for COUNT(DISTINCT expr)</li> | ||
514 | <li>Change the way SUM() handles NULL values in order to comply with | ||
515 | the SQL standard</li> | ||
516 | <li>Use fdatasync() instead of fsync() where possible in order to speed | ||
517 | up commits slightly</li> | ||
518 | <li>Use of the CROSS keyword in a join turns off the table reordering | ||
519 | optimization</li> | ||
520 | <li>Added the experimental and undocumented EXPLAIN QUERY PLAN capability</li> | ||
521 | <li>Use the unicode API in windows</li> | ||
522 | } | ||
523 | |||
524 | chng {2005 August 27 (3.2.5)} { | ||
525 | <li>Fix a bug effecting DELETE and UPDATE statements that changed | ||
526 | more than 40960 rows.</li> | ||
527 | <li>Change the makefile so that it no longer requires GNUmake extensions</li> | ||
528 | <li>Fix the --enable-threadsafe option on the configure script</li> | ||
529 | <li>Fix a code generator bug that occurs when the left-hand side of an IN | ||
530 | operator is constant and the right-hand side is a SELECT statement</li> | ||
531 | <li>The PRAGMA synchronous=off statement now disables syncing of the | ||
532 | master journal file in addition to the normal rollback journals</li> | ||
533 | } | ||
534 | |||
535 | chng {2005 August 24 (3.2.4)} { | ||
536 | <li>Fix a bug introduced in the previous release | ||
537 | that can cause a segfault while generating code | ||
538 | for complex WHERE clauses.</li> | ||
539 | <li>Allow floating point literals to begin or end with a decimal point.</li> | ||
540 | } | ||
541 | |||
542 | chng {2005 August 21 (3.2.3)} { | ||
543 | <li>Added support for the CAST operator</li> | ||
544 | <li>Tcl interface allows BLOB values to be transferred to user-defined | ||
545 | functions</li> | ||
546 | <li>Added the "transaction" method to the Tcl interface</li> | ||
547 | <li>Allow the DEFAULT value of a column to call functions that have constant | ||
548 | operands</li> | ||
549 | <li>Added the ANALYZE command for gathering statistics on indices and | ||
550 | using those statistics when picking an index in the optimizer</li> | ||
551 | <li>Remove the limit (formerly 100) on the number of terms in the | ||
552 | WHERE clause</li> | ||
553 | <li>The right-hand side of the IN operator can now be a list of expressions | ||
554 | instead of just a list of constants</li> | ||
555 | <li>Rework the optimizer so that it is able to make better use of indices</li> | ||
556 | <li>The order of tables in a join is adjusted automatically to make | ||
557 | better use of indices</li> | ||
558 | <li>The IN operator is now a candidate for optimization even if the left-hand | ||
559 | side is not the left-most term of the index. Multiple IN operators can be | ||
560 | used with the same index.</li> | ||
561 | <li>WHERE clause expressions using BETWEEN and OR are now candidates | ||
562 | for optimization</li> | ||
563 | <li>Added the "case_sensitive_like" pragma and the SQLITE_CASE_SENSITIVE_LIKE | ||
564 | compile-time option to set its default value to "on".</li> | ||
565 | <li>Use indices to help with GLOB expressions and LIKE expressions too | ||
566 | when the case_sensitive_like pragma is enabled</li> | ||
567 | <li>Added support for grave-accent quoting for compatibility with MySQL</li> | ||
568 | <li>Improved test coverage</li> | ||
569 | <li>Dozens of minor bug fixes</li> | ||
570 | } | ||
571 | |||
572 | chng {2005 June 13 (3.2.2)} { | ||
573 | <li>Added the sqlite3_db_handle() API</li> | ||
574 | <li>Added the sqlite3_get_autocommit() API</li> | ||
575 | <li>Added a REGEXP operator to the parser. There is no function to back | ||
576 | up this operator in the standard build but users can add their own using | ||
577 | sqlite3_create_function()</li> | ||
578 | <li>Speed improvements and library footprint reductions.</li> | ||
579 | <li>Fix byte alignment problems on 64-bit architectures.</li> | ||
580 | <li>Many, many minor bug fixes and documentation updates.</li> | ||
581 | } | ||
582 | |||
583 | chng {2005 March 29 (3.2.1)} { | ||
584 | <li>Fix a memory allocation error in the new ADD COLUMN comment.</li> | ||
585 | <li>Documentation updates</li> | ||
586 | } | ||
587 | |||
588 | chng {2005 March 21 (3.2.0)} { | ||
589 | <li>Added support for ALTER TABLE ADD COLUMN.</li> | ||
590 | <li>Added support for the "T" separator in ISO-8601 date/time strings.</li> | ||
591 | <li>Improved support for Cygwin.</li> | ||
592 | <li>Numerous bug fixes and documentation updates.</li> | ||
593 | } | ||
594 | |||
595 | chng {2005 March 16 (3.1.6)} { | ||
596 | <li>Fix a bug that could cause database corruption when inserting | ||
597 | record into tables with around 125 columns.</li> | ||
598 | <li>sqlite3_step() is now much more likely to invoke the busy handler | ||
599 | and less likely to return SQLITE_BUSY.</li> | ||
600 | <li>Fix memory leaks that used to occur after a malloc() failure.</li> | ||
601 | } | ||
602 | |||
603 | chng {2005 March 11 (3.1.5)} { | ||
604 | <li>The ioctl on OS-X to control syncing to disk is F_FULLFSYNC, | ||
605 | not F_FULLSYNC. The previous release had it wrong.</li> | ||
606 | } | ||
607 | |||
608 | chng {2005 March 10 (3.1.4)} { | ||
609 | <li>Fix a bug in autovacuum that could cause database corruption if | ||
610 | a CREATE UNIQUE INDEX fails because of a constraint violation. | ||
611 | This problem only occurs if the new autovacuum feature introduced in | ||
612 | version 3.1 is turned on.</li> | ||
613 | <li>The F_FULLSYNC ioctl (currently only supported on OS-X) is disabled | ||
614 | if the synchronous pragma is set to something other than "full".</li> | ||
615 | <li>Add additional forward compatibility to the future version 3.2 database | ||
616 | file format.</li> | ||
617 | <li>Fix a bug in WHERE clauses of the form (rowid<'2')</li> | ||
618 | <li>New SQLITE_OMIT_... compile-time options added</li> | ||
619 | <li>Updates to the man page</li> | ||
620 | <li>Remove the use of strcasecmp() from the shell</li> | ||
621 | <li>Windows DLL exports symbols Tclsqlite_Init and Sqlite_Init</li> | ||
622 | } | ||
623 | |||
624 | chng {2005 February 19 (3.1.3)} { | ||
625 | <li>Fix a problem with VACUUM on databases from which tables containing | ||
626 | AUTOINCREMENT have been dropped.</li> | ||
627 | <li>Add forward compatibility to the future version 3.2 database file | ||
628 | format.</li> | ||
629 | <li>Documentation updates</li> | ||
630 | } | ||
631 | |||
632 | chng {2005 February 15 (3.1.2)} { | ||
633 | <li>Fix a bug that can lead to database corruption if there are two | ||
634 | open connections to the same database and one connection does a VACUUM | ||
635 | and the second makes some change to the database.</li> | ||
636 | <li>Allow "?" parameters in the LIMIT clause.</li> | ||
637 | <li>Fix VACUUM so that it works with AUTOINCREMENT.</li> | ||
638 | <li>Fix a race condition in AUTOVACUUM that can lead to corrupt databases</li> | ||
639 | <li>Add a numeric version number to the sqlite3.h include file.</li> | ||
640 | <li>Other minor bug fixes and performance enhancements.</li> | ||
641 | } | ||
642 | |||
643 | chng {2005 February 15 (2.8.16)} { | ||
644 | <li>Fix a bug that can lead to database corruption if there are two | ||
645 | open connections to the same database and one connection does a VACUUM | ||
646 | and the second makes some change to the database.</li> | ||
647 | <li>Correctly handle quoted names in CREATE INDEX statements.</li> | ||
648 | <li>Fix a naming conflict between sqlite.h and sqlite3.h.</li> | ||
649 | <li>Avoid excess heap usage when copying expressions.</li> | ||
650 | <li>Other minor bug fixes.</li> | ||
651 | } | ||
652 | |||
653 | chng {2005 February 1 (3.1.1 BETA)} { | ||
654 | <li>Automatic caching of prepared statements in the TCL interface</li> | ||
655 | <li>ATTACH and DETACH as well as some other operations cause existing | ||
656 | prepared statements to expire.</li> | ||
657 | <li>Numerious minor bug fixes</li> | ||
658 | } | ||
659 | |||
660 | chng {2005 January 21 (3.1.0 ALPHA)} { | ||
661 | <li>Autovacuum support added</li> | ||
662 | <li>CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP added</li> | ||
663 | <li>Support for the EXISTS clause added.</li> | ||
664 | <li>Support for correlated subqueries added.</li> | ||
665 | <li>Added the ESCAPE clause on the LIKE operator.</li> | ||
666 | <li>Support for ALTER TABLE ... RENAME TABLE ... added</li> | ||
667 | <li>AUTOINCREMENT keyword supported on INTEGER PRIMARY KEY</li> | ||
668 | <li>Many SQLITE_OMIT_ macros inserts to omit features at compile-time | ||
669 | and reduce the library footprint.</li> | ||
670 | <li>The REINDEX command was added.</li> | ||
671 | <li>The engine no longer consults the main table if it can get | ||
672 | all the information it needs from an index.</li> | ||
673 | <li>Many nuisance bugs fixed.</li> | ||
674 | } | ||
675 | |||
676 | chng {2004 October 11 (3.0.8)} { | ||
677 | <li>Add support for DEFERRED, IMMEDIATE, and EXCLUSIVE transactions.</li> | ||
678 | <li>Allow new user-defined functions to be created when there are | ||
679 | already one or more precompiled SQL statements.<li> | ||
680 | <li>Fix portability problems for Mingw/MSYS.</li> | ||
681 | <li>Fix a byte alignment problem on 64-bit Sparc machines.</li> | ||
682 | <li>Fix the ".import" command of the shell so that it ignores \r | ||
683 | characters at the end of lines.</li> | ||
684 | <li>The "csv" mode option in the shell puts strings inside double-quotes.</li> | ||
685 | <li>Fix typos in documentation.</li> | ||
686 | <li>Convert array constants in the code to have type "const".</li> | ||
687 | <li>Numerous code optimizations, specially optimizations designed to | ||
688 | make the code footprint smaller.</li> | ||
689 | } | ||
690 | |||
691 | chng {2004 September 18 (3.0.7)} { | ||
692 | <li>The BTree module allocates large buffers using malloc() instead of | ||
693 | off of the stack, in order to play better on machines with limited | ||
694 | stack space.</li> | ||
695 | <li>Fixed naming conflicts so that versions 2.8 and 3.0 can be | ||
696 | linked and used together in the same ANSI-C source file.</li> | ||
697 | <li>New interface: sqlite3_bind_parameter_index()</li> | ||
698 | <li>Add support for wildcard parameters of the form: "?nnn"</li> | ||
699 | <li>Fix problems found on 64-bit systems.</li> | ||
700 | <li>Removed encode.c file (containing unused routines) from the | ||
701 | version 3.0 source tree.</li> | ||
702 | <li>The sqlite3_trace() callbacks occur before each statement | ||
703 | is executed, not when the statement is compiled.</li> | ||
704 | <li>Makefile updates and miscellaneous bug fixes.</li> | ||
705 | } | ||
706 | |||
707 | chng {2004 September 02 (3.0.6 beta)} { | ||
708 | <li>Better detection and handling of corrupt database files.</li> | ||
709 | <li>The sqlite3_step() interface returns SQLITE_BUSY if it is unable | ||
710 | to commit a change because of a lock</li> | ||
711 | <li>Combine the implementations of LIKE and GLOB into a single | ||
712 | pattern-matching subroutine.</li> | ||
713 | <li>Miscellaneous code size optimizations and bug fixes</li> | ||
714 | } | ||
715 | |||
716 | chng {2004 August 29 (3.0.5 beta)} { | ||
717 | <li>Support for ":AAA" style bind parameter names.</li> | ||
718 | <li>Added the new sqlite3_bind_parameter_name() interface.</li> | ||
719 | <li>Support for TCL variable names embedded in SQL statements in the | ||
720 | TCL bindings.</li> | ||
721 | <li>The TCL bindings transfer data without necessarily doing a conversion | ||
722 | to a string.</li> | ||
723 | <li>The database for TEMP tables is not created until it is needed.</li> | ||
724 | <li>Add the ability to specify an alternative temporary file directory | ||
725 | using the "sqlite_temp_directory" global variable.</li> | ||
726 | <li>A compile-time option (SQLITE_BUSY_RESERVED_LOCK) causes the busy | ||
727 | handler to be called when there is contention for a RESERVED lock.</li> | ||
728 | <li>Various bug fixes and optimizations</li> | ||
729 | } | ||
730 | |||
731 | chng {2004 August 8 (3.0.4 beta)} { | ||
732 | <li>CREATE TABLE and DROP TABLE now work correctly as prepared statements.</li> | ||
733 | <li>Fix a bug in VACUUM and UNIQUE indices.</li> | ||
734 | <li>Add the ".import" command to the command-line shell.</li> | ||
735 | <li>Fix a bug that could cause index corruption when an attempt to | ||
736 | delete rows of a table is blocked by a pending query.</li> | ||
737 | <li>Library size optimizations.</li> | ||
738 | <li>Other minor bug fixes.</li> | ||
739 | } | ||
740 | |||
741 | chng {2004 July 22 (2.8.15)} { | ||
742 | <li>This is a maintenance release only. Various minor bugs have been | ||
743 | fixed and some portability enhancements are added.</li> | ||
744 | } | ||
745 | |||
746 | chng {2004 July 22 (3.0.3 beta)} { | ||
747 | <li>The second beta release for SQLite 3.0.</li> | ||
748 | <li>Add support for "PRAGMA page_size" to adjust the page size of | ||
749 | the database.</li> | ||
750 | <li>Various bug fixes and documentation updates.</li> | ||
751 | } | ||
752 | |||
753 | chng {2004 June 30 (3.0.2 beta)} { | ||
754 | <li>The first beta release for SQLite 3.0.</li> | ||
755 | } | ||
756 | |||
757 | chng {2004 June 22 (3.0.1 alpha)} { | ||
758 | <li><font color="red"><b> | ||
759 | *** Alpha Release - Research And Testing Use Only ***</b></font> | ||
760 | <li>Lots of bug fixes.</li> | ||
761 | } | ||
762 | |||
763 | chng {2004 June 18 (3.0.0 alpha)} { | ||
764 | <li><font color="red"><b> | ||
765 | *** Alpha Release - Research And Testing Use Only ***</b></font> | ||
766 | <li>Support for internationalization including UTF-8, UTF-16, and | ||
767 | user defined collating sequences.</li> | ||
768 | <li>New file format that is 25% to 35% smaller for typical use.</li> | ||
769 | <li>Improved concurrency.</li> | ||
770 | <li>Atomic commits for ATTACHed databases.</li> | ||
771 | <li>Remove cruft from the APIs.</li> | ||
772 | <li>BLOB support.</li> | ||
773 | <li>64-bit rowids.</li> | ||
774 | <li><a href="version3.html">More information</a>. | ||
775 | } | ||
776 | |||
777 | chng {2004 June 9 (2.8.14)} { | ||
778 | <li>Fix the min() and max() optimizer so that it works when the FROM | ||
779 | clause consists of a subquery.</li> | ||
780 | <li>Ignore extra whitespace at the end of of "." commands in the shell.</li> | ||
781 | <li>Bundle sqlite_encode_binary() and sqlite_decode_binary() with the | ||
782 | library.</li> | ||
783 | <li>The TEMP_STORE and DEFAULT_TEMP_STORE pragmas now work.</li> | ||
784 | <li>Code changes to compile cleanly using OpenWatcom.</li> | ||
785 | <li>Fix VDBE stack overflow problems with INSTEAD OF triggers and | ||
786 | NULLs in IN operators.</li> | ||
787 | <li>Add the global variable sqlite_temp_directory which if set defines the | ||
788 | directory in which temporary files are stored.</li> | ||
789 | <li>sqlite_interrupt() plays well with VACUUM.</li> | ||
790 | <li>Other minor bug fixes.</li> | ||
791 | } | ||
792 | |||
793 | chng {2004 March 8 (2.8.13)} { | ||
794 | <li>Refactor parts of the code in order to make the code footprint | ||
795 | smaller. The code is now also a little bit faster.</li> | ||
796 | <li>sqlite_exec() is now implemented as a wrapper around sqlite_compile() | ||
797 | and sqlite_step().</li> | ||
798 | <li>The built-in min() and max() functions now honor the difference between | ||
799 | NUMERIC and TEXT datatypes. Formerly, min() and max() always assumed | ||
800 | their arguments were of type NUMERIC.</li> | ||
801 | <li>New HH:MM:SS modifier to the built-in date/time functions.</li> | ||
802 | <li>Experimental sqlite_last_statement_changes() API added. Fixed the | ||
803 | the last_insert_rowid() function so that it works correctly with | ||
804 | triggers.</li> | ||
805 | <li>Add functions prototypes for the database encryption API.</li> | ||
806 | <li>Fix several nuisance bugs.</li> | ||
807 | } | ||
808 | |||
809 | chng {2004 February 8 (2.8.12)} { | ||
810 | <li>Fix a bug that will might corrupt the rollback journal if a power failure | ||
811 | or external program halt occurs in the middle of a COMMIT. The corrupt | ||
812 | journal can lead to database corruption when it is rolled back.</li> | ||
813 | <li>Reduce the size and increase the speed of various modules, especially | ||
814 | the virtual machine.</li> | ||
815 | <li>Allow "<expr> IN <table>" as a shorthand for | ||
816 | "<expr> IN (SELECT * FROM <table>".</li> | ||
817 | <li>Optimizations to the sqlite_mprintf() routine.</li> | ||
818 | <li>Make sure the MIN() and MAX() optimizations work within subqueries.</li> | ||
819 | } | ||
820 | |||
821 | chng {2004 January 14 (2.8.11)} { | ||
822 | <li>Fix a bug in how the IN operator handles NULLs in subqueries. The bug | ||
823 | was introduced by the previous release.</li> | ||
824 | } | ||
825 | |||
826 | chng {2004 January 13 (2.8.10)} { | ||
827 | <li>Fix a potential database corruption problem on Unix caused by the fact | ||
828 | that all posix advisory locks are cleared whenever you close() a file. | ||
829 | The work around it to embargo all close() calls while locks are | ||
830 | outstanding.</li> | ||
831 | <li>Performance enhancements on some corner cases of COUNT(*).</li> | ||
832 | <li>Make sure the in-memory backend response sanely if malloc() fails.</li> | ||
833 | <li>Allow sqlite_exec() to be called from within user-defined SQL | ||
834 | functions.</li> | ||
835 | <li>Improved accuracy of floating-point conversions using "long double".</li> | ||
836 | <li>Bug fixes in the experimental date/time functions.</li> | ||
837 | } | ||
838 | |||
839 | chng {2004 January 5 (2.8.9)} { | ||
840 | <li>Fix a 32-bit integer overflow problem that could result in corrupt | ||
841 | indices in a database if large negative numbers (less than -2147483648) | ||
842 | were inserted into a indexed numeric column.</li> | ||
843 | <li>Fix a locking problem on multi-threaded Linux implementations.</li> | ||
844 | <li>Always use "." instead of "," as the decimal point even if the locale | ||
845 | requests ",".</li> | ||
846 | <li>Added UTC to localtime conversions to the experimental date/time | ||
847 | functions.</li> | ||
848 | <li>Bug fixes to date/time functions.</li> | ||
849 | } | ||
850 | |||
851 | chng {2003 December 17 (2.8.8)} { | ||
852 | <li>Fix a critical bug introduced into 2.8.0 which could cause | ||
853 | database corruption.</li> | ||
854 | <li>Fix a problem with 3-way joins that do not use indices</li> | ||
855 | <li>The VACUUM command now works with the non-callback API</li> | ||
856 | <li>Improvements to the "PRAGMA integrity_check" command</li> | ||
857 | } | ||
858 | |||
859 | chng {2003 December 4 (2.8.7)} { | ||
860 | <li>Added experimental sqlite_bind() and sqlite_reset() APIs.</li> | ||
861 | <li>If the name of the database is an empty string, open a new database | ||
862 | in a temporary file that is automatically deleted when the database | ||
863 | is closed.</li> | ||
864 | <li>Performance enhancements in the lemon-generated parser</li> | ||
865 | <li>Experimental date/time functions revised.</li> | ||
866 | <li>Disallow temporary indices on permanent tables.</li> | ||
867 | <li>Documentation updates and typo fixes</li> | ||
868 | <li>Added experimental sqlite_progress_handler() callback API</li> | ||
869 | <li>Removed support for the Oracle8 outer join syntax.</li> | ||
870 | <li>Allow GLOB and LIKE operators to work as functions.</li> | ||
871 | <li>Other minor documentation and makefile changes and bug fixes.</li> | ||
872 | } | ||
873 | |||
874 | chng {2003 August 21 (2.8.6)} { | ||
875 | <li>Moved the CVS repository to www.sqlite.org</li> | ||
876 | <li>Update the NULL-handling documentation.</li> | ||
877 | <li>Experimental date/time functions added.</li> | ||
878 | <li>Bug fix: correctly evaluate a view of a view without segfaulting.</li> | ||
879 | <li>Bug fix: prevent database corruption if you dropped a | ||
880 | trigger that had the same name as a table.</li> | ||
881 | <li>Bug fix: allow a VACUUM (without segfaulting) on an empty | ||
882 | database after setting the EMPTY_RESULT_CALLBACKS pragma.</li> | ||
883 | <li>Bug fix: if an integer value will not fit in a 32-bit int, store it in | ||
884 | a double instead.</li> | ||
885 | <li>Bug fix: Make sure the journal file directory entry is committed to disk | ||
886 | before writing the database file.</li> | ||
887 | } | ||
888 | |||
889 | chng {2003 July 22 (2.8.5)} { | ||
890 | <li>Make LIMIT work on a compound SELECT statement.</li> | ||
891 | <li>LIMIT 0 now shows no rows. Use LIMIT -1 to see all rows.</li> | ||
892 | <li>Correctly handle comparisons between an INTEGER PRIMARY KEY and | ||
893 | a floating point number.</li> | ||
894 | <li>Fix several important bugs in the new ATTACH and DETACH commands.</li> | ||
895 | <li>Updated the <a href="nulls.html">NULL-handling document</a>.</li> | ||
896 | <li>Allow NULL arguments in sqlite_compile() and sqlite_step().</li> | ||
897 | <li>Many minor bug fixes</li> | ||
898 | } | ||
899 | |||
900 | chng {2003 June 29 (2.8.4)} { | ||
901 | <li>Enhanced the "PRAGMA integrity_check" command to verify indices.</li> | ||
902 | <li>Added authorization hooks for the new ATTACH and DETACH commands.</li> | ||
903 | <li>Many documentation updates</li> | ||
904 | <li>Many minor bug fixes</li> | ||
905 | } | ||
906 | |||
907 | chng {2003 June 4 (2.8.3)} { | ||
908 | <li>Fix a problem that will corrupt the indices on a table if you | ||
909 | do an INSERT OR REPLACE or an UPDATE OR REPLACE on a table that | ||
910 | contains an INTEGER PRIMARY KEY plus one or more indices.</li> | ||
911 | <li>Fix a bug in windows locking code so that locks work correctly | ||
912 | when simultaneously accessed by Win95 and WinNT systems.</li> | ||
913 | <li>Add the ability for INSERT and UPDATE statements to refer to the | ||
914 | "rowid" (or "_rowid_" or "oid") columns.</li> | ||
915 | <li>Other important bug fixes</li> | ||
916 | } | ||
917 | |||
918 | chng {2003 May 17 (2.8.2)} { | ||
919 | <li>Fix a problem that will corrupt the database file if you drop a | ||
920 | table from the main database that has a TEMP index.</li> | ||
921 | } | ||
922 | |||
923 | chng {2003 May 16 (2.8.1)} { | ||
924 | <li>Reactivated the VACUUM command that reclaims unused disk space in | ||
925 | a database file.</li> | ||
926 | <li>Added the ATTACH and DETACH commands to allow interacting with multiple | ||
927 | database files at the same time.</li> | ||
928 | <li>Added support for TEMP triggers and indices.</li> | ||
929 | <li>Added support for in-memory databases.</li> | ||
930 | <li>Removed the experimental sqlite_open_aux_file(). Its function is | ||
931 | subsumed in the new ATTACH command.</li> | ||
932 | <li>The precedence order for ON CONFLICT clauses was changed so that | ||
933 | ON CONFLICT clauses on BEGIN statements have a higher precedence than | ||
934 | ON CONFLICT clauses on constraints. | ||
935 | <li>Many, many bug fixes and compatibility enhancements.</li> | ||
936 | } | ||
937 | |||
938 | chng {2003 Feb 16 (2.8.0)} { | ||
939 | <li>Modified the journal file format to make it more resistant to corruption | ||
940 | that can occur after an OS crash or power failure.</li> | ||
941 | <li>Added a new C/C++ API that does not use callback for returning data.</li> | ||
942 | } | ||
943 | |||
944 | chng {2003 Jan 25 (2.7.6)} { | ||
945 | <li>Performance improvements. The library is now much faster.</li> | ||
946 | <li>Added the <b>sqlite_set_authorizer()</b> API. Formal documentation has | ||
947 | not been written - see the source code comments for instructions on | ||
948 | how to use this function.</li> | ||
949 | <li>Fix a bug in the GLOB operator that was preventing it from working | ||
950 | with upper-case letters.</li> | ||
951 | <li>Various minor bug fixes.</li> | ||
952 | } | ||
953 | |||
954 | chng {2002 Dec 27 (2.7.5)} { | ||
955 | <li>Fix an uninitialized variable in pager.c which could (with a probability | ||
956 | of about 1 in 4 billion) result in a corrupted database.</li> | ||
957 | } | ||
958 | |||
959 | chng {2002 Dec 17 (2.7.4)} { | ||
960 | <li>Database files can now grow to be up to 2^41 bytes. The old limit | ||
961 | was 2^31 bytes.</li> | ||
962 | <li>The optimizer will now scan tables in the reverse if doing so will | ||
963 | satisfy an ORDER BY ... DESC clause.</li> | ||
964 | <li>The full pathname of the database file is now remembered even if | ||
965 | a relative path is passed into sqlite_open(). This allows | ||
966 | the library to continue operating correctly after a chdir().</li> | ||
967 | <li>Speed improvements in the VDBE.</li> | ||
968 | <li>Lots of little bug fixes.</li> | ||
969 | } | ||
970 | |||
971 | chng {2002 Oct 30 (2.7.3)} { | ||
972 | <li>Various compiler compatibility fixes.</li> | ||
973 | <li>Fix a bug in the "expr IN ()" operator.</li> | ||
974 | <li>Accept column names in parentheses.</li> | ||
975 | <li>Fix a problem with string memory management in the VDBE</li> | ||
976 | <li>Fix a bug in the "table_info" pragma"</li> | ||
977 | <li>Export the sqlite_function_type() API function in the Windows DLL</li> | ||
978 | <li>Fix locking behavior under windows</li> | ||
979 | <li>Fix a bug in LEFT OUTER JOIN</li> | ||
980 | } | ||
981 | |||
982 | chng {2002 Sep 25 (2.7.2)} { | ||
983 | <li>Prevent journal file overflows on huge transactions.</li> | ||
984 | <li>Fix a memory leak that occurred when sqlite_open() failed.</li> | ||
985 | <li>Honor the ORDER BY and LIMIT clause of a SELECT even if the | ||
986 | result set is used for an INSERT.</li> | ||
987 | <li>Do not put write locks on the file used to hold TEMP tables.</li> | ||
988 | <li>Added documentation on SELECT DISTINCT and on how SQLite handles NULLs.</li> | ||
989 | <li>Fix a problem that was causing poor performance when many thousands | ||
990 | of SQL statements were executed by a single sqlite_exec() call.</li> | ||
991 | } | ||
992 | |||
993 | chng {2002 Aug 31 (2.7.1)} { | ||
994 | <li>Fix a bug in the ORDER BY logic that was introduced in version 2.7.0</li> | ||
995 | <li>C-style comments are now accepted by the tokenizer.</li> | ||
996 | <li>INSERT runs a little faster when the source is a SELECT statement.</li> | ||
997 | } | ||
998 | |||
999 | chng {2002 Aug 25 (2.7.0)} { | ||
1000 | <li>Make a distinction between numeric and text values when sorting. | ||
1001 | Text values sort according to memcmp(). Numeric values sort in | ||
1002 | numeric order.</li> | ||
1003 | <li>Allow multiple simultaneous readers under windows by simulating | ||
1004 | the reader/writers locks that are missing from Win95/98/ME.</li> | ||
1005 | <li>An error is now returned when trying to start a transaction if | ||
1006 | another transaction is already active.</li> | ||
1007 | } | ||
1008 | |||
1009 | chng {2002 Aug 12 (2.6.3)} { | ||
1010 | <li>Add the ability to read both little-endian and big-endian databases. | ||
1011 | So database created under SunOS or MacOSX can be read and written | ||
1012 | under Linux or Windows and vice versa.</li> | ||
1013 | <li>Convert to the new website: http://www.sqlite.org/</li> | ||
1014 | <li>Allow transactions to span Linux Threads</li> | ||
1015 | <li>Bug fix in the processing of the ORDER BY clause for GROUP BY queries</li> | ||
1016 | } | ||
1017 | |||
1018 | chng {2002 Jly 30 (2.6.2)} { | ||
1019 | <li>Text files read by the COPY command can now have line terminators | ||
1020 | of LF, CRLF, or CR.</li> | ||
1021 | <li>SQLITE_BUSY is handled correctly if encountered during database | ||
1022 | initialization.</li> | ||
1023 | <li>Fix to UPDATE triggers on TEMP tables.</li> | ||
1024 | <li>Documentation updates.</li> | ||
1025 | } | ||
1026 | |||
1027 | chng {2002 Jly 19 (2.6.1)} { | ||
1028 | <li>Include a static string in the library that responds to the RCS | ||
1029 | "ident" command and which contains the library version number.</li> | ||
1030 | <li>Fix an assertion failure that occurred when deleting all rows of | ||
1031 | a table with the "count_changes" pragma turned on.</li> | ||
1032 | <li>Better error reporting when problems occur during the automatic | ||
1033 | 2.5.6 to 2.6.0 database format upgrade.</li> | ||
1034 | } | ||
1035 | |||
1036 | chng {2002 Jly 17 (2.6.0)} { | ||
1037 | <li>Change the format of indices to correct a design flaw the originated | ||
1038 | with version 2.1.0. <font color="red">*** This is an incompatible | ||
1039 | file format change ***</font> When version 2.6.0 or later of the | ||
1040 | library attempts to open a database file created by version 2.5.6 or | ||
1041 | earlier, it will automatically and irreversibly convert the file format. | ||
1042 | <b>Make backup copies of older database files before opening them with | ||
1043 | version 2.6.0 of the library.</b> | ||
1044 | </li> | ||
1045 | } | ||
1046 | |||
1047 | chng {2002 Jly 7 (2.5.6)} { | ||
1048 | <li>Fix more problems with rollback. Enhance the test suite to exercise | ||
1049 | the rollback logic extensively in order to prevent any future problems. | ||
1050 | </li> | ||
1051 | } | ||
1052 | |||
1053 | chng {2002 Jly 6 (2.5.5)} { | ||
1054 | <li>Fix a bug which could cause database corruption during a rollback. | ||
1055 | This bugs was introduced in version 2.4.0 by the freelist | ||
1056 | optimization of checking [410].</li> | ||
1057 | <li>Fix a bug in aggregate functions for VIEWs.</li> | ||
1058 | <li>Other minor changes and enhancements.</li> | ||
1059 | } | ||
1060 | |||
1061 | chng {2002 Jly 1 (2.5.4)} { | ||
1062 | <li>Make the "AS" keyword optional again.</li> | ||
1063 | <li>The datatype of columns now appear in the 4th argument to the | ||
1064 | callback.</li> | ||
1065 | <li>Added the <b>sqlite_open_aux_file()</b> API, though it is still | ||
1066 | mostly undocumented and untested.</li> | ||
1067 | <li>Added additional test cases and fixed a few bugs that those | ||
1068 | test cases found.</li> | ||
1069 | } | ||
1070 | |||
1071 | chng {2002 Jun 24 (2.5.3)} { | ||
1072 | <li>Bug fix: Database corruption can occur due to the optimization | ||
1073 | that was introduced in version 2.4.0 (check-in [410]). The problem | ||
1074 | should now be fixed. The use of versions 2.4.0 through 2.5.2 is | ||
1075 | not recommended.</li> | ||
1076 | } | ||
1077 | |||
1078 | chng {2002 Jun 24 (2.5.2)} { | ||
1079 | <li>Added the new <b>SQLITE_TEMP_MASTER</b> table which records the schema | ||
1080 | for temporary tables in the same way that <b>SQLITE_MASTER</b> does for | ||
1081 | persistent tables.</li> | ||
1082 | <li>Added an optimization to UNION ALL</li> | ||
1083 | <li>Fixed a bug in the processing of LEFT OUTER JOIN</li> | ||
1084 | <li>The LIMIT clause now works on subselects</li> | ||
1085 | <li>ORDER BY works on subselects</li> | ||
1086 | <li>There is a new TypeOf() function used to determine if an expression | ||
1087 | is numeric or text.</li> | ||
1088 | <li>Autoincrement now works for INSERT from a SELECT.</li> | ||
1089 | } | ||
1090 | |||
1091 | chng {2002 Jun 19 (2.5.1)} { | ||
1092 | <li>The query optimizer now attempts to implement the ORDER BY clause | ||
1093 | using an index. Sorting is still used if not suitable index is | ||
1094 | available.</li> | ||
1095 | } | ||
1096 | |||
1097 | chng {2002 Jun 17 (2.5.0)} { | ||
1098 | <li>Added support for row triggers.</li> | ||
1099 | <li>Added SQL-92 compliant handling of NULLs.</li> | ||
1100 | <li>Add support for the full SQL-92 join syntax and LEFT OUTER JOINs.</li> | ||
1101 | <li>Double-quoted strings interpreted as column names not text literals.</li> | ||
1102 | <li>Parse (but do not implement) foreign keys.</li> | ||
1103 | <li>Performance improvements in the parser, pager, and WHERE clause code | ||
1104 | generator.</li> | ||
1105 | <li>Make the LIMIT clause work on subqueries. (ORDER BY still does not | ||
1106 | work, though.)</li> | ||
1107 | <li>Added the "%Q" expansion to sqlite_*_printf().</li> | ||
1108 | <li>Bug fixes too numerous to mention (see the change log).</li> | ||
1109 | } | ||
1110 | |||
1111 | chng {2002 May 09 (2.4.12)} { | ||
1112 | <li>Added logic to detect when the library API routines are called out | ||
1113 | of sequence.</li> | ||
1114 | } | ||
1115 | |||
1116 | chng {2002 May 08 (2.4.11)} { | ||
1117 | <li>Bug fix: Column names in the result set were not being generated | ||
1118 | correctly for some (rather complex) VIEWs. This could cause a | ||
1119 | segfault under certain circumstances.</li> | ||
1120 | } | ||
1121 | |||
1122 | chng {2002 May 02 (2.4.10)} { | ||
1123 | <li>Bug fix: Generate correct column headers when a compound SELECT is used | ||
1124 | as a subquery.</li> | ||
1125 | <li>Added the sqlite_encode_binary() and sqlite_decode_binary() functions to | ||
1126 | the source tree. But they are not yet linked into the library.</li> | ||
1127 | <li>Documentation updates.</li> | ||
1128 | <li>Export the sqlite_changes() function from windows DLLs.</li> | ||
1129 | <li>Bug fix: Do not attempt the subquery flattening optimization on queries | ||
1130 | that lack a FROM clause. To do so causes a segfault.</li> | ||
1131 | } | ||
1132 | |||
1133 | chng {2002 Apr 21 (2.4.9)} { | ||
1134 | <li>Fix a bug that was causing the precompiled binary of SQLITE.EXE to | ||
1135 | report "out of memory" under Windows 98.</li> | ||
1136 | } | ||
1137 | |||
1138 | chng {2002 Apr 20 (2.4.8)} { | ||
1139 | <li>Make sure VIEWs are created after their corresponding TABLEs in the | ||
1140 | output of the <b>.dump</b> command in the shell.</li> | ||
1141 | <li>Speed improvements: Do not do synchronous updates on TEMP tables.</li> | ||
1142 | <li>Many improvements and enhancements to the shell.</li> | ||
1143 | <li>Make the GLOB and LIKE operators functions that can be overridden | ||
1144 | by a programmer. This allows, for example, the LIKE operator to | ||
1145 | be changed to be case sensitive.</li> | ||
1146 | } | ||
1147 | |||
1148 | chng {2002 Apr 06 (2.4.7)} { | ||
1149 | <li>Add the ability to put TABLE.* in the column list of a | ||
1150 | SELECT statement.</li> | ||
1151 | <li>Permit SELECT statements without a FROM clause.</li> | ||
1152 | <li>Added the <b>last_insert_rowid()</b> SQL function.</li> | ||
1153 | <li>Do not count rows where the IGNORE conflict resolution occurs in | ||
1154 | the row count.</li> | ||
1155 | <li>Make sure functions expressions in the VALUES clause of an INSERT | ||
1156 | are correct.</li> | ||
1157 | <li>Added the <b>sqlite_changes()</b> API function to return the number | ||
1158 | of row that changed in the most recent operation.</li> | ||
1159 | } | ||
1160 | |||
1161 | chng {2002 Apr 02 (2.4.6)} { | ||
1162 | <li>Bug fix: Correctly handle terms in the WHERE clause of a join that | ||
1163 | do not contain a comparison operator.</li> | ||
1164 | } | ||
1165 | |||
1166 | chng {2002 Apr 01 (2.4.5)} { | ||
1167 | <li>Bug fix: Correctly handle functions that appear in the WHERE clause | ||
1168 | of a join.</li> | ||
1169 | <li>When the PRAGMA vdbe_trace=ON is set, correctly print the P3 operand | ||
1170 | value when it is a pointer to a structure rather than a pointer to | ||
1171 | a string.</li> | ||
1172 | <li>When inserting an explicit NULL into an INTEGER PRIMARY KEY, convert | ||
1173 | the NULL value into a unique key automatically.</li> | ||
1174 | } | ||
1175 | |||
1176 | chng {2002 Mar 24 (2.4.4)} { | ||
1177 | <li>Allow "VIEW" to be a column name</li> | ||
1178 | <li>Added support for CASE expressions (patch from Dan Kennedy)</li> | ||
1179 | <li>Added RPMS to the delivery (patches from Doug Henry)</li> | ||
1180 | <li>Fix typos in the documentation</li> | ||
1181 | <li>Cut over configuration management to a new CVS repository with | ||
1182 | its own CVSTrac bug tracking system.</li> | ||
1183 | } | ||
1184 | |||
1185 | chng {2002 Mar 22 (2.4.3)} { | ||
1186 | <li>Fix a bug in SELECT that occurs when a compound SELECT is used as a | ||
1187 | subquery in the FROM of a SELECT.</li> | ||
1188 | <li>The <b>sqlite_get_table()</b> function now returns an error if you | ||
1189 | give it two or more SELECTs that return different numbers of columns.</li> | ||
1190 | } | ||
1191 | |||
1192 | chng {2002 Mar 14 (2.4.2)} { | ||
1193 | <li>Bug fix: Fix an assertion failure that occurred when ROWID was a column | ||
1194 | in a SELECT statement on a view.</li> | ||
1195 | <li>Bug fix: Fix an uninitialized variable in the VDBE that would could an | ||
1196 | assert failure.</li> | ||
1197 | <li>Make the os.h header file more robust in detecting when the compile is | ||
1198 | for windows and when it is for unix.</li> | ||
1199 | } | ||
1200 | |||
1201 | chng {2002 Mar 13 (2.4.1)} { | ||
1202 | <li>Using an unnamed subquery in a FROM clause would cause a segfault.</li> | ||
1203 | <li>The parser now insists on seeing a semicolon or the end of input before | ||
1204 | executing a statement. This avoids an accidental disaster if the | ||
1205 | WHERE keyword is misspelled in an UPDATE or DELETE statement.</li> | ||
1206 | } | ||
1207 | |||
1208 | |||
1209 | chng {2002 Mar 10 (2.4.0)} { | ||
1210 | <li>Change the name of the sanity_check PRAGMA to <b>integrity_check</b> | ||
1211 | and make it available in all compiles.</li> | ||
1212 | <li>SELECT min() or max() of an indexed column with no WHERE or GROUP BY | ||
1213 | clause is handled as a special case which avoids a complete table scan.</li> | ||
1214 | <li>Automatically generated ROWIDs are now sequential.</li> | ||
1215 | <li>Do not allow dot-commands of the command-line shell to occur in the | ||
1216 | middle of a real SQL command.</li> | ||
1217 | <li>Modifications to the "lemon" parser generator so that the parser tables | ||
1218 | are 4 times smaller.</li> | ||
1219 | <li>Added support for user-defined functions implemented in C.</li> | ||
1220 | <li>Added support for new functions: <b>coalesce()</b>, <b>lower()</b>, | ||
1221 | <b>upper()</b>, and <b>random()</b> | ||
1222 | <li>Added support for VIEWs.</li> | ||
1223 | <li>Added the subquery flattening optimizer.</li> | ||
1224 | <li>Modified the B-Tree and Pager modules so that disk pages that do not | ||
1225 | contain real data (free pages) are not journaled and are not | ||
1226 | written from memory back to the disk when they change. This does not | ||
1227 | impact database integrity, since the | ||
1228 | pages contain no real data, but it does make large INSERT operations | ||
1229 | about 2.5 times faster and large DELETEs about 5 times faster.</li> | ||
1230 | <li>Made the CACHE_SIZE pragma persistent</li> | ||
1231 | <li>Added the SYNCHRONOUS pragma</li> | ||
1232 | <li>Fixed a bug that was causing updates to fail inside of transactions when | ||
1233 | the database contained a temporary table.</li> | ||
1234 | } | ||
1235 | |||
1236 | chng {2002 Feb 18 (2.3.3)} { | ||
1237 | <li>Allow identifiers to be quoted in square brackets, for compatibility | ||
1238 | with MS-Access.</li> | ||
1239 | <li>Added support for sub-queries in the FROM clause of a SELECT.</li> | ||
1240 | <li>More efficient implementation of sqliteFileExists() under Windows. | ||
1241 | (by Joel Luscy)</li> | ||
1242 | <li>The VALUES clause of an INSERT can now contain expressions, including | ||
1243 | scalar SELECT clauses.</li> | ||
1244 | <li>Added support for CREATE TABLE AS SELECT</li> | ||
1245 | <li>Bug fix: Creating and dropping a table all within a single | ||
1246 | transaction was not working.</li> | ||
1247 | } | ||
1248 | |||
1249 | chng {2002 Feb 14 (2.3.2)} { | ||
1250 | <li>Bug fix: There was an incorrect assert() in pager.c. The real code was | ||
1251 | all correct (as far as is known) so everything should work OK if you | ||
1252 | compile with -DNDEBUG=1. When asserts are not disabled, there | ||
1253 | could be a fault.</li> | ||
1254 | } | ||
1255 | |||
1256 | chng {2002 Feb 13 (2.3.1)} { | ||
1257 | <li>Bug fix: An assertion was failing if "PRAGMA full_column_names=ON;" was | ||
1258 | set and you did a query that used a rowid, like this: | ||
1259 | "SELECT rowid, * FROM ...".</li> | ||
1260 | } | ||
1261 | |||
1262 | chng {2002 Jan 30 (2.3.0)} { | ||
1263 | <li>Fix a serious bug in the INSERT command which was causing data to go | ||
1264 | into the wrong columns if the data source was a SELECT and the INSERT | ||
1265 | clauses specified its columns in some order other than the default.</li> | ||
1266 | <li>Added the ability to resolve constraint conflicts is ways other than | ||
1267 | an abort and rollback. See the documentation on the "ON CONFLICT" | ||
1268 | clause for details.</li> | ||
1269 | <li>Temporary files are now automatically deleted by the operating system | ||
1270 | when closed. There are no more dangling temporary files on a program | ||
1271 | crash. (If the OS crashes, fsck will delete the file after reboot | ||
1272 | under Unix. I do not know what happens under Windows.)</li> | ||
1273 | <li>NOT NULL constraints are honored.</li> | ||
1274 | <li>The COPY command puts NULLs in columns whose data is '\N'.</li> | ||
1275 | <li>In the COPY command, backslash can now be used to escape a newline.</li> | ||
1276 | <li>Added the SANITY_CHECK pragma.</li> | ||
1277 | } | ||
1278 | |||
1279 | chng {2002 Jan 28 (2.2.5)} { | ||
1280 | <li>Important bug fix: the IN operator was not working if either the | ||
1281 | left-hand or right-hand side was derived from an INTEGER PRIMARY KEY.</li> | ||
1282 | <li>Do not escape the backslash '\' character in the output of the | ||
1283 | <b>sqlite</b> command-line access program.</li> | ||
1284 | } | ||
1285 | |||
1286 | chng {2002 Jan 22 (2.2.4)} { | ||
1287 | <li>The label to the right of an AS in the column list of a SELECT can now | ||
1288 | be used as part of an expression in the WHERE, ORDER BY, GROUP BY, and/or | ||
1289 | HAVING clauses.</li> | ||
1290 | <li>Fix a bug in the <b>-separator</b> command-line option to the <b>sqlite</b> | ||
1291 | command.</li> | ||
1292 | <li>Fix a problem with the sort order when comparing upper-case strings against | ||
1293 | characters greater than 'Z' but less than 'a'.</li> | ||
1294 | <li>Report an error if an ORDER BY or GROUP BY expression is constant.</li> | ||
1295 | } | ||
1296 | |||
1297 | chng {2002 Jan 16 (2.2.3)} { | ||
1298 | <li>Fix warning messages in VC++ 7.0. (Patches from nicolas352001)</li> | ||
1299 | <li>Make the library thread-safe. (The code is there and appears to work | ||
1300 | but has not been stressed.)</li> | ||
1301 | <li>Added the new <b>sqlite_last_insert_rowid()</b> API function.</li> | ||
1302 | } | ||
1303 | |||
1304 | chng {2002 Jan 13 (2.2.2)} { | ||
1305 | <li>Bug fix: An assertion was failing when a temporary table with an index | ||
1306 | had the same name as a permanent table created by a separate process.</li> | ||
1307 | <li>Bug fix: Updates to tables containing an INTEGER PRIMARY KEY and an | ||
1308 | index could fail.</li> | ||
1309 | } | ||
1310 | |||
1311 | chng {2002 Jan 9 (2.2.1)} { | ||
1312 | <li>Bug fix: An attempt to delete a single row of a table with a WHERE | ||
1313 | clause of "ROWID=x" when no such rowid exists was causing an error.</li> | ||
1314 | <li>Bug fix: Passing in a NULL as the 3rd parameter to <b>sqlite_open()</b> | ||
1315 | would sometimes cause a coredump.</li> | ||
1316 | <li>Bug fix: DROP TABLE followed by a CREATE TABLE with the same name all | ||
1317 | within a single transaction was causing a coredump.</li> | ||
1318 | <li>Makefile updates from A. Rottmann</li> | ||
1319 | } | ||
1320 | |||
1321 | chng {2001 Dec 22 (2.2.0)} { | ||
1322 | <li>Columns of type INTEGER PRIMARY KEY are actually used as the primary | ||
1323 | key in underlying B-Tree representation of the table.</li> | ||
1324 | <li>Several obscure, unrelated bugs were found and fixed while | ||
1325 | implemented the integer primary key change of the previous bullet.</li> | ||
1326 | <li>Added the ability to specify "*" as part of a larger column list in | ||
1327 | the result section of a SELECT statement. For example: | ||
1328 | <nobr>"<b>SELECT rowid, * FROM table1;</b>"</nobr>.</li> | ||
1329 | <li>Updates to comments and documentation.</li> | ||
1330 | } | ||
1331 | |||
1332 | chng {2001 Dec 14 (2.1.7)} { | ||
1333 | <li>Fix a bug in <b>CREATE TEMPORARY TABLE</b> which was causing the | ||
1334 | table to be initially allocated in the main database file instead | ||
1335 | of in the separate temporary file. This bug could cause the library | ||
1336 | to suffer an assertion failure and it could cause "page leaks" in the | ||
1337 | main database file. | ||
1338 | <li>Fix a bug in the b-tree subsystem that could sometimes cause the first | ||
1339 | row of a table to be repeated during a database scan.</li> | ||
1340 | } | ||
1341 | |||
1342 | chng {2001 Dec 14 (2.1.6)} { | ||
1343 | <li>Fix the locking mechanism yet again to prevent | ||
1344 | <b>sqlite_exec()</b> from returning SQLITE_PROTOCOL | ||
1345 | unnecessarily. This time the bug was a race condition in | ||
1346 | the locking code. This change effects both POSIX and Windows users.</li> | ||
1347 | } | ||
1348 | |||
1349 | chng {2001 Dec 6 (2.1.5)} { | ||
1350 | <li>Fix for another problem (unrelated to the one fixed in 2.1.4) | ||
1351 | that sometimes causes <b>sqlite_exec()</b> to return SQLITE_PROTOCOL | ||
1352 | unnecessarily. This time the bug was | ||
1353 | in the POSIX locking code and should not effect windows users.</li> | ||
1354 | } | ||
1355 | |||
1356 | chng {2001 Dec 4 (2.1.4)} { | ||
1357 | <li>Sometimes <b>sqlite_exec()</b> would return SQLITE_PROTOCOL when it | ||
1358 | should have returned SQLITE_BUSY.</li> | ||
1359 | <li>The fix to the previous bug uncovered a deadlock which was also | ||
1360 | fixed.</li> | ||
1361 | <li>Add the ability to put a single .command in the second argument | ||
1362 | of the sqlite shell</li> | ||
1363 | <li>Updates to the FAQ</li> | ||
1364 | } | ||
1365 | |||
1366 | chng {2001 Nov 23 (2.1.3)} { | ||
1367 | <li>Fix the behavior of comparison operators | ||
1368 | (ex: "<b><</b>", "<b>==</b>", etc.) | ||
1369 | so that they are consistent with the order of entries in an index.</li> | ||
1370 | <li>Correct handling of integers in SQL expressions that are larger than | ||
1371 | what can be represented by the machine integer.</li> | ||
1372 | } | ||
1373 | |||
1374 | chng {2001 Nov 22 (2.1.2)} { | ||
1375 | <li>Changes to support 64-bit architectures.</li> | ||
1376 | <li>Fix a bug in the locking protocol.</li> | ||
1377 | <li>Fix a bug that could (rarely) cause the database to become | ||
1378 | unreadable after a DROP TABLE due to corruption to the SQLITE_MASTER | ||
1379 | table.</li> | ||
1380 | <li>Change the code so that version 2.1.1 databases that were rendered | ||
1381 | unreadable by the above bug can be read by this version of | ||
1382 | the library even though the SQLITE_MASTER table is (slightly) | ||
1383 | corrupted.</li> | ||
1384 | } | ||
1385 | |||
1386 | chng {2001 Nov 13 (2.1.1)} { | ||
1387 | <li>Bug fix: Sometimes arbitrary strings were passed to the callback | ||
1388 | function when the actual value of a column was NULL.</li> | ||
1389 | } | ||
1390 | |||
1391 | chng {2001 Nov 12 (2.1.0)} { | ||
1392 | <li>Change the format of data records so that records up to 16MB in size | ||
1393 | can be stored.</li> | ||
1394 | <li>Change the format of indices to allow for better query optimization.</li> | ||
1395 | <li>Implement the "LIMIT ... OFFSET ..." clause on SELECT statements.</li> | ||
1396 | } | ||
1397 | |||
1398 | chng {2001 Nov 3 (2.0.8)} { | ||
1399 | <li>Made selected parameters in API functions <b>const</b>. This should | ||
1400 | be fully backwards compatible.</li> | ||
1401 | <li>Documentation updates</li> | ||
1402 | <li>Simplify the design of the VDBE by restricting the number of sorters | ||
1403 | and lists to 1. | ||
1404 | In practice, no more than one sorter and one list was ever used anyhow. | ||
1405 | </li> | ||
1406 | } | ||
1407 | |||
1408 | chng {2001 Oct 21 (2.0.7)} { | ||
1409 | <li>Any UTF-8 character or ISO8859 character can be used as part of | ||
1410 | an identifier.</li> | ||
1411 | <li>Patches from Christian Werner to improve ODBC compatibility and to | ||
1412 | fix a bug in the round() function.</li> | ||
1413 | <li>Plug some memory leaks that use to occur if malloc() failed. | ||
1414 | We have been and continue to be memory leak free as long as | ||
1415 | malloc() works.</li> | ||
1416 | <li>Changes to some test scripts so that they work on Windows in | ||
1417 | addition to Unix.</li> | ||
1418 | } | ||
1419 | |||
1420 | chng {2001 Oct 19 (2.0.6)} { | ||
1421 | <li>Added the EMPTY_RESULT_CALLBACKS pragma</li> | ||
1422 | <li>Support for UTF-8 and ISO8859 characters in column and table names.</li> | ||
1423 | <li>Bug fix: Compute correct table names with the FULL_COLUMN_NAMES pragma | ||
1424 | is turned on.</li> | ||
1425 | } | ||
1426 | |||
1427 | chng {2001 Oct 14 (2.0.5)} { | ||
1428 | <li>Added the COUNT_CHANGES pragma.</li> | ||
1429 | <li>Changes to the FULL_COLUMN_NAMES pragma to help out the ODBC driver.</li> | ||
1430 | <li>Bug fix: "SELECT count(*)" was returning NULL for empty tables. | ||
1431 | Now it returns 0.</li> | ||
1432 | } | ||
1433 | |||
1434 | chng {2001 Oct 13 (2.0.4)} { | ||
1435 | <li>Bug fix: an obscure and relatively harmless bug was causing one of | ||
1436 | the tests to fail when gcc optimizations are turned on. This release | ||
1437 | fixes the problem.</li> | ||
1438 | } | ||
1439 | |||
1440 | chng {2001 Oct 13 (2.0.3)} { | ||
1441 | <li>Bug fix: the <b>sqlite_busy_timeout()</b> function was delaying 1000 | ||
1442 | times too long before failing.</li> | ||
1443 | <li>Bug fix: an assertion was failing if the disk holding the database | ||
1444 | file became full or stopped accepting writes for some other reason. | ||
1445 | New tests were added to detect similar problems in the future.</li> | ||
1446 | <li>Added new operators: <b>&</b> (bitwise-and) | ||
1447 | <b>|</b> (bitwise-or), <b>~</b> (ones-complement), | ||
1448 | <b><<</b> (shift left), <b>>></b> (shift right).</li> | ||
1449 | <li>Added new functions: <b>round()</b> and <b>abs()</b>.</li> | ||
1450 | } | ||
1451 | |||
1452 | chng {2001 Oct 9 (2.0.2)} { | ||
1453 | <li>Fix two bugs in the locking protocol. (One was masking the other.)</li> | ||
1454 | <li>Removed some unused "#include <unistd.h>" that were causing problems | ||
1455 | for VC++.</li> | ||
1456 | <li>Fixed <b>sqlite.h</b> so that it is usable from C++</li> | ||
1457 | <li>Added the FULL_COLUMN_NAMES pragma. When set to "ON", the names of | ||
1458 | columns are reported back as TABLE.COLUMN instead of just COLUMN.</li> | ||
1459 | <li>Added the TABLE_INFO() and INDEX_INFO() pragmas to help support the | ||
1460 | ODBC interface.</li> | ||
1461 | <li>Added support for TEMPORARY tables and indices.</li> | ||
1462 | } | ||
1463 | |||
1464 | chng {2001 Oct 2 (2.0.1)} { | ||
1465 | <li>Remove some C++ style comments from btree.c so that it will compile | ||
1466 | using compilers other than gcc.</li> | ||
1467 | <li>The ".dump" output from the shell does not work if there are embedded | ||
1468 | newlines anywhere in the data. This is an old bug that was carried | ||
1469 | forward from version 1.0. To fix it, the ".dump" output no longer | ||
1470 | uses the COPY command. It instead generates INSERT statements.</li> | ||
1471 | <li>Extend the expression syntax to support "expr NOT NULL" (with a | ||
1472 | space between the "NOT" and the "NULL") in addition to "expr NOTNULL" | ||
1473 | (with no space).</li> | ||
1474 | } | ||
1475 | |||
1476 | chng {2001 Sep 28 (2.0.0)} { | ||
1477 | <li>Automatically build binaries for Linux and Windows and put them on | ||
1478 | the website.</li> | ||
1479 | } | ||
1480 | |||
1481 | chng {2001 Sep 28 (2.0-alpha-4)} { | ||
1482 | <li>Incorporate makefile patches form A. Rottmann to use LIBTOOL</li> | ||
1483 | } | ||
1484 | |||
1485 | chng {2001 Sep 27 (2.0-alpha-3)} { | ||
1486 | <li>SQLite now honors the UNIQUE keyword in CREATE UNIQUE INDEX. Primary | ||
1487 | keys are required to be unique.</li> | ||
1488 | <li>File format changed back to what it was for alpha-1</li> | ||
1489 | <li>Fixes to the rollback and locking behavior</li> | ||
1490 | } | ||
1491 | |||
1492 | chng {2001 Sep 20 (2.0-alpha-2)} { | ||
1493 | <li>Initial release of version 2.0. The idea of renaming the library | ||
1494 | to "SQLus" was abandoned in favor of keeping the "SQLite" name and | ||
1495 | bumping the major version number.</li> | ||
1496 | <li>The pager and btree subsystems added back. They are now the only | ||
1497 | available backend.</li> | ||
1498 | <li>The Dbbe abstraction and the GDBM and memory drivers were removed.</li> | ||
1499 | <li>Copyright on all code was disclaimed. The library is now in the | ||
1500 | public domain.</li> | ||
1501 | } | ||
1502 | |||
1503 | chng {2001 Jul 23 (1.0.32)} { | ||
1504 | <li>Pager and btree subsystems removed. These will be used in a follow-on | ||
1505 | SQL server library named "SQLus".</li> | ||
1506 | <li>Add the ability to use quoted strings as table and column names in | ||
1507 | expressions.</li> | ||
1508 | } | ||
1509 | |||
1510 | chng {2001 Apr 14 (1.0.31)} { | ||
1511 | <li>Pager subsystem added but not yet used.</li> | ||
1512 | <li>More robust handling of out-of-memory errors.</li> | ||
1513 | <li>New tests added to the test suite.</li> | ||
1514 | } | ||
1515 | |||
1516 | chng {2001 Apr 6 (1.0.30)} { | ||
1517 | <li>Remove the <b>sqlite_encoding</b> TCL variable that was introduced | ||
1518 | in the previous version.</li> | ||
1519 | <li>Add options <b>-encoding</b> and <b>-tcl-uses-utf</b> to the | ||
1520 | <b>sqlite</b> TCL command.</li> | ||
1521 | <li>Add tests to make sure that tclsqlite was compiled using Tcl header | ||
1522 | files and libraries that match.</li> | ||
1523 | } | ||
1524 | |||
1525 | chng {2001 Apr 5 (1.0.29)} { | ||
1526 | <li>The library now assumes data is stored as UTF-8 if the --enable-utf8 | ||
1527 | option is given to configure. The default behavior is to assume | ||
1528 | iso8859-x, as it has always done. This only makes a difference for | ||
1529 | LIKE and GLOB operators and the LENGTH and SUBSTR functions.</li> | ||
1530 | <li>If the library is not configured for UTF-8 and the Tcl library | ||
1531 | is one of the newer ones that uses UTF-8 internally, | ||
1532 | then a conversion from UTF-8 to iso8859 and | ||
1533 | back again is done inside the TCL interface.</li> | ||
1534 | } | ||
1535 | |||
1536 | chng {2001 Apr 4 (1.0.28)} { | ||
1537 | <li>Added limited support for transactions. At this point, transactions | ||
1538 | will do table locking on the GDBM backend. There is no support (yet) | ||
1539 | for rollback or atomic commit.</li> | ||
1540 | <li>Added special column names ROWID, OID, and _ROWID_ that refer to the | ||
1541 | unique random integer key associated with every row of every table.</li> | ||
1542 | <li>Additional tests added to the regression suite to cover the new ROWID | ||
1543 | feature and the TCL interface bugs mentioned below.</li> | ||
1544 | <li>Changes to the "lemon" parser generator to help it work better when | ||
1545 | compiled using MSVC.</li> | ||
1546 | <li>Bug fixes in the TCL interface identified by Oleg Oleinick.</li> | ||
1547 | } | ||
1548 | |||
1549 | chng {2001 Mar 20 (1.0.27)} { | ||
1550 | <li>When doing DELETE and UPDATE, the library used to write the record | ||
1551 | numbers of records to be deleted or updated into a temporary file. | ||
1552 | This is changed so that the record numbers are held in memory.</li> | ||
1553 | <li>The DELETE command without a WHILE clause just removes the database | ||
1554 | files from the disk, rather than going through and deleting record | ||
1555 | by record.</li> | ||
1556 | } | ||
1557 | |||
1558 | chng {2001 Mar 20 (1.0.26)} { | ||
1559 | <li>A serious bug fixed on Windows. Windows users should upgrade. | ||
1560 | No impact to Unix.</li> | ||
1561 | } | ||
1562 | |||
1563 | chng {2001 Mar 15 (1.0.25)} { | ||
1564 | <li>Modify the test scripts to identify tests that depend on system | ||
1565 | load and processor speed and | ||
1566 | to warn the user that a failure of one of those (rare) tests does | ||
1567 | not necessarily mean the library is malfunctioning. No changes to | ||
1568 | code. | ||
1569 | </li> | ||
1570 | } | ||
1571 | |||
1572 | chng {2001 Mar 14 (1.0.24)} { | ||
1573 | <li>Fix a bug which was causing | ||
1574 | the UPDATE command to fail on systems where "malloc(0)" returns | ||
1575 | NULL. The problem does not appear Windows, Linux, or HPUX but does | ||
1576 | cause the library to fail on QNX. | ||
1577 | </li> | ||
1578 | } | ||
1579 | |||
1580 | chng {2001 Feb 19 (1.0.23)} { | ||
1581 | <li>An unrelated (and minor) bug from Mark Muranwski fixed. The algorithm | ||
1582 | for figuring out where to put temporary files for a "memory:" database | ||
1583 | was not working quite right. | ||
1584 | </li> | ||
1585 | } | ||
1586 | |||
1587 | chng {2001 Feb 19 (1.0.22)} { | ||
1588 | <li>The previous fix was not quite right. This one seems to work better. | ||
1589 | </li> | ||
1590 | } | ||
1591 | |||
1592 | chng {2001 Feb 19 (1.0.21)} { | ||
1593 | <li>The UPDATE statement was not working when the WHERE clause contained | ||
1594 | some terms that could be satisfied using indices and other terms that | ||
1595 | could not. Fixed.</li> | ||
1596 | } | ||
1597 | |||
1598 | chng {2001 Feb 11 (1.0.20)} { | ||
1599 | <li>Merge development changes into the main trunk. Future work toward | ||
1600 | using a BTree file structure will use a separate CVS source tree. This | ||
1601 | CVS tree will continue to support the GDBM version of SQLite only.</li> | ||
1602 | } | ||
1603 | |||
1604 | chng {2001 Feb 6 (1.0.19)} { | ||
1605 | <li>Fix a strange (but valid) C declaration that was causing problems | ||
1606 | for QNX. No logical changes.</li> | ||
1607 | } | ||
1608 | |||
1609 | chng {2001 Jan 4 (1.0.18)} { | ||
1610 | <li>Print the offending SQL statement when an error occurs.</li> | ||
1611 | <li>Do not require commas between constraints in CREATE TABLE statements.</li> | ||
1612 | <li>Added the "-echo" option to the shell.</li> | ||
1613 | <li>Changes to comments.</li> | ||
1614 | } | ||
1615 | |||
1616 | chng {2000 Dec 10 (1.0.17)} { | ||
1617 | <li>Rewrote <b>sqlite_complete()</b> to make it faster.</li> | ||
1618 | <li>Minor tweaks to other code to make it run a little faster.</li> | ||
1619 | <li>Added new tests for <b>sqlite_complete()</b> and for memory leaks.</li> | ||
1620 | } | ||
1621 | |||
1622 | chng {2000 Dec 4 (1.0.16)} { | ||
1623 | <li>Documentation updates. Mostly fixing of typos and spelling errors.</li> | ||
1624 | } | ||
1625 | |||
1626 | chng {2000 Oct 23 (1.0.15)} { | ||
1627 | <li>Documentation updates</li> | ||
1628 | <li>Some sanity checking code was removed from the inner loop of vdbe.c | ||
1629 | to help the library to run a little faster. The code is only | ||
1630 | removed if you compile with -DNDEBUG.</li> | ||
1631 | } | ||
1632 | |||
1633 | chng {2000 Oct 19 (1.0.14)} { | ||
1634 | <li>Added a "memory:" backend driver that stores its database in an | ||
1635 | in-memory hash table.</li> | ||
1636 | } | ||
1637 | |||
1638 | chng {2000 Oct 18 (1.0.13)} { | ||
1639 | <li>Break out the GDBM driver into a separate file in anticipation | ||
1640 | to added new drivers.</li> | ||
1641 | <li>Allow the name of a database to be prefixed by the driver type. | ||
1642 | For now, the only driver type is "gdbm:".</li> | ||
1643 | } | ||
1644 | |||
1645 | chng {2000 Oct 16 (1.0.12)} { | ||
1646 | <li>Fixed an off-by-one error that was causing a coredump in | ||
1647 | the '%q' format directive of the new | ||
1648 | <b>sqlite_..._printf()</b> routines.</li> | ||
1649 | <li>Added the <b>sqlite_interrupt()</b> interface.</li> | ||
1650 | <li>In the shell, <b>sqlite_interrupt()</b> is invoked when the | ||
1651 | user presses Control-C</li> | ||
1652 | <li>Fixed some instances where <b>sqlite_exec()</b> was | ||
1653 | returning the wrong error code.</li> | ||
1654 | } | ||
1655 | |||
1656 | chng {2000 Oct 11 (1.0.10)} { | ||
1657 | <li>Added notes on how to compile for Windows95/98.</li> | ||
1658 | <li>Removed a few variables that were not being used. Etc.</li> | ||
1659 | } | ||
1660 | |||
1661 | chng {2000 Oct 8 (1.0.9)} { | ||
1662 | <li>Added the <b>sqlite_..._printf()</b> interface routines.</li> | ||
1663 | <li>Modified the <b>sqlite</b> shell program to use the new interface | ||
1664 | routines.</li> | ||
1665 | <li>Modified the <b>sqlite</b> shell program to print the schema for | ||
1666 | the built-in SQLITE_MASTER table, if explicitly requested.</li> | ||
1667 | } | ||
1668 | |||
1669 | chng {2000 Sep 30 (1.0.8)} { | ||
1670 | <li>Begin writing documentation on the TCL interface.</li> | ||
1671 | } | ||
1672 | |||
1673 | chng {2000 Sep 29 (Not Released)} { | ||
1674 | <li>Added the <b>sqlite_get_table()</b> API</li> | ||
1675 | <li>Updated the documentation for due to the above change.</li> | ||
1676 | <li>Modified the <b>sqlite</b> shell to make use of the new | ||
1677 | sqlite_get_table() API in order to print a list of tables | ||
1678 | in multiple columns, similar to the way "ls" prints filenames.</li> | ||
1679 | <li>Modified the <b>sqlite</b> shell to print a semicolon at the | ||
1680 | end of each CREATE statement in the output of the ".schema" command.</li> | ||
1681 | } | ||
1682 | |||
1683 | chng {2000 Sep 21 (Not Released)} { | ||
1684 | <li>Change the tclsqlite "eval" method to return a list of results if | ||
1685 | no callback script is specified.</li> | ||
1686 | <li>Change tclsqlite.c to use the Tcl_Obj interface</li> | ||
1687 | <li>Add tclsqlite.c to the libsqlite.a library</li> | ||
1688 | } | ||
1689 | |||
1690 | chng {2000 Sep 13 (Version 1.0.5)} { | ||
1691 | <li>Changed the print format for floating point values from "%g" to "%.15g". | ||
1692 | </li> | ||
1693 | <li>Changed the comparison function so that numbers in exponential notation | ||
1694 | (ex: 1.234e+05) sort in numerical order.</li> | ||
1695 | } | ||
1696 | |||
1697 | chng {2000 Aug 28 (Version 1.0.4)} { | ||
1698 | <li>Added functions <b>length()</b> and <b>substr()</b>.</li> | ||
1699 | <li>Fix a bug in the <b>sqlite</b> shell program that was causing | ||
1700 | a coredump when the output mode was "column" and the first row | ||
1701 | of data contained a NULL.</li> | ||
1702 | } | ||
1703 | |||
1704 | chng {2000 Aug 22 (Version 1.0.3)} { | ||
1705 | <li>In the sqlite shell, print the "Database opened READ ONLY" message | ||
1706 | to stderr instead of stdout.</li> | ||
1707 | <li>In the sqlite shell, now print the version number on initial startup.</li> | ||
1708 | <li>Add the <b>sqlite_version[]</b> string constant to the library</li> | ||
1709 | <li>Makefile updates</li> | ||
1710 | <li>Bug fix: incorrect VDBE code was being generated for the following | ||
1711 | circumstance: a query on an indexed table containing a WHERE clause with | ||
1712 | an IN operator that had a subquery on its right-hand side.</li> | ||
1713 | } | ||
1714 | |||
1715 | chng {2000 Aug 18 (Version 1.0.1)} { | ||
1716 | <li>Fix a bug in the configure script.</li> | ||
1717 | <li>Minor revisions to the website.</li> | ||
1718 | } | ||
1719 | |||
1720 | chng {2000 Aug 17 (Version 1.0)} { | ||
1721 | <li>Change the <b>sqlite</b> program so that it can read | ||
1722 | databases for which it lacks write permission. (It used to | ||
1723 | refuse all access if it could not write.)</li> | ||
1724 | } | ||
1725 | |||
1726 | chng {2000 Aug 9} { | ||
1727 | <li>Treat carriage returns as white space.</li> | ||
1728 | } | ||
1729 | |||
1730 | chng {2000 Aug 8} { | ||
1731 | <li>Added pattern matching to the ".table" command in the "sqlite" | ||
1732 | command shell.</li> | ||
1733 | } | ||
1734 | |||
1735 | chng {2000 Aug 4} { | ||
1736 | <li>Documentation updates</li> | ||
1737 | <li>Added "busy" and "timeout" methods to the Tcl interface</li> | ||
1738 | } | ||
1739 | |||
1740 | chng {2000 Aug 3} { | ||
1741 | <li>File format version number was being stored in sqlite_master.tcl | ||
1742 | multiple times. This was harmless, but unnecessary. It is now fixed.</li> | ||
1743 | } | ||
1744 | |||
1745 | chng {2000 Aug 2} { | ||
1746 | <li>The file format for indices was changed slightly in order to work | ||
1747 | around an inefficiency that can sometimes come up with GDBM when | ||
1748 | there are large indices having many entries with the same key. | ||
1749 | <font color="red">** Incompatible Change **</font></li> | ||
1750 | } | ||
1751 | |||
1752 | chng {2000 Aug 1} { | ||
1753 | <li>The parser's stack was overflowing on a very long UPDATE statement. | ||
1754 | This is now fixed.</li> | ||
1755 | } | ||
1756 | |||
1757 | chng {2000 July 31} { | ||
1758 | <li>Finish the <a href="vdbe.html">VDBE tutorial</a>.</li> | ||
1759 | <li>Added documentation on compiling to WindowsNT.</li> | ||
1760 | <li>Fix a configuration program for WindowsNT.</li> | ||
1761 | <li>Fix a configuration problem for HPUX.</li> | ||
1762 | } | ||
1763 | |||
1764 | chng {2000 July 29} { | ||
1765 | <li>Better labels on column names of the result.</li> | ||
1766 | } | ||
1767 | |||
1768 | chng {2000 July 28} { | ||
1769 | <li>Added the <b>sqlite_busy_handler()</b> | ||
1770 | and <b>sqlite_busy_timeout()</b> interface.</li> | ||
1771 | } | ||
1772 | |||
1773 | chng {2000 June 23} { | ||
1774 | <li>Begin writing the <a href="vdbe.html">VDBE tutorial</a>.</li> | ||
1775 | } | ||
1776 | |||
1777 | chng {2000 June 21} { | ||
1778 | <li>Clean up comments and variable names. Changes to documentation. | ||
1779 | No functional changes to the code.</li> | ||
1780 | } | ||
1781 | |||
1782 | chng {2000 June 19} { | ||
1783 | <li>Column names in UPDATE statements were case sensitive. | ||
1784 | This mistake has now been fixed.</li> | ||
1785 | } | ||
1786 | |||
1787 | chng {2000 June 16} { | ||
1788 | <li>Added the concatenate string operator (||)</li> | ||
1789 | } | ||
1790 | |||
1791 | chng {2000 June 12} { | ||
1792 | <li>Added the fcnt() function to the SQL interpreter. The fcnt() function | ||
1793 | returns the number of database "Fetch" operations that have occurred. | ||
1794 | This function is designed for use in test scripts to verify that | ||
1795 | queries are efficient and appropriately optimized. Fcnt() has no other | ||
1796 | useful purpose, as far as I know.</li> | ||
1797 | <li>Added a bunch more tests that take advantage of the new fcnt() function. | ||
1798 | The new tests did not uncover any new problems.</li> | ||
1799 | } | ||
1800 | |||
1801 | chng {2000 June 8} { | ||
1802 | <li>Added lots of new test cases</li> | ||
1803 | <li>Fix a few bugs discovered while adding test cases</li> | ||
1804 | <li>Begin adding lots of new documentation</li> | ||
1805 | } | ||
1806 | |||
1807 | chng {2000 June 6} { | ||
1808 | <li>Added compound select operators: <B>UNION</b>, <b>UNION ALL</B>, | ||
1809 | <b>INTERSECT</b>, and <b>EXCEPT</b></li> | ||
1810 | <li>Added support for using <b>(SELECT ...)</b> within expressions</li> | ||
1811 | <li>Added support for <b>IN</b> and <b>BETWEEN</b> operators</li> | ||
1812 | <li>Added support for <b>GROUP BY</b> and <b>HAVING</b></li> | ||
1813 | <li>NULL values are now reported to the callback as a NULL pointer | ||
1814 | rather than an empty string.</li> | ||
1815 | } | ||
1816 | |||
1817 | chng {2000 June 3} { | ||
1818 | <li>Added support for default values on columns of a table.</li> | ||
1819 | <li>Improved test coverage. Fixed a few obscure bugs found by the | ||
1820 | improved tests.</li> | ||
1821 | } | ||
1822 | |||
1823 | chng {2000 June 2} { | ||
1824 | <li>All database files to be modified by an UPDATE, INSERT or DELETE are | ||
1825 | now locked before any changes are made to any files. | ||
1826 | This makes it safe (I think) to access | ||
1827 | the same database simultaneously from multiple processes.</li> | ||
1828 | <li>The code appears stable so we are now calling it "beta".</li> | ||
1829 | } | ||
1830 | |||
1831 | chng {2000 June 1} { | ||
1832 | <li>Better support for file locking so that two or more processes | ||
1833 | (or threads) | ||
1834 | can access the same database simultaneously. More work needed in | ||
1835 | this area, though.</li> | ||
1836 | } | ||
1837 | |||
1838 | chng {2000 May 31} { | ||
1839 | <li>Added support for aggregate functions (Ex: <b>COUNT(*)</b>, <b>MIN(...)</b>) | ||
1840 | to the SELECT statement.</li> | ||
1841 | <li>Added support for <B>SELECT DISTINCT ...</B></li> | ||
1842 | } | ||
1843 | |||
1844 | chng {2000 May 30} { | ||
1845 | <li>Added the <b>LIKE</b> operator.</li> | ||
1846 | <li>Added a <b>GLOB</b> operator: similar to <B>LIKE</B> | ||
1847 | but it uses Unix shell globbing wildcards instead of the '%' | ||
1848 | and '_' wildcards of SQL.</li> | ||
1849 | <li>Added the <B>COPY</b> command patterned after | ||
1850 | <a href="http://www.postgresql.org/">PostgreSQL</a> so that SQLite | ||
1851 | can now read the output of the <b>pg_dump</b> database dump utility | ||
1852 | of PostgreSQL.</li> | ||
1853 | <li>Added a <B>VACUUM</B> command that that calls the | ||
1854 | <b>gdbm_reorganize()</b> function on the underlying database | ||
1855 | files.</li> | ||
1856 | <li>And many, many bug fixes...</li> | ||
1857 | } | ||
1858 | |||
1859 | chng {2000 May 29} { | ||
1860 | <li>Initial Public Release of Alpha code</li> | ||
1861 | } | ||
1862 | |||
1863 | puts { | ||
1864 | </DL> | ||
1865 | } | ||
1866 | footer {$Id:} | ||