Manual merge
BitKeeper/deleted/.del-not_windows.inc: Delete: mysql-test/include/not_windows.inc mysql-test/r/fulltext_order_by.result: Auto merged mysql-test/r/type_datetime.result: Auto merged mysql-test/t/fulltext_order_by.test: Auto merged mysql-test/t/query_cache.test: Auto merged mysql-test/t/rpl_flush_tables.test: Auto merged sql-common/my_time.c: Auto merged sql/item_timefunc.h: Auto merged sql/sql_union.cc: Auto merged
This commit is contained in:
commit
f34d542c68
@ -1,4 +1,4 @@
|
|||||||
--require r/true.require
|
--require r/true.require
|
||||||
--disable_query_log;
|
disable_query_log;
|
||||||
select convert(@@version_compile_os using latin1) NOT IN ("Win32","Win64","Windows") as "TRUE";
|
select convert(@@version_compile_os using latin1) NOT IN ("Win32","Win64","Windows") as "TRUE";
|
||||||
--enable_query_log;
|
enable_query_log;
|
||||||
|
@ -163,6 +163,10 @@ text id betreff
|
|||||||
(select b.id, b.betreff from t3 b)
|
(select b.id, b.betreff from t3 b)
|
||||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||||
id betreff
|
id betreff
|
||||||
|
(select b.id, b.betreff from t3 b) union
|
||||||
|
(select b.id, b.betreff from t3 b)
|
||||||
|
order by match(betreff) against ('+abc') desc;
|
||||||
|
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||||
select distinct b.id, b.betreff from t3 b
|
select distinct b.id, b.betreff from t3 b
|
||||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||||
id betreff
|
id betreff
|
||||||
|
@ -756,6 +756,13 @@ INSERT INTO t1 VALUES (1);
|
|||||||
SELECT n+1 AS n FROM t1 GROUP BY n;
|
SELECT n+1 AS n FROM t1 GROUP BY n;
|
||||||
n
|
n
|
||||||
2
|
2
|
||||||
|
create table t1 (f1 date);
|
||||||
|
insert into t1 values('2005-06-06');
|
||||||
|
insert into t1 values('2005-06-06');
|
||||||
|
select date(left(f1+0,8)) from t1 group by 1;
|
||||||
|
date(left(f1+0,8))
|
||||||
|
2005-06-06
|
||||||
|
drop table t1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1052 Column 'n' in group statement is ambiguous
|
Warning 1052 Column 'n' in group statement is ambiguous
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@ -153,3 +153,13 @@ dt
|
|||||||
0000-00-00 00:00:00
|
0000-00-00 00:00:00
|
||||||
0000-00-00 00:00:00
|
0000-00-00 00:00:00
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (dt datetime);
|
||||||
|
insert into t1 values ("20010101T010101");
|
||||||
|
insert into t1 values ("2001-01-01T01:01:01");
|
||||||
|
insert into t1 values ("2001-1-1T1:01:01");
|
||||||
|
select * from t1;
|
||||||
|
dt
|
||||||
|
2001-01-01 01:01:01
|
||||||
|
2001-01-01 01:01:01
|
||||||
|
2001-01-01 01:01:01
|
||||||
|
drop table t1;
|
||||||
|
@ -138,6 +138,11 @@ order by
|
|||||||
(select b.id, b.betreff from t3 b)
|
(select b.id, b.betreff from t3 b)
|
||||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||||
|
|
||||||
|
--error 1191
|
||||||
|
(select b.id, b.betreff from t3 b) union
|
||||||
|
(select b.id, b.betreff from t3 b)
|
||||||
|
order by match(betreff) against ('+abc') desc;
|
||||||
|
|
||||||
select distinct b.id, b.betreff from t3 b
|
select distinct b.id, b.betreff from t3 b
|
||||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||||
|
|
||||||
|
@ -576,6 +576,16 @@ INSERT INTO t1 VALUES ('trans1'), ('trans2');
|
|||||||
CREATE TABLE t2 (id varchar(20) NOT NULL, err_comment blob NOT NULL);
|
CREATE TABLE t2 (id varchar(20) NOT NULL, err_comment blob NOT NULL);
|
||||||
INSERT INTO t2 VALUES ('trans1', 'a problem');
|
INSERT INTO t2 VALUES ('trans1', 'a problem');
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #12266 GROUP BY expression on DATE column produces result with
|
||||||
|
# reduced length
|
||||||
|
#
|
||||||
|
create table t1 (f1 date);
|
||||||
|
insert into t1 values('2005-06-06');
|
||||||
|
insert into t1 values('2005-06-06');
|
||||||
|
select date(left(f1+0,8)) from t1 group by 1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
SELECT COUNT(DISTINCT(t1.id)), LEFT(err_comment, 256) AS comment
|
SELECT COUNT(DISTINCT(t1.id)), LEFT(err_comment, 256) AS comment
|
||||||
FROM t1 LEFT JOIN t2 ON t1.id=t2.id GROUP BY comment;
|
FROM t1 LEFT JOIN t2 ON t1.id=t2.id GROUP BY comment;
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
# Embedded server doesn't support external clients
|
# Embedded server doesn't support external clients
|
||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
|
# Windows fails because it disconnects on too-large packets instead of just
|
||||||
|
# swallowing them and returning an error
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check protocol handling
|
# Check protocol handling
|
||||||
|
@ -709,9 +709,9 @@ CREATE TABLE t1 (
|
|||||||
|
|
||||||
INSERT INTO t1 VALUES ('20050326');
|
INSERT INTO t1 VALUES ('20050326');
|
||||||
INSERT INTO t1 VALUES ('20050325');
|
INSERT INTO t1 VALUES ('20050325');
|
||||||
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 0:0:0';
|
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
|
||||||
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050328 0:0:0';
|
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050328 invalid';
|
||||||
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 0:0:0';
|
SELECT COUNT(*) FROM t1 WHERE date BETWEEN '20050326' AND '20050327 invalid';
|
||||||
show status like "Qcache_queries_in_cache";
|
show status like "Qcache_queries_in_cache";
|
||||||
show status like "Qcache_inserts";
|
show status like "Qcache_inserts";
|
||||||
show status like "Qcache_hits";
|
show status like "Qcache_hits";
|
||||||
|
@ -3,7 +3,10 @@
|
|||||||
# RENAME TABLE work with MERGE tables on the slave.
|
# RENAME TABLE work with MERGE tables on the slave.
|
||||||
# Test of FLUSH NO_WRITE_TO_BINLOG by the way.
|
# Test of FLUSH NO_WRITE_TO_BINLOG by the way.
|
||||||
#
|
#
|
||||||
source include/master-slave.inc;
|
--source include/master-slave.inc
|
||||||
|
# Skipped on Windows because it can't handle a table underlying an open
|
||||||
|
# merge table getting renamed.
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
insert into t1 values (10);
|
insert into t1 values (10);
|
||||||
|
@ -102,4 +102,14 @@ insert into t1 values ("00-00-00"), ("00-00-00 00:00:00");
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #7308: ISO-8601 date format not handled correctly
|
||||||
|
#
|
||||||
|
create table t1 (dt datetime);
|
||||||
|
insert into t1 values ("20010101T010101");
|
||||||
|
insert into t1 values ("2001-01-01T01:01:01");
|
||||||
|
insert into t1 values ("2001-1-1T1:01:01");
|
||||||
|
select * from t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
@ -207,7 +207,7 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
|
|||||||
{
|
{
|
||||||
/* Found date in internal format (only numbers like YYYYMMDD) */
|
/* Found date in internal format (only numbers like YYYYMMDD) */
|
||||||
year_length= (digits == 4 || digits == 8 || digits >= 14) ? 4 : 2;
|
year_length= (digits == 4 || digits == 8 || digits >= 14) ? 4 : 2;
|
||||||
field_length=year_length-1;
|
field_length= year_length;
|
||||||
is_internal_format= 1;
|
is_internal_format= 1;
|
||||||
format_position= internal_format_positions;
|
format_position= internal_format_positions;
|
||||||
}
|
}
|
||||||
@ -237,6 +237,8 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
|
|||||||
start_loop= 5; /* Start with first date part */
|
start_loop= 5; /* Start with first date part */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
field_length= format_position[0] == 0 ? 4 : 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -261,7 +263,7 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
|
|||||||
const char *start= str;
|
const char *start= str;
|
||||||
ulong tmp_value= (uint) (uchar) (*str++ - '0');
|
ulong tmp_value= (uint) (uchar) (*str++ - '0');
|
||||||
while (str != end && my_isdigit(&my_charset_latin1,str[0]) &&
|
while (str != end && my_isdigit(&my_charset_latin1,str[0]) &&
|
||||||
(!is_internal_format || field_length--))
|
--field_length)
|
||||||
{
|
{
|
||||||
tmp_value=tmp_value*10 + (ulong) (uchar) (*str - '0');
|
tmp_value=tmp_value*10 + (ulong) (uchar) (*str - '0');
|
||||||
str++;
|
str++;
|
||||||
@ -275,8 +277,8 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
|
|||||||
date[i]=tmp_value;
|
date[i]=tmp_value;
|
||||||
not_zero_date|= tmp_value;
|
not_zero_date|= tmp_value;
|
||||||
|
|
||||||
/* Length-1 of next field */
|
/* Length of next field */
|
||||||
field_length= format_position[i+1] == 0 ? 3 : 1;
|
field_length= format_position[i+1] == 0 ? 4 : 2;
|
||||||
|
|
||||||
if ((last_field_pos= str) == end)
|
if ((last_field_pos= str) == end)
|
||||||
{
|
{
|
||||||
@ -294,7 +296,7 @@ str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
|
|||||||
if (*str == '.') /* Followed by part seconds */
|
if (*str == '.') /* Followed by part seconds */
|
||||||
{
|
{
|
||||||
str++;
|
str++;
|
||||||
field_length= 5; /* 5 digits after first (=6) */
|
field_length= 6; /* 6 digits */
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -714,6 +714,12 @@ public:
|
|||||||
{
|
{
|
||||||
return (new Field_date(maybe_null, name, t_arg, &my_charset_bin));
|
return (new Field_date(maybe_null, name, t_arg, &my_charset_bin));
|
||||||
}
|
}
|
||||||
|
void fix_length_and_dec()
|
||||||
|
{
|
||||||
|
collation.set(&my_charset_bin);
|
||||||
|
max_length= 10;
|
||||||
|
maybe_null= 1;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -119,8 +119,6 @@ void
|
|||||||
st_select_lex_unit::init_prepare_fake_select_lex(THD *thd)
|
st_select_lex_unit::init_prepare_fake_select_lex(THD *thd)
|
||||||
{
|
{
|
||||||
thd->lex->current_select= fake_select_lex;
|
thd->lex->current_select= fake_select_lex;
|
||||||
fake_select_lex->ftfunc_list_alloc.empty();
|
|
||||||
fake_select_lex->ftfunc_list= &fake_select_lex->ftfunc_list_alloc;
|
|
||||||
fake_select_lex->table_list.link_in_list((byte *)&result_table_list,
|
fake_select_lex->table_list.link_in_list((byte *)&result_table_list,
|
||||||
(byte **)
|
(byte **)
|
||||||
&result_table_list.next_local);
|
&result_table_list.next_local);
|
||||||
@ -301,7 +299,8 @@ bool st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
|||||||
/*
|
/*
|
||||||
Force the temporary table to be a MyISAM table if we're going to use
|
Force the temporary table to be a MyISAM table if we're going to use
|
||||||
fullext functions (MATCH ... AGAINST .. IN BOOLEAN MODE) when reading
|
fullext functions (MATCH ... AGAINST .. IN BOOLEAN MODE) when reading
|
||||||
from it.
|
from it (this should be removed in 5.2 when fulltext search is moved
|
||||||
|
out of MyISAM).
|
||||||
*/
|
*/
|
||||||
if (global_parameters->ftfunc_list->elements)
|
if (global_parameters->ftfunc_list->elements)
|
||||||
create_options= create_options | TMP_TABLE_FORCE_MYISAM;
|
create_options= create_options | TMP_TABLE_FORCE_MYISAM;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user