diff options
-rw-r--r-- | BitKeeper/etc/logging_ok | 1 | ||||
-rw-r--r-- | myisam/myisamchk.c | 4 | ||||
-rw-r--r-- | mysql-test/t/func_str.test | 14 | ||||
-rw-r--r-- | sql/item_func.h | 3 | ||||
-rw-r--r-- | sql/item_strfunc.h | 4 |
5 files changed, 23 insertions, 3 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 96cdd930e83..22808697471 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -25,6 +25,7 @@ bar@bar.intranet.mysql.r18.ru bar@bar.mysql.r18.ru bar@bar.udmsearch.izhnet.ru bar@deer.(none) +bar@eagle.intranet.mysql.r18.ru bar@gw.udmsearch.izhnet.ru bar@mysql.com bar@noter.intranet.mysql.r18.ru diff --git a/myisam/myisamchk.c b/myisam/myisamchk.c index 09e2914bbaa..519e123e9da 100644 --- a/myisam/myisamchk.c +++ b/myisam/myisamchk.c @@ -427,8 +427,8 @@ static void usage(void) can't fix the data file.\n\ --character-sets-dir=...\n\ Directory where character sets are.\n\ - --set-character-set=name\n\ - Change the character set used by the index.\n\ + --set-collation=name\n\ + Change the collation used by the index.\n\ -q, --quick Faster repair by not modifying the data file.\n\ One can give a second '-q' to force myisamchk to\n\ modify the original datafile in case of duplicate keys.\n\ diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 2041c776423..8bf36431587 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -377,6 +377,20 @@ insert into t1 values (null); select charset(a), collation(a), coercibility(a) from t1; drop table t1; select charset(null), collation(null), coercibility(null); +# +# Make sure OUTER JOIN is not replaced with a regular joun +# +CREATE TABLE t1 (a int, b int); +CREATE TABLE t2 (a int, b int); +INSERT INTO t1 VALUES (1,1),(2,2); +INSERT INTO t2 VALUES (2,2),(3,3); +select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b) +where collation(t2.a) = _utf8'binary' order by t1.a,t2.a; +select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b) +where charset(t2.a) = _utf8'binary' order by t1.a,t2.a; +select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b) +where coercibility(t2.a) = 2 order by t1.a,t2.a; +DROP TABLE t1, t2; # # test for SUBSTR diff --git a/sql/item_func.h b/sql/item_func.h index 93633e75619..9bf21fa1aa3 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -704,7 +704,8 @@ public: Item_func_coercibility(Item *a) :Item_int_func(a) {} longlong val_int(); const char *func_name() const { return "coercibility"; } - void fix_length_and_dec() { max_length=10; } + void fix_length_and_dec() { max_length=10; maybe_null= 0; } + table_map not_null_tables() const { return 0; } }; class Item_func_locate :public Item_int_func diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h index ea8a78c528a..eec81f953fb 100644 --- a/sql/item_strfunc.h +++ b/sql/item_strfunc.h @@ -653,7 +653,9 @@ public: { collation.set(system_charset_info); max_length= 64 * collation.collation->mbmaxlen; // should be enough + maybe_null= 0; }; + table_map not_null_tables() const { return 0; } }; class Item_func_collation :public Item_str_func @@ -666,7 +668,9 @@ public: { collation.set(system_charset_info); max_length= 64 * collation.collation->mbmaxlen; // should be enough + maybe_null= 0; }; + table_map not_null_tables() const { return 0; } }; class Item_func_crc32 :public Item_int_func |