mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge branch '5.5' into 5.5-galera
Merge banch 5.5 till revision :
fdd6c11
- MDEV-7419 Function cli_safe_read not exported
Conflicts:
.bzrignore
debian/dist/Debian/mariadb-galera-server-5.5.files.in
debian/dist/Ubuntu/mariadb-galera-server-5.5.files.in
storage/tokudb/CMakeLists.txt
support-files/build-tags
This commit is contained in:
1182
.bzrignore
1182
.bzrignore
File diff suppressed because it is too large
Load Diff
5
.gitattributes
vendored
Normal file
5
.gitattributes
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
*.c diff=cpp
|
||||
*.h diff=cpp
|
||||
*.cc diff=cpp
|
||||
*.ic diff=cpp
|
||||
*.cpp diff=cpp
|
232
.gitignore
vendored
Normal file
232
.gitignore
vendored
Normal file
@@ -0,0 +1,232 @@
|
||||
*-t
|
||||
*.a
|
||||
*.ctest
|
||||
*.o
|
||||
*.reject
|
||||
*.so
|
||||
*.so.*
|
||||
*.spec
|
||||
*~
|
||||
.*.swp
|
||||
*.ninja
|
||||
.ninja_*
|
||||
.gdb_history
|
||||
errmsg.sys
|
||||
typescript
|
||||
CMakeCache.txt
|
||||
CMakeFiles/
|
||||
CPackConfig.cmake
|
||||
CPackSourceConfig.cmake
|
||||
CTestTestfile.cmake
|
||||
Docs/INFO_BIN
|
||||
Docs/INFO_SRC
|
||||
Makefile
|
||||
TAGS
|
||||
Testing/
|
||||
VERSION.dep
|
||||
configure
|
||||
client/async_example
|
||||
client/mysql
|
||||
client/mysql_plugin
|
||||
client/mysql_upgrade
|
||||
client/mysqladmin
|
||||
client/mysqlbinlog
|
||||
client/mysqlcheck
|
||||
client/mysqldump
|
||||
client/mysqlimport
|
||||
client/mysqlshow
|
||||
client/mysqlslap
|
||||
client/mysqltest
|
||||
cmake_install.cmake
|
||||
dbug/*.r
|
||||
dbug/factorial
|
||||
dbug/tests
|
||||
dbug/user.ps
|
||||
dbug/user.t
|
||||
extra/comp_err
|
||||
extra/innochecksum
|
||||
extra/jemalloc/build/
|
||||
extra/jemalloc/tmp/
|
||||
extra/my_print_defaults
|
||||
extra/mysql_waitpid
|
||||
extra/perror
|
||||
extra/replace
|
||||
extra/resolve_stack_dump
|
||||
extra/resolveip
|
||||
import_executables.cmake
|
||||
include/*.h.tmp
|
||||
include/config.h
|
||||
include/my_config.h
|
||||
include/mysql_version.h
|
||||
include/mysqld_ername.h
|
||||
include/mysqld_error.h
|
||||
include/sql_state.h
|
||||
info_macros.cmake
|
||||
libmysql*/libmysql*_exports_file.cc
|
||||
libmysql*/merge_archives_mysql*.cmake
|
||||
libmysql*/mysql*_depends.c
|
||||
libmysql/libmysql_versions.ld
|
||||
libmysqld/examples/mysql_client_test_embedded
|
||||
libmysqld/examples/mysql_embedded
|
||||
libmysqld/examples/mysqltest_embedded
|
||||
make_dist.cmake
|
||||
mariadb-*.*.*.tar.gz
|
||||
mariadb-*.*.*/
|
||||
mysql-test/lib/My/SafeProcess/my_safe_process
|
||||
mysql-test/mtr
|
||||
mysql-test/mysql-test-run
|
||||
mysql-test/var
|
||||
mysys/thr_lock
|
||||
mysys/thr_timer
|
||||
packaging/rpm-oel/mysql.spec
|
||||
packaging/rpm-uln/mysql.10.0.11.spec
|
||||
packaging/solaris/postinstall-solaris
|
||||
pcre/config.h
|
||||
pcre/pcre*test.sh
|
||||
pcre/pcre.h
|
||||
pcre/pcre_chartables.c
|
||||
pcre/pcregrep
|
||||
pcre/pcretest
|
||||
pcre/test*grep
|
||||
scripts/comp_sql
|
||||
scripts/make_binary_distribution
|
||||
scripts/msql2mysql
|
||||
scripts/mysql_config
|
||||
scripts/mysql_config.pl
|
||||
scripts/mysql_convert_table_format
|
||||
scripts/mysql_find_rows
|
||||
scripts/mysql_fix_extensions
|
||||
scripts/mysql_fix_privilege_tables.sql
|
||||
scripts/mysql_fix_privilege_tables_sql.c
|
||||
scripts/mysql_install_db
|
||||
scripts/mysql_secure_installation
|
||||
scripts/mysql_setpermission
|
||||
scripts/mysql_zap
|
||||
scripts/mysqlaccess
|
||||
scripts/mysqlbug
|
||||
scripts/mysqld_multi
|
||||
scripts/mysqld_safe
|
||||
scripts/mysqldumpslow
|
||||
scripts/mysqlhotcopy
|
||||
scripts/mytop
|
||||
scripts/wsrep_sst_common
|
||||
scripts/wsrep_sst_mysqldump
|
||||
scripts/wsrep_sst_rsync
|
||||
scripts/wsrep_sst_xtrabackup
|
||||
scripts/wsrep_sst_xtrabackup-v2
|
||||
sql-bench/bench-count-distinct
|
||||
sql-bench/bench-init.pl
|
||||
sql-bench/compare-results
|
||||
sql-bench/copy-db
|
||||
sql-bench/crash-me
|
||||
sql-bench/graph-compare-results
|
||||
sql-bench/innotest1
|
||||
sql-bench/innotest1a
|
||||
sql-bench/innotest1b
|
||||
sql-bench/innotest2
|
||||
sql-bench/innotest2a
|
||||
sql-bench/innotest2b
|
||||
sql-bench/run-all-tests
|
||||
sql-bench/server-cfg
|
||||
sql-bench/test-ATIS
|
||||
sql-bench/test-alter-table
|
||||
sql-bench/test-big-tables
|
||||
sql-bench/test-connect
|
||||
sql-bench/test-create
|
||||
sql-bench/test-insert
|
||||
sql-bench/test-select
|
||||
sql-bench/test-table-elimination
|
||||
sql-bench/test-transactions
|
||||
sql-bench/test-wisconsin
|
||||
sql/gen_lex_hash
|
||||
sql/lex_hash.h
|
||||
sql/mysql_tzinfo_to_sql
|
||||
sql/mysqld
|
||||
sql/sql_builtin.cc
|
||||
sql/sql_yacc.cc
|
||||
sql/sql_yacc.h
|
||||
storage/heap/hp_test1
|
||||
storage/heap/hp_test2
|
||||
storage/maria/aria_chk
|
||||
storage/maria/aria_dump_log
|
||||
storage/maria/aria_ftdump
|
||||
storage/maria/aria_pack
|
||||
storage/maria/aria_read_log
|
||||
storage/maria/ma_rt_test
|
||||
storage/maria/ma_sp_test
|
||||
storage/maria/ma_test1
|
||||
storage/maria/ma_test2
|
||||
storage/maria/ma_test3
|
||||
storage/myisam/mi_test1
|
||||
storage/myisam/mi_test2
|
||||
storage/myisam/mi_test3
|
||||
storage/myisam/myisam_ftdump
|
||||
storage/myisam/myisamchk
|
||||
storage/myisam/myisamlog
|
||||
storage/myisam/myisampack
|
||||
storage/myisam/rt_test
|
||||
storage/myisam/sp_test
|
||||
storage/perfschema/gen_pfs_lex_token
|
||||
storage/perfschema/pfs_lex_token.h
|
||||
storage/tokudb/ft-index/buildheader/db.h
|
||||
storage/tokudb/ft-index/buildheader/make_tdb
|
||||
storage/tokudb/ft-index/buildheader/runcat.sh
|
||||
storage/tokudb/ft-index/ft/log_code.cc
|
||||
storage/tokudb/ft-index/ft/log_header.h
|
||||
storage/tokudb/ft-index/ft/log_print.cc
|
||||
storage/tokudb/ft-index/ft/logformat
|
||||
storage/tokudb/ft-index/ft/ftverify
|
||||
storage/tokudb/ft-index/ft/tdb-recover
|
||||
storage/tokudb/ft-index/ft/tdb_logprint
|
||||
storage/tokudb/ft-index/ft/tokuftdump
|
||||
storage/tokudb/ft-index/portability/merge_archives_tokuportability_static.cmake
|
||||
storage/tokudb/ft-index/portability/toku_config.h
|
||||
storage/tokudb/ft-index/portability/tokuportability_static_depends.cc
|
||||
storage/tokudb/ft-index/src/merge_archives_tokufractaltree_static.cmake
|
||||
storage/tokudb/ft-index/src/tokufractaltree_static_depends.cc
|
||||
storage/tokudb/ft-index/toku_include/toku_config.h
|
||||
storage/tokudb/ft-index/tools/ba_replay
|
||||
storage/tokudb/ft-index/tools/ftverify
|
||||
storage/tokudb/ft-index/tools/tdb-recover
|
||||
storage/tokudb/ft-index/tools/tdb_logprint
|
||||
storage/tokudb/ft-index/tools/tokudb_dump
|
||||
storage/tokudb/ft-index/tools/tokudb_gen
|
||||
storage/tokudb/ft-index/tools/tokudb_load
|
||||
storage/tokudb/ft-index/tools/tokuftdump
|
||||
storage/tokudb/ft-index/ft/ftverify
|
||||
storage/tokudb/ft-index/ft/tdb-recover
|
||||
storage/tokudb/ft-index/ft/tdb_logprint
|
||||
storage/tokudb/ft-index/ft/tokuftdump
|
||||
storage/tokudb/ft-index/xz/
|
||||
support-files/MySQL-shared-compat.spec
|
||||
support-files/binary-configure
|
||||
support-files/config.huge.ini
|
||||
support-files/config.medium.ini
|
||||
support-files/config.small.ini
|
||||
support-files/mariadb.pc
|
||||
support-files/my-huge.cnf
|
||||
support-files/my-innodb-heavy-4G.cnf
|
||||
support-files/my-large.cnf
|
||||
support-files/my-medium.cnf
|
||||
support-files/my-small.cnf
|
||||
support-files/mysql-log-rotate
|
||||
support-files/mysql.10.0.11.spec
|
||||
support-files/mysql.server
|
||||
support-files/mysql.spec
|
||||
support-files/mysqld_multi.server
|
||||
support-files/wsrep.cnf
|
||||
support-files/wsrep_notify
|
||||
tags
|
||||
tests/async_queries
|
||||
tests/bug25714
|
||||
tests/mysql_client_test
|
||||
storage/mroonga/config.sh
|
||||
storage/mroonga/mrn_version.h
|
||||
storage/mroonga/data/install.sql
|
||||
storage/mroonga/vendor/groonga/config.h
|
||||
storage/mroonga/vendor/groonga/config.sh
|
||||
storage/mroonga/vendor/groonga/groonga.pc
|
||||
storage/mroonga/vendor/groonga/src/grnslap
|
||||
storage/mroonga/vendor/groonga/src/groonga
|
||||
storage/mroonga/vendor/groonga/src/groonga-benchmark
|
||||
storage/mroonga/vendor/groonga/src/suggest/groonga-suggest-create-dataset
|
@@ -358,6 +358,11 @@ MYSQL_CHECK_READLINE()
|
||||
|
||||
CHECK_JEMALLOC()
|
||||
|
||||
IF(CMAKE_CROSSCOMPILING)
|
||||
SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build")
|
||||
INCLUDE(${IMPORT_EXECUTABLES})
|
||||
ENDIF()
|
||||
|
||||
#
|
||||
# Setup maintainer mode options by the end. Platform checks are
|
||||
# not run with the warning options as to not perturb fragile checks
|
||||
@@ -439,7 +444,8 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in
|
||||
${CMAKE_BINARY_DIR}/sql/sql_builtin.cc)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/cmake/info_macros.cmake.in ${CMAKE_BINARY_DIR}/info_macros.cmake @ONLY)
|
||||
${CMAKE_SOURCE_DIR}/cmake/info_macros.cmake.in
|
||||
${CMAKE_BINARY_DIR}/info_macros.cmake @ONLY)
|
||||
|
||||
IF(DEB)
|
||||
CONFIGURE_FILE(
|
||||
@@ -451,7 +457,7 @@ ENDIF(DEB)
|
||||
INCLUDE(${CMAKE_BINARY_DIR}/info_macros.cmake)
|
||||
# Source: This can be done during the cmake phase, all information is
|
||||
# available, but should be repeated on each "make" just in case someone
|
||||
# does "cmake ; make ; bzr pull ; make".
|
||||
# does "cmake ; make ; git pull ; make".
|
||||
CREATE_INFO_SRC(${CMAKE_BINARY_DIR}/Docs)
|
||||
ADD_CUSTOM_TARGET(INFO_SRC ALL
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/info_src.cmake
|
||||
|
2
VERSION
2
VERSION
@@ -1,4 +1,4 @@
|
||||
MYSQL_VERSION_MAJOR=5
|
||||
MYSQL_VERSION_MINOR=5
|
||||
MYSQL_VERSION_PATCH=41
|
||||
MYSQL_VERSION_PATCH=42
|
||||
MYSQL_VERSION_EXTRA=
|
||||
|
@@ -514,9 +514,6 @@ static uint fixed_name_length(const char *name)
|
||||
{
|
||||
if (*p == '`')
|
||||
extra_length++;
|
||||
else if (*p == '.')
|
||||
extra_length+= 2;
|
||||
|
||||
}
|
||||
DBUG_RETURN((uint) ((p - name) + extra_length));
|
||||
}
|
||||
@@ -530,11 +527,6 @@ static char *fix_table_name(char *dest, char *src)
|
||||
for (; *src; src++)
|
||||
{
|
||||
switch (*src) {
|
||||
case '.': /* add backticks around '.' */
|
||||
*dest++= '`';
|
||||
*dest++= '.';
|
||||
*dest++= '`';
|
||||
break;
|
||||
case '`': /* escape backtick character */
|
||||
*dest++= '`';
|
||||
/* fall through */
|
||||
@@ -824,13 +816,17 @@ static void print_result()
|
||||
{
|
||||
MYSQL_RES *res;
|
||||
MYSQL_ROW row;
|
||||
char prev[(NAME_LEN+9)*2+2];
|
||||
char prev[(NAME_LEN+9)*3+2];
|
||||
char prev_alter[MAX_ALTER_STR_SIZE];
|
||||
char *db_name;
|
||||
uint length_of_db;
|
||||
uint i;
|
||||
my_bool found_error=0, table_rebuild=0;
|
||||
DBUG_ENTER("print_result");
|
||||
|
||||
res = mysql_use_result(sock);
|
||||
db_name= sock->db;
|
||||
length_of_db= strlen(db_name);
|
||||
|
||||
prev[0] = '\0';
|
||||
prev_alter[0]= 0;
|
||||
@@ -854,10 +850,16 @@ static void print_result()
|
||||
if (prev_alter[0])
|
||||
insert_dynamic(&alter_table_cmds, (uchar*) prev_alter);
|
||||
else
|
||||
insert_dynamic(&tables4rebuild, (uchar*) prev);
|
||||
{
|
||||
char *table_name= prev + (length_of_db+1);
|
||||
insert_dynamic(&tables4rebuild, (uchar*) table_name);
|
||||
}
|
||||
}
|
||||
else
|
||||
insert_dynamic(&tables4repair, (uchar*) prev);
|
||||
{
|
||||
char *table_name= prev + (length_of_db+1);
|
||||
insert_dynamic(&tables4repair, (uchar*) table_name);
|
||||
}
|
||||
}
|
||||
found_error=0;
|
||||
table_rebuild=0;
|
||||
@@ -917,10 +919,16 @@ static void print_result()
|
||||
if (prev_alter[0])
|
||||
insert_dynamic(&alter_table_cmds, (uchar*) prev_alter);
|
||||
else
|
||||
insert_dynamic(&tables4rebuild, (uchar*) prev);
|
||||
{
|
||||
char *table_name= prev + (length_of_db+1);
|
||||
insert_dynamic(&tables4rebuild, (uchar*) table_name);
|
||||
}
|
||||
}
|
||||
else
|
||||
insert_dynamic(&tables4repair, (uchar*) prev);
|
||||
{
|
||||
char *table_name= prev + (length_of_db+1);
|
||||
insert_dynamic(&tables4repair, (uchar*) table_name);
|
||||
}
|
||||
}
|
||||
mysql_free_result(res);
|
||||
DBUG_VOID_RETURN;
|
||||
|
@@ -5883,7 +5883,7 @@ void do_connect(struct st_command *command)
|
||||
{
|
||||
int con_port= opt_port;
|
||||
char *con_options;
|
||||
char *ssl_cipher= 0;
|
||||
char *ssl_cipher __attribute__((unused))= 0;
|
||||
my_bool con_ssl= 0, con_compress= 0;
|
||||
my_bool con_pipe= 0;
|
||||
my_bool con_shm __attribute__ ((unused))= 0;
|
||||
|
@@ -189,6 +189,7 @@ ELSEIF(RPM MATCHES "fedora" OR RPM MATCHES "(rhel|centos)7")
|
||||
ALTERNATIVE_NAME("client" "mysql")
|
||||
ALTERNATIVE_NAME("devel" "mariadb-devel")
|
||||
ALTERNATIVE_NAME("server" "mariadb-server")
|
||||
ALTERNATIVE_NAME("server" "mysql-compat-server")
|
||||
ALTERNATIVE_NAME("shared" "mariadb-libs")
|
||||
ALTERNATIVE_NAME("shared" "mysql-libs")
|
||||
ALTERNATIVE_NAME("test" "mariadb-test")
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2009, 2014, 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
|
||||
@@ -14,9 +14,6 @@
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
SET(CPACK_SOURCE_IGNORE_FILES
|
||||
\\\\.bzr/
|
||||
\\\\.bzr-mysql
|
||||
\\\\.bzrignore
|
||||
CMakeCache\\\\.txt
|
||||
cmake_dist\\\\.cmake
|
||||
CPackSourceConfig\\\\.cmake
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2014, 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
|
||||
@@ -23,11 +23,14 @@
|
||||
# If further variables are used in this file, add them to this list.
|
||||
|
||||
SET(VERSION "@VERSION@")
|
||||
SET(MAJOR_VERSION "@MAJOR_VERSION@")
|
||||
SET(MINOR_VERSION "@MINOR_VERSION@")
|
||||
SET(PATCH_VERSION "@PATCH_VERSION@")
|
||||
SET(CMAKE_SOURCE_DIR "@CMAKE_SOURCE_DIR@")
|
||||
SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@")
|
||||
SET(CMAKE_GENERATOR "@CMAKE_GENERATOR@")
|
||||
SET(CMAKE_SIZEOF_VOID_P "@CMAKE_SIZEOF_VOID_P@")
|
||||
SET(BZR_EXECUTABLE "@BZR_EXECUTABLE@")
|
||||
SET(GIT_EXECUTABLE "@GIT_EXECUTABLE@")
|
||||
SET(CMAKE_CROSSCOMPILING "@CMAKE_CROSSCOMPILING@")
|
||||
SET(CMAKE_HOST_SYSTEM "@CMAKE_HOST_SYSTEM@")
|
||||
SET(CMAKE_HOST_SYSTEM_PROCESSOR "@CMAKE_HOST_SYSTEM_PROCESSOR@")
|
||||
@@ -36,27 +39,51 @@ SET(CMAKE_SYSTEM_PROCESSOR "@CMAKE_SYSTEM_PROCESSOR@")
|
||||
|
||||
|
||||
# Create an "INFO_SRC" file with information about the source (only).
|
||||
# We use "bzr version-info", if possible, and the "VERSION" contents.
|
||||
# We use "git log", if possible, and the "VERSION" contents.
|
||||
#
|
||||
# Outside development (BZR tree), the "INFO_SRC" file will not be modified
|
||||
# Outside development (git tree), the "INFO_SRC" file will not be modified
|
||||
# provided it exists (from "make dist" or a source tarball creation).
|
||||
|
||||
MACRO(CREATE_INFO_SRC target_dir)
|
||||
SET(INFO_SRC "${target_dir}/INFO_SRC")
|
||||
|
||||
IF(EXISTS ${CMAKE_SOURCE_DIR}/.bzr)
|
||||
# Sources are in a BZR repository: Always update.
|
||||
SET(PERLSCRIPT
|
||||
"use warnings; use POSIX qw(strftime); "
|
||||
"print strftime \"%F %T %z\", localtime;")
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND perl -e "${PERLSCRIPT}"
|
||||
RESULT_VARIABLE result
|
||||
OUTPUT_VARIABLE bdate
|
||||
ERROR_VARIABLE error
|
||||
)
|
||||
IF(error)
|
||||
MESSAGE(STATUS "Could not determine build-date: <${error}>")
|
||||
ENDIF()
|
||||
|
||||
IF(GIT_EXECUTABLE AND EXISTS ${CMAKE_SOURCE_DIR}/.git)
|
||||
# Sources are in a GIT repository: Always update.
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND ${BZR_EXECUTABLE} version-info ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE VERSION_INFO
|
||||
RESULT_VARIABLE RESULT
|
||||
COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE bname
|
||||
)
|
||||
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND ${GIT_EXECUTABLE} log -1
|
||||
--pretty="commit: %H%ndate: %ci%nbuild-date: ${bdate} %nshort: %h%nbranch: ${bname}"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE VERSION_INFO
|
||||
)
|
||||
|
||||
## Output from git is quoted with "", remove them.
|
||||
STRING(REPLACE "\"" "" VERSION_INFO "${VERSION_INFO}")
|
||||
FILE(WRITE ${INFO_SRC} "${VERSION_INFO}\n")
|
||||
# to debug, add: FILE(APPEND ${INFO_SRC} "\nResult ${RESULT}\n")
|
||||
# For better readability ...
|
||||
FILE(APPEND ${INFO_SRC} "\nMySQL source ${VERSION}\n")
|
||||
FILE(APPEND ${INFO_SRC}
|
||||
"MySQL source ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}\n")
|
||||
ELSEIF(EXISTS ${INFO_SRC})
|
||||
# Outside a BZR tree, there is no need to change an existing "INFO_SRC",
|
||||
# Outside a git tree, there is no need to change an existing "INFO_SRC",
|
||||
# it cannot be improved.
|
||||
ELSEIF(EXISTS ${CMAKE_SOURCE_DIR}/Docs/INFO_SRC)
|
||||
# If we are building from a source distribution, it also contains "INFO_SRC".
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2014, 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
|
||||
@@ -16,11 +16,11 @@
|
||||
|
||||
# The sole purpose of this cmake control file is to create the "INFO_SRC" file.
|
||||
|
||||
# As long as and "bzr pull" (or "bzr commit") is followed by a "cmake",
|
||||
# As long as and "git pull" (or "git commit") is followed by a "cmake",
|
||||
# the call in top level "CMakeLists.txt" is sufficient.
|
||||
# This file is to provide a separate target for the "make" phase,
|
||||
# to ensure the BZR revision-id is correct even after a sequence
|
||||
# cmake ; make ; bzr pull ; make
|
||||
# to ensure the git commit hash is correct even after a sequence
|
||||
# cmake ; make ; git pull ; make
|
||||
|
||||
|
||||
# Get the macros which handle the "INFO_*" files.
|
||||
|
@@ -36,8 +36,8 @@ ENDIF()
|
||||
|
||||
# Turn on Werror (warning => error) when using maintainer mode.
|
||||
IF(MYSQL_MAINTAINER_MODE MATCHES "ON")
|
||||
SET(MY_C_WARNING_FLAGS "${MY_C_WARNING_FLAGS} -Werror")
|
||||
SET(MY_CXX_WARNING_FLAGS "${MY_CXX_WARNING_FLAGS} -Werror")
|
||||
SET(MY_C_WARNING_FLAGS "${MY_C_WARNING_FLAGS} -DFORCE_INIT_OF_VARS -Werror")
|
||||
SET(MY_CXX_WARNING_FLAGS "${MY_CXX_WARNING_FLAGS} -DFORCE_INIT_OF_VARS -Werror")
|
||||
ENDIF()
|
||||
|
||||
# Set warning flags for GCC/Clang
|
||||
|
@@ -22,13 +22,12 @@ SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@")
|
||||
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "@CPACK_SOURCE_PACKAGE_FILE_NAME@")
|
||||
SET(CMAKE_CPACK_COMMAND "@CMAKE_CPACK_COMMAND@")
|
||||
SET(CMAKE_COMMAND "@CMAKE_COMMAND@")
|
||||
SET(BZR_EXECUTABLE "@BZR_EXECUTABLE@")
|
||||
SET(GIT_EXECUTABLE "@GIT_EXECUTABLE@")
|
||||
SET(GTAR_EXECUTABLE "@GTAR_EXECUTABLE@")
|
||||
SET(TAR_EXECUTABLE "@TAR_EXECUTABLE@")
|
||||
SET(CMAKE_GENERATOR "@CMAKE_GENERATOR@")
|
||||
SET(CMAKE_MAKE_PROGRAM "@CMAKE_MAKE_PROGRAM@")
|
||||
SET(CMAKE_SYSTEM_NAME "@CMAKE_SYSTEM_NAME@")
|
||||
SET(PLUGIN_REPOS "@PLUGIN_REPOS@")
|
||||
|
||||
SET(VERSION "@VERSION@")
|
||||
|
||||
@@ -40,38 +39,21 @@ SET(PACKAGE_DIR ${CMAKE_BINARY_DIR}/${CPACK_SOURCE_PACKAGE_FILE_NAME})
|
||||
FILE(REMOVE_RECURSE ${PACKAGE_DIR})
|
||||
FILE(REMOVE ${PACKAGE_DIR}.tar.gz )
|
||||
|
||||
IF(BZR_EXECUTABLE)
|
||||
MESSAGE(STATUS "Running bzr export")
|
||||
IF(GIT_EXECUTABLE)
|
||||
MESSAGE(STATUS "Running git checkout-index")
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND "${BZR_EXECUTABLE}" export
|
||||
${PACKAGE_DIR}
|
||||
COMMAND "${GIT_EXECUTABLE}" checkout-index --all --prefix=${PACKAGE_DIR}/
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
RESULT_VARIABLE RESULT
|
||||
)
|
||||
|
||||
IF(NOT RESULT EQUAL 0)
|
||||
SET(BZR_EXECUTABLE)
|
||||
SET(GIT_EXECUTABLE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(BZR_EXECUTABLE)
|
||||
FOREACH(REPO ${PLUGIN_REPOS})
|
||||
GET_FILENAME_COMPONENT(PLUGIN_NAME ${REPO} NAME)
|
||||
SET(DEST ${PACKAGE_DIR}/plugin/${PLUGIN_NAME})
|
||||
MESSAGE(STATUS "Running bzr export for plugin/${PLUGIN_NAME}")
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND "${BZR_EXECUTABLE}" export ${DEST}
|
||||
WORKING_DIRECTORY ${REPO}
|
||||
RESULT_VARIABLE RESULT
|
||||
)
|
||||
IF(NOT RESULT EQUAL 0)
|
||||
MESSAGE(STATUS "bzr export failed")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
ENDIF()
|
||||
|
||||
IF(NOT BZR_EXECUTABLE)
|
||||
MESSAGE(STATUS "bzr not found or source dir is not a repo, use CPack")
|
||||
IF(NOT GIT_EXECUTABLE)
|
||||
MESSAGE(STATUS "git not found or source dir is not a repo, use CPack")
|
||||
|
||||
IF(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
|
||||
# In-source build is the worst option, we have to cleanup source tree.
|
||||
@@ -119,15 +101,6 @@ CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql/sql_yacc.h
|
||||
CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql/sql_yacc.cc
|
||||
${PACKAGE_DIR}/sql/sql_yacc.cc COPYONLY)
|
||||
|
||||
# Copy spec files
|
||||
SET(SPECFILENAME "mysql.${VERSION}.spec")
|
||||
IF("${VERSION}" MATCHES "-ndb-")
|
||||
STRING(REGEX REPLACE "^.*-ndb-" "" NDBVERSION "${VERSION}")
|
||||
SET(SPECFILENAME "mysql-cluster-${NDBVERSION}.spec")
|
||||
ENDIF()
|
||||
CONFIGURE_FILE(${CMAKE_BINARY_DIR}/support-files/${SPECFILENAME}
|
||||
${PACKAGE_DIR}/support-files/${SPECFILENAME} COPYONLY)
|
||||
|
||||
# Add documentation, if user has specified where to find them
|
||||
IF(MYSQL_DOCS_LOCATION)
|
||||
MESSAGE("Copying documentation files from " ${MYSQL_DOCS_LOCATION})
|
||||
|
@@ -227,11 +227,4 @@ MACRO(CONFIGURE_PLUGINS)
|
||||
ADD_SUBDIRECTORY(${dir})
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
FOREACH(dir ${dirs_plugin})
|
||||
IF (EXISTS ${dir}/.bzr)
|
||||
MESSAGE(STATUS "Found repo ${dir}/.bzr")
|
||||
LIST(APPEND PLUGIN_BZR_REPOS "${dir}")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
SET(PLUGIN_REPOS "${PLUGIN_BZR_REPOS}" CACHE INTERNAL "")
|
||||
ENDMACRO()
|
||||
|
@@ -1,6 +1,5 @@
|
||||
usr/sbin/mysqld
|
||||
usr/lib/mysql/plugin/ha_innodb.so
|
||||
usr/lib/mysql/plugin/ha_oqgraph.so
|
||||
usr/lib/mysql/plugin/sphinx.so
|
||||
usr/lib/mysql/plugin/auth_socket.so
|
||||
usr/lib/mysql/plugin/auth_pam.so
|
||||
@@ -105,5 +104,6 @@ usr/share/mysql/mysql_system_tables.sql
|
||||
usr/share/mysql/mysql_performance_tables.sql
|
||||
usr/share/mysql/mysql_test_data_timezone.sql
|
||||
@TOKUDB_DEB_FILES@
|
||||
@OQGRAPH_DEB_FILES@
|
||||
usr/share/mysql/wsrep.cnf
|
||||
usr/share/mysql/wsrep_notify
|
||||
|
@@ -1,6 +1,5 @@
|
||||
usr/sbin/mysqld
|
||||
usr/lib/mysql/plugin/ha_innodb.so
|
||||
usr/lib/mysql/plugin/ha_oqgraph.so
|
||||
usr/lib/mysql/plugin/sphinx.so
|
||||
usr/lib/mysql/plugin/auth_socket.so
|
||||
usr/lib/mysql/plugin/auth_pam.so
|
||||
@@ -107,5 +106,6 @@ usr/share/mysql/mysql_system_tables.sql
|
||||
usr/share/mysql/mysql_performance_tables.sql
|
||||
usr/share/mysql/mysql_test_data_timezone.sql
|
||||
@TOKUDB_DEB_FILES@
|
||||
@OQGRAPH_DEB_FILES@
|
||||
usr/share/mysql/wsrep.cnf
|
||||
usr/share/mysql/wsrep_notify
|
||||
|
@@ -213,7 +213,7 @@ EOF
|
||||
# admin might already have chosen to remove one or more plugins. Newlines are necessary.
|
||||
install_plugins=`/bin/echo -e \
|
||||
"USE mysql;\n" \
|
||||
"CREATE TABLE plugin (name char(64) COLLATE utf8_bin NOT NULL DEFAULT '', " \
|
||||
"CREATE TABLE IF NOT EXISTS plugin (name char(64) COLLATE utf8_bin NOT NULL DEFAULT '', " \
|
||||
" dl char(128) COLLATE utf8_bin NOT NULL DEFAULT '', " \
|
||||
" PRIMARY KEY (name)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='MySQL plugins';" `
|
||||
|
||||
|
@@ -12,6 +12,16 @@ before calling SSL_new();
|
||||
|
||||
*** end Note ***
|
||||
|
||||
yaSSL Release notes, version 2.3.7 (12/10/2014)
|
||||
This release of yaSSL fixes the potential to process duplicate handshake
|
||||
messages by explicitly marking/checking received handshake messages.
|
||||
|
||||
yaSSL Release notes, version 2.3.6 (11/25/2014)
|
||||
|
||||
This release of yaSSL fixes some valgrind warnings/errors including
|
||||
uninitialized reads and off by one index errors induced from fuzzing
|
||||
the handshake. These were reported by Oracle.
|
||||
|
||||
yaSSL Release notes, version 2.3.5 (9/29/2014)
|
||||
|
||||
This release of yaSSL fixes an RSA Padding check vulnerability reported by
|
||||
|
@@ -18,6 +18,10 @@
|
||||
|
||||
/* client.cpp */
|
||||
|
||||
// takes an optional command line argument of cipher list to make scripting
|
||||
// easier
|
||||
|
||||
|
||||
#include "../../testsuite/test.hpp"
|
||||
|
||||
//#define TEST_RESUME
|
||||
@@ -73,11 +77,16 @@ void client_test(void* args)
|
||||
#ifdef NON_BLOCKING
|
||||
tcp_set_nonblocking(sockfd);
|
||||
#endif
|
||||
|
||||
SSL_METHOD* method = TLSv1_client_method();
|
||||
SSL_CTX* ctx = SSL_CTX_new(method);
|
||||
|
||||
set_certs(ctx);
|
||||
if (argc >= 2) {
|
||||
printf("setting cipher list to %s\n", argv[1]);
|
||||
if (SSL_CTX_set_cipher_list(ctx, argv[1]) != SSL_SUCCESS) {
|
||||
ClientError(ctx, NULL, sockfd, "set_cipher_list error\n");
|
||||
}
|
||||
}
|
||||
SSL* ssl = SSL_new(ctx);
|
||||
|
||||
SSL_set_fd(ssl, sockfd);
|
||||
|
@@ -18,6 +18,9 @@
|
||||
|
||||
/* server.cpp */
|
||||
|
||||
// takes 2 optional command line argument to make scripting
|
||||
// if the first command line argument is 'n' client auth is disabled
|
||||
// if the second command line argument is 'd' DSA certs are used instead of RSA
|
||||
|
||||
#include "../../testsuite/test.hpp"
|
||||
|
||||
@@ -69,6 +72,9 @@ THREAD_RETURN YASSL_API server_test(void* args)
|
||||
char** argv = 0;
|
||||
|
||||
set_args(argc, argv, *static_cast<func_args*>(args));
|
||||
#ifdef SERVER_READY_FILE
|
||||
set_file_ready("server_ready", *static_cast<func_args*>(args));
|
||||
#endif
|
||||
tcp_accept(sockfd, clientfd, *static_cast<func_args*>(args));
|
||||
|
||||
tcp_close(sockfd);
|
||||
@@ -77,8 +83,21 @@ THREAD_RETURN YASSL_API server_test(void* args)
|
||||
SSL_CTX* ctx = SSL_CTX_new(method);
|
||||
|
||||
//SSL_CTX_set_cipher_list(ctx, "RC4-SHA:RC4-MD5");
|
||||
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
|
||||
set_serverCerts(ctx);
|
||||
|
||||
// should we disable client auth
|
||||
if (argc >= 2 && argv[1][0] == 'n')
|
||||
printf("disabling client auth\n");
|
||||
else
|
||||
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
|
||||
|
||||
// are we using DSA certs
|
||||
if (argc >= 3 && argv[2][0] == 'd') {
|
||||
printf("using DSA certs\n");
|
||||
set_dsaServerCerts(ctx);
|
||||
}
|
||||
else {
|
||||
set_serverCerts(ctx);
|
||||
}
|
||||
DH* dh = set_tmpDH(ctx);
|
||||
|
||||
SSL* ssl = SSL_new(ctx);
|
||||
|
@@ -35,7 +35,7 @@
|
||||
#include "rsa.h"
|
||||
|
||||
|
||||
#define YASSL_VERSION "2.3.5"
|
||||
#define YASSL_VERSION "2.3.7"
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
@@ -107,6 +107,25 @@ enum AcceptState {
|
||||
};
|
||||
|
||||
|
||||
// track received messages to explicitly disallow duplicate messages
|
||||
struct RecvdMessages {
|
||||
uint8 gotClientHello_;
|
||||
uint8 gotServerHello_;
|
||||
uint8 gotCert_;
|
||||
uint8 gotServerKeyExchange_;
|
||||
uint8 gotCertRequest_;
|
||||
uint8 gotServerHelloDone_;
|
||||
uint8 gotCertVerify_;
|
||||
uint8 gotClientKeyExchange_;
|
||||
uint8 gotFinished_;
|
||||
RecvdMessages() : gotClientHello_(0), gotServerHello_(0), gotCert_(0),
|
||||
gotServerKeyExchange_(0), gotCertRequest_(0),
|
||||
gotServerHelloDone_(0), gotCertVerify_(0),
|
||||
gotClientKeyExchange_(0), gotFinished_(0)
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
// combines all states
|
||||
class States {
|
||||
RecordLayerState recordLayer_;
|
||||
@@ -115,6 +134,7 @@ class States {
|
||||
ServerState serverState_;
|
||||
ConnectState connectState_;
|
||||
AcceptState acceptState_;
|
||||
RecvdMessages recvdMessages_;
|
||||
char errorString_[MAX_ERROR_SZ];
|
||||
YasslError what_;
|
||||
public:
|
||||
@@ -137,6 +157,7 @@ public:
|
||||
AcceptState& UseAccept();
|
||||
char* useString();
|
||||
void SetError(YasslError);
|
||||
int SetMessageRecvd(HandShakeType);
|
||||
private:
|
||||
States(const States&); // hide copy
|
||||
States& operator=(const States&); // and assign
|
||||
|
@@ -242,6 +242,7 @@ void EncryptedPreMasterSecret::read(SSL& ssl, input_buffer& input)
|
||||
}
|
||||
|
||||
opaque preMasterSecret[SECRET_LEN];
|
||||
memset(preMasterSecret, 0, sizeof(preMasterSecret));
|
||||
rsa.decrypt(preMasterSecret, secret_, length_,
|
||||
ssl.getCrypto().get_random());
|
||||
|
||||
@@ -300,6 +301,11 @@ void ClientDiffieHellmanPublic::read(SSL& ssl, input_buffer& input)
|
||||
tmp[1] = input[AUTO];
|
||||
ato16(tmp, keyLength);
|
||||
|
||||
if (keyLength < dh.get_agreedKeyLength()/2) {
|
||||
ssl.SetError(bad_input);
|
||||
return;
|
||||
}
|
||||
|
||||
alloc(keyLength);
|
||||
input.read(Yc_, keyLength);
|
||||
if (input.get_error()) {
|
||||
@@ -408,6 +414,10 @@ void DH_Server::read(SSL& ssl, input_buffer& input)
|
||||
tmp[1] = input[AUTO];
|
||||
ato16(tmp, length);
|
||||
|
||||
if (length == 0) {
|
||||
ssl.SetError(bad_input);
|
||||
return;
|
||||
}
|
||||
signature_ = NEW_YS byte[length];
|
||||
input.read(signature_, length);
|
||||
if (input.get_error()) {
|
||||
@@ -864,6 +874,12 @@ void ChangeCipherSpec::Process(input_buffer& input, SSL& ssl)
|
||||
return;
|
||||
}
|
||||
|
||||
// detect duplicate change_cipher
|
||||
if (ssl.getSecurity().get_parms().pending_ == false) {
|
||||
ssl.order_error();
|
||||
return;
|
||||
}
|
||||
|
||||
ssl.useSecurity().use_parms().pending_ = false;
|
||||
if (ssl.getSecurity().get_resuming()) {
|
||||
if (ssl.getSecurity().get_parms().entity_ == client_end)
|
||||
@@ -2048,11 +2064,7 @@ input_buffer& operator>>(input_buffer& input, CertificateRequest& request)
|
||||
tmp[1] = input[AUTO];
|
||||
ato16(tmp, dnSz);
|
||||
|
||||
DistinguishedName dn;
|
||||
request.certificate_authorities_.push_back(dn = NEW_YS
|
||||
byte[REQUEST_HEADER + dnSz]);
|
||||
memcpy(dn, tmp, REQUEST_HEADER);
|
||||
input.read(&dn[REQUEST_HEADER], dnSz);
|
||||
input.set_current(input.get_current() + dnSz);
|
||||
|
||||
sz -= dnSz + REQUEST_HEADER;
|
||||
|
||||
@@ -2191,6 +2203,11 @@ input_buffer& operator>>(input_buffer& input, CertificateVerify& request)
|
||||
ato16(tmp, sz);
|
||||
request.set_length(sz);
|
||||
|
||||
if (sz == 0) {
|
||||
input.set_error();
|
||||
return input;
|
||||
}
|
||||
|
||||
request.signature_ = NEW_YS byte[sz];
|
||||
input.read(request.signature_, sz);
|
||||
|
||||
|
@@ -255,6 +255,77 @@ void States::SetError(YasslError ye)
|
||||
}
|
||||
|
||||
|
||||
// mark message recvd, check for duplicates, return 0 on success
|
||||
int States::SetMessageRecvd(HandShakeType hst)
|
||||
{
|
||||
switch (hst) {
|
||||
case hello_request:
|
||||
break; // could send more than one
|
||||
|
||||
case client_hello:
|
||||
if (recvdMessages_.gotClientHello_)
|
||||
return -1;
|
||||
recvdMessages_.gotClientHello_ = 1;
|
||||
break;
|
||||
|
||||
case server_hello:
|
||||
if (recvdMessages_.gotServerHello_)
|
||||
return -1;
|
||||
recvdMessages_.gotServerHello_ = 1;
|
||||
break;
|
||||
|
||||
case certificate:
|
||||
if (recvdMessages_.gotCert_)
|
||||
return -1;
|
||||
recvdMessages_.gotCert_ = 1;
|
||||
break;
|
||||
|
||||
case server_key_exchange:
|
||||
if (recvdMessages_.gotServerKeyExchange_)
|
||||
return -1;
|
||||
recvdMessages_.gotServerKeyExchange_ = 1;
|
||||
break;
|
||||
|
||||
case certificate_request:
|
||||
if (recvdMessages_.gotCertRequest_)
|
||||
return -1;
|
||||
recvdMessages_.gotCertRequest_ = 1;
|
||||
break;
|
||||
|
||||
case server_hello_done:
|
||||
if (recvdMessages_.gotServerHelloDone_)
|
||||
return -1;
|
||||
recvdMessages_.gotServerHelloDone_ = 1;
|
||||
break;
|
||||
|
||||
case certificate_verify:
|
||||
if (recvdMessages_.gotCertVerify_)
|
||||
return -1;
|
||||
recvdMessages_.gotCertVerify_ = 1;
|
||||
break;
|
||||
|
||||
case client_key_exchange:
|
||||
if (recvdMessages_.gotClientKeyExchange_)
|
||||
return -1;
|
||||
recvdMessages_.gotClientKeyExchange_ = 1;
|
||||
break;
|
||||
|
||||
case finished:
|
||||
if (recvdMessages_.gotFinished_)
|
||||
return -1;
|
||||
recvdMessages_.gotFinished_ = 1;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
sslFactory::sslFactory() :
|
||||
messageFactory_(InitMessageFactory),
|
||||
handShakeFactory_(InitHandShakeFactory),
|
||||
@@ -1199,6 +1270,11 @@ void SSL::verifyState(const HandShakeHeader& hsHeader)
|
||||
return;
|
||||
}
|
||||
|
||||
if (states_.SetMessageRecvd(hsHeader.get_handshakeType()) != 0) {
|
||||
order_error();
|
||||
return;
|
||||
}
|
||||
|
||||
if (secure_.get_parms().entity_ == client_end)
|
||||
verifyClientState(hsHeader.get_handshakeType());
|
||||
else
|
||||
|
@@ -672,7 +672,7 @@ word32 CertDecoder::GetSignature()
|
||||
}
|
||||
|
||||
sigLength_ = GetLength(source_);
|
||||
if (sigLength_ == 0 || source_.IsLeft(sigLength_) == false) {
|
||||
if (sigLength_ <= 1 || source_.IsLeft(sigLength_) == false) {
|
||||
source_.SetError(CONTENT_E);
|
||||
return 0;
|
||||
}
|
||||
@@ -1001,11 +1001,17 @@ bool CertDecoder::ConfirmSignature(Source& pub)
|
||||
RSA_PublicKey pubKey(pub);
|
||||
RSAES_Encryptor enc(pubKey);
|
||||
|
||||
if (pubKey.FixedCiphertextLength() != sigLength_) {
|
||||
source_.SetError(SIG_LEN_E);
|
||||
return false;
|
||||
}
|
||||
|
||||
return enc.SSL_Verify(build.get_buffer(), build.size(), signature_);
|
||||
}
|
||||
else { // DSA
|
||||
// extract r and s from sequence
|
||||
byte seqDecoded[DSA_SIG_SZ];
|
||||
memset(seqDecoded, 0, sizeof(seqDecoded));
|
||||
DecodeDSA_Signature(seqDecoded, signature_, sigLength_);
|
||||
|
||||
DSA_PublicKey pubKey(pub);
|
||||
|
@@ -2605,18 +2605,20 @@ void Integer::Decode(Source& source)
|
||||
void Integer::Decode(const byte* input, unsigned int inputLen, Signedness s)
|
||||
{
|
||||
unsigned int idx(0);
|
||||
byte b = input[idx++];
|
||||
byte b = 0;
|
||||
if (inputLen>0)
|
||||
b = input[idx]; // peek
|
||||
sign_ = ((s==SIGNED) && (b & 0x80)) ? NEGATIVE : POSITIVE;
|
||||
|
||||
while (inputLen>0 && (sign_==POSITIVE ? b==0 : b==0xff))
|
||||
{
|
||||
inputLen--;
|
||||
b = input[idx++];
|
||||
idx++; // skip
|
||||
if (--inputLen>0)
|
||||
b = input[idx]; // peek
|
||||
}
|
||||
|
||||
reg_.CleanNew(RoundupSize(BytesToWords(inputLen)));
|
||||
|
||||
--idx;
|
||||
for (unsigned int i=inputLen; i > 0; i--)
|
||||
{
|
||||
b = input[idx++];
|
||||
|
130
extra/yassl/testsuite/cipher-test.sh
Normal file
130
extra/yassl/testsuite/cipher-test.sh
Normal file
@@ -0,0 +1,130 @@
|
||||
#!/bin/bash
|
||||
|
||||
# test all yassl cipher suties
|
||||
#
|
||||
|
||||
|
||||
server_pid=$no_pid
|
||||
|
||||
|
||||
do_cleanup() {
|
||||
echo "in cleanup"
|
||||
|
||||
if [[ $server_pid != $no_pid ]]
|
||||
then
|
||||
echo "killing server"
|
||||
kill -9 $server_pid
|
||||
fi
|
||||
}
|
||||
|
||||
do_trap() {
|
||||
echo "got trap"
|
||||
do_cleanup
|
||||
exit -1
|
||||
}
|
||||
|
||||
trap do_trap INT TERM
|
||||
|
||||
|
||||
# make sure example server and client are built
|
||||
if test ! -s ../examples/server/server; then
|
||||
echo "Please build yaSSL first, example server missing"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
if test ! -s ../examples/client/client; then
|
||||
echo "Please build yaSSL first, example client missing"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
|
||||
# non DSA suites
|
||||
for suite in {"DHE-RSA-AES256-SHA","AES256-SHA","DHE-RSA-AES128-SHA","AES128-SHA","AES256-RMD","AES128-RMD","DES-CBC3-RMD","DHE-RSA-AES256-RMD","DHE-RSA-AES128-RMD","DHE-RSA-DES-CBC3-RMD","RC4-SHA","RC4-MD5","DES-CBC3-SHA","DES-CBC-SHA","EDH-RSA-DES-CBC3-SHA","EDH-RSA-DES-CBC-SHA"}
|
||||
do
|
||||
for client_auth in {y,n}
|
||||
do
|
||||
echo "Trying $suite client auth = $client_auth ..."
|
||||
|
||||
if test -e server_ready; then
|
||||
echo -e "removing exisitng server_ready file"
|
||||
rm server_ready
|
||||
fi
|
||||
../examples/server/server $client_auth &
|
||||
server_pid=$!
|
||||
|
||||
while [ ! -s server_ready ]; do
|
||||
echo -e "waiting for server_ready file..."
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
../examples/client/client $suite
|
||||
client_result=$?
|
||||
|
||||
wait $server_pid
|
||||
server_result=$?
|
||||
|
||||
server_pid=$no_pid
|
||||
|
||||
if [[ $client_result != 0 ]]
|
||||
then
|
||||
echo "Client Error"
|
||||
exit $client_result
|
||||
fi
|
||||
|
||||
if [[ $server_result != 0 ]]
|
||||
then
|
||||
echo "Server Error"
|
||||
exit $server_result
|
||||
fi
|
||||
|
||||
done # end client auth loop
|
||||
done # end non dsa suite list
|
||||
echo -e "Non DSA Loop SUCCESS"
|
||||
|
||||
|
||||
|
||||
# DSA suites
|
||||
for suite in {"DHE-DSS-AES256-SHA","DHE-DSS-AES128-SHA","DHE-DSS-AES256-RMD","DHE-DSS-AES128-RMD","DHE-DSS-DES-CBC3-RMD","EDH-DSS-DES-CBC3-SHA","EDH-DSS-DES-CBC-SHA"}
|
||||
do
|
||||
for client_auth in {y,n}
|
||||
do
|
||||
echo "Trying $suite client auth = $client_auth ..."
|
||||
|
||||
if test -e server_ready; then
|
||||
echo -e "removing exisitng server_ready file"
|
||||
rm server_ready
|
||||
fi
|
||||
# d signifies DSA
|
||||
../examples/server/server $client_auth d &
|
||||
server_pid=$!
|
||||
|
||||
while [ ! -s server_ready ]; do
|
||||
echo -e "waiting for server_ready file..."
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
../examples/client/client $suite
|
||||
client_result=$?
|
||||
|
||||
wait $server_pid
|
||||
server_result=$?
|
||||
|
||||
server_pid=$no_pid
|
||||
|
||||
if [[ $client_result != 0 ]]
|
||||
then
|
||||
echo "Client Error"
|
||||
exit $client_result
|
||||
fi
|
||||
|
||||
if [[ $server_result != 0 ]]
|
||||
then
|
||||
echo "Server Error"
|
||||
exit $server_result
|
||||
fi
|
||||
|
||||
done # end client auth loop
|
||||
done # end dsa suite list
|
||||
echo -e "DSA Loop SUCCESS"
|
||||
|
||||
exit 0
|
@@ -131,9 +131,10 @@ struct func_args {
|
||||
int argc;
|
||||
char** argv;
|
||||
int return_code;
|
||||
const char* file_ready;
|
||||
tcp_ready* signal_;
|
||||
|
||||
func_args(int c = 0, char** v = 0) : argc(c), argv(v) {}
|
||||
func_args(int c = 0, char** v = 0) : argc(c), argv(v), file_ready(0) {}
|
||||
|
||||
void SetSignal(tcp_ready* p) { signal_ = p; }
|
||||
};
|
||||
@@ -146,6 +147,7 @@ void join_thread(THREAD_TYPE);
|
||||
// yaSSL
|
||||
const char* const yasslIP = "127.0.0.1";
|
||||
const unsigned short yasslPort = 11111;
|
||||
const unsigned short proxyPort = 12345;
|
||||
|
||||
|
||||
// client
|
||||
@@ -172,13 +174,13 @@ const char* const svrKey3 = "../../../certs/server-key.pem";
|
||||
|
||||
// server dsa
|
||||
const char* const dsaCert = "../certs/dsa-cert.pem";
|
||||
const char* const dsaKey = "../certs/dsa512.der";
|
||||
const char* const dsaKey = "../certs/dsa1024.der";
|
||||
|
||||
const char* const dsaCert2 = "../../certs/dsa-cert.pem";
|
||||
const char* const dsaKey2 = "../../certs/dsa512.der";
|
||||
const char* const dsaKey2 = "../../certs/dsa1024.der";
|
||||
|
||||
const char* const dsaCert3 = "../../../certs/dsa-cert.pem";
|
||||
const char* const dsaKey3 = "../../../certs/dsa512.der";
|
||||
const char* const dsaKey3 = "../../../certs/dsa1024.der";
|
||||
|
||||
|
||||
// CA
|
||||
@@ -222,6 +224,13 @@ inline void store_ca(SSL_CTX* ctx)
|
||||
if (SSL_CTX_load_verify_locations(ctx, certSuite, 0) != SSL_SUCCESS)
|
||||
if (SSL_CTX_load_verify_locations(ctx, certDebug,0) != SSL_SUCCESS)
|
||||
err_sys("failed to use certificate: certs/client-cert.pem");
|
||||
|
||||
// DSA cert
|
||||
if (SSL_CTX_load_verify_locations(ctx, dsaCert, 0) != SSL_SUCCESS)
|
||||
if (SSL_CTX_load_verify_locations(ctx, dsaCert2, 0) != SSL_SUCCESS)
|
||||
if (SSL_CTX_load_verify_locations(ctx, dsaCert3, 0) != SSL_SUCCESS)
|
||||
err_sys("failed to use certificate: certs/dsa-cert.pem");
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -298,7 +307,7 @@ inline void set_dsaServerCerts(SSL_CTX* ctx)
|
||||
!= SSL_SUCCESS)
|
||||
if (SSL_CTX_use_PrivateKey_file(ctx, dsaKey3,SSL_FILETYPE_ASN1)
|
||||
!= SSL_SUCCESS)
|
||||
err_sys("failed to use key file: certs/dsa512.der");
|
||||
err_sys("failed to use key file: certs/dsa1024.der");
|
||||
}
|
||||
|
||||
|
||||
@@ -310,6 +319,12 @@ inline void set_args(int& argc, char**& argv, func_args& args)
|
||||
}
|
||||
|
||||
|
||||
inline void set_file_ready(const char* name, func_args& args)
|
||||
{
|
||||
args.file_ready = name;
|
||||
}
|
||||
|
||||
|
||||
inline void tcp_set_nonblocking(SOCKET_T& sockfd)
|
||||
{
|
||||
#ifdef NON_BLOCKING
|
||||
@@ -349,7 +364,11 @@ inline void tcp_socket(SOCKET_T& sockfd, SOCKADDR_IN_T& addr)
|
||||
*/ // end external testing later
|
||||
#else
|
||||
addr.sin_family = AF_INET_V;
|
||||
#ifdef YASSL_PROXY_PORT
|
||||
addr.sin_port = htons(proxyPort);
|
||||
#else
|
||||
addr.sin_port = htons(yasslPort);
|
||||
#endif
|
||||
addr.sin_addr.s_addr = inet_addr(yasslIP);
|
||||
#endif
|
||||
|
||||
@@ -401,6 +420,16 @@ inline void tcp_listen(SOCKET_T& sockfd)
|
||||
}
|
||||
|
||||
|
||||
inline void create_ready_file(func_args& args)
|
||||
{
|
||||
FILE* f = fopen(args.file_ready, "w+");
|
||||
|
||||
if (f) {
|
||||
fputs("ready", f);
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline void tcp_accept(SOCKET_T& sockfd, SOCKET_T& clientfd, func_args& args)
|
||||
{
|
||||
@@ -418,6 +447,9 @@ inline void tcp_accept(SOCKET_T& sockfd, SOCKET_T& clientfd, func_args& args)
|
||||
pthread_mutex_unlock(&ready.mutex_);
|
||||
#endif
|
||||
|
||||
if (args.file_ready)
|
||||
create_ready_file(args);
|
||||
|
||||
clientfd = accept(sockfd, (sockaddr*)&client, (ACCEPT_THIRD_T)&client_len);
|
||||
|
||||
if (clientfd == (SOCKET_T) -1) {
|
||||
|
@@ -75,6 +75,7 @@ typedef int my_socket;
|
||||
|
||||
#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */
|
||||
|
||||
extern unsigned int mariadb_deinitialize_ssl;
|
||||
extern unsigned int mysql_port;
|
||||
extern char *mysql_unix_port;
|
||||
|
||||
@@ -853,6 +854,12 @@ my_socket STDCALL mysql_get_socket(const MYSQL *mysql);
|
||||
unsigned int STDCALL mysql_get_timeout_value(const MYSQL *mysql);
|
||||
unsigned int STDCALL mysql_get_timeout_value_ms(const MYSQL *mysql);
|
||||
|
||||
/********************************************************************
|
||||
mysql_net_ functions - low-level API to MySQL protocol
|
||||
*********************************************************************/
|
||||
unsigned long STDCALL mysql_net_read_packet(MYSQL *mysql);
|
||||
unsigned long STDCALL mysql_net_field_length(unsigned char **packet);
|
||||
|
||||
/* status return codes */
|
||||
#define MYSQL_NO_DATA 100
|
||||
#define MYSQL_DATA_TRUNCATED 101
|
||||
|
@@ -168,6 +168,7 @@ extern LIST *list_reverse(LIST *root);
|
||||
extern void list_free(LIST *root,unsigned int free_data);
|
||||
extern unsigned int list_length(LIST *);
|
||||
extern int list_walk(LIST *,list_walk_action action,unsigned char * argument);
|
||||
extern unsigned int mariadb_deinitialize_ssl;
|
||||
extern unsigned int mysql_port;
|
||||
extern char *mysql_unix_port;
|
||||
typedef struct st_mysql_field {
|
||||
@@ -731,3 +732,5 @@ int mysql_close_cont(MYSQL *sock, int status);
|
||||
my_socket mysql_get_socket(const MYSQL *mysql);
|
||||
unsigned int mysql_get_timeout_value(const MYSQL *mysql);
|
||||
unsigned int mysql_get_timeout_value_ms(const MYSQL *mysql);
|
||||
unsigned long mysql_net_read_packet(MYSQL *mysql);
|
||||
unsigned long mysql_net_field_length(unsigned char **packet);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2011, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2011, 2012, Monty Program Ab
|
||||
/* Copyright (c) 2011, 2015, Oracle and/or its affiliates.
|
||||
Copyright (c) 2011, 2015, MariaDB
|
||||
|
||||
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
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef _welcome_copyright_notice_h_
|
||||
#define _welcome_copyright_notice_h_
|
||||
|
||||
#define COPYRIGHT_NOTICE_CURRENT_YEAR "2014"
|
||||
#define COPYRIGHT_NOTICE_CURRENT_YEAR "2015"
|
||||
|
||||
/*
|
||||
This define specifies copyright notice which is displayed by every MySQL
|
||||
|
@@ -236,6 +236,11 @@ dynamic_column_exists
|
||||
dynamic_column_list
|
||||
dynamic_column_get
|
||||
dynamic_column_prepare_decimal
|
||||
#
|
||||
mariadb_deinitialize_ssl
|
||||
# low-level API to MySQL protocol
|
||||
mysql_net_read_packet
|
||||
mysql_net_field_length
|
||||
)
|
||||
|
||||
SET(CLIENT_API_FUNCTIONS
|
||||
|
@@ -205,7 +205,8 @@ void STDCALL mysql_server_end()
|
||||
mysql_client_plugin_deinit();
|
||||
|
||||
finish_client_errs();
|
||||
vio_end();
|
||||
if (mariadb_deinitialize_ssl)
|
||||
vio_end();
|
||||
#ifdef EMBEDDED_LIBRARY
|
||||
end_embedded_server();
|
||||
#endif
|
||||
@@ -4896,3 +4897,20 @@ my_bool STDCALL mysql_read_query_result(MYSQL *mysql)
|
||||
return (*mysql->methods->read_query_result)(mysql);
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
mysql_net_ functions - low-level API to MySQL protocol
|
||||
*********************************************************************/
|
||||
#if MYSQL_VERSION_ID > 100100
|
||||
#error remove these wrappers in 10.1, rename functions instead
|
||||
#endif
|
||||
|
||||
ulong STDCALL mysql_net_read_packet(MYSQL *mysql)
|
||||
{
|
||||
return cli_safe_read(mysql);
|
||||
}
|
||||
|
||||
ulong STDCALL mysql_net_field_length(uchar **packet)
|
||||
{
|
||||
return net_field_length(packet);
|
||||
}
|
||||
|
||||
|
@@ -31,12 +31,47 @@ source include/show_binlog_events.inc;
|
||||
|
||||
FLUSH STATUS;
|
||||
|
||||
--echo
|
||||
--echo # 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
|
||||
--echo # when 'DROP DATABASE' fails and at least one table is deleted
|
||||
--echo # from the database.
|
||||
RESET MASTER;
|
||||
CREATE DATABASE testing_1;
|
||||
USE testing_1;
|
||||
CREATE TABLE t1(c1 INT);
|
||||
CREATE TABLE t2(c1 INT);
|
||||
|
||||
let $prefix= `SELECT UUID()`;
|
||||
--echo # Create a file in the database directory
|
||||
--replace_result $prefix FAKE_FILE
|
||||
eval SELECT 'hello' INTO OUTFILE 'fake_file.$prefix';
|
||||
|
||||
--echo
|
||||
--echo # 'DROP DATABASE' will fail if there is any other file in the the
|
||||
--echo # database directory
|
||||
|
||||
# Use '/' instead of '\' in the error message. On windows platform, dir is
|
||||
# formed with '\'.
|
||||
--replace_regex /\\testing_1\\*/\/testing_1\//
|
||||
--error 1010
|
||||
DROP DATABASE testing_1;
|
||||
let $wait_binlog_event= DROP TABLE IF EXIST;
|
||||
source include/wait_for_binlog_event.inc;
|
||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
|
||||
--echo
|
||||
--echo # Remove the fake file.
|
||||
--remove_file $MYSQLD_DATADIR/testing_1/fake_file.$prefix
|
||||
--echo # Now we can drop the database.
|
||||
DROP DATABASE testing_1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT
|
||||
--echo # BASED REPLICATION
|
||||
--echo #
|
||||
|
||||
USE test;
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db1;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
|
@@ -180,6 +180,7 @@ sub create_process {
|
||||
}
|
||||
|
||||
$SIG{INT}= 'DEFAULT';
|
||||
$SIG{HUP}= 'DEFAULT';
|
||||
|
||||
# Make this process it's own process group to be able to kill
|
||||
# it and any childs(that hasn't changed group themself)
|
||||
|
@@ -141,6 +141,7 @@ extern "C" void handle_signal(int sig)
|
||||
// Ignore further signals
|
||||
signal(SIGTERM, SIG_IGN);
|
||||
signal(SIGINT, SIG_IGN);
|
||||
signal(SIGHUP, SIG_IGN);
|
||||
|
||||
// Continune execution, allow the child to be started and
|
||||
// finally terminated by monitor loop
|
||||
@@ -164,6 +165,7 @@ int main(int argc, char* const argv[] )
|
||||
/* Install signal handlers */
|
||||
sigaction(SIGTERM, &sa,NULL);
|
||||
sigaction(SIGINT, &sa,NULL);
|
||||
sigaction(SIGHUP, &sa, NULL);
|
||||
sigaction(SIGCHLD, &sa,NULL);
|
||||
sigaction(SIGABRT, &sa_abort,NULL);
|
||||
|
||||
@@ -231,6 +233,7 @@ int main(int argc, char* const argv[] )
|
||||
// Use default signal handlers in child
|
||||
signal(SIGTERM, SIG_DFL);
|
||||
signal(SIGINT, SIG_DFL);
|
||||
signal(SIGHUP, SIG_DFL);
|
||||
signal(SIGCHLD, SIG_DFL);
|
||||
|
||||
// Make this process it's own process group to be able to kill
|
||||
|
31
mysql-test/lib/generate-ssl-certs.sh
Executable file
31
mysql-test/lib/generate-ssl-certs.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#/bin/sh -xe
|
||||
|
||||
# simply run me from mysql-test/
|
||||
cd std_data/
|
||||
|
||||
# boilerplace for "openssl ca" and /etc/ssl/openssl.cnf
|
||||
rm -rf demoCA
|
||||
mkdir demoCA demoCA/private demoCA/newcerts
|
||||
touch demoCA/index.txt
|
||||
echo 01 > demoCA/serial
|
||||
|
||||
# CA certificate, self-signed
|
||||
openssl req -x509 -newkey rsa:2048 -keyout demoCA/private/cakey.pem -out cacert.pem -days 7300 -nodes -subj '/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB' -text
|
||||
|
||||
# server certificate signing request and private key
|
||||
openssl req -newkey rsa:1024 -keyout server-key.pem -out demoCA/server-req.pem -days 7300 -nodes -subj '/C=SE/ST=Uppsala/O=MySQL AB/CN=localhost'
|
||||
# convert the key to yassl compatible format
|
||||
openssl rsa -in server-key.pem -out server-key.pem
|
||||
# sign the server certificate with CA certificate
|
||||
openssl ca -days 7300 -batch -cert cacert.pem -policy policy_anything -out server-cert.pem -infiles demoCA/server-req.pem
|
||||
|
||||
openssl req -newkey rsa:8192 -keyout server8k-key.pem -out demoCA/server8k-req.pem -days 7300 -nodes -subj '/C=SE/ST=Uppsala/O=MySQL AB/CN=server'
|
||||
openssl rsa -in server8k-key.pem -out server8k-key.pem
|
||||
openssl ca -days 7300 -batch -cert cacert.pem -policy policy_anything -out server8k-cert.pem -infiles demoCA/server8k-req.pem
|
||||
|
||||
openssl req -newkey rsa:1024 -keyout client-key.pem -out demoCA/client-req.pem -days 7300 -nodes -subj '/C=SE/ST=Uppsala/O=MySQL AB'
|
||||
openssl rsa -in client-key.pem -out client-key.pem
|
||||
# if the folloing will require a common name - that's defined in /etc/ssl/openssl.cnf, under policy_anything
|
||||
openssl ca -days 7300 -batch -cert cacert.pem -policy policy_anything -out client-cert.pem -infiles demoCA/client-req.pem
|
||||
|
||||
rm -rf demoCA
|
@@ -109,6 +109,7 @@ require "lib/mtr_gprof.pl";
|
||||
require "lib/mtr_misc.pl";
|
||||
|
||||
$SIG{INT}= sub { mtr_error("Got ^C signal"); };
|
||||
$SIG{HUP}= sub { mtr_error("Hangup detected on controlling terminal"); };
|
||||
|
||||
our $mysql_version_id;
|
||||
my $mysql_version_extra;
|
||||
@@ -912,6 +913,7 @@ sub run_worker ($) {
|
||||
my ($server_port, $thread_num)= @_;
|
||||
|
||||
$SIG{INT}= sub { exit(1); };
|
||||
$SIG{HUP}= sub { exit(1); };
|
||||
|
||||
# Connect to server
|
||||
my $server = new IO::Socket::INET
|
||||
@@ -1496,6 +1498,7 @@ sub command_line_setup {
|
||||
{
|
||||
$default_vardir= "$glob_mysql_test_dir/var";
|
||||
}
|
||||
$default_vardir = realpath $default_vardir unless IS_WINDOWS;
|
||||
|
||||
if ( ! $opt_vardir )
|
||||
{
|
||||
@@ -2499,6 +2502,7 @@ sub environment_setup {
|
||||
# ----------------------------------------------------
|
||||
my $exe_replace= mtr_exe_exists(vs_config_dirs('extra', 'replace'),
|
||||
"$basedir/extra/replace",
|
||||
"$bindir/extra$opt_vs_config/replace",
|
||||
"$path_client_bindir/replace");
|
||||
$ENV{'REPLACE'}= native_path($exe_replace);
|
||||
|
||||
|
@@ -291,7 +291,7 @@ Level Code Message
|
||||
Note 1050 Table 't1' already exists
|
||||
show status like "Opened_tables";
|
||||
Variable_name Value
|
||||
Opened_tables 2
|
||||
Opened_tables 1
|
||||
select * from t1;
|
||||
a b
|
||||
1 1
|
||||
|
@@ -100,3 +100,24 @@ DROP TABLE t1,t2;
|
||||
#
|
||||
# End of 5.1 tests
|
||||
#
|
||||
#
|
||||
# BUG#11747548:DETECT ORPHAN TEMP-POOL FILES, AND HANDLE GRACEFULLY.
|
||||
#
|
||||
#Set up.
|
||||
CREATE TABLE pid_table(pid_no INT);
|
||||
CREATE TABLE t1 (a BLOB);
|
||||
INSERT INTO t1 VALUES (1), (2);
|
||||
#Create MYD and MYI files for intrinsic temp table.
|
||||
LOAD DATA LOCAL INFILE 'pid_file' INTO TABLE pid_table;
|
||||
#Reports an error since the temp file already exists.
|
||||
SELECT a FROM t1 ORDER BY rand(1);
|
||||
a
|
||||
1
|
||||
2
|
||||
#With patch, the query executes successfully.
|
||||
SELECT a FROM t1 ORDER BY rand(1);
|
||||
a
|
||||
1
|
||||
2
|
||||
#cleanup
|
||||
DROP TABLE t1, pid_table;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
|
||||
Checking 'INFO_SRC' and 'INFO_BIN'
|
||||
INFO_SRC: Found MySQL version number / Found BZR revision id
|
||||
INFO_SRC: Found MySQL version number / Found GIT revision id
|
||||
INFO_BIN: Found 'Compiler ... used' line / Found 'Feature flags' line
|
||||
|
||||
End of tests
|
||||
|
14
mysql-test/r/frm_bad_row_type-7333.result
Normal file
14
mysql-test/r/frm_bad_row_type-7333.result
Normal file
@@ -0,0 +1,14 @@
|
||||
call mtr.add_suppression("bad_row_type.frm: invalid value 11 for the field row_format");
|
||||
select * from bad_row_type;
|
||||
category_id category_name
|
||||
show create table bad_row_type;
|
||||
Table Create Table
|
||||
bad_row_type CREATE TABLE `bad_row_type` (
|
||||
`category_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`category_name` varchar(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`category_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
show table status like 'bad_row_type';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
bad_row_type MyISAM 10 Dynamic 0 0 0 281474976710655 1024 0 1 x x NULL utf8_general_ci NULL
|
||||
drop table bad_row_type;
|
@@ -1607,4 +1607,7 @@ create table t1 (pt point);
|
||||
insert into t1 values(Geomfromtext('POLYGON((1 1, 2 2, 2 1, 1 1))'));
|
||||
ERROR 22007: Incorrect POINT value: 'POLYGON' for column 'pt' at row 1
|
||||
drop table t1;
|
||||
SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100));
|
||||
st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100))
|
||||
GEOMETRYCOLLECTION EMPTY
|
||||
End of 5.5 tests
|
||||
|
@@ -1919,5 +1919,20 @@ drop view v1;
|
||||
# Clean-up.
|
||||
drop database mysqltest;
|
||||
#
|
||||
# Test for bug #16869534 - "QUERYING SUBSET OF COLUMNS DOESN'T USE TABLE
|
||||
# CACHE; OPENED_TABLES INCREASES"
|
||||
#
|
||||
SELECT * FROM INFORMATION_SCHEMA.TABLES;
|
||||
SELECT VARIABLE_VALUE INTO @val1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE
|
||||
VARIABLE_NAME LIKE 'Opened_tables';
|
||||
SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES;
|
||||
# The below SELECT query should give same output as above SELECT query.
|
||||
SELECT VARIABLE_VALUE INTO @val2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE
|
||||
VARIABLE_NAME LIKE 'Opened_tables';
|
||||
# The below select should return '1'
|
||||
SELECT @val1 = @val2;
|
||||
@val1 = @val2
|
||||
1
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@@ -1,5 +1,5 @@
|
||||
DROP TABLE IF EXISTS t1, `t``1`, `t 1`;
|
||||
drop view if exists v1;
|
||||
DROP TABLE IF EXISTS t1, `t``1`, `t 1`, test.`t.1`, v1;
|
||||
drop view if exists t1, `t``1`, `t 1`, test.`t.1`, v1;
|
||||
drop database if exists client_test_db;
|
||||
mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
@@ -309,3 +309,10 @@ CHECK TABLE bug47205 FOR UPGRADE;
|
||||
Table Op Msg_type Msg_text
|
||||
test.bug47205 check status OK
|
||||
DROP TABLE bug47205;
|
||||
#
|
||||
#MDEV-6128:[PATCH] mysqlcheck wrongly escapes '.' in table names
|
||||
#
|
||||
CREATE TABLE test.`t.1` (id int);
|
||||
mysqlcheck test t.1
|
||||
test.t.1 OK
|
||||
drop table test.`t.1`;
|
||||
|
@@ -3,8 +3,8 @@ create table t1(f1 int);
|
||||
insert into t1 values (5);
|
||||
grant select on test.* to ssl_user1@localhost require SSL;
|
||||
grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA";
|
||||
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client" ISSUER "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=CA";
|
||||
grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
|
||||
flush privileges;
|
||||
connect(localhost,ssl_user2,,test,MASTER_PORT,MASTER_SOCKET);
|
||||
|
@@ -7,9 +7,8 @@ SELECT ID, TIME,TIME_MS FROM INFORMATION_SCHEMA.PROCESSLIST WHERE CONCAT(":", ID
|
||||
SET DEBUG_SYNC = 'now SIGNAL fill_schema_proceed';
|
||||
ID TIME TIME_MS
|
||||
TID 0 0.000
|
||||
SET DEBUG_SYNC = 'dispatch_command_end SIGNAL query_done EXECUTE 2';
|
||||
SET DEBUG_SYNC= 'now WAIT_FOR query_done';
|
||||
SET DEBUG_SYNC= 'now SIGNAL nosignal';
|
||||
set debug_sync='reset';
|
||||
SET debug_dbug="+d,sleep_inject_query_done_debug_sync";
|
||||
select sleep(5);
|
||||
sleep(5)
|
||||
0
|
||||
|
@@ -4910,7 +4910,7 @@ Opened_views 3
|
||||
show status like 'Opened_table%';
|
||||
Variable_name Value
|
||||
Opened_table_definitions 2
|
||||
Opened_tables 3
|
||||
Opened_tables 2
|
||||
#
|
||||
# MDEV-486 LP BUG#1010116 Incorrect query results in
|
||||
# view and derived tables
|
||||
@@ -5396,6 +5396,21 @@ SELECT `f1`(1);
|
||||
DROP FUNCTION f1;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1, t2;
|
||||
create view v1 as select 1;
|
||||
drop view v1;
|
||||
#
|
||||
# MDEV-7260: Crash in get_best_combination when executing multi-table
|
||||
# UPDATE with nested views
|
||||
#
|
||||
CREATE TABLE `t1` (`id` bigint(20));
|
||||
INSERT INTO `t1` VALUES (1),(2);
|
||||
CREATE TABLE `t2` (`id` bigint(20));
|
||||
CREATE TABLE `t3` (`id` bigint(20), `flag` tinyint(4));
|
||||
create view v1 as select id from t1;
|
||||
create view v2 as select t2.* from (t2 left join v1 using (id));
|
||||
update t3 left join v2 using (id) set flag=flag+1;
|
||||
drop view v2, v1;
|
||||
drop table t1, t2, t3;
|
||||
# -----------------------------------------------------------------
|
||||
# -- End of 5.5 tests.
|
||||
# -----------------------------------------------------------------
|
||||
|
0
mysql-test/std_data/bad_row_type.MYD
Normal file
0
mysql-test/std_data/bad_row_type.MYD
Normal file
BIN
mysql-test/std_data/bad_row_type.MYI
Normal file
BIN
mysql-test/std_data/bad_row_type.MYI
Normal file
Binary file not shown.
BIN
mysql-test/std_data/bad_row_type.frm
Normal file
BIN
mysql-test/std_data/bad_row_type.frm
Normal file
Binary file not shown.
@@ -1,22 +1,79 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 16263805969935345171 (0xe1b4a55c3ddfa613)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Validity
|
||||
Not Before: Dec 5 04:48:11 2014 GMT
|
||||
Not After : Dec 1 04:48:11 2030 GMT
|
||||
Subject: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:b4:95:bd:24:92:73:06:22:01:13:28:0e:09:a3:
|
||||
94:05:96:54:9d:dc:8f:83:39:f3:64:7a:31:70:f6:
|
||||
d9:c4:14:19:75:87:a6:b1:ea:52:ed:40:54:5a:f6:
|
||||
9c:13:8e:d8:76:8f:5a:65:a5:20:19:19:bd:51:9d:
|
||||
ba:35:ce:9a:a9:58:0a:fc:11:6e:1d:cb:a8:f1:92:
|
||||
79:ee:aa:fc:e3:32:5e:aa:0d:0b:23:34:95:e9:d3:
|
||||
8e:3f:72:93:90:bc:2c:b0:04:75:4f:a4:4a:a0:32:
|
||||
db:ac:89:ac:34:9b:d0:07:e3:81:e9:ca:5b:26:f0:
|
||||
f5:de:fe:d5:5e:a0:54:26:dd:ec:58:07:6e:b9:e5:
|
||||
97:f6:20:6d:d8:4a:c0:50:cc:81:e6:d2:3f:c7:47:
|
||||
70:8b:15:89:65:71:2e:47:c3:42:76:b5:ee:16:0e:
|
||||
26:97:6a:a3:1c:ad:90:53:50:b0:b1:6d:1d:b0:b8:
|
||||
6d:df:3c:ee:bd:3b:87:e8:db:4d:3a:72:78:dd:db:
|
||||
40:3d:c9:20:46:b8:4e:33:bb:76:b7:4f:b2:79:da:
|
||||
03:cc:f9:75:c0:1d:4c:51:0a:b9:9b:25:34:50:11:
|
||||
97:df:82:46:02:a9:bc:98:51:3e:c3:df:57:ad:b7:
|
||||
28:be:de:65:ce:2b:f3:2c:22:f5:af:31:28:1c:ef:
|
||||
10:09
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
|
||||
X509v3 Basic Constraints:
|
||||
CA:TRUE
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
32:97:4c:af:bf:ca:e0:10:66:b7:cc:8b:0d:05:d1:d2:ca:b8:
|
||||
0c:c2:78:57:1f:f6:55:9c:74:fc:bd:31:58:05:18:bc:6d:b5:
|
||||
79:9a:22:8c:1f:da:33:ea:ef:db:e3:cb:46:bc:36:91:8b:d8:
|
||||
36:8d:06:40:c2:e9:fe:79:1b:4a:c5:70:74:6d:9d:92:2c:90:
|
||||
be:3c:a7:88:03:e4:b7:ef:f4:b0:00:34:ec:8f:d1:c3:23:2b:
|
||||
ef:bc:ff:ab:a2:0e:bc:ba:11:a5:8e:44:80:fa:d6:f4:26:66:
|
||||
84:64:2c:e3:23:62:0c:e2:ba:01:ab:5f:24:d6:9d:7e:9c:7b:
|
||||
f4:5d:0e:ba:64:35:6e:a5:fa:98:0c:57:f3:72:e8:3e:2e:ce:
|
||||
b3:f9:e3:fa:ee:aa:79:f9:06:01:19:b2:b3:28:ff:f4:d6:bb:
|
||||
17:bb:a6:a0:e0:45:23:f3:61:40:31:5c:a3:ee:88:1c:00:31:
|
||||
54:96:f9:71:37:b5:7f:66:6a:af:04:94:09:39:99:b3:88:86:
|
||||
9e:bb:d6:36:24:24:f4:37:2c:a6:6c:0b:35:2e:bb:40:af:a7:
|
||||
64:8a:7f:f2:74:e3:94:0c:32:bd:31:3d:d9:79:68:0f:1e:4b:
|
||||
17:c0:4e:df:85:3c:f0:84:df:58:f1:d2:4d:2f:ad:ff:1b:d7:
|
||||
c8:9b:fe:dc
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
WPHSTS+t/xvXyJv+3A==
|
||||
-----END CERTIFICATE-----
|
||||
|
@@ -1,69 +1,82 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 6 (0x6)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
|
||||
Serial Number: 16263805969935345173 (0xe1b4a55c3ddfa615)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Validity
|
||||
Not Before: Feb 20 03:03:26 2010 GMT
|
||||
Not After : Sep 3 03:03:26 2030 GMT
|
||||
Subject: C=SE, ST=Uppsala, O=MySQL AB
|
||||
Not Before: Dec 5 04:49:23 2014 GMT
|
||||
Not After : Dec 1 04:49:23 2029 GMT
|
||||
Subject: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=Client
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1024 bit)
|
||||
Modulus (1024 bit):
|
||||
00:c2:e7:20:cf:89:59:2f:67:cb:4c:9f:e8:11:f2:
|
||||
23:e5:f1:b1:ee:3f:66:5f:c3:f5:fd:1e:31:ee:8f:
|
||||
4c:2a:bd:c0:4a:a5:9f:c8:44:d5:77:8f:15:1b:4d:
|
||||
78:6e:b2:a2:48:a5:24:33:05:40:02:b3:c1:87:8d:
|
||||
59:3c:1a:07:aa:86:f0:04:e1:9c:20:4b:22:32:c4:
|
||||
51:9e:40:e4:31:c3:57:f5:98:bf:2e:b1:fd:2c:56:
|
||||
bf:49:d9:9b:e7:17:cc:95:5f:b5:08:19:5e:9d:df:
|
||||
65:22:39:2c:48:fb:69:96:31:7a:35:4d:de:60:b4:
|
||||
c1:60:19:5f:96:56:7e:55:19
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:c8:d1:a1:fe:a4:8c:f3:1b:17:71:1b:74:35:11:
|
||||
e0:0e:6c:40:0a:fb:c0:f7:f0:eb:bb:c9:1d:a1:c7:
|
||||
d7:b0:8a:f6:f1:cf:fa:6b:d0:79:64:eb:bb:69:a5:
|
||||
0d:80:06:df:52:14:d2:85:32:cf:bf:ce:2a:47:28:
|
||||
5b:cd:0b:28:ab:bb:07:33:d5:8b:d3:b4:72:c4:a6:
|
||||
b5:cc:37:b9:03:a8:78:56:25:58:1f:17:30:7c:d1:
|
||||
0a:bb:ec:3c:a3:03:90:97:99:92:49:ae:b3:57:96:
|
||||
5c:1a:e9:e8:02:23:ae:c8:c9:05:50:63:e5:77:a1:
|
||||
9a:73:06:74:0e:46:50:28:d8:c9:4f:c4:1c:37:b8:
|
||||
52:18:0b:af:19:2b:d4:e5:66:74:a4:f3:f0:da:09:
|
||||
30:f7:bc:0c:c9:9b:ce:57:06:04:27:e5:a1:2f:2b:
|
||||
a0:ba:b7:99:69:9d:46:fc:21:b6:45:81:9d:b2:3d:
|
||||
2f:76:15:78:b5:33:62:ac:1e:6b:66:dd:27:61:0a:
|
||||
47:02:20:2b:57:bb:32:20:dd:06:4c:76:a4:9b:72:
|
||||
42:4c:9c:2c:76:72:12:1f:4b:df:1e:11:1f:a9:06:
|
||||
54:dc:88:12:b0:49:d5:40:83:ef:7e:48:43:86:7a:
|
||||
37:a6:c1:d7:9b:fe:08:34:98:e0:54:3c:30:4f:79:
|
||||
15:29
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:FALSE
|
||||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
8D:10:67:91:33:76:9C:02:E5:78:5D:D8:C5:EF:25:96:B2:D7:FA:1F
|
||||
26:0C:90:BC:97:12:9E:43:BB:5E:FE:EB:A9:66:B3:C3:EE:B2:18:CB
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:B1:FB:7E:77:B5:40:8D:68:11:7E:D9:11:E5:C3:C6:DA:4D:AC:51:B0
|
||||
DirName:/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB
|
||||
serial:BE:58:AD:4C:1F:3D:25:95
|
||||
keyid:94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
a9:88:10:3e:5d:2a:47:29:c8:03:27:7a:31:5a:8e:10:03:bc:
|
||||
b5:4e:37:1d:12:7b:eb:5f:50:71:70:b1:a3:8e:93:0e:77:17:
|
||||
6c:47:b6:c9:a4:4d:2a:c4:38:f0:61:55:b2:7f:28:ba:06:79:
|
||||
ee:67:11:7d:d4:c9:7f:0a:18:c8:c1:cb:d0:2c:f9:63:0f:bb:
|
||||
45:ca:de:ea:bb:ac:00:01:52:48:36:2b:07:2b:c8:46:c7:b1:
|
||||
21:81:bd:77:39:e7:4c:39:aa:bd:ac:60:d8:a7:bf:cf:14:98:
|
||||
4a:0b:a1:40:55:06:8d:6f:35:a9:39:a0:71:a9:97:ba:7c:73:
|
||||
3c:41:ba:c5:1c:11:4b:2b:43:1d:2d:ba:7b:5f:14:b5:3d:64:
|
||||
62:15:36:b4:16:bd:78:c8:43:8d:f9:1c:a5:d2:ac:a1:58:74:
|
||||
e1:99:de:ad:04:19:43:a8:bd:0a:fd:19:9b:50:44:46:6d:18:
|
||||
55:4d:bf:b4:5b:a4:93:62:c7:64:91:6c:54:34:d1:f8:f3:ff:
|
||||
12:6d:5f:85:e7:35:9e:5c:42:81:5e:fb:c8:bb:44:51:98:b2:
|
||||
ef:1b:9f:5a:22:77:28:7d:da:fb:08:c2:94:9a:0f:42:08:93:
|
||||
54:10:1e:ad:f2:4f:fc:62:98:51:e9:9b:b9:3a:93:d9:e4:1f:
|
||||
1d:c4:76:d0
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
3e:3c:1f:6c:5b:83:d1:71:15:f5:45:52:fc:7f:67:bc:af:c5:
|
||||
92:f5:74:78:13:43:3c:fe:b5:61:bf:00:47:43:45:a0:b9:dd:
|
||||
a1:10:0c:29:69:2a:6f:7d:67:3d:1e:09:b5:15:74:bf:73:11:
|
||||
e6:e9:09:b6:6b:b5:cc:1e:06:fd:bd:3a:11:d3:44:bd:ca:7a:
|
||||
a1:f1:09:43:fc:bf:83:89:3a:b1:18:40:f3:cf:6d:12:ef:6e:
|
||||
0c:b7:a4:99:03:8a:4f:0c:3c:2c:23:78:35:2a:99:ea:de:9c:
|
||||
1b:e8:8d:19:fb:44:80:13:89:81:c5:05:4b:a7:66:6b:c0:31:
|
||||
41:f0:6c:60:aa:ec:d3:4c:ff:c1:3b:d5:bb:0d:42:7d:37:5e:
|
||||
80:e7:9c:7e:60:90:0f:a4:4e:70:20:9c:b1:e4:1b:70:65:b0:
|
||||
ef:bb:41:16:ed:ad:46:ce:34:d3:02:3d:dd:e2:50:fa:3c:5d:
|
||||
f0:e2:71:f8:9a:ef:a3:32:25:c5:8e:64:f4:46:e1:f4:c0:69:
|
||||
d2:34:56:8d:d9:c2:6e:b6:55:3b:6a:4d:b6:d2:84:ab:85:7b:
|
||||
cb:fd:b4:73:40:ba:5d:49:e2:0d:39:77:17:01:49:bb:72:8b:
|
||||
3a:c9:b1:e2:cd:13:d2:9c:ce:7d:6c:a8:f0:32:c9:a4:af:56:
|
||||
6f:8a:e6:88
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDETCCAfmgAwIBAgIBBjANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJTRTEQ
|
||||
MA4GA1UECBMHVXBwc2FsYTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UEChMITXlT
|
||||
UUwgQUIwHhcNMTAwMjIwMDMwMzI2WhcNMzAwOTAzMDMwMzI2WjAyMQswCQYDVQQG
|
||||
EwJTRTEQMA4GA1UECBMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwgQUIwgZ8wDQYJ
|
||||
KoZIhvcNAQEBBQADgY0AMIGJAoGBAMLnIM+JWS9ny0yf6BHyI+Xxse4/Zl/D9f0e
|
||||
Me6PTCq9wEqln8hE1XePFRtNeG6yokilJDMFQAKzwYeNWTwaB6qG8AThnCBLIjLE
|
||||
UZ5A5DHDV/WYvy6x/SxWv0nZm+cXzJVftQgZXp3fZSI5LEj7aZYxejVN3mC0wWAZ
|
||||
X5ZWflUZAgMBAAGjgaMwgaAwCQYDVR0TBAIwADAdBgNVHQ4EFgQUjRBnkTN2nALl
|
||||
eF3Yxe8llrLX+h8wdAYDVR0jBG0wa4AUsft+d7VAjWgRftkR5cPG2k2sUbChSKRG
|
||||
MEQxCzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBz
|
||||
YWxhMREwDwYDVQQKEwhNeVNRTCBBQoIJAL5YrUwfPSWVMA0GCSqGSIb3DQEBBQUA
|
||||
A4IBAQCpiBA+XSpHKcgDJ3oxWo4QA7y1TjcdEnvrX1BxcLGjjpMOdxdsR7bJpE0q
|
||||
xDjwYVWyfyi6BnnuZxF91Ml/ChjIwcvQLPljD7tFyt7qu6wAAVJINisHK8hGx7Eh
|
||||
gb13OedMOaq9rGDYp7/PFJhKC6FAVQaNbzWpOaBxqZe6fHM8QbrFHBFLK0MdLbp7
|
||||
XxS1PWRiFTa0Fr14yEON+Ryl0qyhWHThmd6tBBlDqL0K/RmbUERGbRhVTb+0W6ST
|
||||
YsdkkWxUNNH48/8SbV+F5zWeXEKBXvvIu0RRmLLvG59aIncofdr7CMKUmg9CCJNU
|
||||
EB6t8k/8YphR6Zu5OpPZ5B8dxHbQ
|
||||
MIIDyDCCArCgAwIBAgIJAOG0pVw936YVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNV
|
||||
BAYTAlNFMRIwEAYDVQQIDAlTdG9ja2hvbG0xEjAQBgNVBAcMCVN0b2NraG9sbTEP
|
||||
MA0GA1UECgwGT3JhY2xlMQ4wDAYDVQQLDAVNeVNRTDELMAkGA1UEAwwCQ0EwHhcN
|
||||
MTQxMjA1MDQ0OTIzWhcNMjkxMjAxMDQ0OTIzWjBnMQswCQYDVQQGEwJTRTESMBAG
|
||||
A1UECAwJU3RvY2tob2xtMRIwEAYDVQQHDAlTdG9ja2hvbG0xDzANBgNVBAoMBk9y
|
||||
YWNsZTEOMAwGA1UECwwFTXlTUUwxDzANBgNVBAMMBkNsaWVudDCCASIwDQYJKoZI
|
||||
hvcNAQEBBQADggEPADCCAQoCggEBAMjRof6kjPMbF3EbdDUR4A5sQAr7wPfw67vJ
|
||||
HaHH17CK9vHP+mvQeWTru2mlDYAG31IU0oUyz7/OKkcoW80LKKu7BzPVi9O0csSm
|
||||
tcw3uQOoeFYlWB8XMHzRCrvsPKMDkJeZkkmus1eWXBrp6AIjrsjJBVBj5XehmnMG
|
||||
dA5GUCjYyU/EHDe4UhgLrxkr1OVmdKTz8NoJMPe8DMmbzlcGBCfloS8roLq3mWmd
|
||||
RvwhtkWBnbI9L3YVeLUzYqwea2bdJ2EKRwIgK1e7MiDdBkx2pJtyQkycLHZyEh9L
|
||||
3x4RH6kGVNyIErBJ1UCD735IQ4Z6N6bB15v+CDSY4FQ8ME95FSkCAwEAAaN7MHkw
|
||||
CQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy
|
||||
dGlmaWNhdGUwHQYDVR0OBBYEFCYMkLyXEp5Du17+66lms8PushjLMB8GA1UdIwQY
|
||||
MBaAFJRloaOHz7/BdLvYhJe2a+6ykHOyMA0GCSqGSIb3DQEBCwUAA4IBAQA+PB9s
|
||||
W4PRcRX1RVL8f2e8r8WS9XR4E0M8/rVhvwBHQ0Wgud2hEAwpaSpvfWc9Hgm1FXS/
|
||||
cxHm6Qm2a7XMHgb9vToR00S9ynqh8QlD/L+DiTqxGEDzz20S724Mt6SZA4pPDDws
|
||||
I3g1Kpnq3pwb6I0Z+0SAE4mBxQVLp2ZrwDFB8GxgquzTTP/BO9W7DUJ9N16A55x+
|
||||
YJAPpE5wIJyx5BtwZbDvu0EW7a1GzjTTAj3d4lD6PF3w4nH4mu+jMiXFjmT0RuH0
|
||||
wGnSNFaN2cJutlU7ak220oSrhXvL/bRzQLpdSeINOXcXAUm7cos6ybHizRPSnM59
|
||||
bKjwMsmkr1ZviuaI
|
||||
-----END CERTIFICATE-----
|
||||
|
@@ -1,15 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
@@ -1,69 +1,82 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 4 (0x4)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
|
||||
Serial Number: 16263805969935345172 (0xe1b4a55c3ddfa614)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Validity
|
||||
Not Before: Feb 20 02:55:06 2010 GMT
|
||||
Not After : Sep 3 02:55:06 2030 GMT
|
||||
Subject: C=SE, ST=Uppsala, O=MySQL AB, CN=localhost
|
||||
Not Before: Dec 5 04:48:40 2014 GMT
|
||||
Not After : Dec 1 04:48:40 2029 GMT
|
||||
Subject: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=localhost
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1024 bit)
|
||||
Modulus (1024 bit):
|
||||
00:e3:7d:4f:c2:23:77:a9:3a:2c:d2:69:59:a0:2f:
|
||||
4e:d1:51:4c:ae:8d:f5:17:cc:ce:58:9c:83:4f:0b:
|
||||
a3:bb:29:a2:b8:1d:3e:1b:04:f9:a9:3e:e2:61:d0:
|
||||
e6:7b:b9:7c:12:d8:1f:86:c9:53:b5:04:dd:df:26:
|
||||
e9:c0:2b:de:4a:96:2e:f3:23:6f:79:6d:a9:d2:4e:
|
||||
17:af:2f:de:8b:68:44:ae:de:a3:e2:c4:37:1c:04:
|
||||
ad:73:4b:85:f9:83:ac:fe:b7:c1:54:47:2e:96:d4:
|
||||
31:96:85:94:69:d6:5a:63:24:04:99:89:19:1d:56:
|
||||
8a:d1:77:aa:87:fb:38:cd:b7
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:e9:20:e7:05:51:07:3a:48:b9:e2:62:a2:24:45:
|
||||
1f:f1:54:34:22:5c:62:86:9b:01:e8:c2:45:90:00:
|
||||
8d:4e:e4:a2:ea:e9:d7:b5:95:25:ce:18:ac:1a:4f:
|
||||
b3:e6:30:46:af:20:13:40:84:df:21:dc:df:09:e5:
|
||||
a0:7f:81:12:6e:1e:84:58:5c:a1:11:db:aa:b6:04:
|
||||
e0:fc:1e:0c:11:2e:f3:30:62:1a:f9:ee:df:fe:a3:
|
||||
d3:d6:83:6e:ad:e8:8d:98:89:b1:69:63:b8:72:f4:
|
||||
5a:e6:22:5e:73:64:95:ef:56:92:92:0b:e1:93:a5:
|
||||
d7:4c:41:47:e7:31:ed:09:68:b3:c5:6e:c1:1b:01:
|
||||
39:bb:f1:8f:bf:ba:f4:02:e2:e5:e5:9e:b7:d6:9a:
|
||||
b2:94:76:9b:48:d8:27:18:0e:9f:30:98:f5:9a:3e:
|
||||
23:e6:3b:4a:48:ee:a5:26:e8:80:94:37:e4:4a:ba:
|
||||
ff:9f:42:b9:32:dd:7a:9d:63:11:a8:25:99:b1:1f:
|
||||
86:e5:7c:b1:31:e3:12:11:0c:eb:f6:1d:02:4b:1d:
|
||||
34:cb:74:1d:7f:2f:40:c0:81:e2:04:d4:8e:ea:96:
|
||||
f8:22:35:8e:ab:b6:99:33:36:ef:b5:83:11:88:6d:
|
||||
06:0f:76:4d:bf:db:a8:df:6c:3c:91:e2:ba:73:a0:
|
||||
73:45
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:FALSE
|
||||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
CC:8C:71:40:D0:0F:BF:D1:99:79:3F:1B:E9:10:76:19:67:36:0F:A3
|
||||
E4:31:D8:D5:06:EA:C6:B3:A2:F6:01:39:8F:58:08:36:2C:7B:3F:DB
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:B1:FB:7E:77:B5:40:8D:68:11:7E:D9:11:E5:C3:C6:DA:4D:AC:51:B0
|
||||
DirName:/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB
|
||||
serial:BE:58:AD:4C:1F:3D:25:95
|
||||
keyid:94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
6f:ad:5e:59:fa:84:3a:be:e2:72:b1:e8:66:2a:4e:f8:73:19:
|
||||
11:06:11:92:78:56:3e:d6:e8:68:29:90:8b:59:d2:fe:aa:ae:
|
||||
25:59:c7:e9:99:bb:4a:06:43:dd:40:bd:cb:f4:ae:79:95:7d:
|
||||
8e:90:ef:58:d2:a8:fc:bf:07:f3:37:b2:9b:bd:da:e6:8c:56:
|
||||
dd:5e:c6:4a:70:7c:3e:3d:a1:e8:35:06:b8:a7:7b:ac:26:85:
|
||||
54:5d:09:a2:7b:77:b4:17:7f:72:31:cb:ff:cc:67:6d:e6:3e:
|
||||
c6:dc:96:eb:4a:0a:ae:e9:48:ae:8a:e0:d6:73:57:6e:32:4c:
|
||||
00:dc:28:da:55:b3:9f:9f:d8:98:cc:d9:f1:b6:b3:14:67:2e:
|
||||
a1:47:1e:51:11:cf:70:9f:31:8f:ba:59:29:f2:d0:88:0b:e2:
|
||||
51:6b:f8:31:ed:6d:ac:00:5e:d3:78:4c:95:97:02:cc:74:2b:
|
||||
3b:c6:28:e6:2a:c3:30:99:35:b4:4d:31:46:d4:90:f2:47:ed:
|
||||
64:85:1a:75:2a:72:0a:2f:c6:3a:2f:d2:ac:6b:31:cc:e5:a8:
|
||||
07:c2:d6:22:f3:c6:0f:bf:67:d9:d6:b2:79:cd:48:b5:c3:e0:
|
||||
e3:18:7f:b5:74:c9:43:19:fb:c4:93:29:ca:cc:90:2b:1b:6f:
|
||||
45:f6:25:f9
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
46:ef:cd:bf:c1:ef:36:a9:cb:99:b5:be:e2:a7:ba:69:0d:f5:
|
||||
9b:63:39:78:32:35:01:a8:b9:f1:70:0e:b5:d1:8f:94:2e:7a:
|
||||
cb:65:d4:d0:b4:ad:52:b8:51:5f:64:2e:a8:08:a5:71:fe:c2:
|
||||
35:8a:0d:28:26:e5:be:ca:d7:f4:79:54:e1:27:8f:87:92:d3:
|
||||
04:72:1b:cc:c4:7f:8b:26:09:92:2d:c8:6f:27:da:97:31:80:
|
||||
0f:83:84:9c:e0:a4:88:c9:e3:8f:35:e7:de:bd:31:e2:fa:52:
|
||||
83:de:ee:5c:60:6e:8f:a5:8d:5e:53:41:18:42:f3:03:0b:05:
|
||||
0b:59:09:42:2e:1b:0b:29:b3:fe:11:3b:d5:ad:3f:4d:24:e8:
|
||||
c0:da:4c:0d:93:94:ec:cd:18:0f:66:cd:03:d3:ee:a0:b2:7f:
|
||||
64:d7:39:66:19:72:9f:64:43:38:b4:b6:b3:ea:6f:39:e7:09:
|
||||
98:90:9f:6c:f5:e8:b3:2e:09:8d:7b:76:65:30:f4:c4:9b:8e:
|
||||
10:4e:9b:8c:93:63:44:9d:2b:8a:f3:f0:cf:f8:7b:65:95:38:
|
||||
fb:b4:92:e8:6c:11:03:a2:a2:2f:ea:e0:22:b7:cd:cf:0d:a5:
|
||||
91:23:14:47:0c:34:8f:f1:11:cc:e8:1e:37:53:ec:a1:01:81:
|
||||
20:c0:2c:f5
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
8RHM6B43U+yhAYEgwCz1
|
||||
-----END CERTIFICATE-----
|
||||
|
@@ -1,15 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
@@ -1,69 +1,207 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 5 (0x5)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
|
||||
Serial Number: 10754692786786449447 (0x9540581bd8dcb827)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Validity
|
||||
Not Before: Feb 20 03:00:54 2010 GMT
|
||||
Not After : Sep 3 03:00:54 2030 GMT
|
||||
Subject: C=SE, ST=Uppsala, O=MySQL AB, CN=server
|
||||
Not Before: Dec 5 04:50:48 2014 GMT
|
||||
Not After : Dec 1 04:50:48 2029 GMT
|
||||
Subject: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=Server
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1024 bit)
|
||||
Modulus (1024 bit):
|
||||
00:c5:da:44:95:06:77:16:21:af:a0:c4:3c:e9:f8:
|
||||
1d:2d:95:f9:63:90:8c:3f:86:ba:77:76:4a:52:4b:
|
||||
6b:af:29:f5:1c:aa:d4:3f:3e:42:9f:6d:46:ba:86:
|
||||
90:b1:2d:cc:db:c6:33:15:a3:f4:af:53:33:4f:a1:
|
||||
56:d1:aa:3b:26:10:f7:64:b5:f9:bf:1b:b1:47:8e:
|
||||
cc:a6:d6:0d:aa:4a:77:e3:a3:63:9d:2a:dc:65:f4:
|
||||
7f:91:17:38:2d:d6:cd:4e:8d:53:52:97:6e:87:fc:
|
||||
64:60:a6:a1:00:ac:96:6c:e4:42:94:75:17:46:6f:
|
||||
91:b5:dd:06:47:ed:05:e3:db
|
||||
Public-Key: (8192 bit)
|
||||
Modulus:
|
||||
00:d8:8f:9d:66:66:9c:12:ca:0a:ad:9e:9f:05:66:
|
||||
6c:6c:8a:db:19:9f:a2:d0:fa:38:dc:de:c5:a6:94:
|
||||
60:0d:4b:72:c9:85:e2:ff:27:c8:d4:ce:b1:29:66:
|
||||
31:e7:2b:4e:08:b3:a2:71:cf:1e:36:7c:8e:4d:08:
|
||||
6e:fd:7a:ea:c1:0d:5c:97:09:66:fa:ed:0b:36:64:
|
||||
8f:cc:39:35:a9:43:6c:a9:17:48:0f:2e:0a:4b:d3:
|
||||
94:bb:b0:5b:43:f1:4e:f7:e5:30:e1:ae:a2:a8:5d:
|
||||
3c:db:39:df:d6:4b:70:a6:c9:68:c3:f3:9d:19:d7:
|
||||
2f:2a:38:31:11:ab:f1:60:66:c3:38:4f:d9:6f:b5:
|
||||
49:df:ce:14:b5:fa:c8:95:04:50:69:90:9d:26:c2:
|
||||
e9:07:69:7b:a2:d8:91:e7:cd:de:c4:ed:9c:e4:c8:
|
||||
8c:e3:a0:cd:dd:2b:37:21:8f:ee:54:38:91:2b:2b:
|
||||
01:86:90:f0:2e:9a:06:8a:e1:f2:a2:3f:d1:d4:21:
|
||||
9f:b0:81:eb:d0:e9:d3:e9:a9:28:6e:c2:06:4b:94:
|
||||
6e:96:70:f5:31:33:dd:97:2f:cc:5d:80:c5:74:ce:
|
||||
c0:3d:b2:6a:81:b7:ce:65:4f:6a:49:3e:c9:5d:00:
|
||||
3c:06:4a:57:c9:a7:f9:bb:46:50:df:64:dc:13:1f:
|
||||
22:ad:21:0b:aa:4b:5d:94:60:9f:20:ff:28:aa:56:
|
||||
5f:f6:cd:23:34:fe:44:a2:d6:80:bd:a9:67:00:d6:
|
||||
a1:82:82:9f:c9:e8:0c:97:26:1e:a9:b1:e2:ee:01:
|
||||
ef:9d:c6:82:fc:72:33:02:40:35:cc:ae:51:23:f4:
|
||||
f8:92:29:d3:2f:5c:1f:03:c6:81:7d:fb:4f:e9:de:
|
||||
ed:68:3c:a1:be:7c:fa:11:96:2b:5a:10:c5:c5:cb:
|
||||
2e:7a:54:4c:7b:12:b8:07:01:d9:b5:38:0f:a6:43:
|
||||
70:28:81:8d:d7:95:ad:d6:e8:88:b4:19:62:05:7b:
|
||||
75:c0:2d:24:72:1c:4d:04:a3:f7:1d:6b:8b:fa:16:
|
||||
a3:5a:6c:51:ba:5c:62:fa:3e:82:7f:4e:10:db:d0:
|
||||
52:d4:81:df:0e:5b:33:7e:20:77:1d:51:ca:4e:13:
|
||||
ee:cd:72:36:28:b4:31:88:3d:61:0f:1a:80:19:f6:
|
||||
7d:71:5d:21:1f:dd:0b:d9:73:88:a9:72:4b:8d:a3:
|
||||
d6:f1:4f:5d:01:6e:9e:c2:28:97:80:de:5b:2d:ac:
|
||||
a3:c9:24:db:e9:0f:2b:36:ee:a7:f2:94:c1:41:7a:
|
||||
70:9f:fd:d0:31:a9:de:55:38:65:89:20:f4:02:f1:
|
||||
83:73:40:77:db:35:d2:66:ff:26:5f:f4:d2:e6:f9:
|
||||
ba:fc:6a:66:b1:02:24:04:a3:32:4b:21:85:83:b4:
|
||||
6a:97:3c:25:7f:65:cc:a6:dd:cc:ac:e5:22:09:58:
|
||||
dc:a1:0d:7d:b4:ac:98:98:81:1d:a7:83:d4:3a:e4:
|
||||
39:a7:04:6a:b6:b7:5d:a8:fe:0e:47:08:1d:95:61:
|
||||
eb:a8:97:53:91:1e:ca:1f:3f:19:5a:01:73:da:33:
|
||||
32:d7:33:ca:39:1e:00:37:6b:f8:18:47:30:3a:2e:
|
||||
99:39:d0:d0:49:6d:87:c1:98:59:d0:21:ca:12:6d:
|
||||
89:33:0f:f2:52:6e:d6:c5:78:dd:15:b6:11:d6:5e:
|
||||
72:e8:c7:12:00:c3:8d:57:34:e5:d8:6d:a2:e8:47:
|
||||
79:83:8c:49:17:3b:75:24:0d:de:e1:3b:dd:bc:b7:
|
||||
df:89:a6:31:e6:49:37:80:f8:8f:86:e3:42:f4:2e:
|
||||
dc:de:58:45:c4:41:a9:2d:a6:5d:f0:7d:81:3d:54:
|
||||
f4:8a:a3:5f:18:7c:02:c9:7f:1c:f5:9f:dd:0a:29:
|
||||
49:40:92:24:b3:b7:65:37:91:9a:a8:00:c4:4e:7f:
|
||||
7e:f7:97:de:24:2a:d7:3b:f2:a2:63:ec:38:b7:1f:
|
||||
9e:b5:72:99:bd:b1:c0:41:6a:57:97:e2:fb:11:32:
|
||||
ba:a3:5d:82:48:c5:0a:cc:2c:f5:21:7a:f1:99:56:
|
||||
1b:54:9d:c7:64:50:62:80:94:50:5a:40:32:61:f3:
|
||||
2c:f8:09:dc:f0:6d:2b:60:29:c2:86:70:5a:57:12:
|
||||
7d:09:73:ca:41:6d:22:61:18:1a:48:cb:80:95:be:
|
||||
08:e8:15:99:de:36:3a:bf:09:67:35:e8:53:d9:40:
|
||||
1b:27:e5:14:32:09:73:e0:f6:a9:19:ee:81:90:dc:
|
||||
b7:9d:b6:91:51:33:1e:1f:22:e0:bd:df:a8:d1:33:
|
||||
a7:ab:9b:9c:27:7a:3c:ef:aa:9e:4d:f8:a8:97:63:
|
||||
24:20:c8:36:ab:05:8a:c0:80:9b:64:0c:1f:ec:4f:
|
||||
de:ec:f0:9c:9c:54:db:02:ab:12:aa:ab:58:a3:49:
|
||||
25:bf:6a:0a:04:7f:2f:1d:41:11:23:4e:e2:83:51:
|
||||
e3:f5:12:95:22:72:13:f4:be:6f:e2:00:29:4f:fe:
|
||||
9b:ae:b9:e2:7d:72:d3:1b:e8:12:3b:6d:b6:d2:62:
|
||||
a4:91:31:46:e7:16:7f:9d:8d:74:5e:97:51:d1:cb:
|
||||
82:57:bb:bd:46:e4:9c:c5:bd:08:8b:68:20:f8:5e:
|
||||
d6:aa:ed:6e:4d:ba:a4:29:fd:ac:5c:2f:25:14:d3:
|
||||
19:63:0c:01:75:6c:87:a5:0b:29:09:7f:13:7f:00:
|
||||
d4:63:72:e2:a0:39:88:80:68:2c:3f:49:b1:9b:94:
|
||||
77:63:08:05:55
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:FALSE
|
||||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
6E:60:3F:29:13:60:99:ED:0C:F7:15:B5:DB:7B:1C:FB:6F:60:19:ED
|
||||
3E:96:BB:23:C2:FD:41:11:7F:EB:63:9B:39:5F:58:2D:92:A0:F0:9F
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:B1:FB:7E:77:B5:40:8D:68:11:7E:D9:11:E5:C3:C6:DA:4D:AC:51:B0
|
||||
DirName:/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB
|
||||
serial:BE:58:AD:4C:1F:3D:25:95
|
||||
keyid:60:57:8F:09:CF:83:86:4B:35:32:BF:73:EB:81:4C:DB:36:27:12:8F
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
63:2e:0f:07:14:06:cf:74:90:3d:37:42:f2:48:70:60:21:bc:
|
||||
34:52:31:f1:87:70:d2:b2:fb:ff:13:38:dc:f0:5e:43:d7:ee:
|
||||
a7:c7:1f:ac:aa:d2:8c:4f:fa:3c:4c:73:f6:b6:c2:0c:a0:ea:
|
||||
a2:c9:e2:73:61:c3:2e:78:40:0f:2a:d3:63:50:9b:b8:f9:89:
|
||||
40:ed:98:08:97:c3:07:24:17:34:b5:78:89:0a:bb:83:4c:e2:
|
||||
5c:2e:13:d6:21:30:ad:30:48:b5:70:12:ff:4a:6f:42:f0:f8:
|
||||
9f:b1:4b:bd:89:2b:f0:9d:e2:49:2b:35:69:18:1f:76:40:b4:
|
||||
76:bd:cb:dd:27:2f:c0:c1:e2:33:3e:6e:df:68:54:19:92:8a:
|
||||
bb:13:9c:cf:d6:17:56:da:bf:0d:64:70:3a:45:b7:aa:5f:e3:
|
||||
f5:96:ae:34:f2:17:37:27:d0:4b:e8:30:4a:c0:02:42:e2:d2:
|
||||
30:eb:eb:c7:d7:ec:d8:df:5c:43:58:e2:6f:b7:58:54:0d:c4:
|
||||
01:71:2d:59:8f:44:c7:a1:6c:0b:41:28:fa:b7:63:a7:68:d3:
|
||||
4f:c3:0f:17:9e:b2:32:50:e6:0b:87:3d:e2:39:47:c0:d8:0a:
|
||||
3b:f6:af:50:68:0f:9d:ef:6e:34:0d:3a:07:94:f8:a4:d7:24:
|
||||
86:32:d3:b4
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
19:b8:4d:94:a3:41:1b:78:e8:fa:da:7c:c3:0c:f5:42:6a:2e:
|
||||
04:8c:f4:6e:90:e0:d1:55:28:7c:97:85:18:12:c4:ff:d3:ba:
|
||||
74:f1:7f:af:b0:ab:4d:64:f4:45:58:6e:b1:2e:06:cc:a7:5b:
|
||||
cd:25:8f:60:68:14:e1:f9:56:21:40:43:e4:c4:ee:91:72:01:
|
||||
7d:86:41:2f:ac:6d:be:c6:1a:2a:ae:dd:13:ca:51:01:37:33:
|
||||
7e:b9:1a:9a:28:16:8c:bc:d1:e7:d4:46:55:87:1f:05:93:4c:
|
||||
b5:75:ff:ed:ca:29:b2:5d:15:05:4c:02:a9:53:3c:d9:11:01:
|
||||
04:db:82:ad:01:ad:4e:d4:7d:9e:6a:00:5e:cc:88:83:42:98:
|
||||
6e:4b:cd:7c:55:c6:4c:98:39:db:d1:e3:aa:f3:27:83:6a:3c:
|
||||
01:ad:c5:ee:ef:01:aa:b7:4d:f7:a1:86:34:9d:61:20:7c:a0:
|
||||
c0:75:26:24:6f:a3:68:0e:03:4d:cf:f3:bf:d9:40:4f:1a:04:
|
||||
4d:9c:5e:62:49:37:5b:78:ee:c5:11:78:ee:e5:87:f7:f4:f1:
|
||||
6d:0d:bd:a2:fb:a2:6c:27:91:d4:84:43:03:f5:9b:11:50:ab:
|
||||
45:ca:7c:3d:fe:5c:6b:e1:03:20:c8:c9:ac:66:ff:74:6e:0d:
|
||||
87:47:75:77:41:ca:5e:e9:77:5f:2b:09:bb:a5:7d:fc:cf:ed:
|
||||
75:dd:b0:ee:b8:da:3e:59:d0:e2:7f:38:16:fe:04:c9:99:d1:
|
||||
06:84:11:b1:07:8a:4d:59:d6:70:c3:9b:f7:f8:b9:ae:99:86:
|
||||
b6:31:a4:13:de:7e:23:27:33:96:d1:9b:15:65:98:04:e5:f8:
|
||||
73:3c:f3:72:ef:a1:28:06:1d:7e:88:52:c1:f7:eb:2a:e1:f7:
|
||||
57:e5:ed:08:e9:ee:f8:95:3d:ec:4c:98:93:e7:e1:ea:a5:02:
|
||||
37:c1:66:18:ba:01:78:05:6d:c4:6b:2c:61:ee:bf:a9:e1:4d:
|
||||
bf:95:31:f5:28:2a:f8:c9:ce:72:a5:c7:a3:38:2c:f6:69:34:
|
||||
eb:cb:e9:b3:4f:78:de:87:61:8a:34:bd:5a:64:27:f0:42:1a:
|
||||
22:e9:2b:ac:97:f1:ed:7a:50:3b:3e:18:ae:b7:d9:20:9b:d6:
|
||||
12:3b:18:b1:47:71:39:0a:31:54:9f:fe:f2:90:d7:b8:27:6b:
|
||||
49:e5:82:cd:82:99:95:b1:ab:aa:1f:7a:e4:4e:6e:46:91:a7:
|
||||
16:b8:09:a3:5b:ec:6f:57:ca:b4:4f:69:e7:f5:f3:b9:03:93:
|
||||
08:90:9d:8d:57:82:77:bc:69:f8:e4:46:d9:4d:d1:25:ea:b8:
|
||||
60:b0:e2:cd:0c:ff:c2:63:65:20:f4:2c:34:36:34:a3:cf:67:
|
||||
6a:01:3e:51:5f:4a:49:26:9d:30:3f:03:05:70:22:b1:e3:46:
|
||||
d1:ff:23:23:45:08:4b:0e:77:db:91:d9:a2:5c:15:48:49:ee:
|
||||
08:48:90:c3:25:44:b7:7b:9f:82:96:7e:8e:91:91:e5:a0:4d:
|
||||
af:04:b8:72:df:07:a0:4b:02:79:0e:38:05:47:61:c3:9e:b4:
|
||||
bf:01:00:10:c3:12:44:64:12:7a:bc:e1:c8:41:e5:cb:0d:7c:
|
||||
52:32:7f:71:c1:3f:6e:d3:81:d3:12:ec:85:4c:16:72:d2:79:
|
||||
f8:bf:c0:fe:31:14:47:53:20:87:73:bb:34:8f:60:4a:9e:91:
|
||||
35:6e:20:96:da:bd:4b:7e:bd:c7:c4:f9:25:54:40:2c:9d:b0:
|
||||
8b:b5:fb:1e:74:59:a5:f7:b9:b7:23:56:3b:eb:2e:0a:eb:f5:
|
||||
10:9b:88:5b:49:8e:0f:05:61:7b:e5:a9:a0:24:f2:16:3f:cb:
|
||||
5b:06:d6:a5:bb:94:3a:46:2e:43:c5:02:67:b1:7d:5d:b6:c0:
|
||||
f9:93:2a:d6:18:95:89:73:ff:3b:a1:f3:a6:bd:5b:6a:f0:e0:
|
||||
11:e8:95:09:83:5d:69:c3:91:e8:88:ea:b2:7c:32:73:a8:b0:
|
||||
a4:24:d8:e5:6f:c7:97:8b:3e:c7:1e:69:6a:2a:b7:db:d1:26:
|
||||
7b:94:83:27:6d:d2:82:58:dd:a7:c2:74:0d:43:13:e2:c5:96:
|
||||
9f:3c:00:40:1a:10:b1:da:62:23:2e:b7:5c:33:61:56:3b:8b:
|
||||
b4:b9:01:64:71:67:82:7c:18:2c:e8:d9:cf:e7:da:4b:16:7a:
|
||||
91:67:af:82:0e:ac:7a:c9:cc:47:9b:84:b9:49:e8:3d:33:a4:
|
||||
66:3f:c3:c1:20:ba:d1:0e:1e:11:80:82:78:90:25:a4:bc:80:
|
||||
a2:25:8a:5c:de:3c:59:52:2f:b3:50:bb:0b:5a:f1:96:8d:d2:
|
||||
eb:b9:f1:e9:72:a8:ae:f2:15:fd:5a:9c:a3:e8:ca:26:e9:67:
|
||||
80:13:38:1f:38:9f:85:8a:82:3c:4f:d3:04:ff:3a:13:f7:b5:
|
||||
13:f7:e3:50:1d:d6:e1:e6:1e:d0:b4:c8:5e:21:d7:22:cc:01:
|
||||
de:db:d1:c4:a2:5c:0b:dc:dc:2f:08:e4:2e:12:c5:4a:bc:a1:
|
||||
b3:92:32:1e:05:5c:7e:ca:43:6e:2e:06:3f:27:fd:1b:75:f0:
|
||||
01:42:8d:ff:aa:f8:f1:47:5b:56:67:74:66:1b:aa:b5:75:41:
|
||||
69:ba:91:66:ce:c3:3a:00:7a:93:59:1c:0c:49:c2:d2:d8:8d:
|
||||
7a:57:a4:7d:ba:61:26:1e:e9:aa:ab:e6:cb:2c:16:0a
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
umEmHumqq+bLLBYK
|
||||
-----END CERTIFICATE-----
|
||||
|
@@ -1,15 +1,99 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
@@ -39,10 +39,31 @@ master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; DROP TEMPORARY TABLE `tt1` /* generated by server */
|
||||
master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
FLUSH STATUS;
|
||||
|
||||
# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
|
||||
# when 'DROP DATABASE' fails and at least one table is deleted
|
||||
# from the database.
|
||||
RESET MASTER;
|
||||
CREATE DATABASE testing_1;
|
||||
USE testing_1;
|
||||
CREATE TABLE t1(c1 INT);
|
||||
CREATE TABLE t2(c1 INT);
|
||||
# Create a file in the database directory
|
||||
SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
|
||||
|
||||
# 'DROP DATABASE' will fail if there is any other file in the the
|
||||
# database directory
|
||||
DROP DATABASE testing_1;
|
||||
ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
|
||||
|
||||
# Remove the fake file.
|
||||
# Now we can drop the database.
|
||||
DROP DATABASE testing_1;
|
||||
#
|
||||
# Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT
|
||||
# BASED REPLICATION
|
||||
#
|
||||
USE test;
|
||||
DROP DATABASE IF EXISTS db1;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
CREATE DATABASE db1;
|
||||
@@ -58,7 +79,7 @@ Tables_in_db1
|
||||
t2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `db1`; DROP TABLE `t1`
|
||||
master-bin.000001 # Query # # use `db1`; DROP TABLE IF EXISTS `t1`
|
||||
DROP TABLE t3;
|
||||
DROP DATABASE db1;
|
||||
set binlog_format=mixed;
|
||||
@@ -102,10 +123,31 @@ master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; DROP TEMPORARY TABLE `tt1` /* generated by server */
|
||||
master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
FLUSH STATUS;
|
||||
|
||||
# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
|
||||
# when 'DROP DATABASE' fails and at least one table is deleted
|
||||
# from the database.
|
||||
RESET MASTER;
|
||||
CREATE DATABASE testing_1;
|
||||
USE testing_1;
|
||||
CREATE TABLE t1(c1 INT);
|
||||
CREATE TABLE t2(c1 INT);
|
||||
# Create a file in the database directory
|
||||
SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
|
||||
|
||||
# 'DROP DATABASE' will fail if there is any other file in the the
|
||||
# database directory
|
||||
DROP DATABASE testing_1;
|
||||
ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
|
||||
|
||||
# Remove the fake file.
|
||||
# Now we can drop the database.
|
||||
DROP DATABASE testing_1;
|
||||
#
|
||||
# Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT
|
||||
# BASED REPLICATION
|
||||
#
|
||||
USE test;
|
||||
DROP DATABASE IF EXISTS db1;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
CREATE DATABASE db1;
|
||||
@@ -121,7 +163,7 @@ Tables_in_db1
|
||||
t2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `db1`; DROP TABLE `t1`
|
||||
master-bin.000001 # Query # # use `db1`; DROP TABLE IF EXISTS `t1`
|
||||
DROP TABLE t3;
|
||||
DROP DATABASE db1;
|
||||
set binlog_format=row;
|
||||
@@ -166,10 +208,31 @@ master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt1` /* generated by server */
|
||||
master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||
FLUSH STATUS;
|
||||
|
||||
# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
|
||||
# when 'DROP DATABASE' fails and at least one table is deleted
|
||||
# from the database.
|
||||
RESET MASTER;
|
||||
CREATE DATABASE testing_1;
|
||||
USE testing_1;
|
||||
CREATE TABLE t1(c1 INT);
|
||||
CREATE TABLE t2(c1 INT);
|
||||
# Create a file in the database directory
|
||||
SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
|
||||
|
||||
# 'DROP DATABASE' will fail if there is any other file in the the
|
||||
# database directory
|
||||
DROP DATABASE testing_1;
|
||||
ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
|
||||
|
||||
# Remove the fake file.
|
||||
# Now we can drop the database.
|
||||
DROP DATABASE testing_1;
|
||||
#
|
||||
# Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT
|
||||
# BASED REPLICATION
|
||||
#
|
||||
USE test;
|
||||
DROP DATABASE IF EXISTS db1;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
CREATE DATABASE db1;
|
||||
@@ -185,7 +248,7 @@ Tables_in_db1
|
||||
t2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `db1`; DROP TABLE `t1`
|
||||
master-bin.000001 # Query # # use `db1`; DROP TABLE IF EXISTS `t1`
|
||||
DROP TABLE t3;
|
||||
DROP DATABASE db1;
|
||||
show databases;
|
||||
|
1
mysql-test/suite/innodb/r/innodb-mdev-7055.result
Normal file
1
mysql-test/suite/innodb/r/innodb-mdev-7055.result
Normal file
@@ -0,0 +1 @@
|
||||
1
|
204
mysql-test/suite/innodb/r/innodb-mdev-7513.result
Normal file
204
mysql-test/suite/innodb/r/innodb-mdev-7513.result
Normal file
@@ -0,0 +1,204 @@
|
||||
call mtr.add_suppression("Row size too large (> 8126)*");
|
||||
CREATE TABLE t1 ( text1 TEXT,
|
||||
text2 TEXT,
|
||||
text3 TEXT,
|
||||
text4 TEXT,
|
||||
text5 TEXT,
|
||||
text6 TEXT,
|
||||
text7 TEXT,
|
||||
text8 TEXT,
|
||||
text9 TEXT,
|
||||
text10 TEXT,
|
||||
text11 TEXT,
|
||||
text12 TEXT,
|
||||
text13 TEXT,
|
||||
text14 TEXT,
|
||||
text15 TEXT,
|
||||
text16 TEXT,
|
||||
text17 TEXT,
|
||||
text18 TEXT,
|
||||
text19 TEXT,
|
||||
text20 TEXT,
|
||||
text21 TEXT,
|
||||
text22 TEXT,
|
||||
text23 TEXT,
|
||||
text24 TEXT,
|
||||
text25 TEXT,
|
||||
text26 TEXT,
|
||||
text27 TEXT,
|
||||
text28 TEXT,
|
||||
text29 TEXT,
|
||||
text30 TEXT,
|
||||
text31 TEXT,
|
||||
text32 TEXT,
|
||||
text33 TEXT,
|
||||
text34 TEXT,
|
||||
text35 TEXT,
|
||||
text36 TEXT,
|
||||
text37 TEXT,
|
||||
text38 TEXT,
|
||||
text39 TEXT,
|
||||
text40 TEXT,
|
||||
text41 TEXT,
|
||||
text42 TEXT,
|
||||
text43 TEXT,
|
||||
text44 TEXT,
|
||||
text45 TEXT,
|
||||
text46 TEXT,
|
||||
text47 TEXT,
|
||||
text48 TEXT,
|
||||
text49 TEXT,
|
||||
text50 TEXT,
|
||||
text51 TEXT,
|
||||
text52 TEXT,
|
||||
text53 TEXT,
|
||||
text54 TEXT,
|
||||
text55 TEXT,
|
||||
text56 TEXT,
|
||||
text57 TEXT,
|
||||
text58 TEXT,
|
||||
text59 TEXT,
|
||||
text60 TEXT,
|
||||
text61 TEXT,
|
||||
text62 TEXT,
|
||||
text63 TEXT,
|
||||
text64 TEXT,
|
||||
text65 TEXT,
|
||||
text66 TEXT,
|
||||
text67 TEXT,
|
||||
text68 TEXT,
|
||||
text69 TEXT,
|
||||
text70 TEXT,
|
||||
text71 TEXT,
|
||||
text72 TEXT,
|
||||
text73 TEXT,
|
||||
text74 TEXT,
|
||||
text75 TEXT,
|
||||
text76 TEXT,
|
||||
text77 TEXT,
|
||||
text78 TEXT,
|
||||
text79 TEXT,
|
||||
text80 TEXT,
|
||||
text81 TEXT,
|
||||
text82 TEXT,
|
||||
text83 TEXT,
|
||||
text84 TEXT,
|
||||
text85 TEXT,
|
||||
text86 TEXT,
|
||||
text87 TEXT,
|
||||
text88 TEXT,
|
||||
text89 TEXT,
|
||||
text90 TEXT,
|
||||
text91 TEXT,
|
||||
text92 TEXT,
|
||||
text93 TEXT,
|
||||
text94 TEXT,
|
||||
text95 TEXT,
|
||||
text96 TEXT,
|
||||
text97 TEXT,
|
||||
text98 TEXT,
|
||||
text99 TEXT,
|
||||
text100 TEXT,
|
||||
text101 TEXT,
|
||||
text102 TEXT,
|
||||
text103 TEXT,
|
||||
text104 TEXT,
|
||||
text105 TEXT,
|
||||
text106 TEXT,
|
||||
text107 TEXT,
|
||||
text108 TEXT,
|
||||
text109 TEXT,
|
||||
text110 TEXT,
|
||||
text111 TEXT,
|
||||
text112 TEXT,
|
||||
text113 TEXT,
|
||||
text114 TEXT,
|
||||
text115 TEXT,
|
||||
text116 TEXT,
|
||||
text117 TEXT,
|
||||
text118 TEXT,
|
||||
text119 TEXT,
|
||||
text120 TEXT,
|
||||
text121 TEXT,
|
||||
text122 TEXT,
|
||||
text123 TEXT,
|
||||
text124 TEXT,
|
||||
text125 TEXT,
|
||||
text126 TEXT,
|
||||
text127 TEXT,
|
||||
text128 TEXT,
|
||||
text129 TEXT,
|
||||
text130 TEXT,
|
||||
text131 TEXT,
|
||||
text132 TEXT,
|
||||
text133 TEXT,
|
||||
text134 TEXT,
|
||||
text135 TEXT,
|
||||
text136 TEXT,
|
||||
text137 TEXT,
|
||||
text138 TEXT,
|
||||
text139 TEXT,
|
||||
text140 TEXT,
|
||||
text141 TEXT,
|
||||
text142 TEXT,
|
||||
text143 TEXT,
|
||||
text144 TEXT,
|
||||
text145 TEXT,
|
||||
text146 TEXT,
|
||||
text147 TEXT,
|
||||
text148 TEXT,
|
||||
text149 TEXT,
|
||||
text150 TEXT,
|
||||
text151 TEXT,
|
||||
text152 TEXT,
|
||||
text153 TEXT,
|
||||
text154 TEXT,
|
||||
text155 TEXT,
|
||||
text156 TEXT,
|
||||
text157 TEXT,
|
||||
text158 TEXT,
|
||||
text159 TEXT,
|
||||
text160 TEXT,
|
||||
text161 TEXT,
|
||||
text162 TEXT,
|
||||
text163 TEXT,
|
||||
text164 TEXT,
|
||||
text165 TEXT,
|
||||
text166 TEXT,
|
||||
text167 TEXT,
|
||||
text168 TEXT,
|
||||
text169 TEXT,
|
||||
text170 TEXT,
|
||||
text171 TEXT,
|
||||
text172 TEXT,
|
||||
text173 TEXT,
|
||||
text174 TEXT,
|
||||
text175 TEXT,
|
||||
text176 TEXT,
|
||||
text177 TEXT,
|
||||
text178 TEXT,
|
||||
text179 TEXT,
|
||||
text180 TEXT,
|
||||
text181 TEXT,
|
||||
text182 TEXT,
|
||||
text183 TEXT,
|
||||
text184 TEXT,
|
||||
text185 TEXT,
|
||||
text186 TEXT,
|
||||
text187 TEXT,
|
||||
text188 TEXT,
|
||||
text189 TEXT,
|
||||
text190 TEXT,
|
||||
text191 TEXT,
|
||||
text192 TEXT,
|
||||
text193 TEXT,
|
||||
text194 TEXT,
|
||||
text195 TEXT,
|
||||
text196 TEXT,
|
||||
text197 TEXT
|
||||
) ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES ('abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef');
|
||||
DELETE FROM t1 WHERE text1 = 'abcdef';
|
||||
SELECT * from t1;
|
||||
text1 text2 text3 text4 text5 text6 text7 text8 text9 text10 text11 text12 text13 text14 text15 text16 text17 text18 text19 text20 text21 text22 text23 text24 text25 text26 text27 text28 text29 text30 text31 text32 text33 text34 text35 text36 text37 text38 text39 text40 text41 text42 text43 text44 text45 text46 text47 text48 text49 text50 text51 text52 text53 text54 text55 text56 text57 text58 text59 text60 text61 text62 text63 text64 text65 text66 text67 text68 text69 text70 text71 text72 text73 text74 text75 text76 text77 text78 text79 text80 text81 text82 text83 text84 text85 text86 text87 text88 text89 text90 text91 text92 text93 text94 text95 text96 text97 text98 text99 text100 text101 text102 text103 text104 text105 text106 text107 text108 text109 text110 text111 text112 text113 text114 text115 text116 text117 text118 text119 text120 text121 text122 text123 text124 text125 text126 text127 text128 text129 text130 text131 text132 text133 text134 text135 text136 text137 text138 text139 text140 text141 text142 text143 text144 text145 text146 text147 text148 text149 text150 text151 text152 text153 text154 text155 text156 text157 text158 text159 text160 text161 text162 text163 text164 text165 text166 text167 text168 text169 text170 text171 text172 text173 text174 text175 text176 text177 text178 text179 text180 text181 text182 text183 text184 text185 text186 text187 text188 text189 text190 text191 text192 text193 text194 text195 text196 text197
|
||||
DROP TABLE t1;
|
21
mysql-test/suite/innodb/r/multi_repair-7404.result
Normal file
21
mysql-test/suite/innodb/r/multi_repair-7404.result
Normal file
@@ -0,0 +1,21 @@
|
||||
create table `t1`(`a` int) engine=innodb partition by key (`a`);
|
||||
create table `t2`(`b` int) engine=innodb;
|
||||
create table `t3`(`c` int) engine=innodb;
|
||||
insert t1 values (1);
|
||||
insert t2 values (2);
|
||||
insert t3 values (3);
|
||||
repair table `t1`,`t2`,`t3`;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
test.t2 repair status OK
|
||||
test.t3 repair status OK
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
select * from t2;
|
||||
b
|
||||
2
|
||||
select * from t3;
|
||||
c
|
||||
3
|
||||
drop table t1, t2, t3;
|
23
mysql-test/suite/innodb/t/innodb-mdev-7055.test
Normal file
23
mysql-test/suite/innodb/t/innodb-mdev-7055.test
Normal file
@@ -0,0 +1,23 @@
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
# MDEV-7055: MySQL#74664 - InnoDB: Failing assertion: len <= col->len
|
||||
# || col->mtype == 5 || (col->len == 0 && col->mtype == 1) in
|
||||
# file rem0rec.cc line 845
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--disable_result_log
|
||||
set @old_character_set=@@character_set_connection;
|
||||
set character_set_connection=ucs2;
|
||||
create TABLE t1 engine=innodb select if(0=0,'Y','N');
|
||||
insert INTO t1 values(date_format('2001-01-01','%W'));
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
set @@character_set_connection=@old_character_set;
|
||||
--enable_result_log
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
#produce something
|
||||
--echo 1
|
||||
|
||||
|
220
mysql-test/suite/innodb/t/innodb-mdev-7513.test
Normal file
220
mysql-test/suite/innodb/t/innodb-mdev-7513.test
Normal file
@@ -0,0 +1,220 @@
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/not_embedded.inc
|
||||
|
||||
# MDEV-7513: ib_warn_row_too_big dereferences null thd
|
||||
|
||||
call mtr.add_suppression("Row size too large (> 8126)*");
|
||||
|
||||
--disable_warnings
|
||||
CREATE TABLE t1 ( text1 TEXT,
|
||||
text2 TEXT,
|
||||
text3 TEXT,
|
||||
text4 TEXT,
|
||||
text5 TEXT,
|
||||
text6 TEXT,
|
||||
text7 TEXT,
|
||||
text8 TEXT,
|
||||
text9 TEXT,
|
||||
text10 TEXT,
|
||||
text11 TEXT,
|
||||
text12 TEXT,
|
||||
text13 TEXT,
|
||||
text14 TEXT,
|
||||
text15 TEXT,
|
||||
text16 TEXT,
|
||||
text17 TEXT,
|
||||
text18 TEXT,
|
||||
text19 TEXT,
|
||||
text20 TEXT,
|
||||
text21 TEXT,
|
||||
text22 TEXT,
|
||||
text23 TEXT,
|
||||
text24 TEXT,
|
||||
text25 TEXT,
|
||||
text26 TEXT,
|
||||
text27 TEXT,
|
||||
text28 TEXT,
|
||||
text29 TEXT,
|
||||
text30 TEXT,
|
||||
text31 TEXT,
|
||||
text32 TEXT,
|
||||
text33 TEXT,
|
||||
text34 TEXT,
|
||||
text35 TEXT,
|
||||
text36 TEXT,
|
||||
text37 TEXT,
|
||||
text38 TEXT,
|
||||
text39 TEXT,
|
||||
text40 TEXT,
|
||||
text41 TEXT,
|
||||
text42 TEXT,
|
||||
text43 TEXT,
|
||||
text44 TEXT,
|
||||
text45 TEXT,
|
||||
text46 TEXT,
|
||||
text47 TEXT,
|
||||
text48 TEXT,
|
||||
text49 TEXT,
|
||||
text50 TEXT,
|
||||
text51 TEXT,
|
||||
text52 TEXT,
|
||||
text53 TEXT,
|
||||
text54 TEXT,
|
||||
text55 TEXT,
|
||||
text56 TEXT,
|
||||
text57 TEXT,
|
||||
text58 TEXT,
|
||||
text59 TEXT,
|
||||
text60 TEXT,
|
||||
text61 TEXT,
|
||||
text62 TEXT,
|
||||
text63 TEXT,
|
||||
text64 TEXT,
|
||||
text65 TEXT,
|
||||
text66 TEXT,
|
||||
text67 TEXT,
|
||||
text68 TEXT,
|
||||
text69 TEXT,
|
||||
text70 TEXT,
|
||||
text71 TEXT,
|
||||
text72 TEXT,
|
||||
text73 TEXT,
|
||||
text74 TEXT,
|
||||
text75 TEXT,
|
||||
text76 TEXT,
|
||||
text77 TEXT,
|
||||
text78 TEXT,
|
||||
text79 TEXT,
|
||||
text80 TEXT,
|
||||
text81 TEXT,
|
||||
text82 TEXT,
|
||||
text83 TEXT,
|
||||
text84 TEXT,
|
||||
text85 TEXT,
|
||||
text86 TEXT,
|
||||
text87 TEXT,
|
||||
text88 TEXT,
|
||||
text89 TEXT,
|
||||
text90 TEXT,
|
||||
text91 TEXT,
|
||||
text92 TEXT,
|
||||
text93 TEXT,
|
||||
text94 TEXT,
|
||||
text95 TEXT,
|
||||
text96 TEXT,
|
||||
text97 TEXT,
|
||||
text98 TEXT,
|
||||
text99 TEXT,
|
||||
text100 TEXT,
|
||||
text101 TEXT,
|
||||
text102 TEXT,
|
||||
text103 TEXT,
|
||||
text104 TEXT,
|
||||
text105 TEXT,
|
||||
text106 TEXT,
|
||||
text107 TEXT,
|
||||
text108 TEXT,
|
||||
text109 TEXT,
|
||||
text110 TEXT,
|
||||
text111 TEXT,
|
||||
text112 TEXT,
|
||||
text113 TEXT,
|
||||
text114 TEXT,
|
||||
text115 TEXT,
|
||||
text116 TEXT,
|
||||
text117 TEXT,
|
||||
text118 TEXT,
|
||||
text119 TEXT,
|
||||
text120 TEXT,
|
||||
text121 TEXT,
|
||||
text122 TEXT,
|
||||
text123 TEXT,
|
||||
text124 TEXT,
|
||||
text125 TEXT,
|
||||
text126 TEXT,
|
||||
text127 TEXT,
|
||||
text128 TEXT,
|
||||
text129 TEXT,
|
||||
text130 TEXT,
|
||||
text131 TEXT,
|
||||
text132 TEXT,
|
||||
text133 TEXT,
|
||||
text134 TEXT,
|
||||
text135 TEXT,
|
||||
text136 TEXT,
|
||||
text137 TEXT,
|
||||
text138 TEXT,
|
||||
text139 TEXT,
|
||||
text140 TEXT,
|
||||
text141 TEXT,
|
||||
text142 TEXT,
|
||||
text143 TEXT,
|
||||
text144 TEXT,
|
||||
text145 TEXT,
|
||||
text146 TEXT,
|
||||
text147 TEXT,
|
||||
text148 TEXT,
|
||||
text149 TEXT,
|
||||
text150 TEXT,
|
||||
text151 TEXT,
|
||||
text152 TEXT,
|
||||
text153 TEXT,
|
||||
text154 TEXT,
|
||||
text155 TEXT,
|
||||
text156 TEXT,
|
||||
text157 TEXT,
|
||||
text158 TEXT,
|
||||
text159 TEXT,
|
||||
text160 TEXT,
|
||||
text161 TEXT,
|
||||
text162 TEXT,
|
||||
text163 TEXT,
|
||||
text164 TEXT,
|
||||
text165 TEXT,
|
||||
text166 TEXT,
|
||||
text167 TEXT,
|
||||
text168 TEXT,
|
||||
text169 TEXT,
|
||||
text170 TEXT,
|
||||
text171 TEXT,
|
||||
text172 TEXT,
|
||||
text173 TEXT,
|
||||
text174 TEXT,
|
||||
text175 TEXT,
|
||||
text176 TEXT,
|
||||
text177 TEXT,
|
||||
text178 TEXT,
|
||||
text179 TEXT,
|
||||
text180 TEXT,
|
||||
text181 TEXT,
|
||||
text182 TEXT,
|
||||
text183 TEXT,
|
||||
text184 TEXT,
|
||||
text185 TEXT,
|
||||
text186 TEXT,
|
||||
text187 TEXT,
|
||||
text188 TEXT,
|
||||
text189 TEXT,
|
||||
text190 TEXT,
|
||||
text191 TEXT,
|
||||
text192 TEXT,
|
||||
text193 TEXT,
|
||||
text194 TEXT,
|
||||
text195 TEXT,
|
||||
text196 TEXT,
|
||||
text197 TEXT
|
||||
) ENGINE = InnoDB;
|
||||
|
||||
INSERT INTO t1 VALUES ('abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef');
|
||||
--enable_warnings
|
||||
|
||||
DELETE FROM t1 WHERE text1 = 'abcdef';
|
||||
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
--disable_warnings
|
||||
SELECT * from t1;
|
||||
--enable_warnings
|
||||
|
||||
DROP TABLE t1;
|
||||
|
@@ -3,11 +3,6 @@
|
||||
#
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
if (`select plugin_auth_version <= "5.5.40-MariaDB-36.1" from information_schema.plugins where plugin_name='innodb'`)
|
||||
{
|
||||
--skip Not fixed in XtraDB as of 5.5.40-MariaDB-36.1 or earlier
|
||||
}
|
||||
|
||||
# Issues with innodb_change_buffering_debug on Windows, so the test scenario
|
||||
# cannot be created on windows
|
||||
--source include/not_windows.inc
|
||||
@@ -16,6 +11,7 @@ if (`select plugin_auth_version <= "5.5.40-MariaDB-36.1" from information_schema
|
||||
--source include/have_debug.inc
|
||||
|
||||
-- disable_query_log
|
||||
call mtr.add_suppression("Flagged corruption of idx.*in CHECK TABLE");
|
||||
# This test setup is extracted from bug56680.test:
|
||||
# The flag innodb_change_buffering_debug is only available in debug builds.
|
||||
# It instructs InnoDB to try to evict pages from the buffer pool when
|
||||
@@ -28,10 +24,10 @@ SET GLOBAL innodb_change_buffering_debug = 1;
|
||||
SET UNIQUE_CHECKS=0;
|
||||
|
||||
CREATE DATABASE pad;
|
||||
let $i=345;
|
||||
let $i=338;
|
||||
while ($i)
|
||||
{
|
||||
--eval CREATE TABLE pad.t$i (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||
--eval CREATE TABLE pad.t$i(a INT PRIMARY KEY)ENGINE=InnoDB;
|
||||
dec $i;
|
||||
}
|
||||
|
||||
|
18
mysql-test/suite/innodb/t/multi_repair-7404.test
Normal file
18
mysql-test/suite/innodb/t/multi_repair-7404.test
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# MDEV-7404 REPAIR multiple tables crash in MDL_ticket::has_stronger_or_equal_type
|
||||
#
|
||||
|
||||
--source include/have_partition.inc
|
||||
--source include/have_innodb.inc
|
||||
create table `t1`(`a` int) engine=innodb partition by key (`a`);
|
||||
create table `t2`(`b` int) engine=innodb;
|
||||
create table `t3`(`c` int) engine=innodb;
|
||||
insert t1 values (1);
|
||||
insert t2 values (2);
|
||||
insert t3 values (3);
|
||||
repair table `t1`,`t2`,`t3`;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
select * from t3;
|
||||
drop table t1, t2, t3;
|
||||
|
@@ -85,6 +85,66 @@ create table sa_t1(id int);
|
||||
insert into sa_t1 values (1), (2);
|
||||
drop table sa_t1;
|
||||
drop database sa_db;
|
||||
create database sa_db;
|
||||
use sa_db;
|
||||
CREATE USER u1 IDENTIFIED BY 'pwd-123';
|
||||
GRANT ALL ON sa_db TO u2 IDENTIFIED BY "pwd-321";
|
||||
SET PASSWORD FOR u1 = PASSWORD('pwd 098');
|
||||
CREATE USER u3 IDENTIFIED BY '';
|
||||
drop user u1, u2, u3;
|
||||
set global server_audit_events='query_ddl';
|
||||
create table t1(id int);
|
||||
insert into t1 values (1), (2);
|
||||
select * from t1;
|
||||
id
|
||||
1
|
||||
2
|
||||
select 2;
|
||||
2
|
||||
2
|
||||
(select 2);
|
||||
2
|
||||
2
|
||||
/*! select 2*/;
|
||||
2
|
||||
2
|
||||
/*comment*/ select 2;
|
||||
2
|
||||
2
|
||||
drop table t1;
|
||||
set global server_audit_events='query_ddl,query_dml';
|
||||
create table t1(id int);
|
||||
insert into t1 values (1), (2);
|
||||
select * from t1;
|
||||
id
|
||||
1
|
||||
2
|
||||
select 2;
|
||||
2
|
||||
2
|
||||
drop table t1;
|
||||
set global server_audit_events='query_dml';
|
||||
create table t1(id int);
|
||||
insert into t1 values (1), (2);
|
||||
select * from t1;
|
||||
id
|
||||
1
|
||||
2
|
||||
select 2;
|
||||
2
|
||||
2
|
||||
(select 2);
|
||||
2
|
||||
2
|
||||
/*! select 2*/;
|
||||
2
|
||||
2
|
||||
/*comment*/ select 2;
|
||||
2
|
||||
2
|
||||
drop table t1;
|
||||
set global server_audit_events='';
|
||||
drop database sa_db;
|
||||
set global server_audit_file_path='.';
|
||||
show status like 'server_audit_current_log';
|
||||
Variable_name Value
|
||||
@@ -176,19 +236,65 @@ TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proc,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,event,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop database sa_db',0
|
||||
TIME,HOSTNAME,root,localhost,ID,0,DISCONNECT,sa_db,,0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'.\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'.\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show status like \'server_audit_current_log\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show status like \'server_audit_current_log\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\' \'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\' \'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show status like \'server_audit_current_log\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'nonexisting_dir/\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'nonexisting_dir/\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'SHOW WARNINGS',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show status like \'server_audit_current_log\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show variables like \'server_audit%\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'create database sa_db',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'use sa_db',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,db,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,columns_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,procs_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proxies_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u1 IDENTIFIED BY *****',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'GRANT ALL ON sa_db TO u2 IDENTIFIED BY *****',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'SET PASSWORD FOR u1 = PASSWORD(*****)',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,db,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,columns_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,procs_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proxies_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u3 IDENTIFIED BY *****',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,db,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,columns_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,procs_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proxies_priv,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop user u1, u2, u3',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'create table t1(id int)',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop table t1',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'create table t1(id int)',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'insert into t1 values (1), (2)',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select * from t1',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select 2',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop table t1',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'insert into t1 values (1), (2)',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select * from t1',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select 2',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'(select 2)',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'/*! select 2*/',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'/*comment*/ select 2',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_events=\'\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,READ,mysql,proc,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proc,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,event,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop database sa_db',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'.\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'.\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\' \'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\' \'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'nonexisting_dir/\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'nonexisting_dir/\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'SHOW WARNINGS',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show variables like \'server_audit%\'',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,plugin,
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'uninstall plugin server_audit',0
|
||||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'uninstall plugin server_audit',0
|
||||
|
@@ -15,6 +15,7 @@ connect (con1,localhost,root,,mysql);
|
||||
connection default;
|
||||
disconnect con1;
|
||||
--sleep 2
|
||||
--sleep 2
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
--error ER_ACCESS_DENIED_ERROR
|
||||
connect (con1,localhost,no_such_user,,mysql);
|
||||
@@ -45,6 +46,8 @@ set global server_audit_events='';
|
||||
create database sa_db;
|
||||
connect (con1,localhost,root,,test);
|
||||
connection con1;
|
||||
--sleep 2
|
||||
--sleep 2
|
||||
create table t1 (id2 int);
|
||||
insert into t1 values (1), (2);
|
||||
select * from t1;
|
||||
@@ -56,8 +59,43 @@ drop table sa_t1;
|
||||
drop database sa_db;
|
||||
connection default;
|
||||
disconnect con1;
|
||||
|
||||
--sleep 2
|
||||
--sleep 2
|
||||
create database sa_db;
|
||||
use sa_db;
|
||||
CREATE USER u1 IDENTIFIED BY 'pwd-123';
|
||||
GRANT ALL ON sa_db TO u2 IDENTIFIED BY "pwd-321";
|
||||
SET PASSWORD FOR u1 = PASSWORD('pwd 098');
|
||||
CREATE USER u3 IDENTIFIED BY '';
|
||||
drop user u1, u2, u3;
|
||||
|
||||
set global server_audit_events='query_ddl';
|
||||
create table t1(id int);
|
||||
insert into t1 values (1), (2);
|
||||
select * from t1;
|
||||
select 2;
|
||||
(select 2);
|
||||
/*! select 2*/;
|
||||
/*comment*/ select 2;
|
||||
drop table t1;
|
||||
set global server_audit_events='query_ddl,query_dml';
|
||||
create table t1(id int);
|
||||
insert into t1 values (1), (2);
|
||||
select * from t1;
|
||||
select 2;
|
||||
drop table t1;
|
||||
set global server_audit_events='query_dml';
|
||||
create table t1(id int);
|
||||
insert into t1 values (1), (2);
|
||||
select * from t1;
|
||||
select 2;
|
||||
(select 2);
|
||||
/*! select 2*/;
|
||||
/*comment*/ select 2;
|
||||
drop table t1;
|
||||
set global server_audit_events='';
|
||||
drop database sa_db;
|
||||
|
||||
set global server_audit_file_path='.';
|
||||
--replace_regex /\.[\\\/]/HOME_DIR\//
|
||||
show status like 'server_audit_current_log';
|
||||
|
16
mysql-test/suite/rpl/r/rpl_drop_db_fail.result
Normal file
16
mysql-test/suite/rpl/r/rpl_drop_db_fail.result
Normal file
@@ -0,0 +1,16 @@
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
CREATE DATABASE IF NOT EXISTS db1;
|
||||
CREATE DATABASE IF NOT EXISTS db2;
|
||||
use db1;
|
||||
CREATE TABLE a(id INT);
|
||||
CREATE VIEW v AS SELECT * FROM a;
|
||||
CREATE TABLE table_father(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20)) ENGINE=INNODB;
|
||||
use db2;
|
||||
CREATE TABLE table_child(id INT PRIMARY KEY, info VARCHAR(20), father_id INT) ENGINE=INNODB;
|
||||
ALTER TABLE table_child ADD CONSTRAINT aaa FOREIGN KEY (father_id) REFERENCES db1.table_father(id);
|
||||
DROP DATABASE db1;
|
||||
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails
|
||||
DROP DATABASE db2;
|
||||
DROP DATABASE db1;
|
||||
include/rpl_end.inc
|
32
mysql-test/suite/rpl/t/rpl_drop_db_fail.test
Normal file
32
mysql-test/suite/rpl/t/rpl_drop_db_fail.test
Normal file
@@ -0,0 +1,32 @@
|
||||
###############################################################################
|
||||
# Bug#20041860: SLAVE ERROR WHEN DROP DATABASE
|
||||
#
|
||||
# Test:
|
||||
# =====
|
||||
# Create two databases such that one database has a dependency over the other
|
||||
# database and try to drop the database which has a dependency. This should
|
||||
# not cause slave to break.
|
||||
###############################################################################
|
||||
--source include/have_innodb.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
connection master;
|
||||
CREATE DATABASE IF NOT EXISTS db1;
|
||||
CREATE DATABASE IF NOT EXISTS db2;
|
||||
|
||||
use db1;
|
||||
CREATE TABLE a(id INT);
|
||||
CREATE VIEW v AS SELECT * FROM a;
|
||||
CREATE TABLE table_father(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20)) ENGINE=INNODB;
|
||||
|
||||
use db2;
|
||||
CREATE TABLE table_child(id INT PRIMARY KEY, info VARCHAR(20), father_id INT) ENGINE=INNODB;
|
||||
ALTER TABLE table_child ADD CONSTRAINT aaa FOREIGN KEY (father_id) REFERENCES db1.table_father(id);
|
||||
|
||||
--error ER_ROW_IS_REFERENCED
|
||||
DROP DATABASE db1;
|
||||
DROP DATABASE db2;
|
||||
--sync_slave_with_master
|
||||
--connection master
|
||||
DROP DATABASE db1;
|
||||
--source include/rpl_end.inc
|
@@ -23,7 +23,7 @@ Warnings:
|
||||
Warning 1292 Truncated incorrect stored_program_cache value: '-1'
|
||||
SELECT @@global.stored_program_cache;
|
||||
@@global.stored_program_cache
|
||||
256
|
||||
0
|
||||
SET @@global.stored_program_cache =100000000000;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect stored_program_cache value: '100000000000'
|
||||
@@ -31,11 +31,9 @@ SELECT @@global.stored_program_cache;
|
||||
@@global.stored_program_cache
|
||||
524288
|
||||
SET @@global.stored_program_cache = 0;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect stored_program_cache value: '0'
|
||||
SELECT @@global.stored_program_cache;
|
||||
@@global.stored_program_cache
|
||||
256
|
||||
0
|
||||
SET @@global.stored_program_cache = 10000.01;
|
||||
ERROR 42000: Incorrect argument type to variable 'stored_program_cache'
|
||||
SET @@global.stored_program_cache = ON;
|
||||
|
52
mysql-test/suite/sys_vars/r/stored_program_cache_func.result
Normal file
52
mysql-test/suite/sys_vars/r/stored_program_cache_func.result
Normal file
@@ -0,0 +1,52 @@
|
||||
create procedure p1() select 1;
|
||||
flush status;
|
||||
show status like 'handler_read_key';
|
||||
Variable_name Value
|
||||
Handler_read_key 0
|
||||
call p1;
|
||||
1
|
||||
1
|
||||
show status like 'handler_read_key';
|
||||
Variable_name Value
|
||||
Handler_read_key 1
|
||||
call p1;
|
||||
1
|
||||
1
|
||||
show status like 'handler_read_key';
|
||||
Variable_name Value
|
||||
Handler_read_key 1
|
||||
set global stored_program_cache=0;
|
||||
call p1;
|
||||
1
|
||||
1
|
||||
show status like 'handler_read_key';
|
||||
Variable_name Value
|
||||
Handler_read_key 2
|
||||
call p1;
|
||||
1
|
||||
1
|
||||
show status like 'handler_read_key';
|
||||
Variable_name Value
|
||||
Handler_read_key 3
|
||||
drop procedure p1;
|
||||
set global stored_program_cache=default;
|
||||
create procedure pr(i int) begin
|
||||
create table t1 (a int, b int);
|
||||
if (i = 1) then alter table t1 drop a;
|
||||
else alter table t1 drop b;
|
||||
end if;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
end |
|
||||
call pr(1);
|
||||
b
|
||||
call pr(2);
|
||||
ERROR 42S22: Unknown column 'test.t1.b' in 'field list'
|
||||
drop table t1;
|
||||
set global stored_program_cache=0;
|
||||
call pr(1);
|
||||
b
|
||||
call pr(2);
|
||||
a
|
||||
drop procedure pr;
|
||||
set global stored_program_cache=default;
|
43
mysql-test/suite/sys_vars/t/stored_program_cache_func.test
Normal file
43
mysql-test/suite/sys_vars/t/stored_program_cache_func.test
Normal file
@@ -0,0 +1,43 @@
|
||||
create procedure p1() select 1;
|
||||
|
||||
flush status;
|
||||
show status like 'handler_read_key';
|
||||
call p1;
|
||||
show status like 'handler_read_key';
|
||||
call p1;
|
||||
show status like 'handler_read_key';
|
||||
|
||||
set global stored_program_cache=0;
|
||||
|
||||
call p1;
|
||||
show status like 'handler_read_key';
|
||||
call p1;
|
||||
show status like 'handler_read_key';
|
||||
|
||||
drop procedure p1;
|
||||
set global stored_program_cache=default;
|
||||
|
||||
# Test for missing SP automatic reparsing.
|
||||
# when MDEV-5816 is implemented, it should be removed.
|
||||
|
||||
--delimiter |
|
||||
create procedure pr(i int) begin
|
||||
create table t1 (a int, b int);
|
||||
if (i = 1) then alter table t1 drop a;
|
||||
else alter table t1 drop b;
|
||||
end if;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
end |
|
||||
--delimiter ;
|
||||
call pr(1);
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
call pr(2);
|
||||
drop table t1;
|
||||
|
||||
set global stored_program_cache=0;
|
||||
call pr(1);
|
||||
call pr(2);
|
||||
drop procedure pr;
|
||||
set global stored_program_cache=default;
|
||||
|
1
mysql-test/t/error_simulation-master.opt
Normal file
1
mysql-test/t/error_simulation-master.opt
Normal file
@@ -0,0 +1 @@
|
||||
--tmpdir=$MYSQLTEST_VARDIR/tmp
|
@@ -1,4 +1,5 @@
|
||||
-- source include/have_debug.inc
|
||||
--source include/not_embedded.inc
|
||||
|
||||
#
|
||||
# Bug #28499: crash for grouping query when tmp_table_size is too small
|
||||
@@ -112,3 +113,38 @@ DROP TABLE t1,t2;
|
||||
--echo #
|
||||
--echo # End of 5.1 tests
|
||||
--echo #
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # BUG#11747548:DETECT ORPHAN TEMP-POOL FILES, AND HANDLE GRACEFULLY.
|
||||
--echo #
|
||||
|
||||
--echo #Set up.
|
||||
CREATE TABLE pid_table(pid_no INT);
|
||||
CREATE TABLE t1 (a BLOB);
|
||||
INSERT INTO t1 VALUES (1), (2);
|
||||
|
||||
--echo #Create MYD and MYI files for intrinsic temp table.
|
||||
--let $pid_file=`SELECT @@pid_file`
|
||||
--replace_result $pid_file pid_file
|
||||
--eval LOAD DATA LOCAL INFILE '$pid_file' INTO TABLE pid_table
|
||||
--let $temp_file= `SELECT CONCAT('#sql_', LCASE(HEX(pid_no)), '_0') FROM pid_table`
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/$temp_file.MYD
|
||||
EOF
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/$temp_file.MYI
|
||||
EOF
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/$temp_file.MAD
|
||||
EOF
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/$temp_file.MAI
|
||||
EOF
|
||||
|
||||
--echo #Reports an error since the temp file already exists.
|
||||
--replace_regex /.*Can't create\/write *.*/Can't create or write to file/
|
||||
#--error 1
|
||||
SELECT a FROM t1 ORDER BY rand(1);
|
||||
|
||||
--echo #With patch, the query executes successfully.
|
||||
SELECT a FROM t1 ORDER BY rand(1);
|
||||
|
||||
--echo #cleanup
|
||||
DROP TABLE t1, pid_table;
|
||||
|
@@ -36,7 +36,7 @@ if ($dir_bin eq '/usr/') {
|
||||
# Slackware
|
||||
$dir_docs = glob "$dir_bin/doc/mariadb-[0-9]*" unless -d $dir_docs;
|
||||
} else {
|
||||
# tar.gz package, Windows, or developer work (in BZR)
|
||||
# tar.gz package, Windows, or developer work (in git)
|
||||
$dir_docs = $dir_bin;
|
||||
if(-d "$dir_docs/docs") {
|
||||
$dir_docs = "$dir_docs/docs"; # package
|
||||
@@ -49,7 +49,7 @@ $found_revision = "No line 'revision-id: .....'";
|
||||
open(I_SRC,"<","$dir_docs/INFO_SRC") or print "Cannot open 'INFO_SRC' in '$dir_docs' (starting from bindir '$dir_bin')\n";
|
||||
while(defined ($line = <I_SRC>)) {
|
||||
if ($line =~ m|^MySQL source \d\.\d\.\d+|) {$found_version = "Found MySQL version number";}
|
||||
if ($line =~ m|^revision-id: .*@.*-2\d{13}-\w+$|) {$found_revision = "Found BZR revision id";}
|
||||
if ($line =~ m|^commit: \w{40}$|) {$found_revision = "Found GIT revision id";}
|
||||
}
|
||||
close I_SRC;
|
||||
print "INFO_SRC: $found_version / $found_revision\n";
|
||||
|
14
mysql-test/t/frm_bad_row_type-7333.test
Normal file
14
mysql-test/t/frm_bad_row_type-7333.test
Normal file
@@ -0,0 +1,14 @@
|
||||
#
|
||||
# MDEV-7333 "'show table status like 'table_name'" on tokudb table lead to MariaDB crash
|
||||
#
|
||||
let $datadir= `select @@datadir`;
|
||||
call mtr.add_suppression("bad_row_type.frm: invalid value 11 for the field row_format");
|
||||
copy_file std_data/bad_row_type.MYD $datadir/test/bad_row_type.MYD;
|
||||
copy_file std_data/bad_row_type.MYI $datadir/test/bad_row_type.MYI;
|
||||
copy_file std_data/bad_row_type.frm $datadir/test/bad_row_type.frm;
|
||||
|
||||
select * from bad_row_type;
|
||||
show create table bad_row_type;
|
||||
replace_column 12 x 13 x;
|
||||
show table status like 'bad_row_type';
|
||||
drop table bad_row_type;
|
@@ -1465,4 +1465,9 @@ create table t1 (pt point);
|
||||
insert into t1 values(Geomfromtext('POLYGON((1 1, 2 2, 2 1, 1 1))'));
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# MDEV-7516 Assertion `!cur_p->event' failed in Gcalc_scan_iterator::arrange_event(int, int)
|
||||
#
|
||||
SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100));
|
||||
|
||||
--echo End of 5.5 tests
|
||||
|
@@ -1799,6 +1799,23 @@ drop view v1;
|
||||
--echo # Clean-up.
|
||||
drop database mysqltest;
|
||||
|
||||
--echo #
|
||||
--echo # Test for bug #16869534 - "QUERYING SUBSET OF COLUMNS DOESN'T USE TABLE
|
||||
--echo # CACHE; OPENED_TABLES INCREASES"
|
||||
--echo #
|
||||
--disable_result_log
|
||||
SELECT * FROM INFORMATION_SCHEMA.TABLES;
|
||||
--enable_result_log
|
||||
SELECT VARIABLE_VALUE INTO @val1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE
|
||||
VARIABLE_NAME LIKE 'Opened_tables';
|
||||
--disable_result_log
|
||||
SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES;
|
||||
--enable_result_log
|
||||
--echo # The below SELECT query should give same output as above SELECT query.
|
||||
SELECT VARIABLE_VALUE INTO @val2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE
|
||||
VARIABLE_NAME LIKE 'Opened_tables';
|
||||
--echo # The below select should return '1'
|
||||
SELECT @val1 = @val2;
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
|
@@ -13,8 +13,8 @@
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1, `t``1`, `t 1`;
|
||||
drop view if exists v1;
|
||||
DROP TABLE IF EXISTS t1, `t``1`, `t 1`, test.`t.1`, v1;
|
||||
drop view if exists t1, `t``1`, `t 1`, test.`t.1`, v1;
|
||||
drop database if exists client_test_db;
|
||||
# Repair any tables in mysql, sometimes the slow_log is marked as crashed
|
||||
# after server has been killed
|
||||
@@ -313,3 +313,13 @@ CHECK TABLE bug47205 FOR UPGRADE;
|
||||
CHECK TABLE bug47205 FOR UPGRADE;
|
||||
|
||||
DROP TABLE bug47205;
|
||||
|
||||
--echo #
|
||||
--echo #MDEV-6128:[PATCH] mysqlcheck wrongly escapes '.' in table names
|
||||
--echo #
|
||||
CREATE TABLE test.`t.1` (id int);
|
||||
|
||||
--echo mysqlcheck test t.1
|
||||
--exec $MYSQL_CHECK test t.1
|
||||
|
||||
drop table test.`t.1`;
|
||||
|
@@ -15,8 +15,8 @@ insert into t1 values (5);
|
||||
|
||||
grant select on test.* to ssl_user1@localhost require SSL;
|
||||
grant select on test.* to ssl_user2@localhost require cipher "DHE-RSA-AES256-SHA";
|
||||
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
|
||||
grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client" ISSUER "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=CA";
|
||||
grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
|
||||
flush privileges;
|
||||
|
||||
|
@@ -2,6 +2,7 @@
|
||||
# MDEV-4578 information_schema.processlist reports incorrect value for Time (2147483647)
|
||||
#
|
||||
|
||||
source include/have_debug.inc;
|
||||
source include/have_debug_sync.inc;
|
||||
|
||||
let $tid= `SELECT CONNECTION_ID()`;
|
||||
@@ -21,6 +22,7 @@ SET DEBUG_SYNC = 'now SIGNAL fill_schema_proceed';
|
||||
connection con1;
|
||||
--replace_result $tid TID
|
||||
reap;
|
||||
set debug_sync='reset';
|
||||
connection default;
|
||||
|
||||
#
|
||||
@@ -28,15 +30,13 @@ connection default;
|
||||
#
|
||||
|
||||
connection con1;
|
||||
# Trigger a signal once the thread has gone from "Query" to "Sleep" command
|
||||
# state. Note we need to execute this twice: Once at the end of SET DEBUG_SYNC,
|
||||
# and once for the intended time, at the end of SELECT SLEEP().
|
||||
SET DEBUG_SYNC = 'dispatch_command_end SIGNAL query_done EXECUTE 2';
|
||||
connection default;
|
||||
# Wait for and clear the first signal set during SET DEBUG_SYNC.
|
||||
SET DEBUG_SYNC= 'now WAIT_FOR query_done';
|
||||
SET DEBUG_SYNC= 'now SIGNAL nosignal';
|
||||
connection con1;
|
||||
# This DBUG insertion triggers a DEBUG_SYNC signal "query_done" once
|
||||
# the below SELECT SLEEP(5) has gone from "Query" to "Sleep" command
|
||||
# state. (We cannot just set the DEBUG_SYNC directly here, because
|
||||
# then it can trigger at the end of the SET DEBUG_SYNC statement (or
|
||||
# at the end of the Prepare step of the SELECT, if --ps-protocol),
|
||||
# thus occuring too early).
|
||||
SET debug_dbug="+d,sleep_inject_query_done_debug_sync";
|
||||
select sleep(5); #run a query that will take some time
|
||||
connection default;
|
||||
|
||||
|
@@ -5335,6 +5335,38 @@ DROP FUNCTION f1;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
||||
create view v1 as select 1;
|
||||
|
||||
--let $MYSQLD_DATADIR= `select @@datadir`
|
||||
--let SEARCH_FILE= $MYSQLD_DATADIR/test/v1.frm
|
||||
--let SEARCH_PATTERN=mariadb-version
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
drop view v1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-7260: Crash in get_best_combination when executing multi-table
|
||||
--echo # UPDATE with nested views
|
||||
--echo #
|
||||
|
||||
CREATE TABLE `t1` (`id` bigint(20));
|
||||
|
||||
INSERT INTO `t1` VALUES (1),(2);
|
||||
|
||||
CREATE TABLE `t2` (`id` bigint(20));
|
||||
|
||||
CREATE TABLE `t3` (`id` bigint(20), `flag` tinyint(4));
|
||||
|
||||
create view v1 as select id from t1;
|
||||
|
||||
create view v2 as select t2.* from (t2 left join v1 using (id));
|
||||
|
||||
update t3 left join v2 using (id) set flag=flag+1;
|
||||
|
||||
drop view v2, v1;
|
||||
drop table t1, t2, t3;
|
||||
|
||||
--echo # -----------------------------------------------------------------
|
||||
--echo # -- End of 5.5 tests.
|
||||
--echo # -----------------------------------------------------------------
|
||||
|
@@ -729,33 +729,36 @@ my_context_continue(struct my_context *c)
|
||||
|
||||
#ifdef MY_CONTEXT_DISABLE
|
||||
int
|
||||
my_context_continue(struct my_context *c)
|
||||
my_context_continue(struct my_context *c __attribute__((unused)))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
|
||||
my_context_spawn(struct my_context *c __attribute__((unused)),
|
||||
void (*f)(void *) __attribute__((unused)),
|
||||
void *d __attribute__((unused)))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
my_context_yield(struct my_context *c)
|
||||
my_context_yield(struct my_context *c __attribute__((unused)))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
my_context_init(struct my_context *c, size_t stack_size)
|
||||
my_context_init(struct my_context *c __attribute__((unused)),
|
||||
size_t stack_size __attribute__((unused)))
|
||||
{
|
||||
return -1; /* Out of memory */
|
||||
}
|
||||
|
||||
void
|
||||
my_context_destroy(struct my_context *c)
|
||||
my_context_destroy(struct my_context *c __attribute__((unused)))
|
||||
{
|
||||
}
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
||||
|
||||
<!--
|
||||
Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
Copyright (c) 2010, 2015, 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
|
||||
@@ -30,7 +30,7 @@
|
||||
<Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" Disabled="yes" />
|
||||
<Control Id="Description" Type="Text" X="135" Y="80" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgDescription)" />
|
||||
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgTitle)" />
|
||||
<Control Id="CopyrightText" Type="Text" X="135" Y="200" Width="220" Height="40" Transparent="yes" Text="Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved." />
|
||||
<Control Id="CopyrightText" Type="Text" X="135" Y="200" Width="220" Height="40" Transparent="yes" Text="Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved." />
|
||||
<Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.WelcomeDlgBitmap)" />
|
||||
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
|
||||
</Dialog>
|
||||
|
@@ -14,11 +14,10 @@
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
|
||||
#define PLUGIN_VERSION 0x101
|
||||
#define PLUGIN_STR_VERSION "1.1.7"
|
||||
#define PLUGIN_VERSION 0x102
|
||||
#define PLUGIN_STR_VERSION "1.2.0"
|
||||
|
||||
#include <my_config.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
@@ -142,6 +141,10 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
|
||||
#define flogger_mutex_lock(A) pthread_mutex_lock(&(A)->m_mutex)
|
||||
#define flogger_mutex_unlock(A) pthread_mutex_unlock(&(A)->m_mutex)
|
||||
|
||||
static char **int_mysql_data_home;
|
||||
static char *default_home= (char *)".";
|
||||
#define mysql_data_home (*int_mysql_data_home)
|
||||
|
||||
#include "../../mysys/file_logger.c"
|
||||
#endif /*!MARIADB_ONLY*/
|
||||
|
||||
@@ -165,6 +168,7 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
|
||||
extern char server_version[];
|
||||
static const char *serv_ver= NULL;
|
||||
static int started_mysql= 0;
|
||||
static int started_mariadb= 0;
|
||||
static int maria_above_5= 0;
|
||||
static char *incl_users, *excl_users,
|
||||
*file_path, *syslog_info;
|
||||
@@ -222,11 +226,15 @@ static MYSQL_SYSVAR_STR(excl_users, excl_users, PLUGIN_VAR_RQCMDARG,
|
||||
NULL, update_excl_users, NULL);
|
||||
/* bits in the event filter. */
|
||||
#define EVENT_CONNECT 1
|
||||
#define EVENT_QUERY 2
|
||||
#define EVENT_QUERY_ALL 2
|
||||
#define EVENT_QUERY 26
|
||||
#define EVENT_TABLE 4
|
||||
#define EVENT_QUERY_DDL 8
|
||||
#define EVENT_QUERY_DML 16
|
||||
|
||||
static const char *event_names[]=
|
||||
{
|
||||
"CONNECT", "QUERY", "TABLE",
|
||||
"CONNECT", "QUERY", "TABLE", "QUERY_DDL", "QUERY_DML",
|
||||
NULL
|
||||
};
|
||||
static TYPELIB events_typelib=
|
||||
@@ -234,7 +242,7 @@ static TYPELIB events_typelib=
|
||||
array_elements(event_names) - 1, "", event_names, NULL
|
||||
};
|
||||
static MYSQL_SYSVAR_SET(events, events, PLUGIN_VAR_RQCMDARG,
|
||||
"Specifies the set of events to monitor. Can be CONNECT, QUERY, TABLE.",
|
||||
"Specifies the set of events to monitor. Can be CONNECT, QUERY, TABLE, QUERY_DDL, QUERY_DML.",
|
||||
NULL, NULL, 0, &events_typelib);
|
||||
#define OUTPUT_SYSLOG 0
|
||||
#define OUTPUT_FILE 1
|
||||
@@ -526,6 +534,103 @@ static int user_hash_fill(HASH *h, char *users,
|
||||
}
|
||||
|
||||
|
||||
enum sa_keywords
|
||||
{
|
||||
SQLCOM_NOTHING=0,
|
||||
SQLCOM_DDL,
|
||||
SQLCOM_DML,
|
||||
SQLCOM_GRANT,
|
||||
SQLCOM_CREATE_USER,
|
||||
SQLCOM_CHANGE_MASTER,
|
||||
SQLCOM_CREATE_SERVER,
|
||||
SQLCOM_SET_OPTION,
|
||||
SQLCOM_ALTER_SERVER,
|
||||
SQLCOM_TRUNCATE,
|
||||
SQLCOM_QUERY_ADMIN,
|
||||
SQLCOM_DCL,
|
||||
};
|
||||
|
||||
struct sa_keyword
|
||||
{
|
||||
int length;
|
||||
const char *wd;
|
||||
struct sa_keyword *next;
|
||||
enum sa_keywords type;
|
||||
};
|
||||
|
||||
|
||||
struct sa_keyword xml_word= {3, "XML", 0, SQLCOM_NOTHING};
|
||||
struct sa_keyword user_word= {4, "USER", 0, SQLCOM_NOTHING};
|
||||
struct sa_keyword data_word= {4, "DATA", 0, SQLCOM_NOTHING};
|
||||
struct sa_keyword server_word= {6, "SERVER", 0, SQLCOM_NOTHING};
|
||||
struct sa_keyword master_word= {6, "MASTER", 0, SQLCOM_NOTHING};
|
||||
struct sa_keyword password_word= {8, "PASSWORD", 0, SQLCOM_NOTHING};
|
||||
struct sa_keyword function_word= {8, "FUNCTION", 0, SQLCOM_NOTHING};
|
||||
struct sa_keyword statement_word= {9, "STATEMENT", 0, SQLCOM_NOTHING};
|
||||
struct sa_keyword procedure_word= {9, "PROCEDURE", 0, SQLCOM_NOTHING};
|
||||
|
||||
|
||||
struct sa_keyword keywords_to_skip[]=
|
||||
{
|
||||
{3, "SET", &statement_word, SQLCOM_QUERY_ADMIN},
|
||||
{0, NULL, 0, SQLCOM_DDL}
|
||||
};
|
||||
|
||||
|
||||
struct sa_keyword not_ddl_keywords[]=
|
||||
{
|
||||
{4, "DROP", &function_word, SQLCOM_QUERY_ADMIN},
|
||||
{4, "DROP", &procedure_word, SQLCOM_QUERY_ADMIN},
|
||||
{4, "DROP", &user_word, SQLCOM_DCL},
|
||||
{6, "CREATE", &user_word, SQLCOM_DCL},
|
||||
{6, "CREATE", &function_word, SQLCOM_QUERY_ADMIN},
|
||||
{6, "CREATE", &procedure_word, SQLCOM_QUERY_ADMIN},
|
||||
{6, "RENAME", &user_word, SQLCOM_DCL},
|
||||
{0, NULL, 0, SQLCOM_DDL}
|
||||
};
|
||||
|
||||
|
||||
struct sa_keyword ddl_keywords[]=
|
||||
{
|
||||
{4, "DROP", 0, SQLCOM_DDL},
|
||||
{5, "ALTER", 0, SQLCOM_DDL},
|
||||
{6, "CREATE", 0, SQLCOM_DDL},
|
||||
{6, "RENAME", 0, SQLCOM_DDL},
|
||||
{8, "TRUNCATE", 0, SQLCOM_DDL},
|
||||
{0, NULL, 0, SQLCOM_DDL}
|
||||
};
|
||||
|
||||
|
||||
struct sa_keyword dml_keywords[]=
|
||||
{
|
||||
{2, "DO", 0, SQLCOM_DML},
|
||||
{4, "CALL", 0, SQLCOM_DML},
|
||||
{4, "LOAD", &data_word, SQLCOM_DML},
|
||||
{4, "LOAD", &xml_word, SQLCOM_DML},
|
||||
{6, "DELETE", 0, SQLCOM_DML},
|
||||
{6, "INSERT", 0, SQLCOM_DML},
|
||||
{6, "SELECT", 0, SQLCOM_DML},
|
||||
{6, "UPDATE", 0, SQLCOM_DML},
|
||||
{7, "HANDLER", 0, SQLCOM_DML},
|
||||
{7, "REPLACE", 0, SQLCOM_DML},
|
||||
{0, NULL, 0, SQLCOM_DML}
|
||||
};
|
||||
|
||||
|
||||
struct sa_keyword passwd_keywords[]=
|
||||
{
|
||||
{3, "SET", &password_word, SQLCOM_SET_OPTION},
|
||||
{5, "ALTER", &server_word, SQLCOM_ALTER_SERVER},
|
||||
{5, "GRANT", 0, SQLCOM_GRANT},
|
||||
{6, "CREATE", &user_word, SQLCOM_CREATE_USER},
|
||||
{6, "CREATE", &server_word, SQLCOM_CREATE_SERVER},
|
||||
{6, "CHANGE", &master_word, SQLCOM_CHANGE_MASTER},
|
||||
{0, NULL, 0, SQLCOM_NOTHING}
|
||||
};
|
||||
|
||||
#define MAX_KEYWORD 9
|
||||
|
||||
|
||||
static void error_header()
|
||||
{
|
||||
struct tm tm_time;
|
||||
@@ -563,6 +668,7 @@ struct connection_info
|
||||
int log_always;
|
||||
};
|
||||
|
||||
|
||||
static HASH connection_hash;
|
||||
|
||||
|
||||
@@ -773,6 +879,21 @@ static struct connection_info *
|
||||
#define SAFE_STRLEN(s) (s ? strlen(s) : 0)
|
||||
|
||||
|
||||
static int is_space(char c)
|
||||
{
|
||||
return c == ' ' || c == '\r' || c == '\n' || c == '\t';
|
||||
}
|
||||
|
||||
|
||||
#define SKIP_SPACES(str) \
|
||||
do { \
|
||||
while (is_space(*str)) \
|
||||
++str; \
|
||||
} while(0)
|
||||
|
||||
|
||||
|
||||
|
||||
static struct connection_info *
|
||||
add_connection_initdb(const struct mysql_event_general *event)
|
||||
{
|
||||
@@ -980,6 +1101,98 @@ static size_t escape_string(const char *str, unsigned int len,
|
||||
}
|
||||
|
||||
|
||||
static size_t escape_string_hide_passwords(const char *str, unsigned int len,
|
||||
char *result, size_t result_len,
|
||||
const char *word1, size_t word1_len,
|
||||
const char *word2, size_t word2_len,
|
||||
int next_text_string)
|
||||
{
|
||||
const char *res_start= result;
|
||||
const char *res_end= result + result_len - 2;
|
||||
size_t d_len;
|
||||
char b_char;
|
||||
|
||||
while (len)
|
||||
{
|
||||
if (len > word1_len + 1 && strncasecmp(str, word1, word1_len) == 0)
|
||||
{
|
||||
const char *next_s= str + word1_len;
|
||||
size_t c;
|
||||
|
||||
if (next_text_string)
|
||||
{
|
||||
while (*next_s && *next_s != '\'' && *next_s != '"')
|
||||
++next_s;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (word2)
|
||||
{
|
||||
SKIP_SPACES(next_s);
|
||||
if (len < (next_s - str) + word2_len + 1 ||
|
||||
strncasecmp(next_s, word2, word2_len) != 0)
|
||||
goto no_password;
|
||||
next_s+= word2_len;
|
||||
}
|
||||
|
||||
while (*next_s && *next_s != '\'' && *next_s != '"')
|
||||
++next_s;
|
||||
}
|
||||
|
||||
d_len= next_s - str;
|
||||
if (result + d_len + 5 > res_end)
|
||||
break;
|
||||
|
||||
for (c=0; c<d_len; c++)
|
||||
result[c]= is_space(str[c]) ? ' ' : str[c];
|
||||
|
||||
memmove(result + d_len, "*****", 5);
|
||||
result+= d_len + 5;
|
||||
b_char= *(next_s++);
|
||||
while (*next_s)
|
||||
{
|
||||
if (*next_s == b_char)
|
||||
{
|
||||
++next_s;
|
||||
break;
|
||||
}
|
||||
if (*next_s == '\\')
|
||||
{
|
||||
if (next_s[1])
|
||||
next_s++;
|
||||
}
|
||||
next_s++;
|
||||
}
|
||||
len-= next_s - str;
|
||||
str= next_s;
|
||||
continue;
|
||||
}
|
||||
no_password:
|
||||
if (result >= res_end)
|
||||
break;
|
||||
if (*str == '\'')
|
||||
{
|
||||
*(result++)= '\\';
|
||||
*(result++)= '\'';
|
||||
}
|
||||
else if (*str == '\\')
|
||||
{
|
||||
*(result++)= '\\';
|
||||
*(result++)= '\\';
|
||||
}
|
||||
else if (is_space(*str))
|
||||
*(result++)= ' ';
|
||||
else
|
||||
*(result++)= *str;
|
||||
str++;
|
||||
len--;
|
||||
}
|
||||
*result= 0;
|
||||
return result - res_start;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int do_log_user(const char *name)
|
||||
{
|
||||
size_t len;
|
||||
@@ -998,6 +1211,96 @@ static int do_log_user(const char *name)
|
||||
}
|
||||
|
||||
|
||||
static int get_next_word(const char *query, char *word)
|
||||
{
|
||||
int len= 0;
|
||||
char c;
|
||||
while ((c= query[len]))
|
||||
{
|
||||
if (c >= 'a' && c <= 'z')
|
||||
word[len]= 'A' + (c-'a');
|
||||
else if (c >= 'A' && c <= 'Z')
|
||||
word[len]= c;
|
||||
else
|
||||
break;
|
||||
|
||||
if (len++ == MAX_KEYWORD)
|
||||
return 0;
|
||||
}
|
||||
word[len]= 0;
|
||||
return len;
|
||||
}
|
||||
|
||||
|
||||
static int filter_query_type(const char *query, struct sa_keyword *kwd)
|
||||
{
|
||||
int qwe_in_list;
|
||||
char fword[MAX_KEYWORD + 1], nword[MAX_KEYWORD + 1];
|
||||
int len, nlen= 0;
|
||||
const struct sa_keyword *l_keywords;
|
||||
|
||||
while (*query && (is_space(*query) || *query == '(' || *query == '/'))
|
||||
{
|
||||
/* comment handling */
|
||||
if (*query == '/' && query[1] == '*')
|
||||
{
|
||||
if (query[2] == '!')
|
||||
{
|
||||
query+= 3;
|
||||
while (*query >= '0' && *query <= '9')
|
||||
query++;
|
||||
continue;
|
||||
}
|
||||
query+= 2;
|
||||
while (*query)
|
||||
{
|
||||
if (*query=='*' && query[1] == '/')
|
||||
{
|
||||
query+= 2;
|
||||
break;
|
||||
}
|
||||
query++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
query++;
|
||||
}
|
||||
|
||||
qwe_in_list= 0;
|
||||
if (!(len= get_next_word(query, fword)))
|
||||
goto not_in_list;
|
||||
query+= len+1;
|
||||
|
||||
l_keywords= kwd;
|
||||
while (l_keywords->length)
|
||||
{
|
||||
if (l_keywords->length == len && strncmp(l_keywords->wd, fword, len) == 0)
|
||||
{
|
||||
if (l_keywords->next)
|
||||
{
|
||||
if (nlen == 0)
|
||||
{
|
||||
while (*query && is_space(*query))
|
||||
query++;
|
||||
nlen= get_next_word(query, nword);
|
||||
}
|
||||
if (l_keywords->next->length != nlen ||
|
||||
strncmp(l_keywords->next->wd, nword, nlen) != 0)
|
||||
goto do_loop;
|
||||
}
|
||||
|
||||
qwe_in_list= l_keywords->type;
|
||||
break;
|
||||
};
|
||||
do_loop:
|
||||
l_keywords++;
|
||||
}
|
||||
|
||||
not_in_list:
|
||||
return qwe_in_list;
|
||||
}
|
||||
|
||||
|
||||
static int log_statement_ex(const struct connection_info *cn,
|
||||
time_t ev_time, unsigned long thd_id,
|
||||
const char *query, unsigned int query_len,
|
||||
@@ -1034,10 +1337,77 @@ static int log_statement_ex(const struct connection_info *cn,
|
||||
/* Can happen after the error in mysqld_prepare_stmt() */
|
||||
query= cn->query;
|
||||
query_len= cn->query_length;
|
||||
if (query == 0 || query_len == 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
esc_q_len= escape_string(query, query_len,
|
||||
uh_buffer, sizeof(uh_buffer));
|
||||
if (query && !(events & EVENT_QUERY_ALL) &&
|
||||
(events & EVENT_QUERY))
|
||||
{
|
||||
const char *orig_query= query;
|
||||
|
||||
if (filter_query_type(query, keywords_to_skip))
|
||||
{
|
||||
char fword[MAX_KEYWORD + 1];
|
||||
int len;
|
||||
do
|
||||
{
|
||||
len= get_next_word(query, fword);
|
||||
query+= len ? len : 1;
|
||||
if (len == 3 && strncmp(fword, "FOR", 3) == 0)
|
||||
break;
|
||||
} while (*query);
|
||||
|
||||
if (*query == 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (events & EVENT_QUERY_DDL)
|
||||
{
|
||||
if (!filter_query_type(query, not_ddl_keywords) &&
|
||||
filter_query_type(query, ddl_keywords))
|
||||
goto do_log_query;
|
||||
}
|
||||
if (events & EVENT_QUERY_DML)
|
||||
{
|
||||
if (filter_query_type(query, dml_keywords))
|
||||
goto do_log_query;
|
||||
}
|
||||
|
||||
return 0;
|
||||
do_log_query:
|
||||
query= orig_query;
|
||||
}
|
||||
|
||||
switch (filter_query_type(query, passwd_keywords))
|
||||
{
|
||||
case SQLCOM_GRANT:
|
||||
case SQLCOM_CREATE_USER:
|
||||
esc_q_len= escape_string_hide_passwords(query, query_len,
|
||||
uh_buffer, sizeof(uh_buffer),
|
||||
"IDENTIFIED", 10, "BY", 2, 0);
|
||||
break;
|
||||
case SQLCOM_CHANGE_MASTER:
|
||||
esc_q_len= escape_string_hide_passwords(query, query_len,
|
||||
uh_buffer, sizeof(uh_buffer),
|
||||
"MASTER_PASSWORD", 15, "=", 1, 0);
|
||||
break;
|
||||
case SQLCOM_CREATE_SERVER:
|
||||
case SQLCOM_ALTER_SERVER:
|
||||
esc_q_len= escape_string_hide_passwords(query, query_len,
|
||||
uh_buffer, sizeof(uh_buffer),
|
||||
"PASSWORD", 8, NULL, 0, 0);
|
||||
break;
|
||||
case SQLCOM_SET_OPTION:
|
||||
esc_q_len= escape_string_hide_passwords(query, query_len,
|
||||
uh_buffer, sizeof(uh_buffer),
|
||||
"=", 1, NULL, 0, 1);
|
||||
break;
|
||||
default:
|
||||
esc_q_len= escape_string(query, query_len,
|
||||
uh_buffer, sizeof(uh_buffer));
|
||||
break;
|
||||
}
|
||||
csize+= my_snprintf(message+csize, sizeof(message) - 1 - csize,
|
||||
",\'%.*s\',%d", esc_q_len, uh_buffer, error_code);
|
||||
message[csize]= '\n';
|
||||
@@ -1386,6 +1756,105 @@ exit_func:
|
||||
}
|
||||
|
||||
|
||||
#ifdef DBUG_OFF
|
||||
#ifdef __x86_64__
|
||||
static const int cmd_off= 4200;
|
||||
static const int db_off= 120;
|
||||
static const int db_len_off= 128;
|
||||
#else
|
||||
static const int cmd_off= 2668;
|
||||
static const int db_off= 60;
|
||||
static const int db_len_off= 64;
|
||||
#endif /*x86_64*/
|
||||
#else
|
||||
#ifdef __x86_64__
|
||||
static const int cmd_off= 4432;
|
||||
static const int db_off= 120;
|
||||
static const int db_len_off= 128;
|
||||
#else
|
||||
static const int cmd_off= 2808;
|
||||
static const int db_off= 64;
|
||||
static const int db_len_off= 68;
|
||||
#endif /*x86_64*/
|
||||
#endif /*DBUG_OFF*/
|
||||
|
||||
struct mysql_event_general_v8
|
||||
{
|
||||
unsigned int event_class;
|
||||
unsigned int event_subclass;
|
||||
int general_error_code;
|
||||
unsigned long general_thread_id;
|
||||
const char *general_user;
|
||||
unsigned int general_user_length;
|
||||
const char *general_command;
|
||||
unsigned int general_command_length;
|
||||
const char *general_query;
|
||||
unsigned int general_query_length;
|
||||
struct charset_info_st *general_charset;
|
||||
unsigned long long general_time;
|
||||
unsigned long long general_rows;
|
||||
};
|
||||
|
||||
static void auditing_v8(MYSQL_THD thd, struct mysql_event_general_v8 *ev_v8)
|
||||
{
|
||||
struct mysql_event_general event;
|
||||
|
||||
if (ev_v8->event_class != MYSQL_AUDIT_GENERAL_CLASS)
|
||||
return;
|
||||
|
||||
event.event_subclass= ev_v8->event_subclass;
|
||||
event.general_error_code= ev_v8->general_error_code;
|
||||
event.general_thread_id= ev_v8->general_thread_id;
|
||||
event.general_user= ev_v8->general_user;
|
||||
event.general_user_length= ev_v8->general_user_length;
|
||||
event.general_command= ev_v8->general_command;
|
||||
event.general_command_length= ev_v8->general_command_length;
|
||||
event.general_query= ev_v8->general_query;
|
||||
event.general_query_length= ev_v8->general_query_length;
|
||||
event.general_charset= ev_v8->general_charset;
|
||||
event.general_time= ev_v8->general_time;
|
||||
event.general_rows= ev_v8->general_rows;
|
||||
event.database= 0;
|
||||
event.database_length= 0;
|
||||
|
||||
if (event.general_query_length > 0)
|
||||
{
|
||||
event.event_subclass= MYSQL_AUDIT_GENERAL_STATUS;
|
||||
event.general_command= "Query";
|
||||
event.general_command_length= 5;
|
||||
#ifdef __linux__
|
||||
event.database= *(char **) (((char *) thd) + db_off);
|
||||
event.database_length= *(size_t *) (((char *) thd) + db_len_off);
|
||||
#endif /*__linux*/
|
||||
}
|
||||
#ifdef __linux__
|
||||
else if (*((int *) (((char *)thd) + cmd_off)) == 2)
|
||||
{
|
||||
event.event_subclass= MYSQL_AUDIT_GENERAL_LOG;
|
||||
event.general_command= "Init DB";
|
||||
event.general_command_length= 7;
|
||||
event.general_query= *(char **) (((char *) thd) + db_off);
|
||||
event.general_query_length= *(size_t *) (((char *) thd) + db_len_off);
|
||||
}
|
||||
#endif /*__linux*/
|
||||
auditing(thd, ev_v8->event_class, &event);
|
||||
}
|
||||
|
||||
|
||||
static void auditing_v13(MYSQL_THD thd, unsigned int *ev_v0)
|
||||
{
|
||||
struct mysql_event_general event= *(const struct mysql_event_general *) (ev_v0+1);
|
||||
|
||||
if (event.general_query_length > 0)
|
||||
{
|
||||
event.event_subclass= MYSQL_AUDIT_GENERAL_STATUS;
|
||||
event.general_command= "Query";
|
||||
event.general_command_length= 5;
|
||||
}
|
||||
auditing(thd, ev_v0[0], &event);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
As it's just too difficult to #include "sql_class.h",
|
||||
let's just copy the necessary part of the system_variables
|
||||
@@ -1461,15 +1930,19 @@ typedef struct loc_system_variables
|
||||
ulong query_cache_type;
|
||||
} LOC_SV;
|
||||
|
||||
|
||||
static int server_audit_init(void *p __attribute__((unused)))
|
||||
{
|
||||
const void *my_hash_init_ptr;
|
||||
#ifdef _WIN32
|
||||
serv_ver= (const char *) GetProcAddress(0, "server_version");
|
||||
#else
|
||||
serv_ver= server_version;
|
||||
#endif /*_WIN32*/
|
||||
|
||||
if (!serv_ver)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
serv_ver= (const char *) GetProcAddress(0, "server_version");
|
||||
#else
|
||||
serv_ver= server_version;
|
||||
#endif /*_WIN32*/
|
||||
}
|
||||
my_hash_init_ptr= dlsym(RTLD_DEFAULT, "_my_hash_init");
|
||||
if (!my_hash_init_ptr)
|
||||
{
|
||||
@@ -1477,8 +1950,14 @@ static int server_audit_init(void *p __attribute__((unused)))
|
||||
my_hash_init_ptr= dlsym(RTLD_DEFAULT, "my_hash_init2");
|
||||
}
|
||||
|
||||
if(!(int_mysql_data_home= dlsym(RTLD_DEFAULT, "mysql_data_home")))
|
||||
{
|
||||
if(!(int_mysql_data_home= dlsym(RTLD_DEFAULT, "?mysql_data_home@@3PADA")))
|
||||
int_mysql_data_home= &default_home;
|
||||
}
|
||||
|
||||
if (!serv_ver || !my_hash_init_ptr)
|
||||
return 0;
|
||||
return 1;
|
||||
|
||||
if (!started_mysql)
|
||||
{
|
||||
@@ -1489,7 +1968,6 @@ static int server_audit_init(void *p __attribute__((unused)))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (gethostname(servhost, sizeof(servhost)))
|
||||
strcpy(servhost, "unknown");
|
||||
|
||||
@@ -1608,8 +2086,8 @@ mysql_declare_plugin(server_audit)
|
||||
MYSQL_AUDIT_PLUGIN,
|
||||
&mysql_descriptor,
|
||||
"SERVER_AUDIT",
|
||||
" Alexey Botchkov (MariaDB)",
|
||||
"Audit the server activity.",
|
||||
" Alexey Botchkov (MariaDB Corporation)",
|
||||
"Audit the server activity",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
server_audit_init_mysql,
|
||||
server_audit_deinit,
|
||||
@@ -1636,8 +2114,8 @@ maria_declare_plugin(server_audit)
|
||||
MYSQL_AUDIT_PLUGIN,
|
||||
&maria_descriptor,
|
||||
"SERVER_AUDIT",
|
||||
"Alexey Botchkov (MariaDB)",
|
||||
"Audit the server activity.",
|
||||
"Alexey Botchkov (MariaDB Corporation)",
|
||||
"Audit the server activity",
|
||||
PLUGIN_LICENSE_GPL,
|
||||
server_audit_init,
|
||||
server_audit_deinit,
|
||||
@@ -1645,7 +2123,7 @@ maria_declare_plugin(server_audit)
|
||||
audit_status,
|
||||
vars,
|
||||
PLUGIN_STR_VERSION,
|
||||
MariaDB_PLUGIN_MATURITY_BETA
|
||||
MariaDB_PLUGIN_MATURITY_GAMMA
|
||||
}
|
||||
maria_declare_plugin_end;
|
||||
|
||||
@@ -1915,3 +2393,48 @@ static void update_syslog_ident(MYSQL_THD thd __attribute__((unused)),
|
||||
}
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
{
|
||||
if (fdwReason != DLL_PROCESS_ATTACH)
|
||||
return 1;
|
||||
|
||||
serv_ver= (const char *) GetProcAddress(0, "server_version");
|
||||
#else
|
||||
void __attribute__ ((constructor)) audit_plugin_so_init(void)
|
||||
{
|
||||
serv_ver= server_version;
|
||||
#endif /*_WIN32*/
|
||||
|
||||
if (!serv_ver)
|
||||
goto exit;
|
||||
|
||||
started_mariadb= strstr(serv_ver, "MariaDB") != 0;
|
||||
|
||||
if (!started_mariadb)
|
||||
{
|
||||
if (serv_ver[0] == '5' && serv_ver[2] == '5')
|
||||
{
|
||||
int sc= serv_ver[4] - '0';
|
||||
if (serv_ver[5] >= '0' && serv_ver[5] <= '9')
|
||||
sc= sc * 10 + serv_ver[5] - '0';
|
||||
if (sc <= 10)
|
||||
{
|
||||
mysql_descriptor.interface_version= 0x0200;
|
||||
mysql_descriptor.event_notify= (void *) auditing_v8;
|
||||
}
|
||||
else if (sc < 14)
|
||||
{
|
||||
mysql_descriptor.interface_version= 0x0200;
|
||||
mysql_descriptor.event_notify= (void *) auditing_v13;
|
||||
}
|
||||
}
|
||||
}
|
||||
exit:
|
||||
#ifdef _WIN32
|
||||
return 1;
|
||||
#else
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@@ -65,8 +65,8 @@ Usage: $0 [OPTIONS]
|
||||
Read this file after the global files are read.
|
||||
--defaults-file=name Only read default options from the given file name.
|
||||
--force Causes mysql_install_db to run even if DNS does not
|
||||
work. In that case, grant table entries that normally
|
||||
use hostnames will use IP addresses.
|
||||
work. In that case, grant table entries that
|
||||
normally use hostnames will use IP addresses.
|
||||
--help Display this help and exit.
|
||||
--ldata=path The path to the MySQL data directory. Same as --datadir.
|
||||
--no-defaults Don't read default options from any option file.
|
||||
|
@@ -50,8 +50,8 @@ Usage: $0 [OPTIONS]
|
||||
Read this file after the global files are read.
|
||||
--defaults-file=name Only read default options from the given file name.
|
||||
--force Causes mysql_install_db to run even if DNS does not
|
||||
work. In that case, grant table entries that normally
|
||||
use hostnames will use IP addresses.
|
||||
work. In that case, grant table entries that
|
||||
normally use hostnames will use IP addresses.
|
||||
--help Display this help and exit.
|
||||
--ldata=path The path to the MariaDB data directory. Same as
|
||||
--datadir.
|
||||
|
@@ -28,6 +28,7 @@ syslog_tag=
|
||||
user='@MYSQLD_USER@'
|
||||
pid_file=
|
||||
err_log=
|
||||
err_log_base=
|
||||
|
||||
syslog_tag_mysqld=mysqld
|
||||
syslog_tag_mysqld_safe=mysqld_safe
|
||||
@@ -292,7 +293,7 @@ parse_arguments() {
|
||||
--user=*) user="$val"; SET_USER=1 ;;
|
||||
--log-basename=*|--hostname=*|--loose-log-basename=*)
|
||||
pid_file="$val.pid";
|
||||
err_log="$val.err";
|
||||
err_log_base="$val";
|
||||
;;
|
||||
|
||||
# these might have been set in a [mysqld_safe] section of my.cnf
|
||||
@@ -668,7 +669,16 @@ then
|
||||
* ) err_log="$DATADIR/$err_log" ;;
|
||||
esac
|
||||
else
|
||||
err_log=$DATADIR/`@HOSTNAME@`.err
|
||||
if [ -n "$err_log_base" ]
|
||||
then
|
||||
err_log=$err_log_base.err
|
||||
case "$err_log" in
|
||||
/* ) ;;
|
||||
* ) err_log="$DATADIR/$err_log" ;;
|
||||
esac
|
||||
else
|
||||
err_log=$DATADIR/`@HOSTNAME@`.err
|
||||
fi
|
||||
fi
|
||||
|
||||
append_arg_to_args "--log-error=$err_log"
|
||||
@@ -677,6 +687,7 @@ then
|
||||
then
|
||||
# User explicitly asked for syslog, so warn that it isn't used
|
||||
log_error "Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect."
|
||||
want_syslog=0
|
||||
fi
|
||||
|
||||
# Log to err_log file
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!@PERL@
|
||||
#!/usr/bin/perl
|
||||
# Test of table elimination feature
|
||||
|
||||
use Cwd;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2003, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2013, Monty Program Ab
|
||||
/* Copyright (c) 2003, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2015, MariaDB
|
||||
|
||||
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
|
||||
@@ -118,6 +118,7 @@ my_bool net_flush(NET *net);
|
||||
#define native_password_plugin_name "mysql_native_password"
|
||||
#define old_password_plugin_name "mysql_old_password"
|
||||
|
||||
uint mariadb_deinitialize_ssl= 1;
|
||||
uint mysql_port=0;
|
||||
char *mysql_unix_port= 0;
|
||||
const char *unknown_sqlstate= "HY000";
|
||||
|
@@ -1,4 +1,5 @@
|
||||
# Copyright (c) 2006, 2013, Oracle and/or its affiliates.
|
||||
# Copyright (c) 2006, 2014, Oracle and/or its affiliates.
|
||||
# Copyright (c) 2010, 2015, MariaDB
|
||||
#
|
||||
# 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
|
||||
@@ -275,14 +276,15 @@ IF(WIN32 OR HAVE_DLOPEN AND NOT DISABLE_SHARED)
|
||||
ENDIF()
|
||||
|
||||
FOREACH(tool glibtoolize libtoolize aclocal autoconf autoheader automake gtar
|
||||
tar bzr)
|
||||
tar git)
|
||||
STRING(TOUPPER ${tool} TOOL)
|
||||
FIND_PROGRAM(${TOOL}_EXECUTABLE ${tool} DOC "path to the executable")
|
||||
MARK_AS_ADVANCED(${TOOL}_EXECUTABLE)
|
||||
ENDFOREACH()
|
||||
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/cmake/make_dist.cmake.in ${CMAKE_BINARY_DIR}/make_dist.cmake @ONLY)
|
||||
${CMAKE_SOURCE_DIR}/cmake/make_dist.cmake.in
|
||||
${CMAKE_BINARY_DIR}/make_dist.cmake @ONLY)
|
||||
|
||||
ADD_CUSTOM_TARGET(dist
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/make_dist.cmake
|
||||
@@ -292,8 +294,7 @@ ADD_CUSTOM_TARGET(dist
|
||||
|
||||
ADD_CUSTOM_TARGET(distclean
|
||||
COMMAND ${CMAKE_COMMAND} -E echo WARNING: distclean target is not functional
|
||||
COMMAND ${CMAKE_COMMAND} -E echo Use 'bzr clean-tree' with --unknown and/or
|
||||
--ignored parameter instead
|
||||
COMMAND ${CMAKE_COMMAND} -E echo Use 'git clean -fdx' instead
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
|
@@ -89,9 +89,7 @@ static const LEX_STRING sys_table_aliases[]=
|
||||
};
|
||||
|
||||
const char *ha_row_type[] = {
|
||||
"", "FIXED", "DYNAMIC", "COMPRESSED", "REDUNDANT", "COMPACT",
|
||||
"PAGE",
|
||||
"?","?","?"
|
||||
"", "FIXED", "DYNAMIC", "COMPRESSED", "REDUNDANT", "COMPACT", "PAGE"
|
||||
};
|
||||
|
||||
const char *tx_isolation_names[] =
|
||||
|
@@ -370,9 +370,10 @@ enum legacy_db_type
|
||||
|
||||
enum row_type { ROW_TYPE_NOT_USED=-1, ROW_TYPE_DEFAULT, ROW_TYPE_FIXED,
|
||||
ROW_TYPE_DYNAMIC, ROW_TYPE_COMPRESSED,
|
||||
ROW_TYPE_REDUNDANT, ROW_TYPE_COMPACT,
|
||||
/** Unused. Reserved for future versions. */
|
||||
ROW_TYPE_PAGE };
|
||||
ROW_TYPE_REDUNDANT, ROW_TYPE_COMPACT, ROW_TYPE_PAGE };
|
||||
|
||||
/* not part of the enum, so that it shouldn't be in switch(row_type) */
|
||||
#define ROW_TYPE_MAX ((uint)ROW_TYPE_PAGE + 1)
|
||||
|
||||
enum enum_binlog_func {
|
||||
BFN_RESET_LOGS= 1,
|
||||
@@ -1254,7 +1255,7 @@ class partition_info;
|
||||
struct st_partition_iter;
|
||||
#define NOT_A_PARTITION_ID ((uint32)-1)
|
||||
|
||||
enum ha_choice { HA_CHOICE_UNDEF, HA_CHOICE_NO, HA_CHOICE_YES };
|
||||
enum ha_choice { HA_CHOICE_UNDEF, HA_CHOICE_NO, HA_CHOICE_YES, HA_CHOICE_MAX };
|
||||
|
||||
typedef struct st_ha_create_information
|
||||
{
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2000, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2014, Monty Program Ab.
|
||||
Copyright (c) 2009, 2015, MariaDB
|
||||
|
||||
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
|
||||
@@ -3671,8 +3671,12 @@ bool udf_handler::get_arguments()
|
||||
{
|
||||
f_args.args[i]= (char*) res->ptr();
|
||||
f_args.lengths[i]= res->length();
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
f_args.lengths[i]= 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case INT_RESULT:
|
||||
*((longlong*) to) = args[i]->val_int();
|
||||
@@ -4494,6 +4498,11 @@ longlong Item_func_sleep::val_int()
|
||||
|
||||
mysql_cond_destroy(&cond);
|
||||
|
||||
DBUG_EXECUTE_IF("sleep_inject_query_done_debug_sync", {
|
||||
debug_sync_set_action
|
||||
(thd, STRING_WITH_LEN("dispatch_command_end SIGNAL query_done"));
|
||||
};);
|
||||
|
||||
return test(!error); // Return 1 killed
|
||||
}
|
||||
|
||||
|
@@ -1286,6 +1286,13 @@ String *Item_func_buffer::val_str(String *str_value)
|
||||
|
||||
if (dist > 0.0)
|
||||
mbr.buffer(dist);
|
||||
else
|
||||
{
|
||||
/* This happens when dist is too far negative. */
|
||||
if (mbr.xmax + dist < mbr.xmin || mbr.ymax + dist < mbr.ymin)
|
||||
goto return_empty_result;
|
||||
}
|
||||
|
||||
collector.set_extent(mbr.xmin, mbr.xmax, mbr.ymin, mbr.ymax);
|
||||
/*
|
||||
If the distance given is 0, the Buffer function is in fact NOOP,
|
||||
@@ -1313,6 +1320,7 @@ String *Item_func_buffer::val_str(String *str_value)
|
||||
goto mem_error;
|
||||
|
||||
|
||||
return_empty_result:
|
||||
str_value->set_charset(&my_charset_bin);
|
||||
if (str_value->reserve(SRID_SIZE, 512))
|
||||
goto mem_error;
|
||||
|
@@ -2031,6 +2031,9 @@ unique_table(THD *thd, TABLE_LIST *table, TABLE_LIST *table_list,
|
||||
bool check_alias)
|
||||
{
|
||||
TABLE_LIST *dup;
|
||||
|
||||
table= table->find_table_for_update();
|
||||
|
||||
if (table->table && table->table->file->ht->db_type == DB_TYPE_MRG_MYISAM)
|
||||
{
|
||||
TABLE_LIST *child;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2013, Monty Program Ab.
|
||||
Copyright (c) 2000, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2015, MariaDB
|
||||
|
||||
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
|
||||
@@ -917,7 +917,7 @@ update_binlog:
|
||||
|
||||
if (!(query= (char*) thd->alloc(MAX_DROP_TABLE_Q_LEN)))
|
||||
goto exit; /* not much else we can do */
|
||||
query_pos= query_data_start= strmov(query,"DROP TABLE ");
|
||||
query_pos= query_data_start= strmov(query,"DROP TABLE IF EXISTS ");
|
||||
query_end= query + MAX_DROP_TABLE_Q_LEN;
|
||||
db_len= strlen(db);
|
||||
|
||||
|
@@ -661,9 +661,10 @@ multi_delete::initialize_tables(JOIN *join)
|
||||
delete_while_scanning= 1;
|
||||
for (walk= delete_tables; walk; walk= walk->next_local)
|
||||
{
|
||||
tables_to_delete_from|= walk->table->map;
|
||||
TABLE_LIST *tbl= walk->correspondent_table->find_table_for_update();
|
||||
tables_to_delete_from|= tbl->table->map;
|
||||
if (delete_while_scanning &&
|
||||
unique_table(thd, walk, join->tables_list, false))
|
||||
unique_table(thd, tbl, join->tables_list, false))
|
||||
{
|
||||
/*
|
||||
If the table we are going to delete from appears
|
||||
|
@@ -507,6 +507,9 @@ bool mysql_derived_merge_for_insert(THD *thd, LEX *lex, TABLE_LIST *derived)
|
||||
DBUG_RETURN(FALSE);
|
||||
if (derived->is_materialized_derived())
|
||||
DBUG_RETURN(mysql_derived_prepare(thd, lex, derived));
|
||||
if ((thd->lex->sql_command == SQLCOM_UPDATE_MULTI ||
|
||||
thd->lex->sql_command == SQLCOM_DELETE_MULTI))
|
||||
DBUG_RETURN(FALSE);
|
||||
if (!derived->is_multitable())
|
||||
{
|
||||
if (!derived->single_table_updatable())
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user