Merge sqlite-release(3.8.0.1) into prerelease-integration
This commit is contained in:
commit
fd75108661
|
@ -1,10 +1,6 @@
|
|||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for sqlcipher 3.8.0.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||
#
|
||||
# Generated by GNU Autoconf 2.62 for sqlcipher 3.8.0.1.
|
||||
#
|
||||
# This configure script is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy, distribute and modify it.
|
||||
|
@ -726,8 +722,8 @@ MAKEFLAGS=
|
|||
# Identity of this package.
|
||||
PACKAGE_NAME='sqlcipher'
|
||||
PACKAGE_TARNAME='sqlcipher'
|
||||
PACKAGE_VERSION='3.8.0'
|
||||
PACKAGE_STRING='sqlcipher 3.8.0'
|
||||
PACKAGE_VERSION='3.8.0.1'
|
||||
PACKAGE_STRING='sqlcipher 3.8.0.1'
|
||||
PACKAGE_BUGREPORT=''
|
||||
PACKAGE_URL=''
|
||||
|
||||
|
@ -1458,7 +1454,7 @@ if test "$ac_init_help" = "long"; then
|
|||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures sqlcipher 3.8.0 to adapt to many kinds of systems.
|
||||
\`configure' configures sqlcipher 3.8.0.1 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
|
@ -1523,7 +1519,7 @@ fi
|
|||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of sqlcipher 3.8.0:";;
|
||||
short | recursive ) echo "Configuration of sqlcipher 3.8.0.1:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
|
@ -1641,8 +1637,8 @@ fi
|
|||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
sqlcipher configure 3.8.0
|
||||
generated by GNU Autoconf 2.69
|
||||
sqlcipher configure 3.8.0.1
|
||||
generated by GNU Autoconf 2.62
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
This configure script is free software; the Free Software Foundation
|
||||
|
@ -1651,9 +1647,8 @@ _ACEOF
|
|||
exit
|
||||
fi
|
||||
|
||||
## ------------------------ ##
|
||||
## Autoconf initialization. ##
|
||||
## ------------------------ ##
|
||||
It was created by sqlcipher $as_me 3.8.0.1, which was
|
||||
generated by GNU Autoconf 2.62. Invocation command line was
|
||||
|
||||
# ac_fn_c_try_compile LINENO
|
||||
# --------------------------
|
||||
|
@ -12005,8 +12000,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by sqlcipher $as_me 3.8.0, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
This file was extended by sqlcipher $as_me 3.8.0.1, which was
|
||||
generated by GNU Autoconf 2.62. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
CONFIG_HEADERS = $CONFIG_HEADERS
|
||||
|
@ -12071,9 +12066,9 @@ _ACEOF
|
|||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
sqlcipher config.status 3.8.0
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
sqlcipher config.status 3.8.0.1
|
||||
configured by $0, generated by GNU Autoconf 2.62,
|
||||
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
This config.status script is free software; the Free Software Foundation
|
||||
|
|
26
manifest
26
manifest
|
@ -1,12 +1,12 @@
|
|||
C Version\s3.8.0
|
||||
D 2013-08-26T04:50:08.905
|
||||
C Version\s3.8.0.1
|
||||
D 2013-08-29T17:35:01.986
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
F Makefile.msc e9f41f89111627baaabd95cab4988b8d1c3e47c9
|
||||
F Makefile.vxworks db21ed42a01d5740e656b16f92cb5d8d5e5dd315
|
||||
F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
|
||||
F VERSION f135b651727f978b7191bd6fa12c7fc1e13e13ac
|
||||
F VERSION 087a4ef56b220aeb0fbef8ae45871be9668cd970
|
||||
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
|
||||
F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531
|
||||
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
|
||||
|
@ -38,7 +38,7 @@ F autoconf/tea/win/rules.vc c511f222b80064096b705dbeb97060ee1d6b6d63
|
|||
F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977
|
||||
F config.h.in 0921066a13130082764ab4ab6456f7b5bebe56de
|
||||
F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55
|
||||
F configure 27e9279a219b652bd1c53439353a5e5be70214b2 x
|
||||
F configure 9af276330ddd63041537a88323705690d02df76e x
|
||||
F configure.ac 81c43d151d0b0e406be056394cc9ff4cb3fd0444
|
||||
F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
|
||||
F doc/lemon.html 334dbf6621b8fb8790297ec1abf3cfa4621709d1
|
||||
|
@ -155,7 +155,7 @@ F mptest/multiwrite01.test 499ad0310da8dff8e8f98d2e272fc2a8aa741b2e
|
|||
F spec.template 86a4a43b99ebb3e75e6b9a735d5fd293a24e90ca
|
||||
F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
|
||||
F sqlite3.1 6be1ad09113570e1fc8dcaff84c9b0b337db5ffc
|
||||
F sqlite3.pc.in ae6f59a76e862f5c561eb32a380228a02afc3cad
|
||||
F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
|
||||
F src/alter.c f8db986c03eb0bfb221523fc9bbb9d0b70de3168
|
||||
F src/analyze.c a33fcb0b3a399d966951feb9f32115106b3ecc2e
|
||||
F src/attach.c fea00cab11c854646a27641a263f5876569a51f9
|
||||
|
@ -217,7 +217,7 @@ F src/random.c 0b2dbc37fdfbfa6bd455b091dfcef5bdb32dba68
|
|||
F src/resolve.c 9d53899cc6e1f4ec0b4632d07e97d57827bf63b9
|
||||
F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
|
||||
F src/select.c 8b148eb851f384412aea57091659d14b369918ca
|
||||
F src/shell.c 1c317a4c96d61d8d9fdad9fd1811d9b10b8c7f57
|
||||
F src/shell.c 0fb2ce9876596e99ed64caffaec6c4bf224cb22d
|
||||
F src/sqlite.h.in bd1451ba1ab681022a53bccc3c39580ba094a3ff
|
||||
F src/sqlite3.rc fea433eb0a59f4c9393c8e6d76a6e2596b1fe0c0
|
||||
F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
|
||||
|
@ -290,7 +290,7 @@ F src/vtab.c 165ce0e797c2cd23badb104c9f2ae9042d6d942c
|
|||
F src/wal.c 7dc3966ef98b74422267e7e6e46e07ff6c6eb1b4
|
||||
F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
|
||||
F src/walker.c 4fa43583d0a84b48f93b1e88f11adf2065be4e73
|
||||
F src/where.c 6e718c39d6b2964f15f6c96ce5938b4652e3538e
|
||||
F src/where.c a9ec7caba7697f152bd34853b98500dd54c4b240
|
||||
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
||||
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
||||
F test/aggnested.test 45c0201e28045ad38a530b5a144b73cd4aa2cfd6
|
||||
|
@ -857,6 +857,7 @@ F test/tkt-868145d012.test a5f941107ece6a64410ca4755c6329b7eb57a356
|
|||
F test/tkt-91e2e8ba6f.test 08c4f94ae07696b05c9b822da0b4e5337a2f54c5
|
||||
F test/tkt-94c04eaadb.test fa9c71192f7e2ea2d51bf078bc34e8da6088bf71
|
||||
F test/tkt-9d68c883.test 458f7d82a523d7644b54b497c986378a7d8c8b67
|
||||
F test/tkt-9f2eb3abac.test 85bc63e749f050e6a61c8f9207f1eee65c9d3395
|
||||
F test/tkt-a7b7803e.test 159ef554234fa1f9fb318c751b284bd1cf858da4
|
||||
F test/tkt-b1d3a2e531.test 610ef582413171b379652663111b1f996d9f8f78
|
||||
F test/tkt-b351d95f9.test d14a503c414c5c58fdde3e80f9a3cfef986498c0
|
||||
|
@ -1047,7 +1048,7 @@ F test/where6.test 5da5a98cec820d488e82708301b96cb8c18a258b
|
|||
F test/where7.test 5a4b0abc207d71da4deecd734ad8579e8dd40aa8
|
||||
F test/where8.test 6f95896633cf2d307b5263145b942b7d33e837c6
|
||||
F test/where8m.test da346596e19d54f0aba35ebade032a7c47d79739
|
||||
F test/where9.test 9a7fda4a4512abc26a855e8b2b6572b200f6019b
|
||||
F test/where9.test 167a89495715db4d6a7d1e6a1aadf934ddc06516
|
||||
F test/whereA.test 4d253178d135ec46d1671e440cd8f2b916aa6e6b
|
||||
F test/whereB.test 0def95db3bdec220a731c7e4bec5930327c1d8c5
|
||||
F test/whereC.test d6f4ecd4fa2d9429681a5b22a25d2bda8e86ab8a
|
||||
|
@ -1105,10 +1106,9 @@ F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
|||
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
||||
F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae
|
||||
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
|
||||
P ed310201628cf79c0f57674ae7478ee6738b1c6e
|
||||
R 5a6ead2576f296902c1b2ccbdf985254
|
||||
T +bgcolor * #d0c0ff
|
||||
P c5857808c0707baa30994dd6aa3b9c93a74c0073
|
||||
R f09fdab74837e6353df38f5d2273681e
|
||||
T +sym-release *
|
||||
T +sym-version-3.8.0 *
|
||||
T +sym-version-3.8.0.1 *
|
||||
U drh
|
||||
Z 16184cb835825e1de42c653d441df656
|
||||
Z 3c028394a3a00a433c82a9881b010566
|
||||
|
|
|
@ -1 +1 @@
|
|||
f64cd21e2e23ed7cff48f7dafa5e76adde9321c2
|
||||
352362bc01660edfbda08179d60f09e2038a2f49
|
||||
|
|
|
@ -7,7 +7,7 @@ includedir=@includedir@
|
|||
|
||||
Name: SQLite
|
||||
Description: SQL database engine
|
||||
Version: @RELEASE@
|
||||
Version: @PACKAGE_VERSION@
|
||||
Libs: -L${libdir} -lsqlite3
|
||||
Libs.private: @LIBS@
|
||||
Cflags: -I${includedir}
|
||||
|
|
|
@ -1717,7 +1717,7 @@ static char *csv_read_one_field(CSVReader *p){
|
|||
}
|
||||
if( (c==cSep && pc==cQuote)
|
||||
|| (c=='\n' && pc==cQuote)
|
||||
|| (c=='\n' && pc=='\r' && p->n>2 && p->z[p->n-2]==cQuote)
|
||||
|| (c=='\n' && pc=='\r' && p->n>=2 && p->z[p->n-2]==cQuote)
|
||||
|| (c==EOF && pc==cQuote)
|
||||
){
|
||||
do{ p->n--; }while( p->z[p->n]!=cQuote );
|
||||
|
|
17
src/where.c
17
src/where.c
|
@ -1205,8 +1205,10 @@ static int isMatchOfColumn(
|
|||
** a join, then transfer the appropriate markings over to derived.
|
||||
*/
|
||||
static void transferJoinMarkings(Expr *pDerived, Expr *pBase){
|
||||
pDerived->flags |= pBase->flags & EP_FromJoin;
|
||||
pDerived->iRightJoinTable = pBase->iRightJoinTable;
|
||||
if( pDerived ){
|
||||
pDerived->flags |= pBase->flags & EP_FromJoin;
|
||||
pDerived->iRightJoinTable = pBase->iRightJoinTable;
|
||||
}
|
||||
}
|
||||
|
||||
#if !defined(SQLITE_OMIT_OR_OPTIMIZATION) && !defined(SQLITE_OMIT_SUBQUERY)
|
||||
|
@ -1663,6 +1665,7 @@ static void exprAnalyze(
|
|||
pNewExpr = sqlite3PExpr(pParse, ops[i],
|
||||
sqlite3ExprDup(db, pExpr->pLeft, 0),
|
||||
sqlite3ExprDup(db, pList->a[i].pExpr, 0), 0);
|
||||
transferJoinMarkings(pNewExpr, pExpr);
|
||||
idxNew = whereClauseInsert(pWC, pNewExpr, TERM_VIRTUAL|TERM_DYNAMIC);
|
||||
testcase( idxNew==0 );
|
||||
exprAnalyze(pSrc, pWC, idxNew);
|
||||
|
@ -1730,6 +1733,7 @@ static void exprAnalyze(
|
|||
pNewExpr1 = sqlite3PExpr(pParse, TK_GE,
|
||||
sqlite3ExprAddCollateToken(pParse,pNewExpr1,&sCollSeqName),
|
||||
pStr1, 0);
|
||||
transferJoinMarkings(pNewExpr1, pExpr);
|
||||
idxNew1 = whereClauseInsert(pWC, pNewExpr1, TERM_VIRTUAL|TERM_DYNAMIC);
|
||||
testcase( idxNew1==0 );
|
||||
exprAnalyze(pSrc, pWC, idxNew1);
|
||||
|
@ -1737,6 +1741,7 @@ static void exprAnalyze(
|
|||
pNewExpr2 = sqlite3PExpr(pParse, TK_LT,
|
||||
sqlite3ExprAddCollateToken(pParse,pNewExpr2,&sCollSeqName),
|
||||
pStr2, 0);
|
||||
transferJoinMarkings(pNewExpr2, pExpr);
|
||||
idxNew2 = whereClauseInsert(pWC, pNewExpr2, TERM_VIRTUAL|TERM_DYNAMIC);
|
||||
testcase( idxNew2==0 );
|
||||
exprAnalyze(pSrc, pWC, idxNew2);
|
||||
|
@ -5546,11 +5551,15 @@ static int whereShortCut(WhereLoopBuilder *pBuilder){
|
|||
pLoop->rRun = 33; /* 33==whereCost(10) */
|
||||
}else{
|
||||
for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
|
||||
if( pIdx->onError==OE_None || pIdx->pPartIdxWhere!=0 ) continue;
|
||||
assert( pLoop->aLTermSpace==pLoop->aLTerm );
|
||||
assert( ArraySize(pLoop->aLTermSpace)==4 );
|
||||
if( pIdx->onError==OE_None
|
||||
|| pIdx->pPartIdxWhere!=0
|
||||
|| pIdx->nColumn>ArraySize(pLoop->aLTermSpace)
|
||||
) continue;
|
||||
for(j=0; j<pIdx->nColumn; j++){
|
||||
pTerm = findTerm(pWC, iCur, pIdx->aiColumn[j], 0, WO_EQ, pIdx);
|
||||
if( pTerm==0 ) break;
|
||||
whereLoopResize(pWInfo->pParse->db, pLoop, j);
|
||||
pLoop->aLTerm[j] = pTerm;
|
||||
}
|
||||
if( j!=pIdx->nColumn ) continue;
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
|
||||
# 2013 August 29
|
||||
#
|
||||
# The author disclaims copyright to this source code. In place of
|
||||
# a legal notice, here is a blessing:
|
||||
#
|
||||
# May you do good and not evil.
|
||||
# May you find forgiveness for yourself and forgive others.
|
||||
# May you share freely, never taking more than you give.
|
||||
#
|
||||
#***********************************************************************
|
||||
# This file implements regression tests for SQLite library.
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
source $testdir/malloc_common.tcl
|
||||
set ::testprefix tkt-9f2eb3abac
|
||||
|
||||
do_execsql_test 1.1 {
|
||||
CREATE TABLE t1(a,b,c,d,e, PRIMARY KEY(a,b,c,d,e));
|
||||
SELECT * FROM t1 WHERE a=? AND b=? AND c=? AND d=? AND e=?;
|
||||
} {}
|
||||
|
||||
do_execsql_test 1.2 {
|
||||
CREATE TABLE "a" (
|
||||
"b" integer NOT NULL,
|
||||
"c" integer NOT NULL,
|
||||
PRIMARY KEY ("b", "c")
|
||||
);
|
||||
|
||||
CREATE TABLE "d" (
|
||||
"e" integer NOT NULL,
|
||||
"g" integer NOT NULL,
|
||||
"f" integer NOT NULL,
|
||||
"h" integer NOT NULL,
|
||||
"i" character(10) NOT NULL,
|
||||
"j" int,
|
||||
PRIMARY KEY ("e", "g", "f", "h")
|
||||
);
|
||||
|
||||
CREATE TABLE "d_to_a" (
|
||||
"f_e" integer NOT NULL,
|
||||
"f_g" integer NOT NULL,
|
||||
"f_f" integer NOT NULL,
|
||||
"f_h" integer NOT NULL,
|
||||
"t_b" integer NOT NULL,
|
||||
"t_c" integer NOT NULL,
|
||||
"r" character NOT NULL,
|
||||
"s" integer,
|
||||
PRIMARY KEY ("f_e", "f_g", "f_f", "f_h", "t_b", "t_c")
|
||||
);
|
||||
|
||||
INSERT INTO d (g, e, h, f, j, i) VALUES ( 1, 1, 1, 1, 1, 1 );
|
||||
INSERT INTO a (b, c) VALUES ( 1, 1 );
|
||||
INSERT INTO d_to_a VALUES (1, 1, 1, 1, 1, 1, 1, 1);
|
||||
|
||||
DELETE FROM d_to_a
|
||||
WHERE f_g = 1 AND f_e = 1 AND f_h = 1 AND f_f = 1 AND t_b = 1 AND t_c = 1;
|
||||
|
||||
SELECT * FROM d_to_a;
|
||||
} {}
|
||||
|
||||
faultsim_delete_and_reopen
|
||||
do_execsql_test 2.0 { CREATE TABLE t1(a,b,c,d,e, PRIMARY KEY(a,b,c,d,e)) }
|
||||
do_execsql_test 2.1 { CREATE TABLE t2(x) }
|
||||
faultsim_save_and_close
|
||||
|
||||
do_faultsim_test 3 -faults oom* -prep {
|
||||
faultsim_restore_and_reopen
|
||||
execsql { SELECT 1 FROM sqlite_master }
|
||||
} -body {
|
||||
execsql { SELECT * FROM t1,t2 WHERE a=? AND b=? AND c=? AND d=? AND e=? }
|
||||
} -test {
|
||||
faultsim_test_result {0 {}}
|
||||
}
|
||||
|
||||
finish_test
|
||||
|
|
@ -951,4 +951,28 @@ do_test where9-9.1 {
|
|||
}
|
||||
} {1 2 3 4 8 9}
|
||||
|
||||
# Fix for ticket [bc878246eafe0f52c519e29049b2fe4a99491b27]
|
||||
# Incorrect result when OR is used in a join to the right of a LEFT JOIN
|
||||
#
|
||||
do_test where9-10.1 {
|
||||
db eval {
|
||||
CREATE TABLE t101 (id INTEGER PRIMARY KEY);
|
||||
INSERT INTO t101 VALUES (1);
|
||||
SELECT * FROM t101 AS t0
|
||||
LEFT JOIN t101 AS t1 ON t1.id BETWEEN 10 AND 20
|
||||
JOIN t101 AS t2 ON (t2.id = t0.id OR (t2.id<>555 AND t2.id=t1.id));
|
||||
}
|
||||
} {1 {} 1}
|
||||
do_test where9-10.2 {
|
||||
db eval {
|
||||
CREATE TABLE t102 (id TEXT UNIQUE NOT NULL);
|
||||
INSERT INTO t102 VALUES ('1');
|
||||
SELECT * FROM t102 AS t0
|
||||
LEFT JOIN t102 AS t1 ON t1.id GLOB 'abc%'
|
||||
JOIN t102 AS t2 ON (t2.id = t0.id OR (t2.id<>555 AND t2.id=t1.id));
|
||||
}
|
||||
} {1 {} 1}
|
||||
|
||||
|
||||
|
||||
finish_test
|
||||
|
|
Loading…
Reference in New Issue