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.2036 06/01/12 14:38:22 tomas@stripped +5 -0
Merge tulin@stripped:/home/bk/mysql-5.1-wl2325-v6
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-wl2325-v6
mysql-test/t/rpl_row_basic_11bugs.test
1.3 06/01/12 14:38:18 tomas@stripped +0 -2
manual merge
mysql-test/r/rpl_row_basic_11bugs.result
1.3 06/01/12 14:38:18 tomas@stripped +0 -1
manual merge
sql/handler.h
1.181 06/01/12 14:36:25 tomas@stripped +0 -0
Auto merged
mysql-test/t/disabled.def
1.38 06/01/12 14:36:25 tomas@stripped +0 -0
Auto merged
client/mysqltest.c
1.174 06/01/12 14:36:24 tomas@stripped +0 -0
Auto merged
# 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.180/sql/handler.h 2006-01-11 12:45:10 +01:00
+++ 1.181/sql/handler.h 2006-01-12 14:36:25 +01:00
@@ -205,6 +205,14 @@
ROW_TYPE_DYNAMIC, ROW_TYPE_COMPRESSED,
ROW_TYPE_REDUNDANT, ROW_TYPE_COMPACT };
+enum enum_binlog_func {
+ BFN_RESET_LOGS= 1,
+ BFN_RESET_SLAVE= 2,
+ BFN_BINLOG_WAIT= 3,
+ BFN_BINLOG_END= 4,
+ BFN_BINLOG_PURGE_FILE= 5
+};
+
enum enum_binlog_command {
LOGCOM_CREATE_TABLE,
LOGCOM_ALTER_TABLE,
@@ -430,7 +438,8 @@
handlerton structure version
*/
const int interface_version;
-#define MYSQL_HANDLERTON_INTERFACE_VERSION 0x0000
+/* last version change: 0x0001 in 5.1.6 */
+#define MYSQL_HANDLERTON_INTERFACE_VERSION 0x0001
/*
@@ -527,14 +536,10 @@
engines static initialization. They are initialized at handler init.
Thus, leave them last in the struct.
*/
- int (*reset_logs)(THD *thd);
- int (*binlog_index_purge_file)(THD *thd, const char *file);
- void (*reset_slave)(THD *thd);
+ int (*binlog_func)(THD *thd, enum_binlog_func fn, void *arg);
void (*binlog_log_query)(THD *thd, enum_binlog_command binlog_command,
const char *query, uint query_length,
const char *db, const char *table_name);
- void (*binlog_wait)(THD *thd);
- int (*binlog_end)(THD *thd);
} handlerton;
extern const handlerton default_hton;
--- 1.37/mysql-test/t/disabled.def 2006-01-11 16:26:47 +01:00
+++ 1.38/mysql-test/t/disabled.def 2006-01-12 14:36:25 +01:00
@@ -23,6 +23,7 @@
ps_7ndb : dbug assert 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.2/mysql-test/r/rpl_row_basic_11bugs.result 2006-01-11 09:16:19 +01:00
+++ 1.3/mysql-test/r/rpl_row_basic_11bugs.result 2006-01-12 14:38:18 +01:00
@@ -9,6 +9,7 @@
SHOW DATABASES;
Database
information_schema
+cluster_replication
mysql
test
test_ignore
@@ -33,6 +34,7 @@
SHOW DATABASES;
Database
information_schema
+cluster_replication
mysql
test
USE test;
--- 1.173/client/mysqltest.c 2006-01-11 17:28:45 +01:00
+++ 1.174/client/mysqltest.c 2006-01-12 14:36:24 +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");
@@ -921,7 +921,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);
}
@@ -1226,6 +1226,7 @@
{
if (row[0])
{
+#ifdef NOT_YET
/* Add to <var_name>_<col_name> */
uint j;
char var_col_name[MAX_VAR_NAME];
@@ -1239,7 +1240,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]);
}
@@ -2605,7 +2606,7 @@
DBUG_ENTER("read_line");
LINT_INIT(quote);
- start_lineno= *lineno;
+ start_lineno= cur_file->lineno;
for (; p < buf_end ;)
{
no_save= 0;
@@ -2620,28 +2621,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:
@@ -2670,14 +2668,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 == '}')
@@ -2779,7 +2778,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];
@@ -3003,6 +3001,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':
@@ -4392,25 +4391,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);
@@ -4423,8 +4427,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();
@@ -4718,6 +4722,8 @@
parser.current_line += current_line_inc;
}
+
+ start_lineno= 0;
/*
The whole test has been executed _sucessfully_
| Thread |
|---|
| • bk commit into 5.1 tree (tomas:1.2036) | tomas | 12 Jan |