mariadb/mysql-test/t/bool.test
unknown 14810ff1d3 Changed mysql-test to print warnings for not existing table to DROP TABLE
Cleaned up test; Removed wrong DROP TABLE commands and use standard table and database names.
changed store_warning() -> push_warning_print()



BitKeeper/deleted/.del-rpl000016-slave.opt~ef76f85ddcc13b87:
  Delete: mysql-test/t/rpl000016-slave.opt
BitKeeper/deleted/.del-sel000001.test~9567c1646058cc:
  Delete: mysql-test/t/sel000001.test
BitKeeper/deleted/.del-sel000002.test~9f500639572e18e1:
  Delete: mysql-test/t/sel000002.test
BitKeeper/deleted/.del-sel000003.test~63a5512d18cd20a2:
  Delete: mysql-test/t/sel000003.test
BitKeeper/deleted/.del-sel000001.result~383913ae4505ec86:
  Delete: mysql-test/r/sel000001.result
BitKeeper/deleted/.del-sel000002.result~d1787e6fd5dbc1cc:
  Delete: mysql-test/r/sel000002.result
BitKeeper/deleted/.del-sel000003.result~d7b657b1e3a286a7:
  Delete: mysql-test/r/sel000003.result
BitKeeper/deleted/.del-sel000031.result~d49aeac63ad7db4d:
  Delete: mysql-test/r/sel000031.result
BitKeeper/deleted/.del-sel000031.test~50a19a8e204e99bc:
  Delete: mysql-test/t/sel000031.test
BitKeeper/deleted/.del-sel000032.result~6cb30e23cbca9fb0:
  Delete: mysql-test/r/sel000032.result
BitKeeper/deleted/.del-sel000032.test~e32da7c3fc4b7ace:
  Delete: mysql-test/t/sel000032.test
BitKeeper/deleted/.del-rpl000003.result~68d6ee00beaa011:
  Delete: mysql-test/r/rpl000003.result
BitKeeper/deleted/.del-rpl000003.test~b7cfc4c5576fbafd:
  Delete: mysql-test/t/rpl000003.test
client/mysql.cc:
  Don't yet print information about SQL help
client/mysqltest.c:
  Added test options:
  --enable_warnings
  --disable_warnings
  --enable_info
  --disable_info
configure.in:
  changed version number of shared libraries
mysql-test/include/master-slave.inc:
  Don't write warnings on init
mysql-test/r/backup.result:
  Updated results
mysql-test/r/bdb.result:
  Updated results
mysql-test/r/bigint.result:
  Updated results
mysql-test/r/bool.result:
  Updated results
mysql-test/r/create.result:
  Updated results
mysql-test/r/delete.result:
  Updated results
mysql-test/r/derived.result:
  Updated results
mysql-test/r/distinct.result:
  Updated results
mysql-test/r/drop.result:
  Updated results
mysql-test/r/flush.result:
  Updated results
mysql-test/r/fulltext.result:
  Updated results
mysql-test/r/fulltext_multi.result:
  Updated results
mysql-test/r/fulltext_order_by.result:
  Updated results
mysql-test/r/func_equal.result:
  Updated results
mysql-test/r/func_in.result:
  Updated results
mysql-test/r/func_set.result:
  Updated results
mysql-test/r/gcc296.result:
  Updated results
mysql-test/r/group_by.result:
  Updated results
mysql-test/r/innodb-deadlock.result:
  Updated results
mysql-test/r/innodb.result:
  Updated results
mysql-test/r/innodb_cache.result:
  Updated results
mysql-test/r/innodb_handler.result:
  Updated results
mysql-test/r/insert.result:
  Updated results
mysql-test/r/insert_select.result:
  Updated results
mysql-test/r/isam.result:
  Updated results
mysql-test/r/join_outer.result:
  Updated results
mysql-test/r/key.result:
  Updated results
mysql-test/r/merge.result:
  Updated results
mysql-test/r/multi_update.result:
  Updated results
mysql-test/r/myisam.result:
  Updated results
mysql-test/r/null.result:
  Updated results
mysql-test/r/null_key.result:
  Updated results
mysql-test/r/odbc.result:
  Updated results
mysql-test/r/olap.result:
  Updated results
mysql-test/r/order_by.result:
  Updated results
mysql-test/r/query_cache.result:
  Updated results
mysql-test/r/rename.result:
  Updated results
mysql-test/r/row.result:
  Updated results
mysql-test/r/rpl000001.result:
  Updated results
mysql-test/r/rpl000002.result:
  Updated results
mysql-test/r/rpl000004.result:
  Updated results
mysql-test/r/rpl000005.result:
  Updated results
mysql-test/r/rpl000006.result:
  Updated results
mysql-test/r/rpl000008.result:
  Updated results
mysql-test/r/rpl000009.result:
  Updated results
mysql-test/r/rpl000010.result:
  Updated results
mysql-test/r/rpl000011.result:
  Updated results
mysql-test/r/rpl000012.result:
  Updated results
mysql-test/r/rpl000013.result:
  Updated results
mysql-test/r/rpl_alter.result:
  Updated results
mysql-test/r/rpl_empty_master_crash.result:
  Updated results
mysql-test/r/rpl_redirect.result:
  Updated results
mysql-test/r/rpl_replicate_do.result:
  Updated results
mysql-test/r/rpl_rotate_logs.result:
  Updated results
mysql-test/r/rpl_skip_error.result:
  Updated results
mysql-test/r/rpl_temporary.result:
  Updated results
mysql-test/r/select.result:
  Updated results
mysql-test/r/subselect.result:
  Updated results
mysql-test/r/temp_table.result:
  Updated results
mysql-test/r/type_date.result:
  Updated results
mysql-test/r/type_float.result:
  Updated results
mysql-test/r/union.result:
  Updated results
mysql-test/r/update.result:
  Updated results
mysql-test/r/user_var.result:
  Updated results
mysql-test/r/varbinary.result:
  Updated results
mysql-test/r/variables.result:
  Updated results
mysql-test/r/warnings.result:
  Updated results
mysql-test/t/alias.test:
  Don't write warnings when initializing test
mysql-test/t/alter_table.test:
  Don't write warnings when initializing test
mysql-test/t/analyse.test:
  Don't write warnings when initializing test
mysql-test/t/auto_increment.test:
  Don't write warnings when initializing test
mysql-test/t/backup.test:
  Don't write warnings when initializing test
mysql-test/t/bdb-alter-table-1.test:
  Don't write warnings when initializing test
mysql-test/t/bdb-crash.test:
  Don't write warnings when initializing test
mysql-test/t/bdb-deadlock.test:
  Don't write warnings when initializing test
mysql-test/t/bdb.test:
  Don't write warnings when initializing test
  cleaned up test
mysql-test/t/bdb_cache.test:
  Don't write warnings when initializing test
mysql-test/t/bench_count_distinct.test:
  Don't write warnings when initializing test
mysql-test/t/bigint.test:
  Don't write warnings when initializing test
mysql-test/t/binary.test:
  Don't write warnings when initializing test
mysql-test/t/bool.test:
  Don't write warnings when initializing test
  Changed to use standard table names
mysql-test/t/bulk_replace.test:
  Don't write warnings when initializing test
mysql-test/t/case.test:
  Don't write warnings when initializing test
mysql-test/t/check.test:
  Don't write warnings when initializing test
mysql-test/t/compare.test:
  Don't write warnings when initializing test
mysql-test/t/connect.test:
  Removed empty line
mysql-test/t/constraints.test:
  Don't write warnings when initializing test
mysql-test/t/count_distinct.test:
  Don't write warnings when initializing test
mysql-test/t/count_distinct2.test:
  Don't write warnings when initializing test
mysql-test/t/create.test:
  Don't write warnings when initializing test
  Cleaned up test
mysql-test/t/ctype_latin1_de.test:
  Don't write warnings when initializing test
mysql-test/t/ctype_many.test:
  Don't write warnings when initializing test
mysql-test/t/delayed.test:
  Don't write warnings when initializing test
mysql-test/t/delete.test:
  Don't write warnings when initializing test
  Cleaned up test
mysql-test/t/derived.test:
  Don't write warnings when initializing test
  Cleaned up test
mysql-test/t/dirty_close.test:
  Don't write warnings when initializing test
mysql-test/t/distinct.test:
  Don't write warnings when initializing test
  Cleaned up test
mysql-test/t/drop.test:
  Don't write warnings when initializing test
mysql-test/t/empty_table.test:
  Don't write warnings when initializing test
mysql-test/t/err000001.test:
  Don't write warnings when initializing test
  Cleaned up test
mysql-test/t/explain.test:
  Don't write warnings when initializing test
mysql-test/t/flush.test:
  Don't write warnings when initializing test
mysql-test/t/foreign_key.test:
  Don't write warnings when initializing test
mysql-test/t/fulltext.test:
  Don't write warnings when initializing test
mysql-test/t/fulltext_cache.test:
  Don't write warnings when initializing test
mysql-test/t/fulltext_distinct.test:
  Don't write warnings when initializing test
mysql-test/t/fulltext_left_join.test:
  Don't write warnings when initializing test
mysql-test/t/fulltext_multi.test:
  Don't write warnings when initializing test
mysql-test/t/fulltext_order_by.test:
  Don't write warnings when initializing test
mysql-test/t/fulltext_update.test:
  Don't write warnings when initializing test
mysql-test/t/func_concat.test:
  Don't write warnings when initializing test
mysql-test/t/func_date_add.test:
  Don't write warnings when initializing test
mysql-test/t/func_encrypt.test:
  Don't write warnings when initializing test
mysql-test/t/func_equal.test:
  Don't write warnings when initializing test
mysql-test/t/func_group.test:
  Don't write warnings when initializing test
mysql-test/t/func_if.test:
  Don't write warnings when initializing test
mysql-test/t/func_in.test:
  Don't write warnings when initializing test
mysql-test/t/func_isnull.test:
  Don't write warnings when initializing test
mysql-test/t/func_like.test:
  Don't write warnings when initializing test
mysql-test/t/func_regexp.test:
  Don't write warnings when initializing test
mysql-test/t/func_set.test:
  Don't write warnings when initializing test
  Merged test with other tests
mysql-test/t/func_str.test:
  Don't write warnings when initializing test
mysql-test/t/func_time.test:
  Don't write warnings when initializing test
mysql-test/t/func_timestamp.test:
  Don't write warnings when initializing test
mysql-test/t/gcc296.test:
  Don't write warnings when initializing test
  Cleaned up test
mysql-test/t/grant_cache.test:
  Don't write warnings when initializing test
mysql-test/t/group_by.test:
  Don't write warnings when initializing test
  Cleaned up test
mysql-test/t/handler.test:
  Don't write warnings when initializing test
mysql-test/t/having.test:
  Don't write warnings when initializing test
mysql-test/t/heap.test:
  Don't write warnings when initializing test
mysql-test/t/heap_auto_increment.test:
  Don't write warnings when initializing test
mysql-test/t/heap_btree.test:
  Don't write warnings when initializing test
mysql-test/t/heap_hash.test:
  Don't write warnings when initializing test
mysql-test/t/innodb-deadlock.test:
  Don't write warnings when initializing test
mysql-test/t/innodb.test:
  Don't write warnings when initializing test
mysql-test/t/innodb_cache.test:
  Don't write warnings when initializing test
mysql-test/t/innodb_handler.test:
  Don't write warnings when initializing test
mysql-test/t/ins000001.test:
  Don't write warnings when initializing test
mysql-test/t/insert.test:
  Don't write warnings when initializing test
  cleaned up test.
  Changed to use standard database and table names
mysql-test/t/insert_select.test:
  Don't write warnings when initializing test
  Changed to use standard table names
mysql-test/t/insert_update.test:
  Don't write warnings when initializing test
mysql-test/t/isam.test:
  Don't write warnings when initializing test
  cleaned up test
mysql-test/t/join.test:
  Don't write warnings when initializing test
mysql-test/t/join_crash.test:
  Don't write warnings when initializing test
mysql-test/t/join_outer.test:
  Don't write warnings when initializing test
mysql-test/t/key.test:
  Don't write warnings when initializing test
mysql-test/t/key_diff.test:
  Don't write warnings when initializing test
mysql-test/t/key_primary.test:
  Don't write warnings when initializing test
mysql-test/t/keywords.test:
  Don't write warnings when initializing test
mysql-test/t/kill.test:
  Don't write warnings when initializing test
mysql-test/t/limit.test:
  Don't write warnings when initializing test
mysql-test/t/lock.test:
  Don't write warnings when initializing test
mysql-test/t/lock_multi.test:
  Don't write warnings when initializing test
mysql-test/t/lowercase_table.test:
  Don't write warnings when initializing test
mysql-test/t/merge.test:
  Don't write warnings when initializing test
  cleaned up test
mysql-test/t/multi_update.test:
  Don't write warnings when initializing test
mysql-test/t/myisam.test:
  Don't write warnings when initializing test
mysql-test/t/null.test:
  Don't write warnings when initializing test
mysql-test/t/null_key.test:
  Don't write warnings when initializing test
mysql-test/t/odbc.test:
  Don't write warnings when initializing test
mysql-test/t/olap.test:
  Don't write warnings when initializing test
mysql-test/t/order_by.test:
  Don't write warnings when initializing test
mysql-test/t/order_fill_sortbuf.test:
  Don't write warnings when initializing test
mysql-test/t/query_cache.test:
  Don't write warnings when initializing test
mysql-test/t/raid.test:
  Don't write warnings when initializing test
mysql-test/t/range.test:
  Don't write warnings when initializing test
mysql-test/t/rename.test:
  Don't write warnings when initializing test
mysql-test/t/repair.test:
  Don't write warnings when initializing test
mysql-test/t/replace.test:
  Don't write warnings when initializing test
mysql-test/t/rollback.test:
  Don't write warnings when initializing test
mysql-test/t/row.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000001.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000002.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000004.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000005.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000006.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000008-slave.opt:
  Don't write warnings when initializing test
mysql-test/t/rpl000008.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000009-slave.opt:
  Don't write warnings when initializing test
mysql-test/t/rpl000009.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000010.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000011.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000012.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000013.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000015.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000017.test:
  Don't write warnings when initializing test
mysql-test/t/rpl000018.test:
  Don't write warnings when initializing test
mysql-test/t/rpl_alter.test:
  Don't write warnings when initializing test
mysql-test/t/rpl_empty_master_crash.test:
  Don't write warnings when initializing test
mysql-test/t/rpl_redirect.test:
  Don't write warnings when initializing test
mysql-test/t/rpl_replicate_do.test:
  Don't write warnings when initializing test
mysql-test/t/rpl_rotate_logs.test:
  Don't write warnings when initializing test
mysql-test/t/rpl_skip_error.test:
  Don't write warnings when initializing test
mysql-test/t/rpl_temporary.test:
  Don't write warnings when initializing test
mysql-test/t/sel000033.test:
  Don't write warnings when initializing test
mysql-test/t/sel000100.test:
  Don't write warnings when initializing test
mysql-test/t/select.test:
  Don't write warnings when initializing test
mysql-test/t/select_found.test:
  Don't write warnings when initializing test
mysql-test/t/select_safe.test:
  Don't write warnings when initializing test
mysql-test/t/show_check.test:
  Don't write warnings when initializing test
mysql-test/t/status.test:
  Don't write warnings when initializing test
mysql-test/t/subselect.test:
  Don't write warnings when initializing test
mysql-test/t/symlink.test:
  Don't write warnings when initializing test
mysql-test/t/tablelock.test:
  Don't write warnings when initializing test
mysql-test/t/temp_table.test:
  Don't write warnings when initializing test
mysql-test/t/truncate.test:
  Don't write warnings when initializing test
mysql-test/t/type_blob.test:
  Don't write warnings when initializing test
mysql-test/t/type_date.test:
  Don't write warnings when initializing test
mysql-test/t/type_datetime.test:
  Don't write warnings when initializing test
mysql-test/t/type_decimal.test:
  Don't write warnings when initializing test
mysql-test/t/type_enum.test:
  Don't write warnings when initializing test
mysql-test/t/type_float.test:
  Don't write warnings when initializing test
mysql-test/t/type_ranges.test:
  Don't write warnings when initializing test
mysql-test/t/type_set.test:
  Don't write warnings when initializing test
mysql-test/t/type_time.test:
  Don't write warnings when initializing test
mysql-test/t/type_timestamp.test:
  Don't write warnings when initializing test
mysql-test/t/type_uint.test:
  Don't write warnings when initializing test
mysql-test/t/type_year.test:
  Don't write warnings when initializing test
mysql-test/t/union.test:
  Don't write warnings when initializing test
mysql-test/t/update.test:
  Don't write warnings when initializing test
mysql-test/t/user_var.test:
  Don't write warnings when initializing test
mysql-test/t/varbinary.test:
  Don't write warnings when initializing test
mysql-test/t/variables.test:
  Don't write warnings when initializing test
mysql-test/t/warnings.test:
  Don't write warnings when initializing test
mysys/my_vsnprintf.c:
  Safety fix
readline/terminal.c:
  Removed compiler warnings
sql/ha_berkeley.cc:
  Indentation changes
sql/mysql_priv.h:
  Change store_warning -> push_warning_printf
sql/sql_db.cc:
  Change store_warning -> push_warning_printf
sql/sql_error.cc:
  Change store_warning -> push_warning_printf
sql/sql_table.cc:
  Change store_warning -> push_warning_printf
2003-01-06 01:48:59 +02:00

51 lines
2.1 KiB
Text

#
# Test of boolean operations with NULL
#
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
SELECT IF(NULL AND 1, 1, 2), IF(1 AND NULL, 1, 2);
SELECT NULL AND 1, 1 AND NULL, 0 AND NULL, NULL and 0;
create table t1 (a int);
insert into t1 values (0),(1),(NULL);
SELECT * FROM t1 WHERE IF(a AND 1, 0, 1);
SELECT * FROM t1 WHERE IF(1 AND a, 0, 1);
SELECT * FROM t1 where NOT(a AND 1);
SELECT * FROM t1 where NOT(1 AND a);
SELECT * FROM t1 where (a AND 1)=0;
SELECT * FROM t1 where (1 AND a)=0;
SELECT * FROM t1 where (1 AND a)=1;
SELECT * FROM t1 where (1 AND a) IS NULL;
# Verify that NULL optimisation works in AND clause:
SET @a=0, @b=0;
SELECT * FROM t1 WHERE NULL AND (@a:=@a+1);
SELECT * FROM t1 WHERE NOT(a>=0 AND NULL AND (@b:=@b+1));
SELECT * FROM t1 WHERE a=2 OR (NULL AND (@a:=@a+1));
SELECT * FROM t1 WHERE NOT(a=2 OR (NULL AND (@b:=@b+1)));
SELECT @a, @b;
DROP TABLE t1;
# Test boolean operators in select part
# NULLs are represented as N for readability
# Read nA as !A, AB as A && B, AoB as A || B
# Result table makes ANSI happy
create table t1 (a int, b int);
insert into t1 values(null, null), (0, null), (1, null), (null, 0), (null, 1), (0, 0), (0, 1), (1, 0), (1, 1);
# Below test is valid untill we have True/False implemented as 1/0
# To comply to all rules it must show that: n(AB) = nAonB, n(AoB) = nAnB
select ifnull(A, 'N') as A, ifnull(B, 'N') as B, ifnull(not A, 'N') as nA, ifnull(not B, 'N') as nB, ifnull(A and B, 'N') as AB, ifnull(not (A and B), 'N') as `n(AB)`, ifnull((not A or not B), 'N') as nAonB, ifnull(A or B, 'N') as AoB, ifnull(not(A or B), 'N') as `n(AoB)`, ifnull(not A and not B, 'N') as nAnB from t1;
# This should work with any internal representation of True/False
# Result must be same as above
select ifnull(A=1, 'N') as A, ifnull(B=1, 'N') as B, ifnull(not (A=1), 'N') as nA, ifnull(not (B=1), 'N') as nB, ifnull((A=1) and (B=1), 'N') as AB, ifnull(not ((A=1) and (B=1)), 'N') as `n(AB)`, ifnull((not (A=1) or not (B=1)), 'N') as nAonB, ifnull((A=1) or (B=1), 'N') as AoB, ifnull(not((A=1) or (B=1)), 'N') as `n(AoB)`, ifnull(not (A=1) and not (B=1), 'N') as nAnB from t1;
drop table t1;