Skip to content

Commit 1537784

Browse files
committed
Merge 11.8 into main
2 parents 689bed1 + bb9f010 commit 1537784

File tree

190 files changed

+5532
-2653
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

190 files changed

+5532
-2653
lines changed

client/mysqlimport.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -984,6 +984,8 @@ static void fatal_error(const char *format, ...)
984984

985985
static void db_error(MYSQL *mysql)
986986
{
987+
if (aborting)
988+
return;
987989
const char *info= mysql_info(mysql);
988990
auto err= mysql_errno(mysql);
989991
auto err_text = mysql_error(mysql);

cmake/generate_sbom.cmake

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,12 @@ FUNCTION(SBOM_GET_CPE name version var)
4848
"boost" "boost:boost"
4949
"thrift" "apache:thrift"
5050
)
51-
LIST(FIND cpe_prefix_map "${name}" i)
52-
IF(i GREATER -1)
53-
MATH(EXPR next_idx "${i}+1")
51+
LIST(FIND cpe_prefix_map "${name}" idx_cpe_mapping)
52+
# Version needs to have at least one dot character in it.
53+
# Otherwise, we assume it is a git hash, and do not generate CPE
54+
STRING(FIND "${version}" "." idx_version_dot)
55+
IF((idx_cpe_mapping GREATER -1) AND (idx_version_dot GREATER -1))
56+
MATH(EXPR next_idx "${idx_cpe_mapping}+1")
5457
LIST(GET cpe_prefix_map ${next_idx} cpe_name_and_vendor)
5558
STRING(REGEX REPLACE "[^0-9\\.]" "" cleaned_version "${version}")
5659
SET(${var} "cpe:2.3:a:${cpe_name_and_vendor}:${cleaned_version}:*:*:*:*:*:*:*" PARENT_SCOPE)
@@ -101,10 +104,9 @@ FUNCTION (sbom_get_supplier repo_name repo_user varname)
101104
SET(${varname} "MariaDB" PARENT_SCOPE)
102105
ELSEIF (repo_name MATCHES "boost")
103106
SET(${varname} "Boost.org" PARENT_SCOPE)
107+
ELSEIF(repo_user MATCHES "mariadb-corporation|mariadb")
108+
SET(${varname} "MariaDB")
104109
ELSE()
105-
IF(repo_user MATCHES "mariadb-corporation|mariadb")
106-
set(repo_user "MariaDB")
107-
ENDIF()
108110
# Capitalize just first letter in repo_user
109111
STRING(SUBSTRING "${repo_user}" 0 1 first_letter)
110112
STRING(SUBSTRING "${repo_user}" 1 -1 rest)

libmysqld/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
7171
../sql/log_event.cc ../sql/log_event_server.cc
7272
../sql/mf_iocache.cc ../sql/my_decimal.cc
7373
../sql/net_serv.cc ../sql/opt_range.cc
74+
../sql/opt_group_by_cardinality.cc
7475
../sql/opt_rewrite_date_cmp.cc
7576
../sql/opt_rewrite_remove_casefold.cc
7677
../sql/opt_sargable_left.cc
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
DELIMITER $$;
2+
CREATE PACKAGE pkg
3+
FUNCTION f1() RETURNS INT;
4+
END;
5+
$$
6+
CREATE PACKAGE BODY pkg
7+
DECLARE vc INT DEFAULT 0;
8+
FUNCTION f1() RETURNS INT
9+
BEGIN
10+
DECLARE cur CURSOR FOR SELECT 1 AS c FROM DUAL;
11+
OPEN cur;
12+
FETCH cur INTO vc; -- SHOW CODE should display vc with a "PACKAGE_BODY" prefix
13+
CLOSE cur;
14+
RETURN vc;
15+
END;
16+
BEGIN
17+
DECLARE cur CURSOR FOR SELECT 1 AS c FROM DUAL;
18+
OPEN cur;
19+
FETCH cur INTO vc; -- SHOW CODE should display vc without a prefix
20+
CLOSE cur;
21+
END;
22+
END;
23+
$$
24+
DELIMITER ;$$
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Mixing a package body variable and a local variable in the same FETCH.
2+
DELIMITER $$;
3+
CREATE PACKAGE pkg
4+
FUNCTION f1() RETURNS TEXT;
5+
END;
6+
$$
7+
CREATE PACKAGE BODY pkg
8+
DECLARE vc1 INT DEFAULT 0;
9+
FUNCTION f1() RETURNS TEXT
10+
BEGIN
11+
DECLARE vc2 INT DEFAULT 0;
12+
DECLARE cur CURSOR FOR SELECT 1 AS c1, 2 AS c2 FROM DUAL;
13+
OPEN cur;
14+
FETCH cur INTO vc1, vc2;
15+
CLOSE cur;
16+
RETURN CONCAT(vc1, ' ', vc2);
17+
END;
18+
END;
19+
$$
20+
DELIMITER ;$$
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Fetching into a PACKAGE BODY variable of the ROW type
2+
DELIMITER $$;
3+
CREATE PACKAGE pkg
4+
FUNCTION f1() RETURNS TEXT;
5+
END;
6+
$$
7+
CREATE PACKAGE BODY pkg
8+
DECLARE vc ROW(p1 INT, p2 INT);
9+
FUNCTION f1() RETURNS TEXT
10+
BEGIN
11+
DECLARE cur CURSOR FOR SELECT 1 AS c1, 2 AS c2 FROM DUAL;
12+
OPEN cur;
13+
FETCH cur INTO vc;
14+
CLOSE cur;
15+
RETURN CONCAT(vc.p1, ' ', vc.p2);
16+
END;
17+
END;
18+
$$
19+
DELIMITER ;$$

mysql-test/main/comment_database.result

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,16 @@ WHERE schema_name='comment';
7676
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH SCHEMA_COMMENT
7777
def comment latin2 latin2_general_ci NULL comment
7878
DROP DATABASE comment;
79+
CREATE DATABASE db1;
80+
# restart
81+
SHOW CREATE DATABASE db1;
82+
Database Create Database
83+
db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci */
84+
Warnings:
85+
Note 1105 Database 'db1' does not have a db.opt file. You can create one with ALTER DATABASE if needed
86+
SHOW CREATE DATABASE db1;
87+
Database Create Database
88+
db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci */
89+
Warnings:
90+
Note 1105 Database 'db1' does not have a db.opt file. You can create one with ALTER DATABASE if needed
91+
DROP DATABASE db1;

mysql-test/main/comment_database.test

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,11 @@ SELECT * FROM information_schema.schemata
6363
WHERE schema_name='comment';
6464
DROP DATABASE comment;
6565
--enable_service_connection
66+
67+
CREATE DATABASE db1;
68+
--remove_file $MARIADB_DATADIR/db1/db.opt
69+
--source include/restart_mysqld.inc
70+
# We need to call this two times to ensure all code paths are used
71+
SHOW CREATE DATABASE db1;
72+
SHOW CREATE DATABASE db1;
73+
DROP DATABASE db1;

mysql-test/main/ctype_utf8_def_upgrade.result

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ SET @@collation_database=DEFAULT;
6868
SHOW CREATE DATABASE db1;
6969
Database Create Database
7070
db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */
71+
Warnings:
72+
Note 1105 Database 'db1' does not have a db.opt file. You can create one with ALTER DATABASE if needed
7173
USE db1;
7274
SELECT @@collation_database, 'taken from defaults' AS comment;
7375
@@collation_database comment

mysql-test/main/derived.result

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ a 7.0000
318318
b 3.5000
319319
explain SELECT s.name, AVG(s.val) AS median FROM (SELECT x.name, x.val FROM t1 x, t1 y WHERE x.name=y.name GROUP BY x.name, x.val HAVING SUM(y.val <= x.val) >= COUNT(*)/2 AND SUM(y.val >= x.val) >= COUNT(*)/2) AS s GROUP BY s.name;
320320
id select_type table type possible_keys key key_len ref rows Extra
321-
1 PRIMARY <derived2> ALL NULL NULL NULL NULL289Using temporary; Using filesort
321+
1 PRIMARY <derived2> ALL NULL NULL NULL NULL17Using temporary; Using filesort
322322
2 DERIVED x ALL NULL NULL NULL NULL 17 Using temporary; Using filesort
323323
2 DERIVED y ALL NULL NULL NULL NULL 17 Using where; Using join buffer (flat, BNL join)
324324
drop table t1;
@@ -1999,8 +1999,8 @@ group by ic1
19991999
) dt1 (oc1, oc2, oc3)
20002000
join t3 on t3.c1 = dt1.oc1+9;
20012001
id select_type table type possible_keys key key_len ref rows Extra
2002-
1 PRIMARYt3ALL NULL NULL NULL NULL 2
2003-
1 PRIMARY<derived2>ALL NULL NULL NULL NULL4Using where; Using join buffer (flat, BNL join)
2002+
1 PRIMARY<derived2>ALL NULL NULL NULL NULL 2
2003+
1 PRIMARYt3ALL NULL NULL NULL NULL2Using where; Using join buffer (flat, BNL join)
20042004
2 DERIVED <derived3> ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
20052005
2 DERIVED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
20062006
3 DERIVED t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort

0 commit comments

Comments
 (0)