Apache Airflow 
Version : 1.10.12

Using HiveServer2Hook with default connection ( assuming that auth_mechanism: PLAIN, but also set as extra to double make sure ) 

The password edit test is left empty, but from hook/ connections code and logs it seems that is not:

from airflow.hooks.base_hook import BaseHook
connection = BaseHook.get_connection('hiveserver2_hadoop_one_umlaut_default')
print(connection.password)

[2020-10-05 09:04:35,396] {base_task_runner.py:113} INFO - Job 20527: Subtask UMLAUT_CT_MASTER_TABLE_LOAD [2020-10-05 09:04:35,395] {base_hook.py:89} INFO - Using connection to: id: hiveserver2_hadoop_one_umlaut_default. Host: 146.11.85.131, Port: 10000, Schema: umlaut, Login: hdfs, **Password: XXXXXXXX**, extra: XXXXXXXX

def log_info(self):
        return ("id: {}. Host: {}, Port: {}, Schema: {}, "
                "Login: {}, Password: {}, extra: {}".
                format(self.conn_id,
                       self.host,
                       self.port,
                       self.schema,
                       self.login,
                       "XXXXXXXX" if self.password else None,
                       "XXXXXXXX" if self.extra_dejson else None))

from latest PyHive, looks like password is not None

https://github.com/dropbox/PyHive/blob/master/pyhive/hive.py

![image](https://user-images.githubusercontent.com/10634077/95061218-49a34f80-0736-11eb-9380-98638884ade3.png)

airflow/providers/apache/hive/hooks/hive.py
table = client.get_table(dbname=schema, tbl_name=table_name)
            key_name_set = {key.name for key in table.partitionKeys}
            if len(table.partitionKeys) == 1:
                field = table.partitionKeys[0].name
            elif not field:
                raise AirflowException("Please specify the field you want the max value for.")
            elif field not in key_name_set:
                raise AirflowException("Provided field is not a partition key.")
            if filter_map and not set(filter_map.keys()).issubset(key_name_set):
                raise AirflowException("Provided filter_map contains keys that are not partition key.")
            part_names = client.get_partition_names(
                schema, table_name, max_parts=HiveMetastoreHook.MAX_PART_COUNT
            )
            part_specs = [client.partition_name_to_spec(part_name) for part_name in part_names]
        return HiveMetastoreHook._get_max_partition_from_part_specs(part_specs, field, filter_map)
    def table_exists(self, table_name: str, db: str = 'default') -> bool:
        """
        Check if table exists
        >>> hh = HiveMetastoreHook()
        >>> hh.table_exists(db='airflow', table_name='static_babynames')
        True
        >>> hh.table_exists(db='airflow', table_name='does_not_exist')
        False
        """
        try:
            self.get_table(table_name, db)
            return True
        except Exception:  
            return False
    def drop_partitions(self, table_name, part_vals, delete_data=False, db='default'):