Skip to content

Commit ec2b30e

Browse files
committed
Merge branch '10.6' into 10.7
2 parents 8a9e171 + 822694b commit ec2b30e

File tree

24 files changed

+233
-28
lines changed

24 files changed

+233
-28
lines changed

extra/wolfssl/wolfssl

Submodule wolfssl updated 905 files

libmysqld/CMakeLists.txt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,23 @@ ${SSL_INTERNAL_INCLUDE_DIRS}
3131
)
3232

3333
SET(GEN_SOURCES
34-
${CMAKE_BINARY_DIR}/sql/sql_yacc.hh
34+
${CMAKE_BINARY_DIR}/sql/sql_yacc.hh
3535
${CMAKE_BINARY_DIR}/sql/yy_mariadb.cc
3636
${CMAKE_BINARY_DIR}/sql/yy_oracle.hh
3737
${CMAKE_BINARY_DIR}/sql/yy_oracle.cc
38-
${CMAKE_BINARY_DIR}/sql/lex_hash.h
38+
${CMAKE_BINARY_DIR}/sql/lex_hash.h
3939
)
4040

4141
SET_SOURCE_FILES_PROPERTIES(${GEN_SOURCES} PROPERTIES GENERATED TRUE)
4242

43+
IF(CMAKE_C_COMPILER_ID MATCHES "Clang" AND
44+
NOT CMAKE_C_COMPILER_VERSION VERSION_LESS "13.0.0")
45+
ADD_COMPILE_FLAGS(
46+
${CMAKE_BINARY_DIR}/sql/yy_mariadb.cc
47+
${CMAKE_BINARY_DIR}/sql/yy_oracle.cc
48+
COMPILE_FLAGS "-Wno-unused-but-set-variable")
49+
ENDIF()
50+
4351
SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
4452
libmysql.c ../sql-common/errmsg.c
4553
../sql-common/client.c

mysql-test/main/create_or_replace.result

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,5 +576,8 @@ CREATE TABLE tm (a INT) ENGINE=MERGE UNION(t);
576576
CREATE OR REPLACE TABLE t LIKE tm;
577577
ERROR HY000: Table 'tm' is specified twice, both as a target for 'CREATE' and as a separate source for data
578578
DROP TABLE IF EXISTS tm, t;
579+
#
580+
# End of 10.3 tests
581+
#
579582
# End of 10.4 tests
580583
SET GLOBAL innodb_stats_persistent=@save_persistent;

mysql-test/main/create_or_replace.test

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,10 @@ CREATE OR REPLACE TABLE t LIKE tm;
524524
# Cleanup
525525
DROP TABLE IF EXISTS tm, t;
526526

527+
--echo #
528+
--echo # End of 10.3 tests
529+
--echo #
530+
527531
--echo # End of 10.4 tests
528532

529533
SET GLOBAL innodb_stats_persistent=@save_persistent;

mysql-test/main/kill.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
# application. 'mysqltest' does not handle the kill request.
88
#
99

10+
-- source include/count_sessions.inc
1011
-- source include/not_embedded.inc
1112

1213
--disable_service_connection

mysql-test/suite/gcol/r/innodb_virtual_index.result

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
SET default_storage_engine= innodb;
12
SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
23
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
34
#
@@ -248,12 +249,15 @@ ENGINE=InnoDB;
248249
INSERT IGNORE INTO t1 (a,b) VALUES(1,20190132);
249250
Warnings:
250251
Warning 1265 Data truncated for column 'vb' at row 1
252+
SELECT * FROM t1;
253+
a b vb
254+
1 20190132 0000-00-00
251255
BEGIN;
252256
DELETE FROM t1;
253257
INSERT INTO t1 (a,b) VALUES(1,20190123);
254-
ERROR 22007: Incorrect date value: '20190132' for column `test`.`t1`.`vb` at row 1
255258
SELECT * FROM t1;
256259
a b vb
260+
1 20190123 2019-01-23
257261
ROLLBACK;
258262
SELECT * FROM t1;
259263
a b vb
@@ -310,3 +314,62 @@ ALTER TABLE t1 ADD KEY (b), ALGORITHM=INPLACE;
310314
# Cleanup
311315
DROP TABLE t1;
312316
# End of 10.2 tests
317+
#
318+
# MDEV-29299 SELECT from table with vcol index reports warning
319+
#
320+
CREATE TABLE t(fld1 INT NOT NULL,
321+
fld2 INT AS (100/fld1) VIRTUAL,
322+
KEY(fld1), KEY(fld2));
323+
CREATE TABLE t_odd(id int);
324+
INSERT INTO t(fld1) VALUES(1), (2);
325+
connect stop_purge,localhost,root;
326+
START TRANSACTION WITH CONSISTENT SNAPSHOT;
327+
INSERT INTO t_odd VALUES(10000);
328+
connection default;
329+
UPDATE IGNORE t SET fld1= 3 WHERE fld1= 2;
330+
UPDATE IGNORE t SET fld1= 4 WHERE fld1= 3;
331+
UPDATE IGNORE t SET fld1= 0 WHERE fld1= 4;
332+
Warnings:
333+
Warning 1365 Division by 0
334+
SELECT fld2 FROM t FORCE INDEX(fld2);
335+
fld2
336+
NULL
337+
100
338+
SELECT fld2 FROM t FORCE INDEX(fld1);
339+
fld2
340+
100
341+
NULL
342+
Warnings:
343+
Warning 1365 Division by 0
344+
disconnect stop_purge;
345+
DROP TABLE t, t_odd;
346+
#
347+
# MDEV-29753 An error is wrongly reported during INSERT with vcol index
348+
# See also Bug #22990029
349+
#
350+
CREATE TABLE t(pk INT PRIMARY KEY,
351+
fld1 INT NOT NULL,
352+
fld2 INT AS (100/fld1) VIRTUAL,
353+
KEY(fld1), KEY(fld2));
354+
INSERT IGNORE t(pk, fld1) VALUES(1, 0);
355+
Warnings:
356+
Warning 1365 Division by 0
357+
SELECT * FROM t;
358+
pk fld1 fld2
359+
1 0 NULL
360+
Warnings:
361+
Warning 1365 Division by 0
362+
BEGIN;
363+
DELETE FROM t;
364+
Warnings:
365+
Warning 1365 Division by 0
366+
Warning 1365 Division by 0
367+
Warning 1365 Division by 0
368+
INSERT INTO t (pk, fld1) VALUES(1,1);
369+
SELECT * FROM t;
370+
pk fld1 fld2
371+
1 1 100
372+
# Cleanup
373+
ROLLBACK;
374+
DROP TABLE t;
375+
# End of 10.3 tests

mysql-test/suite/gcol/t/innodb_virtual_index.test

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
--source include/have_innodb.inc
22
--source include/have_sequence.inc
33

4+
SET default_storage_engine= innodb;
5+
46
# Ensure that the history list length will actually be decremented by purge.
57
SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
68
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
@@ -280,9 +282,9 @@ DROP TABLE t1;
280282
CREATE TABLE t1(a INT PRIMARY KEY, b INT, vb DATE AS(b) VIRTUAL, KEY(vb))
281283
ENGINE=InnoDB;
282284
INSERT IGNORE INTO t1 (a,b) VALUES(1,20190132);
285+
SELECT * FROM t1;
283286
BEGIN;
284287
DELETE FROM t1;
285-
--error ER_TRUNCATED_WRONG_VALUE
286288
INSERT INTO t1 (a,b) VALUES(1,20190123);
287289
SELECT * FROM t1;
288290
ROLLBACK;
@@ -341,3 +343,49 @@ DROP TABLE t1;
341343

342344
--echo # End of 10.2 tests
343345

346+
--echo #
347+
--echo # MDEV-29299 SELECT from table with vcol index reports warning
348+
--echo #
349+
350+
CREATE TABLE t(fld1 INT NOT NULL,
351+
fld2 INT AS (100/fld1) VIRTUAL,
352+
KEY(fld1), KEY(fld2));
353+
CREATE TABLE t_odd(id int);
354+
INSERT INTO t(fld1) VALUES(1), (2);
355+
356+
--connect stop_purge,localhost,root
357+
# This prevents purge for records in t
358+
START TRANSACTION WITH CONSISTENT SNAPSHOT;
359+
INSERT INTO t_odd VALUES(10000);
360+
361+
--connection default
362+
UPDATE IGNORE t SET fld1= 3 WHERE fld1= 2;
363+
UPDATE IGNORE t SET fld1= 4 WHERE fld1= 3;
364+
UPDATE IGNORE t SET fld1= 0 WHERE fld1= 4;
365+
SELECT fld2 FROM t FORCE INDEX(fld2);
366+
SELECT fld2 FROM t FORCE INDEX(fld1);
367+
368+
--disconnect stop_purge
369+
DROP TABLE t, t_odd;
370+
371+
--echo #
372+
--echo # MDEV-29753 An error is wrongly reported during INSERT with vcol index
373+
--echo # See also Bug #22990029
374+
--echo #
375+
376+
CREATE TABLE t(pk INT PRIMARY KEY,
377+
fld1 INT NOT NULL,
378+
fld2 INT AS (100/fld1) VIRTUAL,
379+
KEY(fld1), KEY(fld2));
380+
INSERT IGNORE t(pk, fld1) VALUES(1, 0);
381+
SELECT * FROM t;
382+
BEGIN;
383+
DELETE FROM t;
384+
INSERT INTO t (pk, fld1) VALUES(1,1);
385+
SELECT * FROM t;
386+
387+
--echo # Cleanup
388+
ROLLBACK;
389+
DROP TABLE t;
390+
391+
--echo # End of 10.3 tests

mysql-test/suite/json/r/json_table.result

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,5 +1005,11 @@ name VARCHAR(10) CHARACTER SET latin1 COLLATE DEFAULT PATH '$.name'
10051005
name
10061006
Jeans
10071007
#
1008+
# MDEV-28480: Assertion `0' failed in Item_row::illegal_method_call
1009+
# on SELECT FROM JSON_TABLE
1010+
#
1011+
SELECT 1 FROM JSON_TABLE (row(1,2), '$' COLUMNS (o FOR ORDINALITY)) AS j;
1012+
ERROR 21000: Operand should contain 1 column(s)
1013+
#
10081014
# End of 10.6 tests
10091015
#

mysql-test/suite/json/t/json_table.test

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,6 +863,14 @@ SELECT * FROM json_table('[{"name":"Jeans"}]', '$[*]'
863863
) AS jt;
864864

865865

866+
--echo #
867+
--echo # MDEV-28480: Assertion `0' failed in Item_row::illegal_method_call
868+
--echo # on SELECT FROM JSON_TABLE
869+
--echo #
870+
871+
--error ER_OPERAND_COLUMNS
872+
SELECT 1 FROM JSON_TABLE (row(1,2), '$' COLUMNS (o FOR ORDINALITY)) AS j;
873+
866874
--echo #
867875
--echo # End of 10.6 tests
868876
--echo #

sql/item.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1143,6 +1143,11 @@ class Item :public Value_source,
11431143
{
11441144
return fixed() ? false : fix_fields(thd, ref);
11451145
}
1146+
1147+
/*
1148+
fix_fields_if_needed_for_scalar() is used where we need to filter items
1149+
that can't be scalars and want to return error for it.
1150+
*/
11461151
bool fix_fields_if_needed_for_scalar(THD *thd, Item **ref)
11471152
{
11481153
return fix_fields_if_needed(thd, ref) || check_cols(1);

0 commit comments

Comments
 (0)