This is an automated email from the ASF dual-hosted git repository.
zykkk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 8272232e21 [fix](dbt) fix _MISSING_TYPE object is not callable bug
(#21577)
8272232e21 is described below
commit 8272232e2161abcd0a5a38a2bf26245df4b5ab30
Author: catpineapple <[email protected]>
AuthorDate: Fri Jul 7 10:45:42 2023 +0800
[fix](dbt) fix _MISSING_TYPE object is not callable bug (#21577)
---
extension/dbt-doris/dbt/adapters/doris/__version__.py | 2 +-
extension/dbt-doris/dbt/adapters/doris/connections.py | 14 +++++++-------
extension/dbt-doris/dbt/adapters/doris/impl.py | 17 +++++++----------
extension/dbt-doris/dbt/adapters/doris/relation.py | 6 +++---
extension/dbt-doris/dbt/include/doris/dbt_project.yml | 2 +-
.../dbt/include/doris/macros/adapters/relation.sql | 6 +++---
extension/dbt-doris/setup.py | 5 ++---
7 files changed, 24 insertions(+), 28 deletions(-)
diff --git a/extension/dbt-doris/dbt/adapters/doris/__version__.py
b/extension/dbt-doris/dbt/adapters/doris/__version__.py
index 201fc2407f..182e7d11f2 100644
--- a/extension/dbt-doris/dbt/adapters/doris/__version__.py
+++ b/extension/dbt-doris/dbt/adapters/doris/__version__.py
@@ -22,4 +22,4 @@
# this 'version' must be set !!!
# otherwise the adapters will not be found after the 'dbt init xxx' command
-version = "0.2.1"
+version = "0.3.0"
diff --git a/extension/dbt-doris/dbt/adapters/doris/connections.py
b/extension/dbt-doris/dbt/adapters/doris/connections.py
index bdbd61e843..f19878ba48 100644
--- a/extension/dbt-doris/dbt/adapters/doris/connections.py
+++ b/extension/dbt-doris/dbt/adapters/doris/connections.py
@@ -56,7 +56,7 @@ class DorisCredentials(Credentials):
def __post_init__(self):
if self.database is not None and self.database != self.schema:
- raise exceptions.RuntimeException(
+ raise exceptions.DbtRuntimeError(
f" schema: {self.schema} \n"
f" database: {self.database} \n"
f"On Doris, database must be omitted or have the same value as"
@@ -102,7 +102,7 @@ class DorisConnectionManager(SQLConnectionManager):
connection.handle = None
connection.state = 'fail'
- raise dbt.exceptions.FailedToConnectException(str(e))
+ raise exceptions.FailedToConnectError(str(e))
return connection
@classmethod
@@ -126,18 +126,18 @@ class DorisConnectionManager(SQLConnectionManager):
rows_affected=num_rows,
)
- @contextmanager
- def exception_handler(self, sql: str) -> ContextManager:
+ @contextmanager
+ def exception_handler(self, sql: str) -> ContextManager:
try:
yield
except mysql.connector.DatabaseError as e:
logger.debug(f"Doris database error: {e}, sql: {sql}")
- raise exceptions.DatabaseException(str(e)) from e
+ raise exceptions.DbtDatabaseError(str(e)) from e
except Exception as e:
logger.debug(f"Error running SQL: {sql}")
- if isinstance(e, exceptions.RuntimeException):
+ if isinstance(e, exceptions.DbtRuntimeError):
raise e
- raise exceptions.RuntimeException(str(e)) from e
+ raise exceptions.DbtRuntimeError(str(e)) from e
@classmethod
def begin(self):
diff --git a/extension/dbt-doris/dbt/adapters/doris/impl.py
b/extension/dbt-doris/dbt/adapters/doris/impl.py
index d2c1a866e3..49ae2abb5f 100644
--- a/extension/dbt-doris/dbt/adapters/doris/impl.py
+++ b/extension/dbt-doris/dbt/adapters/doris/impl.py
@@ -91,10 +91,7 @@ class DorisAdapter(SQLAdapter):
return exists
def get_relation(self, database: Optional[str], schema: str, identifier:
str):
- if not self.Relation.include_policy.database:
- database = None
-
- return super().get_relation(database, schema, identifier)
+ return super().get_relation(None, schema, identifier)
def drop_schema(self, relation: BaseRelation):
relations = self.list_relations(
@@ -112,7 +109,7 @@ class DorisAdapter(SQLAdapter):
relations = []
for row in results:
if len(row) != 4:
- raise dbt.exceptions.RuntimeException(
+ raise dbt.exceptions.DbtRuntimeError(
f"Invalid value from 'show table extended ...', "
f"got {len(row)} values, expected 4"
)
@@ -130,7 +127,7 @@ class DorisAdapter(SQLAdapter):
def get_catalog(self, manifest):
schema_map = self._get_catalog_schemas(manifest)
-
+
with executor(self.config) as tpe:
futures: List[Future[agate.Table]] = []
for info, schemas in schema_map.items():
@@ -171,10 +168,10 @@ class DorisAdapter(SQLAdapter):
return table.where(cls._catalog_filter_schemas(manifest))
def _get_one_catalog(
- self,
- information_schema: InformationSchema,
- schemas: Set[str],
- manifest: Manifest,
+ self,
+ information_schema: InformationSchema,
+ schemas: Set[str],
+ manifest: Manifest,
) -> agate.Table:
if len(schemas) != 1:
dbt.exceptions.raise_compiler_error(
diff --git a/extension/dbt-doris/dbt/adapters/doris/relation.py
b/extension/dbt-doris/dbt/adapters/doris/relation.py
index cfbefa46fc..17956d1e40 100644
--- a/extension/dbt-doris/dbt/adapters/doris/relation.py
+++ b/extension/dbt-doris/dbt/adapters/doris/relation.py
@@ -18,7 +18,7 @@
# specific language governing permissions and limitations
# under the License.
-from dataclasses import dataclass
+from dataclasses import dataclass, field
from dbt.adapters.base.relation import BaseRelation, Policy
from dbt.exceptions import DbtRuntimeError
@@ -40,8 +40,8 @@ class DorisIncludePolicy(Policy):
@dataclass(frozen=True, eq=False, repr=False)
class DorisRelation(BaseRelation):
- quote_policy: DorisQuotePolicy = DorisQuotePolicy()
- include_policy: DorisIncludePolicy = DorisIncludePolicy()
+ quote_policy: DorisQuotePolicy = field(default_factory=lambda:
DorisQuotePolicy())
+ include_policy: DorisIncludePolicy = field(default_factory=lambda:
DorisIncludePolicy())
quote_character: str = "`"
def __post_init__(self):
diff --git a/extension/dbt-doris/dbt/include/doris/dbt_project.yml
b/extension/dbt-doris/dbt/include/doris/dbt_project.yml
index 1cd7e916a8..5712a0e267 100644
--- a/extension/dbt-doris/dbt/include/doris/dbt_project.yml
+++ b/extension/dbt-doris/dbt/include/doris/dbt_project.yml
@@ -19,7 +19,7 @@
# under the License.
name: dbt_doris
-version: 0.2.1
+version: 0.3.0
config-version: 2
macro-paths: ["macros"]
diff --git a/extension/dbt-doris/dbt/include/doris/macros/adapters/relation.sql
b/extension/dbt-doris/dbt/include/doris/macros/adapters/relation.sql
index 08e92dc823..a75a9ce069 100644
--- a/extension/dbt-doris/dbt/include/doris/macros/adapters/relation.sql
+++ b/extension/dbt-doris/dbt/include/doris/macros/adapters/relation.sql
@@ -76,17 +76,17 @@
{%- endmacro %}
{% macro doris__distributed_by(column_names) -%}
- {% set label = 'DISTRIBUTED BY HASH' %}
{% set engine = config.get('engine', validator=validation.any[basestring]) %}
{% set cols = config.get('distributed_by', validator=validation.any[list,
basestring]) %}
{% if cols is none and engine in [none,'OLAP'] %}
{% set cols = column_names %}
{% endif %}
- {% if cols is not none %}
+
+ {% if cols %}
{%- if cols is string -%}
{%- set cols = [cols] -%}
{%- endif -%}
- {{ label }} (
+ DISTRIBUTED BY HASH (
{% for item in cols %}
{{ item }}{% if not loop.last %},{% endif %}
{% endfor %}
diff --git a/extension/dbt-doris/setup.py b/extension/dbt-doris/setup.py
index 8bb5bd97c6..a4f6961005 100644
--- a/extension/dbt-doris/setup.py
+++ b/extension/dbt-doris/setup.py
@@ -22,7 +22,7 @@ from setuptools import find_namespace_packages, setup
package_name = "dbt-doris"
# make sure this always matches dbt/adapters/{adapter}/__version__.py
-package_version = "0.2.1"
+package_version = "0.3.0"
dbt_core_version = "1.5.0"
description = """The doris adapter plugin for dbt """
@@ -39,7 +39,6 @@ setup(
install_requires=[
"dbt-core~={}".format(dbt_core_version),
"mysql-connector-python>=8.0.0,<8.1",
- "urllib3~=1.0",
],
- python_requires=">=3.7",
+ python_requires=">=3.7.2",
)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]