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 <42031973+catpineap...@users.noreply.github.com> 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org