Commit 0980627f authored by Sergei Golubchik's avatar Sergei Golubchik

bugfix: Item_func_weight_string::print()

parent 232dc91b
...@@ -3145,7 +3145,7 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE WEIGHT_STRING(a)='a' AND a='a'; ...@@ -3145,7 +3145,7 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE WEIGHT_STRING(a)='a' AND a='a';
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings: Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 'a') and (weight_string(`test`.`t1`.`a`) = 'a')) Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 'a') and (weight_string(`test`.`t1`.`a`,0,0,1) = 'a'))
DROP TABLE t1; DROP TABLE t1;
# #
# End of 10.1 tests # End of 10.1 tests
......
...@@ -119,7 +119,7 @@ SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL; ...@@ -119,7 +119,7 @@ SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL;
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings: Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 1) and isnull(weight_string(`test`.`t1`.`a`))) Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 1) and isnull(weight_string(`test`.`t1`.`a`,0,0,1)))
ALTER TABLE t1 MODIFY a DOUBLE ZEROFILL; ALTER TABLE t1 MODIFY a DOUBLE ZEROFILL;
SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL; SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL;
a a
...@@ -129,7 +129,7 @@ SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL; ...@@ -129,7 +129,7 @@ SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL;
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings: Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 1) and isnull(weight_string(`test`.`t1`.`a`))) Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 1) and isnull(weight_string(`test`.`t1`.`a`,0,0,1)))
ALTER TABLE t1 MODIFY a DECIMAL(10,1) ZEROFILL; ALTER TABLE t1 MODIFY a DECIMAL(10,1) ZEROFILL;
SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL; SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL;
a a
...@@ -139,7 +139,7 @@ SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL; ...@@ -139,7 +139,7 @@ SELECT * FROM t1 WHERE a=1 AND WEIGHT_STRING(a) IS NULL;
id select_type table type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings: Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 1) and isnull(weight_string(`test`.`t1`.`a`))) Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 1) and isnull(weight_string(`test`.`t1`.`a`,0,0,1)))
DROP TABLE t1; DROP TABLE t1;
# #
# End of 10.1 tests # End of 10.1 tests
...@@ -155,13 +155,18 @@ SHOW CREATE TABLE t1; ...@@ -155,13 +155,18 @@ SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` varchar(10) DEFAULT NULL, `a` varchar(10) DEFAULT NULL,
`b` varbinary(10) DEFAULT WEIGHT_STRING(a AS CHAR(10)) `b` varbinary(10) DEFAULT weight_string(`a`,0,10,65)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 (a) VALUES ('a'); INSERT INTO t1 (a) VALUES ('a');
SELECT a, HEX(b) FROM t1; SELECT a, HEX(b) FROM t1;
a HEX(b) a HEX(b)
a 41202020202020202020 a 41202020202020202020
DROP TABLE t1; DROP TABLE t1;
create view v1 as select weight_string("MySQL" as char(4));
select * from v1;
weight_string("MySQL" as char(4))
MYSQ
drop view v1;
# #
# End of 10.2 tests # End of 10.2 tests
# #
...@@ -161,6 +161,13 @@ INSERT INTO t1 (a) VALUES ('a'); ...@@ -161,6 +161,13 @@ INSERT INTO t1 (a) VALUES ('a');
SELECT a, HEX(b) FROM t1; SELECT a, HEX(b) FROM t1;
DROP TABLE t1; DROP TABLE t1;
#
# Item_func_weight_string::print()
#
create view v1 as select weight_string("MySQL" as char(4));
select * from v1;
drop view v1;
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests
--echo # --echo #
...@@ -3621,6 +3621,21 @@ String *Item_func_weight_string::val_str(String *str) ...@@ -3621,6 +3621,21 @@ String *Item_func_weight_string::val_str(String *str)
} }
void Item_func_weight_string::print(String *str, enum_query_type query_type)
{
str->append(func_name());
str->append('(');
args[0]->print(str, query_type);
str->append(',');
str->append_ulonglong(result_length);
str->append(',');
str->append_ulonglong(nweights);
str->append(',');
str->append_ulonglong(flags);
str->append(')');
}
String *Item_func_hex::val_str_ascii(String *str) String *Item_func_hex::val_str_ascii(String *str)
{ {
String *res; String *res;
......
...@@ -1254,6 +1254,7 @@ class Item_func_weight_string :public Item_str_func ...@@ -1254,6 +1254,7 @@ class Item_func_weight_string :public Item_str_func
} }
Item* propagate_equal_fields(THD *thd, const Context &ctx, COND_EQUAL *cond) Item* propagate_equal_fields(THD *thd, const Context &ctx, COND_EQUAL *cond)
{ return this; } { return this; }
void print(String *str, enum_query_type query_type);
Item *get_copy(THD *thd, MEM_ROOT *mem_root) Item *get_copy(THD *thd, MEM_ROOT *mem_root)
{ return get_item_copy<Item_func_weight_string>(thd, mem_root, this); } { return get_item_copy<Item_func_weight_string>(thd, mem_root, this); }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment