Skip to content

Commit 4c01ed1

Browse files
authored
DBT-783 Fix-1.8.0-hive (#155)
Upgraded dbt-hive adapter to dbt-core 1.8.0.
1 parent a135838 commit 4c01ed1

9 files changed

+28
-36
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ This code base is now being actively developed and maintained by Cloudera.
1515

1616
### Requirements
1717

18-
Current version of dbt-hive use dbt-core 1.7.*. We are actively working on supporting the next version of dbt-core 1.8
18+
Current version of dbt-hive uses dbt-core 1.8.*. We are actively working on supporting the next available version of dbt-core.
1919

2020
Python >= 3.8
21-
dbt-core ~= 1.7.*
21+
dbt-core ~= 1.8.*
2222
impyla >= 0.18
2323

2424
### Install

dbt/adapters/hive/__version__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14-
version = "1.7.0"
14+
version = "1.8.0"

dbt/adapters/hive/cloudera_tracking.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import threading
2424
from dbt.tracking import active_user
2525

26-
from dbt.adapters.base import Credentials
27-
from dbt.events import AdapterLogger
26+
from dbt.adapters.contracts.connection import Credentials
27+
from dbt.adapters.events.logging import AdapterLogger
2828
from decouple import config
2929

3030

dbt/adapters/hive/column.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from typing import TypeVar, Optional, Dict, Any
1616

1717
from dbt.adapters.base.column import Column
18-
from dbt.dataclass_schema import dbtClassMixin
18+
from dbt_common.dataclass_schema import dbtClassMixin
1919

2020
Self = TypeVar("Self", bound="HiveColumn")
2121

dbt/adapters/hive/connections.py

+8-7
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,21 @@
1717
from dataclasses import dataclass
1818
from datetime import datetime
1919
from typing import Any, Optional, Tuple
20+
from multiprocessing.context import SpawnContext
2021

2122
import dbt.exceptions
2223
import impala.dbapi
23-
from dbt.adapters.base import Credentials
24+
from dbt.adapters.contracts.connection import Credentials
2425
from dbt.adapters.sql import SQLConnectionManager
25-
from dbt.contracts.connection import (
26+
from dbt.adapters.contracts.connection import (
2627
AdapterResponse,
2728
AdapterRequiredConfig,
2829
Connection,
2930
ConnectionState,
3031
)
31-
from dbt.events import AdapterLogger
32-
from dbt.events.functions import fire_event
33-
from dbt.events.types import ConnectionUsed, SQLQuery, SQLQueryStatus
32+
from dbt.adapters.events.logging import AdapterLogger
33+
from dbt_common.events.functions import fire_event
34+
from dbt.adapters.events.types import ConnectionUsed, SQLQuery, SQLQueryStatus
3435
from dbt.utils import DECIMALS
3536

3637
import json
@@ -181,8 +182,8 @@ class HiveConnectionManager(SQLConnectionManager):
181182

182183
hive_version = None
183184

184-
def __init__(self, profile: AdapterRequiredConfig):
185-
super().__init__(profile)
185+
def __init__(self, profile: AdapterRequiredConfig, mp_context: SpawnContext):
186+
super().__init__(profile, mp_context)
186187
# generate profile related object for instrumentation.
187188
tracker.generate_profile_info(self)
188189

dbt/adapters/hive/impl.py

+11-20
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from collections import OrderedDict
1515
from concurrent.futures import Future
1616
from dataclasses import dataclass
17-
from typing import Optional, List, Dict, Any, Union, Iterable
17+
from typing import Optional, List, Dict, Any, Union, Iterable, FrozenSet, Tuple
1818
import agate
1919

2020
import dbt
@@ -23,17 +23,18 @@
2323
from dbt.adapters.base import AdapterConfig
2424
from dbt.adapters.base.impl import catch_as_completed
2525
from dbt.adapters.sql import SQLAdapter
26+
from dbt.adapters.contracts.relation import RelationConfig
2627

2728
import dbt.adapters.hive.cloudera_tracking as tracker
2829
from dbt.adapters.hive import HiveConnectionManager
2930
from dbt.adapters.hive import HiveRelation
3031
from dbt.adapters.hive import HiveColumn
3132
from dbt.adapters.base import BaseRelation
32-
from dbt.utils import executor
33+
from dbt_common.utils import executor
3334

34-
from dbt.clients import agate_helper
35+
from dbt_common.clients import agate_helper
3536

36-
from dbt.events import AdapterLogger
37+
from dbt.adapters.events.logging import AdapterLogger
3738

3839
logger = AdapterLogger("Hive")
3940

@@ -347,9 +348,11 @@ def get_properties(self, relation: Relation) -> Dict[str, str]:
347348
)
348349
return dict(properties)
349350

350-
def get_catalog(self, manifest):
351+
def get_catalog(
352+
self, relation_configs: Iterable[RelationConfig], used_schemas: FrozenSet[Tuple[str, str]]
353+
):
351354
"""Return a catalogs that contains information of all schemas"""
352-
schema_map = self._get_catalog_schemas(manifest)
355+
schema_map = self._get_catalog_schemas(relation_configs)
353356
if len(schema_map) > 1:
354357
dbt.exceptions.raise_compiler_error(
355358
f"Expected only one database in get_catalog, found " f"{list(schema_map)}"
@@ -361,14 +364,7 @@ def get_catalog(self, manifest):
361364
for info, schemas in schema_map.items():
362365
for schema in schemas:
363366
futures.append(
364-
tpe.submit_connected(
365-
self,
366-
schema,
367-
self._get_one_catalog,
368-
info,
369-
[schema],
370-
manifest,
371-
)
367+
tpe.submit_connected(self, schema, self._get_one_catalog, info, [schema])
372368
)
373369
# at this point all catalogs in futures list will be merged into one
374370
# insides`catch_on_completed` method of the parent class
@@ -388,12 +384,7 @@ def get_catalog(self, manifest):
388384

389385
return catalogs, exceptions
390386

391-
def _get_one_catalog(
392-
self,
393-
information_schema,
394-
schemas,
395-
manifest,
396-
) -> agate.Table:
387+
def _get_one_catalog(self, information_schema, schemas) -> agate.Table:
397388
"""Get ONE catalog. Used by get_catalog
398389
399390
manifest is used to run the method in other context's

dbt/adapters/hive/relation.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from dataclasses import dataclass, field
1717

1818
from dbt.adapters.base.relation import BaseRelation, Policy
19-
from dbt.exceptions import DbtRuntimeError
19+
from dbt_common.exceptions import DbtRuntimeError
2020
import dbt.adapters.hive.cloudera_tracking as tracker
2121

2222

dev-requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
dbt-tests-adapter==1.7.*
1+
dbt-tests-adapter==1.8.*
22
pre-commit~=2.21;python_version=="3.7"
33
pre-commit~=3.2;python_version>="3.8"
44
pytest

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def _get_dbt_core_version():
4545

4646
package_name = "dbt-hive"
4747
# make sure this always matches dbt/adapters/hive/__version__.py
48-
package_version = "1.7.0"
48+
package_version = "1.8.0"
4949
description = """The Hive adapter plugin for dbt"""
5050

5151
dbt_core_version = _get_dbt_core_version()

0 commit comments

Comments
 (0)