Hi guys i'm studing mariadb code and reading user manuals to know more about features. My last study was about query cache with many ideas in some MDEV and some patchs sent

Now i'm reading about partition
My questions are

1)when a update or a delete is done on a expecific partition like:
Update table set field=2 where partition=1
How lock is done? Lock is done at table level or partition level?

2)Today we have vertical partition, could we implement 'virtual' horizontal partition
update and delete in some group of fields (horizontal partition) only lock the horizontal partition being changed and used in where clausule?
Any idea and problems on how to develop it?

3) can query cache be partition pruned?
instead of removing entire table, just remove the partition that was changed
It will consume more memory but will do a better work in cache
Maybe a new key like SQL_CACHE_PARTITON or a new variable, query_cache_min_unit=PARTITION or TABLE could change how the query will be cached and pruned
Thanks guys