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.

Summary

Commit of tests with 1250+ lines without .result files being updataed:

https://github.com/rahulanand16nov/server/commit/d01fbb4744933f214535f335e6762fa009d96e9b