diff -u --label \#\<buffer\ mdev_38752.test\<main\>\> --label \#\<buffer\ mdev_38752.test\<mysql-server\>\> /tmp/buffer-content-cvIKpp /tmp/buffer-content-mXurQo
--- #<buffer mdev_38752.test<main>>
+++ #<buffer mdev_38752.test<mysql-server>>
@@ -1,10 +1,13 @@
+SET sql_mode = sys.list_drop(@@sql_mode, 'ONLY_FULL_GROUP_BY');
+set @old_sql_mode=@@sql_mode;
+
 --echo # int and tinyint original case
 CREATE TABLE t (a INT, va TINYINT AS (a), KEY(va));
 --echo ## requires STRICT_ALL_TABLES to fail
 SET sql_mode=STRICT_ALL_TABLES;
 --error ER_WARN_DATA_OUT_OF_RANGE
 INSERT INTO t (a) VALUES (100),(150),(200);
-SET sql_mode=default;
+SET sql_mode=@old_sql_mode;
 
 truncate table t;
 INSERT IGNORE INTO t (a) VALUES (100),(150),(200);
@@ -56,7 +59,7 @@
 SELECT a, COUNT(*) FROM t GROUP BY a;
 SELECT a, COUNT(*) FROM t GROUP BY b;
 SELECT * FROM t;
-SET sql_mode=default;
+SET sql_mode=@old_sql_mode;
 
 truncate table t;
 INSERT IGNORE INTO t (a) VALUES (33.11),(33.222);
@@ -75,7 +78,7 @@
 INSERT INTO t (a) VALUES (33.111),(33.112);
 SELECT a, COUNT(*) FROM t GROUP BY a;
 SELECT * FROM t;
-SET sql_mode=default;
+SET sql_mode=@old_sql_mode;
 
 truncate table t;
 INSERT IGNORE INTO t (a) VALUES (33.111),(33.112);
@@ -96,7 +99,7 @@
 
 --echo # varchar(10) and varchar(5)
 CREATE TABLE t (a varchar(10), b varchar(5) as (a), key(b));
---error ER_DATA_TOO_LONG
+--error 1265
 INSERT INTO t (a) VALUES ('12345-aaa'),('12345-bbb');
 INSERT IGNORE INTO t (a) VALUES ('12345-aaa'),('12345-bbb');
 
@@ -115,7 +118,7 @@
 SELECT a, COUNT(*) FROM t GROUP BY a;
 SELECT a, COUNT(*) FROM t GROUP BY b;
 SELECT * FROM t;
-SET sql_mode=default;
+SET sql_mode=@old_sql_mode;
 
 truncate table t;
 INSERT IGNORE INTO t (a) VALUES ('2026-01-01 12:00'),('2026-01-01 16:00');
@@ -137,7 +140,7 @@
 SELECT a, COUNT(*) FROM t GROUP BY a;
 SELECT a, COUNT(*) FROM t GROUP BY b;
 SELECT * FROM t;
-SET sql_mode=default;
+SET sql_mode=@old_sql_mode;
 
 truncate table t;
 INSERT IGNORE INTO t (a) VALUES ('2026-01-01 12:00'),('2026-03-01 12:00');
@@ -152,22 +155,14 @@
 --echo # time and time, table creation with index not allowed
 CREATE TABLE t (a time(3), b time(2) as (a));
 drop table t;
---error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
 CREATE TABLE t (a time(3), b time(2) as (a), key (b));
+drop table t;
 
 --echo # signed and unsigned, optimization disabled
 CREATE TABLE t (a tinyint, b tinyint unsigned as (a));
---echo ## succeeds even with STRICT_ALL_TABLES
-SET sql_mode=STRICT_ALL_TABLES;
+--error ER_WARN_DATA_OUT_OF_RANGE
 INSERT INTO t (a) VALUES (-1),(-2),(111);
-explain
-SELECT a, COUNT(*) FROM t GROUP BY a;
-SELECT a, COUNT(*) FROM t GROUP BY a;
-SELECT a, COUNT(*) FROM t GROUP BY b;
-SELECT * FROM t;
-SET sql_mode=default;
 
-truncate table t;
 INSERT IGNORE INTO t (a) VALUES (-1),(-2),(111);
 explain
 SELECT a, COUNT(*) FROM t GROUP BY a;
@@ -180,10 +175,9 @@
 
 --echo # insert then add index
 CREATE TABLE t (a INT, va TINYINT AS (a));
-SET sql_mode=STRICT_ALL_TABLES;
-INSERT INTO t (a) VALUES (100),(150),(200);
-SET sql_mode=DEFAULT;
 --error ER_WARN_DATA_OUT_OF_RANGE
+INSERT INTO t (a) VALUES (100),(150),(200);
+INSERT IGNORE INTO t (a) VALUES (100),(150),(200);
 ALTER TABLE t add index i(a);
 drop table t;
 
@@ -193,7 +187,7 @@
 --error ER_WARN_DATA_OUT_OF_RANGE
 INSERT INTO t (a) VALUES (100),(150),(200);
 INSERT IGNORE INTO t (a) VALUES (100),(150),(200);
-SET sql_mode=DEFAULT;
+SET sql_mode=@old_sql_mode;
 drop table t;
 
 --echo # order by also affected

Diff finished.  Thu Apr  2 15:11:57 2026
