mirror of
https://github.com/MariaDB/server.git
synced 2025-12-02 02:16:31 +01:00
Lots of different cases, SELECT, SELECT DEFAULT(), UPDATE t SET x=DEFAULT, prepares statements, opening of a table for the I_S, prelocking (so TL_WRITE), insert with subquery (so SQLCOM_SELECT), etc. Don't check NEXTVAL privileges in fix_fields() anymore, it cannot possibly handle all the cases correctly. Make a special method Item_func_nextval::check_access() for that and invoke it from * fix_fields on explicit SELECT NEXTVAL() (but not if NEXTVAL() is used in a DEFAULT clause) * when DEFAULT bareword in used in, say, UPDATE t SET x=DEFAULT (but not if DEFAULT() itself is used in a DEFAULT clause) * in CREATE TABLE * in ALTER TABLE ALGORITHM=INPLACE (that doesn't go CREATE TABLE path) * on INSERT helpers * Virtual_column_info::check_access() to walk the item tree and invoke Item::check_access() * TABLE::check_sequence_privileges() to iterate default expressions and invoke Virtual_column_info::check_access() also, single-table UPDATE in prepared statements now associates value items with fields just as multi-update already did, fixes the case of PREPARE s "UPDATE t SET x=?"; EXECUTE s USING DEFAULT. |
||
|---|---|---|
| .. | ||
| alter.opt | ||
| alter.result | ||
| alter.test | ||
| alter_notembedded.result | ||
| alter_notembedded.test | ||
| aria.result | ||
| aria.test | ||
| auto_increment.result | ||
| auto_increment.test | ||
| binlog.result | ||
| binlog.test | ||
| concurrent_create.result | ||
| concurrent_create.test | ||
| create.result | ||
| create.test | ||
| debug_sync.opt | ||
| debug_sync.result | ||
| debug_sync.test | ||
| default.result | ||
| default.test | ||
| disabled.def | ||
| grant.result | ||
| grant.test | ||
| gtid-master.opt | ||
| gtid-slave.opt | ||
| gtid.result | ||
| gtid.test | ||
| kill.result | ||
| kill.test | ||
| lock.result | ||
| lock.test | ||
| mysqldump.result | ||
| mysqldump.test | ||
| next.result | ||
| next.test | ||
| other.result | ||
| other.test | ||
| partition.result | ||
| partition.test | ||
| read_only.result | ||
| read_only.test | ||
| rebuild.result | ||
| rebuild.test | ||
| rename.result | ||
| rename.test | ||
| replication-master.opt | ||
| replication-slave.opt | ||
| replication.result | ||
| replication.test | ||
| replication_drop.result | ||
| replication_drop.test | ||
| replication_mixed.result | ||
| replication_mixed.test | ||
| setval.result | ||
| setval.test | ||
| slave_nextval.result | ||
| slave_nextval.test | ||
| temporary.result | ||
| temporary.test | ||
| view.result | ||
| view.test | ||