10.0-base merge
This commit is contained in:
commit
0dc23679c8
@ -1455,4 +1455,4 @@ storage/tokudb/ft-index/utils/tokudb_gen
|
|||||||
storage/tokudb/ft-index/utils/tokudb_load
|
storage/tokudb/ft-index/utils/tokudb_load
|
||||||
storage/connect/connect.cnf
|
storage/connect/connect.cnf
|
||||||
storage/cassandra/cassandra.cnf
|
storage/cassandra/cassandra.cnf
|
||||||
libmysql/libmysql.version
|
libmysql/libmysql_versions.ld
|
||||||
|
@ -329,8 +329,15 @@ SET(PLUGINDIR "${DEFAULT_MYSQL_HOME}/${INSTALL_PLUGINDIR}")
|
|||||||
IF(INSTALL_SYSCONFDIR)
|
IF(INSTALL_SYSCONFDIR)
|
||||||
SET(DEFAULT_SYSCONFDIR "${INSTALL_SYSCONFDIR}")
|
SET(DEFAULT_SYSCONFDIR "${INSTALL_SYSCONFDIR}")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
OPTION(TMPDIR
|
||||||
|
"PATH to MySQL TMP dir. If unspecified, defaults to P_tmpdir in <stdio.h>" OFF)
|
||||||
IF(TMPDIR)
|
IF(TMPDIR)
|
||||||
SET(DEFAULT_TMPDIR "${TMPDIR}")
|
# Quote it, to make it a const char string.
|
||||||
|
SET(DEFAULT_TMPDIR "\"${TMPDIR}\"")
|
||||||
|
ELSE()
|
||||||
|
# Do not quote it, to refer to the P_tmpdir macro in <stdio.h>.
|
||||||
|
SET(DEFAULT_TMPDIR "P_tmpdir")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
# Run platform tests
|
# Run platform tests
|
||||||
@ -418,6 +425,7 @@ IF(NOT WITHOUT_SERVER)
|
|||||||
ADD_SUBDIRECTORY(internal)
|
ADD_SUBDIRECTORY(internal)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ADD_SUBDIRECTORY(packaging/rpm-uln)
|
ADD_SUBDIRECTORY(packaging/rpm-uln)
|
||||||
|
ADD_SUBDIRECTORY(packaging/rpm-oel)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(UNIX)
|
IF(UNIX)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -857,7 +857,7 @@ static int process_options(int argc, char *argv[], char *operation)
|
|||||||
strncat(buff, FN_DIRSEP, sizeof(buff) - strlen(buff) - 1);
|
strncat(buff, FN_DIRSEP, sizeof(buff) - strlen(buff) - 1);
|
||||||
#endif
|
#endif
|
||||||
buff[sizeof(buff) - 1]= 0;
|
buff[sizeof(buff) - 1]= 0;
|
||||||
my_delete(opt_basedir, MYF(0));
|
my_free(opt_basedir);
|
||||||
opt_basedir= my_strdup(buff, MYF(MY_FAE));
|
opt_basedir= my_strdup(buff, MYF(MY_FAE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,6 +166,8 @@ static void dynstr_set_checked(DYNAMIC_STRING *str, const char *init_str);
|
|||||||
static void dynstr_append_mem_checked(DYNAMIC_STRING *str, const char *append,
|
static void dynstr_append_mem_checked(DYNAMIC_STRING *str, const char *append,
|
||||||
uint length);
|
uint length);
|
||||||
static void dynstr_realloc_checked(DYNAMIC_STRING *str, ulong additional_size);
|
static void dynstr_realloc_checked(DYNAMIC_STRING *str, ulong additional_size);
|
||||||
|
|
||||||
|
static int do_start_slave_sql(MYSQL *mysql_con);
|
||||||
/*
|
/*
|
||||||
Constant for detection of default value of default_charset.
|
Constant for detection of default value of default_charset.
|
||||||
If default_charset is equal to mysql_universal_client_charset, then
|
If default_charset is equal to mysql_universal_client_charset, then
|
||||||
@ -1500,6 +1502,8 @@ static void free_resources()
|
|||||||
|
|
||||||
static void maybe_exit(int error)
|
static void maybe_exit(int error)
|
||||||
{
|
{
|
||||||
|
if (opt_slave_data)
|
||||||
|
do_start_slave_sql(mysql);
|
||||||
if (!first_error)
|
if (!first_error)
|
||||||
first_error= error;
|
first_error= error;
|
||||||
if (ignore_errors)
|
if (ignore_errors)
|
||||||
@ -3655,7 +3659,8 @@ static void dump_table(char *table, char *db)
|
|||||||
field->type == MYSQL_TYPE_BLOB ||
|
field->type == MYSQL_TYPE_BLOB ||
|
||||||
field->type == MYSQL_TYPE_LONG_BLOB ||
|
field->type == MYSQL_TYPE_LONG_BLOB ||
|
||||||
field->type == MYSQL_TYPE_MEDIUM_BLOB ||
|
field->type == MYSQL_TYPE_MEDIUM_BLOB ||
|
||||||
field->type == MYSQL_TYPE_TINY_BLOB)) ? 1 : 0;
|
field->type == MYSQL_TYPE_TINY_BLOB ||
|
||||||
|
field->type == MYSQL_TYPE_GEOMETRY)) ? 1 : 0;
|
||||||
if (extended_insert && !opt_xml)
|
if (extended_insert && !opt_xml)
|
||||||
{
|
{
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
@ -5700,10 +5705,6 @@ int main(int argc, char **argv)
|
|||||||
dump_databases(argv);
|
dump_databases(argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if --dump-slave , start the slave sql thread */
|
|
||||||
if (opt_slave_data && do_start_slave_sql(mysql))
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
/* add 'START SLAVE' to end of dump */
|
/* add 'START SLAVE' to end of dump */
|
||||||
if (opt_slave_apply && add_slave_statements())
|
if (opt_slave_apply && add_slave_statements())
|
||||||
goto err;
|
goto err;
|
||||||
@ -5719,9 +5720,6 @@ int main(int argc, char **argv)
|
|||||||
if (opt_delete_master_logs && purge_bin_logs_to(mysql, bin_log_name))
|
if (opt_delete_master_logs && purge_bin_logs_to(mysql, bin_log_name))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
#ifdef HAVE_SMEM
|
|
||||||
my_free(shared_memory_base_name);
|
|
||||||
#endif
|
|
||||||
/*
|
/*
|
||||||
No reason to explicitely COMMIT the transaction, neither to explicitely
|
No reason to explicitely COMMIT the transaction, neither to explicitely
|
||||||
UNLOCK TABLES: these will be automatically be done by the server when we
|
UNLOCK TABLES: these will be automatically be done by the server when we
|
||||||
@ -5729,6 +5727,14 @@ int main(int argc, char **argv)
|
|||||||
server.
|
server.
|
||||||
*/
|
*/
|
||||||
err:
|
err:
|
||||||
|
/* if --dump-slave , start the slave sql thread */
|
||||||
|
if (opt_slave_data && do_start_slave_sql(mysql))
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
#ifdef HAVE_SMEM
|
||||||
|
my_free(shared_memory_base_name);
|
||||||
|
#endif
|
||||||
|
|
||||||
dbDisconnect(current_host);
|
dbDisconnect(current_host);
|
||||||
if (!path)
|
if (!path)
|
||||||
write_footer(md_result_file);
|
write_footer(md_result_file);
|
||||||
|
@ -528,6 +528,7 @@ struct st_command
|
|||||||
{
|
{
|
||||||
char *query, *query_buf,*first_argument,*last_argument,*end;
|
char *query, *query_buf,*first_argument,*last_argument,*end;
|
||||||
DYNAMIC_STRING content;
|
DYNAMIC_STRING content;
|
||||||
|
DYNAMIC_STRING eval_query;
|
||||||
int first_word_len, query_len;
|
int first_word_len, query_len;
|
||||||
my_bool abort_on_error, used_replace;
|
my_bool abort_on_error, used_replace;
|
||||||
struct st_expected_errors expected_errors;
|
struct st_expected_errors expected_errors;
|
||||||
@ -1399,6 +1400,8 @@ void free_used_memory()
|
|||||||
{
|
{
|
||||||
struct st_command **q= dynamic_element(&q_lines, i, struct st_command**);
|
struct st_command **q= dynamic_element(&q_lines, i, struct st_command**);
|
||||||
my_free((*q)->query_buf);
|
my_free((*q)->query_buf);
|
||||||
|
if ((*q)->eval_query.str)
|
||||||
|
dynstr_free(&(*q)->eval_query);
|
||||||
if ((*q)->content.str)
|
if ((*q)->content.str)
|
||||||
dynstr_free(&(*q)->content);
|
dynstr_free(&(*q)->content);
|
||||||
my_free((*q));
|
my_free((*q));
|
||||||
@ -8342,7 +8345,6 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
|
|||||||
DYNAMIC_STRING ds_result;
|
DYNAMIC_STRING ds_result;
|
||||||
DYNAMIC_STRING ds_sorted;
|
DYNAMIC_STRING ds_sorted;
|
||||||
DYNAMIC_STRING ds_warnings;
|
DYNAMIC_STRING ds_warnings;
|
||||||
DYNAMIC_STRING eval_query;
|
|
||||||
char *query;
|
char *query;
|
||||||
int query_len;
|
int query_len;
|
||||||
my_bool view_created= 0, sp_created= 0;
|
my_bool view_created= 0, sp_created= 0;
|
||||||
@ -8365,10 +8367,14 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
|
|||||||
if (command->type == Q_EVAL || command->type == Q_SEND_EVAL ||
|
if (command->type == Q_EVAL || command->type == Q_SEND_EVAL ||
|
||||||
command->type == Q_EVALP)
|
command->type == Q_EVALP)
|
||||||
{
|
{
|
||||||
init_dynamic_string(&eval_query, "", command->query_len+256, 1024);
|
if (!command->eval_query.str)
|
||||||
do_eval(&eval_query, command->query, command->end, FALSE);
|
init_dynamic_string(&command->eval_query, "", command->query_len + 256,
|
||||||
query = eval_query.str;
|
1024);
|
||||||
query_len = eval_query.length;
|
else
|
||||||
|
dynstr_set(&command->eval_query, 0);
|
||||||
|
do_eval(&command->eval_query, command->query, command->end, FALSE);
|
||||||
|
query= command->eval_query.str;
|
||||||
|
query_len= command->eval_query.length;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -8536,8 +8542,6 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
|
|||||||
|
|
||||||
dynstr_free(&ds_warnings);
|
dynstr_free(&ds_warnings);
|
||||||
ds_warn= 0;
|
ds_warn= 0;
|
||||||
if (command->type == Q_EVAL || command->type == Q_SEND_EVAL)
|
|
||||||
dynstr_free(&eval_query);
|
|
||||||
|
|
||||||
if (display_result_sorted)
|
if (display_result_sorted)
|
||||||
{
|
{
|
||||||
|
16
cmake/CPackRPM.cmake
Normal file
16
cmake/CPackRPM.cmake
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#
|
||||||
|
# Wrapper for CPackRPM.cmake
|
||||||
|
#
|
||||||
|
|
||||||
|
# load the original CPackRPM.cmake
|
||||||
|
set(orig_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
|
||||||
|
unset(CMAKE_MODULE_PATH)
|
||||||
|
include(CPackRPM)
|
||||||
|
set(CMAKE_MODULE_PATH ${orig_CMAKE_MODULE_PATH})
|
||||||
|
|
||||||
|
# per-component cleanup
|
||||||
|
foreach(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX CONFLICTS AUTOPROV AUTOREQ AUTOREQPROV)
|
||||||
|
unset(TMP_RPM_${_RPM_SPEC_HEADER})
|
||||||
|
unset(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP)
|
||||||
|
endforeach()
|
||||||
|
|
@ -23,14 +23,14 @@ SET(CPACK_COMPONENT_SHAREDLIBRARIES_GROUP "shared")
|
|||||||
SET(CPACK_COMPONENT_COMMON_GROUP "common")
|
SET(CPACK_COMPONENT_COMMON_GROUP "common")
|
||||||
SET(CPACK_COMPONENT_COMPAT_GROUP "compat")
|
SET(CPACK_COMPONENT_COMPAT_GROUP "compat")
|
||||||
SET(CPACK_COMPONENTS_ALL Server ManPagesServer IniFiles Server_Scripts
|
SET(CPACK_COMPONENTS_ALL Server ManPagesServer IniFiles Server_Scripts
|
||||||
SupportFiles Development ManPagesDevelopment
|
SupportFiles Development ManPagesDevelopment
|
||||||
ManPagesTest Readme ManPagesClient Test
|
ManPagesTest Readme ManPagesClient Test
|
||||||
Common Client SharedLibraries)
|
Common Client SharedLibraries)
|
||||||
|
|
||||||
SET(CPACK_RPM_PACKAGE_NAME "MariaDB")
|
SET(CPACK_RPM_PACKAGE_NAME "MariaDB")
|
||||||
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${VERSION}-${RPM}-${CMAKE_SYSTEM_PROCESSOR}")
|
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${VERSION}-${RPM}-${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
|
||||||
SET(CPACK_RPM_PACKAGE_RELEASE 1) # FIX: add distribution name here
|
SET(CPACK_RPM_PACKAGE_RELEASE "1%{?dist}")
|
||||||
SET(CPACK_RPM_PACKAGE_LICENSE "GPL")
|
SET(CPACK_RPM_PACKAGE_LICENSE "GPL")
|
||||||
SET(CPACK_RPM_PACKAGE_RELOCATABLE FALSE)
|
SET(CPACK_RPM_PACKAGE_RELOCATABLE FALSE)
|
||||||
SET(CPACK_RPM_PACKAGE_GROUP "Applications/Databases")
|
SET(CPACK_RPM_PACKAGE_GROUP "Applications/Databases")
|
||||||
@ -94,55 +94,128 @@ SET(CPACK_RPM_compat_USER_FILELIST ${ignored})
|
|||||||
SET(CPACK_RPM_devel_USER_FILELIST ${ignored})
|
SET(CPACK_RPM_devel_USER_FILELIST ${ignored})
|
||||||
SET(CPACK_RPM_test_USER_FILELIST ${ignored})
|
SET(CPACK_RPM_test_USER_FILELIST ${ignored})
|
||||||
|
|
||||||
SET(CPACK_RPM_client_PACKAGE_OBSOLETES "mysql-client MySQL-client MySQL-OurDelta-client")
|
# "set/append array" - append a set of strings, separated by a space
|
||||||
SET(CPACK_RPM_client_PACKAGE_PROVIDES "MySQL-client mysql-client")
|
MACRO(SETA var)
|
||||||
|
FOREACH(v ${ARGN})
|
||||||
|
SET(${var} "${${var}} ${v}")
|
||||||
|
ENDFOREACH()
|
||||||
|
ENDMACRO(SETA)
|
||||||
|
|
||||||
# this is a workaround for CPackRPM.cmake (as of 2.8.8) bug.
|
SETA(CPACK_RPM_client_PACKAGE_OBSOLETES
|
||||||
# If a package group does not specify OBSOLETES/REQUIRES the values of the
|
"mysql-client"
|
||||||
# previous (alphabetically) group will apply.
|
"MySQL-client"
|
||||||
SET(CPACK_RPM_common_PACKAGE_OBSOLETES "MySQL-common")
|
"MySQL-OurDelta-client")
|
||||||
SET(CPACK_RPM_common_PACKAGE_PROVIDES "MariaDB-common")
|
SETA(CPACK_RPM_client_PACKAGE_PROVIDES
|
||||||
|
"MySQL-client"
|
||||||
|
"mysql-client")
|
||||||
|
|
||||||
SET(CPACK_RPM_devel_PACKAGE_OBSOLETES "mysql-devel MySQL-devel MySQL-OurDelta-devel")
|
SETA(CPACK_RPM_devel_PACKAGE_OBSOLETES
|
||||||
SET(CPACK_RPM_devel_PACKAGE_PROVIDES "MySQL-devel mysql-devel")
|
"MySQL-devel"
|
||||||
|
"MySQL-OurDelta-devel")
|
||||||
|
SETA(CPACK_RPM_devel_PACKAGE_PROVIDES
|
||||||
|
"MySQL-devel")
|
||||||
|
|
||||||
|
SETA(CPACK_RPM_server_PACKAGE_OBSOLETES
|
||||||
|
"MariaDB"
|
||||||
|
"MySQL"
|
||||||
|
"mysql-server"
|
||||||
|
"MySQL-server"
|
||||||
|
"MySQL-OurDelta-server")
|
||||||
|
SETA(CPACK_RPM_server_PACKAGE_PROVIDES
|
||||||
|
"MariaDB"
|
||||||
|
"MySQL"
|
||||||
|
"MySQL-server"
|
||||||
|
"msqlormysql"
|
||||||
|
"mysql-server")
|
||||||
|
|
||||||
|
SETA(CPACK_RPM_shared_PACKAGE_OBSOLETES
|
||||||
|
"mysql-shared"
|
||||||
|
"MySQL-shared-standard"
|
||||||
|
"MySQL-shared-pro"
|
||||||
|
"MySQL-shared-pro-cert"
|
||||||
|
"MySQL-shared-pro-gpl"
|
||||||
|
"MySQL-shared-pro-gpl-cert"
|
||||||
|
"MySQL-shared"
|
||||||
|
"MySQL-OurDelta-shared")
|
||||||
|
SETA(CPACK_RPM_shared_PACKAGE_PROVIDES
|
||||||
|
"MySQL-shared"
|
||||||
|
"mysql-shared")
|
||||||
|
|
||||||
|
SETA(CPACK_RPM_test_PACKAGE_OBSOLETES
|
||||||
|
"MySQL-test"
|
||||||
|
"MySQL-OurDelta-test")
|
||||||
|
SETA(CPACK_RPM_test_PACKAGE_PROVIDES
|
||||||
|
"MySQL-test")
|
||||||
|
|
||||||
SET(CPACK_RPM_server_PACKAGE_OBSOLETES "MariaDB MySQL mysql-server MySQL-server MySQL-OurDelta-server")
|
|
||||||
SET(CPACK_RPM_server_PACKAGE_PROVIDES "MariaDB MySQL MySQL-server msqlormysql mysql-server")
|
|
||||||
SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-prein.sh)
|
SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-prein.sh)
|
||||||
SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-preun.sh)
|
SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-preun.sh)
|
||||||
SET(CPACK_RPM_server_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postin.sh)
|
SET(CPACK_RPM_server_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postin.sh)
|
||||||
SET(CPACK_RPM_server_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postun.sh)
|
SET(CPACK_RPM_server_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postun.sh)
|
||||||
|
|
||||||
SET(CPACK_RPM_shared_PACKAGE_OBSOLETES "mysql-shared MySQL-shared-standard MySQL-shared-pro MySQL-shared-pro-cert MySQL-shared-pro-gpl MySQL-shared-pro-gpl-cert MySQL-shared MySQL-OurDelta-shared mysql-libs")
|
|
||||||
SET(CPACK_RPM_shared_PACKAGE_PROVIDES "MySQL-shared mysql-shared")
|
|
||||||
|
|
||||||
SET(CPACK_RPM_shared_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
SET(CPACK_RPM_shared_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
||||||
SET(CPACK_RPM_shared_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
SET(CPACK_RPM_shared_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
||||||
|
|
||||||
SET(CPACK_RPM_test_PACKAGE_OBSOLETES "mysql-test MySQL-test MySQL-OurDelta-test")
|
|
||||||
SET(CPACK_RPM_test_PACKAGE_PROVIDES "MySQL-test mysql-test")
|
|
||||||
|
|
||||||
# Argh! Different distributions call packages differently, to be a drop-in replacement
|
|
||||||
# we have to fake distribution-speficic dependencies
|
|
||||||
MACRO(ALTERNATIVE_NAME real alt)
|
MACRO(ALTERNATIVE_NAME real alt)
|
||||||
|
SET(ver "%{version}-%{release}")
|
||||||
|
IF (${epoch})
|
||||||
|
SET(ver "${epoch}:${ver}")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
SET(p "CPACK_RPM_${real}_PACKAGE_PROVIDES")
|
SET(p "CPACK_RPM_${real}_PACKAGE_PROVIDES")
|
||||||
SET(${p} "${${p}} ${alt} ${alt}(x86-32) ${alt}(x86-64) config(${alt})")
|
SET(${p} "${${p}} ${alt} = ${ver} ${alt}%{?_isa} = ${ver} config(${alt}) = ${ver}")
|
||||||
SET(o "CPACK_RPM_${real}_PACKAGE_OBSOLETES")
|
SET(o "CPACK_RPM_${real}_PACKAGE_OBSOLETES")
|
||||||
SET(${o} "${${o}} ${alt}")
|
SET(${o} "${${o}} ${alt} ${alt}%{_isa}")
|
||||||
ENDMACRO(ALTERNATIVE_NAME)
|
ENDMACRO(ALTERNATIVE_NAME)
|
||||||
|
|
||||||
|
# Argh! Different distributions call packages differently, to be a drop-in
|
||||||
|
# replacement we have to fake distribution-speficic dependencies
|
||||||
|
|
||||||
|
ALTERNATIVE_NAME("devel" "mysql-devel")
|
||||||
|
ALTERNATIVE_NAME("server" "mysql-server")
|
||||||
|
ALTERNATIVE_NAME("test" "mysql-test")
|
||||||
|
|
||||||
IF(RPM MATCHES "(rhel|centos)5")
|
IF(RPM MATCHES "(rhel|centos)5")
|
||||||
ALTERNATIVE_NAME("shared" "mysql")
|
ALTERNATIVE_NAME("shared" "mysql")
|
||||||
ELSEIF(RPM MATCHES "(rhel|centos)6")
|
ELSEIF(RPM MATCHES "(rhel|centos)6")
|
||||||
ALTERNATIVE_NAME("client" "mysql")
|
ALTERNATIVE_NAME("client" "mysql")
|
||||||
ALTERNATIVE_NAME("shared" "mysql-libs")
|
ALTERNATIVE_NAME("shared" "mysql-libs")
|
||||||
ELSEIF(RPM MATCHES "fedora")
|
ELSEIF(RPM MATCHES "fedora")
|
||||||
|
SET(epoch 1) # this is fedora
|
||||||
|
ALTERNATIVE_NAME("client" "mariadb")
|
||||||
ALTERNATIVE_NAME("client" "mysql")
|
ALTERNATIVE_NAME("client" "mysql")
|
||||||
|
ALTERNATIVE_NAME("devel" "mariadb-devel")
|
||||||
|
ALTERNATIVE_NAME("server" "mariadb-server")
|
||||||
|
ALTERNATIVE_NAME("shared" "mariadb-libs")
|
||||||
ALTERNATIVE_NAME("shared" "mysql-libs")
|
ALTERNATIVE_NAME("shared" "mysql-libs")
|
||||||
|
ALTERNATIVE_NAME("test" "mariadb-test")
|
||||||
|
SET(CPACK_RPM_common_PACKAGE_CONFLICTS "mariadb-libs < 1:%{version}-%{release}")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
# workaround for lots of perl dependencies added by rpmbuild
|
# workaround for lots of perl dependencies added by rpmbuild
|
||||||
SET(CPACK_RPM_test_PACKAGE_PROVIDES "${CPACK_RPM_test_PACKAGE_PROVIDES} perl(lib::mtr_gcov.pl) perl(lib::mtr_gprof.pl) perl(lib::mtr_io.pl) perl(lib::mtr_misc.pl) perl(lib::mtr_process.pl) perl(lib::v1/mtr_cases.pl) perl(lib::v1/mtr_gcov.pl) perl(lib::v1/mtr_gprof.pl) perl(lib::v1/mtr_im.pl) perl(lib::v1/mtr_io.pl) perl(lib::v1/mtr_match.pl) perl(lib::v1/mtr_misc.pl) perl(lib::v1/mtr_process.pl) perl(lib::v1/mtr_report.pl) perl(lib::v1/mtr_stress.pl) perl(lib::v1/mtr_timer.pl) perl(lib::v1/mtr_unique.pl) perl(mtr_cases) perl(mtr_io.pl) perl(mtr_match) perl(mtr_misc.pl) perl(mtr_report) perl(mtr_results) perl(mtr_unique)")
|
SETA(CPACK_RPM_test_PACKAGE_PROVIDES
|
||||||
|
"perl(lib::mtr_gcov.pl)"
|
||||||
|
"perl(lib::mtr_gprof.pl)"
|
||||||
|
"perl(lib::mtr_io.pl)"
|
||||||
|
"perl(lib::mtr_misc.pl)"
|
||||||
|
"perl(lib::mtr_process.pl)"
|
||||||
|
"perl(lib::v1/mtr_cases.pl)"
|
||||||
|
"perl(lib::v1/mtr_gcov.pl)"
|
||||||
|
"perl(lib::v1/mtr_gprof.pl)"
|
||||||
|
"perl(lib::v1/mtr_im.pl)"
|
||||||
|
"perl(lib::v1/mtr_io.pl)"
|
||||||
|
"perl(lib::v1/mtr_match.pl)"
|
||||||
|
"perl(lib::v1/mtr_misc.pl)"
|
||||||
|
"perl(lib::v1/mtr_process.pl)"
|
||||||
|
"perl(lib::v1/mtr_report.pl)"
|
||||||
|
"perl(lib::v1/mtr_stress.pl)"
|
||||||
|
"perl(lib::v1/mtr_timer.pl)"
|
||||||
|
"perl(lib::v1/mtr_unique.pl)"
|
||||||
|
"perl(mtr_cases)"
|
||||||
|
"perl(mtr_io.pl)"
|
||||||
|
"perl(mtr_match)"
|
||||||
|
"perl(mtr_misc.pl)"
|
||||||
|
"perl(mtr_report)"
|
||||||
|
"perl(mtr_results)"
|
||||||
|
"perl(mtr_unique)")
|
||||||
|
|
||||||
# If we want to build build MariaDB-shared-compat,
|
# If we want to build build MariaDB-shared-compat,
|
||||||
# extract compat libraries from MariaDB-shared-5.3 rpm
|
# extract compat libraries from MariaDB-shared-5.3 rpm
|
||||||
@ -170,7 +243,6 @@ IF (compat_rpm)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF(compat_rpm)
|
ENDIF(compat_rpm)
|
||||||
|
|
||||||
SET(CPACK_RPM_compat_PACKAGE_REQUIRES "/bin/sh") # to mask CPACK_RPM_PACKAGE_REQUIRES
|
|
||||||
SET(CPACK_RPM_compat_PACKAGE_PROVIDES "mysql-libs = 5.3.5") # exact version doesn't matter as long as it greater than 5.1
|
SET(CPACK_RPM_compat_PACKAGE_PROVIDES "mysql-libs = 5.3.5") # exact version doesn't matter as long as it greater than 5.1
|
||||||
SET(CPACK_RPM_compat_PACKAGE_OBSOLETES "mysql-libs < 5.3.5")
|
SET(CPACK_RPM_compat_PACKAGE_OBSOLETES "mysql-libs < 5.3.5")
|
||||||
|
|
||||||
|
@ -397,6 +397,7 @@ FUNCTION(INSTALL_MYSQL_TEST from to)
|
|||||||
PATTERN "*.vcxproj.filters" EXCLUDE
|
PATTERN "*.vcxproj.filters" EXCLUDE
|
||||||
PATTERN "*.vcxproj.user" EXCLUDE
|
PATTERN "*.vcxproj.user" EXCLUDE
|
||||||
PATTERN "CTest" EXCLUDE
|
PATTERN "CTest" EXCLUDE
|
||||||
|
PATTERN "*~" EXCLUDE
|
||||||
)
|
)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDFUNCTION()
|
ENDFUNCTION()
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
# Copyright (c) 2009 Sun Microsystems, Inc.
|
# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
# Use is subject to license terms.
|
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
/* Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -618,7 +618,7 @@
|
|||||||
#cmakedefine DEFAULT_CHARSET_HOME "@DEFAULT_CHARSET_HOME@"
|
#cmakedefine DEFAULT_CHARSET_HOME "@DEFAULT_CHARSET_HOME@"
|
||||||
#cmakedefine PLUGINDIR "@PLUGINDIR@"
|
#cmakedefine PLUGINDIR "@PLUGINDIR@"
|
||||||
#cmakedefine DEFAULT_SYSCONFDIR "@DEFAULT_SYSCONFDIR@"
|
#cmakedefine DEFAULT_SYSCONFDIR "@DEFAULT_SYSCONFDIR@"
|
||||||
#cmakedefine DEFAULT_TMPDIR "@DEFAULT_TMPDIR@"
|
#cmakedefine DEFAULT_TMPDIR @DEFAULT_TMPDIR@
|
||||||
|
|
||||||
#cmakedefine SO_EXT "@CMAKE_SHARED_MODULE_SUFFIX@"
|
#cmakedefine SO_EXT "@CMAKE_SHARED_MODULE_SUFFIX@"
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2005, 2012, Oracle and/or its affiliates.
|
Copyright (c) 2005, 2013, Oracle and/or its affiliates.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2005, 2012, Oracle and/or its affiliates
|
Copyright (c) 2005, 2013, Oracle and/or its affiliates
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2005, 2012, Oracle and/or its affiliates
|
Copyright (c) 2005, 2013, Oracle and/or its affiliates
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2002, 2012, Oracle and/or its affiliates.
|
Copyright (c) 2002, 2013, Oracle and/or its affiliates.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1214,11 +1214,4 @@ static inline double rint(double x)
|
|||||||
#define HAVE_EXTERNAL_CLIENT
|
#define HAVE_EXTERNAL_CLIENT
|
||||||
#endif /* EMBEDDED_LIBRARY */
|
#endif /* EMBEDDED_LIBRARY */
|
||||||
|
|
||||||
/*
|
|
||||||
Define default tmpdir if not already set.
|
|
||||||
*/
|
|
||||||
#if !defined(DEFAULT_TMPDIR)
|
|
||||||
#define DEFAULT_TMPDIR P_tmpdir
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* my_global_h */
|
#endif /* my_global_h */
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc,
|
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||||
2010-2011 Oracle and/or its affiliates, 2009-2010 Monty Program Ab.
|
Copyright (c) 2009, 2013, Monty Program Ab.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -96,7 +96,7 @@ int pthread_create(pthread_t *, const pthread_attr_t *, pthread_handler, void *)
|
|||||||
int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr);
|
int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr);
|
||||||
int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
|
int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
|
||||||
int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
|
int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
|
||||||
struct timespec *abstime);
|
const struct timespec *abstime);
|
||||||
int pthread_cond_signal(pthread_cond_t *cond);
|
int pthread_cond_signal(pthread_cond_t *cond);
|
||||||
int pthread_cond_broadcast(pthread_cond_t *cond);
|
int pthread_cond_broadcast(pthread_cond_t *cond);
|
||||||
int pthread_cond_destroy(pthread_cond_t *cond);
|
int pthread_cond_destroy(pthread_cond_t *cond);
|
||||||
|
@ -13,10 +13,6 @@
|
|||||||
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 */
|
||||||
|
|
||||||
|
|
||||||
/* Some defines to make it easier to use valgrind */
|
|
||||||
#include <m_string.h> /* bfill */
|
|
||||||
|
|
||||||
#ifdef HAVE_valgrind
|
#ifdef HAVE_valgrind
|
||||||
#define IF_VALGRIND(A,B) A
|
#define IF_VALGRIND(A,B) A
|
||||||
#else
|
#else
|
||||||
@ -37,7 +33,7 @@
|
|||||||
#endif /* HAVE_VALGRIND */
|
#endif /* HAVE_VALGRIND */
|
||||||
|
|
||||||
#ifndef DBUG_OFF
|
#ifndef DBUG_OFF
|
||||||
#define TRASH_FILL(A,B,C) do { const size_t trash_tmp= (B) ; bfill(A, trash_tmp, C); MEM_UNDEFINED(A, trash_tmp); } while (0)
|
#define TRASH_FILL(A,B,C) do { const size_t trash_tmp= (B); memset(A, C, trash_tmp); MEM_UNDEFINED(A, trash_tmp); } while (0)
|
||||||
#else
|
#else
|
||||||
#define TRASH_FILL(A,B,C) do{ const size_t trash_tmp __attribute__((unused)) = (B) ; MEM_CHECK_ADDRESSABLE(A,trash_tmp);MEM_UNDEFINED(A,trash_tmp);} while (0)
|
#define TRASH_FILL(A,B,C) do{ const size_t trash_tmp __attribute__((unused)) = (B) ; MEM_CHECK_ADDRESSABLE(A,trash_tmp);MEM_UNDEFINED(A,trash_tmp);} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2000, 2012, Oracle and/or its affiliates.
|
Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||||
Copyright (c) 2009, 2013, Monty Program Ab.
|
Copyright (c) 2009, 2013, Monty Program Ab.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Copyright (c) 2005, 2011, Oracle and/or its affiliates
|
/* Copyright (c) 2005, 2013, Oracle and/or its affiliates
|
||||||
Copyright (C) 2009, 2011, Monty Program Ab
|
Copyright (C) 2009, 2013, Monty Program Ab
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
/* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or
|
This program is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU General Public License
|
modify it under the terms of the GNU General Public License
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
|
/* Copyright (c) 2008, 2013, Oracle and/or its affiliates.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -518,7 +518,7 @@ typedef struct st_mysql_cond mysql_cond_t;
|
|||||||
@c mysql_cond_timedwait is a drop-in replacement
|
@c mysql_cond_timedwait is a drop-in replacement
|
||||||
for @c pthread_cond_timedwait.
|
for @c pthread_cond_timedwait.
|
||||||
*/
|
*/
|
||||||
#ifdef HAVE_PSI_COND_INTERFACE
|
#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX)
|
||||||
#define mysql_cond_timedwait(C, M, W) \
|
#define mysql_cond_timedwait(C, M, W) \
|
||||||
inline_mysql_cond_timedwait(C, M, W, __FILE__, __LINE__)
|
inline_mysql_cond_timedwait(C, M, W, __FILE__, __LINE__)
|
||||||
#else
|
#else
|
||||||
@ -1170,8 +1170,8 @@ static inline int inline_mysql_cond_wait(
|
|||||||
static inline int inline_mysql_cond_timedwait(
|
static inline int inline_mysql_cond_timedwait(
|
||||||
mysql_cond_t *that,
|
mysql_cond_t *that,
|
||||||
mysql_mutex_t *mutex,
|
mysql_mutex_t *mutex,
|
||||||
struct timespec *abstime
|
const struct timespec *abstime
|
||||||
#ifdef HAVE_PSI_COND_INTERFACE
|
#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX)
|
||||||
, const char *src_file, uint src_line
|
, const char *src_file, uint src_line
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2011, 2012, Oracle and/or its affiliates.
|
/* Copyright (c) 2011, 2014, Oracle and/or its affiliates.
|
||||||
Copyright (c) 2011, 2012, Monty Program Ab
|
Copyright (c) 2011, 2012, Monty Program Ab
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
@ -17,7 +17,7 @@
|
|||||||
#ifndef _welcome_copyright_notice_h_
|
#ifndef _welcome_copyright_notice_h_
|
||||||
#define _welcome_copyright_notice_h_
|
#define _welcome_copyright_notice_h_
|
||||||
|
|
||||||
#define COPYRIGHT_NOTICE_CURRENT_YEAR "2013"
|
#define COPYRIGHT_NOTICE_CURRENT_YEAR "2014"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This define specifies copyright notice which is displayed by every MySQL
|
This define specifies copyright notice which is displayed by every MySQL
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# Copyright (c) 2006, 2012, Oracle and/or its affiliates.
|
# Copyright (c) 2006, 2013, Oracle and/or its affiliates.
|
||||||
|
# Copyright (c) 2009, 2013, SkySQL Ab.
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -26,8 +27,6 @@ ADD_DEFINITIONS(${SSL_DEFINES})
|
|||||||
|
|
||||||
SET(CLIENT_API_FUNCTIONS_5_1
|
SET(CLIENT_API_FUNCTIONS_5_1
|
||||||
get_tty_password
|
get_tty_password
|
||||||
handle_options
|
|
||||||
load_defaults
|
|
||||||
mysql_thread_end
|
mysql_thread_end
|
||||||
mysql_thread_init
|
mysql_thread_init
|
||||||
myodbc_remove_escape
|
myodbc_remove_escape
|
||||||
@ -131,6 +130,12 @@ mysql_server_init
|
|||||||
mysql_server_end
|
mysql_server_end
|
||||||
mysql_set_character_set
|
mysql_set_character_set
|
||||||
mysql_get_character_set_info
|
mysql_get_character_set_info
|
||||||
|
# These are documented in Paul DuBois' MySQL book,
|
||||||
|
# so we treat them as part of the de-facto API.
|
||||||
|
handle_options
|
||||||
|
load_defaults
|
||||||
|
free_defaults
|
||||||
|
my_print_help
|
||||||
)
|
)
|
||||||
|
|
||||||
SET(CLIENT_API_FUNCTIONS_5_5
|
SET(CLIENT_API_FUNCTIONS_5_5
|
||||||
@ -153,6 +158,8 @@ mysql_close_cont
|
|||||||
mysql_close_start
|
mysql_close_start
|
||||||
mysql_commit_cont
|
mysql_commit_cont
|
||||||
mysql_commit_start
|
mysql_commit_start
|
||||||
|
mysql_dump_debug_info_cont
|
||||||
|
mysql_dump_debug_info_start
|
||||||
mysql_fetch_row_cont
|
mysql_fetch_row_cont
|
||||||
mysql_fetch_row_start
|
mysql_fetch_row_start
|
||||||
mysql_free_result_cont
|
mysql_free_result_cont
|
||||||
@ -259,72 +266,75 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|||||||
# for compatibility with distribution packages, so client shared library can
|
# for compatibility with distribution packages, so client shared library can
|
||||||
# painlessly replace the one supplied by the distribution.
|
# painlessly replace the one supplied by the distribution.
|
||||||
|
|
||||||
# Also list of exported symbols in distributions may differ from what is considered
|
# Also list of exported symbols in distributions may differ from what is
|
||||||
# official API. Define CLIENT_API_EXTRA for the set of symbols, that required to
|
# considered official API. Define CLIENT_API_5_1_EXTRA for the set of
|
||||||
# be exported on different platforms.
|
# symbols, that required to be exported on different platforms.
|
||||||
|
|
||||||
IF(RPM)
|
# Fedora & Co declared following functions as part of API
|
||||||
# Fedora & Co declared following functions as part of API
|
SET(CLIENT_API_5_1_EXTRA
|
||||||
SET(CLIENT_API_EXTRA
|
# why does Fedora export these?
|
||||||
mysql_default_charset_info
|
_fini
|
||||||
mysql_get_charset
|
_init
|
||||||
mysql_get_charset_by_csname
|
my_init
|
||||||
mysql_net_realloc
|
|
||||||
mysql_client_errors
|
|
||||||
|
|
||||||
# Also export the non-renamed variants
|
# mysql-connector-odbc requires these
|
||||||
# (in case someone wants to rebuild mysqli-php or something similar)
|
mysql_default_charset_info
|
||||||
# See MDEV-4127
|
mysql_get_charset
|
||||||
default_charset_info
|
mysql_get_charset_by_csname
|
||||||
get_charset
|
mysql_net_realloc
|
||||||
get_charset_by_csname
|
|
||||||
net_realloc
|
|
||||||
client_errors
|
|
||||||
THR_KEY_mysys
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add special script to fix symbols renames by Fedora
|
# PHP's mysqli.so requires this (via the ER() macro)
|
||||||
SET(CLIENT_SOURCES_EXTRA rpm_support.cc)
|
mysql_client_errors
|
||||||
SET(VERSION_SCRIPT_TEMPLATE
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/libmysql_rpm_version.in)
|
|
||||||
ELSEIF(DEB)
|
|
||||||
# libmyodbc on Ubuntu is using functions below
|
|
||||||
# If we don't export them, linker would just remove
|
|
||||||
# them (they are not used inside libmysqlclient)
|
|
||||||
SET(CLIENT_API_EXTRA
|
|
||||||
strfill
|
|
||||||
init_dynamic_string
|
|
||||||
)
|
|
||||||
# MySQL supplied with Ubuntu does not have versioning, bug Debian does.
|
|
||||||
IF(DEB MATCHES "debian")
|
|
||||||
SET(VERSION_SCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/libmysql.ver.in)
|
|
||||||
ENDIF()
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
IF(VERSION_SCRIPT_TEMPLATE)
|
# Also export the non-renamed variants
|
||||||
# Generate version script.
|
# (in case someone wants to rebuild mysqli-php or something similar)
|
||||||
# Create semicolon separated lists of functions to export from
|
# See MDEV-4127
|
||||||
# Since RPM packages use separate versioning for 5.1 API
|
default_charset_info
|
||||||
# and 5.5 API (libmysqlclient_16 vs libmysqlclient_18),
|
get_charset
|
||||||
# we need 2 lists.
|
get_charset_by_csname
|
||||||
SET (CLIENT_API_5_1_LIST)
|
net_realloc
|
||||||
FOREACH (f ${CLIENT_API_FUNCTIONS_5_1})
|
client_errors
|
||||||
SET(CLIENT_API_5_1_LIST "${CLIENT_API_5_1_LIST}\n${f};")
|
|
||||||
ENDFOREACH()
|
|
||||||
|
|
||||||
SET (CLIENT_API_5_5_LIST)
|
# pure-ftpd requires this
|
||||||
FOREACH (f ${CLIENT_API_FUNCTIONS_5_5})
|
my_make_scrambled_password
|
||||||
SET(CLIENT_API_5_5_LIST "${CLIENT_API_5_5_LIST}\n${f};")
|
|
||||||
ENDFOREACH()
|
|
||||||
|
|
||||||
CONFIGURE_FILE(
|
# hydra requires this
|
||||||
${VERSION_SCRIPT_TEMPLATE}
|
scramble
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libmysql.version
|
|
||||||
@ONLY@
|
# ODB requires this: https://bugzilla.redhat.com/show_bug.cgi?id=846602
|
||||||
)
|
THR_KEY_mysys
|
||||||
SET(VERSION_SCRIPT_LINK_FLAGS
|
|
||||||
"-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/libmysql.version")
|
# DBD::mysql requires this
|
||||||
ENDIF()
|
is_prefix
|
||||||
|
)
|
||||||
|
|
||||||
|
# Linker script to version symbols in Fedora- and Debian- compatible way, MDEV-5529
|
||||||
|
SET(VERSION_SCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/libmysql_versions.ld.in)
|
||||||
|
|
||||||
|
# Generate version script.
|
||||||
|
# Create semicolon separated lists of functions to export from
|
||||||
|
# Since RPM packages use separate versioning for 5.1 API
|
||||||
|
# and 5.5 API (libmysqlclient_16 vs libmysqlclient_18),
|
||||||
|
# we need 2 lists.
|
||||||
|
SET (CLIENT_API_5_1_LIST)
|
||||||
|
SET (CLIENT_API_5_1_ALIASES)
|
||||||
|
FOREACH (f ${CLIENT_API_FUNCTIONS_5_1} ${CLIENT_API_5_1_EXTRA})
|
||||||
|
SET(CLIENT_API_5_1_LIST "${CLIENT_API_5_1_LIST}\t${f};\n")
|
||||||
|
SET(CLIENT_API_5_1_ALIASES "${CLIENT_API_5_1_ALIASES}\"${f}@libmysqlclient_16\" = ${f};\n")
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
SET (CLIENT_API_5_5_LIST)
|
||||||
|
FOREACH (f ${CLIENT_API_FUNCTIONS_5_5})
|
||||||
|
SET(CLIENT_API_5_5_LIST "${CLIENT_API_5_5_LIST}\t${f};\n")
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
CONFIGURE_FILE(
|
||||||
|
${VERSION_SCRIPT_TEMPLATE}
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libmysql_versions.ld
|
||||||
|
@ONLY@
|
||||||
|
)
|
||||||
|
SET(VERSION_SCRIPT_LINK_FLAGS
|
||||||
|
"-Wl,${CMAKE_CURRENT_BINARY_DIR}/libmysql_versions.ld")
|
||||||
|
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
@ -375,7 +385,7 @@ IF(UNIX)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(NOT DISABLE_SHARED)
|
IF(NOT DISABLE_SHARED)
|
||||||
MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_EXTRA} COMPONENT SharedLibraries)
|
MERGE_LIBRARIES(libmysql SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} ${CLIENT_API_5_1_EXTRA} COMPONENT SharedLibraries)
|
||||||
IF(UNIX)
|
IF(UNIX)
|
||||||
# libtool compatability
|
# libtool compatability
|
||||||
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
|
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
|
||||||
@ -392,9 +402,6 @@ IF(NOT DISABLE_SHARED)
|
|||||||
SOVERSION "${SHARED_LIB_MAJOR_VERSION}")
|
SOVERSION "${SHARED_LIB_MAJOR_VERSION}")
|
||||||
IF(LINK_FLAG_NO_UNDEFINED OR VERSION_SCRIPT_LINK_FLAGS)
|
IF(LINK_FLAG_NO_UNDEFINED OR VERSION_SCRIPT_LINK_FLAGS)
|
||||||
GET_TARGET_PROPERTY(libmysql_link_flags libmysql LINK_FLAGS)
|
GET_TARGET_PROPERTY(libmysql_link_flags libmysql LINK_FLAGS)
|
||||||
IF(NOT libmysql_link_flag)
|
|
||||||
SET(libmysql_link_flags)
|
|
||||||
ENDIF()
|
|
||||||
SET_TARGET_PROPERTIES(libmysql PROPERTIES LINK_FLAGS
|
SET_TARGET_PROPERTIES(libmysql PROPERTIES LINK_FLAGS
|
||||||
"${libmysql_link_flags} ${LINK_FLAG_NO_UNDEFINED} ${VERSION_SCRIPT_LINK_FLAGS}")
|
"${libmysql_link_flags} ${LINK_FLAG_NO_UNDEFINED} ${VERSION_SCRIPT_LINK_FLAGS}")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2000-2004 MySQL AB
|
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Copyright (c) 2000, 2012, Oracle and/or its affiliates
|
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates
|
||||||
Copyright (c) 2009, 2012, Monty Program Ab
|
Copyright (c) 2009, 2013, Monty Program Ab
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1 +0,0 @@
|
|||||||
libmysqlclient_@SHARED_LIB_MAJOR_VERSION@ { global: *; };
|
|
@ -1,62 +0,0 @@
|
|||||||
# This version script is heavily inspired by Fedora's and Mageia's version scripts for
|
|
||||||
# MySQL client shared library. It is used in MariaDB for building RPMs.
|
|
||||||
|
|
||||||
libmysqlclient_16 {
|
|
||||||
global:
|
|
||||||
@CLIENT_API_5_1_LIST@
|
|
||||||
|
|
||||||
# some stuff from Mageia, I have no idea why it is there
|
|
||||||
# But too afraid to throw anything away
|
|
||||||
_fini;
|
|
||||||
_init;
|
|
||||||
my_init;
|
|
||||||
my_progname;
|
|
||||||
myodbc_remove_escape;
|
|
||||||
|
|
||||||
# These are documented in Paul DuBois' MySQL book, so we treat them as part
|
|
||||||
# of the de-facto API.
|
|
||||||
free_defaults;
|
|
||||||
handle_options;
|
|
||||||
load_defaults;
|
|
||||||
my_print_help;
|
|
||||||
# pure-ftpd requires this
|
|
||||||
my_make_scrambled_password;
|
|
||||||
# fedora18 export
|
|
||||||
THR_KEY_mysys;
|
|
||||||
# hydra requires this
|
|
||||||
scramble;
|
|
||||||
# DBD::mysql requires this
|
|
||||||
is_prefix;
|
|
||||||
local:
|
|
||||||
*;
|
|
||||||
};
|
|
||||||
|
|
||||||
libmysqlclient_18 {
|
|
||||||
global:
|
|
||||||
@CLIENT_API_5_5_LIST@
|
|
||||||
#
|
|
||||||
# Ideally the following symbols wouldn't be exported, but various applications
|
|
||||||
# require them. Fedora limits the namespace damage by prefixing mysql_
|
|
||||||
# (see mysql-dubious-exports.patch), which means the symbols are not present
|
|
||||||
# in libmysqlclient_16.
|
|
||||||
#
|
|
||||||
# MariaDB does not do the Fedora-style function renaming via #define in headers,
|
|
||||||
# however it exports mysql_ prefixed symbols in addition to the "normal" ones.
|
|
||||||
#
|
|
||||||
# To ensure successful recompilation of affected projects, as well as drop-in replacement
|
|
||||||
# for MySQL libraries, provided by distribution, both original symbols and their mysql_
|
|
||||||
# prefixed counterparts have to be exported.
|
|
||||||
|
|
||||||
# mysql-connector-odbc requires these
|
|
||||||
mysql_default_charset_info;
|
|
||||||
mysql_get_charset;
|
|
||||||
mysql_get_charset_by_csname;
|
|
||||||
mysql_net_realloc;
|
|
||||||
default_charset_info;
|
|
||||||
get_charset;
|
|
||||||
get_charset_by_csname;
|
|
||||||
net_realloc;
|
|
||||||
# PHP's mysqli.so requires this (via the ER() macro)
|
|
||||||
mysql_client_errors;
|
|
||||||
client_errors;
|
|
||||||
};
|
|
45
libmysql/libmysql_versions.ld.in
Normal file
45
libmysql/libmysql_versions.ld.in
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
This version script is heavily inspired by Fedora's and Mageia's version
|
||||||
|
scripts for MySQL client shared library.
|
||||||
|
But it was modified to support Debian-compatible versioning too.
|
||||||
|
|
||||||
|
In RedHat universe, symbols from old libmysqlclient.so.16
|
||||||
|
keep their libmysqlclient_16 version. New symbols added in
|
||||||
|
libmysqlclient.so.18 get the new libmysqlclient_18 version.
|
||||||
|
|
||||||
|
In Debian all symbols in libmysqlclient.so.18 have libmysqlclient_18 version,
|
||||||
|
including symbols that existed in libmysqlclient.so.16
|
||||||
|
|
||||||
|
We solve this by putting all symbols into libmysqlclient_18 version node,
|
||||||
|
but creating aliases for old symbols in the libmysqlclient_16 version node.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@CLIENT_API_5_1_ALIASES@
|
||||||
|
|
||||||
|
/*
|
||||||
|
On Fedora the following symbols are exported, but renamed into a mysql_
|
||||||
|
namespace. We export them as aliases, but keep original symbols too. See
|
||||||
|
MDEV-4127.
|
||||||
|
*/
|
||||||
|
mysql_default_charset_info = default_charset_info;
|
||||||
|
mysql_get_charset = get_charset;
|
||||||
|
mysql_get_charset_by_csname = get_charset_by_csname;
|
||||||
|
mysql_net_realloc = net_realloc;
|
||||||
|
mysql_client_errors = client_errors;
|
||||||
|
|
||||||
|
VERSION {
|
||||||
|
|
||||||
|
libmysqlclient_18 {
|
||||||
|
global:
|
||||||
|
@CLIENT_API_5_1_LIST@
|
||||||
|
@CLIENT_API_5_5_LIST@
|
||||||
|
|
||||||
|
local:
|
||||||
|
*;
|
||||||
|
};
|
||||||
|
|
||||||
|
libmysqlclient_16 {
|
||||||
|
/* empty here. aliases are added above */
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -1,41 +0,0 @@
|
|||||||
/*
|
|
||||||
Provide aliases for several symbols, to support drop-in replacement for
|
|
||||||
MariaDB on Fedora and several derives distributions.
|
|
||||||
|
|
||||||
These distributions redefine several symbols (in a way that is no compatible
|
|
||||||
with either MySQL or MariaDB) and export it from the client library ( as seen
|
|
||||||
e.g from this patch)
|
|
||||||
http://lists.fedoraproject.org/pipermail/scm-commits/2010-December/537257.html
|
|
||||||
|
|
||||||
MariaDB handles compatibility distribution by providing the same symbols from
|
|
||||||
the client library if it is built with -DRPM
|
|
||||||
|
|
||||||
*/
|
|
||||||
#include <errmsg.h>
|
|
||||||
#include <my_sys.h>
|
|
||||||
#include <mysql.h>
|
|
||||||
extern "C" {
|
|
||||||
|
|
||||||
CHARSET_INFO *mysql_default_charset_info = default_charset_info;
|
|
||||||
|
|
||||||
CHARSET_INFO *mysql_get_charset(uint cs_number, myf flags)
|
|
||||||
{
|
|
||||||
return get_charset(cs_number, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
CHARSET_INFO *mysql_get_charset_by_csname(const char *cs_name,
|
|
||||||
uint cs_flags, myf my_flags)
|
|
||||||
{
|
|
||||||
return get_charset_by_csname(cs_name, cs_flags, my_flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
my_bool mysql_net_realloc(NET *net, size_t length)
|
|
||||||
{
|
|
||||||
return net_realloc(net,length);
|
|
||||||
}
|
|
||||||
|
|
||||||
const char **mysql_client_errors = client_errors;
|
|
||||||
|
|
||||||
} /*extern "C" */
|
|
||||||
|
|
@ -566,7 +566,7 @@ int init_embedded_server(int argc, char **argv, char **groups)
|
|||||||
opt_mysql_tmpdir=getenv("TMP");
|
opt_mysql_tmpdir=getenv("TMP");
|
||||||
#endif
|
#endif
|
||||||
if (!opt_mysql_tmpdir || !opt_mysql_tmpdir[0])
|
if (!opt_mysql_tmpdir || !opt_mysql_tmpdir[0])
|
||||||
opt_mysql_tmpdir=(char*) DEFAULT_TMPDIR; /* purecov: inspected */
|
opt_mysql_tmpdir= const_cast<char*>(DEFAULT_TMPDIR); /* purecov: inspected*/
|
||||||
|
|
||||||
init_ssl();
|
init_ssl();
|
||||||
umask(((~my_umask) & 0666));
|
umask(((~my_umask) & 0666));
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -5,3 +5,6 @@ perl mysql-test-run.pl --timer --force --debug-server --parallel=auto --comment
|
|||||||
perl mysql-test-run.pl --timer --force --debug-server --parallel=auto --comment=eits-tests-innodb-engine --experimental=collections/default.experimental --vardir=var-stmt-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=innodb --mysqld=--innodb --skip-test-list=collections/disabled-weekly.list
|
perl mysql-test-run.pl --timer --force --debug-server --parallel=auto --comment=eits-tests-innodb-engine --experimental=collections/default.experimental --vardir=var-stmt-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=innodb --mysqld=--innodb --skip-test-list=collections/disabled-weekly.list
|
||||||
perl mysql-test-run.pl --timer --force --debug-server --parallel=auto --comment=eits-rpl-binlog-row-tests-innodb-engine --experimental=collections/default.experimental --vardir=var-binlog-row-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=innodb --mysqld=--innodb --do-test=rpl --mysqld=--binlog-format=row --skip-test-list=collections/disabled-weekly.list
|
perl mysql-test-run.pl --timer --force --debug-server --parallel=auto --comment=eits-rpl-binlog-row-tests-innodb-engine --experimental=collections/default.experimental --vardir=var-binlog-row-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=innodb --mysqld=--innodb --do-test=rpl --mysqld=--binlog-format=row --skip-test-list=collections/disabled-weekly.list
|
||||||
perl mysql-test-run.pl --timer --force --debug-server --parallel=auto --comment=eits-rpl-binlog-mixed-tests-innodb-engine --experimental=collections/default.experimental --vardir=var-binlog-mixed-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=innodb --mysqld=--innodb --do-test=rpl --mysqld=--binlog-format=mixed --skip-test-list=collections/disabled-weekly.list
|
perl mysql-test-run.pl --timer --force --debug-server --parallel=auto --comment=eits-rpl-binlog-mixed-tests-innodb-engine --experimental=collections/default.experimental --vardir=var-binlog-mixed-eits-tests-innodb-engine --suite=engines/iuds,engines/funcs --suite-timeout=500 --max-test-fail=0 --retry-failure=0 --mysqld=--default-storage-engine=innodb --mysqld=--innodb --do-test=rpl --mysqld=--binlog-format=mixed --skip-test-list=collections/disabled-weekly.list
|
||||||
|
|
||||||
|
# Run innodb compression tests
|
||||||
|
perl mysql-test-run.pl --force --debug-server --comment=innodb_compression --vardir=var-innodb-zip --big-test --testcase-timeout=60 --parallel=auto --experimental=collections/default.experimental --suite=innodb_zip
|
||||||
|
@ -14,3 +14,12 @@ SELECT HEX(a), HEX(CONVERT(a USING utf8mb4)) FROM t1 ORDER BY a;
|
|||||||
ALTER TABLE t1 ADD KEY(a);
|
ALTER TABLE t1 ADD KEY(a);
|
||||||
SELECT HEX(a), HEX(CONVERT(a USING utf8mb4)) FROM t1 ORDER BY a;
|
SELECT HEX(a), HEX(CONVERT(a USING utf8mb4)) FROM t1 ORDER BY a;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
|
--echo #
|
||||||
|
--echo # BUG#16691598 - ORDER BY LOWER(COLUMN) PRODUCES
|
||||||
|
--echo # OUT-OF-ORDER RESULTS
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1 SELECT ('a a') as n;
|
||||||
|
INSERT INTO t1 VALUES('a b');
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) ASC;
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) DESC;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -79,8 +79,11 @@ select pk1,pk2 from t1 where key1 = 10 and key2=10 and 2*pk1+1 < 2*96+1;
|
|||||||
# Verify that CPK is always used for index intersection scans
|
# Verify that CPK is always used for index intersection scans
|
||||||
# (this is because it is used as a filter, not for retrieval)
|
# (this is because it is used as a filter, not for retrieval)
|
||||||
explain select * from t1 where badkey=1 and key1=10;
|
explain select * from t1 where badkey=1 and key1=10;
|
||||||
|
set @tmp_index_merge_ror_cpk=@@optimizer_switch;
|
||||||
|
set optimizer_switch='extended_keys=off';
|
||||||
--replace_column 9 ROWS
|
--replace_column 9 ROWS
|
||||||
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
||||||
|
set optimizer_switch=@tmp_index_merge_ror_cpk;
|
||||||
|
|
||||||
# Verify that keys with 'tails' of PK members are ok.
|
# Verify that keys with 'tails' of PK members are ok.
|
||||||
explain select * from t1 where pktail1ok=1 and key1=10;
|
explain select * from t1 where pktail1ok=1 and key1=10;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
-- Copyright (c) 2008, 2011, Oracle and/or its affiliates
|
-- Copyright (c) 2008, 2013, Oracle and/or its affiliates
|
||||||
|
-- Copyright (c) 2009, 2013, SkySQL Ab
|
||||||
--
|
--
|
||||||
-- This program is free software; you can redistribute it and/or modify
|
-- This program is free software; you can redistribute it and/or modify
|
||||||
-- it under the terms of the GNU General Public License as published by
|
-- it under the terms of the GNU General Public License as published by
|
||||||
@ -57,6 +58,16 @@ BEGIN
|
|||||||
WHERE table_schema='mysql' AND table_name != 'ndb_apply_status'
|
WHERE table_schema='mysql' AND table_name != 'ndb_apply_status'
|
||||||
ORDER BY columns_in_mysql;
|
ORDER BY columns_in_mysql;
|
||||||
|
|
||||||
|
-- Dump all events, there should be none
|
||||||
|
SELECT * FROM INFORMATION_SCHEMA.EVENTS;
|
||||||
|
-- Dump all triggers except mtr internals, there should be none
|
||||||
|
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
|
||||||
|
WHERE TRIGGER_NAME NOT IN ('gs_insert', 'ts_insert');
|
||||||
|
-- Dump all created procedures, there should be none
|
||||||
|
SELECT * FROM INFORMATION_SCHEMA.ROUTINES;
|
||||||
|
|
||||||
|
SHOW STATUS LIKE 'slave_open_temp_tables';
|
||||||
|
|
||||||
-- Checksum system tables to make sure they have been properly
|
-- Checksum system tables to make sure they have been properly
|
||||||
-- restored after test
|
-- restored after test
|
||||||
checksum table
|
checksum table
|
||||||
@ -85,7 +96,5 @@ BEGIN
|
|||||||
select * from information_schema.session_variables
|
select * from information_schema.session_variables
|
||||||
where variable_name = 'debug_sync';
|
where variable_name = 'debug_sync';
|
||||||
|
|
||||||
show status like 'slave_open_temp_tables';
|
|
||||||
|
|
||||||
END||
|
END||
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2008, 2011, Oracle and/or its affiliates
|
/* Copyright (c) 2008, 2012, Oracle and/or its affiliates
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
# -*- cperl -*-
|
# -*- cperl -*-
|
||||||
# Copyright (c) 2013 MySQL AB, 2008 Sun Microsystems, Inc.
|
# Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||||
# Use is subject to license terms.
|
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -174,6 +174,7 @@ my @DEFAULT_SUITES= qw(
|
|||||||
heap-
|
heap-
|
||||||
innodb-
|
innodb-
|
||||||
innodb_fts-
|
innodb_fts-
|
||||||
|
innodb_zip-
|
||||||
maria-
|
maria-
|
||||||
multi_source-
|
multi_source-
|
||||||
optimizer_unfixed_bugs-
|
optimizer_unfixed_bugs-
|
||||||
|
@ -35,6 +35,12 @@ select 1 /*M!50000 +1 */;
|
|||||||
select 1 /*M!50300 +1 */;
|
select 1 /*M!50300 +1 */;
|
||||||
1 +1
|
1 +1
|
||||||
2
|
2
|
||||||
|
select 2 /*M!99999 +1 */;
|
||||||
|
2 +1
|
||||||
|
3
|
||||||
|
select 2 /*M!100000 +1 */;
|
||||||
|
2 +1
|
||||||
|
3
|
||||||
select 2 /*M!999999 +1 */;
|
select 2 /*M!999999 +1 */;
|
||||||
2
|
2
|
||||||
2
|
2
|
||||||
|
@ -671,6 +671,21 @@ FF9D EFBE9D
|
|||||||
D800DF84 F0908E84
|
D800DF84 F0908E84
|
||||||
DBC0DC00 F4808080
|
DBC0DC00 F4808080
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
|
#
|
||||||
|
# BUG#16691598 - ORDER BY LOWER(COLUMN) PRODUCES
|
||||||
|
# OUT-OF-ORDER RESULTS
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 SELECT ('a a') as n;
|
||||||
|
INSERT INTO t1 VALUES('a b');
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) ASC;
|
||||||
|
n
|
||||||
|
a a
|
||||||
|
a b
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) DESC;
|
||||||
|
n
|
||||||
|
a b
|
||||||
|
a a
|
||||||
|
DROP TABLE t1;
|
||||||
select @@collation_connection;
|
select @@collation_connection;
|
||||||
@@collation_connection
|
@@collation_connection
|
||||||
utf16_bin
|
utf16_bin
|
||||||
|
@ -714,6 +714,21 @@ HEX(a) HEX(CONVERT(a USING utf8mb4))
|
|||||||
00D884DF F0908E84
|
00D884DF F0908E84
|
||||||
C0DB00DC F4808080
|
C0DB00DC F4808080
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
|
#
|
||||||
|
# BUG#16691598 - ORDER BY LOWER(COLUMN) PRODUCES
|
||||||
|
# OUT-OF-ORDER RESULTS
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 SELECT ('a a') as n;
|
||||||
|
INSERT INTO t1 VALUES('a b');
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) ASC;
|
||||||
|
n
|
||||||
|
a a
|
||||||
|
a b
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) DESC;
|
||||||
|
n
|
||||||
|
a b
|
||||||
|
a a
|
||||||
|
DROP TABLE t1;
|
||||||
select @@collation_connection;
|
select @@collation_connection;
|
||||||
@@collation_connection
|
@@collation_connection
|
||||||
utf16le_bin
|
utf16le_bin
|
||||||
|
@ -670,6 +670,21 @@ HEX(a) HEX(CONVERT(a USING utf8mb4))
|
|||||||
00010384 F0908E84
|
00010384 F0908E84
|
||||||
00100000 F4808080
|
00100000 F4808080
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
|
#
|
||||||
|
# BUG#16691598 - ORDER BY LOWER(COLUMN) PRODUCES
|
||||||
|
# OUT-OF-ORDER RESULTS
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 SELECT ('a a') as n;
|
||||||
|
INSERT INTO t1 VALUES('a b');
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) ASC;
|
||||||
|
n
|
||||||
|
a a
|
||||||
|
a b
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) DESC;
|
||||||
|
n
|
||||||
|
a b
|
||||||
|
a a
|
||||||
|
DROP TABLE t1;
|
||||||
select @@collation_connection;
|
select @@collation_connection;
|
||||||
@@collation_connection
|
@@collation_connection
|
||||||
utf32_bin
|
utf32_bin
|
||||||
|
@ -1149,6 +1149,21 @@ EFBE9D EFBE9D
|
|||||||
F0908E84 F0908E84
|
F0908E84 F0908E84
|
||||||
F4808080 F4808080
|
F4808080 F4808080
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
|
#
|
||||||
|
# BUG#16691598 - ORDER BY LOWER(COLUMN) PRODUCES
|
||||||
|
# OUT-OF-ORDER RESULTS
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 SELECT ('a a') as n;
|
||||||
|
INSERT INTO t1 VALUES('a b');
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) ASC;
|
||||||
|
n
|
||||||
|
a a
|
||||||
|
a b
|
||||||
|
SELECT * FROM t1 ORDER BY LOWER(n) DESC;
|
||||||
|
n
|
||||||
|
a b
|
||||||
|
a a
|
||||||
|
DROP TABLE t1;
|
||||||
select @@collation_connection;
|
select @@collation_connection;
|
||||||
@@collation_connection
|
@@collation_connection
|
||||||
utf8mb4_bin
|
utf8mb4_bin
|
||||||
|
@ -2253,7 +2253,7 @@ EXPLAIN EXTENDED SELECT a FROM v1 WHERE a > 100 ORDER BY b;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 4 AS `a` from dual where (4 > 100) order by 1
|
Note 1003 select 4 AS `a` from dual where 0 order by 1
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE IF NOT EXISTS `galleries` (
|
CREATE TABLE IF NOT EXISTS `galleries` (
|
||||||
|
@ -999,4 +999,44 @@ c
|
|||||||
11112222
|
11112222
|
||||||
33334444
|
33334444
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug#16539979 BASIC SELECT COUNT(DISTINCT ID) IS BROKEN.
|
||||||
|
# Bug#17867117 ERROR RESULT WHEN "COUNT + DISTINCT + CASE WHEN" NEED MERGE_WALK
|
||||||
|
#
|
||||||
|
SET @tmp_table_size_save= @@tmp_table_size;
|
||||||
|
SET @@tmp_table_size= 1024;
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8);
|
||||||
|
INSERT INTO t1 SELECT a+8 FROM t1;
|
||||||
|
INSERT INTO t1 SELECT a+16 FROM t1;
|
||||||
|
INSERT INTO t1 SELECT a+32 FROM t1;
|
||||||
|
INSERT INTO t1 SELECT a+64 FROM t1;
|
||||||
|
INSERT INTO t1 VALUE(NULL);
|
||||||
|
SELECT COUNT(DISTINCT a) FROM t1;
|
||||||
|
COUNT(DISTINCT a)
|
||||||
|
128
|
||||||
|
SELECT COUNT(DISTINCT (a+0)) FROM t1;
|
||||||
|
COUNT(DISTINCT (a+0))
|
||||||
|
128
|
||||||
|
DROP TABLE t1;
|
||||||
|
create table tb(
|
||||||
|
id int auto_increment primary key,
|
||||||
|
v varchar(32))
|
||||||
|
engine=myisam charset=gbk;
|
||||||
|
insert into tb(v) values("aaa");
|
||||||
|
insert into tb(v) (select v from tb);
|
||||||
|
insert into tb(v) (select v from tb);
|
||||||
|
insert into tb(v) (select v from tb);
|
||||||
|
insert into tb(v) (select v from tb);
|
||||||
|
insert into tb(v) (select v from tb);
|
||||||
|
insert into tb(v) (select v from tb);
|
||||||
|
update tb set v=concat(v, id);
|
||||||
|
select count(distinct case when id<=64 then id end) from tb;
|
||||||
|
count(distinct case when id<=64 then id end)
|
||||||
|
64
|
||||||
|
select count(distinct case when id<=63 then id end) from tb;
|
||||||
|
count(distinct case when id<=63 then id end)
|
||||||
|
63
|
||||||
|
drop table tb;
|
||||||
|
SET @@tmp_table_size= @tmp_table_size_save;
|
||||||
End of 5.5 tests
|
End of 5.5 tests
|
||||||
|
@ -94,7 +94,7 @@ INSERT INTO t1 VALUES (1),(2);
|
|||||||
INSERT INTO t2 VALUES (1),(2);
|
INSERT INTO t2 VALUES (1),(2);
|
||||||
SET SESSION debug_dbug="+d,bug11747970_raise_error";
|
SET SESSION debug_dbug="+d,bug11747970_raise_error";
|
||||||
INSERT IGNORE INTO t2 SELECT f1 FROM t1 a WHERE NOT EXISTS (SELECT 1 FROM t2 b WHERE a.f1 = b.f1);
|
INSERT IGNORE INTO t2 SELECT f1 FROM t1 a WHERE NOT EXISTS (SELECT 1 FROM t2 b WHERE a.f1 = b.f1);
|
||||||
ERROR HY000: Unknown error
|
ERROR 70100: Query execution was interrupted
|
||||||
SET SESSION debug_dbug = DEFAULT;
|
SET SESSION debug_dbug = DEFAULT;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
#
|
#
|
||||||
|
@ -135,3 +135,4 @@ SELECT * FROM t2;
|
|||||||
a
|
a
|
||||||
ROLLBACK WORK TO SAVEPOINT A;
|
ROLLBACK WORK TO SAVEPOINT A;
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
DROP EVENT e1;
|
||||||
|
@ -102,7 +102,6 @@ a
|
|||||||
foo
|
foo
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1259 ZLIB: Input data corrupted
|
Warning 1259 ZLIB: Input data corrupted
|
||||||
Warning 1259 ZLIB: Input data corrupted
|
|
||||||
explain select *, uncompress(a) from t1;
|
explain select *, uncompress(a) from t1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||||
|
@ -1458,6 +1458,8 @@ DROP TABLE derived1;
|
|||||||
DROP TABLE D;
|
DROP TABLE D;
|
||||||
CREATE TABLE t1 (a INT, b INT);
|
CREATE TABLE t1 (a INT, b INT);
|
||||||
INSERT INTO t1 VALUES (1,1), (1,2), (1,3);
|
INSERT INTO t1 VALUES (1,1), (1,2), (1,3);
|
||||||
|
CREATE TABLE t2 (b INT);
|
||||||
|
INSERT INTO t2 VALUES (3),(4);
|
||||||
SET SQL_MODE='ONLY_FULL_GROUP_BY';
|
SET SQL_MODE='ONLY_FULL_GROUP_BY';
|
||||||
SELECT COUNT(*) FROM t1;
|
SELECT COUNT(*) FROM t1;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
@ -1473,12 +1475,19 @@ COUNT(*)
|
|||||||
SELECT COUNT(*), (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a)
|
SELECT COUNT(*), (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a)
|
||||||
FROM t1 outr;
|
FROM t1 outr;
|
||||||
ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
|
ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
|
||||||
|
SELECT COUNT(*) FROM t1 outr, (SELECT b, count(*) FROM t2) as t3;
|
||||||
|
ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
|
||||||
|
SELECT COUNT(*) FROM t1 outr where (1,1) in (SELECT a, count(*) FROM t2);
|
||||||
|
COUNT(*)
|
||||||
|
0
|
||||||
SELECT COUNT(*) FROM t1 a JOIN t1 outr
|
SELECT COUNT(*) FROM t1 a JOIN t1 outr
|
||||||
ON a.a= (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a);
|
ON a.a= (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a);
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
|
SELECT * FROM (SELECT a FROM t1 GROUP BY a) sq JOIN t2 ON a = b;
|
||||||
|
a b
|
||||||
SET SQL_MODE=default;
|
SET SQL_MODE=default;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1,t2;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
#
|
#
|
||||||
# BUG#47280 - strange results from count(*) with order by multiple
|
# BUG#47280 - strange results from count(*) with order by multiple
|
||||||
|
@ -264,6 +264,13 @@ INET_NTOA(0)
|
|||||||
SELECT '1' IN ('1', INET_NTOA(0));
|
SELECT '1' IN ('1', INET_NTOA(0));
|
||||||
'1' IN ('1', INET_NTOA(0))
|
'1' IN ('1', INET_NTOA(0))
|
||||||
1
|
1
|
||||||
|
SELECT NAME_CONST('a', -(1 OR 2)) OR 1;
|
||||||
|
ERROR HY000: Incorrect arguments to NAME_CONST
|
||||||
|
SELECT NAME_CONST('a', -(1 AND 2)) AND 1;
|
||||||
|
ERROR HY000: Incorrect arguments to NAME_CONST
|
||||||
|
SELECT NAME_CONST('a', -(1)) OR 1;
|
||||||
|
NAME_CONST('a', -(1)) OR 1
|
||||||
|
1
|
||||||
#
|
#
|
||||||
# Bug #52165: Assertion failed: file .\dtoa.c, line 465
|
# Bug #52165: Assertion failed: file .\dtoa.c, line 465
|
||||||
#
|
#
|
||||||
@ -561,6 +568,3 @@ ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|||||||
#
|
#
|
||||||
# End of 5.5 tests
|
# End of 5.5 tests
|
||||||
#
|
#
|
||||||
#
|
|
||||||
# End of tests
|
|
||||||
#
|
|
||||||
|
@ -52,7 +52,7 @@ explain extended select * from t1 where xxx regexp('is a test of some long text
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 'this is a test of some long text to see what happens' AS `xxx` from dual where ('this is a test of some long text to see what happens' regexp 'is a test of some long text to')
|
Note 1003 select 'this is a test of some long text to see what happens' AS `xxx` from dual where 1
|
||||||
select * from t1 where xxx regexp('is a test of some long text to ');
|
select * from t1 where xxx regexp('is a test of some long text to ');
|
||||||
xxx
|
xxx
|
||||||
this is a test of some long text to see what happens
|
this is a test of some long text to see what happens
|
||||||
|
@ -1153,7 +1153,6 @@ str num
|
|||||||
notnumber 0
|
notnumber 0
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: 'notnumber'
|
Warning 1292 Truncated incorrect DOUBLE value: 'notnumber'
|
||||||
Warning 1292 Truncated incorrect DOUBLE value: 'notnumber'
|
|
||||||
SELECT * FROM t1, t2 WHERE num=substring(str from 1 for 6);
|
SELECT * FROM t1, t2 WHERE num=substring(str from 1 for 6);
|
||||||
str num
|
str num
|
||||||
notnumber 0
|
notnumber 0
|
||||||
|
@ -452,3 +452,6 @@ ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER( POLYGONFROMTEXT( 'POLYGON( ( 0.0 -3.0,
|
|||||||
0.0 -3.0
|
0.0 -3.0
|
||||||
))' ),
|
))' ),
|
||||||
136
|
136
|
||||||
|
select astext(buffer(st_linestringfromwkb(linestring(point(-1,1), point(-1,-2))),-1));
|
||||||
|
astext(buffer(st_linestringfromwkb(linestring(point(-1,1), point(-1,-2))),-1))
|
||||||
|
GEOMETRYCOLLECTION EMPTY
|
||||||
|
@ -1574,6 +1574,27 @@ SELECT 1 FROM g1 WHERE a >= ANY
|
|||||||
1
|
1
|
||||||
DROP TABLE g1;
|
DROP TABLE g1;
|
||||||
#
|
#
|
||||||
|
# Bug#16451878 GEOMETRY QUERY CRASHES SERVER
|
||||||
|
#
|
||||||
|
# should not crash
|
||||||
|
SELECT ASTEXT(0x0100000000030000000100000000000010);
|
||||||
|
ASTEXT(0x0100000000030000000100000000000010)
|
||||||
|
NULL
|
||||||
|
#should not crash
|
||||||
|
SELECT ENVELOPE(0x0100000000030000000100000000000010);
|
||||||
|
ENVELOPE(0x0100000000030000000100000000000010)
|
||||||
|
NULL
|
||||||
|
#should not crash
|
||||||
|
SELECT
|
||||||
|
GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffff0000, 1);
|
||||||
|
GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffff0000, 1)
|
||||||
|
NULL
|
||||||
|
#should not crash
|
||||||
|
SELECT
|
||||||
|
GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1);
|
||||||
|
GEOMETRYN(0x0100000000070000000100000001030000000200000000000000ffffff0f, 1)
|
||||||
|
NULL
|
||||||
|
#
|
||||||
# MDEV-3819 missing constraints for spatial column types
|
# MDEV-3819 missing constraints for spatial column types
|
||||||
#
|
#
|
||||||
create table t1 (pt point);
|
create table t1 (pt point);
|
||||||
|
@ -463,29 +463,29 @@ EXPLAIN
|
|||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country,Population 4,3,4 NULL # Using sort_intersect(PRIMARY,Country,Population); Using where
|
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country,Population 4,7,4 NULL # Using sort_intersect(PRIMARY,Country,Population); Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Population,Country 4,4,3 NULL # Using sort_intersect(PRIMARY,Population,Country); Using where
|
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Population,Country 4,4,7 NULL # Using sort_intersect(PRIMARY,Population,Country); Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 2001 AND 2500 AND Population > 300000 AND Country LIKE 'H%';
|
WHERE ID BETWEEN 2001 AND 2500 AND Population > 300000 AND Country LIKE 'H%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country 4,3 NULL # Using sort_intersect(PRIMARY,Country); Using where
|
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country 4,7 NULL # Using sort_intersect(PRIMARY,Country); Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 3701 AND 4000 AND Population > 1000000
|
WHERE ID BETWEEN 3701 AND 4000 AND Population > 1000000
|
||||||
AND Country BETWEEN 'S' AND 'Z';
|
AND Country BETWEEN 'S' AND 'Z';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country,Population 4,3,4 NULL # Using sort_intersect(PRIMARY,Country,Population); Using where
|
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country,Population 4,7,4 NULL # Using sort_intersect(PRIMARY,Country,Population); Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||||
AND Country BETWEEN 'S' AND 'Z' ;
|
AND Country BETWEEN 'S' AND 'Z' ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country,Population 4,3,4 NULL # Using sort_intersect(PRIMARY,Country,Population); Using where
|
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country,Population 4,7,4 NULL # Using sort_intersect(PRIMARY,Country,Population); Using where
|
||||||
SELECT * FROM City USE INDEX ()
|
SELECT * FROM City USE INDEX ()
|
||||||
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
||||||
ID Name Country Population
|
ID Name Country Population
|
||||||
@ -739,13 +739,13 @@ EXPLAIN
|
|||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Population,Country 4,4,3 NULL # Using sort_intersect(PRIMARY,Population,Country); Using where
|
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Population,Country 4,4,7 NULL # Using sort_intersect(PRIMARY,Population,Country); Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||||
AND Country BETWEEN 'S' AND 'Z';
|
AND Country BETWEEN 'S' AND 'Z';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country,Population 4,3,4 NULL # Using sort_intersect(PRIMARY,Country,Population); Using where
|
1 SIMPLE City index_merge PRIMARY,Population,Country PRIMARY,Country,Population 4,7,4 NULL # Using sort_intersect(PRIMARY,Country,Population); Using where
|
||||||
SELECT * FROM City WHERE
|
SELECT * FROM City WHERE
|
||||||
Name LIKE 'C%' AND Population > 1000000;
|
Name LIKE 'C%' AND Population > 1000000;
|
||||||
ID Name Country Population
|
ID Name Country Population
|
||||||
@ -1033,7 +1033,7 @@ EXPLAIN
|
|||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index_merge PRIMARY,f4 PRIMARY,f4 4,35 NULL # Using sort_intersect(PRIMARY,f4); Using where
|
1 SIMPLE t1 index_merge PRIMARY,f4 PRIMARY,f4 4,39 NULL # Using sort_intersect(PRIMARY,f4); Using where
|
||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||||
f1 f4 f5
|
f1 f4 f5
|
||||||
|
@ -580,9 +580,12 @@ pk1 pk2
|
|||||||
explain select * from t1 where badkey=1 and key1=10;
|
explain select * from t1 where badkey=1 and key1=10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref key1 key1 4 const 100 Using where
|
1 SIMPLE t1 ref key1 key1 4 const 100 Using where
|
||||||
|
set @tmp_index_merge_ror_cpk=@@optimizer_switch;
|
||||||
|
set optimizer_switch='extended_keys=off';
|
||||||
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index_merge PRIMARY,key1 key1,PRIMARY 4,4 NULL ROWS Using intersect(key1,PRIMARY); Using where
|
1 SIMPLE t1 index_merge PRIMARY,key1 key1,PRIMARY 4,4 NULL ROWS Using intersect(key1,PRIMARY); Using where
|
||||||
|
set optimizer_switch=@tmp_index_merge_ror_cpk;
|
||||||
explain select * from t1 where pktail1ok=1 and key1=10;
|
explain select * from t1 where pktail1ok=1 and key1=10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index_merge key1,pktail1ok key1,pktail1ok 4,4 NULL 1 Using intersect(key1,pktail1ok); Using where
|
1 SIMPLE t1 index_merge key1,pktail1ok key1,pktail1ok 4,4 NULL 1 Using intersect(key1,pktail1ok); Using where
|
||||||
|
@ -1415,9 +1415,12 @@ pk1 pk2
|
|||||||
explain select * from t1 where badkey=1 and key1=10;
|
explain select * from t1 where badkey=1 and key1=10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref key1 key1 4 const 91 Using where
|
1 SIMPLE t1 ref key1 key1 4 const 91 Using where
|
||||||
|
set @tmp_index_merge_ror_cpk=@@optimizer_switch;
|
||||||
|
set optimizer_switch='extended_keys=off';
|
||||||
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
explain select * from t1 where pk1 < 7500 and key1 = 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref PRIMARY,key1 key1 4 const ROWS Using where
|
1 SIMPLE t1 ref PRIMARY,key1 key1 4 const ROWS Using where
|
||||||
|
set optimizer_switch=@tmp_index_merge_ror_cpk;
|
||||||
explain select * from t1 where pktail1ok=1 and key1=10;
|
explain select * from t1 where pktail1ok=1 and key1=10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref key1,pktail1ok pktail1ok 4 const 76 Using where
|
1 SIMPLE t1 ref key1,pktail1ok pktail1ok 4 const 76 Using where
|
||||||
|
@ -1311,7 +1311,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||||
1 SIMPLE t2 system NULL NULL NULL NULL 1 100.00
|
1 SIMPLE t2 system NULL NULL NULL NULL 1 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 1 AS `f1`,NULL AS `f2`,3 AS `f3`,NULL AS `f1`,NULL AS `f2` from `test`.`t2` where ((coalesce(1,NULL),3) in ((1,3),(2,2)))
|
Note 1003 select 1 AS `f1`,NULL AS `f2`,3 AS `f3`,NULL AS `f1`,NULL AS `f2` from `test`.`t2` where 1
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.f2 = t2.f2
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.f2 = t2.f2
|
||||||
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
||||||
f1 f2 f3 f1 f2
|
f1 f2 f3 f1 f2
|
||||||
|
@ -1322,7 +1322,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||||
1 SIMPLE t2 system NULL NULL NULL NULL 1 100.00
|
1 SIMPLE t2 system NULL NULL NULL NULL 1 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 1 AS `f1`,NULL AS `f2`,3 AS `f3`,NULL AS `f1`,NULL AS `f2` from `test`.`t2` where ((coalesce(1,NULL),3) in ((1,3),(2,2)))
|
Note 1003 select 1 AS `f1`,NULL AS `f2`,3 AS `f3`,NULL AS `f1`,NULL AS `f2` from `test`.`t2` where 1
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.f2 = t2.f2
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.f2 = t2.f2
|
||||||
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
||||||
f1 f2 f3 f1 f2
|
f1 f2 f3 f1 f2
|
||||||
|
@ -1183,7 +1183,7 @@ old-style-user-limits FALSE
|
|||||||
optimizer-prune-level 1
|
optimizer-prune-level 1
|
||||||
optimizer-search-depth 62
|
optimizer-search-depth 62
|
||||||
optimizer-selectivity-sampling-limit 100
|
optimizer-selectivity-sampling-limit 100
|
||||||
optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on
|
optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on
|
||||||
optimizer-use-condition-selectivity 1
|
optimizer-use-condition-selectivity 1
|
||||||
performance-schema TRUE
|
performance-schema TRUE
|
||||||
performance-schema-accounts-size 10
|
performance-schema-accounts-size 10
|
||||||
@ -1234,7 +1234,7 @@ port 3306
|
|||||||
port-open-timeout 0
|
port-open-timeout 0
|
||||||
preload-buffer-size 32768
|
preload-buffer-size 32768
|
||||||
profiling-history-size 15
|
profiling-history-size 15
|
||||||
progress-report-time 56
|
progress-report-time 5
|
||||||
protocol-version 10
|
protocol-version 10
|
||||||
query-alloc-block-size 8192
|
query-alloc-block-size 8192
|
||||||
query-cache-limit 1048576
|
query-cache-limit 1048576
|
||||||
|
@ -5265,6 +5265,20 @@ slow_log CREATE TABLE `slow_log` (
|
|||||||
SET @@global.log_output= @old_log_output_state;
|
SET @@global.log_output= @old_log_output_state;
|
||||||
SET @@global.slow_query_log= @old_slow_query_log_state;
|
SET @@global.slow_query_log= @old_slow_query_log_state;
|
||||||
SET @@global.general_log= @old_general_log_state;
|
SET @@global.general_log= @old_general_log_state;
|
||||||
|
# MDEV-5481 mysqldump fails to dump geometry types properly
|
||||||
|
create table t1 (g GEOMETRY) CHARSET koi8r;
|
||||||
|
create table t2 (g GEOMETRY) CHARSET koi8r;
|
||||||
|
insert into t1 values (point(1,1)), (point(2,2));
|
||||||
|
##################################################
|
||||||
|
\0\0\0\0\0\0\0\0\0\0\0\0\0ð?\0\0\0\0\0\0ð?
|
||||||
|
\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@
|
||||||
|
##################################################
|
||||||
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' INTO TABLE t2 CHARACTER SET koi8r;
|
||||||
|
select astext(g) from t2;
|
||||||
|
astext(g)
|
||||||
|
POINT(1 1)
|
||||||
|
POINT(2 2)
|
||||||
|
drop table t1, t2;
|
||||||
#
|
#
|
||||||
# End of 5.1 tests
|
# End of 5.1 tests
|
||||||
#
|
#
|
||||||
|
@ -2534,6 +2534,73 @@ i
|
|||||||
3
|
3
|
||||||
4
|
4
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# MDEV-5177: ha_partition and innodb index intersection produce fewer rows (MySQL Bug#70703)
|
||||||
|
#
|
||||||
|
create table t1 (
|
||||||
|
a int not null,
|
||||||
|
b int not null,
|
||||||
|
pk int not null,
|
||||||
|
primary key (pk),
|
||||||
|
key(a),
|
||||||
|
key(b)
|
||||||
|
) partition by hash(pk) partitions 10;
|
||||||
|
insert into t1 values (1,2,4);
|
||||||
|
insert into t1 values (1,0,17);
|
||||||
|
insert into t1 values (1,2,25);
|
||||||
|
insert into t1 values (10,20,122);
|
||||||
|
insert into t1 values (10,20,123);
|
||||||
|
create table t2 (a int);
|
||||||
|
insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
insert into t1 select 1,2, 200 + A.a + 10*B.a + 100*C.a from t2 A, t2 B, t2 C;
|
||||||
|
insert into t1 select 10+A.a + 10*B.a + 100*C.a + 1000*D.a,
|
||||||
|
10+A.a + 10*B.a + 100*C.a + 1000*D.a,
|
||||||
|
2000 + A.a + 10*B.a + 100*C.a + 1000*D.a
|
||||||
|
from t2 A, t2 B, t2 C ,t2 D;
|
||||||
|
explain select * from t1 where a=1 and b=2 and pk between 1 and 999999 ;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ref PRIMARY,a,b b 4 const 982 Using where
|
||||||
|
create temporary table t3 as
|
||||||
|
select * from t1 where a=1 and b=2 and pk between 1 and 999 ;
|
||||||
|
select count(*) from t3;
|
||||||
|
count(*)
|
||||||
|
802
|
||||||
|
drop table t3;
|
||||||
|
create temporary table t3 as
|
||||||
|
select * from t1 ignore index(a,b) where a=1 and b=2 and pk between 1 and 999 ;
|
||||||
|
select count(*) from t3;
|
||||||
|
count(*)
|
||||||
|
802
|
||||||
|
drop table t3;
|
||||||
|
drop table t1,t2;
|
||||||
|
#
|
||||||
|
# MDEV-5555: Incorrect index_merge on BTREE indices
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id bigint(20) unsigned NOT NULL,
|
||||||
|
id2 bigint(20) unsigned NOT NULL,
|
||||||
|
dob date DEFAULT NULL,
|
||||||
|
address char(100) DEFAULT NULL,
|
||||||
|
city char(35) DEFAULT NULL,
|
||||||
|
hours_worked_per_week smallint(5) unsigned DEFAULT NULL,
|
||||||
|
weeks_worked_last_year tinyint(3) unsigned DEFAULT NULL,
|
||||||
|
KEY dob (dob),
|
||||||
|
KEY address (address),
|
||||||
|
KEY city (city),
|
||||||
|
KEY hours_worked_per_week (hours_worked_per_week),
|
||||||
|
KEY weeks_worked_last_year (weeks_worked_last_year)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
PARTITION BY KEY (id) PARTITIONS 5;
|
||||||
|
# Insert some rows
|
||||||
|
select * from t1 where hours_worked_per_week = 40 and weeks_worked_last_year = 52 and dob < '1949-11-21';
|
||||||
|
id id2 dob address city hours_worked_per_week weeks_worked_last_year
|
||||||
|
16 16 1949-11-07 address16 city16 40 52
|
||||||
|
50 50 1923-09-08 address50 city50 40 52
|
||||||
|
select * from t1 IGNORE INDEX(dob, weeks_worked_last_year, hours_worked_per_week) where hours_worked_per_week = 40 and weeks_worked_last_year = 52 and dob < '1949-11-21';
|
||||||
|
id id2 dob address city hours_worked_per_week weeks_worked_last_year
|
||||||
|
16 16 1949-11-07 address16 city16 40 52
|
||||||
|
50 50 1923-09-08 address50 city50 40 52
|
||||||
|
drop table t1;
|
||||||
CREATE TABLE t1 ( d DATE NOT NULL)
|
CREATE TABLE t1 ( d DATE NOT NULL)
|
||||||
PARTITION BY RANGE( YEAR(d) ) (
|
PARTITION BY RANGE( YEAR(d) ) (
|
||||||
PARTITION p0 VALUES LESS THAN (1960),
|
PARTITION p0 VALUES LESS THAN (1960),
|
||||||
|
@ -752,8 +752,8 @@ select * from t1 force index (b) where b < 10 ORDER BY b DESC;
|
|||||||
a b
|
a b
|
||||||
6 6
|
6 6
|
||||||
4 5
|
4 5
|
||||||
2 4
|
|
||||||
30 4
|
30 4
|
||||||
|
2 4
|
||||||
3 3
|
3 3
|
||||||
35 2
|
35 2
|
||||||
7 1
|
7 1
|
||||||
|
@ -4041,3 +4041,14 @@ DEALLOCATE PREPARE stmt;
|
|||||||
DROP VIEW v2;
|
DROP VIEW v2;
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
# End of 5.3 tests
|
# End of 5.3 tests
|
||||||
|
#
|
||||||
|
# MDEV-5505: Assertion `! is_set()' fails on PREPARE SELECT
|
||||||
|
# with out of range in GROUP BY
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
PREPARE stmt FROM "SELECT 1 FROM t1 GROUP BY 0 OR 18446744073709551615+1";
|
||||||
|
ERROR 22003: BIGINT UNSIGNED value is out of range in '(18446744073709551615 + 1)'
|
||||||
|
SELECT 1 FROM t1 GROUP BY 0 OR 18446744073709551615+1;
|
||||||
|
ERROR 22003: BIGINT UNSIGNED value is out of range in '(18446744073709551615 + 1)'
|
||||||
|
drop table t1;
|
||||||
|
# End of 5.3 tests
|
||||||
|
@ -797,6 +797,8 @@ EXPLAIN
|
|||||||
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City range Name Name 35 NULL 41 Using index condition
|
1 SIMPLE City range Name Name 35 NULL 41 Using index condition
|
||||||
|
set @tmp_range_vs_index_merge=@@optimizer_switch;
|
||||||
|
set optimizer_switch='extended_keys=off';
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||||
@ -985,6 +987,7 @@ ID Name Country Population
|
|||||||
3798 Phoenix USA 1321045
|
3798 Phoenix USA 1321045
|
||||||
DROP INDEX Population ON City;
|
DROP INDEX Population ON City;
|
||||||
DROP INDEX Name ON City;
|
DROP INDEX Name ON City;
|
||||||
|
set optimizer_switch=@tmp_range_vs_index_merge;
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Country='USA' AND Population BETWEEN 101000 AND 102000 OR
|
WHERE Country='USA' AND Population BETWEEN 101000 AND 102000 OR
|
||||||
|
@ -65,7 +65,7 @@ Country IN ('CAN', 'ARG') AND ID < 3800 OR
|
|||||||
Country < 'U' AND Name LIKE 'Zhu%' OR
|
Country < 'U' AND Name LIKE 'Zhu%' OR
|
||||||
ID BETWEEN 3800 AND 3810;
|
ID BETWEEN 3800 AND 3810;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City index_merge PRIMARY,Population,Country,Name Name,Country,PRIMARY 35,3,4 NULL 125 Using sort_union(Name,Country,PRIMARY); Using where
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name Name,Country,PRIMARY 35,7,4 NULL 123 Using sort_union(Name,Country,PRIMARY); Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE (Population > 101000 AND Population < 115000);
|
WHERE (Population > 101000 AND Population < 115000);
|
||||||
@ -362,7 +362,7 @@ WHERE ((ID < 800) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
|||||||
OR ((ID BETWEEN 900 AND 1500) AND
|
OR ((ID BETWEEN 900 AND 1500) AND
|
||||||
(Name LIKE 'Pa%' OR (Population > 103000 AND Population < 104000)));
|
(Name LIKE 'Pa%' OR (Population > 103000 AND Population < 104000)));
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City index_merge PRIMARY,Population,Country,Name Name,Country,PRIMARY 35,3,4 NULL 681 Using sort_union(Name,Country,PRIMARY); Using where
|
1 SIMPLE City index_merge PRIMARY,Population,Country,Name Name,Country,PRIMARY 39,3,4 NULL 680 Using sort_union(Name,Country,PRIMARY); Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((ID < 200) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
WHERE ((ID < 200) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
||||||
@ -798,6 +798,8 @@ EXPLAIN
|
|||||||
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE City range Name Name 35 NULL 71 Using index condition
|
1 SIMPLE City range Name Name 35 NULL 71 Using index condition
|
||||||
|
set @tmp_range_vs_index_merge=@@optimizer_switch;
|
||||||
|
set optimizer_switch='extended_keys=off';
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||||
@ -986,6 +988,7 @@ ID Name Country Population
|
|||||||
3798 Phoenix USA 1321045
|
3798 Phoenix USA 1321045
|
||||||
DROP INDEX Population ON City;
|
DROP INDEX Population ON City;
|
||||||
DROP INDEX Name ON City;
|
DROP INDEX Name ON City;
|
||||||
|
set optimizer_switch=@tmp_range_vs_index_merge;
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Country='USA' AND Population BETWEEN 101000 AND 102000 OR
|
WHERE Country='USA' AND Population BETWEEN 101000 AND 102000 OR
|
||||||
|
@ -11,4 +11,11 @@ START ALL SLAVES;
|
|||||||
STOP ALL SLAVES;
|
STOP ALL SLAVES;
|
||||||
CHANGE MASTER '' TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_MYPORT, MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
|
CHANGE MASTER '' TO MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_MYPORT, MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
|
||||||
START ALL SLAVES;
|
START ALL SLAVES;
|
||||||
|
start slave;
|
||||||
|
Warnings:
|
||||||
|
Note 1254 Slave is already running
|
||||||
|
CHANGE MASTER '' TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=BINLOG_START;
|
||||||
|
start slave;
|
||||||
|
Warnings:
|
||||||
|
Note 1254 Slave is already running
|
||||||
include/rpl_end.inc
|
include/rpl_end.inc
|
||||||
|
@ -5321,7 +5321,7 @@ SELECT * FROM t1 WHERE (1=2 OR t1.pk=2) AND t1.a <> 0;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 2 AS `pk`,0 AS `a` from `test`.`t1` where (0 <> 0)
|
Note 1003 select 2 AS `pk`,0 AS `a` from `test`.`t1` where 0
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SELECT * FROM mysql.time_zone
|
SELECT * FROM mysql.time_zone
|
||||||
WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1)
|
WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1)
|
||||||
@ -5344,7 +5344,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 system idx NULL NULL NULL 1 100.00
|
1 SIMPLE t1 system idx NULL NULL NULL 1 100.00
|
||||||
1 SIMPLE t2 ref idx idx 5 const 1 100.00 Using index
|
1 SIMPLE t2 ref idx idx 5 const 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 8 AS `a`,8 AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`c` = 8) and 1)
|
Note 1003 select 8 AS `a`,8 AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where (`test`.`t2`.`c` = 8)
|
||||||
SELECT * FROM t1 INNER JOIN t2 ON ( c = a )
|
SELECT * FROM t1 INNER JOIN t2 ON ( c = a )
|
||||||
WHERE 1 IS NULL OR b < 33 AND b = c;
|
WHERE 1 IS NULL OR b < 33 AND b = c;
|
||||||
a b c
|
a b c
|
||||||
@ -5468,7 +5468,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t2 system PRIMARY NULL NULL NULL 1 100.00
|
1 SIMPLE t2 system PRIMARY NULL NULL NULL 1 100.00
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk1` AS `pk1`,`test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,1 AS `pk2`,1 AS `a2` from `test`.`t1` where ((`test`.`t1`.`a1` = 1) and ((`test`.`t1`.`b1` = 6) or 0))
|
Note 1003 select `test`.`t1`.`pk1` AS `pk1`,`test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,1 AS `pk2`,1 AS `a2` from `test`.`t1` where ((`test`.`t1`.`a1` = 1) and (`test`.`t1`.`b1` = 6))
|
||||||
INSERT INTO t1 VALUES (3,1,6);
|
INSERT INTO t1 VALUES (3,1,6);
|
||||||
SELECT * FROM t1, t2
|
SELECT * FROM t1, t2
|
||||||
WHERE a1 = pk2 AND ( ( b1 = 6 OR a2 > 4 ) AND pk2 = a2 OR pk1 IS NULL );
|
WHERE a1 = pk2 AND ( ( b1 = 6 OR a2 > 4 ) AND pk2 = a2 OR pk1 IS NULL );
|
||||||
|
@ -5332,7 +5332,7 @@ SELECT * FROM t1 WHERE (1=2 OR t1.pk=2) AND t1.a <> 0;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 2 AS `pk`,0 AS `a` from `test`.`t1` where (0 <> 0)
|
Note 1003 select 2 AS `pk`,0 AS `a` from `test`.`t1` where 0
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SELECT * FROM mysql.time_zone
|
SELECT * FROM mysql.time_zone
|
||||||
WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1)
|
WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1)
|
||||||
@ -5355,7 +5355,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 system idx NULL NULL NULL 1 100.00
|
1 SIMPLE t1 system idx NULL NULL NULL 1 100.00
|
||||||
1 SIMPLE t2 ref idx idx 5 const 1 100.00 Using index
|
1 SIMPLE t2 ref idx idx 5 const 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 8 AS `a`,8 AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`c` = 8) and 1)
|
Note 1003 select 8 AS `a`,8 AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where (`test`.`t2`.`c` = 8)
|
||||||
SELECT * FROM t1 INNER JOIN t2 ON ( c = a )
|
SELECT * FROM t1 INNER JOIN t2 ON ( c = a )
|
||||||
WHERE 1 IS NULL OR b < 33 AND b = c;
|
WHERE 1 IS NULL OR b < 33 AND b = c;
|
||||||
a b c
|
a b c
|
||||||
@ -5479,7 +5479,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t2 system PRIMARY NULL NULL NULL 1 100.00
|
1 SIMPLE t2 system PRIMARY NULL NULL NULL 1 100.00
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk1` AS `pk1`,`test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,1 AS `pk2`,1 AS `a2` from `test`.`t1` where ((`test`.`t1`.`a1` = 1) and ((`test`.`t1`.`b1` = 6) or 0))
|
Note 1003 select `test`.`t1`.`pk1` AS `pk1`,`test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,1 AS `pk2`,1 AS `a2` from `test`.`t1` where ((`test`.`t1`.`a1` = 1) and (`test`.`t1`.`b1` = 6))
|
||||||
INSERT INTO t1 VALUES (3,1,6);
|
INSERT INTO t1 VALUES (3,1,6);
|
||||||
SELECT * FROM t1, t2
|
SELECT * FROM t1, t2
|
||||||
WHERE a1 = pk2 AND ( ( b1 = 6 OR a2 > 4 ) AND pk2 = a2 OR pk1 IS NULL );
|
WHERE a1 = pk2 AND ( ( b1 = 6 OR a2 > 4 ) AND pk2 = a2 OR pk1 IS NULL );
|
||||||
|
@ -5321,7 +5321,7 @@ SELECT * FROM t1 WHERE (1=2 OR t1.pk=2) AND t1.a <> 0;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 2 AS `pk`,0 AS `a` from `test`.`t1` where (0 <> 0)
|
Note 1003 select 2 AS `pk`,0 AS `a` from `test`.`t1` where 0
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SELECT * FROM mysql.time_zone
|
SELECT * FROM mysql.time_zone
|
||||||
WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1)
|
WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1)
|
||||||
@ -5344,7 +5344,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 system idx NULL NULL NULL 1 100.00
|
1 SIMPLE t1 system idx NULL NULL NULL 1 100.00
|
||||||
1 SIMPLE t2 ref idx idx 5 const 1 100.00 Using index
|
1 SIMPLE t2 ref idx idx 5 const 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 8 AS `a`,8 AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`c` = 8) and 1)
|
Note 1003 select 8 AS `a`,8 AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where (`test`.`t2`.`c` = 8)
|
||||||
SELECT * FROM t1 INNER JOIN t2 ON ( c = a )
|
SELECT * FROM t1 INNER JOIN t2 ON ( c = a )
|
||||||
WHERE 1 IS NULL OR b < 33 AND b = c;
|
WHERE 1 IS NULL OR b < 33 AND b = c;
|
||||||
a b c
|
a b c
|
||||||
@ -5468,7 +5468,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t2 system PRIMARY NULL NULL NULL 1 100.00
|
1 SIMPLE t2 system PRIMARY NULL NULL NULL 1 100.00
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk1` AS `pk1`,`test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,1 AS `pk2`,1 AS `a2` from `test`.`t1` where ((`test`.`t1`.`a1` = 1) and ((`test`.`t1`.`b1` = 6) or 0))
|
Note 1003 select `test`.`t1`.`pk1` AS `pk1`,`test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,1 AS `pk2`,1 AS `a2` from `test`.`t1` where ((`test`.`t1`.`a1` = 1) and (`test`.`t1`.`b1` = 6))
|
||||||
INSERT INTO t1 VALUES (3,1,6);
|
INSERT INTO t1 VALUES (3,1,6);
|
||||||
SELECT * FROM t1, t2
|
SELECT * FROM t1, t2
|
||||||
WHERE a1 = pk2 AND ( ( b1 = 6 OR a2 > 4 ) AND pk2 = a2 OR pk1 IS NULL );
|
WHERE a1 = pk2 AND ( ( b1 = 6 OR a2 > 4 ) AND pk2 = a2 OR pk1 IS NULL );
|
||||||
|
@ -1166,6 +1166,23 @@ SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE SQL_MODE != '';
|
|||||||
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
|
||||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||||
#
|
#
|
||||||
|
# Bug mdev-5630: always true conjunctive condition
|
||||||
|
# when optimizer_use_condition_selectivity=3
|
||||||
|
#
|
||||||
|
set use_stat_tables = 'preferably';
|
||||||
|
set optimizer_use_condition_selectivity = 3;
|
||||||
|
CREATE TABLE t1 (a int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (10);
|
||||||
|
CREATE TABLE t2 (id int, flag char(1), INDEX(id)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (100,'0'),(101,'1');
|
||||||
|
ANALYZE TABLE t1, t2;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status OK
|
||||||
|
test.t2 analyze status OK
|
||||||
|
SELECT * FROM t1, t2 WHERE id = a AND ( a = 16 OR flag AND a != 6 );
|
||||||
|
a id flag
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
# Bug mdev-4429: join with range condition whose selectivity == 0
|
# Bug mdev-4429: join with range condition whose selectivity == 0
|
||||||
# when optimizer_use_condition_selectivity=3
|
# when optimizer_use_condition_selectivity=3
|
||||||
#
|
#
|
||||||
|
@ -1174,6 +1174,23 @@ SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE SQL_MODE != '';
|
|||||||
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
|
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
|
||||||
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity;
|
||||||
#
|
#
|
||||||
|
# Bug mdev-5630: always true conjunctive condition
|
||||||
|
# when optimizer_use_condition_selectivity=3
|
||||||
|
#
|
||||||
|
set use_stat_tables = 'preferably';
|
||||||
|
set optimizer_use_condition_selectivity = 3;
|
||||||
|
CREATE TABLE t1 (a int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (10);
|
||||||
|
CREATE TABLE t2 (id int, flag char(1), INDEX(id)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (100,'0'),(101,'1');
|
||||||
|
ANALYZE TABLE t1, t2;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status OK
|
||||||
|
test.t2 analyze status OK
|
||||||
|
SELECT * FROM t1, t2 WHERE id = a AND ( a = 16 OR flag AND a != 6 );
|
||||||
|
a id flag
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
# Bug mdev-4429: join with range condition whose selectivity == 0
|
# Bug mdev-4429: join with range condition whose selectivity == 0
|
||||||
# when optimizer_use_condition_selectivity=3
|
# when optimizer_use_condition_selectivity=3
|
||||||
#
|
#
|
||||||
|
@ -3,10 +3,10 @@ Variable_name Value
|
|||||||
Ssl_cipher DHE-RSA-AES256-SHA
|
Ssl_cipher DHE-RSA-AES256-SHA
|
||||||
SHOW STATUS LIKE 'Ssl_server_not_before';
|
SHOW STATUS LIKE 'Ssl_server_not_before';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Ssl_server_not_before Jan 29 11:56:49 2010 GMT
|
Ssl_server_not_before Feb 20 02:55:06 2010 GMT
|
||||||
SHOW STATUS LIKE 'Ssl_server_not_after';
|
SHOW STATUS LIKE 'Ssl_server_not_after';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Ssl_server_not_after Jan 28 11:56:49 2015 GMT
|
Ssl_server_not_after Sep 3 02:55:06 2030 GMT
|
||||||
drop table if exists t1,t2,t3,t4;
|
drop table if exists t1,t2,t3,t4;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
|
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
|
||||||
|
@ -148,7 +148,7 @@ use dbt3_s001;
|
|||||||
set use_stat_tables='preferably';
|
set use_stat_tables='preferably';
|
||||||
analyze table lineitem persistent for columns() indexes (i_l_receiptdate);
|
analyze table lineitem persistent for columns() indexes (i_l_receiptdate);
|
||||||
set debug_sync='RESET';
|
set debug_sync='RESET';
|
||||||
select * from mysql.index_stats where table_name='lineitem' order by index_name;
|
select * from mysql.index_stats where table_name='lineitem' order by index_name, prefix_arity;
|
||||||
db_name table_name index_name prefix_arity avg_frequency
|
db_name table_name index_name prefix_arity avg_frequency
|
||||||
dbt3_s001 lineitem PRIMARY 1 4.0033
|
dbt3_s001 lineitem PRIMARY 1 4.0033
|
||||||
dbt3_s001 lineitem PRIMARY 2 1.0000
|
dbt3_s001 lineitem PRIMARY 2 1.0000
|
||||||
@ -212,7 +212,7 @@ analyze table lineitem persistent for all;
|
|||||||
set debug_sync='open_and_process_table WAIT_FOR parker';
|
set debug_sync='open_and_process_table WAIT_FOR parker';
|
||||||
set debug_sync='statistics_read_start SIGNAL go1 WAIT_FOR go2';
|
set debug_sync='statistics_read_start SIGNAL go1 WAIT_FOR go2';
|
||||||
use dbt3_s001;
|
use dbt3_s001;
|
||||||
select * from mysql.index_stats, lineitem where index_name= 'i_l_shipdate' and l_orderkey=1 and l_partkey=68;
|
select * from mysql.index_stats, lineitem where index_name= 'i_l_shipdate' and l_orderkey=1 and l_partkey=68 order by prefix_arity;;
|
||||||
db_name table_name index_name prefix_arity avg_frequency l_orderkey l_partkey l_suppkey l_linenumber l_quantity l_extendedprice l_discount l_tax l_returnflag l_linestatus l_shipDATE l_commitDATE l_receiptDATE l_shipinstruct l_shipmode l_comment
|
db_name table_name index_name prefix_arity avg_frequency l_orderkey l_partkey l_suppkey l_linenumber l_quantity l_extendedprice l_discount l_tax l_returnflag l_linestatus l_shipDATE l_commitDATE l_receiptDATE l_shipinstruct l_shipmode l_comment
|
||||||
dbt3_s001 lineitem i_l_shipdate 1 2.6500 1 68 9 2 36 34850.16 0.09 0.06 N O 1996-04-12 1996-02-28 1996-04-20 TAKE BACK RETURN MAIL slyly bold pinto beans detect s
|
dbt3_s001 lineitem i_l_shipdate 1 2.6500 1 68 9 2 36 34850.16 0.09 0.06 N O 1996-04-12 1996-02-28 1996-04-20 TAKE BACK RETURN MAIL slyly bold pinto beans detect s
|
||||||
set debug_sync='RESET';
|
set debug_sync='RESET';
|
||||||
|
@ -151,7 +151,7 @@ use dbt3_s001;
|
|||||||
set use_stat_tables='preferably';
|
set use_stat_tables='preferably';
|
||||||
analyze table lineitem persistent for columns() indexes (i_l_receiptdate);
|
analyze table lineitem persistent for columns() indexes (i_l_receiptdate);
|
||||||
set debug_sync='RESET';
|
set debug_sync='RESET';
|
||||||
select * from mysql.index_stats where table_name='lineitem' order by index_name;
|
select * from mysql.index_stats where table_name='lineitem' order by index_name, prefix_arity;
|
||||||
db_name table_name index_name prefix_arity avg_frequency
|
db_name table_name index_name prefix_arity avg_frequency
|
||||||
dbt3_s001 lineitem PRIMARY 1 4.0033
|
dbt3_s001 lineitem PRIMARY 1 4.0033
|
||||||
dbt3_s001 lineitem PRIMARY 2 1.0000
|
dbt3_s001 lineitem PRIMARY 2 1.0000
|
||||||
@ -161,7 +161,11 @@ dbt3_s001 lineitem i_l_orderkey_quantity 1 4.0033
|
|||||||
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
|
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
|
||||||
dbt3_s001 lineitem i_l_partkey 1 30.0250
|
dbt3_s001 lineitem i_l_partkey 1 30.0250
|
||||||
dbt3_s001 lineitem i_l_receiptdate 1 2.6477
|
dbt3_s001 lineitem i_l_receiptdate 1 2.6477
|
||||||
|
dbt3_s001 lineitem i_l_receiptdate 2 1.0152
|
||||||
|
dbt3_s001 lineitem i_l_receiptdate 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_shipdate 1 2.6500
|
dbt3_s001 lineitem i_l_shipdate 1 2.6500
|
||||||
|
dbt3_s001 lineitem i_l_shipdate 2 1.0149
|
||||||
|
dbt3_s001 lineitem i_l_shipdate 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_suppkey 1 600.5000
|
dbt3_s001 lineitem i_l_suppkey 1 600.5000
|
||||||
dbt3_s001 lineitem i_l_suppkey_partkey 1 30.0250
|
dbt3_s001 lineitem i_l_suppkey_partkey 1 30.0250
|
||||||
dbt3_s001 lineitem i_l_suppkey_partkey 2 8.5786
|
dbt3_s001 lineitem i_l_suppkey_partkey 2 8.5786
|
||||||
@ -176,7 +180,11 @@ dbt3_s001 lineitem i_l_orderkey_quantity 1 4.0033
|
|||||||
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
|
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
|
||||||
dbt3_s001 lineitem i_l_partkey 1 30.0250
|
dbt3_s001 lineitem i_l_partkey 1 30.0250
|
||||||
dbt3_s001 lineitem i_l_receiptdate 1 2.6477
|
dbt3_s001 lineitem i_l_receiptdate 1 2.6477
|
||||||
|
dbt3_s001 lineitem i_l_receiptdate 2 1.0152
|
||||||
|
dbt3_s001 lineitem i_l_receiptdate 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_shipdate 1 2.6500
|
dbt3_s001 lineitem i_l_shipdate 1 2.6500
|
||||||
|
dbt3_s001 lineitem i_l_shipdate 2 1.0149
|
||||||
|
dbt3_s001 lineitem i_l_shipdate 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_suppkey 1 600.5000
|
dbt3_s001 lineitem i_l_suppkey 1 600.5000
|
||||||
dbt3_s001 lineitem i_l_suppkey_partkey 1 30.0250
|
dbt3_s001 lineitem i_l_suppkey_partkey 1 30.0250
|
||||||
dbt3_s001 lineitem i_l_suppkey_partkey 2 8.5786
|
dbt3_s001 lineitem i_l_suppkey_partkey 2 8.5786
|
||||||
@ -202,15 +210,29 @@ db_name table_name index_name prefix_arity avg_frequency
|
|||||||
dbt3_s001 lineitem PRIMARY 1 4.0027
|
dbt3_s001 lineitem PRIMARY 1 4.0027
|
||||||
dbt3_s001 lineitem PRIMARY 2 1.0000
|
dbt3_s001 lineitem PRIMARY 2 1.0000
|
||||||
dbt3_s001 lineitem i_l_commitdate 1 2.7155
|
dbt3_s001 lineitem i_l_commitdate 1 2.7155
|
||||||
|
dbt3_s001 lineitem i_l_commitdate 2 1.0364
|
||||||
|
dbt3_s001 lineitem i_l_commitdate 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_orderkey 1 4.0027
|
dbt3_s001 lineitem i_l_orderkey 1 4.0027
|
||||||
|
dbt3_s001 lineitem i_l_orderkey 2 1.0000
|
||||||
dbt3_s001 lineitem i_l_orderkey_quantity 1 4.0027
|
dbt3_s001 lineitem i_l_orderkey_quantity 1 4.0027
|
||||||
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
|
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
|
||||||
|
dbt3_s001 lineitem i_l_orderkey_quantity 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_partkey 1 30.0200
|
dbt3_s001 lineitem i_l_partkey 1 30.0200
|
||||||
|
dbt3_s001 lineitem i_l_partkey 2 1.0089
|
||||||
|
dbt3_s001 lineitem i_l_partkey 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_receiptdate 1 2.6473
|
dbt3_s001 lineitem i_l_receiptdate 1 2.6473
|
||||||
|
dbt3_s001 lineitem i_l_receiptdate 2 1.0152
|
||||||
|
dbt3_s001 lineitem i_l_receiptdate 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_shipdate 1 2.6496
|
dbt3_s001 lineitem i_l_shipdate 1 2.6496
|
||||||
|
dbt3_s001 lineitem i_l_shipdate 2 1.0149
|
||||||
|
dbt3_s001 lineitem i_l_shipdate 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_suppkey 1 600.4000
|
dbt3_s001 lineitem i_l_suppkey 1 600.4000
|
||||||
|
dbt3_s001 lineitem i_l_suppkey 2 1.2073
|
||||||
|
dbt3_s001 lineitem i_l_suppkey 3 1.0000
|
||||||
dbt3_s001 lineitem i_l_suppkey_partkey 1 30.0200
|
dbt3_s001 lineitem i_l_suppkey_partkey 1 30.0200
|
||||||
dbt3_s001 lineitem i_l_suppkey_partkey 2 8.5771
|
dbt3_s001 lineitem i_l_suppkey_partkey 2 8.5771
|
||||||
|
dbt3_s001 lineitem i_l_suppkey_partkey 3 1.0030
|
||||||
|
dbt3_s001 lineitem i_l_suppkey_partkey 4 1.0000
|
||||||
set @save_global_use_stat_tables=@@global.use_stat_tables;
|
set @save_global_use_stat_tables=@@global.use_stat_tables;
|
||||||
set global use_stat_tables='preferably';
|
set global use_stat_tables='preferably';
|
||||||
set debug_sync='RESET';
|
set debug_sync='RESET';
|
||||||
@ -221,9 +243,11 @@ analyze table lineitem persistent for all;
|
|||||||
set debug_sync='open_and_process_table WAIT_FOR parker';
|
set debug_sync='open_and_process_table WAIT_FOR parker';
|
||||||
set debug_sync='statistics_read_start SIGNAL go1 WAIT_FOR go2';
|
set debug_sync='statistics_read_start SIGNAL go1 WAIT_FOR go2';
|
||||||
use dbt3_s001;
|
use dbt3_s001;
|
||||||
select * from mysql.index_stats, lineitem where index_name= 'i_l_shipdate' and l_orderkey=1 and l_partkey=68;
|
select * from mysql.index_stats, lineitem where index_name= 'i_l_shipdate' and l_orderkey=1 and l_partkey=68 order by prefix_arity;;
|
||||||
db_name table_name index_name prefix_arity avg_frequency l_orderkey l_partkey l_suppkey l_linenumber l_quantity l_extendedprice l_discount l_tax l_returnflag l_linestatus l_shipDATE l_commitDATE l_receiptDATE l_shipinstruct l_shipmode l_comment
|
db_name table_name index_name prefix_arity avg_frequency l_orderkey l_partkey l_suppkey l_linenumber l_quantity l_extendedprice l_discount l_tax l_returnflag l_linestatus l_shipDATE l_commitDATE l_receiptDATE l_shipinstruct l_shipmode l_comment
|
||||||
dbt3_s001 lineitem i_l_shipdate 1 2.6496 1 68 9 2 36 34850.16 0.09 0.06 N O 1996-04-12 1996-02-28 1996-04-20 TAKE BACK RETURN MAIL slyly bold pinto beans detect s
|
dbt3_s001 lineitem i_l_shipdate 1 2.6496 1 68 9 2 36 34850.16 0.09 0.06 N O 1996-04-12 1996-02-28 1996-04-20 TAKE BACK RETURN MAIL slyly bold pinto beans detect s
|
||||||
|
dbt3_s001 lineitem i_l_shipdate 2 1.0149 1 68 9 2 36 34850.16 0.09 0.06 N O 1996-04-12 1996-02-28 1996-04-20 TAKE BACK RETURN MAIL slyly bold pinto beans detect s
|
||||||
|
dbt3_s001 lineitem i_l_shipdate 3 1.0000 1 68 9 2 36 34850.16 0.09 0.06 N O 1996-04-12 1996-02-28 1996-04-20 TAKE BACK RETURN MAIL slyly bold pinto beans detect s
|
||||||
set debug_sync='RESET';
|
set debug_sync='RESET';
|
||||||
set global use_stat_tables=@save_global_use_stat_tables;
|
set global use_stat_tables=@save_global_use_stat_tables;
|
||||||
DROP DATABASE dbt3_s001;
|
DROP DATABASE dbt3_s001;
|
||||||
|
@ -561,7 +561,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 3 AS `numreponse` from `test`.`t1` where (1 = '1')
|
Note 1003 select 3 AS `numreponse` from `test`.`t1` where 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
@ -6098,7 +6098,7 @@ FROM t1 AS sq4_alias1
|
|||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
sq4_alias1.col_varchar_key = @var3;
|
sq4_alias1.col_varchar_key = @var3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE sq4_alias1 system NULL NULL NULL NULL 0 const row not found
|
||||||
SELECT @var3:=12, sq4_alias1.*
|
SELECT @var3:=12, sq4_alias1.*
|
||||||
FROM t1 AS sq4_alias1
|
FROM t1 AS sq4_alias1
|
||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
|
@ -163,7 +163,7 @@ SELECT * FROM t2,t3 WHERE (2,9) IN (SELECT DISTINCT a,pk FROM t1) OR a = b;
|
|||||||
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 t2 index a a 5 NULL 2 Using where; Using index
|
1 PRIMARY t2 index a a 5 NULL 2 Using where; Using index
|
||||||
1 PRIMARY t3 ref b b 5 test.t2.a 2 Using index
|
1 PRIMARY t3 ref b b 5 test.t2.a 2 Using index
|
||||||
2 SUBQUERY t1 index_subquery PRIMARY,a a 5 const 0 Using index; Using where
|
2 SUBQUERY t1 const PRIMARY,a PRIMARY 4 const 1 Using where
|
||||||
SELECT * FROM t2,t3 WHERE (2,9) IN (SELECT DISTINCT a,pk FROM t1) OR a = b;
|
SELECT * FROM t2,t3 WHERE (2,9) IN (SELECT DISTINCT a,pk FROM t1) OR a = b;
|
||||||
pk a b
|
pk a b
|
||||||
0 4 4
|
0 4 4
|
||||||
@ -172,7 +172,7 @@ SELECT * FROM t2,t3 WHERE (2,9) IN (SELECT DISTINCT a,pk FROM v1) OR a = b;
|
|||||||
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 t2 index a a 5 NULL 2 Using where; Using index
|
1 PRIMARY t2 index a a 5 NULL 2 Using where; Using index
|
||||||
1 PRIMARY t3 ref b b 5 test.t2.a 2 Using index
|
1 PRIMARY t3 ref b b 5 test.t2.a 2 Using index
|
||||||
2 SUBQUERY t1 index_subquery PRIMARY,a a 5 const 0 Using index; Using where
|
2 SUBQUERY t1 const PRIMARY,a PRIMARY 4 const 1 Using where
|
||||||
SELECT * FROM t2,t3 WHERE (2,9) IN (SELECT DISTINCT a,pk FROM v1) OR a = b;
|
SELECT * FROM t2,t3 WHERE (2,9) IN (SELECT DISTINCT a,pk FROM v1) OR a = b;
|
||||||
pk a b
|
pk a b
|
||||||
0 4 4
|
0 4 4
|
||||||
|
@ -2304,6 +2304,33 @@ WHERE a='r' AND (c,b) NOT IN (SELECT c,b FROM t2 WHERE (c,b)=(t.c,t.b));
|
|||||||
a b c d
|
a b c d
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
#
|
#
|
||||||
|
# MDEV-5468: assertion failure with a simplified condition in subselect
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a int, b int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1,1);
|
||||||
|
CREATE TABLE t2 ( pk int PRIMARY KEY, c INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (1,4), (2,6);
|
||||||
|
SELECT ( SELECT MAX(b) FROM t1, t2 WHERE pk = a AND b < from_sq.c ) AS select_sq,
|
||||||
|
COUNT( DISTINCT from_sq.c )
|
||||||
|
FROM ( SELECT DISTINCT t2_1.* FROM t2 AS t2_1, t2 AS t2_2 ) AS from_sq
|
||||||
|
GROUP BY select_sq ;
|
||||||
|
select_sq COUNT( DISTINCT from_sq.c )
|
||||||
|
1 2
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (id int, a2 char(2), a3 char(3)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1,'BE','BEL');
|
||||||
|
CREATE TABLE t2 (id int, a2 char(2), a3 char(3)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (1,'BE','BEL'), (2,'MX','MEX');
|
||||||
|
CREATE VIEW v2 AS SELECT DISTINCT * FROM t2;
|
||||||
|
SELECT * FROM t1 AS outer_t1, v2
|
||||||
|
WHERE v2.a3 = outer_t1.a3
|
||||||
|
AND EXISTS ( SELECT * FROM t1 WHERE a2 < v2.a2 AND id = outer_t1.id )
|
||||||
|
AND outer_t1.a3 < 'J'
|
||||||
|
ORDER BY v2.id;
|
||||||
|
id a2 a3 id a2 a3
|
||||||
|
DROP VIEW v2;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
# MDEV-3899 Valgrind warnings (blocks are definitely lost) in filesort on IN subquery with SUM and DISTINCT
|
# MDEV-3899 Valgrind warnings (blocks are definitely lost) in filesort on IN subquery with SUM and DISTINCT
|
||||||
#
|
#
|
||||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||||
|
@ -565,7 +565,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 3 AS `numreponse` from `test`.`t1` where (1 = '1')
|
Note 1003 select 3 AS `numreponse` from `test`.`t1` where 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
@ -6106,7 +6106,7 @@ FROM t1 AS sq4_alias1
|
|||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
sq4_alias1.col_varchar_key = @var3;
|
sq4_alias1.col_varchar_key = @var3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE sq4_alias1 system NULL NULL NULL NULL 0 const row not found
|
||||||
SELECT @var3:=12, sq4_alias1.*
|
SELECT @var3:=12, sq4_alias1.*
|
||||||
FROM t1 AS sq4_alias1
|
FROM t1 AS sq4_alias1
|
||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
|
@ -46,7 +46,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t1.cur_date' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t1.cur_date' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select 1 AS `id`,'2007-04-25 18:30:22' AS `cur_date` from (dual) where ('2007-04-25 18:30:22' = 0)
|
Note 1003 select 1 AS `id`,'2007-04-25 18:30:22' AS `cur_date` from (dual) where 0
|
||||||
select * from t1
|
select * from t1
|
||||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||||
id cur_date
|
id cur_date
|
||||||
@ -57,7 +57,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t2.cur_date' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t2.cur_date' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select 1 AS `id`,'2007-04-25' AS `cur_date` from (dual) where ('2007-04-25' = 0)
|
Note 1003 select 1 AS `id`,'2007-04-25' AS `cur_date` from (dual) where 0
|
||||||
select * from t2
|
select * from t2
|
||||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||||
id cur_date
|
id cur_date
|
||||||
|
@ -568,7 +568,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 3 AS `numreponse` from `test`.`t1` where (1 = '1')
|
Note 1003 select 3 AS `numreponse` from `test`.`t1` where 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
@ -6097,7 +6097,7 @@ FROM t1 AS sq4_alias1
|
|||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
sq4_alias1.col_varchar_key = @var3;
|
sq4_alias1.col_varchar_key = @var3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE sq4_alias1 system NULL NULL NULL NULL 0 const row not found
|
||||||
SELECT @var3:=12, sq4_alias1.*
|
SELECT @var3:=12, sq4_alias1.*
|
||||||
FROM t1 AS sq4_alias1
|
FROM t1 AS sq4_alias1
|
||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
|
@ -564,7 +564,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 3 AS `numreponse` from `test`.`t1` where (1 = '1')
|
Note 1003 select 3 AS `numreponse` from `test`.`t1` where 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
@ -6093,7 +6093,7 @@ FROM t1 AS sq4_alias1
|
|||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
sq4_alias1.col_varchar_key = @var3;
|
sq4_alias1.col_varchar_key = @var3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE sq4_alias1 system NULL NULL NULL NULL 0 const row not found
|
||||||
SELECT @var3:=12, sq4_alias1.*
|
SELECT @var3:=12, sq4_alias1.*
|
||||||
FROM t1 AS sq4_alias1
|
FROM t1 AS sq4_alias1
|
||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
|
@ -567,7 +567,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 3 AS `numreponse` from `test`.`t1` where (1 = '1')
|
Note 1003 select 3 AS `numreponse` from `test`.`t1` where 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
@ -6104,7 +6104,7 @@ FROM t1 AS sq4_alias1
|
|||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
sq4_alias1.col_varchar_key = @var3;
|
sq4_alias1.col_varchar_key = @var3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE sq4_alias1 system NULL NULL NULL NULL 0 const row not found
|
||||||
SELECT @var3:=12, sq4_alias1.*
|
SELECT @var3:=12, sq4_alias1.*
|
||||||
FROM t1 AS sq4_alias1
|
FROM t1 AS sq4_alias1
|
||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
|
@ -564,7 +564,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
1 PRIMARY t1 const PRIMARY,numreponse PRIMARY 7 const,const 1 100.00 Using index
|
||||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 3 AS `numreponse` from `test`.`t1` where (1 = '1')
|
Note 1003 select 3 AS `numreponse` from `test`.`t1` where 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (a int(1));
|
CREATE TABLE t1 (a int(1));
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
@ -6093,7 +6093,7 @@ FROM t1 AS sq4_alias1
|
|||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
sq4_alias1.col_varchar_key = @var3;
|
sq4_alias1.col_varchar_key = @var3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE sq4_alias1 system NULL NULL NULL NULL 0 const row not found
|
||||||
SELECT @var3:=12, sq4_alias1.*
|
SELECT @var3:=12, sq4_alias1.*
|
||||||
FROM t1 AS sq4_alias1
|
FROM t1 AS sq4_alias1
|
||||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||||
|
@ -2793,6 +2793,22 @@ mysql
|
|||||||
information_schema
|
information_schema
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# MDEV-5581: Server crashes in in JOIN::prepare on 2nd execution of PS with materialization+semijoin
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (2),(3);
|
||||||
|
CREATE TABLE t2 (b INT);
|
||||||
|
INSERT INTO t2 VALUES (8),(9);
|
||||||
|
CREATE TABLE t3 (c INT, INDEX(c));
|
||||||
|
INSERT INTO t2 VALUES (5),(6);
|
||||||
|
PREPARE stmt FROM
|
||||||
|
"SELECT * FROM t1 WHERE ( 9, 5 ) IN ( SELECT b, COUNT(*) FROM t2 WHERE 1 IN ( SELECT MIN(c) FROM t3 ) )";
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
|
#
|
||||||
# MySQL Bug#13340270: assertion table->sort.record_pointers == __null
|
# MySQL Bug#13340270: assertion table->sort.record_pointers == __null
|
||||||
#
|
#
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
|
@ -1109,6 +1109,23 @@ t3 AS t3a INNER JOIN t3 AS t3b ON ( t3a.i3 = t3b.i3 )
|
|||||||
);
|
);
|
||||||
i1
|
i1
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
#
|
||||||
|
# MDEV-5582: Plugin 'MEMORY' has ref_count=1 after shutdown with materialization+semijoin
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT) engine=innodb;
|
||||||
|
INSERT INTO t1 VALUES (8),(9);
|
||||||
|
CREATE TABLE t2 (b INT) engine=innodb;
|
||||||
|
INSERT INTO t2 VALUES (2),(3);
|
||||||
|
CREATE TABLE t3 (c INT, INDEX(c)) engine=innodb;
|
||||||
|
INSERT INTO t2 VALUES (4),(5);
|
||||||
|
explain
|
||||||
|
SELECT * FROM t1 WHERE 9 IN ( SELECT b FROM t2 WHERE 1 IN ( SELECT MIN(c) FROM t3 ) );
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
|
||||||
|
3 MATERIALIZED NULL NULL NULL NULL NULL NULL NULL No matching min/max row
|
||||||
|
SELECT * FROM t1 WHERE 9 IN ( SELECT b FROM t2 WHERE 1 IN ( SELECT MIN(c) FROM t3 ) );
|
||||||
|
a
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
DROP TABLE IF EXISTS t1,t2,t3,t4;
|
DROP TABLE IF EXISTS t1,t2,t3,t4;
|
||||||
#
|
#
|
||||||
# MDEV-4782: Valgrind warnings (Conditional jump or move depends on uninitialised value) with InnoDB, semijoin
|
# MDEV-4782: Valgrind warnings (Conditional jump or move depends on uninitialised value) with InnoDB, semijoin
|
||||||
|
@ -1124,6 +1124,23 @@ t3 AS t3a INNER JOIN t3 AS t3b ON ( t3a.i3 = t3b.i3 )
|
|||||||
);
|
);
|
||||||
i1
|
i1
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
#
|
||||||
|
# MDEV-5582: Plugin 'MEMORY' has ref_count=1 after shutdown with materialization+semijoin
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT) engine=innodb;
|
||||||
|
INSERT INTO t1 VALUES (8),(9);
|
||||||
|
CREATE TABLE t2 (b INT) engine=innodb;
|
||||||
|
INSERT INTO t2 VALUES (2),(3);
|
||||||
|
CREATE TABLE t3 (c INT, INDEX(c)) engine=innodb;
|
||||||
|
INSERT INTO t2 VALUES (4),(5);
|
||||||
|
explain
|
||||||
|
SELECT * FROM t1 WHERE 9 IN ( SELECT b FROM t2 WHERE 1 IN ( SELECT MIN(c) FROM t3 ) );
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
|
||||||
|
3 MATERIALIZED NULL NULL NULL NULL NULL NULL NULL No matching min/max row
|
||||||
|
SELECT * FROM t1 WHERE 9 IN ( SELECT b FROM t2 WHERE 1 IN ( SELECT MIN(c) FROM t3 ) );
|
||||||
|
a
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
DROP TABLE IF EXISTS t1,t2,t3,t4;
|
DROP TABLE IF EXISTS t1,t2,t3,t4;
|
||||||
#
|
#
|
||||||
# MDEV-4782: Valgrind warnings (Conditional jump or move depends on uninitialised value) with InnoDB, semijoin
|
# MDEV-4782: Valgrind warnings (Conditional jump or move depends on uninitialised value) with InnoDB, semijoin
|
||||||
|
@ -1111,6 +1111,23 @@ t3 AS t3a INNER JOIN t3 AS t3b ON ( t3a.i3 = t3b.i3 )
|
|||||||
);
|
);
|
||||||
i1
|
i1
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
#
|
||||||
|
# MDEV-5582: Plugin 'MEMORY' has ref_count=1 after shutdown with materialization+semijoin
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT) engine=innodb;
|
||||||
|
INSERT INTO t1 VALUES (8),(9);
|
||||||
|
CREATE TABLE t2 (b INT) engine=innodb;
|
||||||
|
INSERT INTO t2 VALUES (2),(3);
|
||||||
|
CREATE TABLE t3 (c INT, INDEX(c)) engine=innodb;
|
||||||
|
INSERT INTO t2 VALUES (4),(5);
|
||||||
|
explain
|
||||||
|
SELECT * FROM t1 WHERE 9 IN ( SELECT b FROM t2 WHERE 1 IN ( SELECT MIN(c) FROM t3 ) );
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
|
||||||
|
3 MATERIALIZED NULL NULL NULL NULL NULL NULL NULL No matching min/max row
|
||||||
|
SELECT * FROM t1 WHERE 9 IN ( SELECT b FROM t2 WHERE 1 IN ( SELECT MIN(c) FROM t3 ) );
|
||||||
|
a
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
DROP TABLE IF EXISTS t1,t2,t3,t4;
|
DROP TABLE IF EXISTS t1,t2,t3,t4;
|
||||||
#
|
#
|
||||||
# MDEV-4782: Valgrind warnings (Conditional jump or move depends on uninitialised value) with InnoDB, semijoin
|
# MDEV-4782: Valgrind warnings (Conditional jump or move depends on uninitialised value) with InnoDB, semijoin
|
||||||
|
@ -2807,6 +2807,22 @@ information_schema
|
|||||||
mysql
|
mysql
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# MDEV-5581: Server crashes in in JOIN::prepare on 2nd execution of PS with materialization+semijoin
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (2),(3);
|
||||||
|
CREATE TABLE t2 (b INT);
|
||||||
|
INSERT INTO t2 VALUES (8),(9);
|
||||||
|
CREATE TABLE t3 (c INT, INDEX(c));
|
||||||
|
INSERT INTO t2 VALUES (5),(6);
|
||||||
|
PREPARE stmt FROM
|
||||||
|
"SELECT * FROM t1 WHERE ( 9, 5 ) IN ( SELECT b, COUNT(*) FROM t2 WHERE 1 IN ( SELECT MIN(c) FROM t3 ) )";
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
|
#
|
||||||
# MySQL Bug#13340270: assertion table->sort.record_pointers == __null
|
# MySQL Bug#13340270: assertion table->sort.record_pointers == __null
|
||||||
#
|
#
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
|
@ -519,7 +519,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t1.cur_date' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t1.cur_date' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select 1 AS `id`,'2007-04-25 18:30:22' AS `cur_date` from (dual) where ('2007-04-25 18:30:22' = 0)
|
Note 1003 select 1 AS `id`,'2007-04-25 18:30:22' AS `cur_date` from (dual) where 0
|
||||||
select * from t1
|
select * from t1
|
||||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||||
id cur_date
|
id cur_date
|
||||||
@ -530,7 +530,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t2.cur_date' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t2.cur_date' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select 1 AS `id`,'2007-04-25' AS `cur_date` from (dual) where ('2007-04-25' = 0)
|
Note 1003 select 1 AS `id`,'2007-04-25' AS `cur_date` from (dual) where 0
|
||||||
select * from t2
|
select * from t2
|
||||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||||
id cur_date
|
id cur_date
|
||||||
|
20
mysql-test/r/udf_debug_sync.result
Normal file
20
mysql-test/r/udf_debug_sync.result
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
|
||||||
|
CREATE VIEW v1 AS SELECT myfunc_int(1);
|
||||||
|
SET debug_sync='mysql_create_function_after_lock SIGNAL locked WAIT_FOR go';
|
||||||
|
CREATE FUNCTION myfunc_double RETURNS REAL SONAME "UDF_EXAMPLE_LIB";
|
||||||
|
SET debug_sync='now WAIT_FOR locked';
|
||||||
|
SET debug_sync='find_udf_before_lock SIGNAL go';
|
||||||
|
SELECT * FROM v1;
|
||||||
|
myfunc_int(1)
|
||||||
|
1
|
||||||
|
FLUSH TABLES;
|
||||||
|
SET debug_sync='mysql_drop_function_after_lock SIGNAL locked WAIT_FOR go';
|
||||||
|
DROP FUNCTION myfunc_double;
|
||||||
|
SET debug_sync='now WAIT_FOR locked';
|
||||||
|
SET debug_sync='find_udf_before_lock SIGNAL go';
|
||||||
|
SELECT * FROM v1;
|
||||||
|
myfunc_int(1)
|
||||||
|
1
|
||||||
|
SET debug_sync='RESET';
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP FUNCTION myfunc_int;
|
5
mysql-test/r/union_crash-714.result
Normal file
5
mysql-test/r/union_crash-714.result
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
create table t1 (i tinyint);
|
||||||
|
set debug_dbug='+d,bug11747970_raise_error';
|
||||||
|
insert into t1 (i) select i from t1 union select i from t1;
|
||||||
|
ERROR 70100: Query execution was interrupted
|
||||||
|
drop table t1;
|
@ -4415,7 +4415,7 @@ WHERE f1<>0 OR f2<>0 AND f4='v' AND (f2<>0 OR f3<>0 AND f5<>0 OR f4 LIKE '%b%');
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select 'r' AS `f4` from dual where (20 <> 0)
|
Note 1003 select 'r' AS `f4` from dual where 1
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
@ -1161,6 +1161,9 @@ UPDATEXML('<a><c><a>x</a></c></a>','(a)//a','<b />')
|
|||||||
SELECT ExtractValue('<a><a>aa</a><b>bb</b></a>','(a)/a|(a)/b');
|
SELECT ExtractValue('<a><a>aa</a><b>bb</b></a>','(a)/a|(a)/b');
|
||||||
ExtractValue('<a><a>aa</a><b>bb</b></a>','(a)/a|(a)/b')
|
ExtractValue('<a><a>aa</a><b>bb</b></a>','(a)/a|(a)/b')
|
||||||
aa bb
|
aa bb
|
||||||
|
SELECT ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,..)');
|
||||||
|
ExtractValue('<a><b>abc</b><c>2</c><d>1</d></a>','substring(/a/b,..)')
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#62429 XML: ExtractValue, UpdateXML max arg length 127 chars
|
# Bug#62429 XML: ExtractValue, UpdateXML max arg length 127 chars
|
||||||
#
|
#
|
||||||
|
@ -1,17 +1,22 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIICrTCCAhagAwIBAgIJAMI7xZKjhrDbMA0GCSqGSIb3DQEBBAUAMEQxCzAJBgNV
|
MIIDsjCCApqgAwIBAgIJAL5YrUwfPSWVMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
|
||||||
BAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxhMREwDwYD
|
BAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxhMREwDwYD
|
||||||
VQQKEwhNeVNRTCBBQjAeFw0xMDAxMjkxMTQ3MTBaFw0xNTAxMjgxMTQ3MTBaMEQx
|
VQQKEwhNeVNRTCBBQjAeFw0xMDAxMjkwNTU5NTNaFw0xNTAxMjgwNTU5NTNaMEQx
|
||||||
CzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxh
|
CzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxh
|
||||||
MREwDwYDVQQKEwhNeVNRTCBBQjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
|
MREwDwYDVQQKEwhNeVNRTCBBQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
||||||
wQYsOEfrN4ESP3FjsI8cghE+tZVuyK2gck61lwieVxjgFMtBd65mI5a1y9pmlOI1
|
ggEBAL6kNN4peX7uhK9rb06W/QbPEpVuejmdWdl2PqMshP/eSuXXw7kwVgfpxx9R
|
||||||
yM4SB2Ppqcuw7/e1CdV1y7lvHrGNt5yqEHbN4QX1gvsN8TQauP/2WILturk4R4Hq
|
vC000CKQQSG9MCoZjtqPnFRsetmWLZgApRpEalGXTXJqq9sEbCfoFizg94U8G7d2
|
||||||
rKg0ZySu7f1Xhl0ed9a48LpaEHD17IcxWEGMMJwAxF0CAwEAAaOBpjCBozAMBgNV
|
u5XJjLVmcG34ru36KoBgVx1zeH1puBAf8dOzrE4L7Y+ZQBFzFohjh8C2LqWC4nM5
|
||||||
HRMEBTADAQH/MB0GA1UdDgQWBBSvktYQ0ahLnyxyVKqty+WpBbBrDTB0BgNVHSME
|
qsLmOkDWMipGqYU5DvkKjIbTbwTyRNRgZHWSPfVDDPUIUOsY4BGUp2DpgeGY9aEv
|
||||||
bTBrgBSvktYQ0ahLnyxyVKqty+WpBbBrDaFIpEYwRDELMAkGA1UEBhMCU0UxEDAO
|
lIs57Ev9JqlIUCV65lOhhDkG+xwmkHKHA+ECEU9cALI8+uXbh48MB9XpMOuk408X
|
||||||
BgNVBAgTB1VwcHNhbGExEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FM
|
/lX89aZwD0/G9kmObVGnE2G+H5UCAwEAAaOBpjCBozAdBgNVHQ4EFgQUsft+d7VA
|
||||||
IEFCggkAwjvFkqOGsNswDQYJKoZIhvcNAQEEBQADgYEAdKN1PjwMHAKG2Ww1145g
|
jWgRftkR5cPG2k2sUbAwdAYDVR0jBG0wa4AUsft+d7VAjWgRftkR5cPG2k2sUbCh
|
||||||
JQGBnKxSFOUaoSvkBi/4ntTM+ysnViWh7WvxyWjR9zU9arfr7aqsDeQxm0XDOqzj
|
SKRGMEQxCzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdV
|
||||||
AQ/cQIla2/Li8tXyfc06bisH/IHRaSc2zWqioTKbEwMdVOdrvq4a8V8ic3xYyIWn
|
cHBzYWxhMREwDwYDVQQKEwhNeVNRTCBBQoIJAL5YrUwfPSWVMAwGA1UdEwQFMAMB
|
||||||
7F4WeS07J8LKardSvM0+hOA=
|
Af8wDQYJKoZIhvcNAQEFBQADggEBALRUOAmdL8R8sl1y8kiEiFgDatdXK5RDqWai
|
||||||
|
8yZChfmwTIToHhmQsOEshJe2e8hky3huUj+33VyXjINoMbebIwMuXPwEkbJal8RZ
|
||||||
|
nSJmF0jN1Qz7J/jFffwK9xmejWZJx49Kt2+Qwrwp6kDeq9TLFqQOoVczgyJPYsTL
|
||||||
|
NAOib5WqTud3XWvCwxrhqmWu7JZq6sp1fomP/uunprb8y2miWfLESZN2mKAhm44Q
|
||||||
|
Lws867LT8v2lskEjq2dT1LutD5+R66XcdjgSr0uDziDs64jZwCD6ea94hVFM7ej0
|
||||||
|
ZOXYeSEZJ56FjUxu632e9fY8NyMh30yKjjmQf1mM9PuGJvdvsWU=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user