mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
merge
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -17,9 +17,7 @@
|
|||||||
|
|
||||||
#include "client_priv.h"
|
#include "client_priv.h"
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#ifdef THREAD
|
|
||||||
#include <my_pthread.h> /* because of signal() */
|
#include <my_pthread.h> /* because of signal() */
|
||||||
#endif
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <mysql.h>
|
#include <mysql.h>
|
||||||
#include <sql_common.h>
|
#include <sql_common.h>
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/cmd-line-utils)
|
${CMAKE_SOURCE_DIR}/cmd-line-utils)
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DHAVE_CONFIG_H -DNO_KILL_INTR -DMYSQL_CLIENT_NO_THREADS)
|
ADD_DEFINITIONS(-DHAVE_CONFIG_H -DNO_KILL_INTR)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CURSES_INCLUDE_PATH})
|
INCLUDE_DIRECTORIES(${CURSES_INCLUDE_PATH})
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 2009 Sun Microsystems, Inc
|
/* Copyright (C) 2009, 2011, Oracle and/or its affiliates. All rights
|
||||||
|
reserved
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -470,9 +471,6 @@
|
|||||||
|
|
||||||
#cmakedefine STACK_DIRECTION @STACK_DIRECTION@
|
#cmakedefine STACK_DIRECTION @STACK_DIRECTION@
|
||||||
|
|
||||||
#define THREAD 1
|
|
||||||
#define THREAD_SAFE_CLIENT 1
|
|
||||||
|
|
||||||
#define SYSTEM_TYPE "@SYSTEM_TYPE@"
|
#define SYSTEM_TYPE "@SYSTEM_TYPE@"
|
||||||
#define MACHINE_TYPE "@CMAKE_SYSTEM_PROCESSOR@"
|
#define MACHINE_TYPE "@CMAKE_SYSTEM_PROCESSOR@"
|
||||||
#cmakedefine HAVE_DTRACE 1
|
#cmakedefine HAVE_DTRACE 1
|
||||||
@@ -604,6 +602,9 @@
|
|||||||
|
|
||||||
#cmakedefine SO_EXT "@CMAKE_SHARED_MODULE_SUFFIX@"
|
#cmakedefine SO_EXT "@CMAKE_SHARED_MODULE_SUFFIX@"
|
||||||
|
|
||||||
|
#define MYSQL_MAJOR_VERSION @MAJOR_VERSION@
|
||||||
|
#define MYSQL_MINOR_VERSION @MINOR_VERSION@
|
||||||
|
|
||||||
#define PACKAGE "mysql"
|
#define PACKAGE "mysql"
|
||||||
#define PACKAGE_BUGREPORT ""
|
#define PACKAGE_BUGREPORT ""
|
||||||
#define PACKAGE_NAME "MySQL Server"
|
#define PACKAGE_NAME "MySQL Server"
|
||||||
|
231
dbug/dbug.c
231
dbug/dbug.c
@@ -319,15 +319,6 @@ static void DbugExit(const char *why);
|
|||||||
static const char *DbugStrTok(const char *s);
|
static const char *DbugStrTok(const char *s);
|
||||||
static void DbugVfprintf(FILE *stream, const char* format, va_list args);
|
static void DbugVfprintf(FILE *stream, const char* format, va_list args);
|
||||||
|
|
||||||
#ifndef THREAD
|
|
||||||
/* Open profile output stream */
|
|
||||||
static FILE *OpenProfile(CODE_STATE *cs, const char *name);
|
|
||||||
/* Profile if asked for it */
|
|
||||||
static BOOLEAN DoProfile(CODE_STATE *);
|
|
||||||
/* Return current user time (ms) */
|
|
||||||
static unsigned long Clock(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Miscellaneous printf format strings.
|
* Miscellaneous printf format strings.
|
||||||
*/
|
*/
|
||||||
@@ -355,7 +346,6 @@ static unsigned long Clock(void);
|
|||||||
** Macros to allow dbugging with threads
|
** Macros to allow dbugging with threads
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef THREAD
|
|
||||||
#include <my_pthread.h>
|
#include <my_pthread.h>
|
||||||
static pthread_mutex_t THR_LOCK_dbug;
|
static pthread_mutex_t THR_LOCK_dbug;
|
||||||
|
|
||||||
@@ -394,30 +384,6 @@ static CODE_STATE *code_state(void)
|
|||||||
return cs;
|
return cs;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* !THREAD */
|
|
||||||
|
|
||||||
static CODE_STATE static_code_state=
|
|
||||||
{
|
|
||||||
"dbug", "?func", "?file", NULL, &init_settings,
|
|
||||||
NullS, NullS, 0,0,0,0,0,NullS
|
|
||||||
};
|
|
||||||
|
|
||||||
static CODE_STATE *code_state(void)
|
|
||||||
{
|
|
||||||
if (!init_done)
|
|
||||||
{
|
|
||||||
bzero(&init_settings, sizeof(init_settings));
|
|
||||||
init_settings.out_file=stderr;
|
|
||||||
init_settings.flags=OPEN_APPEND;
|
|
||||||
init_done=TRUE;
|
|
||||||
}
|
|
||||||
return &static_code_state;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define pthread_mutex_lock(A) {}
|
|
||||||
#define pthread_mutex_unlock(A) {}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Translate some calls among different systems.
|
* Translate some calls among different systems.
|
||||||
*/
|
*/
|
||||||
@@ -601,15 +567,6 @@ int DbugParse(CODE_STATE *cs, const char *control)
|
|||||||
else
|
else
|
||||||
stack->flags |= PID_ON;
|
stack->flags |= PID_ON;
|
||||||
break;
|
break;
|
||||||
#ifndef THREAD
|
|
||||||
case 'g':
|
|
||||||
if (OpenProfile(cs, PROF_FILE))
|
|
||||||
{
|
|
||||||
stack->flags |= PROFILE_ON;
|
|
||||||
stack->p_functions= ListAdd(stack->p_functions, control, end);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
case 'L':
|
case 'L':
|
||||||
if (sign < 0)
|
if (sign < 0)
|
||||||
stack->flags &= ~LINE_ON;
|
stack->flags &= ~LINE_ON;
|
||||||
@@ -1154,23 +1111,7 @@ void _db_enter_(const char *_func_, const char *_file_,
|
|||||||
_stack_frame_->prev= cs->framep;
|
_stack_frame_->prev= cs->framep;
|
||||||
_stack_frame_->level= ++cs->level | framep_trace_flag(cs, cs->framep);
|
_stack_frame_->level= ++cs->level | framep_trace_flag(cs, cs->framep);
|
||||||
cs->framep= _stack_frame_;
|
cs->framep= _stack_frame_;
|
||||||
#ifndef THREAD
|
|
||||||
if (DoProfile(cs))
|
|
||||||
{
|
|
||||||
long stackused;
|
|
||||||
if (cs->framep->prev == NULL)
|
|
||||||
stackused= 0;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
stackused= (char*)(cs->framep->prev) - (char*)(cs->framep);
|
|
||||||
stackused= stackused > 0 ? stackused : -stackused;
|
|
||||||
}
|
|
||||||
(void) fprintf(cs->stack->prof_file, PROF_EFMT , Clock(), cs->func);
|
|
||||||
(void) fprintf(cs->stack->prof_file, PROF_SFMT, (ulong) cs->framep, stackused,
|
|
||||||
AUTOS_REVERSE ? _stack_frame_->func : cs->func);
|
|
||||||
(void) fflush(cs->stack->prof_file);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
switch (DoTrace(cs)) {
|
switch (DoTrace(cs)) {
|
||||||
case ENABLE_TRACE:
|
case ENABLE_TRACE:
|
||||||
cs->framep->level|= TRACE_ON;
|
cs->framep->level|= TRACE_ON;
|
||||||
@@ -1229,10 +1170,7 @@ void _db_return_(uint _line_, struct _db_stack_frame_ *_stack_frame_)
|
|||||||
my_snprintf(buf, sizeof(buf), ERR_MISSING_RETURN, cs->func);
|
my_snprintf(buf, sizeof(buf), ERR_MISSING_RETURN, cs->func);
|
||||||
DbugExit(buf);
|
DbugExit(buf);
|
||||||
}
|
}
|
||||||
#ifndef THREAD
|
|
||||||
if (DoProfile(cs))
|
|
||||||
(void) fprintf(cs->stack->prof_file, PROF_XFMT, Clock(), cs->func);
|
|
||||||
#endif
|
|
||||||
if (DoTrace(cs) & DO_TRACE)
|
if (DoTrace(cs) & DO_TRACE)
|
||||||
{
|
{
|
||||||
if (TRACING)
|
if (TRACING)
|
||||||
@@ -1744,36 +1682,6 @@ static int DoTrace(CODE_STATE *cs)
|
|||||||
return DONT_TRACE;
|
return DONT_TRACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* FUNCTION
|
|
||||||
*
|
|
||||||
* DoProfile check to see if profiling is current enabled
|
|
||||||
*
|
|
||||||
* SYNOPSIS
|
|
||||||
*
|
|
||||||
* static BOOLEAN DoProfile()
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* Checks to see if profiling is enabled based on whether the
|
|
||||||
* user has specified profiling, the maximum trace depth has
|
|
||||||
* not yet been reached, the current function is selected,
|
|
||||||
* and the current process is selected. Returns TRUE if
|
|
||||||
* profiling is enabled, FALSE otherwise.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef THREAD
|
|
||||||
static BOOLEAN DoProfile(CODE_STATE *cs)
|
|
||||||
{
|
|
||||||
return PROFILING &&
|
|
||||||
cs->level <= cs->stack->maxdepth &&
|
|
||||||
InList(cs->stack->p_functions, cs->func) & (INCLUDE|MATCHED) &&
|
|
||||||
InList(cs->stack->processes, cs->process) & (INCLUDE|MATCHED);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
FILE *_db_fp_(void)
|
FILE *_db_fp_(void)
|
||||||
{
|
{
|
||||||
CODE_STATE *cs;
|
CODE_STATE *cs;
|
||||||
@@ -1900,11 +1808,7 @@ static void DoPrefix(CODE_STATE *cs, uint _line_)
|
|||||||
cs->lineno++;
|
cs->lineno++;
|
||||||
if (cs->stack->flags & PID_ON)
|
if (cs->stack->flags & PID_ON)
|
||||||
{
|
{
|
||||||
#ifdef THREAD
|
|
||||||
(void) fprintf(cs->stack->out_file, "%-7s: ", my_thread_name());
|
(void) fprintf(cs->stack->out_file, "%-7s: ", my_thread_name());
|
||||||
#else
|
|
||||||
(void) fprintf(cs->stack->out_file, "%5d: ", (int) getpid());
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if (cs->stack->flags & NUMBER_ON)
|
if (cs->stack->flags & NUMBER_ON)
|
||||||
(void) fprintf(cs->stack->out_file, "%5d: ", cs->lineno);
|
(void) fprintf(cs->stack->out_file, "%5d: ", cs->lineno);
|
||||||
@@ -2014,63 +1918,6 @@ static void DBUGOpenFile(CODE_STATE *cs,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* FUNCTION
|
|
||||||
*
|
|
||||||
* OpenProfile open new output stream for profiler output
|
|
||||||
*
|
|
||||||
* SYNOPSIS
|
|
||||||
*
|
|
||||||
* static FILE *OpenProfile(name)
|
|
||||||
* char *name;
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* Given name of a new file, opens the file
|
|
||||||
* and sets the profiler output stream to the new file.
|
|
||||||
*
|
|
||||||
* It is currently unclear whether the prefered behavior is
|
|
||||||
* to truncate any existing file, or simply append to it.
|
|
||||||
* The latter behavior would be desirable for collecting
|
|
||||||
* accumulated runtime history over a number of separate
|
|
||||||
* runs. It might take some changes to the analyzer program
|
|
||||||
* though, and the notes that Binayak sent with the profiling
|
|
||||||
* diffs indicated that append was the normal mode, but this
|
|
||||||
* does not appear to agree with the actual code. I haven't
|
|
||||||
* investigated at this time [fnf; 24-Jul-87].
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef THREAD
|
|
||||||
static FILE *OpenProfile(CODE_STATE *cs, const char *name)
|
|
||||||
{
|
|
||||||
REGISTER FILE *fp;
|
|
||||||
REGISTER BOOLEAN newfile;
|
|
||||||
|
|
||||||
fp=0;
|
|
||||||
if (!Writable(name))
|
|
||||||
{
|
|
||||||
(void) fprintf(cs->stack->out_file, ERR_OPEN, cs->process, name);
|
|
||||||
perror("");
|
|
||||||
(void) Delay(cs->stack->delay);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
newfile= !EXISTS(name);
|
|
||||||
if (!(fp= fopen(name, "w")))
|
|
||||||
{
|
|
||||||
(void) fprintf(cs->stack->out_file, ERR_OPEN, cs->process, name);
|
|
||||||
perror("");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cs->stack->prof_file= fp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return fp;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION
|
* FUNCTION
|
||||||
*
|
*
|
||||||
@@ -2419,80 +2266,6 @@ const char* _db_get_func_(void)
|
|||||||
return cs->func;
|
return cs->func;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Here we need the definitions of the clock routine. Add your
|
|
||||||
* own for whatever system that you have.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef THREAD
|
|
||||||
#if defined(HAVE_GETRUSAGE)
|
|
||||||
|
|
||||||
#include <sys/param.h>
|
|
||||||
#include <sys/resource.h>
|
|
||||||
|
|
||||||
/* extern int getrusage(int, struct rusage *); */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Returns the user time in milliseconds used by this process so
|
|
||||||
* far.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static unsigned long Clock()
|
|
||||||
{
|
|
||||||
struct rusage ru;
|
|
||||||
|
|
||||||
(void) getrusage(RUSAGE_SELF, &ru);
|
|
||||||
return ru.ru_utime.tv_sec*1000 + ru.ru_utime.tv_usec/1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
#elif defined(__WIN__)
|
|
||||||
|
|
||||||
static ulong Clock()
|
|
||||||
{
|
|
||||||
return clock()*(1000/CLOCKS_PER_SEC);
|
|
||||||
}
|
|
||||||
#elif defined(amiga)
|
|
||||||
|
|
||||||
struct DateStamp { /* Yes, this is a hack, but doing it right */
|
|
||||||
long ds_Days; /* is incredibly ugly without splitting this */
|
|
||||||
long ds_Minute; /* off into a separate file */
|
|
||||||
long ds_Tick;
|
|
||||||
};
|
|
||||||
|
|
||||||
static int first_clock= TRUE;
|
|
||||||
static struct DateStamp begin;
|
|
||||||
static struct DateStamp elapsed;
|
|
||||||
|
|
||||||
static unsigned long Clock()
|
|
||||||
{
|
|
||||||
register struct DateStamp *now;
|
|
||||||
register unsigned long millisec= 0;
|
|
||||||
extern VOID *AllocMem();
|
|
||||||
|
|
||||||
now= (struct DateStamp *) AllocMem((long) sizeof(struct DateStamp), 0L);
|
|
||||||
if (now != NULL)
|
|
||||||
{
|
|
||||||
if (first_clock == TRUE)
|
|
||||||
{
|
|
||||||
first_clock= FALSE;
|
|
||||||
(void) DateStamp(now);
|
|
||||||
begin= *now;
|
|
||||||
}
|
|
||||||
(void) DateStamp(now);
|
|
||||||
millisec= 24 * 3600 * (1000 / HZ) * (now->ds_Days - begin.ds_Days);
|
|
||||||
millisec += 60 * (1000 / HZ) * (now->ds_Minute - begin.ds_Minute);
|
|
||||||
millisec += (1000 / HZ) * (now->ds_Tick - begin.ds_Tick);
|
|
||||||
(void) FreeMem(now, (long) sizeof(struct DateStamp));
|
|
||||||
}
|
|
||||||
return millisec;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static unsigned long Clock()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif /* RUSAGE */
|
|
||||||
#endif /* THREADS */
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
@@ -571,12 +571,10 @@ int main (int argc, char **argv)
|
|||||||
FILE *infile;
|
FILE *infile;
|
||||||
FILE *outfile = {stdout};
|
FILE *outfile = {stdout};
|
||||||
|
|
||||||
#ifdef THREAD
|
|
||||||
#if defined(HAVE_PTHREAD_INIT)
|
#if defined(HAVE_PTHREAD_INIT)
|
||||||
pthread_init(); /* Must be called before DBUG_ENTER */
|
pthread_init(); /* Must be called before DBUG_ENTER */
|
||||||
#endif
|
#endif
|
||||||
my_thread_global_init();
|
my_thread_global_init();
|
||||||
#endif /* THREAD */
|
|
||||||
{
|
{
|
||||||
DBUG_ENTER ("main");
|
DBUG_ENTER ("main");
|
||||||
DBUG_PROCESS (argv[0]);
|
DBUG_PROCESS (argv[0]);
|
||||||
|
@@ -16,12 +16,11 @@ char *argv[];
|
|||||||
{
|
{
|
||||||
register int result, ix;
|
register int result, ix;
|
||||||
extern int factorial(int);
|
extern int factorial(int);
|
||||||
#if defined(HAVE_PTHREAD_INIT) && defined(THREAD)
|
#if defined(HAVE_PTHREAD_INIT)
|
||||||
pthread_init(); /* Must be called before DBUG_ENTER */
|
pthread_init(); /* Must be called before DBUG_ENTER */
|
||||||
#endif
|
#endif
|
||||||
#ifdef THREAD
|
|
||||||
my_thread_global_init();
|
my_thread_global_init();
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
DBUG_ENTER ("main");
|
DBUG_ENTER ("main");
|
||||||
DBUG_PROCESS (argv[0]);
|
DBUG_PROCESS (argv[0]);
|
||||||
|
@@ -44,12 +44,11 @@ int main (int argc, char *argv[])
|
|||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#if defined(HAVE_PTHREAD_INIT) && defined(THREAD)
|
#if defined(HAVE_PTHREAD_INIT)
|
||||||
pthread_init(); /* Must be called before DBUG_ENTER */
|
pthread_init(); /* Must be called before DBUG_ENTER */
|
||||||
#endif
|
#endif
|
||||||
#ifdef THREAD
|
|
||||||
my_thread_global_init();
|
my_thread_global_init();
|
||||||
#endif
|
|
||||||
dup2(1, 2);
|
dup2(1, 2);
|
||||||
for (i = 1; i < argc; i++)
|
for (i = 1; i < argc; i++)
|
||||||
{
|
{
|
||||||
|
@@ -40,7 +40,6 @@ SET(HEADERS
|
|||||||
my_xml.h
|
my_xml.h
|
||||||
mysql_embed.h
|
mysql_embed.h
|
||||||
my_pthread.h
|
my_pthread.h
|
||||||
my_no_pthread.h
|
|
||||||
decimal.h
|
decimal.h
|
||||||
errmsg.h
|
errmsg.h
|
||||||
my_global.h
|
my_global.h
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 2000-2004 MySQL AB, 2009 Sun Microsystems, Inc
|
/* Copyright (C) 2000, 2011, Oracle and/or its affiliates. All rights
|
||||||
|
reserved
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -25,10 +26,9 @@ extern "C" {
|
|||||||
#ifndef _my_base_h
|
#ifndef _my_base_h
|
||||||
#include <my_base.h>
|
#include <my_base.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef THREAD
|
|
||||||
#include <my_pthread.h>
|
#include <my_pthread.h>
|
||||||
#include <thr_lock.h>
|
#include <thr_lock.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "my_handler.h"
|
#include "my_handler.h"
|
||||||
#include "my_tree.h"
|
#include "my_tree.h"
|
||||||
@@ -146,10 +146,8 @@ typedef struct st_heap_share
|
|||||||
uint open_count;
|
uint open_count;
|
||||||
uchar *del_link; /* Link to next block with del. rec */
|
uchar *del_link; /* Link to next block with del. rec */
|
||||||
char * name; /* Name of "memory-file" */
|
char * name; /* Name of "memory-file" */
|
||||||
#ifdef THREAD
|
|
||||||
THR_LOCK lock;
|
THR_LOCK lock;
|
||||||
mysql_mutex_t intern_lock; /* Locking for use with _locking */
|
mysql_mutex_t intern_lock; /* Locking for use with _locking */
|
||||||
#endif
|
|
||||||
my_bool delete_on_close;
|
my_bool delete_on_close;
|
||||||
LIST open_list;
|
LIST open_list;
|
||||||
uint auto_key;
|
uint auto_key;
|
||||||
@@ -175,9 +173,7 @@ typedef struct st_heap_info
|
|||||||
TREE_ELEMENT **last_pos;
|
TREE_ELEMENT **last_pos;
|
||||||
uint lastkey_len;
|
uint lastkey_len;
|
||||||
my_bool implicit_emptied;
|
my_bool implicit_emptied;
|
||||||
#ifdef THREAD
|
|
||||||
THR_LOCK_DATA lock;
|
THR_LOCK_DATA lock;
|
||||||
#endif
|
|
||||||
LIST open_list;
|
LIST open_list;
|
||||||
} HP_INFO;
|
} HP_INFO;
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 2000 MySQL AB
|
/* Copyright (C) 2000, 2011, Oracle and/or its affiliates. All rights
|
||||||
|
reserved
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -30,9 +31,6 @@
|
|||||||
#define EOVERFLOW 84
|
#define EOVERFLOW 84
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(USE_MY_FUNC) && !defined(THREAD)
|
|
||||||
#include <my_nosys.h> /* For faster code, after test */
|
|
||||||
#endif /* USE_MY_FUNC */
|
|
||||||
#endif /* stdin */
|
#endif /* stdin */
|
||||||
#include <my_list.h>
|
#include <my_list.h>
|
||||||
|
|
||||||
|
@@ -33,9 +33,7 @@ typedef struct st_bitmap
|
|||||||
thread_safe flag in bitmap_init was set. Otherwise, we optimize by not
|
thread_safe flag in bitmap_init was set. Otherwise, we optimize by not
|
||||||
acquiring the mutex
|
acquiring the mutex
|
||||||
*/
|
*/
|
||||||
#ifdef THREAD
|
|
||||||
mysql_mutex_t *mutex;
|
mysql_mutex_t *mutex;
|
||||||
#endif
|
|
||||||
} MY_BITMAP;
|
} MY_BITMAP;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@@ -212,13 +212,6 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* The client defines this to avoid all thread code */
|
|
||||||
#if defined(MYSQL_CLIENT_NO_THREADS) || defined(UNDEF_THREADS_HACK)
|
|
||||||
#undef THREAD
|
|
||||||
#undef HAVE_LINUXTHREADS
|
|
||||||
#undef HAVE_NPTL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_THREADS_WITHOUT_SOCKETS
|
#ifdef HAVE_THREADS_WITHOUT_SOCKETS
|
||||||
/* MIT pthreads does not work with unix sockets */
|
/* MIT pthreads does not work with unix sockets */
|
||||||
#undef HAVE_SYS_UN_H
|
#undef HAVE_SYS_UN_H
|
||||||
@@ -261,7 +254,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(THREAD) && !defined(__WIN__)
|
#if !defined(__WIN__)
|
||||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||||
#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */
|
#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */
|
||||||
#endif
|
#endif
|
||||||
@@ -282,7 +275,7 @@ C_MODE_END
|
|||||||
#if !defined(SCO) && !defined(_REENTRANT)
|
#if !defined(SCO) && !defined(_REENTRANT)
|
||||||
#define _REENTRANT 1 /* Threads requires reentrant code */
|
#define _REENTRANT 1 /* Threads requires reentrant code */
|
||||||
#endif
|
#endif
|
||||||
#endif /* THREAD */
|
#endif /* !defined(__WIN__) */
|
||||||
|
|
||||||
/* Go around some bugs in different OS and compilers */
|
/* Go around some bugs in different OS and compilers */
|
||||||
#ifdef _AIX /* By soren@t.dk */
|
#ifdef _AIX /* By soren@t.dk */
|
||||||
@@ -415,7 +408,7 @@ C_MODE_END
|
|||||||
#include <sys/stream.h> /* HPUX 10.20 defines ulong here. UGLY !!! */
|
#include <sys/stream.h> /* HPUX 10.20 defines ulong here. UGLY !!! */
|
||||||
#define HAVE_ULONG
|
#define HAVE_ULONG
|
||||||
#endif
|
#endif
|
||||||
#if defined(HPUX10) && defined(_LARGEFILE64_SOURCE) && defined(THREAD)
|
#if defined(HPUX10) && defined(_LARGEFILE64_SOURCE)
|
||||||
/* Fix bug in setrlimit */
|
/* Fix bug in setrlimit */
|
||||||
#undef setrlimit
|
#undef setrlimit
|
||||||
#define setrlimit cma_setrlimit64
|
#define setrlimit cma_setrlimit64
|
||||||
@@ -1342,17 +1335,6 @@ do { doubleget_union _tmp; \
|
|||||||
|
|
||||||
#endif /* WORDS_BIGENDIAN */
|
#endif /* WORDS_BIGENDIAN */
|
||||||
|
|
||||||
#ifndef THREAD
|
|
||||||
#define thread_safe_increment(V,L) (V)++
|
|
||||||
#define thread_safe_decrement(V,L) (V)--
|
|
||||||
#define thread_safe_add(V,C,L) (V)+=(C)
|
|
||||||
#define thread_safe_sub(V,C,L) (V)-=(C)
|
|
||||||
#define statistic_increment(V,L) (V)++
|
|
||||||
#define statistic_decrement(V,L) (V)--
|
|
||||||
#define statistic_add(V,C,L) (V)+=(C)
|
|
||||||
#define statistic_sub(V,C,L) (V)-=(C)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CHARSET_utf8
|
#ifdef HAVE_CHARSET_utf8
|
||||||
#define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8"
|
#define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8"
|
||||||
#else
|
#else
|
||||||
|
@@ -1,72 +0,0 @@
|
|||||||
#ifndef MY_NO_PTHREAD_INCLUDED
|
|
||||||
#define MY_NO_PTHREAD_INCLUDED
|
|
||||||
|
|
||||||
/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; version 2 of the License.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef THREAD
|
|
||||||
|
|
||||||
/*
|
|
||||||
This block is to access some thread-related type definitions
|
|
||||||
even in builds which do not need thread functions,
|
|
||||||
as some variables (based on these types) are declared
|
|
||||||
even in non-threaded builds.
|
|
||||||
Case in point: 'mf_keycache.c'
|
|
||||||
*/
|
|
||||||
#if defined(__WIN__)
|
|
||||||
#else /* Normal threads */
|
|
||||||
#include <pthread.h>
|
|
||||||
|
|
||||||
#endif /* defined(__WIN__) */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
This undefs some pthread mutex locks when one isn't using threads
|
|
||||||
to make thread safe code, that should also work in single thread
|
|
||||||
environment, easier to use.
|
|
||||||
*/
|
|
||||||
#define pthread_mutex_init(A,B)
|
|
||||||
#define pthread_mutex_lock(A)
|
|
||||||
#define pthread_mutex_unlock(A)
|
|
||||||
#define pthread_mutex_destroy(A)
|
|
||||||
#define my_rwlock_init(A,B)
|
|
||||||
#define rw_rdlock(A)
|
|
||||||
#define rw_wrlock(A)
|
|
||||||
#define rw_unlock(A)
|
|
||||||
#define rwlock_destroy(A)
|
|
||||||
#define safe_mutex_assert_owner(mp)
|
|
||||||
|
|
||||||
#define mysql_mutex_init(A, B, C) do {} while (0)
|
|
||||||
#define mysql_mutex_lock(A) do {} while (0)
|
|
||||||
#define mysql_mutex_unlock(A) do {} while (0)
|
|
||||||
#define mysql_mutex_destroy(A) do {} while (0)
|
|
||||||
|
|
||||||
#define mysql_rwlock_init(A, B, C) do {} while (0)
|
|
||||||
#define mysql_rwlock_rdlock(A) do {} while (0)
|
|
||||||
#define mysql_rwlock_wrlock(A) do {} while (0)
|
|
||||||
#define mysql_rwlock_unlock(A) do {} while (0)
|
|
||||||
#define mysql_rwlock_destroy(A) do {} while (0)
|
|
||||||
|
|
||||||
typedef int my_pthread_once_t;
|
|
||||||
#define MY_PTHREAD_ONCE_INIT 0
|
|
||||||
#define MY_PTHREAD_ONCE_DONE 1
|
|
||||||
|
|
||||||
#define my_pthread_once(C,F) do { \
|
|
||||||
if (*(C) != MY_PTHREAD_ONCE_DONE) { F(); *(C)= MY_PTHREAD_ONCE_DONE; } \
|
|
||||||
} while(0)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#endif /* MY_NO_PTHREAD_INCLUDED */
|
|
@@ -881,12 +881,6 @@ extern uint thd_lib_detected;
|
|||||||
to use my_atomic operations instead.
|
to use my_atomic operations instead.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
Warning:
|
|
||||||
When compiling without threads, this file is not included.
|
|
||||||
See the *other* declarations of thread_safe_xxx in include/my_global.h
|
|
||||||
*/
|
|
||||||
#ifdef THREAD
|
|
||||||
#ifndef thread_safe_increment
|
#ifndef thread_safe_increment
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define thread_safe_increment(V,L) InterlockedIncrement((long*) &(V))
|
#define thread_safe_increment(V,L) InterlockedIncrement((long*) &(V))
|
||||||
@@ -910,7 +904,7 @@ extern uint thd_lib_detected;
|
|||||||
(mysql_mutex_lock((L)), (V)-=(C), mysql_mutex_unlock((L)))
|
(mysql_mutex_lock((L)), (V)-=(C), mysql_mutex_unlock((L)))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
statistics_xxx functions are for non critical statistic,
|
statistics_xxx functions are for non critical statistic,
|
||||||
|
@@ -41,11 +41,7 @@ typedef struct my_aio_result {
|
|||||||
# define MEM_CHECK_DEFINED(a,len) ((void) 0)
|
# define MEM_CHECK_DEFINED(a,len) ((void) 0)
|
||||||
#endif /* HAVE_VALGRIND */
|
#endif /* HAVE_VALGRIND */
|
||||||
|
|
||||||
#ifndef THREAD
|
|
||||||
extern int my_errno; /* Last error in mysys */
|
|
||||||
#else
|
|
||||||
#include <my_pthread.h>
|
#include <my_pthread.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <m_ctype.h> /* for CHARSET_INFO */
|
#include <m_ctype.h> /* for CHARSET_INFO */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
@@ -314,7 +310,7 @@ struct st_my_file_info
|
|||||||
int oflag; /* open flags, e.g O_APPEND */
|
int oflag; /* open flags, e.g O_APPEND */
|
||||||
#endif
|
#endif
|
||||||
enum file_type type;
|
enum file_type type;
|
||||||
#if defined(THREAD) && !defined(HAVE_PREAD) && !defined(_WIN32)
|
#if !defined(HAVE_PREAD) && !defined(_WIN32)
|
||||||
mysql_mutex_t mutex;
|
mysql_mutex_t mutex;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
@@ -334,9 +330,7 @@ typedef struct st_my_tmpdir
|
|||||||
DYNAMIC_ARRAY full_list;
|
DYNAMIC_ARRAY full_list;
|
||||||
char **list;
|
char **list;
|
||||||
uint cur, max;
|
uint cur, max;
|
||||||
#ifdef THREAD
|
|
||||||
mysql_mutex_t mutex;
|
mysql_mutex_t mutex;
|
||||||
#endif
|
|
||||||
} MY_TMPDIR;
|
} MY_TMPDIR;
|
||||||
|
|
||||||
typedef struct st_dynamic_string
|
typedef struct st_dynamic_string
|
||||||
@@ -348,7 +342,6 @@ typedef struct st_dynamic_string
|
|||||||
struct st_io_cache;
|
struct st_io_cache;
|
||||||
typedef int (*IO_CACHE_CALLBACK)(struct st_io_cache*);
|
typedef int (*IO_CACHE_CALLBACK)(struct st_io_cache*);
|
||||||
|
|
||||||
#ifdef THREAD
|
|
||||||
typedef struct st_io_cache_share
|
typedef struct st_io_cache_share
|
||||||
{
|
{
|
||||||
mysql_mutex_t mutex; /* To sync on reads into buffer. */
|
mysql_mutex_t mutex; /* To sync on reads into buffer. */
|
||||||
@@ -368,7 +361,6 @@ typedef struct st_io_cache_share
|
|||||||
my_bool alloced;
|
my_bool alloced;
|
||||||
#endif
|
#endif
|
||||||
} IO_CACHE_SHARE;
|
} IO_CACHE_SHARE;
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct st_io_cache /* Used when cacheing files */
|
typedef struct st_io_cache /* Used when cacheing files */
|
||||||
{
|
{
|
||||||
@@ -409,7 +401,7 @@ typedef struct st_io_cache /* Used when cacheing files */
|
|||||||
WRITE_CACHE, and &read_pos and &read_end respectively otherwise
|
WRITE_CACHE, and &read_pos and &read_end respectively otherwise
|
||||||
*/
|
*/
|
||||||
uchar **current_pos, **current_end;
|
uchar **current_pos, **current_end;
|
||||||
#ifdef THREAD
|
|
||||||
/*
|
/*
|
||||||
The lock is for append buffer used in SEQ_READ_APPEND cache
|
The lock is for append buffer used in SEQ_READ_APPEND cache
|
||||||
need mutex copying from append buffer to read buffer.
|
need mutex copying from append buffer to read buffer.
|
||||||
@@ -423,7 +415,7 @@ typedef struct st_io_cache /* Used when cacheing files */
|
|||||||
READ_CACHE mode is supported.
|
READ_CACHE mode is supported.
|
||||||
*/
|
*/
|
||||||
IO_CACHE_SHARE *share;
|
IO_CACHE_SHARE *share;
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
A caller will use my_b_read() macro to read from the cache
|
A caller will use my_b_read() macro to read from the cache
|
||||||
if the data is already in cache, it will be simply copied with
|
if the data is already in cache, it will be simply copied with
|
||||||
@@ -631,6 +623,7 @@ extern const char** get_global_errmsgs();
|
|||||||
extern void wait_for_free_space(const char *filename, int errors);
|
extern void wait_for_free_space(const char *filename, int errors);
|
||||||
extern FILE *my_fopen(const char *FileName,int Flags,myf MyFlags);
|
extern FILE *my_fopen(const char *FileName,int Flags,myf MyFlags);
|
||||||
extern FILE *my_fdopen(File Filedes,const char *name, int Flags,myf MyFlags);
|
extern FILE *my_fdopen(File Filedes,const char *name, int Flags,myf MyFlags);
|
||||||
|
extern FILE *my_freopen(const char *path, const char *mode, FILE *stream);
|
||||||
extern int my_fclose(FILE *fd,myf MyFlags);
|
extern int my_fclose(FILE *fd,myf MyFlags);
|
||||||
extern File my_fileno(FILE *fd);
|
extern File my_fileno(FILE *fd);
|
||||||
extern int my_chsize(File fd,my_off_t newlength, int filler, myf MyFlags);
|
extern int my_chsize(File fd,my_off_t newlength, int filler, myf MyFlags);
|
||||||
@@ -657,14 +650,6 @@ extern int my_redel(const char *from, const char *to, int MyFlags);
|
|||||||
extern int my_copystat(const char *from, const char *to, int MyFlags);
|
extern int my_copystat(const char *from, const char *to, int MyFlags);
|
||||||
extern char * my_filename(File fd);
|
extern char * my_filename(File fd);
|
||||||
|
|
||||||
#ifndef THREAD
|
|
||||||
extern void dont_break(void);
|
|
||||||
extern void allow_break(void);
|
|
||||||
#else
|
|
||||||
#define dont_break()
|
|
||||||
#define allow_break()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef EXTRA_DEBUG
|
#ifdef EXTRA_DEBUG
|
||||||
void my_print_open_files(void);
|
void my_print_open_files(void);
|
||||||
#else
|
#else
|
||||||
@@ -737,12 +722,10 @@ extern my_bool reinit_io_cache(IO_CACHE *info,enum cache_type type,
|
|||||||
pbool clear_cache);
|
pbool clear_cache);
|
||||||
extern void setup_io_cache(IO_CACHE* info);
|
extern void setup_io_cache(IO_CACHE* info);
|
||||||
extern int _my_b_read(IO_CACHE *info,uchar *Buffer,size_t Count);
|
extern int _my_b_read(IO_CACHE *info,uchar *Buffer,size_t Count);
|
||||||
#ifdef THREAD
|
|
||||||
extern int _my_b_read_r(IO_CACHE *info,uchar *Buffer,size_t Count);
|
extern int _my_b_read_r(IO_CACHE *info,uchar *Buffer,size_t Count);
|
||||||
extern void init_io_cache_share(IO_CACHE *read_cache, IO_CACHE_SHARE *cshare,
|
extern void init_io_cache_share(IO_CACHE *read_cache, IO_CACHE_SHARE *cshare,
|
||||||
IO_CACHE *write_cache, uint num_threads);
|
IO_CACHE *write_cache, uint num_threads);
|
||||||
extern void remove_io_thread(IO_CACHE *info);
|
extern void remove_io_thread(IO_CACHE *info);
|
||||||
#endif
|
|
||||||
extern int _my_b_seq_read(IO_CACHE *info,uchar *Buffer,size_t Count);
|
extern int _my_b_seq_read(IO_CACHE *info,uchar *Buffer,size_t Count);
|
||||||
extern int _my_b_net_read(IO_CACHE *info,uchar *Buffer,size_t Count);
|
extern int _my_b_net_read(IO_CACHE *info,uchar *Buffer,size_t Count);
|
||||||
extern int _my_b_get(IO_CACHE *info);
|
extern int _my_b_get(IO_CACHE *info);
|
||||||
|
@@ -433,10 +433,8 @@ typedef struct st_mi_check_param
|
|||||||
const char *db_name, *table_name;
|
const char *db_name, *table_name;
|
||||||
const char *op_name;
|
const char *op_name;
|
||||||
enum_mi_stats_method stats_method;
|
enum_mi_stats_method stats_method;
|
||||||
#ifdef THREAD
|
|
||||||
mysql_mutex_t print_msg_mutex;
|
mysql_mutex_t print_msg_mutex;
|
||||||
my_bool need_print_msg_lock;
|
my_bool need_print_msg_lock;
|
||||||
#endif
|
|
||||||
} MI_CHECK;
|
} MI_CHECK;
|
||||||
|
|
||||||
typedef struct st_sort_ft_buf
|
typedef struct st_sort_ft_buf
|
||||||
@@ -460,10 +458,8 @@ typedef struct st_sort_info
|
|||||||
SORT_FT_BUF *ft_buf;
|
SORT_FT_BUF *ft_buf;
|
||||||
/* sync things */
|
/* sync things */
|
||||||
uint got_error, threads_running;
|
uint got_error, threads_running;
|
||||||
#ifdef THREAD
|
|
||||||
mysql_mutex_t mutex;
|
mysql_mutex_t mutex;
|
||||||
mysql_cond_t cond;
|
mysql_cond_t cond;
|
||||||
#endif
|
|
||||||
} SORT_INFO;
|
} SORT_INFO;
|
||||||
|
|
||||||
/* functions in mi_check */
|
/* functions in mi_check */
|
||||||
|
@@ -22,7 +22,6 @@
|
|||||||
|
|
||||||
class THD;
|
class THD;
|
||||||
|
|
||||||
uint filename_to_tablename(const char *from, char *to, uint to_length);
|
|
||||||
int get_quote_char_for_identifier(THD *thd, const char *name, uint length);
|
int get_quote_char_for_identifier(THD *thd, const char *name, uint length);
|
||||||
bool schema_table_store_record(THD *thd, TABLE *table);
|
bool schema_table_store_record(THD *thd, TABLE *table);
|
||||||
void localtime_to_TIME(MYSQL_TIME *to, struct tm *from);
|
void localtime_to_TIME(MYSQL_TIME *to, struct tm *from);
|
||||||
|
@@ -41,7 +41,7 @@ typedef struct st_alarm_info
|
|||||||
|
|
||||||
void thr_alarm_info(ALARM_INFO *info);
|
void thr_alarm_info(ALARM_INFO *info);
|
||||||
|
|
||||||
#if defined(DONT_USE_THR_ALARM) || !defined(THREAD)
|
#if defined(DONT_USE_THR_ALARM)
|
||||||
|
|
||||||
#define USE_ALARM_THREAD
|
#define USE_ALARM_THREAD
|
||||||
#undef USE_ONE_SIGNAL_HAND
|
#undef USE_ONE_SIGNAL_HAND
|
||||||
|
@@ -35,21 +35,6 @@ sig_handler my_pipe_sig_handler(int sig);
|
|||||||
void read_user_name(char *name);
|
void read_user_name(char *name);
|
||||||
my_bool handle_local_infile(MYSQL *mysql, const char *net_filename);
|
my_bool handle_local_infile(MYSQL *mysql, const char *net_filename);
|
||||||
|
|
||||||
/*
|
|
||||||
Let the user specify that we don't want SIGPIPE; This doesn't however work
|
|
||||||
with threaded applications as we can have multiple read in progress.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if !defined(__WIN__) && defined(SIGPIPE) && !defined(THREAD)
|
|
||||||
#define init_sigpipe_variables sig_return old_signal_handler=(sig_return) 0;
|
|
||||||
#define set_sigpipe(mysql) if ((mysql)->client_flag & CLIENT_IGNORE_SIGPIPE) old_signal_handler=signal(SIGPIPE, my_pipe_sig_handler)
|
|
||||||
#define reset_sigpipe(mysql) if ((mysql)->client_flag & CLIENT_IGNORE_SIGPIPE) signal(SIGPIPE,old_signal_handler);
|
|
||||||
#else
|
|
||||||
#define init_sigpipe_variables
|
|
||||||
#define set_sigpipe(mysql)
|
|
||||||
#define reset_sigpipe(mysql)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void mysql_read_default_options(struct st_mysql_options *options,
|
void mysql_read_default_options(struct st_mysql_options *options,
|
||||||
const char *filename,const char *group);
|
const char *filename,const char *group);
|
||||||
void mysql_detach_stmt_list(LIST **stmt_list, const char *func_name);
|
void mysql_detach_stmt_list(LIST **stmt_list, const char *func_name);
|
||||||
|
@@ -51,7 +51,7 @@
|
|||||||
#ifdef HAVE_SYS_UN_H
|
#ifdef HAVE_SYS_UN_H
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
#endif
|
#endif
|
||||||
#if defined(THREAD) && !defined(__WIN__)
|
#if !defined(__WIN__)
|
||||||
#include <my_pthread.h> /* because of signal() */
|
#include <my_pthread.h> /* because of signal() */
|
||||||
#endif
|
#endif
|
||||||
#ifndef INADDR_NONE
|
#ifndef INADDR_NONE
|
||||||
@@ -172,10 +172,8 @@ int STDCALL mysql_server_init(int argc __attribute__((unused)),
|
|||||||
result= init_embedded_server(argc, argv, groups);
|
result= init_embedded_server(argc, argv, groups);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef THREAD
|
|
||||||
else
|
else
|
||||||
result= (int)my_thread_init(); /* Init if new thread */
|
result= (int)my_thread_init(); /* Init if new thread */
|
||||||
#endif
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,18 +227,12 @@ MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void)
|
|||||||
|
|
||||||
my_bool STDCALL mysql_thread_init()
|
my_bool STDCALL mysql_thread_init()
|
||||||
{
|
{
|
||||||
#ifdef THREAD
|
|
||||||
return my_thread_init();
|
return my_thread_init();
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void STDCALL mysql_thread_end()
|
void STDCALL mysql_thread_end()
|
||||||
{
|
{
|
||||||
#ifdef THREAD
|
|
||||||
my_thread_end();
|
my_thread_end();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1092,11 +1084,7 @@ void STDCALL mysql_get_character_set_info(MYSQL *mysql, MY_CHARSET_INFO *csinfo)
|
|||||||
|
|
||||||
uint STDCALL mysql_thread_safe(void)
|
uint STDCALL mysql_thread_safe(void)
|
||||||
{
|
{
|
||||||
#ifdef THREAD
|
|
||||||
return 1;
|
return 1;
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -12,10 +12,8 @@ main.gis # Bug#52208 2010-11-24 alik gis fails o
|
|||||||
main.gis-rtree @freebsd # Bug#38965 2010-05-04 alik test cases gis-rtree, type_float, type_newdecimal fail in embedded server
|
main.gis-rtree @freebsd # Bug#38965 2010-05-04 alik test cases gis-rtree, type_float, type_newdecimal fail in embedded server
|
||||||
main.information_schema # Bug#47449 2009-09-19 alik main.information_schema and innodb.innodb_information_schema fail sporadically
|
main.information_schema # Bug#47449 2009-09-19 alik main.information_schema and innodb.innodb_information_schema fail sporadically
|
||||||
main.lock_multi_bug38499 # Bug#47448 2009-09-19 alik main.lock_multi_bug38499 times out sporadically
|
main.lock_multi_bug38499 # Bug#47448 2009-09-19 alik main.lock_multi_bug38499 times out sporadically
|
||||||
main.lock_multi_bug38691 @solaris # Bug#47792 2009-10-02 alik main.lock_multi_bug38691 times out sporadically on Solaris 10
|
|
||||||
main.lowercase_table2 @darwin # Bug#55509 2010-07-26 alik main.lowercase_table2 fails on Mac OSX (again)
|
main.lowercase_table2 @darwin # Bug#55509 2010-07-26 alik main.lowercase_table2 fails on Mac OSX (again)
|
||||||
main.outfile_loaddata @solaris # Bug#46895 2010-01-20 alik Test "outfile_loaddata" fails (reproducible)
|
main.outfile_loaddata @solaris # Bug#46895 2010-01-20 alik Test "outfile_loaddata" fails (reproducible)
|
||||||
main.show_check # Bug#58414 2010-11-24 alik Race condition in show_check.test
|
|
||||||
main.signal_demo3 @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
main.signal_demo3 @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||||
main.sp @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
main.sp @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||||
main.type_float @freebsd # Bug#38965 2010-05-04 alik test cases gis-rtree, type_float, type_newdecimal fail in embedded server
|
main.type_float @freebsd # Bug#38965 2010-05-04 alik test cases gis-rtree, type_float, type_newdecimal fail in embedded server
|
||||||
|
6
mysql-test/collections/default.weekly
Normal file → Executable file
6
mysql-test/collections/default.weekly
Normal file → Executable file
@@ -1,2 +1,8 @@
|
|||||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=1st --experimental=collections/default.experimental 1st
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=1st --experimental=collections/default.experimental 1st
|
||||||
perl mysql-test-run.pl --timer --force --parallel=auto --comment=big-tests --experimental=collections/default.experimental --vardir=var-big-tests --big-test --testcase-timeout=60 --suite-timeout=600 main.alter_table-big main.archive-big main.count_distinct3 main.create-big main.events_stress main.events_time_zone main.information_schema-big main.log_tables-big main.merge-big main.mysqlbinlog_row_big main.read_many_rows_innodb main.ssl-big main.sum_distinct-big main.type_newdecimal-big main.variables-big parts.part_supported_sql_func_innodb parts.partition_alter1_1_2_innodb parts.partition_alter1_2_innodb parts.partition_alter2_1_1_innodb parts.partition_alter2_1_2_innodb parts.partition_alter2_2_2_innodb parts.partition_alter4_innodb funcs_1.myisam_views-big
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=big-tests --experimental=collections/default.experimental --vardir=var-big-tests --big-test --testcase-timeout=60 --suite-timeout=600 main.alter_table-big main.archive-big main.count_distinct3 main.create-big main.events_stress main.events_time_zone main.information_schema-big main.log_tables-big main.merge-big main.mysqlbinlog_row_big main.read_many_rows_innodb main.ssl-big main.sum_distinct-big main.type_newdecimal-big main.variables-big parts.part_supported_sql_func_innodb parts.partition_alter1_1_2_innodb parts.partition_alter1_2_innodb parts.partition_alter2_1_1_innodb parts.partition_alter2_1_2_innodb parts.partition_alter2_2_2_innodb parts.partition_alter4_innodb funcs_1.myisam_views-big
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=eits-tests-myisam-engine --experimental=collections/default.experimental --vardir=var-stmt-eits-tests-myisam-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=myisam
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=eits-rpl-binlog-row-tests-myisam-engine --experimental=collections/default.experimental --vardir=var-binlog-row-eits-tests-myisam-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=myisam --do-test=rpl --mysqld=--binlog-format=row
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=eits-rpl-binlog-mixed-tests-myisam-engine --experimental=collections/default.experimental --vardir=var-binlog-mixed-eits-tests-myisam-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=myisam --do-test=rpl --mysqld=--binlog-format=mixed
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=eits-tests-innodb-engine --experimental=collections/default.experimental --vardir=var-stmt-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=innodb --mysqld=--innodb
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=eits-rpl-binlog-row-tests-innodb-engine --experimental=collections/default.experimental --vardir=var-binlog-row-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=innodb --mysqld=--innodb --do-test=rpl --mysqld=--binlog-format=row
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=eits-rpl-binlog-mixed-tests-innodb-engine --experimental=collections/default.experimental --vardir=var-binlog-mixed-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=innodb --mysqld=--innodb --do-test=rpl --mysqld=--binlog-format=mixed
|
||||||
|
5
mysql-test/collections/mysql-5.1-innodb.push
Normal file
5
mysql-test/collections/mysql-5.1-innodb.push
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=embedded --vardir=var-emebbed --embedded --experimental=collections/default.experimental --skip-ndb
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --suite=rpl,binlog --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=funcs_1 --vardir=var-funcs_1 --suite=funcs_1 --experimental=collections/default.experimental --skip-ndb
|
5
mysql-test/collections/mysql-5.5-innodb.push
Normal file
5
mysql-test/collections/mysql-5.5-innodb.push
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=embedded --vardir=var-emebbed --embedded --experimental=collections/default.experimental --skip-ndb
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --suite=rpl,binlog --mysqld=--binlog-format=row --experimental=collections/default.experimental --skip-ndb --skip-test-list=collections/disabled-per-push.list
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --comment=funcs_1 --vardir=var-funcs_1 --suite=funcs_1 --experimental=collections/default.experimental --skip-ndb
|
5
mysql-test/collections/mysql-trunk-innodb.push
Normal file
5
mysql-test/collections/mysql-trunk-innodb.push
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --suite=main,binlog,innodb,rpl,sys_vars,perfschema --skip-test-list=collections/disabled-per-push.list
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --suite=main,binlog,innodb,rpl,sys_vars,perfschema --skip-test-list=collections/disabled-per-push.list
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=embedded --vardir=var-emebbed --embedded --suite=main,binlog,innodb,rpl,sys_vars,perfschema
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --mysqld=--binlog-format=row --suite=rpl,binlog --skip-test-list=collections/disabled-per-push.list
|
||||||
|
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=funcs_1 --vardir=var-funcs_1 --suite=funcs_1
|
@@ -497,3 +497,22 @@ SET @@SESSION.AUTO_INCREMENT_INCREMENT=default;
|
|||||||
SET @@SESSION.AUTO_INCREMENT_OFFSET=default;
|
SET @@SESSION.AUTO_INCREMENT_OFFSET=default;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
#
|
||||||
|
# Bug#50619 assert in handler::update_auto_increment
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (pk INT AUTO_INCREMENT, PRIMARY KEY (pk));
|
||||||
|
INSERT INTO t1 VALUES (NULL), (-1), (NULL);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
pk
|
||||||
|
-1
|
||||||
|
1
|
||||||
|
2
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (pk BIGINT UNSIGNED AUTO_INCREMENT, PRIMARY KEY (pk));
|
||||||
|
INSERT INTO t1 VALUES (NULL), (18446744073709551615-1), (NULL);
|
||||||
|
ERROR HY000: Failed to read auto-increment value from storage engine
|
||||||
|
SELECT * FROM t1;
|
||||||
|
pk
|
||||||
|
1
|
||||||
|
18446744073709551614
|
||||||
|
DROP TABLE t1;
|
||||||
|
@@ -66,3 +66,27 @@ SELECT ((@id := id) - id) FROM t2;
|
|||||||
KILL @id;
|
KILL @id;
|
||||||
SET DEBUG_SYNC= "now SIGNAL killed";
|
SET DEBUG_SYNC= "now SIGNAL killed";
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
SET DEBUG_SYNC= "RESET";
|
||||||
|
#
|
||||||
|
# Bug#58933 Assertion `thd- >is_error()' fails on shutdown with ongoing
|
||||||
|
# OPTIMIZE TABLE
|
||||||
|
#
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
|
# Connection con1
|
||||||
|
SET DEBUG_SYNC= 'ha_admin_open_ltable SIGNAL waiting WAIT_FOR killed';
|
||||||
|
# Sending:
|
||||||
|
OPTIMIZE TABLE t1;
|
||||||
|
# Connection default
|
||||||
|
SET DEBUG_SYNC= 'now WAIT_FOR waiting';
|
||||||
|
KILL QUERY ID;
|
||||||
|
SET DEBUG_SYNC= 'now SIGNAL killed';
|
||||||
|
# Connection con1
|
||||||
|
# Reaping: OPTIMIZE TABLE t1
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
|
||||||
|
test.t1 optimize status Operation failed
|
||||||
|
# Connection default
|
||||||
|
DROP TABLE t1;
|
||||||
|
SET DEBUG_SYNC= 'RESET';
|
||||||
|
@@ -5,3 +5,111 @@
|
|||||||
CREATE DATABASE XY;
|
CREATE DATABASE XY;
|
||||||
USE XY;
|
USE XY;
|
||||||
DROP DATABASE XY;
|
DROP DATABASE XY;
|
||||||
|
USE TEST;
|
||||||
|
#
|
||||||
|
# Bug55222 Mysqldump table names case bug in REFERENCES clause
|
||||||
|
# InnoDB did not handle lower_case_table_names=2 for
|
||||||
|
# foreign_table_names and referenced_table_names.
|
||||||
|
#
|
||||||
|
SHOW VARIABLES LIKE 'lower_case_table_names';
|
||||||
|
Variable_name Value
|
||||||
|
lower_case_table_names 2
|
||||||
|
DROP TABLE IF EXISTS `Table2`;
|
||||||
|
DROP TABLE IF EXISTS `Table1`;
|
||||||
|
CREATE TABLE `Table1`(c1 INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
|
CREATE TABLE `Table2`(c1 INT PRIMARY KEY, c2 INT) ENGINE=InnoDB;
|
||||||
|
ALTER TABLE `Table2` ADD CONSTRAINT fk1 FOREIGN KEY(c2) REFERENCES `Table1`(c1);
|
||||||
|
SHOW CREATE TABLE `Table2`;
|
||||||
|
Table Table2
|
||||||
|
Create Table CREATE TABLE `Table2` (
|
||||||
|
`c1` int(11) NOT NULL,
|
||||||
|
`c2` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`c1`),
|
||||||
|
KEY `fk1` (`c2`),
|
||||||
|
CONSTRAINT `fk1` FOREIGN KEY (`c2`) REFERENCES `Table1` (`c1`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
|
||||||
|
CONSTRAINT_CATALOG def
|
||||||
|
CONSTRAINT_SCHEMA test
|
||||||
|
CONSTRAINT_NAME fk1
|
||||||
|
UNIQUE_CONSTRAINT_CATALOG def
|
||||||
|
UNIQUE_CONSTRAINT_SCHEMA test
|
||||||
|
UNIQUE_CONSTRAINT_NAME PRIMARY
|
||||||
|
MATCH_OPTION NONE
|
||||||
|
UPDATE_RULE RESTRICT
|
||||||
|
DELETE_RULE RESTRICT
|
||||||
|
TABLE_NAME Table2
|
||||||
|
REFERENCED_TABLE_NAME Table1
|
||||||
|
DROP TABLE `Table2`;
|
||||||
|
DROP TABLE `Table1`;
|
||||||
|
DROP TABLE IF EXISTS Product_Order;
|
||||||
|
DROP TABLE IF EXISTS Product;
|
||||||
|
DROP TABLE IF EXISTS Customer;
|
||||||
|
CREATE TABLE Product (Category INT NOT NULL, Id INT NOT NULL,
|
||||||
|
Price DECIMAL, PRIMARY KEY(Category, Id)) ENGINE=InnoDB;
|
||||||
|
CREATE TABLE Customer (Id INT NOT NULL, PRIMARY KEY (Id)) ENGINE=InnoDB;
|
||||||
|
CREATE TABLE Product_Order (No INT NOT NULL AUTO_INCREMENT,
|
||||||
|
Product_Category INT NOT NULL,
|
||||||
|
Product_Id INT NOT NULL,
|
||||||
|
Customer_Id INT NOT NULL,
|
||||||
|
PRIMARY KEY(No),
|
||||||
|
INDEX (Product_Category, Product_Id),
|
||||||
|
FOREIGN KEY (Product_Category, Product_Id)
|
||||||
|
REFERENCES Product(Category, Id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
INDEX (Customer_Id),
|
||||||
|
FOREIGN KEY (Customer_Id)
|
||||||
|
REFERENCES Customer(Id)
|
||||||
|
) ENGINE=INNODB;
|
||||||
|
SHOW CREATE TABLE Product_Order;
|
||||||
|
Table Product_Order
|
||||||
|
Create Table CREATE TABLE `Product_Order` (
|
||||||
|
`No` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`Product_Category` int(11) NOT NULL,
|
||||||
|
`Product_Id` int(11) NOT NULL,
|
||||||
|
`Customer_Id` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (`No`),
|
||||||
|
KEY `Product_Category` (`Product_Category`,`Product_Id`),
|
||||||
|
KEY `Customer_Id` (`Customer_Id`),
|
||||||
|
CONSTRAINT `product_order_ibfk_1` FOREIGN KEY (`Product_Category`, `Product_Id`) REFERENCES `Product` (`Category`, `Id`) ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `product_order_ibfk_2` FOREIGN KEY (`Customer_Id`) REFERENCES `Customer` (`Id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
SHOW CREATE TABLE Product;
|
||||||
|
Table Product
|
||||||
|
Create Table CREATE TABLE `Product` (
|
||||||
|
`Category` int(11) NOT NULL,
|
||||||
|
`Id` int(11) NOT NULL,
|
||||||
|
`Price` decimal(10,0) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`Category`,`Id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
SHOW CREATE TABLE Customer;
|
||||||
|
Table Customer
|
||||||
|
Create Table CREATE TABLE `Customer` (
|
||||||
|
`Id` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (`Id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
|
||||||
|
CONSTRAINT_CATALOG def
|
||||||
|
CONSTRAINT_SCHEMA test
|
||||||
|
CONSTRAINT_NAME product_order_ibfk_1
|
||||||
|
UNIQUE_CONSTRAINT_CATALOG def
|
||||||
|
UNIQUE_CONSTRAINT_SCHEMA test
|
||||||
|
UNIQUE_CONSTRAINT_NAME PRIMARY
|
||||||
|
MATCH_OPTION NONE
|
||||||
|
UPDATE_RULE CASCADE
|
||||||
|
DELETE_RULE RESTRICT
|
||||||
|
TABLE_NAME Product_Order
|
||||||
|
REFERENCED_TABLE_NAME Product
|
||||||
|
CONSTRAINT_CATALOG def
|
||||||
|
CONSTRAINT_SCHEMA test
|
||||||
|
CONSTRAINT_NAME product_order_ibfk_2
|
||||||
|
UNIQUE_CONSTRAINT_CATALOG def
|
||||||
|
UNIQUE_CONSTRAINT_SCHEMA test
|
||||||
|
UNIQUE_CONSTRAINT_NAME PRIMARY
|
||||||
|
MATCH_OPTION NONE
|
||||||
|
UPDATE_RULE RESTRICT
|
||||||
|
DELETE_RULE RESTRICT
|
||||||
|
TABLE_NAME Product_Order
|
||||||
|
REFERENCED_TABLE_NAME Customer
|
||||||
|
DROP TABLE Product_Order;
|
||||||
|
DROP TABLE Product;
|
||||||
|
DROP TABLE Customer;
|
||||||
|
@@ -7,13 +7,13 @@ slave_skip_errors OFF
|
|||||||
#
|
#
|
||||||
# FLUSH PRIVILEGES should not implicitly unlock locked tables.
|
# FLUSH PRIVILEGES should not implicitly unlock locked tables.
|
||||||
#
|
#
|
||||||
drop table if exists t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
create table t1 (c1 int);
|
CREATE TABLE t1 (c1 INT);
|
||||||
lock tables t1 read;
|
LOCK TABLES t1 READ;
|
||||||
flush privileges;
|
FLUSH PRIVILEGES;
|
||||||
ERROR HY000: Table 'host' was not locked with LOCK TABLES
|
ERROR HY000: Table 'host' was not locked with LOCK TABLES
|
||||||
unlock tables;
|
UNLOCK TABLES;
|
||||||
drop table t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug#54812: assert in Diagnostics_area::set_ok_status during EXPLAIN
|
# Bug#54812: assert in Diagnostics_area::set_ok_status during EXPLAIN
|
||||||
#
|
#
|
||||||
@@ -28,7 +28,7 @@ CREATE FUNCTION f() RETURNS INT RETURN 1;
|
|||||||
GRANT FILE ON *.* TO 'nopriv_user'@'localhost';
|
GRANT FILE ON *.* TO 'nopriv_user'@'localhost';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
connection: con1
|
connection: con1
|
||||||
SELECT MAX(key1) FROM t1 WHERE f() < 1 INTO OUTFILE 'mytest';
|
SELECT MAX(key1) FROM t1 WHERE f() < 1 INTO OUTFILE '<outfile>';
|
||||||
ERROR 42000: execute command denied to user 'nopriv_user'@'localhost' for routine 'test.f'
|
ERROR 42000: execute command denied to user 'nopriv_user'@'localhost' for routine 'test.f'
|
||||||
INSERT INTO t2 SELECT MAX(key1) FROM t1 WHERE f() < 1;
|
INSERT INTO t2 SELECT MAX(key1) FROM t1 WHERE f() < 1;
|
||||||
ERROR 42000: execute command denied to user 'nopriv_user'@'localhost' for routine 'test.f'
|
ERROR 42000: execute command denied to user 'nopriv_user'@'localhost' for routine 'test.f'
|
||||||
|
@@ -1901,7 +1901,7 @@ c1 bigint,
|
|||||||
c2 set('sweet'),
|
c2 set('sweet'),
|
||||||
key (c2,c1,c0),
|
key (c2,c1,c0),
|
||||||
key(c0)
|
key(c0)
|
||||||
) engine=myisam partition by hash (month(c0)) partitions 5;
|
) engine=myisam partition by hash (c0) partitions 5;
|
||||||
insert ignore into t1 set c0 = -6502262, c1 = 3992917, c2 = 35019;
|
insert ignore into t1 set c0 = -6502262, c1 = 3992917, c2 = 35019;
|
||||||
insert ignore into t1 set c0 = 241221, c1 = -6862346, c2 = 56644;
|
insert ignore into t1 set c0 = 241221, c1 = -6862346, c2 = 56644;
|
||||||
select c1 from t1 group by (select c0 from t1 limit 1);
|
select c1 from t1 group by (select c0 from t1 limit 1);
|
||||||
|
@@ -1,5 +1,655 @@
|
|||||||
drop table if exists t1, t2;
|
drop table if exists t1, t2;
|
||||||
#
|
#
|
||||||
|
# Bug#54483: valgrind errors when making warnings for multiline inserts
|
||||||
|
# into partition
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a VARBINARY(10))
|
||||||
|
PARTITION BY RANGE (DAYOFWEEK(a))
|
||||||
|
(PARTITION a1 VALUES LESS THAN (60));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a CHAR(10))
|
||||||
|
PARTITION BY RANGE (DAYOFWEEK(a))
|
||||||
|
(PARTITION a1 VALUES LESS THAN (60));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY RANGE (DAYOFWEEK(a))
|
||||||
|
(PARTITION a1 VALUES LESS THAN (60));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIMESTAMP)
|
||||||
|
PARTITION BY RANGE (DAYOFWEEK(a))
|
||||||
|
(PARTITION a1 VALUES LESS THAN (60));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY RANGE (DAYOFWEEK(a))
|
||||||
|
(PARTITION a1 VALUES LESS THAN (60));
|
||||||
|
INSERT INTO t1 VALUES ('test'),('a'),('5');
|
||||||
|
Warnings:
|
||||||
|
Warning 1265 Data truncated for column 'a' at row 1
|
||||||
|
Warning 1265 Data truncated for column 'a' at row 2
|
||||||
|
Warning 1265 Data truncated for column 'a' at row 3
|
||||||
|
SHOW WARNINGS;
|
||||||
|
Level Code Message
|
||||||
|
Warning 1265 Data truncated for column 'a' at row 1
|
||||||
|
Warning 1265 Data truncated for column 'a' at row 2
|
||||||
|
Warning 1265 Data truncated for column 'a' at row 3
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY RANGE (DAYOFWEEK(a))
|
||||||
|
(PARTITION a1 VALUES LESS THAN (60));
|
||||||
|
INSERT INTO t1 VALUES ('test'),('a'),('5');
|
||||||
|
Warnings:
|
||||||
|
Warning 1264 Out of range value for column 'a' at row 1
|
||||||
|
Warning 1264 Out of range value for column 'a' at row 2
|
||||||
|
Warning 1264 Out of range value for column 'a' at row 3
|
||||||
|
SHOW WARNINGS;
|
||||||
|
Level Code Message
|
||||||
|
Warning 1264 Out of range value for column 'a' at row 1
|
||||||
|
Warning 1264 Out of range value for column 'a' at row 2
|
||||||
|
Warning 1264 Out of range value for column 'a' at row 3
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY RANGE (DAYOFWEEK(a))
|
||||||
|
(PARTITION a1 VALUES LESS THAN (60));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
SHOW WARNINGS;
|
||||||
|
Level Code Message
|
||||||
|
Error 1486 Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (TO_DAYS(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (TO_DAYS(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (TO_DAYS(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (TO_DAYS(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (TO_DAYS(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (DAYOFMONTH(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (DAYOFMONTH(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (DAYOFMONTH(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (DAYOFMONTH(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (DAYOFMONTH(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (MONTH(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (MONTH(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (MONTH(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (MONTH(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (MONTH(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (DAYOFYEAR(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (DAYOFYEAR(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (DAYOFYEAR(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (DAYOFYEAR(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (DAYOFYEAR(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (HOUR(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (HOUR(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (HOUR(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (HOUR(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (HOUR(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (MINUTE(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (MINUTE(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (MINUTE(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (MINUTE(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (MINUTE(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (QUARTER(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (QUARTER(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (QUARTER(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (QUARTER(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (QUARTER(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (SECOND(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (SECOND(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (SECOND(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (SECOND(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (SECOND(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (YEARWEEK(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (YEARWEEK(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (YEARWEEK(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (YEARWEEK(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (YEARWEEK(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (WEEKDAY(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (WEEKDAY(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (WEEKDAY(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (WEEKDAY(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (WEEKDAY(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
# TO_SECONDS() is added in 5.5.
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (TO_SECONDS(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (TO_SECONDS(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (TO_SECONDS(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (TO_SECONDS(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (TO_SECONDS(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (FROM_DAYS(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (FROM_DAYS(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (FROM_DAYS(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (TO_DAYS(FROM_DAYS(a)));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (FROM_DAYS(a));
|
||||||
|
ERROR HY000: The PARTITION function returns the wrong type
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (TO_DAYS(FROM_DAYS(a)));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (FROM_DAYS(a));
|
||||||
|
ERROR HY000: The PARTITION function returns the wrong type
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (MICROSECOND(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (MICROSECOND(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (MICROSECOND(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (MICROSECOND(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (MICROSECOND(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
# Bug#57071
|
||||||
|
CREATE TABLE t1
|
||||||
|
(`date` date,
|
||||||
|
`extracted_week` int,
|
||||||
|
`yearweek` int,
|
||||||
|
`week` int,
|
||||||
|
`default_week_format` int)
|
||||||
|
PARTITION BY LIST (EXTRACT(WEEK FROM date) % 3)
|
||||||
|
(PARTITION p0 VALUES IN (0),
|
||||||
|
PARTITION p1 VALUES IN (1),
|
||||||
|
PARTITION p2 VALUES IN (2));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1
|
||||||
|
(`date` date,
|
||||||
|
`extracted_week` int,
|
||||||
|
`yearweek` int,
|
||||||
|
`week` int,
|
||||||
|
`default_week_format` int);
|
||||||
|
SET @old_default_week_format := @@default_week_format;
|
||||||
|
SET default_week_format = 0;
|
||||||
|
INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
|
||||||
|
SET default_week_format = 1;
|
||||||
|
INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
|
||||||
|
SET default_week_format = 2;
|
||||||
|
INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
|
||||||
|
SET default_week_format = 3;
|
||||||
|
INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
|
||||||
|
SET default_week_format = 4;
|
||||||
|
INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
|
||||||
|
SET default_week_format = 5;
|
||||||
|
INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
|
||||||
|
SET default_week_format = 6;
|
||||||
|
INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
|
||||||
|
SET default_week_format = 7;
|
||||||
|
INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
date extracted_week yearweek week default_week_format
|
||||||
|
2000-01-01 0 199952 0 0
|
||||||
|
2000-01-01 0 199952 0 1
|
||||||
|
2000-01-01 52 199952 52 2
|
||||||
|
2000-01-01 52 199952 52 3
|
||||||
|
2000-01-01 0 199952 0 4
|
||||||
|
2000-01-01 0 199952 0 5
|
||||||
|
2000-01-01 52 199952 52 6
|
||||||
|
2000-01-01 52 199952 52 7
|
||||||
|
SET default_week_format = @old_default_week_format;
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(QUARTER FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(QUARTER FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(QUARTER FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(QUARTER FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(QUARTER FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MONTH FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(MONTH FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MONTH FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(MONTH FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(MONTH FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
# EXTRACT(WEEK...) is disallowed, see bug#57071.
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(WEEK FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(WEEK FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(WEEK FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(WEEK FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(WEEK FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME, b DATE)
|
||||||
|
PARTITION BY HASH (DATEDIFF(a, b));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATE, b DATETIME)
|
||||||
|
PARTITION BY HASH (DATEDIFF(a, b));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATETIME, b DATE)
|
||||||
|
PARTITION BY HASH (DATEDIFF(a, b));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE, b VARCHAR(10))
|
||||||
|
PARTITION BY HASH (DATEDIFF(a, b));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT, b DATETIME)
|
||||||
|
PARTITION BY HASH (DATEDIFF(a, b));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a TIME)
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a DATE)
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a DATETIME)
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a VARCHAR(10))
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
PARTITION BY HASH (TIME_TO_SEC(a));
|
||||||
|
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
|
||||||
|
#
|
||||||
# Bug#50036: Inconsistent errors when using TIMESTAMP
|
# Bug#50036: Inconsistent errors when using TIMESTAMP
|
||||||
# columns/expressions
|
# columns/expressions
|
||||||
# 1. correct and appropriate errors in light of
|
# 1. correct and appropriate errors in light of
|
||||||
|
@@ -13,16 +13,16 @@ EXPLAIN SELECT a, MAX(b) FROM t1 WHERE a IN (10, 100, 3) GROUP BY a;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range a a 5 NULL 4 Using where; Using index
|
1 SIMPLE t1 range a a 5 NULL 4 Using where; Using index
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
create table t1 (a int)
|
create table t1 (a DATETIME)
|
||||||
partition by range (a)
|
partition by range (TO_DAYS(a))
|
||||||
subpartition by hash(to_seconds(a))
|
subpartition by hash(to_seconds(a))
|
||||||
(partition p0 values less than (1));
|
(partition p0 values less than (1));
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
`a` int(11) DEFAULT NULL
|
`a` datetime DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
/*!50500 PARTITION BY RANGE (a)
|
/*!50500 PARTITION BY RANGE (TO_DAYS(a))
|
||||||
SUBPARTITION BY HASH (to_seconds(a))
|
SUBPARTITION BY HASH (to_seconds(a))
|
||||||
(PARTITION p0 VALUES LESS THAN (1) ENGINE = MyISAM) */
|
(PARTITION p0 VALUES LESS THAN (1) ENGINE = MyISAM) */
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@@ -5004,6 +5004,58 @@ ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
|||||||
SELECT * FROM t2 UNION SELECT * FROM t2
|
SELECT * FROM t2 UNION SELECT * FROM t2
|
||||||
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
ORDER BY (SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abc' IN BOOLEAN MODE));
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
|
# Bug #58818: Incorrect result for IN/ANY subquery
|
||||||
|
# with HAVING condition
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(i INT);
|
||||||
|
INSERT INTO t1 VALUES (1), (2), (3);
|
||||||
|
CREATE TABLE t1s(i INT);
|
||||||
|
INSERT INTO t1s VALUES (10), (20), (30);
|
||||||
|
CREATE TABLE t2s(i INT);
|
||||||
|
INSERT INTO t2s VALUES (100), (200), (300);
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.i NOT IN
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
);
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.I IN
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
) IS UNKNOWN;
|
||||||
|
i
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE NOT t1.I = ANY
|
||||||
|
(
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
);
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE t1.i = ANY (
|
||||||
|
SELECT STRAIGHT_JOIN t2s.i
|
||||||
|
FROM
|
||||||
|
t1s LEFT OUTER JOIN t2s ON t2s.i = t1s.i
|
||||||
|
HAVING t2s.i = 999
|
||||||
|
) IS UNKNOWN;
|
||||||
|
i
|
||||||
|
DROP TABLE t1,t1s,t2s;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
#
|
#
|
||||||
# Bug #57704: Cleanup code dies with void TABLE::set_keyread(bool):
|
# Bug #57704: Cleanup code dies with void TABLE::set_keyread(bool):
|
||||||
|
@@ -164,6 +164,17 @@ a b
|
|||||||
2 NULL
|
2 NULL
|
||||||
DROP TABLE t1, t2, t3, t4, t5;
|
DROP TABLE t1, t2, t3, t4, t5;
|
||||||
#
|
#
|
||||||
|
# Bug#58207: invalid memory reads when using default column value and
|
||||||
|
# tmptable needed
|
||||||
|
#
|
||||||
|
CREATE TABLE t(a VARCHAR(245) DEFAULT
|
||||||
|
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
|
||||||
|
INSERT INTO t VALUES (''),(''),(''),(''),(''),(''),(''),(''),(''),(''),('');
|
||||||
|
SELECT * FROM (SELECT default(a) FROM t GROUP BY a) d;
|
||||||
|
default(a)
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
DROP TABLE t;
|
||||||
|
#
|
||||||
# End of 5.1 tests.
|
# End of 5.1 tests.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@@ -1644,3 +1644,128 @@ b
|
|||||||
2
|
2
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
#
|
||||||
|
# Bug#57986 ORDER BY clause is not used after a UNION,
|
||||||
|
# if embedded in a SELECT
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (c1 VARCHAR(10) NOT NULL, c2 INT NOT NULL);
|
||||||
|
CREATE TABLE t2 (c1 VARCHAR(10) NOT NULL, c2 INT NOT NULL);
|
||||||
|
INSERT INTO t1 (c1, c2) VALUES ('t1a', 1), ('t1a', 2), ('t1a', 3), ('t1b', 2), ('t1b', 1);
|
||||||
|
INSERT INTO t2 (c1, c2) VALUES ('t2a', 1), ('t2a', 2), ('t2a', 3), ('t2b', 2), ('t2b', 1);
|
||||||
|
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY c2, c1;
|
||||||
|
c1 c2
|
||||||
|
t1a 1
|
||||||
|
t1b 1
|
||||||
|
t2a 1
|
||||||
|
t2b 1
|
||||||
|
t1a 2
|
||||||
|
t1b 2
|
||||||
|
t2a 2
|
||||||
|
t2b 2
|
||||||
|
t1a 3
|
||||||
|
t2a 3
|
||||||
|
SELECT * FROM t1 UNION (SELECT * FROM t2) ORDER BY c2, c1;
|
||||||
|
c1 c2
|
||||||
|
t1a 1
|
||||||
|
t1b 1
|
||||||
|
t2a 1
|
||||||
|
t2b 1
|
||||||
|
t1a 2
|
||||||
|
t1b 2
|
||||||
|
t2a 2
|
||||||
|
t2b 2
|
||||||
|
t1a 3
|
||||||
|
t2a 3
|
||||||
|
SELECT * FROM t1 UNION (SELECT * FROM t2 ORDER BY c2, c1);
|
||||||
|
c1 c2
|
||||||
|
t1a 1
|
||||||
|
t1a 2
|
||||||
|
t1a 3
|
||||||
|
t1b 2
|
||||||
|
t1b 1
|
||||||
|
t2a 1
|
||||||
|
t2a 2
|
||||||
|
t2a 3
|
||||||
|
t2b 2
|
||||||
|
t2b 1
|
||||||
|
SELECT c1, c2 FROM (
|
||||||
|
SELECT c1, c2 FROM t1
|
||||||
|
UNION
|
||||||
|
(SELECT c1, c2 FROM t2)
|
||||||
|
ORDER BY c2, c1
|
||||||
|
) AS res;
|
||||||
|
c1 c2
|
||||||
|
t1a 1
|
||||||
|
t1b 1
|
||||||
|
t2a 1
|
||||||
|
t2b 1
|
||||||
|
t1a 2
|
||||||
|
t1b 2
|
||||||
|
t2a 2
|
||||||
|
t2b 2
|
||||||
|
t1a 3
|
||||||
|
t2a 3
|
||||||
|
SELECT c1, c2 FROM (
|
||||||
|
SELECT c1, c2 FROM t1
|
||||||
|
UNION
|
||||||
|
(SELECT c1, c2 FROM t2)
|
||||||
|
ORDER BY c2 DESC, c1 LIMIT 1
|
||||||
|
) AS res;
|
||||||
|
c1 c2
|
||||||
|
t1a 3
|
||||||
|
SELECT c1, c2 FROM (
|
||||||
|
SELECT c1, c2 FROM t1
|
||||||
|
UNION
|
||||||
|
(SELECT c1, c2 FROM t2 ORDER BY c2 DESC, c1 LIMIT 1)
|
||||||
|
) AS res;
|
||||||
|
c1 c2
|
||||||
|
t1a 1
|
||||||
|
t1a 2
|
||||||
|
t1a 3
|
||||||
|
t1b 2
|
||||||
|
t1b 1
|
||||||
|
t2a 3
|
||||||
|
SELECT c1, c2 FROM (
|
||||||
|
SELECT c1, c2 FROM t1
|
||||||
|
UNION
|
||||||
|
SELECT c1, c2 FROM t2
|
||||||
|
ORDER BY c2 DESC, c1 DESC LIMIT 1
|
||||||
|
) AS res;
|
||||||
|
c1 c2
|
||||||
|
t2a 3
|
||||||
|
SELECT c1, c2 FROM (
|
||||||
|
(
|
||||||
|
(SELECT c1, c2 FROM t1)
|
||||||
|
UNION
|
||||||
|
(SELECT c1, c2 FROM t2)
|
||||||
|
)
|
||||||
|
ORDER BY c2 DESC, c1 ASC LIMIT 1
|
||||||
|
) AS res;
|
||||||
|
c1 c2
|
||||||
|
t1a 3
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
#
|
||||||
|
# Bug #58970 Problem Subquery (without referencing a table)
|
||||||
|
# and Order By
|
||||||
|
#
|
||||||
|
SELECT(SELECT 0 AS a UNION SELECT 1 AS a ORDER BY a ASC LIMIT 1) AS dev;
|
||||||
|
dev
|
||||||
|
0
|
||||||
|
SELECT(SELECT 0 AS a UNION SELECT 1 AS a ORDER BY a DESC LIMIT 1) AS dev;
|
||||||
|
dev
|
||||||
|
1
|
||||||
|
SELECT(SELECT 0 AS a FROM dual UNION SELECT 1 AS a FROM dual ORDER BY a ASC LIMIT 1) AS dev;
|
||||||
|
dev
|
||||||
|
0
|
||||||
|
SELECT(SELECT 0 AS a FROM dual UNION SELECT 1 AS a FROM dual ORDER BY a DESC LIMIT 1) AS dev;
|
||||||
|
dev
|
||||||
|
1
|
||||||
|
SELECT(SELECT 1 AS a ORDER BY a) AS dev;
|
||||||
|
dev
|
||||||
|
1
|
||||||
|
SELECT(SELECT 1 AS a LIMIT 1) AS dev;
|
||||||
|
dev
|
||||||
|
1
|
||||||
|
SELECT(SELECT 1 AS a FROM dual ORDER BY a DESC LIMIT 1) AS dev;
|
||||||
|
dev
|
||||||
|
1
|
||||||
|
@@ -55,6 +55,12 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
|
ERROR 23000: Duplicate entry 'abc-abc-abc' for key 'PRIMARY'
|
||||||
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
|
ERROR 23000: Duplicate entry 'abc-abc-def' for key 'PRIMARY'
|
||||||
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
ERROR 23000: Duplicate entry 'abc-def-def' for key 'PRIMARY'
|
||||||
SELECT hex(c1),hex(c2),hex(c3) FROM t1;
|
SELECT hex(c1),hex(c2),hex(c3) FROM t1;
|
||||||
hex(c1) hex(c2) hex(c3)
|
hex(c1) hex(c2) hex(c3)
|
||||||
61626300000000000000 61626300000000000000 61626300000000000000
|
61626300000000000000 61626300000000000000 61626300000000000000
|
||||||
|
@@ -55,6 +55,12 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
|
ERROR 23000: Duplicate entry 'abc-abc-abc' for key 'PRIMARY'
|
||||||
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
|
ERROR 23000: Duplicate entry 'abc-abc-def' for key 'PRIMARY'
|
||||||
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
ERROR 23000: Duplicate entry 'abc-def-def' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
abc
|
abc
|
||||||
|
@@ -55,6 +55,12 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
|
ERROR 23000: Duplicate entry 'abc-abc-abc' for key 'c1'
|
||||||
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
|
ERROR 23000: Duplicate entry 'abc-abc-def' for key 'c1'
|
||||||
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
ERROR 23000: Duplicate entry 'abc-def-def' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
abc
|
abc
|
||||||
|
Binary file not shown.
Binary file not shown.
@@ -10,25 +10,174 @@ File Position Binlog_Do_DB Binlog_Ignore_DB
|
|||||||
master-bin.000001 107
|
master-bin.000001 107
|
||||||
stop slave;
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State #
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry #
|
||||||
Master_Log_File
|
Master_Log_File
|
||||||
Read_Master_Log_Pos 4
|
Read_Master_Log_Pos 4
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
Relay_Master_Log_File
|
Relay_Master_Log_File
|
||||||
|
Slave_IO_Running No
|
||||||
|
Slave_SQL_Running No
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos 0
|
Exec_Master_Log_Pos 0
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
change master to master_host='127.0.0.1';
|
change master to master_host='127.0.0.1';
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State #
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry #
|
||||||
Master_Log_File
|
Master_Log_File
|
||||||
Read_Master_Log_Pos 4
|
Read_Master_Log_Pos 4
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
Relay_Master_Log_File
|
Relay_Master_Log_File
|
||||||
|
Slave_IO_Running No
|
||||||
|
Slave_SQL_Running No
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos 0
|
Exec_Master_Log_Pos 0
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
change master to master_host='127.0.0.1',master_user='root',
|
change master to master_host='127.0.0.1',master_user='root',
|
||||||
master_password='',master_port=MASTER_PORT;
|
master_password='',master_port=MASTER_PORT;
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State #
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry #
|
||||||
Master_Log_File
|
Master_Log_File
|
||||||
Read_Master_Log_Pos 4
|
Read_Master_Log_Pos 4
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
Relay_Master_Log_File
|
Relay_Master_Log_File
|
||||||
|
Slave_IO_Running No
|
||||||
|
Slave_SQL_Running No
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos 0
|
Exec_Master_Log_Pos 0
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
start slave;
|
start slave;
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State Waiting for master to send event
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry 1
|
||||||
Master_Log_File master-bin.000001
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos 107
|
||||||
|
Relay_Log_File slave-relay-bin.000002
|
||||||
|
Relay_Log_Pos 254
|
||||||
Relay_Master_Log_File master-bin.000001
|
Relay_Master_Log_File master-bin.000001
|
||||||
Checking that both slave threads are running.
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos 107
|
||||||
|
Relay_Log_Space 410
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (n int, PRIMARY KEY(n));
|
create table t1 (n int, PRIMARY KEY(n));
|
||||||
insert into t1 values (10),(45),(90);
|
insert into t1 values (10),(45),(90);
|
||||||
|
@@ -11,7 +11,13 @@ stop slave sql_thread;
|
|||||||
insert into t1 values(1);
|
insert into t1 values(1);
|
||||||
insert into t1 values(2);
|
insert into t1 values(2);
|
||||||
stop slave;
|
stop slave;
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||||
|
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 # # # master-bin.000001 No No 0 0 192 # None 0 No # No 0 0 1
|
||||||
change master to master_user='root';
|
change master to master_user='root';
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||||
|
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 # # # master-bin.000001 No No 0 0 192 # None 0 No # No 0 0 1
|
||||||
start slave;
|
start slave;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
n
|
n
|
||||||
|
@@ -17,6 +17,45 @@ let $result_pattern= '%127.0.0.1%root%slave-bin.000001%slave-bin.000001%Yes%Yes%
|
|||||||
|
|
||||||
--source include/wait_slave_status.inc
|
--source include/wait_slave_status.inc
|
||||||
flush logs;
|
flush logs;
|
||||||
Relay_Log_File mysqld-relay-bin.000003
|
SHOW SLAVE STATUS;
|
||||||
Checking that both slave threads are running.
|
Slave_IO_State #
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port SLAVE_PORT
|
||||||
|
Connect_Retry 60
|
||||||
|
Master_Log_File slave-bin.000001
|
||||||
|
Read_Master_Log_Pos 107
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File slave-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table #
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos 107
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 2
|
||||||
STOP SLAVE;
|
STOP SLAVE;
|
||||||
|
@@ -10,6 +10,6 @@ load data infile '../../std_data/rpl_loaddata.dat' into table test.t1;
|
|||||||
select count(*) from test.t1;
|
select count(*) from test.t1;
|
||||||
count(*)
|
count(*)
|
||||||
2
|
2
|
||||||
show binlog events from <binlog_start>;
|
show binlog events from 107;
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
drop table test.t1;
|
drop table test.t1;
|
||||||
|
@@ -4,23 +4,39 @@ reset master;
|
|||||||
reset slave;
|
reset slave;
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||||
start slave;
|
start slave;
|
||||||
|
show master status;
|
||||||
|
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||||
|
master-bin.000001 107 <Binlog_Ignore_DB>
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||||
|
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 107 # # master-bin.000001 Yes Yes 0 0 107 # None 0 No # No 0 0 1
|
||||||
stop slave;
|
stop slave;
|
||||||
change master to master_log_pos=MASTER_LOG_POS;
|
change master to master_log_pos=107;
|
||||||
start slave;
|
start slave;
|
||||||
stop slave;
|
stop slave;
|
||||||
change master to master_log_pos=MASTER_LOG_POS;
|
change master to master_log_pos=107;
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||||
|
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 107 # # master-bin.000001 No No 0 0 107 # None 0 No # No 0 0 1
|
||||||
start slave;
|
start slave;
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||||
|
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 107 # # master-bin.000001 Yes Yes 0 0 107 # None 0 No # No 0 0 1
|
||||||
stop slave;
|
stop slave;
|
||||||
# impossible position leads to an error
|
change master to master_log_pos=178;
|
||||||
change master to master_log_pos=MASTER_LOG_POS;
|
|
||||||
start slave;
|
start slave;
|
||||||
Last_IO_Error = Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position'
|
show slave status;
|
||||||
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||||
|
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 178 # # master-bin.000001 No Yes 0 0 178 # None 0 No # No 1236 Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position' 0 1
|
||||||
|
show master status;
|
||||||
|
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||||
|
master-bin.000001 107 <Binlog_Ignore_DB>
|
||||||
create table if not exists t1 (n int);
|
create table if not exists t1 (n int);
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (n int);
|
create table t1 (n int);
|
||||||
insert into t1 values (1),(2),(3);
|
insert into t1 values (1),(2),(3);
|
||||||
stop slave;
|
stop slave;
|
||||||
change master to master_log_pos=MASTER_LOG_POS;
|
change master to master_log_pos=207;
|
||||||
start slave;
|
start slave;
|
||||||
select * from t1 ORDER BY n;
|
select * from t1 ORDER BY n;
|
||||||
n
|
n
|
||||||
|
@@ -8,17 +8,48 @@ start slave;
|
|||||||
CREATE TABLE t1 (a INT, b LONG);
|
CREATE TABLE t1 (a INT, b LONG);
|
||||||
INSERT INTO t1 VALUES (1,1), (2,2);
|
INSERT INTO t1 VALUES (1,1), (2,2);
|
||||||
INSERT INTO t1 VALUES (3,UUID()), (4,UUID());
|
INSERT INTO t1 VALUES (3,UUID()), (4,UUID());
|
||||||
show binlog events from <binlog_start>;
|
SHOW BINLOG EVENTS;
|
||||||
**** On Slave ****
|
**** On Slave ****
|
||||||
show binlog events from <binlog_start>;
|
SHOW SLAVE STATUS;
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Slave_IO_State #
|
||||||
slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT, b LONG)
|
Master_Host 127.0.0.1
|
||||||
slave-bin.000001 # Query # # BEGIN
|
Master_User root
|
||||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1,1), (2,2)
|
Master_Port MASTER_PORT
|
||||||
slave-bin.000001 # Query # # COMMIT
|
Connect_Retry 1
|
||||||
slave-bin.000001 # Query # # BEGIN
|
Master_Log_File master-bin.000001
|
||||||
slave-bin.000001 # Table_map # # table_id: # (test.t1)
|
Read_Master_Log_Pos #
|
||||||
slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
Relay_Log_File #
|
||||||
slave-bin.000001 # Query # # COMMIT
|
Relay_Log_Pos #
|
||||||
show binlog events from <binlog_start>;
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos #
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
|
SHOW BINLOG EVENTS;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
|
@@ -41,11 +41,14 @@ t1
|
|||||||
t2
|
t2
|
||||||
**** On Master ****
|
**** On Master ****
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
show binlog events from <binlog_start>;
|
SHOW BINLOG EVENTS;
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a int)
|
master-bin.000001 4 Format_desc 1 107 Server ver: VERSION, Binlog ver: 4
|
||||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a int)
|
master-bin.000001 107 Query 1 193 use `test`; CREATE TABLE t1 (a int)
|
||||||
master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
master-bin.000001 193 Query 1 279 use `test`; CREATE TABLE t2 (a int)
|
||||||
|
master-bin.000001 279 Query 1 403 use `test`; DROP TEMPORARY TABLE IF EXISTS `t2` /* generated by server */
|
||||||
|
master-bin.000001 403 Query 1 527 use `test`; DROP TEMPORARY TABLE IF EXISTS `t2` /* generated by server */
|
||||||
|
master-bin.000001 527 Query 1 631 use `test`; DROP TABLE `t1` /* generated by server */
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t2
|
t2
|
||||||
|
@@ -17,5 +17,45 @@ a
|
|||||||
0
|
0
|
||||||
drop table t1;
|
drop table t1;
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
Last_SQL_Error = Error 'Table 'test.t1' doesn't exist' on opening tables
|
show slave status;
|
||||||
|
Slave_IO_State #
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_MYPORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos #
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running No
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table test.t2
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 1146
|
||||||
|
Last_Error Error executing row event: 'Table 'test.t1' doesn't exist'
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos #
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 1146
|
||||||
|
Last_SQL_Error Error executing row event: 'Table 'test.t1' doesn't exist'
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
@@ -11,8 +11,9 @@ change master to master_user='test';
|
|||||||
Master_User test
|
Master_User test
|
||||||
Master_Host 127.0.0.1
|
Master_Host 127.0.0.1
|
||||||
reset slave;
|
reset slave;
|
||||||
Master_User root
|
Master_User test
|
||||||
Master_Host 127.0.0.1
|
Master_Host 127.0.0.1
|
||||||
|
change master to master_user='root';
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
Master_User root
|
Master_User root
|
||||||
Master_Host 127.0.0.1
|
Master_Host 127.0.0.1
|
||||||
@@ -30,11 +31,11 @@ include/stop_slave.inc
|
|||||||
reset slave;
|
reset slave;
|
||||||
change master to master_user='impossible_user_name';
|
change master to master_user='impossible_user_name';
|
||||||
start slave;
|
start slave;
|
||||||
include/stop_slave.inc
|
stop slave;
|
||||||
change master to master_user='root';
|
change master to master_user='root';
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
include/stop_slave.inc
|
stop slave;
|
||||||
change master to master_user='impossible_user_name';
|
change master to master_user='impossible_user_name';
|
||||||
start slave;
|
start slave;
|
||||||
include/stop_slave.inc
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
|
@@ -77,6 +77,8 @@ id2
|
|||||||
< ---- Master selects-- >
|
< ---- Master selects-- >
|
||||||
-------------------------
|
-------------------------
|
||||||
CALL test.p1();
|
CALL test.p1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM test.t3 ORDER BY id3;
|
SELECT * FROM test.t3 ORDER BY id3;
|
||||||
id3 c
|
id3 c
|
||||||
1 MySQL
|
1 MySQL
|
||||||
|
@@ -69,9 +69,15 @@ INSERT INTO test.t2 VALUES(NULL,0,'Testing MySQL databases is a cool ', 'MySQL C
|
|||||||
UPDATE test.t1 SET b1 = 0 WHERE b1 = 1;
|
UPDATE test.t1 SET b1 = 0 WHERE b1 = 1;
|
||||||
INSERT INTO test.t2 VALUES(NULL,1,'This is an after update test.', 'If this works, total will not be zero on the master or slave',1.4321,5.221,0,YEAR(NOW()),NOW());
|
INSERT INTO test.t2 VALUES(NULL,1,'This is an after update test.', 'If this works, total will not be zero on the master or slave',1.4321,5.221,0,YEAR(NOW()),NOW());
|
||||||
UPDATE test.t2 SET b1 = 0 WHERE b1 = 1;
|
UPDATE test.t2 SET b1 = 0 WHERE b1 = 1;
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
INSERT INTO test.t1 VALUES(NULL,1,'add some more test data test.', 'and hope for the best', 3.321,5.221,0,YEAR(NOW()),NOW());
|
INSERT INTO test.t1 VALUES(NULL,1,'add some more test data test.', 'and hope for the best', 3.321,5.221,0,YEAR(NOW()),NOW());
|
||||||
DELETE FROM test.t1 WHERE id = 1;
|
DELETE FROM test.t1 WHERE id = 1;
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
DELETE FROM test.t2 WHERE id = 1;
|
DELETE FROM test.t2 WHERE id = 1;
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
DROP TRIGGER test.t1_bi;
|
DROP TRIGGER test.t1_bi;
|
||||||
DROP TRIGGER test.t2_ai;
|
DROP TRIGGER test.t2_ai;
|
||||||
DROP TRIGGER test.t1_bu;
|
DROP TRIGGER test.t1_bu;
|
||||||
|
@@ -12,39 +12,201 @@ create table t2(n int not null auto_increment primary key);
|
|||||||
insert into t2 values (1),(2);
|
insert into t2 values (1),(2);
|
||||||
insert into t2 values (3),(4);
|
insert into t2 values (3),(4);
|
||||||
drop table t2;
|
drop table t2;
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=MASTER_LOG_POS;
|
start slave until master_log_file='master-bin.000001', master_log_pos=311;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
4
|
4
|
||||||
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=MASTER_LOG_POS;
|
show slave status;
|
||||||
|
Slave_IO_State #
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_MYPORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos #
|
||||||
|
Relay_Log_File slave-relay-bin.000004
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running #
|
||||||
|
Slave_SQL_Running No
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos #
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition Master
|
||||||
|
Until_Log_File master-bin.000001
|
||||||
|
Until_Log_Pos 311
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
|
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
n
|
n 1
|
||||||
1
|
n 2
|
||||||
2
|
n 3
|
||||||
3
|
n 4
|
||||||
4
|
show slave status;
|
||||||
start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=RELAY_LOG_POS;
|
Slave_IO_State #
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_MYPORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos #
|
||||||
|
Relay_Log_File slave-relay-bin.000004
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running #
|
||||||
|
Slave_SQL_Running No
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos #
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition Master
|
||||||
|
Until_Log_File master-no-such-bin.000001
|
||||||
|
Until_Log_Pos 291
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
|
start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=728;
|
||||||
select * from t2;
|
select * from t2;
|
||||||
n
|
show slave status;
|
||||||
1
|
Slave_IO_State #
|
||||||
2
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_MYPORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos #
|
||||||
|
Relay_Log_File slave-relay-bin.000004
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running #
|
||||||
|
Slave_SQL_Running No
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos #
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition Relay
|
||||||
|
Until_Log_File slave-relay-bin.000004
|
||||||
|
Until_Log_Pos 728
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
start slave;
|
start slave;
|
||||||
stop slave;
|
stop slave;
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=MASTER_LOG_POS;
|
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
||||||
start slave until master_log_file='master-bin', master_log_pos=MASTER_LOG_POS;
|
show slave status;
|
||||||
|
Slave_IO_State #
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_MYPORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos #
|
||||||
|
Relay_Log_File slave-relay-bin.000004
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running No
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos #
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition Master
|
||||||
|
Until_Log_File master-bin.000001
|
||||||
|
Until_Log_Pos 740
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
|
start slave until master_log_file='master-bin', master_log_pos=561;
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=MASTER_LOG_POS, relay_log_pos=RELAY_LOG_POS;
|
start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave until master_log_file='master-bin.000001';
|
start slave until master_log_file='master-bin.000001';
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave until relay_log_file='slave-relay-bin.000002';
|
start slave until relay_log_file='slave-relay-bin.000002';
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=MASTER_LOG_POS;
|
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
start slave sql_thread;
|
start slave sql_thread;
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=MASTER_LOG_POS;
|
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1254 Slave is already running
|
Level Note
|
||||||
|
Code 1254
|
||||||
|
Message Slave is already running
|
||||||
|
@@ -8,8 +8,10 @@ create table t1 (n int);
|
|||||||
reset master;
|
reset master;
|
||||||
stop slave;
|
stop slave;
|
||||||
change master to master_port=SLAVE_PORT;
|
change master to master_port=SLAVE_PORT;
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||||
|
127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # # 0 0 0 107 None 0 No NULL No 0 0 1
|
||||||
start slave;
|
start slave;
|
||||||
Last_IO_Error = Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
|
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
show status like "slave_running";
|
show status like "slave_running";
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
|
@@ -8,6 +8,9 @@ create table t1 (n int);
|
|||||||
reset master;
|
reset master;
|
||||||
stop slave;
|
stop slave;
|
||||||
change master to master_port=SLAVE_PORT;
|
change master to master_port=SLAVE_PORT;
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
||||||
|
127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # 0 0 0 107 None 0 No NULL No 0 0 1
|
||||||
start slave;
|
start slave;
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
@@ -18,5 +18,46 @@ drop user rpl@127.0.0.1;
|
|||||||
flush privileges;
|
flush privileges;
|
||||||
stop slave;
|
stop slave;
|
||||||
start slave;
|
start slave;
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State #
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User rpl
|
||||||
|
Master_Port MASTER_MYPORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos #
|
||||||
|
Relay_Log_File #
|
||||||
|
Relay_Log_Pos #
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Connecting
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos #
|
||||||
|
Relay_Log_Space #
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master NULL
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno #
|
||||||
|
Last_IO_Error #
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
Replicate_Ignore_Server_Ids
|
||||||
|
Master_Server_Id 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@@ -376,7 +376,7 @@ CREATE TABLE t12 (data LONG);
|
|||||||
LOCK TABLES t12 WRITE;
|
LOCK TABLES t12 WRITE;
|
||||||
INSERT INTO t12 VALUES(UUID());
|
INSERT INTO t12 VALUES(UUID());
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
show binlog events from <binlog_start>;
|
show binlog events;
|
||||||
show binlog events from <binlog_start>;
|
show binlog events;
|
||||||
drop database mysqltest1;
|
drop database mysqltest1;
|
||||||
set global binlog_format= @saved_binlog_format;
|
set global binlog_format= @saved_binlog_format;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -34,6 +34,8 @@ END//
|
|||||||
SELECT sf1();
|
SELECT sf1();
|
||||||
sf1()
|
sf1()
|
||||||
0
|
0
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -51,6 +53,8 @@ id data
|
|||||||
2 1
|
2 1
|
||||||
3 3
|
3 3
|
||||||
INSERT INTO t4 VALUES(sf1());
|
INSERT INTO t4 VALUES(sf1());
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -71,6 +75,9 @@ id data
|
|||||||
3 3
|
3 3
|
||||||
3 3
|
3 3
|
||||||
UPDATE t4 SET i = sf1() + 1 WHERE i = sf1();
|
UPDATE t4 SET i = sf1() + 1 WHERE i = sf1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -97,6 +104,8 @@ id data
|
|||||||
3 3
|
3 3
|
||||||
3 3
|
3 3
|
||||||
DELETE FROM t4 WHERE i = sf1() + 1;
|
DELETE FROM t4 WHERE i = sf1() + 1;
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
|
@@ -31,6 +31,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# ;
|
ALTER PROCEDURE sp1 #DET# ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -80,6 +82,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# CONTAINS SQL ;
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -129,6 +133,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# NO SQL ;
|
ALTER PROCEDURE sp1 #DET# NO SQL ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -178,6 +184,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# READS SQL DATA ;
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -227,6 +235,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA ;
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -276,6 +286,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -325,6 +337,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# CONTAINS SQL COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -374,6 +388,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# NO SQL COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# NO SQL COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -423,6 +439,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# READS SQL DATA COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -472,6 +490,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -521,6 +541,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -570,6 +592,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -619,6 +643,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -668,6 +694,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -717,6 +745,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -766,6 +796,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -815,6 +847,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -864,6 +898,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -913,6 +949,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -962,6 +1000,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1011,6 +1051,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 #DET# SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1060,6 +1102,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1109,6 +1153,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1158,6 +1204,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1207,6 +1255,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1256,6 +1306,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1305,6 +1357,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1354,6 +1408,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1403,6 +1459,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1452,6 +1510,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1501,6 +1561,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1550,6 +1612,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1599,6 +1663,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1648,6 +1714,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1697,6 +1765,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY INVOKER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY INVOKER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1746,6 +1816,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1795,6 +1867,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1844,6 +1918,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1893,6 +1969,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1942,6 +2020,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -1991,6 +2071,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 #DET# SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2040,6 +2122,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2089,6 +2173,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2138,6 +2224,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2187,6 +2275,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2236,6 +2326,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2285,6 +2377,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2334,6 +2428,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2383,6 +2479,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2432,6 +2530,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2481,6 +2581,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2530,6 +2632,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2579,6 +2683,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2628,6 +2734,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2677,6 +2785,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY DEFINER ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY DEFINER ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2726,6 +2836,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2775,6 +2887,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2824,6 +2938,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2873,6 +2989,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
@@ -2922,6 +3040,8 @@ CLOSE cur2;
|
|||||||
END//
|
END//
|
||||||
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
|
@@ -30,6 +30,8 @@ CLOSE cur1;
|
|||||||
CLOSE cur2;
|
CLOSE cur2;
|
||||||
END//
|
END//
|
||||||
CALL sp1();
|
CALL sp1();
|
||||||
|
Warnings:
|
||||||
|
Error 1329 No data - zero rows fetched, selected, or processed
|
||||||
SELECT * FROM t1 ORDER BY id;
|
SELECT * FROM t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
1 1
|
1 1
|
||||||
|
@@ -6,3 +6,94 @@ ix_unique_lob : Bug#52283 Innodb reports extra warnings when SELECT/
|
|||||||
ix_unique_string_length : Bug#52283 Innodb reports extra warnings when SELECT/WHERE is performed using invalid value
|
ix_unique_string_length : Bug#52283 Innodb reports extra warnings when SELECT/WHERE is performed using invalid value
|
||||||
rpl_empty_master_crash : Test not applicable in 5.5+
|
rpl_empty_master_crash : Test not applicable in 5.5+
|
||||||
rpl_REDIRECT : Test not applicable in 5.5+
|
rpl_REDIRECT : Test not applicable in 5.5+
|
||||||
|
|
||||||
|
rpl_create_database : Result Difference Due To Change In .inc file
|
||||||
|
rpl_loaddata_m : Result Difference Due To Change In .inc file
|
||||||
|
rpl_sp_effects : Result Difference Due To Change In .inc file
|
||||||
|
rpl_variables : Result Difference Due To Change In .inc file
|
||||||
|
rpl_loaddata_s : Result Difference Due To Change In .inc file
|
||||||
|
rpl_dual_pos_advance : Result Difference Due To Change In .inc file
|
||||||
|
rpl000011 : Result Difference Due To Change In .inc file
|
||||||
|
rpl000013 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_000015 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_LD_INFILE : Result Difference Due To Change In .inc file
|
||||||
|
rpl_alter : Result Difference Due To Change In .inc file
|
||||||
|
rpl_alter_db : Result Difference Due To Change In .inc file
|
||||||
|
rpl_alter_db : Result Difference Due To Change In .inc file
|
||||||
|
rpl_bit : Result Difference Due To Change In .inc file
|
||||||
|
rpl_bit_npk : Result Difference Due To Change In .inc file
|
||||||
|
rpl_change_master : Result Difference Due To Change In .inc file
|
||||||
|
rpl_do_grant : Result Difference Due To Change In .inc file
|
||||||
|
rpl_drop : Result Difference Due To Change In .inc file
|
||||||
|
rpl_drop_db : Result Difference Due To Change In .inc file
|
||||||
|
rpl_flushlog_loop : Result Difference Due To Change In .inc file
|
||||||
|
rpl_get_lock : Result Difference Due To Change In .inc file
|
||||||
|
rpl_get_lock : Result Difference Due To Change In .inc file
|
||||||
|
rpl_insert : Result Difference Due To Change In .inc file
|
||||||
|
rpl_insert_select : Result Difference Due To Change In .inc file
|
||||||
|
rpl_loaddata2 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_loaddatalocal : Result Difference Due To Change In .inc file
|
||||||
|
rpl_loadfile : Result Difference Due To Change In .inc file
|
||||||
|
rpl_log_pos : Result Difference Due To Change In .inc file
|
||||||
|
rpl_many_optimize : Result Difference Due To Change In .inc file
|
||||||
|
rpl_master_pos_wait : Result Difference Due To Change In .inc file
|
||||||
|
rpl_misc_functions : Result Difference Due To Change In .inc file
|
||||||
|
rpl_ps : Result Difference Due To Change In .inc file
|
||||||
|
rpl_server_id1 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_session_var : Result Difference Due To Change In .inc file
|
||||||
|
rpl_sf : Result Difference Due To Change In .inc file
|
||||||
|
rpl_slave_status : Result Difference Due To Change In .inc file
|
||||||
|
rpl_sp004 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_start_stop_slave : Result Difference Due To Change In .inc file
|
||||||
|
rpl_stm_max_relay_size : Result Difference Due To Change In .inc file
|
||||||
|
rpl_stm_mystery22 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_stm_no_op : Result Difference Due To Change In .inc file
|
||||||
|
rpl_stm_reset_slave : Result Difference Due To Change In .inc file
|
||||||
|
rpl_temp_table : Result Difference Due To Change In .inc file
|
||||||
|
rpl_temporary : Result Difference Due To Change In .inc file
|
||||||
|
rpl_trigger : Result Difference Due To Change In .inc file
|
||||||
|
rpl_trunc_temp : Result Difference Due To Change In .inc file
|
||||||
|
rpl_user_variables : Result Difference Due To Change In .inc file
|
||||||
|
rpl_server_id2 : Result Difference Due To Change In .inc file
|
||||||
|
rpl000010 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_init_slave : Result Difference Due To Change In .inc file
|
||||||
|
rpl_multi_delete2 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_view : Result Difference Due To Change In .inc file
|
||||||
|
rpl_ignore_table_update : Result Difference Due To Change In .inc file
|
||||||
|
rpl_err_ignoredtable : Result Difference Due To Change In .inc file
|
||||||
|
rpl_multi_update4 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_multi_delete : Result Difference Due To Change In .inc file
|
||||||
|
rpl_ignore_grant : Result Difference Due To Change In .inc file
|
||||||
|
rpl_ignore_revoke : Result Difference Due To Change In .inc file
|
||||||
|
rpl_free_items : Result Difference Due To Change In .inc file
|
||||||
|
rpl_replicate_ignore_db : Result Difference Due To Change In .inc file
|
||||||
|
rpl000017 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_skip_error : Result Difference Due To Change In .inc file
|
||||||
|
|
||||||
|
rpl_row_until : Test Present in rpl suite as well . Test Fails table with t2 table not found.
|
||||||
|
rpl_loaddata_s : Test Present in rpl suite as well . Test Fails due to bin log truncation.
|
||||||
|
rpl_log_pos : Test Present in rpl suite as well . Test Fails due to bin log truncation.
|
||||||
|
rpl_row_NOW : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_USER : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_drop : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_func001 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_max_relay_size : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_reset_slave : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_sp001 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_sp005 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_sp008 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_sp009 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_sp010 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_sp011 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_sp012 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_stop_middle : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_trig001 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_trig002 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_trig003 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_view01 : Result Difference Due To Change In .inc file
|
||||||
|
rpl_switch_stm_row_mixed : Result Difference Due To Change In .inc file
|
||||||
|
rpl_relayspace : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_inexist_tbl : Result Difference Due To Change In .inc file
|
||||||
|
rpl_sp : Result Difference Due To Change In .inc file
|
||||||
|
rpl_rbr_to_sbr : Result Difference Due To Change In .inc file
|
||||||
|
rpl_row_until : Test Timesout
|
||||||
|
@@ -43,14 +43,13 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
# Bug#52430 : Uncomment the following lines
|
# Bug#52430
|
||||||
# when the bug is fixed
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
#INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
#INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
#INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT hex(c1),hex(c2),hex(c3) FROM t1;
|
SELECT hex(c1),hex(c2),hex(c3) FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@@ -43,14 +43,13 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
# Bug#52430 : Uncomment the following lines
|
# Bug#52430
|
||||||
# when the bug is fixed
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
#INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
#INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
#INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@@ -43,14 +43,13 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
# Bug#52430 : Uncomment the following lines
|
# Bug#52430
|
||||||
# when the bug is fixed
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
#INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
#INSERT INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
#INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@@ -18,10 +18,9 @@ DROP TABLE t1;
|
|||||||
CREATE TABLE t1(c1 BINARY(10) NOT NULL PRIMARY KEY);
|
CREATE TABLE t1(c1 BINARY(10) NOT NULL PRIMARY KEY);
|
||||||
INSERT INTO t1 (c1) VALUES('abc');
|
INSERT INTO t1 (c1) VALUES('abc');
|
||||||
INSERT INTO t1 (c1) VALUES('def');
|
INSERT INTO t1 (c1) VALUES('def');
|
||||||
# Bug#52430 : Uncomment the following lines
|
# Bug#52430
|
||||||
# when the bug is fixed
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1) VALUES('abc');
|
||||||
#INSERT INTO t1 (c1) VALUES('abc');
|
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1(c1 VARBINARY(10) NOT NULL PRIMARY KEY);
|
CREATE TABLE t1(c1 VARBINARY(10) NOT NULL PRIMARY KEY);
|
||||||
|
@@ -18,10 +18,9 @@ DROP TABLE t1;
|
|||||||
CREATE TABLE t1(c1 BINARY(10) NULL UNIQUE);
|
CREATE TABLE t1(c1 BINARY(10) NULL UNIQUE);
|
||||||
INSERT INTO t1 (c1) VALUES('abc');
|
INSERT INTO t1 (c1) VALUES('abc');
|
||||||
INSERT INTO t1 (c1) VALUES('def');
|
INSERT INTO t1 (c1) VALUES('def');
|
||||||
# Bug#52430 : Uncomment the following lines
|
# Bug#52430
|
||||||
# when the bug is fixed
|
--error ER_DUP_ENTRY
|
||||||
#--error ER_DUP_ENTRY
|
INSERT INTO t1 (c1) VALUES('abc');
|
||||||
#INSERT INTO t1 (c1) VALUES('abc');
|
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1(c1 VARBINARY(10) NULL UNIQUE);
|
CREATE TABLE t1(c1 VARBINARY(10) NULL UNIQUE);
|
||||||
|
@@ -14,14 +14,22 @@ connection slave;
|
|||||||
sync_with_master;
|
sync_with_master;
|
||||||
connection master;
|
connection master;
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
CALL mtr.add_suppression(" Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
create table t2(n int);
|
create table t2(n int);
|
||||||
create temporary table t1 (n int);
|
create temporary table t1 (n int);
|
||||||
insert into t1 values(1),(2),(3);
|
insert into t1 values(1),(2),(3);
|
||||||
|
--disable_warnings
|
||||||
insert into t2 select * from t1;
|
insert into t2 select * from t1;
|
||||||
|
--enable_warnings
|
||||||
connection master1;
|
connection master1;
|
||||||
create temporary table t1 (n int);
|
create temporary table t1 (n int);
|
||||||
insert into t1 values (4),(5);
|
insert into t1 values (4),(5);
|
||||||
|
--disable_warnings
|
||||||
insert into t2 select * from t1 as t10;
|
insert into t2 select * from t1 as t10;
|
||||||
|
--enable_warnings
|
||||||
save_master_pos;
|
save_master_pos;
|
||||||
disconnect master;
|
disconnect master;
|
||||||
connection slave;
|
connection slave;
|
||||||
|
@@ -11,25 +11,31 @@ save_master_pos;
|
|||||||
connection slave;
|
connection slave;
|
||||||
stop slave;
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
let $status_items= Master_Log_File, Read_Master_Log_Pos, Relay_Master_Log_File, Exec_Master_Log_Pos;
|
--vertical_results
|
||||||
source include/show_slave_status.inc;
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
|
--replace_column 1 # 5 # 8 # 9 # 23 # 33 #
|
||||||
|
show slave status;
|
||||||
|
|
||||||
change master to master_host='127.0.0.1';
|
change master to master_host='127.0.0.1';
|
||||||
# The following needs to be cleaned up when change master is fixed
|
# The following needs to be cleaned up when change master is fixed
|
||||||
source include/show_slave_status.inc;
|
--vertical_results
|
||||||
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
|
--replace_column 1 # 5 # 8 # 9 # 23 # 33 #
|
||||||
|
show slave status;
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval change master to master_host='127.0.0.1',master_user='root',
|
eval change master to master_host='127.0.0.1',master_user='root',
|
||||||
master_password='',master_port=$MASTER_MYPORT;
|
master_password='',master_port=$MASTER_MYPORT;
|
||||||
source include/show_slave_status.inc;
|
--vertical_results
|
||||||
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
|
--replace_column 1 # 5 # 8 # 9 # 23 # 33 #
|
||||||
|
show slave status;
|
||||||
start slave;
|
start slave;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
let $status_items= Master_Log_File, Relay_Master_Log_File;
|
|
||||||
source include/show_slave_status.inc;
|
|
||||||
source include/check_slave_is_running.inc;
|
|
||||||
|
|
||||||
--vertical_results
|
--vertical_results
|
||||||
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
|
--replace_column 1 # 5 # 8 # 9 # 23 # 33 #
|
||||||
|
--replace_column 33 #
|
||||||
|
show slave status;
|
||||||
connection master;
|
connection master;
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
|
@@ -18,26 +18,13 @@ save_master_pos;
|
|||||||
connection slave;
|
connection slave;
|
||||||
--real_sleep 3 # wait for I/O thread to have read updates
|
--real_sleep 3 # wait for I/O thread to have read updates
|
||||||
stop slave;
|
stop slave;
|
||||||
source include/wait_for_slave_to_stop.inc;
|
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||||
|
--replace_column 1 # 7 # 8 # 9 # 23 # 33 #
|
||||||
let $read_pos= query_get_value(SHOW SLAVE STATUS, Read_Master_Log_Pos, 1);
|
show slave status;
|
||||||
let $exec_pos= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1);
|
|
||||||
if (`SELECT $read_pos = $exec_pos`)
|
|
||||||
{
|
|
||||||
source include/show_rpl_debug_info.inc;
|
|
||||||
echo 'Read_Master_Log_Pos: $read_pos' == 'Exec_Master_Log_Pos: $exec_pos';
|
|
||||||
die Failed because Read_Master_Log_Pos is equal to Exec_Master_Log_Pos;
|
|
||||||
}
|
|
||||||
change master to master_user='root';
|
change master to master_user='root';
|
||||||
let $read_pos= query_get_value(SHOW SLAVE STATUS, Read_Master_Log_Pos, 1);
|
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||||
let $exec_pos= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1);
|
--replace_column 1 # 7 # 8 # 9 # 23 # 33 #
|
||||||
if (`SELECT $read_pos <> $exec_pos`)
|
show slave status;
|
||||||
{
|
|
||||||
source include/show_rpl_debug_info.inc;
|
|
||||||
echo 'Read_Master_Log_Pos: $read_pos' <> 'Exec_Master_Log_Pos: $exec_pos';
|
|
||||||
die Failed because Read_Master_Log_Pos is not equal to Exec_Master_Log_Pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
start slave;
|
start slave;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
-- source include/master-slave.inc
|
-- source include/master-slave.inc
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
|
@@ -41,7 +41,8 @@ sleep 5;
|
|||||||
#
|
#
|
||||||
# Show status of slave
|
# Show status of slave
|
||||||
#
|
#
|
||||||
--let status_items= Relay_Log_File
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
--source include/show_slave_status.inc
|
--replace_column 1 # 8 # 9 # 16 # 23 # 33 #
|
||||||
--source include/check_slave_is_running.inc
|
--vertical_results
|
||||||
|
SHOW SLAVE STATUS;
|
||||||
STOP SLAVE;
|
STOP SLAVE;
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
source include/master-slave.inc;
|
source include/master-slave.inc;
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
create table t1(n int);
|
create table t1(n int);
|
||||||
|
@@ -20,7 +20,9 @@ save_master_pos;
|
|||||||
connection slave;
|
connection slave;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
select count(*) from test.t1; # check that LOAD was replicated
|
select count(*) from test.t1; # check that LOAD was replicated
|
||||||
source include/show_binlog_events.inc;
|
--replace_column 2 # 5 #
|
||||||
|
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||||
|
show binlog events from 107; # should be nothing
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
connection master;
|
connection master;
|
||||||
|
@@ -13,7 +13,7 @@
|
|||||||
-- source include/master-slave.inc
|
-- source include/master-slave.inc
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
# Begin clean up test section
|
# Begin clean up test section
|
||||||
|
@@ -11,41 +11,36 @@
|
|||||||
# Passes with rbr no problem, removed statement include [jbm]
|
# Passes with rbr no problem, removed statement include [jbm]
|
||||||
|
|
||||||
source include/master-slave.inc;
|
source include/master-slave.inc;
|
||||||
let $master_log_pos= query_get_value(SHOW MASTER STATUS, Position, 1);
|
--replace_column 3 <Binlog_Ignore_DB>
|
||||||
|
show master status;
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
|
show slave status;
|
||||||
stop slave;
|
stop slave;
|
||||||
|
change master to master_log_pos=107;
|
||||||
--replace_result $master_log_pos MASTER_LOG_POS
|
|
||||||
eval change master to master_log_pos=$master_log_pos;
|
|
||||||
start slave;
|
start slave;
|
||||||
sleep 5;
|
sleep 5;
|
||||||
stop slave;
|
stop slave;
|
||||||
|
change master to master_log_pos=107;
|
||||||
--replace_result $master_log_pos MASTER_LOG_POS
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval change master to master_log_pos=$master_log_pos;
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
--let $slave_param= Read_Master_Log_Pos
|
show slave status;
|
||||||
--let $slave_param_value= $master_log_pos
|
|
||||||
--source include/wait_for_slave_param.inc
|
|
||||||
|
|
||||||
start slave;
|
start slave;
|
||||||
sleep 5;
|
sleep 5;
|
||||||
--let $slave_param= Read_Master_Log_Pos
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
--let $slave_param_value= $master_log_pos
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
--source include/wait_for_slave_param.inc
|
show slave status;
|
||||||
--source include/check_slave_no_error.inc
|
|
||||||
|
|
||||||
stop slave;
|
stop slave;
|
||||||
--echo # impossible position leads to an error
|
change master to master_log_pos=178;
|
||||||
--replace_result 177 MASTER_LOG_POS
|
|
||||||
change master to master_log_pos=177;
|
|
||||||
start slave;
|
start slave;
|
||||||
sleep 2;
|
sleep 2;
|
||||||
let $slave_io_errno= 1236;
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
let $show_slave_io_error= 1;
|
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||||
source include/wait_for_slave_io_error.inc;
|
show slave status;
|
||||||
connection master;
|
connection master;
|
||||||
|
--replace_column 3 <Binlog_Ignore_DB>
|
||||||
let $master_log_pos= query_get_value(SHOW MASTER STATUS, Position, 1);
|
show master status;
|
||||||
create table if not exists t1 (n int);
|
create table if not exists t1 (n int);
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (n int);
|
create table t1 (n int);
|
||||||
@@ -53,9 +48,7 @@ insert into t1 values (1),(2),(3);
|
|||||||
save_master_pos;
|
save_master_pos;
|
||||||
connection slave;
|
connection slave;
|
||||||
stop slave;
|
stop slave;
|
||||||
|
change master to master_log_pos=207;
|
||||||
--replace_result $master_log_pos MASTER_LOG_POS
|
|
||||||
eval change master to master_log_pos=$master_log_pos;
|
|
||||||
start slave;
|
start slave;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
select * from t1 ORDER BY n;
|
select * from t1 ORDER BY n;
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
source include/master-slave.inc;
|
source include/master-slave.inc;
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
create table t1(id int, i int, r1 int, r2 int, p varchar(100));
|
create table t1(id int, i int, r1 int, r2 int, p varchar(100));
|
||||||
|
@@ -9,17 +9,25 @@
|
|||||||
CREATE TABLE t1 (a INT, b LONG);
|
CREATE TABLE t1 (a INT, b LONG);
|
||||||
INSERT INTO t1 VALUES (1,1), (2,2);
|
INSERT INTO t1 VALUES (1,1), (2,2);
|
||||||
INSERT INTO t1 VALUES (3,UUID()), (4,UUID());
|
INSERT INTO t1 VALUES (3,UUID()), (4,UUID());
|
||||||
|
let $VERSION=`select version()`;
|
||||||
|
--replace_result $VERSION VERSION
|
||||||
|
--replace_column 2 # 5 #
|
||||||
|
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||||
# Different number of binlog events are generated by different engines
|
# Different number of binlog events are generated by different engines
|
||||||
--disable_result_log
|
--disable_result_log
|
||||||
source include/show_binlog_events.inc;
|
SHOW BINLOG EVENTS;
|
||||||
--enable_result_log
|
--enable_result_log
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
--echo **** On Slave ****
|
--echo **** On Slave ****
|
||||||
source include/show_binlog_events.inc;
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
|
--replace_column 1 # 7 # 8 # 9 # 22 # 23 # 33 #
|
||||||
|
--query_vertical SHOW SLAVE STATUS
|
||||||
|
--replace_result $VERSION VERSION
|
||||||
|
--replace_column 2 # 5 #
|
||||||
|
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||||
# Different number of binlog events are generated by different engines
|
# Different number of binlog events are generated by different engines
|
||||||
--disable_result_log
|
--disable_result_log
|
||||||
source include/show_binlog_events.inc;
|
SHOW BINLOG EVENTS;
|
||||||
--enable_result_log
|
--enable_result_log
|
||||||
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_rbr_to_sbr_master.sql
|
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_rbr_to_sbr_master.sql
|
||||||
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_rbr_to_sbr_slave.sql
|
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/rpl_rbr_to_sbr_slave.sql
|
||||||
|
@@ -30,7 +30,10 @@ connection master;
|
|||||||
--echo **** On Master ****
|
--echo **** On Master ****
|
||||||
# Should drop the non-temporary table t1 and the temporary table t2
|
# Should drop the non-temporary table t1 and the temporary table t2
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
source include/show_binlog_events.inc;
|
let $VERSION=`select version()`;
|
||||||
|
--replace_result $VERSION VERSION
|
||||||
|
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||||
|
SHOW BINLOG EVENTS;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
--echo **** On Slave ****
|
--echo **** On Slave ****
|
||||||
|
@@ -23,10 +23,12 @@ insert into t1 values (1);
|
|||||||
|
|
||||||
connection slave;
|
connection slave;
|
||||||
# slave should have stopped because can't find table t1
|
# slave should have stopped because can't find table t1
|
||||||
|
wait_for_slave_to_stop;
|
||||||
# see if we have a good error message:
|
# see if we have a good error message:
|
||||||
--let $slave_sql_errno= 1146
|
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||||
--let $show_slave_sql_error= 1
|
--replace_column 1 # 7 # 8 # 9 # 22 # 23 # 33 #
|
||||||
--source include/wait_for_slave_sql_error.inc
|
--vertical_results
|
||||||
|
show slave status;
|
||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
connection master;
|
connection master;
|
||||||
|
@@ -18,50 +18,44 @@ connection master;
|
|||||||
# create some events on master
|
# create some events on master
|
||||||
create table t1(n int not null auto_increment primary key);
|
create table t1(n int not null auto_increment primary key);
|
||||||
insert into t1 values (1),(2),(3),(4);
|
insert into t1 values (1),(2),(3),(4);
|
||||||
let $master_log_pos_1= query_get_value(SHOW MASTER STATUS, Position, 1);
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
create table t2(n int not null auto_increment primary key);
|
create table t2(n int not null auto_increment primary key);
|
||||||
insert into t2 values (1),(2);
|
insert into t2 values (1),(2);
|
||||||
let $master_log_pos_2= query_get_value(SHOW MASTER STATUS, Position, 1);
|
|
||||||
insert into t2 values (3),(4);
|
insert into t2 values (3),(4);
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
|
||||||
# try to replicate all queries until drop of t1
|
# try to replicate all queries until drop of t1
|
||||||
connection slave;
|
connection slave;
|
||||||
--replace_result $master_log_pos_1 MASTER_LOG_POS
|
start slave until master_log_file='master-bin.000001', master_log_pos=311;
|
||||||
eval start slave until master_log_file='master-bin.000001', master_log_pos=$master_log_pos_1;
|
|
||||||
sleep 2;
|
sleep 2;
|
||||||
wait_for_slave_to_stop;
|
wait_for_slave_to_stop;
|
||||||
# here table should be still not deleted
|
# here table should be still not deleted
|
||||||
select * from t1;
|
select * from t1;
|
||||||
--let $slave_param= Exec_Master_Log_Pos
|
--vertical_results
|
||||||
--let $slave_param_value= $master_log_pos_1
|
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||||
--source include/check_slave_param.inc
|
--replace_column 1 # 7 # 9 # 11 # 22 # 23 # 33 #
|
||||||
|
show slave status;
|
||||||
|
|
||||||
# this should fail right after start
|
# this should fail right after start
|
||||||
--replace_result 291 MASTER_LOG_POS
|
|
||||||
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
|
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
|
||||||
# again this table should be still not deleted
|
# again this table should be still not deleted
|
||||||
select * from t1;
|
select * from t1;
|
||||||
sleep 2;
|
sleep 2;
|
||||||
wait_for_slave_to_stop;
|
wait_for_slave_to_stop;
|
||||||
--let $slave_param= Exec_Master_Log_Pos
|
--vertical_results
|
||||||
--let $slave_param_value= $master_log_pos_1
|
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||||
--source include/check_slave_param.inc
|
--replace_column 1 # 7 # 9 # 11 # 22 # 23 # 33 #
|
||||||
|
show slave status;
|
||||||
|
|
||||||
# try replicate all up to and not including the second insert to t2;
|
# try replicate all up to and not including the second insert to t2;
|
||||||
let $master_log_pos= $master_log_pos_2;
|
start slave until relay_log_file='slave-relay-bin.000004', relay_log_pos=728;
|
||||||
let $relay_log_file= slave-relay-bin.000004;
|
|
||||||
--source include/get_relay_log_pos.inc
|
|
||||||
--replace_result $relay_log_pos RELAY_LOG_POS
|
|
||||||
eval start slave until relay_log_file='$relay_log_file', relay_log_pos=$relay_log_pos;
|
|
||||||
sleep 2;
|
sleep 2;
|
||||||
wait_for_slave_to_stop;
|
wait_for_slave_to_stop;
|
||||||
select * from t2;
|
select * from t2;
|
||||||
--let $slave_param= Exec_Master_Log_Pos
|
--vertical_results
|
||||||
--let $slave_param_value= $master_log_pos
|
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||||
--source include/check_slave_param.inc
|
--replace_column 1 # 7 # 9 # 11 # 22 # 23 # 33 #
|
||||||
|
show slave status;
|
||||||
|
|
||||||
# clean up
|
# clean up
|
||||||
start slave;
|
start slave;
|
||||||
@@ -71,32 +65,27 @@ connection slave;
|
|||||||
sync_with_master;
|
sync_with_master;
|
||||||
stop slave;
|
stop slave;
|
||||||
|
|
||||||
--let $exec_log_pos_1= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1)
|
|
||||||
# this should stop immediately as we are already there
|
# this should stop immediately as we are already there
|
||||||
--replace_result $master_log_pos_2 MASTER_LOG_POS
|
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
||||||
eval start slave until master_log_file='master-bin.000001', master_log_pos=$master_log_pos_2;
|
|
||||||
sleep 2;
|
sleep 2;
|
||||||
wait_for_slave_to_stop;
|
wait_for_slave_to_stop;
|
||||||
# here the sql slave thread should be stopped
|
# here the sql slave thread should be stopped
|
||||||
--let $slave_param= Exec_Master_Log_Pos
|
--vertical_results
|
||||||
--let $slave_param_value= $exec_log_pos_1
|
--replace_result $MASTER_MYPORT MASTER_MYPORT bin.000005 bin.000004 bin.000006 bin.000004 bin.000007 bin.000004
|
||||||
--source include/check_slave_param.inc
|
--replace_column 1 # 7 # 9 # 22 # 23 # 33 #
|
||||||
|
show slave status;
|
||||||
|
|
||||||
#testing various error conditions
|
#testing various error conditions
|
||||||
--replace_result 561 MASTER_LOG_POS
|
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until master_log_file='master-bin', master_log_pos=561;
|
start slave until master_log_file='master-bin', master_log_pos=561;
|
||||||
--replace_result 561 MASTER_LOG_POS 12 RELAY_LOG_POS
|
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;
|
start slave until master_log_file='master-bin.000001', master_log_pos=561, relay_log_pos=12;
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until master_log_file='master-bin.000001';
|
start slave until master_log_file='master-bin.000001';
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until relay_log_file='slave-relay-bin.000002';
|
start slave until relay_log_file='slave-relay-bin.000002';
|
||||||
--replace_result 561 MASTER_LOG_POS
|
|
||||||
--error 1277
|
--error 1277
|
||||||
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
|
start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
|
||||||
# Warning should be given for second command
|
# Warning should be given for second command
|
||||||
start slave sql_thread;
|
start slave sql_thread;
|
||||||
--replace_result 740 MASTER_LOG_POS
|
|
||||||
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
start slave until master_log_file='master-bin.000001', master_log_pos=740;
|
||||||
|
@@ -12,13 +12,10 @@ reset master;
|
|||||||
stop slave;
|
stop slave;
|
||||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
eval change master to master_port=$SLAVE_MYPORT;
|
eval change master to master_port=$SLAVE_MYPORT;
|
||||||
source include/check_slave_no_error.inc;
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
|
--replace_column 16 # 18 #
|
||||||
|
show slave status;
|
||||||
start slave;
|
start slave;
|
||||||
let $slave_io_errno= 1593;
|
|
||||||
let $show_slave_io_error= 1;
|
|
||||||
source include/wait_for_slave_io_error.inc;
|
|
||||||
|
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
# can't MASTER_POS_WAIT(), it does not work in this weird setup
|
# can't MASTER_POS_WAIT(), it does not work in this weird setup
|
||||||
# (when slave is its own master without --replicate-same-server-id)
|
# (when slave is its own master without --replicate-same-server-id)
|
||||||
|
@@ -9,6 +9,9 @@ reset master;
|
|||||||
stop slave;
|
stop slave;
|
||||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
eval change master to master_port=$SLAVE_MYPORT;
|
eval change master to master_port=$SLAVE_MYPORT;
|
||||||
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
|
--replace_column 18 #
|
||||||
|
show slave status;
|
||||||
start slave;
|
start slave;
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
save_master_pos;
|
save_master_pos;
|
||||||
|
@@ -22,7 +22,9 @@ drop table if exists t1;
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
create table t1 (n int);
|
create table t1 (n int);
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
sync_slave_with_master;
|
save_master_pos;
|
||||||
|
connection slave;
|
||||||
|
sync_with_master;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
|
||||||
# 3. Delete new replication user
|
# 3. Delete new replication user
|
||||||
@@ -38,8 +40,12 @@ stop slave;
|
|||||||
start slave;
|
start slave;
|
||||||
|
|
||||||
# 5. Make sure Slave_IO_Running = No
|
# 5. Make sure Slave_IO_Running = No
|
||||||
let $slave_io_errno= 1045;
|
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||||
source include/wait_for_slave_io_error.inc;
|
# Column 1 is replaced, since the output can be either
|
||||||
|
# "Connecting to master" or "Waiting for master update"
|
||||||
|
--replace_column 1 # 7 # 8 # 9 # 22 # 23 # 35 # 36 #
|
||||||
|
--vertical_results
|
||||||
|
show slave status;
|
||||||
|
|
||||||
# Cleanup (Note that slave IO thread is not running)
|
# Cleanup (Note that slave IO thread is not running)
|
||||||
connection slave;
|
connection slave;
|
||||||
|
@@ -510,7 +510,9 @@ INSERT INTO t12 VALUES(UUID());
|
|||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
--disable_result_log
|
--disable_result_log
|
||||||
source include/show_binlog_events.inc;
|
--replace_column 2 # 5 #
|
||||||
|
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||||
|
show binlog events;
|
||||||
--enable_result_log
|
--enable_result_log
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
|
||||||
@@ -527,7 +529,9 @@ diff_files $MYSQLTEST_VARDIR/tmp/rpl_switch_stm_row_mixed_master.sql $MYSQLTEST_
|
|||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
--disable_result_log
|
--disable_result_log
|
||||||
source include/show_binlog_events.inc;
|
--replace_column 2 # 5 #
|
||||||
|
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||||
|
show binlog events;
|
||||||
--enable_result_log
|
--enable_result_log
|
||||||
|
|
||||||
# Now test that mysqlbinlog works fine on a binlog generated by the
|
# Now test that mysqlbinlog works fine on a binlog generated by the
|
||||||
|
@@ -4,18 +4,26 @@
|
|||||||
-- source include/have_binlog_format_mixed_or_statement.inc
|
-- source include/have_binlog_format_mixed_or_statement.inc
|
||||||
-- source include/master-slave.inc
|
-- source include/master-slave.inc
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
|
|
||||||
create table t2 (n int, PRIMARY KEY(n));
|
create table t2 (n int, PRIMARY KEY(n));
|
||||||
create temporary table t1 (n int);
|
create temporary table t1 (n int);
|
||||||
create temporary table t3 (n int not null);
|
create temporary table t3 (n int not null);
|
||||||
|
|
||||||
insert into t1 values(1),(2),(3),(100),(25),(26),(200),(300);
|
insert into t1 values(1),(2),(3),(100),(25),(26),(200),(300);
|
||||||
|
--disable_warnings
|
||||||
insert into t2 select * from t1;
|
insert into t2 select * from t1;
|
||||||
|
--enable_warnings
|
||||||
alter table t3 add primary key(n);
|
alter table t3 add primary key(n);
|
||||||
|
|
||||||
flush logs;
|
flush logs;
|
||||||
insert into t3 values (1010);
|
insert into t3 values (1010);
|
||||||
|
--disable_warnings
|
||||||
insert into t2 select * from t3;
|
insert into t2 select * from t3;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
drop table if exists t3;
|
drop table if exists t3;
|
||||||
insert into t2 values (1012);
|
insert into t2 values (1012);
|
||||||
@@ -23,7 +31,9 @@ insert into t2 values (1012);
|
|||||||
connection master1;
|
connection master1;
|
||||||
create temporary table t1 (n int);
|
create temporary table t1 (n int);
|
||||||
insert into t1 values (4),(5);
|
insert into t1 values (4),(5);
|
||||||
|
--disable_warnings
|
||||||
insert into t2 select * from t1;
|
insert into t2 select * from t1;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
save_master_pos;
|
save_master_pos;
|
||||||
disconnect master;
|
disconnect master;
|
||||||
|
@@ -18,6 +18,10 @@ sync_with_master;
|
|||||||
reset master;
|
reset master;
|
||||||
connection master;
|
connection master;
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
connect (con1,localhost,root,,);
|
connect (con1,localhost,root,,);
|
||||||
|
|
||||||
#added on 2007/5/18
|
#added on 2007/5/18
|
||||||
@@ -62,7 +66,9 @@ insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
|||||||
|
|
||||||
connection con1;
|
connection con1;
|
||||||
create temporary table t3(f int);
|
create temporary table t3(f int);
|
||||||
|
--disable_warnings
|
||||||
insert into t3 select * from t1 where f<6;
|
insert into t3 select * from t1 where f<6;
|
||||||
|
--enable_warnings
|
||||||
sleep 1;
|
sleep 1;
|
||||||
|
|
||||||
connection con2;
|
connection con2;
|
||||||
@@ -70,11 +76,15 @@ create temporary table t3(f int);
|
|||||||
sleep 1;
|
sleep 1;
|
||||||
|
|
||||||
connection con1;
|
connection con1;
|
||||||
|
--disable_warnings
|
||||||
insert into t2 select count(*) from t3;
|
insert into t2 select count(*) from t3;
|
||||||
|
--enable_warnings
|
||||||
sleep 1;
|
sleep 1;
|
||||||
|
|
||||||
connection con2;
|
connection con2;
|
||||||
|
--disable_warnings
|
||||||
insert into t3 select * from t1 where f>=4;
|
insert into t3 select * from t1 where f>=4;
|
||||||
|
--enable_warnings
|
||||||
sleep 1;
|
sleep 1;
|
||||||
|
|
||||||
connection con1;
|
connection con1;
|
||||||
@@ -82,7 +92,9 @@ drop temporary table t3;
|
|||||||
sleep 1;
|
sleep 1;
|
||||||
|
|
||||||
connection con2;
|
connection con2;
|
||||||
|
--disable_warnings
|
||||||
insert into t2 select count(*) from t3;
|
insert into t2 select count(*) from t3;
|
||||||
|
--enable_warnings
|
||||||
drop temporary table t3;
|
drop temporary table t3;
|
||||||
|
|
||||||
select * from t2 ORDER BY f;
|
select * from t2 ORDER BY f;
|
||||||
@@ -107,22 +119,30 @@ SET @@session.pseudo_thread_id=1;
|
|||||||
create temporary table t3(f int);
|
create temporary table t3(f int);
|
||||||
SET TIMESTAMP=1040323952;
|
SET TIMESTAMP=1040323952;
|
||||||
SET @@session.pseudo_thread_id=1;
|
SET @@session.pseudo_thread_id=1;
|
||||||
|
--disable_warnings
|
||||||
insert into t3 select * from t1 where f<6;
|
insert into t3 select * from t1 where f<6;
|
||||||
|
--enable_warnings
|
||||||
SET TIMESTAMP=1040324145;
|
SET TIMESTAMP=1040324145;
|
||||||
SET @@session.pseudo_thread_id=2;
|
SET @@session.pseudo_thread_id=2;
|
||||||
create temporary table t3(f int);
|
create temporary table t3(f int);
|
||||||
SET TIMESTAMP=1040324186;
|
SET TIMESTAMP=1040324186;
|
||||||
SET @@session.pseudo_thread_id=1;
|
SET @@session.pseudo_thread_id=1;
|
||||||
|
--disable_warnings
|
||||||
insert into t2 select count(*) from t3;
|
insert into t2 select count(*) from t3;
|
||||||
|
--enable_warnings
|
||||||
SET TIMESTAMP=1040324200;
|
SET TIMESTAMP=1040324200;
|
||||||
SET @@session.pseudo_thread_id=2;
|
SET @@session.pseudo_thread_id=2;
|
||||||
|
--disable_warnings
|
||||||
insert into t3 select * from t1 where f>=4;
|
insert into t3 select * from t1 where f>=4;
|
||||||
|
--enable_warnings
|
||||||
SET TIMESTAMP=1040324211;
|
SET TIMESTAMP=1040324211;
|
||||||
SET @@session.pseudo_thread_id=1;
|
SET @@session.pseudo_thread_id=1;
|
||||||
drop temporary table t3;
|
drop temporary table t3;
|
||||||
SET TIMESTAMP=1040324219;
|
SET TIMESTAMP=1040324219;
|
||||||
SET @@session.pseudo_thread_id=2;
|
SET @@session.pseudo_thread_id=2;
|
||||||
|
--disable_warnings
|
||||||
insert into t2 select count(*) from t3;
|
insert into t2 select count(*) from t3;
|
||||||
|
--enable_warnings
|
||||||
SET TIMESTAMP=1040324224;
|
SET TIMESTAMP=1040324224;
|
||||||
SET @@session.pseudo_thread_id=2;
|
SET @@session.pseudo_thread_id=2;
|
||||||
drop temporary table t3;
|
drop temporary table t3;
|
||||||
@@ -149,7 +169,9 @@ create table t5 (f int);
|
|||||||
# find dumper's $id
|
# find dumper's $id
|
||||||
select id from information_schema.processlist where command='Binlog Dump' into @id;
|
select id from information_schema.processlist where command='Binlog Dump' into @id;
|
||||||
kill @id; # to stimulate reconnection by slave w/o timeout
|
kill @id; # to stimulate reconnection by slave w/o timeout
|
||||||
|
--disable_warnings
|
||||||
insert into t5 select * from t4;
|
insert into t5 select * from t4;
|
||||||
|
--enable_warnings
|
||||||
save_master_pos;
|
save_master_pos;
|
||||||
|
|
||||||
connection slave;
|
connection slave;
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
--source include/master-slave.inc
|
--source include/master-slave.inc
|
||||||
|
|
||||||
disable_query_log;
|
disable_query_log;
|
||||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
||||||
enable_query_log;
|
enable_query_log;
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
|
@@ -791,6 +791,9 @@ Warning 1292 Truncated incorrect datetime value: '2009-01-10 23:60:59'
|
|||||||
SELECT count(*) FROM t1 WHERE c2='2001-01-11 23:59:60' /* returns 0 */;
|
SELECT count(*) FROM t1 WHERE c2='2001-01-11 23:59:60' /* returns 0 */;
|
||||||
count(*)
|
count(*)
|
||||||
0
|
0
|
||||||
|
Warnings:
|
||||||
|
Warning 1292 Incorrect datetime value: '2001-01-11 23:59:60' for column 'c2' at row 1
|
||||||
|
Warning 1292 Incorrect datetime value: '2001-01-11 23:59:60' for column 'c2' at row 1
|
||||||
SELECT * FROM t1 WHERE c1='0000-00-00 00:00:00' OR c2='0000-00-00 00:00:00';
|
SELECT * FROM t1 WHERE c1='0000-00-00 00:00:00' OR c2='0000-00-00 00:00:00';
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
0000-00-00 00:00:00 0000-00-00 00:00:00 6
|
0000-00-00 00:00:00 0000-00-00 00:00:00 6
|
||||||
|
@@ -63,7 +63,7 @@ c1 c2 c3
|
|||||||
4294967295 2147483647 9
|
4294967295 2147483647 9
|
||||||
UPDATE t1 SET c2=-2147483649 WHERE c1=109 ORDER BY c1;
|
UPDATE t1 SET c2=-2147483649 WHERE c1=109 ORDER BY c1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
Warning 1264 Out of range value for column 'c2' at row 13
|
||||||
SELECT c1,c2 FROM t1 WHERE c1=109;
|
SELECT c1,c2 FROM t1 WHERE c1=109;
|
||||||
c1 c2
|
c1 c2
|
||||||
109 -2147483648
|
109 -2147483648
|
||||||
@@ -1158,7 +1158,7 @@ c1 c2 c3
|
|||||||
255 127 9
|
255 127 9
|
||||||
UPDATE t1 SET c2=-129 WHERE c1=109 ORDER BY c1;
|
UPDATE t1 SET c2=-129 WHERE c1=109 ORDER BY c1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
Warning 1264 Out of range value for column 'c2' at row 13
|
||||||
SELECT c1,c2 FROM t1 WHERE c1=109;
|
SELECT c1,c2 FROM t1 WHERE c1=109;
|
||||||
c1 c2
|
c1 c2
|
||||||
109 -128
|
109 -128
|
||||||
@@ -1929,7 +1929,7 @@ c1 c2 c3
|
|||||||
65535 32767 9
|
65535 32767 9
|
||||||
UPDATE t1 SET c2=-32769 WHERE c1=109 ORDER BY c1;
|
UPDATE t1 SET c2=-32769 WHERE c1=109 ORDER BY c1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
Warning 1264 Out of range value for column 'c2' at row 13
|
||||||
SELECT c1,c2 FROM t1 WHERE c1=109;
|
SELECT c1,c2 FROM t1 WHERE c1=109;
|
||||||
c1 c2
|
c1 c2
|
||||||
109 -32768
|
109 -32768
|
||||||
@@ -2676,7 +2676,7 @@ c1 c2 c3
|
|||||||
16777215 8388607 9
|
16777215 8388607 9
|
||||||
UPDATE t1 SET c2=-8388609 WHERE c1=109 ORDER BY c1;
|
UPDATE t1 SET c2=-8388609 WHERE c1=109 ORDER BY c1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
Warning 1264 Out of range value for column 'c2' at row 13
|
||||||
SELECT c1,c2 FROM t1 WHERE c1=109;
|
SELECT c1,c2 FROM t1 WHERE c1=109;
|
||||||
c1 c2
|
c1 c2
|
||||||
109 -8388608
|
109 -8388608
|
||||||
@@ -3423,7 +3423,7 @@ c1 c2 c3
|
|||||||
18446744073709551615 9223372036854775807 9
|
18446744073709551615 9223372036854775807 9
|
||||||
UPDATE t1 SET c2=-9223372036854775809 WHERE c1=109 ORDER BY c1;
|
UPDATE t1 SET c2=-9223372036854775809 WHERE c1=109 ORDER BY c1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
Warning 1264 Out of range value for column 'c2' at row 13
|
||||||
SELECT c1,c2 FROM t1 WHERE c1=109;
|
SELECT c1,c2 FROM t1 WHERE c1=109;
|
||||||
c1 c2
|
c1 c2
|
||||||
109 -9223372036854775808
|
109 -9223372036854775808
|
||||||
|
@@ -1,2 +1,3 @@
|
|||||||
insert_calendar : Bug#52283 Innodb reports extra warnings when SELECT/WHERE is performed using invalid value
|
insert_calendar : Bug#52283 Innodb reports extra warnings when SELECT/WHERE is performed using invalid value
|
||||||
update_delete_calendar : Bug#52824 + Bug#52283(in case of Innodb)
|
update_delete_calendar : Bug#52824 + Bug#52283(in case of Innodb)
|
||||||
|
|
||||||
|
@@ -7812,9 +7812,6 @@ SELECT * FROM t2 ORDER BY c1,c6 LIMIT 2;
|
|||||||
SELECT * FROM t2 ORDER BY c1,c6 DESC LIMIT 2;
|
SELECT * FROM t2 ORDER BY c1,c6 DESC LIMIT 2;
|
||||||
|
|
||||||
## ref type access
|
## ref type access
|
||||||
|
|
||||||
# Bug#52283 : Remove the following --disable_warnings
|
|
||||||
# command when the bug is fixed
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
SELECT * FROM t2 WHERE c1 = 18446744073709551616 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 = 18446744073709551616 ORDER BY c1,c6;
|
||||||
SELECT * FROM t2 WHERE c1 = 18446744073709551616 ORDER BY c1,c6 LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 18446744073709551616 ORDER BY c1,c6 LIMIT 2;
|
||||||
|
@@ -300,12 +300,7 @@ INSERT INTO t1 VALUES('2001-01-09','2001-01-10',6),('2001-01-11','2001-01-12',7)
|
|||||||
UPDATE t1 SET c1='2001-01-09 24:59:59',c2='2009-01-10 23:60:59' WHERE c1='2001-01-09';
|
UPDATE t1 SET c1='2001-01-09 24:59:59',c2='2009-01-10 23:60:59' WHERE c1='2001-01-09';
|
||||||
UPDATE t1 SET c2='2001-01-11 23:59:60' WHERE c1='2001-01-11';
|
UPDATE t1 SET c2='2001-01-11 23:59:60' WHERE c1='2001-01-11';
|
||||||
SELECT count(*) FROM t1 WHERE c1='2001-01-09 24:59:59' AND c2='2009-01-10 23:60:59';
|
SELECT count(*) FROM t1 WHERE c1='2001-01-09 24:59:59' AND c2='2009-01-10 23:60:59';
|
||||||
|
|
||||||
# Bug#52283 : Remove the following --disable_warnings
|
|
||||||
# command when the bug is fixed
|
|
||||||
--disable_warnings
|
|
||||||
SELECT count(*) FROM t1 WHERE c2='2001-01-11 23:59:60' /* returns 0 */;
|
SELECT count(*) FROM t1 WHERE c2='2001-01-11 23:59:60' /* returns 0 */;
|
||||||
--enable_warnings
|
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t1 WHERE c1='0000-00-00 00:00:00' OR c2='0000-00-00 00:00:00';
|
SELECT * FROM t1 WHERE c1='0000-00-00 00:00:00' OR c2='0000-00-00 00:00:00';
|
||||||
|
|
||||||
|
26
mysql-test/suite/innodb/r/innodb-autoinc-18274.result
Normal file
26
mysql-test/suite/innodb/r/innodb-autoinc-18274.result
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
drop table if exists t1;
|
||||||
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
||||||
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 VALUES (null);
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
PRIMARY KEY (`c1`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
|
||||||
|
DELETE FROM t1;
|
||||||
|
OPTIMIZE TABLE t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
|
||||||
|
test.t1 optimize status OK
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
PRIMARY KEY (`c1`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
|
||||||
|
INSERT INTO t1 VALUES(null);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1
|
||||||
|
2
|
||||||
|
DROP TABLE t1;
|
@@ -13,13 +13,14 @@ set global innodb_lock_wait_timeout=347;
|
|||||||
select @@innodb_lock_wait_timeout;
|
select @@innodb_lock_wait_timeout;
|
||||||
@@innodb_lock_wait_timeout
|
@@innodb_lock_wait_timeout
|
||||||
42
|
42
|
||||||
set innodb_lock_wait_timeout=1;
|
set innodb_lock_wait_timeout=10;
|
||||||
select @@innodb_lock_wait_timeout;
|
select @@innodb_lock_wait_timeout;
|
||||||
@@innodb_lock_wait_timeout
|
@@innodb_lock_wait_timeout
|
||||||
1
|
10
|
||||||
select @@innodb_lock_wait_timeout;
|
select @@innodb_lock_wait_timeout;
|
||||||
@@innodb_lock_wait_timeout
|
@@innodb_lock_wait_timeout
|
||||||
347
|
347
|
||||||
|
SET @connection_b_id = <connection_b_id>;
|
||||||
create table t1(a int primary key)engine=innodb;
|
create table t1(a int primary key)engine=innodb;
|
||||||
begin;
|
begin;
|
||||||
insert into t1 values(1),(2),(3);
|
insert into t1 values(1),(2),(3);
|
||||||
@@ -31,8 +32,9 @@ a
|
|||||||
3
|
3
|
||||||
begin;
|
begin;
|
||||||
insert into t1 values(4);
|
insert into t1 values(4);
|
||||||
|
set innodb_lock_wait_timeout=3;
|
||||||
select * from t1 for update;
|
select * from t1 for update;
|
||||||
commit;
|
commit;
|
||||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set global innodb_lock_wait_timeout=50;
|
set global innodb_lock_wait_timeout=<initial_timeout>;
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
drop table if exists t1,t2,t3,t4;
|
drop table if exists t1,t2,t3,t4;
|
||||||
drop database if exists mysqltest;
|
drop database if exists mysqltest;
|
||||||
|
CREATE TABLE bug58912 (a BLOB, b TEXT, PRIMARY KEY(a(1))) ENGINE=InnoDB;
|
||||||
|
INSERT INTO bug58912 VALUES(REPEAT('a',8000),REPEAT('b',8000));
|
||||||
|
UPDATE bug58912 SET a=REPEAT('a',7999);
|
||||||
create table t1 (id int unsigned not null auto_increment, code tinyint unsigned not null, name char(20) not null, primary key (id), key (code), unique (name)) engine=innodb;
|
create table t1 (id int unsigned not null auto_increment, code tinyint unsigned not null, name char(20) not null, primary key (id), key (code), unique (name)) engine=innodb;
|
||||||
insert into t1 (code, name) values (1, 'Tim'), (1, 'Monty'), (2, 'David'), (2, 'Erik'), (3, 'Sasha'), (3, 'Jeremy'), (4, 'Matt');
|
insert into t1 (code, name) values (1, 'Tim'), (1, 'Monty'), (2, 'David'), (2, 'Erik'), (3, 'Sasha'), (3, 'Jeremy'), (4, 'Matt');
|
||||||
select id, code, name from t1 order by id;
|
select id, code, name from t1 order by id;
|
||||||
@@ -1670,10 +1673,10 @@ variable_value - @innodb_rows_deleted_orig
|
|||||||
71
|
71
|
||||||
SELECT variable_value - @innodb_rows_inserted_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_inserted';
|
SELECT variable_value - @innodb_rows_inserted_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_inserted';
|
||||||
variable_value - @innodb_rows_inserted_orig
|
variable_value - @innodb_rows_inserted_orig
|
||||||
1065
|
1066
|
||||||
SELECT variable_value - @innodb_rows_updated_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_updated';
|
SELECT variable_value - @innodb_rows_updated_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_updated';
|
||||||
variable_value - @innodb_rows_updated_orig
|
variable_value - @innodb_rows_updated_orig
|
||||||
865
|
866
|
||||||
SELECT variable_value - @innodb_row_lock_waits_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_row_lock_waits';
|
SELECT variable_value - @innodb_row_lock_waits_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_row_lock_waits';
|
||||||
variable_value - @innodb_row_lock_waits_orig
|
variable_value - @innodb_row_lock_waits_orig
|
||||||
0
|
0
|
||||||
@@ -3173,3 +3176,4 @@ Variable_name Value
|
|||||||
Handler_update 1
|
Handler_update 1
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_delete 1
|
Handler_delete 1
|
||||||
|
DROP TABLE bug58912;
|
||||||
|
26
mysql-test/suite/innodb/t/innodb-autoinc-18274.test
Normal file
26
mysql-test/suite/innodb/t/innodb-autoinc-18274.test
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
-- source include/have_innodb.inc
|
||||||
|
# embedded server ignores 'delayed', so skip this
|
||||||
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
drop table if exists t1;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #18274 InnoDB auto_increment field reset on OPTIMIZE TABLE
|
||||||
|
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1;
|
||||||
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 VALUES (null);
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
DELETE FROM t1;
|
||||||
|
OPTIMIZE TABLE t1;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
INSERT INTO t1 VALUES(null);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# restore environment to the state it was before this test execution
|
||||||
|
#
|
||||||
|
|
||||||
|
-- disable_query_log
|
@@ -1,6 +1,6 @@
|
|||||||
-- source include/have_innodb.inc
|
-- source include/have_innodb.inc
|
||||||
|
|
||||||
let $timeout=`select @@innodb_lock_wait_timeout`;
|
let $initial_timeout=`select @@innodb_lock_wait_timeout`;
|
||||||
set global innodb_lock_wait_timeout=42;
|
set global innodb_lock_wait_timeout=42;
|
||||||
|
|
||||||
connect (a,localhost,root,,);
|
connect (a,localhost,root,,);
|
||||||
@@ -12,19 +12,24 @@ set innodb_lock_wait_timeout=1;
|
|||||||
select @@innodb_lock_wait_timeout;
|
select @@innodb_lock_wait_timeout;
|
||||||
|
|
||||||
connection b;
|
connection b;
|
||||||
|
let $connection_b_id=`SELECT CONNECTION_ID()`;
|
||||||
select @@innodb_lock_wait_timeout;
|
select @@innodb_lock_wait_timeout;
|
||||||
set global innodb_lock_wait_timeout=347;
|
set global innodb_lock_wait_timeout=347;
|
||||||
select @@innodb_lock_wait_timeout;
|
select @@innodb_lock_wait_timeout;
|
||||||
set innodb_lock_wait_timeout=1;
|
set innodb_lock_wait_timeout=10;
|
||||||
select @@innodb_lock_wait_timeout;
|
select @@innodb_lock_wait_timeout;
|
||||||
|
|
||||||
connect (c,localhost,root,,);
|
connect (c,localhost,root,,);
|
||||||
connection c;
|
connection c;
|
||||||
|
|
||||||
select @@innodb_lock_wait_timeout;
|
select @@innodb_lock_wait_timeout;
|
||||||
connection default;
|
|
||||||
disconnect c;
|
disconnect c;
|
||||||
|
--source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
connection a;
|
connection a;
|
||||||
|
--replace_result $connection_b_id <connection_b_id>
|
||||||
|
eval SET @connection_b_id = $connection_b_id;
|
||||||
create table t1(a int primary key)engine=innodb;
|
create table t1(a int primary key)engine=innodb;
|
||||||
begin;
|
begin;
|
||||||
insert into t1 values(1),(2),(3);
|
insert into t1 values(1),(2),(3);
|
||||||
@@ -33,7 +38,37 @@ connection b;
|
|||||||
--send
|
--send
|
||||||
select * from t1 for update;
|
select * from t1 for update;
|
||||||
|
|
||||||
|
# Observation on information_schema.processlist (2010-12 mysql-5.5)
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# As soon as the server started the execution of the
|
||||||
|
# connection a: --send select ... for update
|
||||||
|
# High parallel load could delay this up to two seconds.
|
||||||
|
# and before either
|
||||||
|
# - the innodb_lock_wait_timeout was exceeded
|
||||||
|
# -> connection b reap gets ER_LOCK_WAIT_TIMEOUT
|
||||||
|
# or
|
||||||
|
# - connection a commits, the lock disappears and the statement
|
||||||
|
# of connection b finishes
|
||||||
|
# -> connection b reap gets success + result set
|
||||||
|
# we see within information_schema.processlist for connection b a row
|
||||||
|
# command state info
|
||||||
|
# Query Sending data select * from t1 for update
|
||||||
|
# The highest time value seen was @@innodb_lock_wait_timeout + 1.
|
||||||
|
# Please note that there is unfortunately nothing which says
|
||||||
|
# that we are just waiting for a lock.
|
||||||
|
|
||||||
connection a;
|
connection a;
|
||||||
|
# In order to ensure that the execution of
|
||||||
|
# connection b: select * from t1 for update
|
||||||
|
# has really started and is most probably waiting for the lock now we poll on
|
||||||
|
# information_schema.processlist.
|
||||||
|
# Also our current session innodb_lock_wait_timeout of 10 seconds should big
|
||||||
|
# enough to prevent that connection b ends up with getting ER_LOCK_WAIT_TIMEOUT.
|
||||||
|
#
|
||||||
|
let $wait_timeout= 10;
|
||||||
|
let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist
|
||||||
|
WHERE id = @connection_b_id AND INFO = 'select * from t1 for update';
|
||||||
|
--source include/wait_condition.inc
|
||||||
commit;
|
commit;
|
||||||
|
|
||||||
connection b;
|
connection b;
|
||||||
@@ -44,21 +79,39 @@ begin;
|
|||||||
insert into t1 values(4);
|
insert into t1 values(4);
|
||||||
|
|
||||||
connection b;
|
connection b;
|
||||||
|
set innodb_lock_wait_timeout=3;
|
||||||
|
# 3 seconds should be big enough that the wait routine of connection a will
|
||||||
|
# hit the time span where our next statement is visible within the
|
||||||
|
# information_schema.processlist.
|
||||||
--send
|
--send
|
||||||
select * from t1 for update;
|
select * from t1 for update;
|
||||||
|
|
||||||
connection a;
|
connection a;
|
||||||
sleep 2;
|
# Wait till the execution of the connection b statement was started.
|
||||||
|
let $wait_timeout= 10;
|
||||||
|
let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist
|
||||||
|
WHERE id = @connection_b_id AND INFO = 'select * from t1 for update';
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
# Wait till the execution of the connection b statement has ended.
|
||||||
|
let $wait_timeout= 10;
|
||||||
|
let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist
|
||||||
|
WHERE id = @connection_b_id AND INFO IS NULL;
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
# Give "commit" though this must be too late for the statement of connection b.
|
||||||
commit;
|
commit;
|
||||||
|
|
||||||
connection b;
|
connection b;
|
||||||
--error ER_LOCK_WAIT_TIMEOUT
|
--error ER_LOCK_WAIT_TIMEOUT
|
||||||
reap;
|
reap;
|
||||||
drop table t1;
|
|
||||||
|
disconnect b;
|
||||||
|
--source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
|
connection a;
|
||||||
|
disconnect a;
|
||||||
|
--source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
|
drop table t1;
|
||||||
disconnect a;
|
--replace_result $initial_timeout <initial_timeout>
|
||||||
disconnect b;
|
eval set global innodb_lock_wait_timeout=$initial_timeout;
|
||||||
|
|
||||||
eval set global innodb_lock_wait_timeout=$timeout;
|
|
||||||
|
@@ -49,6 +49,15 @@ drop table if exists t1,t2,t3,t4;
|
|||||||
drop database if exists mysqltest;
|
drop database if exists mysqltest;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
|
# Bug#58912 InnoDB unnecessarily avoids update-in-place on column prefixes
|
||||||
|
CREATE TABLE bug58912 (a BLOB, b TEXT, PRIMARY KEY(a(1))) ENGINE=InnoDB;
|
||||||
|
INSERT INTO bug58912 VALUES(REPEAT('a',8000),REPEAT('b',8000));
|
||||||
|
UPDATE bug58912 SET a=REPEAT('a',7999);
|
||||||
|
# The above statements used to trigger a failure during purge when
|
||||||
|
# Bug#55284 was fixed while Bug#58912 was not. Defer the DROP TABLE,
|
||||||
|
# so that purge gets a chance to run (and a double free of the
|
||||||
|
# off-page column can be detected, if one is to occur.)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Small basic test with ignore
|
# Small basic test with ignore
|
||||||
#
|
#
|
||||||
@@ -2548,6 +2557,9 @@ SET GLOBAL innodb_thread_concurrency = @innodb_thread_concurrency_orig;
|
|||||||
|
|
||||||
-- enable_query_log
|
-- enable_query_log
|
||||||
|
|
||||||
|
# Clean up after the Bug#55284/Bug#58912 test case.
|
||||||
|
DROP TABLE bug58912;
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# #
|
# #
|
||||||
# Please, DO NOT TOUCH this file as well as the innodb.result file. #
|
# Please, DO NOT TOUCH this file as well as the innodb.result file. #
|
||||||
|
@@ -12,6 +12,7 @@ create table C(id int not null auto_increment primary key, f1 int not null, fore
|
|||||||
insert into A values(1), (2);
|
insert into A values(1), (2);
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
|
begin;
|
||||||
let $i=257;
|
let $i=257;
|
||||||
while ($i)
|
while ($i)
|
||||||
{
|
{
|
||||||
@@ -24,6 +25,7 @@ while ($i)
|
|||||||
insert into C(f1) values(2);
|
insert into C(f1) values(2);
|
||||||
dec $i;
|
dec $i;
|
||||||
}
|
}
|
||||||
|
commit;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
# Following Deletes should not report error
|
# Following Deletes should not report error
|
||||||
|
@@ -88,8 +88,9 @@ let $val2 = '2006-01-17';
|
|||||||
let $val3 = '2006-02-25';
|
let $val3 = '2006-02-25';
|
||||||
let $val4 = '2006-02-05';
|
let $val4 = '2006-02-05';
|
||||||
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
||||||
let $coltype = char(30);
|
# Disabled after fixing bug#54483.
|
||||||
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
#let $coltype = char(30);
|
||||||
|
#--source suite/parts/inc/partition_supported_sql_funcs.inc
|
||||||
|
|
||||||
let $sqlfunc = extract(month from col1);
|
let $sqlfunc = extract(month from col1);
|
||||||
let $valsqlfunc = extract(year from '1998-11-23');
|
let $valsqlfunc = extract(year from '1998-11-23');
|
||||||
@@ -139,8 +140,9 @@ let $val2 = '14:30:20';
|
|||||||
let $val3 = '21:59:22';
|
let $val3 = '21:59:22';
|
||||||
let $val4 = '10:22:33';
|
let $val4 = '10:22:33';
|
||||||
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
||||||
let $coltype = char(30);
|
# second(non_time_col) is disabled after bug#54483.
|
||||||
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
#let $coltype = char(30);
|
||||||
|
#--source suite/parts/inc/partition_supported_sql_funcs.inc
|
||||||
|
|
||||||
let $sqlfunc = month(col1);
|
let $sqlfunc = month(col1);
|
||||||
let $valsqlfunc = month('2006-10-14');
|
let $valsqlfunc = month('2006-10-14');
|
||||||
@@ -172,26 +174,28 @@ let $val3 = '21:59:22';
|
|||||||
let $val4 = '10:33:11';
|
let $val4 = '10:33:11';
|
||||||
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
||||||
|
|
||||||
let $sqlfunc = to_days(col1)-to_days('2006-01-01');
|
# to_days(non_date_col) is disabled after bug#54483.
|
||||||
let $valsqlfunc = to_days('2006-02-02')-to_days('2006-01-01');
|
#let $sqlfunc = to_days(col1)-to_days('2006-01-01');
|
||||||
let $coltype = date;
|
#let $valsqlfunc = to_days('2006-02-02')-to_days('2006-01-01');
|
||||||
let $infile = part_supported_sql_funcs_int_date.inc;
|
#let $coltype = date;
|
||||||
let $val1 = '2006-02-03';
|
#let $infile = part_supported_sql_funcs_int_date.inc;
|
||||||
let $val2 = '2006-01-17';
|
#let $val1 = '2006-02-03';
|
||||||
let $val3 = '2006-01-25';
|
#let $val2 = '2006-01-17';
|
||||||
let $val4 = '2006-02-06';
|
#let $val3 = '2006-01-25';
|
||||||
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
#let $val4 = '2006-02-06';
|
||||||
|
#--source suite/parts/inc/partition_supported_sql_funcs.inc
|
||||||
|
|
||||||
|
# to_days(non_date_col) is disabled after bug#54483.
|
||||||
# DATEDIFF() is implemented as (TO_DAYS(d1) - TO_DAYS(d2))
|
# DATEDIFF() is implemented as (TO_DAYS(d1) - TO_DAYS(d2))
|
||||||
let $sqlfunc = datediff(col1, '2006-01-01');
|
#let $sqlfunc = datediff(col1, '2006-01-01');
|
||||||
let $valsqlfunc = datediff('2006-02-02', '2006-01-01');
|
#let $valsqlfunc = datediff('2006-02-02', '2006-01-01');
|
||||||
let $coltype = date;
|
#let $coltype = date;
|
||||||
let $infile = part_supported_sql_funcs_int_date.inc;
|
#let $infile = part_supported_sql_funcs_int_date.inc;
|
||||||
let $val1 = '2006-02-03';
|
#let $val1 = '2006-02-03';
|
||||||
let $val2 = '2006-01-17';
|
#let $val2 = '2006-01-17';
|
||||||
let $val3 = '2006-01-25';
|
#let $val3 = '2006-01-25';
|
||||||
let $val4 = '2006-02-06';
|
#let $val4 = '2006-02-06';
|
||||||
--source suite/parts/inc/partition_supported_sql_funcs.inc
|
#--source suite/parts/inc/partition_supported_sql_funcs.inc
|
||||||
|
|
||||||
let $sqlfunc = weekday(col1);
|
let $sqlfunc = weekday(col1);
|
||||||
let $valsqlfunc = weekday('2006-10-14');
|
let $valsqlfunc = weekday('2006-10-14');
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user