You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by de...@apache.org on 2023/08/11 01:26:53 UTC

[hive] branch master updated: HIVE-27582: Do not cache HBase table input format in FetchOperator (#4565) (Ganesha Shreedhara, reviewed by Himanshu Mishra, Zhihua Deng, Butao Zhang)

This is an automated email from the ASF dual-hosted git repository.

dengzh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new c31aa5ef648 HIVE-27582: Do not cache HBase table input format in FetchOperator (#4565) (Ganesha Shreedhara, reviewed by Himanshu Mishra, Zhihua Deng, Butao Zhang)
c31aa5ef648 is described below

commit c31aa5ef6482f3cc065adcbc47dac0fc9c4c2241
Author: Ganesha Shreedhara <ga...@gmail.com>
AuthorDate: Fri Aug 11 06:56:46 2023 +0530

    HIVE-27582: Do not cache HBase table input format in FetchOperator (#4565) (Ganesha Shreedhara, reviewed by Himanshu Mishra, Zhihua Deng, Butao Zhang)
---
 ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java
index c3fc4094504..58ff719141d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java
@@ -227,7 +227,11 @@ public class FetchOperator implements Serializable {
     if (format == null) {
       try {
         format = ReflectionUtil.newInstance(inputFormatClass, conf);
-        inputFormats.put(inputFormatClass.getName(), format);
+        // HBase input formats are not thread safe today. See HIVE-8808.
+        String inputFormatName = inputFormatClass.getName().toLowerCase();
+        if (!inputFormatName.contains("hbase")) {
+          inputFormats.put(inputFormatClass.getName(), format);
+        }
       } catch (Exception e) {
         throw new IOException("Cannot create an instance of InputFormat class "
                                   + inputFormatClass.getName() + " as specified in mapredWork!", e);