Loading include/my_sys.h +2 −0 Original line number Diff line number Diff line Loading @@ -879,6 +879,8 @@ extern CHARSET_INFO *get_charset(uint cs_number, myf flags); extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags); extern CHARSET_INFO *get_charset_by_csname(const char *cs_name, uint cs_flags, myf my_flags); extern CHARSET_INFO *get_compatible_charset_with_ctype(CHARSET_INFO *original_cs); extern void free_charsets(void); extern char *get_charsets_dir(char *buf); extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2); Loading mysql-test/include/gis_keys.inc +8 −8 Original line number Diff line number Diff line Loading @@ -13,20 +13,20 @@ CREATE TABLE t2 (p POINT, INDEX(p)); INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)')); INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)')); -- no index, returns 1 as expected # no index, returns 1 as expected SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)'); -- with index, returns 1 as expected -- EXPLAIN shows that the index is not used though -- due to the "most rows covered anyway, so a scan is more effective" rule # with index, returns 1 as expected # EXPLAIN shows that the index is not used though # due to the "most rows covered anyway, so a scan is more effective" rule EXPLAIN SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); -- adding another row to the table so that -- the "most rows covered" rule doesn't kick in anymore -- now EXPLAIN shows the index used on the table # adding another row to the table so that # the "most rows covered" rule doesn't kick in anymore # now EXPLAIN shows the index used on the table # and we're getting the wrong result again INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)')); INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)')); EXPLAIN Loading mysql-test/r/csv.result +42 −0 Original line number Diff line number Diff line Loading @@ -5029,4 +5029,46 @@ F7 FE LATIN SMALL LETTER THORN FF LATIN SMALL LETTER Y WITH DIAERESIS drop table t1; create table t1(a datetime) engine=csv; insert into t1 values(); select * from t1; a 0000-00-00 00:00:00 drop table t1; create table t1(a set('foo','bar')) engine=csv; insert into t1 values(); select * from t1; a drop table t1; create table t1(a varchar(32)) engine=csv; insert into t1 values(); select * from t1; a drop table t1; create table t1(a int) engine=csv; insert into t1 values(); select * from t1; a 0 drop table t1; create table t1(a blob) engine=csv; insert into t1 values(); select * from t1; a drop table t1; create table t1(a bit(1)) engine=csv; insert into t1 values(); select BIN(a) from t1; BIN(a) 0 drop table t1; create table t1(a enum('foo','bar') default 'foo') engine=csv; insert into t1 values(); select * from t1; a foo drop table t1; End of 5.0 tests mysql-test/r/ctype_ucs.result +6 −0 Original line number Diff line number Diff line Loading @@ -811,6 +811,12 @@ quote(name) ???????? ???????????????? drop table bug20536; CREATE TABLE t1(a TEXT CHARSET ucs2 COLLATE ucs2_unicode_ci); INSERT INTO t1 VALUES('abcd'); SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abcd' IN BOOLEAN MODE); a abcd DROP TABLE t1; End of 4.1 tests CREATE TABLE t1 (a varchar(64) character set ucs2, b decimal(10,3)); INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0); Loading mysql-test/t/csv.test +33 −0 Original line number Diff line number Diff line Loading @@ -1427,4 +1427,37 @@ insert into t1 values (0xFF,'LATIN SMALL LETTER Y WITH DIAERESIS'); select hex(c), c, name from t1 order by 1; drop table t1; # # Bug #31473: does not work with NULL value in datetime field # This bug is a 5.1 but is here to prevent 5.0 regression. # create table t1(a datetime) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a set('foo','bar')) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a varchar(32)) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a int) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a blob) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a bit(1)) engine=csv; insert into t1 values(); select BIN(a) from t1; drop table t1; create table t1(a enum('foo','bar') default 'foo') engine=csv; insert into t1 values(); select * from t1; drop table t1; --echo End of 5.0 tests Loading
include/my_sys.h +2 −0 Original line number Diff line number Diff line Loading @@ -879,6 +879,8 @@ extern CHARSET_INFO *get_charset(uint cs_number, myf flags); extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags); extern CHARSET_INFO *get_charset_by_csname(const char *cs_name, uint cs_flags, myf my_flags); extern CHARSET_INFO *get_compatible_charset_with_ctype(CHARSET_INFO *original_cs); extern void free_charsets(void); extern char *get_charsets_dir(char *buf); extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2); Loading
mysql-test/include/gis_keys.inc +8 −8 Original line number Diff line number Diff line Loading @@ -13,20 +13,20 @@ CREATE TABLE t2 (p POINT, INDEX(p)); INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)')); INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)')); -- no index, returns 1 as expected # no index, returns 1 as expected SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)'); -- with index, returns 1 as expected -- EXPLAIN shows that the index is not used though -- due to the "most rows covered anyway, so a scan is more effective" rule # with index, returns 1 as expected # EXPLAIN shows that the index is not used though # due to the "most rows covered anyway, so a scan is more effective" rule EXPLAIN SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); -- adding another row to the table so that -- the "most rows covered" rule doesn't kick in anymore -- now EXPLAIN shows the index used on the table # adding another row to the table so that # the "most rows covered" rule doesn't kick in anymore # now EXPLAIN shows the index used on the table # and we're getting the wrong result again INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)')); INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)')); EXPLAIN Loading
mysql-test/r/csv.result +42 −0 Original line number Diff line number Diff line Loading @@ -5029,4 +5029,46 @@ F7 FE LATIN SMALL LETTER THORN FF LATIN SMALL LETTER Y WITH DIAERESIS drop table t1; create table t1(a datetime) engine=csv; insert into t1 values(); select * from t1; a 0000-00-00 00:00:00 drop table t1; create table t1(a set('foo','bar')) engine=csv; insert into t1 values(); select * from t1; a drop table t1; create table t1(a varchar(32)) engine=csv; insert into t1 values(); select * from t1; a drop table t1; create table t1(a int) engine=csv; insert into t1 values(); select * from t1; a 0 drop table t1; create table t1(a blob) engine=csv; insert into t1 values(); select * from t1; a drop table t1; create table t1(a bit(1)) engine=csv; insert into t1 values(); select BIN(a) from t1; BIN(a) 0 drop table t1; create table t1(a enum('foo','bar') default 'foo') engine=csv; insert into t1 values(); select * from t1; a foo drop table t1; End of 5.0 tests
mysql-test/r/ctype_ucs.result +6 −0 Original line number Diff line number Diff line Loading @@ -811,6 +811,12 @@ quote(name) ???????? ???????????????? drop table bug20536; CREATE TABLE t1(a TEXT CHARSET ucs2 COLLATE ucs2_unicode_ci); INSERT INTO t1 VALUES('abcd'); SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abcd' IN BOOLEAN MODE); a abcd DROP TABLE t1; End of 4.1 tests CREATE TABLE t1 (a varchar(64) character set ucs2, b decimal(10,3)); INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0); Loading
mysql-test/t/csv.test +33 −0 Original line number Diff line number Diff line Loading @@ -1427,4 +1427,37 @@ insert into t1 values (0xFF,'LATIN SMALL LETTER Y WITH DIAERESIS'); select hex(c), c, name from t1 order by 1; drop table t1; # # Bug #31473: does not work with NULL value in datetime field # This bug is a 5.1 but is here to prevent 5.0 regression. # create table t1(a datetime) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a set('foo','bar')) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a varchar(32)) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a int) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a blob) engine=csv; insert into t1 values(); select * from t1; drop table t1; create table t1(a bit(1)) engine=csv; insert into t1 values(); select BIN(a) from t1; drop table t1; create table t1(a enum('foo','bar') default 'foo') engine=csv; insert into t1 values(); select * from t1; drop table t1; --echo End of 5.0 tests