Merge 10.5 into 10.6

This commit is contained in:
Marko Mäkelä 2020-08-04 07:55:16 +03:00
commit 9a7948e3f6
472 changed files with 12262 additions and 4832 deletions

View File

@ -40,7 +40,14 @@ addons:
- g++-9 # ubuntu-toolchain-r/test (xenial and bionic)
- gdb
- libaio-dev
- libboost-atomic-dev
- libboost-chrono-dev
- libboost-date-time-dev
- libboost-dev
- libboost-filesystem-dev
- libboost-regex-dev
- libboost-system-dev
- libboost-thread-dev
- libcrack2-dev
- libcurl3-dev
- libdbd-mysql
@ -52,6 +59,7 @@ addons:
- libnuma-dev
- libpam0g-dev
- libpcre2-dev
- libreadline-gplv2-dev
- libsnappy-dev
- libssl-dev
- libstemmer-dev

View File

@ -197,6 +197,7 @@ ENDIF()
OPTION(NOT_FOR_DISTRIBUTION "Allow linking with GPLv2-incompatible system libraries. Only set it you never plan to distribute the resulting binaries" OFF)
INCLUDE(check_compiler_flag)
INCLUDE(check_linker_flag)
OPTION(WITH_ASAN "Enable address sanitizer" OFF)
@ -250,7 +251,7 @@ OPTION(SECURITY_HARDENED "Use security-enhancing compiler features (stack protec
IF(SECURITY_HARDENED AND NOT WITH_ASAN AND NOT WITH_UBSAN AND NOT WITH_TSAN)
# security-enhancing flags
MY_CHECK_AND_SET_COMPILER_FLAG("-pie -fPIC")
MY_CHECK_AND_SET_COMPILER_FLAG("-Wl,-z,relro,-z,now")
MY_CHECK_AND_SET_LINKER_FLAG("-Wl,-z,relro,-z,now")
MY_CHECK_AND_SET_COMPILER_FLAG("-fstack-protector --param=ssp-buffer-size=4")
MY_CHECK_AND_SET_COMPILER_FLAG("-D_FORTIFY_SOURCE=2" RELEASE RELWITHDEBINFO)
ENDIF()

View File

@ -896,6 +896,7 @@ static const char *expected_errors[]=
"ERROR 1290", /* RR_OPTION_PREVENTS_STATEMENT */
"ERROR 1347", /* 'mysql.user' is not of type 'BASE TABLE' */
"ERROR 1348", /* Column 'Show_db_priv' is not updatable */
"ERROR 1356", /* definer of view lack rights (UPDATE) */
0
};

View File

@ -128,7 +128,7 @@ ENDIF()
IF(UNIX)
SET(WITH_EXTRA_CHARSETS all CACHE STRING "")
SET(PLUGIN_AUTH_PAM YES)
SET(PLUGIN_AUTH_PAM YES CACHE BOOL "")
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
IF(NOT IGNORE_AIO_CHECK)

View File

@ -0,0 +1,27 @@
include(CheckCXXSourceCompiles)
FUNCTION(MY_CHECK_AND_SET_LINKER_FLAG flag_to_set)
# Let's avoid expensive compiler tests on Windows:
IF(WIN32)
RETURN()
ENDIF()
STRING(REGEX REPLACE "[-,= +]" "_" result "HAVE_LINK_FLAG_${flag_to_set}")
SET(SAVE_CMAKE_REQUIRED_LINK_OPTIONS "${CMAKE_REQUIRED_LINK_OPTIONS}")
STRING(REGEX REPLACE "^-Wno-" "-W" flag_to_check ${flag_to_set})
SET(CMAKE_REQUIRED_LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS} ${flag_to_check})
CHECK_CXX_SOURCE_COMPILES("int main(void) { return 0; }" ${result})
SET(CMAKE_REQUIRED_LINK_OPTIONS "${SAVE_CMAKE_REQUIRED_LINK_OPTIONS}")
IF (${result})
FOREACH(linktype SHARED MODULE EXE)
IF(ARGN)
FOREACH(type ${ARGN})
SET(CMAKE_${linktype}_LINKER_FLAGS_${type}
"${CMAKE_${linktype}_LINKER_FLAGS_${type}} ${flag_to_set}" PARENT_SCOPE)
ENDFOREACH()
ELSE()
SET(CMAKE_${linktype}_LINKER_FLAGS
"${CMAKE_${linktype}_LINKER_FLAGS} ${flag_to_set}" PARENT_SCOPE)
ENDIF()
ENDFOREACH()
ENDIF()
ENDFUNCTION()

View File

@ -69,6 +69,11 @@ IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686" AND CMAKE_COMPILER_IS_GNUCC AND
SET(PLUGIN_QUERY_RESPONSE_TIME NO CACHE BOOL "Disabled, gcc is too old")
ENDIF()
# use runtime atomic-support detection in aarch64
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
MY_CHECK_AND_SET_COMPILER_FLAG("-moutline-atomics")
ENDIF()
IF(WITHOUT_DYNAMIC_PLUGINS)
MESSAGE("Dynamic plugins are disabled.")
ENDIF(WITHOUT_DYNAMIC_PLUGINS)

View File

@ -1,6 +0,0 @@
all:
distclean:
-rm -f Makefile
.PHONY: all distclean clean install check

View File

@ -1,6 +0,0 @@
all:
distclean:
-rm -f Makefile
.PHONY: all distclean clean install check

View File

@ -5,7 +5,7 @@
## Check MyISAM and Aria unclosed tables.
# - Requires the server to be up.
# - Is supposed to run silently in background.
# - Is supposed to run silently in background.
function check_for_crashed_tables() {
set -e
set -u
@ -15,7 +15,7 @@ function check_for_crashed_tables() {
# Checking for $? is unreliable so the size of the output is checked.
# Some table handlers like HEAP do not support CHECK TABLE.
tempfile=`tempfile`
tempfile=$(mktemp)
# We have to use xargs in this case, because a for loop barfs on the
# spaces in the thing to be looped over.
@ -25,7 +25,7 @@ function check_for_crashed_tables() {
LC_ALL=C $MYSQL --skip-column-names --batch -e '
select concat('\''select count(*) into @discard from `'\'',
TABLE_SCHEMA, '\''`.`'\'', TABLE_NAME, '\''`'\'')
TABLE_SCHEMA, '\''`.`'\'', TABLE_NAME, '\''`'\'')
from information_schema.TABLES where TABLE_SCHEMA<>'\''INFORMATION_SCHEMA'\'' and TABLE_SCHEMA<>'\''PERFORMANCE_SCHEMA'\'' and ( ENGINE='\''MyISAM'\'' or ENGINE='\''Aria'\'' )' | \
xargs -i $MYSQL --skip-column-names --silent --batch \
--force -e "{}" &>$tempfile
@ -39,8 +39,8 @@ function check_for_crashed_tables() {
$MYADMIN processlist status
) >> $tempfile
# Check for presence as a dependency on mailx would require an MTA.
if [ -x /usr/bin/mailx ]; then
mailx -e -s"$MYCHECK_SUBJECT" $MYCHECK_RCPT < $tempfile
if [ -x /usr/bin/mailx ]; then
mailx -e -s"$MYCHECK_SUBJECT" $MYCHECK_RCPT < $tempfile
fi
(echo "$MYCHECK_SUBJECT"; cat $tempfile) | logger -p daemon.warn -i -t$0
fi
@ -49,7 +49,7 @@ function check_for_crashed_tables() {
## Check for tables needing an upgrade.
# - Requires the server to be up.
# - Is supposed to run silently in background.
# - Is supposed to run silently in background.
function upgrade_system_tables_if_necessary() {
set -e
set -u
@ -69,7 +69,7 @@ function upgrade_system_tables_if_necessary() {
function check_root_accounts() {
set -e
set -u
logger -p daemon.info -i -t$0 "Checking for insecure root accounts."
ret=$( echo "SELECT count(*) FROM mysql.user WHERE user='root' and password='' and plugin in ('', 'mysql_native_password', 'mysql_old_password');" | $MYSQL --skip-column-names )

View File

@ -1,20 +0,0 @@
#
# !include this file into your my.cnf (or any of *.cnf files in /etc/mysql/conf.d)
# and it will enable data at rest encryption. This is a simple way to
# ensure that everything that can be encrypted will be and your
# data will not leak unencrypted.
#
# DO NOT EDIT THIS FILE! On MariaDB upgrades it might be replaced with a
# newer version and your edits will be lost. Instead, add your edits
# to the .cnf file after the !include directive.
#
# NOTE that you also need to install an encryption plugin for the encryption
# to work. See https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/#encryption-key-management
#
[mariadb]
aria-encrypt-tables
encrypt-binlog
encrypt-tmp-disk-tables
encrypt-tmp-files
loose-innodb-encrypt-log
loose-innodb-encrypt-tables

View File

@ -3,7 +3,7 @@
# vim: tw=160:nowrap:expandtab:tabstop=3:shiftwidth=3:softtabstop=3
# This program is copyright (c) 2006 Baron Schwartz, baron at xaprb dot com.
# Maintainers since 2013 : Kenny Gryp - Frédéric Descamps
# Maintainers since 2013 : Kenny Gryp - Frédéric Descamps
# Feedback and improvements are gratefully received.
#
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
@ -640,7 +640,7 @@ sub parse_fk_section {
} else {
( $ts, $type ) = $fulltext =~ m/^$s\s+(\w+)/m;
$section->{'ts'} = [ parse_innodb_timestamp( $ts ) ];
}
}
$section->{'timestring'} = ts_to_string($section->{'ts'});
$section->{'type'} = $type;
@ -715,7 +715,7 @@ sub parse_fk_bad_constraint_error {
@{$section}{ qw(reason) } = $fulltext =~ m/:\s*([^:]+)(?= Constraint:|$)/ms;
$section->{'reason'} =~ s/\s+/ /g
if $section->{'reason'};
# Certain data may not be present. Make them '' if not present.
map { $section->{$_} ||= "" }
qw(child_index fk_name col_name parent_table parent_col);
@ -1042,7 +1042,7 @@ sub parse_tx_text {
if ( $txn =~ m/^TABLE LOCK|RECORD LOCKS/ ) {
$locks = [parse_innodb_record_locks($txn, $complete, $debug, $full)];
}
my ( $tables_in_use, $tables_locked )
= $txn
=~ m/^mysql tables in use $d, locked $d$/m;
@ -1544,7 +1544,7 @@ innotop is a MySQL and InnoDB transaction/status monitor, like 'top' for
MySQL. It displays queries, InnoDB transactions, lock waits, deadlocks,
foreign key errors, open tables, replication status, buffer information,
row operations, logs, I/O operations, load graph, and more. You can
monitor many servers at once with innotop.
monitor many servers at once with innotop.
USAGE
exit(1);
@ -4695,23 +4695,23 @@ sub main {
if ( !$windows ) {
delete $config{max_height};
}
# Try to lower my priority.
eval { setpriority(0, 0, getpriority(0, 0) + 10); };
# Print stuff to the screen immediately, don't wait for a newline.
$OUTPUT_AUTOFLUSH = 1;
# Clear the screen and load the configuration.
$clear_screen_sub->();
load_config();
# Override config variables with command-line options
my %cmdline =
map { $_->{c} => $opts{$_->{k}} }
grep { exists $_->{c} && exists $opts{$_->{k}} }
@opt_spec;
foreach my $name (keys %cmdline) {
next if not defined $cmdline{$name};
my $val = $cmdline{$name};
@ -4719,23 +4719,23 @@ sub main {
$config{$name}->{val} = $val;
}
}
post_process_tbl_meta();
# Make sure no changes are written to config file in non-interactive mode.
if ( $opts{n} ) {
$config{readonly}->{val} = 1;
}
eval {
# Open the file for InnoDB status
if ( @ARGV ) {
my $filename = shift @ARGV;
open $file, "<", $filename
or die "Cannot open '$filename': $OS_ERROR";
}
# In certain modes we might have to collect data for two cycles
# before printing anything out, so we need to bump up the count one.
if ( $opts{n} && $opts{count} && $config{status_inc}->{val}
@ -4743,16 +4743,16 @@ sub main {
{
$opts{count}++;
}
while (++$clock) {
my $mode = $config{mode}->{val} || 'Q';
if ( !$modes{$mode} ) {
die "Mode '$mode' doesn't exist; try one of these:\n"
. join("\n", map { " $_ $modes{$_}->{hdr}" } sort keys %modes)
. "\n";
}
if ( !$opts{n} ) {
@last_term_size = @this_term_size;
@this_term_size = Term::ReadKey::GetTerminalSize(\*STDOUT);
@ -4763,13 +4763,13 @@ sub main {
}
die("Can't read terminal size") unless @this_term_size;
}
# If there's no connection to a database server, we need to fix that...
if ( !%connections ) {
print "You have not defined any database connections.\n\n";
add_new_dsn();
}
# See whether there are any connections defined for this mode. If there's only one
# connection total, assume the user wants to just use innotop for a single server
# and don't ask which server to connect to. Also, if we're monitoring from a file,
@ -4782,20 +4782,20 @@ sub main {
choose_connections();
}
}
# Term::ReadLine might have re-set $OUTPUT_AUTOFLUSH.
$OUTPUT_AUTOFLUSH = 1;
# Prune old data
my $sets = $config{num_status_sets}->{val};
foreach my $store ( values %vars ) {
delete @{$store}{ grep { $_ < $clock - $sets } keys %$store };
}
%info_gotten = ();
# Call the subroutine to display this mode.
$modes{$mode}->{display_sub}->();
# It may be time to quit now.
if ( $opts{count} && $clock >= $opts{count} ) {
finish();
@ -4805,7 +4805,7 @@ sub main {
foreach my $cxn ( grep { $dbhs{$_}->{failed} } keys %dbhs ) {
eval { connect_to_db($cxn); }; # Ignore errors entirely here.
}
# Wait for a bit.
if ( $opts{n} ) {
sleep($config{interval}->{val});
@ -4815,10 +4815,10 @@ sub main {
$char = ReadKey($config{interval}->{val});
ReadMode('normal');
}
# Handle whatever action the key indicates.
do_key_action();
}
};
if ( $EVAL_ERROR ) {
@ -5620,7 +5620,7 @@ sub display_M {
push @slave_io_status, extract_values($set, $set, $pre, 'slave_io_status');
}
}
if ( $linecount < 1 ) {
if ( $linecount < 1 ) {
$channel = 'no_channels';
my $chcxn = $channel . '=' . $cxn;
get_slave_status($cxn,$channel);
@ -6546,7 +6546,7 @@ sub set_to_tbl {
map { push @group_by, $_ if $_ !~ /^cxn$/ } @{$meta->{group_by}};
$meta->{group_by} = \@group_by;
}
# if cxn is not visible and there is now more than one connection,
# if cxn is not visible and there is now more than one connection,
# make cxn visible again. assume it's not in group_by if it's not
# visible
else {
@ -7187,7 +7187,7 @@ sub distill {
}
$query .= " " . $t;
}
}
}
# die $orig_query if $query eq 'LOCK lock';
return $query;
@ -7524,7 +7524,7 @@ sub do_stmt {
# Test if the cxn should not even be tried
return undef if $dbhs{$cxn}
&& $dbhs{$cxn}->{failed}
&& $dbhs{$cxn}->{failed}
&& ( !$dbhs{$cxn}->{dbh} || !$dbhs{$cxn}->{dbh}->{Active} || $dbhs{$cxn}->{mode} eq $config{mode}->{val} );
my $sth;
@ -7599,7 +7599,7 @@ sub do_query {
# Test if the cxn should not even be tried
return undef if $dbhs{$cxn}
&& $dbhs{$cxn}->{failed}
&& $dbhs{$cxn}->{failed}
&& ( !$dbhs{$cxn}->{dbh} || !$dbhs{$cxn}->{dbh}->{Active} || $dbhs{$cxn}->{mode} eq $config{mode}->{val} );
my $sth;
@ -7627,7 +7627,7 @@ sub do_query {
}
}
}
return $sth;
}
@ -7892,17 +7892,17 @@ sub migrate_config {
# load_config {{{3
sub load_config {
my ($old_filename, $answer);
if ( $opts{u} or $opts{p} or $opts{h} or $opts{P} or $opts{S} ) {
my @params = $dsn_parser->get_cxn_params(\%opts); # dsn=$params[0]
add_new_dsn($opts{h} || 'localhost', $params[0], 'test.innotop_dl',
add_new_dsn($opts{h} || 'localhost', $params[0], 'test.innotop_dl',
$opts{u} ? 1 : 0, $opts{u}, $opts{p} ? 1 : 0, $opts{p});
}
if ($opts{c}) {
$conf_file = $opts{c};
}
}
# If we don't have a new config file but we do have an old one,
# innotop got upgraded and this is an old config file. Convert it, but
# don't overwrite something existing.
@ -7930,14 +7930,14 @@ sub load_config {
$conf_file = $default_central_conf;
}
else {
# If no config file was loaded, set readonly to 0 if the user wants to
# If no config file was loaded, set readonly to 0 if the user wants to
# write a config
$config{readonly}->{val} = 0 if $opts{w};
# If no connections have been defined, connect to a MySQL database
# If no connections have been defined, connect to a MySQL database
# on localhost using mariadb_read_default_group=client
if (!%connections) {
add_new_dsn('localhost',
'DBI:MariaDB:;host=localhost;mariadb_read_default_group=client',
add_new_dsn('localhost',
'DBI:MariaDB:;host=localhost;mariadb_read_default_group=client',
'test.innotop_dl');
}
}
@ -8476,7 +8476,7 @@ sub save_config {
elsif ($conf_file and $opts{w}) {
print "Loaded config file on start-up, so ignoring -w (see --help)\n"
}
my $dirname = dirname($conf_file);
# if directories don't exist, create them. This could cause errors
@ -9819,7 +9819,7 @@ sub get_slave_status {
}
} else {
my $dbh = connect_to_db($cxn);
my $sql = 'SHOW SLAVE STATUS FOR CHANNEL \'' . $channel . '\'';
my $sql = 'SHOW SLAVE STATUS FOR CHANNEL \'' . $channel . '\'';
my $stmt = $dbh->prepare($sql ) ;
$stmt->execute();
my $res = $stmt->fetchall_arrayref({});
@ -9835,8 +9835,8 @@ sub get_slave_status {
}
}
}
sub is_func {
@ -9902,8 +9902,8 @@ host, use the -h option.
After you've connected, innotop should show you something like the following:
[RO] Query List (? for help) localhost, 01:11:19, 449.44 QPS, 14/7/163 con/run
CXN When Load QPS Slow QCacheHit KCacheHit BpsIn BpsOut
CXN When Load QPS Slow QCacheHit KCacheHit BpsIn BpsOut
localhost Total 0.00 1.07k 697 0.00% 98.17% 476.83k 242.83k
CXN Cmd ID User Host DB Time Query
@ -10070,7 +10070,7 @@ L<"cmd_summary"> table, which looks something like the following:
Command Summary (? for help) localhost, 25+07:16:43, 2.45 QPS, 3 thd, 5.0.40
_____________________ Command Summary _____________________
Name Value Pct Last Incr Pct
Name Value Pct Last Incr Pct
Select_scan 3244858 69.89% 2 100.00%
Select_range 1354177 29.17% 0 0.00%
Select_full_join 39479 0.85% 0 0.00%
@ -11189,7 +11189,7 @@ L<"STATUS_VARIABLES">.
=item slave_io_status
Displays data about the slave I/O thread. Data source:
Displays data about the slave I/O thread. Data source:
L<"STATUS_VARIABLES">.
=item slave_sql_status
@ -11438,8 +11438,8 @@ L<"processlist"> table when prompted).
Your display might now look like the following:
Query List (? for help) localhost, 32:33, 0.11 QPS, 1 thd, 5.0.38-log
CXN Cmd Cnt ID User Host Time Query
CXN Cmd Cnt ID User Host Time Query
localhost Query 49 12933 webusr localhost 19:38 SELECT * FROM
localhost Sending Da 23 2383 webusr localhost 12:43 SELECT col1,
localhost Sleep 120 140 webusr localhost 5:18:12
@ -11488,14 +11488,14 @@ matches the row; if it does, the row gets the specified color, and no further
rules are evaluated. The rules look like the following:
state eq Locked black on_red
cmd eq Sleep white
user eq system user white
cmd eq Connect white
cmd eq Binlog Dump white
time > 600 red
time > 120 yellow
time > 60 green
time > 30 cyan
cmd eq Sleep white
user eq system user white
cmd eq Connect white
cmd eq Binlog Dump white
time > 600 red
time > 120 yellow
time > 60 green
time > 30 cyan
This is the default rule set for the L<"processlist"> table. In order of
priority, these rules make locked queries black on a red background, "gray out"
@ -11639,9 +11639,9 @@ screen, it will prompt you to choose one of them. Once you do, innotop will
show you something like this:
Editing table definition for Buffer Pool. Press ? for help, q to quit.
name hdr label src
cxn CXN Connection from which cxn
name hdr label src
cxn CXN Connection from which cxn
buf_pool_size Size Buffer pool size IB_bp_buf_poo
buf_free Free Bufs Buffers free in the b IB_bp_buf_fre
pages_total Pages Pages total IB_bp_pages_t
@ -11931,15 +11931,15 @@ whitespace).
use strict;
use warnings FATAL => 'all';
package Innotop::Plugin::Example;
# description: Adds an 'example' column to every table
sub new {
my ( $class, %vars ) = @_;
# Store reference to innotop's variables in $self
my $self = bless { %vars }, $class;
# Design the example column
my $col = {
hdr => 'Example',
@ -11951,7 +11951,7 @@ whitespace).
tbl => '',
trans => [],
};
# Add the column to every table.
my $tbl_meta = $vars{tbl_meta};
foreach my $tbl ( values %$tbl_meta ) {
@ -11960,17 +11960,17 @@ whitespace).
# Add the column to the list of visible columns
unshift @{$tbl->{visible}}, 'example';
}
# Be sure to return a reference to the object.
return $self;
}
# I'd like to be called when a data set is being rendered into a table, please.
sub register_for_events {
my ( $self ) = @_;
return qw(set_to_tbl_pre_filter);
}
# This method will be called when the event fires.
sub set_to_tbl_pre_filter {
my ( $self, $rows, $tbl ) = @_;
@ -11979,7 +11979,7 @@ whitespace).
$row->{example} = 1;
}
}
1;
=head2 Plugin Editor
@ -12181,7 +12181,7 @@ Allen K. Smith,
Aurimas Mikalauskas,
Bartosz Fenski,
Brian Miezejewski,
Christian Hammers,
Christian Hammers,
Cyril Scetbon,
Dane Miller,
David Multer,

View File

@ -193,8 +193,8 @@ After you've connected, innotop should show you something like the following:
.PP
.Vb 1
\& [RO] Query List (? for help) localhost, 01:11:19, 449.44 QPS, 14/7/163 con/run
\&
\& CXN When Load QPS Slow QCacheHit KCacheHit BpsIn BpsOut
\&
\& CXN When Load QPS Slow QCacheHit KCacheHit BpsIn BpsOut
\& localhost Total 0.00 1.07k 697 0.00% 98.17% 476.83k 242.83k
\&
\& CXN Cmd ID User Host DB Time Query
@ -324,7 +324,7 @@ This mode is similar to mytop's Command Summary mode. It shows the
.Vb 8
\& Command Summary (? for help) localhost, 25+07:16:43, 2.45 QPS, 3 thd, 5.0.40
\& _\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_ Command Summary _\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_\|_
\& Name Value Pct Last Incr Pct
\& Name Value Pct Last Incr Pct
\& Select_scan 3244858 69.89% 2 100.00%
\& Select_range 1354177 29.17% 0 0.00%
\& Select_full_join 39479 0.85% 0 0.00%
@ -1261,7 +1261,7 @@ Displays data about InnoDB's semaphores and mutexes. Data source:
\&\*(L"\s-1STATUS_VARIABLES\*(R"\s0.
.IP "slave_io_status" 4
.IX Item "slave_io_status"
Displays data about the slave I/O thread. Data source:
Displays data about the slave I/O thread. Data source:
\&\*(L"\s-1STATUS_VARIABLES\*(R"\s0.
.IP "slave_sql_status" 4
.IX Item "slave_sql_status"
@ -1472,8 +1472,8 @@ Your display might now look like the following:
.PP
.Vb 1
\& Query List (? for help) localhost, 32:33, 0.11 QPS, 1 thd, 5.0.38\-log
\&
\& CXN Cmd Cnt ID User Host Time Query
\&
\& CXN Cmd Cnt ID User Host Time Query
\& localhost Query 49 12933 webusr localhost 19:38 SELECT * FROM
\& localhost Sending Da 23 2383 webusr localhost 12:43 SELECT col1,
\& localhost Sleep 120 140 webusr localhost 5:18:12
@ -1526,13 +1526,13 @@ rules are evaluated. The rules look like the following:
.PP
.Vb 9
\& state eq Locked black on_red
\& cmd eq Sleep white
\& user eq system user white
\& cmd eq Connect white
\& cmd eq Binlog Dump white
\& time > 600 red
\& time > 120 yellow
\& time > 60 green
\& cmd eq Sleep white
\& user eq system user white
\& cmd eq Connect white
\& cmd eq Binlog Dump white
\& time > 600 red
\& time > 120 yellow
\& time > 60 green
\& time > 30 cyan
.Ve
.PP
@ -1669,9 +1669,9 @@ show you something like this:
.PP
.Vb 1
\& Editing table definition for Buffer Pool. Press ? for help, q to quit.
\&
\& name hdr label src
\& cxn CXN Connection from which cxn
\&
\& name hdr label src
\& cxn CXN Connection from which cxn
\& buf_pool_size Size Buffer pool size IB_bp_buf_poo
\& buf_free Free Bufs Buffers free in the b IB_bp_buf_fre
\& pages_total Pages Pages total IB_bp_pages_t
@ -1924,15 +1924,15 @@ whitespace).
.Vb 2
\& use strict;
\& use warnings FATAL => \*(Aqall\*(Aq;
\&
\&
\& package Innotop::Plugin::Example;
\& # description: Adds an \*(Aqexample\*(Aq column to every table
\&
\&
\& sub new {
\& my ( $class, %vars ) = @_;
\& # Store reference to innotop\*(Aqs variables in $self
\& my $self = bless { %vars }, $class;
\&
\&
\& # Design the example column
\& my $col = {
\& hdr => \*(AqExample\*(Aq,
@ -1944,7 +1944,7 @@ whitespace).
\& tbl => \*(Aq\*(Aq,
\& trans => [],
\& };
\&
\&
\& # Add the column to every table.
\& my $tbl_meta = $vars{tbl_meta};
\& foreach my $tbl ( values %$tbl_meta ) {
@ -1953,17 +1953,17 @@ whitespace).
\& # Add the column to the list of visible columns
\& unshift @{$tbl\->{visible}}, \*(Aqexample\*(Aq;
\& }
\&
\&
\& # Be sure to return a reference to the object.
\& return $self;
\& }
\&
\&
\& # I\*(Aqd like to be called when a data set is being rendered into a table, please.
\& sub register_for_events {
\& my ( $self ) = @_;
\& return qw(set_to_tbl_pre_filter);
\& }
\&
\&
\& # This method will be called when the event fires.
\& sub set_to_tbl_pre_filter {
\& my ( $self, $rows, $tbl ) = @_;
@ -1972,7 +1972,7 @@ whitespace).
\& $row\->{example} = 1;
\& }
\& }
\&
\&
\& 1;
.Ve
.SS "Plugin Editor"
@ -2137,7 +2137,7 @@ Allen K. Smith,
Aurimas Mikalauskas,
Bartosz Fenski,
Brian Miezejewski,
Christian Hammers,
Christian Hammers,
Cyril Scetbon,
Dane Miller,
David Multer,

View File

@ -1,6 +1,7 @@
# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 0. "/etc/mysql/my.cnf" symlinks to this file, reason why all the rest is read.
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
@ -11,15 +12,17 @@
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# If you are new to MariaDB, check out https://mariadb.com/kb/en/basic-mariadb-articles/
#
# This group is read both by the client and the server
# use it for options that affect everything
#
[client-server]
socket = /run/mysqld/mysqld.sock
#port = 3306
# Port or socket location where to connect
# port = 3306
socket = /run/mysqld/mysqld.sock
# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/

View File

@ -4,15 +4,12 @@
#
[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
# default-character-set = utf8mb4
# Example of client certificate usage
# ssl-cert=/etc/mysql/client-cert.pem
# ssl-key=/etc/mysql/client-key.pem
# ssl-cert = /etc/mysql/client-cert.pem
# ssl-key = /etc/mysql/client-key.pem
#
# Allow only TLS encrypted connections
# ssl-verify-server-cert=on
# ssl-verify-server-cert = on
# This group is *never* read by mysql client library, though this
# /etc/mysql/mariadb.cnf.d/client.cnf file is not read by Oracle MySQL

View File

@ -9,12 +9,12 @@
# with the following contents:
#
# [Service]
# User=mysql
# StandardOutput=syslog
# StandardError=syslog
# SyslogFacility=daemon
# SyslogLevel=err
# SyslogIdentifier=mysqld
# User = mysql
# StandardOutput = syslog
# StandardError = syslog
# SyslogFacility = daemon
# SyslogLevel = err
# SyslogIdentifier = mysqld
#
# For more information, please read https://mariadb.com/kb/en/mariadb/systemd/
@ -23,6 +23,6 @@
# It has been reported that passwords should be enclosed with ticks/quotes
# especially if they contain "#" chars...
nice = 0
nice = 0
skip_log_error
syslog

View File

@ -2,19 +2,20 @@
# * Galera-related settings
#
# See the examples of server wsrep.cnf files in /usr/share/mysql
# and read more at https://mariadb.com/kb/en/galera-cluster/
[galera]
# Mandatory settings
#wsrep_on=ON
#wsrep_provider=
#wsrep_cluster_address=
#binlog_format=row
#default_storage_engine=InnoDB
#innodb_autoinc_lock_mode=2
#wsrep_on = ON
#wsrep_provider =
#wsrep_cluster_address =
#binlog_format = row
#default_storage_engine = InnoDB
#innodb_autoinc_lock_mode = 2
# Allow server to accept connections on all interfaces.
#bind-address=0.0.0.0
#bind-address = 0.0.0.0
# Optional settings
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0
#wsrep_slave_threads = 1
#innodb_flush_log_at_trx_commit = 0

View File

@ -0,0 +1 @@
../../../support-files/rpm/enable_encryption.preset

View File

@ -2,6 +2,11 @@
#
# Build MariaDB .deb packages for test and release at mariadb.org
#
# Purpose of this script:
# Always keep the actual packaging as up-to-date as possible following the latest
# Debian policy and targeting Debian Sid. Then case-by-case run in autobake-deb.sh
# tests for backwards compatibility and strip away parts on older builders or
# specfic build environments.
# Exit immediately on any error
set -e
@ -17,21 +22,32 @@ if [[ $TRAVIS ]] || [[ $GITLAB_CI ]]
then
# On both Travis and Gitlab the output log must stay under 4MB so make the
# build less verbose
sed -i -e '/Add support for verbose builds/,/^$/d' debian/rules
sed '/Add support for verbose builds/,/^$/d' -i debian/rules
# MCOL-4149: ColumnStore builds are so slow and big that they must be skipped on
# both Travis-CI and Gitlab-CI
sed 's|-DPLUGIN_COLUMNSTORE=YES|-DPLUGIN_COLUMNSTORE=NO|' -i debian/rules
sed "/Package: mariadb-plugin-columnstore/,/^$/d" -i debian/control
fi
# Travis-CI optimizations to keep build small (in both duration and disk space)
# Don't build or try to put files in a package for selected plugins and compontents on Travis-CI
# in order to keep build small (in both duration and disk space)
if [[ $TRAVIS ]]
then
# Don't include test suite package on Travis-CI to make the build time shorter
# Test suite package not relevant on Travis-CI
sed 's|DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test|DINSTALL_MYSQLTESTDIR=false|' -i debian/rules
sed '/Package: mariadb-test-data/,/^$/d' -i debian/control
sed '/Package: mariadb-test$/,/^$/d' -i debian/control
# Don't build the test package at all to save time and disk space
sed 's|DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test|DINSTALL_MYSQLTESTDIR=false|' -i debian/rules
# Also skip building RocksDB, Mroonga etc to save even more time and disk space
sed 's|-DDEB|-DPLUGIN_MROONGA=NO -DPLUGIN_SPIDER=NO -DPLUGIN_OQGRAPH=NO -DPLUGIN_PERFSCHEMA=NO -DPLUGIN_SPHINX=NO -DDEB|' -i debian/rules
# Extra plugins such as Mroonga, Spider, OQgraph, Sphinx and the embedded build can safely be skipped
sed 's|-DDEB|-DPLUGIN_MROONGA=NO -DPLUGIN_ROCKSDB=NO -DPLUGIN_SPIDER=NO -DPLUGIN_OQGRAPH=NO -DPLUGIN_PERFSCHEMA=NO -DPLUGIN_SPHINX=NO -DWITH_EMBEDDED_SERVER=OFF -DDEB|' -i debian/rules
sed "/Package: mariadb-plugin-mroonga/,/^$/d" -i debian/control
sed "/Package: mariadb-plugin-rocksdb/,/^$/d" -i debian/control
sed "/Package: mariadb-plugin-spider/,/^$/d" -i debian/control
sed "/Package: mariadb-plugin-oqgraph/,/^$/d" -i debian/control
sed "/ha_sphinx.so/d" -i debian/mariadb-server-10.6.install
sed "/Package: libmariadbd19/,/^$/d" -i debian/control
sed "/Package: libmariadbd-dev/,/^$/d" -i debian/control
fi
# Convert gcc version to numberical value. Format is Mmmpp where M is Major
@ -41,19 +57,6 @@ GCCVERSION=$(gcc -dumpfullversion -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g
-e 's/\.\([0-9]\)/0\1/g' \
-e 's/^[0-9]\{3,4\}$/&00/')
# Look up distro-version specific stuff
#
# Always keep the actual packaging as up-to-date as possible following the latest
# Debian policy and targeting Debian Sid. Then case-by-case run in autobake-deb.sh
# tests for backwards compatibility and strip away parts on older builders.
# If libzstd-dev is not available (before Debian Stretch and Ubuntu Xenial)
# remove the dependency from server and RocksDB so it can build properly
if ! apt-cache madison libzstd-dev | grep 'libzstd-dev' >/dev/null 2>&1
then
sed '/libzstd-dev/d' -i debian/control
fi
# If rocksdb-tools is not available (before Debian Buster and Ubuntu Disco)
# remove the dependency from the RocksDB plugin so it can install properly
# and instead ship the one built from MariaDB sources
@ -70,38 +73,6 @@ then
sed 's/libcurl4/libcurl3/g' -i debian/control
fi
# Don't build rocksdb package if gcc version is less than 4.8 or we are running on
# x86 32 bit.
if [[ $GCCVERSION -lt 40800 ]] || [[ $(arch) =~ i[346]86 ]] || [[ $TRAVIS ]]
then
sed '/Package: mariadb-plugin-rocksdb/,/^$/d' -i debian/control
sed -i 's|-DPLUGIN_ROCKSDB=YES|-DPLUGIN_ROCKSDB=NO|' debian/rules
fi
# If libpcre2-dev is not available (before Debian Stretch and Ubuntu Xenial)
# attempt to build using older libpcre3-dev (SIC!)
if ! apt-cache madison libpcre2-dev | grep --quiet 'libpcre2-dev'
then
sed 's/libcurl4-openssl-dev | libcurl4-dev/libpcre3-dev/' -i debian/control
fi
# Mroonga, Spider etc never built on Travis CI anyway, see build flags above
if [[ $TRAVIS ]]
then
sed -i -e "/Package: mariadb-plugin-mroonga/,/^$/d" debian/control
sed -i -e "/Package: mariadb-plugin-spider/,/^$/d" debian/control
sed -i -e "/Package: mariadb-plugin-oqgraph/,/^$/d" debian/control
sed -i -e "/usr\/lib\/mysql\/plugin\/ha_sphinx.so/d" debian/mariadb-server-10.6.install
sed -i -e "/Package: libmariadbd-dev/,/^$/d" debian/control
fi
if [[ $TRAVIS ]] || ! [[ $(arch) =~ 86 ]]
then
sed -i -e "/Package: mariadb-plugin-columnstore/,/^$/d" debian/control
sed -i '/flex/d' debian/control
sed -i 's|-DPLUGIN_COLUMNSTORE=YES|-DPLUGIN_COLUMNSTORE=NO|' debian/rules
fi
# Adjust changelog, add new version
echo "Incrementing changelog and starting build scripts"

27
debian/control vendored
View File

@ -9,10 +9,17 @@ Build-Depends: bison,
dh-apparmor,
dh-exec,
dh-systemd,
flex,
flex [i386 amd64],
gdb,
libaio-dev [linux-any],
libboost-atomic-dev [i386 amd64],
libboost-chrono-dev [i386 amd64],
libboost-date-time-dev [i386 amd64],
libboost-dev,
libboost-filesystem-dev [i386 amd64],
libboost-regex-dev [i386 amd64],
libboost-system-dev [i386 amd64],
libboost-thread-dev [i386 amd64],
libcrack2-dev (>= 2.9.0),
libcurl4-openssl-dev | libcurl4-dev,
libedit-dev,
@ -490,8 +497,7 @@ Package: mariadb-server-10.6
Architecture: any
Suggests: mailx,
mariadb-test,
netcat-openbsd,
tinyca
netcat-openbsd
Recommends: libhtml-template-perl
Pre-Depends: adduser (>= 3.40),
debconf,
@ -642,12 +648,15 @@ Depends: libcurl4,
mariadb-server-10.6 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends}
Description: S3 storage engine for MariaDB
Read only table stored in S3.
Description: Amazon S3 archival storage engine for MariaDB
The S3 storage engine allows one to archive MariaDB tables in Amazon S3 (or any
third-party public or private cloud that implements S3 API), but still have
them accessible in MariaDB in read-only mode.
Package: mariadb-plugin-rocksdb
Architecture: amd64 arm64 mips64el ppc64el
Depends: mariadb-server-10.6 (= ${binary:Version}),
python3,
rocksdb-tools,
${misc:Depends},
${shlibs:Depends}
@ -665,11 +674,11 @@ Description: RocksDB storage engine for MariaDB
Package: mariadb-plugin-columnstore
Architecture: amd64 i386
Depends: mariadb-server-10.6 (= ${binary:Version}),
net-tools,
binutils,
libsnappy1 | libsnappy1v5,
Depends: binutils,
libjemalloc1 | libjemalloc2,
libsnappy1 | libsnappy1v5,
mariadb-server-10.6 (= ${binary:Version}),
net-tools,
python3,
${misc:Depends},
${shlibs:Depends}

View File

@ -18,7 +18,6 @@ usr/bin/ProcMon
usr/bin/ServerMonitor
usr/bin/StorageManager
usr/bin/WriteEngineServer
usr/bin/dbmsReport.sh
usr/bin/autoConfigure
usr/bin/bulklogReport.sh
usr/bin/clearShm
@ -42,6 +41,7 @@ usr/bin/cpimport
usr/bin/cpimport.bin
usr/bin/cplogger
usr/bin/dbbuilder
usr/bin/dbmsReport.sh
usr/bin/dbrmctl
usr/bin/ddlcleanup
usr/bin/disable-rep-columnstore.sh
@ -51,8 +51,11 @@ usr/bin/hardwareReport.sh
usr/bin/idbmeminfo
usr/bin/load_brm
usr/bin/logReport.sh
usr/bin/mariadb-columnstore-start.sh
usr/bin/mariadb-columnstore-stop.sh
usr/bin/mariadb-command-line.sh
usr/bin/master-rep-columnstore.sh
usr/bin/mcs-loadbrm.py
usr/bin/mcs-stop-controllernode.sh
usr/bin/mcsGetConfig
usr/bin/mcsSetConfig
@ -82,10 +85,6 @@ usr/bin/smrm
usr/bin/startupTests.sh
usr/bin/viewtablelock
usr/bin/workernode
usr/bin/mcs-start-storagemanager.py
usr/bin/mcs-loadbrm.py
usr/bin/mariadb-columnstore-start.sh
usr/bin/mariadb-columnstore-stop.sh
usr/lib/*/libalarmmanager.so
usr/lib/*/libbatchloader.so
usr/lib/*/libbrm.so
@ -146,9 +145,9 @@ usr/share/columnstore/mcs-dmlproc.service
usr/share/columnstore/mcs-exemgr.service
usr/share/columnstore/mcs-loadbrm.service
usr/share/columnstore/mcs-primproc.service
usr/share/columnstore/mcs-storagemanager.service
usr/share/columnstore/mcs-workernode.service
usr/share/columnstore/mcs-writeengineserver.service
usr/share/columnstore/mcs-storagemanager.service
usr/share/columnstore/mcstest-001.sh
usr/share/columnstore/mcstest-002.sh
usr/share/columnstore/mcstest-003.sh

View File

@ -3,8 +3,6 @@
set -e
# Install ColumnStore
columnstore-post-install --rpmmode=install
echo "MariaDB ColumnStore install completed"
columnstore-post-install install
#DEBHELPER#

View File

@ -8,22 +8,17 @@ if [ "$1" = "purge" ]; then
rm -f /etc/mysql/mariadb.conf.d/columnstore.cnf.rpmsave
fi
running_systemd() {
if [ "$(ps --no-headers -o comm 1)" = "systemd" ]; then
echo 0
else
echo 1
fi
}
if [ ! -z "$(pgrep -x mysqld)" ];then
systemctl cat mariadb.service > /dev/null 2>&1
if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then
systemctl restart mariadb.service > /dev/null 2>&1
else
pkill mysqld > /dev/null 2>&1
/usr/bin/mysqld_safe &
# Automatically restart MariaDB after ColumnStore plugin has been removed
case "$1" in
purge|remove|disappear)
if [ -d /run/systemd/system ]; then
# If systemd
deb-systemd-invoke restart mariadb.service >/dev/null
elif [ -x "/etc/init.d/mariadb" ]; then
# Fall-back to SysV init
invoke-rc.d mariadb restart || exit $?
fi
fi
;;
esac
#DEBHELPER#

View File

@ -4,6 +4,5 @@ set -e
columnstore-pre-uninstall
exit 0
#DEBHELPER#

View File

@ -0,0 +1 @@
activate-noawait ldconfig

View File

@ -1,2 +1,2 @@
etc/mysql/mariadb.conf.d/cracklib_password_check.cnf
etc/mysql/mariadb.conf.d/cracklib_password_check.cnf
usr/lib/mysql/plugin/cracklib_password_check.so

View File

@ -1,2 +1,2 @@
etc/mysql/mariadb.conf.d/auth_gssapi.cnf
etc/mysql/mariadb.conf.d/auth_gssapi.cnf
usr/lib/mysql/plugin/auth_gssapi.so

View File

@ -1,2 +0,0 @@
# Overridden temporarily to get Salsa-CI pass and not stall other dev work with broken pipeline
python-script-but-no-python-dep usr/bin/myrocks_hotbackup #!python

View File

@ -1,3 +1,4 @@
etc/mysql/mariadb.conf.d/s3.cnf
usr/bin/aria_s3_copy
usr/lib/mysql/plugin/ha_s3.so
usr/share/man/man1/aria_s3_copy.1

View File

@ -18,9 +18,12 @@ stop_server() {
# Return immediately if there are no mysql processes running
# as there is no point in trying to shutdown in that case.
if ! pgrep -x mariadbd > /dev/null; then return; fi
# Compatibility with versions that ran 'mysqld'
if ! pgrep -x mysqld > /dev/null; then return; fi
set +e
invoke-rc.d mariadb stop
invoke-rc.d mysql stop # Backwards compatibility
errno=$?
set -e

View File

@ -31,9 +31,12 @@ stop_server() {
# Return immediately if there are no mysql processes running
# as there is no point in trying to shutdown in that case.
if ! pgrep -x --ns $$ mariadbd > /dev/null; then return; fi
# Compatibility with versions that ran 'mysqld'
if ! pgrep -x --ns $$ mysqld > /dev/null; then return; fi
set +e
invoke-rc.d mariadb stop
invoke-rc.d mysql stop # Backwards compatibility
errno=$?
set -e

View File

@ -1,12 +1,17 @@
etc/columnstore/storagemanager.cnf.example # Copy of etc/columnstore/storagemanager.cnf that is installed
lib/systemd/system/mariadb.service # Installed by rules file
lib/systemd/system/mariadb@.service # Installed by rules file
usr/bin/mysql_config # We already have the MariaDB variant
usr/bin/mytop # Mytop is distributed from a separate source package
usr/bin/sst_dump # Use the one from rocksdb-tools package
usr/lib/sysusers.d/sysusers.conf
usr/lib/tmpfiles.d/tmpfiles.conf
usr/lib/mysql/plugin/JavaWrappers.jar # These are only built if JNI/libjawt.so is installed from e.g. openjdk-8-jre-headless
usr/lib/mysql/plugin/JdbcInterface.jar # These are only built if JNI/libjawt.so is installed from e.g. openjdk-8-jre-headless
usr/lib/sysusers.d/sysusers.conf
usr/lib/tmpfiles.d/tmpfiles.conf
usr/lib/*/libdbbc.a # ColumnStore header file
usr/lib/*/libidbboot.a # ColumnStore header file
usr/lib/*/libprocessor.a # ColumnStore header file
usr/lib/*/libwe_xml.a # ColumnStore header file
usr/share/doc/mariadb-server-10.6/COPYING
usr/share/doc/mariadb-server-10.6/COPYING.AGPLv3
usr/share/doc/mariadb-server-10.6/COPYING.GPLv2

29
debian/rules vendored
View File

@ -1,12 +1,10 @@
#!/usr/bin/make -f
export DH_VERBOSE=1
export DEB_BUILD_HARDENING=1
# enable Debian Hardening
# see: https://wiki.debian.org/Hardening
# Enable Debian Hardening
# https://wiki.debian.org/Hardening
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
# Include all defaults, including buildflags.mk
include /usr/share/dpkg/default.mk
# CPPFLAGS are nor read by CMake, so copy them to CXXFLAGS
# See why at https://cmake.org/Bug/view.php?id=12928
@ -22,6 +20,12 @@ TMP:=$(CURDIR)/debian/tmp
CC := $(DEB_HOST_GNU_TYPE)-gcc
CXX := $(DEB_HOST_GNU_TYPE)-g++
# According to Debian Policy version 4.2.0 builds should be as verbose as
# possible unless 'terse' is specifically passed.
ifeq (,$(filter terse,$(DEB_BUILD_OPTIONS)))
export DH_VERBOSE=1
endif
# Parallel build support as advised
# at https://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
@ -39,6 +43,17 @@ else
TESTSUITE_FAIL_CMD:=exit 1
endif
# RocksDB cannot build on 32-bit platforms
ifeq (32,$(DEB_HOST_ARCH_BITS))
CMAKEFLAGS += -DWITHOUT_ROCKSDB=true
endif
# ColumnStore only attempts to build on a few platforms as dictated by CMake checks
# Also note in debian/control the CS-only build deps marked '[i386 amd64]'
ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),amd64 i386))
CMAKEFLAGS += -DPLUGIN_COLUMNSTORE=YES
endif
# Add extra flag to avoid WolfSSL code crashing the entire mariadbd on s390x. This
# can be removed once upstream has made the code s390x compatible, see
# https://jira.mariadb.org/browse/MDEV-21705 and
@ -81,11 +96,7 @@ endif
-DSYSTEM_TYPE="debian-$(DEB_HOST_GNU_SYSTEM)" \
-DCMAKE_SYSTEM_PROCESSOR=$(DEB_HOST_ARCH) \
-DBUILD_CONFIG=mysql_release \
-DPLUGIN_TOKUDB=NO \
-DPLUGIN_COLUMNSTORE=YES \
-DPLUGIN_ROCKSDB=YES \
-DPLUGIN_AWS_KEY_MANAGEMENT=NO \
-WITH_EMBEDDED_SERVER=OFF \
-DDEB=$(DEB_VENDOR) ..'
# This is needed, otherwise 'make test' will run before binaries have been built

27
debian/salsa-ci.yml vendored
View File

@ -33,7 +33,8 @@ build:
- export CCACHE_DIR="${CCACHE_TMP_DIR}"
- update-ccache-symlinks; ccache -z # Zero out ccache counters
- mk-build-deps debian/control -t "apt-get -y -o Debug::pkgProblemResolver=yes --no-install-recommends" -r -i
- debian/autobake-deb.sh
- while true; do sleep 600; echo "10 minutes passed" >&2; done & # Progress keeper since build is long and silent
- debian/autobake-deb.sh |& tail -n 10000 # Keep Gitlab-CI output under 4 MB
- cd ..; rm -rfv *.tmp # Clean away build files not to store as artifacts
- cp -v *.* ${WORKING_DIR}/
- du -shc ${WORKING_DIR}/* # Show total file size of artifacts. Must stay are under 100 MB.
@ -72,7 +73,6 @@ autopkgtest:
piuparts:
extends: .test-piuparts
stage: test extras
allow_failure: true
blhc:
extends: .test-blhc
@ -83,11 +83,9 @@ blhc:
lintian:
extends: .test-lintian
allow_failure: true
missing-breaks:
extends: .test-missing-breaks
allow_failure: true
# In addition to Salsa-CI, also run these fully MariaDB specific build jobs
@ -123,7 +121,6 @@ fresh install:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
mariadb-10.3.x to mariadb-10.6.y upgrade:
stage: upgrade in Sid
@ -164,7 +161,6 @@ mariadb-10.3.x to mariadb-10.6.y upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
mariadb-10.3.x buster to mariadb-10.6 upgrade:
stage: upgrade from Buster/Stretch/Jessie
@ -209,7 +205,6 @@ mariadb-10.3.x buster to mariadb-10.6 upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
mariadb-10.1 to mariadb-10.6 upgrade:
stage: upgrade from Buster/Stretch/Jessie
@ -254,7 +249,6 @@ mariadb-10.1 to mariadb-10.6 upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
test basic features:
stage: test
@ -310,7 +304,6 @@ test basic features:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
# Build a piece of software that was designed for libmysqlclient-dev but using the
# libmariadb-dev-compat layer. Should always end up using libmariadb.so.3 run-time.
@ -334,7 +327,6 @@ build mariadbclient consumer Python-MySQLdb:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
libmysql* to libmariadb* upgrade:
stage: test extras
@ -374,7 +366,6 @@ libmysql* to libmariadb* upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
default-libmysqlclient-dev upgrade:
stage: upgrade in Sid
@ -401,7 +392,6 @@ default-libmysqlclient-dev upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
default-libmysqlclient-dev on buster upgrade:
stage: upgrade from Buster/Stretch/Jessie
@ -430,7 +420,6 @@ default-libmysqlclient-dev on buster upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
default-libmysqlclient-dev on stretch upgrade:
stage: upgrade from Buster/Stretch/Jessie
@ -459,7 +448,6 @@ default-libmysqlclient-dev on stretch upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
mariadb-connector-c on stretch upgrade:
stage: upgrade from Buster/Stretch/Jessie
@ -488,7 +476,6 @@ mariadb-connector-c on stretch upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
mysql-5.5 to mariadb-10.6 upgrade:
stage: upgrade from Buster/Stretch/Jessie
@ -533,7 +520,6 @@ mysql-5.5 to mariadb-10.6 upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
# Upgrading from MySQL 5.7 involves automatic renaming of auth_socket plugin
# to unix_socket and automaticly re-adding Password column in user table.
@ -580,7 +566,6 @@ mysql-5.7 to mariadb-10.6 upgrade:
except:
variables:
- $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/
allow_failure: true
# Upgrading from MySQL 8.0 with datadir in place is not possible. Users need to do a data dump.
# The Debian maintainer scripts detect this situation and simply moves old datadir aside and start fresh.
@ -647,17 +632,14 @@ mariadb.org-10.5.x to mariadb-10.6 upgrade:
- sed -i "s/101/0/g" -i /usr/sbin/policy-rc.d # Enable automatic restarts from maint scripts
- cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output
- apt-get update
- apt install -y curl systemctl # systemctl shim needed on platforms that don't have systemd
- apt install -y curl
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
- echo 'deb [arch=amd64,i386] http://mirror.one.com/mariadb/repo/10.5/debian sid main' > /etc/apt/sources.list.d/mariadb.list
- apt-get update
- apt-get install -y mariadb-server-10.5
# Verify installation of MySQL from Sid
- dpkg -l | grep -iE 'maria|mysql|galera' || true # List installed
# MariaDB.org version of 10.4 and early 10.5 do not install an init file, so
# it must be installed here manually
- cp /usr/share/mysql/mysql.init /etc/init.d/mysql; chmod +x /etc/init.d/mysql; service mysql start; sleep 5
- service mysql status
- service mariadb status
- mysql --skip-column-names -e "SELECT @@version, @@version_comment"
- mysql -e "SELECT Host,User,plugin,authentication_string FROM user;" mysql
- mysql -e "SELECT * FROM plugin;" mysql
@ -667,7 +649,6 @@ mariadb.org-10.5.x to mariadb-10.6 upgrade:
# Verify installation of MariaDB built in this commit
- dpkg -l | grep -iE 'maria|mysql|galera' || true # List installed
- mariadb --version # Client version
- service mysql status
- service mariadb status
- mkdir -p debug # Ensure dir exists before using it
- find /var/lib/mysql -ls > debug/var-lib-mysql.list || true # Ignore errors about "no such file or directory"

View File

@ -1,5 +1,3 @@
# Upstream fix pending: https://github.com/wolfSSL/wolfssl/pull/2785
source-is-missing extra/wolfssl/wolfssl/doc/formats/html/html_changes/menu.js line length is 679 characters (>512)
# Necessary for drop-in-place-replacement upgrades on mysql-server/-client
# since package breaks/replaces these but at the same time also provides them
version-substvar-for-external-package mariadb-client-core-10.6 -> mysql-client-5.5

View File

@ -66,6 +66,7 @@ const char *empty_string= ""; /* For empty states */
*/
const char *default_language= "eng";
my_bool default_language_changed= 0;
uint er_offset= 1000;
my_bool info_flag= 0;
@ -440,7 +441,8 @@ static void clean_up(struct languages *lang_head, struct errors *error_head)
struct errors *tmp_error, *next_error;
uint count, i;
my_free((void*) default_language);
if (default_language_changed)
my_free((void*) default_language);
for (tmp_lang= lang_head; tmp_lang; tmp_lang= next_language)
{
@ -562,6 +564,7 @@ static uint parse_input_file(const char *file_name, struct errors **top_error,
"Failed to parse the default language line. Aborting\n");
DBUG_RETURN(0);
}
default_language_changed= 1;
continue;
}

View File

@ -244,14 +244,6 @@ static char* innobase_ignored_opt;
char* innobase_data_home_dir;
char* innobase_data_file_path;
/* The following counter is used to convey information to InnoDB
about server activity: in selects it is not sensible to call
srv_active_wake_master_thread after each fetch or search, we only do
it every INNOBASE_WAKE_INTERVAL'th step. */
#define INNOBASE_WAKE_INTERVAL 32
ulong innobase_active_counter = 0;
#ifndef _WIN32
static char *xtrabackup_debug_sync = NULL;
#endif
@ -5384,7 +5376,6 @@ static bool xtrabackup_prepare_func(char** argv)
xb_filters_init();
srv_log_group_home_dir = NULL;
srv_thread_concurrency = 1;
if (xtrabackup_incremental) {
srv_operation = SRV_OPERATION_RESTORE_DELTA;

View File

@ -16,7 +16,8 @@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
*/
#pragma once
#ifndef ILIST_H
#define ILIST_H
#include <cstddef>
#include <iterator>
@ -24,15 +25,17 @@
// Derive your class from this struct to insert to a linked list.
template <class Tag= void> struct ilist_node
{
ilist_node()
ilist_node() noexcept
#ifndef DBUG_OFF
:
next(NULL), prev(NULL)
: next(NULL), prev(NULL)
#endif
{
}
ilist_node(ilist_node *next, ilist_node *prev) : next(next), prev(prev) {}
ilist_node(ilist_node *next, ilist_node *prev) noexcept
: next(next), prev(prev)
{
}
ilist_node *next;
ilist_node *prev;
@ -70,40 +73,40 @@ public:
typedef T *pointer;
typedef T &reference;
Iterator(ListNode *node) : node_(node) {}
Iterator(ListNode *node) noexcept : node_(node) {}
Iterator &operator++()
Iterator &operator++() noexcept
{
node_= node_->next;
return *this;
}
Iterator operator++(int)
Iterator operator++(int) noexcept
{
Iterator tmp(*this);
operator++();
return tmp;
}
Iterator &operator--()
Iterator &operator--() noexcept
{
node_= node_->prev;
return *this;
}
Iterator operator--(int)
Iterator operator--(int) noexcept
{
Iterator tmp(*this);
operator--();
return tmp;
}
reference operator*() { return *static_cast<pointer>(node_); }
pointer operator->() { return static_cast<pointer>(node_); }
reference operator*() noexcept { return *static_cast<pointer>(node_); }
pointer operator->() noexcept { return static_cast<pointer>(node_); }
friend bool operator==(const Iterator &lhs, const Iterator &rhs)
friend bool operator==(const Iterator &lhs, const Iterator &rhs) noexcept
{
return lhs.node_ == rhs.node_;
}
friend bool operator!=(const Iterator &lhs, const Iterator &rhs)
friend bool operator!=(const Iterator &lhs, const Iterator &rhs) noexcept
{
return !(lhs == rhs);
}
@ -114,30 +117,36 @@ public:
friend class ilist;
};
ilist() : sentinel_(&sentinel_, &sentinel_) {}
ilist() noexcept : sentinel_(&sentinel_, &sentinel_) {}
reference front() { return *begin(); }
reference back() { return *--end(); }
const_reference front() const { return *begin(); }
const_reference back() const { return *--end(); }
reference front() noexcept { return *begin(); }
reference back() noexcept { return *--end(); }
const_reference front() const noexcept { return *begin(); }
const_reference back() const noexcept { return *--end(); }
iterator begin() { return iterator(sentinel_.next); }
const_iterator begin() const
iterator begin() noexcept { return iterator(sentinel_.next); }
const_iterator begin() const noexcept
{
return iterator(const_cast<ListNode *>(sentinel_.next));
}
iterator end() { return iterator(&sentinel_); }
const_iterator end() const
iterator end() noexcept { return iterator(&sentinel_); }
const_iterator end() const noexcept
{
return iterator(const_cast<ListNode *>(&sentinel_));
}
reverse_iterator rbegin() { return reverse_iterator(end()); }
const_reverse_iterator rbegin() const { return reverse_iterator(end()); }
reverse_iterator rend() { return reverse_iterator(begin()); }
const_reverse_iterator rend() const { return reverse_iterator(begin()); }
reverse_iterator rbegin() noexcept { return reverse_iterator(end()); }
const_reverse_iterator rbegin() const noexcept
{
return reverse_iterator(end());
}
reverse_iterator rend() noexcept { return reverse_iterator(begin()); }
const_reverse_iterator rend() const noexcept
{
return reverse_iterator(begin());
}
bool empty() const { return sentinel_.next == &sentinel_; }
bool empty() const noexcept { return sentinel_.next == &sentinel_; }
// Not implemented because it's O(N)
// size_type size() const
@ -145,13 +154,13 @@ public:
// return static_cast<size_type>(std::distance(begin(), end()));
// }
void clear()
void clear() noexcept
{
sentinel_.next= &sentinel_;
sentinel_.prev= &sentinel_;
}
iterator insert(iterator pos, reference value)
iterator insert(iterator pos, reference value) noexcept
{
ListNode *curr= pos.node_;
ListNode *prev= pos.node_->prev;
@ -165,7 +174,7 @@ public:
return iterator(&value);
}
iterator erase(iterator pos)
iterator erase(iterator pos) noexcept
{
ListNode *prev= pos.node_->prev;
ListNode *next= pos.node_->next;
@ -182,15 +191,15 @@ public:
return next;
}
void push_back(reference value) { insert(end(), value); }
void pop_back() { erase(end()); }
void push_back(reference value) noexcept { insert(end(), value); }
void pop_back() noexcept { erase(end()); }
void push_front(reference value) { insert(begin(), value); }
void pop_front() { erase(begin()); }
void push_front(reference value) noexcept { insert(begin(), value); }
void pop_front() noexcept { erase(begin()); }
// STL version is O(n) but this is O(1) because an element can't be inserted
// several times in the same ilist.
void remove(reference value) { erase(iterator(&value)); }
void remove(reference value) noexcept { erase(iterator(&value)); }
private:
ListNode sentinel_;
@ -216,36 +225,38 @@ public:
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const iterator> const_reverse_iterator;
sized_ilist() : size_(0) {}
sized_ilist() noexcept : size_(0) {}
size_type size() const { return size_; }
size_type size() const noexcept { return size_; }
void clear()
void clear() noexcept
{
BASE::clear();
size_= 0;
}
iterator insert(iterator pos, reference value)
iterator insert(iterator pos, reference value) noexcept
{
++size_;
return BASE::insert(pos, value);
}
iterator erase(iterator pos)
iterator erase(iterator pos) noexcept
{
--size_;
return BASE::erase(pos);
}
void push_back(reference value) { insert(BASE::end(), value); }
void pop_back() { erase(BASE::end()); }
void push_back(reference value) noexcept { insert(BASE::end(), value); }
void pop_back() noexcept { erase(BASE::end()); }
void push_front(reference value) { insert(BASE::begin(), value); }
void pop_front() { erase(BASE::begin()); }
void push_front(reference value) noexcept { insert(BASE::begin(), value); }
void pop_front() noexcept { erase(BASE::begin()); }
void remove(reference value) { erase(iterator(&value)); }
void remove(reference value) noexcept { erase(iterator(&value)); }
private:
size_type size_;
};
#endif

View File

@ -226,9 +226,14 @@ extern MY_UNI_CTYPE my_uni_ctype[256];
#define MY_CHARSET_UNDEFINED 0
/* Character repertoire flags */
#define MY_REPERTOIRE_ASCII 1 /* Pure ASCII U+0000..U+007F */
#define MY_REPERTOIRE_EXTENDED 2 /* Extended characters: U+0080..U+FFFF */
#define MY_REPERTOIRE_UNICODE30 3 /* ASCII | EXTENDED: U+0000..U+FFFF */
typedef enum enum_repertoire_t
{
MY_REPERTOIRE_NONE= 0,
MY_REPERTOIRE_ASCII= 1, /* Pure ASCII U+0000..U+007F */
MY_REPERTOIRE_EXTENDED= 2, /* Extended characters: U+0080..U+FFFF */
MY_REPERTOIRE_UNICODE30= 3 /* ASCII | EXTENDED: U+0000..U+FFFF */
} my_repertoire_t;
/* Flags for strxfrm */
#define MY_STRXFRM_LEVEL1 0x00000001 /* for primary weights */
@ -1420,14 +1425,15 @@ my_bool my_propagate_complex(CHARSET_INFO *cs, const uchar *str, size_t len);
typedef struct
{
size_t char_length;
uint repertoire;
my_repertoire_t repertoire;
} MY_STRING_METADATA;
void my_string_metadata_get(MY_STRING_METADATA *metadata,
CHARSET_INFO *cs, const char *str, size_t len);
uint my_string_repertoire(CHARSET_INFO *cs, const char *str, size_t len);
my_repertoire_t my_string_repertoire(CHARSET_INFO *cs,
const char *str, size_t len);
my_bool my_charset_is_ascii_based(CHARSET_INFO *cs);
uint my_charset_repertoire(CHARSET_INFO *cs);
my_repertoire_t my_charset_repertoire(CHARSET_INFO *cs);
uint my_strxfrm_flag_normalize(uint flags, uint nlevels);
void my_strxfrm_desc_and_reverse(uchar *str, uchar *strend,

View File

@ -796,6 +796,8 @@ inline unsigned long long my_double2ulonglong(double d)
#define LONGLONG_MIN ((long long) 0x8000000000000000LL)
#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL)
#endif
/* Max length needed for a buffer to hold a longlong or ulonglong + end \0 */
#define LONGLONG_BUFFER_SIZE 21
#if defined(HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)
/* First check for ANSI C99 definition: */

View File

@ -77,7 +77,7 @@ C_MODE_START
/**
A cycle timer.
On clang, we use __builtin_readcyclecounter().
On clang we use __builtin_readcyclecounter(), except for AARCH64.
On other compilers:
On IA-32 and AMD64, we use the RDTSC instruction.
@ -88,6 +88,9 @@ C_MODE_START
On IBM S/390 System z we use the STCK instruction.
On ARM, we probably should use the Generic Timer, but should figure out
how to ensure that it can be accessed.
On AARCH64, we use the generic timer base register. We override clang
implementation for aarch64 as it access a PMU register which is not
guarenteed to be active.
Sadly, we have nothing for the Digital Alpha, MIPS, Motorola m68k,
HP PA-RISC or other non-mainstream (or obsolete) processors.
@ -125,7 +128,7 @@ C_MODE_START
*/
static inline ulonglong my_timer_cycles(void)
{
# if __has_builtin(__builtin_readcyclecounter)
# if __has_builtin(__builtin_readcyclecounter) && !defined (__aarch64__)
return __builtin_readcyclecounter();
# elif defined _WIN32 || defined __i386__ || defined __x86_64__
return __rdtsc();
@ -164,6 +167,12 @@ static inline ulonglong my_timer_cycles(void)
__asm__ __volatile__ ("stck %0" : "=Q" (result) : : "cc");
return result;
}
#elif defined(__GNUC__) && defined (__aarch64__)
{
ulonglong result;
__asm __volatile("mrs %0, CNTVCT_EL0" : "=&r" (result));
return result;
}
#elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME)
/* gethrtime may appear as either cycle or nanosecond counter */
return (ulonglong) gethrtime();
@ -221,6 +230,7 @@ C_MODE_END
#define MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME 25
#define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME 26
#define MY_TIMER_ROUTINE_ASM_S390 28
#define MY_TIMER_ROUTINE_AARCH64 29
#endif

View File

@ -915,6 +915,9 @@ extern MYSQL_PLUGIN_IMPORT my_crc32_t my_checksum;
#if defined(__GNUC__) && defined(HAVE_ARMV8_CRC)
int crc32_aarch64_available(void);
#if defined(HAVE_ARMV8_CRYPTO)
int crc32c_aarch64_available(void);
#endif
#endif
#ifdef DBUG_ASSERT_EXISTS
@ -1053,9 +1056,13 @@ extern my_bool resolve_collation(const char *cl_name,
CHARSET_INFO **cl);
extern void free_charsets(void);
extern char *get_charsets_dir(char *buf);
extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2);
static inline my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2)
{
return (cs1->csname == cs2->csname);
}
extern my_bool init_compiled_charsets(myf flags);
extern void add_compiled_collation(struct charset_info_st *cs);
extern void add_compiled_extra_collation(struct charset_info_st *cs);
extern size_t escape_string_for_mysql(CHARSET_INFO *charset_info,
char *to, size_t to_length,
const char *from, size_t length);

View File

@ -233,9 +233,16 @@ static inline long my_time_fraction_remainder(long nr, uint decimals)
DBUG_ASSERT(decimals <= TIME_SECOND_PART_DIGITS);
return nr % (long) log_10_int[TIME_SECOND_PART_DIGITS - decimals];
}
static inline void my_datetime_trunc(MYSQL_TIME *ltime, uint decimals)
{
ltime->second_part-= my_time_fraction_remainder(ltime->second_part, decimals);
}
static inline void my_time_trunc(MYSQL_TIME *ltime, uint decimals)
{
ltime->second_part-= my_time_fraction_remainder(ltime->second_part, decimals);
if (!ltime->second_part && ltime->neg &&
!ltime->hour && !ltime->minute && !ltime->second)
ltime->neg= FALSE;
}
static inline void my_timeval_trunc(struct timeval *tv, uint decimals)
{

View File

@ -1135,10 +1135,14 @@ inline_mysql_socket_accept
#else
socket_accept.fd= accept(socket_listen.fd, addr, addr_len);
#ifdef FD_CLOEXEC
flags= fcntl(socket_accept.fd, F_GETFD);
if (flags != -1) {
flags |= FD_CLOEXEC;
fcntl(socket_accept.fd, F_SETFD, flags);
if (socket_accept.fd != INVALID_SOCKET)
{
flags= fcntl(socket_accept.fd, F_GETFD);
if (flags != -1)
{
flags |= FD_CLOEXEC;
fcntl(socket_accept.fd, F_SETFD, flags);
}
}
#endif
#endif
@ -1156,10 +1160,14 @@ inline_mysql_socket_accept
#else
socket_accept.fd= accept(socket_listen.fd, addr, addr_len);
#ifdef FD_CLOEXEC
flags= fcntl(socket_accept.fd, F_GETFD);
if (flags != -1) {
flags |= FD_CLOEXEC;
fcntl(socket_accept.fd, F_SETFD, flags);
if (socket_accept.fd != INVALID_SOCKET)
{
flags= fcntl(socket_accept.fd, F_GETFD);
if (flags != -1)
{
flags |= FD_CLOEXEC;
fcntl(socket_accept.fd, F_SETFD, flags);
}
}
#endif
#endif

View File

@ -87,6 +87,7 @@ extern struct wsrep_service_st {
ulong (*wsrep_OSU_method_get_func)(const MYSQL_THD thd);
my_bool (*wsrep_thd_has_ignored_error_func)(const MYSQL_THD thd);
void (*wsrep_thd_set_ignored_error_func)(MYSQL_THD thd, my_bool val);
bool (*wsrep_thd_set_wsrep_aborter_func)(MYSQL_THD bf_thd, MYSQL_THD thd);
} *wsrep_service;
#define MYSQL_SERVICE_WSREP_INCLUDED
@ -130,6 +131,7 @@ extern struct wsrep_service_st {
#define wsrep_OSU_method_get(T) wsrep_service->wsrep_OSU_method_get_func(T)
#define wsrep_thd_has_ignored_error(T) wsrep_service->wsrep_thd_has_ignored_error_func(T)
#define wsrep_thd_set_ignored_error(T,V) wsrep_service->wsrep_thd_set_ignored_error_func(T,V)
#define wsrep_thd_set_wsrep_aborter(T) wsrep_service->wsrep_thd_set_wsrep_aborter_func(T1, T2)
#else
#define MYSQL_SERVICE_WSREP_STATIC_INCLUDED
@ -181,6 +183,8 @@ extern "C" my_bool wsrep_thd_is_local(const MYSQL_THD thd);
/* Return true if thd is in high priority mode */
/* todo: rename to is_high_priority() */
extern "C" my_bool wsrep_thd_is_applying(const MYSQL_THD thd);
/* set wsrep_aborter for the target THD */
extern "C" bool wsrep_thd_set_wsrep_aborter(MYSQL_THD bf_thd, MYSQL_THD victim_thd);
/* Return true if thd is in TOI mode */
extern "C" my_bool wsrep_thd_is_toi(const MYSQL_THD thd);
/* Return true if thd is in replicating TOI mode */
@ -224,5 +228,6 @@ extern "C" my_bool wsrep_thd_is_applying(const MYSQL_THD thd);
extern "C" ulong wsrep_OSU_method_get(const MYSQL_THD thd);
extern "C" my_bool wsrep_thd_has_ignored_error(const MYSQL_THD thd);
extern "C" void wsrep_thd_set_ignored_error(MYSQL_THD thd, my_bool val);
extern "C" bool wsrep_thd_set_wsrep_aborter(MYSQL_THD bf_thd, MYSQL_THD victim_thd);
#endif
#endif /* MYSQL_SERVICE_WSREP_INCLUDED */

View File

@ -72,7 +72,8 @@ extern const char *globerrs[]; /* my_error_messages is here */
#define EE_BADMEMORYRELEASE 36
#define EE_PERM_LOCK_MEMORY 37
#define EE_MEMCNTL 38
#define EE_ERROR_LAST 38 /* Copy last error nr */
#define EE_DUPLICATE_CHARSET 39
#define EE_ERROR_LAST 39 /* Copy last error nr */
/* Add error numbers before EE_ERROR_LAST and change it accordingly. */

View File

@ -112,9 +112,7 @@ my_bool vio_peer_addr(Vio *vio, char *buf, uint16 *port, size_t buflen);
/* Wait for an I/O event notification. */
int vio_io_wait(Vio *vio, enum enum_vio_io_event event, int timeout);
my_bool vio_is_connected(Vio *vio);
#ifndef DBUG_OFF
ssize_t vio_pending(Vio *vio);
#endif
/* Set timeout for a network operation. */
extern int vio_timeout(Vio *vio, uint which, int timeout_sec);
extern void vio_set_wait_callback(void (*before_wait)(void),

View File

@ -15,6 +15,7 @@
SET(MAN1_SERVER innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1
aria_chk.1 aria_dump_log.1 aria_ftdump.1 aria_pack.1 aria_read_log.1
aria_s3_copy.1
myisamlog.1 myisampack.1 mysql.server.1 mariadb-conv.1
mysql_convert_table_format.1 mysql_fix_extensions.1
mysql_install_db.1

52
man/aria_s3_copy.1 Normal file
View File

@ -0,0 +1,52 @@
.TH ARIA_S3_COPY "1" "June 2020" "aria_s3_copy Ver 1.0" "User Commands"
.SH NAME
aria_s3_copy \- Copy an Aria table to and from s3
.SH DESCRIPTION
Usage: aria_s3_copy \-\-aws\-access\-key=# \-\-aws\-secret\-access\-key=# \-\-aws\-region=# \-\-op=(from_s3 | to_s3 | delete_from_s3) [OPTIONS] tables[.MAI]
.TP
\fB\-?\fR, \fB\-h\fR, \fB\-\-help\fR
Display help and exit.
.TP
\fB\-k\fR, \fB\-\-s3\-access\-key=name\fR
AWS access key ID
.TP
\fB\-r\fR, \fB\-s3\-region=name\fR
AWS region
.TP
\fB\-K\fR, \fB\-s3\-secret\-key=name\fR
AWS secret access key ID
.TP
\fB\-b\fR, \fB\-s3\-bucket=name\fR
AWS prefix for tables
.TP
\fB\-h\fR, \fB\-s3\-host\-name=name\fR
Host name to S3 provider
.TP
\fB\-c\fR, \fB\-compress\fR
Use compression
.TP
\fB\-o\fR, \fB\-op=name\fR
Operation to execute. One of 'from_s3', 'to_s3' or 'delete_from_s3'
.TP
\fB\-d\fR, \fB\-database=name\fR
Database for copied table (second prefix). If not given, the directory of the table file is used
.TP
\fB\-B\fR, \fB\-s3\-block\-size=#\fR
Block size for data/index blocks in s3
.TP
\fB\-L\fR, \fB\-s3\-protocol\-version=name\fR
Protocol used to communication with S3. One of "Auto", "Amazon" or "Original".
.TP
\fB\-f\fR, \fB\-force\fR
Force copy even if target exists
.TP
\fB\-V\fR, \fB\-version\fR
Print version and exit.
.TP
\fB\-\-s3\-debug\fR
Output debug log from marias3 to stdout
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Be verbose.
.PP
For more information, please refer to the MariaDB Knowledge Base page https://mariadb.com/kb/en/aria_s3_copy/

View File

@ -80,7 +80,7 @@ while (<F>) {
s/table id \d+/table id #/;
s/mapped to number \d+/mapped to number #/;
s/CRC32 0x[0-9a-f]+/CRC32 0x########/;
print if /\b(GTID|BEGIN|COMMIT|Table_map|Write_rows|Update_rows|Delete_rows|generated by server|40005 TEMPORARY)\b/;
print if /\b(GTID|START TRANSACTION|COMMIT|Table_map|Write_rows|Update_rows|Delete_rows|generated by server|40005 TEMPORARY)\b/;
}
close F;
EOF

View File

@ -1183,10 +1183,6 @@ set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment;
set global innodb_autoextend_increment=8;
set global innodb_autoextend_increment=@my_innodb_autoextend_increment;
set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency;
set global innodb_commit_concurrency=0;
set global innodb_commit_concurrency=@my_innodb_commit_concurrency;
#
# Bug #37830: ORDER BY ASC/DESC - no difference
#

View File

@ -52,3 +52,20 @@ body
DROP FUNCTION IF EXISTS f1;
Warnings:
Note 1305 FUNCTION test.f1 does not exist
#
# 10.1 Test
#
# MDEV-22654: Assertion `!is_set() || (m_status == DA_OK_BULK &&
# is_bulk_op())' failed in Diagnostics_area::set_ok_status on FUNCTION replace
#
SET GLOBAL log_bin_trust_function_creators=0;
CREATE FUNCTION f(c INT) RETURNS NUMERIC NO SQL RETURN 0;
CREATE OR REPLACE FUNCTION f(c INT) RETURNS INT RETURN 0;
ERROR HY000: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
CREATE OR REPLACE FUNCTION sp1_thisisaveryverylongnamelongnameverylongname_thisisaveryverylongname234872934(a INT) RETURNS INT RETURN 0;
ERROR 42000: Identifier name 'sp1_thisisaveryverylongnamelongnameverylongname_thisisaveryverylongname234872934' is too long
DROP FUNCTION IF EXISTS f;
Warnings:
Note 1305 FUNCTION test.f does not exist
SET GLOBAL log_bin_trust_function_creators=1;
# End of 10.1 Test

View File

@ -1,3 +1,5 @@
source include/have_log_bin.inc;
SET timestamp=UNIX_TIMESTAMP('2014-09-30 08:00:00');
CREATE FUNCTION f1(str char(20))
@ -39,3 +41,25 @@ DROP FUNCTION IF EXISTS f1;
SELECT body FROM mysql.proc WHERE name like 'f1';
DROP FUNCTION IF EXISTS f1;
--echo #
--echo # 10.1 Test
--echo #
--echo # MDEV-22654: Assertion `!is_set() || (m_status == DA_OK_BULK &&
--echo # is_bulk_op())' failed in Diagnostics_area::set_ok_status on FUNCTION replace
--echo #
SET GLOBAL log_bin_trust_function_creators=0;
CREATE FUNCTION f(c INT) RETURNS NUMERIC NO SQL RETURN 0;
--error ER_BINLOG_UNSAFE_ROUTINE
CREATE OR REPLACE FUNCTION f(c INT) RETURNS INT RETURN 0;
--error ER_TOO_LONG_IDENT
CREATE OR REPLACE FUNCTION sp1_thisisaveryverylongnamelongnameverylongname_thisisaveryverylongname234872934(a INT) RETURNS INT RETURN 0;
DROP FUNCTION IF EXISTS f;
SET GLOBAL log_bin_trust_function_creators=1;
--echo # End of 10.1 Test

View File

@ -447,7 +447,7 @@ Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
set names latin1;
show collation like 'latin1_test';
Collation Charset Id Default Compiled Sortlen
latin1_test latin1 99 Yes 1
latin1_test latin1 331 1
select "foo" = "foo " collate latin1_test;
"foo" = "foo " collate latin1_test
1
@ -466,6 +466,7 @@ utf8mb4_test_ci utf8mb4 326 8
utf16_test_ci utf16 327 8
utf8mb4_test_400_ci utf8mb4 328 8
utf8mb4_test_520_nopad_ci utf8mb4 329 8
latin1_test latin1 331 1
latin1_test2 latin1 332 1
latin1_test2_cs latin1 333 1
latin1_swedish_nopad2_ci latin1 334 1
@ -490,7 +491,7 @@ utf32_test_ci utf32 391 8
utf8_maxuserid_ci utf8 2047 8
show collation like '%test%';
Collation Charset Id Default Compiled Sortlen
latin1_test latin1 99 Yes 1
latin1_test latin1 331 1
latin1_test2 latin1 332 1
latin1_test2_cs latin1 333 1
utf8_test_ci utf8 353 8
@ -3034,3 +3035,10 @@ SELECT 'chž'< 'i';
1
SELECT 'a' COLLATE utf8_czech_test_bad_w2;
ERROR HY000: Unknown collation: 'utf8_czech_test_bad_w2'
#
# MDEV-7947 my_charset_same: strcmp() takes 0.37% in OLTP RO
#
SHOW COLLATION LIKE 'latin1_test_replace';
Collation Charset Id Default Compiled Sortlen
SELECT 'foo' = 'foo ' COLLATE latin1_test_replace;
ERROR HY000: Unknown collation: 'latin1_test_replace'

View File

@ -3,6 +3,10 @@
--source include/have_utf16.inc
--source include/have_utf32.inc
--disable_query_log
call mtr.add_suppression("Charset id.*trying to replace");
--enable_query_log
--disable_warnings
drop table if exists t1;
--enable_warnings
@ -602,3 +606,12 @@ SELECT 'chž'< 'i';
--error ER_UNKNOWN_COLLATION
SELECT 'a' COLLATE utf8_czech_test_bad_w2;
--echo #
--echo # MDEV-7947 my_charset_same: strcmp() takes 0.37% in OLTP RO
--echo #
SHOW COLLATION LIKE 'latin1_test_replace';
--error ER_UNKNOWN_COLLATION
SELECT 'foo' = 'foo ' COLLATE latin1_test_replace;

View File

@ -2619,7 +2619,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(3) DEFAULT NULL
`c1` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(4));
@ -2664,7 +2664,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(5) DEFAULT NULL
`c1` varchar(3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(7));
@ -2709,7 +2709,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(6) DEFAULT NULL
`c1` varchar(5) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(10));
@ -2754,7 +2754,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(7) DEFAULT NULL
`c1` varchar(6) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(13));
@ -2769,7 +2769,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(7) DEFAULT NULL
`c1` varchar(6) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(14));
@ -2799,7 +2799,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(9) DEFAULT NULL
`c1` varchar(7) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(16));
@ -2814,7 +2814,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(9) DEFAULT NULL
`c1` varchar(7) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(17));
@ -2844,7 +2844,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(10) DEFAULT NULL
`c1` varchar(9) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(19));
@ -2859,7 +2859,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(10) DEFAULT NULL
`c1` varchar(9) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(20));
@ -2889,7 +2889,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(11) DEFAULT NULL
`c1` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(22));
@ -2904,7 +2904,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(11) DEFAULT NULL
`c1` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(23));
@ -2919,7 +2919,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(11) DEFAULT NULL
`c1` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(24));
@ -2934,7 +2934,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(13) DEFAULT NULL
`c1` varchar(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(25));
@ -2949,7 +2949,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(13) DEFAULT NULL
`c1` varchar(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(26));
@ -2964,7 +2964,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(13) DEFAULT NULL
`c1` varchar(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(27));
@ -2979,7 +2979,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(14) DEFAULT NULL
`c1` varchar(13) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(28));
@ -2994,7 +2994,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(14) DEFAULT NULL
`c1` varchar(13) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(29));
@ -3009,7 +3009,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(14) DEFAULT NULL
`c1` varchar(13) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(30));
@ -3024,7 +3024,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(15) DEFAULT NULL
`c1` varchar(14) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(31));
@ -3039,7 +3039,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(15) DEFAULT NULL
`c1` varchar(14) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(32));
@ -3054,7 +3054,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(15) DEFAULT NULL
`c1` varchar(14) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(33));
@ -3069,7 +3069,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(17) DEFAULT NULL
`c1` varchar(14) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(34));
@ -3084,7 +3084,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(17) DEFAULT NULL
`c1` varchar(15) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(35));
@ -3099,7 +3099,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(17) DEFAULT NULL
`c1` varchar(15) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(36));
@ -3114,7 +3114,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(18) DEFAULT NULL
`c1` varchar(15) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(37));
@ -3129,7 +3129,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(18) DEFAULT NULL
`c1` varchar(17) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(38));
@ -3144,7 +3144,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(18) DEFAULT NULL
`c1` varchar(17) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(39));
@ -3159,7 +3159,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(19) DEFAULT NULL
`c1` varchar(17) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(40));
@ -3174,7 +3174,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(19) DEFAULT NULL
`c1` varchar(18) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(41));
@ -3189,7 +3189,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(19) DEFAULT NULL
`c1` varchar(18) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(42));
@ -3204,7 +3204,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(21) DEFAULT NULL
`c1` varchar(18) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(43));
@ -3219,7 +3219,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(21) DEFAULT NULL
`c1` varchar(18) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(44));
@ -3234,7 +3234,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(21) DEFAULT NULL
`c1` varchar(19) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(45));
@ -3249,7 +3249,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(22) DEFAULT NULL
`c1` varchar(19) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(46));
@ -3264,7 +3264,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(22) DEFAULT NULL
`c1` varchar(19) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(47));
@ -3279,7 +3279,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(22) DEFAULT NULL
`c1` varchar(21) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(48));
@ -3294,7 +3294,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(23) DEFAULT NULL
`c1` varchar(21) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(49));
@ -3309,7 +3309,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(23) DEFAULT NULL
`c1` varchar(21) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(50));
@ -3324,7 +3324,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(23) DEFAULT NULL
`c1` varchar(22) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(51));
@ -3339,7 +3339,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(25) DEFAULT NULL
`c1` varchar(22) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(52));
@ -3354,7 +3354,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(25) DEFAULT NULL
`c1` varchar(22) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(53));
@ -3369,7 +3369,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(25) DEFAULT NULL
`c1` varchar(22) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(54));
@ -3384,7 +3384,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(26) DEFAULT NULL
`c1` varchar(23) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(55));
@ -3399,7 +3399,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(26) DEFAULT NULL
`c1` varchar(23) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(56));
@ -3414,7 +3414,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(26) DEFAULT NULL
`c1` varchar(23) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(57));
@ -3429,7 +3429,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(27) DEFAULT NULL
`c1` varchar(25) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(58));
@ -3444,7 +3444,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(27) DEFAULT NULL
`c1` varchar(25) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(59));
@ -3459,7 +3459,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(27) DEFAULT NULL
`c1` varchar(25) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(60));
@ -3474,7 +3474,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(29) DEFAULT NULL
`c1` varchar(26) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(61));
@ -3489,7 +3489,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(29) DEFAULT NULL
`c1` varchar(26) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(62));
@ -3504,7 +3504,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(29) DEFAULT NULL
`c1` varchar(26) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(63));
@ -3519,7 +3519,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(30) DEFAULT NULL
`c1` varchar(26) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (c1 BIT(64));
@ -3534,7 +3534,7 @@ HEX(c1)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`c1` varchar(30) DEFAULT NULL
`c1` varchar(27) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE OR REPLACE TABLE t1 (f float);

View File

@ -975,7 +975,6 @@ select * from information_schema.table_privileges;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'mysqltest_8'@'%' def test t1 UPDATE NO
'mariadb.sys'@'localhost' def mysql global_priv SELECT NO
'mariadb.sys'@'localhost' def mysql global_priv UPDATE NO
'mariadb.sys'@'localhost' def mysql global_priv DELETE NO
connect conn5,localhost,mysqltest_8,,;
select * from t1;
@ -992,7 +991,6 @@ GRANT USAGE ON *.* TO `mysqltest_8`@`%`
select * from information_schema.table_privileges;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'mariadb.sys'@'localhost' def mysql global_priv SELECT NO
'mariadb.sys'@'localhost' def mysql global_priv UPDATE NO
'mariadb.sys'@'localhost' def mysql global_priv DELETE NO
flush privileges;
show grants for mysqltest_8@'';

View File

@ -148,7 +148,7 @@ call mtr.add_suppression('mysql.user table is damaged');
rename table mysql.user to mysql.user1;
create table mysql.user (Host char(100), User char(100));
flush privileges;
ERROR HY000: Unknown error
ERROR HY000: Fatal error: mysql.user table is damaged or in unsupported 3.20 format
drop table mysql.user;
rename table mysql.user1 to mysql.user;
# switching back from mysql.user to mysql.global_priv

View File

@ -242,4 +242,10 @@ disconnect con1;
connection default;
drop database db;
drop user foo;
call mtr.add_suppression('mysql.host table is damaged');
create table mysql.host (c1 int);
insert mysql.host values (1);
flush privileges;
ERROR HY000: Fatal error: mysql.host table is damaged or in unsupported 3.20 format
drop table mysql.host;
# End of 10.4 tests

View File

@ -199,4 +199,14 @@ delete from db.t1 returning *;
drop database db;
drop user foo;
#
# MDEV-23009 SIGSEGV in get_field from acl_load (on optimized builds)
#
call mtr.add_suppression('mysql.host table is damaged');
create table mysql.host (c1 int);
insert mysql.host values (1);
--error ER_UNKNOWN_ERROR
flush privileges;
drop table mysql.host;
--echo # End of 10.4 tests

View File

@ -576,7 +576,6 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN
select * from INFORMATION_SCHEMA.TABLE_PRIVILEGES;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'mariadb.sys'@'localhost' def mysql global_priv SELECT NO
'mariadb.sys'@'localhost' def mysql global_priv UPDATE NO
'mariadb.sys'@'localhost' def mysql global_priv DELETE NO
drop view v1, v2, v3;
drop table t1;
@ -2219,3 +2218,72 @@ SCHEMA_NAME
#
# End of 10.1 tests
#
#
# MDEV-21201:No records produced in information_schema query,
# depending on projection
#
create table t (i int, constraint a check (i > 0));
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE
from information_schema.TABLE_CONSTRAINTS tc
join information_schema.CHECK_CONSTRAINTS cc
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
;
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE
mysql global_priv Priv json_valid(`Priv`)
test t a `i` > 0
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE
from information_schema.CHECK_CONSTRAINTS cc
join information_schema.TABLE_CONSTRAINTS tc
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
;
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE
mysql global_priv Priv json_valid(`Priv`)
test t a `i` > 0
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE
from information_schema.TABLE_CONSTRAINTS tc
NATURAL join information_schema.CHECK_CONSTRAINTS cc
;
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE
mysql global_priv Priv json_valid(`Priv`)
test t a `i` > 0
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE
from information_schema.CHECK_CONSTRAINTS cc
NATURAL join information_schema.TABLE_CONSTRAINTS tc
;
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE
mysql global_priv Priv json_valid(`Priv`)
test t a `i` > 0
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE,
tc.CONSTRAINT_CATALOG,
tc.CONSTRAINT_SCHEMA
from information_schema.TABLE_CONSTRAINTS tc
join information_schema.CHECK_CONSTRAINTS cc
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
;
TABLE_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE CONSTRAINT_CATALOG CONSTRAINT_SCHEMA
mysql global_priv Priv json_valid(`Priv`) def mysql
test t a `i` > 0 def test
drop table t;
#
# End of 10.3 tests
#

View File

@ -1920,3 +1920,70 @@ SELECT SCHEMA_NAME from information_schema.schemata where schema_name=REPEAT('a'
--echo #
--echo # End of 10.1 tests
--echo #
--echo #
--echo # MDEV-21201:No records produced in information_schema query,
--echo # depending on projection
--echo #
create table t (i int, constraint a check (i > 0));
--disable_warnings
--sorted_result
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE
from information_schema.TABLE_CONSTRAINTS tc
join information_schema.CHECK_CONSTRAINTS cc
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
;
--sorted_result
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE
from information_schema.CHECK_CONSTRAINTS cc
join information_schema.TABLE_CONSTRAINTS tc
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
;
--sorted_result
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE
from information_schema.TABLE_CONSTRAINTS tc
NATURAL join information_schema.CHECK_CONSTRAINTS cc
;
--sorted_result
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE
from information_schema.CHECK_CONSTRAINTS cc
NATURAL join information_schema.TABLE_CONSTRAINTS tc
;
--sorted_result
select
tc.TABLE_SCHEMA,
tc.TABLE_NAME,
cc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE,
tc.CONSTRAINT_CATALOG,
tc.CONSTRAINT_SCHEMA
from information_schema.TABLE_CONSTRAINTS tc
join information_schema.CHECK_CONSTRAINTS cc
using (CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, TABLE_NAME, CONSTRAINT_NAME)
;
--enable_warnings
drop table t;
--echo #
--echo # End of 10.3 tests
--echo #

View File

@ -15,4 +15,3 @@
--loose-innodb-sys-tablestats
--loose-innodb-mutexes
--loose-innodb-tablespaces-encryption
--loose-innodb-tablespaces-scrubbing

View File

@ -0,0 +1 @@
--thread-handling=pool-of-threads

View File

@ -0,0 +1,43 @@
SELECT
@@global.wait_timeout, @@global.thread_pool_max_threads, @@global.thread_pool_size,
@@global.thread_pool_oversubscribe, @@global.thread_pool_stall_limit
INTO
@_wait_timeout,@_thread_pool_max_threads,@_thread_pool_size,
@_thread_pool_oversubscribe,@_thread_pool_stall_limit;
SET @@global.wait_timeout=1,
@@global.thread_pool_max_threads=2,
@@global.thread_pool_size=1,
@@global.thread_pool_oversubscribe=1,
@@global.thread_pool_stall_limit=10;
connect c1, localhost, root,,;
connect c2, localhost, root,,;
connect c3, localhost, root,,;
connection c1;
select sleep(1.1);
connection c2;
select sleep(1.1);
connection c3;
select sleep(1.1);
connection default;
select sleep(1.1);
connection c1;
sleep(1.1)
0
connection c2;
sleep(1.1)
0
connection c3;
sleep(1.1)
0
connection default;
sleep(1.1)
0
disconnect c1;
disconnect c2;
disconnect c3;
connection default;
SET @@global.wait_timeout=@_wait_timeout,
@@global.thread_pool_max_threads=@_thread_pool_max_threads,
@@global.thread_pool_size=@_thread_pool_size,
@@global.thread_pool_oversubscribe=@_thread_pool_oversubscribe,
@@global.thread_pool_stall_limit=@_thread_pool_stall_limit;

View File

@ -0,0 +1,54 @@
--source include/not_embedded.inc
# Test that wait_timeout does not cause connection to be closed, when connection is delayed due to
# threadpool internal problems, e.g misconfiguration - too few threads and queueing.
# So if client did not cause wait_timeout, do not report it either.
# See MDEV-21101 for details.
# Intentionally misconfigure threadpool to have at most 1 or 2 threads (
# depends on the implementation). Use minimal wait_timeout, do some slow queries from
# different connections simultaneously, to force queueing occurs.
# Verify connections are intact, even if queueing time exceeds wait_timeout
SELECT
@@global.wait_timeout, @@global.thread_pool_max_threads, @@global.thread_pool_size,
@@global.thread_pool_oversubscribe, @@global.thread_pool_stall_limit
INTO
@_wait_timeout,@_thread_pool_max_threads,@_thread_pool_size,
@_thread_pool_oversubscribe,@_thread_pool_stall_limit;
SET @@global.wait_timeout=1,
@@global.thread_pool_max_threads=2,
@@global.thread_pool_size=1,
@@global.thread_pool_oversubscribe=1,
@@global.thread_pool_stall_limit=10;
--connect (c1, localhost, root,,)
--connect (c2, localhost, root,,)
--connect (c3, localhost, root,,)
--connection c1
--send select sleep(1.1)
--connection c2
--send select sleep(1.1)
--connection c3
--send select sleep(1.1)
--connection default
--send select sleep(1.1)
--connection c1
--reap
--connection c2
--reap
--connection c3
--reap
--connection default
--reap
--disconnect c1
--disconnect c2
--disconnect c3
--connection default
SET @@global.wait_timeout=@_wait_timeout,
@@global.thread_pool_max_threads=@_thread_pool_max_threads,
@@global.thread_pool_size=@_thread_pool_size,
@@global.thread_pool_oversubscribe=@_thread_pool_oversubscribe,
@@global.thread_pool_stall_limit=@_thread_pool_stall_limit;

View File

@ -58,6 +58,8 @@ DROP TABLE t1,t3;
#
CREATE TABLE t1(a INT) ENGINE=InnoDB;
CREATE TABLE t3(a INT) ENGINE=myisam;
connect purge_control,localhost,root,,;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
connect locker,localhost,root,,;
connection default;
FLUSH TABLES WITH READ LOCK;
@ -85,6 +87,7 @@ MDL_SHARED_WRITE Table metadata lock test t3
unlock tables;
connection locker;
unlock tables;
disconnect purge_control;
connection default;
disconnect locker;
DROP TABLE t1,t3;

View File

@ -40,6 +40,8 @@ DROP TABLE t1,t3;
CREATE TABLE t1(a INT) ENGINE=InnoDB;
CREATE TABLE t3(a INT) ENGINE=myisam;
connect(purge_control,localhost,root,,);
START TRANSACTION WITH CONSISTENT SNAPSHOT;
connect (locker,localhost,root,,);
connection default;
@ -75,6 +77,7 @@ unlock tables;
connection locker;
--reap
unlock tables;
disconnect purge_control;
connection default;
disconnect locker;

View File

@ -715,16 +715,16 @@ CEILING(11111111),
CEILING(111111111),
CEILING(1111111111) LIMIT 0;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def CEILING(1) 3 3 0 N 32897 0 63
def CEILING(11) 3 4 0 N 32897 0 63
def CEILING(111) 3 5 0 N 32897 0 63
def CEILING(1111) 3 6 0 N 32897 0 63
def CEILING(11111) 3 7 0 N 32897 0 63
def CEILING(111111) 3 8 0 N 32897 0 63
def CEILING(1111111) 3 9 0 N 32897 0 63
def CEILING(11111111) 8 10 0 N 32897 0 63
def CEILING(111111111) 8 11 0 N 32897 0 63
def CEILING(1111111111) 8 12 0 N 32897 0 63
def CEILING(1) 3 1 0 N 32897 0 63
def CEILING(11) 3 2 0 N 32897 0 63
def CEILING(111) 3 3 0 N 32897 0 63
def CEILING(1111) 3 4 0 N 32897 0 63
def CEILING(11111) 3 5 0 N 32897 0 63
def CEILING(111111) 3 6 0 N 32897 0 63
def CEILING(1111111) 3 7 0 N 32897 0 63
def CEILING(11111111) 3 8 0 N 32897 0 63
def CEILING(111111111) 3 9 0 N 32897 0 63
def CEILING(1111111111) 8 10 0 N 32897 0 63
CEILING(1) CEILING(11) CEILING(111) CEILING(1111) CEILING(11111) CEILING(111111) CEILING(1111111) CEILING(11111111) CEILING(111111111) CEILING(1111111111)
SELECT
FLOOR(1),
@ -738,16 +738,16 @@ FLOOR(11111111),
FLOOR(111111111),
FLOOR(1111111111) LIMIT 0;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def FLOOR(1) 3 3 0 N 32897 0 63
def FLOOR(11) 3 4 0 N 32897 0 63
def FLOOR(111) 3 5 0 N 32897 0 63
def FLOOR(1111) 3 6 0 N 32897 0 63
def FLOOR(11111) 3 7 0 N 32897 0 63
def FLOOR(111111) 3 8 0 N 32897 0 63
def FLOOR(1111111) 3 9 0 N 32897 0 63
def FLOOR(11111111) 8 10 0 N 32897 0 63
def FLOOR(111111111) 8 11 0 N 32897 0 63
def FLOOR(1111111111) 8 12 0 N 32897 0 63
def FLOOR(1) 3 1 0 N 32897 0 63
def FLOOR(11) 3 2 0 N 32897 0 63
def FLOOR(111) 3 3 0 N 32897 0 63
def FLOOR(1111) 3 4 0 N 32897 0 63
def FLOOR(11111) 3 5 0 N 32897 0 63
def FLOOR(111111) 3 6 0 N 32897 0 63
def FLOOR(1111111) 3 7 0 N 32897 0 63
def FLOOR(11111111) 3 8 0 N 32897 0 63
def FLOOR(111111111) 3 9 0 N 32897 0 63
def FLOOR(1111111111) 8 10 0 N 32897 0 63
FLOOR(1) FLOOR(11) FLOOR(111) FLOOR(1111) FLOOR(11111) FLOOR(111111) FLOOR(1111111) FLOOR(11111111) FLOOR(111111111) FLOOR(1111111111)
SELECT
ROUND(1),

View File

@ -24,7 +24,7 @@ FLUSH LOGS;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ROLLBACK/*!*/;
BEGIN
START TRANSACTION
/*!*/;
use `test`/*!*/;
SET TIMESTAMP=1000000000/*!*/;
@ -39,7 +39,7 @@ SET @@session.collation_database=DEFAULT/*!*/;
INSERT INTO t1 VALUES (1)
/*!*/;
COMMIT/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
INSERT INTO t1 VALUES (2)
@ -55,7 +55,7 @@ ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ROLLBACK/*!*/;
BEGIN
START TRANSACTION
/*!*/;
use `foo`/*!*/;
SET TIMESTAMP=1000000000/*!*/;
@ -70,7 +70,7 @@ SET @@session.collation_database=DEFAULT/*!*/;
INSERT INTO t1 VALUES (1)
/*!*/;
COMMIT/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
INSERT INTO t1 VALUES (2)

View File

@ -37,7 +37,7 @@ create table t1 (word varchar(20))
SET TIMESTAMP=1000000000/*!*/;
create table t2 (id int auto_increment not null primary key)
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
insert into t1 values ("abirvalg")
@ -45,7 +45,7 @@ insert into t1 values ("abirvalg")
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET INSERT_ID=1/*!*/;
SET TIMESTAMP=1000000000/*!*/;
@ -54,7 +54,7 @@ insert into t2 values ()
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`)
@ -62,7 +62,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`)
@ -70,7 +70,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`)
@ -78,7 +78,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`)
@ -97,7 +97,7 @@ ROLLBACK /* added by mysqlbinlog */;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
BEGIN
START TRANSACTION
/*!*/;
use `test`/*!*/;
SET TIMESTAMP=1000000000/*!*/;
@ -114,7 +114,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
insert into t1 values ("Alas")
@ -134,7 +134,7 @@ ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ROLLBACK/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.pseudo_thread_id=999999999/*!*/;
@ -147,28 +147,28 @@ SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET INSERT_ID=1/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
@ -184,7 +184,7 @@ ROLLBACK /* added by mysqlbinlog */;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
BEGIN
START TRANSACTION
/*!*/;
use `test`/*!*/;
SET TIMESTAMP=1000000000/*!*/;
@ -231,7 +231,7 @@ create table t1 (word varchar(20))
SET TIMESTAMP=1000000000/*!*/;
create table t2 (id int auto_increment not null primary key)
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
insert into t1 values ("abirvalg")
@ -239,7 +239,7 @@ insert into t1 values ("abirvalg")
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET INSERT_ID=1/*!*/;
SET TIMESTAMP=1000000000/*!*/;
@ -248,7 +248,7 @@ insert into t2 values ()
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`)
@ -256,7 +256,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`)
@ -264,7 +264,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`)
@ -272,7 +272,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`)
@ -291,7 +291,7 @@ ROLLBACK /* added by mysqlbinlog */;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
BEGIN
START TRANSACTION
/*!*/;
use `test`/*!*/;
SET TIMESTAMP=1000000000/*!*/;
@ -308,7 +308,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
insert into t1 values ("Alas")
@ -328,7 +328,7 @@ ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ROLLBACK/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.pseudo_thread_id=999999999/*!*/;
@ -341,28 +341,28 @@ SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET INSERT_ID=1/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
COMMIT
@ -378,7 +378,7 @@ ROLLBACK /* added by mysqlbinlog */;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
BEGIN
START TRANSACTION
/*!*/;
use `test`/*!*/;
SET TIMESTAMP=1000000000/*!*/;
@ -553,7 +553,7 @@ SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create table t1 (a varchar(64) character set utf8)
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`)
@ -561,7 +561,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.collation_database=7/*!*/;
@ -570,7 +570,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
@ -579,7 +579,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`)
@ -587,7 +587,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.collation_database=7/*!*/;
@ -596,7 +596,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
@ -605,7 +605,7 @@ LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FI
SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
BEGIN
START TRANSACTION
/*!*/;
SET TIMESTAMP=1000000000/*!*/;
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` CHARACTER SET koi8r FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`)

View File

@ -53,7 +53,7 @@ CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMIN
# at 727
#<date> server id 1 end_log_pos 769 CRC32 XXX GTID 0-1-3
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 769
# at 843
@ -82,7 +82,7 @@ COMMIT
# at 1040
#<date> server id 1 end_log_pos 1082 CRC32 XXX GTID 0-1-4
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1082
# at 1158
@ -111,7 +111,7 @@ COMMIT
# at 1354
#<date> server id 1 end_log_pos 1396 CRC32 XXX GTID 0-1-5
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1396
# at 1474
@ -140,7 +140,7 @@ COMMIT
# at 1669
#<date> server id 1 end_log_pos 1711 CRC32 XXX GTID 0-1-6
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1711
# at 1786
@ -169,7 +169,7 @@ COMMIT
# at 1982
#<date> server id 1 end_log_pos 2024 CRC32 XXX GTID 0-1-7
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 2024
# at 2078
@ -231,7 +231,7 @@ COMMIT
# at 2298
#<date> server id 1 end_log_pos 2340 CRC32 XXX GTID 0-1-8
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 2340
# at 2406
@ -312,7 +312,7 @@ COMMIT
# at 2634
#<date> server id 1 end_log_pos 2676 CRC32 XXX GTID 0-1-9
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 2676
# at 2713
@ -374,7 +374,7 @@ COMMIT
# at 2934
#<date> server id 1 end_log_pos 2976 CRC32 XXX GTID 0-1-10
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 2976
# at 3013

View File

@ -51,7 +51,7 @@ CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMIN
# at 774
#<date> server id 1 end_log_pos 816 CRC32 XXX GTID 0-1-3
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 816
# at 890
@ -80,7 +80,7 @@ COMMIT
# at 1088
#<date> server id 1 end_log_pos 1130 CRC32 XXX GTID 0-1-4
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1130
# at 1206
@ -109,7 +109,7 @@ COMMIT
# at 1403
#<date> server id 1 end_log_pos 1445 CRC32 XXX GTID 0-1-5
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1445
# at 1523
@ -138,7 +138,7 @@ COMMIT
# at 1719
#<date> server id 1 end_log_pos 1761 CRC32 XXX GTID 0-1-6
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1761
# at 1836
@ -167,7 +167,7 @@ COMMIT
# at 2035
#<date> server id 1 end_log_pos 2077 CRC32 XXX GTID 0-1-7
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 2077
# at 2131
@ -229,7 +229,7 @@ COMMIT
# at 2427
#<date> server id 1 end_log_pos 2469 CRC32 XXX GTID 0-1-8
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 2469
# at 2535
@ -262,7 +262,7 @@ COMMIT
# at 2730
#<date> server id 1 end_log_pos 2772 CRC32 XXX GTID 0-1-9
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 2772
# at 2809
@ -292,7 +292,7 @@ COMMIT
# at 2992
#<date> server id 1 end_log_pos 3034 CRC32 XXX GTID 0-1-10
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 3034
# at 3071
@ -357,7 +357,7 @@ DELIMITER /*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
/*!100001 SET @@session.gtid_seq_no=16*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 429
# at 543

View File

@ -53,7 +53,7 @@ CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMIN
# at 727
#<date> server id 1 end_log_pos 769 CRC32 XXX GTID 0-1-3
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 769
#<date> server id 1 end_log_pos 897 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
@ -68,7 +68,7 @@ COMMIT
# at 970
#<date> server id 1 end_log_pos 1012 CRC32 XXX GTID 0-1-4
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1012
#<date> server id 1 end_log_pos 1140 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
@ -83,7 +83,7 @@ COMMIT
# at 1213
#<date> server id 1 end_log_pos 1255 CRC32 XXX GTID 0-1-5
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1255
#<date> server id 1 end_log_pos 1385 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
@ -98,7 +98,7 @@ COMMIT
# at 1458
#<date> server id 1 end_log_pos 1500 CRC32 XXX GTID 0-1-6
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1500
#<date> server id 1 end_log_pos 1627 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
@ -113,7 +113,7 @@ COMMIT
# at 1700
#<date> server id 1 end_log_pos 1742 CRC32 XXX GTID 0-1-7
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1742
#<date> server id 1 end_log_pos 1850 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
@ -128,7 +128,7 @@ COMMIT
# at 1923
#<date> server id 1 end_log_pos 1965 CRC32 XXX GTID 0-1-8
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 1965
#<date> server id 1 end_log_pos 2082 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
@ -143,7 +143,7 @@ COMMIT
# at 2155
#<date> server id 1 end_log_pos 2197 CRC32 XXX GTID 0-1-9
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 2197
#<date> server id 1 end_log_pos 2288 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0
@ -158,7 +158,7 @@ COMMIT
# at 2361
#<date> server id 1 end_log_pos 2403 CRC32 XXX GTID 0-1-10
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
BEGIN
START TRANSACTION
/*!*/;
# at 2403
#<date> server id 1 end_log_pos 2494 CRC32 XXX Query_compressed thread_id=5 exec_time=x error_code=0

View File

@ -7,7 +7,7 @@
--source include/not_windows.inc
--let $args=--table-cache=5 --max-connections=10 --log-warnings=1 --silent-startup --help --verbose
--let $args=--table-cache=5 --max-connections=10 --log-warnings=1 --silent-startup --lower-case-table-names=1 --help --verbose
--exec $MYSQLD_CMD $args > $MYSQL_TMP_DIR/mysqld--help2.txt 2> $MYSQL_TMP_DIR/mysqld--help2.err
--replace_regex /mysqld/mariadbd/ /\d\d\d\d-\d*-\d* *\d*:\d*:\d* \d* // /control file '.*aria_log_control'/aria_log_control/ /error: \d+/error: #/

View File

@ -35,10 +35,10 @@ SET @@session.session_track_system_variables= @save_session_track_system_variabl
#
set @save_optimizer_switch=@@optimizer_switch;
SET @@session.session_track_system_variables='optimizer_switch';
set optimizer_switch='index_merge=off,index_merge_union=off,index_merge_sort_union=off,index_merge_intersection=off,index_merge_sort_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=on,mrr_cost_based=on,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=on,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off';
set optimizer_switch='index_merge=off,index_merge_union=off,index_merge_sort_union=off,index_merge_intersection=off,index_merge_sort_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=on,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=on,mrr_cost_based=on,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=on,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off';
-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
-- optimizer_switch
-- index_merge=off,index_merge_union=off,index_merge_sort_union=off,index_merge_intersection=off,index_merge_sort_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=on,mrr_cost_based=on,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=on,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
-- index_merge=off,index_merge_union=off,index_merge_sort_union=off,index_merge_intersection=off,index_merge_sort_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=on,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=on,mrr_cost_based=on,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=on,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
Warnings:
Warning 1681 'engine_condition_pushdown=on' is deprecated and will be removed in a future release
@ -46,6 +46,18 @@ set @@optimizer_switch=@save_optimizer_switch;
SET @@session.session_track_system_variables= @save_session_track_system_variables;
# End of 10.2 tests
#
# MDEV-22134 handle_fatal_signal (sig=11) in __strlen_avx2 on START
# SLAVE | Assertion
# `global_system_variables.session_track_system_variables' failed in
# Session_sysvars_tracker::init | *** buffer overflow detected ***
# (on optimized builds)
#
SET @@GLOBAL.session_track_system_variables=NULL;
ERROR 42000: Variable 'session_track_system_variables' can't be set to the value of 'NULL'
SET SESSION session_track_system_variables=NULL;
ERROR 42000: Variable 'session_track_system_variables' can't be set to the value of 'NULL'
# End of 10.3 tests
#
# MDEV-16470 - Session user variables tracker
#
# End of 10.5 tests

View File

@ -36,7 +36,7 @@ set @save_optimizer_switch=@@optimizer_switch;
SET @@session.session_track_system_variables='optimizer_switch';
--enable_session_track_info
set optimizer_switch='index_merge=off,index_merge_union=off,index_merge_sort_union=off,index_merge_intersection=off,index_merge_sort_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=on,mrr_cost_based=on,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=on,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off';
set optimizer_switch='index_merge=off,index_merge_union=off,index_merge_sort_union=off,index_merge_intersection=off,index_merge_sort_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=on,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=on,mrr_cost_based=on,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=on,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off';
--disable_session_track_info
set @@optimizer_switch=@save_optimizer_switch;
@ -46,6 +46,21 @@ SET @@session.session_track_system_variables= @save_session_track_system_variabl
--echo # End of 10.2 tests
--echo #
--echo # MDEV-22134 handle_fatal_signal (sig=11) in __strlen_avx2 on START
--echo # SLAVE | Assertion
--echo # `global_system_variables.session_track_system_variables' failed in
--echo # Session_sysvars_tracker::init | *** buffer overflow detected ***
--echo # (on optimized builds)
--echo #
--error ER_WRONG_VALUE_FOR_VAR
SET @@GLOBAL.session_track_system_variables=NULL;
--error ER_WRONG_VALUE_FOR_VAR
SET SESSION session_track_system_variables=NULL;
--echo # End of 10.3 tests
--echo #
--echo # MDEV-16470 - Session user variables tracker
--echo #

View File

@ -3377,6 +3377,62 @@ SET @@sort_buffer_size= @save_sort_buffer_size;
SET @@max_sort_length= @save_max_sort_length;
DROP TABLE t1;
#
# MDEV-22390: Assertion `m_next_rec_ptr >= m_rawmem' failed in Filesort_buffer::spaceleft |
# SIGSEGV in __memmove_avx_unaligned_erms from my_b_write (on optimized)
#
SET @save_max_sort_length= @@max_sort_length;
SET @save_sort_buffer_size= @@sort_buffer_size;
SET @save_max_length_for_sort_data= @@max_length_for_sort_data;
SET max_sort_length=8;
SET sort_buffer_size=1024;
SET max_length_for_sort_data=7000;
CREATE TABLE t1(a VARCHAR(64), b VARCHAR(2048))DEFAULT CHARSET=utf8;
INSERT INTO t1 SELECT seq,seq from seq_1_to_100;
ANALYZE FORMAT=JSON SELECT * FROM t1 ORDER BY a LIMIT 5;
ANALYZE
{
"query_block": {
"select_id": 1,
"r_loops": 1,
"r_total_time_ms": "REPLACED",
"read_sorted_file": {
"r_rows": 5,
"filesort": {
"sort_key": "t1.a",
"r_loops": 1,
"r_total_time_ms": "REPLACED",
"r_limit": 5,
"r_used_priority_queue": false,
"r_output_rows": 100,
"r_buffer_size": "REPLACED",
"r_sort_mode": "sort_key,packed_addon_fields",
"table": {
"table_name": "t1",
"access_type": "ALL",
"r_loops": 1,
"rows": 100,
"r_rows": 100,
"r_table_time_ms": "REPLACED",
"r_other_time_ms": "REPLACED",
"filtered": 100,
"r_filtered": 100
}
}
}
}
}
SELECT * FROM t1 ORDER BY a LIMIT 5;
a b
1 1
10 10
100 100
11 11
12 12
SET max_sort_length= @save_max_sort_length;
SET sort_buffer_size= @save_sort_buffer_size;
SET max_length_for_sort_data= @save_max_length_for_sort_data;
DROP TABLE t1;
#
# MDEV-13994: Bad join results with orderby_uses_equalities=on
#
CREATE TABLE books (
@ -4024,6 +4080,25 @@ COUNT(DISTINCT a)
SET @@tmp_memory_table_size= @save_tmp_memory_table_size;
DROP TABLE t1;
#
# MDEV-23216: LONGTEXT column with collation doesn't sort
#
CREATE TABLE t1 (a LONGTEXT COLLATE utf8mb4_swedish_ci);
INSERT INTO t1 VALUES ('A'),('Z'),('B'),('Y');
SELECT * FROM t1 ORDER BY a;
a
A
B
Y
Z
SELECT * FROM t1 ORDER BY a DESC;
a
Z
Y
B
A
DROP TABLE t1;
# End of 10.5 tests
#
# MDEV-13694: Wrong result upon GROUP BY with orderby_uses_equalities=on
#
CREATE TABLE t1 (a INT, b int, primary key(a));
@ -4159,4 +4234,4 @@ a group_concat(t1.b)
96 2
58 1
DROP TABLE t1, t2;
# End of 10.5 tests
# End of 10.6 tests

View File

@ -2180,6 +2180,28 @@ SET @@sort_buffer_size= @save_sort_buffer_size;
SET @@max_sort_length= @save_max_sort_length;
DROP TABLE t1;
--echo #
--echo # MDEV-22390: Assertion `m_next_rec_ptr >= m_rawmem' failed in Filesort_buffer::spaceleft |
--echo # SIGSEGV in __memmove_avx_unaligned_erms from my_b_write (on optimized)
--echo #
SET @save_max_sort_length= @@max_sort_length;
SET @save_sort_buffer_size= @@sort_buffer_size;
SET @save_max_length_for_sort_data= @@max_length_for_sort_data;
SET max_sort_length=8;
SET sort_buffer_size=1024;
# needed to make sure we use addon fields
SET max_length_for_sort_data=7000;
CREATE TABLE t1(a VARCHAR(64), b VARCHAR(2048))DEFAULT CHARSET=utf8;
INSERT INTO t1 SELECT seq,seq from seq_1_to_100;
--source include/analyze-format.inc
ANALYZE FORMAT=JSON SELECT * FROM t1 ORDER BY a LIMIT 5;
SELECT * FROM t1 ORDER BY a LIMIT 5;
SET max_sort_length= @save_max_sort_length;
SET sort_buffer_size= @save_sort_buffer_size;
SET max_length_for_sort_data= @save_max_length_for_sort_data;
DROP TABLE t1;
--echo #
--echo # MDEV-13994: Bad join results with orderby_uses_equalities=on
--echo #
@ -2500,6 +2522,19 @@ SELECT COUNT(DISTINCT a) FROM t1;
SET @@tmp_memory_table_size= @save_tmp_memory_table_size;
DROP TABLE t1;
--echo #
--echo # MDEV-23216: LONGTEXT column with collation doesn't sort
--echo #
CREATE TABLE t1 (a LONGTEXT COLLATE utf8mb4_swedish_ci);
INSERT INTO t1 VALUES ('A'),('Z'),('B'),('Y');
SELECT * FROM t1 ORDER BY a;
SELECT * FROM t1 ORDER BY a DESC;
DROP TABLE t1;
--echo # End of 10.5 tests
--echo #
--echo # MDEV-13694: Wrong result upon GROUP BY with orderby_uses_equalities=on
--echo #
@ -2533,4 +2568,4 @@ eval EXPLAIN FORMAT=JSON $query;
eval $query;
DROP TABLE t1, t2;
--echo # End of 10.5 tests
--echo # End of 10.6 tests

View File

@ -932,11 +932,9 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (10),(20),(30);
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a);
a
1
ERROR HY000: Expression #1 of ORDER BY contains aggregate function and applies to a UNION
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a ORDER BY a);
a
1
ERROR HY000: Expression #1 of ORDER BY contains aggregate function and applies to a UNION
DROP TABLE t1;
# UNION with a parenthesed term
CREATE TABLE t1 (a INT);
@ -999,14 +997,11 @@ DROP TABLE t1;
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (10),(20),(30);
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a);
a
1
ERROR HY000: Expression #1 of ORDER BY contains aggregate function and applies to a UNION
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a ORDER BY a);
a
1
ERROR HY000: Expression #1 of ORDER BY contains aggregate function and applies to a UNION
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a ORDER BY a) LIMIT 1;
a
1
ERROR HY000: Expression #1 of ORDER BY contains aggregate function and applies to a UNION
DROP TABLE t1;
# Derived table with ROLLUP
CREATE TABLE t1 (a INT);
@ -1880,6 +1875,69 @@ ERROR 42S02: Table 'test.t1' doesn't exist
SET STATEMENT max_statement_time=180 FOR BACKUP LOCK test.t1;
SET STATEMENT max_statement_time=180 FOR BACKUP UNLOCK;
set SQL_MODE=@save_sql_mode;
#
# MDEV-21997: Server crashes in LEX::create_item_ident_sp
# upon use of unknown identifier
#
/*! IF 1 IN ( SELECT 2 ) OR foo = 3 THEN */ SELECT 4;
ERROR 42000: Undeclared variable: foo
BEGIN NOT ATOMIC
IF (SELECT 2) OR foo = 3 THEN
SELECT 4;
END IF ;
END;
$$
ERROR 42000: Undeclared variable: foo
# ... but if declare it then it still work
BEGIN NOT ATOMIC
DECLARE foo int;
IF (SELECT 2) OR foo = 3 THEN
SELECT 4;
END IF ;
END;
$$
4
4
CASE (SELECT 2) OR foo
WHEN 1 THEN
SET @x=10;
$$
ERROR 42000: Undeclared variable: foo
/*! WHILE (SELECT 2) OR foo */
SET @x=10;
END WHILE;
$$
ERROR 42000: Undeclared variable: foo
REPEAT
SET @x=10;
UNTIL (SELECT 2) OR foo
END REPEAT;
$$
ERROR 42000: Undeclared variable: foo
FOR i IN 1..(SELECT 2) OR foo
DO
SET @x=10;
END FOR;
$$
ERROR 42000: Undeclared variable: foo
# ... but automatic FOR variable still work
FOR i IN 1..2
DO
SELECT i;
END FOR;
$$
i
1
i
2
#
# MDEV-21998: Server crashes in st_select_lex::add_table_to_list
# upon mix of KILL and sequences
#
KILL ( SELECT 1 ) + LASTVAL(s);
ERROR 42000: KILL does not support subqueries or stored functions
KILL LASTVAL(s);
ERROR 42000: KILL does not support subqueries or stored functions
# End of 10.4 tests
#
# Start of 10.5 tests

View File

@ -1084,7 +1084,9 @@ CREATE TABLE t1 AS SELECT 1 LIMIT 1 UNION SELECT 2;
--echo # For now, we're testing the parser.
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (10),(20),(30);
--error ER_AGGREGATE_ORDER_FOR_UNION
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a);
--error ER_AGGREGATE_ORDER_FOR_UNION
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a ORDER BY a);
DROP TABLE t1;
@ -1125,8 +1127,11 @@ DROP TABLE t1;
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (10),(20),(30);
--error ER_AGGREGATE_ORDER_FOR_UNION
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a);
--error ER_AGGREGATE_ORDER_FOR_UNION
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a ORDER BY a);
--error ER_AGGREGATE_ORDER_FOR_UNION
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a ORDER BY a) LIMIT 1;
DROP TABLE t1;
@ -1610,6 +1615,80 @@ SET STATEMENT max_statement_time=180 FOR BACKUP LOCK test.t1;
SET STATEMENT max_statement_time=180 FOR BACKUP UNLOCK;
set SQL_MODE=@save_sql_mode;
--echo #
--echo # MDEV-21997: Server crashes in LEX::create_item_ident_sp
--echo # upon use of unknown identifier
--echo #
--error ER_SP_UNDECLARED_VAR
/*! IF 1 IN ( SELECT 2 ) OR foo = 3 THEN */ SELECT 4;
DELIMITER $$;
--error ER_SP_UNDECLARED_VAR
BEGIN NOT ATOMIC
IF (SELECT 2) OR foo = 3 THEN
SELECT 4;
END IF ;
END;
$$
--echo # ... but if declare it then it still work
BEGIN NOT ATOMIC
DECLARE foo int;
IF (SELECT 2) OR foo = 3 THEN
SELECT 4;
END IF ;
END;
$$
--error ER_SP_UNDECLARED_VAR
CASE (SELECT 2) OR foo
WHEN 1 THEN
SET @x=10;
$$
--error ER_SP_UNDECLARED_VAR
/*! WHILE (SELECT 2) OR foo */
SET @x=10;
END WHILE;
$$
--error ER_SP_UNDECLARED_VAR
REPEAT
SET @x=10;
UNTIL (SELECT 2) OR foo
END REPEAT;
$$
--error ER_SP_UNDECLARED_VAR
FOR i IN 1..(SELECT 2) OR foo
DO
SET @x=10;
END FOR;
$$
--echo # ... but automatic FOR variable still work
FOR i IN 1..2
DO
SELECT i;
END FOR;
$$
DELIMITER ;$$
--echo #
--echo # MDEV-21998: Server crashes in st_select_lex::add_table_to_list
--echo # upon mix of KILL and sequences
--echo #
--error ER_SUBQUERIES_NOT_SUPPORTED
KILL ( SELECT 1 ) + LASTVAL(s);
--error ER_SUBQUERIES_NOT_SUPPORTED
KILL LASTVAL(s);
--echo # End of 10.4 tests

View File

@ -1897,6 +1897,24 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
SELECT * FROM t1 PARTITION (p0);
i
UNLOCK TABLES;
DROP TABLE t1;
#
# MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause.
#
CREATE TABLE t1 (a INT, b INT, KEY (a)) ENGINE=InnoDB PARTITION BY KEY(b) PARTITIONS 4;
INSERT INTO t1 VALUES (3,0),(8,2),(7,8),(3,4),(2,4),(0,7),(4,3),(3,6);
FLUSH TABLES;
UPDATE t1 PARTITION (p3,p1) SET a = 2 WHERE a = 3;
SELECT * FROM t1;
a b
2 0
7 8
2 4
2 4
0 7
4 3
8 2
2 6
DROP TABLE t1, t2;
#
# MDEV-18982: INSERT using explicit patition pruning with column list

View File

@ -874,6 +874,18 @@ SELECT * FROM t1 PARTITION (p0);
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
SELECT * FROM t1 PARTITION (p0);
UNLOCK TABLES;
DROP TABLE t1;
--echo #
--echo # MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause.
--echo #
CREATE TABLE t1 (a INT, b INT, KEY (a)) ENGINE=InnoDB PARTITION BY KEY(b) PARTITIONS 4;
INSERT INTO t1 VALUES (3,0),(8,2),(7,8),(3,4),(2,4),(0,7),(4,3),(3,6);
FLUSH TABLES;
UPDATE t1 PARTITION (p3,p1) SET a = 2 WHERE a = 3;
SELECT * FROM t1;
# Cleanup
DROP TABLE t1, t2;

View File

@ -342,6 +342,19 @@ ERROR 42S02: Table 'test.t1' doesn't exist
DROP TABLE t1;
# End of 10.1 test
#
# MDEV-21258: Can't uninstall plugin if the library file doesn't exist
#
insert into mysql.plugin values ("unexisting_plugin", "soname");
select * from mysql.plugin WHERE name='unexisting_plugin';
name dl
unexisting_plugin soname
UNINSTALL PLUGIN unexisting_plugin;
select * from mysql.plugin WHERE name='unexisting_plugin';
name dl
UNINSTALL PLUGIN unexisting_plugin;
ERROR 42000: PLUGIN unexisting_plugin does not exist
# End of 10.2 tests
#
# MDEV-16294: INSTALL PLUGIN IF NOT EXISTS / UNINSTALL PLUGIN IF EXISTS
#
# INSTALL IF NOT EXISTS PLUGIN name SONAME library /
@ -403,3 +416,4 @@ INSTALL PLUGIN example SONAME 'ha_example';
CREATE TEMPORARY TABLE t1(a INT) ENGINE=example;
DROP TABLE t1;
UNINSTALL PLUGIN example;
# End of 10.4 tests

View File

@ -277,8 +277,27 @@ DROP TABLE t1;
--echo # End of 10.1 test
--source include/install_plugin_if_exists.inc
--echo #
--echo # MDEV-21258: Can't uninstall plugin if the library file doesn't exist
--echo #
insert into mysql.plugin values ("unexisting_plugin", "soname");
# check that we have the plugin installed
select * from mysql.plugin WHERE name='unexisting_plugin';
# make attempt to uninstall the plugin
UNINSTALL PLUGIN unexisting_plugin;
# check that we have the plugin uninstalled
select * from mysql.plugin WHERE name='unexisting_plugin';
--error ER_SP_DOES_NOT_EXIST
UNINSTALL PLUGIN unexisting_plugin;
--echo # End of 10.2 tests
--source include/install_plugin_if_exists.inc
--echo #
--echo # Make sure temporary tables maintain plugin references properly
@ -294,3 +313,5 @@ INSTALL PLUGIN example SONAME 'ha_example';
CREATE TEMPORARY TABLE t1(a INT) ENGINE=example;
DROP TABLE t1;
UNINSTALL PLUGIN example;
--echo # End of 10.4 tests

View File

@ -0,0 +1,21 @@
#
# MDEV-22553: Assertion `info->lastpos == (~ (my_off_t) 0)' failed in mi_rkey with rowid_filer=on
#
CREATE TABLE t1 (
a smallint(6) DEFAULT NULL,
b bigint(20) DEFAULT NULL,
c varchar(64) DEFAULT NULL,
d varchar(64) DEFAULT NULL,
e smallint(6) DEFAULT NULL,
f bigint(20) DEFAULT NULL,
KEY a (a),
KEY d (d),
KEY f (f)
) ENGINE=MyISAM;
ALTER TABLE t1 DISABLE KEYS;
# Insert a lot of rows
ALTER TABLE t1 ENABLE KEYS;
# Must not crash:
SELECT * FROM t1 WHERE ( a BETWEEN 255 AND 270 OR f = 200 ) AND f IN ( 1, 4, 112, 143 ) AND d IN ('Montana', 'South Dakota');
a b c d e f
DROP TABLE t1;

File diff suppressed because it is too large Load Diff

View File

@ -2285,13 +2285,13 @@ begin
DECLARE foo CONDITION FOR SQLSTATE '12345';
SIGNAL foo SET MYSQL_ERRNO = `65`; /* illegal */
end $$
ERROR 42S22: Unknown column '65' in 'field list'
ERROR 42000: Undeclared variable: 65
create procedure test_signal()
begin
DECLARE foo CONDITION FOR SQLSTATE '12345';
SIGNAL foo SET MYSQL_ERRNO = `A`; /* illegal */
end $$
ERROR 42S22: Unknown column 'A' in 'field list'
ERROR 42000: Undeclared variable: A
create procedure test_signal()
begin
DECLARE foo CONDITION FOR SQLSTATE '12345';
@ -2342,7 +2342,7 @@ DECLARE foo CONDITION FOR SQLSTATE '12345';
SIGNAL foo SET MYSQL_ERRNO = 1000,
MESSAGE_TEXT = `Hello`;
end $$
ERROR 42S22: Unknown column 'Hello' in 'field list'
ERROR 42000: Undeclared variable: Hello
create procedure test_signal()
begin
DECLARE foo CONDITION FOR SQLSTATE '12345';

View File

@ -2546,7 +2546,7 @@ end $$
call test_signal $$
drop procedure test_signal $$
-- error ER_BAD_FIELD_ERROR
-- error ER_SP_UNDECLARED_VAR
create procedure test_signal()
begin
DECLARE foo CONDITION FOR SQLSTATE '12345';
@ -2554,7 +2554,7 @@ begin
end $$
-- error ER_BAD_FIELD_ERROR
-- error ER_SP_UNDECLARED_VAR
create procedure test_signal()
begin
DECLARE foo CONDITION FOR SQLSTATE '12345';
@ -2616,7 +2616,7 @@ end $$
call test_signal $$
drop procedure test_signal $$
-- error ER_BAD_FIELD_ERROR
-- error ER_SP_UNDECLARED_VAR
create procedure test_signal()
begin
DECLARE foo CONDITION FOR SQLSTATE '12345';

View File

@ -452,7 +452,7 @@ else
set b = a;
end if;
end|
ERROR 42S22: Unknown column 'aa' in 'field list'
ERROR 42000: Undeclared variable: aa
create procedure bug4344() drop procedure bug4344|
ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
create procedure bug4344() drop function bug4344|
@ -1067,7 +1067,7 @@ IF bug13037_foo THEN
SELECT 1;
END IF;
END|
ERROR 42S22: Unknown column 'bug13037_foo' in 'field list'
ERROR 42000: Undeclared variable: bug13037_foo
CREATE PROCEDURE bug13037_p2()
BEGIN
SET @bug13037_foo = bug13037_bar;
@ -2870,3 +2870,16 @@ SELECT @msg;
DROP FUNCTION f1;
DROP FUNCTION f2;
DROP TABLE t1;
#
# 10.2 Test
#
# MDEV-MDEV-22058: Assertion `!is_set() || (m_status == DA_OK_BULK &&
# is_bulk_op())' failed in Diagnostics_area::set_ok_status
#
SET @old_optimizer_switch = @@SESSION.OPTIMIZER_SWITCH;
SET @cmd:="SET @@SESSION.SQL_MODE=(SELECT 'a')";
SET @@SESSION.OPTIMIZER_SWITCH="in_to_exists=OFF,materialization=OFF";
ERROR HY000: At least one of the 'in_to_exists' or 'materialization' optimizer_switch flags must be 'on'
PREPARE stmt FROM @cmd;
set @@SESSION.OPTIMIZER_SWITCH=@old_optimizer_switch;
# End of 10.2 Test

View File

@ -612,7 +612,7 @@ create procedure bug2653_1(a int, out b int)
set b = aa|
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
create procedure bug2653_2(a int, out b int)
begin
if aa < 0 then
@ -1505,7 +1505,7 @@ DROP PROCEDURE IF EXISTS bug13037_p3;
delimiter |;
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
CREATE PROCEDURE bug13037_p1()
BEGIN
IF bug13037_foo THEN
@ -3835,3 +3835,22 @@ SELECT @msg;
DROP FUNCTION f1;
DROP FUNCTION f2;
DROP TABLE t1;
--echo #
--echo # 10.2 Test
--echo #
--echo # MDEV-MDEV-22058: Assertion `!is_set() || (m_status == DA_OK_BULK &&
--echo # is_bulk_op())' failed in Diagnostics_area::set_ok_status
--echo #
SET @old_optimizer_switch = @@SESSION.OPTIMIZER_SWITCH;
SET @cmd:="SET @@SESSION.SQL_MODE=(SELECT 'a')";
--error ER_ILLEGAL_SUBQUERY_OPTIMIZER_SWITCHES
SET @@SESSION.OPTIMIZER_SWITCH="in_to_exists=OFF,materialization=OFF";
PREPARE stmt FROM @cmd;
set @@SESSION.OPTIMIZER_SWITCH=@old_optimizer_switch;
--echo # End of 10.2 Test

View File

@ -4184,7 +4184,7 @@ select v, isnull(v);
end if;
end;
end|
ERROR 42S22: Unknown column 'undefined_var' in 'field list'
ERROR 42000: Undeclared variable: undefined_var
create procedure bug14643_2()
begin
declare continue handler for sqlexception select 'boo' as 'Handler';
@ -4196,7 +4196,7 @@ select 2;
end case;
select undefined_var;
end|
ERROR 42S22: Unknown column 'undefined_var' in 'field list'
ERROR 42000: Undeclared variable: undefined_var
drop procedure if exists bug14304|
drop table if exists t3, t4|
create table t3(a int primary key auto_increment)|
@ -4226,7 +4226,7 @@ create procedure bug14376()
begin
declare x int default x;
end|
ERROR 42S22: Unknown column 'x' in 'field list'
ERROR 42000: Undeclared variable: x
create procedure bug14376()
begin
declare x int default 42;
@ -4481,7 +4481,7 @@ select 'no' as 'v';
end if;
select 'done' as 'End';
end|
ERROR 42S22: Unknown column 'v' in 'field list'
ERROR 42000: Undeclared variable: v
create procedure bug14498_2()
begin
declare continue handler for sqlexception select 'error' as 'Handler';
@ -4490,7 +4490,7 @@ select 'yes' as 'v';
end while;
select 'done' as 'End';
end|
ERROR 42S22: Unknown column 'v' in 'field list'
ERROR 42000: Undeclared variable: v
create procedure bug14498_3()
begin
declare continue handler for sqlexception select 'error' as 'Handler';
@ -4499,7 +4499,7 @@ select 'maybe' as 'v';
until v end repeat;
select 'done' as 'End';
end|
ERROR 42S22: Unknown column 'v' in 'field list'
ERROR 42000: Undeclared variable: v
create procedure bug14498_4()
begin
declare continue handler for sqlexception select 'error' as 'Handler';
@ -4513,7 +4513,7 @@ select '?' as 'v';
end case;
select 'done' as 'End';
end|
ERROR 42S22: Unknown column 'v' in 'field list'
ERROR 42000: Undeclared variable: v
create procedure bug14498_5()
begin
declare continue handler for sqlexception select 'error' as 'Handler';
@ -4527,7 +4527,7 @@ select '?' as 'v';
end case;
select 'done' as 'End';
end|
ERROR 42S22: Unknown column 'v' in 'field list'
ERROR 42000: Undeclared variable: v
drop table if exists t3|
drop procedure if exists bug15231_1|
drop procedure if exists bug15231_2|
@ -8401,7 +8401,7 @@ DECLARE name VARCHAR(10);
SET name="hello";
call p1(name2);
END|
ERROR 42S22: Unknown column 'name2' in 'field list'
ERROR 42000: Undeclared variable: name2
call p2();
a
hello

View File

@ -5046,7 +5046,7 @@ drop procedure if exists bug14643_1|
drop procedure if exists bug14643_2|
--enable_warnings
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
create procedure bug14643_1()
begin
declare continue handler for sqlexception select 'boo' as 'Handler';
@ -5062,7 +5062,7 @@ begin
end;
end|
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
create procedure bug14643_2()
begin
declare continue handler for sqlexception select 'boo' as 'Handler';
@ -5117,7 +5117,7 @@ drop table t3, t4|
drop procedure if exists bug14376|
--enable_warnings
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
create procedure bug14376()
begin
declare x int default x;
@ -5344,7 +5344,7 @@ drop procedure if exists bug14498_4|
drop procedure if exists bug14498_5|
--enable_warnings
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
create procedure bug14498_1()
begin
declare continue handler for sqlexception select 'error' as 'Handler';
@ -5357,7 +5357,7 @@ begin
select 'done' as 'End';
end|
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
create procedure bug14498_2()
begin
declare continue handler for sqlexception select 'error' as 'Handler';
@ -5368,7 +5368,7 @@ begin
select 'done' as 'End';
end|
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
create procedure bug14498_3()
begin
declare continue handler for sqlexception select 'error' as 'Handler';
@ -5379,7 +5379,7 @@ begin
select 'done' as 'End';
end|
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
create procedure bug14498_4()
begin
declare continue handler for sqlexception select 'error' as 'Handler';
@ -5395,7 +5395,7 @@ begin
select 'done' as 'End';
end|
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
create procedure bug14498_5()
begin
declare continue handler for sqlexception select 'error' as 'Handler';
@ -9931,7 +9931,7 @@ BEGIN
call p1(name);
END|
--error ER_BAD_FIELD_ERROR
--error ER_SP_UNDECLARED_VAR
CREATE OR REPLACE PROCEDURE p3 ()
BEGIN
DECLARE name VARCHAR(10);

View File

@ -926,4 +926,28 @@ set global innodb_stats_persistent= @innodb_stats_persistent_save;
set global innodb_stats_persistent_sample_pages=
@innodb_stats_persistent_sample_pages_save;
set optimizer_switch=@save_optimizer_switch_for_stat_tables_test;
#
# MDEV-22851: Engine independent index statistics are incorrect for large tables on Windows.
#
CREATE TABLE t1(a INT) ENGINE=INNODB;
INSERT INTO t1 SELECT 1 FROM seq_1_to_60000;
SET @save_use_stat_tables= @@use_stat_tables;
SET use_stat_tables= preferably;
SELECT count(*) FROM t1;
count(*)
60000
CREATE INDEX idx ON t1(a);
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS (a) INDEXES (idx);
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
SELECT * FROM mysql.index_stats where table_name='t1';
db_name table_name index_name prefix_arity avg_frequency
test t1 idx 1 60000.0000
SELECT * FROM mysql.column_stats where table_name='t1';
db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram
test t1 a 1 1 0.0000 4.0000 60000.0000 0 NULL NULL
SET use_stat_tables= @save_use_stat_tables;
DROP TABLE t1;
# end of 10.1 tests
SET SESSION DEFAULT_STORAGE_ENGINE=DEFAULT;

View File

@ -1,4 +1,5 @@
--source include/have_innodb.inc
--source include/have_sequence.inc
SET SESSION DEFAULT_STORAGE_ENGINE='InnoDB';
@ -18,4 +19,23 @@ set global innodb_stats_persistent_sample_pages=
set optimizer_switch=@save_optimizer_switch_for_stat_tables_test;
--echo #
--echo # MDEV-22851: Engine independent index statistics are incorrect for large tables on Windows.
--echo #
CREATE TABLE t1(a INT) ENGINE=INNODB;
INSERT INTO t1 SELECT 1 FROM seq_1_to_60000;
SET @save_use_stat_tables= @@use_stat_tables;
SET use_stat_tables= preferably;
SELECT count(*) FROM t1;
CREATE INDEX idx ON t1(a);
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS (a) INDEXES (idx);
SELECT * FROM mysql.index_stats where table_name='t1';
SELECT * FROM mysql.column_stats where table_name='t1';
SET use_stat_tables= @save_use_stat_tables;
DROP TABLE t1;
--echo # end of 10.1 tests
SET SESSION DEFAULT_STORAGE_ENGINE=DEFAULT;

View File

@ -440,8 +440,8 @@ drop table t1,t3;
# MDEV-159 Assertion about not marked for read failed in
# String* Field_varstring::val_str(String*, String*)
#
SET optimizer_switch = REPLACE( @@optimizer_switch, '=on', '=off' );
SET optimizer_switch='in_to_exists=on,exists_to_in=on';
SET optimizer_switch = REPLACE(REPLACE(@@optimizer_switch, '=on', '=off'), 'in_to_exists=off', 'in_to_exists=on');
SET optimizer_switch='exists_to_in=on';
CREATE TABLE t1 ( a VARCHAR(1) );
INSERT INTO t1 VALUES ('k'),('m');
CREATE TABLE t2 ( b INT,
@ -596,8 +596,8 @@ Warnings:
Note 1276 Field or reference 'test.alias.a' of SELECT #2 was resolved in SELECT #1
Note 1276 Field or reference 'test.alias.b' of SELECT #2 was resolved in SELECT #1
Note 1003 select `test`.`alias`.`a` AS `a`,`test`.`alias`.`b` AS `b` from `test`.`t1` `alias` semi join (`test`.`t1`) where `test`.`t1`.`a` = `test`.`alias`.`b` and `test`.`alias`.`b` > `test`.`alias`.`a`
SET optimizer_switch = REPLACE( @@optimizer_switch, '=on', '=off' );
SET optimizer_switch = 'exists_to_in=on,materialization=on,semijoin=off';
SET optimizer_switch = REPLACE(REPLACE(@@optimizer_switch, '=on', '=off'), 'materialization=off', 'materialization=on');
SET optimizer_switch = 'exists_to_in=on,semijoin=off';
SELECT * FROM t1 AS alias
WHERE EXISTS ( SELECT * FROM t1 WHERE a > alias.a AND a = alias.b );
a b

View File

@ -330,8 +330,8 @@ drop table t1,t3;
--echo # String* Field_varstring::val_str(String*, String*)
--echo #
SET optimizer_switch = REPLACE( @@optimizer_switch, '=on', '=off' );
SET optimizer_switch='in_to_exists=on,exists_to_in=on';
SET optimizer_switch = REPLACE(REPLACE(@@optimizer_switch, '=on', '=off'), 'in_to_exists=off', 'in_to_exists=on');
SET optimizer_switch='exists_to_in=on';
CREATE TABLE t1 ( a VARCHAR(1) );
INSERT INTO t1 VALUES ('k'),('m');
@ -466,8 +466,8 @@ explain extended
SELECT * FROM t1 AS alias
WHERE EXISTS ( SELECT * FROM t1 WHERE a > alias.a AND a = alias.b );
SET optimizer_switch = REPLACE( @@optimizer_switch, '=on', '=off' );
SET optimizer_switch = 'exists_to_in=on,materialization=on,semijoin=off';
SET optimizer_switch = REPLACE(REPLACE(@@optimizer_switch, '=on', '=off'), 'materialization=off', 'materialization=on');
SET optimizer_switch = 'exists_to_in=on,semijoin=off';
SELECT * FROM t1 AS alias
WHERE EXISTS ( SELECT * FROM t1 WHERE a > alias.a AND a = alias.b );
explain extended

View File

@ -876,6 +876,989 @@ 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
DROP TABLE t1;
#
# MDEV-23323 Rounding functions return a wrong data type for a BIT, ENUM, SET argument
#
BEGIN NOT ATOMIC
FOR i IN 1..64
DO
SELECT '-----', CONCAT('BIT(',i,')') AS Type;
EXECUTE IMMEDIATE REPLACE('CREATE TABLE t1 (a BIT(64))','64', i);
INSERT IGNORE INTO t1 VALUES (0xFFFFFFFFFFFFFFFF);
CREATE TABLE t2 AS SELECT
a,
FLOOR(a) AS cf,
CEILING(a) AS cc,
ROUND(a) AS cr,
TRUNCATE(a,0) AS ct
FROM t1;
SHOW CREATE TABLE t2;
SELECT CAST(a AS UNSIGNED) AS a, cf, cc, cr, ct FROM t2;
DROP TABLE t2;
DROP TABLE t1;
END FOR;
END;
$$
----- -----
Type BIT(1)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(1) DEFAULT NULL,
`cf` int(1) unsigned DEFAULT NULL,
`cc` int(1) unsigned DEFAULT NULL,
`cr` int(1) unsigned DEFAULT NULL,
`ct` int(1) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 1
cf 1
cc 1
cr 1
ct 1
----- -----
Type BIT(2)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(2) DEFAULT NULL,
`cf` int(1) unsigned DEFAULT NULL,
`cc` int(1) unsigned DEFAULT NULL,
`cr` int(1) unsigned DEFAULT NULL,
`ct` int(1) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 3
cf 3
cc 3
cr 3
ct 3
----- -----
Type BIT(3)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(3) DEFAULT NULL,
`cf` int(1) unsigned DEFAULT NULL,
`cc` int(1) unsigned DEFAULT NULL,
`cr` int(1) unsigned DEFAULT NULL,
`ct` int(1) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 7
cf 7
cc 7
cr 7
ct 7
----- -----
Type BIT(4)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(4) DEFAULT NULL,
`cf` int(2) unsigned DEFAULT NULL,
`cc` int(2) unsigned DEFAULT NULL,
`cr` int(2) unsigned DEFAULT NULL,
`ct` int(2) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 15
cf 15
cc 15
cr 15
ct 15
----- -----
Type BIT(5)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(5) DEFAULT NULL,
`cf` int(2) unsigned DEFAULT NULL,
`cc` int(2) unsigned DEFAULT NULL,
`cr` int(2) unsigned DEFAULT NULL,
`ct` int(2) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 31
cf 31
cc 31
cr 31
ct 31
----- -----
Type BIT(6)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(6) DEFAULT NULL,
`cf` int(2) unsigned DEFAULT NULL,
`cc` int(2) unsigned DEFAULT NULL,
`cr` int(2) unsigned DEFAULT NULL,
`ct` int(2) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 63
cf 63
cc 63
cr 63
ct 63
----- -----
Type BIT(7)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(7) DEFAULT NULL,
`cf` int(3) unsigned DEFAULT NULL,
`cc` int(3) unsigned DEFAULT NULL,
`cr` int(3) unsigned DEFAULT NULL,
`ct` int(3) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 127
cf 127
cc 127
cr 127
ct 127
----- -----
Type BIT(8)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(8) DEFAULT NULL,
`cf` int(3) unsigned DEFAULT NULL,
`cc` int(3) unsigned DEFAULT NULL,
`cr` int(3) unsigned DEFAULT NULL,
`ct` int(3) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 255
cf 255
cc 255
cr 255
ct 255
----- -----
Type BIT(9)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(9) DEFAULT NULL,
`cf` int(3) unsigned DEFAULT NULL,
`cc` int(3) unsigned DEFAULT NULL,
`cr` int(3) unsigned DEFAULT NULL,
`ct` int(3) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 511
cf 511
cc 511
cr 511
ct 511
----- -----
Type BIT(10)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(10) DEFAULT NULL,
`cf` int(4) unsigned DEFAULT NULL,
`cc` int(4) unsigned DEFAULT NULL,
`cr` int(4) unsigned DEFAULT NULL,
`ct` int(4) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 1023
cf 1023
cc 1023
cr 1023
ct 1023
----- -----
Type BIT(11)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(11) DEFAULT NULL,
`cf` int(4) unsigned DEFAULT NULL,
`cc` int(4) unsigned DEFAULT NULL,
`cr` int(4) unsigned DEFAULT NULL,
`ct` int(4) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 2047
cf 2047
cc 2047
cr 2047
ct 2047
----- -----
Type BIT(12)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(12) DEFAULT NULL,
`cf` int(4) unsigned DEFAULT NULL,
`cc` int(4) unsigned DEFAULT NULL,
`cr` int(4) unsigned DEFAULT NULL,
`ct` int(4) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 4095
cf 4095
cc 4095
cr 4095
ct 4095
----- -----
Type BIT(13)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(13) DEFAULT NULL,
`cf` int(4) unsigned DEFAULT NULL,
`cc` int(4) unsigned DEFAULT NULL,
`cr` int(4) unsigned DEFAULT NULL,
`ct` int(4) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 8191
cf 8191
cc 8191
cr 8191
ct 8191
----- -----
Type BIT(14)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(14) DEFAULT NULL,
`cf` int(5) unsigned DEFAULT NULL,
`cc` int(5) unsigned DEFAULT NULL,
`cr` int(5) unsigned DEFAULT NULL,
`ct` int(5) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 16383
cf 16383
cc 16383
cr 16383
ct 16383
----- -----
Type BIT(15)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(15) DEFAULT NULL,
`cf` int(5) unsigned DEFAULT NULL,
`cc` int(5) unsigned DEFAULT NULL,
`cr` int(5) unsigned DEFAULT NULL,
`ct` int(5) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 32767
cf 32767
cc 32767
cr 32767
ct 32767
----- -----
Type BIT(16)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(16) DEFAULT NULL,
`cf` int(5) unsigned DEFAULT NULL,
`cc` int(5) unsigned DEFAULT NULL,
`cr` int(5) unsigned DEFAULT NULL,
`ct` int(5) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 65535
cf 65535
cc 65535
cr 65535
ct 65535
----- -----
Type BIT(17)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(17) DEFAULT NULL,
`cf` int(6) unsigned DEFAULT NULL,
`cc` int(6) unsigned DEFAULT NULL,
`cr` int(6) unsigned DEFAULT NULL,
`ct` int(6) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 131071
cf 131071
cc 131071
cr 131071
ct 131071
----- -----
Type BIT(18)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(18) DEFAULT NULL,
`cf` int(6) unsigned DEFAULT NULL,
`cc` int(6) unsigned DEFAULT NULL,
`cr` int(6) unsigned DEFAULT NULL,
`ct` int(6) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 262143
cf 262143
cc 262143
cr 262143
ct 262143
----- -----
Type BIT(19)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(19) DEFAULT NULL,
`cf` int(6) unsigned DEFAULT NULL,
`cc` int(6) unsigned DEFAULT NULL,
`cr` int(6) unsigned DEFAULT NULL,
`ct` int(6) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 524287
cf 524287
cc 524287
cr 524287
ct 524287
----- -----
Type BIT(20)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(20) DEFAULT NULL,
`cf` int(7) unsigned DEFAULT NULL,
`cc` int(7) unsigned DEFAULT NULL,
`cr` int(7) unsigned DEFAULT NULL,
`ct` int(7) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 1048575
cf 1048575
cc 1048575
cr 1048575
ct 1048575
----- -----
Type BIT(21)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(21) DEFAULT NULL,
`cf` int(7) unsigned DEFAULT NULL,
`cc` int(7) unsigned DEFAULT NULL,
`cr` int(7) unsigned DEFAULT NULL,
`ct` int(7) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 2097151
cf 2097151
cc 2097151
cr 2097151
ct 2097151
----- -----
Type BIT(22)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(22) DEFAULT NULL,
`cf` int(7) unsigned DEFAULT NULL,
`cc` int(7) unsigned DEFAULT NULL,
`cr` int(7) unsigned DEFAULT NULL,
`ct` int(7) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 4194303
cf 4194303
cc 4194303
cr 4194303
ct 4194303
----- -----
Type BIT(23)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(23) DEFAULT NULL,
`cf` int(7) unsigned DEFAULT NULL,
`cc` int(7) unsigned DEFAULT NULL,
`cr` int(7) unsigned DEFAULT NULL,
`ct` int(7) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 8388607
cf 8388607
cc 8388607
cr 8388607
ct 8388607
----- -----
Type BIT(24)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(24) DEFAULT NULL,
`cf` int(8) unsigned DEFAULT NULL,
`cc` int(8) unsigned DEFAULT NULL,
`cr` int(8) unsigned DEFAULT NULL,
`ct` int(8) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 16777215
cf 16777215
cc 16777215
cr 16777215
ct 16777215
----- -----
Type BIT(25)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(25) DEFAULT NULL,
`cf` int(8) unsigned DEFAULT NULL,
`cc` int(8) unsigned DEFAULT NULL,
`cr` int(8) unsigned DEFAULT NULL,
`ct` int(8) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 33554431
cf 33554431
cc 33554431
cr 33554431
ct 33554431
----- -----
Type BIT(26)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(26) DEFAULT NULL,
`cf` int(8) unsigned DEFAULT NULL,
`cc` int(8) unsigned DEFAULT NULL,
`cr` int(8) unsigned DEFAULT NULL,
`ct` int(8) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 67108863
cf 67108863
cc 67108863
cr 67108863
ct 67108863
----- -----
Type BIT(27)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(27) DEFAULT NULL,
`cf` int(9) unsigned DEFAULT NULL,
`cc` int(9) unsigned DEFAULT NULL,
`cr` int(9) unsigned DEFAULT NULL,
`ct` int(9) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 134217727
cf 134217727
cc 134217727
cr 134217727
ct 134217727
----- -----
Type BIT(28)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(28) DEFAULT NULL,
`cf` int(9) unsigned DEFAULT NULL,
`cc` int(9) unsigned DEFAULT NULL,
`cr` int(9) unsigned DEFAULT NULL,
`ct` int(9) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 268435455
cf 268435455
cc 268435455
cr 268435455
ct 268435455
----- -----
Type BIT(29)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(29) DEFAULT NULL,
`cf` int(9) unsigned DEFAULT NULL,
`cc` int(9) unsigned DEFAULT NULL,
`cr` int(9) unsigned DEFAULT NULL,
`ct` int(9) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 536870911
cf 536870911
cc 536870911
cr 536870911
ct 536870911
----- -----
Type BIT(30)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(30) DEFAULT NULL,
`cf` int(10) unsigned DEFAULT NULL,
`cc` int(10) unsigned DEFAULT NULL,
`cr` int(10) unsigned DEFAULT NULL,
`ct` int(10) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 1073741823
cf 1073741823
cc 1073741823
cr 1073741823
ct 1073741823
----- -----
Type BIT(31)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(31) DEFAULT NULL,
`cf` int(10) unsigned DEFAULT NULL,
`cc` int(10) unsigned DEFAULT NULL,
`cr` int(10) unsigned DEFAULT NULL,
`ct` int(10) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 2147483647
cf 2147483647
cc 2147483647
cr 2147483647
ct 2147483647
----- -----
Type BIT(32)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(32) DEFAULT NULL,
`cf` int(10) unsigned DEFAULT NULL,
`cc` int(10) unsigned DEFAULT NULL,
`cr` int(10) unsigned DEFAULT NULL,
`ct` int(10) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 4294967295
cf 4294967295
cc 4294967295
cr 4294967295
ct 4294967295
----- -----
Type BIT(33)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(33) DEFAULT NULL,
`cf` bigint(10) unsigned DEFAULT NULL,
`cc` bigint(10) unsigned DEFAULT NULL,
`cr` bigint(10) unsigned DEFAULT NULL,
`ct` bigint(10) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 8589934591
cf 8589934591
cc 8589934591
cr 8589934591
ct 8589934591
----- -----
Type BIT(34)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(34) DEFAULT NULL,
`cf` bigint(11) unsigned DEFAULT NULL,
`cc` bigint(11) unsigned DEFAULT NULL,
`cr` bigint(11) unsigned DEFAULT NULL,
`ct` bigint(11) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 17179869183
cf 17179869183
cc 17179869183
cr 17179869183
ct 17179869183
----- -----
Type BIT(35)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(35) DEFAULT NULL,
`cf` bigint(11) unsigned DEFAULT NULL,
`cc` bigint(11) unsigned DEFAULT NULL,
`cr` bigint(11) unsigned DEFAULT NULL,
`ct` bigint(11) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 34359738367
cf 34359738367
cc 34359738367
cr 34359738367
ct 34359738367
----- -----
Type BIT(36)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(36) DEFAULT NULL,
`cf` bigint(11) unsigned DEFAULT NULL,
`cc` bigint(11) unsigned DEFAULT NULL,
`cr` bigint(11) unsigned DEFAULT NULL,
`ct` bigint(11) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 68719476735
cf 68719476735
cc 68719476735
cr 68719476735
ct 68719476735
----- -----
Type BIT(37)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(37) DEFAULT NULL,
`cf` bigint(12) unsigned DEFAULT NULL,
`cc` bigint(12) unsigned DEFAULT NULL,
`cr` bigint(12) unsigned DEFAULT NULL,
`ct` bigint(12) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 137438953471
cf 137438953471
cc 137438953471
cr 137438953471
ct 137438953471
----- -----
Type BIT(38)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(38) DEFAULT NULL,
`cf` bigint(12) unsigned DEFAULT NULL,
`cc` bigint(12) unsigned DEFAULT NULL,
`cr` bigint(12) unsigned DEFAULT NULL,
`ct` bigint(12) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 274877906943
cf 274877906943
cc 274877906943
cr 274877906943
ct 274877906943
----- -----
Type BIT(39)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(39) DEFAULT NULL,
`cf` bigint(12) unsigned DEFAULT NULL,
`cc` bigint(12) unsigned DEFAULT NULL,
`cr` bigint(12) unsigned DEFAULT NULL,
`ct` bigint(12) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 549755813887
cf 549755813887
cc 549755813887
cr 549755813887
ct 549755813887
----- -----
Type BIT(40)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(40) DEFAULT NULL,
`cf` bigint(13) unsigned DEFAULT NULL,
`cc` bigint(13) unsigned DEFAULT NULL,
`cr` bigint(13) unsigned DEFAULT NULL,
`ct` bigint(13) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 1099511627775
cf 1099511627775
cc 1099511627775
cr 1099511627775
ct 1099511627775
----- -----
Type BIT(41)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(41) DEFAULT NULL,
`cf` bigint(13) unsigned DEFAULT NULL,
`cc` bigint(13) unsigned DEFAULT NULL,
`cr` bigint(13) unsigned DEFAULT NULL,
`ct` bigint(13) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 2199023255551
cf 2199023255551
cc 2199023255551
cr 2199023255551
ct 2199023255551
----- -----
Type BIT(42)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(42) DEFAULT NULL,
`cf` bigint(13) unsigned DEFAULT NULL,
`cc` bigint(13) unsigned DEFAULT NULL,
`cr` bigint(13) unsigned DEFAULT NULL,
`ct` bigint(13) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 4398046511103
cf 4398046511103
cc 4398046511103
cr 4398046511103
ct 4398046511103
----- -----
Type BIT(43)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(43) DEFAULT NULL,
`cf` bigint(13) unsigned DEFAULT NULL,
`cc` bigint(13) unsigned DEFAULT NULL,
`cr` bigint(13) unsigned DEFAULT NULL,
`ct` bigint(13) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 8796093022207
cf 8796093022207
cc 8796093022207
cr 8796093022207
ct 8796093022207
----- -----
Type BIT(44)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(44) DEFAULT NULL,
`cf` bigint(14) unsigned DEFAULT NULL,
`cc` bigint(14) unsigned DEFAULT NULL,
`cr` bigint(14) unsigned DEFAULT NULL,
`ct` bigint(14) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 17592186044415
cf 17592186044415
cc 17592186044415
cr 17592186044415
ct 17592186044415
----- -----
Type BIT(45)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(45) DEFAULT NULL,
`cf` bigint(14) unsigned DEFAULT NULL,
`cc` bigint(14) unsigned DEFAULT NULL,
`cr` bigint(14) unsigned DEFAULT NULL,
`ct` bigint(14) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 35184372088831
cf 35184372088831
cc 35184372088831
cr 35184372088831
ct 35184372088831
----- -----
Type BIT(46)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(46) DEFAULT NULL,
`cf` bigint(14) unsigned DEFAULT NULL,
`cc` bigint(14) unsigned DEFAULT NULL,
`cr` bigint(14) unsigned DEFAULT NULL,
`ct` bigint(14) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 70368744177663
cf 70368744177663
cc 70368744177663
cr 70368744177663
ct 70368744177663
----- -----
Type BIT(47)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(47) DEFAULT NULL,
`cf` bigint(15) unsigned DEFAULT NULL,
`cc` bigint(15) unsigned DEFAULT NULL,
`cr` bigint(15) unsigned DEFAULT NULL,
`ct` bigint(15) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 140737488355327
cf 140737488355327
cc 140737488355327
cr 140737488355327
ct 140737488355327
----- -----
Type BIT(48)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(48) DEFAULT NULL,
`cf` bigint(15) unsigned DEFAULT NULL,
`cc` bigint(15) unsigned DEFAULT NULL,
`cr` bigint(15) unsigned DEFAULT NULL,
`ct` bigint(15) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 281474976710655
cf 281474976710655
cc 281474976710655
cr 281474976710655
ct 281474976710655
----- -----
Type BIT(49)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(49) DEFAULT NULL,
`cf` bigint(15) unsigned DEFAULT NULL,
`cc` bigint(15) unsigned DEFAULT NULL,
`cr` bigint(15) unsigned DEFAULT NULL,
`ct` bigint(15) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 562949953421311
cf 562949953421311
cc 562949953421311
cr 562949953421311
ct 562949953421311
----- -----
Type BIT(50)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(50) DEFAULT NULL,
`cf` bigint(16) unsigned DEFAULT NULL,
`cc` bigint(16) unsigned DEFAULT NULL,
`cr` bigint(16) unsigned DEFAULT NULL,
`ct` bigint(16) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 1125899906842623
cf 1125899906842623
cc 1125899906842623
cr 1125899906842623
ct 1125899906842623
----- -----
Type BIT(51)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(51) DEFAULT NULL,
`cf` bigint(16) unsigned DEFAULT NULL,
`cc` bigint(16) unsigned DEFAULT NULL,
`cr` bigint(16) unsigned DEFAULT NULL,
`ct` bigint(16) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 2251799813685247
cf 2251799813685247
cc 2251799813685247
cr 2251799813685247
ct 2251799813685247
----- -----
Type BIT(52)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(52) DEFAULT NULL,
`cf` bigint(16) unsigned DEFAULT NULL,
`cc` bigint(16) unsigned DEFAULT NULL,
`cr` bigint(16) unsigned DEFAULT NULL,
`ct` bigint(16) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 4503599627370495
cf 4503599627370495
cc 4503599627370495
cr 4503599627370495
ct 4503599627370495
----- -----
Type BIT(53)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(53) DEFAULT NULL,
`cf` bigint(16) unsigned DEFAULT NULL,
`cc` bigint(16) unsigned DEFAULT NULL,
`cr` bigint(16) unsigned DEFAULT NULL,
`ct` bigint(16) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9007199254740991
cf 9007199254740991
cc 9007199254740991
cr 9007199254740991
ct 9007199254740991
----- -----
Type BIT(54)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(54) DEFAULT NULL,
`cf` bigint(17) unsigned DEFAULT NULL,
`cc` bigint(17) unsigned DEFAULT NULL,
`cr` bigint(17) unsigned DEFAULT NULL,
`ct` bigint(17) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 18014398509481983
cf 18014398509481983
cc 18014398509481983
cr 18014398509481983
ct 18014398509481983
----- -----
Type BIT(55)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(55) DEFAULT NULL,
`cf` bigint(17) unsigned DEFAULT NULL,
`cc` bigint(17) unsigned DEFAULT NULL,
`cr` bigint(17) unsigned DEFAULT NULL,
`ct` bigint(17) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 36028797018963967
cf 36028797018963967
cc 36028797018963967
cr 36028797018963967
ct 36028797018963967
----- -----
Type BIT(56)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(56) DEFAULT NULL,
`cf` bigint(17) unsigned DEFAULT NULL,
`cc` bigint(17) unsigned DEFAULT NULL,
`cr` bigint(17) unsigned DEFAULT NULL,
`ct` bigint(17) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 72057594037927935
cf 72057594037927935
cc 72057594037927935
cr 72057594037927935
ct 72057594037927935
----- -----
Type BIT(57)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(57) DEFAULT NULL,
`cf` bigint(18) unsigned DEFAULT NULL,
`cc` bigint(18) unsigned DEFAULT NULL,
`cr` bigint(18) unsigned DEFAULT NULL,
`ct` bigint(18) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 144115188075855871
cf 144115188075855871
cc 144115188075855871
cr 144115188075855871
ct 144115188075855871
----- -----
Type BIT(58)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(58) DEFAULT NULL,
`cf` bigint(18) unsigned DEFAULT NULL,
`cc` bigint(18) unsigned DEFAULT NULL,
`cr` bigint(18) unsigned DEFAULT NULL,
`ct` bigint(18) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 288230376151711743
cf 288230376151711743
cc 288230376151711743
cr 288230376151711743
ct 288230376151711743
----- -----
Type BIT(59)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(59) DEFAULT NULL,
`cf` bigint(18) unsigned DEFAULT NULL,
`cc` bigint(18) unsigned DEFAULT NULL,
`cr` bigint(18) unsigned DEFAULT NULL,
`ct` bigint(18) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 576460752303423487
cf 576460752303423487
cc 576460752303423487
cr 576460752303423487
ct 576460752303423487
----- -----
Type BIT(60)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(60) DEFAULT NULL,
`cf` bigint(19) unsigned DEFAULT NULL,
`cc` bigint(19) unsigned DEFAULT NULL,
`cr` bigint(19) unsigned DEFAULT NULL,
`ct` bigint(19) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 1152921504606846975
cf 1152921504606846975
cc 1152921504606846975
cr 1152921504606846975
ct 1152921504606846975
----- -----
Type BIT(61)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(61) DEFAULT NULL,
`cf` bigint(19) unsigned DEFAULT NULL,
`cc` bigint(19) unsigned DEFAULT NULL,
`cr` bigint(19) unsigned DEFAULT NULL,
`ct` bigint(19) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 2305843009213693951
cf 2305843009213693951
cc 2305843009213693951
cr 2305843009213693951
ct 2305843009213693951
----- -----
Type BIT(62)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(62) DEFAULT NULL,
`cf` bigint(19) unsigned DEFAULT NULL,
`cc` bigint(19) unsigned DEFAULT NULL,
`cr` bigint(19) unsigned DEFAULT NULL,
`ct` bigint(19) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 4611686018427387903
cf 4611686018427387903
cc 4611686018427387903
cr 4611686018427387903
ct 4611686018427387903
----- -----
Type BIT(63)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(63) DEFAULT NULL,
`cf` bigint(19) unsigned DEFAULT NULL,
`cc` bigint(19) unsigned DEFAULT NULL,
`cr` bigint(19) unsigned DEFAULT NULL,
`ct` bigint(19) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9223372036854775807
cf 9223372036854775807
cc 9223372036854775807
cr 9223372036854775807
ct 9223372036854775807
----- -----
Type BIT(64)
Table t2
Create Table CREATE TABLE `t2` (
`a` bit(64) DEFAULT NULL,
`cf` bigint(20) unsigned DEFAULT NULL,
`cc` bigint(20) unsigned DEFAULT NULL,
`cr` bigint(20) unsigned DEFAULT NULL,
`ct` bigint(20) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 18446744073709551615
cf 18446744073709551615
cc 18446744073709551615
cr 18446744073709551615
ct 18446744073709551615
#
# End of 10.4 tests
#
#

View File

@ -507,6 +507,35 @@ EXPLAIN SELECT * FROM t1 WHERE a=200;
EXPLAIN SELECT * FROM t1 WHERE a<=>200;
DROP TABLE t1;
--echo #
--echo # MDEV-23323 Rounding functions return a wrong data type for a BIT, ENUM, SET argument
--echo #
--vertical_results
DELIMITER $$;
BEGIN NOT ATOMIC
FOR i IN 1..64
DO
SELECT '-----', CONCAT('BIT(',i,')') AS Type;
EXECUTE IMMEDIATE REPLACE('CREATE TABLE t1 (a BIT(64))','64', i);
INSERT IGNORE INTO t1 VALUES (0xFFFFFFFFFFFFFFFF);
CREATE TABLE t2 AS SELECT
a,
FLOOR(a) AS cf,
CEILING(a) AS cc,
ROUND(a) AS cr,
TRUNCATE(a,0) AS ct
FROM t1;
SHOW CREATE TABLE t2;
SELECT CAST(a AS UNSIGNED) AS a, cf, cc, cr, ct FROM t2;
DROP TABLE t2;
DROP TABLE t1;
END FOR;
END;
$$
DELIMITER ;$$
--horizontal_results
--echo #
--echo # End of 10.4 tests

View File

@ -1089,5 +1089,19 @@ CAST(1012.5 AS DATE) * 1.0
Warnings:
Note 1292 Truncated incorrect date value: '1012.5'
#
# MDEV-23351 Rounding functions return wrong data types for DATE input
#
CREATE TABLE t1 (a date);
CREATE TABLE t2 AS SELECT FLOOR(a), CEIL(a),ROUND(a),TRUNCATE(a,0) FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`FLOOR(a)` int(8) unsigned DEFAULT NULL,
`CEIL(a)` int(8) unsigned DEFAULT NULL,
`ROUND(a)` int(8) unsigned DEFAULT NULL,
`TRUNCATE(a,0)` int(8) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t2,t1;
#
# End of 10.4 tests
#

View File

@ -740,6 +740,14 @@ SET sql_mode=DEFAULT;
SELECT NULLIF(CAST(1012.5 AS DATE), 1);
SELECT CAST(1012.5 AS DATE) * 1.0;
--echo #
--echo # MDEV-23351 Rounding functions return wrong data types for DATE input
--echo #
CREATE TABLE t1 (a date);
CREATE TABLE t2 AS SELECT FLOOR(a), CEIL(a),ROUND(a),TRUNCATE(a,0) FROM t1;
SHOW CREATE TABLE t2;
DROP TABLE t2,t1;
--echo #
--echo # End of 10.4 tests

Some files were not shown because too many files have changed in this diff Show More