Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch branch-3.7.15 Excluding Merge-Ins
This is equivalent to a diff from cd0b37c5 to 46f7c930
2013-01-26
| ||
19:26 | Add a single test case to fts4unicode.test to verify that title-case maps to lower case. (Leaf check-in: 46f7c930 user: drh tags: branch-3.7.15) | |
2013-01-09
| ||
11:53 | Version 3.7.15.2 (check-in: c0e09560 user: drh tags: version-3.7.15.2, branch-3.7.15) | |
2012-12-19
| ||
17:10 | Backport to the 3.7.15 branch the fix to the segfault problem of ticket [a7b7803e8d1e869] which involved the use of "AS" named result columns as logical terms of the WHERE clause. Also, change the version number to 3.7.15.1. (check-in: bae528f4 user: drh tags: branch-3.7.15) | |
2012-12-12
| ||
14:30 | Allow the error message from "PRAGMA integrity_check" to be longer than 20,000 bytes. (check-in: 120c82d5 user: drh tags: trunk) | |
13:36 | Version 3.7.15 (check-in: cd0b37c5 user: dan tags: trunk, release, version-3.7.15) | |
2012-12-11
| ||
19:40 | Update requirements marks and test cases for multi-VALUE INSERT and to fix typos in requirements text. (check-in: 81d9ee0f user: drh tags: trunk) | |
Changes to VERSION.
1 -3.7.15 1 +3.7.15.2
Changes to configure.
1 1 #! /bin/sh 2 2 # Guess values for system-dependent variables and create Makefiles. 3 -# Generated by GNU Autoconf 2.62 for sqlite 3.7.15. 3 +# Generated by GNU Autoconf 2.62 for sqlite 3.7.15.2. 4 4 # 5 5 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 6 6 # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 7 7 # This configure script is free software; the Free Software Foundation 8 8 # gives unlimited permission to copy, distribute and modify it. 9 9 ## --------------------- ## 10 10 ## M4sh Initialization. ## ................................................................................ 739 739 MFLAGS= 740 740 MAKEFLAGS= 741 741 SHELL=${CONFIG_SHELL-/bin/sh} 742 742 743 743 # Identity of this package. 744 744 PACKAGE_NAME='sqlite' 745 745 PACKAGE_TARNAME='sqlite' 746 -PACKAGE_VERSION='3.7.15' 747 -PACKAGE_STRING='sqlite 3.7.15' 746 +PACKAGE_VERSION='3.7.15.2' 747 +PACKAGE_STRING='sqlite 3.7.15.2' 748 748 PACKAGE_BUGREPORT='' 749 749 750 750 # Factoring default headers for most tests. 751 751 ac_includes_default="\ 752 752 #include <stdio.h> 753 753 #ifdef HAVE_SYS_TYPES_H 754 754 # include <sys/types.h> ................................................................................ 1480 1480 # 1481 1481 # Report the --help message. 1482 1482 # 1483 1483 if test "$ac_init_help" = "long"; then 1484 1484 # Omit some internal or obsolete options to make the list less imposing. 1485 1485 # This message is too long to be a string in the A/UX 3.1 sh. 1486 1486 cat <<_ACEOF 1487 -\`configure' configures sqlite 3.7.15 to adapt to many kinds of systems. 1487 +\`configure' configures sqlite 3.7.15.2 to adapt to many kinds of systems. 1488 1488 1489 1489 Usage: $0 [OPTION]... [VAR=VALUE]... 1490 1490 1491 1491 To assign environment variables (e.g., CC, CFLAGS...), specify them as 1492 1492 VAR=VALUE. See below for descriptions of some of the useful variables. 1493 1493 1494 1494 Defaults for the options are specified in brackets. ................................................................................ 1545 1545 --build=BUILD configure for building on BUILD [guessed] 1546 1546 --host=HOST cross-compile to build programs to run on HOST [BUILD] 1547 1547 _ACEOF 1548 1548 fi 1549 1549 1550 1550 if test -n "$ac_init_help"; then 1551 1551 case $ac_init_help in 1552 - short | recursive ) echo "Configuration of sqlite 3.7.15:";; 1552 + short | recursive ) echo "Configuration of sqlite 3.7.15.2:";; 1553 1553 esac 1554 1554 cat <<\_ACEOF 1555 1555 1556 1556 Optional Features: 1557 1557 --disable-option-checking ignore unrecognized --enable/--with options 1558 1558 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) 1559 1559 --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ................................................................................ 1661 1661 cd "$ac_pwd" || { ac_status=$?; break; } 1662 1662 done 1663 1663 fi 1664 1664 1665 1665 test -n "$ac_init_help" && exit $ac_status 1666 1666 if $ac_init_version; then 1667 1667 cat <<\_ACEOF 1668 -sqlite configure 3.7.15 1668 +sqlite configure 3.7.15.2 1669 1669 generated by GNU Autoconf 2.62 1670 1670 1671 1671 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 1672 1672 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 1673 1673 This configure script is free software; the Free Software Foundation 1674 1674 gives unlimited permission to copy, distribute and modify it. 1675 1675 _ACEOF 1676 1676 exit 1677 1677 fi 1678 1678 cat >config.log <<_ACEOF 1679 1679 This file contains any messages produced by compilers while 1680 1680 running configure, to aid debugging if configure makes a mistake. 1681 1681 1682 -It was created by sqlite $as_me 3.7.15, which was 1682 +It was created by sqlite $as_me 3.7.15.2, which was 1683 1683 generated by GNU Autoconf 2.62. Invocation command line was 1684 1684 1685 1685 $ $0 $@ 1686 1686 1687 1687 _ACEOF 1688 1688 exec 5>>config.log 1689 1689 { ................................................................................ 14029 14029 14030 14030 exec 6>&1 14031 14031 14032 14032 # Save the log message, to keep $[0] and so on meaningful, and to 14033 14033 # report actual input values of CONFIG_FILES etc. instead of their 14034 14034 # values after options handling. 14035 14035 ac_log=" 14036 -This file was extended by sqlite $as_me 3.7.15, which was 14036 +This file was extended by sqlite $as_me 3.7.15.2, which was 14037 14037 generated by GNU Autoconf 2.62. Invocation command line was 14038 14038 14039 14039 CONFIG_FILES = $CONFIG_FILES 14040 14040 CONFIG_HEADERS = $CONFIG_HEADERS 14041 14041 CONFIG_LINKS = $CONFIG_LINKS 14042 14042 CONFIG_COMMANDS = $CONFIG_COMMANDS 14043 14043 $ $0 $@ ................................................................................ 14082 14082 $config_commands 14083 14083 14084 14084 Report bugs to <bug-autoconf@gnu.org>." 14085 14085 14086 14086 _ACEOF 14087 14087 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 14088 14088 ac_cs_version="\\ 14089 -sqlite config.status 3.7.15 14089 +sqlite config.status 3.7.15.2 14090 14090 configured by $0, generated by GNU Autoconf 2.62, 14091 14091 with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" 14092 14092 14093 14093 Copyright (C) 2008 Free Software Foundation, Inc. 14094 14094 This config.status script is free software; the Free Software Foundation 14095 14095 gives unlimited permission to copy, distribute and modify it." 14096 14096 ................................................................................ 14515 14515 14516 14516 # Set up the scripts for CONFIG_FILES section. 14517 14517 # No need to generate them if there are no CONFIG_FILES. 14518 14518 # This happens for instance with `./config.status config.h'. 14519 14519 if test -n "$CONFIG_FILES"; then 14520 14520 14521 14521 14522 -ac_cr=' ' 14522 +ac_cr=' 14523 +' 14523 14524 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` 14524 14525 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then 14525 14526 ac_cs_awk_cr='\\r' 14526 14527 else 14527 14528 ac_cs_awk_cr=$ac_cr 14528 14529 fi 14529 14530 ................................................................................ 15750 15751 # would make configure fail if this is the last instruction. 15751 15752 $ac_cs_success || { (exit 1); exit 1; } 15752 15753 fi 15753 15754 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then 15754 15755 { $as_echo "$as_me:$LINENO: WARNING: Unrecognized options: $ac_unrecognized_opts" >&5 15755 15756 $as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2;} 15756 15757 fi 15757 -
Changes to src/where.c.
399 399 memcpy(pWC->a, pOld, sizeof(pWC->a[0])*pWC->nTerm); 400 400 if( pOld!=pWC->aStatic ){ 401 401 sqlite3DbFree(db, pOld); 402 402 } 403 403 pWC->nSlot = sqlite3DbMallocSize(db, pWC->a)/sizeof(pWC->a[0]); 404 404 } 405 405 pTerm = &pWC->a[idx = pWC->nTerm++]; 406 - pTerm->pExpr = p; 406 + pTerm->pExpr = sqlite3ExprSkipCollate(p); 407 407 pTerm->wtFlags = wtFlags; 408 408 pTerm->pWC = pWC; 409 409 pTerm->iParent = -1; 410 410 return idx; 411 411 } 412 412 413 413 /* ................................................................................ 1184 1184 sqlite3 *db = pParse->db; /* Database connection */ 1185 1185 1186 1186 if( db->mallocFailed ){ 1187 1187 return; 1188 1188 } 1189 1189 pTerm = &pWC->a[idxTerm]; 1190 1190 pMaskSet = pWC->pMaskSet; 1191 - pExpr = sqlite3ExprSkipCollate(pTerm->pExpr); 1191 + pExpr = pTerm->pExpr; 1192 + assert( pExpr->op!=TK_AS && pExpr->op!=TK_COLLATE ); 1192 1193 prereqLeft = exprTableUsage(pMaskSet, pExpr->pLeft); 1193 1194 op = pExpr->op; 1194 1195 if( op==TK_IN ){ 1195 1196 assert( pExpr->pRight==0 ); 1196 1197 if( ExprHasProperty(pExpr, EP_xIsSelect) ){ 1197 1198 pTerm->prereqRight = exprSelectTableUsage(pMaskSet, pExpr->x.pSelect); 1198 1199 }else{ ................................................................................ 3265 3266 ** variable. */ 3266 3267 if( bSort && (pSrc->jointype & JT_LEFT)==0 ){ 3267 3268 int bRev = 2; 3268 3269 WHERETRACE((" --> before isSortingIndex: nPriorSat=%d\n",nPriorSat)); 3269 3270 pc.plan.nOBSat = isSortingIndex(p, pProbe, iCur, &bRev); 3270 3271 WHERETRACE((" --> after isSortingIndex: bRev=%d nOBSat=%d\n", 3271 3272 bRev, pc.plan.nOBSat)); 3272 - if( nPriorSat<pc.plan.nOBSat || (pc.plan.wsFlags & WHERE_UNIQUE)!=0 ){ 3273 + if( nPriorSat<pc.plan.nOBSat || (pc.plan.wsFlags & WHERE_ALL_UNIQUE)!=0 ){ 3273 3274 pc.plan.wsFlags |= WHERE_ORDERED; 3274 3275 } 3275 3276 if( nOrderBy==pc.plan.nOBSat ){ 3276 3277 bSort = 0; 3277 3278 pc.plan.wsFlags |= WHERE_ROWID_RANGE|WHERE_COLUMN_RANGE; 3278 3279 } 3279 3280 if( bRev & 1 ) pc.plan.wsFlags |= WHERE_REVERSE;
Changes to test/fts4unicode.test.
40 40 append sql "'" 41 41 } 42 42 append sql ")" 43 43 uplevel [list do_execsql_test $tn $sql [list [list {*}$res]]] 44 44 } 45 45 46 46 do_unicode_token_test 1.0 {a B c D} {0 a a 1 b B 2 c c 3 d D} 47 -do_unicode_token_test 1.1 {Ä Ö Ü} {0 ä Ä 1 ö Ö 2 ü Ü} 48 -do_unicode_token_test 1.2 {xÄx xÖx xÜx} {0 xäx xÄx 1 xöx xÖx 2 xüx xÜx} 47 +do_unicode_token_test 1.1 {Ä Ö Ü} {0 ä Ä 1 ö Ö 2 ü Ü} 48 +do_unicode_token_test 1.2 {xÄx xÖx xÜx} {0 xäx xÄx 1 xöx xÖx 2 xüx xÜx} 49 49 50 50 # 0x00DF is a small "sharp s". 0x1E9E is a capital sharp s. 51 51 do_unicode_token_test 1.3 "\uDF" "0 \uDF \uDF" 52 -do_unicode_token_test 1.4 "\u1E9E" "0 ß \u1E9E" 52 +do_unicode_token_test 1.4 "\u1E9E" "0 ß \u1E9E" 53 53 do_unicode_token_test 1.5 "\u1E9E" "0 \uDF \u1E9E" 54 54 55 55 do_unicode_token_test 1.6 "The quick brown fox" { 56 56 0 the The 1 quick quick 2 brown brown 3 fox fox 57 57 } 58 58 do_unicode_token_test 1.7 "The\u00bfquick\u224ebrown\u2263fox" { 59 59 0 the The 1 quick quick 2 brown brown 3 fox fox 60 60 } 61 61 62 62 do_unicode_token_test2 1.8 {a B c D} {0 a a 1 b B 2 c c 3 d D} 63 -do_unicode_token_test2 1.9 {Ä Ö Ü} {0 a Ä 1 o Ö 2 u Ü} 64 -do_unicode_token_test2 1.10 {xÄx xÖx xÜx} {0 xax xÄx 1 xox xÖx 2 xux xÜx} 63 +do_unicode_token_test2 1.9 {Ä Ö Ü} {0 a Ä 1 o Ö 2 u Ü} 64 +do_unicode_token_test2 1.10 {xÄx xÖx xÜx} {0 xax xÄx 1 xox xÖx 2 xux xÜx} 65 65 66 66 # Check that diacritics are removed if remove_diacritics=1 is specified. 67 67 # And that they do not break tokens. 68 -do_unicode_token_test2 1.10 "xx\u0301xx" "0 xxxx xx\u301xx" 68 +do_unicode_token_test2 1.11 "xx\u0301xx" "0 xxxx xx\u301xx" 69 + 70 +# Title-case mappings work 71 +do_unicode_token_test 1.12 "\u01c5" "0 \u01c6 \u01c5" 69 72 70 73 #------------------------------------------------------------------------- 71 74 # 72 75 set docs [list { 73 76 Enhance the INSERT syntax to allow multiple rows to be inserted via the 74 77 VALUES clause. 75 78 } { ................................................................................ 379 382 do_isspace_test 6.$T.19 $T {8196 8197 8198 8199} 380 383 do_isspace_test 6.$T.19 $T {8200 8201 8202 8239} 381 384 do_isspace_test 6.$T.19 $T {8287 12288} 382 385 } 383 386 384 387 385 388 finish_test 386 - 387 -
Added test/tkt-a7b7803e.test.
1 +# 2012 December 19 2 +# 3 +# The author disclaims copyright to this source code. In place of 4 +# a legal notice, here is a blessing: 5 +# 6 +# May you do good and not evil. 7 +# May you find forgiveness for yourself and forgive others. 8 +# May you share freely, never taking more than you give. 9 +# 10 +#*********************************************************************** 11 +# This file implements regression tests for SQLite library. Specifically, 12 +# it tests that ticket [a7b7803e8d1e8699cd8a460a38133b98892d2e17] has 13 +# been fixed. 14 +# 15 + 16 +set testdir [file dirname $argv0] 17 +source $testdir/tester.tcl 18 +source $testdir/lock_common.tcl 19 +source $testdir/malloc_common.tcl 20 + 21 +do_test tkt-a7b7803e.1 { 22 + db eval { 23 + CREATE TABLE t1(a,b); 24 + INSERT INTO t1 VALUES(0,'first'),(99,'fuzzy'); 25 + SELECT (t1.a==0) AS x, b 26 + FROM t1 27 + WHERE a=0 OR x; 28 + } 29 +} {1 first} 30 +do_test tkt-a7b7803e.2 { 31 + db eval { 32 + SELECT a, (t1.b='fuzzy') AS x 33 + FROM t1 34 + WHERE x 35 + } 36 +} {99 1} 37 +do_test tkt-a7b7803e.3 { 38 + db eval { 39 + SELECT (a=99) AS x, (t1.b='fuzzy') AS y, * 40 + FROM t1 41 + WHERE x AND y 42 + } 43 +} {1 1 99 fuzzy} 44 +do_test tkt-a7b7803e.4 { 45 + db eval { 46 + SELECT (a=99) AS x, (t1.b='first') AS y, * 47 + FROM t1 48 + WHERE x OR y 49 + ORDER BY a 50 + } 51 +} {0 1 0 first 1 0 99 fuzzy} 52 +do_test tkt-a7b7803e.5 { 53 + db eval { 54 + SELECT (M.a=99) AS x, M.b, (N.b='first') AS y, N.b 55 + FROM t1 M, t1 N 56 + WHERE x OR y 57 + ORDER BY M.a, N.a 58 + } 59 +} {0 first 1 first 1 fuzzy 1 first 1 fuzzy 0 fuzzy} 60 +do_test tkt-a7b7803e.6 { 61 + db eval { 62 + SELECT (M.a=99) AS x, M.b, (N.b='first') AS y, N.b 63 + FROM t1 M, t1 N 64 + WHERE x AND y 65 + ORDER BY M.a, N.a 66 + } 67 +} {1 fuzzy 1 first} 68 +do_test tkt-a7b7803e.7 { 69 + db eval { 70 + SELECT (M.a=99) AS x, M.b, (N.b='first') AS y, N.b 71 + FROM t1 M JOIN t1 N ON x AND y 72 + ORDER BY M.a, N.a 73 + } 74 +} {1 fuzzy 1 first} 75 +do_test tkt-a7b7803e.8 { 76 + db eval { 77 + SELECT (M.a=99) AS x, M.b, (N.b='first') AS y, N.b 78 + FROM t1 M JOIN t1 N ON x 79 + ORDER BY M.a, N.a 80 + } 81 +} {1 fuzzy 1 first 1 fuzzy 0 fuzzy} 82 + 83 + 84 +finish_test