[ https://issues.apache.org/jira/browse/HIVE-27731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated HIVE-27731: ---------------------------------- Labels: pull-request-available (was: ) > Perform metadata delete when only static filters are present > ------------------------------------------------------------ > > Key: HIVE-27731 > URL: https://issues.apache.org/jira/browse/HIVE-27731 > Project: Hive > Issue Type: Improvement > Reporter: Sourabh Badhya > Assignee: Sourabh Badhya > Priority: Major > Labels: pull-request-available > > When the query has static filters only, try to perform a metadata delete > directly rather than moving forward with positional delete. > Some relevant use cases where metadata deletes can be used - > {code:java} > DELETE FROM ice_table where id = 1;{code} > As seen above only filter is (id = 1). If in scenarios wherein the filter > corresponds to a partition column then metadata delete is more efficient and > does not generate additional files. > For partition evolution cases, if it is not possible to perform metadata > delete then positional delete is done. > Some other optimisations that can be seen here is utilizing vectorized > expressions for UDFs which provide vectorized expressions such as year - > {code:java} > DELETE FROM ice_table where id = 1 AND year(datecol) = 2015;{code} > Delete query with Multi-table scans will not optimized using this method > since determination of where clauses happens at runtime. > A similar optimisation is seen in Spark where metadata delete is done > whenever possible- > [https://github.com/apache/iceberg/blob/master/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkTable.java#L297-L389] -- This message was sent by Atlassian Jira (v8.20.10#820010)