Merge tag 'mariadb-10.0.19' into 10.0-galera
This commit is contained in:
commit
e11cad9e9d
21
.gitattributes
vendored
21
.gitattributes
vendored
@ -1,3 +1,24 @@
|
||||
# Set the default behavior, in case people don't have core.autocrlf set.
|
||||
* text=auto
|
||||
|
||||
# Explicitly declare text files you want to always be normalized and converted
|
||||
# to native line endings on checkout.
|
||||
*.c text
|
||||
*.ic text
|
||||
*.cc text
|
||||
*.cpp text
|
||||
*.h text
|
||||
*.test text
|
||||
|
||||
# These files should be checked out as is
|
||||
*.result -text -whitespace
|
||||
storage/connect/mysql-test/connect/std_data/*.txt -text
|
||||
storage/connect/mysql-test/connect/std_data/*.dat -text
|
||||
|
||||
# Denote all files that are truly binary and should not be modified.
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
|
||||
*.c diff=cpp
|
||||
*.h diff=cpp
|
||||
*.cc diff=cpp
|
||||
|
241
.gitignore
vendored
241
.gitignore
vendored
@ -1,12 +1,8 @@
|
||||
*-t
|
||||
*.a
|
||||
*.ctest
|
||||
*.o
|
||||
*.reject
|
||||
*.so
|
||||
*.so.*
|
||||
*.spec
|
||||
*~
|
||||
*.bak
|
||||
.*.swp
|
||||
*.ninja
|
||||
.ninja_*
|
||||
@ -15,6 +11,8 @@ errmsg.sys
|
||||
typescript
|
||||
CMakeCache.txt
|
||||
CMakeFiles/
|
||||
MakeFile
|
||||
install_manifest.txt
|
||||
CPackConfig.cmake
|
||||
CPackSourceConfig.cmake
|
||||
CTestTestfile.cmake
|
||||
@ -138,6 +136,8 @@ sql-bench/test-select
|
||||
sql-bench/test-table-elimination
|
||||
sql-bench/test-transactions
|
||||
sql-bench/test-wisconsin
|
||||
sql/lex_token.h
|
||||
sql/gen_lex_token
|
||||
sql/gen_lex_hash
|
||||
sql/lex_hash.h
|
||||
sql/mysql_tzinfo_to_sql
|
||||
@ -166,8 +166,6 @@ 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
|
||||
@ -193,10 +191,6 @@ 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
|
||||
@ -230,3 +224,228 @@ 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
|
||||
storage/mroonga/mysql-test/mroonga/storage/r/information_schema_plugins.result
|
||||
storage/mroonga/mysql-test/mroonga/storage/r/variable_version.result
|
||||
# C and C++
|
||||
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.o
|
||||
*.ko
|
||||
*.obj
|
||||
*.elf
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lib
|
||||
*.a
|
||||
*.la
|
||||
*.lai
|
||||
*.lo
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
*.i*86
|
||||
*.x86_64
|
||||
*.hex
|
||||
|
||||
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
*.sln
|
||||
|
||||
*.vcproj
|
||||
*.vcproj.*
|
||||
*.vcproj.*.*
|
||||
*.vcproj.*.*.*
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
build/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
|
||||
# Roslyn cache directories
|
||||
*.ide/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
#NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding addin-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# TODO: Comment the next line if you want to checkin your web deploy settings
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/packages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/packages/build/
|
||||
# If using the old MSBuild-Integrated Package Restore, uncomment this:
|
||||
#!**/packages/repositories.config
|
||||
|
||||
# Windows Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Windows Store app package directory
|
||||
AppPackages/
|
||||
|
||||
# Others
|
||||
# sql/
|
||||
*.Cache
|
||||
ClientBin/
|
||||
[Ss]tyle[Cc]op.*
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
@ -454,7 +454,7 @@ ADD_SUBDIRECTORY(packaging/solaris)
|
||||
IF(NOT CMAKE_CROSSCOMPILING)
|
||||
SET(EXPORTED comp_err comp_sql factorial)
|
||||
IF(NOT WITHOUT_SERVER)
|
||||
SET(EXPORTED ${EXPORTED} gen_lex_hash gen_pfs_lex_token)
|
||||
SET(EXPORTED ${EXPORTED} gen_lex_hash gen_lex_token)
|
||||
ENDIF()
|
||||
# minimal target to build only binaries for export
|
||||
ADD_CUSTOM_TARGET(import_executables DEPENDS ${EXPORTED})
|
||||
|
2
VERSION
2
VERSION
@ -1,3 +1,3 @@
|
||||
MYSQL_VERSION_MAJOR=10
|
||||
MYSQL_VERSION_MINOR=0
|
||||
MYSQL_VERSION_PATCH=17
|
||||
MYSQL_VERSION_PATCH=19
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2006, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2010, 2013, Monty Program Ab.
|
||||
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
|
||||
@ -36,6 +36,8 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static int phase = 0;
|
||||
static int phases_total = 6;
|
||||
static char mysql_path[FN_REFLEN];
|
||||
static char mysqlcheck_path[FN_REFLEN];
|
||||
|
||||
@ -45,6 +47,8 @@ static my_bool opt_not_used, opt_silent;
|
||||
static uint my_end_arg= 0;
|
||||
static char *opt_user= (char*)"root";
|
||||
|
||||
static my_bool upgrade_from_mysql;
|
||||
|
||||
static DYNAMIC_STRING ds_args;
|
||||
static DYNAMIC_STRING conn_args;
|
||||
|
||||
@ -206,12 +210,12 @@ static void die(const char *fmt, ...)
|
||||
}
|
||||
|
||||
|
||||
static int verbose(const char *fmt, ...)
|
||||
static void verbose(const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
if (opt_silent)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
/* Print the verbose message */
|
||||
va_start(args, fmt);
|
||||
@ -222,7 +226,6 @@ static int verbose(const char *fmt, ...)
|
||||
fflush(stdout);
|
||||
}
|
||||
va_end(args);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -745,10 +748,21 @@ static void print_conn_args(const char *tool_name)
|
||||
in the server using "mysqlcheck --check-upgrade .."
|
||||
*/
|
||||
|
||||
static int run_mysqlcheck_upgrade(const char *arg1, const char *arg2)
|
||||
static int run_mysqlcheck_upgrade(my_bool mysql_db_only)
|
||||
{
|
||||
const char *what= mysql_db_only ? "mysql database" : "tables";
|
||||
const char *arg1= mysql_db_only ? "--databases" : "--all-databases";
|
||||
const char *arg2= mysql_db_only ? "mysql" : "--skip-database=mysql";
|
||||
int retch;
|
||||
if (opt_systables_only && !mysql_db_only)
|
||||
{
|
||||
verbose("Phase %d/%d: Checking and upgrading %s... Skipped",
|
||||
++phase, phases_total, what);
|
||||
return 0;
|
||||
}
|
||||
verbose("Phase %d/%d: Checking and upgrading %s", ++phase, phases_total, what);
|
||||
print_conn_args("mysqlcheck");
|
||||
return run_tool(mysqlcheck_path,
|
||||
retch= run_tool(mysqlcheck_path,
|
||||
NULL, /* Send output from mysqlcheck directly to screen */
|
||||
"--no-defaults",
|
||||
ds_args.str,
|
||||
@ -762,12 +776,77 @@ static int run_mysqlcheck_upgrade(const char *arg1, const char *arg2)
|
||||
arg1, arg2,
|
||||
"2>&1",
|
||||
NULL);
|
||||
return retch;
|
||||
}
|
||||
|
||||
#define EVENTS_STRUCT_LEN 7000
|
||||
|
||||
static my_bool is_mysql()
|
||||
{
|
||||
my_bool ret= TRUE;
|
||||
DYNAMIC_STRING ds_events_struct;
|
||||
|
||||
if (init_dynamic_string(&ds_events_struct, NULL,
|
||||
EVENTS_STRUCT_LEN, EVENTS_STRUCT_LEN))
|
||||
die("Out of memory");
|
||||
|
||||
if (run_query("show create table mysql.event",
|
||||
&ds_events_struct, FALSE) ||
|
||||
strstr(ds_events_struct.str, "IGNORE_BAD_TABLE_OPTIONS") != NULL)
|
||||
ret= FALSE;
|
||||
else
|
||||
verbose("MySQL upgrade detected");
|
||||
|
||||
dynstr_free(&ds_events_struct);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static int run_mysqlcheck_views(void)
|
||||
{
|
||||
const char *upgrade_views="--process-views=YES";
|
||||
if (upgrade_from_mysql)
|
||||
{
|
||||
/*
|
||||
this has to ignore opt_systables_only, because upgrade_from_mysql
|
||||
is determined by analyzing systables. if we honor opt_systables_only
|
||||
here, views won't be fixed by subsequent mysql_upgrade runs
|
||||
*/
|
||||
upgrade_views="--process-views=UPGRADE_FROM_MYSQL";
|
||||
verbose("Phase %d/%d: Fixing views from mysql", ++phase, phases_total);
|
||||
}
|
||||
else if (opt_systables_only)
|
||||
{
|
||||
verbose("Phase %d/%d: Fixing views... Skipped", ++phase, phases_total);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
verbose("Phase %d/%d: Fixing views", ++phase, phases_total);
|
||||
|
||||
print_conn_args("mysqlcheck");
|
||||
return run_tool(mysqlcheck_path,
|
||||
NULL, /* Send output from mysqlcheck directly to screen */
|
||||
"--no-defaults",
|
||||
ds_args.str,
|
||||
"--all-databases", "--repair",
|
||||
upgrade_views,
|
||||
"--skip-process-tables",
|
||||
opt_verbose ? "--verbose": "",
|
||||
opt_silent ? "--silent": "",
|
||||
opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
|
||||
"2>&1",
|
||||
NULL);
|
||||
}
|
||||
|
||||
static int run_mysqlcheck_fixnames(void)
|
||||
{
|
||||
verbose("Phase 3/5: Fixing table and database names");
|
||||
if (opt_systables_only)
|
||||
{
|
||||
verbose("Phase %d/%d: Fixing table and database names ... Skipped",
|
||||
++phase, phases_total);
|
||||
return 0;
|
||||
}
|
||||
verbose("Phase %d/%d: Fixing table and database names",
|
||||
++phase, phases_total);
|
||||
print_conn_args("mysqlcheck");
|
||||
return run_tool(mysqlcheck_path,
|
||||
NULL, /* Send output from mysqlcheck directly to screen */
|
||||
@ -855,6 +934,9 @@ static int run_sql_fix_privilege_tables(void)
|
||||
if (init_dynamic_string(&ds_result, "", 512, 512))
|
||||
die("Out of memory");
|
||||
|
||||
verbose("Phase %d/%d: Running 'mysql_fix_privilege_tables'",
|
||||
++phase, phases_total);
|
||||
|
||||
/*
|
||||
Individual queries can not be executed independently by invoking
|
||||
a forked mysql client, because the script uses session variables
|
||||
@ -1024,23 +1106,19 @@ int main(int argc, char **argv)
|
||||
if (opt_version_check && check_version_match())
|
||||
die("Upgrade failed");
|
||||
|
||||
upgrade_from_mysql= is_mysql();
|
||||
|
||||
/*
|
||||
Run "mysqlcheck" and "mysql_fix_privilege_tables.sql"
|
||||
*/
|
||||
verbose("Phase 1/5: Checking mysql database");
|
||||
if (run_mysqlcheck_upgrade("--databases", "mysql"))
|
||||
die("Upgrade failed" );
|
||||
verbose("Phase 2/5: Running 'mysql_fix_privilege_tables'...");
|
||||
if (run_sql_fix_privilege_tables())
|
||||
if (run_mysqlcheck_upgrade(TRUE) ||
|
||||
run_mysqlcheck_views() ||
|
||||
run_sql_fix_privilege_tables() ||
|
||||
run_mysqlcheck_fixnames() ||
|
||||
run_mysqlcheck_upgrade(FALSE))
|
||||
die("Upgrade failed" );
|
||||
|
||||
if (!opt_systables_only &&
|
||||
(run_mysqlcheck_fixnames() ||
|
||||
verbose("Phase 4/5: Checking and upgrading tables") ||
|
||||
run_mysqlcheck_upgrade("--all-databases","--skip-database=mysql")))
|
||||
die("Upgrade failed" );
|
||||
|
||||
verbose("Phase 5/5: Running 'FLUSH PRIVILEGES'...");
|
||||
verbose("Phase %d/%d: Running 'FLUSH PRIVILEGES'", ++phase, phases_total);
|
||||
if (run_query("FLUSH PRIVILEGES", NULL, TRUE))
|
||||
die("Upgrade failed" );
|
||||
|
||||
@ -1049,6 +1127,8 @@ int main(int argc, char **argv)
|
||||
/* Create a file indicating upgrade has been performed */
|
||||
create_mysql_upgrade_info_file();
|
||||
|
||||
DBUG_ASSERT(phase == phases_total);
|
||||
|
||||
free_used_memory();
|
||||
my_end(my_end_arg);
|
||||
exit(0);
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2000, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2010, 2014, Monty Program Ab.
|
||||
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
|
||||
@ -1249,6 +1249,9 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
|
||||
static char **mask_password(int argc, char ***argv)
|
||||
{
|
||||
char **temp_argv;
|
||||
if (!argc)
|
||||
return NULL;
|
||||
|
||||
temp_argv= (char **)(my_malloc(sizeof(char *) * argc, MYF(MY_WME)));
|
||||
argc--;
|
||||
while (argc > 0)
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2001, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2010, 2013, Monty Program Ab.
|
||||
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
|
||||
@ -18,7 +18,7 @@
|
||||
|
||||
/* By Jani Tolonen, 2001-04-20, MySQL Development Team */
|
||||
|
||||
#define CHECK_VERSION "2.7.3-MariaDB"
|
||||
#define CHECK_VERSION "2.7.4-MariaDB"
|
||||
|
||||
#include "client_priv.h"
|
||||
#include <m_ctype.h>
|
||||
@ -42,7 +42,8 @@ static my_bool opt_alldbs = 0, opt_check_only_changed = 0, opt_extended = 0,
|
||||
opt_medium_check = 0, opt_quick = 0, opt_all_in_1 = 0,
|
||||
opt_silent = 0, opt_auto_repair = 0, ignore_errors = 0,
|
||||
tty_password= 0, opt_frm= 0, debug_info_flag= 0, debug_check_flag= 0,
|
||||
opt_fix_table_names= 0, opt_fix_db_names= 0, opt_upgrade= 0;
|
||||
opt_fix_table_names= 0, opt_fix_db_names= 0, opt_upgrade= 0,
|
||||
opt_do_tables= 1;
|
||||
static my_bool opt_write_binlog= 1, opt_flush_tables= 0;
|
||||
static uint verbose = 0, opt_mysql_port=0;
|
||||
static int my_end_arg;
|
||||
@ -56,7 +57,17 @@ DYNAMIC_ARRAY tables4repair, tables4rebuild, alter_table_cmds;
|
||||
static char *shared_memory_base_name=0;
|
||||
static uint opt_protocol=0;
|
||||
|
||||
enum operations { DO_CHECK=1, DO_REPAIR, DO_ANALYZE, DO_OPTIMIZE, DO_UPGRADE };
|
||||
enum operations { DO_CHECK=1, DO_REPAIR, DO_ANALYZE, DO_OPTIMIZE, DO_FIX_NAMES };
|
||||
const char *operation_name[]=
|
||||
{
|
||||
"???", "check", "repair", "analyze", "optimize", "fix names"
|
||||
};
|
||||
|
||||
typedef enum { DO_VIEWS_NO, DO_VIEWS_YES, DO_VIEWS_FROM_MYSQL } enum_do_views;
|
||||
const char *do_views_opts[]= {"NO", "YES", "UPGRADE_FROM_MYSQL", NullS};
|
||||
TYPELIB do_views_typelib= { array_elements(do_views_opts) - 1, "",
|
||||
do_views_opts, NULL };
|
||||
static ulong opt_do_views= DO_VIEWS_NO;
|
||||
|
||||
static struct my_option my_long_options[] =
|
||||
{
|
||||
@ -200,6 +211,14 @@ static struct my_option my_long_options[] =
|
||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"version", 'V', "Output version information and exit.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"process-views", 0,
|
||||
"Perform the requested operation (check or repair) on views. "
|
||||
"One of: NO, YES (correct the checksum, if necessary, add the "
|
||||
"mariadb-version field), UPGRADE_FROM_MYSQL (same as YES and toggle "
|
||||
"the algorithm MERGE<->TEMPTABLE.", &opt_do_views, &opt_do_views,
|
||||
&do_views_typelib, GET_ENUM, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"process-tables", 0, "Perform the requested operation on tables.",
|
||||
&opt_do_tables, &opt_do_tables, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
@ -216,7 +235,7 @@ static int process_selected_tables(char *db, char **table_names, int tables);
|
||||
static int process_all_tables_in_db(char *database);
|
||||
static int process_one_db(char *database);
|
||||
static int use_db(char *database);
|
||||
static int handle_request_for_tables(char *tables, uint length);
|
||||
static int handle_request_for_tables(char *tables, size_t length, my_bool view);
|
||||
static int dbConnect(char *host, char *user,char *passwd);
|
||||
static void dbDisconnect(char *host);
|
||||
static void DBerror(MYSQL *mysql, const char *when);
|
||||
@ -294,11 +313,11 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
what_to_do = DO_OPTIMIZE;
|
||||
break;
|
||||
case OPT_FIX_DB_NAMES:
|
||||
what_to_do= DO_UPGRADE;
|
||||
what_to_do= DO_FIX_NAMES;
|
||||
opt_databases= 1;
|
||||
break;
|
||||
case OPT_FIX_TABLE_NAMES:
|
||||
what_to_do= DO_UPGRADE;
|
||||
what_to_do= DO_FIX_NAMES;
|
||||
break;
|
||||
case 'p':
|
||||
if (argument == disabled_my_option)
|
||||
@ -339,7 +358,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
case 'v':
|
||||
verbose++;
|
||||
break;
|
||||
case 'V': print_version(); exit(0);
|
||||
case 'V':
|
||||
print_version(); exit(0);
|
||||
break;
|
||||
case OPT_MYSQL_PROTOCOL:
|
||||
opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib,
|
||||
opt->name);
|
||||
@ -348,7 +369,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
|
||||
if (orig_what_to_do && (what_to_do != orig_what_to_do))
|
||||
{
|
||||
fprintf(stderr, "Error: %s doesn't support multiple contradicting commands.\n",
|
||||
fprintf(stderr, "Error: %s doesn't support multiple contradicting commands.\n",
|
||||
my_progname);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
@ -370,6 +391,12 @@ static int get_options(int *argc, char ***argv)
|
||||
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
|
||||
exit(ho_error);
|
||||
|
||||
if (what_to_do == DO_REPAIR && !opt_do_views && !opt_do_tables)
|
||||
{
|
||||
fprintf(stderr, "Error: Nothing to repair when both "
|
||||
"--process-tables=NO and --process-views=NO\n");
|
||||
exit(1);
|
||||
}
|
||||
if (!what_to_do)
|
||||
{
|
||||
size_t pnlen= strlen(my_progname);
|
||||
@ -386,6 +413,13 @@ static int get_options(int *argc, char ***argv)
|
||||
what_to_do = DO_CHECK;
|
||||
}
|
||||
|
||||
if (opt_do_views && what_to_do != DO_REPAIR && what_to_do != DO_CHECK)
|
||||
{
|
||||
fprintf(stderr, "Error: %s doesn't support %s for views.\n",
|
||||
my_progname, operation_name[what_to_do]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
If there's no --default-character-set option given with
|
||||
--fix-table-name or --fix-db-name set the default character set to "utf8".
|
||||
@ -470,13 +504,41 @@ static int process_databases(char **db_names)
|
||||
} /* process_databases */
|
||||
|
||||
|
||||
/* returns: -1 for error, 1 for view, 0 for table */
|
||||
static int is_view(const char *table)
|
||||
{
|
||||
char query[1024];
|
||||
MYSQL_RES *res;
|
||||
MYSQL_FIELD *field;
|
||||
int view;
|
||||
DBUG_ENTER("is_view");
|
||||
|
||||
my_snprintf(query, sizeof(query), "SHOW CREATE TABLE %`s", table);
|
||||
if (mysql_query(sock, query))
|
||||
{
|
||||
fprintf(stderr, "Failed to %s\n", query);
|
||||
fprintf(stderr, "Error: %s\n", mysql_error(sock));
|
||||
my_free(query);
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
res= mysql_store_result(sock);
|
||||
field= mysql_fetch_field(res);
|
||||
view= (strcmp(field->name,"View") == 0) ? 1 : 0;
|
||||
mysql_free_result(res);
|
||||
|
||||
DBUG_RETURN(view);
|
||||
}
|
||||
|
||||
static int process_selected_tables(char *db, char **table_names, int tables)
|
||||
{
|
||||
int view;
|
||||
char *table;
|
||||
uint table_len;
|
||||
DBUG_ENTER("process_selected_tables");
|
||||
|
||||
if (use_db(db))
|
||||
DBUG_RETURN(1);
|
||||
if (opt_all_in_1 && what_to_do != DO_UPGRADE)
|
||||
if (opt_all_in_1 && what_to_do != DO_FIX_NAMES)
|
||||
{
|
||||
/*
|
||||
We need table list in form `a`, `b`, `c`
|
||||
@ -487,6 +549,15 @@ static int process_selected_tables(char *db, char **table_names, int tables)
|
||||
size_t tot_length= 0;
|
||||
int i= 0;
|
||||
|
||||
if (opt_do_tables && opt_do_views)
|
||||
{
|
||||
fprintf(stderr, "Error: %s cannot process both tables and views "
|
||||
"in one command (--process-tables=YES "
|
||||
"--process-views=YES --all-in-1).\n",
|
||||
my_progname);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
||||
for (i = 0; i < tables; i++)
|
||||
tot_length+= fixed_name_length(*(table_names + i)) + 2;
|
||||
|
||||
@ -501,12 +572,20 @@ static int process_selected_tables(char *db, char **table_names, int tables)
|
||||
*end++= ',';
|
||||
}
|
||||
*--end = 0;
|
||||
handle_request_for_tables(table_names_comma_sep + 1, (uint) (tot_length - 1));
|
||||
handle_request_for_tables(table_names_comma_sep + 1, tot_length - 1,
|
||||
opt_do_views != 0);
|
||||
my_free(table_names_comma_sep);
|
||||
}
|
||||
else
|
||||
for (; tables > 0; tables--, table_names++)
|
||||
handle_request_for_tables(*table_names, fixed_name_length(*table_names));
|
||||
{
|
||||
table= *table_names;
|
||||
table_len= fixed_name_length(*table_names);
|
||||
view= is_view(table);
|
||||
if (view < 0)
|
||||
continue;
|
||||
handle_request_for_tables(table, table_len, (view == 1));
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
} /* process_selected_tables */
|
||||
|
||||
@ -553,6 +632,7 @@ static int process_all_tables_in_db(char *database)
|
||||
MYSQL_ROW row;
|
||||
uint num_columns;
|
||||
my_bool system_database= 0;
|
||||
my_bool view= FALSE;
|
||||
DBUG_ENTER("process_all_tables_in_db");
|
||||
|
||||
if (use_db(database))
|
||||
@ -571,7 +651,7 @@ static int process_all_tables_in_db(char *database)
|
||||
|
||||
num_columns= mysql_num_fields(res);
|
||||
|
||||
if (opt_all_in_1 && what_to_do != DO_UPGRADE)
|
||||
if (opt_all_in_1 && what_to_do != DO_FIX_NAMES)
|
||||
{
|
||||
/*
|
||||
We need table list in form `a`, `b`, `c`
|
||||
@ -582,8 +662,17 @@ static int process_all_tables_in_db(char *database)
|
||||
char *tables, *end;
|
||||
uint tot_length = 0;
|
||||
|
||||
char *views, *views_end;
|
||||
uint tot_views_length = 0;
|
||||
|
||||
while ((row = mysql_fetch_row(res)))
|
||||
tot_length+= fixed_name_length(row[0]) + 2;
|
||||
{
|
||||
if ((num_columns == 2) && (strcmp(row[1], "VIEW") == 0) &&
|
||||
opt_do_views)
|
||||
tot_views_length+= fixed_name_length(row[0]) + 2;
|
||||
else if (opt_do_tables)
|
||||
tot_length+= fixed_name_length(row[0]) + 2;
|
||||
}
|
||||
mysql_data_seek(res, 0);
|
||||
|
||||
if (!(tables=(char *) my_malloc(sizeof(char)*tot_length+4, MYF(MY_WME))))
|
||||
@ -591,32 +680,62 @@ static int process_all_tables_in_db(char *database)
|
||||
mysql_free_result(res);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
for (end = tables + 1; (row = mysql_fetch_row(res)) ;)
|
||||
if (!(views=(char *) my_malloc(sizeof(char)*tot_views_length+4, MYF(MY_WME))))
|
||||
{
|
||||
my_free(tables);
|
||||
mysql_free_result(res);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
||||
for (end = tables + 1, views_end= views + 1; (row = mysql_fetch_row(res)) ;)
|
||||
{
|
||||
if ((num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
|
||||
continue;
|
||||
|
||||
end= fix_table_name(end, row[0]);
|
||||
*end++= ',';
|
||||
{
|
||||
if (!opt_do_views)
|
||||
continue;
|
||||
views_end= fix_table_name(views_end, row[0]);
|
||||
*views_end++= ',';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!opt_do_tables)
|
||||
continue;
|
||||
end= fix_table_name(end, row[0]);
|
||||
*end++= ',';
|
||||
}
|
||||
}
|
||||
*--end = 0;
|
||||
*--views_end = 0;
|
||||
if (tot_length)
|
||||
handle_request_for_tables(tables + 1, tot_length - 1);
|
||||
handle_request_for_tables(tables + 1, tot_length - 1, FALSE);
|
||||
if (tot_views_length)
|
||||
handle_request_for_tables(views + 1, tot_views_length - 1, TRUE);
|
||||
my_free(tables);
|
||||
my_free(views);
|
||||
}
|
||||
else
|
||||
{
|
||||
while ((row = mysql_fetch_row(res)))
|
||||
{
|
||||
/* Skip views if we don't perform renaming. */
|
||||
if ((what_to_do != DO_UPGRADE) && (num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
|
||||
continue;
|
||||
if ((what_to_do != DO_FIX_NAMES) && (num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
|
||||
{
|
||||
if (!opt_do_views)
|
||||
continue;
|
||||
view= TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!opt_do_tables)
|
||||
continue;
|
||||
view= FALSE;
|
||||
}
|
||||
if (system_database &&
|
||||
(!strcmp(row[0], "general_log") ||
|
||||
!strcmp(row[0], "slow_log")))
|
||||
continue; /* Skip logging tables */
|
||||
|
||||
handle_request_for_tables(row[0], fixed_name_length(row[0]));
|
||||
handle_request_for_tables(row[0], fixed_name_length(row[0]), view);
|
||||
}
|
||||
}
|
||||
mysql_free_result(res);
|
||||
@ -704,7 +823,7 @@ static int process_one_db(char *database)
|
||||
|
||||
if (verbose)
|
||||
puts(database);
|
||||
if (what_to_do == DO_UPGRADE)
|
||||
if (what_to_do == DO_FIX_NAMES)
|
||||
{
|
||||
int rc= 0;
|
||||
if (opt_fix_db_names && !strncmp(database,"#mysql50#", 9))
|
||||
@ -749,15 +868,17 @@ static int disable_binlog()
|
||||
return run_query(stmt, 0);
|
||||
}
|
||||
|
||||
static int handle_request_for_tables(char *tables, uint length)
|
||||
static int handle_request_for_tables(char *tables, size_t length, my_bool view)
|
||||
{
|
||||
char *query, *end, options[100], message[100];
|
||||
char table_name_buff[NAME_CHAR_LEN*2*2+1], *table_name;
|
||||
uint query_length= 0;
|
||||
const char *op = 0;
|
||||
const char *tab_view;
|
||||
DBUG_ENTER("handle_request_for_tables");
|
||||
|
||||
options[0] = 0;
|
||||
tab_view= view ? " VIEW " : " TABLE ";
|
||||
end = options;
|
||||
switch (what_to_do) {
|
||||
case DO_CHECK:
|
||||
@ -770,18 +891,28 @@ static int handle_request_for_tables(char *tables, uint length)
|
||||
if (opt_upgrade) end = strmov(end, " FOR UPGRADE");
|
||||
break;
|
||||
case DO_REPAIR:
|
||||
op= (opt_write_binlog) ? "REPAIR" : "REPAIR NO_WRITE_TO_BINLOG";
|
||||
if (opt_quick) end = strmov(end, " QUICK");
|
||||
if (opt_extended) end = strmov(end, " EXTENDED");
|
||||
if (opt_frm) end = strmov(end, " USE_FRM");
|
||||
op= opt_write_binlog ? "REPAIR" : "REPAIR NO_WRITE_TO_BINLOG";
|
||||
if (view)
|
||||
{
|
||||
if (opt_do_views == DO_VIEWS_FROM_MYSQL) end = strmov(end, " FROM MYSQL");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (opt_quick) end = strmov(end, " QUICK");
|
||||
if (opt_extended) end = strmov(end, " EXTENDED");
|
||||
if (opt_frm) end = strmov(end, " USE_FRM");
|
||||
}
|
||||
break;
|
||||
case DO_ANALYZE:
|
||||
DBUG_ASSERT(!view);
|
||||
op= (opt_write_binlog) ? "ANALYZE" : "ANALYZE NO_WRITE_TO_BINLOG";
|
||||
break;
|
||||
case DO_OPTIMIZE:
|
||||
DBUG_ASSERT(!view);
|
||||
op= (opt_write_binlog) ? "OPTIMIZE" : "OPTIMIZE NO_WRITE_TO_BINLOG";
|
||||
break;
|
||||
case DO_UPGRADE:
|
||||
case DO_FIX_NAMES:
|
||||
DBUG_ASSERT(!view);
|
||||
DBUG_RETURN(fix_table_storage_name(tables));
|
||||
}
|
||||
|
||||
@ -790,14 +921,15 @@ static int handle_request_for_tables(char *tables, uint length)
|
||||
if (opt_all_in_1)
|
||||
{
|
||||
/* No backticks here as we added them before */
|
||||
query_length= sprintf(query, "%s TABLE %s %s", op, tables, options);
|
||||
query_length= sprintf(query, "%s%s%s %s", op,
|
||||
tab_view, tables, options);
|
||||
table_name= tables;
|
||||
}
|
||||
else
|
||||
{
|
||||
char *ptr, *org;
|
||||
|
||||
org= ptr= strmov(strmov(query, op), " TABLE ");
|
||||
org= ptr= strmov(strmov(query, op), tab_view);
|
||||
ptr= fix_table_name(ptr, tables);
|
||||
strmake(table_name_buff, org, MY_MIN((int) sizeof(table_name_buff)-1,
|
||||
(int) (ptr - org)));
|
||||
@ -809,7 +941,7 @@ static int handle_request_for_tables(char *tables, uint length)
|
||||
puts(query);
|
||||
if (mysql_real_query(sock, query, query_length))
|
||||
{
|
||||
sprintf(message, "when executing '%s TABLE ... %s'", op, options);
|
||||
sprintf(message, "when executing '%s%s... %s'", op, tab_view, options);
|
||||
DBerror(sock, message);
|
||||
my_free(query);
|
||||
DBUG_RETURN(1);
|
||||
@ -1070,7 +1202,7 @@ int main(int argc, char **argv)
|
||||
for (i = 0; i < tables4repair.elements ; i++)
|
||||
{
|
||||
char *name= (char*) dynamic_array_ptr(&tables4repair, i);
|
||||
handle_request_for_tables(name, fixed_name_length(name));
|
||||
handle_request_for_tables(name, fixed_name_length(name), FALSE);
|
||||
}
|
||||
for (i = 0; i < tables4rebuild.elements ; i++)
|
||||
rebuild_table((char*) dynamic_array_ptr(&tables4rebuild, i));
|
||||
|
@ -5912,6 +5912,8 @@ void do_connect(struct st_command *command)
|
||||
my_bool con_ssl= 0, con_compress= 0;
|
||||
my_bool con_pipe= 0;
|
||||
my_bool con_shm __attribute__ ((unused))= 0;
|
||||
int read_timeout= 0;
|
||||
int write_timeout= 0;
|
||||
struct st_connection* con_slot;
|
||||
|
||||
static DYNAMIC_STRING ds_connection_name;
|
||||
@ -6008,6 +6010,16 @@ void do_connect(struct st_command *command)
|
||||
con_pipe= 1;
|
||||
else if (length == 3 && !strncmp(con_options, "SHM", 3))
|
||||
con_shm= 1;
|
||||
else if (strncasecmp(con_options, "read_timeout=",
|
||||
sizeof("read_timeout=")-1) == 0)
|
||||
{
|
||||
read_timeout= atoi(con_options + sizeof("read_timeout=")-1);
|
||||
}
|
||||
else if (strncasecmp(con_options, "write_timeout=",
|
||||
sizeof("write_timeout=")-1) == 0)
|
||||
{
|
||||
write_timeout= atoi(con_options + sizeof("write_timeout=")-1);
|
||||
}
|
||||
else
|
||||
die("Illegal option to connect: %.*s",
|
||||
(int) (end - con_options), con_options);
|
||||
@ -6080,6 +6092,18 @@ void do_connect(struct st_command *command)
|
||||
if (opt_protocol)
|
||||
mysql_options(con_slot->mysql, MYSQL_OPT_PROTOCOL, (char*) &opt_protocol);
|
||||
|
||||
if (read_timeout)
|
||||
{
|
||||
mysql_options(con_slot->mysql, MYSQL_OPT_READ_TIMEOUT,
|
||||
(char*)&read_timeout);
|
||||
}
|
||||
|
||||
if (write_timeout)
|
||||
{
|
||||
mysql_options(con_slot->mysql, MYSQL_OPT_WRITE_TIMEOUT,
|
||||
(char*)&write_timeout);
|
||||
}
|
||||
|
||||
#ifdef HAVE_SMEM
|
||||
if (con_shm)
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 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
|
||||
@ -18,11 +18,11 @@
|
||||
MACRO(ADD_COMPILE_FLAGS)
|
||||
SET(FILES "")
|
||||
SET(FLAGS "")
|
||||
SET(COMPILE_FLAGS)
|
||||
SET(COMPILE_FLAGS_SEEN)
|
||||
FOREACH(ARG ${ARGV})
|
||||
IF(ARG STREQUAL "COMPILE_FLAGS")
|
||||
SET(COMPILE_FLAGS "COMPILE_FLAGS")
|
||||
ELSEIF(COMPILE_FLAGS)
|
||||
SET(COMPILE_FLAGS_SEEN 1)
|
||||
ELSEIF(COMPILE_FLAGS_SEEN)
|
||||
LIST(APPEND FLAGS ${ARG})
|
||||
ELSE()
|
||||
LIST(APPEND FILES ${ARG})
|
||||
|
@ -34,6 +34,7 @@
|
||||
|
||||
#define TT_USEFRM 1
|
||||
#define TT_FOR_UPGRADE 2
|
||||
#define TT_FROM_MYSQL 4
|
||||
|
||||
/* Bits set in out_flag */
|
||||
#define O_NEW_DATA 2
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2010, 2012, 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
|
||||
@ -41,7 +41,6 @@
|
||||
do {} while (0)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PSI_STATEMENT_INTERFACE
|
||||
#ifdef HAVE_PSI_STATEMENT_DIGEST_INTERFACE
|
||||
#define MYSQL_DIGEST_START(LOCKER) \
|
||||
inline_mysql_digest_start(LOCKER)
|
||||
@ -49,17 +48,13 @@
|
||||
#define MYSQL_DIGEST_START(LOCKER) \
|
||||
NULL
|
||||
#endif
|
||||
#else
|
||||
#define MYSQL_DIGEST_START(LOCKER) \
|
||||
NULL
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PSI_STATEMENT_DIGEST_INTERFACE
|
||||
#define MYSQL_ADD_TOKEN(LOCKER, T, Y) \
|
||||
inline_mysql_add_token(LOCKER, T, Y)
|
||||
#define MYSQL_DIGEST_END(LOCKER, DIGEST) \
|
||||
inline_mysql_digest_end(LOCKER, DIGEST)
|
||||
#else
|
||||
#define MYSQL_ADD_TOKEN(LOCKER, T, Y) \
|
||||
NULL
|
||||
#define MYSQL_DIGEST_END(LOCKER, DIGEST) \
|
||||
do {} while (0)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PSI_STATEMENT_INTERFACE
|
||||
@ -132,20 +127,17 @@ inline_mysql_digest_start(PSI_statement_locker *locker)
|
||||
PSI_digest_locker* digest_locker= NULL;
|
||||
|
||||
if (likely(locker != NULL))
|
||||
digest_locker= PSI_STATEMENT_CALL(digest_start)(locker);
|
||||
digest_locker= PSI_DIGEST_CALL(digest_start)(locker);
|
||||
return digest_locker;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PSI_STATEMENT_DIGEST_INTERFACE
|
||||
static inline struct PSI_digest_locker *
|
||||
inline_mysql_add_token(PSI_digest_locker *locker, uint token,
|
||||
void *yylval)
|
||||
static inline void
|
||||
inline_mysql_digest_end(PSI_digest_locker *locker, const sql_digest_storage *digest)
|
||||
{
|
||||
if (likely(locker != NULL))
|
||||
locker= PSI_STATEMENT_CALL(digest_add_token)(locker, token,
|
||||
(OPAQUE_LEX_YYSTYPE*)yylval);
|
||||
return locker;
|
||||
PSI_DIGEST_CALL(digest_end)(locker, digest);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 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
|
||||
@ -43,18 +43,8 @@
|
||||
C_MODE_START
|
||||
|
||||
struct TABLE_SHARE;
|
||||
/*
|
||||
There are 3 known bison parsers in the server:
|
||||
- (1) the SQL parser itself, sql/sql_yacc.yy
|
||||
- (2) storage/innobase/fts/fts0pars.y
|
||||
- (3) storage/innobase/pars/pars0grm.y
|
||||
What is instrumented here are the tokens from the SQL query text (1),
|
||||
to make digests.
|
||||
Now, to avoid name pollution and conflicts with different YYSTYPE definitions,
|
||||
an opaque structure is used here.
|
||||
The real type to use when invoking the digest api is LEX_YYSTYPE.
|
||||
*/
|
||||
struct OPAQUE_LEX_YYSTYPE;
|
||||
|
||||
struct sql_digest_storage;
|
||||
|
||||
/**
|
||||
@file mysql/psi/psi.h
|
||||
@ -952,29 +942,6 @@ struct PSI_table_locker_state_v1
|
||||
uint m_index;
|
||||
};
|
||||
|
||||
#define PSI_MAX_DIGEST_STORAGE_SIZE 1024
|
||||
|
||||
/**
|
||||
Structure to store token count/array for a statement
|
||||
on which digest is to be calculated.
|
||||
*/
|
||||
struct PSI_digest_storage
|
||||
{
|
||||
my_bool m_full;
|
||||
int m_byte_count;
|
||||
/** Character set number. */
|
||||
uint m_charset_number;
|
||||
unsigned char m_token_array[PSI_MAX_DIGEST_STORAGE_SIZE];
|
||||
};
|
||||
typedef struct PSI_digest_storage PSI_digest_storage;
|
||||
|
||||
struct PSI_digest_locker_state
|
||||
{
|
||||
int m_last_id_index;
|
||||
PSI_digest_storage m_digest_storage;
|
||||
};
|
||||
typedef struct PSI_digest_locker_state PSI_digest_locker_state;
|
||||
|
||||
/* Duplicate of NAME_LEN, to avoid dependency on mysql_com.h */
|
||||
#define PSI_SCHEMA_NAME_LEN (64 * 3)
|
||||
|
||||
@ -1037,7 +1004,7 @@ struct PSI_statement_locker_state_v1
|
||||
/** Metric, number of sort scans. */
|
||||
ulong m_sort_scan;
|
||||
/** Statement digest. */
|
||||
PSI_digest_locker_state m_digest_state;
|
||||
const struct sql_digest_storage *m_digest;
|
||||
/** Current schema name. */
|
||||
char m_schema_name[PSI_SCHEMA_NAME_LEN];
|
||||
/** Length in bytes of @c m_schema_name. */
|
||||
@ -1902,11 +1869,15 @@ typedef void (*set_socket_info_v1_t)(struct PSI_socket *socket,
|
||||
*/
|
||||
typedef void (*set_socket_thread_owner_v1_t)(struct PSI_socket *socket);
|
||||
|
||||
/**
|
||||
Get a digest locker for the current statement.
|
||||
@param locker a statement locker for the running thread
|
||||
*/
|
||||
typedef struct PSI_digest_locker * (*digest_start_v1_t)
|
||||
(struct PSI_statement_locker *locker);
|
||||
|
||||
typedef struct PSI_digest_locker* (*digest_add_token_v1_t)
|
||||
(struct PSI_digest_locker *locker, uint token, struct OPAQUE_LEX_YYSTYPE *yylval);
|
||||
typedef void (*digest_end_v1_t)
|
||||
(struct PSI_digest_locker *locker, const struct sql_digest_storage *digest);
|
||||
|
||||
/**
|
||||
Stores an array of connection attributes
|
||||
@ -2118,8 +2089,8 @@ struct PSI_v1
|
||||
set_socket_thread_owner_v1_t set_socket_thread_owner;
|
||||
/** @sa digest_start_v1_t. */
|
||||
digest_start_v1_t digest_start;
|
||||
/** @sa digest_add_token_v1_t. */
|
||||
digest_add_token_v1_t digest_add_token;
|
||||
/** @sa digest_end_v1_t. */
|
||||
digest_end_v1_t digest_end;
|
||||
/** @sa set_thread_connect_attrs_v1_t. */
|
||||
set_thread_connect_attrs_v1_t set_thread_connect_attrs;
|
||||
};
|
||||
@ -2414,6 +2385,10 @@ extern MYSQL_PLUGIN_IMPORT PSI *PSI_server;
|
||||
#define PSI_STATEMENT_CALL(M) PSI_DYNAMIC_CALL(M)
|
||||
#endif
|
||||
|
||||
#ifndef PSI_DIGEST_CALL
|
||||
#define PSI_DIGEST_CALL(M) PSI_DYNAMIC_CALL(M)
|
||||
#endif
|
||||
|
||||
#ifndef PSI_TABLE_CALL
|
||||
#define PSI_TABLE_CALL(M) PSI_DYNAMIC_CALL(M)
|
||||
#endif
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "mysql/psi/psi.h"
|
||||
C_MODE_START
|
||||
struct TABLE_SHARE;
|
||||
struct OPAQUE_LEX_YYSTYPE;
|
||||
struct sql_digest_storage;
|
||||
struct PSI_mutex;
|
||||
typedef struct PSI_mutex PSI_mutex;
|
||||
struct PSI_rwlock;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "mysql/psi/psi.h"
|
||||
C_MODE_START
|
||||
struct TABLE_SHARE;
|
||||
struct OPAQUE_LEX_YYSTYPE;
|
||||
struct sql_digest_storage;
|
||||
struct PSI_mutex;
|
||||
typedef struct PSI_mutex PSI_mutex;
|
||||
struct PSI_rwlock;
|
||||
@ -241,20 +241,6 @@ struct PSI_table_locker_state_v1
|
||||
void *m_wait;
|
||||
uint m_index;
|
||||
};
|
||||
struct PSI_digest_storage
|
||||
{
|
||||
my_bool m_full;
|
||||
int m_byte_count;
|
||||
uint m_charset_number;
|
||||
unsigned char m_token_array[1024];
|
||||
};
|
||||
typedef struct PSI_digest_storage PSI_digest_storage;
|
||||
struct PSI_digest_locker_state
|
||||
{
|
||||
int m_last_id_index;
|
||||
PSI_digest_storage m_digest_storage;
|
||||
};
|
||||
typedef struct PSI_digest_locker_state PSI_digest_locker_state;
|
||||
struct PSI_statement_locker_state_v1
|
||||
{
|
||||
my_bool m_discarded;
|
||||
@ -280,7 +266,7 @@ struct PSI_statement_locker_state_v1
|
||||
ulong m_sort_range;
|
||||
ulong m_sort_rows;
|
||||
ulong m_sort_scan;
|
||||
PSI_digest_locker_state m_digest_state;
|
||||
const struct sql_digest_storage *m_digest;
|
||||
char m_schema_name[(64 * 3)];
|
||||
uint m_schema_name_length;
|
||||
};
|
||||
@ -508,8 +494,8 @@ typedef void (*set_socket_info_v1_t)(struct PSI_socket *socket,
|
||||
typedef void (*set_socket_thread_owner_v1_t)(struct PSI_socket *socket);
|
||||
typedef struct PSI_digest_locker * (*digest_start_v1_t)
|
||||
(struct PSI_statement_locker *locker);
|
||||
typedef struct PSI_digest_locker* (*digest_add_token_v1_t)
|
||||
(struct PSI_digest_locker *locker, uint token, struct OPAQUE_LEX_YYSTYPE *yylval);
|
||||
typedef void (*digest_end_v1_t)
|
||||
(struct PSI_digest_locker *locker, const struct sql_digest_storage *digest);
|
||||
typedef int (*set_thread_connect_attrs_v1_t)(const char *buffer, uint length,
|
||||
const void *from_cs);
|
||||
struct PSI_v1
|
||||
@ -610,7 +596,7 @@ struct PSI_v1
|
||||
set_socket_info_v1_t set_socket_info;
|
||||
set_socket_thread_owner_v1_t set_socket_thread_owner;
|
||||
digest_start_v1_t digest_start;
|
||||
digest_add_token_v1_t digest_add_token;
|
||||
digest_end_v1_t digest_end;
|
||||
set_thread_connect_attrs_v1_t set_thread_connect_attrs;
|
||||
};
|
||||
typedef struct PSI_v1 PSI;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "mysql/psi/psi.h"
|
||||
C_MODE_START
|
||||
struct TABLE_SHARE;
|
||||
struct OPAQUE_LEX_YYSTYPE;
|
||||
struct sql_digest_storage;
|
||||
struct PSI_mutex;
|
||||
typedef struct PSI_mutex PSI_mutex;
|
||||
struct PSI_rwlock;
|
||||
|
@ -150,7 +150,7 @@ enum enum_ssl_init_error
|
||||
{
|
||||
SSL_INITERR_NOERROR= 0, SSL_INITERR_CERT, SSL_INITERR_KEY,
|
||||
SSL_INITERR_NOMATCH, SSL_INITERR_BAD_PATHS, SSL_INITERR_CIPHERS,
|
||||
SSL_INITERR_MEMFAIL, SSL_INITERR_LASTERR
|
||||
SSL_INITERR_MEMFAIL, SSL_INITERR_DH, SSL_INITERR_LASTERR
|
||||
};
|
||||
const char* sslGetErrString(enum enum_ssl_init_error err);
|
||||
|
||||
|
@ -44,7 +44,7 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
|
||||
../sql-common/client_plugin.c ../sql-common/mysql_async.c
|
||||
../sql/password.c ../sql/discover.cc ../sql/derror.cc
|
||||
../sql/field.cc ../sql/field_conv.cc
|
||||
../sql/filesort_utils.cc
|
||||
../sql/filesort_utils.cc ../sql/sql_digest.cc
|
||||
../sql/filesort.cc ../sql/gstream.cc ../sql/slave.cc
|
||||
../sql/signal_handler.cc
|
||||
../sql/handler.cc ../sql/hash_filo.cc ../sql/hostname.cc
|
||||
|
@ -101,6 +101,35 @@ if (!$annotate)
|
||||
{
|
||||
--echo # No Annotate_rows events should appear below
|
||||
}
|
||||
|
||||
|
||||
|
||||
--echo ########################################################################
|
||||
--echo # Ensure that a replication failure doesn't segfault - MDEV-7864
|
||||
--echo ########################################################################
|
||||
DELETE FROM t3 WHERE a=2;
|
||||
connection master;
|
||||
INSERT INTO t5 (a) SELECT a.a*10000+b.a*1000+c.a*100+d.a*10 FROM t5 a, t5 b, t5 c, t5 d;
|
||||
INSERT INTO t3 (a) SELECT a FROM t5 WHERE a > 10;
|
||||
DELETE t3 FROM t3 INNER JOIN t5 ON t3.a=t5.a;
|
||||
connection slave;
|
||||
--echo ---- Wait until slave stops with an error ----
|
||||
# Wait until the slave tries to run the query, fails with key not
|
||||
# found error, and stops the SQL thread.
|
||||
let $slave_sql_errno= 1032; # Can't find record
|
||||
source include/wait_for_slave_sql_error.inc;
|
||||
--let $err= query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1)
|
||||
--replace_regex /end_log_pos [0-9]+/end_log_pos END_LOG_POS/
|
||||
--disable_query_log
|
||||
--eval SELECT "$err" as 'Last_SQL_Error (expected "Delete_rows_v1 event on table test1.t3; Can\'t find record in \'t3\'" error)'
|
||||
--enable_query_log
|
||||
call mtr.add_suppression("Slave: Can't find record in 't3' Error_code: 1032");
|
||||
|
||||
SET GLOBAL sql_slave_skip_counter=1;
|
||||
START SLAVE;
|
||||
connection master;
|
||||
sync_slave_with_master;
|
||||
|
||||
--echo ########################################################################
|
||||
FLUSH LOGS;
|
||||
|
||||
|
114
mysql-test/include/ctype_utf8_ilseq.inc
Normal file
114
mysql-test/include/ctype_utf8_ilseq.inc
Normal file
@ -0,0 +1,114 @@
|
||||
#
|
||||
# Compare a field to an utf8 string literal with illegal byte sequences
|
||||
#
|
||||
|
||||
--echo #
|
||||
--echo # Start of ctype_utf8_ilseq.inc
|
||||
--echo #
|
||||
|
||||
--eval CREATE TABLE t1 ENGINE=$ENGINE AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;
|
||||
ALTER TABLE t1
|
||||
ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
ADD KEY(ch);
|
||||
SHOW CREATE TABLE t1;
|
||||
|
||||
INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
|
||||
SELECT ch FROM t1 WHERE ch='admin𝌆';
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
|
||||
INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
|
||||
INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
|
||||
INSERT INTO t1 (ch) VALUES ('z');
|
||||
# LATIN SMALL LETTER A + LATIN CAPITAL LETTER E WITH GRAVE
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
|
||||
# LATIN SMALL LETTER A + ARMENIAN SMALL LETTER REH
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
|
||||
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
|
||||
ALTER TABLE t1 DROP KEY ch;
|
||||
|
||||
--echo # 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
|
||||
#
|
||||
# Non-equality comparison currently work differently depending on collation:
|
||||
#
|
||||
# - utf8_general_ci falls back to memcmp() on bad byte
|
||||
# - utf8_unicode_ci treats bad bytes greater than any valid character
|
||||
#
|
||||
# For example, these two characters:
|
||||
# _utf8 0xD080 (U+00C8 LATIN CAPITAL LETTER E WITH GRAVE)
|
||||
# _utf8 0xD680 (U+0580 ARMENIAN SMALL LETTER REH)
|
||||
#
|
||||
# will give different results (depending on collation) when compared
|
||||
# to an incomplete byte sequence 0xD1 (mb2head not followed by mb2tail).
|
||||
#
|
||||
# For utf8_general_ci the result depends on the valid side:
|
||||
# - 0xD080 is smaller than 0xD1, because 0xD0 < 0xD1
|
||||
# - 0xD680 is greater than 0xD1, because 0xD6 > 0xD1
|
||||
#
|
||||
# For utf8_unicode_ci the result does not depend on the valid side:
|
||||
# - 0xD080 is smaller than 0xD1, because 0xD1 is greater than any valid character
|
||||
# - 0xD680 is smaller than 0xD1, because 0xD1 is greater than any valid character
|
||||
#
|
||||
# utf8_general_ci should be eventually fixed to treat bad bytes greater
|
||||
# than any valid character, similar to utf8_unicode_ci.
|
||||
#
|
||||
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
|
||||
--echo # 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
|
||||
--echo # 0x8F is a bad byte sequence (an mb2tail without mb2head)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
|
||||
--echo # 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of ctype_utf8_ilseq.inc
|
||||
--echo #
|
@ -227,6 +227,12 @@ INSERT INTO global_suppressions VALUES
|
||||
("Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error.*"),
|
||||
("Slave I/O: Setting master-side filtering of @@skip_replication failed with error:.*"),
|
||||
("Slave I/O: Setting @mariadb_slave_capability failed with error:.*"),
|
||||
("Slave I/O: Get master @@GLOBAL.gtid_domain_id failed with error.*"),
|
||||
("Slave I/O: Setting @slave_connect_state failed with error.*"),
|
||||
("Slave I/O: Setting @slave_gtid_strict_mode failed with error.*"),
|
||||
("Slave I/O: Setting @slave_gtid_ignore_duplicates failed with error.*"),
|
||||
("Slave I/O: Setting @slave_until_gtid failed with error.*"),
|
||||
("Slave I/O: Get master GTID position failed with error.*"),
|
||||
("THE_LAST_SUPPRESSION")||
|
||||
|
||||
|
||||
|
@ -67,7 +67,21 @@
|
||||
#
|
||||
# --let $slave_sql_mode= NO_BACKSLASH_ESCAPES
|
||||
#
|
||||
|
||||
# $all_slaves_status
|
||||
# If set, use SHOW ALL SLAVES STATUS instead of SHOW SLAVE STATUS
|
||||
# and get the column values from all rows. Example:
|
||||
#
|
||||
# --let $all_slaves_status= 1
|
||||
#
|
||||
# $slave_name
|
||||
# If set, use SHOW SLAVE '<slave_name>' STATUS instead of SHOW SLAVE STATUS.
|
||||
# The name must be quoted (can be a quoted empty string).
|
||||
# Example:
|
||||
#
|
||||
# --let $slave_name= 'm1'
|
||||
#
|
||||
# Note: $all_slaves_status and $slave_name are mutually exclusive.
|
||||
#
|
||||
|
||||
--let $_show_slave_status_items=$status_items
|
||||
if (!$status_items)
|
||||
@ -75,6 +89,21 @@ if (!$status_items)
|
||||
--die Bug in test case: The mysqltest variable $status_items is not set.
|
||||
}
|
||||
|
||||
--let $_show_query=SHOW SLAVE STATUS
|
||||
|
||||
if ($all_slaves_status)
|
||||
{
|
||||
if ($slave_name)
|
||||
{
|
||||
--die Bug in test case: Both $all_slaves_status and $slave_name are set.
|
||||
}
|
||||
--let $_show_query=SHOW ALL SLAVES STATUS
|
||||
}
|
||||
if ($slave_name)
|
||||
{
|
||||
--let $_show_query=SHOW SLAVE $slave_name STATUS
|
||||
}
|
||||
|
||||
|
||||
--let $_slave_sql_mode= NO_BACKSLASH_ESCAPES
|
||||
if ($slave_sql_mode)
|
||||
@ -86,18 +115,27 @@ if ($slave_sql_mode)
|
||||
eval SET sql_mode= '$_slave_sql_mode';
|
||||
--enable_query_log
|
||||
|
||||
--let $_slave_field_result_replace= /[\\\\]/\// $slave_field_result_replace
|
||||
|
||||
while ($_show_slave_status_items)
|
||||
{
|
||||
--let $_show_slave_status_name= `SELECT SUBSTRING_INDEX('$_show_slave_status_items', ',', 1)`
|
||||
--let $_show_slave_status_items= `SELECT LTRIM(SUBSTRING('$_show_slave_status_items', LENGTH('$_show_slave_status_name') + 2))`
|
||||
|
||||
--replace_regex /\.[\\\/]master/master/
|
||||
--let $_show_slave_status_value= query_get_value(SHOW SLAVE STATUS, $_show_slave_status_name, 1)
|
||||
--let $_slave_field_result_replace= /[\\\\]/\// $slave_field_result_replace
|
||||
--replace_regex $_slave_field_result_replace
|
||||
--let $_show_slave_status_value= `SELECT REPLACE("$_show_slave_status_value", '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')`
|
||||
--echo $_show_slave_status_name = '$_show_slave_status_value'
|
||||
--let $num= 1
|
||||
--let $_show_slave_status_value=
|
||||
while ($_show_slave_status_value != 'No such row')
|
||||
{
|
||||
--replace_regex /\.[\\\/]master/master/
|
||||
--let $_show_slave_status_value= query_get_value($_show_query, $_show_slave_status_name, $num)
|
||||
if ($_show_slave_status_value != 'No such row')
|
||||
{
|
||||
--replace_regex $_slave_field_result_replace
|
||||
--let $_show_slave_status_value= `SELECT REPLACE("$_show_slave_status_value", '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')`
|
||||
--echo $_show_slave_status_name = '$_show_slave_status_value'
|
||||
--inc $num
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
18
mysql-test/include/shutdown_mysqld.inc
Normal file
18
mysql-test/include/shutdown_mysqld.inc
Normal file
@ -0,0 +1,18 @@
|
||||
# This is the first half of include/restart_mysqld.inc.
|
||||
if ($rpl_inited)
|
||||
{
|
||||
if (!$allow_rpl_inited)
|
||||
{
|
||||
--die ERROR IN TEST: When using the replication test framework (master-slave.inc, rpl_init.inc etc), use rpl_restart_server.inc instead of restart_mysqld.inc. If you know what you are doing and you really have to use restart_mysqld.inc, set allow_rpl_inited=1 before you source restart_mysqld.inc
|
||||
}
|
||||
}
|
||||
|
||||
# Write file to make mysql-test-run.pl expect the "crash", but don't start it
|
||||
--let $_server_id= `SELECT @@server_id`
|
||||
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect
|
||||
--exec echo "wait" > $_expect_file_name
|
||||
|
||||
# Send shutdown to the connected server
|
||||
--shutdown_server
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
14
mysql-test/include/start_mysqld.inc
Normal file
14
mysql-test/include/start_mysqld.inc
Normal file
@ -0,0 +1,14 @@
|
||||
# Include this script only after using shutdown_mysqld.inc
|
||||
# where $_expect_file_name was initialized.
|
||||
# Write file to make mysql-test-run.pl start up the server again
|
||||
--exec echo "restart" > $_expect_file_name
|
||||
|
||||
# Turn on reconnect
|
||||
--enable_reconnect
|
||||
|
||||
# Call script that will poll the server waiting for it to be back online again
|
||||
--source include/wait_until_connected_again.inc
|
||||
|
||||
# Turn off reconnect again
|
||||
--disable_reconnect
|
||||
|
@ -125,7 +125,7 @@ extern "C" void handle_abort(int sig)
|
||||
message("Got signal %d, child_pid: %d, sending ABRT", sig, child_pid);
|
||||
|
||||
if (child_pid > 0) {
|
||||
kill (-child_pid, SIGABRT); // Don't wait for it to terminate
|
||||
kill(-child_pid, SIGABRT); // Don't wait for it to terminate
|
||||
}
|
||||
}
|
||||
|
||||
@ -226,6 +226,18 @@ int main(int argc, char* const argv[] )
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
/*
|
||||
Child: Make this process it's own process group to be able to kill
|
||||
it and any its children that hasn't changed a group themselves)
|
||||
|
||||
Parent: Detach from the parent's process group, so that killing a parent
|
||||
group wouldn't kill us (if we're killed, there's no one to kill our child
|
||||
processes that run in their own process group). There's a loop below
|
||||
that monitors the parent, it's enough.
|
||||
*/
|
||||
setpgid(0, 0);
|
||||
|
||||
|
||||
if (child_pid == 0)
|
||||
{
|
||||
close(pfd[0]); // Close unused read end
|
||||
@ -236,10 +248,6 @@ int main(int argc, char* const argv[] )
|
||||
signal(SIGHUP, SIG_DFL);
|
||||
signal(SIGCHLD, SIG_DFL);
|
||||
|
||||
// Make this process it's own process group to be able to kill
|
||||
// it and any childs(that hasn't changed group themself)
|
||||
setpgid(0, 0);
|
||||
|
||||
if (nocore)
|
||||
{
|
||||
struct rlimit corelim = { 0, 0 };
|
||||
|
@ -10,22 +10,21 @@ touch demoCA/index.txt
|
||||
echo 01 > demoCA/serial
|
||||
|
||||
# CA certificate, self-signed
|
||||
openssl req -x509 -newkey rsa:2048 -keyout demoCA/private/cakey.pem -out cacert.pem -days 7300 -nodes -subj '/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB' -text
|
||||
openssl req -x509 -newkey rsa:2048 -keyout demoCA/private/cakey.pem -out cacert.pem -days 7300 -nodes -subj '/CN=cacert/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB' -text
|
||||
|
||||
# server certificate signing request and private key
|
||||
openssl req -newkey rsa:1024 -keyout server-key.pem -out demoCA/server-req.pem -days 7300 -nodes -subj '/C=SE/ST=Uppsala/O=MySQL AB/CN=localhost'
|
||||
# server certificate signing request and private key. Note the very long subject (for MDEV-7859)
|
||||
openssl req -newkey rsa:1024 -keyout server-key.pem -out demoCA/server-req.pem -days 7300 -nodes -subj '/CN=localhost/C=FI/ST=state or province within country, in other certificates in this file it is the same as L/L=location, usually an address but often ambiguously used/OU=organizational unit name, a division name within an organization/O=organization name, typically a company name'
|
||||
# convert the key to yassl compatible format
|
||||
openssl rsa -in server-key.pem -out server-key.pem
|
||||
# sign the server certificate with CA certificate
|
||||
openssl ca -days 7300 -batch -cert cacert.pem -policy policy_anything -out server-cert.pem -infiles demoCA/server-req.pem
|
||||
|
||||
openssl req -newkey rsa:8192 -keyout server8k-key.pem -out demoCA/server8k-req.pem -days 7300 -nodes -subj '/C=SE/ST=Uppsala/O=MySQL AB/CN=server'
|
||||
openssl req -newkey rsa:8192 -keyout server8k-key.pem -out demoCA/server8k-req.pem -days 7300 -nodes -subj '/CN=server8k/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB'
|
||||
openssl rsa -in server8k-key.pem -out server8k-key.pem
|
||||
openssl ca -days 7300 -batch -cert cacert.pem -policy policy_anything -out server8k-cert.pem -infiles demoCA/server8k-req.pem
|
||||
|
||||
openssl req -newkey rsa:1024 -keyout client-key.pem -out demoCA/client-req.pem -days 7300 -nodes -subj '/C=SE/ST=Uppsala/O=MySQL AB'
|
||||
openssl req -newkey rsa:1024 -keyout client-key.pem -out demoCA/client-req.pem -days 7300 -nodes -subj '/CN=client/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB'
|
||||
openssl rsa -in client-key.pem -out client-key.pem
|
||||
# if the folloing will require a common name - that's defined in /etc/ssl/openssl.cnf, under policy_anything
|
||||
openssl ca -days 7300 -batch -cert cacert.pem -policy policy_anything -out client-cert.pem -infiles demoCA/client-req.pem
|
||||
|
||||
rm -rf demoCA
|
||||
|
@ -1040,15 +1040,7 @@ sub ignore_option {
|
||||
|
||||
# Setup any paths that are $opt_vardir related
|
||||
sub set_vardir {
|
||||
my ($vardir)= @_;
|
||||
if(IS_WINDOWS)
|
||||
{
|
||||
$opt_vardir= $vardir;
|
||||
}
|
||||
else
|
||||
{
|
||||
$opt_vardir= realpath($vardir);
|
||||
}
|
||||
($opt_vardir)= @_;
|
||||
|
||||
$path_vardir_trace= $opt_vardir;
|
||||
# Chop off any "c:", DBUG likes a unix path ex: c:/src/... => /src/...
|
||||
@ -1482,7 +1474,7 @@ sub command_line_setup {
|
||||
# Search through list of locations that are known
|
||||
# to be "fast disks" to find a suitable location
|
||||
# Use --mem=<dir> as first location to look.
|
||||
my @tmpfs_locations= ($opt_mem, "/dev/shm", "/tmp");
|
||||
my @tmpfs_locations= ($opt_mem,"/run/shm", "/dev/shm", "/tmp");
|
||||
|
||||
foreach my $fs (@tmpfs_locations)
|
||||
{
|
||||
@ -1498,20 +1490,11 @@ sub command_line_setup {
|
||||
# --------------------------------------------------------------------------
|
||||
# Set the "var/" directory, the base for everything else
|
||||
# --------------------------------------------------------------------------
|
||||
if(defined $ENV{MTR_BINDIR})
|
||||
{
|
||||
$default_vardir= "$ENV{MTR_BINDIR}/mysql-test/var";
|
||||
}
|
||||
else
|
||||
{
|
||||
$default_vardir= "$glob_mysql_test_dir/var";
|
||||
}
|
||||
unless (IS_WINDOWS) {
|
||||
my $realpath = realpath($default_vardir);
|
||||
die "realpath('$default_vardir') failed: $!\n"
|
||||
unless defined($realpath) && $realpath ne '';
|
||||
$default_vardir = $realpath;
|
||||
}
|
||||
my $vardir_location= (defined $ENV{MTR_BINDIR}
|
||||
? "$ENV{MTR_BINDIR}/mysql-test"
|
||||
: $glob_mysql_test_dir);
|
||||
$vardir_location= realpath $vardir_location unless IS_WINDOWS;
|
||||
$default_vardir= "$vardir_location/var";
|
||||
|
||||
if ( ! $opt_vardir )
|
||||
{
|
||||
@ -4843,6 +4826,12 @@ sub extract_warning_lines ($$) {
|
||||
qr/Slave I\/O: Get master clock failed with error:.*/,
|
||||
qr/Slave I\/O: Get master COLLATION_SERVER failed with error:.*/,
|
||||
qr/Slave I\/O: Get master TIME_ZONE failed with error:.*/,
|
||||
qr/Slave I\/O: Get master \@\@GLOBAL.gtid_domain_id failed with error:.*/,
|
||||
qr/Slave I\/O: Setting \@slave_connect_state failed with error:.*/,
|
||||
qr/Slave I\/O: Setting \@slave_gtid_strict_mode failed with error:.*/,
|
||||
qr/Slave I\/O: Setting \@slave_gtid_ignore_duplicates failed with error:.*/,
|
||||
qr/Slave I\/O: Setting \@slave_until_gtid failed with error:.*/,
|
||||
qr/Slave I\/O: Get master GTID position failed with error:.*/,
|
||||
qr/Slave I\/O: error reconnecting to master '.*' - retry-time: [1-3] retries/,
|
||||
qr/Slave I\/0: Master command COM_BINLOG_DUMP failed/,
|
||||
qr/Error reading packet/,
|
||||
@ -6446,7 +6435,7 @@ Options to control directories to use
|
||||
mem Run testsuite in "memory" using tmpfs or ramdisk
|
||||
Attempts to find a suitable location
|
||||
using a builtin list of standard locations
|
||||
for tmpfs (/dev/shm)
|
||||
for tmpfs (/run/shm, /dev/shm, /tmp)
|
||||
The option can also be set using environment
|
||||
variable MTR_MEM=[DIR]
|
||||
clean-vardir Clean vardir if tests were successful and if
|
||||
|
@ -1693,8 +1693,10 @@ INSERT INTO tm1 VALUES (1,1,1), (2,2,2);
|
||||
INSERT INTO tm2 VALUES (1,1,1), (2,2,2);
|
||||
ALTER TABLE ti1;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
ALTER TABLE tm1;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
ALTER TABLE ti1 ADD COLUMN d VARCHAR(200);
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
|
@ -11,6 +11,10 @@ alter online table t1 comment "new comment";
|
||||
ERROR 0A000: LOCK=NONE/SHARED is not supported for this operation. Try LOCK=EXCLUSIVE.
|
||||
alter online table t1 rename to t2;
|
||||
ERROR 0A000: LOCK=NONE/SHARED is not supported for this operation. Try LOCK=EXCLUSIVE.
|
||||
alter online table t1 algorithm=INPLACE, lock=NONE;
|
||||
alter online table t1;
|
||||
alter table t1 algorithm=INPLACE;
|
||||
alter table t1 lock=NONE;
|
||||
drop table t1;
|
||||
create temporary table t1 (a int not null primary key, b int, c varchar(80), e enum('a','b'));
|
||||
insert into t1 (a) values (1),(2),(3);
|
||||
|
@ -8,6 +8,13 @@ CREATE TABLE t2 (a INT UNSIGNED, b INT, UNIQUE KEY (a, b)) ENGINE=BLACKHOLE;
|
||||
SELECT 1 FROM t1 WHERE a = ANY (SELECT a FROM t2);
|
||||
1
|
||||
DROP TABLE t1, t2;
|
||||
create temporary table t1 (a int) engine=blackhole;
|
||||
lock table t1 write;
|
||||
truncate table t1;
|
||||
select * from t1;
|
||||
a
|
||||
unlock tables;
|
||||
drop temporary table t1;
|
||||
End of 5.5 tests
|
||||
#
|
||||
# Bug#13948247 DIVISION BY 0 IN GET_BEST_DISJUNCT_QUICK WITH FORCE INDEX GROUP BY
|
||||
|
@ -15,3 +15,14 @@ SELECT 'bug' as '' FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb'
|
||||
and SUPPORT='YES';
|
||||
|
||||
End of 5.5 tests
|
||||
flush tables;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select * from mysql.plugin;
|
||||
name dl
|
||||
EXAMPLE ha_example.so
|
||||
truncate table mysql.plugin;
|
||||
|
@ -1,8 +0,0 @@
|
||||
#
|
||||
# Bug#46261 Plugins can be installed with --skip-grant-tables
|
||||
#
|
||||
INSTALL PLUGIN example SONAME 'ha_example.so';
|
||||
ERROR HY000: The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement
|
||||
UNINSTALL PLUGIN example;
|
||||
ERROR HY000: The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement
|
||||
End of 5.1 tests
|
@ -76,3 +76,35 @@ ALTER DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
ALTER DATABASE `` DEFAULT CHARACTER SET latin2;
|
||||
ERROR 42000: Incorrect database name ''
|
||||
USE test;
|
||||
#
|
||||
# Start of 10.0 tests
|
||||
#
|
||||
#
|
||||
# MDEV-7387 Alter table xxx CHARACTER SET utf8, CONVERT TO CHARACTER SET latin1 should fail
|
||||
#
|
||||
CREATE TABLE t1 (a VARCHAR(10)) CHARACTER SET DEFAULT, CHARACTER SET utf8;
|
||||
ERROR HY000: Conflicting declarations: 'CHARACTER SET DEFAULT' and 'CHARACTER SET utf8'
|
||||
CREATE TABLE t1 (a VARCHAR(10)) CHARACTER SET utf8, CHARACTER SET DEFAULT;
|
||||
ERROR HY000: Conflicting declarations: 'CHARACTER SET utf8' and 'CHARACTER SET DEFAULT'
|
||||
CREATE TABLE t1 (a VARCHAR(10)) CHARACTER SET utf8, CHARACTER SET utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a VARCHAR(10)) CHARACTER SET DEFAULT, CHARACTER SET DEFAULT;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1, b VARCHAR(10) CHARACTER SET utf8);
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET utf8, CHARACTER SET latin1;
|
||||
ERROR HY000: Conflicting declarations: 'CHARACTER SET utf8' and 'CHARACTER SET latin1'
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET utf8, CHARACTER SET DEFAULT;
|
||||
ERROR HY000: Conflicting declarations: 'CHARACTER SET utf8' and 'CHARACTER SET DEFAULT'
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET latin1, CHARACTER SET utf8;
|
||||
ERROR HY000: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8'
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET latin1, CHARACTER SET DEFAULT;
|
||||
ERROR HY000: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET DEFAULT'
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT, CHARACTER SET utf8;
|
||||
ERROR HY000: Conflicting declarations: 'CHARACTER SET latin5' and 'CHARACTER SET utf8'
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT, CHARACTER SET latin1;
|
||||
ERROR HY000: Conflicting declarations: 'CHARACTER SET latin5' and 'CHARACTER SET latin1'
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
|
@ -6466,6 +6466,418 @@ a c1
|
||||
10 => DŽ
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-7649 wrong result when comparing utf8 column with an invalid literal
|
||||
#
|
||||
SET NAMES utf8 COLLATE utf8_unicode_ci;
|
||||
#
|
||||
# Start of ctype_utf8_ilseq.inc
|
||||
#
|
||||
CREATE TABLE t1 ENGINE=MyISAM AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
|
||||
ALTER TABLE t1
|
||||
ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
ADD KEY(ch);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `ch` (`ch`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
|
||||
SELECT ch FROM t1 WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
|
||||
INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
|
||||
INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
|
||||
INSERT INTO t1 (ch) VALUES ('z');
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
ALTER TABLE t1 DROP KEY ch;
|
||||
# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
z
|
||||
# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F is a bad byte sequence (an mb2tail without mb2head)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of ctype_utf8_ilseq.inc
|
||||
#
|
||||
#
|
||||
# Start of ctype_utf8_ilseq.inc
|
||||
#
|
||||
CREATE TABLE t1 ENGINE=HEAP AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
|
||||
ALTER TABLE t1
|
||||
ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
ADD KEY(ch);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `ch` (`ch`)
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
|
||||
SELECT ch FROM t1 WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
|
||||
INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
|
||||
INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
|
||||
INSERT INTO t1 (ch) VALUES ('z');
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
ALTER TABLE t1 DROP KEY ch;
|
||||
# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
z
|
||||
# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F is a bad byte sequence (an mb2tail without mb2head)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of ctype_utf8_ilseq.inc
|
||||
#
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
218
mysql-test/r/ctype_uca_innodb.result
Normal file
218
mysql-test/r/ctype_uca_innodb.result
Normal file
@ -0,0 +1,218 @@
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
# MDEV-7649 wrong result when comparing utf8 column with an invalid literal
|
||||
#
|
||||
SET NAMES utf8 COLLATE utf8_unicode_ci;
|
||||
#
|
||||
# Start of ctype_utf8_ilseq.inc
|
||||
#
|
||||
CREATE TABLE t1 ENGINE=InnoDB AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
|
||||
ALTER TABLE t1
|
||||
ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
ADD KEY(ch);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `ch` (`ch`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
|
||||
SELECT ch FROM t1 WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
|
||||
INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
|
||||
INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
|
||||
INSERT INTO t1 (ch) VALUES ('z');
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
ALTER TABLE t1 DROP KEY ch;
|
||||
# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
z
|
||||
# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F is a bad byte sequence (an mb2tail without mb2head)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of ctype_utf8_ilseq.inc
|
||||
#
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
@ -227,7 +227,7 @@ DROP TABLE mysql050614_xxx_croatian_ci;
|
||||
# Checking mysql_upgrade
|
||||
#
|
||||
# Running mysql_upgrade
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -258,9 +258,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -279,11 +280,11 @@ test.maria050313_ucs2_croatian_ci_def OK
|
||||
test.maria050313_utf8_croatian_ci OK
|
||||
test.maria050533_xxx_croatian_ci OK
|
||||
test.maria100004_xxx_croatian_ci OK
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
# Running mysql_upgrade for the second time
|
||||
# This should report OK for all tables
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -314,9 +315,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -329,7 +331,7 @@ test.maria050313_utf8_croatian_ci OK
|
||||
test.maria050533_xxx_croatian_ci OK
|
||||
test.maria100004_xxx_croatian_ci OK
|
||||
test.mysql050614_xxx_croatian_ci OK
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
SHOW CREATE TABLE maria050313_ucs2_croatian_ci_def;
|
||||
Table Create Table
|
||||
|
@ -5412,6 +5412,634 @@ a 1024
|
||||
Warnings:
|
||||
Warning 1260 Row 2 was cut by GROUP_CONCAT()
|
||||
#
|
||||
# MDEV-7814 Assertion `args[0]->fixed' fails in Item_func_conv_charset::Item_func_conv_charset
|
||||
#
|
||||
CREATE TABLE t1(a CHAR(1) CHARACTER SET latin1, b INT NOT NULL);
|
||||
CREATE TABLE t2(a CHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci, b INT NOT NULL);
|
||||
SELECT (SELECT t2.a FROM t2 WHERE t2.a=t1.a) AS aa, b, COUNT(b) FROM t1 GROUP BY aa;
|
||||
aa b COUNT(b)
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# MDEV-7649 wrong result when comparing utf8 column with an invalid literal
|
||||
#
|
||||
SET NAMES utf8 COLLATE utf8_general_ci;
|
||||
#
|
||||
# Start of ctype_utf8_ilseq.inc
|
||||
#
|
||||
CREATE TABLE t1 ENGINE=InnoDB AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
|
||||
ALTER TABLE t1
|
||||
ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
ADD KEY(ch);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ch` varchar(60) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `ch` (`ch`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
|
||||
SELECT ch FROM t1 WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
|
||||
INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
|
||||
INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
|
||||
INSERT INTO t1 (ch) VALUES ('z');
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
ALTER TABLE t1 DROP KEY ch;
|
||||
# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
aր
|
||||
z
|
||||
# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F is a bad byte sequence (an mb2tail without mb2head)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of ctype_utf8_ilseq.inc
|
||||
#
|
||||
#
|
||||
# Start of ctype_utf8_ilseq.inc
|
||||
#
|
||||
CREATE TABLE t1 ENGINE=MyISAM AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
|
||||
ALTER TABLE t1
|
||||
ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
ADD KEY(ch);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ch` varchar(60) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `ch` (`ch`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
|
||||
SELECT ch FROM t1 WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
|
||||
INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
|
||||
INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
|
||||
INSERT INTO t1 (ch) VALUES ('z');
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
ALTER TABLE t1 DROP KEY ch;
|
||||
# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
aր
|
||||
z
|
||||
# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F is a bad byte sequence (an mb2tail without mb2head)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of ctype_utf8_ilseq.inc
|
||||
#
|
||||
#
|
||||
# Start of ctype_utf8_ilseq.inc
|
||||
#
|
||||
CREATE TABLE t1 ENGINE=HEAP AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
|
||||
ALTER TABLE t1
|
||||
ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
ADD KEY(ch);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ch` varchar(60) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `ch` (`ch`)
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
|
||||
SELECT ch FROM t1 WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
|
||||
INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
|
||||
INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
|
||||
INSERT INTO t1 (ch) VALUES ('z');
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
|
||||
INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
aր
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
|
||||
ch
|
||||
z
|
||||
ALTER TABLE t1 DROP KEY ch;
|
||||
# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
a
|
||||
a?
|
||||
a??
|
||||
a???
|
||||
a????
|
||||
a????b
|
||||
a????z
|
||||
a???b
|
||||
a???z
|
||||
a??b
|
||||
a??z
|
||||
a?b
|
||||
a?z
|
||||
ab
|
||||
az
|
||||
aЀ
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
aր
|
||||
z
|
||||
# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F is a bad byte sequence (an mb2tail without mb2head)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
|
||||
PREPARE stmt FROM @query;
|
||||
EXECUTE stmt;
|
||||
ch
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of ctype_utf8_ilseq.inc
|
||||
#
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
|
@ -568,3 +568,15 @@ update t1 set balance=(select sum(balance) from (SELECT balance FROM t1 where ac
|
||||
set optimizer_switch=@save_derived_optimizer_switch_bug;
|
||||
drop table t1;
|
||||
set optimizer_switch=@save_derived_optimizer_switch;
|
||||
#
|
||||
# MDEV-6892: WHERE does not apply
|
||||
#
|
||||
create table t1 (id int);
|
||||
create table t2 (id int);
|
||||
insert into t1 values(1),(2),(3);
|
||||
insert into t2 values(4),(5),(6);
|
||||
select x.id, message from (select id from t1) x left join
|
||||
(select id, 1 as message from t2) y on x.id=y.id
|
||||
where coalesce(message,0) <> 0;
|
||||
id message
|
||||
drop table t1,t2;
|
||||
|
@ -413,64 +413,64 @@ create VIEW v27 AS select tab1_v27.f1,tab1_v27.f2 from t0 tab1_v27 join v26 tab2
|
||||
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, CAST(f2 AS CHAR) AS f2 FROM v27;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE tab1_v27 ALL NULL NULL NULL NULL 5 Using where
|
||||
1 SIMPLE tab1_v26 hash_ALL NULL #hash#$hj 63 test1.tab1_v27.f1,test1.tab1_v27.f2 5 Using where; Using join buffer (flat, BNLH join)
|
||||
1 SIMPLE tab1_v26 hash_ALL NULL #hash#$hj 62 test1.tab1_v27.f1,test1.tab1_v27.f2 5 Using where; Using join buffer (flat, BNLH join)
|
||||
1 SIMPLE tab1_v25 hash_ALL NULL #hash#$hj 31 test1.tab1_v26.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v24 hash_ALL NULL #hash#$hj 60 test1.tab1_v25.f1,test1.tab1_v25.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v23 hash_ALL NULL #hash#$hj 63 test1.tab1_v24.f1,test1.tab1_v24.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v23 hash_ALL NULL #hash#$hj 62 test1.tab1_v24.f1,test1.tab1_v24.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v22 hash_ALL NULL #hash#$hj 31 test1.tab1_v23.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v21 hash_ALL NULL #hash#$hj 60 test1.tab1_v22.f1,test1.tab1_v22.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v20 hash_ALL NULL #hash#$hj 63 test1.tab1_v21.f1,test1.tab1_v21.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v20 hash_ALL NULL #hash#$hj 62 test1.tab1_v21.f1,test1.tab1_v21.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v19 hash_ALL NULL #hash#$hj 31 test1.tab1_v20.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v18 hash_ALL NULL #hash#$hj 60 test1.tab1_v19.f1,test1.tab1_v19.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v17 hash_ALL NULL #hash#$hj 63 test1.tab1_v18.f1,test1.tab1_v18.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v17 hash_ALL NULL #hash#$hj 62 test1.tab1_v18.f1,test1.tab1_v18.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v16 hash_ALL NULL #hash#$hj 31 test1.tab1_v17.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v15 hash_ALL NULL #hash#$hj 60 test1.tab1_v16.f1,test1.tab1_v16.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v14 hash_ALL NULL #hash#$hj 63 test1.tab1_v15.f1,test1.tab1_v15.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v14 hash_ALL NULL #hash#$hj 62 test1.tab1_v15.f1,test1.tab1_v15.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v13 hash_ALL NULL #hash#$hj 31 test1.tab1_v14.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v12 hash_ALL NULL #hash#$hj 60 test1.tab1_v13.f1,test1.tab1_v13.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v11 hash_ALL NULL #hash#$hj 63 test1.tab1_v12.f1,test1.tab1_v12.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v11 hash_ALL NULL #hash#$hj 62 test1.tab1_v12.f1,test1.tab1_v12.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v10 hash_ALL NULL #hash#$hj 31 test1.tab1_v11.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v9 hash_ALL NULL #hash#$hj 60 test1.tab1_v10.f1,test1.tab1_v10.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v8 hash_ALL NULL #hash#$hj 63 test1.tab1_v9.f1,test1.tab1_v9.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v8 hash_ALL NULL #hash#$hj 62 test1.tab1_v9.f1,test1.tab1_v9.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v7 hash_ALL NULL #hash#$hj 31 test1.tab1_v8.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v6 hash_ALL NULL #hash#$hj 60 test1.tab1_v7.f1,test1.tab1_v7.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v5 hash_ALL NULL #hash#$hj 63 test1.tab1_v6.f1,test1.tab1_v6.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v5 hash_ALL NULL #hash#$hj 62 test1.tab1_v6.f1,test1.tab1_v6.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v4 hash_ALL NULL #hash#$hj 31 test1.tab1_v5.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v3 hash_ALL NULL #hash#$hj 60 test1.tab1_v4.f1,test1.tab1_v4.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v2 hash_ALL NULL #hash#$hj 63 test1.tab1_v3.f1,test1.tab1_v3.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v2 hash_ALL NULL #hash#$hj 62 test1.tab1_v3.f1,test1.tab1_v3.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v1 hash_ALL NULL #hash#$hj 31 test1.tab1_v2.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE t1 hash_ALL NULL #hash#$hj 85 test1.tab1_v1.f1,test1.tab1_v1.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE t1 hash_ALL NULL #hash#$hj 84 test1.tab1_v1.f1,test1.tab1_v1.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
# This used to hang forever:
|
||||
EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, CAST(f2 AS CHAR) AS f2 FROM v27;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE tab1_v27 ALL NULL NULL NULL NULL 5 Using where
|
||||
1 SIMPLE tab1_v26 hash_ALL NULL #hash#$hj 63 test1.tab1_v27.f1,test1.tab1_v27.f2 5 Using where; Using join buffer (flat, BNLH join)
|
||||
1 SIMPLE tab1_v26 hash_ALL NULL #hash#$hj 62 test1.tab1_v27.f1,test1.tab1_v27.f2 5 Using where; Using join buffer (flat, BNLH join)
|
||||
1 SIMPLE tab1_v25 hash_ALL NULL #hash#$hj 31 test1.tab1_v26.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v24 hash_ALL NULL #hash#$hj 60 test1.tab1_v25.f1,test1.tab1_v25.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v23 hash_ALL NULL #hash#$hj 63 test1.tab1_v24.f1,test1.tab1_v24.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v23 hash_ALL NULL #hash#$hj 62 test1.tab1_v24.f1,test1.tab1_v24.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v22 hash_ALL NULL #hash#$hj 31 test1.tab1_v23.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v21 hash_ALL NULL #hash#$hj 60 test1.tab1_v22.f1,test1.tab1_v22.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v20 hash_ALL NULL #hash#$hj 63 test1.tab1_v21.f1,test1.tab1_v21.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v20 hash_ALL NULL #hash#$hj 62 test1.tab1_v21.f1,test1.tab1_v21.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v19 hash_ALL NULL #hash#$hj 31 test1.tab1_v20.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v18 hash_ALL NULL #hash#$hj 60 test1.tab1_v19.f1,test1.tab1_v19.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v17 hash_ALL NULL #hash#$hj 63 test1.tab1_v18.f1,test1.tab1_v18.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v17 hash_ALL NULL #hash#$hj 62 test1.tab1_v18.f1,test1.tab1_v18.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v16 hash_ALL NULL #hash#$hj 31 test1.tab1_v17.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v15 hash_ALL NULL #hash#$hj 60 test1.tab1_v16.f1,test1.tab1_v16.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v14 hash_ALL NULL #hash#$hj 63 test1.tab1_v15.f1,test1.tab1_v15.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v14 hash_ALL NULL #hash#$hj 62 test1.tab1_v15.f1,test1.tab1_v15.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v13 hash_ALL NULL #hash#$hj 31 test1.tab1_v14.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v12 hash_ALL NULL #hash#$hj 60 test1.tab1_v13.f1,test1.tab1_v13.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v11 hash_ALL NULL #hash#$hj 63 test1.tab1_v12.f1,test1.tab1_v12.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v11 hash_ALL NULL #hash#$hj 62 test1.tab1_v12.f1,test1.tab1_v12.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v10 hash_ALL NULL #hash#$hj 31 test1.tab1_v11.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v9 hash_ALL NULL #hash#$hj 60 test1.tab1_v10.f1,test1.tab1_v10.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v8 hash_ALL NULL #hash#$hj 63 test1.tab1_v9.f1,test1.tab1_v9.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v8 hash_ALL NULL #hash#$hj 62 test1.tab1_v9.f1,test1.tab1_v9.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v7 hash_ALL NULL #hash#$hj 31 test1.tab1_v8.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v6 hash_ALL NULL #hash#$hj 60 test1.tab1_v7.f1,test1.tab1_v7.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v5 hash_ALL NULL #hash#$hj 63 test1.tab1_v6.f1,test1.tab1_v6.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v5 hash_ALL NULL #hash#$hj 62 test1.tab1_v6.f1,test1.tab1_v6.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v4 hash_ALL NULL #hash#$hj 31 test1.tab1_v5.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v3 hash_ALL NULL #hash#$hj 60 test1.tab1_v4.f1,test1.tab1_v4.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v2 hash_ALL NULL #hash#$hj 63 test1.tab1_v3.f1,test1.tab1_v3.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v2 hash_ALL NULL #hash#$hj 62 test1.tab1_v3.f1,test1.tab1_v3.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE tab1_v1 hash_ALL NULL #hash#$hj 31 test1.tab1_v2.f1 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE t1 hash_ALL NULL #hash#$hj 85 test1.tab1_v1.f1,test1.tab1_v1.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
1 SIMPLE t1 hash_ALL NULL #hash#$hj 84 test1.tab1_v1.f1,test1.tab1_v1.f2 5 Using where; Using join buffer (incremental, BNLH join)
|
||||
use test;
|
||||
drop database test1;
|
||||
set join_cache_level=@tmp_jcl;
|
||||
|
@ -770,7 +770,7 @@ SELECT * FROM t1, t2, v1 WHERE t2.a=t1.a AND t2.a=v1.a AND t2.a=v1.b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 system NULL NULL NULL NULL 1
|
||||
1 PRIMARY t2 ref a a 4 const 1 Using index
|
||||
1 PRIMARY <derived2> ref key0 key0 10 const,const 1
|
||||
1 PRIMARY <derived2> ref key0 key0 8 const,const 1
|
||||
2 DERIVED t3 ALL NULL NULL NULL NULL 12 Using temporary; Using filesort
|
||||
SELECT * FROM t1, t2, v1 WHERE t2.a=t1.a AND t2.a=v1.a AND t2.a=v1.b;
|
||||
a a a b
|
||||
@ -1518,7 +1518,7 @@ WHERE t3.b IN (SELECT v1.b FROM v1, t2
|
||||
WHERE t2.c = v1.c AND t2.c = v1.b AND v1.b = t3.c);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 system NULL NULL NULL NULL 1
|
||||
1 PRIMARY <derived3> ref key1 key1 10 const,const 0 Start temporary
|
||||
1 PRIMARY <derived3> ref key1 key1 8 const,const 0 Start temporary
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 3
|
||||
SELECT * FROM t3
|
||||
@ -1596,7 +1596,7 @@ EXPLAIN
|
||||
SELECT v1.a FROM v1,v2 WHERE v2.b = v1.b ORDER BY 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3 Using where; Using filesort
|
||||
1 PRIMARY <derived3> ref key0 key0 5 v1.b 2
|
||||
1 PRIMARY <derived3> ref key0 key0 4 v1.b 2
|
||||
3 DERIVED t2 ALL NULL NULL NULL NULL 5 Using temporary; Using filesort
|
||||
2 DERIVED t1 ALL NULL NULL NULL NULL 3 Using temporary; Using filesort
|
||||
DROP VIEW v1,v2;
|
||||
|
@ -219,3 +219,16 @@ OK
|
||||
OK
|
||||
drop function f1;
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-7038: Assertion `status_var.memory_used == 0' failed in THD::~THD()
|
||||
# on disconnect after executing EXPLAIN for multi-table UPDATE
|
||||
#
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
EXPLAIN UPDATE v1, mysql.user SET v1.a = v1.a + 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||
1 SIMPLE user index NULL PRIMARY 420 NULL 4 Using index
|
||||
DROP TABLE t1;
|
||||
DROP VIEW v1;
|
||||
|
@ -120,6 +120,9 @@ drop trigger trg;
|
||||
drop table t1;
|
||||
show status like "%trigger%";
|
||||
Variable_name Value
|
||||
Binlog_group_commit_trigger_count 0
|
||||
Binlog_group_commit_trigger_lock_wait 0
|
||||
Binlog_group_commit_trigger_timeout 0
|
||||
Com_create_trigger 1
|
||||
Com_drop_trigger 1
|
||||
Com_show_create_trigger 0
|
||||
|
9
mysql-test/r/filesort_bad_i_s-7585.result
Normal file
9
mysql-test/r/filesort_bad_i_s-7585.result
Normal file
@ -0,0 +1,9 @@
|
||||
SET sql_mode=STRICT_TRANS_TABLES;
|
||||
CREATE TABLE t0 (i INT) ENGINE=MyISAM;
|
||||
CREATE VIEW v1 AS SELECT * FROM t0;
|
||||
CREATE VIEW v2 AS SELECT * FROM v1;
|
||||
DROP VIEW IF EXISTS v1;
|
||||
CREATE TABLE t1 (i INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 SELECT TABLE_ROWS FROM information_schema.tables ORDER BY TABLE_ROWS;
|
||||
DROP VIEW v2;
|
||||
DROP TABLE t1, t0;
|
@ -1091,3 +1091,15 @@ insert into t1 values ('a'),('b');
|
||||
select 1 from t1 where a in (select group_concat(a) from t1);
|
||||
1
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('a'),('b');
|
||||
CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES ('c');
|
||||
CREATE TABLE t3 (f3 VARCHAR(10)) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES ('d'),('e');
|
||||
SELECT GROUP_CONCAT( f2 ORDER BY ( f2 IN ( SELECT f1 FROM t1 WHERE f1 <= f2 ) ) ) AS field
|
||||
FROM ( SELECT * FROM t2 ) AS sq2, t3
|
||||
ORDER BY field;
|
||||
field
|
||||
c,c
|
||||
drop table t3, t2, t1;
|
||||
|
@ -660,7 +660,7 @@ CREATE TABLE t2 SELECT a FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
|
||||
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
a
|
||||
@ -669,7 +669,7 @@ CREATE TABLE t3 SELECT b FROM t1;
|
||||
SHOW CREATE TABLE t3;
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`b` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
|
||||
`b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t3;
|
||||
b
|
||||
@ -678,7 +678,7 @@ CREATE TABLE t4 SELECT c FROM t1;
|
||||
SHOW CREATE TABLE t4;
|
||||
Table Create Table
|
||||
t4 CREATE TABLE `t4` (
|
||||
`c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
|
||||
`c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t4;
|
||||
c
|
||||
@ -705,7 +705,7 @@ CREATE TABLE t7 SELECT f FROM t1;
|
||||
SHOW CREATE TABLE t7;
|
||||
Table Create Table
|
||||
t7 CREATE TABLE `t7` (
|
||||
`f` datetime DEFAULT NULL
|
||||
`f` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t7;
|
||||
f
|
||||
@ -714,7 +714,7 @@ CREATE TABLE t8 SELECT g FROM t1;
|
||||
SHOW CREATE TABLE t8;
|
||||
Table Create Table
|
||||
t8 CREATE TABLE `t8` (
|
||||
`g` datetime DEFAULT NULL
|
||||
`g` datetime DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t8;
|
||||
g
|
||||
@ -723,7 +723,7 @@ CREATE TABLE t9 SELECT h FROM t1;
|
||||
SHOW CREATE TABLE t9;
|
||||
Table Create Table
|
||||
t9 CREATE TABLE `t9` (
|
||||
`h` datetime DEFAULT NULL
|
||||
`h` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t9;
|
||||
h
|
||||
@ -774,14 +774,14 @@ t12 CREATE TABLE `t12` (
|
||||
`s` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||||
`t` datetime DEFAULT NULL,
|
||||
`u` datetime DEFAULT '1986-09-27 03:00:00',
|
||||
`a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`b` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
|
||||
`d` timestamp NOT NULL DEFAULT '1986-09-27 03:00:00',
|
||||
`e` timestamp NULL DEFAULT NULL,
|
||||
`f` datetime DEFAULT NULL,
|
||||
`g` datetime DEFAULT NULL,
|
||||
`h` datetime DEFAULT NULL,
|
||||
`f` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`g` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`h` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||||
`i` datetime DEFAULT NULL,
|
||||
`j` datetime DEFAULT '1986-09-27 03:00:00'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
@ -802,7 +802,7 @@ CREATE TABLE t2 SELECT a FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` datetime DEFAULT NULL
|
||||
`a` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
a
|
||||
@ -811,7 +811,7 @@ CREATE TABLE t3 SELECT b FROM t1;
|
||||
SHOW CREATE TABLE t3;
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`b` datetime DEFAULT NULL
|
||||
`b` datetime DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t3;
|
||||
b
|
||||
@ -820,7 +820,7 @@ CREATE TABLE t4 SELECT c FROM t1;
|
||||
SHOW CREATE TABLE t4;
|
||||
Table Create Table
|
||||
t4 CREATE TABLE `t4` (
|
||||
`c` datetime DEFAULT NULL
|
||||
`c` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t4;
|
||||
c
|
||||
@ -2216,7 +2216,7 @@ CREATE TABLE t2 SELECT a FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||
`a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
a
|
||||
@ -2225,7 +2225,7 @@ CREATE TABLE t3 SELECT b FROM t1;
|
||||
SHOW CREATE TABLE t3;
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`b` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||
`b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t3;
|
||||
b
|
||||
@ -2234,7 +2234,7 @@ CREATE TABLE t4 SELECT c FROM t1;
|
||||
SHOW CREATE TABLE t4;
|
||||
Table Create Table
|
||||
t4 CREATE TABLE `t4` (
|
||||
`c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||
`c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t4;
|
||||
c
|
||||
@ -2261,7 +2261,7 @@ CREATE TABLE t7 SELECT f FROM t1;
|
||||
SHOW CREATE TABLE t7;
|
||||
Table Create Table
|
||||
t7 CREATE TABLE `t7` (
|
||||
`f` datetime(6) DEFAULT NULL
|
||||
`f` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t7;
|
||||
f
|
||||
@ -2270,7 +2270,7 @@ CREATE TABLE t8 SELECT g FROM t1;
|
||||
SHOW CREATE TABLE t8;
|
||||
Table Create Table
|
||||
t8 CREATE TABLE `t8` (
|
||||
`g` datetime(6) DEFAULT NULL
|
||||
`g` datetime(6) DEFAULT CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t8;
|
||||
g
|
||||
@ -2279,7 +2279,7 @@ CREATE TABLE t9 SELECT h FROM t1;
|
||||
SHOW CREATE TABLE t9;
|
||||
Table Create Table
|
||||
t9 CREATE TABLE `t9` (
|
||||
`h` datetime(6) DEFAULT NULL
|
||||
`h` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t9;
|
||||
h
|
||||
@ -2330,14 +2330,14 @@ t12 CREATE TABLE `t12` (
|
||||
`s` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`t` datetime(6) DEFAULT NULL,
|
||||
`u` datetime(6) DEFAULT '1986-09-27 03:00:00.098765',
|
||||
`a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||
`b` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||
`c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||
`a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
`c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`d` timestamp(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
|
||||
`e` timestamp(6) NULL DEFAULT NULL,
|
||||
`f` datetime(6) DEFAULT NULL,
|
||||
`g` datetime(6) DEFAULT NULL,
|
||||
`h` datetime(6) DEFAULT NULL,
|
||||
`f` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`g` datetime(6) DEFAULT CURRENT_TIMESTAMP(6),
|
||||
`h` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`i` datetime(6) DEFAULT NULL,
|
||||
`j` datetime(6) DEFAULT '1986-09-27 03:00:00.098765'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
@ -2358,7 +2358,7 @@ CREATE TABLE t2 SELECT a FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` datetime(6) DEFAULT NULL
|
||||
`a` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
a
|
||||
@ -2367,7 +2367,7 @@ CREATE TABLE t3 SELECT b FROM t1;
|
||||
SHOW CREATE TABLE t3;
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`b` datetime(6) DEFAULT NULL
|
||||
`b` datetime(6) DEFAULT CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t3;
|
||||
b
|
||||
@ -2376,7 +2376,7 @@ CREATE TABLE t4 SELECT c FROM t1;
|
||||
SHOW CREATE TABLE t4;
|
||||
Table Create Table
|
||||
t4 CREATE TABLE `t4` (
|
||||
`c` datetime(6) DEFAULT NULL
|
||||
`c` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t4;
|
||||
c
|
||||
|
@ -661,7 +661,7 @@ CREATE TABLE t2 SELECT a FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
|
||||
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
a
|
||||
@ -670,7 +670,7 @@ CREATE TABLE t3 SELECT b FROM t1;
|
||||
SHOW CREATE TABLE t3;
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`b` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
|
||||
`b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t3;
|
||||
b
|
||||
@ -679,7 +679,7 @@ CREATE TABLE t4 SELECT c FROM t1;
|
||||
SHOW CREATE TABLE t4;
|
||||
Table Create Table
|
||||
t4 CREATE TABLE `t4` (
|
||||
`c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
|
||||
`c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t4;
|
||||
c
|
||||
@ -706,7 +706,7 @@ CREATE TABLE t7 SELECT f FROM t1;
|
||||
SHOW CREATE TABLE t7;
|
||||
Table Create Table
|
||||
t7 CREATE TABLE `t7` (
|
||||
`f` datetime DEFAULT NULL
|
||||
`f` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t7;
|
||||
f
|
||||
@ -715,7 +715,7 @@ CREATE TABLE t8 SELECT g FROM t1;
|
||||
SHOW CREATE TABLE t8;
|
||||
Table Create Table
|
||||
t8 CREATE TABLE `t8` (
|
||||
`g` datetime DEFAULT NULL
|
||||
`g` datetime DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t8;
|
||||
g
|
||||
@ -724,7 +724,7 @@ CREATE TABLE t9 SELECT h FROM t1;
|
||||
SHOW CREATE TABLE t9;
|
||||
Table Create Table
|
||||
t9 CREATE TABLE `t9` (
|
||||
`h` datetime DEFAULT NULL
|
||||
`h` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t9;
|
||||
h
|
||||
@ -775,14 +775,14 @@ t12 CREATE TABLE `t12` (
|
||||
`s` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||||
`t` datetime DEFAULT NULL,
|
||||
`u` datetime DEFAULT '1986-09-27 03:00:00',
|
||||
`a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`b` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
|
||||
`d` timestamp NOT NULL DEFAULT '1986-09-27 03:00:00',
|
||||
`e` timestamp NULL DEFAULT NULL,
|
||||
`f` datetime DEFAULT NULL,
|
||||
`g` datetime DEFAULT NULL,
|
||||
`h` datetime DEFAULT NULL,
|
||||
`f` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`g` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
`h` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
||||
`i` datetime DEFAULT NULL,
|
||||
`j` datetime DEFAULT '1986-09-27 03:00:00'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
@ -803,7 +803,7 @@ CREATE TABLE t2 SELECT a FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` datetime DEFAULT NULL
|
||||
`a` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
a
|
||||
@ -812,7 +812,7 @@ CREATE TABLE t3 SELECT b FROM t1;
|
||||
SHOW CREATE TABLE t3;
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`b` datetime DEFAULT NULL
|
||||
`b` datetime DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t3;
|
||||
b
|
||||
@ -821,7 +821,7 @@ CREATE TABLE t4 SELECT c FROM t1;
|
||||
SHOW CREATE TABLE t4;
|
||||
Table Create Table
|
||||
t4 CREATE TABLE `t4` (
|
||||
`c` datetime DEFAULT NULL
|
||||
`c` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t4;
|
||||
c
|
||||
@ -2217,7 +2217,7 @@ CREATE TABLE t2 SELECT a FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||
`a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
a
|
||||
@ -2226,7 +2226,7 @@ CREATE TABLE t3 SELECT b FROM t1;
|
||||
SHOW CREATE TABLE t3;
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`b` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||
`b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t3;
|
||||
b
|
||||
@ -2235,7 +2235,7 @@ CREATE TABLE t4 SELECT c FROM t1;
|
||||
SHOW CREATE TABLE t4;
|
||||
Table Create Table
|
||||
t4 CREATE TABLE `t4` (
|
||||
`c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'
|
||||
`c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t4;
|
||||
c
|
||||
@ -2262,7 +2262,7 @@ CREATE TABLE t7 SELECT f FROM t1;
|
||||
SHOW CREATE TABLE t7;
|
||||
Table Create Table
|
||||
t7 CREATE TABLE `t7` (
|
||||
`f` datetime(6) DEFAULT NULL
|
||||
`f` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t7;
|
||||
f
|
||||
@ -2271,7 +2271,7 @@ CREATE TABLE t8 SELECT g FROM t1;
|
||||
SHOW CREATE TABLE t8;
|
||||
Table Create Table
|
||||
t8 CREATE TABLE `t8` (
|
||||
`g` datetime(6) DEFAULT NULL
|
||||
`g` datetime(6) DEFAULT CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t8;
|
||||
g
|
||||
@ -2280,7 +2280,7 @@ CREATE TABLE t9 SELECT h FROM t1;
|
||||
SHOW CREATE TABLE t9;
|
||||
Table Create Table
|
||||
t9 CREATE TABLE `t9` (
|
||||
`h` datetime(6) DEFAULT NULL
|
||||
`h` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t9;
|
||||
h
|
||||
@ -2331,14 +2331,14 @@ t12 CREATE TABLE `t12` (
|
||||
`s` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`t` datetime(6) DEFAULT NULL,
|
||||
`u` datetime(6) DEFAULT '1986-09-27 03:00:00.098765',
|
||||
`a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||
`b` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||
`c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||
`a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
`c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`d` timestamp(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765',
|
||||
`e` timestamp(6) NULL DEFAULT NULL,
|
||||
`f` datetime(6) DEFAULT NULL,
|
||||
`g` datetime(6) DEFAULT NULL,
|
||||
`h` datetime(6) DEFAULT NULL,
|
||||
`f` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`g` datetime(6) DEFAULT CURRENT_TIMESTAMP(6),
|
||||
`h` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6),
|
||||
`i` datetime(6) DEFAULT NULL,
|
||||
`j` datetime(6) DEFAULT '1986-09-27 03:00:00.098765'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
@ -2359,7 +2359,7 @@ CREATE TABLE t2 SELECT a FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` datetime(6) DEFAULT NULL
|
||||
`a` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
a
|
||||
@ -2368,7 +2368,7 @@ CREATE TABLE t3 SELECT b FROM t1;
|
||||
SHOW CREATE TABLE t3;
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`b` datetime(6) DEFAULT NULL
|
||||
`b` datetime(6) DEFAULT CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t3;
|
||||
b
|
||||
@ -2377,7 +2377,7 @@ CREATE TABLE t4 SELECT c FROM t1;
|
||||
SHOW CREATE TABLE t4;
|
||||
Table Create Table
|
||||
t4 CREATE TABLE `t4` (
|
||||
`c` datetime(6) DEFAULT NULL
|
||||
`c` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t4;
|
||||
c
|
||||
|
@ -1,4 +1,5 @@
|
||||
DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
|
||||
DROP VIEW IF EXISTS v1;
|
||||
CREATE TABLE gis_point (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
|
||||
CREATE TABLE gis_line (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING);
|
||||
CREATE TABLE gis_polygon (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON);
|
||||
@ -489,7 +490,7 @@ explain extended select issimple(MultiPoint(Point(3, 6), Point(4, 10))), issimpl
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select st_issimple(st_multipoint(st_point(3,6),st_point(4,10))) AS `issimple(MultiPoint(Point(3, 6), Point(4, 10)))`,st_issimple(st_point(3,6)) AS `issimple(Point(3, 6))`
|
||||
Note 1003 select st_issimple(st_multipoint(point(3,6),point(4,10))) AS `issimple(MultiPoint(Point(3, 6), Point(4, 10)))`,st_issimple(point(3,6)) AS `issimple(Point(3, 6))`
|
||||
create table t1 (a geometry not null);
|
||||
insert into t1 values (GeomFromText('Point(1 2)'));
|
||||
insert into t1 values ('Garbage');
|
||||
@ -1621,4 +1622,11 @@ 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
|
||||
CREATE VIEW v1 AS SELECT POINT(1,1) AS p;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select point(1,1) AS `p` latin1 latin1_swedish_ci
|
||||
SELECT ASTEXT(p) FROM v1;
|
||||
ASTEXT(p)
|
||||
POINT(1 1)
|
||||
DROP VIEW v1;
|
||||
|
@ -2339,6 +2339,16 @@ MIN(a) b
|
||||
0 a
|
||||
|
||||
DROP TABLE t1;
|
||||
create table t1 (a int, b int);
|
||||
insert into t1 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45);
|
||||
create table t2 (c int, d int);
|
||||
insert into t2 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45);
|
||||
select distinct a,sum(b), (select d from t2 where c=a order by max(b) limit 1) from t1 group by a order by max(b);
|
||||
a sum(b) (select d from t2 where c=a order by max(b) limit 1)
|
||||
1 23 11
|
||||
2 45 22
|
||||
4 89 44
|
||||
drop table t1, t2;
|
||||
#
|
||||
# LP bug#993726 Wrong result from a query with ALL subquery predicate in WHERE
|
||||
#
|
||||
|
@ -667,6 +667,37 @@ pk f
|
||||
DROP TABLE t1;
|
||||
End of 5.3 tests
|
||||
#
|
||||
# Bug MDEV-7301: Unknown column quoted with backticks in HAVING clause when using function.
|
||||
# Bug#16221433 MYSQL REJECTS QUERY DUE TO BAD RESOLUTION OF NAMES IN HAVING; VIEW UNREADABLE
|
||||
#
|
||||
CREATE TABLE `t1` (
|
||||
`id` int(11) NOT NULL,
|
||||
`title` varchar(45) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARSET=utf8;
|
||||
INSERT INTO `t1` VALUES ('1', 'Just for fun');
|
||||
INSERT INTO `t1` VALUES ('2', 'Wait until a sunhine');
|
||||
INSERT INTO `t1` VALUES ('3', 'Take a new turn');
|
||||
SELECT `id`, SHA1(`title`) AS `column_1`
|
||||
FROM `t1`
|
||||
HAVING `column_1` LIKE '8%';
|
||||
id column_1
|
||||
1 80a12660d24a72460e5e292fe33f870276d7f40a
|
||||
expected 1 row(s) returned
|
||||
SELECT `id`, SHA1(`title`) AS `column_1`
|
||||
FROM `t1`
|
||||
HAVING UPPER(column_1) LIKE '8%';
|
||||
id column_1
|
||||
1 80a12660d24a72460e5e292fe33f870276d7f40a
|
||||
expected -- 1 row(s) returned
|
||||
SELECT `id`, SHA1(`title`) AS `column_1`
|
||||
FROM `t1`
|
||||
HAVING UPPER(`column_1`) LIKE '8%';
|
||||
id column_1
|
||||
1 80a12660d24a72460e5e292fe33f870276d7f40a
|
||||
expected -- 1 row(s) returned not ER_BAD_FIELD_ERROR
|
||||
drop table t1;
|
||||
#
|
||||
# Bug mdev-5160: two-way join with HAVING over the second table
|
||||
#
|
||||
CREATE TABLE t1 (c1 varchar(6)) ENGINE=MyISAM;
|
||||
|
@ -528,6 +528,7 @@ SET DEBUG_SYNC= 'RESET';
|
||||
# This should not do anything
|
||||
ALTER TABLE t1;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuild';
|
||||
# Check that we rebuild the table
|
||||
ALTER TABLE t1 engine=innodb;
|
||||
|
@ -1,5 +1,4 @@
|
||||
call mtr.add_suppression("Could not use");
|
||||
# Case 1: Setting fife file to general_log_file and slow_query_log_file
|
||||
# Case 1: Setting fifo file to general_log_file and slow_query_log_file
|
||||
# system variable.
|
||||
SET GLOBAL general_log_file="MYSQLTEST_VARDIR/tmp/general_log.fifo";;
|
||||
ERROR 42000: Variable 'general_log_file' can't be set to the value of 'MYSQLTEST_VARDIR/tmp/general_log.fifo'
|
||||
@ -7,4 +6,6 @@ SET GLOBAL slow_query_log_file="MYSQLTEST_VARDIR/tmp/slow_log.fifo";;
|
||||
ERROR 42000: Variable 'slow_query_log_file' can't be set to the value of 'MYSQLTEST_VARDIR/tmp/slow_log.fifo'
|
||||
# Case 2: Starting server with fifo file as general log file
|
||||
# and slow query log file.
|
||||
call mtr.add_suppression("Could not use .* for logging \\(error 6\\)");
|
||||
call mtr.add_suppression("File '.*' not found \\(Errcode: 6 ");
|
||||
Setting fifo file as general log file and slow query log failed.
|
||||
|
@ -11,7 +11,7 @@ Table Op Msg_type Msg_text
|
||||
test.bug49823 repair status OK
|
||||
RENAME TABLE general_log TO renamed_general_log;
|
||||
RENAME TABLE test.bug49823 TO general_log;
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -43,9 +43,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -53,7 +54,7 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
DROP TABLE general_log;
|
||||
RENAME TABLE renamed_general_log TO general_log;
|
||||
|
@ -823,6 +823,200 @@ create view v3 as select t2.id, t3.b from t2 join t3 using(id);
|
||||
update t1 join v3 using (id) set t1.a=0;
|
||||
drop view v1, v2, v3;
|
||||
drop table t2, t3, t1;
|
||||
#
|
||||
# MDEV-7613: MariaDB 5.5.40 server crash on update table left join
|
||||
# with a view
|
||||
#
|
||||
CREATE TABLE `t1` (
|
||||
`f1` varchar(6) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f2` varchar(6) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f3` varchar(7) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f4` varchar(15) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f5` datetime DEFAULT NULL,
|
||||
`f6` varchar(2) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f7` varchar(2) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`ff1` int(1) DEFAULT NULL,
|
||||
`ff2` int(1) DEFAULT NULL,
|
||||
`ff3` int(1) DEFAULT NULL,
|
||||
`ff4` int(1) DEFAULT NULL,
|
||||
`ff5` int(1) DEFAULT NULL,
|
||||
`ff6` int(1) DEFAULT NULL,
|
||||
`ff7` int(1) DEFAULT NULL,
|
||||
`ff8` int(2) DEFAULT NULL,
|
||||
`ff9` int(1) DEFAULT NULL,
|
||||
`ff10` int(1) DEFAULT NULL,
|
||||
`ff11` int(1) DEFAULT NULL,
|
||||
`ff12` int(1) DEFAULT NULL,
|
||||
`ff13` int(1) DEFAULT NULL,
|
||||
`ff14` int(1) DEFAULT NULL,
|
||||
`ff15` int(1) DEFAULT NULL,
|
||||
`f8` varchar(70) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f9` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f10` varchar(50) COLLATE latin1_general_ci NOT NULL,
|
||||
`f11` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f12` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f13` text COLLATE latin1_general_ci,
|
||||
`f14` time DEFAULT NULL,
|
||||
`f15` varchar(30) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`fg1` int(11) DEFAULT NULL,
|
||||
`fg2` int(11) DEFAULT NULL,
|
||||
`fg3` int(11) DEFAULT NULL,
|
||||
`fg4` int(11) DEFAULT NULL,
|
||||
`fg5` int(11) DEFAULT NULL,
|
||||
`fg6` int(11) DEFAULT NULL,
|
||||
`fg7` int(11) DEFAULT NULL,
|
||||
`fg9` int(11) DEFAULT NULL,
|
||||
`fg10` int(11) DEFAULT NULL,
|
||||
`fg11` int(11) DEFAULT NULL,
|
||||
`fg12` int(11) DEFAULT NULL,
|
||||
`fg13` int(11) DEFAULT NULL,
|
||||
`fg14` int(11) DEFAULT NULL,
|
||||
`fg15` int(11) DEFAULT NULL,
|
||||
`f16` double DEFAULT NULL,
|
||||
`f17` double DEFAULT NULL,
|
||||
`f18` int(11) DEFAULT NULL,
|
||||
`f19` int(11) DEFAULT NULL,
|
||||
`f20` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f21` int(11) DEFAULT NULL,
|
||||
`f22` int(11) DEFAULT NULL,
|
||||
`f23` int(11) DEFAULT NULL,
|
||||
`f24` double DEFAULT NULL,
|
||||
`f25` int(11) DEFAULT NULL,
|
||||
`f26` double DEFAULT NULL,
|
||||
`f27` int(11) DEFAULT NULL,
|
||||
`f28` int(11) DEFAULT NULL,
|
||||
`f29` double DEFAULT NULL,
|
||||
`f30` int(11) DEFAULT NULL,
|
||||
`f31` double DEFAULT NULL,
|
||||
`PZ` double DEFAULT NULL,
|
||||
`f32` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f33` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f34` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f35` varchar(30) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f36` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f37` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f20_2` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f38` varchar(30) COLLATE latin1_general_ci DEFAULT NULL COMMENT 'Email = E-Mail / Whitemail = Brief',
|
||||
`insert_ts` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`f10`),
|
||||
KEY `f5_f12` (`f5`,`f12`),
|
||||
KEY `f5_f20` (`f5`,`f20`),
|
||||
KEY `f5_f33` (`f5`,`f33`)
|
||||
) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ROW_FORMAT=COMPACT;
|
||||
INSERT INTO `t1` VALUES ('2011/2','201105','2011/19','gstfbnfr','2011-05-06
|
||||
00:00:00','gg','Ag',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,'','','','','','','21:56:28','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,NULL,NULL,0,0,'Dffgult',1,0,0,NULL,0,NULL,0,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ggggil',NULL),('2008/4','200812','2008/50','hgckbgfx','2008-12-08
|
||||
00:00:00','gg','Ag',2,NULL,2,1,1,1,1,24,1,NULL,1,1,1,2,0,'gusschlifßlich
|
||||
zugg
|
||||
gflffonifrfn','88.77.79.214','10001614','fg-gtgggggdgtfn','fg-gtgggggdgtfn','birgit.tfrpfllf@gggx.df','11:55:21',NULL,1,0,1,1,1,1,1,1,0,1,1,1,0,0,NULL,NULL,0,4,'ffrtrgg',1,6,10,1.66666666666667,4,1,10,14,1.4,1,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.',NULL,'ggggil',NULL),('2008/4','200812','2008/51','hgckbgfx','2008-12-15
|
||||
00:00:00','gg','Ag',4,5,5,4,5,5,5,NULL,4,5,1,1,1,4,0,'gusschlifßlich zugg
|
||||
gflffonifrfn','79.197.185.64','10001686','fg-gtgggggdgtfn','fg-gtgggggdgtfn','kgtjg@swfftys.df','09:28:42',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,11,4.71428571428571,16,1.2,12,49,4.08111111111111,1,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.',NULL,'ggggil',NULL),('2008/4','200812','2008/50','nufchti','2008-12-08
|
||||
00:00:00','gg','Ag',4,1,1,5,5,5,5,12,4,5,1,1,2,1,0,'gusschlifßlich zugg
|
||||
gflffonifrfn','89.54.151.216','10001700','fg-gtgggggdgtfn','fg-gtgggggdgtfn','H_K2006@frffnft.df','16:41:45',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,10,4.28571428571429,11,2.6,12,41,1.58111111111111,1,NULL,NULL,'ffrtrgg
|
||||
Bgckofficf 5','vb5','Nufchtfr,
|
||||
Iris','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','junghdro','2008-12-11
|
||||
00:00:00','Do','Ag',2,2,5,5,4,4,2,72,2,5,2,2,1,1,0,'gusschlifßlich zugg
|
||||
gflffonifrfn','84.61.20.216','10001849','fg-ggriff','fg-ggriff','schofnf-glftfr@grcor.df','20:18:05',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,24,1.42857142857141,12,2.4,12,16,1,1,NULL,NULL,'ffrtrgg
|
||||
Bgckofficf 5','vb5','Junghfinrich,
|
||||
Dorothfg','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','fbflktj','2008-12-08
|
||||
00:00:00','gg','Ag',4,2,2,5,1,1,1,24,NULL,NULL,NULL,NULL,NULL,0,0,'Kgggfrg
|
||||
bzw. DigiCggg
|
||||
Funktion','217.84.62.6','10001888','fg-Kündigungfn','fg-Kündigungfn','f.frofschkf@gggx.df','21:05:59',NULL,1,1,1,1,1,1,1,0,0,0,0,0,0,0,NULL,NULL,0,0,'ffrtrgg',1,7,16,2.28571428571429,0,NULL,7,16,2.28571428571429,0,NULL,NULL,'out',NULL,'gbfl,
|
||||
Kgtjg','49','ggobilcogg','k.A.','gxtfrn','ggggil',NULL),('2008/4','200812','2008/50','gltggggri','2008-12-09
|
||||
00:00:00','Di','Ag',4,1,1,4,2,1,2,16,1,2,2,2,2,2,0,'gusschlifßlich zugg
|
||||
gflffonifrfn','81.171.157.211','10001988','fg-gtgggggdgtfn','fg-gtgggggdgtfn','bistfr@nftcolognf.df','11:07:54',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,21,1,11,2.2,12,12,2.66666666666667,1,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.','gxtfrn','ggggil',NULL),('2008/4','200812','2008/50','ggufllfsg','2008-12-09
|
||||
00:00:00','Di','Ag',2,2,2,2,1,1,2,12,2,2,2,1,1,2,0,'ggobilfs
|
||||
Intfrnft','62.154.142.186','10002097','fg-gtgggggdgtfn','fg-gtgggggdgtfn','norbfrtwfdlich@fgggil.df','09:42:11',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,12,1.71428571428571,8,1.6,12,20,1.66666666666667,1,NULL,NULL,'ffrtrgg
|
||||
Bgckofficf 1','vb1','Mufllfr,
|
||||
ggbinf','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','wggnfg','2008-12-09
|
||||
00:00:00','Di','Ag',5,5,5,5,5,5,5,12,5,5,5,5,5,5,0,'gls grsgtz für
|
||||
Ffstnftz','85.180.141.246','10002127','fg-Kündigungfn','fg-Kündigungfn','rfinhgrt.gdolph@yghoo.df','17:44:11',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,15,5,25,5,12,60,5,1,NULL,NULL,'ffrtrgg
|
||||
Bgckofficf 1','vb1','Wggnfr,
|
||||
Annftt','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','schubrbf','2008-12-10
|
||||
00:00:00','Mi','Ag',1,2,NULL,2,1,2,1,24,NULL,NULL,NULL,NULL,NULL,0,0,'Kgggfrg
|
||||
bzw. DigiCggg
|
||||
Funktion','91.40.98.242','10002160','fg-gtgggggdgtfn','fg-gtgggggdgtfn','olgf.lifb@gggx.nft','18:18:25',NULL,1,1,0,1,1,1,1,0,0,0,0,0,0,0,NULL,NULL,0,0,'ffrtrgg',1,6,11,1.81111111111111,0,NULL,6,11,1.81111111111111,0,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.','gxtfrn','ggggil',NULL);
|
||||
CREATE TABLE `t2` (
|
||||
`ft1` datetime DEFAULT NULL,
|
||||
`ft2` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`ft3` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`ft4` varchar(255) COLLATE latin1_general_ci NOT NULL DEFAULT '',
|
||||
`ft5` varchar(255) COLLATE latin1_general_ci NOT NULL DEFAULT '',
|
||||
`ft6` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`ft6_2` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`ft7` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`ft8` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`ft9` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`ft10` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`ft4`,`ft5`)
|
||||
) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
|
||||
INSERT INTO `t2` VALUES ('2013-03-13 00:00:00','2013-03-13 00:00:00','9999-12-31 00:00:00','#','extern FP f32 2','Default','Intern','DEFAULT',NULL,NULL,NULL),('2013-03-13 00:00:00','2013-03-13 00:00:00','9999-12-31 00:00:00','#','extern FP f32 3','Default','Intern','DEFAULT',NULL,NULL,NULL);
|
||||
CREATE TABLE `t3` (
|
||||
`fe1` int(10) NOT NULL DEFAULT '0',
|
||||
`fe2` char(50) COLLATE latin1_general_ci DEFAULT 'nn',
|
||||
`f34` char(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`fe3` double DEFAULT NULL,
|
||||
`fe4` double DEFAULT NULL,
|
||||
`fe5` char(4) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f32` char(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`fe6` int(3) DEFAULT '0',
|
||||
`fe7` char(1) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`ft6` char(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`f33` char(4) COLLATE latin1_general_ci DEFAULT NULL COMMENT 'virtuelle f33s',
|
||||
`fe8` char(4) COLLATE latin1_general_ci DEFAULT NULL COMMENT 'aus dem ADS',
|
||||
`f37` char(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`fe9` char(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`fe10` int(5) DEFAULT '0',
|
||||
`fe11` int(10) DEFAULT '0',
|
||||
`fe12` char(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`fe13` double DEFAULT NULL,
|
||||
`fe14` char(50) COLLATE latin1_general_ci DEFAULT NULL,
|
||||
`fe15` date DEFAULT NULL,
|
||||
`fe16` date DEFAULT NULL,
|
||||
`fe17` int(10) DEFAULT '0',
|
||||
`fe18` date NOT NULL DEFAULT '0000-00-00',
|
||||
`ft3` date NOT NULL DEFAULT '0000-00-00',
|
||||
PRIMARY KEY (`fe1`),
|
||||
KEY `fe2` (`fe2`,`fe18`,`ft3`),
|
||||
KEY `f33` (`f33`),
|
||||
KEY `fe8` (`fe8`)
|
||||
) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ROW_FORMAT=COMPACT COMMENT='CustomerService und Outsourcer Userinformationen';
|
||||
INSERT INTO `t3` VALUES (1,'aabggn','gab, glgna',0,NULL,NULL,'gxtgrn D gnd g
|
||||
gggsbgrg',0,NULL,'gxtgrn','dsa','dsa','gggsbgrg','0',91611,0,'0',0,'agsggschigdgn','2014-08-11','2014-09-05',0,'2011-01-01','2014-08-11'),(4,'aabigr','gab,
|
||||
Iggr',0,NULL,NULL,'gxtgrn D gnd g
|
||||
gggsbgrg',0,NULL,'gxtgrn','dsa','dsa','gggsbgrg','0',0,0,'0',0,'agsggschigdgn','2014-08-11','2014-09-05',0,'2012-10-01','2014-08-11'),(7,'abgcrist','gbg,
|
||||
ghristggna',15182,1,'ja','ggshilfg gxtgrn 1',1,NULL,'gg
|
||||
galgs','ag1','ag1','grfgrt','0',11941,0,'0',0,'agsggschigdgn','2014-01-11',NULL,11802051,'1900-01-01','2010-06-10'),(8,'abgcrist','gbg,
|
||||
ghristggna',15182,1,'ja','Zgntralg gftgr galgs Bgtrgggng 1',1,NULL,'gg
|
||||
galgs','sb1','sb1','grfgrt','0',11941,0,'0',0,'agsggschigdgn','2014-01-11',NULL,11802051,'2010-07-01','2012-08-11'),(9,'abgcrist','gbg,
|
||||
ghristggna',15182,1,'ja','galgs Inbggnd 2',1,NULL,'gg
|
||||
galgs','si2','si2','grfgrt','0',11941,0,'0',0,'agsggschigdgn','2014-01-11',NULL,11802051,'2012-09-01','2014-01-11'),(10,'abgcgr','gbg,
|
||||
ggrnglgg',14962,1,NULL,'galgs Ogtbggnd 1',1,NULL,'gg
|
||||
galgs','sg1','sg1','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,NULL,11800647,'1900-01-01','2010-11-10'),(11,'abgcgr','gbg,
|
||||
ggrnglgg',14962,1,NULL,'galgs Ogtbggnd 1',1,NULL,'gg
|
||||
galgs','sg1','sg1','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,NULL,11800647,'2010-12-01','2011-08-11'),(12,'abgcgr','gbg,
|
||||
ggrnglgg',14962,1,NULL,'galgs Ogtbggnd 2',1,NULL,'gg
|
||||
galgs','sg2','sg2','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,NULL,11800647,'2011-09-01','2012-01-11'),(13,'abgcgr','gbg,
|
||||
ggrnglgg',14962,0.75,NULL,'galgs Ogtbggnd 2',1,NULL,'gg
|
||||
galgs','sg2','sg2','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,'2011-09-11',11800647,'2012-02-01','2011-08-11'),(14,'rgghrsgr','gbg,
|
||||
gigrid',14781,1,'ja','Fgrdgrgngsmanaggmgnt 1',1,NULL,'gg
|
||||
Zahlgng','fm1','fm1','grfgrt','0',12141,0,'0',1,NULL,NULL,NULL,11010781,'1900-01-01','2012-08-11');
|
||||
CREATE ALGORITHM=MERGE
|
||||
DEFINER=`root`@`localhost` SQL SECURITY DEFINER
|
||||
VIEW `v1` AS select `t1a`.`ft1` AS `ft1`,`t1a`.`ft2` AS `ft2`,`t1a`.`ft3` AS `ft3`,`t1a`.`ft4` AS `ft4`,`t1a`.`ft5` AS `ft5`,`t1a`.`ft6` AS `ft6`,`t1a`.`ft6_2` AS `ft6_2`,`t1a`.`ft7` AS `ft7`,`t1a`.`ft8` AS `ft8`,`t1a`.`ft9` AS `ft9`,`t1a`.`ft10` AS `ft10` from `t2` `t1a` where (if((`t1a`.`ft10` = 'virtuell'),0,1) = 1);
|
||||
CREATE ALGORITHM=UNDEFINED
|
||||
DEFINER=`root`@`localhost` SQL SECURITY DEFINER
|
||||
VIEW `v2` AS select distinct `t1b`.`fe2` AS `fe2`,min(`t1b`.`fe18`) AS `fe18`,max(`t1b`.`ft3`) AS `ft3` from `t3` `t1b` where ((`t1b`.`fe2` <> '') and (curdate() >= `t1b`.`fe18`)) group by `t1b`.`fe2`;
|
||||
CREATE ALGORITHM=UNDEFINED
|
||||
DEFINER=`root`@`localhost` SQL SECURITY DEFINER
|
||||
VIEW `v3` AS select `t1c`.`fe2` AS `fe2`,`t1c`.`f34` AS `f34`,`t1c`.`f33` AS `f33`,`t1c`.`f32` AS `f32`,`t1c`.`f37` AS `f37`,`t1c`.`fe10` AS `fe10`,if((`tov`.`ft6` in ('klarmobil','callmobile')),`tov`.`ft9`,`tov`.`ft6`) AS `ft6_1`,`tov`.`ft6_2` AS `ft6_2`,`ua`.`fe18` AS `fe18`,`ua`.`ft3` AS `ft3` from ((`t3` `t1c` left join `v2` `ua` on((`t1c`.`fe2` = `ua`.`fe2`))) left join `v1` `tov` on((`t1c`.`fe8` = `tov`.`ft4`))) where (`t1c`.`ft3` = `ua`.`ft3`) group by `t1c`.`fe2`,`t1c`.`f34`,`t1c`.`f33`,`t1c`.`f32` order by `t1c`.`f34`;
|
||||
UPDATE t1 t1 left join v3 t2 on t1.f4 = t2.fe2 SET t1.f20 = t2.ft6_1, t1.f32 = t2.f32, t1.f33 = t2.f33, t1.f37 = t2.f37 WHERE f5 >= '2015-02-01';
|
||||
#MDEV-8018: main.multi_update fails with --ps-protocol
|
||||
prepare stmt1 from "UPDATE t1 t1 left join v3 t2 on t1.f4 = t2.fe2 SET t1.f20 = t2.ft6_1, t1.f32 = t2.f32, t1.f33 = t2.f33, t1.f37 = t2.f37 WHERE f5 >= '2015-02-01'";
|
||||
execute stmt1;
|
||||
execute stmt1;
|
||||
deallocate prepare stmt1;
|
||||
drop view v3,v2,v1;
|
||||
drop table t1,t2,t3;
|
||||
end of 5.5 tests
|
||||
|
||||
# Bug mdev-5970
|
||||
|
@ -1,5 +1,5 @@
|
||||
update mysql.user set password=password("foo") where user='root';
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -42,9 +42,10 @@ error : Corrupt
|
||||
mysql.innodb_table_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -52,7 +53,7 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
update mysql.user set password='' where user='root';
|
||||
flush privileges;
|
||||
|
@ -1,5 +1,5 @@
|
||||
Run mysql_upgrade once
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -30,9 +30,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -40,12 +41,12 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
Run it again - should say already completed
|
||||
This installation of MySQL is already upgraded to VERSION, use --force if you still need to run mysql_upgrade
|
||||
Force should run it regardless of wether it's been run before
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -76,9 +77,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -86,12 +88,12 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
|
||||
GRANT ALL ON *.* TO mysqltest1@'%';
|
||||
Run mysql_upgrade with password protected account
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -122,9 +124,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -132,7 +135,7 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
DROP USER mysqltest1@'%';
|
||||
Version check failed. Got the following error when calling the 'mysql' command line client
|
||||
@ -142,7 +145,7 @@ Run mysql_upgrade with a non existing server socket
|
||||
mysqlcheck: Got error: 2005: Unknown MySQL server host 'not_existing_host' (errno) when trying to connect
|
||||
FATAL ERROR: Upgrade failed
|
||||
set GLOBAL sql_mode='STRICT_ALL_TABLES,ANSI_QUOTES,NO_ZERO_DATE';
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -173,9 +176,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -183,7 +187,7 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
set GLOBAL sql_mode=default;
|
||||
#
|
||||
@ -194,7 +198,7 @@ CREATE PROCEDURE testproc() BEGIN END;
|
||||
UPDATE mysql.proc SET character_set_client = NULL WHERE name LIKE 'testproc';
|
||||
UPDATE mysql.proc SET collation_connection = NULL WHERE name LIKE 'testproc';
|
||||
UPDATE mysql.proc SET db_collation = NULL WHERE name LIKE 'testproc';
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -225,9 +229,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -235,7 +240,7 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
CALL testproc();
|
||||
DROP PROCEDURE testproc;
|
||||
@ -249,7 +254,7 @@ WARNING: NULL values of the 'db_collation' column ('mysql.proc' table) have been
|
||||
GRANT USAGE ON *.* TO 'user3'@'%';
|
||||
GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%';
|
||||
Run mysql_upgrade with all privileges on a user
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -280,9 +285,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -290,7 +296,7 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
SHOW GRANTS FOR 'user3'@'%';
|
||||
Grants for user3@%
|
||||
@ -299,7 +305,7 @@ GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%'
|
||||
DROP USER 'user3'@'%';
|
||||
End of 5.1 tests
|
||||
The --upgrade-system-tables option was used, user tables won't be touched.
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -330,8 +336,11 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 2/6: Fixing views... Skipped
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names ... Skipped
|
||||
Phase 5/6: Checking and upgrading tables... Skipped
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
#
|
||||
# Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH OPTION
|
||||
@ -339,7 +348,7 @@ OK
|
||||
#
|
||||
# Droping the previously created mysql_upgrade_info file..
|
||||
# Running mysql_upgrade with --skip-write-binlog..
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -370,9 +379,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -380,7 +390,7 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
#
|
||||
# MDEV-4332 Increase username length from 16 characters
|
||||
@ -394,7 +404,7 @@ GRANT INSERT ON mysql.user TO very_long_user_name_number_2;
|
||||
GRANT UPDATE (User) ON mysql.db TO very_long_user_name_number_1;
|
||||
GRANT UPDATE (User) ON mysql.db TO very_long_user_name_number_2;
|
||||
CREATE PROCEDURE test.pr() BEGIN END;
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -425,9 +435,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -435,7 +446,7 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
SELECT definer FROM mysql.proc WHERE db = 'test' AND name = 'pr';
|
||||
definer
|
||||
|
@ -1,5 +1,5 @@
|
||||
The --upgrade-system-tables option was used, user tables won't be touched.
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -42,6 +42,9 @@ error : Corrupt
|
||||
mysql.innodb_table_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 2/6: Fixing views... Skipped
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names ... Skipped
|
||||
Phase 5/6: Checking and upgrading tables... Skipped
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Bug#55672 mysql_upgrade dies with internal error
|
||||
#
|
||||
Phase 1/5: Checking mysql database
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
@ -32,9 +32,10 @@ mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
Phase 2/5: Running 'mysql_fix_privilege_tables'...
|
||||
Phase 3/5: Fixing table and database names
|
||||
Phase 4/5: Checking and upgrading tables
|
||||
Phase 2/6: Fixing views
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
@ -42,5 +43,5 @@ mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
Phase 5/5: Running 'FLUSH PRIVILEGES'...
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
|
286
mysql-test/r/mysql_upgrade_view.result
Normal file
286
mysql-test/r/mysql_upgrade_view.result
Normal file
@ -0,0 +1,286 @@
|
||||
set sql_log_bin=0;
|
||||
drop table if exists t1,v1,v2,v3,v4,v1badcheck;
|
||||
drop view if exists t1,v1,v2,v3,v4,v1badcheck;
|
||||
create table t1(a int);
|
||||
create table kv(k varchar(30) NOT NULL PRIMARY KEY,v varchar(50));
|
||||
flush tables;
|
||||
check view v1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v1 check status OK
|
||||
check view v1badcheck;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v1badcheck check note View text checksum failed
|
||||
check view v2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v2 check status OK
|
||||
check view v3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v3 check status OK
|
||||
check view v1 for upgrade;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v1 check error Upgrade required. Please do "REPAIR VIEW `v1`" or dump/reload to fix it!
|
||||
check view v1badcheck for upgrade;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v1badcheck check note View text checksum failed
|
||||
check view v2 for upgrade;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v2 check error Upgrade required. Please do "REPAIR VIEW `v2`" or dump/reload to fix it!
|
||||
check view v3 for upgrade;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v3 check error Upgrade required. Please do "REPAIR VIEW `v3`" or dump/reload to fix it!
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
mysql.columns_priv OK
|
||||
mysql.db OK
|
||||
mysql.event OK
|
||||
mysql.func OK
|
||||
mysql.gtid_slave_pos OK
|
||||
mysql.help_category OK
|
||||
mysql.help_keyword OK
|
||||
mysql.help_relation OK
|
||||
mysql.help_topic OK
|
||||
mysql.host OK
|
||||
mysql.index_stats OK
|
||||
mysql.innodb_index_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
mysql.innodb_table_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
mysql.plugin OK
|
||||
mysql.proc OK
|
||||
mysql.procs_priv OK
|
||||
mysql.proxies_priv OK
|
||||
mysql.roles_mapping OK
|
||||
mysql.servers OK
|
||||
mysql.table_stats OK
|
||||
mysql.tables_priv OK
|
||||
mysql.time_zone OK
|
||||
mysql.time_zone_leap_second OK
|
||||
mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
|
||||
Repairing tables
|
||||
mysql.innodb_index_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
mysql.innodb_table_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
Phase 2/6: Fixing views
|
||||
test.v1 OK
|
||||
test.v1badcheck OK
|
||||
test.v2 OK
|
||||
test.v3 OK
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
test.kv OK
|
||||
test.t1 OK
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
show create view v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
||||
show create view v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
||||
show create view v3;
|
||||
View Create View character_set_client collation_connection
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
||||
set sql_log_bin=1;
|
||||
REPAIR VIEW v1,v2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v1 repair status OK
|
||||
test.v2 repair status OK
|
||||
REPAIR VIEW v1badcheck;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v1badcheck repair status OK
|
||||
REPAIR NO_WRITE_TO_BINLOG VIEW v3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v3 repair status OK
|
||||
set sql_log_bin=0;
|
||||
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 `test`; REPAIR VIEW v1,v2
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1badcheck
|
||||
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
||||
SELECT k,v from kv where k in ('md5','algorithm');
|
||||
k v
|
||||
algorithm 1
|
||||
md5 5e6eaf216e7b016fcedfd4e1113517af
|
||||
SELECT k from kv where k ='mariadb-version';
|
||||
k
|
||||
mariadb-version
|
||||
truncate table kv;
|
||||
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v2.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
||||
SELECT k,v from kv where k in ('md5','algorithm');
|
||||
k v
|
||||
algorithm 2
|
||||
md5 5e6eaf216e7b016fcedfd4e1113517af
|
||||
SELECT k from kv where k ='mariadb-version';
|
||||
k
|
||||
mariadb-version
|
||||
truncate table kv;
|
||||
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v3.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
||||
SELECT k,v from kv where k in ('md5','algorithm');
|
||||
k v
|
||||
algorithm 0
|
||||
md5 5e6eaf216e7b016fcedfd4e1113517af
|
||||
SELECT k from kv where k ='mariadb-version';
|
||||
k
|
||||
mariadb-version
|
||||
truncate table kv;
|
||||
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1badcheck.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
||||
SELECT k,v from kv where k in ('md5','algorithm');
|
||||
k v
|
||||
algorithm 1
|
||||
md5 5e6eaf216e7b016fcedfd4e1113517af
|
||||
SELECT k from kv where k ='mariadb-version';
|
||||
k
|
||||
mariadb-version
|
||||
truncate table kv;
|
||||
drop view if exists v1,v2,v3,v1badcheck;
|
||||
rename table mysql.event to mysql.ev_bk;
|
||||
flush tables;
|
||||
create algorithm=temptable view v4 as select a from t1;
|
||||
show create view v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
||||
show create view v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
||||
show create view v3;
|
||||
View Create View character_set_client collation_connection
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
||||
show create view v4;
|
||||
View Create View character_set_client collation_connection
|
||||
v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
|
||||
MySQL upgrade detected
|
||||
Phase 1/6: Checking and upgrading mysql database
|
||||
Processing databases
|
||||
mysql
|
||||
mysql.column_stats OK
|
||||
mysql.columns_priv OK
|
||||
mysql.db OK
|
||||
mysql.ev_bk OK
|
||||
mysql.event OK
|
||||
mysql.func OK
|
||||
mysql.gtid_slave_pos OK
|
||||
mysql.help_category OK
|
||||
mysql.help_keyword OK
|
||||
mysql.help_relation OK
|
||||
mysql.help_topic OK
|
||||
mysql.host OK
|
||||
mysql.index_stats OK
|
||||
mysql.innodb_index_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
mysql.innodb_table_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
mysql.plugin OK
|
||||
mysql.proc OK
|
||||
mysql.procs_priv OK
|
||||
mysql.proxies_priv OK
|
||||
mysql.roles_mapping OK
|
||||
mysql.servers OK
|
||||
mysql.table_stats OK
|
||||
mysql.tables_priv OK
|
||||
mysql.time_zone OK
|
||||
mysql.time_zone_leap_second OK
|
||||
mysql.time_zone_name OK
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
|
||||
Repairing tables
|
||||
mysql.innodb_index_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
mysql.innodb_table_stats
|
||||
Error : Unknown storage engine 'InnoDB'
|
||||
error : Corrupt
|
||||
Phase 2/6: Fixing views from mysql
|
||||
test.v1 OK
|
||||
test.v2 OK
|
||||
test.v3 OK
|
||||
test.v4 OK
|
||||
Phase 3/6: Running 'mysql_fix_privilege_tables'
|
||||
Phase 4/6: Fixing table and database names
|
||||
Phase 5/6: Checking and upgrading tables
|
||||
Processing databases
|
||||
information_schema
|
||||
mtr
|
||||
mtr.global_suppressions OK
|
||||
mtr.test_suppressions OK
|
||||
performance_schema
|
||||
test
|
||||
test.kv OK
|
||||
test.t1 OK
|
||||
Phase 6/6: Running 'FLUSH PRIVILEGES'
|
||||
OK
|
||||
show create view v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
||||
show create view v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
||||
show create view v3;
|
||||
View Create View character_set_client collation_connection
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
||||
show create view v4;
|
||||
View Create View character_set_client collation_connection
|
||||
v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
|
||||
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
||||
SELECT k,v from kv where k in ('md5','algorithm');
|
||||
k v
|
||||
algorithm 2
|
||||
md5 5e6eaf216e7b016fcedfd4e1113517af
|
||||
SELECT k from kv where k ='mariadb-version';
|
||||
k
|
||||
mariadb-version
|
||||
truncate table kv;
|
||||
drop view if exists v1,v2,v3;
|
||||
drop table mysql.event;
|
||||
rename table mysql.ev_bk to mysql.event;
|
||||
test.kv OK
|
||||
test.t1 OK
|
||||
test.v1 OK
|
||||
test.v2 OK
|
||||
test.v3 OK
|
||||
test.v4 OK
|
||||
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 `test`; REPAIR VIEW v1,v2
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1badcheck
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; REPAIR TABLE `kv` USE_FRM
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; REPAIR TABLE `t1` USE_FRM
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v1` FROM MYSQL
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v2` FROM MYSQL
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v3` FROM MYSQL
|
||||
master-bin.000001 # Gtid # # GTID #-#-#
|
||||
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v4` FROM MYSQL
|
||||
drop table if exists kv;
|
||||
drop view v1,v2,v3,v4;
|
||||
drop table t1;
|
@ -405,6 +405,8 @@ The following options may be given as the first argument:
|
||||
Don't start more than this number of threads to handle
|
||||
INSERT DELAYED statements. If set to zero INSERT DELAYED
|
||||
will be not used
|
||||
--max-digest-length=#
|
||||
Maximum length considered for digest text.
|
||||
--max-error-count=# Max number of errors/warnings to store for a statement
|
||||
--max-heap-table-size=#
|
||||
Don't allow creation of heap tables bigger than this
|
||||
@ -1262,6 +1264,7 @@ max-binlog-stmt-cache-size 18446744073709547520
|
||||
max-connect-errors 100
|
||||
max-connections 151
|
||||
max-delayed-threads 20
|
||||
max-digest-length 1024
|
||||
max-error-count 64
|
||||
max-heap-table-size 16777216
|
||||
max-join-size 18446744073709551615
|
||||
|
@ -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=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_user3@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB/CN=client";
|
||||
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB/CN=client" ISSUER "/CN=cacert/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB";
|
||||
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);
|
||||
@ -197,10 +197,6 @@ Variable_name Value
|
||||
Ssl_cipher DHE-RSA-AES256-SHA
|
||||
Variable_name Value
|
||||
Ssl_cipher EDH-RSA-DES-CBC3-SHA
|
||||
Variable_name Value
|
||||
Ssl_cipher EDH-RSA-DES-CBC-SHA
|
||||
Variable_name Value
|
||||
Ssl_cipher RC4-SHA
|
||||
select 'is still running; no cipher request crashed the server' as result from dual;
|
||||
result
|
||||
is still running; no cipher request crashed the server
|
||||
|
@ -207,3 +207,10 @@ check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
create table t1 (a blob);
|
||||
create view v1 as select * from t1;
|
||||
repair view v1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.v1 repair status OK
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
@ -4423,7 +4423,7 @@ INSERT INTO t1 VALUES
|
||||
EXPLAIN SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||
1 SIMPLE t2 hash_ALL a #hash#$hj 14 test.t1.a 2 Using where; Using join buffer (flat, BNLH join)
|
||||
1 SIMPLE t2 hash_ALL a #hash#$hj 6 test.t1.a 2 Using where; Using join buffer (flat, BNLH join)
|
||||
SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2;
|
||||
1
|
||||
1
|
||||
@ -4433,7 +4433,7 @@ SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2;
|
||||
EXPLAIN SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2 FORCE INDEX(a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||
1 SIMPLE t2 hash_ALL a #hash#$hj 14 test.t1.a 2 Using where; Using join buffer (flat, BNLH join)
|
||||
1 SIMPLE t2 hash_ALL a #hash#$hj 6 test.t1.a 2 Using where; Using join buffer (flat, BNLH join)
|
||||
SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2 FORCE INDEX(a);
|
||||
1
|
||||
1
|
||||
|
197
mysql-test/r/show_grants_with_plugin-7985.result
Normal file
197
mysql-test/r/show_grants_with_plugin-7985.result
Normal file
@ -0,0 +1,197 @@
|
||||
call mtr.add_suppression("password and an authentication plugin");
|
||||
#
|
||||
# Create a user with mysql_native_password plugin.
|
||||
# The user has no password or auth_string set.
|
||||
#
|
||||
create user u1;
|
||||
GRANT SELECT ON mysql.* to u1 IDENTIFIED VIA mysql_native_password;
|
||||
select user, host, password, plugin, authentication_string from mysql.user where user = 'u1';
|
||||
user host password plugin authentication_string
|
||||
u1 % mysql_native_password
|
||||
#
|
||||
# The user's grants should show no password at all.
|
||||
#
|
||||
show grants for u1;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
#
|
||||
# Test to see if connecting with no password is succesful.
|
||||
#
|
||||
connect con1, localhost, u1,,;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
connection default;
|
||||
#
|
||||
# Test after flushing privileges.
|
||||
#
|
||||
flush privileges;
|
||||
connect con1, localhost, u1,,;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
connection default;
|
||||
#
|
||||
# Now add a mysql_native password string in authentication_string.
|
||||
#
|
||||
GRANT SELECT ON mysql.* to u1 IDENTIFIED VIA mysql_native_password
|
||||
USING '*7AFEFD08B6B720E781FB000CAA418F54FA662626';
|
||||
select user, host, password, plugin, authentication_string from mysql.user where user = 'u1';
|
||||
user host password plugin authentication_string
|
||||
u1 % mysql_native_password *7AFEFD08B6B720E781FB000CAA418F54FA662626
|
||||
#
|
||||
# Test to see if connecting with password is succesful.
|
||||
#
|
||||
connect con1, localhost, u1,'SOMETHING',;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*7AFEFD08B6B720E781FB000CAA418F54FA662626'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
connection default;
|
||||
#
|
||||
# Test after flushing privileges.
|
||||
#
|
||||
flush privileges;
|
||||
connect con1, localhost, u1,'SOMETHING',;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*7AFEFD08B6B720E781FB000CAA418F54FA662626'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
connection default;
|
||||
#
|
||||
# Now we also set a password for the user.
|
||||
#
|
||||
set password for u1 = PASSWORD('SOMETHINGELSE');
|
||||
select user, host, password, plugin, authentication_string from mysql.user where user = 'u1';
|
||||
user host password plugin authentication_string
|
||||
u1 % *054B7BBD2B9A553DA560520DCD3F76DA2D81B7C6 mysql_native_password *7AFEFD08B6B720E781FB000CAA418F54FA662626
|
||||
#
|
||||
# Here we should use the password field, as that primes over
|
||||
# the authentication_string field.
|
||||
#
|
||||
show grants for u1;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*054B7BBD2B9A553DA560520DCD3F76DA2D81B7C6'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
#
|
||||
# Logging in with the user's password should work.
|
||||
#
|
||||
connect con1, localhost, u1,'SOMETHINGELSE',;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*054B7BBD2B9A553DA560520DCD3F76DA2D81B7C6'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
connection default;
|
||||
#
|
||||
# Reload privileges and test logging in again.
|
||||
#
|
||||
flush privileges;
|
||||
show grants for u1;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*054B7BBD2B9A553DA560520DCD3F76DA2D81B7C6'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
#
|
||||
# Here we connect via the user's password again.
|
||||
#
|
||||
connect con1, localhost, u1,'SOMETHINGELSE',;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*054B7BBD2B9A553DA560520DCD3F76DA2D81B7C6'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
connection default;
|
||||
#
|
||||
# Now we remove the authentication plugin password, flush privileges and
|
||||
# try again.
|
||||
#
|
||||
update mysql.user set authentication_string = '' where user='u1';
|
||||
select user, host, password, plugin, authentication_string from mysql.user where user = 'u1';
|
||||
user host password plugin authentication_string
|
||||
u1 % *054B7BBD2B9A553DA560520DCD3F76DA2D81B7C6 mysql_native_password
|
||||
flush privileges;
|
||||
show grants for u1;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*054B7BBD2B9A553DA560520DCD3F76DA2D81B7C6'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
#
|
||||
# Here we connect via the user's password.
|
||||
#
|
||||
connect con1, localhost, u1,'SOMETHINGELSE',;
|
||||
select user, host, password, plugin, authentication_string from mysql.user where user = 'u1';
|
||||
user host password plugin authentication_string
|
||||
u1 % *054B7BBD2B9A553DA560520DCD3F76DA2D81B7C6 mysql_native_password
|
||||
disconnect con1;
|
||||
connection default;
|
||||
#
|
||||
# Try and set a wrong auth_string password, with mysql_native_password.
|
||||
# Make sure it fails.
|
||||
#
|
||||
GRANT USAGE ON *.* TO u1 IDENTIFIED VIA mysql_native_password USING 'asd';
|
||||
ERROR HY000: Password hash should be a 41-digit hexadecimal number
|
||||
#
|
||||
# Now set a correct password.
|
||||
#
|
||||
GRANT SELECT ON mysql.* to u1 IDENTIFIED VIA mysql_native_password
|
||||
USING '*7AFEFD08B6B720E781FB000CAA418F54FA662626';
|
||||
show grants for u1;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*7AFEFD08B6B720E781FB000CAA418F54FA662626'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
#
|
||||
# Test if the user can now use that password instead.
|
||||
#
|
||||
connect con1, localhost, u1,'SOMETHING',;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*7AFEFD08B6B720E781FB000CAA418F54FA662626'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
#
|
||||
# Test if the user can now use that password instead, after flushing privileges;
|
||||
#
|
||||
connection default;
|
||||
flush privileges;
|
||||
connect con1, localhost, u1,'SOMETHING',;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%' IDENTIFIED BY PASSWORD '*7AFEFD08B6B720E781FB000CAA418F54FA662626'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
connection default;
|
||||
#
|
||||
# Clear all passwords from the user.
|
||||
#
|
||||
GRANT SELECT ON mysql.* to u1 IDENTIFIED VIA mysql_native_password;
|
||||
select user, host, password, plugin, authentication_string from mysql.user where user = 'u1';
|
||||
user host password plugin authentication_string
|
||||
u1 % mysql_native_password
|
||||
#
|
||||
# Test no password connect.
|
||||
#
|
||||
connect con1, localhost, u1,,;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
connection default;
|
||||
#
|
||||
# Test no password connect, after flushing privileges.
|
||||
#
|
||||
flush privileges;
|
||||
connect con1, localhost, u1,,;
|
||||
show grants;
|
||||
Grants for u1@%
|
||||
GRANT USAGE ON *.* TO 'u1'@'%'
|
||||
GRANT SELECT ON `mysql`.* TO 'u1'@'%'
|
||||
disconnect con1;
|
||||
connection default;
|
||||
drop user u1;
|
@ -170,3 +170,7 @@ Error 1728 Cannot load from mysql.proc. The table is probably corrupted
|
||||
# Restore mysql.proc
|
||||
DROP TABLE mysql.proc;
|
||||
RENAME TABLE proc_backup TO mysql.proc;
|
||||
create database mysqltest1;
|
||||
create procedure mysqltest1.foo() select "foo";
|
||||
update mysql.proc set name='' where db='mysqltest1';
|
||||
drop database mysqltest1;
|
||||
|
@ -30,3 +30,103 @@ CALL p1();
|
||||
CALL p1();
|
||||
drop procedure p1;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# BUG 16041903: CONTINUE HANDLER NOT INVOKED
|
||||
# IN A STORED FUNCTION AFTER A LOCK WAIT TIMEOUT
|
||||
#
|
||||
|
||||
# Save and set lock wait timeout
|
||||
SET @lock_wait_timeout_saved= @@lock_wait_timeout;
|
||||
SET @innodb_lock_wait_timeout_saved= @@innodb_lock_wait_timeout;
|
||||
SET @@lock_wait_timeout= 1;
|
||||
SET @@innodb_lock_wait_timeout= 1;
|
||||
|
||||
# Create a function with exit handler:
|
||||
CREATE FUNCTION f1() RETURNS VARCHAR(20)
|
||||
BEGIN
|
||||
DECLARE EXIT HANDLER FOR SQLSTATE '42S02' RETURN 'No such table';
|
||||
INSERT INTO no_such_table VALUES (1);
|
||||
END//
|
||||
|
||||
# Create a function calling f1():
|
||||
CREATE FUNCTION f2() RETURNS VARCHAR(20)
|
||||
BEGIN
|
||||
RETURN f1();
|
||||
END//
|
||||
|
||||
# Create a function provoking deadlock:
|
||||
CREATE FUNCTION f3() RETURNS VARCHAR(20)
|
||||
BEGIN
|
||||
UPDATE t1 SET i= 1 WHERE i= 1;
|
||||
RETURN 'Will never get here';
|
||||
END//
|
||||
|
||||
# Create a function calling f3, to create
|
||||
# a deadlock indirectly:
|
||||
CREATE FUNCTION f4() RETURNS VARCHAR(20)
|
||||
BEGIN
|
||||
RETURN f3();
|
||||
END//
|
||||
|
||||
# Open another connection, create and initialize a table
|
||||
# to be used for provoking deadlock, put a lock on the table:
|
||||
CREATE TABLE t1 (i INT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SET AUTOCOMMIT= 0;
|
||||
UPDATE t1 SET i=1 WHERE i=1;
|
||||
|
||||
# On the default connection, do an update to provoke a
|
||||
# deadlock, then call the function with handler. This case
|
||||
# fails without the patch (with error ER_NO_SUCH_TABLE):
|
||||
SET AUTOCOMMIT= 0;
|
||||
UPDATE t1 SET i=1 WHERE i=1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
SELECT f1() AS 'f1():';
|
||||
f1():
|
||||
No such table
|
||||
|
||||
# Provoke another deadlock, then call the function with
|
||||
# handler indirectly. This case fails without the patch
|
||||
# (with error ER_NO_SUCH_TABLE):
|
||||
UPDATE t1 SET i= 1 WHERE i= 1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
SELECT f2() AS 'f2():';
|
||||
f2():
|
||||
No such table
|
||||
|
||||
# Provoke yet another deadlock, but now from within a function,
|
||||
# then call the function with handler. This succeeds even
|
||||
# without the patch because is_fatal_sub_stmt_error is reset
|
||||
# in restore_sub_stmt after the failing function has been
|
||||
# executed. The test case is included anyway for better coverage:
|
||||
SELECT f3() AS 'f3():';
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
SELECT f1() AS 'f1():';
|
||||
f1():
|
||||
No such table
|
||||
# Provoke yet another deadlock, but now from within a function,
|
||||
# calling another function, then call the function with handler.
|
||||
# This succeeds even without the patch because
|
||||
# is_fatal_sub_stmt_error is reset in restore_sub_stmt after
|
||||
# the failing function has been executed. The test case is
|
||||
# included anyway for better coverage:
|
||||
SELECT f4() AS 'f4():';
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
SELECT f1() AS 'f1():';
|
||||
f1():
|
||||
No such table
|
||||
|
||||
# Disconnect, drop functions and table:
|
||||
DROP FUNCTION f4;
|
||||
DROP FUNCTION f3;
|
||||
DROP FUNCTION f2;
|
||||
DROP FUNCTION f1;
|
||||
DROP TABLE t1;
|
||||
|
||||
# Reset lock wait timeouts
|
||||
SET @@lock_wait_timeout= @lock_wait_timeout_saved;
|
||||
SET @@innodb_lock_wait_timeout= @innodb_lock_wait_timeout_saved;
|
||||
#
|
||||
# BUG 16041903: End of test case
|
||||
#
|
||||
|
@ -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 Dec 5 04:48:40 2014 GMT
|
||||
Ssl_server_not_before Apr 25 14:55:05 2015 GMT
|
||||
SHOW STATUS LIKE 'Ssl_server_not_after';
|
||||
Variable_name Value
|
||||
Ssl_server_not_after Dec 1 04:48:40 2029 GMT
|
||||
Ssl_server_not_after Apr 20 14:55:05 2035 GMT
|
||||
drop table if exists t1,t2,t3,t4;
|
||||
CREATE TABLE t1 (
|
||||
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
|
||||
@ -2166,3 +2166,9 @@ drop table t1;
|
||||
SHOW STATUS LIKE 'Ssl_cipher';
|
||||
Variable_name Value
|
||||
Ssl_cipher DHE-RSA-AES256-SHA
|
||||
select aes_decrypt('MySQL','adf');
|
||||
aes_decrypt('MySQL','adf')
|
||||
NULL
|
||||
select 'still connected?';
|
||||
still connected?
|
||||
still connected?
|
||||
|
7
mysql-test/r/ssl_timeout.result
Normal file
7
mysql-test/r/ssl_timeout.result
Normal file
@ -0,0 +1,7 @@
|
||||
# connect with read timeout so SLEEP() should timeout
|
||||
# Check ssl turned on
|
||||
SHOW STATUS LIKE 'Ssl_cipher';
|
||||
Variable_name Value
|
||||
Ssl_cipher DHE-RSA-AES256-SHA
|
||||
SELECT SLEEP(600);
|
||||
ERROR HY000: Lost connection to MySQL server during query
|
@ -447,7 +447,7 @@ WHERE t3.b IN (SELECT v1.b FROM v1, t2
|
||||
WHERE t2.c = v1.c AND t2.c = v1.b AND v1.b = t3.c);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 system NULL NULL NULL NULL 1
|
||||
1 PRIMARY <derived3> ref key1 key1 10 const,const 0 Start temporary
|
||||
1 PRIMARY <derived3> ref key1 key1 8 const,const 0 Start temporary
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 3
|
||||
SELECT * FROM t3
|
||||
|
@ -450,7 +450,7 @@ WHERE t2.c = v1.c AND t2.c = v1.b AND v1.b = t3.c);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 1
|
||||
2 DEPENDENT SUBQUERY <derived3> ref key1 key1 10 const,const 0 Using where
|
||||
2 DEPENDENT SUBQUERY <derived3> ref key1 key1 8 const,const 0 Using where
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 3
|
||||
SELECT * FROM t3
|
||||
WHERE t3.b IN (SELECT v1.b FROM v1, t2
|
||||
|
@ -2988,4 +2988,13 @@ pk1 i1 i2 c2 pk3 i3 c3
|
||||
SET join_cache_level=@tmp_mdev5059;
|
||||
set optimizer_switch=@tmp_os_mdev5059;
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
#
|
||||
# MDEV-7911: crash in Item_cond::eval_not_null_tables
|
||||
#
|
||||
create table t1(a int);
|
||||
insert into t1 values(1),(2),(3),(null);
|
||||
explain
|
||||
select 1 from t1 where _cp932 "1" in (select '1' from t1);
|
||||
ERROR HY000: Illegal mix of collations (cp932_japanese_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation '='
|
||||
drop table t1;
|
||||
set optimizer_switch=@subselect_sj_tmp;
|
||||
|
@ -1178,5 +1178,89 @@ id nombre
|
||||
2 row 2
|
||||
3 row 3
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# MDEV-7474: Semi-Join's DuplicateWeedout strategy skipped for some values of optimizer_search_depth
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
t1id BIGINT(20) NOT NULL,
|
||||
code VARCHAR(20),
|
||||
PRIMARY KEY (t1id)
|
||||
) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
|
||||
CREATE TABLE t2 (
|
||||
t2id BIGINT(20) NOT NULL,
|
||||
t1idref BIGINT(20) NOT NULL,
|
||||
code VARCHAR(20),
|
||||
PRIMARY KEY (t2id),
|
||||
INDEX FK_T2_T1Id (t1idref),
|
||||
CONSTRAINT FK_T2_T1Id FOREIGN KEY (t1idref) REFERENCES t1 (t1id)
|
||||
) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
|
||||
CREATE TABLE t3 (
|
||||
t3idref BIGINT(20) NOT NULL,
|
||||
t2idref BIGINT(20) NOT NULL,
|
||||
sequencenumber INT(10) NOT NULL,
|
||||
PRIMARY KEY (t3idref, t2idref),
|
||||
INDEX FK_T3_T2Id (t2idref),
|
||||
CONSTRAINT FK_T3_T2Id FOREIGN KEY (t2idref) REFERENCES t2 (t2id)
|
||||
) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
|
||||
INSERT INTO t1 (t1id) VALUES (100001),(100017),(100018),(100026),(100027),(100028),(100029),(100030),
|
||||
(100031),(100032),(100033),(100034),(100035),(100036),(100037),(100038),(100040),(100041),(100042),
|
||||
(100043),(100044),(100045),(100046),(100047);
|
||||
INSERT IGNORE INTO t2 (t2id, t1idref) SELECT t1id, t1id FROM t1;
|
||||
INSERT IGNORE INTO t1 VALUES (200001, 'a');
|
||||
INSERT IGNORE INTO t2 (t2id, t1idref) VALUES (200011, 200001),(200012, 200001),(200013, 200001);
|
||||
INSERT IGNORE INTO t3 VALUES (1, 200011, 1), (1, 200012, 2), (1, 200013, 3);
|
||||
set @tmp7474= @@optimizer_search_depth;
|
||||
SET SESSION optimizer_search_depth = 1;
|
||||
SELECT SQL_NO_CACHE
|
||||
T2_0_.t1idref,
|
||||
T2_0_.t2id
|
||||
FROM
|
||||
t2 T2_0_
|
||||
WHERE
|
||||
T2_0_.t1idref IN (
|
||||
SELECT
|
||||
T1_1_.t1id
|
||||
FROM
|
||||
t3 T3_0_
|
||||
INNER JOIN
|
||||
t2 T2_1_
|
||||
ON T3_0_.t2idref=T2_1_.t2id
|
||||
INNER JOIN
|
||||
t1 T1_1_
|
||||
ON T2_1_.t1idref=T1_1_.t1id
|
||||
WHERE
|
||||
T3_0_.t3idref= 1
|
||||
);
|
||||
t1idref t2id
|
||||
200001 200011
|
||||
200001 200012
|
||||
200001 200013
|
||||
explain SELECT SQL_NO_CACHE
|
||||
T2_0_.t1idref,
|
||||
T2_0_.t2id
|
||||
FROM
|
||||
t2 T2_0_
|
||||
WHERE
|
||||
T2_0_.t1idref IN (
|
||||
SELECT
|
||||
T1_1_.t1id
|
||||
FROM
|
||||
t3 T3_0_
|
||||
INNER JOIN
|
||||
t2 T2_1_
|
||||
ON T3_0_.t2idref=T2_1_.t2id
|
||||
INNER JOIN
|
||||
t1 T1_1_
|
||||
ON T2_1_.t1idref=T1_1_.t1id
|
||||
WHERE
|
||||
T3_0_.t3idref= 1
|
||||
);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY T3_0_ ref PRIMARY,FK_T3_T2Id PRIMARY 8 const 3 Using index; Start temporary
|
||||
1 PRIMARY T2_1_ eq_ref PRIMARY,FK_T2_T1Id PRIMARY 8 test.T3_0_.t2idref 1
|
||||
1 PRIMARY T1_1_ eq_ref PRIMARY PRIMARY 8 test.T2_1_.t1idref 1 Using index
|
||||
1 PRIMARY T2_0_ ref FK_T2_T1Id FK_T2_T1Id 8 test.T2_1_.t1idref 1 Using index; End temporary
|
||||
drop table t3,t2,t1;
|
||||
set optimizer_search_depth=@tmp7474;
|
||||
# This must be the last in the file:
|
||||
set optimizer_switch=@subselect_sj2_tmp;
|
||||
|
@ -891,7 +891,7 @@ WHERE t3.b IN (SELECT b FROM t4);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 1
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
1 PRIMARY t2 hash_ALL NULL #hash#$hj 5 test.t3.a 1 Using where; Using join buffer (flat, BNLH join)
|
||||
1 PRIMARY t2 hash_ALL NULL #hash#$hj 4 test.t3.a 1 Using where; Using join buffer (flat, BNLH join)
|
||||
1 PRIMARY <derived3> ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
|
||||
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 2
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 1
|
||||
@ -1161,7 +1161,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ref PRIMARY PRIMARY 5 const 1 Using where; Using index
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary; Using join buffer (flat, BNL join)
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
|
||||
1 PRIMARY t4 hash_index NULL #hash#$hj:PRIMARY 55:59 test.t3.t3_c 2 Using where; End temporary; Using join buffer (incremental, BNLH join)
|
||||
1 PRIMARY t4 hash_index NULL #hash#$hj:PRIMARY 54:59 test.t3.t3_c 2 Using where; End temporary; Using join buffer (incremental, BNLH join)
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
#
|
||||
# MDEV-6263: Wrong result when using IN subquery with order by
|
||||
@ -1193,6 +1193,90 @@ id nombre
|
||||
2 row 2
|
||||
3 row 3
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# MDEV-7474: Semi-Join's DuplicateWeedout strategy skipped for some values of optimizer_search_depth
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
t1id BIGINT(20) NOT NULL,
|
||||
code VARCHAR(20),
|
||||
PRIMARY KEY (t1id)
|
||||
) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
|
||||
CREATE TABLE t2 (
|
||||
t2id BIGINT(20) NOT NULL,
|
||||
t1idref BIGINT(20) NOT NULL,
|
||||
code VARCHAR(20),
|
||||
PRIMARY KEY (t2id),
|
||||
INDEX FK_T2_T1Id (t1idref),
|
||||
CONSTRAINT FK_T2_T1Id FOREIGN KEY (t1idref) REFERENCES t1 (t1id)
|
||||
) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
|
||||
CREATE TABLE t3 (
|
||||
t3idref BIGINT(20) NOT NULL,
|
||||
t2idref BIGINT(20) NOT NULL,
|
||||
sequencenumber INT(10) NOT NULL,
|
||||
PRIMARY KEY (t3idref, t2idref),
|
||||
INDEX FK_T3_T2Id (t2idref),
|
||||
CONSTRAINT FK_T3_T2Id FOREIGN KEY (t2idref) REFERENCES t2 (t2id)
|
||||
) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
|
||||
INSERT INTO t1 (t1id) VALUES (100001),(100017),(100018),(100026),(100027),(100028),(100029),(100030),
|
||||
(100031),(100032),(100033),(100034),(100035),(100036),(100037),(100038),(100040),(100041),(100042),
|
||||
(100043),(100044),(100045),(100046),(100047);
|
||||
INSERT IGNORE INTO t2 (t2id, t1idref) SELECT t1id, t1id FROM t1;
|
||||
INSERT IGNORE INTO t1 VALUES (200001, 'a');
|
||||
INSERT IGNORE INTO t2 (t2id, t1idref) VALUES (200011, 200001),(200012, 200001),(200013, 200001);
|
||||
INSERT IGNORE INTO t3 VALUES (1, 200011, 1), (1, 200012, 2), (1, 200013, 3);
|
||||
set @tmp7474= @@optimizer_search_depth;
|
||||
SET SESSION optimizer_search_depth = 1;
|
||||
SELECT SQL_NO_CACHE
|
||||
T2_0_.t1idref,
|
||||
T2_0_.t2id
|
||||
FROM
|
||||
t2 T2_0_
|
||||
WHERE
|
||||
T2_0_.t1idref IN (
|
||||
SELECT
|
||||
T1_1_.t1id
|
||||
FROM
|
||||
t3 T3_0_
|
||||
INNER JOIN
|
||||
t2 T2_1_
|
||||
ON T3_0_.t2idref=T2_1_.t2id
|
||||
INNER JOIN
|
||||
t1 T1_1_
|
||||
ON T2_1_.t1idref=T1_1_.t1id
|
||||
WHERE
|
||||
T3_0_.t3idref= 1
|
||||
);
|
||||
t1idref t2id
|
||||
200001 200011
|
||||
200001 200012
|
||||
200001 200013
|
||||
explain SELECT SQL_NO_CACHE
|
||||
T2_0_.t1idref,
|
||||
T2_0_.t2id
|
||||
FROM
|
||||
t2 T2_0_
|
||||
WHERE
|
||||
T2_0_.t1idref IN (
|
||||
SELECT
|
||||
T1_1_.t1id
|
||||
FROM
|
||||
t3 T3_0_
|
||||
INNER JOIN
|
||||
t2 T2_1_
|
||||
ON T3_0_.t2idref=T2_1_.t2id
|
||||
INNER JOIN
|
||||
t1 T1_1_
|
||||
ON T2_1_.t1idref=T1_1_.t1id
|
||||
WHERE
|
||||
T3_0_.t3idref= 1
|
||||
);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY T3_0_ ref PRIMARY,FK_T3_T2Id PRIMARY 8 const 3 Using index; Start temporary
|
||||
1 PRIMARY T2_1_ eq_ref PRIMARY,FK_T2_T1Id PRIMARY 8 test.T3_0_.t2idref 1 Using join buffer (flat, BKA join); Key-ordered scan
|
||||
1 PRIMARY T1_1_ eq_ref PRIMARY PRIMARY 8 test.T2_1_.t1idref 1 Using index
|
||||
1 PRIMARY T2_0_ ref FK_T2_T1Id FK_T2_T1Id 8 test.T2_1_.t1idref 1 Using index; End temporary
|
||||
drop table t3,t2,t1;
|
||||
set optimizer_search_depth=@tmp7474;
|
||||
# This must be the last in the file:
|
||||
set optimizer_switch=@subselect_sj2_tmp;
|
||||
#
|
||||
|
@ -1180,6 +1180,90 @@ id nombre
|
||||
2 row 2
|
||||
3 row 3
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# MDEV-7474: Semi-Join's DuplicateWeedout strategy skipped for some values of optimizer_search_depth
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
t1id BIGINT(20) NOT NULL,
|
||||
code VARCHAR(20),
|
||||
PRIMARY KEY (t1id)
|
||||
) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
|
||||
CREATE TABLE t2 (
|
||||
t2id BIGINT(20) NOT NULL,
|
||||
t1idref BIGINT(20) NOT NULL,
|
||||
code VARCHAR(20),
|
||||
PRIMARY KEY (t2id),
|
||||
INDEX FK_T2_T1Id (t1idref),
|
||||
CONSTRAINT FK_T2_T1Id FOREIGN KEY (t1idref) REFERENCES t1 (t1id)
|
||||
) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
|
||||
CREATE TABLE t3 (
|
||||
t3idref BIGINT(20) NOT NULL,
|
||||
t2idref BIGINT(20) NOT NULL,
|
||||
sequencenumber INT(10) NOT NULL,
|
||||
PRIMARY KEY (t3idref, t2idref),
|
||||
INDEX FK_T3_T2Id (t2idref),
|
||||
CONSTRAINT FK_T3_T2Id FOREIGN KEY (t2idref) REFERENCES t2 (t2id)
|
||||
) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
|
||||
INSERT INTO t1 (t1id) VALUES (100001),(100017),(100018),(100026),(100027),(100028),(100029),(100030),
|
||||
(100031),(100032),(100033),(100034),(100035),(100036),(100037),(100038),(100040),(100041),(100042),
|
||||
(100043),(100044),(100045),(100046),(100047);
|
||||
INSERT IGNORE INTO t2 (t2id, t1idref) SELECT t1id, t1id FROM t1;
|
||||
INSERT IGNORE INTO t1 VALUES (200001, 'a');
|
||||
INSERT IGNORE INTO t2 (t2id, t1idref) VALUES (200011, 200001),(200012, 200001),(200013, 200001);
|
||||
INSERT IGNORE INTO t3 VALUES (1, 200011, 1), (1, 200012, 2), (1, 200013, 3);
|
||||
set @tmp7474= @@optimizer_search_depth;
|
||||
SET SESSION optimizer_search_depth = 1;
|
||||
SELECT SQL_NO_CACHE
|
||||
T2_0_.t1idref,
|
||||
T2_0_.t2id
|
||||
FROM
|
||||
t2 T2_0_
|
||||
WHERE
|
||||
T2_0_.t1idref IN (
|
||||
SELECT
|
||||
T1_1_.t1id
|
||||
FROM
|
||||
t3 T3_0_
|
||||
INNER JOIN
|
||||
t2 T2_1_
|
||||
ON T3_0_.t2idref=T2_1_.t2id
|
||||
INNER JOIN
|
||||
t1 T1_1_
|
||||
ON T2_1_.t1idref=T1_1_.t1id
|
||||
WHERE
|
||||
T3_0_.t3idref= 1
|
||||
);
|
||||
t1idref t2id
|
||||
200001 200011
|
||||
200001 200012
|
||||
200001 200013
|
||||
explain SELECT SQL_NO_CACHE
|
||||
T2_0_.t1idref,
|
||||
T2_0_.t2id
|
||||
FROM
|
||||
t2 T2_0_
|
||||
WHERE
|
||||
T2_0_.t1idref IN (
|
||||
SELECT
|
||||
T1_1_.t1id
|
||||
FROM
|
||||
t3 T3_0_
|
||||
INNER JOIN
|
||||
t2 T2_1_
|
||||
ON T3_0_.t2idref=T2_1_.t2id
|
||||
INNER JOIN
|
||||
t1 T1_1_
|
||||
ON T2_1_.t1idref=T1_1_.t1id
|
||||
WHERE
|
||||
T3_0_.t3idref= 1
|
||||
);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY T3_0_ ref PRIMARY,FK_T3_T2Id PRIMARY 8 const 3 Using index; Start temporary
|
||||
1 PRIMARY T2_1_ eq_ref PRIMARY,FK_T2_T1Id PRIMARY 8 test.T3_0_.t2idref 1
|
||||
1 PRIMARY T1_1_ eq_ref PRIMARY PRIMARY 8 test.T2_1_.t1idref 1 Using index
|
||||
1 PRIMARY T2_0_ ref FK_T2_T1Id FK_T2_T1Id 8 test.T2_1_.t1idref 1 Using index; End temporary
|
||||
drop table t3,t2,t1;
|
||||
set optimizer_search_depth=@tmp7474;
|
||||
# This must be the last in the file:
|
||||
set optimizer_switch=@subselect_sj2_tmp;
|
||||
set optimizer_switch=default;
|
||||
|
@ -3002,6 +3002,15 @@ pk1 i1 i2 c2 pk3 i3 c3
|
||||
SET join_cache_level=@tmp_mdev5059;
|
||||
set optimizer_switch=@tmp_os_mdev5059;
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
#
|
||||
# MDEV-7911: crash in Item_cond::eval_not_null_tables
|
||||
#
|
||||
create table t1(a int);
|
||||
insert into t1 values(1),(2),(3),(null);
|
||||
explain
|
||||
select 1 from t1 where _cp932 "1" in (select '1' from t1);
|
||||
ERROR HY000: Illegal mix of collations (cp932_japanese_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation '='
|
||||
drop table t1;
|
||||
set optimizer_switch=@subselect_sj_tmp;
|
||||
#
|
||||
# BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off
|
||||
|
@ -677,3 +677,35 @@ USA
|
||||
CAN
|
||||
DROP TABLE t1, t2, t3;
|
||||
SET optimizer_switch=@save_optimizer_switch;
|
||||
#
|
||||
# MDEV-7893: table_elimination works wrong with on computed expression and compound unique key
|
||||
# (just a testcase)
|
||||
CREATE TABLE t1 (
|
||||
PostID int(10) unsigned NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||
INSERT INTO t1 (PostID) VALUES (1), (2);
|
||||
CREATE TABLE t2 (
|
||||
VoteID int(10) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
EntityID int(10) unsigned NOT NULL,
|
||||
UserID int(10) unsigned NOT NULL,
|
||||
UNIQUE KEY EntityID (EntityID,UserID)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
Warning 1266 Using storage engine MyISAM for table 't2'
|
||||
INSERT INTO t2 (EntityID, UserID) VALUES (1, 30), (2, 30);
|
||||
SELECT t1.*, T.Voted as Voted
|
||||
FROM
|
||||
t1 LEFT JOIN (
|
||||
SELECT 1 AS Voted, EntityID
|
||||
FROM t2
|
||||
WHERE t2.UserID = '20' ) AS T
|
||||
ON T.EntityID = t1.PostID
|
||||
WHERE t1.PostID='1'
|
||||
LIMIT 1;
|
||||
PostID Voted
|
||||
1 NULL
|
||||
DROP TABLE t1,t2;
|
||||
|
12
mysql-test/r/table_keyinfo-6838.result
Normal file
12
mysql-test/r/table_keyinfo-6838.result
Normal file
@ -0,0 +1,12 @@
|
||||
CREATE TABLE t1 (i INT, state VARCHAR(997)) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (2,'Louisiana'),(9,'Maine');
|
||||
CREATE TABLE t2 (state VARCHAR(997), j INT) ENGINE=MyISAM;
|
||||
INSERT INTO t2 VALUES ('Louisiana',9),('Alaska',5);
|
||||
INSERT INTO t2 SELECT t2.* FROM t2 JOIN t2 AS t3 JOIN t2 AS t4 JOIN t2 AS t5 JOIN t2 AS t6;
|
||||
SET @@max_heap_table_size= 16384;
|
||||
set @@optimizer_switch='derived_merge=OFF';
|
||||
set @@optimizer_switch='extended_keys=ON';
|
||||
SELECT * FROM t1 AS t1_1 LEFT JOIN ( t1 AS t1_2 INNER JOIN (SELECT * FROM t2) v2 ON t1_2.i = j ) ON t1_1.state = v2.state LIMIT 1;
|
||||
i state i state state j
|
||||
2 Louisiana 9 Maine Louisiana 9
|
||||
DROP TABLE t1, t2;
|
83
mysql-test/r/tmp_table_count-7586.result
Normal file
83
mysql-test/r/tmp_table_count-7586.result
Normal file
@ -0,0 +1,83 @@
|
||||
create table t2 (a int);
|
||||
insert into t2 values (1),(2),(3);
|
||||
create view v2 as select a from t2;
|
||||
flush status;
|
||||
select * from v2;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
show status like '%Created_tmp%';
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 0
|
||||
Created_tmp_files 0
|
||||
Created_tmp_tables 0
|
||||
explain select * from v2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3
|
||||
select * from (select * from t2) T1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
show status like '%Created_tmp%';
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 0
|
||||
Created_tmp_files 0
|
||||
Created_tmp_tables 0
|
||||
explain select * from (select * from t2) T1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3
|
||||
drop view v2;
|
||||
drop table t2;
|
||||
CREATE TABLE t1(a int);
|
||||
INSERT INTO t1 values(1),(2);
|
||||
CREATE TABLE t2(a int);
|
||||
INSERT INTO t2 values(1),(2);
|
||||
EXPLAIN SELECT * FROM t1 WHERE a IN (SELECT * FROM t2 GROUP BY a HAVING a > 1);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 test.t1.a 1
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using temporary
|
||||
truncate table performance_schema.events_statements_history_long;
|
||||
flush status;
|
||||
CREATE TABLE t3 SELECT * FROM t1 WHERE a IN (SELECT * FROM t2 GROUP BY a HAVING a > 1);
|
||||
# Performance schema should be the same as "Created_tmp_tables" variable below
|
||||
select sum(created_tmp_tables) from performance_schema.events_statements_history_long;
|
||||
sum(created_tmp_tables)
|
||||
2
|
||||
show status like '%Created_tmp%';
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 0
|
||||
Created_tmp_files 0
|
||||
Created_tmp_tables 2
|
||||
drop table t3;
|
||||
EXPLAIN SELECT * FROM t1 WHERE a IN (SELECT * FROM t2 GROUP BY a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2
|
||||
truncate table performance_schema.events_statements_history_long;
|
||||
flush status;
|
||||
CREATE TABLE t3 SELECT * FROM t1 WHERE a IN (SELECT * FROM t2 GROUP BY a);
|
||||
# Performance schema should be the same as "Created_tmp_tables" variable below
|
||||
select sum(created_tmp_tables) from performance_schema.events_statements_history_long;
|
||||
sum(created_tmp_tables)
|
||||
1
|
||||
show status like '%Created_tmp%';
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 0
|
||||
Created_tmp_files 0
|
||||
Created_tmp_tables 1
|
||||
drop table t1,t2,t3;
|
||||
truncate table performance_schema.events_statements_history_long;
|
||||
flush status;
|
||||
# Performance schema should be the same as "Created_tmp_tables" variable below
|
||||
select sum(created_tmp_tables) from performance_schema.events_statements_history_long;
|
||||
sum(created_tmp_tables)
|
||||
0
|
||||
show status like '%Created_tmp%';
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 0
|
||||
Created_tmp_files 0
|
||||
Created_tmp_tables 0
|
@ -195,3 +195,28 @@ b val
|
||||
14 g
|
||||
drop trigger t1_after_insert;
|
||||
drop table t1,t2;
|
||||
#
|
||||
#Bug#19683834 SOME INNODB ERRORS CAUSES STORED FUNCTION
|
||||
# AND TRIGGER HANDLERS TO BE IGNORED
|
||||
#Code fixed in Bug#16041903
|
||||
CREATE TABLE t1 (id int unsigned PRIMARY KEY, val int DEFAULT 0)
|
||||
ENGINE=InnoDB;
|
||||
INSERT INTO t1 (id) VALUES (1), (2);
|
||||
CREATE TABLE t2 (id int PRIMARY KEY);
|
||||
CREATE TABLE t3 LIKE t2;
|
||||
CREATE TRIGGER bef_insert BEFORE INSERT ON t2 FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE CONTINUE HANDLER FOR 1062 BEGIN END;
|
||||
INSERT INTO t3 (id) VALUES (NEW.id);
|
||||
INSERT INTO t3 (id) VALUES (NEW.id);
|
||||
END//
|
||||
START TRANSACTION;
|
||||
UPDATE t1 SET val = val + 1;
|
||||
connect con2,localhost,root,,test,,;
|
||||
SET SESSION innodb_lock_wait_timeout = 2;
|
||||
UPDATE t1 SET val = val + 1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
INSERT INTO t2 (id) VALUES (1);
|
||||
disconnect con2;
|
||||
connection default;
|
||||
DROP TABLE t3, t2, t1;
|
||||
|
@ -255,7 +255,7 @@ ushort smallint(5) unsigned zerofill NULL NO 00000 #
|
||||
umedium mediumint(8) unsigned NULL NO 0 #
|
||||
ulong int(11) unsigned NULL NO 0 #
|
||||
ulonglong bigint(13) unsigned NULL NO 0 #
|
||||
time_stamp timestamp NULL NO 0000-00-00 00:00:00 #
|
||||
time_stamp timestamp NULL NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP #
|
||||
date_field char(10) latin1_swedish_ci YES NULL #
|
||||
time_field time NULL YES NULL #
|
||||
date_time datetime NULL YES NULL #
|
||||
|
@ -690,4 +690,45 @@ drop table t1;
|
||||
drop function f1;
|
||||
set timestamp=0;
|
||||
SET time_zone=DEFAULT;
|
||||
#
|
||||
# MDEV-7778 impossible create copy of table, if table contain default value for timestamp field
|
||||
#
|
||||
SET sql_mode="NO_ZERO_DATE";
|
||||
CREATE TABLE t1 (
|
||||
ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
CREATE TABLE t2 AS SELECT * from t1 LIMIT 0;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1,t2;
|
||||
SET sql_mode=DEFAULT;
|
||||
#
|
||||
# MDEV-8082 ON UPDATE is not preserved by CREATE TABLE .. SELECT
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
vc VARCHAR(10) NOT NULL DEFAULT 'test',
|
||||
ts timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
CREATE TABLE t2 AS SELECT * FROM t1 LIMIT 0;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`vc` varchar(10) NOT NULL DEFAULT 'test',
|
||||
`ts` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`vc` varchar(10) NOT NULL DEFAULT 'test',
|
||||
`ts` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1,t2;
|
||||
End of 10.0 tests
|
||||
|
@ -109,7 +109,7 @@ create table t3 like t1;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000'
|
||||
`a` timestamp(4) NOT NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
show create table t3;
|
||||
Table Create Table
|
||||
@ -130,7 +130,7 @@ create table t3 select max(a), min(a), sum(a), avg(a) from t1;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000',
|
||||
`a` timestamp(4) NOT NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4),
|
||||
`a+0` decimal(25,4) NOT NULL DEFAULT '0.0000',
|
||||
`a-1` decimal(25,4) NOT NULL DEFAULT '0.0000',
|
||||
`a*1` decimal(25,4) NOT NULL DEFAULT '0.0000',
|
||||
|
11
mysql-test/r/uniques_crash-7912.result
Normal file
11
mysql-test/r/uniques_crash-7912.result
Normal file
@ -0,0 +1,11 @@
|
||||
call mtr.add_suppression("Out of memory");
|
||||
set sql_mode="";
|
||||
drop table if exists t1,t2;
|
||||
create table `t1` (`a` datetime not null) engine=InnoDB;
|
||||
create table `t2` (`a` int not null) engine=innodb;
|
||||
replace into t1 values (),();
|
||||
insert into t2 values(0);
|
||||
set session sort_buffer_size = 1024*1024*1024*1024;
|
||||
delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
|
||||
drop table t2;
|
||||
drop table t1;
|
@ -1,79 +1,78 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 16263805969935345171 (0xe1b4a55c3ddfa613)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Serial Number: 11580370790696127632 (0xa0b5bde0f2c08c90)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
|
||||
Validity
|
||||
Not Before: Dec 5 04:48:11 2014 GMT
|
||||
Not After : Dec 1 04:48:11 2030 GMT
|
||||
Subject: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Not Before: Apr 25 14:55:05 2015 GMT
|
||||
Not After : Apr 20 14:55:05 2035 GMT
|
||||
Subject: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:b4:95:bd:24:92:73:06:22:01:13:28:0e:09:a3:
|
||||
94:05:96:54:9d:dc:8f:83:39:f3:64:7a:31:70:f6:
|
||||
d9:c4:14:19:75:87:a6:b1:ea:52:ed:40:54:5a:f6:
|
||||
9c:13:8e:d8:76:8f:5a:65:a5:20:19:19:bd:51:9d:
|
||||
ba:35:ce:9a:a9:58:0a:fc:11:6e:1d:cb:a8:f1:92:
|
||||
79:ee:aa:fc:e3:32:5e:aa:0d:0b:23:34:95:e9:d3:
|
||||
8e:3f:72:93:90:bc:2c:b0:04:75:4f:a4:4a:a0:32:
|
||||
db:ac:89:ac:34:9b:d0:07:e3:81:e9:ca:5b:26:f0:
|
||||
f5:de:fe:d5:5e:a0:54:26:dd:ec:58:07:6e:b9:e5:
|
||||
97:f6:20:6d:d8:4a:c0:50:cc:81:e6:d2:3f:c7:47:
|
||||
70:8b:15:89:65:71:2e:47:c3:42:76:b5:ee:16:0e:
|
||||
26:97:6a:a3:1c:ad:90:53:50:b0:b1:6d:1d:b0:b8:
|
||||
6d:df:3c:ee:bd:3b:87:e8:db:4d:3a:72:78:dd:db:
|
||||
40:3d:c9:20:46:b8:4e:33:bb:76:b7:4f:b2:79:da:
|
||||
03:cc:f9:75:c0:1d:4c:51:0a:b9:9b:25:34:50:11:
|
||||
97:df:82:46:02:a9:bc:98:51:3e:c3:df:57:ad:b7:
|
||||
28:be:de:65:ce:2b:f3:2c:22:f5:af:31:28:1c:ef:
|
||||
10:09
|
||||
00:c0:1f:90:7c:2b:c2:ea:01:93:ce:e0:c5:72:e8:
|
||||
1c:06:bd:63:4e:b6:d2:c6:00:32:13:27:42:9e:c9:
|
||||
3c:91:33:4d:15:90:67:7d:9d:d8:be:9b:12:e2:f6:
|
||||
1b:46:81:4a:8b:10:c5:b8:14:53:ab:6a:2c:c3:7f:
|
||||
66:87:6c:0e:18:51:4e:9c:93:7a:6d:a1:d4:06:47:
|
||||
58:61:a6:04:21:2c:bd:74:7a:e4:68:45:fe:91:fe:
|
||||
fb:a6:29:47:ec:c5:c3:88:c8:c9:e7:d7:c6:1a:0d:
|
||||
b8:f5:c5:02:57:25:01:cc:d5:8c:37:46:58:c6:71:
|
||||
30:ee:63:38:99:84:5e:9e:3c:af:40:d4:f0:f2:12:
|
||||
44:6e:2f:4d:cd:f9:da:4d:0e:1f:a6:fe:35:c3:9d:
|
||||
40:08:82:5e:6f:7d:4d:09:16:7d:a1:78:d6:9f:9f:
|
||||
44:d6:b1:ad:e7:50:25:1a:f3:4e:16:92:4a:17:5e:
|
||||
0b:e1:c8:9f:62:22:c4:e2:01:96:63:ed:37:a2:e5:
|
||||
70:b9:dc:c8:8e:c4:fe:00:21:f5:b9:48:c0:43:55:
|
||||
4a:d8:0c:9d:ce:d6:60:30:bb:81:31:c8:e9:0e:aa:
|
||||
1c:18:3d:e4:10:47:42:17:c0:4d:fb:f5:d9:c2:e4:
|
||||
07:33:f7:15:94:63:6d:11:ad:4f:d4:1d:11:41:c1:
|
||||
e2:dd
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
keyid:C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
|
||||
|
||||
X509v3 Basic Constraints:
|
||||
CA:TRUE
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
32:97:4c:af:bf:ca:e0:10:66:b7:cc:8b:0d:05:d1:d2:ca:b8:
|
||||
0c:c2:78:57:1f:f6:55:9c:74:fc:bd:31:58:05:18:bc:6d:b5:
|
||||
79:9a:22:8c:1f:da:33:ea:ef:db:e3:cb:46:bc:36:91:8b:d8:
|
||||
36:8d:06:40:c2:e9:fe:79:1b:4a:c5:70:74:6d:9d:92:2c:90:
|
||||
be:3c:a7:88:03:e4:b7:ef:f4:b0:00:34:ec:8f:d1:c3:23:2b:
|
||||
ef:bc:ff:ab:a2:0e:bc:ba:11:a5:8e:44:80:fa:d6:f4:26:66:
|
||||
84:64:2c:e3:23:62:0c:e2:ba:01:ab:5f:24:d6:9d:7e:9c:7b:
|
||||
f4:5d:0e:ba:64:35:6e:a5:fa:98:0c:57:f3:72:e8:3e:2e:ce:
|
||||
b3:f9:e3:fa:ee:aa:79:f9:06:01:19:b2:b3:28:ff:f4:d6:bb:
|
||||
17:bb:a6:a0:e0:45:23:f3:61:40:31:5c:a3:ee:88:1c:00:31:
|
||||
54:96:f9:71:37:b5:7f:66:6a:af:04:94:09:39:99:b3:88:86:
|
||||
9e:bb:d6:36:24:24:f4:37:2c:a6:6c:0b:35:2e:bb:40:af:a7:
|
||||
64:8a:7f:f2:74:e3:94:0c:32:bd:31:3d:d9:79:68:0f:1e:4b:
|
||||
17:c0:4e:df:85:3c:f0:84:df:58:f1:d2:4d:2f:ad:ff:1b:d7:
|
||||
c8:9b:fe:dc
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
40:6f:6a:54:f3:29:30:48:46:bd:da:46:71:64:52:14:a7:c2:
|
||||
34:b7:5e:1e:42:3d:e7:47:92:cd:87:e7:9d:5d:1a:82:77:82:
|
||||
62:32:d4:9d:b6:44:11:dc:88:78:38:a5:d3:1f:1e:be:c2:d6:
|
||||
14:b0:58:35:cd:66:22:43:97:ba:bb:e3:44:4f:9d:75:14:9f:
|
||||
6f:37:d3:50:07:09:36:bc:58:92:e8:fe:c0:a8:ba:29:55:65:
|
||||
e2:6f:8f:ab:a5:1d:4f:56:37:de:c7:b4:39:20:4c:a8:4c:db:
|
||||
56:51:12:7e:e7:7f:83:9d:c4:c7:72:8f:6f:83:f0:af:e3:37:
|
||||
1c:40:fe:5e:38:26:2f:05:46:a7:0c:a5:81:79:d6:9c:9c:d7:
|
||||
56:eb:96:fe:c7:ae:8e:4f:5e:4a:6c:3a:fa:68:be:65:60:a2:
|
||||
d3:3f:07:76:45:b3:95:3e:11:ef:3a:0e:6f:73:47:4c:90:dd:
|
||||
0b:36:b4:22:df:62:8d:58:d2:a6:34:5b:f0:06:5d:cd:bf:52:
|
||||
fa:ee:9b:4f:e8:79:18:6e:1c:6e:5f:96:10:6d:2f:02:1b:dd:
|
||||
bf:14:c9:32:3c:83:a5:6e:56:56:78:9d:ce:84:50:a4:df:cc:
|
||||
b5:a9:b1:ec:09:07:74:02:27:7a:9d:d2:96:a9:80:95:9a:f2:
|
||||
8c:e9:ef:99
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDmTCCAoGgAwIBAgIJAOG0pVw936YTMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNV
|
||||
BAYTAlNFMRIwEAYDVQQIDAlTdG9ja2hvbG0xEjAQBgNVBAcMCVN0b2NraG9sbTEP
|
||||
MA0GA1UECgwGT3JhY2xlMQ4wDAYDVQQLDAVNeVNRTDELMAkGA1UEAwwCQ0EwHhcN
|
||||
MTQxMjA1MDQ0ODExWhcNMzAxMjAxMDQ0ODExWjBjMQswCQYDVQQGEwJTRTESMBAG
|
||||
A1UECAwJU3RvY2tob2xtMRIwEAYDVQQHDAlTdG9ja2hvbG0xDzANBgNVBAoMBk9y
|
||||
YWNsZTEOMAwGA1UECwwFTXlTUUwxCzAJBgNVBAMMAkNBMIIBIjANBgkqhkiG9w0B
|
||||
AQEFAAOCAQ8AMIIBCgKCAQEAtJW9JJJzBiIBEygOCaOUBZZUndyPgznzZHoxcPbZ
|
||||
xBQZdYemsepS7UBUWvacE47Ydo9aZaUgGRm9UZ26Nc6aqVgK/BFuHcuo8ZJ57qr8
|
||||
4zJeqg0LIzSV6dOOP3KTkLwssAR1T6RKoDLbrImsNJvQB+OB6cpbJvD13v7VXqBU
|
||||
Jt3sWAduueWX9iBt2ErAUMyB5tI/x0dwixWJZXEuR8NCdrXuFg4ml2qjHK2QU1Cw
|
||||
sW0dsLht3zzuvTuH6NtNOnJ43dtAPckgRrhOM7t2t0+yedoDzPl1wB1MUQq5myU0
|
||||
UBGX34JGAqm8mFE+w99Xrbcovt5lzivzLCL1rzEoHO8QCQIDAQABo1AwTjAdBgNV
|
||||
HQ4EFgQUlGWho4fPv8F0u9iEl7Zr7rKQc7IwHwYDVR0jBBgwFoAUlGWho4fPv8F0
|
||||
u9iEl7Zr7rKQc7IwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAMpdM
|
||||
r7/K4BBmt8yLDQXR0sq4DMJ4Vx/2VZx0/L0xWAUYvG21eZoijB/aM+rv2+PLRrw2
|
||||
kYvYNo0GQMLp/nkbSsVwdG2dkiyQvjyniAPkt+/0sAA07I/RwyMr77z/q6IOvLoR
|
||||
pY5EgPrW9CZmhGQs4yNiDOK6AatfJNadfpx79F0OumQ1bqX6mAxX83LoPi7Os/nj
|
||||
+u6qefkGARmysyj/9Na7F7umoOBFI/NhQDFco+6IHAAxVJb5cTe1f2ZqrwSUCTmZ
|
||||
s4iGnrvWNiQk9DcspmwLNS67QK+nZIp/8nTjlAwyvTE92XloDx5LF8BO34U88ITf
|
||||
WPHSTS+t/xvXyJv+3A==
|
||||
MIIDfzCCAmegAwIBAgIJAKC1veDywIyQMA0GCSqGSIb3DQEBBQUAMFYxDzANBgNV
|
||||
BAMMBmNhY2VydDELMAkGA1UEBhMCRkkxETAPBgNVBAgMCEhlbHNpbmtpMREwDwYD
|
||||
VQQHDAhIZWxzaW5raTEQMA4GA1UECgwHTWFyaWFEQjAeFw0xNTA0MjUxNDU1MDVa
|
||||
Fw0zNTA0MjAxNDU1MDVaMFYxDzANBgNVBAMMBmNhY2VydDELMAkGA1UEBhMCRkkx
|
||||
ETAPBgNVBAgMCEhlbHNpbmtpMREwDwYDVQQHDAhIZWxzaW5raTEQMA4GA1UECgwH
|
||||
TWFyaWFEQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMAfkHwrwuoB
|
||||
k87gxXLoHAa9Y0620sYAMhMnQp7JPJEzTRWQZ32d2L6bEuL2G0aBSosQxbgUU6tq
|
||||
LMN/ZodsDhhRTpyTem2h1AZHWGGmBCEsvXR65GhF/pH++6YpR+zFw4jIyefXxhoN
|
||||
uPXFAlclAczVjDdGWMZxMO5jOJmEXp48r0DU8PISRG4vTc352k0OH6b+NcOdQAiC
|
||||
Xm99TQkWfaF41p+fRNaxredQJRrzThaSShdeC+HIn2IixOIBlmPtN6LlcLncyI7E
|
||||
/gAh9blIwENVStgMnc7WYDC7gTHI6Q6qHBg95BBHQhfATfv12cLkBzP3FZRjbRGt
|
||||
T9QdEUHB4t0CAwEAAaNQME4wHQYDVR0OBBYEFMcsAZUa9T7NBKYkNTUE2acWASp5
|
||||
MB8GA1UdIwQYMBaAFMcsAZUa9T7NBKYkNTUE2acWASp5MAwGA1UdEwQFMAMBAf8w
|
||||
DQYJKoZIhvcNAQEFBQADggEBAEBvalTzKTBIRr3aRnFkUhSnwjS3Xh5CPedHks2H
|
||||
551dGoJ3gmIy1J22RBHciHg4pdMfHr7C1hSwWDXNZiJDl7q740RPnXUUn28301AH
|
||||
CTa8WJLo/sCouilVZeJvj6ulHU9WN97HtDkgTKhM21ZREn7nf4OdxMdyj2+D8K/j
|
||||
NxxA/l44Ji8FRqcMpYF51pyc11brlv7Hro5PXkpsOvpovmVgotM/B3ZFs5U+Ee86
|
||||
Dm9zR0yQ3Qs2tCLfYo1Y0qY0W/AGXc2/Uvrum0/oeRhuHG5flhBtLwIb3b8UyTI8
|
||||
g6VuVlZ4nc6EUKTfzLWpsewJB3QCJ3qd0papgJWa8ozp75k=
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,35 +1,26 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 16263805969935345173 (0xe1b4a55c3ddfa615)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Serial Number: 3 (0x3)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
|
||||
Validity
|
||||
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
|
||||
Not Before: Apr 25 14:55:16 2015 GMT
|
||||
Not After : Apr 20 14:55:16 2035 GMT
|
||||
Subject: C=FI, ST=Helsinki, L=Helsinki, O=MariaDB, CN=client
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (2048 bit)
|
||||
Public-Key: (1024 bit)
|
||||
Modulus:
|
||||
00:c8:d1:a1:fe:a4:8c:f3:1b:17:71:1b:74:35:11:
|
||||
e0:0e:6c:40:0a:fb:c0:f7:f0:eb:bb:c9:1d:a1:c7:
|
||||
d7:b0:8a:f6:f1:cf:fa:6b:d0:79:64:eb:bb:69:a5:
|
||||
0d:80:06:df:52:14:d2:85:32:cf:bf:ce:2a:47:28:
|
||||
5b:cd:0b:28:ab:bb:07:33:d5:8b:d3:b4:72:c4:a6:
|
||||
b5:cc:37:b9:03:a8:78:56:25:58:1f:17:30:7c:d1:
|
||||
0a:bb:ec:3c:a3:03:90:97:99:92:49:ae:b3:57:96:
|
||||
5c:1a:e9:e8:02:23:ae:c8:c9:05:50:63:e5:77:a1:
|
||||
9a:73:06:74:0e:46:50:28:d8:c9:4f:c4:1c:37:b8:
|
||||
52:18:0b:af:19:2b:d4:e5:66:74:a4:f3:f0:da:09:
|
||||
30:f7:bc:0c:c9:9b:ce:57:06:04:27:e5:a1:2f:2b:
|
||||
a0:ba:b7:99:69:9d:46:fc:21:b6:45:81:9d:b2:3d:
|
||||
2f:76:15:78:b5:33:62:ac:1e:6b:66:dd:27:61:0a:
|
||||
47:02:20:2b:57:bb:32:20:dd:06:4c:76:a4:9b:72:
|
||||
42:4c:9c:2c:76:72:12:1f:4b:df:1e:11:1f:a9:06:
|
||||
54:dc:88:12:b0:49:d5:40:83:ef:7e:48:43:86:7a:
|
||||
37:a6:c1:d7:9b:fe:08:34:98:e0:54:3c:30:4f:79:
|
||||
15:29
|
||||
00:ce:a0:3d:3c:a4:bb:4f:a1:4f:91:0d:05:ac:5b:
|
||||
8a:15:7f:d7:aa:0c:a3:a7:9f:b2:c7:26:9d:65:28:
|
||||
b1:84:d3:a0:ef:9e:b1:45:0f:33:df:98:6e:71:ff:
|
||||
2b:66:9c:9c:c1:25:13:27:42:b6:20:46:e7:e7:47:
|
||||
a1:88:47:c2:9e:e2:45:25:99:9f:f9:28:1a:9a:13:
|
||||
67:5d:3e:b3:b8:fe:40:25:ac:26:49:46:2c:03:43:
|
||||
83:67:d8:0f:41:ae:2e:f4:d8:71:60:3c:8e:e7:91:
|
||||
d0:bb:2c:ca:12:da:71:1a:7b:e3:fa:8c:8f:c3:bb:
|
||||
62:55:89:b3:bf:85:45:01:61
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
@ -37,46 +28,42 @@ Certificate:
|
||||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
26:0C:90:BC:97:12:9E:43:BB:5E:FE:EB:A9:66:B3:C3:EE:B2:18:CB
|
||||
5A:73:74:8E:14:29:C3:FB:B4:19:0F:97:8F:AA:6F:E1:E1:A8:F7:5B
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
keyid:C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
|
||||
|
||||
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
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
32:42:4b:36:44:a5:6c:fb:70:d8:08:2b:cb:16:34:15:db:39:
|
||||
60:7b:7e:b4:4a:bc:fb:e5:16:04:97:0d:eb:f5:68:95:da:2f:
|
||||
23:57:4c:c9:29:2b:d1:1b:1b:9f:bd:f4:79:75:df:62:7f:63:
|
||||
b4:84:7a:95:5c:c4:ee:f3:77:16:e4:0b:8a:5e:c9:64:bd:7c:
|
||||
04:50:ac:ff:9a:41:6b:b1:6a:9f:cd:45:10:72:83:10:8a:26:
|
||||
1d:7f:6c:84:34:5a:41:79:72:91:ee:87:5d:1d:3a:55:ff:91:
|
||||
7e:52:85:ff:42:41:eb:76:56:23:e5:bc:bc:79:b1:aa:4e:4c:
|
||||
bf:7b:df:63:8b:1a:3c:4b:01:72:89:35:bb:0d:92:97:16:6e:
|
||||
ae:50:cb:89:ee:c6:7a:d0:d3:32:22:0f:19:33:1e:ee:ff:41:
|
||||
a5:a1:25:c5:4c:ce:8f:98:4c:b5:2c:1f:ec:cc:f1:21:e2:3a:
|
||||
ff:7d:6a:87:fe:89:fd:2c:20:3e:fb:9b:b8:c0:f9:09:99:ce:
|
||||
45:63:82:09:1c:bb:79:d8:a8:40:21:46:c7:ae:3e:dd:89:9d:
|
||||
56:46:4a:f4:ed:7d:5b:a6:1e:a6:1b:26:f9:ec:26:b4:51:3a:
|
||||
87:b6:50:13:84:33:22:1a:8a:20:c5:44:64:b8:bb:de:32:ec:
|
||||
6b:58:db:17
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
MIIDHjCCAgagAwIBAgIBAzANBgkqhkiG9w0BAQUFADBWMQ8wDQYDVQQDDAZjYWNl
|
||||
cnQxCzAJBgNVBAYTAkZJMREwDwYDVQQIDAhIZWxzaW5raTERMA8GA1UEBwwISGVs
|
||||
c2lua2kxEDAOBgNVBAoMB01hcmlhREIwHhcNMTUwNDI1MTQ1NTE2WhcNMzUwNDIw
|
||||
MTQ1NTE2WjBWMQswCQYDVQQGEwJGSTERMA8GA1UECAwISGVsc2lua2kxETAPBgNV
|
||||
BAcMCEhlbHNpbmtpMRAwDgYDVQQKDAdNYXJpYURCMQ8wDQYDVQQDDAZjbGllbnQw
|
||||
gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM6gPTyku0+hT5ENBaxbihV/16oM
|
||||
o6efsscmnWUosYTToO+esUUPM9+YbnH/K2acnMElEydCtiBG5+dHoYhHwp7iRSWZ
|
||||
n/koGpoTZ10+s7j+QCWsJklGLANDg2fYD0GuLvTYcWA8jueR0LssyhLacRp74/qM
|
||||
j8O7YlWJs7+FRQFhAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8W
|
||||
HU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRac3SOFCnD
|
||||
+7QZD5ePqm/h4aj3WzAfBgNVHSMEGDAWgBTHLAGVGvU+zQSmJDU1BNmnFgEqeTAN
|
||||
BgkqhkiG9w0BAQUFAAOCAQEAMkJLNkSlbPtw2AgryxY0Fds5YHt+tEq8++UWBJcN
|
||||
6/VoldovI1dMySkr0Rsbn730eXXfYn9jtIR6lVzE7vN3FuQLil7JZL18BFCs/5pB
|
||||
a7Fqn81FEHKDEIomHX9shDRaQXlyke6HXR06Vf+RflKF/0JB63ZWI+W8vHmxqk5M
|
||||
v3vfY4saPEsBcok1uw2SlxZurlDLie7GetDTMiIPGTMe7v9BpaElxUzOj5hMtSwf
|
||||
7MzxIeI6/31qh/6J/SwgPvubuMD5CZnORWOCCRy7edioQCFGx64+3YmdVkZK9O19
|
||||
W6Yephsm+ewmtFE6h7ZQE4QzIhqKIMVEZLi73jLsa1jbFw==
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,27 +1,15 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
0
mysql-test/std_data/mysql_upgrade/event.MYD
Normal file
0
mysql-test/std_data/mysql_upgrade/event.MYD
Normal file
BIN
mysql-test/std_data/mysql_upgrade/event.MYI
Normal file
BIN
mysql-test/std_data/mysql_upgrade/event.MYI
Normal file
Binary file not shown.
BIN
mysql-test/std_data/mysql_upgrade/event.frm
Normal file
BIN
mysql-test/std_data/mysql_upgrade/event.frm
Normal file
Binary file not shown.
15
mysql-test/std_data/mysql_upgrade/v1.frm
Normal file
15
mysql-test/std_data/mysql_upgrade/v1.frm
Normal file
@ -0,0 +1,15 @@
|
||||
TYPE=VIEW
|
||||
query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
||||
md5=5e6eaf216e7b016fcedfd4e1113517af
|
||||
updatable=0
|
||||
algorithm=1
|
||||
definer_user=root
|
||||
definer_host=localhost
|
||||
suid=2
|
||||
with_check_option=0
|
||||
timestamp=2014-12-11 15:26:20
|
||||
create-version=1
|
||||
source=select a from t1
|
||||
client_cs_name=utf8
|
||||
connection_cl_name=utf8_general_ci
|
||||
view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
15
mysql-test/std_data/mysql_upgrade/v1badcheck.frm
Normal file
15
mysql-test/std_data/mysql_upgrade/v1badcheck.frm
Normal file
@ -0,0 +1,15 @@
|
||||
TYPE=VIEW
|
||||
query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
||||
md5=00000000000000000000000000000000
|
||||
updatable=0
|
||||
algorithm=1
|
||||
definer_user=root
|
||||
definer_host=localhost
|
||||
suid=2
|
||||
with_check_option=0
|
||||
timestamp=2014-12-11 15:26:20
|
||||
create-version=1
|
||||
source=select a from t1
|
||||
client_cs_name=utf8
|
||||
connection_cl_name=utf8_general_ci
|
||||
view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
15
mysql-test/std_data/mysql_upgrade/v2.frm
Normal file
15
mysql-test/std_data/mysql_upgrade/v2.frm
Normal file
@ -0,0 +1,15 @@
|
||||
TYPE=VIEW
|
||||
query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
||||
md5=5e6eaf216e7b016fcedfd4e1113517af
|
||||
updatable=1
|
||||
algorithm=2
|
||||
definer_user=root
|
||||
definer_host=localhost
|
||||
suid=2
|
||||
with_check_option=0
|
||||
timestamp=2014-12-11 15:26:29
|
||||
create-version=1
|
||||
source=select a from t1
|
||||
client_cs_name=utf8
|
||||
connection_cl_name=utf8_general_ci
|
||||
view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
15
mysql-test/std_data/mysql_upgrade/v3.frm
Normal file
15
mysql-test/std_data/mysql_upgrade/v3.frm
Normal file
@ -0,0 +1,15 @@
|
||||
TYPE=VIEW
|
||||
query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
||||
md5=5e6eaf216e7b016fcedfd4e1113517af
|
||||
updatable=0
|
||||
algorithm=0
|
||||
definer_user=root
|
||||
definer_host=localhost
|
||||
suid=2
|
||||
with_check_option=0
|
||||
timestamp=2014-12-11 15:26:20
|
||||
create-version=1
|
||||
source=select a from t1
|
||||
client_cs_name=utf8
|
||||
connection_cl_name=utf8_general_ci
|
||||
view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
16
mysql-test/std_data/mysql_upgrade/v4.frm
Normal file
16
mysql-test/std_data/mysql_upgrade/v4.frm
Normal file
@ -0,0 +1,16 @@
|
||||
TYPE=VIEW
|
||||
query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
||||
md5=5e6eaf216e7b016fcedfd4e1113517a0
|
||||
updatable=1
|
||||
algorithm=0
|
||||
definer_user=root
|
||||
definer_host=localhost
|
||||
suid=2
|
||||
with_check_option=0
|
||||
timestamp=2015-02-08 19:21:14
|
||||
create-version=1
|
||||
source=select a from t1
|
||||
client_cs_name=latin1
|
||||
connection_cl_name=latin1_swedish_ci
|
||||
view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
|
||||
mariadb-version=50542
|
@ -1,35 +1,26 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 16263805969935345172 (0xe1b4a55c3ddfa614)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Serial Number: 1 (0x1)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
|
||||
Validity
|
||||
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
|
||||
Not Before: Apr 25 14:55:05 2015 GMT
|
||||
Not After : Apr 20 14:55:05 2035 GMT
|
||||
Subject: C=FI, ST=state or province within country, in other certificates in this file it is the same as L, L=location, usually an address but often ambiguously used, O=organization name, typically a company name, OU=organizational unit name, a division name within an organization, CN=localhost
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (2048 bit)
|
||||
Public-Key: (1024 bit)
|
||||
Modulus:
|
||||
00:e9:20:e7:05:51:07:3a:48:b9:e2:62:a2:24:45:
|
||||
1f:f1:54:34:22:5c:62:86:9b:01:e8:c2:45:90:00:
|
||||
8d:4e:e4:a2:ea:e9:d7:b5:95:25:ce:18:ac:1a:4f:
|
||||
b3:e6:30:46:af:20:13:40:84:df:21:dc:df:09:e5:
|
||||
a0:7f:81:12:6e:1e:84:58:5c:a1:11:db:aa:b6:04:
|
||||
e0:fc:1e:0c:11:2e:f3:30:62:1a:f9:ee:df:fe:a3:
|
||||
d3:d6:83:6e:ad:e8:8d:98:89:b1:69:63:b8:72:f4:
|
||||
5a:e6:22:5e:73:64:95:ef:56:92:92:0b:e1:93:a5:
|
||||
d7:4c:41:47:e7:31:ed:09:68:b3:c5:6e:c1:1b:01:
|
||||
39:bb:f1:8f:bf:ba:f4:02:e2:e5:e5:9e:b7:d6:9a:
|
||||
b2:94:76:9b:48:d8:27:18:0e:9f:30:98:f5:9a:3e:
|
||||
23:e6:3b:4a:48:ee:a5:26:e8:80:94:37:e4:4a:ba:
|
||||
ff:9f:42:b9:32:dd:7a:9d:63:11:a8:25:99:b1:1f:
|
||||
86:e5:7c:b1:31:e3:12:11:0c:eb:f6:1d:02:4b:1d:
|
||||
34:cb:74:1d:7f:2f:40:c0:81:e2:04:d4:8e:ea:96:
|
||||
f8:22:35:8e:ab:b6:99:33:36:ef:b5:83:11:88:6d:
|
||||
06:0f:76:4d:bf:db:a8:df:6c:3c:91:e2:ba:73:a0:
|
||||
73:45
|
||||
00:aa:e6:54:bd:dd:52:1e:16:f7:24:52:37:58:2b:
|
||||
a7:af:49:e1:cd:75:2a:18:52:e1:48:f0:59:82:c0:
|
||||
7a:d9:66:b3:97:04:b3:77:f4:39:fd:d1:c0:1a:c5:
|
||||
a6:ab:44:84:d2:17:39:53:25:63:9b:c3:24:78:51:
|
||||
5c:77:6b:df:b4:82:1d:e4:43:f4:67:0a:5d:89:a2:
|
||||
fe:b0:ea:64:3a:1d:9d:49:78:c8:7f:79:a5:cd:45:
|
||||
4b:0c:ad:ae:4f:e2:d4:5d:ec:e8:73:06:ed:98:92:
|
||||
85:49:b2:9c:31:3b:44:38:5f:bb:5a:f1:68:84:a9:
|
||||
c3:5b:31:39:d4:47:98:38:55
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
@ -37,46 +28,47 @@ Certificate:
|
||||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
E4:31:D8:D5:06:EA:C6:B3:A2:F6:01:39:8F:58:08:36:2C:7B:3F:DB
|
||||
E5:72:8F:57:72:D6:75:63:28:7F:E2:BF:00:B7:1D:B8:AA:FE:94:59
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:94:65:A1:A3:87:CF:BF:C1:74:BB:D8:84:97:B6:6B:EE:B2:90:73:B2
|
||||
keyid:C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
|
||||
|
||||
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
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
88:44:46:fa:7d:16:ae:9d:16:5b:95:26:03:3c:71:f4:29:3d:
|
||||
df:cb:f4:14:20:9f:87:24:b4:29:17:2d:7a:12:48:76:ac:00:
|
||||
44:26:ba:93:83:ad:58:7e:b7:77:e4:b0:32:0d:e5:dd:fb:cc:
|
||||
0e:9b:88:e0:24:82:e4:41:43:47:5a:4e:d3:b4:5b:47:4b:57:
|
||||
eb:67:02:63:bb:dd:05:12:f5:95:01:0b:89:81:ca:c2:91:14:
|
||||
21:9a:9e:c9:84:91:46:35:0e:26:44:1e:91:88:74:4f:fe:d3:
|
||||
19:9e:65:fa:46:e2:46:04:ad:91:79:4c:70:1b:68:b2:49:e9:
|
||||
6c:f4:58:44:3b:43:15:85:56:64:1b:84:74:49:95:9f:cd:93:
|
||||
9d:8e:69:ab:ca:46:97:b6:74:e9:2a:83:85:62:cd:e5:be:c3:
|
||||
52:bd:cf:90:cc:60:27:76:ee:1b:3c:da:69:73:e2:11:68:14:
|
||||
dc:7d:9f:b8:6f:20:a2:0c:b7:8e:33:40:89:d1:a3:89:e2:60:
|
||||
6a:ec:b5:9f:e8:c5:55:10:40:b2:95:5e:54:8a:10:8e:d5:90:
|
||||
d9:98:86:d8:f9:b6:01:41:8c:d7:0d:0e:86:0e:50:6d:a2:64:
|
||||
00:2a:91:5e:35:64:15:e3:86:34:3a:39:eb:0f:4f:56:c7:15:
|
||||
4c:74:2e:91
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
MIIEETCCAvmgAwIBAgIBATANBgkqhkiG9w0BAQUFADBWMQ8wDQYDVQQDDAZjYWNl
|
||||
cnQxCzAJBgNVBAYTAkZJMREwDwYDVQQIDAhIZWxzaW5raTERMA8GA1UEBwwISGVs
|
||||
c2lua2kxEDAOBgNVBAoMB01hcmlhREIwHhcNMTUwNDI1MTQ1NTA1WhcNMzUwNDIw
|
||||
MTQ1NTA1WjCCAUcxCzAJBgNVBAYTAkZJMWEwXwYDVQQIDFhzdGF0ZSBvciBwcm92
|
||||
aW5jZSB3aXRoaW4gY291bnRyeSwgaW4gb3RoZXIgY2VydGlmaWNhdGVzIGluIHRo
|
||||
aXMgZmlsZSBpdCBpcyB0aGUgc2FtZSBhcyBMMUAwPgYDVQQHDDdsb2NhdGlvbiwg
|
||||
dXN1YWxseSBhbiBhZGRyZXNzIGJ1dCBvZnRlbiBhbWJpZ3VvdXNseSB1c2VkMTQw
|
||||
MgYDVQQKDCtvcmdhbml6YXRpb24gbmFtZSwgdHlwaWNhbGx5IGEgY29tcGFueSBu
|
||||
YW1lMUkwRwYDVQQLDEBvcmdhbml6YXRpb25hbCB1bml0IG5hbWUsIGEgZGl2aXNp
|
||||
b24gbmFtZSB3aXRoaW4gYW4gb3JnYW5pemF0aW9uMRIwEAYDVQQDDAlsb2NhbGhv
|
||||
c3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKrmVL3dUh4W9yRSN1grp69J
|
||||
4c11KhhS4UjwWYLAetlms5cEs3f0Of3RwBrFpqtEhNIXOVMlY5vDJHhRXHdr37SC
|
||||
HeRD9GcKXYmi/rDqZDodnUl4yH95pc1FSwytrk/i1F3s6HMG7ZiShUmynDE7RDhf
|
||||
u1rxaISpw1sxOdRHmDhVAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgEN
|
||||
BB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBTlco9X
|
||||
ctZ1Yyh/4r8Atx24qv6UWTAfBgNVHSMEGDAWgBTHLAGVGvU+zQSmJDU1BNmnFgEq
|
||||
eTANBgkqhkiG9w0BAQUFAAOCAQEAiERG+n0Wrp0WW5UmAzxx9Ck938v0FCCfhyS0
|
||||
KRctehJIdqwARCa6k4OtWH63d+SwMg3l3fvMDpuI4CSC5EFDR1pO07RbR0tX62cC
|
||||
Y7vdBRL1lQELiYHKwpEUIZqeyYSRRjUOJkQekYh0T/7TGZ5l+kbiRgStkXlMcBto
|
||||
sknpbPRYRDtDFYVWZBuEdEmVn82TnY5pq8pGl7Z06SqDhWLN5b7DUr3PkMxgJ3bu
|
||||
GzzaaXPiEWgU3H2fuG8gogy3jjNAidGjieJgauy1n+jFVRBAspVeVIoQjtWQ2ZiG
|
||||
2Pm2AUGM1w0Ohg5QbaJkACqRXjVkFeOGNDo56w9PVscVTHQukQ==
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,27 +1,15 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpQIBAAKCAQEA6SDnBVEHOki54mKiJEUf8VQ0IlxihpsB6MJFkACNTuSi6unX
|
||||
tZUlzhisGk+z5jBGryATQITfIdzfCeWgf4ESbh6EWFyhEduqtgTg/B4MES7zMGIa
|
||||
+e7f/qPT1oNureiNmImxaWO4cvRa5iJec2SV71aSkgvhk6XXTEFH5zHtCWizxW7B
|
||||
GwE5u/GPv7r0AuLl5Z631pqylHabSNgnGA6fMJj1mj4j5jtKSO6lJuiAlDfkSrr/
|
||||
n0K5Mt16nWMRqCWZsR+G5XyxMeMSEQzr9h0CSx00y3Qdfy9AwIHiBNSO6pb4IjWO
|
||||
q7aZMzbvtYMRiG0GD3ZNv9uo32w8keK6c6BzRQIDAQABAoIBAQDUbdzVJV6Wp4pq
|
||||
VUI2Fp7iwr22ycQlr71voQbODxK0XvZtZKPgnIWUZTr9xr7A9CCUl3+zfN/t9Vtv
|
||||
o0Q6qxxmJ3ylH9LNeQL3VT7FvYN1bPjAj8TRFfAaEqKHh8AkzBGqe12kEPAUH8Fs
|
||||
jsjOEUvmiVaJqjXk2mty2tFwRDggJwCrN5bXkhkzwhDcMfH2Wgc4c4XkyUrciJQU
|
||||
ua4d0L354B3UmRYtrzwPr6WHLXCGPGhyWvXYpDjjdUGMVf2YcBSQdABF+mhCEb2b
|
||||
NP4dYUqKHjKn6p4B1/qfJtf0c9Lz229nz0WTzanmpXaNxQVce0sTbktp5A3itT+m
|
||||
NlQfDNoBAoGBAPvqSK7NqCrvFYEo+Cvl6fOhq9li2zAeaYO7D+AKiWSJzG9KK/Ts
|
||||
F+28nnWkBEdzAnmgWZ7UZlUwHqF6DNIGn+RLHDJ2MVRrZug2irCR8g2mxcHk2dss
|
||||
DcmUtsatjCbjLqVCcyuuQylP2GWK60JmRbdKEOfpHLntzGStpOhn5FPBAoGBAOzo
|
||||
okk2FWZlymJTkN2HYTqvUCYINDciTDm/ms7YGC6YKdDJ8PUVq6qJ2GO/M+zGPQtV
|
||||
A+qFWqx1kk3K5uLPnZLCPLORXPIm0X1ZGreG+rHsrJTnP6uh9OxrTyLNkvt6xcm7
|
||||
yA51QOWTuRbYhPwy05IqT3Z88HkHByMKr4xafPCFAoGADff1w8ufkZHkTV8qM7Tx
|
||||
/hJu5wT2RnrJOwa6YJ/08mA5t8oTGeelhAc7eiZ4HkYgUwIzNf1tFzgt2qJb56F6
|
||||
aDxJ+fpXzeiOsj2j/xp4o40l1hSMh/yvXwgiAm5JITbjtUI0BK4LB1VoGGlVlj75
|
||||
iqpOua1RbHXlKYf/Zuur24ECgYEAqXDFSWmGKsOY2XR9QwQltUxYHat2dQxxykfR
|
||||
GCmUOhcYqT0VuqSyL/oBK25AXBN465b1gxG3xWsdpcf+FLB7OdD0i1XnTUYYRPeq
|
||||
1SKUQRdOY/11G3Ntcn5ZjkHL41NvDRbiQfz42noqQj2/94T+rybVyKAZeeZd42Es
|
||||
J0082OUCgYEAnguGJxhfSryD3a2kAQ/6s+L303rgXkRt+/luoopdm7vu2AcnaP7L
|
||||
aK4dCDusp/DZyGn8/ebDCGNIaVEMJVHAPLFbhJA9E9HCjfC33RdklCO/aGDtXsiq
|
||||
kzg3mqPHTCPCpmpr5YAtuLONczP1qgB04/vqb2S5eANC+5k6mEifu2U=
|
||||
MIICXAIBAAKBgQCq5lS93VIeFvckUjdYK6evSeHNdSoYUuFI8FmCwHrZZrOXBLN3
|
||||
9Dn90cAaxaarRITSFzlTJWObwyR4UVx3a9+0gh3kQ/RnCl2Jov6w6mQ6HZ1JeMh/
|
||||
eaXNRUsMra5P4tRd7OhzBu2YkoVJspwxO0Q4X7ta8WiEqcNbMTnUR5g4VQIDAQAB
|
||||
AoGAblQWXyBzdBN1Z5BgRF6ieYpj6OT70QoogJMR5lRmutUPma4iQo17pr3znBT/
|
||||
nU+1w3/UtTXNEXCwqbA01q/gkbP2PaW/sbHLVow1B7u/o42WW6I3Btnl3ClnCNjD
|
||||
Mo7/Gj027hhp7mC61r81JeJVh8fJUgxdNqoH7AkDnA+FJAECQQDjIl3k6W2P+bHb
|
||||
bp+8eyY7ITQbppZh+3hFJKRL7DZKFYL5J6gejiBURnG9DKnhoSP2nqzqdrRhWZhB
|
||||
ZHr+ciEBAkEAwJ5rMpFoIwRzgPD4Q4iSqHcBbFcJE7dK1XLq6MYUVNQGfDU8pBvI
|
||||
EocXphpsJ8CbR35dGDY19rmO2LjG3RBDVQJAetRN9Inrjw2YCjNzvKjYTuew1zcq
|
||||
YghszO94zfoKjdu+PWEdwJBZmVmTDoo3oGXVHfxHRHA3MeISvWJKRSmRAQJAHL9H
|
||||
9msXJKrEZkkQdFvMr5HbR4UR2LxxUbvt7UGqxSJDuYPkggWXbZR15hdpbuFjC1+D
|
||||
m1pz4Ve+RwAExfdoZQJBANfmuWtlLU+SMpDG4zOyC7u4dz+TtnEOfDUECFNZtqvU
|
||||
MWz98MIXAjiBDYU1Z0BrA7b0/FVsPR3t6JZFQWWI2y8=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
@ -1,86 +1,86 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 10754692786786449447 (0x9540581bd8dcb827)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=SE, ST=Stockholm, L=Stockholm, O=Oracle, OU=MySQL, CN=CA
|
||||
Serial Number: 2 (0x2)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
|
||||
Validity
|
||||
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
|
||||
Not Before: Apr 25 14:55:16 2015 GMT
|
||||
Not After : Apr 20 14:55:16 2035 GMT
|
||||
Subject: C=FI, ST=Helsinki, L=Helsinki, O=MariaDB, CN=server8k
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (8192 bit)
|
||||
Modulus:
|
||||
00:d8:8f:9d:66:66:9c:12:ca:0a:ad:9e:9f:05:66:
|
||||
6c:6c:8a:db:19:9f:a2:d0:fa:38:dc:de:c5:a6:94:
|
||||
60:0d:4b:72:c9:85:e2:ff:27:c8:d4:ce:b1:29:66:
|
||||
31:e7:2b:4e:08:b3:a2:71:cf:1e:36:7c:8e:4d:08:
|
||||
6e:fd:7a:ea:c1:0d:5c:97:09:66:fa:ed:0b:36:64:
|
||||
8f:cc:39:35:a9:43:6c:a9:17:48:0f:2e:0a:4b:d3:
|
||||
94:bb:b0:5b:43:f1:4e:f7:e5:30:e1:ae:a2:a8:5d:
|
||||
3c:db:39:df:d6:4b:70:a6:c9:68:c3:f3:9d:19:d7:
|
||||
2f:2a:38:31:11:ab:f1:60:66:c3:38:4f:d9:6f:b5:
|
||||
49:df:ce:14:b5:fa:c8:95:04:50:69:90:9d:26:c2:
|
||||
e9:07:69:7b:a2:d8:91:e7:cd:de:c4:ed:9c:e4:c8:
|
||||
8c:e3:a0:cd:dd:2b:37:21:8f:ee:54:38:91:2b:2b:
|
||||
01:86:90:f0:2e:9a:06:8a:e1:f2:a2:3f:d1:d4:21:
|
||||
9f:b0:81:eb:d0:e9:d3:e9:a9:28:6e:c2:06:4b:94:
|
||||
6e:96:70:f5:31:33:dd:97:2f:cc:5d:80:c5:74:ce:
|
||||
c0:3d:b2:6a:81:b7:ce:65:4f:6a:49:3e:c9:5d:00:
|
||||
3c:06:4a:57:c9:a7:f9:bb:46:50:df:64:dc:13:1f:
|
||||
22:ad:21:0b:aa:4b:5d:94:60:9f:20:ff:28:aa:56:
|
||||
5f:f6:cd:23:34:fe:44:a2:d6:80:bd:a9:67:00:d6:
|
||||
a1:82:82:9f:c9:e8:0c:97:26:1e:a9:b1:e2:ee:01:
|
||||
ef:9d:c6:82:fc:72:33:02:40:35:cc:ae:51:23:f4:
|
||||
f8:92:29:d3:2f:5c:1f:03:c6:81:7d:fb:4f:e9:de:
|
||||
ed:68:3c:a1:be:7c:fa:11:96:2b:5a:10:c5:c5:cb:
|
||||
2e:7a:54:4c:7b:12:b8:07:01:d9:b5:38:0f:a6:43:
|
||||
70:28:81:8d:d7:95:ad:d6:e8:88:b4:19:62:05:7b:
|
||||
75:c0:2d:24:72:1c:4d:04:a3:f7:1d:6b:8b:fa:16:
|
||||
a3:5a:6c:51:ba:5c:62:fa:3e:82:7f:4e:10:db:d0:
|
||||
52:d4:81:df:0e:5b:33:7e:20:77:1d:51:ca:4e:13:
|
||||
ee:cd:72:36:28:b4:31:88:3d:61:0f:1a:80:19:f6:
|
||||
7d:71:5d:21:1f:dd:0b:d9:73:88:a9:72:4b:8d:a3:
|
||||
d6:f1:4f:5d:01:6e:9e:c2:28:97:80:de:5b:2d:ac:
|
||||
a3:c9:24:db:e9:0f:2b:36:ee:a7:f2:94:c1:41:7a:
|
||||
70:9f:fd:d0:31:a9:de:55:38:65:89:20:f4:02:f1:
|
||||
83:73:40:77:db:35:d2:66:ff:26:5f:f4:d2:e6:f9:
|
||||
ba:fc:6a:66:b1:02:24:04:a3:32:4b:21:85:83:b4:
|
||||
6a:97:3c:25:7f:65:cc:a6:dd:cc:ac:e5:22:09:58:
|
||||
dc:a1:0d:7d:b4:ac:98:98:81:1d:a7:83:d4:3a:e4:
|
||||
39:a7:04:6a:b6:b7:5d:a8:fe:0e:47:08:1d:95:61:
|
||||
eb:a8:97:53:91:1e:ca:1f:3f:19:5a:01:73:da:33:
|
||||
32:d7:33:ca:39:1e:00:37:6b:f8:18:47:30:3a:2e:
|
||||
99:39:d0:d0:49:6d:87:c1:98:59:d0:21:ca:12:6d:
|
||||
89:33:0f:f2:52:6e:d6:c5:78:dd:15:b6:11:d6:5e:
|
||||
72:e8:c7:12:00:c3:8d:57:34:e5:d8:6d:a2:e8:47:
|
||||
79:83:8c:49:17:3b:75:24:0d:de:e1:3b:dd:bc:b7:
|
||||
df:89:a6:31:e6:49:37:80:f8:8f:86:e3:42:f4:2e:
|
||||
dc:de:58:45:c4:41:a9:2d:a6:5d:f0:7d:81:3d:54:
|
||||
f4:8a:a3:5f:18:7c:02:c9:7f:1c:f5:9f:dd:0a:29:
|
||||
49:40:92:24:b3:b7:65:37:91:9a:a8:00:c4:4e:7f:
|
||||
7e:f7:97:de:24:2a:d7:3b:f2:a2:63:ec:38:b7:1f:
|
||||
9e:b5:72:99:bd:b1:c0:41:6a:57:97:e2:fb:11:32:
|
||||
ba:a3:5d:82:48:c5:0a:cc:2c:f5:21:7a:f1:99:56:
|
||||
1b:54:9d:c7:64:50:62:80:94:50:5a:40:32:61:f3:
|
||||
2c:f8:09:dc:f0:6d:2b:60:29:c2:86:70:5a:57:12:
|
||||
7d:09:73:ca:41:6d:22:61:18:1a:48:cb:80:95:be:
|
||||
08:e8:15:99:de:36:3a:bf:09:67:35:e8:53:d9:40:
|
||||
1b:27:e5:14:32:09:73:e0:f6:a9:19:ee:81:90:dc:
|
||||
b7:9d:b6:91:51:33:1e:1f:22:e0:bd:df:a8:d1:33:
|
||||
a7:ab:9b:9c:27:7a:3c:ef:aa:9e:4d:f8:a8:97:63:
|
||||
24:20:c8:36:ab:05:8a:c0:80:9b:64:0c:1f:ec:4f:
|
||||
de:ec:f0:9c:9c:54:db:02:ab:12:aa:ab:58:a3:49:
|
||||
25:bf:6a:0a:04:7f:2f:1d:41:11:23:4e:e2:83:51:
|
||||
e3:f5:12:95:22:72:13:f4:be:6f:e2:00:29:4f:fe:
|
||||
9b:ae:b9:e2:7d:72:d3:1b:e8:12:3b:6d:b6:d2:62:
|
||||
a4:91:31:46:e7:16:7f:9d:8d:74:5e:97:51:d1:cb:
|
||||
82:57:bb:bd:46:e4:9c:c5:bd:08:8b:68:20:f8:5e:
|
||||
d6:aa:ed:6e:4d:ba:a4:29:fd:ac:5c:2f:25:14:d3:
|
||||
19:63:0c:01:75:6c:87:a5:0b:29:09:7f:13:7f:00:
|
||||
d4:63:72:e2:a0:39:88:80:68:2c:3f:49:b1:9b:94:
|
||||
77:63:08:05:55
|
||||
00:e6:24:79:3d:3a:58:6a:12:1c:13:6a:43:d9:c1:
|
||||
65:ec:55:c1:4f:7d:fc:f2:a6:56:a5:ab:c5:48:2c:
|
||||
ce:9c:9d:47:3d:94:93:d5:3b:a3:d0:09:a8:8f:e0:
|
||||
4b:36:a0:95:ae:2d:ad:7f:a2:a3:c5:f6:87:80:4c:
|
||||
6a:26:15:47:73:20:47:e1:f8:5f:49:b7:13:20:f7:
|
||||
32:9f:db:7d:62:41:1b:60:26:7b:41:26:16:0c:92:
|
||||
22:ef:b4:2e:b3:db:90:e9:09:ca:fe:1a:1b:e4:f3:
|
||||
78:69:7d:ca:6e:c5:39:4b:46:72:09:51:08:40:78:
|
||||
8e:04:2a:23:cb:d5:50:cf:96:dd:56:43:10:1b:d2:
|
||||
71:28:8f:10:a9:e4:44:1c:39:8a:06:a7:fa:37:48:
|
||||
bd:5a:dd:37:7f:7a:00:cf:84:8a:48:a3:75:a5:67:
|
||||
fb:7b:47:2d:26:00:2e:65:ed:63:4e:b7:94:18:3f:
|
||||
5a:08:74:54:e5:af:dd:86:1b:34:9b:4c:de:fe:d8:
|
||||
69:3d:72:90:c7:5c:83:82:78:ea:ab:06:d4:f1:06:
|
||||
20:ad:fd:24:bb:e9:94:e0:c6:32:f5:df:af:b4:14:
|
||||
4d:9c:ce:0d:62:3a:3a:2b:11:f9:9e:d7:8e:63:2b:
|
||||
57:35:10:7e:d5:44:64:8c:61:9b:4e:f8:e8:a5:fb:
|
||||
47:bb:85:33:ea:c6:e0:3d:e2:2c:e8:41:e1:15:e2:
|
||||
a7:45:23:df:d0:f9:93:01:97:89:95:77:4d:d5:d4:
|
||||
c1:db:61:ca:e2:84:36:9c:01:9b:33:ec:53:83:2f:
|
||||
dd:d7:d8:20:c0:6b:4a:73:92:d2:6c:22:a6:a2:68:
|
||||
46:8b:aa:3f:aa:fe:47:b7:98:70:fd:ba:59:88:af:
|
||||
9f:0d:d7:cb:a0:42:44:f9:f0:54:39:c1:cd:fb:b4:
|
||||
e4:c6:d6:7e:1d:f5:ed:b9:1a:0f:d7:e6:a2:ab:a2:
|
||||
25:1f:6c:f9:ab:9c:d8:a3:b9:da:32:72:51:6d:61:
|
||||
f1:3b:7d:06:2b:3d:43:d5:52:1f:cb:62:14:53:69:
|
||||
4d:91:12:22:f0:55:f9:fc:4f:de:ee:e3:fc:fd:40:
|
||||
57:50:eb:0e:7a:45:cc:52:0f:24:6f:45:02:72:6b:
|
||||
6d:90:94:1c:d4:fb:34:f6:4b:4d:25:17:6f:df:4a:
|
||||
64:f8:ad:1e:6e:df:ad:6c:b3:1d:1a:e6:0e:59:7b:
|
||||
f8:a7:13:77:78:85:bf:3f:7c:12:d4:8e:34:ff:01:
|
||||
90:03:42:85:60:e4:99:d6:19:32:46:41:e8:50:ca:
|
||||
2a:03:61:cd:c5:68:f4:92:0f:6e:48:89:41:9e:53:
|
||||
bc:41:62:ed:4a:92:64:b5:cb:3d:55:6c:d9:87:87:
|
||||
9a:ab:fc:22:50:66:92:2b:b9:d7:9e:3b:ed:80:e3:
|
||||
fa:19:69:38:87:b6:25:3a:db:b5:d0:f2:80:4d:af:
|
||||
6d:7d:92:90:de:aa:df:be:80:26:1c:69:ee:7a:e3:
|
||||
45:c9:a4:4e:6a:e0:56:5f:1f:61:44:3f:62:34:c9:
|
||||
1e:21:5f:f6:7f:68:c0:6e:bf:d2:35:1e:53:99:e4:
|
||||
e1:bd:64:a4:49:3c:c3:ce:b6:e8:a9:3d:27:54:ea:
|
||||
f1:3e:a1:fc:7b:bf:8d:71:60:90:c5:66:24:85:de:
|
||||
7d:47:1f:62:83:e2:63:8e:10:5c:14:cd:d0:7e:86:
|
||||
44:4d:df:05:10:43:b8:3c:87:64:69:ec:ea:fb:49:
|
||||
9a:c6:76:c1:8f:ea:49:98:0a:d3:97:af:64:ef:da:
|
||||
5f:a9:57:03:e3:a0:15:d8:68:c5:40:d8:7b:0f:26:
|
||||
0d:5f:f0:be:5a:4c:fd:af:9e:bf:2d:31:40:71:25:
|
||||
de:d0:73:19:2d:ae:a6:cb:7c:f0:b8:a4:a9:5c:50:
|
||||
80:41:4e:dc:f7:20:a4:a6:66:65:fb:92:d1:43:2d:
|
||||
bf:30:b2:0d:db:9b:a3:ac:28:08:c4:81:99:0c:0d:
|
||||
45:e9:a9:e5:6c:da:bf:10:bb:a7:3e:5a:5f:b7:93:
|
||||
4a:20:15:29:69:74:78:d1:eb:53:a8:88:49:cb:de:
|
||||
0c:e2:9b:31:e2:2f:56:95:cf:55:92:a3:8e:a9:ef:
|
||||
68:cb:00:11:d4:71:06:4b:e5:89:0c:b6:e7:2b:2f:
|
||||
98:65:21:8e:2a:a3:86:73:bb:1b:76:e1:94:02:d8:
|
||||
a1:51:97:15:60:a2:39:d5:fd:dc:a8:be:30:12:44:
|
||||
b1:49:0b:94:82:cf:5f:93:61:1c:3c:eb:05:5b:a4:
|
||||
17:ee:30:cd:7c:db:3f:ee:79:02:da:14:20:98:fd:
|
||||
9a:0a:f1:39:c8:59:5b:4e:a3:ad:f8:04:e6:0b:b6:
|
||||
81:7e:41:00:af:f7:37:ec:6e:bc:28:a3:3d:76:b6:
|
||||
fd:e9:88:c7:1e:78:79:27:62:a2:83:34:15:61:b8:
|
||||
e4:c3:ac:f5:7f:3e:4e:5f:5f:31:5b:e8:91:1b:80:
|
||||
5e:cb:74:b2:e5:a3:8a:d5:5a:89:fa:63:f1:ff:67:
|
||||
bd:59:d0:70:77:b7:75:b5:34:74:3d:2e:99:46:0b:
|
||||
4b:c4:64:2f:93:48:fe:47:92:6a:0b:42:5e:ef:c9:
|
||||
06:64:84:60:89:2b:84:1f:31:0d:36:15:4e:6b:cd:
|
||||
14:f7:a0:d1:b2:b8:ff:53:f5:aa:b9:ed:63:50:7a:
|
||||
6f:62:e7:c7:7f:bc:f5:e2:0c:f8:28:a4:0d:ba:75:
|
||||
d0:b8:c7:9b:e3:94:62:66:1c:d8:6c:02:2e:a5:a2:
|
||||
62:50:fe:cf:31
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
@ -88,120 +88,61 @@ Certificate:
|
||||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
3E:96:BB:23:C2:FD:41:11:7F:EB:63:9B:39:5F:58:2D:92:A0:F0:9F
|
||||
B3:A9:00:04:C7:9C:2B:CD:C0:5F:D1:28:5C:5C:C6:1F:26:F7:17:5A
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:60:57:8F:09:CF:83:86:4B:35:32:BF:73:EB:81:4C:DB:36:27:12:8F
|
||||
keyid:C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
|
||||
|
||||
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
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
01:43:2c:d5:1d:b5:36:05:31:ca:b2:f3:9e:71:ce:62:fe:b2:
|
||||
e5:e3:2d:30:23:99:51:3d:50:ee:d6:ce:76:e8:43:8d:5d:9d:
|
||||
28:9b:43:90:0c:d4:24:54:3c:53:3c:18:92:ec:93:86:87:7a:
|
||||
d6:7f:5d:3b:56:cd:9d:96:7a:06:c8:16:19:8b:ed:c8:21:cf:
|
||||
15:b9:fb:06:7d:cb:5c:46:9c:c5:2e:8e:de:77:21:e5:9d:35:
|
||||
95:00:c7:ad:d2:57:36:65:1a:43:6c:ee:75:ad:a2:d8:c0:60:
|
||||
d5:07:d7:5c:5d:8e:ae:af:4a:e6:fa:6a:13:78:98:b8:11:c7:
|
||||
dc:d2:a7:dd:29:b5:76:fa:ef:13:62:5f:9a:0d:e2:87:6a:04:
|
||||
3c:5f:72:44:d0:d0:7a:70:c6:09:2b:bf:92:91:6d:f4:2e:53:
|
||||
f3:b4:c5:23:61:d6:87:c1:30:ef:fe:92:6f:97:78:f2:ea:3c:
|
||||
ff:e8:54:3a:9f:49:ac:a9:2b:46:c3:76:b1:f9:eb:31:a3:4f:
|
||||
40:58:16:90:77:b6:3d:6f:85:95:12:a9:ca:70:0a:9a:cd:61:
|
||||
46:27:84:ce:9e:33:54:8f:9a:41:6d:4d:11:bd:14:7f:ff:32:
|
||||
e9:06:bc:36:38:11:5c:0f:e9:a5:5a:0f:5c:7c:fa:f5:73:5b:
|
||||
4c:47:f2:f2
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
umEmHumqq+bLLBYK
|
||||
MIIGpDCCBYygAwIBAgIBAjANBgkqhkiG9w0BAQUFADBWMQ8wDQYDVQQDDAZjYWNl
|
||||
cnQxCzAJBgNVBAYTAkZJMREwDwYDVQQIDAhIZWxzaW5raTERMA8GA1UEBwwISGVs
|
||||
c2lua2kxEDAOBgNVBAoMB01hcmlhREIwHhcNMTUwNDI1MTQ1NTE2WhcNMzUwNDIw
|
||||
MTQ1NTE2WjBYMQswCQYDVQQGEwJGSTERMA8GA1UECAwISGVsc2lua2kxETAPBgNV
|
||||
BAcMCEhlbHNpbmtpMRAwDgYDVQQKDAdNYXJpYURCMREwDwYDVQQDDAhzZXJ2ZXI4
|
||||
azCCBCIwDQYJKoZIhvcNAQEBBQADggQPADCCBAoCggQBAOYkeT06WGoSHBNqQ9nB
|
||||
ZexVwU99/PKmVqWrxUgszpydRz2Uk9U7o9AJqI/gSzagla4trX+io8X2h4BMaiYV
|
||||
R3MgR+H4X0m3EyD3Mp/bfWJBG2Ame0EmFgySIu+0LrPbkOkJyv4aG+TzeGl9ym7F
|
||||
OUtGcglRCEB4jgQqI8vVUM+W3VZDEBvScSiPEKnkRBw5igan+jdIvVrdN396AM+E
|
||||
ikijdaVn+3tHLSYALmXtY063lBg/Wgh0VOWv3YYbNJtM3v7YaT1ykMdcg4J46qsG
|
||||
1PEGIK39JLvplODGMvXfr7QUTZzODWI6OisR+Z7XjmMrVzUQftVEZIxhm0746KX7
|
||||
R7uFM+rG4D3iLOhB4RXip0Uj39D5kwGXiZV3TdXUwdthyuKENpwBmzPsU4Mv3dfY
|
||||
IMBrSnOS0mwipqJoRouqP6r+R7eYcP26WYivnw3Xy6BCRPnwVDnBzfu05MbWfh31
|
||||
7bkaD9fmoquiJR9s+auc2KO52jJyUW1h8Tt9Bis9Q9VSH8tiFFNpTZESIvBV+fxP
|
||||
3u7j/P1AV1DrDnpFzFIPJG9FAnJrbZCUHNT7NPZLTSUXb99KZPitHm7frWyzHRrm
|
||||
Dll7+KcTd3iFvz98EtSONP8BkANChWDkmdYZMkZB6FDKKgNhzcVo9JIPbkiJQZ5T
|
||||
vEFi7UqSZLXLPVVs2YeHmqv8IlBmkiu515477YDj+hlpOIe2JTrbtdDygE2vbX2S
|
||||
kN6q376AJhxp7nrjRcmkTmrgVl8fYUQ/YjTJHiFf9n9owG6/0jUeU5nk4b1kpEk8
|
||||
w8626Kk9J1Tq8T6h/Hu/jXFgkMVmJIXefUcfYoPiY44QXBTN0H6GRE3fBRBDuDyH
|
||||
ZGns6vtJmsZ2wY/qSZgK05evZO/aX6lXA+OgFdhoxUDYew8mDV/wvlpM/a+evy0x
|
||||
QHEl3tBzGS2upst88LikqVxQgEFO3PcgpKZmZfuS0UMtvzCyDdubo6woCMSBmQwN
|
||||
Remp5WzavxC7pz5aX7eTSiAVKWl0eNHrU6iIScveDOKbMeIvVpXPVZKjjqnvaMsA
|
||||
EdRxBkvliQy25ysvmGUhjiqjhnO7G3bhlALYoVGXFWCiOdX93Ki+MBJEsUkLlILP
|
||||
X5NhHDzrBVukF+4wzXzbP+55AtoUIJj9mgrxOchZW06jrfgE5gu2gX5BAK/3N+xu
|
||||
vCijPXa2/emIxx54eSdiooM0FWG45MOs9X8+Tl9fMVvokRuAXst0suWjitVaifpj
|
||||
8f9nvVnQcHe3dbU0dD0umUYLS8RkL5NI/keSagtCXu/JBmSEYIkrhB8xDTYVTmvN
|
||||
FPeg0bK4/1P1qrntY1B6b2Lnx3+89eIM+CikDbp10LjHm+OUYmYc2GwCLqWiYlD+
|
||||
zzECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBH
|
||||
ZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFLOpAATHnCvNwF/RKFxcxh8m
|
||||
9xdaMB8GA1UdIwQYMBaAFMcsAZUa9T7NBKYkNTUE2acWASp5MA0GCSqGSIb3DQEB
|
||||
BQUAA4IBAQABQyzVHbU2BTHKsvOecc5i/rLl4y0wI5lRPVDu1s526EONXZ0om0OQ
|
||||
DNQkVDxTPBiS7JOGh3rWf107Vs2dlnoGyBYZi+3IIc8VufsGfctcRpzFLo7edyHl
|
||||
nTWVAMet0lc2ZRpDbO51raLYwGDVB9dcXY6ur0rm+moTeJi4Ecfc0qfdKbV2+u8T
|
||||
Yl+aDeKHagQ8X3JE0NB6cMYJK7+SkW30LlPztMUjYdaHwTDv/pJvl3jy6jz/6FQ6
|
||||
n0msqStGw3ax+esxo09AWBaQd7Y9b4WVEqnKcAqazWFGJ4TOnjNUj5pBbU0RvRR/
|
||||
/zLpBrw2OBFcD+mlWg9cfPr1c1tMR/Ly
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,99 +1,99 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
155
mysql-test/suite/binlog/r/binlog_commit_wait.result
Normal file
155
mysql-test/suite/binlog/r/binlog_commit_wait.result
Normal file
@ -0,0 +1,155 @@
|
||||
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
|
||||
SET @old_count= @@GLOBAL.binlog_commit_wait_count;
|
||||
SET GLOBAL binlog_commit_wait_count= 3;
|
||||
SET @old_usec= @@GLOBAL.binlog_commit_wait_usec;
|
||||
SET GLOBAL binlog_commit_wait_usec= 20000000;
|
||||
SELECT variable_value INTO @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
SELECT variable_value INTO @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
SELECT variable_value INTO @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
SELECT variable_value INTO @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
SET @a= current_timestamp();
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES (1,0);
|
||||
COMMIT;
|
||||
INSERT INTO t1 VALUES (1,1);
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"));
|
||||
IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"))
|
||||
Ok
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
variable_value - @group_commits
|
||||
1
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
variable_value - @group_commit_trigger_count
|
||||
0
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
variable_value - @group_commit_trigger_timeout
|
||||
0
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
variable_value - @group_commit_trigger_lock_wait
|
||||
1
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
SET @a= current_timestamp();
|
||||
INSERT INTO t1 VALUES (2,0);
|
||||
INSERT INTO t1 VALUES (3,0);
|
||||
INSERT INTO t1 VALUES (4,0);
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"));
|
||||
IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"))
|
||||
Ok
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
variable_value - @group_commits
|
||||
2
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
variable_value - @group_commit_trigger_count
|
||||
1
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
variable_value - @group_commit_trigger_timeout
|
||||
0
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
variable_value - @group_commit_trigger_lock_wait
|
||||
1
|
||||
SET @a= current_timestamp();
|
||||
INSERT INTO t1 VALUES (6,0);
|
||||
BEGIN;
|
||||
UPDATE t1 SET b=b+1 WHERE a=1;
|
||||
UPDATE t1 SET b=b+10 WHERE a=1;
|
||||
SELECT SLEEP(0.25);
|
||||
SLEEP(0.25)
|
||||
0
|
||||
UPDATE t1 SET b=b+1 WHERE a=3;
|
||||
COMMIT;
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"));
|
||||
IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"))
|
||||
Ok
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
variable_value - @group_commits
|
||||
3
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
variable_value - @group_commit_trigger_count
|
||||
1
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
variable_value - @group_commit_trigger_timeout
|
||||
0
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
variable_value - @group_commit_trigger_lock_wait
|
||||
2
|
||||
SET @a= current_timestamp();
|
||||
INSERT INTO t1 VALUES (7,0);
|
||||
INSERT INTO t1 VALUES (8,0);
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"));
|
||||
IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"))
|
||||
Ok
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
variable_value - @group_commits
|
||||
4
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
variable_value - @group_commit_trigger_count
|
||||
2
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
variable_value - @group_commit_trigger_timeout
|
||||
0
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
variable_value - @group_commit_trigger_lock_wait
|
||||
2
|
||||
SET @a= current_timestamp();
|
||||
SET GLOBAL binlog_commit_wait_usec= 5*1000*1000;
|
||||
INSERT INTO t1 VALUES (9,0);
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 4, CONCAT("Error: too little time elapsed: ", @b, " seconds < 4"),
|
||||
IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")));
|
||||
IF(@b < 4, CONCAT("Error: too little time elapsed: ", @b, " seconds < 4"),
|
||||
IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")))
|
||||
Ok
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
variable_value - @group_commits
|
||||
5
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
variable_value - @group_commit_trigger_count
|
||||
2
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
variable_value - @group_commit_trigger_timeout
|
||||
1
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
variable_value - @group_commit_trigger_lock_wait
|
||||
2
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a b
|
||||
1 11
|
||||
2 0
|
||||
3 1
|
||||
4 0
|
||||
6 0
|
||||
7 0
|
||||
8 0
|
||||
9 0
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL binlog_commit_wait_count= @old_count;
|
||||
SET GLOBAL binlog_commit_wait_usec= @old_usec;
|
@ -0,0 +1,8 @@
|
||||
create table t1 (i int);
|
||||
create trigger tr after insert on t1 for each row set @b=@a;
|
||||
create temporary table tmp like t1;
|
||||
insert into t1 values (1);
|
||||
select * from t1;
|
||||
i
|
||||
1
|
||||
drop table t1;
|
229
mysql-test/suite/binlog/t/binlog_commit_wait.test
Normal file
229
mysql-test/suite/binlog/t/binlog_commit_wait.test
Normal file
@ -0,0 +1,229 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_log_bin.inc
|
||||
|
||||
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
|
||||
|
||||
SET @old_count= @@GLOBAL.binlog_commit_wait_count;
|
||||
SET GLOBAL binlog_commit_wait_count= 3;
|
||||
SET @old_usec= @@GLOBAL.binlog_commit_wait_usec;
|
||||
SET GLOBAL binlog_commit_wait_usec= 20000000;
|
||||
|
||||
connect(con1,localhost,root,,test);
|
||||
connect(con2,localhost,root,,test);
|
||||
connect(con3,localhost,root,,test);
|
||||
|
||||
# Get Initial status measurements
|
||||
--connection default
|
||||
SELECT variable_value INTO @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
SELECT variable_value INTO @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
SELECT variable_value INTO @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
SELECT variable_value INTO @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
|
||||
# Note: binlog_group_commits is counted at the start of the group and group_commit_trigger_* is
|
||||
# counted near when the groups its finalised.
|
||||
|
||||
# Check that if T2 goes to wait for a row lock of T1 while T1 is waiting for
|
||||
# more transactions to arrive for group commit, the commit of T1 will complete
|
||||
# immediately.
|
||||
# We test this by setting a very high timeout (20 seconds), and testing that
|
||||
# that much time does not elapse.
|
||||
|
||||
--connection default
|
||||
SET @a= current_timestamp();
|
||||
|
||||
--connection con1
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES (1,0);
|
||||
send COMMIT;
|
||||
|
||||
--connection con2
|
||||
send INSERT INTO t1 VALUES (1,1);
|
||||
|
||||
--connection con1
|
||||
reap;
|
||||
|
||||
--connection default
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"));
|
||||
|
||||
# All connections are to the same server. One transaction occurs on con1. It is
|
||||
# commited before con2 is started. con2 transaction violates the unique key contraint. This
|
||||
# type of group commit is binlog_group_commit_trigger_lock_wait so that further con2
|
||||
# transactions will occur afterwards as they may be as result of the ER_DUP_ENTRY on the
|
||||
# application side.
|
||||
# before: binlog_group_commit=0, binlog_group_commit_trigger_count=0
|
||||
# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=0
|
||||
# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_lock_wait+1
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
|
||||
--connection con2
|
||||
--error ER_DUP_ENTRY
|
||||
reap;
|
||||
|
||||
|
||||
# Test that the commit triggers when sufficient commits have queued up.
|
||||
--connection default
|
||||
SET @a= current_timestamp();
|
||||
|
||||
--connection con1
|
||||
send INSERT INTO t1 VALUES (2,0);
|
||||
|
||||
--connection con2
|
||||
send INSERT INTO t1 VALUES (3,0);
|
||||
|
||||
--connection con3
|
||||
INSERT INTO t1 VALUES (4,0);
|
||||
|
||||
--connection con1
|
||||
reap;
|
||||
--connection con2
|
||||
reap;
|
||||
|
||||
--connection default
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"));
|
||||
|
||||
# All connections are to the same server. 3 non-conflicting transaction occur
|
||||
# on each connection. The binlog_commit_wait_count=3 at the start therefore 1
|
||||
# group is committed by virtue of reaching 3 transactions. Hence
|
||||
# binlog_group_commit_trigger_count is incremented.
|
||||
# before: binlog_group_commit=1, binlog_group_commit_trigger_count=0
|
||||
# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=1
|
||||
# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_count+1
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
|
||||
# Test that commit triggers immediately if there is already a transaction
|
||||
# waiting on another transaction that reaches its commit.
|
||||
|
||||
--connection default
|
||||
SET @a= current_timestamp();
|
||||
|
||||
--connection con1
|
||||
send INSERT INTO t1 VALUES (6,0);
|
||||
|
||||
--connection con2
|
||||
BEGIN;
|
||||
UPDATE t1 SET b=b+1 WHERE a=1;
|
||||
|
||||
--connection con3
|
||||
send UPDATE t1 SET b=b+10 WHERE a=1;
|
||||
|
||||
--connection con2
|
||||
# A small sleep to let con3 have time to wait on con2.
|
||||
# The sleep might be too small on loaded host, but that is not a big problem;
|
||||
# it only means we will trigger a different code path (con3 waits after con2
|
||||
# is ready to commit rather than before); and either path should work the same.
|
||||
# So we will not get false positive in case of different timing; at worst false
|
||||
# negative.
|
||||
SELECT SLEEP(0.25);
|
||||
UPDATE t1 SET b=b+1 WHERE a=3;
|
||||
COMMIT;
|
||||
|
||||
--connection con1
|
||||
reap;
|
||||
|
||||
--connection default
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"));
|
||||
|
||||
# All connections are to the same server. con2 and con3 updates are aquiring
|
||||
# the same row lock for a=1. Either con2 or con3 will be in a lock wait
|
||||
# thefore the binlog_group_commit_trigger_lock_wait is incremented.
|
||||
# before: binlog_group_commit=2, binlog_group_commit_trigger_count=1
|
||||
# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=1
|
||||
# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_lock_wait+1
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
|
||||
--connection default
|
||||
SET @a= current_timestamp();
|
||||
|
||||
# Now con3 will be waiting for a following group commit to trigger.
|
||||
--connection con1
|
||||
send INSERT INTO t1 VALUES (7,0);
|
||||
--connection con2
|
||||
INSERT INTO t1 VALUES (8,0);
|
||||
--connection con3
|
||||
reap;
|
||||
|
||||
--connection default
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"));
|
||||
|
||||
# The con1 and con2 transactions above are combined with the 'send UPDATE t1 SET b=b+10 WHERE a=1;'
|
||||
# on con3 from the previous block. So we have 3 so this is a count based group.
|
||||
# before: binlog_group_commit=3, binlog_group_commit_trigger_count=1
|
||||
# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=2
|
||||
# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_count+1
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
|
||||
# Test that when the binlog_commit_wait_usec is reached the tranction gets a group commit
|
||||
|
||||
--connection default
|
||||
SET @a= current_timestamp();
|
||||
SET GLOBAL binlog_commit_wait_usec= 5*1000*1000;
|
||||
|
||||
--connection con1
|
||||
reap;
|
||||
INSERT INTO t1 VALUES (9,0);
|
||||
|
||||
--connection default
|
||||
SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a);
|
||||
SELECT IF(@b < 4, CONCAT("Error: too little time elapsed: ", @b, " seconds < 4"),
|
||||
IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")));
|
||||
|
||||
# con1 pushes 1 transaction. The count was for 3 to occur before a group commit.
|
||||
# The timeout is 5 seconds but we allow between 4 and 20 because of the fragile nature
|
||||
# of time in test. This is a timeout causing the commit so binlog_group_commit_trigger_timeout
|
||||
# is incremented.
|
||||
# before: binlog_group_commit=4, binlog_group_commit_trigger_count=2
|
||||
# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=2
|
||||
# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_timeout+1
|
||||
SELECT variable_value - @group_commits FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commits';
|
||||
SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_count';
|
||||
SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_timeout';
|
||||
SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status
|
||||
WHERE variable_name = 'binlog_group_commit_trigger_lock_wait';
|
||||
|
||||
--connection default
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
|
||||
--connection default
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL binlog_commit_wait_count= @old_count;
|
||||
SET GLOBAL binlog_commit_wait_usec= @old_usec;
|
@ -0,0 +1,17 @@
|
||||
#
|
||||
# MDEV-7938 MariaDB Crashes Suddenly while writing binlogs
|
||||
#
|
||||
--source include/have_log_bin.inc
|
||||
--source include/have_binlog_format_mixed.inc
|
||||
|
||||
--connect(con1,localhost,root,,)
|
||||
create table t1 (i int);
|
||||
create trigger tr after insert on t1 for each row set @b=@a;
|
||||
|
||||
create temporary table tmp like t1;
|
||||
insert into t1 values (1);
|
||||
--disconnect con1
|
||||
|
||||
--connection default
|
||||
select * from t1;
|
||||
drop table t1;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user