# tests updates that sets invalid range when we set value at max boundary that is less than max. --disable_warnings DROP DATABASE IF EXISTS test_empty_strings; CREATE DATABASE test_empty_strings; USE test_empty_strings; --enable_warnings CREATE TABLE t(s text) ENGINE=COLUMNSTORE; INSERT INTO t(s) VALUES (''), (NULL); SELECT COUNT(*) FROM t WHERE s IS NULL; SELECT COUNT(*) FROM t WHERE s IS NOT NULL; SELECT * FROM t; DROP TABLE t; CREATE TABLE t(s text) ENGINE=COLUMNSTORE; # this will test different code path in writeengine. INSERT INTO t(s) VALUES (''); INSERT INTO t(s) VALUES (NULL); SELECT * FROM t; SELECT COUNT(*) FROM t WHERE s IS NULL; DROP TABLE t; CREATE TABLE t(s text) ENGINE=COLUMNSTORE; # handling of some obsucure pseudo-null magic value. INSERT INTO t(s) VALUES ('_CpNuLl_'),(''), (NULL); SELECT * FROM t; SELECT COUNT(*) FROM t WHERE s IS NULL; DROP TABLE t; # There is a problem with comparison CREATE TABLE t(c6 CHAR(6)) ENGINE=COLUMNSTORE; INSERT INTO t(c6) VALUES ('a'), ('b'), ('c'); SELECT 2, COUNT(*) FROM t WHERE (c6 <= 'b' OR c6 <= ''); SELECT 2, COUNT(*) FROM t WHERE (c6 <= 'b'); SELECT 0, COUNT(*) FROM t WHERE (c6 <= ''); SELECT 0, COUNT(*) FROM t WHERE (c6 <= ' '); SELECT 2, COUNT(*) FROM t WHERE (c6 <= 'b' OR c6 <= ' '); SELECT 0, COUNT(*) FROM t WHERE (c6 < ''); SELECT 0, COUNT(*) FROM t WHERE (c6 < ' '); DROP TABLE IF EXISTS t; CREATE TABLE t(a CHAR(10)) ENGINE=COLUMNSTORE; INSERT INTO t(a) VALUES (''), (NULL), (' '), (' a '); SELECT LTRIM_ORACLE(a) FROM t; SELECT RTRIM_ORACLE(a) FROM t; DROP DATABASE test_empty_strings;