Skip to content

Commit dc1d399

Browse files
author
Catalin Besleaga
committed
Bug#37219226 json value unexpected with default ''[2, noclose]
BLOB based columns should store the NO_DEFAULT_VALUE_FLAG, not only to behave as if the flag is stored, this way warnings will be generated as expected. Change-Id: Iadd7278fa9eacbb0866a242a509b97982f98a3ad
1 parent c116439 commit dc1d399

File tree

7 files changed

+16
-0
lines changed

7 files changed

+16
-0
lines changed

mysql-test/r/order_by_all.result

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,8 @@ Warnings:
292292
Warning 1681 Integer display width is deprecated and will be removed in a future release.
293293
Warning 1101 BLOB, TEXT, GEOMETRY or JSON column 'info' can't have a default value
294294
insert into t1 (member_id) values (1),(2),(3);
295+
Warnings:
296+
Warning 1364 Field 'info' doesn't have a default value
295297
select member_id, nickname, voornaam FROM t1
296298
ORDER by lastchange_datum DESC LIMIT 2;
297299
member_id nickname voornaam

mysql-test/r/order_by_icp_mrr.result

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,8 @@ Warnings:
292292
Warning 1681 Integer display width is deprecated and will be removed in a future release.
293293
Warning 1101 BLOB, TEXT, GEOMETRY or JSON column 'info' can't have a default value
294294
insert into t1 (member_id) values (1),(2),(3);
295+
Warnings:
296+
Warning 1364 Field 'info' doesn't have a default value
295297
select member_id, nickname, voornaam FROM t1
296298
ORDER by lastchange_datum DESC LIMIT 2;
297299
member_id nickname voornaam

mysql-test/r/order_by_none.result

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,8 @@ Warnings:
291291
Warning 1681 Integer display width is deprecated and will be removed in a future release.
292292
Warning 1101 BLOB, TEXT, GEOMETRY or JSON column 'info' can't have a default value
293293
insert into t1 (member_id) values (1),(2),(3);
294+
Warnings:
295+
Warning 1364 Field 'info' doesn't have a default value
294296
select member_id, nickname, voornaam FROM t1
295297
ORDER by lastchange_datum DESC LIMIT 2;
296298
member_id nickname voornaam

mysql-test/r/type_blob.result

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,8 @@ create table t1 (id integer auto_increment unique,imagem LONGBLOB not null defau
529529
Warnings:
530530
Warning 1101 BLOB, TEXT, GEOMETRY or JSON column 'imagem' can't have a default value
531531
insert into t1 (id) values (1);
532+
Warnings:
533+
Warning 1364 Field 'imagem' doesn't have a default value
532534
select
533535
charset(load_file('../../std_data/words.dat')),
534536
collation(load_file('../../std_data/words.dat')),
@@ -820,6 +822,8 @@ t1 CREATE TABLE `t1` (
820822
`a` text
821823
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
822824
insert into t1 values (default);
825+
Warnings:
826+
Warning 1364 Field 'a' doesn't have a default value
823827
select * from t1;
824828
a
825829
NULL

mysql-test/r/type_ranges.result

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ Warning 1264 Out of range value for column 'ushort' at row 1
145145
Warning 1264 Out of range value for column 'umedium' at row 1
146146
Warning 1265 Data truncated for column 'options' at row 1
147147
insert into t1 (tiny) values (1);
148+
Warnings:
149+
Warning 1364 Field 'mediumblob_col' doesn't have a default value
150+
Warning 1364 Field 'longblob_col' doesn't have a default value
148151
select 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 from t1;
149152
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
150153
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

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,8 @@ CREATE TABLE t0(a int, b BLOB NOT NULL DEFAULT '');
327327
Warnings:
328328
Warning 1101 BLOB, TEXT, GEOMETRY or JSON column 'b' can't have a default value
329329
INSERT INTO t0(a) VALUES (1),(2);
330+
Warnings:
331+
Warning 1364 Field 'b' doesn't have a default value
330332
SHOW CREATE TABLE t0;
331333
Table Create Table
332334
t0 CREATE TABLE `t0` (

sql/create_field.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,7 @@ bool Create_field::init(
429429
ER_THD(thd, ER_BLOB_CANT_HAVE_DEFAULT), fld_name);
430430
}
431431
constant_default = nullptr;
432+
if (fld_type != MYSQL_TYPE_JSON) flags |= NO_DEFAULT_VALUE_FLAG;
432433
}
433434

434435
flags |= BLOB_FLAG;

0 commit comments

Comments
 (0)