summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.bzrignore1
-rw-r--r--include/m_string.h1
-rw-r--r--libmysql/Makefile.shared2
-rw-r--r--libmysqld/Makefile.am2
-rw-r--r--mysql-test/r/innodb.result14
-rw-r--r--mysql-test/r/select.result2
-rw-r--r--mysql-test/t/select.test6
-rw-r--r--sql/sql_do.cc2
-rw-r--r--sql/sql_handler.cc2
-rw-r--r--sql/sql_lex.h3
10 files changed, 22 insertions, 13 deletions
diff --git a/.bzrignore b/.bzrignore
index b741024bb95..299d079ef93 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -446,3 +446,4 @@ vio/test-sslclient
vio/test-sslserver
vio/viotest-ssl
sql-bench/test-transactions
+libmysqld/sql_do.cc
diff --git a/include/m_string.h b/include/m_string.h
index 17b5a07a10b..c6943613b1a 100644
--- a/include/m_string.h
+++ b/include/m_string.h
@@ -134,6 +134,7 @@ extern int bcmp(const char *s1,const char *s2,uint len);
#endif
#ifdef HAVE_purify
extern int my_bcmp(const char *s1,const char *s2,uint len);
+#undef bcmp
#define bcmp(A,B,C) my_bcmp((A),(B),(C))
#endif
diff --git a/libmysql/Makefile.shared b/libmysql/Makefile.shared
index d661d69a339..934051bb2bf 100644
--- a/libmysql/Makefile.shared
+++ b/libmysql/Makefile.shared
@@ -37,7 +37,7 @@ target_sources = libmysql.c net.c password.c manager.c \
mystringsobjects = strmov.lo strxmov.lo strnmov.lo strmake.lo strend.lo \
strnlen.lo strfill.lo is_prefix.lo \
int2str.lo str2int.lo strinstr.lo strcont.lo \
- strcend.lo \
+ strcend.lo bcmp.lo \
bchange.lo bmove.lo bmove_upp.lo longlong2str.lo \
strtoull.lo strtoll.lo llstr.lo \
ctype.lo $(LTCHARSET_OBJS)
diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am
index 6e02f24af8a..7c4197afb32 100644
--- a/libmysqld/Makefile.am
+++ b/libmysqld/Makefile.am
@@ -50,7 +50,7 @@ sqlsources = convert.cc derror.cc field.cc field_conv.cc filesort.cc \
sql_analyse.cc sql_base.cc sql_cache.cc sql_class.cc \
sql_crypt.cc sql_db.cc sql_delete.cc sql_insert.cc sql_lex.cc \
sql_list.cc sql_manager.cc sql_map.cc sql_parse.cc \
- sql_rename.cc sql_repl.cc sql_select.cc sql_show.cc \
+ sql_rename.cc sql_repl.cc sql_select.cc sql_do.cc sql_show.cc \
sql_string.cc sql_table.cc sql_test.cc sql_udf.cc \
sql_update.cc sql_yacc.cc table.cc thr_malloc.cc time.cc \
unireg.cc uniques.cc stacktrace.c sql_union.cc hash_filo.cc
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index 770ecdb1ab6..5d3634376d8 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -140,13 +140,13 @@ id parent_id level
1015 102 2
explain select level from t1 where level=1;
table type possible_keys key key_len ref rows Extra
-t1 index level level 1 NULL 39 where used; Using index
+t1 ref level level 1 const 12 where used; Using index
explain select level,id from t1 where level=1;
table type possible_keys key key_len ref rows Extra
-t1 index level level 1 NULL 39 where used; Using index
+t1 ref level level 1 const 12 where used; Using index
explain select level,id,parent_id from t1 where level=1;
table type possible_keys key key_len ref rows Extra
-t1 ALL level NULL NULL NULL 39 where used
+t1 ref level level 1 const 12 where used
select level,id from t1 where level=1;
level id
1 1002
@@ -168,9 +168,9 @@ Table Op Msg_type Msg_text
test.t1 optimize error The handler for the table doesn't support check/repair
show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
-t1 0 PRIMARY 1 id A 2 NULL NULL
-t1 1 parent_id 1 parent_id A 2 NULL NULL
-t1 1 level 1 level A 2 NULL NULL
+t1 0 PRIMARY 1 id A 87 NULL NULL
+t1 1 parent_id 1 parent_id A 21 NULL NULL
+t1 1 level 1 level A 4 NULL NULL
drop table t1;
CREATE TABLE t1 (
gesuchnr int(11) DEFAULT '0' NOT NULL,
@@ -727,7 +727,7 @@ Table Op Msg_type Msg_text
test.t1 optimize error The handler for the table doesn't support check/repair
show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
-t1 0 PRIMARY 1 a A 2 NULL NULL
+t1 0 PRIMARY 1 a A 1 NULL NULL
drop table t1;
create table t1 (i int, j int ) TYPE=innodb;
insert into t1 values (1,2);
diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result
index 0c298735d8b..702d4a6de03 100644
--- a/mysql-test/r/select.result
+++ b/mysql-test/r/select.result
@@ -3229,4 +3229,6 @@ Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_par
t2 0 PRIMARY 1 auto A 1199 NULL NULL
t2 0 fld1 1 fld1 A 1199 NULL NULL
t2 1 fld3 1 fld3 A NULL NULL NULL
+DO 1;
+DO benchmark(100,1+1),1,1;
drop table t4, t3,t2, t1;
diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test
index cdb6ee57e0f..ab4251fe536 100644
--- a/mysql-test/t/select.test
+++ b/mysql-test/t/select.test
@@ -1713,6 +1713,12 @@ show full columns from t2 from test like 's%';
show keys from t2;
#
+# Test of DO
+
+DO 1;
+DO benchmark(100,1+1),1,1;
+
+#
# Drop the test tables
#
diff --git a/sql/sql_do.cc b/sql/sql_do.cc
index 8e197b47fd5..77be253766c 100644
--- a/sql/sql_do.cc
+++ b/sql/sql_do.cc
@@ -26,7 +26,7 @@ int mysql_do(THD *thd, List<Item> &values)
List_iterator<Item> li(values);
Item *value;
DBUG_ENTER("mysql_do");
- if (setup_fields(thd,0, values, 0, 0))
+ if (setup_fields(thd,0, values, 0, 0, 0))
DBUG_RETURN(-1);
while ((value = li++))
value->val_int();
diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc
index 8de74adae45..6b3295a819c 100644
--- a/sql/sql_handler.cc
+++ b/sql/sql_handler.cc
@@ -86,7 +86,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
if (!table)
{
my_printf_error(ER_UNKNOWN_TABLE,ER(ER_UNKNOWN_TABLE),MYF(0),
- tables->name,"HANDLER");
+ tables->name,"HANDLER");
return -1;
}
tables->table=table;
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 6ec8d4070b1..4fc98963874 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -56,8 +56,7 @@ enum enum_sql_command {
SQLCOM_SHOW_OPEN_TABLES, SQLCOM_LOAD_MASTER_DATA,
SQLCOM_HA_OPEN, SQLCOM_HA_CLOSE, SQLCOM_HA_READ,
SQLCOM_SHOW_SLAVE_HOSTS, SQLCOM_DELETE_MULTI,
- SQLCOM_SHOW_BINLOG_EVENTS, SQLCOM_SHOW_NEW_MASTER,
- SQLCOM_SHOW_OPEN_TABLES, SQLCOM_DO,
+ SQLCOM_SHOW_BINLOG_EVENTS, SQLCOM_SHOW_NEW_MASTER, SQLCOM_DO,
SQLCOM_END
};