From: drh Date: Thu, 16 Apr 2015 16:04:39 +0000 (+0000) Subject: Silently ignore requests to change the PRAGMA synchronous setting to an X-Git-Tag: version-3.8.10~110 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=59ac655d028c744b13d079e8a06e8f56b6ae8092;p=thirdparty%2Fsqlite.git Silently ignore requests to change the PRAGMA synchronous setting to an illegal integer value, rather than raising an assertion. FossilOrigin-Name: e0a88176fcfbed7b554a036948261a332c920053 --- diff --git a/manifest b/manifest index d7954dddf7..2370ea266a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Make\ssure\serrors\sin\scoding\striggers\sare\spropagated\sback\sup\sto\sthe\sparser. -D 2015-04-16T15:47:06.148 +C Silently\signore\srequests\sto\schange\sthe\sPRAGMA\ssynchronous\ssetting\sto\san\nillegal\sinteger\svalue,\srather\sthan\sraising\san\sassertion. +D 2015-04-16T16:04:39.846 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 5f78b1ab81b64e7c57a75d170832443e66c0880a F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -223,7 +223,7 @@ F src/parse.y b5c16bc5aa5e59a7ceb0fe94defa9dce3a6b1d3c F src/pcache.c 10539fb959849ad6efff80050541cab3d25089d4 F src/pcache.h b44658c9c932d203510279439d891a2a83e12ba8 F src/pcache1.c 69d137620a305f814398bd29a0c998038c0695e9 -F src/pragma.c 3965ae4e82bed39fb97ce04c5fe18c9bc3ee6a88 +F src/pragma.c 633cb355ab30b197d4e8e9976f94378199439b76 F src/pragma.h 09c89bca58e9a44de2116cc8272b8d454657129f F src/prepare.c 1fffbdcd6f8a0173a8f70d71f22528f4c0e1e3d3 F src/printf.c 08fa675c200aac29e561c6153f91f909ed17612f @@ -794,7 +794,7 @@ F test/pcache.test b09104b03160aca0d968d99e8cd2c5b1921a993d F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025 F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff F test/permutations.test f9cc1dd987986c9d4949211c7a4ed55ec9aecba1 -F test/pragma.test e6605ce89c66db930aef561e43a22281a09ffc66 +F test/pragma.test 2e3d20785e463d7eeed636cba16e742b5df88073 F test/pragma2.test f624a496a95ee878e81e59961eade66d5c00c028 F test/pragma3.test 6f849ccffeee7e496d2f2b5e74152306c0b8757c F test/printf.test b3ff34e73d59124140eaf89f7672e21bc2ca5fcc @@ -1250,7 +1250,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P dd96211e8022365637286b146120cc5db44a9923 -R 046f14926b5af5dfc4416003fb47b3d1 +P 928f973ca9adc7933015b2fb6b6fcb8e3154cb9c +R f9e99024211f275c6c5be92b169c1ffa U drh -Z 6ea7be360982608826bd8c7c45584988 +Z 092fd595f2813758c3267ca51aac5606 diff --git a/manifest.uuid b/manifest.uuid index 7832a2dde8..91ff8f2a2e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -928f973ca9adc7933015b2fb6b6fcb8e3154cb9c \ No newline at end of file +e0a88176fcfbed7b554a036948261a332c920053 \ No newline at end of file diff --git a/src/pragma.c b/src/pragma.c index 8f6ac64754..3cecd8dda5 100644 --- a/src/pragma.c +++ b/src/pragma.c @@ -946,7 +946,9 @@ void sqlite3Pragma( sqlite3ErrorMsg(pParse, "Safety level may not be changed inside a transaction"); }else{ - pDb->safety_level = getSafetyLevel(zRight,0,1)+1; + testcase( (getSafetyLevel(zRight,0,1)+1) & ~PAGER_SYNCHRONOUS_MASK ); + pDb->safety_level = (getSafetyLevel(zRight,0,1)+1) + & PAGER_SYNCHRONOUS_MASK; setAllPagerFlags(db); } } diff --git a/test/pragma.test b/test/pragma.test index e8a53f442d..a45dc45a44 100644 --- a/test/pragma.test +++ b/test/pragma.test @@ -219,6 +219,18 @@ do_test pragma-1.14 { PRAGMA synchronous; } } {2} +do_test pragma-1.14.1 { + execsql { + PRAGMA synchronous=4; + PRAGMA synchronous; + } +} {0} +do_test pragma-1.14.2 { + execsql { + PRAGMA synchronous=10; + PRAGMA synchronous; + } +} {2} } ;# ifcapable pager_pragmas # Test turning "flag" pragmas on and off.