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:
unknown 2005-08-07 21:30:46 +00:00
commit f34d542c68
13 changed files with 73 additions and 14 deletions

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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";

View File

@ -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);

View File

@ -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

View File

@ -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;

View File

@ -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;
}
}; };

View File

@ -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;