8000 track 3.7.0.1 · codeguru85/sqlcipher@953ca18 · GitHub
[go: up one dir, main page]

Skip to content

Commit 953ca18

Browse files
committed
track 3.7.0.1
1 parent 7b63a4e commit 953ca18

File tree

11 files changed

+209
-35
lines changed

11 files changed

+209
-35
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.7.0
1+
3.7.0.1

configure

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/sh
22
# Guess values for system-dependent variables and create Makefiles.
3-
# Generated by GNU Autoconf 2.62 for sqlite 3.7.0.
3+
# Generated by GNU Autoconf 2.62 for sqlite 3.7.0.1.
44
#
55
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
66
# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -743,8 +743,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
743743
# Identity of this package.
744744
PACKAGE_NAME='sqlite'
745745
PACKAGE_TARNAME='sqlite'
746-
PACKAGE_VERSION='3.7.0'
747-
PACKAGE_STRING='sqlite 3.7.0'
746+
PACKAGE_VERSION='3.7.0.1'
747+
PACKAGE_STRING='sqlite 3.7.0.1'
748748
PACKAGE_BUGREPORT=''
749749

750750
# Factoring default headers for most tests.
@@ -1487,7 +1487,7 @@ if test "$ac_init_help" = "long"; then
14871487
# Omit some internal or obsolete options to make the list less imposing.
14881488
# This message is too long to be a string in the A/UX 3.1 sh.
14891489
cat <<_ACEOF
1490-
\`configure' configures sqlite 3.7.0 to adapt to many kinds of systems.
1490+
\`configure' configures sqlite 3.7.0.1 to adapt to many kinds of systems.
14911491
14921492
Usage: $0 [OPTION]... [VAR=VALUE]...
14931493
@@ -1552,7 +1552,7 @@ fi
15521552

15531553
if test -n "$ac_init_help"; then
15541554
case $ac_init_help in
1555-
short | recursive ) echo "Configuration of sqlite 3.7.0:";;
1555+
short | recursive ) echo "Configuration of sqlite 3.7.0.1:";;
15561556
esac
15571557
cat <<\_ACEOF
15581558
@@ -1670,7 +1670,7 @@ fi
16701670
test -n "$ac_init_help" && exit $ac_status
16711671
if $ac_init_version; then
16721672
cat <<\_ACEOF
1673-
sqlite configure 3.7.0
1673+
sqlite configure 3.7.0.1
16741674
generated by GNU Autoconf 2.62
16751675
16761676
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1684,7 +1684,7 @@ cat >config.log <<_ACEOF
16841684
This file contains any messages produced by compilers while
16851685
running configure, to aid debugging if configure makes a mistake.
16861686
1687-
It was created by sqlite $as_me 3.7.0, which was
1687+
It was created by sqlite $as_me 3.7.0.1, which was
16881688
generated by GNU Autoconf 2.62. Invocation command line was
16891689
16901690
$ $0 $@
@@ -13972,7 +13972,7 @@ exec 6>&1
1397213972
# report actual input values of CONFIG_FILES etc. instead of their
1397313973
# values after options handling.
1397413974
ac_log="
13975-
This file was extended by sqlite $as_me 3.7.0, which was
13975+
This file was extended by sqlite $as_me 3.7.0.1, which was
1397613976
generated by GNU Autoconf 2.62. Invocation command line was
1397713977
1397813978
CONFIG_FILES = $CONFIG_FILES
@@ -14025,7 +14025,7 @@ Report bugs to <bug-autoconf@gnu.org>."
1402514025
_ACEOF
1402614026
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1402714027
ac_cs_version="\\
14028-
sqlite config.status 3.7.0
14028+
sqlite config.status 3.7.0.1
1402914029
configured by $0, generated by GNU Autoconf 2.62,
1403014030
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
1403114031
@@ -14458,8 +14458,7 @@ $debug ||
1445814458
if test -n "$CONFIG_FILES"; then
1445914459
1446014460
14461-
ac_cr='
14462-
'
14461+
ac_cr=''
1446314462
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
1446414463
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
1446514464
ac_cs_awk_cr='\\r'

manifest

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
-----BEGIN PGP SIGNED MESSAGE-----
22
Hash: SHA1
33

4-
C Fix\sa\scomment\stypo.\s\sThis\scheck-in\sis\s3.7.0\srelease\scandidate\s2.
5-
D 2010-07-21T16:16:28
4+
C Backport\sfix\s[a6bb2108bfb56]\sfor\sa\stypo\sin\sthe\sOS/2\sinterface.
5+
D 2010-08-04T12:31:11
66
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
77
F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e
88
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
99
F Makefile.vxworks 4314cde20a1d9460ec5083526ea975442306ae7e
1010
F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
11-
F VERSION 4dce4379514b12d6bc5c30f7d1f64582ccb4f412
11+
F VERSION 84a3e1c74ef99b2c08ceb1142780ac63d6e44c3d
1212
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
1313
F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531
1414
F art/2005osaward.gif 0d1851b2a7c1c9d0ccce545f3e14bca42d7fd248
@@ -24,7 +24,7 @@ F art/src_logo.gif 9341ef09f0e53cd44c0c9b6fc3c16f7f3d6c2ad9
2424
F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977
2525
F config.h.in 868fdb48c028421a203470e15c69ada15b9ba673
2626
F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55
27-
F configure 009ceb10a7bd768b6460b7b8782eb639063c8899 x
27+
F configure 37e90c7b9b88007f064f690ed79e64e228a51158 x
2828
F configure.ac 14740970ddb674d92a9f5da89083dff1179014ff
2929
F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
3030
F doc/lemon.html f0f682f50210928c07e562621c3b7e8ab912a538
@@ -116,7 +116,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
116116
F src/backup.c 51d83300fe0baee39405c416ceb19a58ed30a8ed
117117
F src/bitvec.c 06ad2c36a9c3819c0b9cbffec7b15f58d5d834e0
118118
F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff
119-
F src/btree.c 9a214e6141555b183216b73ace058c7a499cdbe2
119+
F src/btree.c 0de928e4da0fb4ef15e33bf3ff13656d0bc98e73
120120
F src/btree.h dd83041eda10c17daf023257c1fc883b5f71f85a
121121
F src/btreeInt.h b0c87f6725b06a0aa194a6d25d54b16ce9d6e291
122122
F src/build.c 559d38b48f79bc92370c082f4606eefe1e8f94ac
@@ -125,7 +125,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
125125
F src/ctime.c 4f3aadad62c6c9f0d4e5a96718516ac4e3c598df
126126
F src/date.c 5dd8448a0bfea8d31fb14cff487d0c06ff8c8b20
127127
F src/delete.c 41cb4f78557810eecc167b7e2317de7e12d20929
128-
F src/expr.c b2b053429575bf964c64bdf5459c5cbbe5bf93b8
128+
F src/expr.c 96bda574284ead53ba7af6334414b4e958cc866a
129129
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
130130
F src/fkey.c e2116672a6bd610dc888e27df292ebc7999c9bb0
131131
F src/func.c 0c28599430856631216b6c0131c51c89bf516026
@@ -156,7 +156,7 @@ F src/notify.c cbfa66a836da3a51567209636e6a94059c137930
156156
F src/os.c 60178f518c4d6c0dcb59f7292232281d7bea2dcf
157157
F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9
158158
F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
159-
F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19
159+
F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e
160160
F src/os_unix.c 3109e0e5a0d5551bab2e8c7322b20a3b8b171248
161161
F src/os_win.c 1f8b0a1a5bcf6289e7754d0d3c16cec16d4c93ab
162162
F src/pager.c 78ca1e1f3315c8227431c403c04d791dccf242fb
@@ -258,7 +258,7 @@ F test/auth.test 8f21c160a4562f54f27618e85bac869efcecbcaf
258258
F test/auth2.test 270baddc8b9c273682760cffba6739d907bd2882
259259
F test/auth3.test a4755e6a2a2fea547ffe63c874eb569e60a28eb5
260260
F test/autoinc.test 85ef3180a737e6580086a018c09c6f1a52759b46
261-
F test/autoindex1.test ffb06a246e2c1f89cfbe3d93eca513c9e78d4063
261+
F test/autoindex1.test 7df441bf0e7a88644eb80993339dbf1db3a12c68
262262
F test/autovacuum.test bb7c0885e6f8f1d633045de48f2b66082162766d
263263
F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6
264264
F test/avtrans.test 0252654f4295ddda3b2cce0e894812259e655a85
@@ -355,7 +355,7 @@ F test/exclusive2.test fcbb1c9ca9739292a0a22a3763243ad6d868086b
355355
F test/exec.test e949714dc127eaa5ecc7d723efec1ec27118fdd7
356356
F test/expr.test 9f521ae22f00e074959f72ce2e55d46b9ed23f68
357357
F test/filectrl.test 97003734290887566e01dded09dc9e99cb937e9e
358-
F test/filefmt.test 5d271bf467e6557fe7499dcc8203069c9dc5825e
358+
F test/filefmt.test f77c92141960b7933bc6691631d2ad62257ef40a
359359
F test/fkey1.test 01c7de578e11747e720c2d9aeef27f239853c4da
360360
F test/fkey2.test 098c06c139a79f690301a43511cd1f6420ae5433
361361
F test/fkey3.test 42f88d6048d8dc079e2a8cf7baad1cc1483a7620
@@ -543,7 +543,7 @@ F test/null.test a8b09b8ed87852742343b33441a9240022108993
543543
F test/openv2.test af02ed0a9cbc0d2a61b8f35171d4d117e588e4ec
544544
F test/pager1.test d8e4b2bc8164c920e6ea0572c9e13576d6e4f3fa
545545
F test/pager2.test f5c757c271ce642d36a393ecbfb3aef1c240dcef
546-
F test/pagerfault.test a4c0bb8900b8dbf5fcbe41ee2a96148e22174bcb
546+
F test/pagerfault.test c1d176326ce244db157ce9c3ba128be2a9b172d6
547547
F test/pagerfault2.test 1f79ea40d1133b2683a2f811b00f2399f7ec2401
548548
F test/pageropt.test 8146bf448cf09e87bb1867c2217b921fb5857806
549549
F test/pagesize.test 76aa9f23ecb0741a4ed9d2e16c5fa82671f28efb
@@ -622,7 +622,7 @@ F test/tclsqlite.test 8c154101e704170c2be10f137a5499ac2c6da8d3
622622
F test/tempdb.test 800c36623d67a2ad1f58784b9c5644e0405af6e6
623623
F test/temptable.test f42121a0d29a62f00f93274464164177ab1cc24a
624624
F test/temptrigger.test b0273db072ce5f37cf19140ceb1f0d524bbe9f05
625-
F test/tester.tcl cab2b46972cd50c3939a0e30e0b37e73f558bc2d
625+
F test/tester.tcl 295800403a36c4319354482749e9282ce47b7edc
626626
F test/thread001.test a3e6a7254d1cb057836cb3145b60c10bf5b7e60f
627627
F test/thread002.test afd20095e6e845b405df4f2c920cb93301ca69db
628628
F test/thread003.test b824d4f52b870ae39fc5bae4d8070eca73085dca
@@ -840,14 +840,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
840840
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
841841
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
842842
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
843-
P 13ed106c8c279422a6159e28c6887d13a88b7b8b
844-
R 48f3b6e106f37a4303da6eef05383891
843+
P 5074b85967df8f55739ba790924347c764288a88
844+
R f5778ea9917b1adb206cc22be6e49c29
845845
U drh
846-
Z 6f03f192e574b328cbf6ee712ebb1776
846+
Z 60fae2989ec1bf91141b6299767f6365
847847
-----BEGIN PGP SIGNATURE-----
848848
Version: GnuPG v1.4.6 (GNU/Linux)
849849

850-
iD8DBQFMRx1eoxKgR168RlERAkrAAJ9jYeUOTv2JXqP7/ZLTAQf2A6QoNACeLuA0
851-
lTLlFWVnujV93G1zfacFBTo=
852-
=MCKn
850+
iD8DBQFMWV2SoxKgR168RlERAiENAJ9TfAN62Ul3mO+iNQD+b8HJNbjgOwCeIZwB
851+
BZSXOygjVggzK2g+JjZSHP8=
852+
=3zag
853853
-----END PGP SIGNATURE-----

manifest.uuid

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
b36b105eab6fd3195f4bfba6cb5cda0f063b7460
1+
042a1abb030a0711386add7eb6e10832cc8b0f57

src/btree.c

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2569,13 +2569,27 @@ int sqlite3BtreeBeginTrans(Btree *p, int wrflag){
25692569
if( p->inTrans>pBt->inTransaction ){
25702570
pBt->inTransaction = p->inTrans;
25712571
}
2572-
#ifndef SQLITE_OMIT_SHARED_CACHE
25732572
if( wrflag ){
2573+
MemPage *pPage1 = pBt->pPage1;
2574+
#ifndef SQLITE_OMIT_SHARED_CACHE
25742575
assert( !pBt->pWriter );
25752576
pBt->pWriter = p;
25762577
pBt->isExclusive = (u8)(wrflag>1);
2577-
}
25782578
#endif
2579+
2580+
/* If the db-size header field is incorrect (as it may be if an old
2581+
** client has been writing the database file), update it now. Doing
2582+
** this sooner rather than later means the database size can safely
2583+
** re-read the database size from page 1 if a savepoint or transaction
2584+
** rollback occurs within the transaction.
2585+
*/
2586+
if( pBt->nPage!=get4byte(&pPage1->aData[28]) ){
2587+
rc = sqlite3PagerWrite(pPage1->pDbPage);
2588+
if( rc==SQLITE_OK ){
2589+
put4byte(&pPage1->aData[28], pBt->nPage);
2590+
}
2591+
}
2592+
}
25792593
}
25802594

25812595

src/expr.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1505,14 +1505,20 @@ int sqlite3FindInIndex(Parse *pParse, Expr *pX, int *prNotFound){
15051505
/* Could not found an existing table or index to use as the RHS b-tree.
15061506
** We will have to generate an ephemeral table to do the job.
15071507
*/
1508+
double savedNQueryLoop = pParse->nQueryLoop;
15081509
int rMayHaveNull = 0;
15091510
eType = IN_INDEX_EPH;
15101511
if( prNotFound ){
15111512
*prNotFound = rMayHaveNull = ++pParse->nMem;
1512-
}else if( pX->pLeft->iColumn<0 && !ExprHasAnyProperty(pX, EP_xIsSelect) ){
1513-
eType = IN_INDEX_ROWID;
1513+
}else{
1514+
testcase( pParse->nQueryLoop>(double)1 );
1515+
pParse->nQueryLoop = (double)1;
1516+
if( pX->pLeft->iColumn<0 && !ExprHasAnyProperty(pX, EP_xIsSelect) ){
1517+
eType = IN_INDEX_ROWID;
1518+
}
15141519
}
15151520
sqlite3CodeSubselect(pParse, pX, rMayHaveNull, eType==IN_INDEX_ROWID);
1521+
pParse->nQueryLoop = savedNQueryLoop;
15161522
}else{
15171523
pX->iTable = iTab;
15181524
}

src/os_os2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,7 @@ static int os2Open(
779779

780780
memset( pFile, 0, sizeof(*pFile) );
781781

782-
OSTRACE( "OPEN want %d\n", flags ));
782+
OSTRACE(( "OPEN want %d\n", flags ));
783783

784784
if( flags & SQLITE_OPEN_READWRITE ){
785785
ulOpenMode |= OPEN_ACCESS_READWRITE;

test/autoindex1.test

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,4 +136,34 @@ do_test autoindex1-401 {
136136
}
137137
} {4087}
138138

139+
# Ticket [8011086c85c6c404014c947fcf3eb9f42b184a0d] from 2010-07-08
140+
# Make sure automatic indices are not created for the RHS of an IN expression
141+
# that is not a correlated subquery.
142+
#
143+
do_test autoindex1-500 {
144+
db eval {
145+
CREATE TABLE t501(a INTEGER PRIMARY KEY, b);
146+
CREATE TABLE t502(x INTEGER PRIMARY KEY, y);
147+
EXPLAIN QUERY PLAN
148+
SELECT b FROM t501
149+
WHERE t501.a IN (SELECT x FROM t502 WHERE y=?);
150+
}
151+
} {0 0 {TABLE t501 USING PRIMARY KEY} 0 0 {TABLE t502}}
152+
do_test autoindex1-501 {
153+
db eval {
154+
EXPLAIN QUERY PLAN
155+
SELECT b FROM t501
156+
WHERE t501.a IN (SELECT x FROM t502 WHERE y=t501.b);
157+
}
158+
} {0 0 {TABLE t501} 0 0 {TABLE t502 WITH AUTOMATIC INDEX}}
159+
do_test autoindex1-502 {
160+
db eval {
161+
EXPLAIN QUERY PLAN
162+
SELECT b FROM t501
163+
WHERE t501.a=123
164+
AND t501.a IN (SELECT x FROM t502 WHERE y=t501.b);
165+
}
166+
} {0 0 {TABLE t501 USING PRIMARY KEY} 0 0 {TABLE t502}}
167+
168+
139169
finish_test

test/filefmt.test

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,5 +117,80 @@ ifcapable pager_pragmas {
117117
} {1 {file is encrypted or is not a database}}
118118
}
119119

120+
#-------------------------------------------------------------------------
121+
# The following block of tests - filefmt-2.* - test that versions 3.7.0
122+
# and later can read and write databases that have been modified or created
123+
# by 3.6.23.1 and earlier. The difference difference is that 3.7.0 stores
124+
# the size of the database in the database file header, whereas 3.6.23.1
125+
# always derives this from the size of the file.
126+
#
127+
db close
128+
file delete -force test.db
129+
130+
set a_string_counter 1
131+
proc a_string {n} {
132+
incr ::a_string_counter
133+
string range [string repeat "${::a_string_counter}." $n] 1 $n
134+
}
135+
sqlite3 db test.db
136+
db func a_string a_string
137+
138+
do_execsql_test filefmt-2.1.1 {
139+
PRAGMA page_size = 1024;
140+
PRAGMA auto_vacuum = 0;
141+
CREATE TABLE t1(a);
142+
CREATE INDEX i1 ON t1(a);
143+
INSERT INTO t1 VALUES(a_string(3000));
144+
CREATE TABLE t2(a);
145+
INSERT INTO t2 VALUES(1);
146+
} {}
147+
do_test filefmt-2.1.2 {
148+
hexio_read test.db 28 4
149+
} {00000009}
150+
151+
do_test filefmt-2.1.3 {
152+
sql36231 { INSERT INTO t1 VALUES(a_string(3000)) }
153+
} {}
154+
155+
do_execsql_test filefmt-2.1.4 { INSERT INTO t2 VALUES(2) } {}
156+
integrity_check filefmt-2.1.5
157+
do_test filefmt-2.1.6 { hexio_read test.db 28 4 } {00000010}
158+
159+
db close
160+
file delete -force test.db
161+
sqlite3 db test.db
162+
db func a_string a_string
163+
164+
do_execsql_test filefmt-2.2.1 {
165+
PRAGMA page_size = 1024;
166+
PRAGMA auto_vacuum = 0;
167+
CREATE TABLE t1(a);
168+
CREATE INDEX i1 ON t1(a);
169+
INSERT INTO t1 VALUES(a_string(3000));
170+
CREATE TABLE t2(a);
171+
INSERT INTO t2 VALUES(1);
172+
} {}
173+
do_test filefmt-2.2.2 {
174+
hexio_read test.db 28 4
175+
} {00000009}
176+
177+
do_test filefmt-2.2.3 {
178+
sql36231 { INSERT INTO t1 VALUES(a_string(3000)) }
179+
} {}
180+
181+
do_execsql_test filefmt-2.2.4 {
182+
PRAGMA integrity_check;
183+
BEGIN;
184+
INSERT INTO t2 VALUES(2);
185+
SAVEPOINT a;
186+
INSERT INTO t2 VALUES(3);
187+
ROLLBACK TO a;
188+
} {ok}
189+
190+
integrity_check filefmt-2.2.5
191+
do_execsql_test filefmt-2.2.6 { COMMIT } {}
192+
db close
193+
sqlite3 db test.db
194+
integrity_check filefmt-2.2.7
120195

121196
finish_test

0 commit comments

Comments
 (0)
0