mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
5.2->5.3 merge
This commit is contained in:
@ -4337,9 +4337,10 @@ char *get_arg(char *line, my_bool get_next_arg)
|
|||||||
string, and the "dialog" plugin will free() it.
|
string, and the "dialog" plugin will free() it.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern "C" char *mysql_authentication_dialog_ask(MYSQL *mysql, int type,
|
MYSQL_PLUGIN_EXPORT
|
||||||
const char *prompt,
|
char *mysql_authentication_dialog_ask(MYSQL *mysql, int type,
|
||||||
char *buf, int buf_len)
|
const char *prompt,
|
||||||
|
char *buf, int buf_len)
|
||||||
{
|
{
|
||||||
char *s=buf;
|
char *s=buf;
|
||||||
|
|
||||||
|
@ -117,6 +117,7 @@ static my_bool disable_connect_log= 1;
|
|||||||
static my_bool disable_warnings= 0, disable_column_names= 0;
|
static my_bool disable_warnings= 0, disable_column_names= 0;
|
||||||
static my_bool prepare_warnings_enabled= 0;
|
static my_bool prepare_warnings_enabled= 0;
|
||||||
static my_bool disable_info= 1;
|
static my_bool disable_info= 1;
|
||||||
|
static char *opt_plugin_dir= 0, *opt_default_auth;
|
||||||
static my_bool abort_on_error= 1;
|
static my_bool abort_on_error= 1;
|
||||||
static my_bool server_initialized= 0;
|
static my_bool server_initialized= 0;
|
||||||
static my_bool is_windows= 0;
|
static my_bool is_windows= 0;
|
||||||
@ -6238,6 +6239,13 @@ static struct my_option my_long_options[] =
|
|||||||
{"view-protocol", OPT_VIEW_PROTOCOL, "Use views for select.",
|
{"view-protocol", OPT_VIEW_PROTOCOL, "Use views for select.",
|
||||||
&view_protocol, &view_protocol, 0,
|
&view_protocol, &view_protocol, 0,
|
||||||
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
{"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
|
||||||
|
(uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
|
||||||
|
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
{"default_auth", OPT_PLUGIN_DIR,
|
||||||
|
"Default authentication client-side plugin to use.",
|
||||||
|
(uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
|
||||||
|
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -8228,6 +8236,12 @@ int main(int argc, char **argv)
|
|||||||
if (opt_protocol)
|
if (opt_protocol)
|
||||||
mysql_options(con->mysql,MYSQL_OPT_PROTOCOL,(char*)&opt_protocol);
|
mysql_options(con->mysql,MYSQL_OPT_PROTOCOL,(char*)&opt_protocol);
|
||||||
|
|
||||||
|
if (opt_plugin_dir && *opt_plugin_dir)
|
||||||
|
mysql_options(con->mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir);
|
||||||
|
|
||||||
|
if (opt_default_auth && *opt_default_auth)
|
||||||
|
mysql_options(con->mysql, MYSQL_DEFAULT_AUTH, opt_default_auth);
|
||||||
|
|
||||||
#ifdef HAVE_OPENSSL
|
#ifdef HAVE_OPENSSL
|
||||||
|
|
||||||
if (opt_use_ssl)
|
if (opt_use_ssl)
|
||||||
@ -10194,3 +10208,33 @@ static int setenv(const char *name, const char *value, int overwrite)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
for the purpose of testing (see dialog.test)
|
||||||
|
we replace default mysql_authentication_dialog_ask function with the one,
|
||||||
|
that always reads from stdin with explicit echo.
|
||||||
|
|
||||||
|
*/
|
||||||
|
MYSQL_PLUGIN_EXPORT
|
||||||
|
char *mysql_authentication_dialog_ask(MYSQL *mysql, int type,
|
||||||
|
const char *prompt,
|
||||||
|
char *buf, int buf_len)
|
||||||
|
{
|
||||||
|
char *s=buf;
|
||||||
|
|
||||||
|
fputs(prompt, stdout);
|
||||||
|
fputs(" ", stdout);
|
||||||
|
|
||||||
|
if (!fgets(buf, buf_len-1, stdin))
|
||||||
|
buf[0]= 0;
|
||||||
|
else if (buf[0] && (s= strend(buf))[-1] == '\n')
|
||||||
|
s[-1]= 0;
|
||||||
|
|
||||||
|
for (s= buf; *s; s++)
|
||||||
|
fputc(type == 2 ? '*' : *s, stdout);
|
||||||
|
|
||||||
|
fputc('\n', stdout);
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -13,11 +13,6 @@ dnl When changing the major version number please also check the switch
|
|||||||
dnl statement in mysqlbinlog::check_master_version(). You may also need
|
dnl statement in mysqlbinlog::check_master_version(). You may also need
|
||||||
dnl to update version.c in ndb.
|
dnl to update version.c in ndb.
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl When merging new MySQL releases, update the version number to match the
|
|
||||||
dnl MySQL version number.
|
|
||||||
dnl
|
|
||||||
dnl Note: the following line must be parseable by win/configure.js:GetVersion()
|
|
||||||
AC_INIT([MariaDB Server], [5.3.2-MariaDB-beta], [], [mysql])
|
AC_INIT([MariaDB Server], [5.3.2-MariaDB-beta], [], [mysql])
|
||||||
|
|
||||||
AC_CONFIG_SRCDIR([sql/mysqld.cc])
|
AC_CONFIG_SRCDIR([sql/mysqld.cc])
|
||||||
|
@ -1555,18 +1555,20 @@ do { doubleget_union _tmp; \
|
|||||||
#define NO_EMBEDDED_ACCESS_CHECKS
|
#define NO_EMBEDDED_ACCESS_CHECKS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_DLOPEN
|
#if defined(_WIN32)
|
||||||
#if defined(__WIN__)
|
|
||||||
#define dlsym(lib, name) GetProcAddress((HMODULE)lib, name)
|
#define dlsym(lib, name) GetProcAddress((HMODULE)lib, name)
|
||||||
#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
|
#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
|
||||||
#define dlclose(lib) FreeLibrary((HMODULE)lib)
|
#define dlclose(lib) FreeLibrary((HMODULE)lib)
|
||||||
#elif defined(HAVE_DLFCN_H)
|
#define HAVE_DLOPEN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_DLFCN_H
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_DLERROR
|
#ifndef HAVE_DLERROR
|
||||||
#define dlerror() ""
|
#define dlerror() ""
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/* FreeBSD 2.2.2 does not define RTLD_NOW) */
|
/* FreeBSD 2.2.2 does not define RTLD_NOW) */
|
||||||
#ifndef RTLD_NOW
|
#ifndef RTLD_NOW
|
||||||
|
@ -140,6 +140,7 @@ void get_salt_from_password(unsigned char *res, const char *password);
|
|||||||
void make_password_from_salt(char *to, const unsigned char *hash_stage2);
|
void make_password_from_salt(char *to, const unsigned char *hash_stage2);
|
||||||
char *octet2hex(char *to, const char *str, unsigned int len);
|
char *octet2hex(char *to, const char *str, unsigned int len);
|
||||||
char *get_tty_password(const char *opt_message);
|
char *get_tty_password(const char *opt_message);
|
||||||
|
void get_tty_password_buff(const char *opt_message, char *to, size_t length);
|
||||||
const char *mysql_errno_to_sqlstate(unsigned int mysql_errno);
|
const char *mysql_errno_to_sqlstate(unsigned int mysql_errno);
|
||||||
my_bool my_thread_init(void);
|
my_bool my_thread_init(void);
|
||||||
void my_thread_end(void);
|
void my_thread_end(void);
|
||||||
|
@ -28,9 +28,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MYSQL_PLUGIN_EXPORT
|
|
||||||
#undef MYSQL_PLUGIN_EXPORT
|
#undef MYSQL_PLUGIN_EXPORT
|
||||||
#endif
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
|
#define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
|
||||||
@ -38,7 +36,11 @@
|
|||||||
#define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
|
#define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
|
||||||
#endif
|
#endif
|
||||||
#else /*_MSC_VER */
|
#else /*_MSC_VER */
|
||||||
#define MYSQL_PLUGIN_EXPORT
|
#ifdef __cplusplus
|
||||||
|
#define MYSQL_PLUGIN_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define MYSQL_PLUGIN_EXPORT
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* known plugin types */
|
/* known plugin types */
|
||||||
|
@ -25,21 +25,17 @@
|
|||||||
for functions.
|
for functions.
|
||||||
*/
|
*/
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#if defined(MYSQL_DYNAMIC_PLUGIN)
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
|
#define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
|
||||||
#else
|
#else
|
||||||
#define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
|
#define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
|
||||||
#endif
|
#endif
|
||||||
#else /* MYSQL_DYNAMIC_PLUGIN */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define MYSQL_PLUGIN_EXPORT extern "C"
|
|
||||||
#else
|
|
||||||
#define MYSQL_PLUGIN_EXPORT
|
|
||||||
#endif
|
|
||||||
#endif /*MYSQL_DYNAMIC_PLUGIN */
|
|
||||||
#else /*_MSC_VER */
|
#else /*_MSC_VER */
|
||||||
#define MYSQL_PLUGIN_EXPORT
|
#ifdef __cplusplus
|
||||||
|
#define MYSQL_PLUGIN_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define MYSQL_PLUGIN_EXPORT
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@ -129,14 +125,20 @@ struct st_maria_plugin DECLS[]= {
|
|||||||
#else
|
#else
|
||||||
|
|
||||||
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
|
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
|
||||||
MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_; \
|
||||||
MYSQL_PLUGIN_EXPORT int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \
|
int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
||||||
MYSQL_PLUGIN_EXPORT struct st_mysql_plugin _mysql_plugin_declarations_[]= {
|
MYSQL_PLUGIN_EXPORT int _mysql_sizeof_struct_st_plugin_; \
|
||||||
|
int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \
|
||||||
|
MYSQL_PLUGIN_EXPORT struct st_mysql_plugin _mysql_plugin_declarations_[]; \
|
||||||
|
struct st_mysql_plugin _mysql_plugin_declarations_[]= {
|
||||||
|
|
||||||
#define MARIA_DECLARE_PLUGIN__(NAME, VERSION, PSIZE, DECLS) \
|
#define MARIA_DECLARE_PLUGIN__(NAME, VERSION, PSIZE, DECLS) \
|
||||||
MYSQL_PLUGIN_EXPORT int _maria_plugin_interface_version_= MARIA_PLUGIN_INTERFACE_VERSION; \
|
MYSQL_PLUGIN_EXPORT int _maria_plugin_interface_version_; \
|
||||||
MYSQL_PLUGIN_EXPORT int _maria_sizeof_struct_st_plugin_= sizeof(struct st_maria_plugin); \
|
int _maria_plugin_interface_version_= MARIA_PLUGIN_INTERFACE_VERSION; \
|
||||||
MYSQL_PLUGIN_EXPORT struct st_maria_plugin _maria_plugin_declarations_[]= {
|
MYSQL_PLUGIN_EXPORT int _maria_sizeof_struct_st_plugin_; \
|
||||||
|
int _maria_sizeof_struct_st_plugin_= sizeof(struct st_maria_plugin); \
|
||||||
|
MYSQL_PLUGIN_EXPORT struct st_maria_plugin _maria_plugin_declarations_[]; \
|
||||||
|
struct st_maria_plugin _maria_plugin_declarations_[]= {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -524,6 +524,7 @@ char *octet2hex(char *to, const char *str, unsigned int len);
|
|||||||
/* end of password.c */
|
/* end of password.c */
|
||||||
|
|
||||||
char *get_tty_password(const char *opt_message);
|
char *get_tty_password(const char *opt_message);
|
||||||
|
void get_tty_password_buff(const char *opt_message, char *to, size_t length);
|
||||||
const char *mysql_errno_to_sqlstate(unsigned int mysql_errno);
|
const char *mysql_errno_to_sqlstate(unsigned int mysql_errno);
|
||||||
|
|
||||||
/* Some other useful functions */
|
/* Some other useful functions */
|
||||||
|
@ -123,7 +123,6 @@ IF(WIN32)
|
|||||||
ENDIF(WIN32)
|
ENDIF(WIN32)
|
||||||
ADD_DEPENDENCIES(libmysql GenError)
|
ADD_DEPENDENCIES(libmysql GenError)
|
||||||
TARGET_LINK_LIBRARIES(libmysql mysqlclient ws2_32)
|
TARGET_LINK_LIBRARIES(libmysql mysqlclient ws2_32)
|
||||||
ADD_DEFINITIONS(-DHAVE_DLOPEN)
|
|
||||||
|
|
||||||
MYSQL_INSTALL_TARGETS(mysqlclient DESTINATION lib COMPONENT Development)
|
MYSQL_INSTALL_TARGETS(mysqlclient DESTINATION lib COMPONENT Development)
|
||||||
MYSQL_INSTALL_TARGETS(libmysql DESTINATION lib COMPONENT SharedLibraries)
|
MYSQL_INSTALL_TARGETS(libmysql DESTINATION lib COMPONENT SharedLibraries)
|
||||||
|
@ -75,12 +75,10 @@
|
|||||||
#define _cputs(A) putstring(A)
|
#define _cputs(A) putstring(A)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
char *get_tty_password(const char *opt_message)
|
void get_tty_password_buff(const char *opt_message, char *to, size_t length)
|
||||||
{
|
{
|
||||||
char to[80];
|
char *pos=to,*end=to+length-1;
|
||||||
char *pos=to,*end=to+sizeof(to)-1;
|
|
||||||
int i=0;
|
int i=0;
|
||||||
DBUG_ENTER("get_tty_password");
|
|
||||||
_cputs(opt_message ? opt_message : "Enter password: ");
|
_cputs(opt_message ? opt_message : "Enter password: ");
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
@ -106,7 +104,6 @@ char *get_tty_password(const char *opt_message)
|
|||||||
pos--; /* Allow dummy space at end */
|
pos--; /* Allow dummy space at end */
|
||||||
*pos=0;
|
*pos=0;
|
||||||
_cputs("\n");
|
_cputs("\n");
|
||||||
DBUG_RETURN(my_strdup(to,MYF(MY_FAE)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@ -159,22 +156,19 @@ static void get_password(char *to,uint length,int fd, my_bool echo)
|
|||||||
#endif /* ! HAVE_GETPASS */
|
#endif /* ! HAVE_GETPASS */
|
||||||
|
|
||||||
|
|
||||||
char *get_tty_password(const char *opt_message)
|
void get_tty_password_buff(const char *opt_message, char *buff, size_t buflen)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_GETPASS
|
#ifdef HAVE_GETPASS
|
||||||
char *passbuff;
|
char *passbuff;
|
||||||
#else /* ! HAVE_GETPASS */
|
#else /* ! HAVE_GETPASS */
|
||||||
TERMIO org,tmp;
|
TERMIO org,tmp;
|
||||||
#endif /* HAVE_GETPASS */
|
#endif /* HAVE_GETPASS */
|
||||||
char buff[80];
|
|
||||||
|
|
||||||
DBUG_ENTER("get_tty_password");
|
|
||||||
|
|
||||||
#ifdef HAVE_GETPASS
|
#ifdef HAVE_GETPASS
|
||||||
passbuff = getpass(opt_message ? opt_message : "Enter password: ");
|
passbuff = getpass(opt_message ? opt_message : "Enter password: ");
|
||||||
|
|
||||||
/* copy the password to buff and clear original (static) buffer */
|
/* copy the password to buff and clear original (static) buffer */
|
||||||
strnmov(buff, passbuff, sizeof(buff) - 1);
|
strnmov(buff, passbuff, buflen - 1);
|
||||||
#ifdef _PASSWORD_LEN
|
#ifdef _PASSWORD_LEN
|
||||||
memset(passbuff, 0, _PASSWORD_LEN);
|
memset(passbuff, 0, _PASSWORD_LEN);
|
||||||
#endif
|
#endif
|
||||||
@ -191,7 +185,7 @@ char *get_tty_password(const char *opt_message)
|
|||||||
tmp.c_cc[VMIN] = 1;
|
tmp.c_cc[VMIN] = 1;
|
||||||
tmp.c_cc[VTIME] = 0;
|
tmp.c_cc[VTIME] = 0;
|
||||||
tcsetattr(fileno(stdin), TCSADRAIN, &tmp);
|
tcsetattr(fileno(stdin), TCSADRAIN, &tmp);
|
||||||
get_password(buff, sizeof(buff)-1, fileno(stdin), isatty(fileno(stdout)));
|
get_password(buff, buflen, fileno(stdin), isatty(fileno(stdout)));
|
||||||
tcsetattr(fileno(stdin), TCSADRAIN, &org);
|
tcsetattr(fileno(stdin), TCSADRAIN, &org);
|
||||||
#elif defined(HAVE_TERMIO_H)
|
#elif defined(HAVE_TERMIO_H)
|
||||||
ioctl(fileno(stdin), (int) TCGETA, &org);
|
ioctl(fileno(stdin), (int) TCGETA, &org);
|
||||||
@ -200,7 +194,7 @@ char *get_tty_password(const char *opt_message)
|
|||||||
tmp.c_cc[VMIN] = 1;
|
tmp.c_cc[VMIN] = 1;
|
||||||
tmp.c_cc[VTIME]= 0;
|
tmp.c_cc[VTIME]= 0;
|
||||||
ioctl(fileno(stdin),(int) TCSETA, &tmp);
|
ioctl(fileno(stdin),(int) TCSETA, &tmp);
|
||||||
get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stdout)));
|
get_password(buff,buflen-1,fileno(stdin),isatty(fileno(stdout)));
|
||||||
ioctl(fileno(stdin),(int) TCSETA, &org);
|
ioctl(fileno(stdin),(int) TCSETA, &org);
|
||||||
#else
|
#else
|
||||||
gtty(fileno(stdin), &org);
|
gtty(fileno(stdin), &org);
|
||||||
@ -208,13 +202,20 @@ char *get_tty_password(const char *opt_message)
|
|||||||
tmp.sg_flags &= ~ECHO;
|
tmp.sg_flags &= ~ECHO;
|
||||||
tmp.sg_flags |= RAW;
|
tmp.sg_flags |= RAW;
|
||||||
stty(fileno(stdin), &tmp);
|
stty(fileno(stdin), &tmp);
|
||||||
get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stdout)));
|
get_password(buff,buflen-1,fileno(stdin),isatty(fileno(stdout)));
|
||||||
stty(fileno(stdin), &org);
|
stty(fileno(stdin), &org);
|
||||||
#endif
|
#endif
|
||||||
if (isatty(fileno(stdout)))
|
if (isatty(fileno(stdout)))
|
||||||
fputc('\n',stdout);
|
fputc('\n',stdout);
|
||||||
#endif /* HAVE_GETPASS */
|
#endif /* HAVE_GETPASS */
|
||||||
|
|
||||||
DBUG_RETURN(my_strdup(buff,MYF(MY_FAE)));
|
|
||||||
}
|
}
|
||||||
#endif /*__WIN__*/
|
#endif /*__WIN__*/
|
||||||
|
|
||||||
|
#ifndef MYSQL_DYNAMIC_PLUGIN
|
||||||
|
char *get_tty_password(const char *opt_message)
|
||||||
|
{
|
||||||
|
char buff[80];
|
||||||
|
get_tty_password_buff(opt_message, buff, sizeof(buff));
|
||||||
|
return my_strdup(buff, MYF(MY_FAE));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@ -21,7 +21,7 @@ IF(WIN32)
|
|||||||
ADD_DEFINITIONS(-DUSE_TLS)
|
ADD_DEFINITIONS(-DUSE_TLS)
|
||||||
ENDIF(WIN32)
|
ENDIF(WIN32)
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DMYSQL_SERVER -DEMBEDDED_LIBRARY -DHAVE_DLOPEN)
|
ADD_DEFINITIONS(-DMYSQL_SERVER -DEMBEDDED_LIBRARY)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/libmysqld
|
${CMAKE_SOURCE_DIR}/libmysqld
|
||||||
|
@ -110,7 +110,7 @@ TEST_DIRS = t r include std_data std_data/parts collections \
|
|||||||
suite/innodb suite/innodb/t suite/innodb/r suite/innodb/include \
|
suite/innodb suite/innodb/t suite/innodb/r suite/innodb/include \
|
||||||
suite/innodb_plugin suite/innodb_plugin/t suite/innodb_plugin/r \
|
suite/innodb_plugin suite/innodb_plugin/t suite/innodb_plugin/r \
|
||||||
suite/innodb_plugin/include \
|
suite/innodb_plugin/include \
|
||||||
suite/percona suite/handler \
|
suite/percona suite/handler suite/plugins suite/plugins/t suite/plugins/r \
|
||||||
suite/engines suite/engines/funcs suite/engines/iuds suite/engines/rr_trx \
|
suite/engines suite/engines/funcs suite/engines/iuds suite/engines/rr_trx \
|
||||||
suite/engines/funcs/r suite/engines/funcs/t suite/engines/iuds/r \
|
suite/engines/funcs/r suite/engines/funcs/t suite/engines/iuds/r \
|
||||||
suite/engines/iuds/t suite/engines/rr_trx/include suite/engines/rr_trx/r \
|
suite/engines/iuds/t suite/engines/rr_trx/include suite/engines/rr_trx/r \
|
||||||
|
@ -162,7 +162,7 @@ our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
|
|||||||
|
|
||||||
my $DEFAULT_SUITES="main,binlog,federated,rpl,maria,handler,parts,innodb," .
|
my $DEFAULT_SUITES="main,binlog,federated,rpl,maria,handler,parts,innodb," .
|
||||||
"innodb_plugin,percona,ndb,vcol,oqgraph,sphinx," .
|
"innodb_plugin,percona,ndb,vcol,oqgraph,sphinx," .
|
||||||
"optimizer_unfixed_bugs";
|
"optimizer_unfixed_bugs,plugins";
|
||||||
my $opt_suites;
|
my $opt_suites;
|
||||||
|
|
||||||
our $opt_verbose= 0; # Verbose output, enable with --verbose
|
our $opt_verbose= 0; # Verbose output, enable with --verbose
|
||||||
|
@ -2927,4 +2927,249 @@ ORDER BY min_a;
|
|||||||
min_a
|
min_a
|
||||||
NULL
|
NULL
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# LP BUG#888456 Wrong result with DISTINCT , ANY , subquery_cache=off , NOT NULL
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 ( a int NOT NULL) ;
|
||||||
|
INSERT INTO t1 VALUES (28),(29),(9);
|
||||||
|
CREATE TABLE t2 ( a int, KEY (a)) ;
|
||||||
|
INSERT INTO t2 VALUES (1),(1),(1),(4),(4),(5),(5),(8),(8),(9);
|
||||||
|
explain select (select t2.a from t2 where t2.a >= t1.a group by t2.a) from t1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
|
||||||
|
2 DEPENDENT SUBQUERY t2 index a a 5 NULL 10 Using where; Using index
|
||||||
|
select (select t2.a from t2 where t2.a >= t1.a group by t2.a) from t1;
|
||||||
|
(select t2.a from t2 where t2.a >= t1.a group by t2.a)
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
9
|
||||||
|
drop table t1, t2;
|
||||||
|
#
|
||||||
|
# LP BUG#900375 Wrong result with derived_merge=ON, DISTINCT or GROUP BY, EXISTS
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 ( a INT, b INT, KEY (b) );
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(100,10),(101,11),(102,12),(103,13),(104,14),
|
||||||
|
(105,15),(106,16),(107,17),(108,18),(109,19);
|
||||||
|
EXPLAIN
|
||||||
|
SELECT alias1.* FROM t1, (SELECT * FROM t1) AS alias1
|
||||||
|
WHERE EXISTS ( SELECT DISTINCT b FROM t1 WHERE b <= alias1.a ) ;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 index NULL b 5 NULL 10 Using index
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join)
|
||||||
|
3 DEPENDENT SUBQUERY t1 index b b 5 NULL 10 Using where; Using index; Using temporary
|
||||||
|
SELECT alias1.* FROM t1, (SELECT * FROM t1) AS alias1
|
||||||
|
WHERE EXISTS ( SELECT DISTINCT b FROM t1 WHERE b <= alias1.a ) ;
|
||||||
|
a b
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
EXPLAIN
|
||||||
|
SELECT alias1.* FROM t1, t1 AS alias1
|
||||||
|
WHERE EXISTS ( SELECT DISTINCT b FROM t1 WHERE b <= alias1.a ) ;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 index NULL b 5 NULL 10 Using index
|
||||||
|
1 PRIMARY alias1 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join)
|
||||||
|
2 DEPENDENT SUBQUERY t1 ALL b NULL NULL NULL 10 Range checked for each record (index map: 0x1); Using temporary
|
||||||
|
SELECT alias1.* FROM t1, t1 AS alias1
|
||||||
|
WHERE EXISTS ( SELECT DISTINCT b FROM t1 WHERE b <= alias1.a ) ;
|
||||||
|
a b
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
100 10
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
101 11
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
102 12
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
103 13
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
104 14
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
105 15
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
106 16
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
107 17
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
108 18
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
109 19
|
||||||
|
drop table t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@ -5649,7 +5649,7 @@ WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 );
|
|||||||
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 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
1 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
||||||
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 DEPENDENT SUBQUERY t2 range f1_key f1_key 4 NULL 6 Range checked for each record (index map: 0x1); Using temporary
|
2 DEPENDENT SUBQUERY t2 ALL f1_key NULL NULL NULL 10 Range checked for each record (index map: 0x1); Using temporary
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
#
|
#
|
||||||
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
||||||
|
@ -5648,7 +5648,7 @@ WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 );
|
|||||||
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 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
1 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
||||||
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 DEPENDENT SUBQUERY t2 range f1_key f1_key 4 NULL 6 Range checked for each record (index map: 0x1); Using temporary
|
2 DEPENDENT SUBQUERY t2 ALL f1_key NULL NULL NULL 10 Range checked for each record (index map: 0x1); Using temporary
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
#
|
#
|
||||||
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
||||||
|
@ -5644,7 +5644,7 @@ WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 );
|
|||||||
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 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
1 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
||||||
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 DEPENDENT SUBQUERY t2 range f1_key f1_key 4 NULL 6 Range checked for each record (index map: 0x1); Using temporary
|
2 DEPENDENT SUBQUERY t2 ALL f1_key NULL NULL NULL 10 Range checked for each record (index map: 0x1); Using temporary
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
#
|
#
|
||||||
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
||||||
|
@ -5653,7 +5653,7 @@ WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 );
|
|||||||
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 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
1 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
||||||
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 DEPENDENT SUBQUERY t2 range f1_key f1_key 4 NULL 6 Range checked for each record (index map: 0x1); Using temporary
|
2 DEPENDENT SUBQUERY t2 ALL f1_key NULL NULL NULL 10 Range checked for each record (index map: 0x1); Using temporary
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
#
|
#
|
||||||
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
||||||
|
@ -5644,7 +5644,7 @@ WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 );
|
|||||||
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 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
1 PRIMARY table1 ALL NULL NULL NULL NULL 2
|
||||||
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
1 PRIMARY table2 index NULL f1_key 4 NULL 10 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 DEPENDENT SUBQUERY t2 range f1_key f1_key 4 NULL 6 Range checked for each record (index map: 0x1); Using temporary
|
2 DEPENDENT SUBQUERY t2 ALL f1_key NULL NULL NULL 10 Range checked for each record (index map: 0x1); Using temporary
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
#
|
#
|
||||||
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
# LP bug #826279: assertion failure with GROUP BY a result of subquery
|
||||||
|
26
mysql-test/suite/plugins/r/dialog.result
Normal file
26
mysql-test/suite/plugins/r/dialog.result
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
install plugin three_attempts soname 'dialog.so';
|
||||||
|
create user test_dialog identified via three_attempts using 'SECRET';
|
||||||
|
#
|
||||||
|
# -pSECRET is picked up, no questions asked.
|
||||||
|
#
|
||||||
|
select user(), current_user();
|
||||||
|
user() current_user()
|
||||||
|
test_dialog@localhost test_dialog@%
|
||||||
|
#
|
||||||
|
# without -p. up to three questions are asked on the stdin.
|
||||||
|
# athentication is successful, the correct pasword is on the third line
|
||||||
|
#
|
||||||
|
Password, please: ***
|
||||||
|
Password, please: ****
|
||||||
|
Password, please: ******
|
||||||
|
select user(), current_user();
|
||||||
|
user() current_user()
|
||||||
|
test_dialog@localhost test_dialog@%
|
||||||
|
#
|
||||||
|
# athentication is unsuccessful, first three lines are all wrong
|
||||||
|
#
|
||||||
|
Password, please: ***
|
||||||
|
Password, please: ****
|
||||||
|
Password, please: *****
|
||||||
|
drop user test_dialog;
|
||||||
|
uninstall plugin three_attempts;
|
22
mysql-test/suite/plugins/r/pam.result
Normal file
22
mysql-test/suite/plugins/r/pam.result
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
install plugin pam soname 'auth_pam.so';
|
||||||
|
create user test_pam identified via pam using 'mariadb_mtr';
|
||||||
|
#
|
||||||
|
# athentication is successful, challenge/pin are ok
|
||||||
|
# note that current_user() differts from user()
|
||||||
|
#
|
||||||
|
Challenge input first.
|
||||||
|
Enter: not very secret challenge
|
||||||
|
Now, the magic number!
|
||||||
|
PIN: ****
|
||||||
|
select user(), current_user(), database();
|
||||||
|
user() current_user() database()
|
||||||
|
test_pam@localhost pam_test@% test
|
||||||
|
#
|
||||||
|
# athentication is unsuccessful
|
||||||
|
#
|
||||||
|
Challenge input first.
|
||||||
|
Enter: not very secret challenge
|
||||||
|
Now, the magic number!
|
||||||
|
PIN: ****
|
||||||
|
drop user test_pam;
|
||||||
|
uninstall plugin pam;
|
8
mysql-test/suite/plugins/suite.pm
Normal file
8
mysql-test/suite/plugins/suite.pm
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package My::Suite::Plugins;
|
||||||
|
|
||||||
|
@ISA = qw(My::Suite);
|
||||||
|
|
||||||
|
$ENV{PAM_SETUP_FOR_MTR}=1 if -e '/etc/pam.d/mariadb_mtr';
|
||||||
|
|
||||||
|
bless { };
|
||||||
|
|
51
mysql-test/suite/plugins/t/dialog.test
Normal file
51
mysql-test/suite/plugins/t/dialog.test
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#
|
||||||
|
# test for the client "dialog" plugin
|
||||||
|
#
|
||||||
|
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
|
if (!$DIALOG_SO) {
|
||||||
|
skip No dialog auth plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
--replace_result .dll .so
|
||||||
|
eval install plugin three_attempts soname '$DIALOG_SO';
|
||||||
|
create user test_dialog identified via three_attempts using 'SECRET';
|
||||||
|
|
||||||
|
let $plugindir=`SELECT @@global.plugin_dir`;
|
||||||
|
|
||||||
|
--write_file $MYSQLTEST_VARDIR/tmp/dialog_good.txt
|
||||||
|
foo
|
||||||
|
1234
|
||||||
|
SECRET
|
||||||
|
select user(), current_user();
|
||||||
|
EOF
|
||||||
|
|
||||||
|
--write_file $MYSQLTEST_VARDIR/tmp/dialog_bad.txt
|
||||||
|
foo
|
||||||
|
1234
|
||||||
|
wrong
|
||||||
|
SECRET
|
||||||
|
EOF
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # -pSECRET is picked up, no questions asked.
|
||||||
|
--echo #
|
||||||
|
--exec echo "select user(), current_user();"|$MYSQL_TEST -u test_dialog -pSECRET --plugin-dir=$plugindir
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # without -p. up to three questions are asked on the stdin.
|
||||||
|
--echo # athentication is successful, the correct pasword is on the third line
|
||||||
|
--echo #
|
||||||
|
--exec $MYSQL_TEST -u test_dialog --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/dialog_good.txt
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # athentication is unsuccessful, first three lines are all wrong
|
||||||
|
--echo #
|
||||||
|
--error 1
|
||||||
|
--exec $MYSQL_TEST -u test_dialog --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/dialog_bad.txt
|
||||||
|
|
||||||
|
--remove_file $MYSQLTEST_VARDIR/tmp/dialog_good.txt
|
||||||
|
--remove_file $MYSQLTEST_VARDIR/tmp/dialog_bad.txt
|
||||||
|
drop user test_dialog;
|
||||||
|
uninstall plugin three_attempts;
|
@ -1,4 +1,4 @@
|
|||||||
source t/feedback_plugin_load.test;
|
source feedback_plugin_load.test;
|
||||||
|
|
||||||
if (!$MTR_FEEDBACK_PLUGIN) {
|
if (!$MTR_FEEDBACK_PLUGIN) {
|
||||||
skip MTR_FEEDBACK_PLUGIN is not set;
|
skip MTR_FEEDBACK_PLUGIN is not set;
|
46
mysql-test/suite/plugins/t/pam.test
Normal file
46
mysql-test/suite/plugins/t/pam.test
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
|
if (!$AUTH_PAM_SO) {
|
||||||
|
skip No pam auth plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$PAM_SETUP_FOR_MTR) {
|
||||||
|
skip No pam setup for mtr;
|
||||||
|
}
|
||||||
|
|
||||||
|
--replace_result .dll .so
|
||||||
|
eval install plugin pam soname '$AUTH_PAM_SO';
|
||||||
|
create user test_pam identified via pam using 'mariadb_mtr';
|
||||||
|
|
||||||
|
let $plugindir=`SELECT @@global.plugin_dir`;
|
||||||
|
|
||||||
|
--write_file $MYSQLTEST_VARDIR/tmp/pam_good.txt
|
||||||
|
not very secret challenge
|
||||||
|
9225
|
||||||
|
select user(), current_user(), database();
|
||||||
|
EOF
|
||||||
|
|
||||||
|
--write_file $MYSQLTEST_VARDIR/tmp/pam_bad.txt
|
||||||
|
not very secret challenge
|
||||||
|
9224
|
||||||
|
select user(), current_user(), database();
|
||||||
|
EOF
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # athentication is successful, challenge/pin are ok
|
||||||
|
--echo # note that current_user() differts from user()
|
||||||
|
--echo #
|
||||||
|
--exec $MYSQL_TEST -u test_pam --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_good.txt
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # athentication is unsuccessful
|
||||||
|
--echo #
|
||||||
|
--error 1
|
||||||
|
--exec $MYSQL_TEST -u test_pam --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/pam_bad.txt
|
||||||
|
|
||||||
|
--remove_file $MYSQLTEST_VARDIR/tmp/pam_good.txt
|
||||||
|
--remove_file $MYSQLTEST_VARDIR/tmp/pam_bad.txt
|
||||||
|
drop user test_pam;
|
||||||
|
uninstall plugin pam;
|
||||||
|
|
@ -1149,5 +1149,42 @@ ORDER BY min_a;
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # LP BUG#888456 Wrong result with DISTINCT , ANY , subquery_cache=off , NOT NULL
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 ( a int NOT NULL) ;
|
||||||
|
INSERT INTO t1 VALUES (28),(29),(9);
|
||||||
|
|
||||||
|
CREATE TABLE t2 ( a int, KEY (a)) ;
|
||||||
|
INSERT INTO t2 VALUES (1),(1),(1),(4),(4),(5),(5),(8),(8),(9);
|
||||||
|
|
||||||
|
explain select (select t2.a from t2 where t2.a >= t1.a group by t2.a) from t1;
|
||||||
|
select (select t2.a from t2 where t2.a >= t1.a group by t2.a) from t1;
|
||||||
|
|
||||||
|
drop table t1, t2;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # LP BUG#900375 Wrong result with derived_merge=ON, DISTINCT or GROUP BY, EXISTS
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 ( a INT, b INT, KEY (b) );
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(100,10),(101,11),(102,12),(103,13),(104,14),
|
||||||
|
(105,15),(106,16),(107,17),(108,18),(109,19);
|
||||||
|
|
||||||
|
EXPLAIN
|
||||||
|
SELECT alias1.* FROM t1, (SELECT * FROM t1) AS alias1
|
||||||
|
WHERE EXISTS ( SELECT DISTINCT b FROM t1 WHERE b <= alias1.a ) ;
|
||||||
|
SELECT alias1.* FROM t1, (SELECT * FROM t1) AS alias1
|
||||||
|
WHERE EXISTS ( SELECT DISTINCT b FROM t1 WHERE b <= alias1.a ) ;
|
||||||
|
|
||||||
|
EXPLAIN
|
||||||
|
SELECT alias1.* FROM t1, t1 AS alias1
|
||||||
|
WHERE EXISTS ( SELECT DISTINCT b FROM t1 WHERE b <= alias1.a ) ;
|
||||||
|
SELECT alias1.* FROM t1, t1 AS alias1
|
||||||
|
WHERE EXISTS ( SELECT DISTINCT b FROM t1 WHERE b <= alias1.a ) ;
|
||||||
|
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
--echo End of 5.1 tests
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
||||||
SET(AUTH_SOURCES dialog.c)
|
SET(AUTH_SOURCES dialog.c ${CMAKE_SOURCE_DIR}/libmysql/get_password.c)
|
||||||
MYSQL_PLUGIN(AUTH)
|
MYSQL_PLUGIN(AUTH)
|
||||||
|
@ -4,7 +4,7 @@ AM_LDFLAGS=-module -rpath $(pkgplugindir)
|
|||||||
AM_CPPFLAGS=-DMYSQL_DYNAMIC_PLUGIN -I$(top_srcdir)/include
|
AM_CPPFLAGS=-DMYSQL_DYNAMIC_PLUGIN -I$(top_srcdir)/include
|
||||||
|
|
||||||
pkgplugin_LTLIBRARIES= dialog.la
|
pkgplugin_LTLIBRARIES= dialog.la
|
||||||
dialog_la_SOURCES= dialog.c
|
dialog_la_SOURCES= dialog.c $(top_srcdir)/libmysql/get_password.c
|
||||||
|
|
||||||
if HAVE_PEERCRED
|
if HAVE_PEERCRED
|
||||||
pkgplugin_LTLIBRARIES+= auth_socket.la
|
pkgplugin_LTLIBRARIES+= auth_socket.la
|
||||||
|
@ -142,36 +142,6 @@ static struct st_mysql_auth three_handler=
|
|||||||
three_attempts
|
three_attempts
|
||||||
};
|
};
|
||||||
|
|
||||||
mysql_declare_plugin(dialog)
|
|
||||||
{
|
|
||||||
MYSQL_AUTHENTICATION_PLUGIN,
|
|
||||||
&two_handler,
|
|
||||||
"two_questions",
|
|
||||||
"Sergei Golubchik",
|
|
||||||
"Dialog plugin demo 1",
|
|
||||||
PLUGIN_LICENSE_GPL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
0x0100,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL
|
|
||||||
},
|
|
||||||
{
|
|
||||||
MYSQL_AUTHENTICATION_PLUGIN,
|
|
||||||
&three_handler,
|
|
||||||
"three_attempts",
|
|
||||||
"Sergei Golubchik",
|
|
||||||
"Dialog plugin demo 2",
|
|
||||||
PLUGIN_LICENSE_GPL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
0x0100,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL
|
|
||||||
}
|
|
||||||
mysql_declare_plugin_end;
|
|
||||||
maria_declare_plugin(dialog)
|
maria_declare_plugin(dialog)
|
||||||
{
|
{
|
||||||
MYSQL_AUTHENTICATION_PLUGIN,
|
MYSQL_AUTHENTICATION_PLUGIN,
|
||||||
@ -186,7 +156,7 @@ maria_declare_plugin(dialog)
|
|||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
"1.0",
|
"1.0",
|
||||||
MariaDB_PLUGIN_MATURITY_BETA
|
MariaDB_PLUGIN_MATURITY_EXPERIMENTAL
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
MYSQL_AUTHENTICATION_PLUGIN,
|
MYSQL_AUTHENTICATION_PLUGIN,
|
||||||
@ -201,7 +171,7 @@ maria_declare_plugin(dialog)
|
|||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
"1.0",
|
"1.0",
|
||||||
MariaDB_PLUGIN_MATURITY_BETA
|
MariaDB_PLUGIN_MATURITY_EXPERIMENTAL
|
||||||
}
|
}
|
||||||
maria_declare_plugin_end;
|
maria_declare_plugin_end;
|
||||||
|
|
||||||
@ -224,16 +194,25 @@ static char *builtin_ask(MYSQL *mysql __attribute__((unused)),
|
|||||||
const char *prompt,
|
const char *prompt,
|
||||||
char *buf, int buf_len)
|
char *buf, int buf_len)
|
||||||
{
|
{
|
||||||
int len;
|
|
||||||
|
|
||||||
fputs(prompt, stdout);
|
fputs(prompt, stdout);
|
||||||
fputc(' ', stdout);
|
fputc(' ', stdout);
|
||||||
if (fgets(buf, buf_len, stdin) == 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
len= strlen(buf);
|
if (type == 2) /* password */
|
||||||
if (len && buf[len-1]=='\n')
|
{
|
||||||
buf[len-1]=0;
|
get_tty_password_buff("", buf, buf_len);
|
||||||
|
buf[buf_len-1]= 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!fgets(buf, buf_len-1, stdin))
|
||||||
|
buf[0]= 0;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int len= strlen(buf);
|
||||||
|
if (len && buf[len-1] == '\n')
|
||||||
|
buf[len-1]= 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
@ -261,6 +240,7 @@ static int perform_dialog(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
|
|||||||
unsigned char *pkt, cmd= 0;
|
unsigned char *pkt, cmd= 0;
|
||||||
int pkt_len, res;
|
int pkt_len, res;
|
||||||
char reply_buf[1024], *reply;
|
char reply_buf[1024], *reply;
|
||||||
|
int first = 1;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@ -269,7 +249,7 @@ static int perform_dialog(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
|
|||||||
if (pkt_len < 0)
|
if (pkt_len < 0)
|
||||||
return CR_ERROR;
|
return CR_ERROR;
|
||||||
|
|
||||||
if (pkt == 0)
|
if (pkt == 0 && first)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
in mysql_change_user() the client sends the first packet, so
|
in mysql_change_user() the client sends the first packet, so
|
||||||
@ -291,10 +271,10 @@ static int perform_dialog(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
|
|||||||
return CR_OK_HANDSHAKE_COMPLETE; /* yes. we're done */
|
return CR_OK_HANDSHAKE_COMPLETE; /* yes. we're done */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
asking for a password with an empty prompt means mysql->password
|
asking for a password in the first packet mean mysql->password, if it's set
|
||||||
otherwise we ask the user and read the reply
|
otherwise we ask the user and read the reply
|
||||||
*/
|
*/
|
||||||
if ((cmd >> 1) == 2 && *pkt == 0)
|
if ((cmd >> 1) == 2 && first && mysql->passwd[0])
|
||||||
reply= mysql->passwd;
|
reply= mysql->passwd;
|
||||||
else
|
else
|
||||||
reply= ask(mysql, cmd >> 1, (char*) pkt, reply_buf, sizeof(reply_buf));
|
reply= ask(mysql, cmd >> 1, (char*) pkt, reply_buf, sizeof(reply_buf));
|
||||||
|
16
plugin/auth_pam/Makefile.am
Normal file
16
plugin/auth_pam/Makefile.am
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
EXTRA_LTLIBRARIES = auth_pam.la libauth_pam.la
|
||||||
|
|
||||||
|
pkgplugindir=$(pkglibdir)/plugin
|
||||||
|
AM_CPPFLAGS = -I$(top_srcdir)/include
|
||||||
|
|
||||||
|
pkgplugin_LTLIBRARIES = @plugin_auth_pam_shared_target@
|
||||||
|
auth_pam_la_LDFLAGS = -module -rpath $(pkgplugindir) -L$(top_builddir)/libservices -lmysqlservices -lpam
|
||||||
|
auth_pam_la_CFLAGS = -shared -DMYSQL_DYNAMIC_PLUGIN
|
||||||
|
auth_pam_la_SOURCES = auth_pam.c
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = @plugin_auth_pam_static_target@
|
||||||
|
libauth_pam_la_LDFLAGS = -lpam
|
||||||
|
libauth_pam_la_SOURCES = auth_pam.c
|
||||||
|
|
||||||
|
EXTRA_DIST = plug.in
|
||||||
|
|
130
plugin/auth_pam/auth_pam.c
Normal file
130
plugin/auth_pam/auth_pam.c
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
#include <mysql/plugin_auth.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <security/pam_appl.h>
|
||||||
|
#include <security/pam_modules.h>
|
||||||
|
|
||||||
|
struct param {
|
||||||
|
unsigned char buf[10240], *ptr;
|
||||||
|
MYSQL_PLUGIN_VIO *vio;
|
||||||
|
};
|
||||||
|
|
||||||
|
static int conv(int n, const struct pam_message **msg,
|
||||||
|
struct pam_response **resp, void *data)
|
||||||
|
{
|
||||||
|
struct param *param = (struct param *)data;
|
||||||
|
unsigned char *end = param->buf + sizeof(param->buf) - 1;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
*resp = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < n; i++)
|
||||||
|
{
|
||||||
|
/* if there's a message - append it to the buffer */
|
||||||
|
if (msg[i]->msg)
|
||||||
|
{
|
||||||
|
int len = strlen(msg[i]->msg);
|
||||||
|
if (len > end - param->ptr)
|
||||||
|
len = end - param->ptr;
|
||||||
|
if (len > 0)
|
||||||
|
{
|
||||||
|
memcpy(param->ptr, msg[i]->msg, len);
|
||||||
|
param->ptr+= len;
|
||||||
|
*(param->ptr)++ = '\n';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* if the message style is *_PROMPT_*, meaning PAM asks a question,
|
||||||
|
send the accumulated text to the client, read the reply */
|
||||||
|
if (msg[i]->msg_style == PAM_PROMPT_ECHO_OFF ||
|
||||||
|
msg[i]->msg_style == PAM_PROMPT_ECHO_ON)
|
||||||
|
{
|
||||||
|
int pkt_len;
|
||||||
|
unsigned char *pkt;
|
||||||
|
|
||||||
|
/* allocate the response array.
|
||||||
|
freeing it is the responsibility of the caller */
|
||||||
|
if (*resp == 0)
|
||||||
|
{
|
||||||
|
*resp = calloc(sizeof(struct pam_response), n);
|
||||||
|
if (*resp == 0)
|
||||||
|
return PAM_BUF_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* dialog plugin interprets the first byte of the packet
|
||||||
|
as the magic number.
|
||||||
|
2 means "read the input with the echo enabled"
|
||||||
|
4 means "password-like input, echo disabled"
|
||||||
|
C'est la vie. */
|
||||||
|
param->buf[0] = msg[i]->msg_style == PAM_PROMPT_ECHO_ON ? 2 : 4;
|
||||||
|
if (param->vio->write_packet(param->vio, param->buf, param->ptr - param->buf - 1))
|
||||||
|
return PAM_CONV_ERR;
|
||||||
|
|
||||||
|
pkt_len = param->vio->read_packet(param->vio, &pkt);
|
||||||
|
if (pkt_len < 0)
|
||||||
|
return PAM_CONV_ERR;
|
||||||
|
/* allocate and copy the reply to the response array */
|
||||||
|
(*resp)[i].resp = strndup((char*)pkt, pkt_len);
|
||||||
|
param->ptr = param->buf + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return PAM_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DO(X) if ((status = (X)) != PAM_SUCCESS) goto end
|
||||||
|
|
||||||
|
static int pam_auth(MYSQL_PLUGIN_VIO *vio, MYSQL_SERVER_AUTH_INFO *info)
|
||||||
|
{
|
||||||
|
pam_handle_t *pamh = NULL;
|
||||||
|
int status;
|
||||||
|
const char *new_username;
|
||||||
|
struct param param;
|
||||||
|
struct pam_conv c = { &conv, ¶m };
|
||||||
|
|
||||||
|
/*
|
||||||
|
get the service name, as specified in
|
||||||
|
|
||||||
|
CREATE USER ... IDENTIFIED WITH pam_auth AS "service"
|
||||||
|
*/
|
||||||
|
const char *service = info->auth_string && info->auth_string[0]
|
||||||
|
? info->auth_string : "mysql";
|
||||||
|
|
||||||
|
param.ptr = param.buf + 1;
|
||||||
|
param.vio = vio;
|
||||||
|
|
||||||
|
DO( pam_start(service, info->user_name, &c, &pamh) );
|
||||||
|
DO( pam_authenticate (pamh, 0) );
|
||||||
|
DO( pam_acct_mgmt(pamh, 0) );
|
||||||
|
DO( pam_get_item(pamh, PAM_USER, (const void**)&new_username) );
|
||||||
|
|
||||||
|
if (new_username && strcmp(new_username, info->user_name))
|
||||||
|
strncpy(info->authenticated_as, new_username,
|
||||||
|
sizeof(info->authenticated_as));
|
||||||
|
|
||||||
|
end:
|
||||||
|
pam_end(pamh, status);
|
||||||
|
return status == PAM_SUCCESS ? CR_OK : CR_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct st_mysql_auth pam_info =
|
||||||
|
{
|
||||||
|
MYSQL_AUTHENTICATION_INTERFACE_VERSION,
|
||||||
|
"dialog",
|
||||||
|
pam_auth
|
||||||
|
};
|
||||||
|
|
||||||
|
maria_declare_plugin(pam)
|
||||||
|
{
|
||||||
|
MYSQL_AUTHENTICATION_PLUGIN,
|
||||||
|
&pam_info,
|
||||||
|
"pam",
|
||||||
|
"Sergei Golubchik",
|
||||||
|
"PAM based authentication",
|
||||||
|
PLUGIN_LICENSE_GPL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
0x0100,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
"1.0",
|
||||||
|
MariaDB_PLUGIN_MATURITY_BETA
|
||||||
|
}
|
||||||
|
maria_declare_plugin_end;
|
4
plugin/auth_pam/plug.in
Normal file
4
plugin/auth_pam/plug.in
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
MYSQL_PLUGIN(auth_pam, [PAM Authentication Plugin], [PAM Authentication Plugin])
|
||||||
|
MYSQL_PLUGIN_DYNAMIC(auth_pam, [auth_pam.la])
|
||||||
|
|
||||||
|
AC_CHECK_HEADER([security/pam_appl.h],,[MYSQL_PLUGIN_WITHOUT(auth_pam)])
|
87
plugin/auth_pam/testing/pam_mariadb_mtr.c
Normal file
87
plugin/auth_pam/testing/pam_mariadb_mtr.c
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
/*
|
||||||
|
Pam module to test pam authentication plugin. Used in pam.test.
|
||||||
|
Linux only.
|
||||||
|
|
||||||
|
Compile as
|
||||||
|
|
||||||
|
gcc pam_mariadb_mtr.c -shared -lpam -fPIC -o pam_mariadb_mtr.so
|
||||||
|
|
||||||
|
Install as appropriate (for example, in /lib/security/).
|
||||||
|
Create /etc/pam.d/mariadb_mtr with
|
||||||
|
=========================================================
|
||||||
|
auth required pam_mariadb_mtr.so pam_test
|
||||||
|
account required pam_mariadb_mtr.so
|
||||||
|
=========================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <security/pam_modules.h>
|
||||||
|
#include <security/pam_appl.h>
|
||||||
|
|
||||||
|
#define N 3
|
||||||
|
|
||||||
|
PAM_EXTERN int
|
||||||
|
pam_sm_authenticate(pam_handle_t *pamh, int flags,
|
||||||
|
int argc, const char *argv[])
|
||||||
|
{
|
||||||
|
struct pam_conv *conv;
|
||||||
|
struct pam_response *resp = 0;
|
||||||
|
int pam_err, retval = PAM_SYSTEM_ERR;
|
||||||
|
struct pam_message msg[N] = {
|
||||||
|
{ PAM_TEXT_INFO, "Challenge input first." },
|
||||||
|
{ PAM_PROMPT_ECHO_ON, "Enter:" },
|
||||||
|
{ PAM_ERROR_MSG, "Now, the magic number!" }
|
||||||
|
};
|
||||||
|
const struct pam_message *msgp[N] = { msg, msg+1, msg+2 };
|
||||||
|
char *r1 = 0, *r2 = 0;
|
||||||
|
|
||||||
|
pam_err = pam_get_item(pamh, PAM_CONV, (const void **)&conv);
|
||||||
|
if (pam_err != PAM_SUCCESS)
|
||||||
|
goto ret;
|
||||||
|
|
||||||
|
pam_err = (*conv->conv)(N, msgp, &resp, conv->appdata_ptr);
|
||||||
|
|
||||||
|
if (pam_err != PAM_SUCCESS || !resp || !((r1= resp[1].resp)))
|
||||||
|
goto ret;
|
||||||
|
|
||||||
|
free(resp);
|
||||||
|
|
||||||
|
msg[0].msg_style = PAM_PROMPT_ECHO_OFF;
|
||||||
|
msg[0].msg = "PIN:";
|
||||||
|
pam_err = (*conv->conv)(1, msgp, &resp, conv->appdata_ptr);
|
||||||
|
|
||||||
|
if (pam_err != PAM_SUCCESS || !resp || !((r2= resp[0].resp)))
|
||||||
|
goto ret;
|
||||||
|
|
||||||
|
if (strlen(r1) == atoi(r2) % 100)
|
||||||
|
retval = PAM_SUCCESS;
|
||||||
|
else
|
||||||
|
retval = PAM_AUTH_ERR;
|
||||||
|
|
||||||
|
if (argc > 0 && argv[0])
|
||||||
|
pam_set_item(pamh, PAM_USER, argv[0]);
|
||||||
|
|
||||||
|
ret:
|
||||||
|
free(resp);
|
||||||
|
free(r1);
|
||||||
|
free(r2);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
PAM_EXTERN int
|
||||||
|
pam_sm_setcred(pam_handle_t *pamh, int flags,
|
||||||
|
int argc, const char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
return PAM_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
PAM_EXTERN int
|
||||||
|
pam_sm_acct_mgmt(pam_handle_t *pamh, int flags,
|
||||||
|
int argc, const char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
return PAM_SUCCESS;
|
||||||
|
}
|
||||||
|
|
@ -12,9 +12,8 @@
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
#ifndef MYSQL_SERVER
|
|
||||||
#define MYSQL_SERVER
|
#define MYSQL_SERVER 1
|
||||||
#endif
|
|
||||||
#include <mysql_priv.h>
|
#include <mysql_priv.h>
|
||||||
|
|
||||||
namespace feedback {
|
namespace feedback {
|
||||||
|
@ -36,7 +36,7 @@ SET_SOURCE_FILES_PROPERTIES(${CMAKE_BINARY_DIR}/sql/sql_yacc.h
|
|||||||
${CMAKE_BINARY_DIR}/include/sql_state.h
|
${CMAKE_BINARY_DIR}/include/sql_state.h
|
||||||
PROPERTIES GENERATED 1)
|
PROPERTIES GENERATED 1)
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DMYSQL_SERVER -D_CONSOLE -DHAVE_DLOPEN -DHAVE_EVENT_SCHEDULER)
|
ADD_DEFINITIONS(-DMYSQL_SERVER -D_CONSOLE -DHAVE_EVENT_SCHEDULER)
|
||||||
IF(WITH_FEEDBACK_STORAGE_ENGINE)
|
IF(WITH_FEEDBACK_STORAGE_ENGINE)
|
||||||
ADD_DEFINITIONS(-DWITH_FEEDBACK_PLUGIN)
|
ADD_DEFINITIONS(-DWITH_FEEDBACK_PLUGIN)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@ -11607,6 +11607,8 @@ get_best_group_min_max(PARAM *param, SEL_TREE *tree)
|
|||||||
DBUG_RETURN(NULL);
|
DBUG_RETURN(NULL);
|
||||||
if (table->s->keys == 0) /* There are no indexes to use. */
|
if (table->s->keys == 0) /* There are no indexes to use. */
|
||||||
DBUG_RETURN(NULL);
|
DBUG_RETURN(NULL);
|
||||||
|
if (join->conds && join->conds->used_tables() & OUTER_REF_TABLE_BIT)
|
||||||
|
DBUG_RETURN(NULL); /* Cannot execute with correlated conditions. */
|
||||||
|
|
||||||
/* Analyze the query in more detail. */
|
/* Analyze the query in more detail. */
|
||||||
List_iterator<Item> select_items_it(join->fields_list);
|
List_iterator<Item> select_items_it(join->fields_list);
|
||||||
@ -12916,6 +12918,7 @@ int QUICK_GROUP_MIN_MAX_SELECT::reset(void)
|
|||||||
int result;
|
int result;
|
||||||
DBUG_ENTER("QUICK_GROUP_MIN_MAX_SELECT::reset");
|
DBUG_ENTER("QUICK_GROUP_MIN_MAX_SELECT::reset");
|
||||||
|
|
||||||
|
seen_first_key= FALSE;
|
||||||
if (!head->key_read)
|
if (!head->key_read)
|
||||||
{
|
{
|
||||||
doing_key_read= 1;
|
doing_key_read= 1;
|
||||||
|
@ -70,7 +70,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -79,7 +79,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -88,7 +88,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -99,7 +99,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -108,7 +108,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -117,7 +117,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -167,7 +167,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -176,7 +176,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -185,7 +185,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -196,7 +196,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -205,7 +205,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -214,7 +214,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -264,7 +264,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -273,7 +273,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -282,7 +282,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -293,7 +293,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -302,7 +302,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -311,7 +311,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -361,7 +361,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -370,7 +370,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -379,7 +379,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -390,7 +390,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -399,7 +399,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -408,7 +408,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -458,7 +458,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -467,7 +467,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -476,7 +476,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -487,7 +487,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -496,7 +496,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -505,7 +505,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -555,7 +555,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -564,7 +564,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -573,7 +573,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -584,7 +584,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -593,7 +593,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -602,7 +602,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -652,7 +652,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -661,7 +661,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -670,7 +670,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -681,7 +681,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -690,7 +690,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -699,7 +699,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -749,7 +749,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -758,7 +758,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -767,7 +767,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -778,7 +778,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -787,7 +787,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -796,7 +796,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -846,7 +846,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -855,7 +855,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -864,7 +864,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -875,7 +875,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -884,7 +884,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -893,7 +893,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -943,7 +943,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -952,7 +952,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -961,7 +961,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -972,7 +972,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -981,7 +981,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -990,7 +990,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1040,7 +1040,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1049,7 +1049,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1058,7 +1058,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1069,7 +1069,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1078,7 +1078,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1087,7 +1087,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1137,7 +1137,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1146,7 +1146,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1155,7 +1155,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1166,7 +1166,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1175,7 +1175,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1184,7 +1184,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1234,7 +1234,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1243,7 +1243,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1252,7 +1252,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1263,7 +1263,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1272,7 +1272,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1281,7 +1281,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1331,7 +1331,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1340,7 +1340,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1349,7 +1349,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1360,7 +1360,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1369,7 +1369,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1378,7 +1378,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1428,7 +1428,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1437,7 +1437,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1446,7 +1446,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1457,7 +1457,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1466,7 +1466,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1475,7 +1475,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1525,7 +1525,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1534,7 +1534,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1543,7 +1543,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1554,7 +1554,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1563,7 +1563,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
@ -1572,7 +1572,7 @@ applying log
|
|||||||
Differences in aria_chk -dvv, recovery not yet perfect !
|
Differences in aria_chk -dvv, recovery not yet perfect !
|
||||||
========DIFF START=======
|
========DIFF START=======
|
||||||
6c6
|
6c6
|
||||||
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable
|
< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled
|
||||||
---
|
---
|
||||||
> Status: changed
|
> Status: changed
|
||||||
========DIFF END=======
|
========DIFF END=======
|
||||||
|
@ -1596,7 +1596,7 @@ page_rec_get_n_recs_before(
|
|||||||
n--;
|
n--;
|
||||||
|
|
||||||
ut_ad(n >= 0);
|
ut_ad(n >= 0);
|
||||||
ut_ad(n < UNIV_PAGE_SIZE / (REC_N_NEW_EXTRA_BYTES + 1));
|
ut_ad(n < (lint)UNIV_PAGE_SIZE / (REC_N_NEW_EXTRA_BYTES + 1));
|
||||||
|
|
||||||
return((ulint) n);
|
return((ulint) n);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user