mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-05 15:55:57 +03:00
Allow comparison operators of a register against itself.
Ticket [188f912b51cd802a], FossilOrigin-Name: 401c9d30e06191d938503aae024bc453d960fa64dc812ed86c661f94533247fd
This commit is contained in:
14
manifest
14
manifest
@@ -1,5 +1,5 @@
|
||||
C Test\scase\sfor\sthe\szipfile-extension\sbug\sfix\sof\sthe\sprevious\scheck-in.
|
||||
D 2019-12-23T21:11:15.463
|
||||
C Allow\scomparison\soperators\sof\sa\sregister\sagainst\sitself.\nTicket\s[188f912b51cd802a],
|
||||
D 2019-12-24T01:53:05.662
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||
@@ -599,7 +599,7 @@ F src/upsert.c b445315c8958d8f17ec3297d06842e61dacaad0633ccaec1e4e160de7e562212
|
||||
F src/utf.c 2f0fac345c7660d5c5bd3df9e9d8d33d4c27f366bcfb09e07443064d751a0507
|
||||
F src/util.c 2c92bc706bbdb1c45a25180291e7e05a56e297aa5dd7b2bcd2b1c47e8bb05b17
|
||||
F src/vacuum.c 82dcec9e7b1afa980288718ad11bc499651c722d7b9f32933c4d694d91cb6ebf
|
||||
F src/vdbe.c 46695ae07f7b90de64bdfe099ed3c01f701dac3193d219bdb736e5eea11615b3
|
||||
F src/vdbe.c 8691c41f61e27f2f36c3c6559ab5aa32a7d552c4fedf1d618f24dd7a58670a8b
|
||||
F src/vdbe.h 3f068f00b23aebf392df142312ab5874588371c6d83e60d953f6d6b6453491c5
|
||||
F src/vdbeInt.h 1ccaf470287e2d153b16cf7b0274d436db2c2f74cdf14afd1a0ff4cb51548ae6
|
||||
F src/vdbeapi.c 1252d80c548711e47a6d84dae88ed4e95d3fbb4e7bd0eaa1347299af7efddf02
|
||||
@@ -728,7 +728,7 @@ F test/capi3d.test aba917805573a03deed961a21f07a5a84505ad0a616f7e3fc1508844a15bc
|
||||
F test/capi3e.test 3d49c01ef2a1a55f41d73cba2b23b5059ec460fe
|
||||
F test/cast.test 3619f0c58c2e4b2a94aa86e75607e497d34ef40ab74418e71aef7b4ca5155895
|
||||
F test/cffault.test 9d6b20606afe712374952eec4f8fd74b1a8097ef
|
||||
F test/check.test 25c6035302c846c7ff8e681cf8284473f6f01be94d327de60a688ad84ab01f8b
|
||||
F test/check.test b21a76546c2115af2674280566a8eba577e72adfec330c3d9a8a466d41f8eb0d
|
||||
F test/checkfault.test da6cb3d50247169efcb20bdf57863a3ccfa1d27d9e55cd324f0680096970f014
|
||||
F test/chunksize.test 427d87791743486cbf0c3b8c625002f3255cb3a89c6eba655a98923b1387b760
|
||||
F test/close.test eccbad8ecd611d974cbf47278c3d4e5874faf02d811338d5d348af42d56d647c
|
||||
@@ -1852,7 +1852,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P cc0fb00a128fd0773db5ff7891f7aa577a3671d570166d2cbb30df922344adcf
|
||||
R 01755885676b946174adbb226548e4c0
|
||||
P bc8bfc7fcdf33f6855584e10e9260073430517ff3268cf0c7988dcc4cd785391
|
||||
R 053d1dee3c90f1c568a1ca6324c56ed1
|
||||
U drh
|
||||
Z 9cbb5c3517ed7c9d1c8f71b1fd10d978
|
||||
Z c118a2c355c191018c74d0b27b1f15e8
|
||||
|
@@ -1 +1 @@
|
||||
bc8bfc7fcdf33f6855584e10e9260073430517ff3268cf0c7988dcc4cd785391
|
||||
401c9d30e06191d938503aae024bc453d960fa64dc812ed86c661f94533247fd
|
@@ -2052,9 +2052,11 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */
|
||||
sqlite3VdbeMemStringify(pIn1, encoding, 1);
|
||||
testcase( (flags1&MEM_Dyn) != (pIn1->flags&MEM_Dyn) );
|
||||
flags1 = (pIn1->flags & ~MEM_TypeMask) | (flags1 & MEM_TypeMask);
|
||||
assert( pIn1!=pIn3 );
|
||||
}
|
||||
if( (flags3 & MEM_Str)==0 && (flags3&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){
|
||||
if( (flags3 & MEM_Str)==0
|
||||
&& (flags3&(MEM_Int|MEM_Real|MEM_IntReal))!=0
|
||||
&& pIn1!=pIn3
|
||||
){
|
||||
testcase( pIn3->flags & MEM_Int );
|
||||
testcase( pIn3->flags & MEM_Real );
|
||||
testcase( pIn3->flags & MEM_IntReal );
|
||||
|
@@ -11,7 +11,6 @@
|
||||
# This file implements regression tests for SQLite library. The
|
||||
# focus of this file is testing CHECK constraints
|
||||
#
|
||||
# $Id: check.test,v 1.13 2009/06/05 17:09:12 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@@ -536,7 +535,71 @@ do_execsql_test 11.6 {
|
||||
INSERT INTO t2(b, a) VALUES(2, 'abc');
|
||||
}
|
||||
|
||||
finish_test
|
||||
|
||||
# 2019-12-24 ticket b383b90278186263
|
||||
#
|
||||
reset_db
|
||||
do_execsql_test 12.10 {
|
||||
CREATE TABLE t1(a TEXT, CHECK(a=+a));
|
||||
INSERT INTO t1(a) VALUES(NULL),('xyz'),(5),(x'303132'),(4.75);
|
||||
SELECT quote(a) FROM t1 ORDER BY rowid;
|
||||
} {NULL 'xyz' '5' X'303132' '4.75'}
|
||||
do_execsql_test 12.20 {
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a TEXT, CHECK(a<>+a));
|
||||
INSERT INTO t1(a) VALUES(NULL);
|
||||
} {}
|
||||
do_catchsql_test 12.21 {
|
||||
INSERT INTO t1(a) VALUES('xyz');
|
||||
} {1 {CHECK constraint failed: t1}}
|
||||
do_catchsql_test 12.22 {
|
||||
INSERT INTO t1(a) VALUES(123);
|
||||
} {1 {CHECK constraint failed: t1}}
|
||||
do_execsql_test 12.30 {
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a TEXT, CHECK(NOT(a=+a)));
|
||||
INSERT INTO t1(a) VALUES(NULL);
|
||||
} {}
|
||||
do_catchsql_test 12.31 {
|
||||
INSERT INTO t1(a) VALUES('xyz');
|
||||
} {1 {CHECK constraint failed: t1}}
|
||||
do_catchsql_test 12.32 {
|
||||
INSERT INTO t1(a) VALUES(123);
|
||||
} {1 {CHECK constraint failed: t1}}
|
||||
do_execsql_test 12.40 {
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a TEXT, CHECK(NOT(a<>+a)));
|
||||
INSERT INTO t1(a) VALUES(NULL),('xyz'),(5),(x'303132'),(4.75);
|
||||
SELECT quote(a) FROM t1 ORDER BY rowid;
|
||||
} {NULL 'xyz' '5' X'303132' '4.75'}
|
||||
do_execsql_test 12.50 {
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a TEXT, CHECK(a BETWEEN 0 AND +a));
|
||||
INSERT INTO t1(a) VALUES(NULL),('xyz'),(5),(x'303132'),(4.75);
|
||||
SELECT quote(a) FROM t1 ORDER BY rowid;
|
||||
} {NULL 'xyz' '5' X'303132' '4.75'}
|
||||
do_execsql_test 12.60 {
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a TEXT, CHECK(a NOT BETWEEN 0 AND +a));
|
||||
INSERT INTO t1(a) VALUES(NULL);
|
||||
SELECT quote(a) FROM t1 ORDER BY rowid;
|
||||
} {NULL}
|
||||
do_catchsql_test 12.61 {
|
||||
INSERT INTO t1(a) VALUES(456);
|
||||
} {1 {CHECK constraint failed: t1}}
|
||||
do_execsql_test 12.70 {
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a TEXT, CHECK(a BETWEEN +a AND 999999));
|
||||
INSERT INTO t1(a) VALUES(NULL),(5);
|
||||
SELECT quote(a) FROM t1 ORDER BY rowid;
|
||||
} {NULL '5'}
|
||||
do_execsql_test 12.80 {
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a TEXT, CHECK(a NOT BETWEEN +a AND 999999));
|
||||
INSERT INTO t1(a) VALUES(NULL);
|
||||
SELECT quote(a) FROM t1 ORDER BY rowid;
|
||||
} {NULL}
|
||||
do_catchsql_test 12.81 {
|
||||
INSERT INTO t1(a) VALUES(456);
|
||||
} {1 {CHECK constraint failed: t1}}
|
||||
|
||||
finish_test
|
||||
|
Reference in New Issue
Block a user