[ https://issues.apache.org/jira/browse/HIVE-28297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on HIVE-28297 started by Wechar. ------------------------------------- > Unify table pattern definition in Hive MetaStore > ------------------------------------------------ > > Key: HIVE-28297 > URL: https://issues.apache.org/jira/browse/HIVE-28297 > Project: Hive > Issue Type: Improvement > Components: Hive > Reporter: Wechar > Assignee: Wechar > Priority: Major > > *Current Situation* > There are two cases for table pattern in Hive: > - Case 1: Wildcards ('*' and '|) > It's replaced by SQL type like expressions with '%' and '_' since Hive 4.0.0, > details in HIVE-23359. > DDL documents: > https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Show > - Case 2: Java regular expression > It's declared in hive code: > [https://github.com/apache/hive/blob/45867be6cb5308566e4cf16c7b4cf8081085b58c/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java#L1882-L1894], > and also match the jdo {{matches(String pattern)}} method: > [https://www.datanucleus.org/products/accessplatform/jdo/query.html] > *Issues* > The different definitions cause the misuse of table pattern, in some codes it > use * to represent match everything, while it use .* in other codes. > The misuse would cause the wrong result because both client and server side > of HMS need a trick handle for '*' with code like: > {code:java} > patterns.split("\\|") > pattern.replaceAll("\\*", ".*")) > {code} > *Action* > We should honor the definition in HMS of Case 2, because Case 1 is just the > frontend of SQL, and it has been replaced. -- This message was sent by Atlassian Jira (v8.20.10#820010)