Merge mysql.com:/home/mydev/mysql-5.1--main
into mysql.com:/home/mydev/mysql-5.1-amerge
This commit is contained in:
commit
a94ad6a2e3
@ -83,13 +83,13 @@ link_sources:
|
|||||||
for f in $(sql_src) ; do \
|
for f in $(sql_src) ; do \
|
||||||
rm -f $$f; \
|
rm -f $$f; \
|
||||||
@LN_CP_F@ $(top_srcdir)/sql/$$f $$f; \
|
@LN_CP_F@ $(top_srcdir)/sql/$$f $$f; \
|
||||||
done;
|
done; \
|
||||||
for f in $(strings_src) ; do \
|
for f in $(strings_src) ; do \
|
||||||
rm -f $(srcdir)/$$f; \
|
rm -f $(srcdir)/$$f; \
|
||||||
@LN_CP_F@ $(top_srcdir)/strings/$$f $$f; \
|
@LN_CP_F@ $(top_srcdir)/strings/$$f $$f; \
|
||||||
done;
|
done; \
|
||||||
-rm -f $(srcdir)/my_user.c;
|
rm -f $(srcdir)/my_user.c; \
|
||||||
@LN_CP_F@ $(top_srcdir)/sql-common/my_user.c my_user.c
|
@LN_CP_F@ $(top_srcdir)/sql-common/my_user.c my_user.c;
|
||||||
|
|
||||||
|
|
||||||
# Don't update the files from bitkeeper
|
# Don't update the files from bitkeeper
|
||||||
|
0
extra/yassl/include/openssl/generate_prefix_files.pl
Normal file → Executable file
0
extra/yassl/include/openssl/generate_prefix_files.pl
Normal file → Executable file
@ -670,3 +670,30 @@ select * from t1 where a like 'n%';
|
|||||||
a
|
a
|
||||||
na
|
na
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (s1 varchar(15)) partition by key (s1);
|
||||||
|
select * from t1 where s1 = 0 or s1 is null;
|
||||||
|
s1
|
||||||
|
insert into t1 values ('aa'),('bb'),('0');
|
||||||
|
explain partitions select * from t1 where s1 = 0 or s1 is null;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 3 Using where
|
||||||
|
drop table t1;
|
||||||
|
create table t2 (a int, b int)
|
||||||
|
partition by LIST(a)
|
||||||
|
subpartition by HASH(b) subpartitions 40
|
||||||
|
( partition p_0_long_partition_name values in(1),
|
||||||
|
partition p_1_long_partition_name values in(2));
|
||||||
|
insert into t2 values (1,1),(2,2);
|
||||||
|
explain partitions select * from t2;
|
||||||
|
id 1
|
||||||
|
select_type SIMPLE
|
||||||
|
table t2
|
||||||
|
partitions p_0_long_partition_name_p_0_long_partition_namesp0,p_0_long_partition_name_p_0_long_partition_namesp1,p_0_long_partition_name_p_0_long_partition_namesp2,p_0_long_partition_name_p_0_long_partition_namesp3,p_0_long_partition_name_p_0_long_partition_namesp4,p_0_long_partition_name_p_0_long_partition_namesp5,p_0_long_partition_name_p_0_long_partition_namesp6,p_0_long_partition_name_p_0_long_partition_namesp7,p_0_long_partition_name_p_0_long_partition_namesp8,p_0_long_partition_name_p_0_long_partition_namesp9,p_0_long_partition_name_p_0_long_partition_namesp10,p_0_long_partition_name_p_0_long_partition_namesp11,p_0_long_partition_name_p_0_long_partition_namesp12,p_0_long_partition_name_p_0_long_partition_namesp13,p_0_long_partition_name_p_0_long_partition_namesp14,p_0_long_partition_name_p_0_long_partition_namesp15,p_0_long_partition_name_p_0_long_partition_namesp16,p_0_long_partition_name_p_0_long_partition_namesp17,p_0_long_partition_name_p_0_long_partition_namesp18,p_0_long_partition_name_p_0_long_partition_namesp19,p_0_long_partition_name_p_0_long_partition_namesp20,p_0_long_partition_name_p_0_long_partition_namesp21,p_0_long_partition_name_p_0_long_partition_namesp22,p_0_long_partition_name_p_0_long_partition_namesp23,p_0_long_partition_name_p_0_long_partition_namesp24,p_0_long_partition_name_p_0_long_partition_namesp25,p_0_long_partition_name_p_0_long_partition_namesp26,p_0_long_partition_name_p_0_long_partition_namesp27,p_0_long_partition_name_p_0_long_partition_namesp28,p_0_long_partition_name_p_0_long_partition_namesp29,p_0_long_partition_name_p_0_long_partition_namesp30,p_0_long_partition_name_p_0_long_partition_namesp31,p_0_long_partition_name_p_0_long_partition_namesp32,p_0_long_partition_name_p_0_long_partition_namesp33,p_0_long_partition_name_p_0_long_partition_namesp34,p_0_long_partition_name_p_0_long_partition_namesp35,p_0_long_partition_name_p_0_long_partition_namesp36,p_0_long_partition_name_p_0_long_partition_namesp37,p_0_long_partition_name_p_0_long_partition_namesp38,p_0_long_partition_name_p_0_long_partition_namesp39,p_1_long_partition_name_p_1_long_partition_namesp0,p_1_long_partition_name_p_1_long_partition_namesp1,p_1_long_partition_name_p_1_long_partition_namesp2,p_1_long_partition_name_p_1_long_partition_namesp3,p_1_long_partition_name_p_1_long_partition_namesp4,p_1_long_partition_name_p_1_long_partition_namesp5,p_1_long_partition_name_p_1_long_partition_namesp6,p_1_long_partition_name_p_1_long_partition_namesp7,p_1_long_partition_name_p_1_long_partition_namesp8,p_1_long_partition_name_p_1_long_partition_namesp9,p_1_long_partition_name_p_1_long_partition_namesp10,p_1_long_partition_name_p_1_long_partition_namesp11,p_1_long_partition_name_p_1_long_partition_namesp12,p_1_long_partition_name_p_1_long_partition_namesp13,p_1_long_partition_name_p_1_long_partition_namesp14,p_1_long_partition_name_p_1_long_partition_namesp15,p_1_long_partition_name_p_1_long_partition_namesp16,p_1_long_partition_name_p_1_long_partition_namesp17,p_1_long_partition_name_p_1_long_partition_namesp18,p_1_long_partition_name_p_1_long_partition_namesp19,p_1_long_partition_name_p_1_long_partition_namesp20,p_1_long_partition_name_p_1_long_partition_namesp21,p_1_long_partition_name_p_1_long_partition_namesp22,p_1_long_partition_name_p_1_long_partition_namesp23,p_1_long_partition_name_p_1_long_partition_namesp24,p_1_long_partition_name_p_1_long_partition_namesp25,p_1_long_partition_name_p_1_long_partition_namesp26,p_1_long_partition_name_p_1_long_partition_namesp27,p_1_long_partition_name_p_1_long_partition_namesp28,p_1_long_partition_name_p_1_long_partition_namesp29,p_1_long_partition_name_p_1_long_partition_namesp30,p_1_long_partition_name_p_1_long_partition_namesp31,p_1_long_partition_name_p_1_long_partition_namesp32,p_1_long_partition_name_p_1_long_partition_namesp33,p_1_long_partition_name_p_1_long_partition_namesp34,p_1_long_partition_name_p_1_long_partition_namesp35,p_1_long_partition_name_p_1_long_partition_namesp36,p_1_long_partition_name_p_1_long_partition_namesp37,p_1_long_partition_name_p_1_long_partition_namesp38,p_1_long_partition_name_p_1_long_partition_namesp39
|
||||||
|
type ALL
|
||||||
|
possible_keys NULL
|
||||||
|
key NULL
|
||||||
|
key_len NULL
|
||||||
|
ref NULL
|
||||||
|
rows 2
|
||||||
|
Extra
|
||||||
|
drop table t2;
|
||||||
|
@ -2716,6 +2716,16 @@ select * from t1 where f1 in (select f3 from t2 where (f3,f4)= (select f3,f4 fro
|
|||||||
f1 f2
|
f1 f2
|
||||||
1 1
|
1 1
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
CREATE TABLE t1 (a int, INDEX idx(a));
|
||||||
|
INSERT INTO t1 VALUES (2), (3), (1);
|
||||||
|
EXPLAIN SELECT * FROM t1 IGNORE INDEX (idx);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||||
|
EXPLAIN SELECT * FROM t1 IGNORE INDEX (a);
|
||||||
|
ERROR 42000: Key 'a' doesn't exist in table 't1'
|
||||||
|
EXPLAIN SELECT * FROM t1 FORCE INDEX (a);
|
||||||
|
ERROR 42000: Key 'a' doesn't exist in table 't1'
|
||||||
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 ( city char(30) );
|
CREATE TABLE t1 ( city char(30) );
|
||||||
INSERT INTO t1 VALUES ('London');
|
INSERT INTO t1 VALUES ('London');
|
||||||
INSERT INTO t1 VALUES ('Paris');
|
INSERT INTO t1 VALUES ('Paris');
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#events_scheduling : BUG#19170 2006-04-26 andrey Test case of 19170 fails on some platforms. Has to be checked.
|
#events_scheduling : BUG#19170 2006-04-26 andrey Test case of 19170 fails on some platforms. Has to be checked.
|
||||||
im_instance_conf : Bug#20294 2006-06-06 monty Instance manager test im_instance_conf fails randomly
|
im_instance_conf : Bug#20294 2006-06-06 monty Instance manager test im_instance_conf fails randomly
|
||||||
im_options : Bug#20294 2006-06-06 monty Instance manager test im_instance_conf fails randomly
|
im_options : Bug#20294 2006-06-06 monty Instance manager test im_instance_conf fails randomly
|
||||||
|
im_life_cycle : Bug#20368 2006-06-10 alik im_life_cycle test fails
|
||||||
ndb_autodiscover : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
|
ndb_autodiscover : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
|
||||||
ndb_autodiscover2 : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
|
ndb_autodiscover2 : BUG#18952 2006-02-16 jmiller Needs to be fixed w.r.t binlog
|
||||||
#ndb_binlog_discover : BUG#19395 2006-04-28 tomas/knielsen mysqld does not always detect cluster shutdown
|
#ndb_binlog_discover : BUG#19395 2006-04-28 tomas/knielsen mysqld does not always detect cluster shutdown
|
||||||
|
@ -556,7 +556,7 @@ drop table t1;
|
|||||||
# being fixed.
|
# being fixed.
|
||||||
|
|
||||||
#
|
#
|
||||||
#BUG 17946 Like searches fail with partitioning
|
# BUG#17946 Like searches fail with partitioning
|
||||||
#
|
#
|
||||||
create table t1 (a char(32) primary key)
|
create table t1 (a char(32) primary key)
|
||||||
partition by key()
|
partition by key()
|
||||||
@ -566,3 +566,27 @@ select * from t1;
|
|||||||
select * from t1 where a like 'n%';
|
select * from t1 where a like 'n%';
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
|
# BUG#19055 Crashes for varchar_col=NUMBER or varchar_col IS NULL
|
||||||
|
create table t1 (s1 varchar(15)) partition by key (s1);
|
||||||
|
select * from t1 where s1 = 0 or s1 is null;
|
||||||
|
insert into t1 values ('aa'),('bb'),('0');
|
||||||
|
explain partitions select * from t1 where s1 = 0 or s1 is null;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#19684: EXPLAIN PARTITIONS produces garbage in 'partitions' column when
|
||||||
|
# the length of string to be displayed exceeds some limit.
|
||||||
|
create table t2 (a int, b int)
|
||||||
|
partition by LIST(a)
|
||||||
|
subpartition by HASH(b) subpartitions 40
|
||||||
|
( partition p_0_long_partition_name values in(1),
|
||||||
|
partition p_1_long_partition_name values in(2));
|
||||||
|
|
||||||
|
insert into t2 values (1,1),(2,2);
|
||||||
|
|
||||||
|
--vertical_results
|
||||||
|
explain partitions select * from t2;
|
||||||
|
--horizontal_results
|
||||||
|
drop table t2;
|
||||||
|
|
||||||
|
@ -1296,9 +1296,9 @@ explain select fld3 from t2 use index (fld1,fld3) where fld3 = 'honeysuckle';
|
|||||||
# The next should give an error
|
# The next should give an error
|
||||||
#
|
#
|
||||||
|
|
||||||
--error 1176
|
-- error 1176
|
||||||
explain select fld3 from t2 ignore index (fld3,not_used);
|
explain select fld3 from t2 ignore index (fld3,not_used);
|
||||||
--error 1176
|
-- error 1176
|
||||||
explain select fld3 from t2 use index (not_used);
|
explain select fld3 from t2 use index (not_used);
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -2264,6 +2264,21 @@ insert into t2 values(1,1);
|
|||||||
select * from t1 where f1 in (select f3 from t2 where (f3,f4)= (select f3,f4 from t2));
|
select * from t1 where f1 in (select f3 from t2 where (f3,f4)= (select f3,f4 from t2));
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #17873: confusing error message when IGNORE INDEX refers a column name
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a int, INDEX idx(a));
|
||||||
|
INSERT INTO t1 VALUES (2), (3), (1);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 IGNORE INDEX (idx);
|
||||||
|
--error 1176
|
||||||
|
EXPLAIN SELECT * FROM t1 IGNORE INDEX (a);
|
||||||
|
--error 1176
|
||||||
|
EXPLAIN SELECT * FROM t1 FORCE INDEX (a);
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -516,7 +516,7 @@ drop table t1;
|
|||||||
#
|
#
|
||||||
create table t1 (a int, b int);
|
create table t1 (a int, b int);
|
||||||
create view v1 as select a, sum(b) from t1 group by a;
|
create view v1 as select a, sum(b) from t1 group by a;
|
||||||
--error 1176
|
-- error 1176
|
||||||
select b from v1 use index (some_index) where b=1;
|
select b from v1 use index (some_index) where b=1;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -45,9 +45,11 @@ fi
|
|||||||
mkdir -p $BASE/lib
|
mkdir -p $BASE/lib
|
||||||
|
|
||||||
for i in \
|
for i in \
|
||||||
libmysql/.libs/libmysqlclient.s{l,o}* \
|
libmysql/.libs/libmysqlclient.so* \
|
||||||
|
libmysql/.libs/libmysqlclient.sl* \
|
||||||
libmysql/.libs/libmysqlclient*.dylib \
|
libmysql/.libs/libmysqlclient*.dylib \
|
||||||
libmysql_r/.libs/libmysqlclient_r.s{l,o}* \
|
libmysql_r/.libs/libmysqlclient_r.so* \
|
||||||
|
libmysql_r/.libs/libmysqlclient_r.sl* \
|
||||||
libmysql_r/.libs/libmysqlclient_r*.dylib
|
libmysql_r/.libs/libmysqlclient_r*.dylib
|
||||||
do
|
do
|
||||||
if [ -f $i ]
|
if [ -f $i ]
|
||||||
|
@ -343,6 +343,7 @@ mv $BASE/sql/sql_yacc.cpp-new $BASE/sql/sql_yacc.cpp
|
|||||||
find $BASE \( -name "*.cnf" -o -name "*.ini" \
|
find $BASE \( -name "*.cnf" -o -name "*.ini" \
|
||||||
-o -name COPYING -o -name ChangeLog -o -name EXCEPTIONS-CLIENT \
|
-o -name COPYING -o -name ChangeLog -o -name EXCEPTIONS-CLIENT \
|
||||||
-o -name "INSTALL*" -o -name LICENSE -o -name "README*" \
|
-o -name "INSTALL*" -o -name LICENSE -o -name "README*" \
|
||||||
|
-o -name "*.dsp" -o -name "*.dsw" \
|
||||||
-o -name "*.vcproj" -o -name "*.sln" \) -type f -print \
|
-o -name "*.vcproj" -o -name "*.sln" \) -type f -print \
|
||||||
| while read v
|
| while read v
|
||||||
do
|
do
|
||||||
|
@ -374,6 +374,12 @@ public:
|
|||||||
keys_map.clear_all();
|
keys_map.clear_all();
|
||||||
bzero((char*) keys,sizeof(keys));
|
bzero((char*) keys,sizeof(keys));
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
Note: there may exist SEL_TREE objects with sel_tree->type=KEY and
|
||||||
|
keys[i]=0 for all i. (SergeyP: it is not clear whether there is any
|
||||||
|
merit in range analyzer functions (e.g. get_mm_parts) returning a
|
||||||
|
pointer to such SEL_TREE instead of NULL)
|
||||||
|
*/
|
||||||
SEL_ARG *keys[MAX_KEY];
|
SEL_ARG *keys[MAX_KEY];
|
||||||
key_map keys_map; /* bitmask of non-NULL elements in keys */
|
key_map keys_map; /* bitmask of non-NULL elements in keys */
|
||||||
|
|
||||||
@ -2622,7 +2628,8 @@ int find_used_partitions_imerge(PART_PRUNE_PARAM *ppar, SEL_IMERGE *imerge)
|
|||||||
ppar->cur_part_fields= 0;
|
ppar->cur_part_fields= 0;
|
||||||
ppar->cur_subpart_fields= 0;
|
ppar->cur_subpart_fields= 0;
|
||||||
init_all_partitions_iterator(ppar->part_info, &ppar->part_iter);
|
init_all_partitions_iterator(ppar->part_info, &ppar->part_iter);
|
||||||
if (-1 == (res |= find_used_partitions(ppar, (*ptree)->keys[0])))
|
SEL_ARG *key_tree= (*ptree)->keys[0];
|
||||||
|
if (!key_tree || (-1 == (res |= find_used_partitions(ppar, key_tree))))
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
|
@ -5343,6 +5343,7 @@ bool setup_tables(THD *thd, Name_resolution_context *context,
|
|||||||
table_list= table_list->next_leaf, tablenr++)
|
table_list= table_list->next_leaf, tablenr++)
|
||||||
{
|
{
|
||||||
TABLE *table= table_list->table;
|
TABLE *table= table_list->table;
|
||||||
|
table->pos_in_table_list= table_list;
|
||||||
if (first_select_table &&
|
if (first_select_table &&
|
||||||
table_list->top_table() == first_select_table)
|
table_list->top_table() == first_select_table)
|
||||||
{
|
{
|
||||||
@ -5488,7 +5489,7 @@ bool get_key_map_from_key_list(key_map *map, TABLE *table,
|
|||||||
0)
|
0)
|
||||||
{
|
{
|
||||||
my_error(ER_KEY_DOES_NOT_EXITS, MYF(0), name->c_ptr(),
|
my_error(ER_KEY_DOES_NOT_EXITS, MYF(0), name->c_ptr(),
|
||||||
table->alias);
|
table->pos_in_table_list->alias);
|
||||||
map->set_all();
|
map->set_all();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -2020,7 +2020,8 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
|
|||||||
uptime,
|
uptime,
|
||||||
(int) thread_count, (ulong) thd->query_id,
|
(int) thread_count, (ulong) thd->query_id,
|
||||||
current_global_status_var.long_query_count,
|
current_global_status_var.long_query_count,
|
||||||
current_global_status_var.opened_tables, refresh_version, cached_open_tables(),
|
current_global_status_var.opened_tables, refresh_version,
|
||||||
|
cached_open_tables(),
|
||||||
(uptime ? (ulonglong2double(thd->query_id) / (double) uptime) :
|
(uptime ? (ulonglong2double(thd->query_id) / (double) uptime) :
|
||||||
(double) 0));
|
(double) 0));
|
||||||
#ifdef SAFEMALLOC
|
#ifdef SAFEMALLOC
|
||||||
|
@ -13878,6 +13878,10 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
|
|||||||
thd->server_status&= ~(SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED);
|
thd->server_status&= ~(SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED);
|
||||||
join->unit->offset_limit_cnt= 0;
|
join->unit->offset_limit_cnt= 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
NOTE: the number/types of items pushed into item_list must be in sync with
|
||||||
|
EXPLAIN column types as they're "defined" in THD::send_explain_fields()
|
||||||
|
*/
|
||||||
if (message)
|
if (message)
|
||||||
{
|
{
|
||||||
item_list.push_back(new Item_int((int32)
|
item_list.push_back(new Item_int((int32)
|
||||||
@ -14017,11 +14021,9 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
|
|||||||
if (!table->derived_select_number &&
|
if (!table->derived_select_number &&
|
||||||
(part_info= table->part_info))
|
(part_info= table->part_info))
|
||||||
{
|
{
|
||||||
char parts_buff[128];
|
Item_string *item_str= new Item_string(cs);
|
||||||
String parts_str(parts_buff,sizeof(parts_buff),cs);
|
make_used_partitions_str(part_info, &item_str->str_value);
|
||||||
make_used_partitions_str(part_info, &parts_str);
|
item_list.push_back(item_str);
|
||||||
item_list.push_back(new Item_string(parts_str.ptr(),
|
|
||||||
parts_str.length(), cs));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
item_list.push_back(item_null);
|
item_list.push_back(item_null);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user