Commit 2c973d4
authored
Fix
In MySQL non-STRICT mode, when inserting from a `SELECT` query:
When a column is declared as `NOT NULL`, inserting a `NULL` value saves
an IMPLICIT DEFAULT value instead. This behavior only applies to the
`INSERT ... SELECT` syntax (not `VALUES` or `SET`).
In other words:
```sql
CREATE TABLE t (value INT NOT NULL);
-- Strict mode:
INSERT INTO t VALUES (NULL); -- error
INSERT INTO t SET value = NULL; -- error
INSERT INTO t SELECT NULL; -- error
INSERT INTO t VALUES ((SELECT NULL)); -- error
-- Non-strict mode:
INSERT INTO t VALUES (NULL); -- error
INSERT INTO t SET value = NULL; -- error
INSERT INTO t SELECT NULL; -- OK, saves 0 (the implicit default for integer)
INSERT INTO t VALUES ((SELECT NULL)); -- error
```
This fixes some failures in the activation of the top 100 plugins.INSERT ... SELECT ... edge case in non-strict mode (#285)2 files changed
Lines changed: 53 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10539 | 10539 | | |
10540 | 10540 | | |
10541 | 10541 | | |
| 10542 | + | |
| 10543 | + | |
| 10544 | + | |
| 10545 | + | |
| 10546 | + | |
| 10547 | + | |
| 10548 | + | |
| 10549 | + | |
| 10550 | + | |
| 10551 | + | |
| 10552 | + | |
| 10553 | + | |
| 10554 | + | |
| 10555 | + | |
| 10556 | + | |
| 10557 | + | |
| 10558 | + | |
| 10559 | + | |
| 10560 | + | |
| 10561 | + | |
| 10562 | + | |
| 10563 | + | |
| 10564 | + | |
| 10565 | + | |
| 10566 | + | |
| 10567 | + | |
| 10568 | + | |
| 10569 | + | |
| 10570 | + | |
| 10571 | + | |
| 10572 | + | |
| 10573 | + | |
| 10574 | + | |
| 10575 | + | |
| 10576 | + | |
| 10577 | + | |
10542 | 10578 | | |
10543 | 10579 | | |
10544 | 10580 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4594 | 4594 | | |
4595 | 4595 | | |
4596 | 4596 | | |
4597 | | - | |
| 4597 | + | |
| 4598 | + | |
| 4599 | + | |
| 4600 | + | |
| 4601 | + | |
| 4602 | + | |
| 4603 | + | |
| 4604 | + | |
| 4605 | + | |
| 4606 | + | |
| 4607 | + | |
| 4608 | + | |
| 4609 | + | |
| 4610 | + | |
| 4611 | + | |
| 4612 | + | |
| 4613 | + | |
4598 | 4614 | | |
4599 | 4615 | | |
4600 | 4616 | | |
| |||
0 commit comments