1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merge 10.5 into 10.6

This commit is contained in:
Marko Mäkelä
2020-08-12 14:39:53 +03:00
235 changed files with 6377 additions and 1992 deletions

View File

@ -2,6 +2,11 @@
# Wrapper for CPackRPM.cmake # Wrapper for CPackRPM.cmake
# #
IF(NOT DEFINED RPM_RECOMMENDS)
EXECUTE_PROCESS(COMMAND rpm --recommends ERROR_QUIET RESULT_VARIABLE RPM_RECOMMENDS)
MESSAGE("CPackRPM:Debug: Testing rpm --recommends: ${RPM_RECOMMENDS}")
ENDIF()
# #
# Support for per-component LICENSE and VENDOR # Support for per-component LICENSE and VENDOR
# #
@ -47,6 +52,20 @@ if (acc)
file(WRITE ${${base_var}} "${acc}") file(WRITE ${${base_var}} "${acc}")
endif() endif()
#
# Support for the Recommends: tag.
# We don't use Suggests: so here he hijack Suggests: variable
# to implement Recommends:
#
IF (CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_RECOMMENDS)
IF (RPM_RECOMMENDS EQUAL 0) # exit code 0 means ok
SET(TMP_RPM_SUGGESTS "Recommends: ${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_RECOMMENDS}")
ELSE() # rpm is too old to recommend
SET(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_REQUIRES
"${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_REQUIRES} ${CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_RECOMMENDS}")
ENDIF()
ENDIF()
# load the original CPackRPM.cmake # load the original CPackRPM.cmake
set(orig_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) set(orig_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
unset(CMAKE_MODULE_PATH) unset(CMAKE_MODULE_PATH)

View File

@ -30,7 +30,6 @@ SET(HAVE_BACKTRACE_SYMBOLS CACHE INTERNAL "")
SET(HAVE_BACKTRACE_SYMBOLS_FD CACHE INTERNAL "") SET(HAVE_BACKTRACE_SYMBOLS_FD CACHE INTERNAL "")
SET(HAVE_BFILL CACHE INTERNAL "") SET(HAVE_BFILL CACHE INTERNAL "")
SET(HAVE_BSD_SIGNALS CACHE INTERNAL "") SET(HAVE_BSD_SIGNALS CACHE INTERNAL "")
SET(HAVE_BSS_START CACHE INTERNAL "")
SET(HAVE_CLOCK_GETTIME CACHE INTERNAL "") SET(HAVE_CLOCK_GETTIME CACHE INTERNAL "")
SET(HAVE_COMPRESS CACHE INTERNAL "") SET(HAVE_COMPRESS CACHE INTERNAL "")
SET(HAVE_CRYPT CACHE INTERNAL "") SET(HAVE_CRYPT CACHE INTERNAL "")

View File

@ -242,7 +242,6 @@
/* Symbols we may use */ /* Symbols we may use */
#cmakedefine HAVE_SYS_ERRLIST 1 #cmakedefine HAVE_SYS_ERRLIST 1
/* used by stacktrace functions */ /* used by stacktrace functions */
#cmakedefine HAVE_BSS_START 1
#cmakedefine HAVE_BACKTRACE 1 #cmakedefine HAVE_BACKTRACE 1
#cmakedefine HAVE_BACKTRACE_SYMBOLS 1 #cmakedefine HAVE_BACKTRACE_SYMBOLS 1
#cmakedefine HAVE_BACKTRACE_SYMBOLS_FD 1 #cmakedefine HAVE_BACKTRACE_SYMBOLS_FD 1

View File

@ -795,14 +795,6 @@ CHECK_CXX_SOURCE_COMPILES("
HAVE_ABI_CXA_DEMANGLE) HAVE_ABI_CXA_DEMANGLE)
ENDIF() ENDIF()
CHECK_C_SOURCE_COMPILES("
int main(int argc, char **argv)
{
extern char *__bss_start;
return __bss_start ? 1 : 0;
}"
HAVE_BSS_START)
CHECK_C_SOURCE_COMPILES(" CHECK_C_SOURCE_COMPILES("
int main() int main()
{ {

View File

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

View File

@ -50,12 +50,10 @@ then
sed "/Package: libmariadbd-dev/,/^$/d" -i debian/control sed "/Package: libmariadbd-dev/,/^$/d" -i debian/control
fi fi
# Convert gcc version to numberical value. Format is Mmmpp where M is Major if [[ $(arch) =~ i[346]86 ]]
# version, mm is minor version and p is patch. then
# -dumpfullversion & -dumpversion to make it uniform across old and new (>=7) sed "/Package: mariadb-plugin-rocksdb/,/^$/d" -i debian/control
GCCVERSION=$(gcc -dumpfullversion -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' \ fi
-e 's/\.\([0-9]\)/0\1/g' \
-e 's/^[0-9]\{3,4\}$/&00/')
# If rocksdb-tools is not available (before Debian Buster and Ubuntu Disco) # If rocksdb-tools is not available (before Debian Buster and Ubuntu Disco)
# remove the dependency from the RocksDB plugin so it can install properly # remove the dependency from the RocksDB plugin so it can install properly

173
debian/control vendored
View File

@ -31,6 +31,7 @@ Build-Depends: bison,
libnuma-dev [!armhf], libnuma-dev [!armhf],
libpam0g-dev, libpam0g-dev,
libpcre2-dev, libpcre2-dev,
libreadline-gplv2-dev [i386 amd64],
libsnappy-dev, libsnappy-dev,
libssl-dev | libssl1.0-dev, libssl-dev | libssl1.0-dev,
libsystemd-dev [linux-any], libsystemd-dev [linux-any],
@ -277,37 +278,23 @@ Conflicts: mariadb-client-10.0,
mysql-client (<< 5.0.51), mysql-client (<< 5.0.51),
mysql-client-5.0, mysql-client-5.0,
mysql-client-5.1, mysql-client-5.1,
mysql-client-5.5 (<< ${source:Version}), mysql-client-5.5,
mysql-client-core-5.1, mysql-client-core-5.1,
mysql-client-core-5.5, mysql-client-core-5.5,
mysql-client-core-5.6, mysql-client-core-5.6,
mysql-client-core-5.7, mysql-client-core-5.7,
mysql-client-core-8.0, mysql-client-core-8.0,
virtual-mysql-client-core virtual-mysql-client-core
Replaces: mariadb-client-10.0, Replaces: mariadb-client-core-5.1,
mariadb-client-10.1, mariadb-client-core-5.2,
mariadb-client-10.2, mariadb-client-core-5.3,
mariadb-client-10.3, mariadb-client-core-5.5,
mariadb-client-10.4,
mariadb-client-10.5,
mariadb-client-10.6 (<< ${source:Version}),
mariadb-client-5.1,
mariadb-client-5.2,
mariadb-client-5.3,
mariadb-client-5.5,
mariadb-client-core-10.0, mariadb-client-core-10.0,
mariadb-client-core-10.1, mariadb-client-core-10.1,
mariadb-client-core-10.2, mariadb-client-core-10.2,
mariadb-client-core-10.3, mariadb-client-core-10.3,
mariadb-client-core-10.4, mariadb-client-core-10.4,
mariadb-client-core-5.1, mariadb-client-core-10.5,
mariadb-client-core-5.2,
mariadb-client-core-5.3,
mariadb-client-core-5.5,
mysql-client (<< 5.0.51),
mysql-client-5.0,
mysql-client-5.1,
mysql-client-5.5,
mysql-client-core-5.1, mysql-client-core-5.1,
mysql-client-core-5.5, mysql-client-core-5.5,
mysql-client-core-5.6, mysql-client-core-5.6,
@ -352,54 +339,29 @@ Conflicts: mariadb-client (<< ${source:Version}),
mysql-client-5.7, mysql-client-5.7,
mysql-client-8.0, mysql-client-8.0,
mysql-client-core-5.0, mysql-client-core-5.0,
mysql-client-core-5.1 (<< ${source:Version}), mysql-client-core-5.1,
mysql-client-core-5.5 (<< ${source:Version}), mysql-client-core-5.5,
mysql-client-core-5.6 (<< ${source:Version}), mysql-client-core-5.6,
mysql-client-core-5.7 (<< ${source:Version}), mysql-client-core-5.7,
mysql-client-core-8.0 (<< ${source:Version}), mysql-client-core-8.0,
mytop, mytop,
virtual-mysql-client virtual-mysql-client
Breaks: mariadb-client-core-10.0, Replaces: mariadb-client-5.1,
mariadb-client-core-10.1, mariadb-client-5.2,
mariadb-client-core-10.2, mariadb-client-5.3,
mariadb-client-core-10.3, mariadb-client-5.5,
mariadb-client-core-10.4,
mariadb-client-core-10.5,
mariadb-client-core-10.6 (<< ${source:Version})
Replaces: mariadb-client (<< ${source:Version}),
mariadb-client-10.0, mariadb-client-10.0,
mariadb-client-10.1, mariadb-client-10.1,
mariadb-client-10.2, mariadb-client-10.2,
mariadb-client-10.3, mariadb-client-10.3,
mariadb-client-10.4, mariadb-client-10.4,
mariadb-client-10.5, mariadb-client-10.5,
mariadb-client-10.6 (<< ${source:Version}),
mariadb-client-5.1,
mariadb-client-5.2,
mariadb-client-5.3,
mariadb-client-5.5,
mariadb-client-core-10.0,
mariadb-client-core-10.1,
mariadb-client-core-10.2,
mariadb-client-core-10.3,
mariadb-client-core-10.4,
mariadb-client-core-10.5,
mariadb-client-core-10.6 (<< ${source:Version}),
mariadb-server-10.5,
mariadb-server-10.6 (<< ${source:Version}),
mysql-client (<< 5.0.51),
mysql-client-5.0, mysql-client-5.0,
mysql-client-5.1, mysql-client-5.1,
mysql-client-5.5, mysql-client-5.5,
mysql-client-5.6, mysql-client-5.6,
mysql-client-5.7, mysql-client-5.7,
mysql-client-8.0, mysql-client-8.0,
mysql-client-core-5.0,
mysql-client-core-5.1 (<< ${source:Version}),
mysql-client-core-5.5 (<< ${source:Version}),
mysql-client-core-5.6 (<< ${source:Version}),
mysql-client-core-5.7 (<< ${source:Version}),
mysql-client-core-8.0 (<< ${source:Version}),
mytop, mytop,
virtual-mysql-client virtual-mysql-client
Provides: default-mysql-client, Provides: default-mysql-client,
@ -438,44 +400,16 @@ Conflicts: mariadb-server-core-10.0,
mysql-server-core-5.7, mysql-server-core-5.7,
mysql-server-core-8.0, mysql-server-core-8.0,
virtual-mysql-server-core virtual-mysql-server-core
Breaks: mariadb-client-10.0, Replaces: mariadb-server-core-5.1,
mariadb-client-10.1, mariadb-server-core-5.2,
mariadb-client-10.2, mariadb-server-core-5.3,
mariadb-client-10.3, mariadb-server-core-5.5,
mariadb-client-10.4,
mariadb-client-10.5,
mariadb-client-10.6 (<< ${source:Version}),
mariadb-server-10.3,
mariadb-server-10.4,
mariadb-server-10.5,
mariadb-server-10.6 (<< ${source:Version}),
mysql-server-5.6,
mysql-server-5.7,
mysql-server-8.0
Replaces: mariadb-client-10.0,
mariadb-client-10.1,
mariadb-client-10.2,
mariadb-client-10.3,
mariadb-client-10.4,
mariadb-client-10.5,
mariadb-client-10.6 (<< ${source:Version}),
mariadb-server-10.3,
mariadb-server-10.4,
mariadb-server-10.5,
mariadb-server-10.6 (<< ${source:Version}),
mariadb-server-core-10.0, mariadb-server-core-10.0,
mariadb-server-core-10.1, mariadb-server-core-10.1,
mariadb-server-core-10.2, mariadb-server-core-10.2,
mariadb-server-core-10.3, mariadb-server-core-10.3,
mariadb-server-core-10.4, mariadb-server-core-10.4,
mariadb-server-core-5.1, mariadb-server-core-10.5,
mariadb-server-core-5.2,
mariadb-server-core-5.3,
mariadb-server-core-5.5,
mysql-server-5.0,
mysql-server-5.6,
mysql-server-5.7,
mysql-server-8.0,
mysql-server-core-5.0, mysql-server-core-5.0,
mysql-server-core-5.1, mysql-server-core-5.1,
mysql-server-core-5.5, mysql-server-core-5.5,
@ -529,11 +463,11 @@ Conflicts: mariadb-server (<< ${source:Version}),
mariadb-server-5.2, mariadb-server-5.2,
mariadb-server-5.3, mariadb-server-5.3,
mariadb-server-5.5, mariadb-server-5.5,
mysql-client-5.5 (<< ${source:Version}), mysql-client-5.5,
mysql-client-5.6 (<< ${source:Version}), mysql-client-5.6,
mysql-client-5.7 (<< ${source:Version}), mysql-client-5.7,
mysql-client-8.0 (<< ${source:Version}), mysql-client-8.0,
mysql-server (<< ${source:Version}), mysql-server,
mysql-server-4.1, mysql-server-4.1,
mysql-server-5.0, mysql-server-5.0,
mysql-server-5.1, mysql-server-5.1,
@ -542,25 +476,16 @@ Conflicts: mariadb-server (<< ${source:Version}),
mysql-server-5.7, mysql-server-5.7,
mysql-server-8.0, mysql-server-8.0,
virtual-mysql-server virtual-mysql-server
Replaces: libmariadbclient-dev (<< 5.5.0), Replaces: mariadb-server-5.1,
libmariadbclient16, mariadb-server-5.2,
mariadb-client-10.5, mariadb-server-5.3,
mariadb-client-10.6 (<< ${source:Version}), mariadb-server-5.5,
mariadb-server (<< ${source:Version}),
mariadb-server-10.0, mariadb-server-10.0,
mariadb-server-10.1, mariadb-server-10.1,
mariadb-server-10.2, mariadb-server-10.2,
mariadb-server-10.3, mariadb-server-10.3,
mariadb-server-10.4, mariadb-server-10.4,
mariadb-server-5.1, mariadb-server-10.5,
mariadb-server-5.2,
mariadb-server-5.3,
mariadb-server-5.5,
mysql-client-5.5 (<< ${source:Version}),
mysql-client-5.6 (<< ${source:Version}),
mysql-client-5.7 (<< ${source:Version}),
mysql-client-8.0 (<< ${source:Version}),
mysql-server (<< ${source:Version}),
mysql-server-4.1, mysql-server-4.1,
mysql-server-5.0, mysql-server-5.0,
mysql-server-5.1, mysql-server-5.1,
@ -812,32 +737,18 @@ Depends: mariadb-client-10.6 (= ${binary:Version}),
${misc:Depends}, ${misc:Depends},
${perl:Depends}, ${perl:Depends},
${shlibs:Depends} ${shlibs:Depends}
Breaks: mariadb-server-5.5, Breaks: mariadb-test-5.5,
mariadb-test-10.0, mariadb-test-10.0,
mariadb-test-10.1, mariadb-test-10.1,
mariadb-test-10.2, mariadb-test-10.2,
mariadb-test-10.3, mariadb-test-10.3,
mariadb-test-10.4, mariadb-test-10.4,
mariadb-test-5.5, Replaces: mariadb-test-5.5,
mysql-server-5.7,
mysql-testsuite,
mysql-testsuite-5.5,
mysql-testsuite-5.6,
mysql-testsuite-5.7,
mysql-testsuite-8.0
Replaces: mariadb-server-5.5,
mariadb-test-10.0, mariadb-test-10.0,
mariadb-test-10.1, mariadb-test-10.1,
mariadb-test-10.2, mariadb-test-10.2,
mariadb-test-10.3, mariadb-test-10.3,
mariadb-test-10.4, mariadb-test-10.4,
mariadb-test-5.5,
mysql-server-5.7,
mysql-testsuite,
mysql-testsuite-5.5,
mysql-testsuite-5.6,
mysql-testsuite-5.7,
mysql-testsuite-8.0,
virtual-mysql-testsuite virtual-mysql-testsuite
Provides: virtual-mysql-testsuite Provides: virtual-mysql-testsuite
Suggests: patch Suggests: patch
@ -855,21 +766,23 @@ Multi-Arch: foreign
Depends: ${misc:Depends}, Depends: ${misc:Depends},
${perl:Depends}, ${perl:Depends},
${shlibs:Depends} ${shlibs:Depends}
Breaks: mariadb-test-10.0, Breaks: mariadb-test-data-5.5,
mariadb-test-10.1,
mariadb-test-10.2,
mariadb-test-5.5,
mariadb-test-data-10.0, mariadb-test-data-10.0,
mariadb-test-data-10.1,
mariadb-test-data-10.2,
mariadb-test-data-10.3,
mariadb-test-data-10.4,
mysql-testsuite, mysql-testsuite,
mysql-testsuite-5.5, mysql-testsuite-5.5,
mysql-testsuite-5.6, mysql-testsuite-5.6,
mysql-testsuite-5.7, mysql-testsuite-5.7,
mysql-testsuite-8.0 mysql-testsuite-8.0
Replaces: mariadb-test-10.0, Replaces: mariadb-test-data-5.5,
mariadb-test-10.1,
mariadb-test-10.2,
mariadb-test-5.5,
mariadb-test-data-10.0, mariadb-test-data-10.0,
mariadb-test-data-10.1,
mariadb-test-data-10.2,
mariadb-test-data-10.3,
mariadb-test-data-10.4,
mysql-testsuite, mysql-testsuite,
mysql-testsuite-5.5, mysql-testsuite-5.5,
mysql-testsuite-5.6, mysql-testsuite-5.6,

View File

@ -3,6 +3,7 @@ debian/additions/debian-start.inc.sh usr/share/mysql
debian/additions/echo_stderr usr/share/mysql debian/additions/echo_stderr usr/share/mysql
debian/additions/mariadb.conf.d/50-mysqld_safe.cnf etc/mysql/mariadb.conf.d debian/additions/mariadb.conf.d/50-mysqld_safe.cnf etc/mysql/mariadb.conf.d
debian/additions/mariadb.conf.d/50-server.cnf etc/mysql/mariadb.conf.d debian/additions/mariadb.conf.d/50-server.cnf etc/mysql/mariadb.conf.d
support-files/rpm/enable_encryption.preset etc/mysql/mariadb.conf.d/99-enable-encryption.cnf.preset
debian/additions/source_mariadb-10.6.py usr/share/apport/package-hooks debian/additions/source_mariadb-10.6.py usr/share/apport/package-hooks
etc/apparmor.d/usr.sbin.mariadbd etc/apparmor.d/usr.sbin.mariadbd
etc/security/user_map.conf etc/security/user_map.conf

2
debian/rules vendored
View File

@ -45,7 +45,7 @@ endif
# RocksDB cannot build on 32-bit platforms # RocksDB cannot build on 32-bit platforms
ifeq (32,$(DEB_HOST_ARCH_BITS)) ifeq (32,$(DEB_HOST_ARCH_BITS))
CMAKEFLAGS += -DWITHOUT_ROCKSDB=true CMAKEFLAGS += -DPLUGIN_ROCKSDB=NO
endif endif
# ColumnStore only attempts to build on a few platforms as dictated by CMake checks # ColumnStore only attempts to build on a few platforms as dictated by CMake checks

View File

@ -1,5 +1,5 @@
/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. /* Copyright (c) 2000, 2012, Oracle and/or its affiliates.
Copyright (c) 2012, 2017, MariaDB Corporation. Copyright (c) 2012, 2020, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -278,6 +278,7 @@ struct st_vio
#ifdef _WIN32 #ifdef _WIN32
HANDLE hPipe; HANDLE hPipe;
OVERLAPPED overlapped; OVERLAPPED overlapped;
int shutdown_flag;
void *tp_ctx; /* threadpool context */ void *tp_ctx; /* threadpool context */
#endif #endif
}; };

View File

@ -114,6 +114,7 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
../sql/sql_explain.cc ../sql/sql_explain.h ../sql/sql_explain.cc ../sql/sql_explain.h
../sql/sql_analyze_stmt.cc ../sql/sql_analyze_stmt.h ../sql/sql_analyze_stmt.cc ../sql/sql_analyze_stmt.h
../sql/compat56.cc ../sql/compat56.cc
../sql/sql_schema.cc
../sql/sql_type.cc ../sql/sql_type.h ../sql/sql_type.cc ../sql/sql_type.h
../sql/sql_mode.cc ../sql/sql_mode.cc
../sql/sql_type_string.cc ../sql/sql_type_string.cc

View File

@ -1,6 +1,6 @@
'\" t '\" t
.\" .\"
.TH "\FBMYSQL_UPGRADE\FR" "1" "15 May 2020" "MariaDB 10\&.6" "MariaDB Database System" .TH "\FBMYSQL_UPGRADE\FR" "1" "20 July 2020" "MariaDB 10\&.6" "MariaDB Database System"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
@ -165,6 +165,8 @@ in the data directory\&. This is used to quickly check whether all tables have b
\fB\-\-force\fR \fB\-\-force\fR
option\&. option\&.
.PP .PP
For this reason, \fBmysql_upgrade\fR needs to be run as a user with write access to the data directory\&.
.PP
If you install MariaDB from RPM packages on Linux, you must install the server and client RPMs\&. If you install MariaDB from RPM packages on Linux, you must install the server and client RPMs\&.
\fBmysql_upgrade\fR \fBmysql_upgrade\fR
is included in the server RPM but requires the client RPM because the latter includes is included in the server RPM but requires the client RPM because the latter includes

View File

@ -194,12 +194,12 @@ show create table t1;
drop table t1; drop table t1;
select hex(concat(ceiling(0.5))); select hex(concat(ceiling(0.5)));
create table t1 as select concat(ceiling(0.5)) as c1; create table t1 as select ceiling(0.5) as c0, concat(ceiling(0.5)) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;
select hex(concat(floor(0.5))); select hex(concat(floor(0.5)));
create table t1 as select concat(floor(0.5)) as c1; create table t1 as select floor(0.5) as c0, concat(floor(0.5)) as c1;
show create table t1; show create table t1;
drop table t1; drop table t1;

View File

@ -2011,5 +2011,21 @@ CREATE TABLE t1 ( id1 INT, id2 INT, CONSTRAINT `foo` PRIMARY KEY (id1), CONSTRAI
Warnings: Warnings:
Warning 1280 Name 'foo' ignored for PRIMARY key. Warning 1280 Name 'foo' ignored for PRIMARY key.
DROP TABLE t1; DROP TABLE t1;
#
# 10.4 Test
#
# MDEV-21017: Assertion `!is_set() || (m_status == DA_OK_BULK &&
# is_bulk_op())' failed or late ER_PERIOD_FIELD_WRONG_ATTRIBUTES
# upon attempt to create existing table
#
CREATE TABLE t1 (a INT);
LOCK TABLE t1 WRITE;
CREATE TABLE IF NOT EXISTS t1 (s DATE GENERATED ALWAYS AS ('2000-01-01') STORED,
e DATE, PERIOD FOR app(s,e));
ERROR HY000: Period field `s` cannot be GENERATED ALWAYS AS
UNLOCK TABLES;
DROP TABLE t1;
# End of 10.4 Test
CREATE TABLE t1 (id1 INT, id2 INT, primary key (id1), unique index (id2) visible); CREATE TABLE t1 (id1 INT, id2 INT, primary key (id1), unique index (id2) visible);
drop table t1; drop table t1;
# End of 10.5 Test

View File

@ -1873,9 +1873,30 @@ drop table t1;
CREATE TABLE t1 ( id1 INT, id2 INT, CONSTRAINT `foo` PRIMARY KEY (id1), CONSTRAINT `bar` UNIQUE KEY(id2)); CREATE TABLE t1 ( id1 INT, id2 INT, CONSTRAINT `foo` PRIMARY KEY (id1), CONSTRAINT `bar` UNIQUE KEY(id2));
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # 10.4 Test
--echo #
--echo # MDEV-21017: Assertion `!is_set() || (m_status == DA_OK_BULK &&
--echo # is_bulk_op())' failed or late ER_PERIOD_FIELD_WRONG_ATTRIBUTES
--echo # upon attempt to create existing table
--echo #
CREATE TABLE t1 (a INT);
LOCK TABLE t1 WRITE;
--error ER_PERIOD_FIELD_WRONG_ATTRIBUTES
CREATE TABLE IF NOT EXISTS t1 (s DATE GENERATED ALWAYS AS ('2000-01-01') STORED,
e DATE, PERIOD FOR app(s,e));
UNLOCK TABLES;
DROP TABLE t1;
--echo # End of 10.4 Test
# #
# MDEV-22199 Add VISIBLE option for indexes in create table # MDEV-22199 Add VISIBLE option for indexes in create table
# #
CREATE TABLE t1 (id1 INT, id2 INT, primary key (id1), unique index (id2) visible); CREATE TABLE t1 (id1 INT, id2 INT, primary key (id1), unique index (id2) visible);
drop table t1; drop table t1;
--echo # End of 10.5 Test

View File

@ -345,21 +345,23 @@ drop table t1;
select hex(concat(ceiling(0.5))); select hex(concat(ceiling(0.5)));
hex(concat(ceiling(0.5))) hex(concat(ceiling(0.5)))
31 31
create table t1 as select concat(ceiling(0.5)) as c1; create table t1 as select ceiling(0.5) as c0, concat(ceiling(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varbinary(4) DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varbinary(3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(floor(0.5))); select hex(concat(floor(0.5)));
hex(concat(floor(0.5))) hex(concat(floor(0.5)))
30 30
create table t1 as select concat(floor(0.5)) as c1; create table t1 as select floor(0.5) as c0, concat(floor(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varbinary(4) DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varbinary(3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(round(0.5))); select hex(concat(round(0.5)));

View File

@ -757,21 +757,23 @@ drop table t1;
select hex(concat(ceiling(0.5))); select hex(concat(ceiling(0.5)));
hex(concat(ceiling(0.5))) hex(concat(ceiling(0.5)))
31 31
create table t1 as select concat(ceiling(0.5)) as c1; create table t1 as select ceiling(0.5) as c0, concat(ceiling(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varchar(4) CHARACTER SET cp1251 DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(floor(0.5))); select hex(concat(floor(0.5)));
hex(concat(floor(0.5))) hex(concat(floor(0.5)))
30 30
create table t1 as select concat(floor(0.5)) as c1; create table t1 as select floor(0.5) as c0, concat(floor(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varchar(4) CHARACTER SET cp1251 DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(round(0.5))); select hex(concat(round(0.5)));

View File

@ -22,6 +22,13 @@ SELECT @a:=CONVERT('aя' USING filename) AS `@a`, BINARY @a, REVERSE(@a), HEX(@a
@a BINARY @a REVERSE(@a) HEX(@a) HEX(REVERSE(@a)) @a BINARY @a REVERSE(@a) HEX(@a) HEX(REVERSE(@a))
aя a@r1 яa 61407231 40723161 aя a@r1 яa 61407231 40723161
# #
# MDEV-22022 Various mangled SQL statements will crash 10.3 to 10.5 debug builds
#
SET CHARACTER_SET_CLIENT=17;
SELECT doc.`Children`.0 FROM t1;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?Children??0?FROM?t1' at line 1
SET NAMES latin1;
#
# Start of 10.5 tests # Start of 10.5 tests
# #
# #
@ -32,5 +39,70 @@ EXECUTE IMMEDIATE _latin1 0x01;
ERROR 42000: You@0020have@0020an@0020error@0020in@0020your@0020SQL@0020syntax@003b@0020check@0020the@0020manual@0020that@0020corresponds@0020to@0020your@0020MariaDB@0020server@0020version@0020for@0020the@0020right@0020syntax@0020to@0020use@0020near@0020@0027@005c0001@0027@0020at@0020line@00201 ERROR 42000: You@0020have@0020an@0020error@0020in@0020your@0020SQL@0020syntax@003b@0020check@0020the@0020manual@0020that@0020corresponds@0020to@0020your@0020MariaDB@0020server@0020version@0020for@0020the@0020right@0020syntax@0020to@0020use@0020near@0020@0027@005c0001@0027@0020at@0020line@00201
SET NAMES utf8; SET NAMES utf8;
# #
# MDEV-23435 Functions do not convert numbers to character_set_results
#
SET NAMES utf8, character_set_results=filename;
CREATE TABLE t1 (a DATETIME(6));
INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000');
SELECT a, COALESCE(a) AS c FROM t1;
a c
2001@002d01@002d01@002000@003a00@003a00@002e000000 2001@002d01@002d01@002000@003a00@003a00@002e000000
DROP TABLE t1;
CREATE TABLE t1 (a TIME(6));
INSERT INTO t1 VALUES ('00:00:00.000000');
SELECT a, COALESCE(a) AS c FROM t1;
a c
00@003a00@003a00@002e000000 00@003a00@003a00@002e000000
DROP TABLE t1;
CREATE TABLE t1 (a DATE);
INSERT INTO t1 VALUES ('2001-01-01');
SELECT a, COALESCE(a) AS c FROM t1;
a c
2001@002d01@002d01 2001@002d01@002d01
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
a c
@002d1 @002d1
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
a c
@002d1 @002d1
DROP TABLE t1;
CREATE TABLE t1 (a MEDIUMINT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
a c
@002d1 @002d1
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
a c
@002d1 @002d1
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL(10.2));
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
a c
@002d1 @002d1
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
a c
@002d1 @002d1
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
a c
@002d1 @002d1
DROP TABLE t1;
SET NAMES utf8;
#
# End of 10.5 tests # End of 10.5 tests
# #

View File

@ -29,6 +29,16 @@ SET NAMES utf8;
SELECT @a:=CONVERT('aя' USING filename) AS `@a`, BINARY @a, REVERSE(@a), HEX(@a), HEX(REVERSE(@a)); SELECT @a:=CONVERT('aя' USING filename) AS `@a`, BINARY @a, REVERSE(@a), HEX(@a), HEX(REVERSE(@a));
--echo #
--echo # MDEV-22022 Various mangled SQL statements will crash 10.3 to 10.5 debug builds
--echo #
SET CHARACTER_SET_CLIENT=17;
--error ER_PARSE_ERROR
SELECT doc.`Children`.0 FROM t1;
SET NAMES latin1;
--echo # --echo #
--echo # Start of 10.5 tests --echo # Start of 10.5 tests
--echo # --echo #
@ -42,6 +52,68 @@ SET NAMES filename;
EXECUTE IMMEDIATE _latin1 0x01; EXECUTE IMMEDIATE _latin1 0x01;
SET NAMES utf8; SET NAMES utf8;
--echo #
--echo # MDEV-23435 Functions do not convert numbers to character_set_results
--echo #
--disable_ps_protocol
SET NAMES utf8, character_set_results=filename;
CREATE TABLE t1 (a DATETIME(6));
INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000');
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a TIME(6));
INSERT INTO t1 VALUES ('00:00:00.000000');
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a DATE);
INSERT INTO t1 VALUES ('2001-01-01');
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a TINYINT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a SMALLINT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a MEDIUMINT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a BIGINT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL(10.2));
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a FLOAT);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE);
INSERT INTO t1 VALUES (-1);
SELECT a, COALESCE(a) AS c FROM t1;
DROP TABLE t1;
SET NAMES utf8;
--enable_ps_protocol
--echo # --echo #
--echo # End of 10.5 tests --echo # End of 10.5 tests

View File

@ -1066,21 +1066,23 @@ drop table t1;
select hex(concat(ceiling(0.5))); select hex(concat(ceiling(0.5)));
hex(concat(ceiling(0.5))) hex(concat(ceiling(0.5)))
31 31
create table t1 as select concat(ceiling(0.5)) as c1; create table t1 as select ceiling(0.5) as c0, concat(ceiling(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varchar(4) DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varchar(3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(floor(0.5))); select hex(concat(floor(0.5)));
hex(concat(floor(0.5))) hex(concat(floor(0.5)))
30 30
create table t1 as select concat(floor(0.5)) as c1; create table t1 as select floor(0.5) as c0, concat(floor(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varchar(4) DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varchar(3) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(round(0.5))); select hex(concat(round(0.5)));

View File

@ -1950,21 +1950,23 @@ drop table t1;
select hex(concat(ceiling(0.5))); select hex(concat(ceiling(0.5)));
hex(concat(ceiling(0.5))) hex(concat(ceiling(0.5)))
0031 0031
create table t1 as select concat(ceiling(0.5)) as c1; create table t1 as select ceiling(0.5) as c0, concat(ceiling(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varchar(4) CHARACTER SET ucs2 DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(floor(0.5))); select hex(concat(floor(0.5)));
hex(concat(floor(0.5))) hex(concat(floor(0.5)))
0030 0030
create table t1 as select concat(floor(0.5)) as c1; create table t1 as select floor(0.5) as c0, concat(floor(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varchar(4) CHARACTER SET ucs2 DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(round(0.5))); select hex(concat(round(0.5)));

View File

@ -2817,21 +2817,23 @@ drop table t1;
select hex(concat(ceiling(0.5))); select hex(concat(ceiling(0.5)));
hex(concat(ceiling(0.5))) hex(concat(ceiling(0.5)))
31 31
create table t1 as select concat(ceiling(0.5)) as c1; create table t1 as select ceiling(0.5) as c0, concat(ceiling(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varchar(4) CHARACTER SET utf8 DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(floor(0.5))); select hex(concat(floor(0.5)));
hex(concat(floor(0.5))) hex(concat(floor(0.5)))
30 30
create table t1 as select concat(floor(0.5)) as c1; create table t1 as select floor(0.5) as c0, concat(floor(0.5)) as c1;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` varchar(4) CHARACTER SET utf8 DEFAULT NULL `c0` int(3) NOT NULL,
`c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
select hex(concat(round(0.5))); select hex(concat(round(0.5)));

View File

@ -214,3 +214,4 @@ SELECT * FROM t1;
a b a b
hello 12NKz5XM5JeKI hello 12NKz5XM5JeKI
DROP TABLE t1; DROP TABLE t1;
# End of 10.2 tests

View File

@ -120,3 +120,5 @@ SHOW CREATE TABLE t1;
INSERT INTO t1 (a) VALUES ('hello'); INSERT INTO t1 (a) VALUES ('hello');
SELECT * FROM t1; SELECT * FROM t1;
DROP TABLE t1; DROP TABLE t1;
--echo # End of 10.2 tests

View File

@ -35,3 +35,41 @@ DES_DECRYPT(DES_ENCRYPT('1234')) DES_DECRYPT(DES_ENCRYPT('12345')) DES_DECRYPT(D
1234 12345 123456 1234567 1234 12345 123456 1234567
DROP TABLE t1; DROP TABLE t1;
End of 5.0 tests End of 5.0 tests
#
# MDEV-23330 Server crash or ASAN negative-size-param in
# my_strnncollsp_binary / SORT_FIELD_ATTR::compare_packed_varstrings
#
CREATE TABLE t1 (a CHAR(240), b BIT(48));
INSERT INTO t1 VALUES ('a',b'0001'),('b',b'0010'),('c',b'0011'),('d',b'0100'),('e',b'0001'),('f',b'0101'),('g',b'0110'),('h',b'0111'),('i',b'1000'),('j',b'1001');
SELECT DES_DECRYPT(a, 'x'), HEX(BINARY b) FROM t1 GROUP BY 1, 2 WITH ROLLUP;
DES_DECRYPT(a, 'x') HEX(BINARY b)
a 000000000001
a NULL
b 000000000002
b NULL
c 000000000003
c NULL
d 000000000004
d NULL
e 000000000001
e NULL
f 000000000005
f NULL
g 000000000006
g NULL
h 000000000007
h NULL
i 000000000008
i NULL
j 000000000009
j NULL
NULL NULL
DROP TABLE t1;
CREATE TABLE t1 (a INT);
INSERT t1 VALUES (1),(2);
SELECT CHAR_LENGTH(a), DES_DECRYPT(a) FROM (SELECT _utf8 0xC2A2 AS a FROM t1) AS t2;
CHAR_LENGTH(a) DES_DECRYPT(a)
1 <09>
1 <09>
DROP TABLE t1;
End of 10.5 tests

View File

@ -37,3 +37,24 @@ SELECT
DROP TABLE t1; DROP TABLE t1;
--Echo End of 5.0 tests --Echo End of 5.0 tests
--echo #
--echo # MDEV-23330 Server crash or ASAN negative-size-param in
--echo # my_strnncollsp_binary / SORT_FIELD_ATTR::compare_packed_varstrings
--echo #
CREATE TABLE t1 (a CHAR(240), b BIT(48));
INSERT INTO t1 VALUES ('a',b'0001'),('b',b'0010'),('c',b'0011'),('d',b'0100'),('e',b'0001'),('f',b'0101'),('g',b'0110'),('h',b'0111'),('i',b'1000'),('j',b'1001');
SELECT DES_DECRYPT(a, 'x'), HEX(BINARY b) FROM t1 GROUP BY 1, 2 WITH ROLLUP;
DROP TABLE t1;
#
# don't change the charset of a literal Item_string
#
CREATE TABLE t1 (a INT);
INSERT t1 VALUES (1),(2);
SELECT CHAR_LENGTH(a), DES_DECRYPT(a) FROM (SELECT _utf8 0xC2A2 AS a FROM t1) AS t2;
DROP TABLE t1;
--Echo End of 10.5 tests

View File

@ -1186,13 +1186,13 @@ i count(*) std(e1/e2)
3 4 0.00000000 3 4 0.00000000
select std(s1/s2) from bug22555; select std(s1/s2) from bug22555;
std(s1/s2) std(s1/s2)
0.21325764 0.21328517
select std(o1/o2) from bug22555; select std(o1/o2) from bug22555;
std(o1/o2) std(o1/o2)
0.2132576358664934 0.2132576358664934
select std(e1/e2) from bug22555; select std(e1/e2) from bug22555;
std(e1/e2) std(e1/e2)
0.21325764 0.21328517
set @saved_div_precision_increment=@@div_precision_increment; set @saved_div_precision_increment=@@div_precision_increment;
set div_precision_increment=19; set div_precision_increment=19;
select i, count(*), std(s1/s2) from bug22555 group by i order by i; select i, count(*), std(s1/s2) from bug22555 group by i order by i;

View File

@ -348,7 +348,6 @@ truncate(4, cast(-2 as unsigned)) truncate(4, 18446744073709551614) truncate(4,
4 4 0 4 4 0
Warnings: Warnings:
Note 1105 Cast to unsigned converted negative integer to it's positive complement Note 1105 Cast to unsigned converted negative integer to it's positive complement
Note 1105 Cast to unsigned converted negative integer to it's positive complement
select round(10000000000000000000, -19), truncate(10000000000000000000, -19); select round(10000000000000000000, -19), truncate(10000000000000000000, -19);
round(10000000000000000000, -19) truncate(10000000000000000000, -19) round(10000000000000000000, -19) truncate(10000000000000000000, -19)
10000000000000000000 10000000000000000000 10000000000000000000 10000000000000000000
@ -1081,7 +1080,7 @@ Create Table CREATE TABLE `t2` (
`a` decimal(38,0) DEFAULT NULL, `a` decimal(38,0) DEFAULT NULL,
`b` decimal(38,0) unsigned DEFAULT NULL, `b` decimal(38,0) unsigned DEFAULT NULL,
`fa` decimal(38,0) DEFAULT NULL, `fa` decimal(38,0) DEFAULT NULL,
`fb` decimal(38,0) DEFAULT NULL `fb` decimal(38,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999999999999999999999 a 99999999999999999999999999999999999999
b 99999999999999999999999999999999999999 b 99999999999999999999999999999999999999
@ -1091,8 +1090,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,1) DEFAULT NULL, `a` decimal(38,1) DEFAULT NULL,
`b` decimal(38,1) unsigned DEFAULT NULL, `b` decimal(38,1) unsigned DEFAULT NULL,
`fa` decimal(37,0) DEFAULT NULL, `fa` decimal(38,0) DEFAULT NULL,
`fb` decimal(37,0) DEFAULT NULL `fb` decimal(37,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999999999999999999999.9 a 9999999999999999999999999999999999999.9
b 9999999999999999999999999999999999999.9 b 9999999999999999999999999999999999999.9
@ -1102,8 +1101,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,2) DEFAULT NULL, `a` decimal(38,2) DEFAULT NULL,
`b` decimal(38,2) unsigned DEFAULT NULL, `b` decimal(38,2) unsigned DEFAULT NULL,
`fa` decimal(36,0) DEFAULT NULL, `fa` decimal(37,0) DEFAULT NULL,
`fb` decimal(36,0) DEFAULT NULL `fb` decimal(36,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999999999999999999.99 a 999999999999999999999999999999999999.99
b 999999999999999999999999999999999999.99 b 999999999999999999999999999999999999.99
@ -1113,8 +1112,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,3) DEFAULT NULL, `a` decimal(38,3) DEFAULT NULL,
`b` decimal(38,3) unsigned DEFAULT NULL, `b` decimal(38,3) unsigned DEFAULT NULL,
`fa` decimal(35,0) DEFAULT NULL, `fa` decimal(36,0) DEFAULT NULL,
`fb` decimal(35,0) DEFAULT NULL `fb` decimal(35,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999999999999999999.999 a 99999999999999999999999999999999999.999
b 99999999999999999999999999999999999.999 b 99999999999999999999999999999999999.999
@ -1124,8 +1123,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,4) DEFAULT NULL, `a` decimal(38,4) DEFAULT NULL,
`b` decimal(38,4) unsigned DEFAULT NULL, `b` decimal(38,4) unsigned DEFAULT NULL,
`fa` decimal(34,0) DEFAULT NULL, `fa` decimal(35,0) DEFAULT NULL,
`fb` decimal(34,0) DEFAULT NULL `fb` decimal(34,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999999999999999999.9999 a 9999999999999999999999999999999999.9999
b 9999999999999999999999999999999999.9999 b 9999999999999999999999999999999999.9999
@ -1135,8 +1134,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,5) DEFAULT NULL, `a` decimal(38,5) DEFAULT NULL,
`b` decimal(38,5) unsigned DEFAULT NULL, `b` decimal(38,5) unsigned DEFAULT NULL,
`fa` decimal(33,0) DEFAULT NULL, `fa` decimal(34,0) DEFAULT NULL,
`fb` decimal(33,0) DEFAULT NULL `fb` decimal(33,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999999999999999.99999 a 999999999999999999999999999999999.99999
b 999999999999999999999999999999999.99999 b 999999999999999999999999999999999.99999
@ -1146,8 +1145,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,6) DEFAULT NULL, `a` decimal(38,6) DEFAULT NULL,
`b` decimal(38,6) unsigned DEFAULT NULL, `b` decimal(38,6) unsigned DEFAULT NULL,
`fa` decimal(32,0) DEFAULT NULL, `fa` decimal(33,0) DEFAULT NULL,
`fb` decimal(32,0) DEFAULT NULL `fb` decimal(32,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999999999999999.999999 a 99999999999999999999999999999999.999999
b 99999999999999999999999999999999.999999 b 99999999999999999999999999999999.999999
@ -1157,8 +1156,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,7) DEFAULT NULL, `a` decimal(38,7) DEFAULT NULL,
`b` decimal(38,7) unsigned DEFAULT NULL, `b` decimal(38,7) unsigned DEFAULT NULL,
`fa` decimal(31,0) DEFAULT NULL, `fa` decimal(32,0) DEFAULT NULL,
`fb` decimal(31,0) DEFAULT NULL `fb` decimal(31,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999999999999999.9999999 a 9999999999999999999999999999999.9999999
b 9999999999999999999999999999999.9999999 b 9999999999999999999999999999999.9999999
@ -1168,8 +1167,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,8) DEFAULT NULL, `a` decimal(38,8) DEFAULT NULL,
`b` decimal(38,8) unsigned DEFAULT NULL, `b` decimal(38,8) unsigned DEFAULT NULL,
`fa` decimal(30,0) DEFAULT NULL, `fa` decimal(31,0) DEFAULT NULL,
`fb` decimal(30,0) DEFAULT NULL `fb` decimal(30,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999999999999.99999999 a 999999999999999999999999999999.99999999
b 999999999999999999999999999999.99999999 b 999999999999999999999999999999.99999999
@ -1179,8 +1178,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,9) DEFAULT NULL, `a` decimal(38,9) DEFAULT NULL,
`b` decimal(38,9) unsigned DEFAULT NULL, `b` decimal(38,9) unsigned DEFAULT NULL,
`fa` decimal(29,0) DEFAULT NULL, `fa` decimal(30,0) DEFAULT NULL,
`fb` decimal(29,0) DEFAULT NULL `fb` decimal(29,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999999999999.999999999 a 99999999999999999999999999999.999999999
b 99999999999999999999999999999.999999999 b 99999999999999999999999999999.999999999
@ -1190,8 +1189,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,10) DEFAULT NULL, `a` decimal(38,10) DEFAULT NULL,
`b` decimal(38,10) unsigned DEFAULT NULL, `b` decimal(38,10) unsigned DEFAULT NULL,
`fa` decimal(28,0) DEFAULT NULL, `fa` decimal(29,0) DEFAULT NULL,
`fb` decimal(28,0) DEFAULT NULL `fb` decimal(28,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999999999999.9999999999 a 9999999999999999999999999999.9999999999
b 9999999999999999999999999999.9999999999 b 9999999999999999999999999999.9999999999
@ -1201,8 +1200,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,11) DEFAULT NULL, `a` decimal(38,11) DEFAULT NULL,
`b` decimal(38,11) unsigned DEFAULT NULL, `b` decimal(38,11) unsigned DEFAULT NULL,
`fa` decimal(27,0) DEFAULT NULL, `fa` decimal(28,0) DEFAULT NULL,
`fb` decimal(27,0) DEFAULT NULL `fb` decimal(27,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999999999.99999999999 a 999999999999999999999999999.99999999999
b 999999999999999999999999999.99999999999 b 999999999999999999999999999.99999999999
@ -1212,8 +1211,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,12) DEFAULT NULL, `a` decimal(38,12) DEFAULT NULL,
`b` decimal(38,12) unsigned DEFAULT NULL, `b` decimal(38,12) unsigned DEFAULT NULL,
`fa` decimal(26,0) DEFAULT NULL, `fa` decimal(27,0) DEFAULT NULL,
`fb` decimal(26,0) DEFAULT NULL `fb` decimal(26,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999999999.999999999999 a 99999999999999999999999999.999999999999
b 99999999999999999999999999.999999999999 b 99999999999999999999999999.999999999999
@ -1223,8 +1222,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,13) DEFAULT NULL, `a` decimal(38,13) DEFAULT NULL,
`b` decimal(38,13) unsigned DEFAULT NULL, `b` decimal(38,13) unsigned DEFAULT NULL,
`fa` decimal(25,0) DEFAULT NULL, `fa` decimal(26,0) DEFAULT NULL,
`fb` decimal(25,0) DEFAULT NULL `fb` decimal(25,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999999999.9999999999999 a 9999999999999999999999999.9999999999999
b 9999999999999999999999999.9999999999999 b 9999999999999999999999999.9999999999999
@ -1234,8 +1233,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,14) DEFAULT NULL, `a` decimal(38,14) DEFAULT NULL,
`b` decimal(38,14) unsigned DEFAULT NULL, `b` decimal(38,14) unsigned DEFAULT NULL,
`fa` decimal(24,0) DEFAULT NULL, `fa` decimal(25,0) DEFAULT NULL,
`fb` decimal(24,0) DEFAULT NULL `fb` decimal(24,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999999.99999999999999 a 999999999999999999999999.99999999999999
b 999999999999999999999999.99999999999999 b 999999999999999999999999.99999999999999
@ -1245,8 +1244,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,15) DEFAULT NULL, `a` decimal(38,15) DEFAULT NULL,
`b` decimal(38,15) unsigned DEFAULT NULL, `b` decimal(38,15) unsigned DEFAULT NULL,
`fa` decimal(23,0) DEFAULT NULL, `fa` decimal(24,0) DEFAULT NULL,
`fb` decimal(23,0) DEFAULT NULL `fb` decimal(23,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999999.999999999999999 a 99999999999999999999999.999999999999999
b 99999999999999999999999.999999999999999 b 99999999999999999999999.999999999999999
@ -1256,8 +1255,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,16) DEFAULT NULL, `a` decimal(38,16) DEFAULT NULL,
`b` decimal(38,16) unsigned DEFAULT NULL, `b` decimal(38,16) unsigned DEFAULT NULL,
`fa` decimal(22,0) DEFAULT NULL, `fa` decimal(23,0) DEFAULT NULL,
`fb` decimal(22,0) DEFAULT NULL `fb` decimal(22,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999999.9999999999999999 a 9999999999999999999999.9999999999999999
b 9999999999999999999999.9999999999999999 b 9999999999999999999999.9999999999999999
@ -1267,8 +1266,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,17) DEFAULT NULL, `a` decimal(38,17) DEFAULT NULL,
`b` decimal(38,17) unsigned DEFAULT NULL, `b` decimal(38,17) unsigned DEFAULT NULL,
`fa` decimal(21,0) DEFAULT NULL, `fa` decimal(22,0) DEFAULT NULL,
`fb` decimal(21,0) DEFAULT NULL `fb` decimal(21,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999.99999999999999999 a 999999999999999999999.99999999999999999
b 999999999999999999999.99999999999999999 b 999999999999999999999.99999999999999999
@ -1278,8 +1277,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,18) DEFAULT NULL, `a` decimal(38,18) DEFAULT NULL,
`b` decimal(38,18) unsigned DEFAULT NULL, `b` decimal(38,18) unsigned DEFAULT NULL,
`fa` decimal(20,0) DEFAULT NULL, `fa` decimal(21,0) DEFAULT NULL,
`fb` decimal(20,0) DEFAULT NULL `fb` decimal(20,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999.999999999999999999 a 99999999999999999999.999999999999999999
b 99999999999999999999.999999999999999999 b 99999999999999999999.999999999999999999
@ -1289,8 +1288,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,19) DEFAULT NULL, `a` decimal(38,19) DEFAULT NULL,
`b` decimal(38,19) unsigned DEFAULT NULL, `b` decimal(38,19) unsigned DEFAULT NULL,
`fa` decimal(19,0) DEFAULT NULL, `fa` decimal(20,0) DEFAULT NULL,
`fb` decimal(19,0) DEFAULT NULL `fb` decimal(19,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999.9999999999999999999 a 9999999999999999999.9999999999999999999
b 9999999999999999999.9999999999999999999 b 9999999999999999999.9999999999999999999
@ -1300,8 +1299,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,20) DEFAULT NULL, `a` decimal(38,20) DEFAULT NULL,
`b` decimal(38,20) unsigned DEFAULT NULL, `b` decimal(38,20) unsigned DEFAULT NULL,
`fa` decimal(18,0) DEFAULT NULL, `fa` decimal(19,0) DEFAULT NULL,
`fb` bigint(17) unsigned DEFAULT NULL `fb` bigint(18) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999.99999999999999999999 a 999999999999999999.99999999999999999999
b 999999999999999999.99999999999999999999 b 999999999999999999.99999999999999999999
@ -1311,7 +1310,7 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,21) DEFAULT NULL, `a` decimal(38,21) DEFAULT NULL,
`b` decimal(38,21) unsigned DEFAULT NULL, `b` decimal(38,21) unsigned DEFAULT NULL,
`fa` bigint(17) DEFAULT NULL, `fa` bigint(19) DEFAULT NULL,
`fb` bigint(17) unsigned DEFAULT NULL `fb` bigint(17) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999.999999999999999999999 a 99999999999999999.999999999999999999999
@ -1322,8 +1321,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,22) DEFAULT NULL, `a` decimal(38,22) DEFAULT NULL,
`b` decimal(38,22) unsigned DEFAULT NULL, `b` decimal(38,22) unsigned DEFAULT NULL,
`fa` bigint(17) DEFAULT NULL, `fa` bigint(18) DEFAULT NULL,
`fb` bigint(17) unsigned DEFAULT NULL `fb` bigint(16) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999.9999999999999999999999 a 9999999999999999.9999999999999999999999
b 9999999999999999.9999999999999999999999 b 9999999999999999.9999999999999999999999
@ -1334,7 +1333,7 @@ Create Table CREATE TABLE `t2` (
`a` decimal(38,23) DEFAULT NULL, `a` decimal(38,23) DEFAULT NULL,
`b` decimal(38,23) unsigned DEFAULT NULL, `b` decimal(38,23) unsigned DEFAULT NULL,
`fa` bigint(17) DEFAULT NULL, `fa` bigint(17) DEFAULT NULL,
`fb` bigint(17) unsigned DEFAULT NULL `fb` bigint(15) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999.99999999999999999999999 a 999999999999999.99999999999999999999999
b 999999999999999.99999999999999999999999 b 999999999999999.99999999999999999999999
@ -1344,8 +1343,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,24) DEFAULT NULL, `a` decimal(38,24) DEFAULT NULL,
`b` decimal(38,24) unsigned DEFAULT NULL, `b` decimal(38,24) unsigned DEFAULT NULL,
`fa` bigint(17) DEFAULT NULL, `fa` bigint(16) DEFAULT NULL,
`fb` bigint(16) unsigned DEFAULT NULL `fb` bigint(14) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999.999999999999999999999999 a 99999999999999.999999999999999999999999
b 99999999999999.999999999999999999999999 b 99999999999999.999999999999999999999999
@ -1355,8 +1354,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,25) DEFAULT NULL, `a` decimal(38,25) DEFAULT NULL,
`b` decimal(38,25) unsigned DEFAULT NULL, `b` decimal(38,25) unsigned DEFAULT NULL,
`fa` bigint(16) DEFAULT NULL, `fa` bigint(15) DEFAULT NULL,
`fb` bigint(15) unsigned DEFAULT NULL `fb` bigint(13) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999.9999999999999999999999999 a 9999999999999.9999999999999999999999999
b 9999999999999.9999999999999999999999999 b 9999999999999.9999999999999999999999999
@ -1366,8 +1365,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,26) DEFAULT NULL, `a` decimal(38,26) DEFAULT NULL,
`b` decimal(38,26) unsigned DEFAULT NULL, `b` decimal(38,26) unsigned DEFAULT NULL,
`fa` bigint(15) DEFAULT NULL, `fa` bigint(14) DEFAULT NULL,
`fb` bigint(14) unsigned DEFAULT NULL `fb` bigint(12) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999.99999999999999999999999999 a 999999999999.99999999999999999999999999
b 999999999999.99999999999999999999999999 b 999999999999.99999999999999999999999999
@ -1377,8 +1376,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,27) DEFAULT NULL, `a` decimal(38,27) DEFAULT NULL,
`b` decimal(38,27) unsigned DEFAULT NULL, `b` decimal(38,27) unsigned DEFAULT NULL,
`fa` bigint(14) DEFAULT NULL, `fa` bigint(13) DEFAULT NULL,
`fb` bigint(13) unsigned DEFAULT NULL `fb` bigint(11) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999.999999999999999999999999999 a 99999999999.999999999999999999999999999
b 99999999999.999999999999999999999999999 b 99999999999.999999999999999999999999999
@ -1388,8 +1387,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,28) DEFAULT NULL, `a` decimal(38,28) DEFAULT NULL,
`b` decimal(38,28) unsigned DEFAULT NULL, `b` decimal(38,28) unsigned DEFAULT NULL,
`fa` bigint(13) DEFAULT NULL, `fa` bigint(12) DEFAULT NULL,
`fb` bigint(12) unsigned DEFAULT NULL `fb` bigint(10) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999.9999999999999999999999999999 a 9999999999.9999999999999999999999999999
b 9999999999.9999999999999999999999999999 b 9999999999.9999999999999999999999999999
@ -1399,8 +1398,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,29) DEFAULT NULL, `a` decimal(38,29) DEFAULT NULL,
`b` decimal(38,29) unsigned DEFAULT NULL, `b` decimal(38,29) unsigned DEFAULT NULL,
`fa` bigint(12) DEFAULT NULL, `fa` bigint(11) DEFAULT NULL,
`fb` bigint(11) unsigned DEFAULT NULL `fb` int(9) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999.99999999999999999999999999999 a 999999999.99999999999999999999999999999
b 999999999.99999999999999999999999999999 b 999999999.99999999999999999999999999999
@ -1410,8 +1409,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(38,30) DEFAULT NULL, `a` decimal(38,30) DEFAULT NULL,
`b` decimal(38,30) unsigned DEFAULT NULL, `b` decimal(38,30) unsigned DEFAULT NULL,
`fa` bigint(11) DEFAULT NULL, `fa` int(10) DEFAULT NULL,
`fb` bigint(10) unsigned DEFAULT NULL `fb` int(8) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999.999999999999999999999999999999 a 99999999.999999999999999999999999999999
b 99999999.999999999999999999999999999999 b 99999999.999999999999999999999999999999
@ -1423,7 +1422,7 @@ Create Table CREATE TABLE `t2` (
`a` decimal(30,0) DEFAULT NULL, `a` decimal(30,0) DEFAULT NULL,
`b` decimal(30,0) unsigned DEFAULT NULL, `b` decimal(30,0) unsigned DEFAULT NULL,
`fa` decimal(30,0) DEFAULT NULL, `fa` decimal(30,0) DEFAULT NULL,
`fb` decimal(31,0) unsigned DEFAULT NULL `fb` decimal(30,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999999999999 a 999999999999999999999999999999
b 999999999999999999999999999999 b 999999999999999999999999999999
@ -1433,8 +1432,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,1) DEFAULT NULL, `a` decimal(30,1) DEFAULT NULL,
`b` decimal(30,1) unsigned DEFAULT NULL, `b` decimal(30,1) unsigned DEFAULT NULL,
`fa` decimal(29,0) DEFAULT NULL, `fa` decimal(30,0) DEFAULT NULL,
`fb` decimal(30,0) unsigned DEFAULT NULL `fb` decimal(29,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999999999999.9 a 99999999999999999999999999999.9
b 99999999999999999999999999999.9 b 99999999999999999999999999999.9
@ -1444,8 +1443,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,2) DEFAULT NULL, `a` decimal(30,2) DEFAULT NULL,
`b` decimal(30,2) unsigned DEFAULT NULL, `b` decimal(30,2) unsigned DEFAULT NULL,
`fa` decimal(28,0) DEFAULT NULL, `fa` decimal(29,0) DEFAULT NULL,
`fb` decimal(29,0) unsigned DEFAULT NULL `fb` decimal(28,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999999999999.99 a 9999999999999999999999999999.99
b 9999999999999999999999999999.99 b 9999999999999999999999999999.99
@ -1455,8 +1454,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,3) DEFAULT NULL, `a` decimal(30,3) DEFAULT NULL,
`b` decimal(30,3) unsigned DEFAULT NULL, `b` decimal(30,3) unsigned DEFAULT NULL,
`fa` decimal(27,0) DEFAULT NULL, `fa` decimal(28,0) DEFAULT NULL,
`fb` decimal(28,0) unsigned DEFAULT NULL `fb` decimal(27,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999999999.999 a 999999999999999999999999999.999
b 999999999999999999999999999.999 b 999999999999999999999999999.999
@ -1466,8 +1465,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,4) DEFAULT NULL, `a` decimal(30,4) DEFAULT NULL,
`b` decimal(30,4) unsigned DEFAULT NULL, `b` decimal(30,4) unsigned DEFAULT NULL,
`fa` decimal(26,0) DEFAULT NULL, `fa` decimal(27,0) DEFAULT NULL,
`fb` decimal(27,0) unsigned DEFAULT NULL `fb` decimal(26,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999999999.9999 a 99999999999999999999999999.9999
b 99999999999999999999999999.9999 b 99999999999999999999999999.9999
@ -1477,8 +1476,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,5) DEFAULT NULL, `a` decimal(30,5) DEFAULT NULL,
`b` decimal(30,5) unsigned DEFAULT NULL, `b` decimal(30,5) unsigned DEFAULT NULL,
`fa` decimal(25,0) DEFAULT NULL, `fa` decimal(26,0) DEFAULT NULL,
`fb` decimal(26,0) unsigned DEFAULT NULL `fb` decimal(25,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999999999.99999 a 9999999999999999999999999.99999
b 9999999999999999999999999.99999 b 9999999999999999999999999.99999
@ -1488,8 +1487,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,6) DEFAULT NULL, `a` decimal(30,6) DEFAULT NULL,
`b` decimal(30,6) unsigned DEFAULT NULL, `b` decimal(30,6) unsigned DEFAULT NULL,
`fa` decimal(24,0) DEFAULT NULL, `fa` decimal(25,0) DEFAULT NULL,
`fb` decimal(25,0) unsigned DEFAULT NULL `fb` decimal(24,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999999.999999 a 999999999999999999999999.999999
b 999999999999999999999999.999999 b 999999999999999999999999.999999
@ -1499,8 +1498,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,7) DEFAULT NULL, `a` decimal(30,7) DEFAULT NULL,
`b` decimal(30,7) unsigned DEFAULT NULL, `b` decimal(30,7) unsigned DEFAULT NULL,
`fa` decimal(23,0) DEFAULT NULL, `fa` decimal(24,0) DEFAULT NULL,
`fb` decimal(24,0) unsigned DEFAULT NULL `fb` decimal(23,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999999.9999999 a 99999999999999999999999.9999999
b 99999999999999999999999.9999999 b 99999999999999999999999.9999999
@ -1510,8 +1509,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,8) DEFAULT NULL, `a` decimal(30,8) DEFAULT NULL,
`b` decimal(30,8) unsigned DEFAULT NULL, `b` decimal(30,8) unsigned DEFAULT NULL,
`fa` decimal(22,0) DEFAULT NULL, `fa` decimal(23,0) DEFAULT NULL,
`fb` decimal(23,0) unsigned DEFAULT NULL `fb` decimal(22,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999999.99999999 a 9999999999999999999999.99999999
b 9999999999999999999999.99999999 b 9999999999999999999999.99999999
@ -1521,8 +1520,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,9) DEFAULT NULL, `a` decimal(30,9) DEFAULT NULL,
`b` decimal(30,9) unsigned DEFAULT NULL, `b` decimal(30,9) unsigned DEFAULT NULL,
`fa` decimal(21,0) DEFAULT NULL, `fa` decimal(22,0) DEFAULT NULL,
`fb` decimal(22,0) unsigned DEFAULT NULL `fb` decimal(21,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999999.999999999 a 999999999999999999999.999999999
b 999999999999999999999.999999999 b 999999999999999999999.999999999
@ -1532,8 +1531,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,10) DEFAULT NULL, `a` decimal(30,10) DEFAULT NULL,
`b` decimal(30,10) unsigned DEFAULT NULL, `b` decimal(30,10) unsigned DEFAULT NULL,
`fa` decimal(20,0) DEFAULT NULL, `fa` decimal(21,0) DEFAULT NULL,
`fb` decimal(21,0) unsigned DEFAULT NULL `fb` decimal(20,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999999.9999999999 a 99999999999999999999.9999999999
b 99999999999999999999.9999999999 b 99999999999999999999.9999999999
@ -1543,8 +1542,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,11) DEFAULT NULL, `a` decimal(30,11) DEFAULT NULL,
`b` decimal(30,11) unsigned DEFAULT NULL, `b` decimal(30,11) unsigned DEFAULT NULL,
`fa` decimal(19,0) DEFAULT NULL, `fa` decimal(20,0) DEFAULT NULL,
`fb` decimal(20,0) unsigned DEFAULT NULL `fb` decimal(19,0) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999999.99999999999 a 9999999999999999999.99999999999
b 9999999999999999999.99999999999 b 9999999999999999999.99999999999
@ -1554,8 +1553,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,12) DEFAULT NULL, `a` decimal(30,12) DEFAULT NULL,
`b` decimal(30,12) unsigned DEFAULT NULL, `b` decimal(30,12) unsigned DEFAULT NULL,
`fa` decimal(18,0) DEFAULT NULL, `fa` decimal(19,0) DEFAULT NULL,
`fb` bigint(17) unsigned DEFAULT NULL `fb` bigint(18) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999999.999999999999 a 999999999999999999.999999999999
b 999999999999999999.999999999999 b 999999999999999999.999999999999
@ -1565,7 +1564,7 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,13) DEFAULT NULL, `a` decimal(30,13) DEFAULT NULL,
`b` decimal(30,13) unsigned DEFAULT NULL, `b` decimal(30,13) unsigned DEFAULT NULL,
`fa` bigint(17) DEFAULT NULL, `fa` bigint(19) DEFAULT NULL,
`fb` bigint(17) unsigned DEFAULT NULL `fb` bigint(17) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999999.9999999999999 a 99999999999999999.9999999999999
@ -1576,8 +1575,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,14) DEFAULT NULL, `a` decimal(30,14) DEFAULT NULL,
`b` decimal(30,14) unsigned DEFAULT NULL, `b` decimal(30,14) unsigned DEFAULT NULL,
`fa` bigint(17) DEFAULT NULL, `fa` bigint(18) DEFAULT NULL,
`fb` bigint(17) unsigned DEFAULT NULL `fb` bigint(16) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999999.99999999999999 a 9999999999999999.99999999999999
b 9999999999999999.99999999999999 b 9999999999999999.99999999999999
@ -1588,7 +1587,7 @@ Create Table CREATE TABLE `t2` (
`a` decimal(30,15) DEFAULT NULL, `a` decimal(30,15) DEFAULT NULL,
`b` decimal(30,15) unsigned DEFAULT NULL, `b` decimal(30,15) unsigned DEFAULT NULL,
`fa` bigint(17) DEFAULT NULL, `fa` bigint(17) DEFAULT NULL,
`fb` bigint(17) unsigned DEFAULT NULL `fb` bigint(15) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999999.999999999999999 a 999999999999999.999999999999999
b 999999999999999.999999999999999 b 999999999999999.999999999999999
@ -1598,8 +1597,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,16) DEFAULT NULL, `a` decimal(30,16) DEFAULT NULL,
`b` decimal(30,16) unsigned DEFAULT NULL, `b` decimal(30,16) unsigned DEFAULT NULL,
`fa` bigint(17) DEFAULT NULL, `fa` bigint(16) DEFAULT NULL,
`fb` bigint(16) unsigned DEFAULT NULL `fb` bigint(14) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999999.9999999999999999 a 99999999999999.9999999999999999
b 99999999999999.9999999999999999 b 99999999999999.9999999999999999
@ -1609,8 +1608,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,17) DEFAULT NULL, `a` decimal(30,17) DEFAULT NULL,
`b` decimal(30,17) unsigned DEFAULT NULL, `b` decimal(30,17) unsigned DEFAULT NULL,
`fa` bigint(16) DEFAULT NULL, `fa` bigint(15) DEFAULT NULL,
`fb` bigint(15) unsigned DEFAULT NULL `fb` bigint(13) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999999.99999999999999999 a 9999999999999.99999999999999999
b 9999999999999.99999999999999999 b 9999999999999.99999999999999999
@ -1620,8 +1619,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,18) DEFAULT NULL, `a` decimal(30,18) DEFAULT NULL,
`b` decimal(30,18) unsigned DEFAULT NULL, `b` decimal(30,18) unsigned DEFAULT NULL,
`fa` bigint(15) DEFAULT NULL, `fa` bigint(14) DEFAULT NULL,
`fb` bigint(14) unsigned DEFAULT NULL `fb` bigint(12) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999999.999999999999999999 a 999999999999.999999999999999999
b 999999999999.999999999999999999 b 999999999999.999999999999999999
@ -1631,8 +1630,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,19) DEFAULT NULL, `a` decimal(30,19) DEFAULT NULL,
`b` decimal(30,19) unsigned DEFAULT NULL, `b` decimal(30,19) unsigned DEFAULT NULL,
`fa` bigint(14) DEFAULT NULL, `fa` bigint(13) DEFAULT NULL,
`fb` bigint(13) unsigned DEFAULT NULL `fb` bigint(11) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999999.9999999999999999999 a 99999999999.9999999999999999999
b 99999999999.9999999999999999999 b 99999999999.9999999999999999999
@ -1642,8 +1641,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,20) DEFAULT NULL, `a` decimal(30,20) DEFAULT NULL,
`b` decimal(30,20) unsigned DEFAULT NULL, `b` decimal(30,20) unsigned DEFAULT NULL,
`fa` bigint(13) DEFAULT NULL, `fa` bigint(12) DEFAULT NULL,
`fb` bigint(12) unsigned DEFAULT NULL `fb` bigint(10) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999999.99999999999999999999 a 9999999999.99999999999999999999
b 9999999999.99999999999999999999 b 9999999999.99999999999999999999
@ -1653,8 +1652,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,21) DEFAULT NULL, `a` decimal(30,21) DEFAULT NULL,
`b` decimal(30,21) unsigned DEFAULT NULL, `b` decimal(30,21) unsigned DEFAULT NULL,
`fa` bigint(12) DEFAULT NULL, `fa` bigint(11) DEFAULT NULL,
`fb` bigint(11) unsigned DEFAULT NULL `fb` int(9) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999999.999999999999999999999 a 999999999.999999999999999999999
b 999999999.999999999999999999999 b 999999999.999999999999999999999
@ -1664,8 +1663,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,22) DEFAULT NULL, `a` decimal(30,22) DEFAULT NULL,
`b` decimal(30,22) unsigned DEFAULT NULL, `b` decimal(30,22) unsigned DEFAULT NULL,
`fa` bigint(11) DEFAULT NULL, `fa` int(10) DEFAULT NULL,
`fb` bigint(10) unsigned DEFAULT NULL `fb` int(8) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999999.9999999999999999999999 a 99999999.9999999999999999999999
b 99999999.9999999999999999999999 b 99999999.9999999999999999999999
@ -1675,8 +1674,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,23) DEFAULT NULL, `a` decimal(30,23) DEFAULT NULL,
`b` decimal(30,23) unsigned DEFAULT NULL, `b` decimal(30,23) unsigned DEFAULT NULL,
`fa` bigint(10) DEFAULT NULL, `fa` int(9) DEFAULT NULL,
`fb` int(9) unsigned DEFAULT NULL `fb` int(7) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999999.99999999999999999999999 a 9999999.99999999999999999999999
b 9999999.99999999999999999999999 b 9999999.99999999999999999999999
@ -1686,8 +1685,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,24) DEFAULT NULL, `a` decimal(30,24) DEFAULT NULL,
`b` decimal(30,24) unsigned DEFAULT NULL, `b` decimal(30,24) unsigned DEFAULT NULL,
`fa` int(9) DEFAULT NULL, `fa` int(8) DEFAULT NULL,
`fb` int(8) unsigned DEFAULT NULL `fb` int(6) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999999.999999999999999999999999 a 999999.999999999999999999999999
b 999999.999999999999999999999999 b 999999.999999999999999999999999
@ -1697,8 +1696,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,25) DEFAULT NULL, `a` decimal(30,25) DEFAULT NULL,
`b` decimal(30,25) unsigned DEFAULT NULL, `b` decimal(30,25) unsigned DEFAULT NULL,
`fa` int(8) DEFAULT NULL, `fa` int(7) DEFAULT NULL,
`fb` int(7) unsigned DEFAULT NULL `fb` int(5) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99999.9999999999999999999999999 a 99999.9999999999999999999999999
b 99999.9999999999999999999999999 b 99999.9999999999999999999999999
@ -1708,8 +1707,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,26) DEFAULT NULL, `a` decimal(30,26) DEFAULT NULL,
`b` decimal(30,26) unsigned DEFAULT NULL, `b` decimal(30,26) unsigned DEFAULT NULL,
`fa` int(7) DEFAULT NULL, `fa` int(6) DEFAULT NULL,
`fb` int(6) unsigned DEFAULT NULL `fb` int(4) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9999.99999999999999999999999999 a 9999.99999999999999999999999999
b 9999.99999999999999999999999999 b 9999.99999999999999999999999999
@ -1719,8 +1718,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,27) DEFAULT NULL, `a` decimal(30,27) DEFAULT NULL,
`b` decimal(30,27) unsigned DEFAULT NULL, `b` decimal(30,27) unsigned DEFAULT NULL,
`fa` int(6) DEFAULT NULL, `fa` int(5) DEFAULT NULL,
`fb` int(5) unsigned DEFAULT NULL `fb` int(3) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 999.999999999999999999999999999 a 999.999999999999999999999999999
b 999.999999999999999999999999999 b 999.999999999999999999999999999
@ -1730,8 +1729,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,28) DEFAULT NULL, `a` decimal(30,28) DEFAULT NULL,
`b` decimal(30,28) unsigned DEFAULT NULL, `b` decimal(30,28) unsigned DEFAULT NULL,
`fa` int(5) DEFAULT NULL, `fa` int(4) DEFAULT NULL,
`fb` int(4) unsigned DEFAULT NULL `fb` int(2) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 99.9999999999999999999999999999 a 99.9999999999999999999999999999
b 99.9999999999999999999999999999 b 99.9999999999999999999999999999
@ -1741,8 +1740,8 @@ Table t2
Create Table CREATE TABLE `t2` ( Create Table CREATE TABLE `t2` (
`a` decimal(30,29) DEFAULT NULL, `a` decimal(30,29) DEFAULT NULL,
`b` decimal(30,29) unsigned DEFAULT NULL, `b` decimal(30,29) unsigned DEFAULT NULL,
`fa` int(4) DEFAULT NULL, `fa` int(3) DEFAULT NULL,
`fb` int(3) unsigned DEFAULT NULL `fb` int(1) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 9.99999999999999999999999999999 a 9.99999999999999999999999999999
b 9.99999999999999999999999999999 b 9.99999999999999999999999999999
@ -1784,7 +1783,7 @@ ROUND(10e0,NULL) AS c3;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`c1` double DEFAULT NULL, `c1` int(2) DEFAULT NULL,
`c2` double DEFAULT NULL, `c2` double DEFAULT NULL,
`c3` double DEFAULT NULL `c3` double DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
@ -2296,7 +2295,7 @@ FORMAT(-1e308,2)
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`FORMAT(-1e308,2)` varchar(416) DEFAULT NULL `FORMAT(-1e308,2)` varchar(417) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1; DROP TABLE t1;
CREATE OR REPLACE TABLE t1 AS SELECT FORMAT('-1e308',2); CREATE OR REPLACE TABLE t1 AS SELECT FORMAT('-1e308',2);
@ -2306,7 +2305,7 @@ FORMAT('-1e308',2)
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`FORMAT('-1e308',2)` varchar(416) DEFAULT NULL `FORMAT('-1e308',2)` varchar(417) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1; DROP TABLE t1;
CREATE OR REPLACE TABLE t1 AS SELECT FORMAT(DATE'20191231',0),FORMAT(TIME'99:05:00',0),FORMAT(TIMESTAMP'2019-12-31 23:59:59.123456',0); CREATE OR REPLACE TABLE t1 AS SELECT FORMAT(DATE'20191231',0),FORMAT(TIME'99:05:00',0),FORMAT(TIMESTAMP'2019-12-31 23:59:59.123456',0);
@ -2318,7 +2317,7 @@ Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`FORMAT(DATE'20191231',0)` varchar(11) DEFAULT NULL, `FORMAT(DATE'20191231',0)` varchar(11) DEFAULT NULL,
`FORMAT(TIME'99:05:00',0)` varchar(10) DEFAULT NULL, `FORMAT(TIME'99:05:00',0)` varchar(10) DEFAULT NULL,
`FORMAT(TIMESTAMP'2019-12-31 23:59:59.123456',0)` varchar(19) DEFAULT NULL `FORMAT(TIMESTAMP'2019-12-31 23:59:59.123456',0)` varchar(21) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1; DROP TABLE t1;
CREATE OR REPLACE TABLE t1 (y YEAR); CREATE OR REPLACE TABLE t1 (y YEAR);
@ -3550,7 +3549,7 @@ FORMAT(f,0)
SHOW CREATE TABLE t2; SHOW CREATE TABLE t2;
Table Create Table Table Create Table
t2 CREATE TABLE `t2` ( t2 CREATE TABLE `t2` (
`FORMAT(f,0)` varchar(53) DEFAULT NULL `FORMAT(f,0)` varchar(54) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2; DROP TABLE t1,t2;
# #

View File

@ -2708,7 +2708,7 @@ create table t1(a float);
insert into t1 values (1.33); insert into t1 values (1.33);
select format(a, 2) from t1; select format(a, 2) from t1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def format(a, 2) 253 56 4 Y 0 39 8 def format(a, 2) 253 57 4 Y 0 39 8
format(a, 2) format(a, 2)
1.33 1.33
drop table t1; drop table t1;

View File

@ -2773,6 +2773,24 @@ root@localhost
DROP TABLE t1; DROP TABLE t1;
DROP USER dummy@localhost; DROP USER dummy@localhost;
# #
# MDEV-23082: ER_TABLEACCESS_DENIED_ERROR error message is truncated, and
# inaccurately
#
CREATE USER foo;
CREATE DATABASE db;
CREATE TABLE db.t (a INT);
connect con1,localhost,foo,,;
GRANT ALL ON db.t TO foo;
ERROR 42000: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW ... command denied to user 'foo'@'localhost' for table 't'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT OPTION, REFERENCES,
INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER ON db.t TO foo;
ERROR 42000: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW ... command denied to user 'foo'@'localhost' for table 't'
connection default;
disconnect con1;
DROP USER foo;
DROP TABLE db.t;
DROP DATABASE db;
#
# End of 10.2 tests # End of 10.2 tests
# #
# #

View File

@ -2259,6 +2259,31 @@ SELECT * FROM t1;
DROP TABLE t1; DROP TABLE t1;
DROP USER dummy@localhost; DROP USER dummy@localhost;
--echo #
--echo # MDEV-23082: ER_TABLEACCESS_DENIED_ERROR error message is truncated, and
--echo # inaccurately
--echo #
CREATE USER foo;
CREATE DATABASE db;
CREATE TABLE db.t (a INT);
--connect (con1,localhost,foo,,)
--error ER_TABLEACCESS_DENIED_ERROR
GRANT ALL ON db.t TO foo;
--error ER_TABLEACCESS_DENIED_ERROR
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT OPTION, REFERENCES,
INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER ON db.t TO foo;
--connection default
--disconnect con1
DROP USER foo;
DROP TABLE db.t;
DROP DATABASE db;
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests
--echo # --echo #

View File

@ -25,6 +25,19 @@ ERROR HY000: Table 'procs_priv' was not locked with LOCK TABLES
REVOKE PROCESS ON *.* FROM u; REVOKE PROCESS ON *.* FROM u;
ERROR HY000: Table 'db' was not locked with LOCK TABLES ERROR HY000: Table 'db' was not locked with LOCK TABLES
DROP TABLE t1; DROP TABLE t1;
create database mysqltest1;
use mysqltest1;
create table t1(id int);
insert t1 values(2);
create user u1@localhost;
grant select on mysqltest1.t1 to u1@localhost;
grant update on mysqltest1.* to u1@localhost;
connect u1, localhost, u1;
update mysqltest1.t1 set id=1 where id=2;
connection default;
disconnect u1;
drop user u1@localhost;
drop database mysqltest1;
# #
# MDEV-20076: SHOW GRANTS does not quote role names properly # MDEV-20076: SHOW GRANTS does not quote role names properly
# #

View File

@ -34,6 +34,27 @@ REVOKE EXECUTE ON PROCEDURE sp FROM u;
REVOKE PROCESS ON *.* FROM u; REVOKE PROCESS ON *.* FROM u;
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-23010 UPDATE privilege at Database and Table level fail to update with SELECT command denied to user
#
create database mysqltest1;
use mysqltest1;
create table t1(id int);
insert t1 values(2);
create user u1@localhost;
grant select on mysqltest1.t1 to u1@localhost;
grant update on mysqltest1.* to u1@localhost;
connect u1, localhost, u1;
update mysqltest1.t1 set id=1 where id=2;
connection default;
disconnect u1;
drop user u1@localhost;
drop database mysqltest1;
#
# End of 10.1 tests
#
--echo # --echo #
--echo # MDEV-20076: SHOW GRANTS does not quote role names properly --echo # MDEV-20076: SHOW GRANTS does not quote role names properly
--echo # --echo #

View File

@ -2219,6 +2219,26 @@ SCHEMA_NAME
# End of 10.1 tests # End of 10.1 tests
# #
# #
# Start of 10.2 Test
#
# MDEV-14836: Assertion `m_status == DA_ERROR' failed in
# Diagnostics_area::sql_errno upon query from I_S with LIMIT ROWS EXAMINED
#
SELECT * FROM seq_1_to_100 LIMIT ROWS EXAMINED 10;
seq
1
2
3
4
5
6
7
Warnings:
Warning 1931 Query execution was interrupted. The query examined at least 11 rows, which exceeds LIMIT ROWS EXAMINED (10). The query result may be incomplete
#
# End of 10.2 Test
#
#
# MDEV-21201:No records produced in information_schema query, # MDEV-21201:No records produced in information_schema query,
# depending on projection # depending on projection
# #

View File

@ -17,6 +17,8 @@
--source include/default_optimizer_switch.inc --source include/default_optimizer_switch.inc
--source include/default_charset.inc --source include/default_charset.inc
--source include/have_sequence.inc
set global sql_mode=""; set global sql_mode="";
set local sql_mode=""; set local sql_mode="";
@ -1921,6 +1923,18 @@ SELECT SCHEMA_NAME from information_schema.schemata where schema_name=REPEAT('a'
--echo # End of 10.1 tests --echo # End of 10.1 tests
--echo # --echo #
--echo #
--echo # Start of 10.2 Test
--echo #
--echo # MDEV-14836: Assertion `m_status == DA_ERROR' failed in
--echo # Diagnostics_area::sql_errno upon query from I_S with LIMIT ROWS EXAMINED
--echo #
SELECT * FROM seq_1_to_100 LIMIT ROWS EXAMINED 10;
--echo #
--echo # End of 10.2 Test
--echo #
--echo # --echo #
--echo # MDEV-21201:No records produced in information_schema query, --echo # MDEV-21201:No records produced in information_schema query,

View File

@ -158,3 +158,13 @@ show triggers like '%T1%';
Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation
drop table t1; drop table t1;
set GLOBAL sql_mode=default; set GLOBAL sql_mode=default;
#
# MDEV-19632 Replication aborts with ER_SLAVE_CONVERSION_FAILED upon CREATE ... SELECT in ORACLE mode
#
# Compatibility schema names respect the filesystem case sensitivity
CREATE TABLE t1 (a MARIADB_SCHEMA.date);
ERROR HY000: Unknown data type: 'MARIADB_SCHEMA.date'
CREATE TABLE t1 (a Mariadb_schema.date);
ERROR HY000: Unknown data type: 'Mariadb_schema.date'
CREATE TABLE t1 (a mariadb_schema.date);
DROP TABLE t1;

View File

@ -130,3 +130,18 @@ let $datadir= `select @@datadir`;
remove_file $datadir/mysql_upgrade_info; remove_file $datadir/mysql_upgrade_info;
set GLOBAL sql_mode=default; set GLOBAL sql_mode=default;
--echo #
--echo # MDEV-19632 Replication aborts with ER_SLAVE_CONVERSION_FAILED upon CREATE ... SELECT in ORACLE mode
--echo #
--echo # Compatibility schema names respect the filesystem case sensitivity
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a MARIADB_SCHEMA.date);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a Mariadb_schema.date);
CREATE TABLE t1 (a mariadb_schema.date);
DROP TABLE t1;

View File

@ -85,6 +85,15 @@ END IF|
# #
# Testing with explicit timezonefile # Testing with explicit timezonefile
# #
\d |
IF (select count(*) from information_schema.global_variables where
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
ALTER TABLE time_zone ENGINE=InnoDB;
ALTER TABLE time_zone_name ENGINE=InnoDB;
ALTER TABLE time_zone_transition ENGINE=InnoDB;
ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
END IF|
\d ;
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
SET @time_zone_id= LAST_INSERT_ID(); SET @time_zone_id= LAST_INSERT_ID();
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id); INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id);
@ -106,6 +115,15 @@ END IF|
\d | \d |
IF (select count(*) from information_schema.global_variables where IF (select count(*) from information_schema.global_variables where
variable_name='wsrep_on' and variable_value='ON') = 1 THEN variable_name='wsrep_on' and variable_value='ON') = 1 THEN
ALTER TABLE time_zone ENGINE=InnoDB;
ALTER TABLE time_zone_name ENGINE=InnoDB;
ALTER TABLE time_zone_transition ENGINE=InnoDB;
ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
END IF|
\d ;
\d |
IF (select count(*) from information_schema.global_variables where
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
ALTER TABLE time_zone_leap_second ENGINE=InnoDB; ALTER TABLE time_zone_leap_second ENGINE=InnoDB;
END IF| END IF|
\d ; \d ;

View File

@ -66,20 +66,6 @@
sort-buffer-size 2097152 sort-buffer-size 2097152
sql-mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION sql-mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql-safe-updates FALSE sql-safe-updates FALSE
@@ -1741,10 +1752,10 @@
sync-relay-log-info 10000
sysdate-is-now FALSE
system-versioning-alter-history ERROR
-table-cache 421
+table-cache 2000
table-definition-cache 400
-table-open-cache 421
-table-open-cache-instances 1
+table-open-cache 2000
+table-open-cache-instances 8
tc-heuristic-recover OFF
tcp-keepalive-interval 0
tcp-keepalive-probes 0
@@ -1753,6 +1764,8 @@ @@ -1753,6 +1764,8 @@
thread-cache-size 151 thread-cache-size 151
thread-pool-idle-timeout 60 thread-pool-idle-timeout 60

View File

@ -1594,7 +1594,6 @@ max-binlog-cache-size 18446744073709547520
max-binlog-size 1073741824 max-binlog-size 1073741824
max-binlog-stmt-cache-size 18446744073709547520 max-binlog-stmt-cache-size 18446744073709547520
max-connect-errors 100 max-connect-errors 100
max-connections 151
max-delayed-threads 20 max-delayed-threads 20
max-digest-length 1024 max-digest-length 1024
max-error-count 64 max-error-count 64
@ -1797,10 +1796,7 @@ sync-relay-log 10000
sync-relay-log-info 10000 sync-relay-log-info 10000
sysdate-is-now FALSE sysdate-is-now FALSE
system-versioning-alter-history ERROR system-versioning-alter-history ERROR
table-cache 421
table-definition-cache 400 table-definition-cache 400
table-open-cache 421
table-open-cache-instances 1
tc-heuristic-recover OFF tc-heuristic-recover OFF
tcp-keepalive-interval 0 tcp-keepalive-interval 0
tcp-keepalive-probes 0 tcp-keepalive-probes 0

View File

@ -23,7 +23,9 @@ perl;
log-slow-queries pid-file slow-query-log-file log-basename log-slow-queries pid-file slow-query-log-file log-basename
datadir slave-load-tmpdir tmpdir socket thread-pool-size datadir slave-load-tmpdir tmpdir socket thread-pool-size
large-files-support lower-case-file-system system-time-zone large-files-support lower-case-file-system system-time-zone
collation-server character-set-server log-tc-size tls-version version.*/; collation-server character-set-server log-tc-size table-cache
table-open-cache table-open-cache-instances max-connections
tls-version version.*/;
# Plugins which may or may not be there: # Plugins which may or may not be there:
@plugins=qw/innodb archive blackhole federated partition s3 @plugins=qw/innodb archive blackhole federated partition s3

View File

@ -27,3 +27,4 @@ let $MYSQLD_DATADIR= `select @@datadir`;
let SEARCH_FILE=$MYSQLD_DATADIR/second-mysqld.err; let SEARCH_FILE=$MYSQLD_DATADIR/second-mysqld.err;
let SEARCH_PATTERN=\[ERROR\] Create named pipe failed; let SEARCH_PATTERN=\[ERROR\] Create named pipe failed;
source include/search_pattern_in_file.inc; source include/search_pattern_in_file.inc;
remove_file $SEARCH_FILE;

View File

@ -4097,6 +4097,16 @@ Y
B B
A A
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-23414 Assertion `res->charset() == item->collation.collation' failed in Type_handler_string_result::make_packed_sort_key_part
#
CREATE TABLE t1 (a CHAR(3), b BINARY(255));
INSERT t1 VALUES ('foo','bar'),('baz','qux');
SELECT COALESCE(a, b) AS f FROM t1 ORDER BY f;
f
baz
foo
DROP TABLE t1;
# End of 10.5 tests # End of 10.5 tests
# #
# MDEV-13694: Wrong result upon GROUP BY with orderby_uses_equalities=on # MDEV-13694: Wrong result upon GROUP BY with orderby_uses_equalities=on

View File

@ -2533,6 +2533,14 @@ SELECT * FROM t1 ORDER BY a DESC;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-23414 Assertion `res->charset() == item->collation.collation' failed in Type_handler_string_result::make_packed_sort_key_part
--echo #
CREATE TABLE t1 (a CHAR(3), b BINARY(255));
INSERT t1 VALUES ('foo','bar'),('baz','qux');
SELECT COALESCE(a, b) AS f FROM t1 ORDER BY f;
DROP TABLE t1;
--echo # End of 10.5 tests --echo # End of 10.5 tests
--echo # --echo #

View File

@ -1801,6 +1801,13 @@ SELECT @@GLOBAL.password;
ERROR HY000: Unknown system variable 'password' ERROR HY000: Unknown system variable 'password'
SELECT @@GLOBAL.role; SELECT @@GLOBAL.role;
ERROR HY000: Unknown system variable 'role' ERROR HY000: Unknown system variable 'role'
#
# MDEV-22022 Various mangled SQL statements will crash 10.3 to 10.5 debug builds
#
EXECUTE IMMEDIATE 'if(`systeminfo /FO LIST';
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '`systeminfo /FO LIST' at line 1
EXECUTE IMMEDIATE 'if(`systeminfo';
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '`systeminfo' at line 1
End of 10.3 tests End of 10.3 tests
# #
# MDEV-19540: 10.4 allow lock options with SELECT in brackets # MDEV-19540: 10.4 allow lock options with SELECT in brackets

View File

@ -1543,6 +1543,15 @@ SELECT @@GLOBAL.password;
--error ER_UNKNOWN_SYSTEM_VARIABLE --error ER_UNKNOWN_SYSTEM_VARIABLE
SELECT @@GLOBAL.role; SELECT @@GLOBAL.role;
--echo #
--echo # MDEV-22022 Various mangled SQL statements will crash 10.3 to 10.5 debug builds
--echo #
--error ER_PARSE_ERROR
EXECUTE IMMEDIATE 'if(`systeminfo /FO LIST';
--error ER_PARSE_ERROR
EXECUTE IMMEDIATE 'if(`systeminfo';
--echo End of 10.3 tests --echo End of 10.3 tests
--echo # --echo #

View File

@ -619,7 +619,7 @@ select 4 - 3 * 2, (4 - 3) * 2, 4 - (3 * 2);
Testing that / is left associative Testing that / is left associative
select 15 / 5 / 3, (15 / 5) / 3, 15 / (5 / 3); select 15 / 5 / 3, (15 / 5) / 3, 15 / (5 / 3);
15 / 5 / 3 (15 / 5) / 3 15 / (5 / 3) 15 / 5 / 3 (15 / 5) / 3 15 / (5 / 3)
1.00000000 1.00000000 9.0000 1.00000000 1.00000000 8.9998
Testing that / has precedence over | Testing that / has precedence over |
select 105 / 5 | 2, (105 / 5) | 2, 105 / (5 | 2); select 105 / 5 | 2, (105 / 5) | 2, 105 / (5 | 2);
105 / 5 | 2 (105 / 5) | 2 105 / (5 | 2) 105 / 5 | 2 (105 / 5) | 2 105 / (5 | 2)

View File

@ -2767,5 +2767,45 @@ SELECT 1 FROM t1 WHERE a XOR 'a';
1 1
DROP TABLE t1; DROP TABLE t1;
# #
# Bug #25207522: INCORRECT ORDER-BY BEHAVIOR ON A PARTITIONED TABLE
# WITH A COMPOSITE PREFIX INDEX
#
create table t1(id int unsigned not null,
data varchar(2) default null,
key data_idx (data(1),id)
) default charset=utf8
partition by range (id) (
partition p10 values less than (10),
partition p20 values less than (20)
);
insert t1 values (6, 'ab'), (4, 'ab'), (5, 'ab'), (16, 'ab'), (14, 'ab'), (15, 'ab'), (5, 'ac'), (15, 'aa') ;
select id from t1 where data = 'ab' order by id;
id
4
5
6
14
15
16
drop table t1;
create table t1(id int unsigned not null,
data text default null,
key data_idx (data(1),id)
) default charset=utf8
partition by range (id) (
partition p10 values less than (10),
partition p20 values less than (20)
);
insert t1 values (6, 'ab'), (4, 'ab'), (5, 'ab'), (16, 'ab'), (14, 'ab'), (15, 'ab'), (5, 'ac'), (15, 'aa') ;
select id from t1 where data = 'ab' order by id;
id
4
5
6
14
15
16
drop table t1;
#
# End of 10.1 tests # End of 10.1 tests
# #

View File

@ -2976,6 +2976,34 @@ CREATE TABLE t1(a BINARY(80)) PARTITION BY KEY(a) PARTITIONS 3;
SELECT 1 FROM t1 WHERE a XOR 'a'; SELECT 1 FROM t1 WHERE a XOR 'a';
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # Bug #25207522: INCORRECT ORDER-BY BEHAVIOR ON A PARTITIONED TABLE
--echo # WITH A COMPOSITE PREFIX INDEX
--echo #
create table t1(id int unsigned not null,
data varchar(2) default null,
key data_idx (data(1),id)
) default charset=utf8
partition by range (id) (
partition p10 values less than (10),
partition p20 values less than (20)
);
insert t1 values (6, 'ab'), (4, 'ab'), (5, 'ab'), (16, 'ab'), (14, 'ab'), (15, 'ab'), (5, 'ac'), (15, 'aa') ;
select id from t1 where data = 'ab' order by id;
drop table t1;
create table t1(id int unsigned not null,
data text default null,
key data_idx (data(1),id)
) default charset=utf8
partition by range (id) (
partition p10 values less than (10),
partition p20 values less than (20)
);
insert t1 values (6, 'ab'), (4, 'ab'), (5, 'ab'), (16, 'ab'), (14, 'ab'), (15, 'ab'), (5, 'ac'), (15, 'aa') ;
select id from t1 where data = 'ab' order by id;
drop table t1;
--echo # --echo #
--echo # End of 10.1 tests --echo # End of 10.1 tests
--echo # --echo #

View File

@ -9,5 +9,38 @@ ANALYZE TABLE t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK test.t1 analyze status OK
SET use_stat_tables = DEFAULT;
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-21472: ALTER TABLE ... ANALYZE PARTITION ... with EITS reads and locks all rows
#
CREATE TABLE t1 (
id int(11) auto_increment primary key,
c1 int(11) DEFAULT NULL
) PARTITION BY RANGE (id) (
PARTITION p0 VALUES LESS THAN (4),
PARTITION p1 VALUES LESS THAN MAXVALUE
);
insert into t1(c1) values (1),(1),(1),(1), (1),(1),(1),(1);
insert into t1(c1) select c1 from t1;
insert into t1(c1) select c1 from t1;
select count(*) from t1;
count(*)
32
select count(*) from t1 where id <4;
count(*)
3
flush status;
set session use_stat_tables='preferably';
# Must NOT show "Engine-independent statistics collected":
alter table t1 analyze partition p0;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
# Should not have Handler_read_rnd_next=34
show session status like 'Handler_read_rnd%';
Variable_name Value
Handler_read_rnd 0
Handler_read_rnd_deleted 0
Handler_read_rnd_next 34
drop table t1;
SET use_stat_tables = DEFAULT;

View File

@ -11,7 +11,33 @@ CREATE TABLE t1 (pk int PRIMARY KEY, a bit(1), INDEX idx(a)
INSERT INTO t1 VALUES (1,1),(2,0),(3,0),(4,1); INSERT INTO t1 VALUES (1,1),(2,0),(3,0),(4,1);
ANALYZE TABLE t1; ANALYZE TABLE t1;
DROP TABLE t1;
--echo #
--echo # MDEV-21472: ALTER TABLE ... ANALYZE PARTITION ... with EITS reads and locks all rows
--echo #
CREATE TABLE t1 (
id int(11) auto_increment primary key,
c1 int(11) DEFAULT NULL
) PARTITION BY RANGE (id) (
PARTITION p0 VALUES LESS THAN (4),
PARTITION p1 VALUES LESS THAN MAXVALUE
);
insert into t1(c1) values (1),(1),(1),(1), (1),(1),(1),(1);
insert into t1(c1) select c1 from t1;
insert into t1(c1) select c1 from t1;
select count(*) from t1;
select count(*) from t1 where id <4;
flush status;
set session use_stat_tables='preferably';
--echo # Must NOT show "Engine-independent statistics collected":
alter table t1 analyze partition p0;
--echo # Should not have Handler_read_rnd_next=34
show session status like 'Handler_read_rnd%';
drop table t1;
SET use_stat_tables = DEFAULT; SET use_stat_tables = DEFAULT;
DROP TABLE t1;

View File

@ -2585,6 +2585,71 @@ e 2
o 6 o 6
DROP TABLE t1, t2; DROP TABLE t1, t2;
# #
# MDEV-19232: Floating point precision / value comparison problem
#
CREATE TABLE t1 (region varchar(60), area decimal(10,0), population decimal(11,0));
INSERT INTO t1 VALUES ('Central America and the Caribbean',91,11797);
INSERT INTO t1 VALUES ('Central America and the Caribbean',442,66422);
SET @save_optimizer_switch=@@optimizer_switch;
SET optimizer_switch='subquery_cache=on';
SELECT
population, area, population/area,
cast(population/area as DECIMAL(20,9)) FROM t1 LIMIT 1;
population area population/area cast(population/area as DECIMAL(20,9))
11797 91 129.6374 129.637400000
SELECT * FROM t1 A
WHERE population/area = (SELECT MAX(population/area) from t1 B where A.region = B.region);
region area population
Central America and the Caribbean 442 66422
SET optimizer_switch='subquery_cache=off';
SELECT * FROM t1 A
WHERE population/area = (SELECT MAX(population/area) from t1 B where A.region = B.region);
region area population
Central America and the Caribbean 442 66422
SET @@optimizer_switch= @save_optimizer_switch;
DROP TABLE t1;
#
# MDEV-9513: Assertion `join->group_list || !join->is_in_subquery()' failed in create_sort_index
#
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1),(2);
CREATE TABLE t2 (a INT);
INSERT INTO t2 VALUES (2),(3);
EXPLAIN
SELECT t1.a FROM t1 WHERE t1.a IN ( SELECT A.a FROM t1 A UNION SELECT B.a FROM t2 B ORDER BY 1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
2 DEPENDENT SUBQUERY A ALL NULL NULL NULL NULL 2 Using where
3 DEPENDENT UNION B ALL NULL NULL NULL NULL 2 Using where
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
SELECT t1.a FROM t1 WHERE t1.a IN ( SELECT A.a FROM t1 A UNION SELECT B.a FROM t2 B ORDER BY 1);
a
1
2
EXPLAIN
SELECT t1.a FROM t1 WHERE EXISTS (SELECT A.a FROM t1 A UNION SELECT B.a FROM t2 B ORDER BY 1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
2 SUBQUERY A ALL NULL NULL NULL NULL 2
3 UNION B ALL NULL NULL NULL NULL 2
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
SELECT t1.a FROM t1 WHERE EXISTS (SELECT A.a FROM t1 A UNION SELECT B.a FROM t2 B ORDER BY 1);
a
1
2
EXPLAIN
SELECT t1.a FROM t1 WHERE t1.a IN ( SELECT A.a FROM t1 A UNION ALL SELECT B.a FROM t2 B ORDER BY 1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
2 DEPENDENT SUBQUERY A ALL NULL NULL NULL NULL 2 Using where
3 DEPENDENT UNION B ALL NULL NULL NULL NULL 2 Using where
SELECT t1.a FROM t1 WHERE t1.a IN ( SELECT A.a FROM t1 A UNION ALL SELECT B.a FROM t2 B ORDER BY 1);
a
1
2
DROP TABLE t1,t2;
# end of 10.1 tests
#
# MDEV-22852: SIGSEGV in sortlength (optimized builds) # MDEV-22852: SIGSEGV in sortlength (optimized builds)
# #
SET @save_optimizer_switch=@@optimizer_switch; SET @save_optimizer_switch=@@optimizer_switch;
@ -2596,6 +2661,31 @@ SELECT (SELECT DISTINCT t1i.b FROM t1 t1i GROUP BY t1i.a ORDER BY MAX(t1o.b)) FR
0 0
SET @@optimizer_switch= @save_optimizer_switch; SET @@optimizer_switch= @save_optimizer_switch;
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-17066: Bytes lost or Assertion `status_var.local_memory_used == 0 after DELETE
# with subquery with ROLLUP
#
CREATE TABLE t1 (i INT DEFAULT 0, c VARCHAR(2048));
INSERT INTO t1 SELECT 0, seq FROM seq_1_to_6000;
CREATE TABLE t2 (f VARCHAR(2048) DEFAULT '');
INSERT INTO t2 VALUES ('1'),('bar');
EXPLAIN
SELECT * FROM t2 WHERE f IN ( SELECT MAX(c) FROM t1 GROUP BY c WITH ROLLUP);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 6000 Using filesort
SELECT * FROM t2 WHERE f IN ( SELECT MAX(c) FROM t1 GROUP BY c WITH ROLLUP);
f
1
SELECT * FROM t2;
f
1
bar
DELETE FROM t2 WHERE f IN ( SELECT MAX(c) FROM t1 GROUP BY c WITH ROLLUP );
SELECT * FROM t2;
f
bar
DROP TABLE t1, t2;
# End of 10.2 tests # End of 10.2 tests
# #
# MDEV-19134: EXISTS() slower if ORDER BY is defined # MDEV-19134: EXISTS() slower if ORDER BY is defined

View File

@ -7,6 +7,8 @@ drop table if exists t0,t1,t2,t3,t4,t5,t6;
drop view if exists v1, v2; drop view if exists v1, v2;
--enable_warnings --enable_warnings
--source include/have_sequence.inc
set @subselect4_tmp= @@optimizer_switch; set @subselect4_tmp= @@optimizer_switch;
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on'; set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
set optimizer_switch='semijoin_with_cache=on'; set optimizer_switch='semijoin_with_cache=on';
@ -2115,6 +2117,57 @@ EXPLAIN EXTENDED SELECT * FROM t1 where ( t1.l1 < ANY (SELECT MAX(t2.v1) FROM t
SELECT * FROM t1 where ( t1.l1 < ANY (SELECT MAX(t2.v1) FROM t2)); SELECT * FROM t1 where ( t1.l1 < ANY (SELECT MAX(t2.v1) FROM t2));
DROP TABLE t1, t2; DROP TABLE t1, t2;
--echo #
--echo # MDEV-19232: Floating point precision / value comparison problem
--echo #
CREATE TABLE t1 (region varchar(60), area decimal(10,0), population decimal(11,0));
INSERT INTO t1 VALUES ('Central America and the Caribbean',91,11797);
INSERT INTO t1 VALUES ('Central America and the Caribbean',442,66422);
SET @save_optimizer_switch=@@optimizer_switch;
SET optimizer_switch='subquery_cache=on';
SELECT
population, area, population/area,
cast(population/area as DECIMAL(20,9)) FROM t1 LIMIT 1;
SELECT * FROM t1 A
WHERE population/area = (SELECT MAX(population/area) from t1 B where A.region = B.region);
SET optimizer_switch='subquery_cache=off';
SELECT * FROM t1 A
WHERE population/area = (SELECT MAX(population/area) from t1 B where A.region = B.region);
SET @@optimizer_switch= @save_optimizer_switch;
DROP TABLE t1;
--echo #
--echo # MDEV-9513: Assertion `join->group_list || !join->is_in_subquery()' failed in create_sort_index
--echo #
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1),(2);
CREATE TABLE t2 (a INT);
INSERT INTO t2 VALUES (2),(3);
EXPLAIN
SELECT t1.a FROM t1 WHERE t1.a IN ( SELECT A.a FROM t1 A UNION SELECT B.a FROM t2 B ORDER BY 1);
SELECT t1.a FROM t1 WHERE t1.a IN ( SELECT A.a FROM t1 A UNION SELECT B.a FROM t2 B ORDER BY 1);
EXPLAIN
SELECT t1.a FROM t1 WHERE EXISTS (SELECT A.a FROM t1 A UNION SELECT B.a FROM t2 B ORDER BY 1);
SELECT t1.a FROM t1 WHERE EXISTS (SELECT A.a FROM t1 A UNION SELECT B.a FROM t2 B ORDER BY 1);
EXPLAIN
SELECT t1.a FROM t1 WHERE t1.a IN ( SELECT A.a FROM t1 A UNION ALL SELECT B.a FROM t2 B ORDER BY 1);
SELECT t1.a FROM t1 WHERE t1.a IN ( SELECT A.a FROM t1 A UNION ALL SELECT B.a FROM t2 B ORDER BY 1);
DROP TABLE t1,t2;
--echo # end of 10.1 tests
--echo # --echo #
--echo # MDEV-22852: SIGSEGV in sortlength (optimized builds) --echo # MDEV-22852: SIGSEGV in sortlength (optimized builds)
--echo # --echo #
@ -2127,6 +2180,27 @@ SELECT (SELECT DISTINCT t1i.b FROM t1 t1i GROUP BY t1i.a ORDER BY MAX(t1o.b)) FR
SET @@optimizer_switch= @save_optimizer_switch; SET @@optimizer_switch= @save_optimizer_switch;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-17066: Bytes lost or Assertion `status_var.local_memory_used == 0 after DELETE
--echo # with subquery with ROLLUP
--echo #
CREATE TABLE t1 (i INT DEFAULT 0, c VARCHAR(2048));
INSERT INTO t1 SELECT 0, seq FROM seq_1_to_6000;
CREATE TABLE t2 (f VARCHAR(2048) DEFAULT '');
INSERT INTO t2 VALUES ('1'),('bar');
EXPLAIN
SELECT * FROM t2 WHERE f IN ( SELECT MAX(c) FROM t1 GROUP BY c WITH ROLLUP);
SELECT * FROM t2 WHERE f IN ( SELECT MAX(c) FROM t1 GROUP BY c WITH ROLLUP);
SELECT * FROM t2;
DELETE FROM t2 WHERE f IN ( SELECT MAX(c) FROM t1 GROUP BY c WITH ROLLUP );
SELECT * FROM t2;
DROP TABLE t1, t2;
--echo # End of 10.2 tests --echo # End of 10.2 tests
--echo # --echo #

View File

@ -975,4 +975,131 @@ id
DROP PROCEDURE p1; DROP PROCEDURE p1;
DROP TABLE t1; DROP TABLE t1;
# End of 10.0 tests # End of 10.0 tests
#
# MDEV-23221: A subquery causes crash
#
create table t1 (
location_code varchar(10),
country_id varchar(10)
);
insert into t1 values ('HKG', 'HK');
insert into t1 values ('NYC', 'US');
insert into t1 values ('LAX', 'US');
create table t2 (
container_id varchar(10),
cntr_activity_type varchar(10),
cntr_dest varchar(10)
);
insert into t2 values ('AAAA1111', 'VSL', 'NYC');
insert into t2 values ('AAAA1111', 'CUV', 'NYC');
insert into t2 values ('BBBB2222', 'VSL', 'LAX');
insert into t2 values ('BBBB2222', 'XYZ', 'LAX');
# Must not crash or return an error:
select
(select country_id from t1 where location_code = cl1.cntr_dest) as dest_cntry,
(select
max(container_id)
from t2 as cl2
where
cl2.container_id = cl1.container_id and
cl2.cntr_activity_type = 'CUV' and
exists (select location_code
from t1
where
location_code = cl2.cntr_dest and
country_id = dest_cntry)
) as CUV
from
t2 cl1;
dest_cntry CUV
US AAAA1111
US AAAA1111
US NULL
US NULL
prepare s from "select
(select country_id from t1 where location_code = cl1.cntr_dest) as dest_cntry,
(select
max(container_id)
from t2 as cl2
where
cl2.container_id = cl1.container_id and
cl2.cntr_activity_type = 'CUV' and
exists (select location_code
from t1
where
location_code = cl2.cntr_dest and
country_id = dest_cntry)
) as CUV
from
t2 cl1";
execute s;
dest_cntry CUV
US AAAA1111
US AAAA1111
US NULL
US NULL
execute s;
dest_cntry CUV
US AAAA1111
US AAAA1111
US NULL
US NULL
drop table t1,t2;
#
# MDEV-20557: SQL query with duplicate table aliases consistently crashes server
# (Just a testcase)
#
create table t1 (id int, id2 int);
create table t2 (id int, id2 int, a int);
create table t3 (id int);
create table t4 (id int);
select (select 1 from t1 where (exists
(select 1 from t2
where t2.a = (select t4.id from t4 where t4.id = t3.id) and t2.id2 = t1.id2))) dt
from t3;
ERROR 42000: This version of MariaDB doesn't yet support 'SUBQUERY in ROW in left expression of IN/ALL/ANY'
drop table t1,t2,t3,t4;
#
# MDEV-21649: Crash when using nested EXISTS
# (Just a testcase)
#
CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));
CREATE TABLE t2 (id INT NOT NULL AUTO_INCREMENT, ip_id INT, PRIMARY KEY(id));
CREATE TABLE t3 (id INT NOT NULL AUTO_INCREMENT, storage_method_id INT, storage_target_id INT, PRIMARY KEY(id));
SELECT
W0.`id`
FROM
`t1` W0
WHERE (
EXISTS(
SELECT
V0.`id`
FROM
`t2` V0
WHERE (
EXISTS(
SELECT
U0.`id`
FROM
`t2` U0
INNER JOIN `t3` U4 ON (U0.`id` = U4.`storage_target_id`)
WHERE (
U0.`ip_id` = V0.`ip_id`
AND U4.`storage_method_id` = (
SELECT
U5.`storage_method_id`
FROM
`t3` U5
WHERE
U5.`storage_target_id` = V0.`id`
LIMIT
1
)
)
)
)
)
);
id
drop table t1,t2,t3;
set optimizer_switch=default; set optimizer_switch=default;

View File

@ -829,5 +829,117 @@ DROP TABLE t1;
--echo # End of 10.0 tests --echo # End of 10.0 tests
--echo #
--echo # MDEV-23221: A subquery causes crash
--echo #
create table t1 (
location_code varchar(10),
country_id varchar(10)
);
insert into t1 values ('HKG', 'HK');
insert into t1 values ('NYC', 'US');
insert into t1 values ('LAX', 'US');
create table t2 (
container_id varchar(10),
cntr_activity_type varchar(10),
cntr_dest varchar(10)
);
insert into t2 values ('AAAA1111', 'VSL', 'NYC');
insert into t2 values ('AAAA1111', 'CUV', 'NYC');
insert into t2 values ('BBBB2222', 'VSL', 'LAX');
insert into t2 values ('BBBB2222', 'XYZ', 'LAX');
let $query=
select
(select country_id from t1 where location_code = cl1.cntr_dest) as dest_cntry,
(select
max(container_id)
from t2 as cl2
where
cl2.container_id = cl1.container_id and
cl2.cntr_activity_type = 'CUV' and
exists (select location_code
from t1
where
location_code = cl2.cntr_dest and
country_id = dest_cntry)
) as CUV
from
t2 cl1;
--echo # Must not crash or return an error:
eval $query;
eval prepare s from "$query";
execute s;
execute s;
drop table t1,t2;
--echo #
--echo # MDEV-20557: SQL query with duplicate table aliases consistently crashes server
--echo # (Just a testcase)
--echo #
create table t1 (id int, id2 int);
create table t2 (id int, id2 int, a int);
create table t3 (id int);
create table t4 (id int);
--error ER_NOT_SUPPORTED_YET
select (select 1 from t1 where (exists
(select 1 from t2
where t2.a = (select t4.id from t4 where t4.id = t3.id) and t2.id2 = t1.id2))) dt
from t3;
drop table t1,t2,t3,t4;
--echo #
--echo # MDEV-21649: Crash when using nested EXISTS
--echo # (Just a testcase)
--echo #
CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));
CREATE TABLE t2 (id INT NOT NULL AUTO_INCREMENT, ip_id INT, PRIMARY KEY(id));
CREATE TABLE t3 (id INT NOT NULL AUTO_INCREMENT, storage_method_id INT, storage_target_id INT, PRIMARY KEY(id));
SELECT
W0.`id`
FROM
`t1` W0
WHERE (
EXISTS(
SELECT
V0.`id`
FROM
`t2` V0
WHERE (
EXISTS(
SELECT
U0.`id`
FROM
`t2` U0
INNER JOIN `t3` U4 ON (U0.`id` = U4.`storage_target_id`)
WHERE (
U0.`ip_id` = V0.`ip_id`
AND U4.`storage_method_id` = (
SELECT
U5.`storage_method_id`
FROM
`t3` U5
WHERE
U5.`storage_target_id` = V0.`id`
LIMIT
1
)
)
)
)
)
);
drop table t1,t2,t3;
#restore defaults #restore defaults
set optimizer_switch=default; set optimizer_switch=default;

View File

@ -1103,5 +1103,35 @@ t2 CREATE TABLE `t2` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t2,t1; DROP TABLE t2,t1;
# #
# MDEV-23388 Assertion `args[0]->decimals == 0' failed in Item_func_round::fix_arg_int
#
SELECT ROUND(GREATEST('1', CAST('2020-12-12' AS DATE)));
ROUND(GREATEST('1', CAST('2020-12-12' AS DATE)))
20201212
Warnings:
Warning 1292 Truncated incorrect datetime value: '1'
SELECT GREATEST('1', CAST('2020-12-12' AS DATE));
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def GREATEST('1', CAST('2020-12-12' AS DATE)) 10 10 10 Y 128 0 63
GREATEST('1', CAST('2020-12-12' AS DATE))
2020-12-12
Warnings:
Warning 1292 Truncated incorrect datetime value: '1'
CREATE TABLE t1 (c_date DATE NOT NULL, c_int INT NOT NULL);
CREATE TABLE t2 AS SELECT
GREATEST(c_date,c_date),
GREATEST(c_date,c_int),
GREATEST(c_int,c_date)
FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`GREATEST(c_date,c_date)` date NOT NULL,
`GREATEST(c_date,c_int)` date DEFAULT NULL,
`GREATEST(c_int,c_date)` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t2;
DROP TABLE t1;
#
# End of 10.4 tests # End of 10.4 tests
# #

View File

@ -749,6 +749,28 @@ CREATE TABLE t2 AS SELECT FLOOR(a), CEIL(a),ROUND(a),TRUNCATE(a,0) FROM t1;
SHOW CREATE TABLE t2; SHOW CREATE TABLE t2;
DROP TABLE t2,t1; DROP TABLE t2,t1;
--echo #
--echo # MDEV-23388 Assertion `args[0]->decimals == 0' failed in Item_func_round::fix_arg_int
--echo #
SELECT ROUND(GREATEST('1', CAST('2020-12-12' AS DATE)));
--disable_ps_protocol
--enable_metadata
SELECT GREATEST('1', CAST('2020-12-12' AS DATE));
--disable_metadata
--enable_ps_protocol
CREATE TABLE t1 (c_date DATE NOT NULL, c_int INT NOT NULL);
CREATE TABLE t2 AS SELECT
GREATEST(c_date,c_date),
GREATEST(c_date,c_int),
GREATEST(c_int,c_date)
FROM t1;
SHOW CREATE TABLE t2;
DROP TABLE t2;
DROP TABLE t1;
--echo # --echo #
--echo # End of 10.4 tests --echo # End of 10.4 tests
--echo # --echo #

View File

@ -676,6 +676,27 @@ Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 2010e0 Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 2010e0
DROP TABLE t1; DROP TABLE t1;
# #
# MDEV-23282 FLOAT(53,0) badly handles out-of-range values
#
CREATE OR REPLACE TABLE t1 (c1 FLOAT NOT NULL, c2 FLOAT NOT NULL);
INSERT IGNORE INTO t1 VALUES (1e+40, -1e+40);
Warnings:
Warning 1264 Out of range value for column 'c1' at row 1
Warning 1264 Out of range value for column 'c2' at row 1
SELECT c1, c2 FROM t1;
c1 c2
3.40282e38 -3.40282e38
DROP TABLE t1;
CREATE OR REPLACE TABLE t1 (c1 FLOAT(53,0) NOT NULL, c2 FLOAT(53,0) NOT NULL);
INSERT IGNORE INTO t1 VALUES (1e+40, -1e+40);
Warnings:
Warning 1264 Out of range value for column 'c1' at row 1
Warning 1264 Out of range value for column 'c2' at row 1
SELECT c1, c2 FROM t1;
c1 c2
340282346638528860000000000000000000000 -340282346638528860000000000000000000000
DROP TABLE t1;
#
# End of 10.1 tests # End of 10.1 tests
# #
# #
@ -969,5 +990,175 @@ Warnings:
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 1 Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 1
DROP TABLE t1; DROP TABLE t1;
# #
# MDEV-23415 Server crash or Assertion `dec_length <= str_length' failed in Item_func_format::val_str_ascii
#
SELECT FORMAT('0', 50, 'de_DE');
FORMAT('0', 50, 'de_DE')
0,00000000000000000000000000000000000000
SELECT FORMAT(0e0, 50, 'de_DE');
FORMAT(0e0, 50, 'de_DE')
0,00000000000000000000000000000000000000
FOR d IN 0..50
DO
SELECT
d,
FORMAT(123456789.123456789e0, d, 'de_DE') AS fdbl,
FORMAT(123456789.123456789, d, 'de_DE') AS fdec;
END FOR;
$$
d 0
fdbl 123.456.789
fdec 123.456.789
d 1
fdbl 123.456.789,1
fdec 123.456.789,1
d 2
fdbl 123.456.789,12
fdec 123.456.789,12
d 3
fdbl 123.456.789,123
fdec 123.456.789,123
d 4
fdbl 123.456.789,1235
fdec 123.456.789,1235
d 5
fdbl 123.456.789,12346
fdec 123.456.789,12346
d 6
fdbl 123.456.789,123457
fdec 123.456.789,123457
d 7
fdbl 123.456.789,1234568
fdec 123.456.789,1234568
d 8
fdbl 123.456.789,12345680
fdec 123.456.789,12345679
d 9
fdbl 123.456.789,123456790
fdec 123.456.789,123456789
d 10
fdbl 123.456.789,1234567900
fdec 123.456.789,1234567890
d 11
fdbl 123.456.789,12345680000
fdec 123.456.789,12345678900
d 12
fdbl 123.456.789,123456790000
fdec 123.456.789,123456789000
d 13
fdbl 123.456.789,1234568000000
fdec 123.456.789,1234567890000
d 14
fdbl 123.456.789,12345679000000
fdec 123.456.789,12345678900000
d 15
fdbl 123.456.789,123456790000000
fdec 123.456.789,123456789000000
d 16
fdbl 123.456.789,1234567800000000
fdec 123.456.789,1234567890000000
d 17
fdbl 123.456.789,12345679000000000
fdec 123.456.789,12345678900000000
d 18
fdbl 123.456.789,123456790000000000
fdec 123.456.789,123456789000000000
d 19
fdbl 123.456.789,1234567900000000000
fdec 123.456.789,1234567890000000000
d 20
fdbl 123.456.789,12345679000000000000
fdec 123.456.789,12345678900000000000
d 21
fdbl 123.456.789,123456800000000000000
fdec 123.456.789,123456789000000000000
d 22
fdbl 123.456.789,1234567900000000000000
fdec 123.456.789,1234567890000000000000
d 23
fdbl 123.456.789,12345680000000000000000
fdec 123.456.789,12345678900000000000000
d 24
fdbl 123.456.789,123456790000000000000000
fdec 123.456.789,123456789000000000000000
d 25
fdbl 123.456.789,1234567900000000000000000
fdec 123.456.789,1234567890000000000000000
d 26
fdbl 123.456.789,12345679000000000000000000
fdec 123.456.789,12345678900000000000000000
d 27
fdbl 123.456.789,123456780000000000000000000
fdec 123.456.789,123456789000000000000000000
d 28
fdbl 123.456.789,1234567900000000000000000000
fdec 123.456.789,1234567890000000000000000000
d 29
fdbl 123.456.789,12345678000000000000000000000
fdec 123.456.789,12345678900000000000000000000
d 30
fdbl 123.456.789,123456790000000000000000000000
fdec 123.456.789,123456789000000000000000000000
d 31
fdbl 123.456.789,1234567900000000000000000000000
fdec 123.456.789,1234567890000000000000000000000
d 32
fdbl 123.456.789,12345679000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000
d 33
fdbl 123.456.789,123456790000000000000000000000000
fdec 123.456.789,123456789000000000000000000000000
d 34
fdbl 123.456.789,1234567900000000000000000000000000
fdec 123.456.789,1234567890000000000000000000000000
d 35
fdbl 123.456.789,12345679000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000
d 36
fdbl 123.456.789,123456790000000000000000000000000000
fdec 123.456.789,123456789000000000000000000000000000
d 37
fdbl 123.456.789,1234567900000000000000000000000000000
fdec 123.456.789,1234567890000000000000000000000000000
d 38
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 39
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 40
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 41
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 42
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 43
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 44
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 45
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 46
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 47
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 48
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 49
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
d 50
fdbl 123.456.789,12345678000000000000000000000000000000
fdec 123.456.789,12345678900000000000000000000000000000
#
# End of 10.4 tests # End of 10.4 tests
# #

View File

@ -485,6 +485,20 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE a=2010e0 AND a>=2010e0;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-23282 FLOAT(53,0) badly handles out-of-range values
--echo #
CREATE OR REPLACE TABLE t1 (c1 FLOAT NOT NULL, c2 FLOAT NOT NULL);
INSERT IGNORE INTO t1 VALUES (1e+40, -1e+40);
SELECT c1, c2 FROM t1;
DROP TABLE t1;
CREATE OR REPLACE TABLE t1 (c1 FLOAT(53,0) NOT NULL, c2 FLOAT(53,0) NOT NULL);
INSERT IGNORE INTO t1 VALUES (1e+40, -1e+40);
SELECT c1, c2 FROM t1;
DROP TABLE t1;
--echo # --echo #
--echo # End of 10.1 tests --echo # End of 10.1 tests
--echo # --echo #
@ -666,6 +680,26 @@ EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT * FROM t1 WHERE ?+a<=>1e0+a' USING 1e
EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1e0+a<=>?+a' USING 1e0; EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1e0+a<=>?+a' USING 1e0;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-23415 Server crash or Assertion `dec_length <= str_length' failed in Item_func_format::val_str_ascii
--echo #
SELECT FORMAT('0', 50, 'de_DE');
SELECT FORMAT(0e0, 50, 'de_DE');
--vertical_results
DELIMITER $$;
FOR d IN 0..50
DO
SELECT
d,
FORMAT(123456789.123456789e0, d, 'de_DE') AS fdbl,
FORMAT(123456789.123456789, d, 'de_DE') AS fdec;
END FOR;
$$
DELIMITER ;$$
--horizontal_results
--echo # --echo #
--echo # End of 10.4 tests --echo # End of 10.4 tests
--echo # --echo #

View File

@ -178,5 +178,59 @@ c3 18446744073709551615
c4 18446744073709551615 c4 18446744073709551615
c5 18446744073709551615 c5 18446744073709551615
# #
# MDEV-23368 ROUND(18446744073709551615,-11) returns a wrong result
#
SELECT ROUND(0xFFFFFFFFFFFFFFFF,-10), ROUND(0xFFFFFFFFFFFFFFFF,-11);
ROUND(0xFFFFFFFFFFFFFFFF,-10) ROUND(0xFFFFFFFFFFFFFFFF,-11)
18446744070000000000 18446744100000000000
CREATE TABLE t1 AS SELECT ROUND(0xFFFFFFFFFFFFFFFF,-10), ROUND(0xFFFFFFFFFFFFFFFF,-11);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`ROUND(0xFFFFFFFFFFFFFFFF,-10)` decimal(21,0) unsigned NOT NULL,
`ROUND(0xFFFFFFFFFFFFFFFF,-11)` decimal(21,0) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT * FROM t1;
ROUND(0xFFFFFFFFFFFFFFFF,-10) ROUND(0xFFFFFFFFFFFFFFFF,-11)
18446744070000000000 18446744100000000000
DROP TABLE t1;
#
# MDEV-23366 ROUND(18446744073709551615,rand()*0) returns a wrong result
#
SELECT
ROUND(0xFFFFFFFFFFFFFFFF,NULL) AS c1,
ROUND(0xFFFFFFFFFFFFFFFF,rand()*0) AS c2,
ROUND(0xFFFFFFFFFFFFFFFF,-1) AS c3,
ROUND(0xFFFFFFFFFFFFFFFF,-19) AS c4,
ROUND(0xFFFFFFFFFFFFFFFF,rand()*0-19) AS c5;
c1 NULL
c2 18446744073709551615
c3 18446744073709551620
c4 20000000000000000000
c5 20000000000000000000
CREATE OR REPLACE TABLE t1 AS
SELECT
ROUND(0xFFFFFFFFFFFFFFFF,NULL) AS c1,
ROUND(0xFFFFFFFFFFFFFFFF,rand()*0) AS c2,
ROUND(0xFFFFFFFFFFFFFFFF,-1) AS c3,
ROUND(0xFFFFFFFFFFFFFFFF,-19) AS c4,
ROUND(0xFFFFFFFFFFFFFFFF,rand()*0-19) AS c5;
SELECT * FROM t1;
c1 NULL
c2 18446744073709551615
c3 18446744073709551620
c4 20000000000000000000
c5 20000000000000000000
SHOW CREATE TABLE t1;
Table t1
Create Table CREATE TABLE `t1` (
`c1` bigint(20) unsigned DEFAULT NULL,
`c2` decimal(21,0) unsigned NOT NULL,
`c3` decimal(21,0) unsigned NOT NULL,
`c4` decimal(21,0) unsigned NOT NULL,
`c5` decimal(21,0) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
#
# End of 10.4 tests # End of 10.4 tests
# #

View File

@ -46,6 +46,42 @@ DELIMITER ;$$
--horizontal_results --horizontal_results
--echo #
--echo # MDEV-23368 ROUND(18446744073709551615,-11) returns a wrong result
--echo #
SELECT ROUND(0xFFFFFFFFFFFFFFFF,-10), ROUND(0xFFFFFFFFFFFFFFFF,-11);
CREATE TABLE t1 AS SELECT ROUND(0xFFFFFFFFFFFFFFFF,-10), ROUND(0xFFFFFFFFFFFFFFFF,-11);
SHOW CREATE TABLE t1;
SELECT * FROM t1;
DROP TABLE t1;
--echo #
--echo # MDEV-23366 ROUND(18446744073709551615,rand()*0) returns a wrong result
--echo #
--vertical_results
SELECT
ROUND(0xFFFFFFFFFFFFFFFF,NULL) AS c1,
ROUND(0xFFFFFFFFFFFFFFFF,rand()*0) AS c2,
ROUND(0xFFFFFFFFFFFFFFFF,-1) AS c3,
ROUND(0xFFFFFFFFFFFFFFFF,-19) AS c4,
ROUND(0xFFFFFFFFFFFFFFFF,rand()*0-19) AS c5;
CREATE OR REPLACE TABLE t1 AS
SELECT
ROUND(0xFFFFFFFFFFFFFFFF,NULL) AS c1,
ROUND(0xFFFFFFFFFFFFFFFF,rand()*0) AS c2,
ROUND(0xFFFFFFFFFFFFFFFF,-1) AS c3,
ROUND(0xFFFFFFFFFFFFFFFF,-19) AS c4,
ROUND(0xFFFFFFFFFFFFFFFF,rand()*0-19) AS c5;
SELECT * FROM t1;
SHOW CREATE TABLE t1;
DROP TABLE t1;
--horizontal_results
--echo # --echo #
--echo # End of 10.4 tests --echo # End of 10.4 tests
--echo # --echo #

File diff suppressed because it is too large Load Diff

View File

@ -295,6 +295,7 @@ DROP TABLE t1;
--echo # --echo #
--echo # MDEV-23337 Rounding functions create a wrong data type for numeric input --echo # MDEV-23337 Rounding functions create a wrong data type for numeric input
--echo # MDEV-23350 ROUND(bigint_22_or_longer) returns a wrong data type
--echo # --echo #
DELIMITER $$; DELIMITER $$;
@ -304,7 +305,7 @@ BEGIN
EXECUTE IMMEDIATE REPLACE('CREATE TABLE t1 (a TYPE)', 'TYPE', t); EXECUTE IMMEDIATE REPLACE('CREATE TABLE t1 (a TYPE)', 'TYPE', t);
INSERT IGNORE INTO t1 VALUES (-100000000000000000000000000000); INSERT IGNORE INTO t1 VALUES (-100000000000000000000000000000);
INSERT IGNORE INTO t1 VALUES (100000000000000000000000000000); INSERT IGNORE INTO t1 VALUES (100000000000000000000000000000);
CREATE TABLE t2 AS SELECT a, ROUND(a), TRUNCATE(a,0), FLOOR(a), CEILING(a) FROM t1; CREATE TABLE t2 AS SELECT a, ROUND(a), ROUND(a,1), ROUND(a,10), TRUNCATE(a,0), FLOOR(a), CEILING(a) FROM t1;
SHOW CREATE TABLE t2; SHOW CREATE TABLE t2;
SELECT * FROM t2; SELECT * FROM t2;
DROP TABLE t1, t2; DROP TABLE t1, t2;
@ -318,16 +319,122 @@ CALL p1('smallint');
CALL p1('mediumint'); CALL p1('mediumint');
CALL p1('int'); CALL p1('int');
CALL p1('bigint'); CALL p1('bigint');
CALL p1('bigint(20)');
CALL p1('bigint(21)');
CALL p1('bigint(22)');
CALL p1('bigint(23)');
CALL p1('bigint(30)');
CALL p1('tinyint unsigned'); CALL p1('tinyint unsigned');
CALL p1('smallint unsigned'); CALL p1('smallint unsigned');
CALL p1('mediumint unsigned'); CALL p1('mediumint unsigned');
CALL p1('int unsigned'); CALL p1('int unsigned');
CALL p1('bigint unsigned'); CALL p1('bigint unsigned');
CALL p1('bigint(20) unsigned');
CALL p1('bigint(21) unsigned');
CALL p1('bigint(22) unsigned');
CALL p1('bigint(23) unsigned');
CALL p1('bigint(30) unsigned');
--horizontal_results --horizontal_results
DROP PROCEDURE p1; DROP PROCEDURE p1;
--echo #
--echo # MDEV-23368 ROUND(18446744073709551615,-11) returns a wrong result
--echo #
SELECT ROUND(18446744073709551615,-10), ROUND(18446744073709551615,-11);
CREATE TABLE t1 AS SELECT ROUND(18446744073709551615,-10), ROUND(18446744073709551615,-11);
SHOW CREATE TABLE t1;
SELECT * FROM t1;
DROP TABLE t1;
--echo #
--echo # MDEV-23367 ROUND(18446744073709551615,-1) returns a wrong result
--echo #
--vertical_results
SELECT
ROUND(18446744073709551615,-1) AS c01,
ROUND(18446744073709551615,-19) AS c19;
CREATE OR REPLACE TABLE t1 AS
SELECT
ROUND(18446744073709551615,-1) AS c01,
ROUND(18446744073709551615,-19) AS c19;
SELECT * FROM t1;
SHOW CREATE TABLE t1;
DROP TABLE t1;
--horizontal_results
DELIMITER $$;
CREATE PROCEDURE p1(t VARCHAR(64))
BEGIN
SELECT t AS ``;
EXECUTE IMMEDIATE REPLACE('CREATE TABLE t1 (a TYPE)', 'TYPE', t);
INSERT IGNORE INTO t1 VALUES (-100000000000000000000000000000);
INSERT IGNORE INTO t1 VALUES (100000000000000000000000000000);
CREATE TABLE t2 AS SELECT
a, ROUND(a,-1), ROUND(a,-2), ROUND(a,-19), ROUND(a,-20), ROUND(a,-30)
FROM t1
ORDER BY a;
SHOW CREATE TABLE t2;
SELECT * FROM t2;
DROP TABLE t1, t2;
END;
$$
DELIMITER ;$$
--vertical_results
CALL p1('tinyint');
CALL p1('smallint');
CALL p1('mediumint');
CALL p1('int');
CALL p1('bigint');
CALL p1('bigint(20)');
CALL p1('bigint(21)');
CALL p1('bigint(22)');
CALL p1('bigint(23)');
CALL p1('bigint(30)');
CALL p1('tinyint unsigned');
CALL p1('smallint unsigned');
CALL p1('mediumint unsigned');
CALL p1('int unsigned');
CALL p1('bigint unsigned');
CALL p1('bigint(20) unsigned');
CALL p1('bigint(21) unsigned');
CALL p1('bigint(22) unsigned');
CALL p1('bigint(23) unsigned');
CALL p1('bigint(30) unsigned');
--horizontal_results
DROP PROCEDURE p1;
--echo #
--echo # MDEV-23366 ROUND(18446744073709551615,rand()*0) returns a wrong result
--echo #
--vertical_results
SELECT
ROUND(18446744073709551615,NULL) AS c1,
ROUND(18446744073709551615,rand()*0) AS c2,
ROUND(18446744073709551615,rand()*0-19) AS c3;
CREATE OR REPLACE TABLE t1 AS
SELECT
ROUND(18446744073709551615,NULL) AS c1,
ROUND(18446744073709551615,rand()*0) AS c2,
ROUND(18446744073709551615,rand()*0-19) AS c3;
SELECT * FROM t1;
SHOW CREATE TABLE t1;
DROP TABLE t1;
--horizontal_results
--echo # --echo #
--echo # End of 10.4 tests --echo # End of 10.4 tests
--echo # --echo #

View File

@ -1532,11 +1532,8 @@ select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
1.01500000 * 1.01500000 * 0.99500000) 1.01500000 * 1.01500000 * 0.99500000)
0.81298807395367312459230693948000000000 0.81298807395367312459230693948000000000
create table t1 as select 5.05 / 0.014; create table t1 as select 5.05 / 0.014;
Warnings:
Note 1265 Data truncated for column '5.05 / 0.014' at row 1
show warnings; show warnings;
Level Code Message Level Code Message
Note 1265 Data truncated for column '5.05 / 0.014' at row 1
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
@ -1651,8 +1648,6 @@ my_col
0.12345678912345678912345678912345678912 0.12345678912345678912345678912345678912
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 SELECT 1 / .123456789123456789123456789123456789123456789123456789123456789123456789123456789 AS my_col; CREATE TABLE t1 SELECT 1 / .123456789123456789123456789123456789123456789123456789123456789123456789123456789 AS my_col;
Warnings:
Note 1265 Data truncated for column 'my_col' at row 1
DESCRIBE t1; DESCRIBE t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
my_col decimal(65,4) YES NULL my_col decimal(65,4) YES NULL
@ -2345,6 +2340,53 @@ t1 CREATE TABLE `t1` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1; DROP TABLE t1;
# #
# MDEV-23105 Cast number string with many leading zeros to decimal gives unexpected result
#
SELECT CAST(0000000000000000000000000000000000000000000000000000000000000000000000000000000020.01 AS DECIMAL(15,2)) as val;
val
20.01
SET sql_mode='';
CREATE TABLE t1 (a TEXT);
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.0'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.9'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.99'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.994'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.995'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.999'));
CREATE TABLE t2 (a TEXT, d DECIMAL(15,2));
INSERT IGNORE INTO t2 (a,d) SELECT a, a FROM t1;
Warnings:
Note 1265 Data truncated for column 'd' at row 5
Note 1265 Data truncated for column 'd' at row 6
Note 1265 Data truncated for column 'd' at row 7
INSERT IGNORE INTO t2 (a,d) SELECT CONCAT('-',a), CONCAT('-',a) FROM t1;
Warnings:
Note 1265 Data truncated for column 'd' at row 5
Note 1265 Data truncated for column 'd' at row 6
Note 1265 Data truncated for column 'd' at row 7
SELECT d, a FROM t2 ORDER BY d,a;
d a
-2.00 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.995
-2.00 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.999
-1.99 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.99
-1.99 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.994
-1.90 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.9
-1.00 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
-1.00 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.0
1.00 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
1.00 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.0
1.90 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.9
1.99 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.99
1.99 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.994
2.00 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.995
2.00 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.999
DROP TABLE t1, t2;
SET sql_mode=DEFAULT;
#
# End of 10.1 tests
#
#
# Bug#18408499 UNSIGNED BIGINT HIGH VALUES # Bug#18408499 UNSIGNED BIGINT HIGH VALUES
# WRONG NUMERICAL COMPARISON RESULTS # WRONG NUMERICAL COMPARISON RESULTS
# #
@ -2411,3 +2453,323 @@ drop table t1;
# #
# End of 10.2 tests # End of 10.2 tests
# #
#
# Start of 10.4 tests
#
#
# MDEV-23032 FLOOR()/CEIL() incorrectly calculate the precision of a DECIMAL(M,D) column.
#
CREATE PROCEDURE p1(prec INT, scale INT, suffix VARCHAR(32))
BEGIN
EXECUTE IMMEDIATE CONCAT('CREATE TABLE t1 (a decimal(',prec,',',scale,')',suffix,')');
INSERT IGNORE INTO t1 VALUES (-1e100), (+1e100);
CREATE TABLE t2 AS SELECT
a,
FLOOR(a) AS fa,
CEILING(a) AS ca,
LENGTH(FLOOR(a)),
LENGTH(CEILING(a))
FROM t1 ORDER BY a;
SHOW CREATE TABLE t2;
SELECT * FROM t2;
DROP TABLE t2, t1;
END;
$$
CALL p1(38,10,'');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(38,10) DEFAULT NULL,
`fa` decimal(29,0) DEFAULT NULL,
`ca` decimal(29,0) DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a -9999999999999999999999999999.9999999999
fa -10000000000000000000000000000
ca -9999999999999999999999999999
LENGTH(FLOOR(a)) 30
LENGTH(CEILING(a)) 29
a 9999999999999999999999999999.9999999999
fa 9999999999999999999999999999
ca 10000000000000000000000000000
LENGTH(FLOOR(a)) 28
LENGTH(CEILING(a)) 29
CALL p1(28,10,'');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(28,10) DEFAULT NULL,
`fa` decimal(19,0) DEFAULT NULL,
`ca` decimal(19,0) DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a -999999999999999999.9999999999
fa -1000000000000000000
ca -999999999999999999
LENGTH(FLOOR(a)) 20
LENGTH(CEILING(a)) 19
a 999999999999999999.9999999999
fa 999999999999999999
ca 1000000000000000000
LENGTH(FLOOR(a)) 18
LENGTH(CEILING(a)) 19
CALL p1(27,10,'');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(27,10) DEFAULT NULL,
`fa` bigint(19) DEFAULT NULL,
`ca` bigint(19) DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a -99999999999999999.9999999999
fa -100000000000000000
ca -99999999999999999
LENGTH(FLOOR(a)) 19
LENGTH(CEILING(a)) 18
a 99999999999999999.9999999999
fa 99999999999999999
ca 100000000000000000
LENGTH(FLOOR(a)) 17
LENGTH(CEILING(a)) 18
CALL p1(20,10,'');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(20,10) DEFAULT NULL,
`fa` bigint(12) DEFAULT NULL,
`ca` bigint(12) DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a -9999999999.9999999999
fa -10000000000
ca -9999999999
LENGTH(FLOOR(a)) 12
LENGTH(CEILING(a)) 11
a 9999999999.9999999999
fa 9999999999
ca 10000000000
LENGTH(FLOOR(a)) 10
LENGTH(CEILING(a)) 11
CALL p1(19,10,'');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(19,10) DEFAULT NULL,
`fa` bigint(11) DEFAULT NULL,
`ca` bigint(11) DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a -999999999.9999999999
fa -1000000000
ca -999999999
LENGTH(FLOOR(a)) 11
LENGTH(CEILING(a)) 10
a 999999999.9999999999
fa 999999999
ca 1000000000
LENGTH(FLOOR(a)) 9
LENGTH(CEILING(a)) 10
CALL p1(18,10,'');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(18,10) DEFAULT NULL,
`fa` int(10) DEFAULT NULL,
`ca` int(10) DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a -99999999.9999999999
fa -100000000
ca -99999999
LENGTH(FLOOR(a)) 10
LENGTH(CEILING(a)) 9
a 99999999.9999999999
fa 99999999
ca 100000000
LENGTH(FLOOR(a)) 8
LENGTH(CEILING(a)) 9
CALL p1(10,10,'');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(10,10) DEFAULT NULL,
`fa` int(2) DEFAULT NULL,
`ca` int(2) DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a -0.9999999999
fa -1
ca 0
LENGTH(FLOOR(a)) 2
LENGTH(CEILING(a)) 1
a 0.9999999999
fa 0
ca 1
LENGTH(FLOOR(a)) 1
LENGTH(CEILING(a)) 1
CALL p1(38,10,' UNSIGNED');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(38,10) unsigned DEFAULT NULL,
`fa` decimal(28,0) unsigned DEFAULT NULL,
`ca` decimal(29,0) unsigned DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 0.0000000000
fa 0
ca 0
LENGTH(FLOOR(a)) 1
LENGTH(CEILING(a)) 1
a 9999999999999999999999999999.9999999999
fa 9999999999999999999999999999
ca 10000000000000000000000000000
LENGTH(FLOOR(a)) 28
LENGTH(CEILING(a)) 29
CALL p1(28,10,' UNSIGNED');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(28,10) unsigned DEFAULT NULL,
`fa` bigint(18) unsigned DEFAULT NULL,
`ca` decimal(19,0) unsigned DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 0.0000000000
fa 0
ca 0
LENGTH(FLOOR(a)) 1
LENGTH(CEILING(a)) 1
a 999999999999999999.9999999999
fa 999999999999999999
ca 1000000000000000000
LENGTH(FLOOR(a)) 18
LENGTH(CEILING(a)) 19
CALL p1(27,10,' UNSIGNED');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(27,10) unsigned DEFAULT NULL,
`fa` bigint(17) unsigned DEFAULT NULL,
`ca` bigint(18) unsigned DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 0.0000000000
fa 0
ca 0
LENGTH(FLOOR(a)) 1
LENGTH(CEILING(a)) 1
a 99999999999999999.9999999999
fa 99999999999999999
ca 100000000000000000
LENGTH(FLOOR(a)) 17
LENGTH(CEILING(a)) 18
CALL p1(20,10,' UNSIGNED');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(20,10) unsigned DEFAULT NULL,
`fa` bigint(10) unsigned DEFAULT NULL,
`ca` bigint(11) unsigned DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 0.0000000000
fa 0
ca 0
LENGTH(FLOOR(a)) 1
LENGTH(CEILING(a)) 1
a 9999999999.9999999999
fa 9999999999
ca 10000000000
LENGTH(FLOOR(a)) 10
LENGTH(CEILING(a)) 11
CALL p1(19,10,' UNSIGNED');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(19,10) unsigned DEFAULT NULL,
`fa` int(9) unsigned DEFAULT NULL,
`ca` bigint(10) unsigned DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 0.0000000000
fa 0
ca 0
LENGTH(FLOOR(a)) 1
LENGTH(CEILING(a)) 1
a 999999999.9999999999
fa 999999999
ca 1000000000
LENGTH(FLOOR(a)) 9
LENGTH(CEILING(a)) 10
CALL p1(18,10,' UNSIGNED');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(18,10) unsigned DEFAULT NULL,
`fa` int(8) unsigned DEFAULT NULL,
`ca` int(9) unsigned DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 0.0000000000
fa 0
ca 0
LENGTH(FLOOR(a)) 1
LENGTH(CEILING(a)) 1
a 99999999.9999999999
fa 99999999
ca 100000000
LENGTH(FLOOR(a)) 8
LENGTH(CEILING(a)) 9
CALL p1(10,10,' UNSIGNED');
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(10,10) unsigned DEFAULT NULL,
`fa` int(1) unsigned DEFAULT NULL,
`ca` int(1) unsigned DEFAULT NULL,
`LENGTH(FLOOR(a))` int(10) DEFAULT NULL,
`LENGTH(CEILING(a))` int(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
a 0.0000000000
fa 0
ca 0
LENGTH(FLOOR(a)) 1
LENGTH(CEILING(a)) 1
a 0.9999999999
fa 0
ca 1
LENGTH(FLOOR(a)) 1
LENGTH(CEILING(a)) 1
DROP PROCEDURE p1;
#
# MDEV-23118 FORMAT(d1,dec) where dec=0/38 and d1 is DECIMAL(38,38) gives incorrect results
#
CREATE OR REPLACE TABLE t1 (a DECIMAL(38,38));
INSERT INTO t1 VALUES (-0.9999999999999999999999999999999999999), (0.9999999999999999999999999999999999999);
SELECT a, FORMAT(a,0), FORMAT(a,38) FROM t1;
a -0.99999999999999999999999999999999999990
FORMAT(a,0) -1
FORMAT(a,38) -0.99999999999999999999999999999999999990
a 0.99999999999999999999999999999999999990
FORMAT(a,0) 1
FORMAT(a,38) 0.99999999999999999999999999999999999990
CREATE OR REPLACE TABLE t2 AS SELECT a, FORMAT(a,0), FORMAT(a,38) FROM t1;
SELECT * FROM t2;
a -0.99999999999999999999999999999999999990
FORMAT(a,0) -1
FORMAT(a,38) -0.99999999999999999999999999999999999990
a 0.99999999999999999999999999999999999990
FORMAT(a,0) 1
FORMAT(a,38) 0.99999999999999999999999999999999999990
SHOW CREATE TABLE t2;
Table t2
Create Table CREATE TABLE `t2` (
`a` decimal(38,38) DEFAULT NULL,
`FORMAT(a,0)` varchar(2) DEFAULT NULL,
`FORMAT(a,38)` varchar(41) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t2,t1;
#
# End of 10.4 tests
#

View File

@ -1824,6 +1824,32 @@ CREATE TABLE t1 (a DECIMAL(2,1) DEFAULT 0.10001e0);
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-23105 Cast number string with many leading zeros to decimal gives unexpected result
--echo #
SELECT CAST(0000000000000000000000000000000000000000000000000000000000000000000000000000000020.01 AS DECIMAL(15,2)) as val;
SET sql_mode='';
CREATE TABLE t1 (a TEXT);
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.0'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.9'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.99'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.994'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.995'));
INSERT INTO t1 VALUES (CONCAT(REPEAT('0',100),1,'.999'));
CREATE TABLE t2 (a TEXT, d DECIMAL(15,2));
INSERT IGNORE INTO t2 (a,d) SELECT a, a FROM t1;
INSERT IGNORE INTO t2 (a,d) SELECT CONCAT('-',a), CONCAT('-',a) FROM t1;
SELECT d, a FROM t2 ORDER BY d,a;
DROP TABLE t1, t2;
SET sql_mode=DEFAULT;
--echo #
--echo # End of 10.1 tests
--echo #
--echo # --echo #
--echo # Bug#18408499 UNSIGNED BIGINT HIGH VALUES --echo # Bug#18408499 UNSIGNED BIGINT HIGH VALUES
--echo # WRONG NUMERICAL COMPARISON RESULTS --echo # WRONG NUMERICAL COMPARISON RESULTS
@ -1871,3 +1897,70 @@ drop table t1;
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests
--echo # --echo #
--echo #
--echo # Start of 10.4 tests
--echo #
--echo #
--echo # MDEV-23032 FLOOR()/CEIL() incorrectly calculate the precision of a DECIMAL(M,D) column.
--echo #
DELIMITER $$;
CREATE PROCEDURE p1(prec INT, scale INT, suffix VARCHAR(32))
BEGIN
EXECUTE IMMEDIATE CONCAT('CREATE TABLE t1 (a decimal(',prec,',',scale,')',suffix,')');
INSERT IGNORE INTO t1 VALUES (-1e100), (+1e100);
CREATE TABLE t2 AS SELECT
a,
FLOOR(a) AS fa,
CEILING(a) AS ca,
LENGTH(FLOOR(a)),
LENGTH(CEILING(a))
FROM t1 ORDER BY a;
SHOW CREATE TABLE t2;
SELECT * FROM t2;
DROP TABLE t2, t1;
END;
$$
DELIMITER ;$$
--vertical_results
CALL p1(38,10,'');
CALL p1(28,10,'');
CALL p1(27,10,'');
CALL p1(20,10,'');
CALL p1(19,10,'');
CALL p1(18,10,'');
CALL p1(10,10,'');
CALL p1(38,10,' UNSIGNED');
CALL p1(28,10,' UNSIGNED');
CALL p1(27,10,' UNSIGNED');
CALL p1(20,10,' UNSIGNED');
CALL p1(19,10,' UNSIGNED');
CALL p1(18,10,' UNSIGNED');
CALL p1(10,10,' UNSIGNED');
--horizontal_results
DROP PROCEDURE p1;
--echo #
--echo # MDEV-23118 FORMAT(d1,dec) where dec=0/38 and d1 is DECIMAL(38,38) gives incorrect results
--echo #
--vertical_results
CREATE OR REPLACE TABLE t1 (a DECIMAL(38,38));
INSERT INTO t1 VALUES (-0.9999999999999999999999999999999999999), (0.9999999999999999999999999999999999999);
SELECT a, FORMAT(a,0), FORMAT(a,38) FROM t1;
CREATE OR REPLACE TABLE t2 AS SELECT a, FORMAT(a,0), FORMAT(a,38) FROM t1;
SELECT * FROM t2;
SHOW CREATE TABLE t2;
DROP TABLE t2,t1;
--horizontal_results
--echo #
--echo # End of 10.4 tests
--echo #

View File

@ -91,8 +91,6 @@ DROP INDEX test ON t1;
insert into t1 values (10, 1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one'); insert into t1 values (10, 1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one');
insert into t1 values (NULL,2,2,2,2,2,2,2,2,2,2,2,2,2,NULL,NULL,NULL,NULL,NULL,NULL,2,2,'two','two,one'); insert into t1 values (NULL,2,2,2,2,2,2,2,2,2,2,2,2,2,NULL,NULL,NULL,NULL,NULL,NULL,2,2,'two','two,one');
insert ignore into t1 values (0,1/3,3,3,3,3,3,3,3,3,3,3,3,3,NULL,'19970303','10:10:10','19970303101010','','','','3',3,3); insert ignore into t1 values (0,1/3,3,3,3,3,3,3,3,3,3,3,3,3,NULL,'19970303','10:10:10','19970303101010','','','','3',3,3);
Warnings:
Warning 1265 Data truncated for column 'string' at row 1
insert ignore into t1 values (0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,NULL,19970807,080706,19970403090807,-1,-1,-1,'-1',-1,-1); insert ignore into t1 values (0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,NULL,19970807,080706,19970403090807,-1,-1,-1,'-1',-1,-1);
Warnings: Warnings:
Warning 1264 Out of range value for column 'utiny' at row 1 Warning 1264 Out of range value for column 'utiny' at row 1
@ -130,7 +128,7 @@ select auto,string,tiny,short,medium,long_int,longlong,real_float,real_double,ut
auto string tiny short medium long_int longlong real_float real_double utiny ushort umedium ulong ulonglong mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000) date_field time_field date_time blob_col tinyblob_col mediumblob_col longblob_col auto string tiny short medium long_int longlong real_float real_double utiny ushort umedium ulong ulonglong mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000) date_field time_field date_time blob_col tinyblob_col mediumblob_col longblob_col
10 1 1 1 1 1 1 1.0 1.0000 1 00001 1 1 1 0 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1 1 1 10 1 1 1 1 1 1 1.0 1.0000 1 00001 1 1 1 0 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1 1 1
11 2 2 2 2 2 2 2.0 2.0000 2 00002 2 2 2 0 NULL NULL NULL NULL NULL 2 2 11 2 2 2 2 2 2 2.0 2.0000 2 00002 2 2 2 0 NULL NULL NULL NULL NULL 2 2
12 0.33333333 3 3 3 3 3 3.0 3.0000 3 00003 3 3 3 0 1997-03-03 10:10:10 1997-03-03 10:10:10 3 12 0.3333 3 3 3 3 3 3.0 3.0000 3 00003 3 3 3 0 1997-03-03 10:10:10 1997-03-03 10:10:10 3
13 -1 -1 -1 -1 -1 -1 -1.0 -1.0000 0 00000 0 0 0 0 1997-08-07 08:07:06 1997-04-03 09:08:07 -1 -1 -1 -1 13 -1 -1 -1 -1 -1 -1 -1.0 -1.0000 0 00000 0 0 0 0 1997-08-07 08:07:06 1997-04-03 09:08:07 -1 -1 -1 -1
14 -429496729 -128 -32768 -8388608 -2147483648 -4294967295 -4294967296.0 -4294967295.0000 0 00000 0 0 0 0 0000-00-00 00:00:00 0000-00-00 00:00:00 -4294967295 -4294967295 -4294967295 -4294967295 14 -429496729 -128 -32768 -8388608 -2147483648 -4294967295 -4294967296.0 -4294967295.0000 0 00000 0 0 0 0 0000-00-00 00:00:00 0000-00-00 00:00:00 -4294967295 -4294967295 -4294967295 -4294967295
15 4294967295 127 32767 8388607 2147483647 4294967295 4294967296.0 4294967295.0000 255 65535 16777215 4294967295 4294967295 0 0000-00-00 00:00:00 0000-00-00 00:00:00 4294967295 4294967295 4294967295 4294967295 15 4294967295 127 32767 8388607 2147483647 4294967295 4294967296.0 4294967295.0000 255 65535 16777215 4294967295 4294967295 0 0000-00-00 00:00:00 0000-00-00 00:00:00 4294967295 4294967295 4294967295 4294967295
@ -182,7 +180,7 @@ Warning 1265 Data truncated for column 'new_field' at row 7
select * from t2; select * from t2;
auto string mediumblob_col new_field auto string mediumblob_col new_field
1 2 2 ne 1 2 2 ne
2 0.33333333 ne 2 0.3333 ne
3 -1 -1 ne 3 -1 -1 ne
4 -429496729 -4294967295 ne 4 -429496729 -4294967295 ne
5 4294967295 4294967295 ne 5 4294967295 4294967295 ne

View File

@ -3851,6 +3851,22 @@ ERROR 42000: Too big scale 56 specified for 'rank() over w1'. Maximum is 38
SELECT cast((rank() over w1) as decimal (53,30)); SELECT cast((rank() over w1) as decimal (53,30));
ERROR HY000: Window specification with name 'w1' is not defined ERROR HY000: Window specification with name 'w1' is not defined
# #
# MDEV-15180: server crashed with NTH_VALUE()
#
CREATE TABLE t1 (i1 int, a int);
INSERT INTO t1 VALUES (1, 1), (2, 2),(3, 3);
CREATE TABLE t2 (i2 int);
INSERT INTO t2 VALUES (1),(2),(5),(1),(7),(4),(3);
CREATE VIEW v1 AS (SELECT * FROM t1,t2 WHERE t1.i1=t2.i2) ;
SELECT NTH_VALUE(i1, i1) OVER (PARTITION BY i1) FROM v1;
NTH_VALUE(i1, i1) OVER (PARTITION BY i1)
1
1
NULL
NULL
DROP VIEW v1;
DROP TABLE t1,t2;
#
# End of 10.2 tests # End of 10.2 tests
# #
# #

View File

@ -2505,6 +2505,22 @@ SELECT cast((rank() over w1) as decimal (53,56));
--error ER_WRONG_WINDOW_SPEC_NAME --error ER_WRONG_WINDOW_SPEC_NAME
SELECT cast((rank() over w1) as decimal (53,30)); SELECT cast((rank() over w1) as decimal (53,30));
--echo #
--echo # MDEV-15180: server crashed with NTH_VALUE()
--echo #
CREATE TABLE t1 (i1 int, a int);
INSERT INTO t1 VALUES (1, 1), (2, 2),(3, 3);
CREATE TABLE t2 (i2 int);
INSERT INTO t2 VALUES (1),(2),(5),(1),(7),(4),(3);
CREATE VIEW v1 AS (SELECT * FROM t1,t2 WHERE t1.i1=t2.i2) ;
SELECT NTH_VALUE(i1, i1) OVER (PARTITION BY i1) FROM v1;
DROP VIEW v1;
DROP TABLE t1,t2;
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests
--echo # --echo #

View File

@ -179,6 +179,7 @@ my @DEFAULT_SUITES= qw(
csv- csv-
compat/oracle- compat/oracle-
compat/mssql- compat/mssql-
compat/maxdb-
encryption- encryption-
federated- federated-
funcs_1- funcs_1-
@ -691,8 +692,7 @@ sub run_test_server ($$$) {
My::CoreDump->show($core_file, $exe_mysqld, $opt_parallel); My::CoreDump->show($core_file, $exe_mysqld, $opt_parallel);
# Limit number of core files saved # Limit number of core files saved
if ($opt_max_save_core > 0 && if ($num_saved_cores >= $opt_max_save_core)
$num_saved_cores >= $opt_max_save_core)
{ {
mtr_report(" - deleting it, already saved", mtr_report(" - deleting it, already saved",
"$opt_max_save_core"); "$opt_max_save_core");
@ -708,8 +708,7 @@ sub run_test_server ($$$) {
}, },
$worker_savedir); $worker_savedir);
if ($opt_max_save_datadir > 0 && if ($num_saved_datadir >= $opt_max_save_datadir)
$num_saved_datadir >= $opt_max_save_datadir)
{ {
mtr_report(" - skipping '$worker_savedir/'"); mtr_report(" - skipping '$worker_savedir/'");
rmtree($worker_savedir); rmtree($worker_savedir);
@ -718,9 +717,9 @@ sub run_test_server ($$$) {
{ {
mtr_report(" - saving '$worker_savedir/' to '$savedir/'"); mtr_report(" - saving '$worker_savedir/' to '$savedir/'");
rename($worker_savedir, $savedir); rename($worker_savedir, $savedir);
$num_saved_datadir++;
} }
resfile_print_test(); resfile_print_test();
$num_saved_datadir++;
$num_failed_test++ unless ($result->{retries} || $num_failed_test++ unless ($result->{retries} ||
$result->{exp_fail}); $result->{exp_fail});
@ -1277,6 +1276,17 @@ sub command_line_setup {
report_option('verbose', $opt_verbose); report_option('verbose', $opt_verbose);
} }
# Negative values aren't meaningful on integer options
foreach(grep(/=i$/, keys %options))
{
if (defined ${$options{$_}} &&
do { no warnings "numeric"; int ${$options{$_}} < 0})
{
my $v= (split /=/)[0];
die("$v doesn't accept a negative value:");
}
}
# Find the absolute path to the test directory # Find the absolute path to the test directory
$glob_mysql_test_dir= cwd(); $glob_mysql_test_dir= cwd();
if ($glob_mysql_test_dir =~ / /) if ($glob_mysql_test_dir =~ / /)
@ -6458,12 +6468,12 @@ Options for debugging the product
test(s) test(s)
max-save-core Limit the number of core files saved (to avoid filling max-save-core Limit the number of core files saved (to avoid filling
up disks for heavily crashing server). Defaults to up disks for heavily crashing server). Defaults to
$opt_max_save_core, set to 0 for no limit. Set $opt_max_save_core. Set its default with
it's default with MTR_MAX_SAVE_CORE MTR_MAX_SAVE_CORE
max-save-datadir Limit the number of datadir saved (to avoid filling max-save-datadir Limit the number of datadir saved (to avoid filling
up disks for heavily crashing server). Defaults to up disks for heavily crashing server). Defaults to
$opt_max_save_datadir, set to 0 for no limit. Set $opt_max_save_datadir. Set its default with
it's default with MTR_MAX_SAVE_DATADIR MTR_MAX_SAVE_DATADIR
max-test-fail Limit the number of test failures before aborting max-test-fail Limit the number of test failures before aborting
the current test run. Defaults to the current test run. Defaults to
$opt_max_test_fail, set to 0 for no limit. Set $opt_max_test_fail, set to 0 for no limit. Set

View File

@ -0,0 +1,65 @@
include/master-slave.inc
[connection master]
#
# MDEV-19632 Replication aborts with ER_SLAVE_CONVERSION_FAILED upon CREATE ... SELECT in ORACLE mode
#
SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:00:00');
SET sql_mode=DEFAULT;
CREATE TABLE t1 (a TIMESTAMP);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES ('2001-01-01 10:20:30');
SET sql_mode=MAXDB;
CREATE TABLE t2 SELECT * FROM t1;
SET timestamp=DEFAULT;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a TIMESTAMP)
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (NULL)
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES ('2001-01-01 10:20:30')
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; CREATE TABLE "t2" (
"a" mariadb_schema.timestamp NOT NULL DEFAULT current_timestamp()
)
master-bin.000001 # Annotate_rows # # CREATE TABLE t2 SELECT * FROM t1
master-bin.000001 # Table_map # # table_id: # (test.t2)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
connection slave;
SELECT * FROM t1;
a
2001-01-01 10:00:00
2001-01-01 10:20:30
SET sql_mode=DEFAULT;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SET sql_mode=MAXDB;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" mariadb_schema.timestamp NOT NULL DEFAULT current_timestamp()
)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE "t2" (
"a" mariadb_schema.timestamp NOT NULL DEFAULT current_timestamp()
)
connection master;
DROP TABLE t1, t2;
include/rpl_end.inc

View File

@ -0,0 +1,34 @@
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--echo #
--echo # MDEV-19632 Replication aborts with ER_SLAVE_CONVERSION_FAILED upon CREATE ... SELECT in ORACLE mode
--echo #
SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:00:00');
SET sql_mode=DEFAULT;
CREATE TABLE t1 (a TIMESTAMP);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES ('2001-01-01 10:20:30');
SET sql_mode=MAXDB;
CREATE TABLE t2 SELECT * FROM t1;
SET timestamp=DEFAULT;
--let $binlog_file = LAST
source include/show_binlog_events.inc;
--sync_slave_with_master
SELECT * FROM t1;
SET sql_mode=DEFAULT;
SHOW CREATE TABLE t1;
SHOW CREATE TABLE t2;
SET sql_mode=MAXDB;
SHOW CREATE TABLE t1;
SHOW CREATE TABLE t2;
--connection master
DROP TABLE t1, t2;
--source include/rpl_end.inc

View File

@ -0,0 +1,53 @@
#
# MDEV-19632 Replication aborts with ER_SLAVE_CONVERSION_FAILED upon CREATE ... SELECT in ORACLE mode
#
SET sql_mode=DEFAULT;
CREATE TABLE t1 (
def_timestamp TIMESTAMP,
mdb_timestamp mariadb_schema.TIMESTAMP,
ora_timestamp oracle_schema.TIMESTAMP,
max_timestamp maxdb_schema.TIMESTAMP
);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`def_timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`mdb_timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`ora_timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`max_timestamp` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SET sql_mode=MAXDB;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"def_timestamp" mariadb_schema.timestamp NOT NULL DEFAULT current_timestamp(),
"mdb_timestamp" mariadb_schema.timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
"ora_timestamp" mariadb_schema.timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
"max_timestamp" datetime DEFAULT NULL
)
DROP TABLE t1;
SET sql_mode=MAXDB;
CREATE TABLE t1 (
def_timestamp TIMESTAMP,
mdb_timestamp mariadb_schema.TIMESTAMP,
ora_timestamp oracle_schema.TIMESTAMP,
max_timestamp maxdb_schema.TIMESTAMP
);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"def_timestamp" datetime DEFAULT NULL,
"mdb_timestamp" mariadb_schema.timestamp NOT NULL DEFAULT current_timestamp(),
"ora_timestamp" mariadb_schema.timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
"max_timestamp" datetime DEFAULT NULL
)
SET sql_mode=DEFAULT;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`def_timestamp` datetime DEFAULT NULL,
`mdb_timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`ora_timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`max_timestamp` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;

View File

@ -0,0 +1,29 @@
--echo #
--echo # MDEV-19632 Replication aborts with ER_SLAVE_CONVERSION_FAILED upon CREATE ... SELECT in ORACLE mode
--echo #
SET sql_mode=DEFAULT;
CREATE TABLE t1 (
def_timestamp TIMESTAMP,
mdb_timestamp mariadb_schema.TIMESTAMP,
ora_timestamp oracle_schema.TIMESTAMP,
max_timestamp maxdb_schema.TIMESTAMP
);
SHOW CREATE TABLE t1;
SET sql_mode=MAXDB;
SHOW CREATE TABLE t1;
DROP TABLE t1;
SET sql_mode=MAXDB;
CREATE TABLE t1 (
def_timestamp TIMESTAMP,
mdb_timestamp mariadb_schema.TIMESTAMP,
ora_timestamp oracle_schema.TIMESTAMP,
max_timestamp maxdb_schema.TIMESTAMP
);
SHOW CREATE TABLE t1;
SET sql_mode=DEFAULT;
SHOW CREATE TABLE t1;
DROP TABLE t1;

View File

@ -0,0 +1,86 @@
include/master-slave.inc
[connection master]
SET SQL_MODE=DEFAULT;
CREATE TABLE t1 (a DATE);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES ('2001-01-01');
SET SQL_MODE= ORACLE;
CREATE TABLE t2 SELECT * FROM t1;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a DATE)
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (NULL)
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES ('2001-01-01')
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; CREATE TABLE "t2" (
"a" mariadb_schema.date DEFAULT NULL
)
master-bin.000001 # Annotate_rows # # CREATE TABLE t2 SELECT * FROM t1
master-bin.000001 # Table_map # # table_id: # (test.t2)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
SET SQL_MODE= DEFAULT;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SET SQL_MODE= ORACLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" mariadb_schema.date DEFAULT NULL
)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE "t2" (
"a" mariadb_schema.date DEFAULT NULL
)
connection slave;
SELECT * FROM t1;
a
NULL
2001-01-01
SELECT * FROM t2;
a
NULL
2001-01-01
SET SQL_MODE= DEFAULT;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SET SQL_MODE= ORACLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" mariadb_schema.date DEFAULT NULL
)
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE "t2" (
"a" mariadb_schema.date DEFAULT NULL
)
connection master;
DROP TABLE t1, t2;
include/rpl_end.inc

View File

@ -6,3 +6,150 @@ t1 CREATE TABLE "t1" (
"a" datetime DEFAULT NULL "a" datetime DEFAULT NULL
) )
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-19632 Replication aborts with ER_SLAVE_CONVERSION_FAILED upon CREATE ... SELECT in ORACLE mode
#
SET sql_mode=DEFAULT;
CREATE TABLE t1 (a unknown.DATE);
ERROR HY000: Unknown data type: 'unknown.date'
SET sql_mode=DEFAULT;
CREATE TABLE t1 (
def_date DATE,
mdb_date mariadb_schema.DATE,
ora_date oracle_schema.DATE,
max_date maxdb_schema.DATE
);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`def_date` date DEFAULT NULL,
`mdb_date` date DEFAULT NULL,
`ora_date` datetime DEFAULT NULL,
`max_date` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SET sql_mode=ORACLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"def_date" mariadb_schema.date DEFAULT NULL,
"mdb_date" mariadb_schema.date DEFAULT NULL,
"ora_date" datetime DEFAULT NULL,
"max_date" mariadb_schema.date DEFAULT NULL
)
DROP TABLE t1;
SET sql_mode=ORACLE;
CREATE TABLE t1 (
def_date DATE,
mdb_date mariadb_schema.DATE,
ora_date oracle_schema.DATE,
max_date maxdb_schema.DATE
);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"def_date" datetime DEFAULT NULL,
"mdb_date" mariadb_schema.date DEFAULT NULL,
"ora_date" datetime DEFAULT NULL,
"max_date" mariadb_schema.date DEFAULT NULL
)
SET sql_mode=DEFAULT;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`def_date` datetime DEFAULT NULL,
`mdb_date` date DEFAULT NULL,
`ora_date` datetime DEFAULT NULL,
`max_date` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
#
# ALTER..MODIFY and ALTER..CHANGE understand qualifiers
#
SET sql_mode=DEFAULT;
CREATE TABLE t1 (a DATE);
INSERT INTO t1 VALUES ('2001-01-01');
SET sql_mode=ORACLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" mariadb_schema.date DEFAULT NULL
)
SELECT * FROM t1;
a
2001-01-01
ALTER TABLE t1 MODIFY a DATE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" datetime DEFAULT NULL
)
SELECT * FROM t1;
a
2001-01-01 00:00:00
ALTER TABLE t1 MODIFY a mariadb_schema.DATE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" mariadb_schema.date DEFAULT NULL
)
SELECT * FROM t1;
a
2001-01-01
ALTER TABLE t1 MODIFY a oracle_schema.DATE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" datetime DEFAULT NULL
)
SELECT * FROM t1;
a
2001-01-01 00:00:00
ALTER TABLE t1 CHANGE a b mariadb_schema.DATE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"b" mariadb_schema.date DEFAULT NULL
)
SELECT * FROM t1;
b
2001-01-01
ALTER TABLE t1 CHANGE b a oracle_schema.DATE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" datetime DEFAULT NULL
)
SELECT * FROM t1;
a
2001-01-01 00:00:00
DROP TABLE t1;
#
# Qualified syntax is not supported yet in SP
# See MDEV-23353 Qualified data types in SP
#
SET sql_mode=ORACLE;
CREATE FUNCTION f1() RETURN mariadb_schema.DATE AS
BEGIN
RETURN CURRENT_DATE;
END;
$$
ERROR HY000: Unknown data type: 'mariadb_schema'
CREATE PROCEDURE p1(a mariadb_schema.DATE) AS
BEGIN
NULL;
END;
$$
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') AS
BEGIN
NULL;
END' at line 1
CREATE PROCEDURE p1() AS
a mariadb_schema.DATE;
BEGIN
NULL;
END;
$$
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ';
BEGIN
NULL;
END' at line 2

View File

@ -0,0 +1,38 @@
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
SET SQL_MODE=DEFAULT;
CREATE TABLE t1 (a DATE);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES ('2001-01-01');
SET SQL_MODE= ORACLE;
CREATE TABLE t2 SELECT * FROM t1;
--let $binlog_file = LAST
source include/show_binlog_events.inc;
SET SQL_MODE= DEFAULT;
SHOW CREATE TABLE t1;
SHOW CREATE TABLE t2;
SET SQL_MODE= ORACLE;
SHOW CREATE TABLE t1;
SHOW CREATE TABLE t2;
--sync_slave_with_master
SELECT * FROM t1;
SELECT * FROM t2;
SET SQL_MODE= DEFAULT;
SHOW CREATE TABLE t1;
SHOW CREATE TABLE t2;
SET SQL_MODE= ORACLE;
SHOW CREATE TABLE t1;
SHOW CREATE TABLE t2;
# Cleanup
--connection master
DROP TABLE t1, t2;
--source include/rpl_end.inc

View File

@ -2,3 +2,100 @@ SET sql_mode=ORACLE;
CREATE TABLE t1 (a DATE); CREATE TABLE t1 (a DATE);
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-19632 Replication aborts with ER_SLAVE_CONVERSION_FAILED upon CREATE ... SELECT in ORACLE mode
--echo #
SET sql_mode=DEFAULT;
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a unknown.DATE);
SET sql_mode=DEFAULT;
CREATE TABLE t1 (
def_date DATE,
mdb_date mariadb_schema.DATE,
ora_date oracle_schema.DATE,
max_date maxdb_schema.DATE
);
SHOW CREATE TABLE t1;
SET sql_mode=ORACLE;
SHOW CREATE TABLE t1;
DROP TABLE t1;
SET sql_mode=ORACLE;
CREATE TABLE t1 (
def_date DATE,
mdb_date mariadb_schema.DATE,
ora_date oracle_schema.DATE,
max_date maxdb_schema.DATE
);
SHOW CREATE TABLE t1;
SET sql_mode=DEFAULT;
SHOW CREATE TABLE t1;
DROP TABLE t1;
--echo #
--echo # ALTER..MODIFY and ALTER..CHANGE understand qualifiers
--echo #
SET sql_mode=DEFAULT;
CREATE TABLE t1 (a DATE);
INSERT INTO t1 VALUES ('2001-01-01');
SET sql_mode=ORACLE;
SHOW CREATE TABLE t1;
SELECT * FROM t1;
ALTER TABLE t1 MODIFY a DATE;
SHOW CREATE TABLE t1;
SELECT * FROM t1;
ALTER TABLE t1 MODIFY a mariadb_schema.DATE;
SHOW CREATE TABLE t1;
SELECT * FROM t1;
ALTER TABLE t1 MODIFY a oracle_schema.DATE;
SHOW CREATE TABLE t1;
SELECT * FROM t1;
ALTER TABLE t1 CHANGE a b mariadb_schema.DATE;
SHOW CREATE TABLE t1;
SELECT * FROM t1;
ALTER TABLE t1 CHANGE b a oracle_schema.DATE;
SHOW CREATE TABLE t1;
SELECT * FROM t1;
DROP TABLE t1;
--echo #
--echo # Qualified syntax is not supported yet in SP
--echo # See MDEV-23353 Qualified data types in SP
--echo #
SET sql_mode=ORACLE;
DELIMITER $$;
--error ER_UNKNOWN_DATA_TYPE
CREATE FUNCTION f1() RETURN mariadb_schema.DATE AS
BEGIN
RETURN CURRENT_DATE;
END;
$$
--error ER_PARSE_ERROR
CREATE PROCEDURE p1(a mariadb_schema.DATE) AS
BEGIN
NULL;
END;
$$
--error ER_PARSE_ERROR
CREATE PROCEDURE p1() AS
a mariadb_schema.DATE;
BEGIN
NULL;
END;
$$
DELIMITER ;$$

View File

@ -1896,9 +1896,13 @@ Warnings:
Warning 1264 Out of range value for column 'c1' at row 3 Warning 1264 Out of range value for column 'c1' at row 3
INSERT IGNORE INTO t5 VALUES('1e+52','-1e+52','1e+52',5),('1e-52','-1e-52','1e-52',6); INSERT IGNORE INTO t5 VALUES('1e+52','-1e+52','1e+52',5),('1e-52','-1e-52','1e-52',6);
Warnings: Warnings:
Warning 1264 Out of range value for column 'c1' at row 1
Warning 1264 Out of range value for column 'c2' at row 1
Warning 1264 Out of range value for column 'c3' at row 1 Warning 1264 Out of range value for column 'c3' at row 1
INSERT IGNORE INTO t5 VALUES('1e+53','-1e+53','1e+53',7),('1e-53','-1e-53','1e-53',8); INSERT IGNORE INTO t5 VALUES('1e+53','-1e+53','1e+53',7),('1e-53','-1e-53','1e-53',8);
Warnings: Warnings:
Warning 1264 Out of range value for column 'c1' at row 1
Warning 1264 Out of range value for column 'c2' at row 1
Warning 1264 Out of range value for column 'c3' at row 1 Warning 1264 Out of range value for column 'c3' at row 1
SELECT * FROM t5; SELECT * FROM t5;
c1 c2 c3 c4 c1 c2 c3 c4

View File

@ -15,6 +15,7 @@ GCF-939 : MDEV-21520 galera.GCF-939
MDEV-16509 : MDEV-21523 galera.MDEV-16509 MDEV-16509 : MDEV-21523 galera.MDEV-16509
MDEV-20225 : MDEV-20886 galera.MDEV-20225 MDEV-20225 : MDEV-20886 galera.MDEV-20225
MW-286 : MDEV-18464 Killing thread can cause mutex deadlock if done concurrently with Galera/replication victim kill MW-286 : MDEV-18464 Killing thread can cause mutex deadlock if done concurrently with Galera/replication victim kill
MW-328A : MDEV-22666 galera.MW-328A MTR failed: "Semaphore wait has lasted > 600 seconds" and do not release port 16002
MW-329 : MDEV-19962 Galera test failure on MW-329 MW-329 : MDEV-19962 Galera test failure on MW-329
galera.galera_defaults : MDEV-21494 Galera test sporadic failure on galera.galera_defaults galera.galera_defaults : MDEV-21494 Galera test sporadic failure on galera.galera_defaults
galera_as_slave_replication_bundle : MDEV-15785 OPTION_GTID_BEGIN is set in Gtid_log_event::do_apply_event() galera_as_slave_replication_bundle : MDEV-15785 OPTION_GTID_BEGIN is set in Gtid_log_event::do_apply_event()
@ -46,3 +47,4 @@ partition : MDEV-19958 Galera test failure on galera.partition
query_cache: MDEV-15805 Test failure on galera.query_cache query_cache: MDEV-15805 Test failure on galera.query_cache
sql_log_bin : MDEV-21491 galera.sql_log_bin sql_log_bin : MDEV-21491 galera.sql_log_bin
versioning_trx_id : MDEV-18590 galera.versioning_trx_id versioning_trx_id : MDEV-18590 galera.versioning_trx_id
MW-328A : MDEV-22666?

View File

@ -6,24 +6,41 @@ connection node_1;
call mtr.add_suppression("WSREP: Trying to continue unpaused monitor"); call mtr.add_suppression("WSREP: Trying to continue unpaused monitor");
CREATE TABLE t1 ENGINE=InnoDB select 1 as a, 1 as b union select 2, 2; CREATE TABLE t1 ENGINE=InnoDB select 1 as a, 1 as b union select 2, 2;
ALTER TABLE t1 add primary key(a); ALTER TABLE t1 add primary key(a);
CREATE PROCEDURE p1() CREATE PROCEDURE p1(repeat_count INT)
BEGIN BEGIN
DECLARE current_num int;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback;
WHILE 1 DO SET current_num = 0;
WHILE current_num < repeat_count DO
start transaction; start transaction;
update t1 set b=connection_id() where a=1; update t1 set b=connection_id() where a=1;
commit; commit;
SET current_num = current_num + 1;
END WHILE; END WHILE;
END| END|
connection node_2;
connect node_1_p1, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1_p1, 127.0.0.1, root, , test, $NODE_MYPORT_1;
call p1; SET SESSION wsrep_sync_wait=0;
call p1(1000);
connect node_1_p2, 127.0.0.1, root, , test, $NODE_MYPORT_1; connect node_1_p2, 127.0.0.1, root, , test, $NODE_MYPORT_1;
call p1; SET SESSION wsrep_sync_wait=0;
call p1(1000);
connect node_2_p1, 127.0.0.1, root, , test, $NODE_MYPORT_2; connect node_2_p1, 127.0.0.1, root, , test, $NODE_MYPORT_2;
call p1; SET SESSION wsrep_sync_wait=0;
call p1(1000);
connect node_2_p2, 127.0.0.1, root, , test, $NODE_MYPORT_2; connect node_2_p2, 127.0.0.1, root, , test, $NODE_MYPORT_2;
call p1; SET SESSION wsrep_sync_wait=0;
call p1(1000);
connection node_1; connection node_1;
checking error log for 'BF lock wait long' message for 10 times every 10 seconds ... checking error log for 'BF lock wait long' message for 10 times every 10 seconds ...
connection node_1_p1;
connection node_1_p2;
connection node_2_p1;
connection node_2_p2;
connection node_1;
drop table t1; drop table t1;
drop procedure p1; drop procedure p1;
disconnect node_1_p1;
disconnect node_1_p2;
disconnect node_2_p1;
disconnect node_2_p2;

View File

@ -13,27 +13,39 @@ ALTER TABLE t1 add primary key(a);
DELIMITER |; DELIMITER |;
CREATE PROCEDURE p1() CREATE PROCEDURE p1(repeat_count INT)
BEGIN BEGIN
DECLARE current_num int;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback;
WHILE 1 DO SET current_num = 0;
WHILE current_num < repeat_count DO
start transaction; start transaction;
update t1 set b=connection_id() where a=1; update t1 set b=connection_id() where a=1;
commit; commit;
SET current_num = current_num + 1;
END WHILE; END WHILE;
END| END|
DELIMITER ;| DELIMITER ;|
--connection node_2
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME = 'p1'
--source include/wait_condition.inc
--connect node_1_p1, 127.0.0.1, root, , test, $NODE_MYPORT_1 --connect node_1_p1, 127.0.0.1, root, , test, $NODE_MYPORT_1
send call p1; SET SESSION wsrep_sync_wait=0;
send call p1(1000);
--connect node_1_p2, 127.0.0.1, root, , test, $NODE_MYPORT_1 --connect node_1_p2, 127.0.0.1, root, , test, $NODE_MYPORT_1
send call p1; SET SESSION wsrep_sync_wait=0;
send call p1(1000);
--connect node_2_p1, 127.0.0.1, root, , test, $NODE_MYPORT_2 --connect node_2_p1, 127.0.0.1, root, , test, $NODE_MYPORT_2
send call p1; SET SESSION wsrep_sync_wait=0;
send call p1(1000);
--connect node_2_p2, 127.0.0.1, root, , test, $NODE_MYPORT_2 --connect node_2_p2, 127.0.0.1, root, , test, $NODE_MYPORT_2
send call p1; SET SESSION wsrep_sync_wait=0;
send call p1(1000);
connection node_1; connection node_1;
let $counter=10; let $counter=10;
@ -53,7 +65,26 @@ while($counter > 0)
exec grep 'BF lock wait long' $MYSQLTEST_VARDIR/log/mysqld.*.err; exec grep 'BF lock wait long' $MYSQLTEST_VARDIR/log/mysqld.*.err;
dec $counter; dec $counter;
} }
--connection node_1_p1
--error 0,1213
--reap
--connection node_1_p2
--error 0,1213
--reap
--connection node_2_p1
--error 0,1213
--reap
--connection node_2_p2
--error 0,1213
--reap
--connection node_1
drop table t1; drop table t1;
drop procedure p1; drop procedure p1;
--disconnect node_1_p1
--disconnect node_1_p2
--disconnect node_2_p1
--disconnect node_2_p2

View File

@ -1,12 +1,15 @@
connection node_2; connection node_2;
connection node_1; connection node_1;
call mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg\\(\\).*");
CREATE TABLE t1 (f1 INTEGER); CREATE TABLE t1 (f1 INTEGER);
connection node_1; connection node_1;
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1'; SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
connection node_2; connection node_2;
SET SESSION wsrep_sync_wait=0;
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1'; SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
connection node_3; connection node_3;
SET SESSION wsrep_sync_wait=0;
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1'; SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
SET SESSION wsrep_sync_wait = 0; SET SESSION wsrep_sync_wait = 0;
connection node_2; connection node_2;

View File

@ -6,6 +6,8 @@
--source include/galera_cluster.inc --source include/galera_cluster.inc
--source include/have_innodb.inc --source include/have_innodb.inc
call mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg\\(\\).*");
CREATE TABLE t1 (f1 INTEGER); CREATE TABLE t1 (f1 INTEGER);
# Force all nodes to become non-primary # Force all nodes to become non-primary
@ -13,13 +15,19 @@ CREATE TABLE t1 (f1 INTEGER);
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1'; SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
--connection node_2 --connection node_2
SET SESSION wsrep_sync_wait=0;
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
--source include/wait_condition.inc
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1'; SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 --connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
--connection node_3 --connection node_3
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1'; SET SESSION wsrep_sync_wait=0;
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
--source include/wait_condition.inc
--sleep 10 SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
# Node #2 should be non-primary # Node #2 should be non-primary
SET SESSION wsrep_sync_wait = 0; SET SESSION wsrep_sync_wait = 0;
@ -44,7 +52,7 @@ INSERT INTO t1 VALUES (1);
# Reconnect all nodes # Reconnect all nodes
--connection node_2 --connection node_2
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0'; SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0';
--sleep 10
--source include/wait_until_connected_again.inc --source include/wait_until_connected_again.inc
--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; --let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
--source include/wait_condition.inc --source include/wait_condition.inc
@ -67,7 +75,7 @@ SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0';
--connection node_3 --connection node_3
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0'; SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0';
--sleep 10
--source include/wait_until_connected_again.inc --source include/wait_until_connected_again.inc
--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; --let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
--source include/wait_condition.inc --source include/wait_condition.inc

View File

@ -1,10 +1,19 @@
--- default_row_format_alter.result --- default_row_format_alter.result
+++ default_row_format_alter,compact.reject +++ default_row_format_alter,compact.reject
@@ -91,6 +91,6 @@ @@ -91,7 +91,7 @@
ALTER TABLE t1 ADD b INT; ALTER TABLE t1 ADD b INT;
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1'; SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
ROW_FORMAT ROW_FORMAT
-Dynamic -Dynamic
+Compact
DROP TABLE t1;
#
# MDEV-23345 Assertion not_redundant() == old.not_redundant() failed
@@ -102,6 +102,6 @@
ALTER TABLE t1 DROP b;
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
ROW_FORMAT
-Dynamic
+Compact +Compact
DROP TABLE t1; DROP TABLE t1;
SET GLOBAL innodb_default_row_format = @row_format; SET GLOBAL innodb_default_row_format = @row_format;

View File

@ -1,10 +1,19 @@
--- default_row_format_alter.result --- default_row_format_alter.result
+++ default_row_format_alter,compact.reject +++ default_row_format_alter,redundant.reject
@@ -91,6 +91,6 @@ @@ -91,7 +91,7 @@
ALTER TABLE t1 ADD b INT; ALTER TABLE t1 ADD b INT;
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1'; SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
ROW_FORMAT ROW_FORMAT
-Dynamic -Dynamic
+Redundant
DROP TABLE t1;
#
# MDEV-23345 Assertion not_redundant() == old.not_redundant() failed
@@ -102,6 +102,6 @@
ALTER TABLE t1 DROP b;
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
ROW_FORMAT
-Dynamic
+Redundant +Redundant
DROP TABLE t1; DROP TABLE t1;
SET GLOBAL innodb_default_row_format = @row_format; SET GLOBAL innodb_default_row_format = @row_format;

View File

@ -93,4 +93,15 @@ SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
ROW_FORMAT ROW_FORMAT
Dynamic Dynamic
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-23345 Assertion not_redundant() == old.not_redundant() failed
#
SET GLOBAL innodb_default_row_format = @row_format;
CREATE TABLE t1 (a INT PRIMARY KEY, b INT, KEY(b)) ENGINE=InnoDB;
SET GLOBAL innodb_default_row_format= COMPACT;
ALTER TABLE t1 DROP b;
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
ROW_FORMAT
Dynamic
DROP TABLE t1;
SET GLOBAL innodb_default_row_format = @row_format; SET GLOBAL innodb_default_row_format = @row_format;

View File

@ -33,6 +33,7 @@ a
20 20
UPDATE t SET a=3 WHERE a=1; UPDATE t SET a=3 WHERE a=1;
# restart: --innodb-read-only # restart: --innodb-read-only
SET GLOBAL innodb_status_output= @@GLOBAL.innodb_status_output;
# Starting with MariaDB 10.2, innodb_read_only implies READ UNCOMMITTED. # Starting with MariaDB 10.2, innodb_read_only implies READ UNCOMMITTED.
# In earlier versions, this would return the last committed version # In earlier versions, this would return the last committed version
# (only a=3; no record for a=20)! # (only a=3; no record for a=20)!

View File

@ -106,4 +106,14 @@ ALTER TABLE t1 ADD b INT;
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1'; SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-23345 Assertion not_redundant() == old.not_redundant() failed
--echo #
SET GLOBAL innodb_default_row_format = @row_format;
CREATE TABLE t1 (a INT PRIMARY KEY, b INT, KEY(b)) ENGINE=InnoDB;
SET GLOBAL innodb_default_row_format= COMPACT;
ALTER TABLE t1 DROP b;
SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
DROP TABLE t1;
SET GLOBAL innodb_default_row_format = @row_format; SET GLOBAL innodb_default_row_format = @row_format;

View File

@ -59,6 +59,7 @@ SELECT * FROM t;
UPDATE t SET a=3 WHERE a=1; UPDATE t SET a=3 WHERE a=1;
--let $restart_parameters= --innodb-read-only --let $restart_parameters= --innodb-read-only
--source include/restart_mysqld.inc --source include/restart_mysqld.inc
SET GLOBAL innodb_status_output= @@GLOBAL.innodb_status_output;
--echo # Starting with MariaDB 10.2, innodb_read_only implies READ UNCOMMITTED. --echo # Starting with MariaDB 10.2, innodb_read_only implies READ UNCOMMITTED.
--echo # In earlier versions, this would return the last committed version --echo # In earlier versions, this would return the last committed version
--echo # (only a=3; no record for a=20)! --echo # (only a=3; no record for a=20)!

View File

@ -163,14 +163,22 @@ SELECT count(*) FROM t7_restart;
--echo # --echo #
--source include/shutdown_mysqld.inc --source include/shutdown_mysqld.inc
--let $regexp=/#sql-ib[0-9a-f]+\.ibd\n//
--echo ---- MYSQL_DATA_DIR/test --echo ---- MYSQL_DATA_DIR/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_DATA_DIR/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_DATA_DIR/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/alt_dir --echo ---- MYSQL_TMP_DIR/alt_dir
--list_files $MYSQL_TMP_DIR/alt_dir --list_files $MYSQL_TMP_DIR/alt_dir
--echo ---- MYSQL_TMP_DIR/alt_dir/test --echo ---- MYSQL_TMP_DIR/alt_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/alt_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/alt_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo # --echo #
--echo # Start the server and show that tables are still visible and accessible. --echo # Start the server and show that tables are still visible and accessible.
@ -255,11 +263,17 @@ SHOW CREATE TABLE t7_restart;
--copy_file $MYSQL_DATA_DIR/test/t5_restart.frm $MYSQL_DATA_DIR/test/t5_restart.frm.bak --copy_file $MYSQL_DATA_DIR/test/t5_restart.frm $MYSQL_DATA_DIR/test/t5_restart.frm.bak
--echo ---- MYSQL_DATA_DIR/test --echo ---- MYSQL_DATA_DIR/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_DATA_DIR/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_DATA_DIR/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/alt_dir/test --echo ---- MYSQL_TMP_DIR/alt_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/alt_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/alt_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo # --echo #
--echo # Start the server and show the tablespaces. --echo # Start the server and show the tablespaces.
@ -306,11 +320,17 @@ RENAME TABLE t5_restart TO t55_restart;
--remove_file $MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd.bak --remove_file $MYSQL_TMP_DIR/alt_dir/test/t5_restart.ibd.bak
--echo ---- MYSQL_DATA_DIR/test --echo ---- MYSQL_DATA_DIR/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_DATA_DIR/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_DATA_DIR/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/alt_dir/test --echo ---- MYSQL_TMP_DIR/alt_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/alt_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/alt_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo # --echo #
--echo # Rename file table and tablespace --echo # Rename file table and tablespace
@ -338,11 +358,17 @@ SELECT count(*) FROM t77_restart;
SHOW CREATE TABLE t77_restart; SHOW CREATE TABLE t77_restart;
--echo ---- MYSQL_DATA_DIR/test --echo ---- MYSQL_DATA_DIR/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_DATA_DIR/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_DATA_DIR/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/alt_dir/test --echo ---- MYSQL_TMP_DIR/alt_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/alt_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/alt_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo # --echo #
--echo # Restart the server --echo # Restart the server
@ -378,14 +404,23 @@ SHOW CREATE TABLE t77_restart;
--mkdir $MYSQL_TMP_DIR/new_dir --mkdir $MYSQL_TMP_DIR/new_dir
--mkdir $MYSQL_TMP_DIR/new_dir/test --mkdir $MYSQL_TMP_DIR/new_dir/test
--echo ---- MYSQL_DATA_DIR/test --echo ---- MYSQL_DATA_DIR/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_DATA_DIR/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_DATA_DIR/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/alt_dir/test --echo ---- MYSQL_TMP_DIR/alt_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/alt_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/alt_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/new_dir/test --echo ---- MYSQL_TMP_DIR/new_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/new_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/new_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo # Moving tablespace 't4_restart' from MYSQL_DATA_DIR to MYSQL_TMP_DIR/new_dir --echo # Moving tablespace 't4_restart' from MYSQL_DATA_DIR to MYSQL_TMP_DIR/new_dir
--copy_file $MYSQL_DATA_DIR/test/t4_restart.ibd $MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd --copy_file $MYSQL_DATA_DIR/test/t4_restart.ibd $MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd
@ -431,14 +466,23 @@ SHOW CREATE TABLE t77_restart;
--exec echo $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p1#SP#s3.ibd > $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s3.isl --exec echo $MYSQL_TMP_DIR/new_dir/test/t77_restart#P#p1#SP#s3.ibd > $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s3.isl
--echo ---- MYSQL_DATA_DIR/test --echo ---- MYSQL_DATA_DIR/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_DATA_DIR/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_DATA_DIR/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/alt_dir/test --echo ---- MYSQL_TMP_DIR/alt_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/alt_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/alt_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/new_dir/test --echo ---- MYSQL_TMP_DIR/new_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/new_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/new_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo # --echo #
--echo # Start the server and check tablespaces. --echo # Start the server and check tablespaces.
@ -478,11 +522,17 @@ SHOW CREATE TABLE t77_restart;
--echo # --echo #
--echo ---- MYSQL_DATA_DIR/test --echo ---- MYSQL_DATA_DIR/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_DATA_DIR/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_DATA_DIR/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/new_dir/test --echo ---- MYSQL_TMP_DIR/new_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/new_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/new_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo # Moving 't4_restart' from MYSQL_TMP_DIR/new_dir to MYSQL_DATA_DIR --echo # Moving 't4_restart' from MYSQL_TMP_DIR/new_dir to MYSQL_DATA_DIR
--copy_file $MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd $MYSQL_DATA_DIR/test/t4_restart.ibd --copy_file $MYSQL_TMP_DIR/new_dir/test/t4_restart.ibd $MYSQL_DATA_DIR/test/t4_restart.ibd
@ -520,11 +570,17 @@ SHOW CREATE TABLE t77_restart;
--remove_file $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s3.isl --remove_file $MYSQL_DATA_DIR/test/t77_restart#P#p1#SP#s3.isl
--echo ---- MYSQL_DATA_DIR/test --echo ---- MYSQL_DATA_DIR/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_DATA_DIR/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_DATA_DIR/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo ---- MYSQL_TMP_DIR/new_dir/test --echo ---- MYSQL_TMP_DIR/new_dir/test
--list_files_write_file $MYSQLD_DATADIR.files.txt $MYSQL_TMP_DIR/new_dir/test
--replace_regex $regexp
--replace_result #P# #p# #SP# #sp# --replace_result #P# #p# #SP# #sp#
--list_files $MYSQL_TMP_DIR/new_dir/test --cat_file $MYSQLD_DATADIR.files.txt
--remove_file $MYSQLD_DATADIR.files.txt
--echo # --echo #
--echo # Start the server and check tablespaces. --echo # Start the server and check tablespaces.

View File

@ -0,0 +1,15 @@
call mtr.add_suppression('Unknown key id 1. Can''t continue');
set global aria_encrypt_tables= 1;
create table t1 (pk int primary key, a int, key(a)) engine=aria transactional=1;
alter table t1 disable keys;
insert into t1 values (1,1);
alter table t1 enable keys;
ERROR HY000: Unknown key id 1. Can't continue!
repair table t1 use_frm;
Table Op Msg_type Msg_text
test.t1 repair warning Number of rows changed from 0 to 1
test.t1 repair Error Unknown key id 1. Can't continue!
test.t1 repair Error Unknown key id 1. Can't continue!
test.t1 repair status OK
drop table t1;
set global aria_encrypt_tables= default;

View File

@ -0,0 +1,14 @@
#
# MDEV-18496 Crash when Aria encryption is enabled but plugin not available
#
call mtr.add_suppression('Unknown key id 1. Can''t continue');
set global aria_encrypt_tables= 1;
create table t1 (pk int primary key, a int, key(a)) engine=aria transactional=1;
alter table t1 disable keys;
insert into t1 values (1,1);
error 192;
alter table t1 enable keys;
repair table t1 use_frm;
drop table t1;
set global aria_encrypt_tables= default;

View File

@ -1,3 +1,4 @@
FLUSH TABLES;
# #
# Bug#13737949: CRASH IN HA_PARTITION::INDEX_INIT # Bug#13737949: CRASH IN HA_PARTITION::INDEX_INIT
# Bug#18694052: SERVER CRASH IN HA_PARTITION::INIT_RECORD_PRIORITY_QUEUE # Bug#18694052: SERVER CRASH IN HA_PARTITION::INIT_RECORD_PRIORITY_QUEUE

View File

@ -8,6 +8,10 @@
# Crash tests don't work with embedded # Crash tests don't work with embedded
--source include/not_embedded.inc --source include/not_embedded.inc
# Make sure system tables are not open, as the test will kill the server
# and it will cause corruption errors in the log
FLUSH TABLES;
# Partitioning test that require debug features # Partitioning test that require debug features
--echo # --echo #

View File

@ -0,0 +1,5 @@
create role r;
set role r;
drop role r;
revoke all on *.* from current_role;
ERROR OP000: Invalid role specification `r`

View File

@ -0,0 +1,9 @@
--source include/not_embedded.inc
#
# MDEV-22521 Server crashes in traverse_role_graph_up or Assertion `user' fails in traverse_role_graph_impl
#
create role r;
set role r;
drop role r;
error ER_INVALID_ROLE;
revoke all on *.* from current_role;

View File

@ -2,8 +2,10 @@ include/rpl_init.inc [topology=1->2]
*** MDEV-5509: Incorrect value for Seconds_Behind_Master if parallel replication *** *** MDEV-5509: Incorrect value for Seconds_Behind_Master if parallel replication ***
connection server_2; connection server_2;
SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads; SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
set @old_parallel_mode= @@GLOBAL.slave_parallel_mode;
include/stop_slave.inc include/stop_slave.inc
SET GLOBAL slave_parallel_threads=5; SET GLOBAL slave_parallel_threads=5;
set global slave_parallel_mode= optimistic;
include/start_slave.inc include/start_slave.inc
connection server_1; connection server_1;
CREATE TABLE t1 (a INT PRIMARY KEY, b INT); CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
@ -157,6 +159,7 @@ UNLOCK TABLES;
connection server_2; connection server_2;
include/stop_slave.inc include/stop_slave.inc
SET GLOBAL slave_parallel_threads=@old_parallel_threads; SET GLOBAL slave_parallel_threads=@old_parallel_threads;
set global slave_parallel_mode= @old_parallel_mode;
include/start_slave.inc include/start_slave.inc
connection server_1; connection server_1;
DROP TABLE t1, t2; DROP TABLE t1, t2;

View File

@ -8,8 +8,10 @@
--connection server_2 --connection server_2
SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads; SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
set @old_parallel_mode= @@GLOBAL.slave_parallel_mode;
--source include/stop_slave.inc --source include/stop_slave.inc
SET GLOBAL slave_parallel_threads=5; SET GLOBAL slave_parallel_threads=5;
set global slave_parallel_mode= optimistic;
--source include/start_slave.inc --source include/start_slave.inc
--connection server_1 --connection server_1
@ -219,6 +221,7 @@ UNLOCK TABLES;
--connection server_2 --connection server_2
--source include/stop_slave.inc --source include/stop_slave.inc
SET GLOBAL slave_parallel_threads=@old_parallel_threads; SET GLOBAL slave_parallel_threads=@old_parallel_threads;
set global slave_parallel_mode= @old_parallel_mode;
--source include/start_slave.inc --source include/start_slave.inc
--connection server_1 --connection server_1

View File

@ -51,9 +51,9 @@ INSERT into t1(name, salary, income_tax) values('Record_2', 501, 501*2.5/1000);
INSERT into t1(name, salary, income_tax) values('Record_3', 210, 210*2.5/1000); INSERT into t1(name, salary, income_tax) values('Record_3', 210, 210*2.5/1000);
SELECT * from t1; SELECT * from t1;
id name salary income_tax id name salary income_tax
1 Record_1 100011 250.027 1 Record_1 100011 250.03
2 Record_2 501 1.2525 2 Record_2 501 1.25
3 Record_3 210 0.525 3 Record_3 210 0.53
connect test_con2, localhost, root,,; connect test_con2, localhost, root,,;
connection test_con2; connection test_con2;
## Verifying session & global value of variable ## ## Verifying session & global value of variable ##
@ -69,11 +69,11 @@ INSERT into t1(name, salary, income_tax) values('Record_5', 501, 501*2.5/1000);
INSERT into t1(name, salary, income_tax) values('Record_6', 210, 210*2.5/1000); INSERT into t1(name, salary, income_tax) values('Record_6', 210, 210*2.5/1000);
SELECT * from t1; SELECT * from t1;
id name salary income_tax id name salary income_tax
1 Record_1 100011 250.027 1 Record_1 100011 250.03
2 Record_2 501 1.2525 2 Record_2 501 1.25
3 Record_3 210 0.525 3 Record_3 210 0.53
4 Record_4 100011 250.027 4 Record_4 100011 250.028
5 Record_5 501 1.2525 5 Record_5 501 1.253
6 Record_6 210 0.525 6 Record_6 210 0.525
## Dropping table t1 ## ## Dropping table t1 ##
drop table t1; drop table t1;

View File

@ -29,7 +29,7 @@ set time_zone='+1:00';
flush tables; flush tables;
select * from t1; select * from t1;
a b v a b v
1 2 0.3333333330000000000 1 2 0.3333000000000000000
select * from t8; select * from t8;
a b v a b v
1234567890 2 2009-02-14 00:31:30 1234567890 2 2009-02-14 00:31:30

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