16:33 — Going to study about privileges
16:40 — Studying privilege.h
ACL stands for Access Control List
17:01 — Studying sql_priv.h
17:34 — Studying sql_acl
18:06 — Studying grant.h
18:16 — Studying table.h about grants
"When/if the intersection of these sets is empty, access is granted." shouldn't this be opposite? i.e when intersection is not empty?
18:25 — Break.
19:04 — Back to work. Going to write test cases for derived_update with updatable and non-updatable fields
19:29 — Adding privileges based test cases into derived_update
20:00 — Trying to figure out how does privileges work.
MariaDB [test]> REVOKE UPDATE on t1 from 'root'@'localhost';
Query OK, 0 rows affected (0.008 sec)
MariaDB [test]> update t1 set a=0;
Query OK, 0 rows affected (0.001 sec)
Rows matched: 1 Changed: 0 Warnings: 0
// I don't get it?? why is update being allowed? EVEN IF I FLUSH PRIVILEGES?
21:39 — Emailed Igor and taking a break.
22:11 — Adding more test cases to cte_update.
22:38 — Adding nested CTE list to cte_update.
Commit of tests with 1250+ lines without .result files being updataed:
https://github.com/rahulanand16nov/server/commit/d01fbb4744933f214535f335e6762fa009d96e9b