diff --git a/.gitignore b/.gitignore index 09ac3166..ae936a70 100644 --- a/.gitignore +++ b/.gitignore @@ -96,4 +96,7 @@ env/ venv/ ENV/ env.bak/ -venv.bak/ \ No newline at end of file +venv.bak/ + +# example credential information +cxn.json \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index e944d9ce..fac708d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ # Changelog +### v0.19.2 + +#### features: + +- hotfix for regression introduced by [#126](https://github.com/dbt-msft/dbt-sqlserver/issues/126) that wouldn't surface syntax errors from the SQL engine [#140](https://github.com/dbt-msft/dbt-sqlserver/issues/140) thanks [@jeroen-mostert](https://github.com/jeroen-mostert)! + ### v0.19.1 #### features: diff --git a/dbt/adapters/sqlserver/__version__.py b/dbt/adapters/sqlserver/__version__.py index 22e18d53..6a128dc1 100644 --- a/dbt/adapters/sqlserver/__version__.py +++ b/dbt/adapters/sqlserver/__version__.py @@ -1 +1 @@ -version = '0.19.1' \ No newline at end of file +version = '0.19.2' \ No newline at end of file diff --git a/dbt/adapters/sqlserver/connections.py b/dbt/adapters/sqlserver/connections.py index 00d7a39a..6006b782 100644 --- a/dbt/adapters/sqlserver/connections.py +++ b/dbt/adapters/sqlserver/connections.py @@ -356,7 +356,7 @@ def add_query(self, sql, auto_begin=True, bindings=None, abridge_sql_log=False): self.get_response(cursor), (time.time() - pre) ) ) - + return connection, cursor @classmethod @@ -383,9 +383,16 @@ def get_response(cls, cursor) -> AdapterResponse: def execute(self, sql, auto_begin=True, fetch=False): _, cursor = self.add_query(sql, auto_begin) - status = self.get_response(cursor) + response = self.get_response(cursor) if fetch: + # Get the result of the first non-empty result set (if any) + while cursor.description is None: + if not cursor.nextset(): + break table = self.get_result_from_cursor(cursor) else: table = dbt.clients.agate_helper.empty_table() - return status, table + # Step through all result sets so we process all errors + while cursor.nextset(): + pass + return response, table diff --git a/dev_requirements.txt b/dev_requirements.txt index 34409954..fa88dbdc 100644 --- a/dev_requirements.txt +++ b/dev_requirements.txt @@ -1,5 +1,5 @@ black==20.8b1 -pytest-dbt-adapter==0.4.0 +pytest-dbt-adapter==0.5.1 pytest==6.2.2 tox==3.2.0 flake8==3.5.0