mariadb/mysql-test/suite/galera/r/MDEV-30732.result
Jan Lindström fb49d8aa42 MDEV-30732 : wsrep_store_key_val_for_row() may invoke memcpy() on nullptr
Problem was that row_mysql_read_blob_ref can return NULL
in case when blob datatype is used in a key and its real
value is NULL. This NULL pointer is then used in memcpy
function in wsrep_store_key_val_for_row. However,
memcpy is defined so that argument 2 must not be NULL.

Fixed by adding conditions before memcpy functions so
that argument 2 is always non NULL.

Additional fixes after review
- Removed unnecessary copying key data from one buffer to another.
Use original key data buffer as input and temporary buffer as output.
Extra output buffer is needed because strnxfrm might expand input buffer
contents.
- Removed unnecessary initialization of variables and move
declaration where first time needed.
- Removed unnecessary intitialization of temporary buffer because
we already keep track actual filled length.
- Remove unneccessary extra call to charset->strnxfrm
2025-11-11 12:43:19 +02:00

627 lines
18 KiB
Text

connection node_2;
connection node_1;
SET GLOBAL sql_mode=0;
SET sql_mode=DEFAULT;
CREATE TABLE t (c INT,c2 BLOB NOT NULL,KEY k2 (c2 (1),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * from t;
c c2
1
1
1
1
1
DROP TABLE t;
CREATE TABLE t (c INT,c2 BLOB NOT NULL,UNIQUE KEY k2 (c2 (1),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 BLOB NOT NULL,KEY k2 (c, c2 (1))) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 VARCHAR(270) NOT NULL,UNIQUE KEY k2 (c2 (1),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 VARCHAR(270) NOT NULL,KEY k2 (c, c2 (1))) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 CHAR(80) NOT NULL,UNIQUE KEY k2 (c2 (1),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * from t;
c c2
1
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 CHAR(80) NOT NULL,KEY k2 (c, c2 (1))) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * from t;
c c2
1
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 TEXT NOT NULL,UNIQUE KEY k2 (c2 (1),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 TEXT NOT NULL,KEY k2 (c, c2 (1))) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT PRIMARY KEY,c2 BLOB NOT NULL,UNIQUE KEY k2 (c2 (1),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT PRIMARY KEY,c2 BLOB NOT NULL,KEY k2 (c, c2 (1))) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT PRIMARY KEY,c2 VARCHAR(270) NOT NULL,UNIQUE KEY k2 (c2 (1),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT PRIMARY KEY,c2 VARCHAR(270) NOT NULL,KEY k2 (c, c2 (1))) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT PRIMARY KEY,c2 CHAR(80) NOT NULL,UNIQUE KEY k2 (c2 (1),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * from t;
c c2
1
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT PRIMARY KEY,c2 CHAR(80) NOT NULL,KEY k2 (c, c2 (1))) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
SELECT * from t;
c c2
1
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT PRIMARY KEY,c2 TEXT NOT NULL,UNIQUE KEY k2 (c2 (1),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT PRIMARY KEY,c2 TEXT NOT NULL,KEY k2 (c, c2 (1))) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * from t;
c c2
2
3
4
5
DROP TABLE t;
SET GLOBAL sql_mode=0;
SET sql_mode=DEFAULT;
CREATE TABLE t (c INT,c2 BLOB,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT,c2 BLOB NOT NULL,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 BLOB,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2 NULL
3 NULL
4 NULL
5 NULL
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 BLOB NOT NULL,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 VARCHAR(270),KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT,c2 VARCHAR(270) NOT NULL,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 VARCHAR(270),KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2 NULL
3 NULL
4 NULL
5 NULL
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 VARCHAR(270) NOT NULL,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 CHAR(80),KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT,c2 CHAR(80) NOT NULL,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 CHAR(80),KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2 NULL
3 NULL
4 NULL
5 NULL
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 CHAR(80) NOT NULL,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="" WHERE c=1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2
3
4
5
DROP TABLE t;
CREATE TABLE t (c INT,c2 TEXT,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT,c2 TEXT NOT NULL,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 TEXT,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2 NULL
3 NULL
4 NULL
5 NULL
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 TEXT NOT NULL,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
Warnings:
Warning 1364 Field 'c2' doesn't have a default value
UPDATE t SET c2=NULL WHERE c = 1;
Warnings:
Warning 1048 Column 'c2' cannot be null
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2
3
4
5
DROP TABLE t;
SET GLOBAL sql_mode=DEFAULT;
CREATE TABLE t (c INT,c2 BLOB,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT,c2 VARCHAR(270),KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT,c2 CHAR(80),KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT,c2 TEXT,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(1),(1),(1),(1);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 BLOB,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2 NULL
3 NULL
4 NULL
5 NULL
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 VARCHAR(270),KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2 NULL
3 NULL
4 NULL
5 NULL
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 CHAR(80),KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2 NULL
3 NULL
4 NULL
5 NULL
DROP TABLE t;
CREATE TABLE t (c INT NOT NULL PRIMARY KEY,c2 TEXT,KEY k2 (c2 (6),c)) DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
INSERT INTO t (c) VALUES (1),(2),(3),(4),(5);
UPDATE t SET c2=NULL WHERE c = 1;
UPDATE t SET c2="TESTtest" WHERE c = 1;
UPDATE t SET c2="BUGbug" WHERE c2 = "TESTtest";
DELETE FROM t WHERE c2="BUGbug";
SELECT * FROM t;
c c2
2 NULL
3 NULL
4 NULL
5 NULL
DROP TABLE t;