mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge branch '10.11' into 11.0
This commit is contained in:
@@ -2300,10 +2300,7 @@ static int read_and_execute(bool interactive)
|
|||||||
the readline/libedit library.
|
the readline/libedit library.
|
||||||
*/
|
*/
|
||||||
if (line)
|
if (line)
|
||||||
{
|
|
||||||
free(line);
|
free(line);
|
||||||
glob_buffer.length(0);
|
|
||||||
}
|
|
||||||
line= readline(prompt);
|
line= readline(prompt);
|
||||||
#ifdef USE_LIBEDIT_INTERFACE
|
#ifdef USE_LIBEDIT_INTERFACE
|
||||||
/*
|
/*
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
INCLUDE (CheckCXXSourceCompiles)
|
INCLUDE (CheckCXXSourceRuns)
|
||||||
INCLUDE (ExternalProject)
|
INCLUDE (ExternalProject)
|
||||||
|
|
||||||
SET(WITH_LIBFMT "auto" CACHE STRING
|
SET(WITH_LIBFMT "auto" CACHE STRING
|
||||||
@@ -27,17 +27,15 @@ ENDMACRO()
|
|||||||
MACRO (CHECK_LIBFMT)
|
MACRO (CHECK_LIBFMT)
|
||||||
IF(WITH_LIBFMT STREQUAL "system" OR WITH_LIBFMT STREQUAL "auto")
|
IF(WITH_LIBFMT STREQUAL "system" OR WITH_LIBFMT STREQUAL "auto")
|
||||||
SET(CMAKE_REQUIRED_INCLUDES ${LIBFMT_INCLUDE_DIR})
|
SET(CMAKE_REQUIRED_INCLUDES ${LIBFMT_INCLUDE_DIR})
|
||||||
CHECK_CXX_SOURCE_COMPILES(
|
CHECK_CXX_SOURCE_RUNS(
|
||||||
"#define FMT_STATIC_THOUSANDS_SEPARATOR ','
|
"#define FMT_STATIC_THOUSANDS_SEPARATOR ','
|
||||||
#define FMT_HEADER_ONLY 1
|
#define FMT_HEADER_ONLY 1
|
||||||
#include <fmt/format-inl.h>
|
#include <fmt/format-inl.h>
|
||||||
#include <iostream>
|
|
||||||
int main() {
|
int main() {
|
||||||
int answer= 42;
|
int answer= 4321;
|
||||||
fmt::format_args::format_arg arg=
|
fmt::format_args::format_arg arg=
|
||||||
fmt::detail::make_arg<fmt::format_context>(answer);
|
fmt::detail::make_arg<fmt::format_context>(answer);
|
||||||
std::cout << fmt::vformat(\"The answer is {}.\",
|
return fmt::vformat(\"{:L}\", fmt::format_args(&arg, 1)).compare(\"4,321\");
|
||||||
fmt::format_args(&arg, 1));
|
|
||||||
}" HAVE_SYSTEM_LIBFMT)
|
}" HAVE_SYSTEM_LIBFMT)
|
||||||
SET(CMAKE_REQUIRED_INCLUDES)
|
SET(CMAKE_REQUIRED_INCLUDES)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@@ -81,18 +81,15 @@ MACRO (CHECK_PCRE)
|
|||||||
FIND_PACKAGE(PkgConfig QUIET)
|
FIND_PACKAGE(PkgConfig QUIET)
|
||||||
PKG_CHECK_MODULES(PCRE libpcre2-8)
|
PKG_CHECK_MODULES(PCRE libpcre2-8)
|
||||||
# in case pkg-config or libpcre2-8.pc is not installed:
|
# in case pkg-config or libpcre2-8.pc is not installed:
|
||||||
IF(NOT PCRE_FOUND)
|
CHECK_LIBRARY_EXISTS(pcre2-8 pcre2_match_8 "${PCRE_LIBRARY_DIRS}" HAVE_PCRE2_MATCH_8)
|
||||||
UNSET(PCRE_FOUND CACHE)
|
|
||||||
CHECK_LIBRARY_EXISTS(pcre2-8 pcre2_match_8 "" PCRE_FOUND)
|
|
||||||
ENDIF()
|
|
||||||
ENDIF()
|
ENDIF()
|
||||||
IF(NOT PCRE_FOUND OR WITH_PCRE STREQUAL "bundled")
|
IF(NOT HAVE_PCRE2_MATCH_8 OR WITH_PCRE STREQUAL "bundled")
|
||||||
IF (WITH_PCRE STREQUAL "system")
|
IF (WITH_PCRE STREQUAL "system")
|
||||||
MESSAGE(FATAL_ERROR "system pcre2-8 library is not found or unusable")
|
MESSAGE(FATAL_ERROR "system pcre2-8 library is not found or unusable")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
BUNDLE_PCRE2()
|
BUNDLE_PCRE2()
|
||||||
ELSE()
|
ELSE()
|
||||||
CHECK_LIBRARY_EXISTS(pcre2-posix PCRE2regcomp "" NEEDS_PCRE2_DEBIAN_HACK)
|
CHECK_LIBRARY_EXISTS(pcre2-posix PCRE2regcomp "${PCRE_LIBRARY_DIRS}" NEEDS_PCRE2_DEBIAN_HACK)
|
||||||
IF(NEEDS_PCRE2_DEBIAN_HACK)
|
IF(NEEDS_PCRE2_DEBIAN_HACK)
|
||||||
SET(PCRE2_DEBIAN_HACK "-Dregcomp=PCRE2regcomp -Dregexec=PCRE2regexec -Dregerror=PCRE2regerror -Dregfree=PCRE2regfree")
|
SET(PCRE2_DEBIAN_HACK "-Dregcomp=PCRE2regcomp -Dregexec=PCRE2regexec -Dregerror=PCRE2regerror -Dregfree=PCRE2regfree")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
24
mysql-test/main/mysql-interactive.result
Normal file
24
mysql-test/main/mysql-interactive.result
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#
|
||||||
|
# regression introduced by MDEV-14448
|
||||||
|
#
|
||||||
|
delimiter $
|
||||||
|
select 1;
|
||||||
|
$
|
||||||
|
Welcome to the MariaDB monitor. Commands end with ; or \g.
|
||||||
|
Your MariaDB connection id is X
|
||||||
|
Server version: Y
|
||||||
|
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
|
||||||
|
|
||||||
|
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
|
||||||
|
|
||||||
|
MariaDB [(none)]> delimiter $
|
||||||
|
MariaDB [(none)]> select 1;
|
||||||
|
-> $
|
||||||
|
+---+
|
||||||
|
| 1 |
|
||||||
|
+---+
|
||||||
|
| 1 |
|
||||||
|
+---+
|
||||||
|
1 row in set
|
||||||
|
|
||||||
|
MariaDB [(none)]>
|
29
mysql-test/main/mysql-interactive.test
Normal file
29
mysql-test/main/mysql-interactive.test
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
--echo #
|
||||||
|
--echo # regression introduced by MDEV-14448
|
||||||
|
--echo #
|
||||||
|
source include/not_embedded.inc;
|
||||||
|
source include/not_windows.inc;
|
||||||
|
|
||||||
|
error 0,1;
|
||||||
|
exec $MYSQL -V|grep -q readline;
|
||||||
|
if ($sys_errno == 1)
|
||||||
|
{
|
||||||
|
# strangely enough
|
||||||
|
skip does not work with libedit;
|
||||||
|
}
|
||||||
|
|
||||||
|
write_file $MYSQL_TMP_DIR/mysql_in;
|
||||||
|
delimiter $
|
||||||
|
select 1;
|
||||||
|
$
|
||||||
|
EOF
|
||||||
|
let TERM=dumb;
|
||||||
|
replace_regex /id is \d+/id is X/ /Server version: .*/Server version: Y/ / \(\d+\.\d+ sec\)//;
|
||||||
|
error 0,127;
|
||||||
|
exec socat EXEC:"$MYSQL",pty STDIO < $MYSQL_TMP_DIR/mysql_in;
|
||||||
|
if ($sys_errno == 127)
|
||||||
|
{
|
||||||
|
remove_file $MYSQL_TMP_DIR/mysql_in;
|
||||||
|
skip no socat;
|
||||||
|
}
|
||||||
|
remove_file $MYSQL_TMP_DIR/mysql_in;
|
@@ -3085,8 +3085,10 @@ eval SHOW CREATE VIEW test1.v$level;
|
|||||||
# the following line as written as '--eror ER_TOO_MANY_TABLES' and the command
|
# the following line as written as '--eror ER_TOO_MANY_TABLES' and the command
|
||||||
# is successful so assuming no expected error was intended
|
# is successful so assuming no expected error was intended
|
||||||
# --error ER_TOO_MANY_TABLES
|
# --error ER_TOO_MANY_TABLES
|
||||||
|
--disable_ps2_protocol
|
||||||
eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
||||||
CAST(f2 AS CHAR) AS f2 FROM test1.v$level;
|
CAST(f2 AS CHAR) AS f2 FROM test1.v$level;
|
||||||
|
--enable_ps2_protocol
|
||||||
let $message= The output of following EXPLAIN is deactivated, because the result
|
let $message= The output of following EXPLAIN is deactivated, because the result
|
||||||
differs on some platforms
|
differs on some platforms
|
||||||
FIXME Is this a bug ? ;
|
FIXME Is this a bug ? ;
|
||||||
@@ -3116,16 +3118,20 @@ SELECT f1 as f2, f2 as f1 FROM test2.t1;
|
|||||||
CREATE OR REPLACE VIEW test2.v0 AS
|
CREATE OR REPLACE VIEW test2.v0 AS
|
||||||
SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1;
|
SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1;
|
||||||
eval SHOW CREATE VIEW test1.v$toplevel;
|
eval SHOW CREATE VIEW test1.v$toplevel;
|
||||||
|
--disable_ps2_protocol
|
||||||
eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
||||||
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
||||||
|
--enable_ps2_protocol
|
||||||
eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
||||||
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
||||||
# 2.3.3 UCS2 string instead of common string
|
# 2.3.3 UCS2 string instead of common string
|
||||||
CREATE OR REPLACE VIEW test3.v0 AS
|
CREATE OR REPLACE VIEW test3.v0 AS
|
||||||
SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1;
|
SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1;
|
||||||
eval SHOW CREATE VIEW test1.v$toplevel;
|
eval SHOW CREATE VIEW test1.v$toplevel;
|
||||||
|
--disable_ps2_protocol
|
||||||
eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
||||||
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
||||||
|
--enable_ps2_protocol
|
||||||
eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
||||||
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
||||||
|
|
||||||
@@ -3133,8 +3139,10 @@ eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
|||||||
CREATE OR REPLACE VIEW test3.v0 AS
|
CREATE OR REPLACE VIEW test3.v0 AS
|
||||||
SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1;
|
SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1;
|
||||||
eval SHOW CREATE VIEW test1.v$toplevel;
|
eval SHOW CREATE VIEW test1.v$toplevel;
|
||||||
|
--disable_ps2_protocol
|
||||||
eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
||||||
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
||||||
|
--enable_ps2_protocol
|
||||||
eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1,
|
||||||
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
CAST(f2 AS CHAR) AS f2 FROM test1.v$toplevel;
|
||||||
--enable_result_log
|
--enable_result_log
|
||||||
|
@@ -6,6 +6,11 @@ connection slave;
|
|||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CHANGE MASTER TO MASTER_USE_GTID=NO;
|
CHANGE MASTER TO MASTER_USE_GTID=NO;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
|
connection master;
|
||||||
|
# Ensure only the new binlog dump thread is alive (wait for the old one
|
||||||
|
# to complete its kill)
|
||||||
|
# And that it has already sent its fake rotate
|
||||||
|
connection slave;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
# Test slave with no capability gets dummy event, which is ignored.
|
# Test slave with no capability gets dummy event, which is ignored.
|
||||||
set @old_dbug= @@global.debug_dbug;
|
set @old_dbug= @@global.debug_dbug;
|
||||||
|
@@ -18,6 +18,17 @@ sync_slave_with_master;
|
|||||||
CHANGE MASTER TO MASTER_USE_GTID=NO;
|
CHANGE MASTER TO MASTER_USE_GTID=NO;
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
|
|
||||||
|
--connection master
|
||||||
|
--echo # Ensure only the new binlog dump thread is alive (wait for the old one
|
||||||
|
--echo # to complete its kill)
|
||||||
|
--let $wait_condition= select count(*)=1 from information_schema.processlist where command='Binlog Dump'
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
|
--echo # And that it has already sent its fake rotate
|
||||||
|
--let $wait_condition= select count(*)=1 from information_schema.processlist where state LIKE '%Master has sent all binlog to slave%' and command='Binlog Dump'
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
|
||||||
|
--connection slave
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
--echo # Test slave with no capability gets dummy event, which is ignored.
|
--echo # Test slave with no capability gets dummy event, which is ignored.
|
||||||
set @old_dbug= @@global.debug_dbug;
|
set @old_dbug= @@global.debug_dbug;
|
||||||
|
@@ -450,7 +450,6 @@ public:
|
|||||||
Item_str_func(thd, org, find, replace) {}
|
Item_str_func(thd, org, find, replace) {}
|
||||||
String *val_str(String *to) override { return val_str_internal(to, false); };
|
String *val_str(String *to) override { return val_str_internal(to, false); };
|
||||||
bool fix_length_and_dec(THD *thd) override;
|
bool fix_length_and_dec(THD *thd) override;
|
||||||
String *val_str_internal(String *str, String *empty_string_for_null);
|
|
||||||
const Schema *schema() const override { return &mariadb_schema; }
|
const Schema *schema() const override { return &mariadb_schema; }
|
||||||
void print(String *str, enum_query_type query_type) override
|
void print(String *str, enum_query_type query_type) override
|
||||||
{
|
{
|
||||||
|
@@ -4787,9 +4787,12 @@ void st_select_lex::fix_prepare_information(THD *thd, Item **conds,
|
|||||||
{
|
{
|
||||||
Query_arena_stmt on_stmt_arena(thd);
|
Query_arena_stmt on_stmt_arena(thd);
|
||||||
changed_elements|= TOUCHED_SEL_COND;
|
changed_elements|= TOUCHED_SEL_COND;
|
||||||
|
/*
|
||||||
|
TODO: return after MDEV-33218 fix
|
||||||
DBUG_ASSERT(
|
DBUG_ASSERT(
|
||||||
active_arena->is_stmt_prepare_or_first_stmt_execute() ||
|
active_arena->is_stmt_prepare_or_first_stmt_execute() ||
|
||||||
active_arena->state == Query_arena::STMT_SP_QUERY_ARGUMENTS);
|
active_arena->state == Query_arena::STMT_SP_QUERY_ARGUMENTS);
|
||||||
|
*/
|
||||||
if (group_list.first)
|
if (group_list.first)
|
||||||
{
|
{
|
||||||
if (!group_list_ptrs)
|
if (!group_list_ptrs)
|
||||||
|
Submodule storage/columnstore/columnstore updated: fcd637addc...07e7301631
@@ -2,3 +2,4 @@ wait_timeout : MDEV-26045
|
|||||||
mdev_29676 : MDEV-31138
|
mdev_29676 : MDEV-31138
|
||||||
mdev_27239: MDEV-32046
|
mdev_27239: MDEV-32046
|
||||||
mdev_27575 : MDEV-32997
|
mdev_27575 : MDEV-32997
|
||||||
|
mdev_28739_simple : MDEV-33343
|
||||||
|
Reference in New Issue
Block a user