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/connect/connect.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)
|
||||
SET(DEFAULT_SYSCONFDIR "${INSTALL_SYSCONFDIR}")
|
||||
ENDIF()
|
||||
|
||||
OPTION(TMPDIR
|
||||
"PATH to MySQL TMP dir. If unspecified, defaults to P_tmpdir in <stdio.h>" OFF)
|
||||
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()
|
||||
|
||||
# Run platform tests
|
||||
@ -418,6 +425,7 @@ IF(NOT WITHOUT_SERVER)
|
||||
ADD_SUBDIRECTORY(internal)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(packaging/rpm-uln)
|
||||
ADD_SUBDIRECTORY(packaging/rpm-oel)
|
||||
ENDIF()
|
||||
|
||||
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
|
||||
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);
|
||||
#endif
|
||||
buff[sizeof(buff) - 1]= 0;
|
||||
my_delete(opt_basedir, MYF(0));
|
||||
my_free(opt_basedir);
|
||||
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,
|
||||
uint length);
|
||||
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.
|
||||
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)
|
||||
{
|
||||
if (opt_slave_data)
|
||||
do_start_slave_sql(mysql);
|
||||
if (!first_error)
|
||||
first_error= error;
|
||||
if (ignore_errors)
|
||||
@ -3655,7 +3659,8 @@ static void dump_table(char *table, char *db)
|
||||
field->type == MYSQL_TYPE_BLOB ||
|
||||
field->type == MYSQL_TYPE_LONG_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 (i == 0)
|
||||
@ -5700,10 +5705,6 @@ int main(int argc, char **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 */
|
||||
if (opt_slave_apply && add_slave_statements())
|
||||
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))
|
||||
goto err;
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
my_free(shared_memory_base_name);
|
||||
#endif
|
||||
/*
|
||||
No reason to explicitely COMMIT the transaction, neither to explicitely
|
||||
UNLOCK TABLES: these will be automatically be done by the server when we
|
||||
@ -5729,6 +5727,14 @@ int main(int argc, char **argv)
|
||||
server.
|
||||
*/
|
||||
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);
|
||||
if (!path)
|
||||
write_footer(md_result_file);
|
||||
|
@ -528,6 +528,7 @@ struct st_command
|
||||
{
|
||||
char *query, *query_buf,*first_argument,*last_argument,*end;
|
||||
DYNAMIC_STRING content;
|
||||
DYNAMIC_STRING eval_query;
|
||||
int first_word_len, query_len;
|
||||
my_bool abort_on_error, used_replace;
|
||||
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**);
|
||||
my_free((*q)->query_buf);
|
||||
if ((*q)->eval_query.str)
|
||||
dynstr_free(&(*q)->eval_query);
|
||||
if ((*q)->content.str)
|
||||
dynstr_free(&(*q)->content);
|
||||
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_sorted;
|
||||
DYNAMIC_STRING ds_warnings;
|
||||
DYNAMIC_STRING eval_query;
|
||||
char *query;
|
||||
int query_len;
|
||||
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 ||
|
||||
command->type == Q_EVALP)
|
||||
{
|
||||
init_dynamic_string(&eval_query, "", command->query_len+256, 1024);
|
||||
do_eval(&eval_query, command->query, command->end, FALSE);
|
||||
query = eval_query.str;
|
||||
query_len = eval_query.length;
|
||||
if (!command->eval_query.str)
|
||||
init_dynamic_string(&command->eval_query, "", command->query_len + 256,
|
||||
1024);
|
||||
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
|
||||
{
|
||||
@ -8536,8 +8542,6 @@ void run_query(struct st_connection *cn, struct st_command *command, int flags)
|
||||
|
||||
dynstr_free(&ds_warnings);
|
||||
ds_warn= 0;
|
||||
if (command->type == Q_EVAL || command->type == Q_SEND_EVAL)
|
||||
dynstr_free(&eval_query);
|
||||
|
||||
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_COMPAT_GROUP "compat")
|
||||
SET(CPACK_COMPONENTS_ALL Server ManPagesServer IniFiles Server_Scripts
|
||||
SupportFiles Development ManPagesDevelopment
|
||||
ManPagesTest Readme ManPagesClient Test
|
||||
Common Client SharedLibraries)
|
||||
SupportFiles Development ManPagesDevelopment
|
||||
ManPagesTest Readme ManPagesClient Test
|
||||
Common Client SharedLibraries)
|
||||
|
||||
SET(CPACK_RPM_PACKAGE_NAME "MariaDB")
|
||||
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_RELOCATABLE FALSE)
|
||||
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_test_USER_FILELIST ${ignored})
|
||||
|
||||
SET(CPACK_RPM_client_PACKAGE_OBSOLETES "mysql-client MySQL-client MySQL-OurDelta-client")
|
||||
SET(CPACK_RPM_client_PACKAGE_PROVIDES "MySQL-client mysql-client")
|
||||
# "set/append array" - append a set of strings, separated by a space
|
||||
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.
|
||||
# If a package group does not specify OBSOLETES/REQUIRES the values of the
|
||||
# previous (alphabetically) group will apply.
|
||||
SET(CPACK_RPM_common_PACKAGE_OBSOLETES "MySQL-common")
|
||||
SET(CPACK_RPM_common_PACKAGE_PROVIDES "MariaDB-common")
|
||||
SETA(CPACK_RPM_client_PACKAGE_OBSOLETES
|
||||
"mysql-client"
|
||||
"MySQL-client"
|
||||
"MySQL-OurDelta-client")
|
||||
SETA(CPACK_RPM_client_PACKAGE_PROVIDES
|
||||
"MySQL-client"
|
||||
"mysql-client")
|
||||
|
||||
SET(CPACK_RPM_devel_PACKAGE_OBSOLETES "mysql-devel MySQL-devel MySQL-OurDelta-devel")
|
||||
SET(CPACK_RPM_devel_PACKAGE_PROVIDES "MySQL-devel mysql-devel")
|
||||
SETA(CPACK_RPM_devel_PACKAGE_OBSOLETES
|
||||
"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_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_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_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)
|
||||
SET(ver "%{version}-%{release}")
|
||||
IF (${epoch})
|
||||
SET(ver "${epoch}:${ver}")
|
||||
ENDIF()
|
||||
|
||||
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} "${${o}} ${alt}")
|
||||
SET(${o} "${${o}} ${alt} ${alt}%{_isa}")
|
||||
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")
|
||||
ALTERNATIVE_NAME("shared" "mysql")
|
||||
ELSEIF(RPM MATCHES "(rhel|centos)6")
|
||||
ALTERNATIVE_NAME("client" "mysql")
|
||||
ALTERNATIVE_NAME("shared" "mysql-libs")
|
||||
ELSEIF(RPM MATCHES "fedora")
|
||||
SET(epoch 1) # this is fedora
|
||||
ALTERNATIVE_NAME("client" "mariadb")
|
||||
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("test" "mariadb-test")
|
||||
SET(CPACK_RPM_common_PACKAGE_CONFLICTS "mariadb-libs < 1:%{version}-%{release}")
|
||||
ENDIF()
|
||||
|
||||
# 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,
|
||||
# extract compat libraries from MariaDB-shared-5.3 rpm
|
||||
@ -170,7 +243,6 @@ IF (compat_rpm)
|
||||
ENDIF()
|
||||
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_OBSOLETES "mysql-libs < 5.3.5")
|
||||
|
||||
|
@ -397,6 +397,7 @@ FUNCTION(INSTALL_MYSQL_TEST from to)
|
||||
PATTERN "*.vcxproj.filters" EXCLUDE
|
||||
PATTERN "*.vcxproj.user" EXCLUDE
|
||||
PATTERN "CTest" EXCLUDE
|
||||
PATTERN "*~" EXCLUDE
|
||||
)
|
||||
ENDIF()
|
||||
ENDFUNCTION()
|
||||
|
@ -1,5 +1,4 @@
|
||||
# Copyright (c) 2009 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# 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
|
||||
|
@ -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
|
||||
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 PLUGINDIR "@PLUGINDIR@"
|
||||
#cmakedefine DEFAULT_SYSCONFDIR "@DEFAULT_SYSCONFDIR@"
|
||||
#cmakedefine DEFAULT_TMPDIR "@DEFAULT_TMPDIR@"
|
||||
#cmakedefine DEFAULT_TMPDIR @DEFAULT_TMPDIR@
|
||||
|
||||
#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
|
||||
# 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
# 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
|
||||
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
|
||||
#endif /* EMBEDDED_LIBRARY */
|
||||
|
||||
/*
|
||||
Define default tmpdir if not already set.
|
||||
*/
|
||||
#if !defined(DEFAULT_TMPDIR)
|
||||
#define DEFAULT_TMPDIR P_tmpdir
|
||||
#endif
|
||||
|
||||
#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
|
||||
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,
|
||||
2010-2011 Oracle and/or its affiliates, 2009-2010 Monty Program Ab.
|
||||
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2013, Monty Program Ab.
|
||||
|
||||
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
|
||||
@ -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_wait(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_broadcast(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
|
||||
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
|
||||
#define IF_VALGRIND(A,B) A
|
||||
#else
|
||||
@ -37,7 +33,7 @@
|
||||
#endif /* HAVE_VALGRIND */
|
||||
|
||||
#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
|
||||
#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
|
||||
|
@ -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.
|
||||
|
||||
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) 2009, 2011, Monty Program Ab
|
||||
/* Copyright (c) 2005, 2013, Oracle and/or its affiliates
|
||||
Copyright (C) 2009, 2013, Monty Program Ab
|
||||
|
||||
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
|
||||
|
@ -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
|
||||
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
|
||||
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
|
||||
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) \
|
||||
inline_mysql_cond_timedwait(C, M, W, __FILE__, __LINE__)
|
||||
#else
|
||||
@ -1170,8 +1170,8 @@ static inline int inline_mysql_cond_wait(
|
||||
static inline int inline_mysql_cond_timedwait(
|
||||
mysql_cond_t *that,
|
||||
mysql_mutex_t *mutex,
|
||||
struct timespec *abstime
|
||||
#ifdef HAVE_PSI_COND_INTERFACE
|
||||
const struct timespec *abstime
|
||||
#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX)
|
||||
, const char *src_file, uint src_line
|
||||
#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
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@ -17,7 +17,7 @@
|
||||
#ifndef _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
|
||||
|
@ -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
|
||||
# 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
|
||||
get_tty_password
|
||||
handle_options
|
||||
load_defaults
|
||||
mysql_thread_end
|
||||
mysql_thread_init
|
||||
myodbc_remove_escape
|
||||
@ -131,6 +130,12 @@ mysql_server_init
|
||||
mysql_server_end
|
||||
mysql_set_character_set
|
||||
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
|
||||
@ -153,6 +158,8 @@ mysql_close_cont
|
||||
mysql_close_start
|
||||
mysql_commit_cont
|
||||
mysql_commit_start
|
||||
mysql_dump_debug_info_cont
|
||||
mysql_dump_debug_info_start
|
||||
mysql_fetch_row_cont
|
||||
mysql_fetch_row_start
|
||||
mysql_free_result_cont
|
||||
@ -259,73 +266,76 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
# for compatibility with distribution packages, so client shared library can
|
||||
# painlessly replace the one supplied by the distribution.
|
||||
|
||||
# Also list of exported symbols in distributions may differ from what is considered
|
||||
# official API. Define CLIENT_API_EXTRA for the set of symbols, that required to
|
||||
# be exported on different platforms.
|
||||
# Also list of exported symbols in distributions may differ from what is
|
||||
# considered official API. Define CLIENT_API_5_1_EXTRA for the set of
|
||||
# symbols, that required to be exported on different platforms.
|
||||
|
||||
IF(RPM)
|
||||
# Fedora & Co declared following functions as part of API
|
||||
SET(CLIENT_API_EXTRA
|
||||
mysql_default_charset_info
|
||||
mysql_get_charset
|
||||
mysql_get_charset_by_csname
|
||||
mysql_net_realloc
|
||||
mysql_client_errors
|
||||
# Fedora & Co declared following functions as part of API
|
||||
SET(CLIENT_API_5_1_EXTRA
|
||||
# why does Fedora export these?
|
||||
_fini
|
||||
_init
|
||||
my_init
|
||||
|
||||
# Also export the non-renamed variants
|
||||
# (in case someone wants to rebuild mysqli-php or something similar)
|
||||
# See MDEV-4127
|
||||
default_charset_info
|
||||
get_charset
|
||||
get_charset_by_csname
|
||||
net_realloc
|
||||
client_errors
|
||||
THR_KEY_mysys
|
||||
)
|
||||
|
||||
# Add special script to fix symbols renames by Fedora
|
||||
SET(CLIENT_SOURCES_EXTRA rpm_support.cc)
|
||||
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()
|
||||
# mysql-connector-odbc requires these
|
||||
mysql_default_charset_info
|
||||
mysql_get_charset
|
||||
mysql_get_charset_by_csname
|
||||
mysql_net_realloc
|
||||
|
||||
IF(VERSION_SCRIPT_TEMPLATE)
|
||||
# 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)
|
||||
FOREACH (f ${CLIENT_API_FUNCTIONS_5_1})
|
||||
SET(CLIENT_API_5_1_LIST "${CLIENT_API_5_1_LIST}\n${f};")
|
||||
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}\n${f};")
|
||||
ENDFOREACH()
|
||||
# PHP's mysqli.so requires this (via the ER() macro)
|
||||
mysql_client_errors
|
||||
|
||||
# Also export the non-renamed variants
|
||||
# (in case someone wants to rebuild mysqli-php or something similar)
|
||||
# See MDEV-4127
|
||||
default_charset_info
|
||||
get_charset
|
||||
get_charset_by_csname
|
||||
net_realloc
|
||||
client_errors
|
||||
|
||||
# pure-ftpd requires this
|
||||
my_make_scrambled_password
|
||||
|
||||
# hydra requires this
|
||||
scramble
|
||||
|
||||
# ODB requires this: https://bugzilla.redhat.com/show_bug.cgi?id=846602
|
||||
THR_KEY_mysys
|
||||
|
||||
# DBD::mysql requires this
|
||||
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")
|
||||
|
||||
CONFIGURE_FILE(
|
||||
${VERSION_SCRIPT_TEMPLATE}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/libmysql.version
|
||||
@ONLY@
|
||||
)
|
||||
SET(VERSION_SCRIPT_LINK_FLAGS
|
||||
"-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/libmysql.version")
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
|
||||
|
||||
@ -375,7 +385,7 @@ IF(UNIX)
|
||||
ENDIF()
|
||||
|
||||
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)
|
||||
# libtool compatability
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
|
||||
@ -392,9 +402,6 @@ IF(NOT DISABLE_SHARED)
|
||||
SOVERSION "${SHARED_LIB_MAJOR_VERSION}")
|
||||
IF(LINK_FLAG_NO_UNDEFINED OR VERSION_SCRIPT_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
|
||||
"${libmysql_link_flags} ${LINK_FLAG_NO_UNDEFINED} ${VERSION_SCRIPT_LINK_FLAGS}")
|
||||
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
|
||||
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) 2009, 2012, Monty Program Ab
|
||||
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates
|
||||
Copyright (c) 2009, 2013, Monty Program Ab
|
||||
|
||||
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
|
||||
|
@ -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");
|
||||
#endif
|
||||
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();
|
||||
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
|
||||
# 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-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
|
||||
|
||||
# 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);
|
||||
SELECT HEX(a), HEX(CONVERT(a USING utf8mb4)) FROM t1 ORDER BY a;
|
||||
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
|
||||
# (this is because it is used as a filter, not for retrieval)
|
||||
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
|
||||
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.
|
||||
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
|
||||
-- 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'
|
||||
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
|
||||
-- restored after test
|
||||
checksum table
|
||||
@ -85,7 +96,5 @@ BEGIN
|
||||
select * from information_schema.session_variables
|
||||
where variable_name = 'debug_sync';
|
||||
|
||||
show status like 'slave_open_temp_tables';
|
||||
|
||||
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
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,5 @@
|
||||
# -*- cperl -*-
|
||||
# Copyright (c) 2013 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
# Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# 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
|
||||
|
@ -174,6 +174,7 @@ my @DEFAULT_SUITES= qw(
|
||||
heap-
|
||||
innodb-
|
||||
innodb_fts-
|
||||
innodb_zip-
|
||||
maria-
|
||||
multi_source-
|
||||
optimizer_unfixed_bugs-
|
||||
|
@ -35,6 +35,12 @@ select 1 /*M!50000 +1 */;
|
||||
select 1 /*M!50300 +1 */;
|
||||
1 +1
|
||||
2
|
||||
select 2 /*M!99999 +1 */;
|
||||
2 +1
|
||||
3
|
||||
select 2 /*M!100000 +1 */;
|
||||
2 +1
|
||||
3
|
||||
select 2 /*M!999999 +1 */;
|
||||
2
|
||||
2
|
||||
|
@ -671,6 +671,21 @@ FF9D EFBE9D
|
||||
D800DF84 F0908E84
|
||||
DBC0DC00 F4808080
|
||||
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;
|
||||
@@collation_connection
|
||||
utf16_bin
|
||||
|
@ -714,6 +714,21 @@ HEX(a) HEX(CONVERT(a USING utf8mb4))
|
||||
00D884DF F0908E84
|
||||
C0DB00DC F4808080
|
||||
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;
|
||||
@@collation_connection
|
||||
utf16le_bin
|
||||
|
@ -670,6 +670,21 @@ HEX(a) HEX(CONVERT(a USING utf8mb4))
|
||||
00010384 F0908E84
|
||||
00100000 F4808080
|
||||
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;
|
||||
@@collation_connection
|
||||
utf32_bin
|
||||
|
@ -1149,6 +1149,21 @@ EFBE9D EFBE9D
|
||||
F0908E84 F0908E84
|
||||
F4808080 F4808080
|
||||
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;
|
||||
@@collation_connection
|
||||
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
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
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 TABLE t1;
|
||||
CREATE TABLE IF NOT EXISTS `galleries` (
|
||||
|
@ -999,4 +999,44 @@ c
|
||||
11112222
|
||||
33334444
|
||||
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
|
||||
|
@ -94,7 +94,7 @@ INSERT INTO t1 VALUES (1),(2);
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
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);
|
||||
ERROR HY000: Unknown error
|
||||
ERROR 70100: Query execution was interrupted
|
||||
SET SESSION debug_dbug = DEFAULT;
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
|
@ -135,3 +135,4 @@ SELECT * FROM t2;
|
||||
a
|
||||
ROLLBACK WORK TO SAVEPOINT A;
|
||||
DROP TABLE t1, t2;
|
||||
DROP EVENT e1;
|
||||
|
@ -102,7 +102,6 @@ a
|
||||
foo
|
||||
Warnings:
|
||||
Warning 1259 ZLIB: Input data corrupted
|
||||
Warning 1259 ZLIB: Input data corrupted
|
||||
explain select *, uncompress(a) from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
|
@ -1458,6 +1458,8 @@ DROP TABLE derived1;
|
||||
DROP TABLE D;
|
||||
CREATE TABLE t1 (a INT, b INT);
|
||||
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';
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
@ -1473,12 +1475,19 @@ COUNT(*)
|
||||
SELECT COUNT(*), (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a)
|
||||
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
|
||||
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
|
||||
ON a.a= (SELECT count(*) FROM t1 inr WHERE inr.a = outr.a);
|
||||
COUNT(*)
|
||||
0
|
||||
SELECT * FROM (SELECT a FROM t1 GROUP BY a) sq JOIN t2 ON a = b;
|
||||
a b
|
||||
SET SQL_MODE=default;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t1,t2;
|
||||
End of 5.0 tests
|
||||
#
|
||||
# BUG#47280 - strange results from count(*) with order by multiple
|
||||
|
@ -264,6 +264,13 @@ INET_NTOA(0)
|
||||
SELECT '1' IN ('1', INET_NTOA(0));
|
||||
'1' IN ('1', INET_NTOA(0))
|
||||
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
|
||||
#
|
||||
@ -561,6 +568,3 @@ ERROR 42000: Identifier name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
#
|
||||
# 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
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||
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 ');
|
||||
xxx
|
||||
this is a test of some long text to see what happens
|
||||
|
@ -1153,7 +1153,6 @@ str num
|
||||
notnumber 0
|
||||
Warnings:
|
||||
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);
|
||||
str num
|
||||
notnumber 0
|
||||
|
@ -452,3 +452,6 @@ ST_NUMPOINTS(ST_EXTERIORRING(ST_BUFFER( POLYGONFROMTEXT( 'POLYGON( ( 0.0 -3.0,
|
||||
0.0 -3.0
|
||||
))' ),
|
||||
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
|
||||
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
|
||||
#
|
||||
create table t1 (pt point);
|
||||
|
@ -463,29 +463,29 @@ EXPLAIN
|
||||
SELECT * FROM City
|
||||
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
|
||||
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
|
||||
SELECT * FROM City
|
||||
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
|
||||
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
|
||||
SELECT * FROM City
|
||||
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
|
||||
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
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 3701 AND 4000 AND Population > 1000000
|
||||
AND Country BETWEEN 'S' AND 'Z';
|
||||
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
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||
AND Country BETWEEN 'S' AND 'Z' ;
|
||||
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 ()
|
||||
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
||||
ID Name Country Population
|
||||
@ -739,13 +739,13 @@ EXPLAIN
|
||||
SELECT * FROM City
|
||||
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
|
||||
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
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||
AND Country BETWEEN 'S' AND 'Z';
|
||||
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
|
||||
Name LIKE 'C%' AND Population > 1000000;
|
||||
ID Name Country Population
|
||||
@ -1033,7 +1033,7 @@ EXPLAIN
|
||||
SELECT * FROM t1
|
||||
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
|
||||
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
|
||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||
f1 f4 f5
|
||||
|
@ -580,9 +580,12 @@ pk1 pk2
|
||||
explain select * from t1 where badkey=1 and key1=10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
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;
|
||||
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
|
||||
set optimizer_switch=@tmp_index_merge_ror_cpk;
|
||||
explain select * from t1 where pktail1ok=1 and key1=10;
|
||||
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
|
||||
|
@ -1415,9 +1415,12 @@ pk1 pk2
|
||||
explain select * from t1 where badkey=1 and key1=10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
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;
|
||||
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
|
||||
set optimizer_switch=@tmp_index_merge_ror_cpk;
|
||||
explain select * from t1 where pktail1ok=1 and key1=10;
|
||||
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
|
||||
|
@ -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 t2 system NULL NULL NULL NULL 1 100.00
|
||||
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
|
||||
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
||||
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 t2 system NULL NULL NULL NULL 1 100.00
|
||||
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
|
||||
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
||||
f1 f2 f3 f1 f2
|
||||
|
@ -1183,7 +1183,7 @@ old-style-user-limits FALSE
|
||||
optimizer-prune-level 1
|
||||
optimizer-search-depth 62
|
||||
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
|
||||
performance-schema TRUE
|
||||
performance-schema-accounts-size 10
|
||||
@ -1234,7 +1234,7 @@ port 3306
|
||||
port-open-timeout 0
|
||||
preload-buffer-size 32768
|
||||
profiling-history-size 15
|
||||
progress-report-time 56
|
||||
progress-report-time 5
|
||||
protocol-version 10
|
||||
query-alloc-block-size 8192
|
||||
query-cache-limit 1048576
|
||||
|
@ -5265,6 +5265,20 @@ slow_log CREATE TABLE `slow_log` (
|
||||
SET @@global.log_output= @old_log_output_state;
|
||||
SET @@global.slow_query_log= @old_slow_query_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
|
||||
#
|
||||
|
@ -2534,6 +2534,73 @@ i
|
||||
3
|
||||
4
|
||||
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)
|
||||
PARTITION BY RANGE( YEAR(d) ) (
|
||||
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
|
||||
6 6
|
||||
4 5
|
||||
2 4
|
||||
30 4
|
||||
2 4
|
||||
3 3
|
||||
35 2
|
||||
7 1
|
||||
|
@ -4041,3 +4041,14 @@ DEALLOCATE PREPARE stmt;
|
||||
DROP VIEW v2;
|
||||
DROP TABLE t1, t2;
|
||||
# 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%';
|
||||
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
|
||||
set @tmp_range_vs_index_merge=@@optimizer_switch;
|
||||
set optimizer_switch='extended_keys=off';
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||
@ -985,6 +987,7 @@ ID Name Country Population
|
||||
3798 Phoenix USA 1321045
|
||||
DROP INDEX Population ON City;
|
||||
DROP INDEX Name ON City;
|
||||
set optimizer_switch=@tmp_range_vs_index_merge;
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
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
|
||||
ID BETWEEN 3800 AND 3810;
|
||||
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
|
||||
SELECT * FROM City
|
||||
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
|
||||
(Name LIKE 'Pa%' OR (Population > 103000 AND Population < 104000)));
|
||||
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
|
||||
SELECT * FROM City
|
||||
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%';
|
||||
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
|
||||
set @tmp_range_vs_index_merge=@@optimizer_switch;
|
||||
set optimizer_switch='extended_keys=off';
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||
@ -986,6 +988,7 @@ ID Name Country Population
|
||||
3798 Phoenix USA 1321045
|
||||
DROP INDEX Population ON City;
|
||||
DROP INDEX Name ON City;
|
||||
set optimizer_switch=@tmp_range_vs_index_merge;
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Country='USA' AND Population BETWEEN 101000 AND 102000 OR
|
||||
|
@ -11,4 +11,11 @@ START 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;
|
||||
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
|
||||
|
@ -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
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
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;
|
||||
SELECT * FROM mysql.time_zone
|
||||
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 t2 ref idx idx 5 const 1 100.00 Using index
|
||||
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 )
|
||||
WHERE 1 IS NULL OR b < 33 AND 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 t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
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);
|
||||
SELECT * FROM t1, t2
|
||||
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
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
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;
|
||||
SELECT * FROM mysql.time_zone
|
||||
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 t2 ref idx idx 5 const 1 100.00 Using index
|
||||
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 )
|
||||
WHERE 1 IS NULL OR b < 33 AND 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 t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
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);
|
||||
SELECT * FROM t1, t2
|
||||
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
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
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;
|
||||
SELECT * FROM mysql.time_zone
|
||||
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 t2 ref idx idx 5 const 1 100.00 Using index
|
||||
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 )
|
||||
WHERE 1 IS NULL OR b < 33 AND 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 t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
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);
|
||||
SELECT * FROM t1, t2
|
||||
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
|
||||
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
|
||||
# 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
|
||||
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
|
||||
# when optimizer_use_condition_selectivity=3
|
||||
#
|
||||
|
@ -3,10 +3,10 @@ Variable_name Value
|
||||
Ssl_cipher DHE-RSA-AES256-SHA
|
||||
SHOW STATUS LIKE 'Ssl_server_not_before';
|
||||
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';
|
||||
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;
|
||||
CREATE TABLE t1 (
|
||||
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
|
||||
|
@ -148,7 +148,7 @@ use dbt3_s001;
|
||||
set use_stat_tables='preferably';
|
||||
analyze table lineitem persistent for columns() indexes (i_l_receiptdate);
|
||||
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
|
||||
dbt3_s001 lineitem PRIMARY 1 4.0033
|
||||
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='statistics_read_start SIGNAL go1 WAIT_FOR go2';
|
||||
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
|
||||
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';
|
||||
|
@ -151,7 +151,7 @@ use dbt3_s001;
|
||||
set use_stat_tables='preferably';
|
||||
analyze table lineitem persistent for columns() indexes (i_l_receiptdate);
|
||||
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
|
||||
dbt3_s001 lineitem PRIMARY 1 4.0033
|
||||
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_partkey 1 30.0250
|
||||
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 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_partkey 1 30.0250
|
||||
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_partkey 1 30.0250
|
||||
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 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_partkey 1 30.0250
|
||||
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 2 1.0000
|
||||
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 2 1.0000
|
||||
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 3 1.0000
|
||||
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 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 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 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 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 global use_stat_tables='preferably';
|
||||
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='statistics_read_start SIGNAL go1 WAIT_FOR go2';
|
||||
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
|
||||
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 global use_stat_tables=@save_global_use_stat_tables;
|
||||
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
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
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;
|
||||
CREATE TABLE t1 (a int(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
|
||||
sq4_alias1.col_varchar_key = @var3;
|
||||
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.*
|
||||
FROM t1 AS sq4_alias1
|
||||
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
|
||||
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
|
||||
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;
|
||||
pk a b
|
||||
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
|
||||
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
|
||||
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;
|
||||
pk a b
|
||||
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
|
||||
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
|
||||
#
|
||||
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
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
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;
|
||||
CREATE TABLE t1 (a int(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
|
||||
sq4_alias1.col_varchar_key = @var3;
|
||||
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.*
|
||||
FROM t1 AS sq4_alias1
|
||||
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
|
||||
Warnings:
|
||||
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
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
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
|
||||
Warnings:
|
||||
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
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
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
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
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;
|
||||
CREATE TABLE t1 (a int(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
|
||||
sq4_alias1.col_varchar_key = @var3;
|
||||
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.*
|
||||
FROM t1 AS sq4_alias1
|
||||
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
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
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;
|
||||
CREATE TABLE t1 (a int(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
|
||||
sq4_alias1.col_varchar_key = @var3;
|
||||
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.*
|
||||
FROM t1 AS sq4_alias1
|
||||
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
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
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;
|
||||
CREATE TABLE t1 (a int(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
|
||||
sq4_alias1.col_varchar_key = @var3;
|
||||
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.*
|
||||
FROM t1 AS sq4_alias1
|
||||
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
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
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;
|
||||
CREATE TABLE t1 (a int(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
|
||||
sq4_alias1.col_varchar_key = @var3;
|
||||
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.*
|
||||
FROM t1 AS sq4_alias1
|
||||
WHERE (sq4_alias1.col_varchar_key + NULL) IS NULL OR
|
||||
|
@ -2793,6 +2793,22 @@ mysql
|
||||
information_schema
|
||||
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
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
|
@ -1109,6 +1109,23 @@ t3 AS t3a INNER JOIN t3 AS t3b ON ( t3a.i3 = t3b.i3 )
|
||||
);
|
||||
i1
|
||||
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;
|
||||
#
|
||||
# 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
|
||||
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;
|
||||
#
|
||||
# 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
|
||||
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;
|
||||
#
|
||||
# MDEV-4782: Valgrind warnings (Conditional jump or move depends on uninitialised value) with InnoDB, semijoin
|
||||
|
@ -2807,6 +2807,22 @@ information_schema
|
||||
mysql
|
||||
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
|
||||
#
|
||||
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
|
||||
Warnings:
|
||||
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
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
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
|
||||
Warnings:
|
||||
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
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
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
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||
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 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');
|
||||
ExtractValue('<a><a>aa</a><b>bb</b></a>','(a)/a|(a)/b')
|
||||
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
|
||||
#
|
||||
|
@ -1,17 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICrTCCAhagAwIBAgIJAMI7xZKjhrDbMA0GCSqGSIb3DQEBBAUAMEQxCzAJBgNV
|
||||
MIIDsjCCApqgAwIBAgIJAL5YrUwfPSWVMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
|
||||
BAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxhMREwDwYD
|
||||
VQQKEwhNeVNRTCBBQjAeFw0xMDAxMjkxMTQ3MTBaFw0xNTAxMjgxMTQ3MTBaMEQx
|
||||
VQQKEwhNeVNRTCBBQjAeFw0xMDAxMjkwNTU5NTNaFw0xNTAxMjgwNTU5NTNaMEQx
|
||||
CzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxh
|
||||
MREwDwYDVQQKEwhNeVNRTCBBQjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
|
||||
wQYsOEfrN4ESP3FjsI8cghE+tZVuyK2gck61lwieVxjgFMtBd65mI5a1y9pmlOI1
|
||||
yM4SB2Ppqcuw7/e1CdV1y7lvHrGNt5yqEHbN4QX1gvsN8TQauP/2WILturk4R4Hq
|
||||
rKg0ZySu7f1Xhl0ed9a48LpaEHD17IcxWEGMMJwAxF0CAwEAAaOBpjCBozAMBgNV
|
||||
HRMEBTADAQH/MB0GA1UdDgQWBBSvktYQ0ahLnyxyVKqty+WpBbBrDTB0BgNVHSME
|
||||
bTBrgBSvktYQ0ahLnyxyVKqty+WpBbBrDaFIpEYwRDELMAkGA1UEBhMCU0UxEDAO
|
||||
BgNVBAgTB1VwcHNhbGExEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FM
|
||||
IEFCggkAwjvFkqOGsNswDQYJKoZIhvcNAQEEBQADgYEAdKN1PjwMHAKG2Ww1145g
|
||||
JQGBnKxSFOUaoSvkBi/4ntTM+ysnViWh7WvxyWjR9zU9arfr7aqsDeQxm0XDOqzj
|
||||
AQ/cQIla2/Li8tXyfc06bisH/IHRaSc2zWqioTKbEwMdVOdrvq4a8V8ic3xYyIWn
|
||||
7F4WeS07J8LKardSvM0+hOA=
|
||||
MREwDwYDVQQKEwhNeVNRTCBBQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
||||
ggEBAL6kNN4peX7uhK9rb06W/QbPEpVuejmdWdl2PqMshP/eSuXXw7kwVgfpxx9R
|
||||
vC000CKQQSG9MCoZjtqPnFRsetmWLZgApRpEalGXTXJqq9sEbCfoFizg94U8G7d2
|
||||
u5XJjLVmcG34ru36KoBgVx1zeH1puBAf8dOzrE4L7Y+ZQBFzFohjh8C2LqWC4nM5
|
||||
qsLmOkDWMipGqYU5DvkKjIbTbwTyRNRgZHWSPfVDDPUIUOsY4BGUp2DpgeGY9aEv
|
||||
lIs57Ev9JqlIUCV65lOhhDkG+xwmkHKHA+ECEU9cALI8+uXbh48MB9XpMOuk408X
|
||||
/lX89aZwD0/G9kmObVGnE2G+H5UCAwEAAaOBpjCBozAdBgNVHQ4EFgQUsft+d7VA
|
||||
jWgRftkR5cPG2k2sUbAwdAYDVR0jBG0wa4AUsft+d7VAjWgRftkR5cPG2k2sUbCh
|
||||
SKRGMEQxCzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdV
|
||||
cHBzYWxhMREwDwYDVQQKEwhNeVNRTCBBQoIJAL5YrUwfPSWVMAwGA1UdEwQFMAMB
|
||||
Af8wDQYJKoZIhvcNAQEFBQADggEBALRUOAmdL8R8sl1y8kiEiFgDatdXK5RDqWai
|
||||
8yZChfmwTIToHhmQsOEshJe2e8hky3huUj+33VyXjINoMbebIwMuXPwEkbJal8RZ
|
||||
nSJmF0jN1Qz7J/jFffwK9xmejWZJx49Kt2+Qwrwp6kDeq9TLFqQOoVczgyJPYsTL
|
||||
NAOib5WqTud3XWvCwxrhqmWu7JZq6sp1fomP/uunprb8y2miWfLESZN2mKAhm44Q
|
||||
Lws867LT8v2lskEjq2dT1LutD5+R66XcdjgSr0uDziDs64jZwCD6ea94hVFM7ej0
|
||||
ZOXYeSEZJ56FjUxu632e9fY8NyMh30yKjjmQf1mM9PuGJvdvsWU=
|
||||
-----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