diff --git a/mysql-test/r/default.result b/mysql-test/r/default.result index da6e828588f..f853f713570 100644 --- a/mysql-test/r/default.result +++ b/mysql-test/r/default.result @@ -1898,3 +1898,41 @@ aaa 0 bbb 0 ccc 1 DROP TABLE t1; +# +# Numeric result functions with string input +# +CREATE TABLE t1 (a VARCHAR(10), b INT DEFAULT STRCMP(a,'b')); +INSERT INTO t1 (a) VALUES ('A'),('a'),('B'),('b'),('C'),('c'); +SELECT * FROM t1; +a b +A -1 +a -1 +B 0 +b 0 +C 1 +c 1 +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10), b INT DEFAULT LENGTH(a), c INT DEFAULT CHAR_LENGTH(a), d INT DEFAULT BIT_LENGTH(a)); +INSERT INTO t1 (a) VALUES ('a'),('aa'),('aaa'); +SELECT * FROM t1; +a b c d +a 1 1 8 +aa 2 2 16 +aaa 3 3 24 +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10), b INT DEFAULT LOCATE('a',a)); +INSERT INTO t1 (a) VALUES ('xa'),('xxa'),('xxxa'); +SELECT * FROM t1; +a b +xa 2 +xxa 3 +xxxa 4 +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10), b INT DEFAULT REGEXP_INSTR(a, 'a')); +INSERT INTO t1 (a) VALUES ('xa'),('xxa'),('xxxa'); +SELECT * FROM t1; +a b +xa 2 +xxa 3 +xxxa 4 +DROP TABLE t1; diff --git a/mysql-test/t/default.test b/mysql-test/t/default.test index ec56fc190b9..7350fafabf3 100644 --- a/mysql-test/t/default.test +++ b/mysql-test/t/default.test @@ -1489,3 +1489,27 @@ CREATE TABLE t1 (a VARCHAR(10), b INT DEFAULT a NOT BETWEEN 'aaa' AND 'bbb'); INSERT INTO t1 (a) VALUES ('AAA'),('aaa'),('bbb'),('ccc'); SELECT * FROM t1; DROP TABLE t1; + +--echo # +--echo # Numeric result functions with string input +--echo # + +CREATE TABLE t1 (a VARCHAR(10), b INT DEFAULT STRCMP(a,'b')); +INSERT INTO t1 (a) VALUES ('A'),('a'),('B'),('b'),('C'),('c'); +SELECT * FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10), b INT DEFAULT LENGTH(a), c INT DEFAULT CHAR_LENGTH(a), d INT DEFAULT BIT_LENGTH(a)); +INSERT INTO t1 (a) VALUES ('a'),('aa'),('aaa'); +SELECT * FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10), b INT DEFAULT LOCATE('a',a)); +INSERT INTO t1 (a) VALUES ('xa'),('xxa'),('xxxa'); +SELECT * FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10), b INT DEFAULT REGEXP_INSTR(a, 'a')); +INSERT INTO t1 (a) VALUES ('xa'),('xxa'),('xxxa'); +SELECT * FROM t1; +DROP TABLE t1;