Add some tests to e_expr.test and pagerfault.test. No code changes.
FossilOrigin-Name: 44de3cab9c89eb28485c0dc36d791b1c61d56b34
This commit is contained in:
parent
5f77b2e0ea
commit
f5d3df405c
26
manifest
26
manifest
@ -1,8 +1,5 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
C Fix\sthe\sptrmapPageno()\sroutine\sso\sthat\sit\sworks\scorrectly\sfor\san\sinput\sof\s1.
|
||||
D 2010-08-21T15:09:37
|
||||
C Add\ssome\stests\sto\se_expr.test\sand\spagerfault.test.\sNo\scode\schanges.
|
||||
D 2010-08-21T15:51:06
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in 543f91f24cd7fee774ecc0a61c19704c0c3e78fd
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
@ -344,7 +341,7 @@ F test/descidx2.test 9f1a0c83fd57f8667c82310ca21b30a350888b5d
|
||||
F test/descidx3.test fe720e8b37d59f4cef808b0bf4e1b391c2e56b6f
|
||||
F test/diskfull.test 0cede7ef9d8f415d9d3944005c76be7589bb5ebb
|
||||
F test/distinctagg.test 1a6ef9c87a58669438fc771450d7a72577417376
|
||||
F test/e_expr.test 27827ef76338a181f997592760d9f8f702c150e9
|
||||
F test/e_expr.test 8a35ce2718c61e871970bda09f4f3e549067c1ba
|
||||
F test/e_fkey.test 6721a741c6499b3ab7e5385923233343c8f1ad05
|
||||
F test/e_fts3.test 75bb0aee26384ef586165e21018a17f7cd843469
|
||||
F test/enc.test e54531cd6bf941ee6760be041dff19a104c7acea
|
||||
@ -546,7 +543,7 @@ F test/openv2.test af02ed0a9cbc0d2a61b8f35171d4d117e588e4ec
|
||||
F test/pager1.test 6922029d71a8090169c71a67a141b6b94ad17d50
|
||||
F test/pager2.test 0fbb6b6dc40ce1fecfe758c555a748ad2e9beaa3
|
||||
F test/pager3.test 3856d9c80839be0668efee1b74811b1b7f7fc95f
|
||||
F test/pagerfault.test f025fbe0cbab8f3aec6cc5676af60d7b488f868c
|
||||
F test/pagerfault.test ddbf04b5e2afafb3ea888e1083239a8000f155d4
|
||||
F test/pagerfault2.test 1f79ea40d1133b2683a2f811b00f2399f7ec2401
|
||||
F test/pageropt.test 8146bf448cf09e87bb1867c2217b921fb5857806
|
||||
F test/pagesize.test 76aa9f23ecb0741a4ed9d2e16c5fa82671f28efb
|
||||
@ -848,14 +845,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||
P 5523ecd32295c188e3bf5dbd57d92d2879461e32
|
||||
R dc568dd5438d0cab5b031335b05c73a5
|
||||
U drh
|
||||
Z 4fafdd21c95475ac900afea2d119affc
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
iD8DBQFMb+w3oxKgR168RlERAu8pAJ9xUYJ2vVngElJD9AJ0FdpZF4d/kACaA0pc
|
||||
mVGOV+o62jEkChLiO5Bqu4Q=
|
||||
=8+AE
|
||||
-----END PGP SIGNATURE-----
|
||||
P 699a9bf28377f43f58c509878cce60cb906dbf48
|
||||
R ba75d512677d6cf0802a70f734aafd6f
|
||||
U dan
|
||||
Z d7b809533302a351af4f83e27bcd9161
|
||||
|
@ -1 +1 @@
|
||||
699a9bf28377f43f58c509878cce60cb906dbf48
|
||||
44de3cab9c89eb28485c0dc36d791b1c61d56b34
|
256
test/e_expr.test
256
test/e_expr.test
@ -862,25 +862,245 @@ do_execsql_test e_expr-13.2.10 { SELECT 1 != 0 BETWEEN 0 AND 2 } 1
|
||||
do_execsql_test e_expr-13.2.11 { SELECT (1 != 0) BETWEEN 0 AND 2 } 1
|
||||
do_execsql_test e_expr-13.2.12 { SELECT 1 != (0 BETWEEN 0 AND 2) } 0
|
||||
|
||||
do_execsql_test e_expr-13.2.13 { SELECT 1 LIKE 10 BETWEEN 0 AND 2 } 1
|
||||
do_execsql_test e_expr-13.2.14 { SELECT (1 LIKE 10) BETWEEN 0 AND 2 } 1
|
||||
do_execsql_test e_expr-13.2.15 { SELECT 1 LIKE (10 BETWEEN 0 AND 2) } 0
|
||||
do_execsql_test e_expr-13.2.16 { SELECT 6 BETWEEN 4 AND 8 LIKE 1 } 1
|
||||
do_execsql_test e_expr-13.2.17 { SELECT (6 BETWEEN 4 AND 8) LIKE 1 } 1
|
||||
do_execsql_test e_expr-13.2.18 { SELECT 6 BETWEEN 4 AND (8 LIKE 1) } 0
|
||||
do_execsql_test e_expr-13.2.13 { SELECT 1 LIKE 10 BETWEEN 0 AND 2 } 1
|
||||
do_execsql_test e_expr-13.2.14 { SELECT (1 LIKE 10) BETWEEN 0 AND 2 } 1
|
||||
do_execsql_test e_expr-13.2.15 { SELECT 1 LIKE (10 BETWEEN 0 AND 2) } 0
|
||||
do_execsql_test e_expr-13.2.16 { SELECT 6 BETWEEN 4 AND 8 LIKE 1 } 1
|
||||
do_execsql_test e_expr-13.2.17 { SELECT (6 BETWEEN 4 AND 8) LIKE 1 } 1
|
||||
do_execsql_test e_expr-13.2.18 { SELECT 6 BETWEEN 4 AND (8 LIKE 1) } 0
|
||||
|
||||
do_execsql_test e_expr-13.2.19 { SELECT 0 AND 0 BETWEEN 0 AND 1 } 0
|
||||
do_execsql_test e_expr-13.2.20 { SELECT 0 AND (0 BETWEEN 0 AND 1) } 0
|
||||
do_execsql_test e_expr-13.2.21 { SELECT (0 AND 0) BETWEEN 0 AND 1 } 1
|
||||
do_execsql_test e_expr-13.2.22 { SELECT 0 BETWEEN -1 AND 1 AND 0 } 0
|
||||
do_execsql_test e_expr-13.2.23 { SELECT (0 BETWEEN -1 AND 1) AND 0 } 0
|
||||
do_execsql_test e_expr-13.2.24 { SELECT 0 BETWEEN -1 AND (1 AND 0) } 1
|
||||
do_execsql_test e_expr-13.2.19 { SELECT 0 AND 0 BETWEEN 0 AND 1 } 0
|
||||
do_execsql_test e_expr-13.2.20 { SELECT 0 AND (0 BETWEEN 0 AND 1) } 0
|
||||
do_execsql_test e_expr-13.2.21 { SELECT (0 AND 0) BETWEEN 0 AND 1 } 1
|
||||
do_execsql_test e_expr-13.2.22 { SELECT 0 BETWEEN -1 AND 1 AND 0 } 0
|
||||
do_execsql_test e_expr-13.2.23 { SELECT (0 BETWEEN -1 AND 1) AND 0 } 0
|
||||
do_execsql_test e_expr-13.2.24 { SELECT 0 BETWEEN -1 AND (1 AND 0) } 1
|
||||
|
||||
do_execsql_test e_expr-13.2.25 { SELECT 2 < 3 BETWEEN 0 AND 1 } 1
|
||||
do_execsql_test e_expr-13.2.26 { SELECT (2 < 3) BETWEEN 0 AND 1 } 1
|
||||
do_execsql_test e_expr-13.2.27 { SELECT 2 < (3 BETWEEN 0 AND 1) } 0
|
||||
do_execsql_test e_expr-13.2.28 { SELECT 2 BETWEEN 1 AND 2 < 3 } 0
|
||||
do_execsql_test e_expr-13.2.29 { SELECT 2 BETWEEN 1 AND (2 < 3) } 0
|
||||
do_execsql_test e_expr-13.2.30 { SELECT (2 BETWEEN 1 AND 2) < 3 } 1
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Test the statements related to the LIKE and GLOB operators.
|
||||
#
|
||||
# EVIDENCE-OF: R-16584-60189 The LIKE operator does a pattern matching
|
||||
# comparison.
|
||||
#
|
||||
# EVIDENCE-OF: R-11295-04657 The operand to the right of the LIKE
|
||||
# operator contains the pattern and the left hand operand contains the
|
||||
# string to match against the pattern.
|
||||
#
|
||||
do_execsql_test e_expr-14.1.1 { SELECT 'abc%' LIKE 'abcde' } 0
|
||||
do_execsql_test e_expr-14.1.2 { SELECT 'abcde' LIKE 'abc%' } 1
|
||||
|
||||
# EVIDENCE-OF: R-55406-38524 A percent symbol ("%") in the LIKE pattern
|
||||
# matches any sequence of zero or more characters in the string.
|
||||
#
|
||||
do_execsql_test e_expr-14.2.1 { SELECT 'abde' LIKE 'ab%de' } 1
|
||||
do_execsql_test e_expr-14.2.2 { SELECT 'abXde' LIKE 'ab%de' } 1
|
||||
do_execsql_test e_expr-14.2.3 { SELECT 'abABCde' LIKE 'ab%de' } 1
|
||||
|
||||
# EVIDENCE-OF: R-30433-25443 An underscore ("_") in the LIKE pattern
|
||||
# matches any single character in the string.
|
||||
#
|
||||
do_execsql_test e_expr-14.3.1 { SELECT 'abde' LIKE 'ab_de' } 0
|
||||
do_execsql_test e_expr-14.3.2 { SELECT 'abXde' LIKE 'ab_de' } 1
|
||||
do_execsql_test e_expr-14.3.3 { SELECT 'abABCde' LIKE 'ab_de' } 0
|
||||
|
||||
# EVIDENCE-OF: R-59007-20454 Any other character matches itself or its
|
||||
# lower/upper case equivalent (i.e. case-insensitive matching).
|
||||
#
|
||||
do_execsql_test e_expr-14.4.1 { SELECT 'abc' LIKE 'aBc' } 1
|
||||
do_execsql_test e_expr-14.4.2 { SELECT 'aBc' LIKE 'aBc' } 1
|
||||
do_execsql_test e_expr-14.4.3 { SELECT 'ac' LIKE 'aBc' } 0
|
||||
|
||||
# EVIDENCE-OF: R-23648-58527 SQLite only understands upper/lower case
|
||||
# for ASCII characters by default.
|
||||
#
|
||||
# EVIDENCE-OF: R-04532-11527 The LIKE operator is case sensitive by
|
||||
# default for unicode characters that are beyond the ASCII range.
|
||||
#
|
||||
# EVIDENCE-OF: R-44381-11669 the expression
|
||||
# 'a' LIKE 'A' is TRUE but
|
||||
# 'æ' LIKE 'Æ' is FALSE.
|
||||
#
|
||||
do_execsql_test e_expr-14.5.1 { SELECT 'A' LIKE 'a' } 1
|
||||
do_execsql_test e_expr-14.5.2 "SELECT '\u00c6' LIKE '\u00e6'" 0
|
||||
|
||||
# EVIDENCE-OF: R-56683-13731 If the optional ESCAPE clause is present,
|
||||
# then the expression following the ESCAPE keyword must evaluate to a
|
||||
# string consisting of a single character.
|
||||
#
|
||||
do_catchsql_test e_expr-14.6.1 {
|
||||
SELECT 'A' LIKE 'a' ESCAPE '12'
|
||||
} {1 {ESCAPE expression must be a single character}}
|
||||
do_catchsql_test e_expr-14.6.2 {
|
||||
SELECT 'A' LIKE 'a' ESCAPE ''
|
||||
} {1 {ESCAPE expression must be a single character}}
|
||||
do_catchsql_test e_expr-14.6.3 { SELECT 'A' LIKE 'a' ESCAPE 'x' } {0 1}
|
||||
do_catchsql_test e_expr-14.6.4 "SELECT 'A' LIKE 'a' ESCAPE '\u00e6'" {0 1}
|
||||
|
||||
# EVIDENCE-OF: R-02045-23762 This character may be used in the LIKE
|
||||
# pattern to include literal percent or underscore characters.
|
||||
#
|
||||
# EVIDENCE-OF: R-13345-31830 The escape character followed by a percent
|
||||
# symbol (%), underscore (_), or a second instance of the escape
|
||||
# character itself matches a literal percent symbol, underscore, or a
|
||||
# single escape character, respectively.
|
||||
#
|
||||
do_execsql_test e_expr-14.7.1 { SELECT 'abc%' LIKE 'abcX%' ESCAPE 'X' } 1
|
||||
do_execsql_test e_expr-14.7.2 { SELECT 'abc5' LIKE 'abcX%' ESCAPE 'X' } 0
|
||||
do_execsql_test e_expr-14.7.3 { SELECT 'abc' LIKE 'abcX%' ESCAPE 'X' } 0
|
||||
do_execsql_test e_expr-14.7.4 { SELECT 'abcX%' LIKE 'abcX%' ESCAPE 'X' } 0
|
||||
do_execsql_test e_expr-14.7.5 { SELECT 'abc%%' LIKE 'abcX%' ESCAPE 'X' } 0
|
||||
|
||||
do_execsql_test e_expr-14.7.6 { SELECT 'abc_' LIKE 'abcX_' ESCAPE 'X' } 1
|
||||
do_execsql_test e_expr-14.7.7 { SELECT 'abc5' LIKE 'abcX_' ESCAPE 'X' } 0
|
||||
do_execsql_test e_expr-14.7.8 { SELECT 'abc' LIKE 'abcX_' ESCAPE 'X' } 0
|
||||
do_execsql_test e_expr-14.7.9 { SELECT 'abcX_' LIKE 'abcX_' ESCAPE 'X' } 0
|
||||
do_execsql_test e_expr-14.7.10 { SELECT 'abc__' LIKE 'abcX_' ESCAPE 'X' } 0
|
||||
|
||||
do_execsql_test e_expr-14.7.11 { SELECT 'abcX' LIKE 'abcXX' ESCAPE 'X' } 1
|
||||
do_execsql_test e_expr-14.7.12 { SELECT 'abc5' LIKE 'abcXX' ESCAPE 'X' } 0
|
||||
do_execsql_test e_expr-14.7.13 { SELECT 'abc' LIKE 'abcXX' ESCAPE 'X' } 0
|
||||
do_execsql_test e_expr-14.7.14 { SELECT 'abcXX' LIKE 'abcXX' ESCAPE 'X' } 0
|
||||
|
||||
# EVIDENCE-OF: R-51359-17496 The infix LIKE operator is implemented by
|
||||
# calling the application-defined SQL functions like(Y,X) or like(Y,X,Z).
|
||||
#
|
||||
proc likefunc {args} {
|
||||
eval lappend ::likeargs $args
|
||||
return 1
|
||||
}
|
||||
db func like likefunc
|
||||
set ::likeargs [list]
|
||||
do_execsql_test e_expr-15.1.1 { SELECT 'abc' LIKE 'def' } 1
|
||||
do_test e_expr-15.1.2 { set likeargs } {def abc}
|
||||
set ::likeargs [list]
|
||||
do_execsql_test e_expr-15.1.3 { SELECT 'abc' LIKE 'def' ESCAPE 'X' } 1
|
||||
do_test e_expr-15.1.4 { set likeargs } {def abc X}
|
||||
db close
|
||||
sqlite3 db test.db
|
||||
|
||||
# EVIDENCE-OF: R-22868-25880 The LIKE operator can be made case
|
||||
# sensitive using the case_sensitive_like pragma.
|
||||
#
|
||||
do_execsql_test e_expr-16.1.1 { SELECT 'abcxyz' LIKE 'ABC%' } 1
|
||||
do_execsql_test e_expr-16.1.2 { PRAGMA case_sensitive_like = 1 } {}
|
||||
do_execsql_test e_expr-16.1.3 { SELECT 'abcxyz' LIKE 'ABC%' } 0
|
||||
do_execsql_test e_expr-16.1.4 { SELECT 'ABCxyz' LIKE 'ABC%' } 1
|
||||
do_execsql_test e_expr-16.1.5 { PRAGMA case_sensitive_like = 0 } {}
|
||||
do_execsql_test e_expr-16.1.6 { SELECT 'abcxyz' LIKE 'ABC%' } 1
|
||||
do_execsql_test e_expr-16.1.7 { SELECT 'ABCxyz' LIKE 'ABC%' } 1
|
||||
|
||||
# EVIDENCE-OF: R-52087-12043 The GLOB operator is similar to LIKE but
|
||||
# uses the Unix file globbing syntax for its wildcards.
|
||||
#
|
||||
# EVIDENCE-OF: R-09813-17279 Also, GLOB is case sensitive, unlike LIKE.
|
||||
#
|
||||
do_execsql_test e_expr-17.1.1 { SELECT 'abcxyz' GLOB 'abc%' } 0
|
||||
do_execsql_test e_expr-17.1.2 { SELECT 'abcxyz' GLOB 'abc*' } 1
|
||||
do_execsql_test e_expr-17.1.3 { SELECT 'abcxyz' GLOB 'abc___' } 0
|
||||
do_execsql_test e_expr-17.1.4 { SELECT 'abcxyz' GLOB 'abc???' } 1
|
||||
|
||||
do_execsql_test e_expr-17.1.5 { SELECT 'abcxyz' GLOB 'abc*' } 1
|
||||
do_execsql_test e_expr-17.1.6 { SELECT 'ABCxyz' GLOB 'abc*' } 0
|
||||
do_execsql_test e_expr-17.1.7 { SELECT 'abcxyz' GLOB 'ABC*' } 0
|
||||
|
||||
# EVIDENCE-OF: R-39616-20555 Both GLOB and LIKE may be preceded by the
|
||||
# NOT keyword to invert the sense of the test.
|
||||
#
|
||||
do_execsql_test e_expr-17.2.1 { SELECT 'abcxyz' NOT GLOB 'ABC*' } 1
|
||||
do_execsql_test e_expr-17.2.2 { SELECT 'abcxyz' NOT GLOB 'abc*' } 0
|
||||
do_execsql_test e_expr-17.2.3 { SELECT 'abcxyz' NOT LIKE 'ABC%' } 0
|
||||
do_execsql_test e_expr-17.2.4 { SELECT 'abcxyz' NOT LIKE 'abc%' } 0
|
||||
do_execsql_test e_expr-17.2.5 { SELECT 'abdxyz' NOT LIKE 'abc%' } 1
|
||||
|
||||
db nullvalue null
|
||||
do_execsql_test e_expr-17.2.6 { SELECT 'abcxyz' NOT GLOB NULL } null
|
||||
do_execsql_test e_expr-17.2.7 { SELECT 'abcxyz' NOT LIKE NULL } null
|
||||
do_execsql_test e_expr-17.2.8 { SELECT NULL NOT GLOB 'abc*' } null
|
||||
do_execsql_test e_expr-17.2.9 { SELECT NULL NOT LIKE 'ABC%' } null
|
||||
db nullvalue {}
|
||||
|
||||
# EVIDENCE-OF: R-39414-35489 The infix GLOB operator is implemented by
|
||||
# calling the function glob(Y,X) and can be modified by overriding that
|
||||
# function.
|
||||
proc globfunc {args} {
|
||||
eval lappend ::globargs $args
|
||||
return 1
|
||||
}
|
||||
db func glob -argcount 2 globfunc
|
||||
set ::globargs [list]
|
||||
do_execsql_test e_expr-17.3.1 { SELECT 'abc' GLOB 'def' } 1
|
||||
do_test e_expr-17.3.2 { set globargs } {def abc}
|
||||
set ::globargs [list]
|
||||
do_execsql_test e_expr-17.3.3 { SELECT 'X' NOT GLOB 'Y' } 0
|
||||
do_test e_expr-17.3.4 { set globargs } {Y X}
|
||||
sqlite3 db test.db
|
||||
|
||||
# EVIDENCE-OF: R-41650-20872 No regexp() user function is defined by
|
||||
# default and so use of the REGEXP operator will normally result in an
|
||||
# error message.
|
||||
#
|
||||
do_catchsql_test e_expr-18.1.1 {
|
||||
SELECT regexp('abc', 'def')
|
||||
} {1 {no such function: regexp}}
|
||||
do_catchsql_test e_expr-18.1.2 {
|
||||
SELECT 'abc' REGEXP 'def'
|
||||
} {1 {no such function: REGEXP}}
|
||||
|
||||
# EVIDENCE-OF: R-33693-50180 The REGEXP operator is a special syntax for
|
||||
# the regexp() user function.
|
||||
#
|
||||
# EVIDENCE-OF: R-57289-13578 If a application-defined SQL function named
|
||||
# "regexp" is added at run-time, that function will be called in order
|
||||
# to implement the REGEXP operator.
|
||||
#
|
||||
proc regexpfunc {args} {
|
||||
eval lappend ::regexpargs $args
|
||||
return 1
|
||||
}
|
||||
db func regexp -argcount 2 regexpfunc
|
||||
set ::regexpargs [list]
|
||||
do_execsql_test e_expr-18.2.1 { SELECT 'abc' REGEXP 'def' } 1
|
||||
do_test e_expr-18.2.2 { set regexpargs } {def abc}
|
||||
set ::regexpargs [list]
|
||||
do_execsql_test e_expr-18.2.3 { SELECT 'X' NOT REGEXP 'Y' } 0
|
||||
do_test e_expr-18.2.4 { set regexpargs } {Y X}
|
||||
sqlite3 db test.db
|
||||
|
||||
# EVIDENCE-OF: R-42037-37826 The default match() function implementation
|
||||
# raises an exception and is not really useful for anything.
|
||||
#
|
||||
do_catchsql_test e_expr-19.1.1 {
|
||||
SELECT 'abc' MATCH 'def'
|
||||
} {1 {unable to use function MATCH in the requested context}}
|
||||
do_catchsql_test e_expr-19.1.2 {
|
||||
SELECT match('abc', 'def')
|
||||
} {1 {unable to use function MATCH in the requested context}}
|
||||
|
||||
# EVIDENCE-OF: R-37916-47407 The MATCH operator is a special syntax for
|
||||
# the match() application-defined function.
|
||||
#
|
||||
# EVIDENCE-OF: R-06021-09373 But extensions can override the match()
|
||||
# function with more helpful logic.
|
||||
#
|
||||
proc matchfunc {args} {
|
||||
eval lappend ::matchargs $args
|
||||
return 1
|
||||
}
|
||||
db func match -argcount 2 matchfunc
|
||||
set ::matchargs [list]
|
||||
do_execsql_test e_expr-19.2.1 { SELECT 'abc' MATCH 'def' } 1
|
||||
do_test e_expr-19.2.2 { set matchargs } {def abc}
|
||||
set ::matchargs [list]
|
||||
do_execsql_test e_expr-19.2.3 { SELECT 'X' NOT MATCH 'Y' } 0
|
||||
do_test e_expr-19.2.4 { set matchargs } {Y X}
|
||||
sqlite3 db test.db
|
||||
|
||||
do_execsql_test e_expr-13.2.25 { SELECT 2 < 3 BETWEEN 0 AND 1 } 1
|
||||
do_execsql_test e_expr-13.2.26 { SELECT (2 < 3) BETWEEN 0 AND 1 } 1
|
||||
do_execsql_test e_expr-13.2.27 { SELECT 2 < (3 BETWEEN 0 AND 1) } 0
|
||||
do_execsql_test e_expr-13.2.28 { SELECT 2 BETWEEN 1 AND 2 < 3 } 0
|
||||
do_execsql_test e_expr-13.2.29 { SELECT 2 BETWEEN 1 AND (2 < 3) } 0
|
||||
do_execsql_test e_expr-13.2.30 { SELECT (2 BETWEEN 1 AND 2) < 3 } 1
|
||||
|
||||
finish_test
|
||||
|
@ -1196,5 +1196,41 @@ do_faultsim_test pagerfault-26 -prep {
|
||||
}
|
||||
}
|
||||
|
||||
do_test pagerfault-27-pre {
|
||||
faultsim_delete_and_reopen
|
||||
db func a_string a_string
|
||||
execsql {
|
||||
PRAGMA page_size = 1024;
|
||||
CREATE TABLE t1(a, b);
|
||||
CREATE TABLE t2(a UNIQUE, b UNIQUE);
|
||||
INSERT INTO t2 VALUES( a_string(800), a_string(800) );
|
||||
INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2;
|
||||
INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2;
|
||||
INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2;
|
||||
INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2;
|
||||
INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2;
|
||||
INSERT INTO t2 SELECT a_string(800), a_string(800) FROM t2;
|
||||
INSERT INTO t1 VALUES (a_string(20000), a_string(20000));
|
||||
}
|
||||
faultsim_save_and_close
|
||||
} {}
|
||||
do_faultsim_test pagerfault-27 -faults ioerr-persistent -prep {
|
||||
faultsim_restore_and_reopen
|
||||
db func a_string a_string
|
||||
execsql {
|
||||
PRAGMA cache_size = 10;
|
||||
BEGIN EXCLUSIVE;
|
||||
}
|
||||
set ::channel [db incrblob t1 a 1]
|
||||
} -body {
|
||||
puts $::channel [string repeat abc 6000]
|
||||
flush $::channel
|
||||
} -test {
|
||||
puts [catchsql { UPDATE t2 SET a = a_string(800), b = a_string(800) }]
|
||||
catch { close $::channel }
|
||||
puts [catchsql { ROLLBACK }]
|
||||
faultsim_integrity_check
|
||||
}
|
||||
|
||||
finish_test
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user