[MDEV-15124] Simultaneous assignment for INSERT ... SET Created: 2018-01-30  Updated: 2018-04-10

Status: Open
Project: MariaDB Server
Component/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Alexander Barkov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-13417 UPDATE produces wrong values if an up... Closed
relates to MDEV-15122 Simultaneous assignment for LOAD..SET Open
relates to MDEV-15123 Make multiple user variable assignmen... Open

 Description   

DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a INT DEFAULT 10, b INT DEFAULT 20, c INT);
INSERT INTO t1 SET c=a;
SELECT * FROM t1;

+------+------+------+
| a    | b    | c    |
+------+------+------+
|   10 |   20 |   10 |
+------+------+------+

Notice, c was assigned to 10, which is the default value for a.

DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a INT DEFAULT 10, b INT DEFAULT 20, c INT);
INSERT INTO t1 SET a=11,c=a;
SELECT * FROM t1;

+------+------+------+
| a    | b    | c    |
+------+------+------+
|   11 |   20 |   11 |
+------+------+------+

Notice, c was assigned to 11, which is the new value of a, after a=11 was done.

We're assing a new sql_mode soon, for simultaneous assignments (See MDEV-13417).
this query should probably also follow the new sql_mode, so c is to the initial (default) value of a, which is 10.


Generated at Thu Feb 08 08:18:52 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.