Commit e27c3386 authored by Sergei Golubchik's avatar Sergei Golubchik

5.5.38 merge

parents 2a590514 6d75570e
......@@ -61,6 +61,7 @@ IF(UNIX AND NOT APPLE)
# Compiling with PIC speeds up embedded build, on PIC sensitive systems
# Predefine it to OFF in release builds, because of the performance penalty
SET(WITH_PIC ${WITH_PIC_DEFAULT} CACHE BOOL "Compile with PIC.")
MARK_AS_ADVANCED(WITH_PIC)
ENDIF()
# Optionally set project name, e.g.
......@@ -265,6 +266,10 @@ IF (ENABLE_GCOV AND NOT WIN32 AND NOT APPLE)
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage -lgcov")
ENDIF()
MY_CHECK_C_COMPILER_FLAG(-ggdb3 HAVE_GGDB3)
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb3")
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb3")
OPTION(ENABLED_LOCAL_INFILE
"If we should should enable LOAD DATA LOCAL by default" ${IF_WIN})
MARK_AS_ADVANCED(ENABLED_LOCAL_INFILE)
......@@ -477,7 +482,7 @@ ADD_CUSTOM_TARGET(INFO_BIN ALL
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
INSTALL_DOCUMENTATION(README TODO CREDITS COPYING COPYING.LESSER
INSTALL_DOCUMENTATION(README CREDITS COPYING COPYING.LESSER EXCEPTIONS-CLIENT
COMPONENT Readme)
INSTALL_DOCUMENTATION(${CMAKE_BINARY_DIR}/Docs/INFO_SRC
${CMAKE_BINARY_DIR}/Docs/INFO_BIN)
......
FOSS License Exception
http://www.mysql.com/about/legal/licensing/foss-exception/
Updated February 23, 2012
What is the FOSS License Exception?
Oracle's Free and Open Source Software ("FOSS") License Exception
(formerly known as the FLOSS License Exception) allows developers of FOSS
applications to include Oracle's MySQL Client Libraries (also referred to
as "MySQL Drivers" or "MySQL Connectors") with their FOSS applications.
MySQL Client Libraries are typically licensed pursuant to version 2 of the
General Public License ("GPL"), but this exception permits distribution of
certain MySQL Client Libraries with a developer's FOSS applications
licensed under the terms of another FOSS license listed below, even though
such other FOSS license may be incompatible with the GPL.
The following terms and conditions describe the circumstances under which
Oracle's FOSS License Exception applies.
Oracle's FOSS License Exception Terms and Conditions
1. Definitions. "Derivative Work" means a derivative work, as defined
under applicable copyright law, formed entirely from the Program and
one or more FOSS Applications.
"FOSS Application" means a free and open source software application
distributed subject to a license listed in the section below titled
"FOSS License List."
"FOSS Notice" means a notice placed by Oracle or MySQL in a copy of
the MySQL Client Libraries stating that such copy of the MySQL Client
Libraries may be distributed under Oracle's or MySQL's FOSS (or FLOSS)
License Exception.
"Independent Work" means portions of the Derivative Work that are not
derived from the Program and can reasonably be considered independent
and separate works.
"Program" means a copy of Oracle's MySQL Client Libraries that
contains a FOSS Notice.
2. A FOSS application developer ("you" or "your") may distribute a
Derivative Work provided that you and the Derivative Work meet all of
the following conditions:
a. You obey the GPL in all respects for the Program and all portions
(including modifications) of the Program included in the
Derivative Work (provided that this condition does not apply to
Independent Works);
b. The Derivative Work does not include any work licensed under the
GPL other than the Program;
c. You distribute Independent Works subject to a license listed in
the section below titled "FOSS License List";
d. You distribute Independent Works in object code or executable
form with the complete corresponding machine-readable source code
on the same medium and under the same FOSS license applying to
the object code or executable forms;
e. All works that are aggregated with the Program or the Derivative
Work on a medium or volume of storage are not derivative works of
the Program, Derivative Work or FOSS Application, and must
reasonably be considered independent and separate works.
3. Oracle reserves all rights not expressly granted in these terms and
conditions. If all of the above conditions are not met, then this FOSS
License Exception does not apply to you or your Derivative Work.
FOSS License List
+------------------------------------------------------------------------+
|License Name |Version(s)/Copyright Date|
|----------------------------------------------+-------------------------|
|Academic Free License |2.0 |
|----------------------------------------------+-------------------------|
|Apache Software License |1.0/1.1/2.0 |
|----------------------------------------------+-------------------------|
|Apple Public Source License |2.0 |
|----------------------------------------------+-------------------------|
|Artistic license |From Perl 5.8.0 |
|----------------------------------------------+-------------------------|
|BSD license |"July 22 1999" |
|----------------------------------------------+-------------------------|
|Common Development and Distribution License |1.0 |
|(CDDL) | |
|----------------------------------------------+-------------------------|
|Common Public License |1.0 |
|----------------------------------------------+-------------------------|
|Eclipse Public License |1.0 |
|----------------------------------------------+-------------------------|
|European Union Public License (EUPL)¹ |1.1 |
|----------------------------------------------+-------------------------|
|GNU Affero General Public License (AGPL) |3.0 |
|----------------------------------------------+-------------------------|
|GNU Library or "Lesser" General Public License|2.0/2.1/3.0 |
|(LGPL) | |
|----------------------------------------------+-------------------------|
|GNU General Public License (GPL) |3.0 |
|----------------------------------------------+-------------------------|
|IBM Public License |1.0 |
|----------------------------------------------+-------------------------|
|Jabber Open Source License |1.0 |
|----------------------------------------------+-------------------------|
|MIT License (As listed in file |- |
|MIT-License.txt) | |
|----------------------------------------------+-------------------------|
|Mozilla Public License (MPL) |1.0/1.1 |
|----------------------------------------------+-------------------------|
|Open Software License |2.0 |
|----------------------------------------------+-------------------------|
|OpenSSL license (with original SSLeay license)|"2003" ("1998") |
|----------------------------------------------+-------------------------|
|PHP License |3.0/3.01 |
|----------------------------------------------+-------------------------|
|Python license (CNRI Python License) |- |
|----------------------------------------------+-------------------------|
|Python Software Foundation License |2.1.1 |
|----------------------------------------------+-------------------------|
|Sleepycat License |"1999" |
|----------------------------------------------+-------------------------|
|University of Illinois/NCSA Open Source |- |
|License | |
|----------------------------------------------+-------------------------|
|W3C License |"2001" |
|----------------------------------------------+-------------------------|
|X11 License |"2001" |
|----------------------------------------------+-------------------------|
|Zlib/libpng License |- |
|----------------------------------------------+-------------------------|
|Zope Public License |2.0 |
+------------------------------------------------------------------------+
¹) When an Independent Work is licensed under a "Compatible License"
pursuant to the EUPL, the Compatible License rather than the EUPL is the
applicable license for purposes of these FOSS License Exception Terms and
Conditions.
......@@ -949,9 +949,13 @@ static int do_read_query_result(struct st_connection *cn)
{
DBUG_ASSERT(cn->has_thread);
wait_query_thread_done(cn);
if (cn->result)
goto exit_func;
signal_connection_thd(cn, EMB_READ_QUERY_RESULT);
wait_query_thread_done(cn);
exit_func:
return cn->result;
}
......
......@@ -370,4 +370,5 @@ SET(HAVE_SYS_UTSNAME_H CACHE INTERNAL "")
SET(HAVE_PTHREAD_ATTR_GETGUARDSIZE CACHE INTERNAL "")
SET(HAVE_UCONTEXT_H CACHE INTERNAL "")
SET(HAVE_SOCKPEERCRED CACHE INTERNAL "")
ENDIF()
SET(HAVE_GGDB3 CACHE INTERNAL "")
ENDIF(MSVC)
......@@ -30,6 +30,8 @@ TARGET_LINK_LIBRARIES(factorial dbug)
IF(NOT WIN32 AND NOT CMAKE_GENERATOR MATCHES Xcode)
FIND_PROGRAM(GROFF groff)
FIND_PROGRAM(NROFF nroff)
MARK_AS_ADVANCED(GROFF)
MARK_AS_ADVANCED(NROFF)
SET(OUTPUT_INC output1.r output2.r output3.r output4.r output5.r)
SET(SOURCE_INC factorial.r main.r example1.r example2.r example3.r)
ADD_CUSTOM_COMMAND(OUTPUT ${OUTPUT_INC}
......
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
msql2mysql \- MySQL importer for msql style data.
.SH SYNOPSIS
msql2mysql [options]
.SH DESCRIPTION
This program imports old msql database files.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
my_print_defaults \- MySQL helper script that prints defaults.
.SH SYNOPSIS
my_print_defaults [options]
.SH DESCRIPTION
Prints all arguments that is give to some program using the default files.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisam_ftdump \- Dumps full text tables.
.SH SYNOPSIS
myisam_ftdump [options]
.SH DESCRIPTION
Dumps information and contents of full text tables.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisamchk \- Checks MySQL myisam type databases.
.SH SYNOPSIS
myisamchk [options]
.SH DESCRIPTION
Description, check and repair of ISAM tables.
Used without options all tables on the command will be checked for errors
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisamlog \- MySQL helper script.
.SH SYNOPSIS
myisamlog [options]
.SH DESCRIPTION
Function unknown. Mail to ch@debian.org.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisampack \- Compresses MySQL database files.
.SH SYNOPSIS
myisampack [options]
.SH DESCRIPTION
Pack a MyISAM-table to take much less space.
Keys are not updated, you must run myisamchk -rq on the datafile
afterwards to update the keys.
You should give the .MYI file as the filename argument.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlconfig \- MySQL compile settings.
.SH SYNOPSIS
mysqlconfig [options]
.SH DESCRIPTION
This program is only useful for people who want to compile agains
libmysqlclient.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_convert_table_format \- MySQL table converter.
.SH SYNOPSIS
mysql_convert_table_format [options]
.SH DESCRIPTION
Conversion of a MySQL tables to other table types.
If no tables has been specifed, all tables in the database will be converted.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_find_rows \- MySQL shell skript for searching in update logs.
.SH SYNOPSIS
mysql_find_rows [options]
.SH DESCRIPTION
Prints all SQL queries that matches a regexp or contains a 'use
database' or 'set ..' command to stdout. A SQL query may contain
newlines. This is useful to find things in a MySQL update log.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_fix_extensions \- Corrects MySQL database file names.
.SH SYNOPSIS
mysql_fix_extensions <datadir>
.SH DESCRIPTION
Makes .frm lowercase and .MYI/MYD/ISM/ISD uppercase
useful when datafiles are copied from windows.
Does not work with RAID, with InnoDB or BDB tables.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (8)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_install_db \- MySQL helper program.
.SH SYNOPSIS
mysql_install_db [options]
.SH DESCRIPTION
This program is normally not needed by any user.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_secure_installation \- Secures the MySQL access control lists.
.SH SYNOPSIS
mysql_secure_installation [options]
.SH DESCRIPTION
This interactive programm suggests changes like removing anonymous users that
are supposed to make your installation more secure.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (8)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_setpermission \- Adds MySQL users or changes passwords.
.SH SYNOPSIS
mysql_setpermission [options]
.SH DESCRIPTION
The permission setter is a little program which can help you add users
or databases or change passwords in MySQL. Keep in mind that we don't
check permissions which already been set in MySQL. So if you can't
connect to MySQL using the permission you just added, take a look at
the permissions which have already been set in MySQL.
The permission setter first reads your .my.cnf file in your Home
directory if it exists.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
This diff is collapsed.
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysql_waitpid \- Waits a specified amount of seconds for a PID to terminate.
.SH SYNOPSIS
mysql_waitpid [options] <pid> <seconds>
.SH DESCRIPTION
Description: Waits for a program, which program id is #pid, to
terminate within #time seconds. If the program terminates within
this time, or if the #pid no longer exists, value 0 is returned.
Otherwise 1 is returned. Both #pid and #time must be positive
integer arguments.
See mysql_waitpid for options.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlbinlog \- Dumps MySQL binary logs.
.SH SYNOPSIS
mysqlbinlog [options]
.SH DESCRIPTION
Dumps a MySQL binary log in a format usable for viewing or for pipeing to
the mysql command line client
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlbug \- MySQL bug reporting tool.
.SH SYNOPSIS
mysqlbug [options]
.SH DESCRIPTION
Interactive bug reporting tool. Use reportbug on Debian systems.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlcheck \- MySQL program for repairing, checking and optimizing tables.
.SH SYNOPSIS
mysqlcheck | mysqlanalyze | mysqloptimize [options]
.SH DESCRIPTION
This program can be used to CHECK (-c,-m,-C), REPAIR (-r), ANALYZE (-a)
or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be
used same time. It works on MyISAM and in some cases on BDB tables.
Please consult the MySQL manual for latest information about the
above. The options -c,-r,-a and -o are exclusive to each other, which
means that the last option will be used, if several was specified.
The option -c will be used by default, if none was specified. You
can change the default behavior by making a symbolic link, or
copying this file somewhere with another name, the alternatives are:
mysqlrepair: The default option will be -r
mysqlanalyze: The default option will be -a
mysqloptimize: The default option will be -o
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (8)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqldumpslow \- Parse and summarize the MySQL slow query log.
.SH SYNOPSIS
mysqldumpslow [options]
.SH DESCRIPTION
This program parses and summarizes a 'slow query log'.
.TP
\fB\-v\fR
verbose
.TP
\fB\-d\fR
debug
.TP
\fB\-s=WORD\fR
what to sort by (t, at, l, al, r, ar etc)
.TP
\fB\-r\fR
reverse the sort order (largest last instead of first)
.TP
\fB\-t=NUMBER\fR
just show the top n queries
.TP
\fB\-a\fR
don't abstract all numbers to N and strings to 'S'
.TP
\fB\-n=NUMBER\fR
abstract numbers with at least n digits within names
.TP
\fB\-g=WORD\fR
grep: only consider stmts that include this string
.TP
\fB\-h=WORD\fR
hostname of db server for *-slow.log filename (can be wildcard)
.TP
\fB\-i=WORD\fR
name of server instance (if using mysql.server startup script)
.TP
\fB\-l\fR
don't subtract lock time from total time
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org> based on
the commends in the code.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqlimport \- Imports text files with MySQL database queries.
.SH SYNOPSIS
mysqlimport [options]
.SH DESCRIPTION
Loads tables from text files in various formats. The base name of the
text file must be the name of the table that should be used.
If one uses sockets to connect to the MySQL server, the server will open and
read the text file directly. In other cases the client will open the text
file. The SQL command 'LOAD DATA INFILE' is used to import the rows.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
mysqltest \- Regressiontest program for MySQL.
.SH SYNOPSIS
mysqltest [options]
.SH DESCRIPTION
Runs a test against the mysql server and compares output with a results file.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
myisampack \- Compresses MySQL database files.
.SH SYNOPSIS
myisampack [options]
.SH DESCRIPTION
Pack a ISAM-table to take much smaller space
Keys are not updated, so you must run isamchk -rq on any table
that has keys after you have compressed it
You should give the .ISM file as the filename argument
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
resolve_stack_dump \- MySQL helper program for reporting bugs.
.SH SYNOPSIS
resolve_stack_dump [options]
.SH DESCRIPTION
Resolve numeric stack strace dump into symbols.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
.TH mysql 1 "17 March 2003" "MySQL 3.23" "MySQL database"
.SH NAME
resolveip \- MySQL helper program to retrive IP addresses.
.SH SYNOPSIS
resolveip [options]
.SH DESCRIPTION
Get hostname based on IP-address or IP-address based on hostname.
For more information start the program with '--help'.
.SH "SEE ALSO"
mysql (1), mysqld (1)
.SH AUTHOR
This manpage was written by Christian Hammers <ch@debian.org>.
MySQL is available at http://www.mysql.com/.
.\" end of man page
......@@ -64,7 +64,7 @@ ifneq ($(ARCH_OS),hurd)
endif
( test -d $(builddir) || mkdir $(builddir) ) && cd $(builddir) && \
sh -c 'PATH=$${MYSQL_BUILD_PATH:-"/bin:/usr/bin:/usr/local/bin"} \
sh -c 'PATH=$${MYSQL_BUILD_PATH:-"/usr/local/bin:/usr/bin:/bin"} \
CC=$${MYSQL_BUILD_CC:-gcc} \
CFLAGS=$${MYSQL_BUILD_CFLAGS:-"-O2 -fno-omit-frame-pointer -g -pipe -Wall -Wno-uninitialized $$(case `lsb_release -sc` in (lenny) echo -DWORKAROUND_GCC_4_3_2_BUG ;; esac)"} \
CXX=$${MYSQL_BUILD_CXX:-g++} \
......
......@@ -64,7 +64,7 @@ ifneq ($(ARCH_OS),hurd)
endif
( test -d $(builddir) || mkdir $(builddir) ) && cd $(builddir) && \
sh -c 'PATH=$${MYSQL_BUILD_PATH:-"/bin:/usr/bin:/usr/local/bin"} \
sh -c 'PATH=$${MYSQL_BUILD_PATH:-"/usr/local/bin:/usr/bin:/bin"} \
CC=$${MYSQL_BUILD_CC:-gcc} \
CFLAGS=$${MYSQL_BUILD_CFLAGS:-"-O2 -fno-omit-frame-pointer -g -pipe -Wall -Wno-uninitialized"} \
CXX=$${MYSQL_BUILD_CXX:-g++} \
......
......@@ -22,10 +22,7 @@ usr/share/man/man1/mysqldumpslow.1
usr/share/man/man1/mysql_find_rows.1
usr/share/man/man1/mysql_fix_extensions.1
usr/share/man/man1/mysqlimport.1
usr/share/man/man1/mysqlman.1
usr/share/man/man1/mysqlreport.1
usr/share/man/man1/mysqlshow.1
usr/share/man/man1/mysqlslap.1
usr/share/man/man1/mysql_tableinfo.1
usr/share/man/man1/mysql_waitpid.1
usr/share/man/man8/mysqlmanager.8
usr/bin/mysqlcheck usr/bin/mysqlrepair
usr/bin/mysqlcheck usr/bin/mysqlanalyze
usr/bin/mysqlcheck usr/bin/mysqloptimize
usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mysqlrepair.1.gz
usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mysqlanalyze.1.gz
usr/share/man/man1/mysqlcheck.1.gz usr/share/man/man1/mysqloptimize.1.gz
#ifndef ERRMSG_INCLUDED
#define ERRMSG_INCLUDED
/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -36,7 +36,9 @@ extern const char *client_errors[]; /* Error messages */
#define CR_MIN_ERROR 2000 /* For easier client code */
#define CR_MAX_ERROR 2999
#if !defined(ER)
#define ER(X) client_errors[(X)-CR_MIN_ERROR]
#define ER(X) (((X) >= CR_ERROR_FIRST && (X) <= CR_ERROR_LAST)? \
client_errors[(X)-CR_ERROR_FIRST]: client_errors[CR_UNKNOWN_ERROR])
#endif
#define CLIENT_ERRMAP 2 /* Errormap used by my_error() */
......
......@@ -125,7 +125,7 @@ longlong double_to_datetime(double nr, MYSQL_TIME *ltime, uint flags, int *cut)
ltime, flags, cut);
}
int number_to_time(my_bool neg, longlong nr, ulong sec_part,
int number_to_time(my_bool neg, ulonglong nr, ulong sec_part,
MYSQL_TIME *ltime, int *was_cut);
ulonglong TIME_to_ulonglong_datetime(const MYSQL_TIME *);
ulonglong TIME_to_ulonglong_date(const MYSQL_TIME *);
......
......@@ -138,6 +138,7 @@ my_print_help
)
SET(CLIENT_API_FUNCTIONS_5_5
my_progname
mysql_stmt_next_result
# Charsets
my_charset_bin
......
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -107,6 +107,8 @@ const char** get_client_errmsgs()
void init_client_errs(void)
{
compile_time_assert(array_elements(client_errors) ==
(CR_ERROR_LAST - CR_ERROR_FIRST + 2));
(void) my_error_register(get_client_errmsgs, CR_ERROR_FIRST, CR_ERROR_LAST);
}
......
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates
Copyright (c) 2009, 2013, Monty Program Ab
/* Copyright (c) 2000, 2014, Oracle and/or its affiliates.
Copyright (c) 2009, 2014, SkySQL Ab.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -1340,6 +1340,10 @@ static my_bool my_realloc_str(NET *net, ulong length)
res= net_realloc(net, buf_length + length);
if (res)
{
if (net->last_errno == ER_OUT_OF_RESOURCES)
net->last_errno= CR_OUT_OF_MEMORY;
else if (net->last_errno == ER_NET_PACKET_TOO_LARGE)
net->last_errno= CR_NET_PACKET_TOO_LARGE;
strmov(net->sqlstate, unknown_sqlstate);
strmov(net->last_error, ER(net->last_errno));
}
......
......@@ -16,13 +16,13 @@
SET(MAN1_SERVER innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1
myisamlog.1 myisampack.1 mysql.server.1
mysql_convert_table_format.1 mysql_fix_extensions.1
mysql_fix_privilege_tables.1 mysql_install_db.1
mysql_install_db.1
mysql_secure_installation.1 mysql_setpermission.1
mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_zap.1
mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1
mysqlman.1 mysqltest.1 perror.1 replace.1 resolve_stack_dump.1
mysqltest.1 perror.1 replace.1 resolve_stack_dump.1
resolveip.1 mysqlbug.1)
SET(MAN8_SERVER mysqld.8 mysqlmanager.8)
SET(MAN8_SERVER mysqld.8)
SET(MAN1_CLIENT msql2mysql.1 mysql.1 mysql_find_rows.1 mysql_waitpid.1
mysqlaccess.1 mysqladmin.1 mysqlbinlog.1 mysqlcheck.1
mysqldump.1 mysqlimport.1 mysqlshow.1 mysqlslap.1
......
.TH ARIA_CHK "1" "May 2014" "aria_chk Ver 1.2" "User Commands"
.SH NAME
aria_chk \- Aria table\-maintenance utility
.SH SYNOPSIS
.B aria_chk
[\fIOPTIONS\fR] \fItables\fR[\fI.MAI\fR]
.SH DESCRIPTION
Describe, check and repair of Aria tables.
Used without options all tables on the command will be checked for errors
.SS "Global options"
.TP
\fB\-#\fR, \fB\-\-debug=\fR...
Output debug log. Often this is 'd:t:o,filename'.
.TP
\fB\-H\fR, \fB\-\-HELP\fR
Print all argument options sorted alphabetically.
.TP
\fB\-?\fR, \fB\-\-help\fR
Print all options by groups
.TP
\fB\-\-datadir\fR=\fIpath\fR
Path for control file (and logs if \fB\-\-logdir\fR not used)
.TP
\fB\-\-logdir\fR=\fIpath\fR
Path for log files
.TP
\fB\-\-ignore\-control\-file\fR
Don't open the control file. Only use this if you
are sure the tables are not in use by another
program!
.TP
\fB\-\-require\-control\-file\fR
Abort if we can't find/read the maria_log_control
file
.TP
\fB\-s\fR, \fB\-\-silent\fR
Only print errors. One can use two \fB\-s\fR to make
maria_chk very silent.
.TP
\fB\-t\fR, \fB\-\-tmpdir\fR=\fIpath\fR
Path for temporary files. Multiple paths can be
specified, separated by colon (:), they will be used
in a round\-robin fashion.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Print more information. This can be used with
\fB\-\-description\fR and \fB\-\-check\fR. Use many \fB\-v\fR for more verbosity.
.TP
\fB\-V\fR, \fB\-\-version\fR
Print version and exit.
.TP
\fB\-w\fR, \fB\-\-wait\fR
Wait if table is locked.
.SS "Check options (check is the default action for aria_chk)"
.TP
\fB\-c\fR, \fB\-\-check\fR
Check table for errors.
.TP
\fB\-e\fR, \fB\-\-extend\-check\fR
Check the table VERY throughly. Only use this in
extreme cases as aria_chk should normally be able to
find out if the table is ok even without this switch.
.TP
\fB\-F\fR, \fB\-\-fast\fR
Check only tables that haven't been closed properly.
.TP
\fB\-C\fR, \fB\-\-check\-only\-changed\fR
Check only tables that have changed since last check.
.TP
\fB\-f\fR, \fB\-\-force\fR
Restart with '\-r' if there are any errors in the table.
States will be updated as with '\-\-update\-state'.
.TP
\fB\-i\fR, \fB\-\-information\fR
Print statistics information about table that is checked.
.TP
\fB\-m\fR, \fB\-\-medium\-check\fR
Faster than extend\-check, but only finds 99.99% of
all errors. Should be good enough for most cases.
.TP
\fB\-T\fR, \fB\-\-read\-only\fR
Don't mark table as checked.
.TP
\fB\-U\fR, \fB\-\-update\-state\fR
Mark tables as crashed if any errors were found and
clean if check didn't find any errors but table was
marked as 'not clean' before. This allows one to get
rid of warnings like 'table not properly closed'. If
table was updated, update also the timestamp for when
the check was made. This option is on by default!
Use \fB\-\-skip\-update\-state\fR to disable.
.HP
\fB\-\-warning\-for\-wrong\-transaction\-id\fR
.IP
Give a warning if we find a transaction id in the table that is bigger
than what exists in the control file. Use \fB\-\-skip\-\fR... to disable warning
.SS "Recover (repair)/ options (When using '--recover' or '--safe-recover')"
.TP
\fB\-B\fR, \fB\-\-backup\fR
Make a backup of the .MAD file as 'filename\-time.BAK'.
.TP
\fB\-\-correct\-checksum\fR
Correct checksum information for table.
.TP
\fB\-D\fR, \fB\-\-data\-file\-length=\fR#
Max length of data file (when recreating data
file when it's full).
.TP
\fB\-e\fR, \fB\-\-extend\-check\fR
Try to recover every possible row from the data file
Normally this will also find a lot of garbage rows;
Don't use this option if you are not totally desperate.
.TP
\fB\-f\fR, \fB\-\-force\fR
Overwrite old temporary files.
.TP
\fB\-k\fR, \fB\-\-keys\-used=\fR#
Tell Aria to update only some specific keys. # is a
bit mask of which keys to use. This can be used to
get faster inserts.
.TP
\fB\-\-max\-record\-length=\fR#
Skip rows bigger than this if aria_chk can't allocate
memory to hold it.
.TP
\fB\-r\fR, \fB\-\-recover\fR
Can fix almost anything except unique keys that aren't
unique.
.TP
\fB\-n\fR, \fB\-\-sort\-recover\fR
Forces recovering with sorting even if the temporary
file would be very big.
.TP
\fB\-p\fR, \fB\-\-parallel\-recover\fR
Uses the same technique as '\-r' and '\-n', but creates
all the keys in parallel, in different threads.
.TP
\fB\-o\fR, \fB\-\-safe\-recover\fR
Uses old recovery method; Slower than '\-r' but can
handle a couple of cases where '\-r' reports that it
can't fix the data file.
.TP
\fB\-\-transaction\-log\fR
Log repair command to transaction log. This is needed
if one wants to use the aria_read_log to repeat the
repair
.TP
\fB\-\-character\-sets\-dir=\fR...
Directory where character sets are.
.TP
\fB\-\-set\-collation\fR=\fIname\fR
Change the collation used by the index.
.TP
\fB\-q\fR, \fB\-\-quick\fR
Faster repair by not modifying the data file.
One can give a second '\-q' to force aria_chk to
modify the original datafile in case of duplicate keys.
NOTE: Tables where the data file is currupted can't be
fixed with this option.
.TP
\fB\-u\fR, \fB\-\-unpack\fR
Unpack file packed with ariapack.
.SS "Other actions"
.TP
\fB\-a\fR, \fB\-\-analyze\fR
Analyze distribution of keys. Will make some joins in
MariaDB faster. You can check the calculated distribution
by using '\-\-description \fB\-\-verbose\fR table_name'.
.TP
\fB\-\-stats_method\fR=\fIname\fR
Specifies how index statistics collection code should
treat NULLs. Possible values of name are "nulls_unequal"
(default for 4.1/5.0), "nulls_equal" (emulate 4.0), and
"nulls_ignored".
.TP
\fB\-d\fR, \fB\-\-description\fR
Prints some information about table.
.TP
\fB\-A\fR, \fB\-\-set\-auto\-increment\fR[=\fIvalue\fR]
Force auto_increment to start at this or higher value
If no value is given, then sets the next auto_increment
value to the highest used value for the auto key + 1.
.TP
\fB\-S\fR, \fB\-\-sort\-index\fR
Sort index blocks. This speeds up 'read\-next' in
applications.
.TP
\fB\-R\fR, \fB\-\-sort\-records=\fR#
Sort records according to an index. This makes your
data much more localized and may speed up things
(It may be VERY slow to do a sort the first time!).
.TP
\fB\-b\fR, \fB\-\-block\-search=\fR#
Find a record, a block at given offset belongs to.
.TP
\fB\-z\fR, \fB\-\-zerofill\fR
Fill empty space in data and index files with zeroes.
This makes the data file movable between different
servers.
.TP
\fB\-\-zerofill\-keep\-lsn\fR
Like \fB\-\-zerofill\fR but does not zero out LSN of
data/index pages.
.PP
.SS "Variables"
.TP
\fB\-\-page_buffer_size=\fR#
Size of page buffer. Used by \fB\-\-safe\-repair\fR
.TP
\fB\-\-read_buffer_size=\fR#
Read buffer size for sequential reads during scanning
.TP
\fB\-\-sort_buffer_size=\fR#
Size of sort buffer. Used by \fB\-\-recover\fR
.TP
\fB\-\-sort_key_blocks=\fR#
Internal buffer for sorting keys; Don't touch.
.TP
\fB\-\-write_buffer_size=\fR#
Write buffer size for sequential writes during repair
.PP
Default options are read from the following files in the given order:
\fB/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf\fR
.PP
The following groups are read: \fBaria_chk\fR
.PP
The following options may be given as the first argument:
.TP
\fB\-\-print\-defaults\fR
Print the program argument list and exit.
.TP
\fB\-\-no\-defaults\fR
Don't read default options from any option file.
.TP
\fB\-\-defaults\-file=\fR#
Only read default options from the given file #.
.TP
\fB\-\-defaults\-extra\-file=\fR#
Read this file after the global files are read.
.PP
.SH "SEE ALSO"
\fBmyisamchk(1)\fR
.PP
For more information, please refer to the MariaDB Knowledge Base,
which is available online at http://mariadb.com/kb/
.TH ARIA_DUMP_LOG "1" "May 2014" "aria_dump_log Ver 1.0" "User Commands"
.SH NAME
aria_dump_log \- Dump content of Aria log pages.
.SH SYNOPSIS
.B aria_dump_log
\fI-f file OPTIONS\fR
.SH DESCRIPTION
Dump content of Aria log pages.
.TP
\fB\-#\fR, \fB\-\-debug\fR[=\fIname\fR]
Output debug log. Often the argument is 'd:t:o,filename'.
.TP
\fB\-f\fR, \fB\-\-file\fR=\fIname\fR
Path to file which will be read
.TP
\fB\-?\fR, \fB\-\-help\fR
Display this help and exit.
.TP
\fB\-o\fR, \fB\-\-offset=\fR#
Start reading log from this offset
.TP
\fB\-n\fR, \fB\-\-pages=\fR#
Number of pages to read
.TP
\fB\-U\fR, \fB\-\-unit\-test\fR
Use unit test record table (for logs created by unittests
.TP
\fB\-V\fR, \fB\-\-version\fR
Print version and exit.
.PP
Default options are read from the following files in the given order:
\fB/etc/my.cnf\fB
\fB/etc/mysql/my.cnf\fB
\fB~/.my.cnf\fB
.PP
The following groups are read: \fBaria_dump_log\fR
.PP
The following options may be given as the first argument:
.TP
\fB\-\-print\-defaults\fR
Print the program argument list and exit.
.TP
\fB\-\-no\-defaults\fR
Don't read default options from any option file.
.TP
\fB\-\-defaults\-file=\fR#
Only read default options from the given file #.
.TP
\fB\-\-defaults\-extra\-file=\fR#
Read this file after the global files are read.
.PP
.SH "SEE ALSO"
For more information, please refer to the MariaDB Knowledge Base,
which is available online at http://mariadb.com/kb/
.TH ARIA_FTDUMP "1" "May 2014" "aria_ftdump Ver 1.0" "User Commands"
.SH NAME
aria_ftdump \- display full\-text index information
.SH DESCRIPTION
Use: aria_ft_dump <table_name> <index_num>
.TP
\fB\-?\fR, \fB\-h\fR, \fB\-\-help\fR
Display help and exit.
.TP
\fB\-c\fR, \fB\-\-count\fR
Calculate per\-word stats (counts and global weights).
.TP
\fB\-d\fR, \fB\-\-dump\fR
Dump index (incl. data offsets and word weights).
.TP
\fB\-l\fR, \fB\-\-length\fR
Report length distribution.
.TP
\fB\-s\fR, \fB\-\-stats\fR
Report global stats.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Be verbose.
.PP
.SH "SEE ALSO"
\fBmyisam_ftdump(1)\fR
.PP
For more information, please refer to the MariaDB Knowledge Base,
which is available online at http://mariadb.com/kb/
.TH ARIA_PACK "1" "May 2014" "aria_pack Ver 1.0" "User Commands"
.SH NAME
aria_pack \- manual page for aria_pack Ver 1.0
.SH SYNOPSIS
.B aria_pack
[\fIOPTIONS\fR] \fIfilename\fR...
.SH DESCRIPTION
Pack a Aria\-table to take much less space.
Keys are not updated, you must run \fBaria_chk \-rq\fR on the index (.MAI) file
afterwards to update the keys.
You should give the .MAI file as the filename argument.
To unpack a packed table, run \fBaria_chk \-u\fR on the table
.TP
\fB\-b\fR, \fB\-\-backup\fR
Make a backup of the table as table_name.OLD.
.TP
\fB\-\-character\-sets\-dir\fR=\fIname\fR
Directory where character sets are.
.TP
\fB\-#\fR, \fB\-\-debug\fR[=\fIname\fR]
Output debug log. Often this is 'd:t:o,filename'.
.TP
\fB\-f\fR, \fB\-\-force\fR
Force packing of table even if it gets bigger or if
tempfile exists.
.TP
\fB\-j\fR, \fB\-\-join\fR=\fIname\fR
Join all given tables into 'new_table_name'. All tables
MUST have identical layouts.
.TP
\fB\-?\fR, \fB\-\-help\fR
Display this help and exit.
.TP
\fB\-s\fR, \fB\-\-silent\fR
Be more silent.
.TP
\fB\-T\fR, \fB\-\-tmpdir\fR=\fIname\fR
Use temporary directory to store temporary table.
.TP
\fB\-t\fR, \fB\-\-test\fR
Don't pack table, only test packing it.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Write info about progress and packing result. Use many \fB\-v\fR
for more verbosity!
.TP
\fB\-V\fR, \fB\-\-version\fR
Output version information and exit.
.TP
\fB\-w\fR, \fB\-\-wait\fR
Wait and retry if table is in use.
.PP
Default options are read from the following files in the given order:
\fB/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf\fR
.PP
The following groups are read: \fBariapack\fR
.PP
The following options may be given as the first argument:
.TP
\fB\-\-print\-defaults\fR
Print the program argument list and exit.
.TP
\fB\-\-no\-defaults\fR
Don't read default options from any option file.
.TP
\fB\-\-defaults\-file=\fR#
Only read default options from the given file #.
.TP
\fB\-\-defaults\-extra\-file=\fR#
Read this file after the global files are read.
.PP
.SH "SEE ALSO"
\fBmyisampack(1)\fR
.PP
For more information, please refer to the MariaDB Knowledge Base,
which is available online at http://mariadb.com/kb/
.TH ARIA_READ_LOG "1" "May 2014" "aria_read_log Ver 1.3" "User Commands"
.SH NAME
aria_read_log \- display Aria log file contents
.SH SYNOPSIS
.B aria_read_log
\fIOPTIONS\fR
.SH DESCRIPTION
Display and apply log records from a Aria transaction log
found in the current directory (for now)
.PP
Note: Aria is compiled without \fB\-DIDENTICAL_PAGES_AFTER_RECOVERY\fR
which means that the table files are not byte\-to\-byte identical to
files created during normal execution. This should be ok, except for
test scripts that tries to compare files before and after recovery.
.PP
You need to use one of \fB\-d\fR or \fB\-a\fR
.TP
\fB\-a\fR, \fB\-\-apply\fR
Apply log to tables: modifies tables! you should make a
backup first! Displays a lot of information if not run
with \fB\-\-silent\fR
.TP
\fB\-\-character\-sets\-dir\fR=\fIname\fR
Directory where character sets are.
.TP
\fB\-c\fR, \fB\-\-check\fR
if \fB\-\-display\-only\fR, check if record is fully readable (for
debugging)
.TP
\fB\-#\fR, \fB\-\-debug\fR[=\fIname\fR]
Output debug log. Often the argument is 'd:t:o,filename'.
.TP
\fB\-\-force\-crash=\fR#
Force crash after # recovery events
.TP
\fB\-?\fR, \fB\-\-help\fR
Display this help and exit.
.TP
\fB\-d\fR, \fB\-\-display\-only\fR
display brief info read from records' header
.TP
\fB\-e\fR, \fB\-\-end\-lsn=\fR#
Stop applying at this lsn. If end\-lsn is used, UNDO:s
will not be applied
.TP
\fB\-h\fR, \fB\-\-aria\-log\-dir\-path\fR=\fIname\fR
Path to the directory where to store transactional log
.TP
\fB\-P\fR, \fB\-\-page\-buffer\-size=\fR#
The size of the buffer used for index blocks for Aria
tables
.TP
\fB\-o\fR, \fB\-\-start\-from\-lsn=\fR#
Start reading log from this lsn
.TP
\fB\-C\fR, \fB\-\-start\-from\-checkpoint\fR
Start applying from last checkpoint
.TP
\fB\-s\fR, \fB\-\-silent\fR
Print less information during apply/undo phase
.TP
\fB\-T\fR, \fB\-\-tables\-to\-redo\fR=\fIname\fR
List of tables sepearated with , that we should apply
REDO on. Use this if you only want to recover some tables
.TP
\fB\-t\fR, \fB\-\-tmpdir\fR=\fIname\fR
Path for temporary files. Multiple paths can be
specified, separated by colon (:)
.TP
\fB\-\-translog\-buffer\-size=\fR#
The size of the buffer used for transaction log for Aria
tables
.TP
\fB\-u\fR, \fB\-\-undo\fR
Apply UNDO records to tables. (disable with
\fB\-\-disable\-undo\fR)
(Defaults to on; use \fB\-\-skip\-undo\fR to disable.)
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Print more information during apply/undo phase
.TP
\fB\-V\fR, \fB\-\-version\fR
Print version and exit.
.PP
Default options are read from the following files in the given order:
\fB/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf\fR
.PP
The following groups are read: \fBaria_read_log\fR
.PP
The following options may be given as the first argument:
.TP
\fB\-\-print\-defaults\fR
Print the program argument list and exit.
.TP
\fB\-\-no\-defaults\fR
Don't read default options from any option file.
.TP
\fB\-\-defaults\-file=\fR#
Only read default options from the given file #.
.TP
\fB\-\-defaults\-extra\-file=\fR#
Read this file after the global files are read.
.PP
.SH "SEE ALSO"
\fBmyisamlog(1)\fR
.PP
For more information, please refer to the MariaDB Knowledge Base,
which is available online at http://mariadb.com/kb/
'\" t
.\" Title: \fBmysql_fix_privilege_tables\fR
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
.\" Date: 04/06/2010
.\" Manual: MySQL Database System
.\" Source: MySQL 5.1
.\" Language: English
.\"
.TH "\FBMYSQL_FIX_PRIVILE" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System"
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.\" mysql_fix_privilege_tables
.\" upgrading: grant tables
.\" grant tables: upgrading
.SH "NAME"
mysql_fix_privilege_tables \- upgrade MySQL system tables
.SH "SYNOPSIS"
.HP \w'\fBmysql_fix_privilege_tables\ \-\-password=\fR\fB\fIroot_password\fR\fR\ 'u
\fBmysql_fix_privilege_tables \-\-password=\fR\fB\fIroot_password\fR\fR
.SH "DESCRIPTION"
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.PP
In MySQL 5\&.1\&.7,
\fBmysql_fix_privilege_tables\fR
was superseded by
\fBmysql_upgrade\fR, which should be used instead\&. See
\fBmysql_upgrade\fR(1)\&.
.sp .5v
.RE
.PP
Some releases of MySQL introduce changes to the structure of the system tables in the
mysql
database to add new privileges or support new features\&. When you update to a new version of MySQL, you should update your system tables as well to make sure that their structure is up to date\&. Otherwise, there might be capabilities that you cannot take advantage of\&.
.PP
\fBmysql_fix_privilege_tables\fR
is an older script that previously was used to uprade the system tables in the
mysql
database after a MySQL upgrade\&.
.PP
Before running
\fBmysql_fix_privilege_tables\fR, make a backup of your
mysql
database\&.
.PP
On Unix or Unix\-like systems, update the system tables by running the
\fBmysql_fix_privilege_tables\fR
script:
.sp
.if n \{\
.RS 4
.\}
.nf
shell> \fBmysql_fix_privilege_tables\fR
.fi
.if n \{\
.RE
.\}
.PP
You must run this script while the server is running\&. It attempts to connect to the server running on the local host as
root\&. If your
root
account requires a password, indicate the password on the command line like this:
.sp
.if n \{\
.RS 4
.\}
.nf
shell> \fBmysql_fix_privilege_tables \-\-password=\fR\fB\fIroot_password\fR\fR
.fi
.if n \{\
.RE
.\}
.PP
The
\fBmysql_fix_privilege_tables\fR
script performs any actions necessary to convert your system tables to the current format\&. You might see some
Duplicate column name
warnings as it runs; you can ignore them\&.
.PP
After running the script, stop the server and restart it so that any changes made to the system tables take effect\&.
.PP
On Windows systems, MySQL distributions include a
mysql_fix_privilege_tables\&.sql
SQL script that you can run using the
\fBmysql\fR
client\&. For example, if your MySQL installation is located at
C:\eProgram Files\eMySQL\eMySQL Server 5\&.1, the commands look like this:
.sp
.if n \{\
.RS 4
.\}
.nf
C:\e> \fBcd "C:\eProgram Files\eMySQL\eMySQL Server 5\&.1"\fR
C:\e> \fBbin\emysql \-u root \-p mysql\fR
mysql> \fBSOURCE share/mysql_fix_privilege_tables\&.sql\fR
.fi
.if n \{\
.RE
.\}
.sp
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.PP
Prior to version 5\&.1\&.17, the
mysql_fix_privilege_tables\&.sql
script is found in the
scripts
directory\&.
.sp .5v
.RE
.PP
The
\fBmysql\fR
command will prompt you for the
root
password; enter it when prompted\&.
.PP
If your installation is located in some other directory, adjust the path names appropriately\&.
.PP
As with the Unix procedure, you might see some
Duplicate column name
warnings as
\fBmysql\fR
processes the statements in the
mysql_fix_privilege_tables\&.sql
script; you can ignore them\&.
.PP
After running the script, stop the server and restart it\&.
.SH "COPYRIGHT"
.br
.PP
Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc.
.PP
This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
.PP
This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
.PP
You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.
.sp
.SH "SEE ALSO"
For more information, please refer to the MySQL Reference Manual,
which may already be installed locally and which is also available
online at http://dev.mysql.com/doc/.
.SH AUTHOR
Sun Microsystems, Inc. (http://www.mysql.com/).
......@@ -24,8 +24,8 @@
.SH "NAME"
mysqladmin \- client for administering a MySQL server
.SH "SYNOPSIS"
.HP \w'\fBmysqladmin\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-options\fR\fR\fB]\ [\fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-options\fR\fR\fB]]\ \&.\&.\&.\fR\ 'u
\fBmysqladmin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-options\fR\fR\fB] [\fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-options\fR\fR\fB]] \&.\&.\&.\fR
.HP \w'\fBmysqladmin\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-arg\fR\fR\fB]\ [\fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-arg\fR\fR\fB]]\ \&.\&.\&.\fR\ 'u
\fBmysqladmin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB] [\fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB]] \&.\&.\&.\fR
.SH "DESCRIPTION"
.PP
\fBmysqladmin\fR
......
......@@ -1255,33 +1255,6 @@ indicates a
FORMAT_DESCRIPTION_EVENT\&. The following table lists the possible type codes\&.
.TS
allbox tab(:);
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l
l l l.
T{
Type
......@@ -1310,7 +1283,7 @@ T}:T{
QUERY_EVENT
T}:T{
The most common type of events\&. These contain statements executed on the
master\&.
master\&.
T}
T{
03
......@@ -1332,8 +1305,8 @@ T}:T{
INTVAR_EVENT
T}:T{
Used for AUTO_INCREMENT values or when the
LAST_INSERT_ID()
function is used in the statement\&.
LAST_INSERT_ID()
function is used in the statement\&.
T}
T{
06
......@@ -1341,7 +1314,7 @@ T}:T{
LOAD_EVENT
T}:T{
Used for LOAD DATA
INFILE in MySQL 3\&.23\&.
INFILE in MySQL 3\&.23\&.
T}
T{
07
......@@ -1356,9 +1329,9 @@ T}:T{
CREATE_FILE_EVENT
T}:T{
Used for LOAD DATA
INFILE statements\&. This indicates the
start of execution of such a statement\&. A temporary
file is created on the slave\&. Used in MySQL 4 only\&.
INFILE statements\&. This indicates the
start of execution of such a statement\&. A temporary
file is created on the slave\&. Used in MySQL 4 only\&.
T}
T{
09
......@@ -1366,9 +1339,9 @@ T}:T{
APPEND_BLOCK_EVENT
T}:T{
Contains data for use in a
LOAD DATA
INFILE statement\&. The data is stored in
the temporary file on the slave\&.
LOAD DATA
INFILE statement\&. The data is stored in
the temporary file on the slave\&.
T}
T{
0a
......@@ -1376,9 +1349,9 @@ T}:T{
EXEC_LOAD_EVENT
T}:T{
Used for LOAD DATA
INFILE statements\&. The contents of the
temporary file is stored in the table on the slave\&.
Used in MySQL 4 only\&.
INFILE statements\&. The contents of the
temporary file is stored in the table on the slave\&.
Used in MySQL 4 only\&.
T}
T{
0b
......@@ -1386,8 +1359,8 @@ T}:T{
DELETE_FILE_EVENT
T}:T{
Rollback of a LOAD DATA
INFILE statement\&. The temporary file
should be deleted on the slave\&.
INFILE statement\&. The temporary file
should be deleted on the slave\&.
T}
T{
0c
......@@ -1395,7 +1368,7 @@ T}:T{
NEW_LOAD_EVENT
T}:T{
Used for LOAD DATA
INFILE in MySQL 4 and earlier\&.
INFILE in MySQL 4 and earlier\&.
T}
T{
0d
......@@ -1403,8 +1376,8 @@ T}:T{
RAND_EVENT
T}:T{
Used to send information about random values if the
RAND() function is
used in the statement\&.
RAND() function is
used in the statement\&.
T}
T{
0e
......@@ -1433,7 +1406,7 @@ T}:T{
BEGIN_LOAD_QUERY_EVENT
T}:T{
Used for LOAD DATA
INFILE statements in MySQL 5 and later\&.
INFILE statements in MySQL 5 and later\&.
T}
T{
12
......@@ -1441,7 +1414,7 @@ T}:T{
EXECUTE_LOAD_QUERY_EVENT
T}:T{
Used for LOAD DATA
INFILE statements in MySQL 5 and later\&.
INFILE statements in MySQL 5 and later\&.
T}
T{
13
......@@ -1456,7 +1429,7 @@ T}:T{
PRE_GA_WRITE_ROWS_EVENT
T}:T{
Row data for a single table that should be created\&. Used in MySQL 5\&.1\&.5
to 5\&.1\&.17\&.
to 5\&.1\&.17\&.
T}
T{
15
......@@ -1464,7 +1437,7 @@ T}:T{
PRE_GA_UPDATE_ROWS_EVENT
T}:T{
Row data for a single table that needs to be updated\&. Used in MySQL
5\&.1\&.5 to 5\&.1\&.17\&.
5\&.1\&.5 to 5\&.1\&.17\&.
T}
T{
16
......@@ -1472,7 +1445,7 @@ T}:T{
PRE_GA_DELETE_ROWS_EVENT
T}:T{
Row data for a single table that should be deleted\&. Used in MySQL 5\&.1\&.5
to 5\&.1\&.17\&.
to 5\&.1\&.17\&.
T}
T{
17
......@@ -1480,7 +1453,7 @@ T}:T{
WRITE_ROWS_EVENT
T}:T{
Row data for a single table that should be created\&. Used in MySQL 5\&.1\&.18
and later\&.
and later\&.
T}
T{
18
......@@ -1488,7 +1461,7 @@ T}:T{
UPDATE_ROWS_EVENT
T}:T{
Row data for a single table that needs to be updated\&. Used in MySQL
5\&.1\&.18 and later\&.
5\&.1\&.18 and later\&.
T}
T{
19
......@@ -1496,7 +1469,7 @@ T}:T{
DELETE_ROWS_EVENT
T}:T{
Row data for a single table that should be deleted\&. Used in MySQL 5\&.1\&.18
and later\&.
and later\&.
T}
T{
1a
......@@ -1553,10 +1526,6 @@ Master Pos: The position of the next event in the original master log file\&.
Flags: 16 flags\&. Currently, the following flags are used\&. The others are reserved for future use\&.
.TS
allbox tab(:);
l l l
l l l
l l l
l l l
l l l.
T{
Flag
......@@ -1571,13 +1540,13 @@ T}:T{
LOG_EVENT_BINLOG_IN_USE_F
T}:T{
Log file correctly closed\&. (Used only in
FORMAT_DESCRIPTION_EVENT\&.) If
this flag is set (if the flags are, for example,
\'01 00\') in a
FORMAT_DESCRIPTION_EVENT, the log
file has not been properly closed\&. Most probably
this is because of a master crash (for example, due
to power failure)\&.
FORMAT_DESCRIPTION_EVENT\&.) If
this flag is set (if the flags are, for example,
\'01 00\') in a
FORMAT_DESCRIPTION_EVENT, the log
file has not been properly closed\&. Most probably
this is because of a master crash (for example, due
to power failure)\&.
T}
T{
02
......@@ -1592,8 +1561,8 @@ T}:T{
LOG_EVENT_THREAD_SPECIFIC_F
T}:T{
Set if the event is dependent on the connection it was executed in (for
example, \'04 00\'), for example,
if the event uses temporary tables\&.
example, \'04 00\'), for example,
if the event uses temporary tables\&.
T}
T{
08
......@@ -1601,7 +1570,7 @@ T}:T{
LOG_EVENT_SUPPRESS_USE_F
T}:T{
Set in some circumstances when the event is not dependent on the default
database\&.
database\&.
T}
.TE
.sp 1
......
......@@ -2027,9 +2027,6 @@ value, an empty string, and the string value
are distinguished from one another in the output generated by this option as follows\&.
.TS
allbox tab(:);
l l
l l
l l
l l.
T{
\fBValue\fR:
......
.TH mysqlman 1 "20 July 2004" "MySQL" "MySQL database"
.SH NAME
mysqlman \- default man page for mysql
.SH "DESCRIPTION"
Certain executables distributed with the MySQL database management system do
not have specific man pages.
.SH "SEE ALSO"
In most cases, you can run the executable from the command line with a "--help"
argument to display a brief summary of the executable's arguments and function.
For more information about MySQL, please refer to the MySQL reference manual,
which may already be installed locally and which is also available online at
http://dev.mysql.com/doc/mysql/en
.SH BUGS
Please refer to http://bugs.mysql.com/ to report bugs.
.\" end of man page
This diff is collapsed.
......@@ -13,7 +13,6 @@ main.signal_demo3 @solaris # Bug#11753919 2010-01-20 alik Several
main.sp @solaris # Bug#11753919 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
main.wait_timeout @solaris # Bug#11758972 2010-04-26 alik wait_timeout fails on OpenSolaris
rpl.rpl_innodb_bug28430 # Bug#11754425
rpl.rpl_row_sp011 @solaris # Bug#11753919 2011-07-25 sven Several test cases fail on Solaris with error Thread stack overrun
rpl.rpl_spec_variables @solaris # Bug #17337114 2013-08-20 Luis Soares failing on pb2 with timeout for 'CHECK WARNINGS'
......
......@@ -539,6 +539,7 @@ n d1 d2 result
2085 2012-01-01 00:00:00 2013-01-01 00:00:00 0
2084 2012-02-01 00:00:00 2013-01-01 00:00:00 0
drop table t1;
set @save_derived_optimizer_switch_bug=@@optimizer_switch;
SET optimizer_switch = 'derived_merge=on,derived_with_keys=on,in_to_exists=on';
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
INSERT INTO t1 VALUES (8);
......@@ -553,4 +554,17 @@ id select_type table type possible_keys key key_len ref rows Extra
Warnings:
Note 1249 Select 4 was reduced during optimization
DROP TABLE t1, t2;
set optimizer_switch=@save_derived_optimizer_switch_bug;
#
# MDEV-6163: Error while executing an update query that has the
# same table in a sub-query
#
set @save_derived_optimizer_switch_bug=@@optimizer_switch;
SET optimizer_switch = 'derived_merge=on';
create table t1 (balance float, accountId varchar(64), primary key (accountId));
insert into t1 (accountId,balance) values
('dealer-1',199354.0),('dealer-2',0),('dealer-3',0),('dealer-5',0),('FINANCE',-200000),('OPERATOR',0);
update t1 set balance=(select sum(balance) from (SELECT balance FROM t1 where accountId like 'dealer%') AS copied) where accountId = 'OPERATOR';
set optimizer_switch=@save_derived_optimizer_switch_bug;
drop table t1;
set optimizer_switch=@save_derived_optimizer_switch;
......@@ -1001,29 +1001,29 @@ Warnings:
Warning 1292 Truncated incorrect time value: '1223.5aa'
select column_get(column_create(1, 18446744073709551615 AS unsigned int), 1 as time);
column_get(column_create(1, 18446744073709551615 AS unsigned int), 1 as time)
NULL
838:59:59
Warnings:
Warning 1292 Incorrect datetime value: '1.8446744073709552e19'
Warning 1292 Truncated incorrect time value: '1.8446744073709552e19'
select column_get(column_create(1, 9223372036854775807 AS int), 1 as time);
column_get(column_create(1, 9223372036854775807 AS int), 1 as time)
NULL
838:59:59
Warnings:
Warning 1292 Incorrect datetime value: '9223372036854775807'
Warning 1292 Truncated incorrect time value: '9223372036854775807'
select column_get(column_create(1, -9223372036854775808 AS int), 1 as time);
column_get(column_create(1, -9223372036854775808 AS int), 1 as time)
NULL
-838:59:59
Warnings:
Warning 1292 Incorrect datetime value: '-9223372036854775808'
Warning 1292 Truncated incorrect time value: '-9223372036854775808'
select column_get(column_create(1, 99999999999999999999999999999 AS decimal(32,10)), 1 as time);
column_get(column_create(1, 99999999999999999999999999999 AS decimal(32,10)), 1 as time)
NULL
838:59:59
Warnings:
Warning 1292 Incorrect datetime value: '99999999999999999999999999999'
Warning 1292 Truncated incorrect time value: '99999999999999999999999999999'
select column_get(column_create(1, 99999999999999999999999999999 AS double), 1 as time);
column_get(column_create(1, 99999999999999999999999999999 AS double), 1 as time)
NULL
838:59:59
Warnings:
Warning 1292 Incorrect datetime value: '1e29'
Warning 1292 Truncated incorrect time value: '1e29'
select column_get(column_create(1, "2011-02-32 8:46:06.23434" AS CHAR), 1 as time);
column_get(column_create(1, "2011-02-32 8:46:06.23434" AS CHAR), 1 as time)
NULL
......@@ -1435,6 +1435,17 @@ Warning 1265 Data truncated for column 'dyncol' at row 1
SELECT COLUMN_ADD( dyncol, 'a', '22:22:22', 'c', REPEAT('x',270) AS CHAR ) FROM t1;
DROP table t1;
#
# MDEV-4858 Wrong results for a huge unsigned value inserted into a TIME column
#
SELECT
column_get(column_create(1, -999999999999999 AS int), 1 AS TIME) AS t1,
column_get(column_create(1, -9223372036854775808 AS int), 1 AS TIME) AS t2;
t1 t2
-838:59:59 -838:59:59
Warnings:
Warning 1292 Truncated incorrect time value: '-999999999999999'
Warning 1292 Truncated incorrect time value: '-9223372036854775808'
#
# end of 5.3 tests
#
select column_get(column_create(1, "18446744073709552001" as char), 1 as int);
......
......@@ -1091,9 +1091,9 @@ NULL
select isnull(week(now() + 0)), isnull(week(now() + 0.2)),
week(20061108), week(20061108.01), week(20061108085411.000002);
isnull(week(now() + 0)) isnull(week(now() + 0.2)) week(20061108) week(20061108.01) week(20061108085411.000002)
0 0 45 NULL 45
0 0 45 45 45
Warnings:
Warning 1292 Incorrect datetime value: '20061108.01'
Warning 1292 Truncated incorrect datetime value: '20061108.01'
End of 4.1 tests
select time_format('100:00:00', '%H %k %h %I %l');
time_format('100:00:00', '%H %k %h %I %l')
......@@ -2483,6 +2483,14 @@ SELECT 1 FROM t1 GROUP BY MONTHNAME(0) WITH ROLLUP;
1
DROP TABLE t1;
#
# MDEV-6099 Bad results for DATE_ADD(.., INTERVAL 2000000000000000000.0 SECOND)
#
SELECT DATE_ADD('2001-01-01 10:20:30',INTERVAL 250000000000.0 SECOND) AS c1, DATE_ADD('2001-01-01 10:20:30',INTERVAL 2000000000000000000.0 SECOND) AS c2;
c1 c2
9923-03-10 22:47:10.0 NULL
Warnings:
Warning 1292 Truncated incorrect DECIMAL value: '2000000000000000000.0'
#
# MDEV-4838 Wrong metadata for DATE_ADD('string', INVERVAL)
#
SELECT DATE_ADD('2011-01-02 12:13:14', INTERVAL 1 MINUTE);
......
......@@ -520,3 +520,15 @@ LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug11735141.txt' INTO TABLE t1;
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
drop table t1;
End of 5.1 tests
#
# Bug#11759519 INFINITE HANG WITH 100% CPU USAGE WITH LOAD DATA LOCAL AND IMPORT ERRORS
#
SET @old_mode= @@sql_mode;
CREATE TABLE t1 (fld1 INT);
SET sql_mode='strict_all_tables';
# Without fix, load data hangs forever.
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/mysql' REPLACE INTO TABLE t1
FIELDS TERMINATED BY 't' LINES TERMINATED BY '';
Got one of the listed errors
SET @@sql_mode= @old_mode;
DROP TABLE t1;
......@@ -150,6 +150,60 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
create table `t1` (`id` varchar(15) DEFAULT NULL) ENGINE=MyISAM ROW_FORMAT=FIXED;
insert into t1 values ('aaa'),('bbb'),('ccc'),('ddd'),('eee');
insert into t1 (select * from t1);
insert into t1 (select * from t1);
insert into t1 (select * from t1);
insert into t1 (select * from t1);
checksum table t1;
Table Checksum
test.t1 2696656816
insert into t1 values(NULL);
checksum table t1;
Table Checksum
test.t1 2679879600
flush table t1;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
checksum table t1;
Table Checksum
test.t1 2679879600
alter table t1 checksum=1 row_format=fixed;
checksum table t1;
Table Checksum
test.t1 2679879600
flush table t1;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
checksum table t1;
Table Checksum
test.t1 2679879600
alter table t1 row_format=dynamic checksum=0;
checksum table t1;
Table Checksum
test.t1 2330021136
flush table t1;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
checksum table t1;
Table Checksum
test.t1 2330021136
alter table t1 checksum=1 row_format=dynamic;
checksum table t1;
Table Checksum
test.t1 2330021136
flush table t1;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
checksum table t1;
Table Checksum
test.t1 2330021136
drop table t1;
#
# BUG#11751736: DROP DATABASE STATEMENT SHOULD REMOVE .OLD SUFFIX FROM
# DATABASE DIRECTORY
......
......@@ -147,6 +147,14 @@ SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
a b c
1 ABC-АБВ DEF-ÂÃÄ
2 NULL NULL
SELECT * FROM t1;
a b c
1 ABC-АБВ DEF-ÂÃÄ
2 NULL NULL
SELECT * FROM t2;
a b c
1 ABC-АБВ DEF-ÂÃÄ
2 NULL NULL
SELECT * FROM t1 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' LINES STARTING BY 'ъ';
Warnings:
Warning 1638 Non-ASCII separator arguments are not fully supported
......@@ -175,6 +183,14 @@ SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a, b, c;
a b c
1 ABC-АБВ DEF-ÂÃÄ
2 NULL NULL
SELECT * FROM t1;
a b c
1 ABC-АБВ DEF-ÂÃÄ
2 NULL NULL
SELECT * FROM t2;
a b c
1 ABC-АБВ DEF-ÂÃÄ
2 NULL NULL
# Default (binary) charset:
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1.txt' FROM t1;
##################################################
......
......@@ -3301,3 +3301,55 @@ explain partitions select * from t1 where a between 10 and 10+33;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p0,p1,p2 ALL NULL NULL NULL NULL 100 Using where
drop table t0, t1;
#
# MDEV-6239: Partition pruning is not working as expected in an inner query
#
create table t1
(
company_id bigint(5),
dept_id bigint(5),
emp_id bigint(5),
emp_name varchar(100),
primary key (company_id, emp_id)
) partition by list (company_id) (
partition p_1000 values in (1000),
partition p_2000 values in (2000),
partition p_3000 values in (3000)
);
create table t2
(
company_id bigint(5),
dept_id bigint(5),
dept_name varchar(100),
primary key (company_id, dept_id)
) partition by list (company_id) (
partition p_1000 values in (1000),
partition p_2000 values in (2000),
partition p_3000 values in (3000)
);
insert into t2 values
(1000, 10, 'Engineering'),
(1000, 20, 'Product Management'),
(1000, 30, 'QA'),
(2000, 40, 'Support'),
(2000, 50, 'Professional Services');
insert into t1 values
(1000, 10, 1, 'John'),
(1000, 10, 2, 'Smith'),
(1000, 20, 3, 'Jacob'),
(1000, 20, 4, 'Brian'),
(1000, 30, 5, 'Chris'),
(1000, 30, 6, 'Ryan'),
(2000, 40, 7, 'Karin'),
(2000, 40, 8, 'Jay'),
(2000, 50, 9, 'Ana'),
(2000, 50, 10, 'Jessica');
# Table t2 should have only partition p_1000.
explain partitions
select * from t1
where company_id = 1000
and dept_id in (select dept_id from t2 where COMPANY_ID = 1000);
id select_type table partitions type possible_keys key key_len ref rows Extra
1 PRIMARY t2 p_1000 ref PRIMARY PRIMARY 8 const 2 Using index
1 PRIMARY t1 p_1000 ALL PRIMARY NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
drop table t1,t2;
......@@ -2047,6 +2047,60 @@ f1 f2 f3 f4
DROP TABLE t1;
DROP VIEW v3;
#
# MDEV-6105: Emoji unicode character string search query makes mariadb performance down
#
SET NAMES utf8;
DROP TABLE IF EXISTS t1;
Warnings:
Note 1051 Unknown table 'test.t1'
CREATE TABLE t1(
id int AUTO_INCREMENT,
fd varchar(20),
primary key(id),
index ix_fd(fd)
)engine=innodb default charset=UTF8;
INSERT INTO t1(id, fd) VALUES (null, ''),(null, 'matt'),(null, 'pitt'),(null, 'lee'),(null, 'kim');
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
# The following should show "Impossible WHERE" :
explain
SELECT * FROM t1 WHERE fd='😁';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
Warnings:
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
SELECT * FROM t1 WHERE fd='😁';
id fd
Warnings:
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
# The following must not use range access:
explain select count(*) from t1 where fd <'😁';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index ix_fd ix_fd 63 NULL # Using where; Using index
Warnings:
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
select count(*) from t1 where fd <'😁';
count(*)
40960
Warnings:
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
select count(*) from t1 ignore index (ix_fd) where fd <'😁';
count(*)
40960
drop table t1;
set names default;
#
# BUG#13731380: RANGE OPTIMIZER CALLS RECORDS_IN_RANGE() FOR OPEN RANGE
#
CREATE TABLE t1 (pk INT PRIMARY KEY);
......
......@@ -2049,6 +2049,60 @@ f1 f2 f3 f4
DROP TABLE t1;
DROP VIEW v3;
#
# MDEV-6105: Emoji unicode character string search query makes mariadb performance down
#
SET NAMES utf8;
DROP TABLE IF EXISTS t1;
Warnings:
Note 1051 Unknown table 'test.t1'
CREATE TABLE t1(
id int AUTO_INCREMENT,
fd varchar(20),
primary key(id),
index ix_fd(fd)
)engine=innodb default charset=UTF8;
INSERT INTO t1(id, fd) VALUES (null, ''),(null, 'matt'),(null, 'pitt'),(null, 'lee'),(null, 'kim');
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
INSERT INTO t1 (fd) SELECT fd FROM t1;
# The following should show "Impossible WHERE" :
explain
SELECT * FROM t1 WHERE fd='😁';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
Warnings:
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
SELECT * FROM t1 WHERE fd='😁';
id fd
Warnings:
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
# The following must not use range access:
explain select count(*) from t1 where fd <'😁';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index ix_fd ix_fd 63 NULL # Using where; Using index
Warnings:
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
select count(*) from t1 where fd <'😁';
count(*)
40960
Warnings:
Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column 'fd' at row 1
select count(*) from t1 ignore index (ix_fd) where fd <'😁';
count(*)
40960
drop table t1;
set names default;
#
# BUG#13731380: RANGE OPTIMIZER CALLS RECORDS_IN_RANGE() FOR OPEN RANGE
#
CREATE TABLE t1 (pk INT PRIMARY KEY);
......
......@@ -1148,5 +1148,35 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
1 PRIMARY t4 index NULL PRIMARY 59 NULL 2 Using where; Using index; End temporary
DROP TABLE t1,t2,t3,t4;
#
# MDEV-6263: Wrong result when using IN subquery with order by
#
CREATE TABLE t1 (
id int(11) NOT NULL,
nombre varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO t1 (id, nombre) VALUES
(1, 'row 1'),(2, 'row 2'),(3, 'row 3'),
(4, 'row 4'),(5, 'row 5'),(6, 'row 6');
CREATE TABLE t2 (
id_algo int(11) NOT NULL,
id_agente int(11) NOT NULL,
PRIMARY KEY (id_algo,id_agente),
KEY another_data (id_agente)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO t2 (id_algo, id_agente) VALUES
(1, 1),(1, 2),(2, 1),(2, 2),(2, 3),(3, 1);
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2) ORDER BY nombre ASC;
id nombre
1 row 1
2 row 2
3 row 3
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2);
id nombre
1 row 1
2 row 2
3 row 3
DROP TABLE t1, t2;
# This must be the last in the file:
set optimizer_switch=@subselect_sj2_tmp;
......@@ -1163,6 +1163,36 @@ id select_type table type possible_keys key key_len ref rows Extra
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)
DROP TABLE t1,t2,t3,t4;
#
# MDEV-6263: Wrong result when using IN subquery with order by
#
CREATE TABLE t1 (
id int(11) NOT NULL,
nombre varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO t1 (id, nombre) VALUES
(1, 'row 1'),(2, 'row 2'),(3, 'row 3'),
(4, 'row 4'),(5, 'row 5'),(6, 'row 6');
CREATE TABLE t2 (
id_algo int(11) NOT NULL,
id_agente int(11) NOT NULL,
PRIMARY KEY (id_algo,id_agente),
KEY another_data (id_agente)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO t2 (id_algo, id_agente) VALUES
(1, 1),(1, 2),(2, 1),(2, 2),(2, 3),(3, 1);
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2) ORDER BY nombre ASC;
id nombre
1 row 1
2 row 2
3 row 3
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2);
id nombre
1 row 1
2 row 2
3 row 3
DROP TABLE t1, t2;
# This must be the last in the file:
set optimizer_switch=@subselect_sj2_tmp;
#
......
......@@ -1150,6 +1150,36 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
1 PRIMARY t4 index NULL PRIMARY 59 NULL 2 Using where; Using index; End temporary
DROP TABLE t1,t2,t3,t4;
#
# MDEV-6263: Wrong result when using IN subquery with order by
#
CREATE TABLE t1 (
id int(11) NOT NULL,
nombre varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO t1 (id, nombre) VALUES
(1, 'row 1'),(2, 'row 2'),(3, 'row 3'),
(4, 'row 4'),(5, 'row 5'),(6, 'row 6');
CREATE TABLE t2 (
id_algo int(11) NOT NULL,
id_agente int(11) NOT NULL,
PRIMARY KEY (id_algo,id_agente),
KEY another_data (id_agente)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO t2 (id_algo, id_agente) VALUES
(1, 1),(1, 2),(2, 1),(2, 2),(2, 3),(3, 1);
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2) ORDER BY nombre ASC;
id nombre
1 row 1
2 row 2
3 row 3
SELECT * FROM t1 WHERE id in (select distinct id_agente from t2);
id nombre
1 row 1
2 row 2
3 row 3
DROP TABLE t1, t2;
# This must be the last in the file:
set optimizer_switch=@subselect_sj2_tmp;
set optimizer_switch=default;
......
......@@ -722,6 +722,15 @@ dt
2013-09-21 08:20:30
drop procedure test5041;
SET @@timestamp=DEFAULT;
#
# MDEV-6097 Inconsistent results for CAST(int,decimal,double AS DATETIME)
#
SELECT
CAST(010203101112 AS DATETIME(1)) AS c1,
CAST(010203101112.2 AS DATETIME(1)) AS c2,
CAST(010203101112.2+0e0 AS DATETIME(1)) AS c3;
c1 c2 c3
2001-02-03 10:11:12.0 2001-02-03 10:11:12.2 2001-02-03 10:11:12.2
End of 5.3 tests
#
# Start of 5.5 tests
......
......@@ -301,6 +301,34 @@ Field Type Null Key Default Extra
MAX(t1)+1 decimal(22,1) YES NULL
DROP TABLE t2,t1;
#
# MDEV-4858 Wrong results for a huge unsigned value inserted into a TIME column
#
SET sql_mode=traditional;
CREATE TABLE t1 (a TIME(6));
INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED));
ERROR 22007: Incorrect time value: '18446744069414584320' for column 'a' at row 1
SET sql_mode=DEFAULT;
INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED));
Warnings:
Warning 1264 Out of range value for column 'a' at row 1
SELECT * FROM t1;
a
838:59:59.999999
DROP TABLE t1;
SELECT TIME'00:00:00'> CAST(0xFFFFFFFF00000000 AS UNSIGNED);
TIME'00:00:00'> CAST(0xFFFFFFFF00000000 AS UNSIGNED)
0
Warnings:
Warning 1292 Truncated incorrect time value: '18446744069414584320'
#
# MDEV-6100 No warning on CAST(9000000 AS TIME)
#
SELECT CAST(9000000 AS TIME);
CAST(9000000 AS TIME)
838:59:59
Warnings:
Warning 1292 Truncated incorrect time value: '9000000'
#
# End of 5.3 tests
#
CREATE TABLE t1 (f1 TIME);
......
......@@ -17,46 +17,46 @@ Warnings:
Note 1265 Data truncated for column 'a' at row 1
insert t1 values (99991231235959e1);
Warnings:
Warning 1265 Data truncated for column 'a' at row 1
Warning 1264 Out of range value for column 'a' at row 1
select * from t1;
a
00:00:00.000
00:20:03.123
01:02:03.456
03:04:05.789
15:47:11.123
838:59:59.999
select truncate(a, 6) from t1;
truncate(a, 6)
0.000000
2003.123000
10203.456000
30405.789062
154711.123000
8385959.999000
select a DIV 1 from t1;
a DIV 1
0
2003
10203
30405
154711
8385959
select group_concat(distinct a) from t1;
group_concat(distinct a)
00:00:00.000,00:20:03.123,01:02:03.456,03:04:05.789,15:47:11.123
00:20:03.123,01:02:03.456,03:04:05.789,15:47:11.123,838:59:59.999
alter table t1 engine=innodb;
select * from t1 order by a;
a
00:00:00.000
00:20:03.123
01:02:03.456
03:04:05.789
15:47:11.123
838:59:59.999
select * from t1 order by a+0;
a
00:00:00.000
00:20:03.123
01:02:03.456
03:04:05.789
15:47:11.123
838:59:59.999
drop table t1;
create table t1 (a time(4)) engine=innodb;
insert t1 values ('2010-12-11 01:02:03.456789');
......
......@@ -1876,8 +1876,8 @@ SELECT(SELECT 1 AS a FROM dual ORDER BY a DESC LIMIT 1) AS dev;
dev
1
#
# LP bug#1010729: Unexpected syntax error from UNION
# (bug #54382) with single-table join nest
# lp:1010729: Unexpected syntax error from UNION
# (bug #54382) with single-table join nest
#
CREATE TABLE t1 (a int);
CREATE TABLE t2 (b int);
......@@ -1892,3 +1892,12 @@ UNION
SELECT t1.pk FROM t1 LEFT JOIN (t2) ON (t1.pk = t2.fk);
pk
DROP TABLE t1,t2;
create table t1 (a int);
insert t1 values (1),(2),(3),(1);
explain select 1 from dual where exists (select max(a) from t1 group by a union select a+2 from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
2 SUBQUERY t1 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort
3 UNION t1 ALL NULL NULL NULL NULL 4
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
drop table t1;
This diff is collapsed.
RESET MASTER;
connection default;
CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=INNODB;
INSERT INTO t1(a, b) VALUES(1,2),(2,4),(3,6),(4,8),(5,10);
SET DEBUG_SYNC = "open_and_process_table signal truncate_before_lock wait_for forever";
TRUNCATE t1;
connect con1,localhost,root,,;
SET DEBUG_SYNC = "now wait_for truncate_before_lock";
SELECT ((@id := id) - id) FROM information_schema.processlist WHERE processlist.info LIKE '%TRUNCATE t1%' AND state LIKE '%open_and_process_table%';
((@id := id) - id)
0
KILL QUERY @id;
connection default;
ERROR 70100: Query execution was interrupted
connection con1;
include/show_binlog_events.inc
connection con1;
connection con1;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=INNODB
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Intvar # # INSERT_ID=1
master-bin.000001 # Query # # use `test`; INSERT INTO t1(a, b) VALUES(1,2),(2,4),(3,6),(4,8),(5,10)
master-bin.000001 # Xid # # COMMIT /* XID */
connection con1;
connection con1;
disconnect con1;
connection default;
SELECT * FROM t1;
id a b
1 1 2
2 2 4
3 3 6
4 4 8
5 5 10
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
###############################################################################
# Bug#17942050:KILL OF TRUNCATE TABLE WILL LEAD TO BINARY LOG WRITTEN WHILE
# ROWS REMAINS
#
# Problem:
# ========
# When truncate table fails while using transactional based engines even
# though the operation errors out we still continue and log it to binlog.
# Because of this master has data but the truncate will be written to binary
# log which will cause inconsistency.
#
# Test:
# =====
# Make master to wait in "open_table" call during the execution of truncate
# table command and kill the truncate table from other connection. This causes
# open table to return an error saying truncate failed during open table. This
# statement should not be binlogged.
###############################################################################
--source include/have_innodb.inc
--source include/have_debug_sync.inc
--source include/have_binlog_format_statement.inc
RESET MASTER;
--enable_connect_log
--connection default
CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=INNODB;
INSERT INTO t1(a, b) VALUES(1,2),(2,4),(3,6),(4,8),(5,10);
SET DEBUG_SYNC = "open_and_process_table signal truncate_before_lock wait_for forever";
--send TRUNCATE t1
connect(con1,localhost,root,,);
SET DEBUG_SYNC = "now wait_for truncate_before_lock";
# Wait for one connection to reach open_and_process_table.
--let $show_statement= SHOW PROCESSLIST
--let $field= State
--let $condition= 'debug sync point: open_and_process_table';
--source include/wait_show_condition.inc
SELECT ((@id := id) - id) FROM information_schema.processlist WHERE processlist.info LIKE '%TRUNCATE t1%' AND state LIKE '%open_and_process_table%';
# Test killing from mysql server
KILL QUERY @id;
connection default;
--ERROR ER_QUERY_INTERRUPTED
--reap
connection con1;
--source include/show_binlog_events.inc
disconnect con1;
--source include/wait_until_disconnected.inc
connection default;
SELECT * FROM t1;
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
--disable_connect_log
CREATE TABLE t1 (
id int NOT NULL AUTO_INCREMENT,
a int NOT NULL,
b int NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY ba (b, a)
) ENGINE=InnoDB;
INSERT INTO t1 (a, b) VALUES(1,101),(1,102),(1,103),(1,104),(1,105),(1,106),(1,107),(1,108),(1,109),(1,110);
SELECT COUNT(DISTINCT b) FROM t1 WHERE a = 1;
COUNT(DISTINCT b)
10
DROP TABLE t1;
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -1521,6 +1521,11 @@ INSERT INTO t1 VALUES (1),(2);
SELECT 1 FROM t1 GROUP BY MONTHNAME(0) WITH ROLLUP;
DROP TABLE t1;
--echo #
--echo # MDEV-6099 Bad results for DATE_ADD(.., INTERVAL 2000000000000000000.0 SECOND)
--echo #
SELECT DATE_ADD('2001-01-01 10:20:30',INTERVAL 250000000000.0 SECOND) AS c1, DATE_ADD('2001-01-01 10:20:30',INTERVAL 2000000000000000000.0 SECOND) AS c2;
--echo #
--echo # MDEV-4838 Wrong metadata for DATE_ADD('string', INVERVAL)
--echo #
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment