1*8ac02a94Sdan# 2019 May 20 2*8ac02a94Sdan# 3*8ac02a94Sdan# The author disclaims copyright to this source code. In place of 4*8ac02a94Sdan# a legal notice, here is a blessing: 5*8ac02a94Sdan# 6*8ac02a94Sdan# May you do good and not evil. 7*8ac02a94Sdan# May you find forgiveness for yourself and forgive others. 8*8ac02a94Sdan# May you share freely, never taking more than you give. 9*8ac02a94Sdan# 10*8ac02a94Sdan#*********************************************************************** 11*8ac02a94Sdan# This file implements regression tests for SQLite library. The 12*8ac02a94Sdan# focus of this file is testing expressions. 13*8ac02a94Sdan# 14*8ac02a94Sdan 15*8ac02a94Sdanset testdir [file dirname $argv0] 16*8ac02a94Sdansource $testdir/tester.tcl 17*8ac02a94Sdanset testprefix expr2 18*8ac02a94Sdan 19*8ac02a94Sdando_execsql_test 1.0 { 20*8ac02a94Sdan CREATE TABLE t0(c0); 21*8ac02a94Sdan INSERT INTO t0(c0) VALUES ('val'); 22*8ac02a94Sdan} 23*8ac02a94Sdan 24*8ac02a94Sdando_execsql_test 1.1 { 25*8ac02a94Sdan SELECT * FROM t0 WHERE ( 26*8ac02a94Sdan ( (0 IS NOT FALSE) OR NOT (0 IS FALSE OR (t0.c0 = 1)) ) IS 0 27*8ac02a94Sdan ) 28*8ac02a94Sdan} {val} 29*8ac02a94Sdan 30*8ac02a94Sdando_execsql_test 1.2.1 { 31*8ac02a94Sdan SELECT 32*8ac02a94Sdan ( (0 IS NOT FALSE) OR NOT (0 IS FALSE OR (t0.c0 = 1)) ) IS 0 33*8ac02a94Sdan FROM t0 34*8ac02a94Sdan} {1} 35*8ac02a94Sdan 36*8ac02a94Sdando_execsql_test 1.2.2 { 37*8ac02a94Sdan SELECT 38*8ac02a94Sdan ( (0 IS NOT FALSE) OR NOT (0 IS 0 OR (t0.c0 = 1)) ) IS 0 39*8ac02a94Sdan FROM t0 40*8ac02a94Sdan} {1} 41*8ac02a94Sdan 42*8ac02a94Sdando_execsql_test 1.3 { 43*8ac02a94Sdan SELECT ( (0 IS NOT FALSE) OR NOT (0 IS FALSE OR (t0.c0 = 1)) ) FROM t0 44*8ac02a94Sdan} {0} 45*8ac02a94Sdan 46*8ac02a94Sdando_execsql_test 1.4.1 { 47*8ac02a94Sdan SELECT (0 IS NOT FALSE) FROM t0 48*8ac02a94Sdan} {0} 49*8ac02a94Sdando_execsql_test 1.4.2 { 50*8ac02a94Sdan SELECT NOT (0 IS FALSE OR (t0.c0 = 1)) FROM t0 51*8ac02a94Sdan} {0} 52*8ac02a94Sdan 53*8ac02a94Sdan 54*8ac02a94Sdanfinish_test 55