dan [Wed, 5 Jun 2013 16:17:21 +0000 (16:17 +0000)]
Up until now the fts4 "unicode61" tokenizer has treated all private use codepoints except the first and last of each of the three ranges as alphanumeric (eligible to be part of tokens). This commit fixes this so that all private use codepoints are considered alphanumeric. In other words, it fixes the handling of codepoints 0xE000, 0xF8FF, 0xF0000, 0xFFFFD, 0x100000 and 0x10FFFD.
drh [Mon, 3 Jun 2013 12:47:43 +0000 (12:47 +0000)]
Enhance the shell to provide more flexibility when entering numeric arguments
on dot-commands. In particular, allow hexadecimal arguments to .wheretrace
and .testctrl commands. Cherrypick from [b9578c371ee5].
drh [Wed, 29 May 2013 17:48:28 +0000 (17:48 +0000)]
Updates to the Codec interface to support codecs on attached databases and
to allow rekeying in the middle of a transaction. These changes are only
applicable if SQLite is compiled with SQLITE_HAS_CODEC.
drh [Tue, 28 May 2013 17:30:52 +0000 (17:30 +0000)]
Finish removing the sqlite3.inTrans field. In the previous check-in, it was
merely commented out because I failed to select File->Save on my text editor.
dan [Mon, 27 May 2013 10:11:53 +0000 (10:11 +0000)]
When writing to an FTS table, take an exclusive shared-cache lock on the %_segdir table before writing. Otherwise, an xCommit() call may report an SQLITE_LOCKED error.
dan [Thu, 23 May 2013 10:13:18 +0000 (10:13 +0000)]
Avoid unnecessary calls to FCNTL_SIZE_HINT. Return an error to the user if the file-control invoked by "PRAGMA mmap_size" returns a value other than SQLITE_OK or SQLITE_NOTFOUND.
drh [Thu, 23 May 2013 01:40:53 +0000 (01:40 +0000)]
Cause the mmap_size PRAGMA to immediately change the mmap space if the
database connection is already active. In particular, reducing mmap_size
will immediately free up process address space.
drh [Fri, 17 May 2013 17:15:34 +0000 (17:15 +0000)]
Fix a bug in SQLITE_TRACE_SIZE_LIMIT that was introduced by
check-in [1a1cf5aa86734c8]. That check-in was to remove harmless
compiler warnings. So once again, we have introduced a real bug
into SQLite by attempting to eliminate a harmless compiler warning.
dan [Fri, 17 May 2013 16:41:15 +0000 (16:41 +0000)]
In test file test_syscall.c, include sqliteInt.h before any tcl or system include files. This ensures that the magical defines in sqliteInt.h really do enable large file support (and set things up so that sizeof(off_t)==8).
dan [Fri, 17 May 2013 12:10:52 +0000 (12:10 +0000)]
In os_unix.c and os_win.c, initialize the default mmap-limit of a new file descriptor to the current global default mmap-limit, not the current global maximum allowable mmap-limit.
dan [Thu, 16 May 2013 11:57:28 +0000 (11:57 +0000)]
In sqlite3_close_v2(), do not attempt to roll back a transaction if there exist active statement objects. Any open transaction will be rolled back when the last of these statement objects is finalized.
drh [Thu, 16 May 2013 01:02:45 +0000 (01:02 +0000)]
Treat identifiers in the HAVING clause the same as in the WHERE clause.
Only consider AS names from the result set to match if there are no other
matches. Continuation of the fix for [2500cdb9be05]. This check-in
fixes a bug found by [http://www.sqlite.org/sqllogictest/ | SqlLogicTest]
during release testing for version 3.7.17.
drh [Wed, 15 May 2013 17:47:12 +0000 (17:47 +0000)]
The sqlite3ExprCollSeq() function can no longer be called while parse
the schema, so remove the code path inside of sqlite3ExprCollSeq() that
dealt with that case.
dan [Wed, 15 May 2013 15:16:50 +0000 (15:16 +0000)]
When loading a database schema that contains an index definition that includes a COLLATE clause for which the collation sequence is unavailable, do not assume that that index uses BINARY instead. Fix for [0fc59f908b].
dan [Wed, 15 May 2013 10:21:50 +0000 (10:21 +0000)]
When closing a connection, avoid tripping active cursors belonging to a different shared-cache client. Also, if sqlite3_close() is called while there are still active statements belonging to the connection, return SQLITE_BUSY and do not roll back any active transaction.
drh [Wed, 8 May 2013 16:57:48 +0000 (16:57 +0000)]
Make sure the ORDER BY collating sequences are compatible with the
comparison collations before using the merge algorithm for compound
SELECT statements. Fix for ticket [6709574d2a8d8].
drh [Tue, 7 May 2013 17:49:08 +0000 (17:49 +0000)]
Make sure the ORDER BY collating sequences are compatible with the
comparison collations before using the merge algorithm for compound
SELECT statements. Candidate fix for ticket [6709574d2a8d8].
dan [Tue, 7 May 2013 12:16:48 +0000 (12:16 +0000)]
Modify the fts3tokenize table implementation so that it does not use the SQL function fts3_tokenizer. The user may have installed an authorizer callback that prohibits this.
drh [Mon, 6 May 2013 21:01:06 +0000 (21:01 +0000)]
In the command-line shell, output the elements of the schema in the order
that they appear in the sqlite_master table. This is necessary in some
cases to make the schema parsable.
drh [Mon, 6 May 2013 20:28:54 +0000 (20:28 +0000)]
In the command-line shell, make sure the output of dot-commands goes to
the same redirected output stream as the result of queries.
Ticket [2f96536e7ff7dba]
drh [Mon, 6 May 2013 13:22:50 +0000 (13:22 +0000)]
Make sure the authorizer callback gets a valid pointer to "ROWID" for the
column-name parameter when doing an UPDATE that changes the rowid.
Fix for ticket [0eb70d77cb05bb2272].
drh [Wed, 1 May 2013 19:49:27 +0000 (19:49 +0000)]
Allocate 4 bytes of unused header space for an "Application ID". Add
the "PRAGMA application_id" command to set and query this identifier.
Add the "magic.txt" file to show how the posix file command might use
this application id.
drh [Wed, 1 May 2013 17:58:35 +0000 (17:58 +0000)]
Do not use a transitive constraint to an IN operator where the RHS is a
constant if there exists a direct == operator to another table in an outer
loop.
Update the documentation to explain that when the 3rd parameter to
sqlite3_bind_text() and friends is NULL the result is to bind a NULL
SQL value. Ticket [19b44e35753ba]
Update 'fuzzerfault' test for its new module loading command. Fix several test names in 'io.test' and make sure the database gets closed between tests.