Today's Taks:
Making sure that 'UPDATE (select * from (select * from t1) x ) d set a=0' is processed in a same way as 'CREATE VIEW v AS (select * from (select * from t1) x)'.
Question: What is the usage of used_tables? how are they represented using table_map.
→setup_wild expands '*'.
→ table 'x' is materialized (i.e tmp table is created) during create view (but why? does it even have any difference)
→ For derived tables field translation can be created only after unit is prepared so all '*' gets unrolled. ALSO, field translation are only created for merged derived tables.

This boils down to be a privilege issue. See pic given below:

For select command tables→grant.privilege = SELECT_ACL but for derived it is NO_ACL. HERE tables→alias= 'x'

Well concept works. But I have a doubt.
Question: Why is tmp table created for 'select * from (select * from t1) x' (x→table→s→tmp_table = INTERNAL_TMP_TABLE) even though it is merged. Find answer to this you'll understand how to handle preparing a unit.
Weird: 'create view v4 as (select * from (select * from (select * from (select * from t1) x) y ) z)'. View v4 is not updatable on 10.5?
Also, what should be the next_global order for DTs.
Commit of today's work: https://github.com/rahulanand16nov/server/commit/e05f50d074ee1cab1c2d7fd1907058d3f84c7ecc