[MDEV-11930] Unexpected ER_ERROR_EVALUATING_EXPRESSION warning upon dropping database with a bad table Created: 2017-01-28 Updated: 2017-07-05 Resolved: 2017-07-05 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Tests, Virtual Columns |
| Affects Version/s: | 10.2 |
| Fix Version/s: | 10.2.7 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Here is the essential part of main.drop_debug test:
It is expected to produce a warning ER_BAD_TABLE_ERROR, and so it does:
But if I add FLUSH TABLES, it starts producing an extra warning:
Apparently it has something to do with virtual columns, although I don't know how they get involved here. I can deal with the test if the result is expected, but it looks weird, so I need a confirmation. Not reproducible on 10.0 and 10.1. |
| Comments |
| Comment by Sergei Golubchik [ 2017-04-03 ] |
|
This happens, because Item_func::fix_fields() fails if thd->is_error() is set, assuming that it's the error during fix_fields() that caused it. But in this case thd->is_error() is set much earlier, before fix_fields() is called. One cannot rely on thd->is_error() in checks like that. |
| Comment by Sergei Golubchik [ 2017-06-23 ] |
|
On the other hand, DBUG_EXECUTE_IF("bug43138", ...) issues an error, without setting the error variable — something that can never possibly happen otherwise. It's incorrect DBUG_EXECUTE_IF. |