Loading mysql-test/r/select.result +11 −0 Original line number Diff line number Diff line Loading @@ -2739,3 +2739,14 @@ DROP TABLE t1,t2; select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0 16 16 2 2 CREATE TABLE BUG_12595(a varchar(100)); INSERT INTO BUG_12595 VALUES ('hakan%'), ('hakank'), ("ha%an"); SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*'; a hakan% SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**'; ERROR HY000: Incorrect arguments to ESCAPE SELECT * FROM BUG_12595 WHERE a LIKE 'ha%%an' ESCAPE '%'; a ha%an DROP TABLE BUG_12595; mysql-test/t/select.test +11 −0 Original line number Diff line number Diff line Loading @@ -2350,3 +2350,14 @@ DROP TABLE t1,t2; # select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; # # BUG #12595 # CREATE TABLE BUG_12595(a varchar(100)); INSERT INTO BUG_12595 VALUES ('hakan%'), ('hakank'), ("ha%an"); SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*'; -- error 1210 SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**'; SELECT * FROM BUG_12595 WHERE a LIKE 'ha%%an' ESCAPE '%'; DROP TABLE BUG_12595; sql/item_cmpfunc.cc +7 −1 Original line number Diff line number Diff line Loading @@ -2792,6 +2792,12 @@ bool Item_func_like::fix_fields(THD *thd, Item **ref) { /* If we are on execution stage */ String *escape_str= escape_item->val_str(&tmp_value1); /* ESCAPE must be 1 char in length.*/ if (escape_str && escape_str->numchars() != 1) { my_error(ER_WRONG_ARGUMENTS,MYF(0),"ESCAPE"); return TRUE; } escape= escape_str ? *(escape_str->ptr()) : '\\'; /* Loading Loading
mysql-test/r/select.result +11 −0 Original line number Diff line number Diff line Loading @@ -2739,3 +2739,14 @@ DROP TABLE t1,t2; select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0 16 16 2 2 CREATE TABLE BUG_12595(a varchar(100)); INSERT INTO BUG_12595 VALUES ('hakan%'), ('hakank'), ("ha%an"); SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*'; a hakan% SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**'; ERROR HY000: Incorrect arguments to ESCAPE SELECT * FROM BUG_12595 WHERE a LIKE 'ha%%an' ESCAPE '%'; a ha%an DROP TABLE BUG_12595;
mysql-test/t/select.test +11 −0 Original line number Diff line number Diff line Loading @@ -2350,3 +2350,14 @@ DROP TABLE t1,t2; # select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; # # BUG #12595 # CREATE TABLE BUG_12595(a varchar(100)); INSERT INTO BUG_12595 VALUES ('hakan%'), ('hakank'), ("ha%an"); SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*'; -- error 1210 SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**'; SELECT * FROM BUG_12595 WHERE a LIKE 'ha%%an' ESCAPE '%'; DROP TABLE BUG_12595;
sql/item_cmpfunc.cc +7 −1 Original line number Diff line number Diff line Loading @@ -2792,6 +2792,12 @@ bool Item_func_like::fix_fields(THD *thd, Item **ref) { /* If we are on execution stage */ String *escape_str= escape_item->val_str(&tmp_value1); /* ESCAPE must be 1 char in length.*/ if (escape_str && escape_str->numchars() != 1) { my_error(ER_WRONG_ARGUMENTS,MYF(0),"ESCAPE"); return TRUE; } escape= escape_str ? *(escape_str->ptr()) : '\\'; /* Loading