[ https://issues.apache.org/jira/browse/HIVE-17683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16494227#comment-16494227 ]
Eugene Koifman commented on HIVE-17683: --------------------------------------- I agree that only Sink/Scan need to be annotated, but I think a single TableScan may read multiple Partitions of a table. So {{select * from T where p in (1,2)}} where 'p' is a partition column, I think should get 2 Shared partition locks. So it doesn't quite map 1-1. Also, we don't have this yet, but I'd like to add in the future Intention locks, where a an S lock on a partition would cause an IS lock on parent table and DB objects. Also, perhaps down the road we'll add support for finer grained locking, like locking individual buckets of a bucketed table - buckets are not represented in the QP at all. So I think to keep things flexible and simple, I'd suggest adding support for "explain locks select a from foo", that will simply dump the locks that will be acquired as a table with 2 columns (resource name like cat.db.table.part, lock Type). This would be very useful to users. I'm not even sure we need to attach this output to the Plan output. I think HIVE-18948 may be a lot of work. > Annotate Query Plan with locking information > -------------------------------------------- > > Key: HIVE-17683 > URL: https://issues.apache.org/jira/browse/HIVE-17683 > Project: Hive > Issue Type: New Feature > Components: Transactions > Reporter: Eugene Koifman > Assignee: Igor Kryvenko > Priority: Critical > > Explore if it's possible to add info about what locks will be asked for to > the query plan. > Lock acquisition (for Acid Lock Manager) is done in > DbTxnManager.acquireLocks() which is called once the query starts running. > Would need to refactor that. -- This message was sent by Atlassian JIRA (v7.6.3#76005)