Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.3.4
-
None
Description
I would think that adding system versioning for (some) system tables is a reasonable idea, given that they are not updated so often, but are extremely important. However, it doesn't work (in different ways), a couple examples are below; there are probably more, I didn't try other tables yet. Not sure whether it should be fixed or prohibited, but either one or another should be done.
alter table mysql.user add system versioning; |
# Query OK, 2 rows affected (0.04 sec) |
|
select user, host, sys_trx_start, sys_trx_end from mysql.user for system_time all; |
# +------+-----------+----------------------------+----------------------------+ |
# | user | host | sys_trx_start | sys_trx_end | |
# +------+-----------+----------------------------+----------------------------+ |
# | root | localhost | 2017-12-28 19:40:13.453770 | 2038-01-19 05:14:07.999999 |
|
# | root | 127.0.0.1 | 2017-12-28 19:40:13.453770 | 2038-01-19 05:14:07.999999 |
|
# +------+-----------+----------------------------+----------------------------+ |
|
create user foo@localhost; |
# Query OK, 0 rows affected (0.00 sec) |
|
select user, host, sys_trx_start, sys_trx_end from mysql.user for system_time as of current_timestamp; |
# +------+-----------+----------------------------+----------------------------+ |
# | user | host | sys_trx_start | sys_trx_end | |
# +------+-----------+----------------------------+----------------------------+ |
# | root | localhost | 2017-12-28 19:40:13.453770 | 2038-01-19 05:14:07.999999 |
|
# | root | 127.0.0.1 | 2017-12-28 19:40:13.453770 | 2038-01-19 05:14:07.999999 |
|
# +------+-----------+----------------------------+----------------------------+ |
|
select user, host, sys_trx_start, sys_trx_end from mysql.user for system_time all; |
# +------+-----------+----------------------------+----------------------------+ |
# | user | host | sys_trx_start | sys_trx_end | |
# +------+-----------+----------------------------+----------------------------+ |
# | root | localhost | 2017-12-28 19:40:13.453770 | 2038-01-19 05:14:07.999999 |
|
# | root | 127.0.0.1 | 2017-12-28 19:40:13.453770 | 2038-01-19 05:14:07.999999 |
|
# | foo | localhost | NULL | 0000-00-00 00:00:00.000000 | |
# +------+-----------+----------------------------+----------------------------+ |
alter table mysql.proc add system versioning; |
# Query OK, 2 rows affected (0.04 sec) |
|
create procedure pr() begin end; |
# ERROR 1805 (HY000): Column count of mysql.proc is wrong. Expected 21, found 23. The table is probably corrupted |
Attachments
Issue Links
- is duplicated by
-
MDEV-14942 System tables cannot be versioned (confirm limitation and document)
- Closed