mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Merge branch '5.5' into 10.0
This commit is contained in:
commit
d7e7862364
120 changed files with 3358 additions and 1860 deletions
1212
.bzrignore
1212
.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
|
|
@ -362,6 +362,11 @@ CHECK_JEMALLOC()
|
|||
|
||||
CHECK_PCRE()
|
||||
|
||||
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. Platform checks are
|
||||
# not run with the warning options as to not perturb fragile checks
|
||||
|
@ -452,7 +457,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(
|
||||
|
@ -464,7 +470,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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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})
|
||||
|
|
|
@ -245,11 +245,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,7 @@
|
|||
usr/lib/mysql/plugin/auth_pam.so
|
||||
usr/lib/mysql/plugin/auth_socket.so
|
||||
usr/lib/mysql/plugin/ha_mroonga.so
|
||||
usr/lib/mysql/plugin/ha_oqgraph.so
|
||||
usr/lib/mysql/plugin/ha_sequence.so
|
||||
usr/lib/mysql/plugin/ha_sphinx.so
|
||||
usr/lib/mysql/plugin/ha_innodb.so
|
||||
|
@ -13,6 +14,7 @@ usr/lib/mysql/plugin/semisync_master.so
|
|||
usr/lib/mysql/plugin/semisync_slave.so
|
||||
usr/lib/mysql/plugin/sql_errlog.so
|
||||
usr/lib/mysql/plugin/server_audit.so
|
||||
usr/lib/mysql/plugin/sphinx.so
|
||||
usr/lib/libhsclient.so.*
|
||||
etc/mysql/debian-start
|
||||
etc/mysql/conf.d/mysqld_safe_syslog.cnf
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
usr/lib/mysql/plugin/auth_pam.so
|
||||
usr/lib/mysql/plugin/auth_socket.so
|
||||
usr/lib/mysql/plugin/ha_mroonga.so
|
||||
usr/lib/mysql/plugin/ha_oqgraph.so
|
||||
usr/lib/mysql/plugin/ha_sequence.so
|
||||
usr/lib/mysql/plugin/ha_sphinx.so
|
||||
usr/lib/mysql/plugin/ha_innodb.so
|
||||
|
@ -13,6 +14,7 @@ usr/lib/mysql/plugin/semisync_master.so
|
|||
usr/lib/mysql/plugin/semisync_slave.so
|
||||
usr/lib/mysql/plugin/sql_errlog.so
|
||||
usr/lib/mysql/plugin/server_audit.so
|
||||
usr/lib/mysql/plugin/sphinx.so
|
||||
usr/lib/libhsclient.so.*
|
||||
etc/apparmor.d/usr.sbin.mysqld
|
||||
usr/share/apport/package-hooks/source_mariadb-10.0.py
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -34,7 +34,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)
|
||||
|
@ -2047,12 +2063,8 @@ input_buffer& operator>>(input_buffer& input, CertificateRequest& request)
|
|||
tmp[0] = input[AUTO];
|
||||
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
|
||||
|
|
|
@ -680,7 +680,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;
|
||||
}
|
||||
|
@ -1011,11 +1011,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) {
|
||||
|
|
|
@ -865,6 +865,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
|
||||
|
|
|
@ -747,3 +747,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
|
||||
|
|
|
@ -259,6 +259,9 @@ mariadb_dyncol_column_count
|
|||
mariadb_dyncol_prepare_decimal
|
||||
#
|
||||
mariadb_deinitialize_ssl
|
||||
# low-level API to MySQL protocol
|
||||
mysql_net_read_packet
|
||||
mysql_net_field_length
|
||||
# Added in MariaDB-10.0 to stay compatible with MySQL-5.6, yuck!
|
||||
mysql_options4
|
||||
)
|
||||
|
|
|
@ -4901,3 +4901,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;
|
||||
|
|
|
@ -323,7 +323,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
|
||||
|
|
|
@ -1618,4 +1618,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
|
||||
|
|
|
@ -1977,6 +1977,21 @@ 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
|
||||
#
|
||||
#
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -3,10 +3,10 @@ Variable_name Value
|
|||
Ssl_cipher DHE-RSA-AES256-SHA
|
||||
SHOW STATUS LIKE 'Ssl_server_not_before';
|
||||
Variable_name Value
|
||||
Ssl_server_not_before Jan 29 13:33:36 2015 GMT
|
||||
Ssl_server_not_before Dec 5 04:48:40 2014 GMT
|
||||
SHOW STATUS LIKE 'Ssl_server_not_after';
|
||||
Variable_name Value
|
||||
Ssl_server_not_after Jan 24 13:33:36 2035 GMT
|
||||
Ssl_server_not_after Dec 1 04:48:40 2029 GMT
|
||||
drop table if exists t1,t2,t3,t4;
|
||||
CREATE TABLE t1 (
|
||||
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
|
||||
|
|
|
@ -4908,7 +4908,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,19 @@ 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.
|
||||
# -----------------------------------------------------------------
|
||||
|
|
|
@ -1,77 +1,79 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 18344029820145564920 (0xfe9315ee3af2fcf8)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
|
||||
Serial Number: 16263805969935345171 (0xe1b4a55c3ddfa613)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Validity
|
||||
Not Before: Jan 29 13:33:36 2015 GMT
|
||||
Not After : Jan 24 13:33:36 2035 GMT
|
||||
Subject: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
|
||||
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:ad:79:3b:d1:c4:f3:fd:72:e8:4a:9e:54:db:44:
|
||||
86:c7:57:a9:53:2e:01:5a:5b:04:b8:b7:15:02:28:
|
||||
b2:e8:8a:8d:0e:32:29:a6:cc:63:00:fb:e4:7a:ec:
|
||||
27:b0:09:8f:4d:34:95:c5:9e:2e:92:20:8b:ec:88:
|
||||
d3:08:75:c7:c0:61:46:60:79:bb:0f:5f:e4:08:d7:
|
||||
b2:20:08:1a:71:a9:ea:f2:d6:55:40:26:82:9b:2c:
|
||||
6a:00:66:74:58:ea:e8:6c:77:74:81:10:3b:78:7f:
|
||||
20:75:9c:ac:7a:63:af:0e:b6:7b:e8:94:13:00:b8:
|
||||
7d:33:7a:c7:49:1f:b2:84:ce:0d:89:4a:97:ee:61:
|
||||
0a:1d:8b:a7:8b:45:90:dc:cc:e6:56:dc:aa:28:b2:
|
||||
cb:83:09:e7:7b:9a:7c:3e:da:4f:11:d0:b2:95:0d:
|
||||
96:c0:b0:41:63:2d:2b:45:2f:6d:46:38:5a:b0:93:
|
||||
e6:07:af:d1:2f:15:ff:84:f3:05:62:a5:28:1a:a4:
|
||||
40:23:3d:c6:77:60:2c:55:7d:fd:af:da:4a:e8:fb:
|
||||
16:03:9a:67:4b:76:a6:ec:96:ba:46:86:f2:fb:7c:
|
||||
eb:2c:59:5c:af:e7:79:50:26:05:d4:71:c3:d5:62:
|
||||
d5:2b:17:35:d3:32:4e:b4:df:30:7d:8b:fd:ba:c3:
|
||||
a6:5d
|
||||
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:
|
||||
D0:25:36:E4:E6:DB:8B:6E:4F:8A:4D:20:48:A4:21:3A:58:7E:EF:C4
|
||||
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:D0:25:36:E4:E6:DB:8B:6E:4F:8A:4D:20:48:A4:21:3A:58:7E:EF:C4
|
||||
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: sha1WithRSAEncryption
|
||||
8d:9f:56:93:67:4b:77:e1:4c:f0:3c:6b:9c:8a:a0:a5:3d:5d:
|
||||
a7:21:72:5e:bc:4c:88:16:61:95:3d:e6:34:da:a6:b0:8c:6e:
|
||||
94:4c:69:ea:c6:8a:fa:2c:3d:bf:f9:8e:b5:d1:69:ac:a1:46:
|
||||
12:95:bc:fd:67:21:1e:ca:0f:49:77:f8:54:29:aa:06:5b:08:
|
||||
0b:8e:0b:4f:9d:52:da:03:9e:a1:31:1b:4a:bb:df:cb:d7:ba:
|
||||
b1:20:d7:77:bc:3b:87:e4:ae:46:59:13:88:cd:76:ab:15:68:
|
||||
c5:90:d7:01:fb:7b:16:30:7f:f8:1e:c5:3d:a3:e2:61:d9:35:
|
||||
fe:70:af:9a:47:12:59:26:27:b1:f6:a2:d8:99:80:a1:a4:a3:
|
||||
a3:77:ad:40:90:8c:4e:7e:83:b0:c0:0e:fb:0b:c3:9f:ac:8d:
|
||||
ee:65:fe:7d:85:2b:b3:93:62:56:50:f3:ca:68:68:76:37:9d:
|
||||
e7:85:13:45:c1:c8:9e:c6:ba:eb:ef:24:85:e8:47:31:82:53:
|
||||
1b:c4:66:b3:c3:e6:89:5f:3e:18:9f:f5:ed:66:19:9e:57:5b:
|
||||
3d:6a:2f:fb:c2:e3:5a:40:d0:5b:2e:ac:f6:a4:c6:5b:ee:a5:
|
||||
76:a0:af:a8:c0:c0:e1:2f:78:6c:7b:fa:fe:a8:2d:8b:cf:2b:
|
||||
c8:87:ee:09
|
||||
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,26 +1,35 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 3 (0x3)
|
||||
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: Jan 29 13:33:49 2015 GMT
|
||||
Not After : Jan 24 13:33:49 2035 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
|
||||
Public-Key: (1024 bit)
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:c1:f6:6e:41:de:b5:80:fe:10:6d:c5:15:98:53:
|
||||
85:4a:88:51:06:85:30:7f:c9:92:87:51:3a:d6:8d:
|
||||
d3:9c:0e:91:c2:39:30:e9:b2:6e:53:4a:3a:aa:a3:
|
||||
8b:ce:c0:93:94:c9:65:db:89:8e:21:2b:af:2a:ff:
|
||||
7b:5a:0f:b9:03:99:f0:eb:20:d4:2c:39:00:0e:5a:
|
||||
b7:2b:17:e6:78:54:4f:54:23:36:81:b2:db:3e:48:
|
||||
cd:8e:14:36:b4:4f:6e:4d:a1:84:64:29:b7:68:3c:
|
||||
45:3e:eb:9a:9b:8f:e2:d0:35:a8:0c:e6:70:4e:ac:
|
||||
78:74:d5:45:aa:67:33:81:0d
|
||||
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:
|
||||
|
@ -28,41 +37,46 @@ Certificate:
|
|||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
17:61:EA:3F:25:92:55:2B:04:1C:D8:C7:A9:F6:61:C9:D9:99:A4:C9
|
||||
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:D0:25:36:E4:E6:DB:8B:6E:4F:8A:4D:20:48:A4:21:3A:58:7E:EF:C4
|
||||
keyid:94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
78:ea:34:4f:ac:c5:0b:17:bd:c9:f4:28:bd:b2:b1:cd:a7:58:
|
||||
74:4f:00:82:82:c8:a5:71:fe:f4:2f:54:d0:e0:ae:b0:57:87:
|
||||
7d:e6:2e:14:4a:49:21:43:c3:b5:39:e4:7c:0f:fe:8b:c5:5d:
|
||||
5e:84:bc:42:2a:2a:a1:69:10:30:dc:e8:a6:ba:79:8b:a0:56:
|
||||
09:ab:a3:ce:db:32:b2:10:7a:9f:b7:7a:46:80:4a:90:59:af:
|
||||
81:5c:c7:92:20:46:9d:0e:27:20:e5:9a:da:b3:26:96:37:3b:
|
||||
87:e7:13:93:ba:8d:be:d3:9d:7a:cb:6d:96:75:36:54:e1:cd:
|
||||
7e:ff:0d:2d:3c:6a:cd:50:b3:a5:73:a8:83:a0:a7:a2:aa:fa:
|
||||
6e:49:b9:77:fc:03:16:21:bb:c7:8a:4a:79:5f:a9:7e:b9:21:
|
||||
6d:84:a7:5f:96:60:38:42:f7:d0:82:de:87:74:d4:05:93:b8:
|
||||
94:ae:d1:eb:0c:26:96:60:d5:d8:6c:cc:17:40:85:2f:ac:f8:
|
||||
31:f5:f5:76:d0:f1:3f:aa:87:81:b9:a0:93:71:28:6a:b2:f6:
|
||||
74:36:a1:fa:f8:dc:39:a8:cd:b7:75:79:d0:40:73:6c:d6:b2:
|
||||
dc:9e:58:a5:51:e5:09:f0:3d:c2:2f:3d:16:ab:41:26:ec:3b:
|
||||
71:04:2d:eb
|
||||
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-----
|
||||
MIIC6DCCAdCgAwIBAgIBAzANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJTRTEQ
|
||||
MA4GA1UECAwHVXBwc2FsYTEQMA4GA1UEBwwHVXBwc2FsYTERMA8GA1UECgwITXlT
|
||||
UUwgQUIwHhcNMTUwMTI5MTMzMzQ5WhcNMzUwMTI0MTMzMzQ5WjAyMQswCQYDVQQG
|
||||
EwJTRTEQMA4GA1UECAwHVXBwc2FsYTERMA8GA1UECgwITXlTUUwgQUIwgZ8wDQYJ
|
||||
KoZIhvcNAQEBBQADgY0AMIGJAoGBAMH2bkHetYD+EG3FFZhThUqIUQaFMH/JkodR
|
||||
OtaN05wOkcI5MOmyblNKOqqji87Ak5TJZduJjiErryr/e1oPuQOZ8Osg1Cw5AA5a
|
||||
tysX5nhUT1QjNoGy2z5IzY4UNrRPbk2hhGQpt2g8RT7rmpuP4tA1qAzmcE6seHTV
|
||||
RapnM4ENAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5T
|
||||
U0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBQXYeo/JZJVKwQc2Mep
|
||||
9mHJ2ZmkyTAfBgNVHSMEGDAWgBTQJTbk5tuLbk+KTSBIpCE6WH7vxDANBgkqhkiG
|
||||
9w0BAQUFAAOCAQEAeOo0T6zFCxe9yfQovbKxzadYdE8AgoLIpXH+9C9U0OCusFeH
|
||||
feYuFEpJIUPDtTnkfA/+i8VdXoS8QioqoWkQMNzoprp5i6BWCaujztsyshB6n7d6
|
||||
RoBKkFmvgVzHkiBGnQ4nIOWa2rMmljc7h+cTk7qNvtOdesttlnU2VOHNfv8NLTxq
|
||||
zVCzpXOog6Cnoqr6bkm5d/wDFiG7x4pKeV+pfrkhbYSnX5ZgOEL30ILeh3TUBZO4
|
||||
lK7R6wwmlmDV2GzMF0CFL6z4MfX1dtDxP6qHgbmgk3EoarL2dDah+vjcOajNt3V5
|
||||
0EBzbNay3J5YpVHlCfA9wi89FqtBJuw7cQQt6w==
|
||||
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,26 +1,35 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 1 (0x1)
|
||||
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: Jan 29 13:33:36 2015 GMT
|
||||
Not After : Jan 24 13:33:36 2035 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
|
||||
Public-Key: (1024 bit)
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:9c:3a:93:e6:10:8c:b3:e2:57:2f:57:5d:03:4f:
|
||||
0a:e6:fd:44:1a:f3:49:42:70:58:3a:d5:a3:96:ef:
|
||||
f2:98:39:09:fa:8c:57:12:d5:8b:1e:a5:b8:35:c0:
|
||||
81:18:6d:45:c8:43:17:28:47:cc:67:8d:dc:3f:9e:
|
||||
29:0a:f8:e5:99:ec:01:ca:d1:42:62:91:47:ee:85:
|
||||
1b:b6:65:95:49:08:99:b8:b9:b6:2a:cf:04:05:e9:
|
||||
5f:a3:7f:d1:c3:08:a0:37:3f:d6:fe:eb:d4:dd:7c:
|
||||
0a:37:ad:00:43:d1:5d:cf:21:56:9c:d4:6b:d2:7c:
|
||||
56:5e:25:fa:e4:2a:ef:14:95
|
||||
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:
|
||||
|
@ -28,41 +37,46 @@ Certificate:
|
|||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
E2:04:9A:5D:CB:44:EC:98:C9:84:13:36:A4:7A:41:AC:34:3D:CD:0C
|
||||
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:D0:25:36:E4:E6:DB:8B:6E:4F:8A:4D:20:48:A4:21:3A:58:7E:EF:C4
|
||||
keyid:94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
28:f8:8b:22:d4:8e:00:29:cb:0e:b2:82:f1:a6:3b:e2:c6:76:
|
||||
0a:79:b5:e3:6b:b2:80:c9:af:8b:df:c5:d7:f4:cb:ab:37:3c:
|
||||
b2:be:78:b7:2d:ac:77:f1:52:bd:6c:ae:a4:70:1d:98:92:e5:
|
||||
07:71:99:6c:70:4e:f2:c5:9d:da:c4:31:29:3e:fb:df:82:90:
|
||||
5c:76:97:0a:70:c3:dd:0c:cc:be:7d:4c:40:f7:25:9f:6f:d3:
|
||||
37:c5:9b:1a:09:e1:fe:28:08:59:79:17:ac:64:cb:aa:e0:ac:
|
||||
17:f3:3e:72:69:91:f2:16:8d:c6:3e:89:33:77:be:74:8f:69:
|
||||
ad:9f:4d:96:e1:51:68:ba:4c:7b:3f:26:7f:14:38:be:e9:07:
|
||||
5d:2b:c2:fb:58:1d:40:c3:b8:21:a8:ee:0e:69:82:7a:21:67:
|
||||
36:16:41:08:dc:71:e4:7c:d2:f1:58:3b:c8:7b:56:63:b4:1c:
|
||||
f6:7c:2a:3e:95:2b:03:9f:9c:41:b9:95:1a:bc:ab:b7:39:1b:
|
||||
8e:68:6e:78:ac:2e:18:00:3c:bf:c6:42:c0:62:5f:ba:ec:9f:
|
||||
81:da:0e:76:94:a7:88:68:71:22:ef:d1:4a:15:94:5e:cb:5a:
|
||||
9c:af:59:b3:f7:1a:ad:8f:74:e8:fc:a5:b1:da:f9:4f:fc:d6:
|
||||
f8:11:4c:a9
|
||||
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-----
|
||||
MIIC/DCCAeSgAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJTRTEQ
|
||||
MA4GA1UECAwHVXBwc2FsYTEQMA4GA1UEBwwHVXBwc2FsYTERMA8GA1UECgwITXlT
|
||||
UUwgQUIwHhcNMTUwMTI5MTMzMzM2WhcNMzUwMTI0MTMzMzM2WjBGMQswCQYDVQQG
|
||||
EwJTRTEQMA4GA1UECAwHVXBwc2FsYTERMA8GA1UECgwITXlTUUwgQUIxEjAQBgNV
|
||||
BAMMCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnDqT5hCM
|
||||
s+JXL1ddA08K5v1EGvNJQnBYOtWjlu/ymDkJ+oxXEtWLHqW4NcCBGG1FyEMXKEfM
|
||||
Z43cP54pCvjlmewBytFCYpFH7oUbtmWVSQiZuLm2Ks8EBelfo3/RwwigNz/W/uvU
|
||||
3XwKN60AQ9FdzyFWnNRr0nxWXiX65CrvFJUCAwEAAaN7MHkwCQYDVR0TBAIwADAs
|
||||
BglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYD
|
||||
VR0OBBYEFOIEml3LROyYyYQTNqR6Qaw0Pc0MMB8GA1UdIwQYMBaAFNAlNuTm24tu
|
||||
T4pNIEikITpYfu/EMA0GCSqGSIb3DQEBBQUAA4IBAQAo+Isi1I4AKcsOsoLxpjvi
|
||||
xnYKebXja7KAya+L38XX9MurNzyyvni3Lax38VK9bK6kcB2YkuUHcZlscE7yxZ3a
|
||||
xDEpPvvfgpBcdpcKcMPdDMy+fUxA9yWfb9M3xZsaCeH+KAhZeResZMuq4KwX8z5y
|
||||
aZHyFo3GPokzd750j2mtn02W4VFoukx7PyZ/FDi+6QddK8L7WB1Aw7ghqO4OaYJ6
|
||||
IWc2FkEI3HHkfNLxWDvIe1ZjtBz2fCo+lSsDn5xBuZUavKu3ORuOaG54rC4YADy/
|
||||
xkLAYl+67J+B2g52lKeIaHEi79FKFZRey1qcr1mz9xqtj3To/KWx2vlP/Nb4EUyp
|
||||
MIIDyzCCArOgAwIBAgIJAOG0pVw936YUMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNV
|
||||
BAYTAlNFMRIwEAYDVQQIDAlTdG9ja2hvbG0xEjAQBgNVBAcMCVN0b2NraG9sbTEP
|
||||
MA0GA1UECgwGT3JhY2xlMQ4wDAYDVQQLDAVNeVNRTDELMAkGA1UEAwwCQ0EwHhcN
|
||||
MTQxMjA1MDQ0ODQwWhcNMjkxMjAxMDQ0ODQwWjBqMQswCQYDVQQGEwJTRTESMBAG
|
||||
A1UECAwJU3RvY2tob2xtMRIwEAYDVQQHDAlTdG9ja2hvbG0xDzANBgNVBAoMBk9y
|
||||
YWNsZTEOMAwGA1UECwwFTXlTUUwxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJ
|
||||
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOkg5wVRBzpIueJioiRFH/FUNCJcYoab
|
||||
AejCRZAAjU7kourp17WVJc4YrBpPs+YwRq8gE0CE3yHc3wnloH+BEm4ehFhcoRHb
|
||||
qrYE4PweDBEu8zBiGvnu3/6j09aDbq3ojZiJsWljuHL0WuYiXnNkle9WkpIL4ZOl
|
||||
10xBR+cx7Qlos8VuwRsBObvxj7+69ALi5eWet9aaspR2m0jYJxgOnzCY9Zo+I+Y7
|
||||
SkjupSbogJQ35Eq6/59CuTLdep1jEaglmbEfhuV8sTHjEhEM6/YdAksdNMt0HX8v
|
||||
QMCB4gTUjuqW+CI1jqu2mTM277WDEYhtBg92Tb/bqN9sPJHiunOgc0UCAwEAAaN7
|
||||
MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
|
||||
Q2VydGlmaWNhdGUwHQYDVR0OBBYEFOQx2NUG6sazovYBOY9YCDYsez/bMB8GA1Ud
|
||||
IwQYMBaAFJRloaOHz7/BdLvYhJe2a+6ykHOyMA0GCSqGSIb3DQEBCwUAA4IBAQBG
|
||||
782/we82qcuZtb7ip7ppDfWbYzl4MjUBqLnxcA610Y+ULnrLZdTQtK1SuFFfZC6o
|
||||
CKVx/sI1ig0oJuW+ytf0eVThJ4+HktMEchvMxH+LJgmSLchvJ9qXMYAPg4Sc4KSI
|
||||
yeOPNefevTHi+lKD3u5cYG6PpY1eU0EYQvMDCwULWQlCLhsLKbP+ETvVrT9NJOjA
|
||||
2kwNk5TszRgPZs0D0+6gsn9k1zlmGXKfZEM4tLaz6m855wmYkJ9s9eizLgmNe3Zl
|
||||
MPTEm44QTpuMk2NEnSuK8/DP+HtllTj7tJLobBEDoqIv6uAit83PDaWRIxRHDDSP
|
||||
8RHM6B43U+yhAYEgwCz1
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -1,15 +1,27 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
|
@ -1,86 +1,86 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 2 (0x2)
|
||||
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: Jan 29 13:33:49 2015 GMT
|
||||
Not After : Jan 24 13:33:49 2035 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
|
||||
Public-Key: (8192 bit)
|
||||
Modulus:
|
||||
00:bd:48:03:11:06:b5:8b:92:f6:9f:2b:27:e0:3d:
|
||||
6c:8b:87:cc:7b:cf:e5:7b:e9:5f:eb:8d:4c:95:36:
|
||||
68:a6:1d:dc:81:10:83:c0:bb:97:c9:ac:4b:d1:c2:
|
||||
a1:64:2a:09:e2:1e:5f:26:14:42:6b:b8:8c:82:ea:
|
||||
6a:d8:df:9b:dd:46:9a:23:52:66:03:51:25:90:2f:
|
||||
96:d4:c2:ec:1f:6c:a7:de:3a:eb:49:7c:da:81:ae:
|
||||
42:48:30:59:82:43:d6:ab:00:a1:22:80:e5:1c:f4:
|
||||
74:3c:59:42:e4:a2:6b:5d:13:69:1e:74:a3:f9:a2:
|
||||
71:eb:a6:b6:7b:ba:12:49:a8:4b:47:40:ed:f0:2e:
|
||||
94:80:23:73:5c:51:7a:2a:5c:96:bc:a1:20:7b:bb:
|
||||
38:b6:41:11:53:92:c4:1c:95:cf:d4:b2:62:ce:65:
|
||||
bc:dd:4a:34:76:71:8f:e3:3e:fb:4c:0c:8f:dd:51:
|
||||
69:a3:e0:4c:c5:23:fa:c2:fd:5a:24:5d:cb:b1:fe:
|
||||
f1:21:3f:c4:16:f1:d1:53:09:0c:72:bb:9b:01:b6:
|
||||
c0:13:34:8e:bf:39:30:db:c5:f0:fc:6d:38:92:c3:
|
||||
a8:8c:91:59:cb:b1:ce:4f:2e:7b:2f:6c:65:69:d9:
|
||||
8c:35:f9:b8:ae:1b:9d:2f:ee:b0:26:23:43:9b:d8:
|
||||
ab:08:90:6a:d0:1d:cb:09:73:64:a4:55:95:f4:6f:
|
||||
0d:17:c5:ef:53:ea:6f:a0:13:3d:c1:cb:60:d0:1c:
|
||||
aa:02:a3:22:4b:05:0a:26:86:ae:ed:73:0e:b7:6c:
|
||||
b4:3b:ee:f1:34:01:60:9d:82:3d:e3:78:b0:ca:af:
|
||||
ed:8e:f2:56:ac:de:1c:9b:f7:2c:55:cc:58:94:11:
|
||||
92:55:a9:38:75:61:71:c4:da:95:7a:d4:7f:03:2d:
|
||||
9d:29:76:e3:f7:c9:69:56:54:a0:b9:db:b9:ea:46:
|
||||
e0:1a:55:a2:0f:cd:80:0f:4d:cf:7a:51:9c:f2:d5:
|
||||
e4:6d:9a:59:95:e1:7e:00:2e:2e:e5:30:14:6c:8e:
|
||||
21:52:3b:f8:01:7c:9b:c8:ba:77:fd:41:1e:d4:b9:
|
||||
a3:58:e1:4e:6d:a6:45:7e:cf:4f:3b:bb:a3:dd:a6:
|
||||
99:e8:d6:45:e3:28:d7:5b:b1:25:34:cb:15:3c:31:
|
||||
16:91:3b:01:76:32:b4:dd:c0:07:e9:d9:d9:87:f6:
|
||||
c9:c2:6a:30:05:47:ba:d9:1b:98:b5:2b:50:9f:71:
|
||||
ee:41:76:d6:0a:f5:30:de:0d:c6:d2:e1:ec:f7:7c:
|
||||
3e:97:13:5b:fb:2f:cf:82:7a:28:c0:98:e3:20:96:
|
||||
2c:f0:a7:30:19:ee:3d:66:c6:1e:f9:e8:f1:aa:11:
|
||||
aa:fa:38:7f:89:c6:74:fa:7c:22:8e:37:5c:49:20:
|
||||
98:ae:cd:bc:21:d5:76:7b:66:f8:cf:07:3f:bc:07:
|
||||
bf:75:ec:96:90:7f:62:10:31:eb:fe:60:c5:bf:78:
|
||||
d5:51:f5:87:70:d5:ce:a9:17:4d:f5:b4:69:7e:08:
|
||||
98:19:cf:31:dd:f4:cd:b9:17:2d:46:d2:23:08:e4:
|
||||
d1:75:c8:c5:a1:c4:5c:d8:26:bc:d8:bc:10:71:e1:
|
||||
5d:b7:2a:a3:c8:17:1c:7e:55:3c:d5:92:72:50:99:
|
||||
a7:6c:a0:0d:5a:46:89:1c:71:e8:2c:05:b8:60:3d:
|
||||
03:74:05:2d:f4:20:4f:11:a7:04:82:ba:32:b8:5f:
|
||||
de:ee:b6:bb:b2:7a:c2:64:ff:cc:5a:08:1c:c4:d8:
|
||||
ac:e4:37:be:d4:1d:f2:7b:4a:db:5a:0d:07:25:88:
|
||||
e2:74:91:ec:30:3a:97:b4:87:68:de:d7:53:6a:b8:
|
||||
cd:54:cd:b0:de:55:95:f6:76:41:3f:3c:37:27:0a:
|
||||
d0:bb:54:42:cf:5a:9f:3f:bc:9f:2b:45:f7:64:1e:
|
||||
d5:f8:98:75:8b:e9:b1:9d:32:00:bf:6a:f1:78:eb:
|
||||
f3:db:0b:12:16:62:4b:b3:b3:a9:c4:e2:48:72:cb:
|
||||
c4:a7:f5:26:23:27:32:63:3d:b7:40:70:d0:14:e6:
|
||||
93:56:e4:8b:c6:21:40:35:4b:2d:59:e2:21:97:df:
|
||||
cb:14:cb:eb:a5:27:a8:56:83:9c:94:ce:76:a6:2b:
|
||||
25:5d:51:de:0b:40:86:29:ae:2c:e6:74:a7:7d:b8:
|
||||
d7:13:1a:df:fc:d3:de:f8:38:24:d6:69:5e:69:61:
|
||||
6f:ad:ea:d7:94:61:22:30:6c:08:4a:3f:71:6f:c9:
|
||||
c0:d1:08:ca:06:ef:e4:12:a2:75:dd:a6:15:a2:56:
|
||||
14:82:e2:5e:b8:fe:87:09:70:c1:12:7d:84:29:5d:
|
||||
cf:b1:a4:45:7a:c6:a6:d3:91:c9:83:ec:0b:d9:95:
|
||||
25:5c:a7:fb:c4:75:2f:f7:13:31:1d:b5:48:20:2c:
|
||||
fb:eb:95:02:80:2e:81:bb:32:92:28:da:71:5b:42:
|
||||
97:c7:66:3d:2c:be:b3:ab:ee:30:68:b0:6b:11:f9:
|
||||
0d:5a:82:0d:5f:d6:3a:2a:99:f3:2a:e4:b5:47:c0:
|
||||
34:ce:94:ac:17:68:68:cd:72:52:f5:83:bd:17:f9:
|
||||
7b:ad:76:0a:98:6e:83:6f:4b:02:b6:af:bd:c2:e7:
|
||||
60:68:e5:e8:a5:90:1c:30:ce:c6:bc:78:e6:0f:77:
|
||||
7d:9c:7e:62:49:8c:54:4b:a5:98:be:31:b7:05:21:
|
||||
b1:6a:9c:2a:76:7f:20:f5:f5:1f:2a:40:80:b5:05:
|
||||
57:12:b9:d0:29
|
||||
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:
|
||||
|
@ -88,60 +88,120 @@ Certificate:
|
|||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
DF:F6:30:35:E7:24:29:DF:22:90:5F:EF:7C:1F:14:E9:5B:1C:98:1D
|
||||
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:D0:25:36:E4:E6:DB:8B:6E:4F:8A:4D:20:48:A4:21:3A:58:7E:EF:C4
|
||||
keyid:60:57:8F:09:CF:83:86:4B:35:32:BF:73:EB:81:4C:DB:36:27:12:8F
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
78:18:7b:57:42:67:41:d3:b8:3e:2f:ad:74:e6:c0:de:2e:83:
|
||||
ea:fa:07:5c:06:fe:d6:47:46:85:5a:df:67:17:86:f3:da:52:
|
||||
83:98:9a:5f:80:a3:a5:60:ab:07:f0:f0:d8:c5:9d:c5:09:53:
|
||||
ad:79:c4:c0:31:35:af:0c:e7:41:8e:b7:aa:ca:36:ee:90:6b:
|
||||
34:a6:19:1c:3b:1a:90:3a:91:10:47:12:a0:31:49:0c:c2:38:
|
||||
68:0e:38:57:24:d6:12:c6:4c:bb:b2:b4:d8:ab:9e:80:93:ad:
|
||||
af:84:01:d0:e8:2b:b3:ea:f6:c0:bc:4a:fa:01:b1:ce:fa:ab:
|
||||
eb:f1:08:b3:0d:83:fc:08:57:79:02:74:4c:09:56:14:0a:52:
|
||||
e0:02:74:76:44:66:2b:12:fe:8d:d4:8c:30:90:41:3b:4a:7b:
|
||||
3f:1c:7c:86:74:97:94:66:43:39:da:7d:20:4a:ba:3a:17:49:
|
||||
ac:c7:fa:72:ee:d8:84:09:e6:f4:84:8d:e3:2a:7b:70:36:93:
|
||||
88:f8:60:ef:7f:b8:e8:51:61:16:6f:a0:94:b8:7d:ff:3f:ec:
|
||||
25:fe:42:cf:0e:0d:ab:06:07:88:7a:e2:ba:d5:62:ff:19:19:
|
||||
37:43:ff:92:53:8c:ea:31:6f:a1:14:89:3b:b4:d1:3c:45:e8:
|
||||
9c:ef:bb:2d
|
||||
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,99 +1,99 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
|
@ -50,10 +50,31 @@ master-bin.000001 # Query # # use `test`; DROP TEMPORARY TABLE `tt1` /* generate
|
|||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
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: 39 "Directory not empty")
|
||||
|
||||
# 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;
|
||||
|
@ -70,7 +91,7 @@ t2
|
|||
include/show_binlog_events.inc
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
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;
|
||||
|
@ -125,10 +146,31 @@ master-bin.000001 # Query # # use `test`; DROP TEMPORARY TABLE `tt1` /* generate
|
|||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
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: 39 "Directory not empty")
|
||||
|
||||
# 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;
|
||||
|
@ -145,7 +187,7 @@ t2
|
|||
include/show_binlog_events.inc
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
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;
|
||||
|
@ -200,10 +242,31 @@ master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt1` /* gen
|
|||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
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: 39 "Directory not empty")
|
||||
|
||||
# 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;
|
||||
|
@ -220,7 +283,7 @@ t2
|
|||
include/show_binlog_events.inc
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
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;
|
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;
|
||||
|
|
@ -4,11 +4,6 @@
|
|||
-- source include/have_innodb.inc
|
||||
-- source include/have_innodb_16k.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
|
||||
|
@ -30,10 +25,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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -184,19 +244,68 @@ 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,WRITE,mysql,roles_mapping,
|
||||
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,WRITE,mysql,roles_mapping,
|
||||
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,WRITE,mysql,roles_mapping,
|
||||
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);
|
||||
|
@ -46,6 +47,8 @@ create database sa_db;
|
|||
--sleep 2
|
||||
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;
|
||||
|
@ -57,8 +60,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
|
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: .....' in $dir_docs/INFO_SRC";
|
|||
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";
|
||||
|
|
|
@ -1477,4 +1477,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
|
||||
|
|
|
@ -1819,6 +1819,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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -5345,6 +5345,28 @@ create view v1 as select 1;
|
|||
|
||||
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 # -----------------------------------------------------------------
|
||||
|
|
|
@ -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>
|
||||
|
@ -152,6 +151,10 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
|
|||
#define flogger_mutex_lock(A) pthread_mutex_lock(mysql_mutex_real_mutex(A))
|
||||
#define flogger_mutex_unlock(A) pthread_mutex_unlock(mysql_mutex_real_mutex(A))
|
||||
|
||||
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*/
|
||||
|
||||
|
@ -175,6 +178,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;
|
||||
|
@ -232,11 +236,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=
|
||||
|
@ -244,7 +252,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
|
||||
|
@ -536,6 +544,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;
|
||||
|
@ -573,6 +678,7 @@ struct connection_info
|
|||
int log_always;
|
||||
};
|
||||
|
||||
|
||||
static HASH connection_hash;
|
||||
|
||||
|
||||
|
@ -783,6 +889,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)
|
||||
{
|
||||
|
@ -990,6 +1111,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;
|
||||
|
@ -1008,6 +1221,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,
|
||||
|
@ -1044,10 +1347,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';
|
||||
|
@ -1396,6 +1766,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
|
||||
|
@ -1471,15 +1940,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)
|
||||
{
|
||||
|
@ -1487,8 +1960,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)
|
||||
{
|
||||
|
@ -1499,7 +1978,6 @@ static int server_audit_init(void *p __attribute__((unused)))
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (gethostname(servhost, sizeof(servhost)))
|
||||
strcpy(servhost, "unknown");
|
||||
|
||||
|
@ -1618,8 +2096,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,
|
||||
|
@ -1646,8 +2124,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,
|
||||
|
@ -1925,3 +2403,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
|
||||
|
@ -202,7 +203,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
|
||||
|
@ -570,7 +571,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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -263,14 +264,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
|
||||
|
@ -280,8 +282,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
|
||||
)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Copyright (c) 2000, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2014, SkySQL 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
|
||||
|
@ -3659,8 +3659,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();
|
||||
|
|
|
@ -1287,6 +1287,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,
|
||||
|
@ -1314,6 +1321,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;
|
||||
|
|
|
@ -1434,6 +1434,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
|
||||
|
@ -952,7 +952,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);
|
||||
|
||||
|
|
|
@ -897,9 +897,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
|
||||
|
|
|
@ -516,6 +516,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())
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* 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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Copyright (c) 2000, 2012, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008, 2014, SkySQL Ab.
|
||||
/* Copyright (c) 2000, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008, 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
|
||||
|
@ -2927,7 +2927,9 @@ partititon_err:
|
|||
outparam->no_replicate= FALSE;
|
||||
}
|
||||
|
||||
thd->status_var.opened_tables++;
|
||||
/* Increment the opened_tables counter, only when open flags set. */
|
||||
if (db_stat)
|
||||
thd->status_var.opened_tables++;
|
||||
|
||||
thd->lex->context_analysis_only= save_context_analysis_only;
|
||||
DBUG_RETURN (OPEN_FRM_OK);
|
||||
|
|
18
sql/table.h
18
sql/table.h
|
@ -2079,6 +2079,24 @@ struct TABLE_LIST
|
|||
TABLE_LIST *find_underlying_table(TABLE *table);
|
||||
TABLE_LIST *first_leaf_for_name_resolution();
|
||||
TABLE_LIST *last_leaf_for_name_resolution();
|
||||
/**
|
||||
@brief
|
||||
Find the bottom in the chain of embedded table VIEWs.
|
||||
|
||||
@detail
|
||||
This is used for single-table UPDATE/DELETE when they are modifying a
|
||||
single-table VIEW.
|
||||
*/
|
||||
TABLE_LIST *find_table_for_update()
|
||||
{
|
||||
TABLE_LIST *tbl= this;
|
||||
while(!tbl->is_multitable() && tbl->single_table_updatable() &&
|
||||
tbl->merge_underlying_list)
|
||||
{
|
||||
tbl= tbl->merge_underlying_list;
|
||||
}
|
||||
return tbl;
|
||||
}
|
||||
TABLE *get_real_join_table();
|
||||
bool is_leaf_for_name_resolution();
|
||||
inline TABLE_LIST *top_table()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (c) 2000, 2010, Oracle and/or its affiliates.
|
||||
Copyright (c) 2000, 2014, Oracle and/or its affiliates.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -296,9 +296,12 @@ char *metaphon(UDF_INIT *initid __attribute__((unused)),
|
|||
|
||||
if (!word) /* Null argument */
|
||||
{
|
||||
/* The length is expected to be zero when the argument is NULL. */
|
||||
assert(args->lengths[0] == 0);
|
||||
*is_null=1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
w_end=word+args->lengths[0];
|
||||
org_result=result;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2004, 2013, Oracle and/or its affiliates.
|
||||
/* Copyright (c) 2004, 2014, Oracle and/or its affiliates.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1665,9 +1665,9 @@ int ha_federated::close(void)
|
|||
DBUG_ENTER("ha_federated::close");
|
||||
|
||||
free_result();
|
||||
|
||||
|
||||
delete_dynamic(&results);
|
||||
|
||||
|
||||
/* Disconnect from mysql */
|
||||
mysql_close(mysql);
|
||||
mysql= NULL;
|
||||
|
|
|
@ -17599,6 +17599,10 @@ ib_warn_row_too_big(const dict_table_t* table)
|
|||
|
||||
THD* thd = current_thd;
|
||||
|
||||
if (thd == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
push_warning_printf(
|
||||
thd, Sql_condition::WARN_LEVEL_WARN, HA_ERR_TO_BIG_ROW,
|
||||
"Row size too large (> %lu). Changing some columns to TEXT"
|
||||
|
|
|
@ -2837,6 +2837,14 @@ ibuf_contract_in_background(
|
|||
mutex_exit(&ibuf_mutex);
|
||||
}
|
||||
|
||||
#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG
|
||||
if (ibuf_debug) {
|
||||
return(0);
|
||||
}
|
||||
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
|
||||
|
||||
|
||||
|
||||
while (sum_pages < n_pages) {
|
||||
ulint n_bytes;
|
||||
|
||||
|
|
|
@ -842,7 +842,8 @@ rec_get_converted_size_comp_prefix_low(
|
|||
}
|
||||
|
||||
ut_ad(len <= col->len || col->mtype == DATA_BLOB
|
||||
|| (col->len == 0 && col->mtype == DATA_VARCHAR));
|
||||
|| col->mtype == DATA_VARMYSQL
|
||||
|| (col->len == 0 && col->mtype == DATA_VARCHAR));
|
||||
|
||||
fixed_len = field->fixed_len;
|
||||
if (temp && fixed_len
|
||||
|
@ -1271,6 +1272,7 @@ rec_convert_dtuple_to_rec_comp(
|
|||
} else {
|
||||
ut_ad(len <= dtype_get_len(type)
|
||||
|| dtype_get_mtype(type) == DATA_BLOB
|
||||
|| dtype_get_mtype(type) == DATA_VARMYSQL
|
||||
|| !strcmp(index->name,
|
||||
FTS_INDEX_TABLE_IND_NAME));
|
||||
if (len < 128
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.4 KiB |
|
@ -172,6 +172,31 @@ static inline uint32_t get_len_of_offsets(KEY_AND_COL_INFO* kc_info, TABLE_SHARE
|
|||
}
|
||||
|
||||
|
||||
static int get_thread_query_string(my_thread_id id, String &qs) {
|
||||
mysql_mutex_lock(&LOCK_thread_count);
|
||||
I_List_iterator<THD> it(threads);
|
||||
THD* tmp;
|
||||
while ((tmp= it++))
|
||||
{
|
||||
/* ID */
|
||||
if (tmp->thread_id == id)
|
||||
{
|
||||
/* Lock THD mutex that protects its data when looking at it. */
|
||||
mysql_mutex_lock(&tmp->LOCK_thd_data);
|
||||
|
||||
/* INFO */
|
||||
if (tmp->query())
|
||||
{
|
||||
qs = String(tmp->query(), tmp->query_length(), system_charset_info);
|
||||
}
|
||||
mysql_mutex_unlock(&tmp->LOCK_thd_data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
mysql_mutex_unlock(&LOCK_thread_count);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int allocate_key_and_col_info ( TABLE_SHARE* table_share, KEY_AND_COL_INFO* kc_info) {
|
||||
int error;
|
||||
//
|
||||
|
@ -3557,8 +3582,12 @@ static void maybe_do_unique_checks_delay(THD *thd) {
|
|||
}
|
||||
}
|
||||
|
||||
static bool need_read_only(THD *thd) {
|
||||
return opt_readonly || !THDVAR(thd, rpl_check_readonly);
|
||||
}
|
||||
|
||||
static bool do_unique_checks(THD *thd, bool do_rpl_event) {
|
||||
if (do_rpl_event && thd->slave_thread && opt_readonly && !THDVAR(thd, rpl_unique_checks))
|
||||
if (do_rpl_event && thd->slave_thread && need_read_only(thd) && !THDVAR(thd, rpl_unique_checks))
|
||||
return false;
|
||||
else
|
||||
return !thd_test_options(thd, OPTION_RELAXED_UNIQUE_CHECKS);
|
||||
|
@ -5375,9 +5404,12 @@ int ha_tokudb::get_next(uchar* buf, int direction, DBT* key_to_compare, bool do_
|
|||
}
|
||||
|
||||
if (!error) {
|
||||
tokudb_trx_data* trx = (tokudb_trx_data *) thd_get_ha_data(ha_thd(), tokudb_hton);
|
||||
THD *thd = ha_thd();
|
||||
tokudb_trx_data* trx = (tokudb_trx_data *) thd_get_ha_data(thd, tokudb_hton);
|
||||
trx->stmt_progress.queried++;
|
||||
track_progress(ha_thd());
|
||||
track_progress(thd);
|
||||
if (thd_killed(thd))
|
||||
error = ER_ABORTING_CONNECTION;
|
||||
}
|
||||
cleanup:
|
||||
return error;
|
||||
|
@ -7257,7 +7289,7 @@ double ha_tokudb::index_only_read_time(uint keynr, double records) {
|
|||
// HA_POS_ERROR - Something is wrong with the index tree
|
||||
//
|
||||
ha_rows ha_tokudb::records_in_range(uint keynr, key_range* start_key, key_range* end_key) {
|
||||
TOKUDB_HANDLER_DBUG_ENTER("");
|
||||
TOKUDB_HANDLER_DBUG_ENTER("%d %p %p", keynr, start_key, end_key);
|
||||
DBT *pleft_key, *pright_key;
|
||||
DBT left_key, right_key;
|
||||
ha_rows ret_val = HA_TOKUDB_RANGE_COUNT;
|
||||
|
@ -7313,6 +7345,9 @@ ha_rows ha_tokudb::records_in_range(uint keynr, key_range* start_key, key_range*
|
|||
ret_val = (ha_rows) (rows <= 1 ? 1 : rows);
|
||||
|
||||
cleanup:
|
||||
if (tokudb_debug & TOKUDB_DEBUG_RETURN) {
|
||||
TOKUDB_HANDLER_TRACE("%" PRIu64 " %" PRIu64, (uint64_t) ret_val, rows);
|
||||
}
|
||||
DBUG_RETURN(ret_val);
|
||||
}
|
||||
|
||||
|
|
|
@ -89,6 +89,8 @@ PATENT RIGHTS GRANT:
|
|||
#ident "Copyright (c) 2007-2013 Tokutek Inc. All rights reserved."
|
||||
#ident "The technology is licensed by the Massachusetts Institute of Technology, Rutgers State University of New Jersey, and the Research Foundation of State University of New York at Stony Brook under United States of America Serial No. 11/760379 and to the patents and/or patent applications resulting from it."
|
||||
|
||||
#include "toku_time.h"
|
||||
|
||||
struct analyze_progress_extra {
|
||||
THD *thd;
|
||||
TOKUDB_SHARE *share;
|
||||
|
@ -186,9 +188,12 @@ typedef struct hot_optimize_context {
|
|||
uint progress_stage;
|
||||
uint current_table;
|
||||
uint num_tables;
|
||||
float progress_limit;
|
||||
uint64_t progress_last_time;
|
||||
uint64_t throttle;
|
||||
} *HOT_OPTIMIZE_CONTEXT;
|
||||
|
||||
static int hot_poll_fun(void *extra, float progress) {
|
||||
static int hot_optimize_progress_fun(void *extra, float progress) {
|
||||
HOT_OPTIMIZE_CONTEXT context = (HOT_OPTIMIZE_CONTEXT)extra;
|
||||
if (thd_killed(context->thd)) {
|
||||
sprintf(context->write_status_msg, "The process has been killed, aborting hot optimize.");
|
||||
|
@ -207,14 +212,27 @@ static int hot_poll_fun(void *extra, float progress) {
|
|||
// the percentage we report here is for the current stage/db
|
||||
thd_progress_report(context->thd, (unsigned long long) percentage, 100);
|
||||
#endif
|
||||
return 0;
|
||||
|
||||
// throttle the optimize table
|
||||
if (context->throttle) {
|
||||
uint64_t time_now = toku_current_time_microsec();
|
||||
uint64_t dt = time_now - context->progress_last_time;
|
||||
uint64_t throttle_time = 1000000ULL / context->throttle;
|
||||
if (throttle_time > dt) {
|
||||
usleep(throttle_time - dt);
|
||||
}
|
||||
context->progress_last_time = toku_current_time_microsec();
|
||||
}
|
||||
|
||||
// return 1 if progress has reach the progress limit
|
||||
return progress >= context->progress_limit;
|
||||
}
|
||||
|
||||
// flatten all DB's in this table, to do so, peform hot optimize on each db
|
||||
int ha_tokudb::do_optimize(THD *thd) {
|
||||
TOKUDB_HANDLER_DBUG_ENTER("%s", share->table_name);
|
||||
int error = 0;
|
||||
const char *orig_proc_info = tokudb_thd_get_proc_info(thd);
|
||||
int error;
|
||||
uint curr_num_DBs = table->s->keys + tokudb_test(hidden_primary_key);
|
||||
|
||||
#ifdef HA_TOKUDB_HAS_THD_PROGRESS
|
||||
|
@ -225,11 +243,21 @@ int ha_tokudb::do_optimize(THD *thd) {
|
|||
|
||||
// for each DB, run optimize and hot_optimize
|
||||
for (uint i = 0; i < curr_num_DBs; i++) {
|
||||
// only optimize the index if it matches the optimize_index_name session variable
|
||||
const char *optimize_index_name = THDVAR(thd, optimize_index_name);
|
||||
if (optimize_index_name) {
|
||||
const char *this_index_name = i >= table_share->keys ? "primary" : table_share->key_info[i].name;
|
||||
if (strcasecmp(optimize_index_name, this_index_name) != 0) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
DB* db = share->key_file[i];
|
||||
error = db->optimize(db);
|
||||
if (error) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
struct hot_optimize_context hc;
|
||||
memset(&hc, 0, sizeof hc);
|
||||
hc.thd = thd;
|
||||
|
@ -237,8 +265,11 @@ int ha_tokudb::do_optimize(THD *thd) {
|
|||
hc.ha = this;
|
||||
hc.current_table = i;
|
||||
hc.num_tables = curr_num_DBs;
|
||||
hc.progress_limit = THDVAR(thd, optimize_index_fraction);
|
||||
hc.progress_last_time = toku_current_time_microsec();
|
||||
hc.throttle = THDVAR(thd, optimize_throttle);
|
||||
uint64_t loops_run;
|
||||
error = db->hot_optimize(db, NULL, NULL, hot_poll_fun, &hc, &loops_run);
|
||||
error = db->hot_optimize(db, NULL, NULL, hot_optimize_progress_fun, &hc, &loops_run);
|
||||
if (error) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
|
|
@ -162,6 +162,9 @@ PATENT RIGHTS GRANT:
|
|||
#define TOKU_INCLUDE_EXTENDED_KEYS 1
|
||||
#define TOKU_INCLUDE_OPTION_STRUCTS 1
|
||||
#define TOKU_CLUSTERING_IS_COVERING 1
|
||||
#define TOKU_INCLUDE_LOCK_TIMEOUT_QUERY_STRING 1
|
||||
#else
|
||||
#define TOKU_INCLUDE_LOCK_TIMEOUT_QUERY_STRING 1
|
||||
#endif
|
||||
#define TOKU_INCLUDE_HANDLERTON_HANDLE_FATAL_SIGNAL 0 /* MariaDB 5.5 */
|
||||
|
||||
|
|
|
@ -1393,8 +1393,6 @@ static MYSQL_SYSVAR_STR(data_dir, tokudb_data_dir, PLUGIN_VAR_READONLY, "TokuDB
|
|||
|
||||
static MYSQL_SYSVAR_STR(version, tokudb_version, PLUGIN_VAR_READONLY, "TokuDB Version", NULL, NULL, NULL);
|
||||
|
||||
static MYSQL_SYSVAR_UINT(init_flags, tokudb_init_flags, PLUGIN_VAR_READONLY, "Sets TokuDB DB_ENV->open flags", NULL, NULL, tokudb_init_flags, 0, ~0U, 0);
|
||||
|
||||
static MYSQL_SYSVAR_UINT(write_status_frequency, tokudb_write_status_frequency, 0, "TokuDB frequency that show processlist updates status of writes", NULL, NULL, 1000, 0, ~0U, 0);
|
||||
static MYSQL_SYSVAR_UINT(read_status_frequency, tokudb_read_status_frequency, 0, "TokuDB frequency that show processlist updates status of reads", NULL, NULL, 10000, 0, ~0U, 0);
|
||||
static MYSQL_SYSVAR_INT(fs_reserve_percent, tokudb_fs_reserve_percent, PLUGIN_VAR_READONLY, "TokuDB file system space reserve (percent free required)", NULL, NULL, 5, 0, 100, 0);
|
||||
|
@ -1431,7 +1429,6 @@ static struct st_mysql_sys_var *tokudb_system_variables[] = {
|
|||
MYSQL_SYSVAR(create_index_online),
|
||||
MYSQL_SYSVAR(disable_prefetching),
|
||||
MYSQL_SYSVAR(version),
|
||||
MYSQL_SYSVAR(init_flags),
|
||||
MYSQL_SYSVAR(checkpointing_period),
|
||||
MYSQL_SYSVAR(prelock_empty),
|
||||
MYSQL_SYSVAR(checkpoint_lock),
|
||||
|
@ -1472,6 +1469,10 @@ static struct st_mysql_sys_var *tokudb_system_variables[] = {
|
|||
MYSQL_SYSVAR(rpl_unique_checks_delay),
|
||||
MYSQL_SYSVAR(rpl_lookup_rows),
|
||||
MYSQL_SYSVAR(rpl_lookup_rows_delay),
|
||||
MYSQL_SYSVAR(rpl_check_readonly),
|
||||
MYSQL_SYSVAR(optimize_index_name),
|
||||
MYSQL_SYSVAR(optimize_index_fraction),
|
||||
MYSQL_SYSVAR(optimize_throttle),
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -1964,6 +1965,33 @@ static int tokudb_fractal_tree_block_map_done(void *p) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if TOKU_INCLUDE_LOCK_TIMEOUT_QUERY_STRING
|
||||
struct tokudb_search_txn_extra {
|
||||
bool match_found;
|
||||
uint64_t match_txn_id;
|
||||
uint64_t match_client_id;
|
||||
};
|
||||
|
||||
static int tokudb_search_txn_callback(uint64_t txn_id, uint64_t client_id, iterate_row_locks_callback iterate_locks, void *locks_extra, void *extra) {
|
||||
struct tokudb_search_txn_extra *e = reinterpret_cast<struct tokudb_search_txn_extra *>(extra);
|
||||
if (e->match_txn_id == txn_id) {
|
||||
e->match_found = true;
|
||||
e->match_client_id = client_id;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool tokudb_txn_id_to_client_id(THD *thd, uint64_t blocking_txnid, uint64_t *blocking_client_id) {
|
||||
struct tokudb_search_txn_extra e = { false, blocking_txnid, 0};
|
||||
(void) db_env->iterate_live_transactions(db_env, tokudb_search_txn_callback, &e);
|
||||
if (e.match_found) {
|
||||
*blocking_client_id = e.match_client_id;
|
||||
}
|
||||
return e.match_found;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void tokudb_pretty_key(const DB *db, const DBT *key, const char *default_key, String *out) {
|
||||
if (key->data == NULL) {
|
||||
out->append(default_key);
|
||||
|
@ -2013,8 +2041,9 @@ static void tokudb_lock_timeout_callback(DB *db, uint64_t requesting_txnid, cons
|
|||
// generate a JSON document with the lock timeout info
|
||||
String log_str;
|
||||
log_str.append("{");
|
||||
uint64_t mysql_thread_id = thd->thread_id;
|
||||
log_str.append("\"mysql_thread_id\":");
|
||||
log_str.append_ulonglong(thd->thread_id);
|
||||
log_str.append_ulonglong(mysql_thread_id);
|
||||
log_str.append(", \"dbname\":");
|
||||
log_str.append("\""); log_str.append(tokudb_get_index_name(db)); log_str.append("\"");
|
||||
log_str.append(", \"requesting_txnid\":");
|
||||
|
@ -2054,7 +2083,18 @@ static void tokudb_lock_timeout_callback(DB *db, uint64_t requesting_txnid, cons
|
|||
}
|
||||
// dump to stderr
|
||||
if (lock_timeout_debug & 2) {
|
||||
sql_print_error("%s: %s", tokudb_hton_name, log_str.c_ptr());
|
||||
sql_print_error("%s: lock timeout %s", tokudb_hton_name, log_str.c_ptr());
|
||||
LEX_STRING *qs = thd_query_string(thd);
|
||||
sql_print_error("%s: requesting_thread_id:%" PRIu64 " q:%.*s", tokudb_hton_name, mysql_thread_id, (int) qs->length, qs->str);
|
||||
#if TOKU_INCLUDE_LOCK_TIMEOUT_QUERY_STRING
|
||||
uint64_t blocking_thread_id = 0;
|
||||
if (tokudb_txn_id_to_client_id(thd, blocking_txnid, &blocking_thread_id)) {
|
||||
String blocking_qs;
|
||||
if (get_thread_query_string(blocking_thread_id, blocking_qs) == 0) {
|
||||
sql_print_error("%s: blocking_thread_id:%" PRIu64 " q:%.*s", tokudb_hton_name, blocking_thread_id, blocking_qs.length(), blocking_qs.c_ptr());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -491,6 +491,15 @@ static MYSQL_THDVAR_BOOL(rpl_lookup_rows, PLUGIN_VAR_THDLOCAL, "lookup a row on
|
|||
static MYSQL_THDVAR_ULONGLONG(rpl_lookup_rows_delay, PLUGIN_VAR_THDLOCAL, "time in milliseconds to add to lookups on replication slave",
|
||||
NULL, NULL, 0 /*default*/, 0 /*min*/, ~0ULL /*max*/, 1 /*blocksize*/);
|
||||
|
||||
static MYSQL_THDVAR_BOOL(rpl_check_readonly, PLUGIN_VAR_THDLOCAL, "check if the slave is read only",
|
||||
NULL /*check*/, NULL /*update*/, true /*default*/);
|
||||
|
||||
static MYSQL_THDVAR_STR(optimize_index_name, PLUGIN_VAR_THDLOCAL + PLUGIN_VAR_MEMALLOC, "optimize index name (default all indexes)", NULL /*check*/, NULL /*update*/, NULL /*default*/);
|
||||
|
||||
static MYSQL_THDVAR_DOUBLE(optimize_index_fraction, 0, "optimize index fraction (default 1.0 all)", NULL /*check*/, NULL /*update*/, 1.0 /*def*/, 0 /*min*/, 1.0 /*max*/, 1);
|
||||
|
||||
static MYSQL_THDVAR_ULONGLONG(optimize_throttle, 0, "optimize throttle (default no throttle)", NULL /*check*/, NULL /*update*/, 0 /*def*/, 0 /*min*/, ~0ULL /*max*/, 1);
|
||||
|
||||
extern HASH tokudb_open_tables;
|
||||
extern pthread_mutex_t tokudb_mutex;
|
||||
extern uint32_t tokudb_write_status_frequency;
|
||||
|
|
|
@ -10,3 +10,6 @@ rpl_tokudb_write_pk: unreliable, uses timestamp differences
|
|||
rpl_tokudb_write_pk_uc1: unreliable, uses timestamp differences
|
||||
rpl_tokudb_write_unique: unreliable, uses timestamp differences
|
||||
rpl_tokudb_write_unique_uc1: unreliable, uses timestamp differences
|
||||
rpl_tokudb_read_only_ff: unreliable, uses timestamp differences
|
||||
rpl_tokudb_read_only_tf: unreliable, uses timestamp differences
|
||||
rpl_tokudb_read_only_tt: unreliable, uses timestamp differences
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
drop table if exists t;
|
||||
create table t (a bigint not null, primary key(a)) engine=tokudb;
|
||||
select unix_timestamp() into @tstart;
|
||||
insert into t values (1);
|
||||
insert into t values (2),(3);
|
||||
insert into t values (4);
|
||||
select unix_timestamp()-@tstart <= 10;
|
||||
unix_timestamp()-@tstart <= 10
|
||||
1
|
||||
include/diff_tables.inc [master:test.t, slave:test.t]
|
||||
drop table if exists t;
|
||||
include/rpl_end.inc
|
|
@ -0,0 +1,14 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
drop table if exists t;
|
||||
create table t (a bigint not null, primary key(a)) engine=tokudb;
|
||||
select unix_timestamp() into @tstart;
|
||||
insert into t values (1);
|
||||
insert into t values (2),(3);
|
||||
insert into t values (4);
|
||||
select unix_timestamp()-@tstart <= 10;
|
||||
unix_timestamp()-@tstart <= 10
|
||||
0
|
||||
include/diff_tables.inc [master:test.t, slave:test.t]
|
||||
drop table if exists t;
|
||||
include/rpl_end.inc
|
|
@ -0,0 +1,14 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
drop table if exists t;
|
||||
create table t (a bigint not null, primary key(a)) engine=tokudb;
|
||||
select unix_timestamp() into @tstart;
|
||||
insert into t values (1);
|
||||
insert into t values (2),(3);
|
||||
insert into t values (4);
|
||||
select unix_timestamp()-@tstart <= 10;
|
||||
unix_timestamp()-@tstart <= 10
|
||||
1
|
||||
include/diff_tables.inc [master:test.t, slave:test.t]
|
||||
drop table if exists t;
|
||||
include/rpl_end.inc
|
|
@ -0,0 +1,14 @@
|
|||
include/master-slave.inc
|
||||
[connection master]
|
||||
drop table if exists t;
|
||||
create table t (a bigint not null, primary key(a)) engine=tokudb;
|
||||
select unix_timestamp() into @tstart;
|
||||
insert into t values (1);
|
||||
insert into t values (2),(3);
|
||||
insert into t values (4);
|
||||
select unix_timestamp()-@tstart <= 10;
|
||||
unix_timestamp()-@tstart <= 10
|
||||
1
|
||||
include/diff_tables.inc [master:test.t, slave:test.t]
|
||||
drop table if exists t;
|
||||
include/rpl_end.inc
|
|
@ -0,0 +1 @@
|
|||
--read-only=OFF --tokudb-rpl-check-readonly=OFF --tokudb-rpl-unique-checks-delay=5000 --tokudb-rpl-unique-checks=OFF
|
53
storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ff.test
Normal file
53
storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ff.test
Normal file
|
@ -0,0 +1,53 @@
|
|||
# test replicated write rows log events on a table with a primary key.
|
||||
# the slave is read only with tokudb unique checks disabled.
|
||||
|
||||
source include/have_tokudb.inc;
|
||||
let $engine=tokudb;
|
||||
source include/have_binlog_format_row.inc;
|
||||
source include/master-slave.inc;
|
||||
|
||||
# initialize
|
||||
connection master;
|
||||
disable_warnings;
|
||||
drop table if exists t;
|
||||
enable_warnings;
|
||||
|
||||
connection slave;
|
||||
# show variables like 'read_only';
|
||||
# show variables like 'tokudb_rpl_unique_checks%';
|
||||
|
||||
# insert some rows
|
||||
connection master;
|
||||
# select @@binlog_format;
|
||||
# select @@autocommit;
|
||||
eval create table t (a bigint not null, primary key(a)) engine=$engine;
|
||||
# show create table t;
|
||||
select unix_timestamp() into @tstart;
|
||||
insert into t values (1);
|
||||
insert into t values (2),(3);
|
||||
insert into t values (4);
|
||||
|
||||
sync_slave_with_master;
|
||||
# source include/sync_slave_sql_with_master.inc;
|
||||
|
||||
connection master;
|
||||
select unix_timestamp()-@tstart <= 10;
|
||||
|
||||
connection slave;
|
||||
# insert into t values (5); # test read-only
|
||||
# show create table t;
|
||||
|
||||
# diff tables
|
||||
connection master;
|
||||
--let $diff_tables= master:test.t, slave:test.t
|
||||
source include/diff_tables.inc;
|
||||
|
||||
# cleanup
|
||||
connection master;
|
||||
drop table if exists t;
|
||||
|
||||
sync_slave_with_master;
|
||||
# source include/sync_slave_sql_with_master.inc;
|
||||
|
||||
source include/rpl_end.inc;
|
||||
|
|
@ -0,0 +1 @@
|
|||
--read-only=OFF --tokudb-rpl-check-readonly=ON --tokudb-rpl-unique-checks-delay=5000 --tokudb-rpl-unique-checks=OFF
|
53
storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ft.test
Normal file
53
storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ft.test
Normal file
|
@ -0,0 +1,53 @@
|
|||
# test replicated write rows log events on a table with a primary key.
|
||||
# the slave is read only with tokudb unique checks disabled.
|
||||
|
||||
source include/have_tokudb.inc;
|
||||
let $engine=tokudb;
|
||||
source include/have_binlog_format_row.inc;
|
||||
source include/master-slave.inc;
|
||||
|
||||
# initialize
|
||||
connection master;
|
||||
disable_warnings;
|
||||
drop table if exists t;
|
||||
enable_warnings;
|
||||
|
||||
connection slave;
|
||||
# show variables like 'read_only';
|
||||
# show variables like 'tokudb_rpl_unique_checks%';
|
||||
|
||||
# insert some rows
|
||||
connection master;
|
||||
# select @@binlog_format;
|
||||
# select @@autocommit;
|
||||
eval create table t (a bigint not null, primary key(a)) engine=$engine;
|
||||
# show create table t;
|
||||
select unix_timestamp() into @tstart;
|
||||
insert into t values (1);
|
||||
insert into t values (2),(3);
|
||||
insert into t values (4);
|
||||
|
||||
sync_slave_with_master;
|
||||
# source include/sync_slave_sql_with_master.inc;
|
||||
|
||||
connection master;
|
||||
select unix_timestamp()-@tstart <= 10;
|
||||
|
||||
connection slave;
|
||||
# insert into t values (5); # test read-only
|
||||
# show create table t;
|
||||
|
||||
# diff tables
|
||||
connection master;
|
||||
--let $diff_tables= master:test.t, slave:test.t
|
||||
source include/diff_tables.inc;
|
||||
|
||||
# cleanup
|
||||
connection master;
|
||||
drop table if exists t;
|
||||
|
||||
sync_slave_with_master;
|
||||
# source include/sync_slave_sql_with_master.inc;
|
||||
|
||||
source include/rpl_end.inc;
|
||||
|
|
@ -0,0 +1 @@
|
|||
--read-only=ON --tokudb-rpl-check-readonly=OFF --tokudb-rpl-unique-checks-delay=5000 --tokudb-rpl-unique-checks=OFF
|
53
storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tf.test
Normal file
53
storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tf.test
Normal file
|
@ -0,0 +1,53 @@
|
|||
# test replicated write rows log events on a table with a primary key.
|
||||
# the slave is read only with tokudb unique checks disabled.
|
||||
|
||||
source include/have_tokudb.inc;
|
||||
let $engine=tokudb;
|
||||
source include/have_binlog_format_row.inc;
|
||||
source include/master-slave.inc;
|
||||
|
||||
# initialize
|
||||
connection master;
|
||||
disable_warnings;
|
||||
drop table if exists t;
|
||||
enable_warnings;
|
||||
|
||||
connection slave;
|
||||
# show variables like 'read_only';
|
||||
# show variables like 'tokudb_rpl_unique_checks%';
|
||||
|
||||
# insert some rows
|
||||
connection master;
|
||||
# select @@binlog_format;
|
||||
# select @@autocommit;
|
||||
eval create table t (a bigint not null, primary key(a)) engine=$engine;
|
||||
# show create table t;
|
||||
select unix_timestamp() into @tstart;
|
||||
insert into t values (1);
|
||||
insert into t values (2),(3);
|
||||
insert into t values (4);
|
||||
|
||||
sync_slave_with_master;
|
||||
# source include/sync_slave_sql_with_master.inc;
|
||||
|
||||
connection master;
|
||||
select unix_timestamp()-@tstart <= 10;
|
||||
|
||||
connection slave;
|
||||
# insert into t values (5); # test read-only
|
||||
# show create table t;
|
||||
|
||||
# diff tables
|
||||
connection master;
|
||||
--let $diff_tables= master:test.t, slave:test.t
|
||||
source include/diff_tables.inc;
|
||||
|
||||
# cleanup
|
||||
connection master;
|
||||
drop table if exists t;
|
||||
|
||||
sync_slave_with_master;
|
||||
# source include/sync_slave_sql_with_master.inc;
|
||||
|
||||
source include/rpl_end.inc;
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue