Below is the list of changes that have just been committed into a local
5.1 repository of tomas. When tomas does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.2035 06/01/12 14:34:01 tomas@stripped +19 -0
Merge tulin@stripped:/home/bk/mysql-5.1-new
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-wl2325-v6
scripts/mysql_create_system_tables.sh
1.28 06/01/12 14:33:55 tomas@stripped +0 -1
manual merge
mysql-test/t/disabled.def
1.37 06/01/12 14:33:55 tomas@stripped +1 -1
manual merge
mysql-test/r/information_schema.result
1.100 06/01/12 14:33:55 tomas@stripped +0 -1
manual merge
mysql-test/lib/init_db.sql
1.19 06/01/12 14:33:55 tomas@stripped +3 -4
manual merge
storage/ndb/src/ndbapi/ndb_cluster_connection.cpp
1.38 06/01/12 14:30:28 tomas@stripped +0 -0
Auto merged
storage/ndb/src/kernel/blocks/suma/Suma.cpp
1.32 06/01/12 14:30:28 tomas@stripped +0 -0
Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp
1.19 06/01/12 14:30:28 tomas@stripped +0 -0
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
1.66 06/01/12 14:30:28 tomas@stripped +0 -0
Auto merged
sql/sql_parse.cc
1.508 06/01/12 14:30:27 tomas@stripped +0 -0
Auto merged
sql/set_var.cc
1.160 06/01/12 14:30:27 tomas@stripped +0 -0
Auto merged
sql/mysqld.cc
1.519 06/01/12 14:30:27 tomas@stripped +0 -0
Auto merged
sql/Makefile.am
1.127 06/01/12 14:30:26 tomas@stripped +0 -0
Auto merged
mysql-test/t/mysqltest.test
1.29 06/01/12 14:30:26 tomas@stripped +0 -0
Auto merged
mysql-test/r/ps.result
1.59 06/01/12 14:30:26 tomas@stripped +0 -0
Auto merged
mysql-test/r/mysqltest.result
1.24 06/01/12 14:30:26 tomas@stripped +0 -0
Auto merged
mysql-test/r/mysqlcheck.result
1.4 06/01/12 14:30:26 tomas@stripped +0 -0
Auto merged
libmysqld/Makefile.am
1.77 06/01/12 14:30:26 tomas@stripped +0 -0
Auto merged
client/mysqltest.c
1.173 06/01/12 14:30:26 tomas@stripped +0 -0
Auto merged
BitKeeper/etc/ignore
1.221 06/01/12 14:29:56 tomas@stripped +48 -115
auto-union
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: tomas
# Host: poseidon.ndb.mysql.com
# Root: /home/tomas/mysql-5.1-wl2325-v6/RESYNC
--- 1.126/sql/Makefile.am 2006-01-11 11:46:25 +01:00
+++ 1.127/sql/Makefile.am 2006-01-12 14:30:26 +01:00
@@ -58,6 +58,7 @@
sql_select.h structs.h table.h sql_udf.h hash_filo.h\
lex.h lex_symbol.h sql_acl.h sql_crypt.h \
log_event.h sql_repl.h slave.h rpl_filter.h \
+ rpl_injector.h \
stacktrace.h sql_sort.h sql_cache.h set_var.h \
spatial.h gstream.h client_settings.h tzfile.h \
tztime.h my_decimal.h\
@@ -89,6 +90,7 @@
sql_load.cc mf_iocache.cc field_conv.cc sql_show.cc \
sql_udf.cc sql_analyse.cc sql_analyse.h sql_cache.cc \
slave.cc sql_repl.cc rpl_filter.cc rpl_tblmap.cc \
+ rpl_injector.cc \
sql_union.cc sql_derived.cc \
client.c sql_client.cc mini_client_errors.c pack.c\
stacktrace.c repl_failsafe.h repl_failsafe.cc \
@@ -104,6 +106,8 @@
ha_innodb.h ha_berkeley.h ha_archive.h \
ha_blackhole.cc ha_federated.cc ha_ndbcluster.cc \
ha_blackhole.h ha_federated.h ha_ndbcluster.h \
+ ha_ndbcluster_binlog.cc ha_ndbcluster_binlog.h \
+ ha_ndbcluster_tables.h \
ha_partition.cc ha_partition.h
mysqld_DEPENDENCIES = @mysql_se_objs@
gen_lex_hash_SOURCES = gen_lex_hash.cc
@@ -158,6 +162,9 @@
$(CXXCOMPILE) @bdb_includes@ $(LM_CFLAGS) -c $<
ha_ndbcluster.o:ha_ndbcluster.cc ha_ndbcluster.h
+ $(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
+
+ha_ndbcluster_binlog.o:ha_ndbcluster_binlog.cc ha_ndbcluster_binlog.h
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
#Until we can get rid of dependencies on ha_ndbcluster.h
--- 1.518/sql/mysqld.cc 2006-01-11 11:31:01 +01:00
+++ 1.519/sql/mysqld.cc 2006-01-12 14:30:27 +01:00
@@ -24,6 +24,7 @@
#include "stacktrace.h"
#include "mysqld_suffix.h"
#include "mysys_err.h"
+#include "event.h"
#include "ha_myisam.h"
@@ -3627,6 +3628,8 @@
}
}
+ init_events();
+
create_shutdown_thread();
create_maintenance_thread();
@@ -3690,6 +3693,7 @@
clean_up(1);
wait_for_signal_thread_to_end();
clean_up_mutexes();
+ shutdown_events();
my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
exit(0);
@@ -4662,7 +4666,7 @@
OPT_MAX_BINLOG_DUMP_EVENTS, OPT_SPORADIC_BINLOG_DUMP_FAIL,
OPT_SAFE_USER_CREATE, OPT_SQL_MODE,
OPT_HAVE_NAMED_PIPE,
- OPT_DO_PSTACK, OPT_REPORT_HOST,
+ OPT_DO_PSTACK, OPT_EVENT_EXECUTOR, OPT_REPORT_HOST,
OPT_REPORT_USER, OPT_REPORT_PASSWORD, OPT_REPORT_PORT,
OPT_SHOW_SLAVE_AUTH_INFO,
OPT_SLAVE_LOAD_TMPDIR, OPT_NO_MIX_TYPE,
@@ -4986,6 +4990,9 @@
(gptr*) &global_system_variables.engine_condition_pushdown,
(gptr*) &global_system_variables.engine_condition_pushdown,
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"event-scheduler", OPT_EVENT_EXECUTOR, "Enable/disable the event scheduler.",
+ (gptr*) &opt_event_executor, (gptr*) &opt_event_executor, 0, GET_BOOL, NO_ARG,
+ 0/*default*/, 0/*min-value*/, 1/*max-value*/, 0, 0, 0},
{"exit-info", 'T', "Used for debugging; Use at your own risk!", 0, 0, 0,
GET_LONG, OPT_ARG, 0, 0, 0, 0, 0, 0},
{"external-locking", OPT_USE_LOCKING, "Use system (external) locking. With this option enabled you can run myisamchk to test (not repair) tables while the MySQL server is running.",
@@ -6577,6 +6584,7 @@
{"Bytes_sent", (char*) offsetof(STATUS_VAR, bytes_sent), SHOW_LONG_STATUS},
{"Com_admin_commands", (char*) offsetof(STATUS_VAR, com_other), SHOW_LONG_STATUS},
{"Com_alter_db", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_ALTER_DB]), SHOW_LONG_STATUS},
+ {"Com_alter_event", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_ALTER_EVENT]), SHOW_LONG_STATUS},
{"Com_alter_table", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_ALTER_TABLE]), SHOW_LONG_STATUS},
{"Com_analyze", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_ANALYZE]), SHOW_LONG_STATUS},
{"Com_backup_table", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_BACKUP_TABLE]), SHOW_LONG_STATUS},
@@ -6587,6 +6595,7 @@
{"Com_checksum", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CHECKSUM]), SHOW_LONG_STATUS},
{"Com_commit", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_COMMIT]), SHOW_LONG_STATUS},
{"Com_create_db", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_DB]), SHOW_LONG_STATUS},
+ {"Com_create_event", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_EVENT]), SHOW_LONG_STATUS},
{"Com_create_function", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_FUNCTION]), SHOW_LONG_STATUS},
{"Com_create_index", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_INDEX]), SHOW_LONG_STATUS},
{"Com_create_table", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_CREATE_TABLE]), SHOW_LONG_STATUS},
@@ -6595,6 +6604,7 @@
{"Com_delete_multi", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_DELETE_MULTI]), SHOW_LONG_STATUS},
{"Com_do", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_DO]), SHOW_LONG_STATUS},
{"Com_drop_db", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_DROP_DB]), SHOW_LONG_STATUS},
+ {"Com_drop_event", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_DROP_EVENT]), SHOW_LONG_STATUS},
{"Com_drop_function", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_DROP_FUNCTION]), SHOW_LONG_STATUS},
{"Com_drop_index", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_DROP_INDEX]), SHOW_LONG_STATUS},
{"Com_drop_table", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_DROP_TABLE]), SHOW_LONG_STATUS},
@@ -6636,6 +6646,7 @@
{"Com_show_collations", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_COLLATIONS]), SHOW_LONG_STATUS},
{"Com_show_column_types", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_COLUMN_TYPES]), SHOW_LONG_STATUS},
{"Com_show_create_db", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_CREATE_DB]), SHOW_LONG_STATUS},
+ {"Com_show_create_event", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_CREATE_EVENT]), SHOW_LONG_STATUS},
{"Com_show_create_table", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_CREATE]), SHOW_LONG_STATUS},
{"Com_show_databases", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_DATABASES]), SHOW_LONG_STATUS},
{"Com_show_engine_logs", (char*) offsetof(STATUS_VAR, com_stat[(uint) SQLCOM_SHOW_ENGINE_LOGS]), SHOW_LONG_STATUS},
--- 1.507/sql/sql_parse.cc 2006-01-11 12:45:11 +01:00
+++ 1.508/sql/sql_parse.cc 2006-01-12 14:30:27 +01:00
@@ -25,6 +25,7 @@
#include "sp_head.h"
#include "sp.h"
#include "sp_cache.h"
+#include "event.h"
#ifdef HAVE_OPENSSL
/*
@@ -642,6 +643,9 @@
uc_update_queries[SQLCOM_DROP_INDEX]=1;
uc_update_queries[SQLCOM_CREATE_VIEW]=1;
uc_update_queries[SQLCOM_DROP_VIEW]=1;
+ uc_update_queries[SQLCOM_CREATE_EVENT]=1;
+ uc_update_queries[SQLCOM_ALTER_EVENT]=1;
+ uc_update_queries[SQLCOM_DROP_EVENT]=1;
}
bool is_update_query(enum enum_sql_command command)
@@ -3682,6 +3686,61 @@
res=mysqld_show_create_db(thd,lex->name,&lex->create_info);
break;
}
+ case SQLCOM_CREATE_EVENT:
+ case SQLCOM_ALTER_EVENT:
+ case SQLCOM_DROP_EVENT:
+ {
+ uint rows_affected= 1;
+ DBUG_ASSERT(lex->et);
+ do {
+ if (! lex->et->dbname.str)
+ {
+ my_message(ER_NO_DB_ERROR, ER(ER_NO_DB_ERROR), MYF(0));
+ res= true;
+ break;
+ }
+
+ if (check_access(thd, EVENT_ACL, lex->et->dbname.str, 0, 0, 0,
+ is_schema_db(lex->et->dbname.str)))
+ break;
+
+ switch (lex->sql_command) {
+ case SQLCOM_CREATE_EVENT:
+ res= evex_create_event(thd, lex->et, (uint) lex->create_info.options,
+ &rows_affected);
+ break;
+ case SQLCOM_ALTER_EVENT:
+ res= evex_update_event(thd, lex->et, lex->spname, &rows_affected);
+ break;
+ case SQLCOM_DROP_EVENT:
+ res= evex_drop_event(thd, lex->et, lex->drop_if_exists, &rows_affected);
+ default:;
+ }
+ if (!res)
+ send_ok(thd, rows_affected);
+
+ /* lex->unit.cleanup() is called outside, no need to call it here */
+ } while (0);
+ lex->et->free_sphead_on_delete= true;
+ delete lex->et;
+ lex->et= 0;
+ break;
+ }
+ case SQLCOM_SHOW_CREATE_EVENT:
+ {
+ if (check_access(thd, EVENT_ACL, lex->spname->m_db.str, 0, 0, 0,
+ is_schema_db(lex->spname->m_db.str)))
+ break;
+
+ if (lex->spname->m_name.length > NAME_LEN)
+ {
+ my_error(ER_TOO_LONG_IDENT, MYF(0), lex->spname->m_name.str);
+ goto error;
+ }
+ /* TODO : Implement it */
+ send_ok(thd, 1);
+ break;
+ }
case SQLCOM_CREATE_FUNCTION: // UDF function
{
if (check_access(thd,INSERT_ACL,"mysql",0,1,0,0))
@@ -5617,6 +5676,12 @@
delete thd->lex->sphead;
thd->lex->sphead= NULL;
}
+ if (thd->lex->et)
+ {
+ thd->lex->et->free_sphead_on_delete= true;
+ delete thd->lex->et;
+ thd->lex->et= NULL;
+ }
}
else
{
@@ -5651,6 +5716,12 @@
/* Clean up after failed stored procedure/function */
delete thd->lex->sphead;
thd->lex->sphead= NULL;
+ }
+ if (thd->lex->et)
+ {
+ thd->lex->et->free_sphead_on_delete= true;
+ delete thd->lex->et;
+ thd->lex->et= NULL;
}
}
thd->proc_info="freeing items";
--- 1.99/mysql-test/r/information_schema.result 2006-01-10 23:34:00 +01:00
+++ 1.100/mysql-test/r/information_schema.result 2006-01-12 14:33:55 +01:00
@@ -60,6 +60,7 @@
binlog_index
columns_priv
db
+event
func
help_category
help_keyword
@@ -401,6 +402,7 @@
'mysqltest_1'@'localhost' NULL test SHOW VIEW YES
'mysqltest_1'@'localhost' NULL test CREATE ROUTINE YES
'mysqltest_1'@'localhost' NULL test ALTER ROUTINE YES
+'mysqltest_1'@'localhost' NULL test EVENT YES
select * from information_schema.TABLE_PRIVILEGES where grantee like '%mysqltest_1%';
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'mysqltest_1'@'localhost' NULL test t1 SELECT NO
@@ -730,7 +732,7 @@
CREATE VIEW a1 (t_CRASHME) AS SELECT f1 FROM t_crashme GROUP BY f1;
CREATE VIEW a2 AS SELECT t_CRASHME FROM a1;
count(*)
-105
+106
drop view a2, a1;
drop table t_crashme;
select table_schema,table_name, column_name from
@@ -761,6 +763,10 @@
TABLES UPDATE_TIME datetime
TABLES CHECK_TIME datetime
TRIGGERS CREATED datetime
+event execute_at datetime
+event last_executed datetime
+event starts datetime
+event ends datetime
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
WHERE NOT EXISTS
(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
--- 1.3/mysql-test/r/mysqlcheck.result 2006-01-05 17:48:53 +01:00
+++ 1.4/mysql-test/r/mysqlcheck.result 2006-01-12 14:30:26 +01:00
@@ -1,6 +1,7 @@
cluster_replication.binlog_index OK
mysql.columns_priv OK
mysql.db OK
+mysql.event OK
mysql.func OK
mysql.help_category OK
mysql.help_keyword OK
@@ -19,6 +20,7 @@
mysql.user OK
mysql.columns_priv OK
mysql.db OK
+mysql.event OK
mysql.func OK
mysql.help_category OK
mysql.help_keyword OK
--- 1.18/mysql-test/lib/init_db.sql 2005-12-16 13:01:40 +01:00
+++ 1.19/mysql-test/lib/init_db.sql 2006-01-12 14:33:55 +01:00
@@ -569,7 +569,6 @@
PRIMARY KEY (db,name,type)
) character set utf8 comment='Stored Procedures';
-
CREATE TABLE event (
db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
name char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
@@ -594,3 +593,6 @@
comment varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
PRIMARY KEY (db,name)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Events';
+
+CREATE DATABASE IF NOT EXISTS cluster_replication;
+CREATE TABLE IF NOT EXISTS cluster_replication.binlog_index (Position BIGINT UNSIGNED NOT NULL, File VARCHAR(255) NOT NULL, epoch BIGINT UNSIGNED NOT NULL, inserts BIGINT UNSIGNED NOT NULL, updates BIGINT UNSIGNED NOT NULL, deletes BIGINT UNSIGNED NOT NULL, schemaops BIGINT UNSIGNED NOT NULL, PRIMARY KEY(epoch)) ENGINE=MYISAM;
--- 1.23/mysql-test/r/mysqltest.result 2006-01-10 14:11:35 +01:00
+++ 1.24/mysql-test/r/mysqltest.result 2006-01-12 14:30:26 +01:00
@@ -149,7 +149,7 @@
mysqltest: At line 1: End of line junk detected: "6"
mysqltest: At line 1: End of line junk detected: "6"
mysqltest: At line 1: Missing delimiter
-mysqltest: End of line junk detected: "sleep 7
+mysqltest: At line 1: End of line junk detected: "sleep 7
# Another comment
"
mysqltest: At line 1: Extra delimiter ";" found
@@ -221,25 +221,6 @@
mysqltest: At line 1: Missing variable name in let
mysqltest: At line 1: Missing variable name in let
mysqltest: At line 1: Missing assignment operator in let
-var1
-hi 1 hi there
-hi
-1
-hi there
-var2
-2
-
-
-var2 again
-2
-
-2
-
-var3 two columns with same name
-1 2 3
-2
-2
-3
mysqltest: At line 1: Missing file name in source
mysqltest: At line 1: Could not open file ./non_existingFile
mysqltest: In included file "./var/tmp/recursive.sql": At line 1: Source directives are nesting too deep
--- 1.36/mysql-test/t/disabled.def 2006-01-10 23:33:06 +01:00
+++ 1.37/mysql-test/t/disabled.def 2006-01-12 14:33:55 +01:00
@@ -22,6 +22,7 @@
#ps_7ndb : Bug#15923 Core dump in RBR mode when executing test suite
rpl_ddl : Bug#15963 SBR does not show "Definer" correctly
mysqlslap : Bug#16167
+events : Affects flush test case. A table lock not released somewhere
ndb_autodiscover : TBF with CR
ndb_autodiscover2 : TBF with CR
ndb_binlog_basic : Results are not deterministic, Tomas will fix
--- 1.28/mysql-test/t/mysqltest.test 2006-01-10 14:11:35 +01:00
+++ 1.29/mysql-test/t/mysqltest.test 2006-01-12 14:30:26 +01:00
@@ -540,7 +540,7 @@
# Test to assign let from query
# let $<var_name>=`<query>`;
# ----------------------------------------------------------------------------
-
+--disable_parsing
echo var1;
let $var1= `select "hi" as "Col", 1 as "Column1", "hi there" as Col3`;
echo $var1;
@@ -571,7 +571,7 @@
#echo failing query in let;
#--error 1
#--exec echo "let $var2= `failing query;`" | $MYSQL_TEST 2>&1
-
+--enable_parsing
# ----------------------------------------------------------------------------
# Test source command
# ----------------------------------------------------------------------------
--- 1.65/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2006-01-11 12:45:11 +01:00
+++ 1.66/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2006-01-12 14:30:28 +01:00
@@ -15203,7 +15203,7 @@
}
release_object(f_ptr.p->m_obj_ptr_i);
- c_file_pool.release(f_ptr);
+ c_file_hash.release(f_ptr);
}
execute(signal, op->m_callback, 0);
@@ -15241,7 +15241,7 @@
decrease_ref_count(fg_ptr.p->m_obj_ptr_i);
release_object(f_ptr.p->m_obj_ptr_i);
- c_file_pool.release(f_ptr);
+ c_file_hash.release(f_ptr);
execute(signal, op->m_callback, 0);
}
@@ -15406,6 +15406,7 @@
tableEntry->m_tableState = SchemaFile::DROP_TABLE_COMMITTED;
computeChecksum(xsf, objId / NDB_SF_PAGE_ENTRIES);
release_object(filePtr.p->m_obj_ptr_i);
+ c_file_hash.remove(filePtr);
}
list.release();
}
--- 1.18/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp 2006-01-11 12:45:12 +01:00
+++ 1.19/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp 2006-01-12 14:30:28 +01:00
@@ -449,6 +449,37 @@
Operationrec* const regOperPtr,
Tablerec* const regTablePtr)
{
+ Uint32 save_type = regOperPtr->op_struct.op_type;
+ Tuple_header *save_ptr = req_struct->m_tuple_ptr;
+
+ switch (save_type) {
+ case ZUPDATE:
+ case ZINSERT:
+ req_struct->m_tuple_ptr = (Tuple_header*)
+ c_undo_buffer.get_ptr(®OperPtr->m_copy_tuple_location);
+ break;
+ }
+
+ /**
+ * Set correct operation type and fix change mask
+ * Note ALLOC is set in "orig" tuple
+ */
+ if (save_ptr->m_header_bits & Tuple_header::ALLOC) {
+ if (save_type == ZDELETE) {
+ // insert + delete = nothing
+ ljam();
+ return;
+ goto end;
+ }
+ regOperPtr->op_struct.op_type = ZINSERT;
+ }
+ else if (save_type == ZINSERT) {
+ /**
+ * Tuple was not created but last op is INSERT.
+ * This is possible only on DELETE + INSERT
+ */
+ regOperPtr->op_struct.op_type = ZUPDATE;
+ }
switch(regOperPtr->op_struct.op_type) {
case(ZINSERT):
@@ -456,7 +487,7 @@
if (regTablePtr->subscriptionInsertTriggers.isEmpty()) {
// Table has no active triggers monitoring inserts at commit
ljam();
- return;
+ goto end;
}
// If any fired immediate insert trigger then fetch after tuple
@@ -469,7 +500,7 @@
if (regTablePtr->subscriptionDeleteTriggers.isEmpty()) {
// Table has no active triggers monitoring deletes at commit
ljam();
- return;
+ goto end;
}
// Execute any after delete triggers by sending
@@ -483,7 +514,7 @@
if (regTablePtr->subscriptionUpdateTriggers.isEmpty()) {
// Table has no active triggers monitoring updates at commit
ljam();
- return;
+ goto end;
}
// If any fired immediate update trigger then fetch after tuple
@@ -496,6 +527,10 @@
ndbrequire(false);
break;
}
+
+end:
+ regOperPtr->op_struct.op_type = save_type;
+ req_struct->m_tuple_ptr = save_ptr;
}
void
@@ -548,40 +583,6 @@
{
TriggerPtr trigPtr;
- Uint32 save= regOperPtr->op_struct.op_type;
- Tuple_header *save_ptr = req_struct->m_tuple_ptr;
-
- switch(save){
- case ZUPDATE:
- case ZINSERT:
- req_struct->m_tuple_ptr = (Tuple_header*)
- c_undo_buffer.get_ptr(®OperPtr->m_copy_tuple_location);
- break;
- }
-
- /**
- * Set correct operation type and fix change mask
- * Note ALLOC is set in "orig" tuple
- */
- if(save_ptr->m_header_bits & Tuple_header::ALLOC)
- {
- if(save == ZDELETE)
- {
- // insert + delete = nothing
- ljam();
- return;
- goto end;
- }
- regOperPtr->op_struct.op_type = ZINSERT;
- }
- else if (save == ZINSERT)
- /**
- * Tuple was not created but last op is INSERT.
- * This is possible only on DELETE + INSERT
- */
- {
- regOperPtr->op_struct.op_type = ZUPDATE;
- }
/**
* Set disk page
@@ -603,10 +604,6 @@
}
triggerList.next(trigPtr);
}
-
-end:
- regOperPtr->op_struct.op_type = save;
- req_struct->m_tuple_ptr = save_ptr;
}
void Dbtup::executeTriggers(KeyReqStruct *req_struct,
@@ -629,7 +626,6 @@
TupTriggerData* const trigPtr,
Operationrec* const regOperPtr)
{
-
/**
* The block below does not work together with GREP.
* I have 2 db nodes (2 replicas) -> one node group.
@@ -835,7 +831,6 @@
false);
ndbrequire(ret != -1);
noPrimKey= ret;
-
Uint32 numAttrsToRead;
if ((regOperPtr->op_struct.op_type == ZUPDATE) &&
(trigPtr->sendOnlyChangedAttributes)) {
--- 1.31/storage/ndb/src/kernel/blocks/suma/Suma.cpp 2006-01-11 12:45:12 +01:00
+++ 1.32/storage/ndb/src/kernel/blocks/suma/Suma.cpp 2006-01-12 14:30:28 +01:00
@@ -4193,8 +4193,14 @@
Bucket* bucket= c_buckets+buck;
Page_pos pos= bucket->m_buffer_head;
- Buffer_page* page= (Buffer_page*)m_tup->c_page_pool.getPtr(pos.m_page_id);
- Uint32* ptr= page->m_data + pos.m_page_pos;
+ Buffer_page* page = 0;
+ Uint32 *ptr = 0;
+
+ if (likely(pos.m_page_id != RNIL))
+ {
+ page= (Buffer_page*)m_tup->c_page_pool.getPtr(pos.m_page_id);
+ ptr= page->m_data + pos.m_page_pos;
+ }
const bool same_gci = (gci == pos.m_last_gci) && (!ERROR_INSERTED(13022));
--- 1.159/sql/set_var.cc 2006-01-11 11:31:01 +01:00
+++ 1.160/sql/set_var.cc 2006-01-12 14:30:27 +01:00
@@ -109,6 +109,7 @@
+extern my_bool event_executor_running_global_var;
static HASH system_variable_hash;
const char *bool_type_names[]= { "OFF", "ON", NullS };
@@ -213,6 +214,8 @@
&delayed_insert_timeout);
sys_var_long_ptr sys_delayed_queue_size("delayed_queue_size",
&delayed_queue_size);
+sys_var_event_executor sys_event_executor("event_scheduler",
+ &event_executor_running_global_var);
sys_var_long_ptr sys_expire_logs_days("expire_logs_days",
&expire_logs_days);
sys_var_bool_ptr sys_flush("flush", &myisam_flush);
@@ -724,6 +727,7 @@
{sys_div_precincrement.name,(char*) &sys_div_precincrement,SHOW_SYS},
{sys_engine_condition_pushdown.name,
(char*) &sys_engine_condition_pushdown, SHOW_SYS},
+ {sys_event_executor.name, (char*) &sys_event_executor, SHOW_SYS},
{sys_expire_logs_days.name, (char*) &sys_expire_logs_days, SHOW_SYS},
{sys_flush.name, (char*) &sys_flush, SHOW_SYS},
{sys_flush_time.name, (char*) &sys_flush_time, SHOW_SYS},
@@ -3428,6 +3432,7 @@
warn_deprecated(thd);
return sys_var_bool_ptr::update(thd, var);
}
+
/****************************************************************************
Used templates
--- 1.76/libmysqld/Makefile.am 2006-01-11 12:01:29 +01:00
+++ 1.77/libmysqld/Makefile.am 2006-01-12 14:30:26 +01:00
@@ -66,11 +66,13 @@
parse_file.cc sql_view.cc sql_trigger.cc my_decimal.cc \
event_executor.cc event.cc event_timed.cc \
rpl_filter.cc sql_partition.cc handlerton.cc sql_plugin.cc \
- sql_tablespace.cc
+ sql_tablespace.cc \
+ rpl_injector.cc
libmysqld_int_a_SOURCES= $(libmysqld_sources) $(libmysqlsources) $(sqlsources)
EXTRA_libmysqld_a_SOURCES = ha_innodb.cc ha_berkeley.cc ha_archive.cc \
ha_blackhole.cc ha_federated.cc ha_ndbcluster.cc \
+ ha_ndbcluster_binlog.cc \
ha_partition.cc
libmysqld_a_DEPENDENCIES= @mysql_se_objs@
libmysqld_a_SOURCES=
@@ -100,6 +102,9 @@
$(CXXCOMPILE) @bdb_includes@ $(LM_CFLAGS) -c $<
ha_ndbcluster.o:ha_ndbcluster.cc
+ $(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
+
+ha_ndbcluster_binlog.o: ha_ndbcluster_binlog.cc
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
# Until we can remove dependency on ha_ndbcluster.h
--- 1.172/client/mysqltest.c 2006-01-10 23:33:06 +01:00
+++ 1.173/client/mysqltest.c 2006-01-12 14:30:26 +01:00
@@ -165,7 +165,6 @@
static my_bool view_protocol= 0, view_protocol_enabled= 0;
static my_bool cursor_protocol= 0, cursor_protocol_enabled= 0;
static int parsing_disabled= 0;
-static uint start_lineno, *lineno;
const char *manager_user="root",*manager_host=0;
char *manager_pass=0;
int manager_port=MYSQL_MANAGER_PORT;
@@ -180,13 +179,14 @@
{
FILE* file;
const char *file_name;
+ uint lineno; /* Current line in file */
} test_file;
static test_file file_stack[MAX_INCLUDE_DEPTH];
static test_file* cur_file;
static test_file* file_stack_end;
+uint start_lineno; /* Start line of query */
-static uint lineno_stack[MAX_INCLUDE_DEPTH];
static char TMPDIR[FN_REFLEN];
static char delimiter[MAX_DELIMITER]= DEFAULT_DELIMITER;
static uint delimiter_length= 1;
@@ -662,7 +662,7 @@
va_start(args, fmt);
fprintf(stderr, "mysqltest: ");
- if (start_lineno > 0)
+ if (start_lineno != 0)
fprintf(stderr, "At line %u: ", start_lineno);
vfprintf(stderr, fmt, args);
fprintf(stderr, "\n");
@@ -916,7 +916,7 @@
die("Could not open file %s", buff);
}
cur_file->file_name= my_strdup(buff, MYF(MY_FAE));
- *++lineno=1;
+ cur_file->lineno=1;
DBUG_RETURN(0);
}
@@ -1221,6 +1221,7 @@
{
if (row[0])
{
+#ifdef NOT_YET
/* Add to <var_name>_<col_name> */
uint j;
char var_col_name[MAX_VAR_NAME];
@@ -1234,7 +1235,7 @@
}
var_set(var_col_name, var_col_name + length,
row[i], row[i] + lengths[i]);
-
+#endif
/* Add column to tab separated string */
dynstr_append_mem(&result, row[i], lengths[i]);
}
@@ -2596,7 +2597,7 @@
DBUG_ENTER("read_line");
LINT_INIT(quote);
- start_lineno= *lineno;
+ start_lineno= cur_file->lineno;
for (; p < buf_end ;)
{
no_save= 0;
@@ -2611,28 +2612,25 @@
}
my_free((gptr)cur_file->file_name, MYF(MY_ALLOW_ZERO_PTR));
cur_file->file_name= 0;
- lineno--;
- start_lineno= *lineno;
if (cur_file == file_stack)
{
/* We're back at the first file, check if
all { have matching }
*/
if (cur_block != block_stack)
- {
- start_lineno= *(lineno+1);
die("Missing end of block");
- }
+
DBUG_PRINT("info", ("end of file"));
DBUG_RETURN(1);
}
cur_file--;
+ start_lineno= cur_file->lineno;
continue;
}
/* Line counting is independent of state */
if (c == '\n')
- (*lineno)++;
+ cur_file->lineno++;
switch(state) {
case R_NORMAL:
@@ -2661,14 +2659,15 @@
break;
case R_LINE_START:
/* Only accept start of comment if this is the first line in query */
- if ((*lineno == start_lineno) && (c == '#' || c == '-' || parsing_disabled))
+ if ((cur_file->lineno == start_lineno) &&
+ (c == '#' || c == '-' || parsing_disabled))
{
state = R_COMMENT;
}
else if (my_isspace(charset_info, c))
{
if (c == '\n')
- start_lineno= *lineno; /* Query hasn't started yet */
+ start_lineno= cur_file->lineno; /* Query hasn't started yet */
no_save= 1;
}
else if (c == '}')
@@ -2770,7 +2769,6 @@
The advantage with this approach is to be able to execute commands
terminated by new line '\n' regardless how many "delimiter" it contain.
- If query starts with @<file_name> this will specify a file to ....
*/
static char read_query_buf[MAX_QUERY];
@@ -2994,6 +2992,7 @@
my_fopen(buff, O_RDONLY | FILE_BINARY, MYF(0))))
die("Could not open %s: errno = %d", buff, errno);
cur_file->file_name= my_strdup(buff, MYF(MY_FAE));
+ cur_file->lineno= 1;
break;
}
case 'm':
@@ -4383,25 +4382,30 @@
save_file[0]=0;
TMPDIR[0]=0;
+
+ /* Init cons */
memset(cons, 0, sizeof(cons));
cons_end = cons + MAX_CONS;
next_con = cons + 1;
cur_con = cons;
+ /* Init file stack */
memset(file_stack, 0, sizeof(file_stack));
- memset(&master_pos, 0, sizeof(master_pos));
file_stack_end= file_stack + MAX_INCLUDE_DEPTH - 1;
cur_file= file_stack;
- lineno = lineno_stack;
- my_init_dynamic_array(&q_lines, sizeof(struct st_query*), INIT_Q_LINES,
- INIT_Q_LINES);
+ /* Init block stack */
memset(block_stack, 0, sizeof(block_stack));
block_stack_end= block_stack + BLOCK_STACK_DEPTH - 1;
cur_block= block_stack;
cur_block->ok= TRUE; /* Outer block should always be executed */
cur_block->cmd= cmd_none;
+ my_init_dynamic_array(&q_lines, sizeof(struct st_query*), INIT_Q_LINES,
+ INIT_Q_LINES);
+
+ memset(&master_pos, 0, sizeof(master_pos));
+
init_dynamic_string(&ds_res, "", 0, 65536);
parse_args(argc, argv);
@@ -4414,8 +4418,8 @@
{
cur_file->file= stdin;
cur_file->file_name= my_strdup("<stdin>", MYF(MY_WME));
+ cur_file->lineno= 1;
}
- *lineno=1;
#ifndef EMBEDDED_LIBRARY
if (manager_host)
init_manager();
@@ -4709,6 +4713,8 @@
parser.current_line += current_line_inc;
}
+
+ start_lineno= 0;
/*
The whole test has been executed _sucessfully_
--- 1.220/BitKeeper/etc/ignore 2006-01-09 18:04:02 +01:00
+++ 1.221/BitKeeper/etc/ignore 2006-01-12 14:29:56 +01:00
@@ -133,107 +133,6 @@
autom4te.cache/output.0
autom4te.cache/requests
autom4te.cache/traces.0
-storage/bdb/*.ds?
-storage/bdb/*.vcproj
-storage/bdb/README
-storage/bdb/btree/btree_auto.c
-storage/bdb/build_unix/*
-storage/bdb/build_vxworks/db.h
-storage/bdb/build_vxworks/db_int.h
-storage/bdb/build_win32/db.h
-storage/bdb/build_win32/db_archive.dsp
-storage/bdb/build_win32/db_checkpoint.dsp
-storage/bdb/build_win32/db_config.h
-storage/bdb/build_win32/db_cxx.h
-storage/bdb/build_win32/db_deadlock.dsp
-storage/bdb/build_win32/db_dll.dsp
-storage/bdb/build_win32/db_dump.dsp
-storage/bdb/build_win32/db_int.h
-storage/bdb/build_win32/db_java.dsp
-storage/bdb/build_win32/db_load.dsp
-storage/bdb/build_win32/db_perf.dsp
-storage/bdb/build_win32/db_printlog.dsp
-storage/bdb/build_win32/db_recover.dsp
-storage/bdb/build_win32/db_stat.dsp
-storage/bdb/build_win32/db_static.dsp
-storage/bdb/build_win32/db_tcl.dsp
-storage/bdb/build_win32/db_test.dsp
-storage/bdb/build_win32/db_upgrade.dsp
-storage/bdb/build_win32/db_verify.dsp
-storage/bdb/build_win32/ex_access.dsp
-storage/bdb/build_win32/ex_btrec.dsp
-storage/bdb/build_win32/ex_env.dsp
-storage/bdb/build_win32/ex_lock.dsp
-storage/bdb/build_win32/ex_mpool.dsp
-storage/bdb/build_win32/ex_tpcb.dsp
-storage/bdb/build_win32/excxx_access.dsp
-storage/bdb/build_win32/excxx_btrec.dsp
-storage/bdb/build_win32/excxx_env.dsp
-storage/bdb/build_win32/excxx_lock.dsp
-storage/bdb/build_win32/excxx_mpool.dsp
-storage/bdb/build_win32/excxx_tpcb.dsp
-storage/bdb/build_win32/include.tcl
-storage/bdb/build_win32/libdb.def
-storage/bdb/build_win32/libdb.rc
-storage/bdb/db/crdel_auto.c
-storage/bdb/db/db_auto.c
-storage/bdb/dbinc_auto/*.*
-storage/bdb/dbreg/dbreg_auto.c
-storage/bdb/dist/autom4te-2.53.cache/*
-storage/bdb/dist/autom4te-2.53.cache/output.0
-storage/bdb/dist/autom4te-2.53.cache/requests
-storage/bdb/dist/autom4te-2.53.cache/traces.0
-storage/bdb/dist/autom4te.cache/*
-storage/bdb/dist/autom4te.cache/output.0
-storage/bdb/dist/autom4te.cache/requests
-storage/bdb/dist/autom4te.cache/traces.0
-storage/bdb/dist/config.hin
-storage/bdb/dist/configure
-storage/bdb/dist/tags
-storage/bdb/dist/template/db_server_proc
-storage/bdb/dist/template/gen_client_ret
-storage/bdb/dist/template/rec_btree
-storage/bdb/dist/template/rec_crdel
-storage/bdb/dist/template/rec_db
-storage/bdb/dist/template/rec_dbreg
-storage/bdb/dist/template/rec_fileops
-storage/bdb/dist/template/rec_hash
-storage/bdb/dist/template/rec_log
-storage/bdb/dist/template/rec_qam
-storage/bdb/dist/template/rec_txn
-storage/bdb/fileops/fileops_auto.c
-storage/bdb/hash/hash_auto.c
-storage/bdb/include/btree_auto.h
-storage/bdb/include/btree_ext.h
-storage/bdb/include/clib_ext.h
-storage/bdb/include/common_ext.h
-storage/bdb/include/crdel_auto.h
-storage/bdb/include/db_auto.h
-storage/bdb/include/db_ext.h
-storage/bdb/include/db_server.h
-storage/bdb/include/env_ext.h
-storage/bdb/include/gen_client_ext.h
-storage/bdb/include/gen_server_ext.h
-storage/bdb/include/hash_auto.h
-storage/bdb/include/hash_ext.h
-storage/bdb/include/lock_ext.h
-storage/bdb/include/log_auto.h
-storage/bdb/include/log_ext.h
-storage/bdb/include/mp_ext.h
-storage/bdb/include/mutex_ext.h
-storage/bdb/include/os_ext.h
-storage/bdb/include/qam_auto.h
-storage/bdb/include/qam_ext.h
-storage/bdb/include/rpc_client_ext.h
-storage/bdb/include/rpc_server_ext.h
-storage/bdb/include/tcl_ext.h
-storage/bdb/include/txn_auto.h
-storage/bdb/include/txn_ext.h
-storage/bdb/include/xa_ext.h
-storage/bdb/log/log_auto.c
-storage/bdb/qam/qam_auto.c
-storage/bdb/txn/txn_auto.c
-storage/bdb/txn/txn_autop.c
binary/*
bkpull.log
bkpull.log*
@@ -270,6 +169,7 @@
client/mysqlmanager-pwgen
client/mysqlmanagerc
client/mysqlshow
+client/mysqlslap
client/mysqltest
client/mysqltestmanager-pwgen
client/mysqltestmanagerc
@@ -386,6 +286,7 @@
isam/test3
isamchk/*.ds?
isamchk/*.vcproj
+item_xmlfunc.cc
lib_debug/*
lib_release/*
libmysql/*.c
@@ -450,6 +351,7 @@
libmysqld/ha_myisam.cc
libmysqld/ha_myisammrg.cc
libmysqld/ha_ndbcluster.cc
+libmysqld/ha_ndbcluster_binlog.cc
libmysqld/ha_partition.cc
libmysqld/ha_tina.cc
libmysqld/handler.cc
@@ -494,6 +396,7 @@
libmysqld/records.cc
libmysqld/repl_failsafe.cc
libmysqld/rpl_filter.cc
+libmysqld/rpl_injector.cc
libmysqld/set_var.cc
libmysqld/simple-test
libmysqld/slave.cc
@@ -1137,6 +1040,9 @@
stamp-h3
stamp-h4
start_mysqld.sh
+storage/archive/archive_test
+storage/bdb/*.ds?
+storage/bdb/*.vcproj
storage/bdb/README
storage/bdb/btree/btree_auto.c
storage/bdb/btree/btree_autop.c
@@ -1156,6 +1062,38 @@
storage/bdb/build_vxworks/dbdemo/dbdemo22.wpj
storage/bdb/build_win32/*.dsp
storage/bdb/build_win32/*.h
+storage/bdb/build_win32/db.h
+storage/bdb/build_win32/db_archive.dsp
+storage/bdb/build_win32/db_checkpoint.dsp
+storage/bdb/build_win32/db_config.h
+storage/bdb/build_win32/db_cxx.h
+storage/bdb/build_win32/db_deadlock.dsp
+storage/bdb/build_win32/db_dll.dsp
+storage/bdb/build_win32/db_dump.dsp
+storage/bdb/build_win32/db_int.h
+storage/bdb/build_win32/db_java.dsp
+storage/bdb/build_win32/db_load.dsp
+storage/bdb/build_win32/db_perf.dsp
+storage/bdb/build_win32/db_printlog.dsp
+storage/bdb/build_win32/db_recover.dsp
+storage/bdb/build_win32/db_stat.dsp
+storage/bdb/build_win32/db_static.dsp
+storage/bdb/build_win32/db_tcl.dsp
+storage/bdb/build_win32/db_test.dsp
+storage/bdb/build_win32/db_upgrade.dsp
+storage/bdb/build_win32/db_verify.dsp
+storage/bdb/build_win32/ex_access.dsp
+storage/bdb/build_win32/ex_btrec.dsp
+storage/bdb/build_win32/ex_env.dsp
+storage/bdb/build_win32/ex_lock.dsp
+storage/bdb/build_win32/ex_mpool.dsp
+storage/bdb/build_win32/ex_tpcb.dsp
+storage/bdb/build_win32/excxx_access.dsp
+storage/bdb/build_win32/excxx_btrec.dsp
+storage/bdb/build_win32/excxx_env.dsp
+storage/bdb/build_win32/excxx_lock.dsp
+storage/bdb/build_win32/excxx_mpool.dsp
+storage/bdb/build_win32/excxx_tpcb.dsp
storage/bdb/build_win32/include.tcl
storage/bdb/build_win32/libdb.def
storage/bdb/build_win32/libdb.rc
@@ -1473,6 +1411,8 @@
storage/ndb/src/mgmsrv/ndb_mgmd
storage/ndb/src/mgmsrv/ndb_mgmd.dsp
storage/ndb/src/ndbapi/libndbapi.dsp
+storage/ndb/test/ndbapi/DbAsyncGenerator
+storage/ndb/test/ndbapi/DbCreate
storage/ndb/test/ndbapi/bank/bankCreator
storage/ndb/test/ndbapi/bank/bankMakeGL
storage/ndb/test/ndbapi/bank/bankSumAccounts
@@ -1488,21 +1428,26 @@
storage/ndb/test/ndbapi/flexBench.dsp
storage/ndb/test/ndbapi/flexHammer
storage/ndb/test/ndbapi/flexTT
+storage/ndb/test/ndbapi/ndbapi_slow_select
storage/ndb/test/ndbapi/testBackup
storage/ndb/test/ndbapi/testBasic
storage/ndb/test/ndbapi/testBasic.dsp
storage/ndb/test/ndbapi/testBasicAsynch
+storage/ndb/test/ndbapi/testBitfield
storage/ndb/test/ndbapi/testBlobs
storage/ndb/test/ndbapi/testBlobs.dsp
storage/ndb/test/ndbapi/testDataBuffers
storage/ndb/test/ndbapi/testDeadlock
storage/ndb/test/ndbapi/testDict
storage/ndb/test/ndbapi/testIndex
+storage/ndb/test/ndbapi/testLcp
storage/ndb/test/ndbapi/testMgm
storage/ndb/test/ndbapi/testNdbApi
storage/ndb/test/ndbapi/testNodeRestart
storage/ndb/test/ndbapi/testOIBasic
storage/ndb/test/ndbapi/testOperations
+storage/ndb/test/ndbapi/testPartitioning
+storage/ndb/test/ndbapi/testReadPerf
storage/ndb/test/ndbapi/testRestartGci
storage/ndb/test/ndbapi/testSRBank
storage/ndb/test/ndbapi/testScan
@@ -1513,6 +1458,7 @@
storage/ndb/test/ndbapi/testTimeout
storage/ndb/test/ndbapi/testTransactions
storage/ndb/test/ndbapi/test_event
+storage/ndb/test/ndbapi/test_event_merge
storage/ndb/test/run-test/atrt
storage/ndb/test/src/libNDBT.dsp
storage/ndb/test/tools/copy_tab
@@ -1527,6 +1473,7 @@
storage/ndb/test/tools/hugoPkUpdate
storage/ndb/test/tools/hugoScanRead
storage/ndb/test/tools/hugoScanUpdate
+storage/ndb/test/tools/listen_event
storage/ndb/test/tools/ndb_cpcc
storage/ndb/test/tools/restart
storage/ndb/test/tools/verify_index
@@ -1658,8 +1605,3 @@
vio/viotest.cpp
zlib/*.ds?
zlib/*.vcproj
-client/mysqlslap
-storage/archive/archive_test
-item_xmlfunc.cc
-libmysqld/ha_ndbcluster_binlog.cc
-libmysqld/rpl_injector.cc
--- 1.58/mysql-test/r/ps.result 2006-01-05 17:48:53 +01:00
+++ 1.59/mysql-test/r/ps.result 2006-01-12 14:30:26 +01:00
@@ -534,13 +534,13 @@
prepare my_stmt from @aux;
execute my_stmt;
COUNT(*)
-37
+38
execute my_stmt;
COUNT(*)
-37
+38
execute my_stmt;
COUNT(*)
-37
+38
deallocate prepare my_stmt;
drop procedure if exists p1|
drop table if exists t1|
--- 1.37/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp 2006-01-12 10:11:54 +01:00
+++ 1.38/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp 2006-01-12 14:30:28 +01:00
@@ -122,7 +122,7 @@
}
void
-Ndb_cluster_connection_impl::init_get_next_node
+Ndb_cluster_connection::init_get_next_node
(Ndb_cluster_connection_node_iter &iter)
{
if (iter.scan_state != (Uint8)~0)
@@ -136,7 +136,7 @@
}
Uint32
-Ndb_cluster_connection_impl::get_next_node(Ndb_cluster_connection_node_iter &iter)
+Ndb_cluster_connection::get_next_node(Ndb_cluster_connection_node_iter &iter)
{
Uint32 cur_pos= iter.cur_pos;
if (cur_pos >= no_db_nodes())
--- 1.27/scripts/mysql_create_system_tables.sh 2006-01-09 15:05:21 +01:00
+++ 1.28/scripts/mysql_create_system_tables.sh 2006-01-12 14:33:55 +01:00
@@ -72,6 +72,7 @@
c_d="$c_d Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
c_d="$c_d Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
c_d="$c_d Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
+ c_d="$c_d Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
c_d="$c_d PRIMARY KEY Host (Host,Db,User),"
c_d="$c_d KEY User (User)"
c_d="$c_d ) engine=MyISAM"
@@ -150,6 +151,7 @@
c_u="$c_u Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
c_u="$c_u Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
c_u="$c_u Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
+ c_u="$c_u Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,"
c_u="$c_u ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL,"
c_u="$c_u ssl_cipher BLOB NOT NULL,"
c_u="$c_u x509_issuer BLOB NOT NULL,"
@@ -741,6 +743,35 @@
c_p="$c_p comment='Stored Procedures';"
fi
+
+if test ! -f $mdata/event.frm
+then
+ c_ev="$c_ev CREATE TABLE event ("
+ c_ev="$c_ev db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',"
+ c_ev="$c_ev name char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',"
+ c_ev="$c_ev body longblob NOT NULL,"
+ c_ev="$c_ev definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',"
+ c_ev="$c_ev execute_at DATETIME default NULL,"
+ c_ev="$c_ev interval_value int(11) default NULL,"
+ c_ev="$c_ev interval_field ENUM('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK',"
+ c_ev="$c_ev 'SECOND','MICROSECOND', 'YEAR_MONTH','DAY_HOUR',"
+ c_ev="$c_ev 'DAY_MINUTE','DAY_SECOND',"
+ c_ev="$c_ev 'HOUR_MINUTE','HOUR_SECOND',"
+ c_ev="$c_ev 'MINUTE_SECOND','DAY_MICROSECOND',"
+ c_ev="$c_ev 'HOUR_MICROSECOND','MINUTE_MICROSECOND',"
+ c_ev="$c_ev 'SECOND_MICROSECOND') default NULL,"
+ c_ev="$c_ev created TIMESTAMP NOT NULL,"
+ c_ev="$c_ev modified TIMESTAMP NOT NULL,"
+ c_ev="$c_ev last_executed DATETIME default NULL,"
+ c_ev="$c_ev starts DATETIME default NULL,"
+ c_ev="$c_ev ends DATETIME default NULL,"
+ c_ev="$c_ev status ENUM('ENABLED','DISABLED') NOT NULL default 'ENABLED',"
+ c_ev="$c_ev on_completion ENUM('DROP','PRESERVE') NOT NULL default 'DROP',"
+ c_ev="$c_ev comment varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',"
+ c_ev="$c_ev PRIMARY KEY (db,name)"
+ c_ev="$c_ev ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Events';"
+fi
+
cat << END_OF_DATA
use mysql;
set storage_engine=myisam;
@@ -781,6 +812,7 @@
$c_p
$c_pp
+$c_ev
CREATE DATABASE IF NOT EXISTS cluster_replication;
CREATE TABLE IF NOT EXISTS cluster_replication.binlog_index (Position BIGINT UNSIGNED NOT NULL, File VARCHAR(255) NOT NULL, epoch BIGINT UNSIGNED NOT NULL, inserts BIGINT UNSIGNED NOT NULL, updates BIGINT UNSIGNED NOT NULL, deletes BIGINT UNSIGNED NOT NULL, schemaops BIGINT UNSIGNED NOT NULL, PRIMARY KEY(epoch)) ENGINE=MYISAM;
| Thread |
|---|
| • bk commit into 5.1 tree (tomas:1.2035) | tomas | 12 Jan |