We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In version 8.0.0, the following code works fine:
import ibis from dotenv import load_dotenv import os load_dotenv() catalog = os.getenv('TRINO_CATALOG') schema = os.getenv('TRINO_SCHEMA') user = os.getenv('TRINO_USER') password = os.getenv('TRINO_PASSWORD') trino_url = os.getenv('TRINO_URL') con = ibis.connect(f"trino://{user}:{password}@{trino_url}/{catalog}/{schema}") df_history_tag = con.table('history_tag_4')
After upgrading to 9.0.0, executing the above code results in the following error:
{ "name": "TrinoConnectionError", "message": "failed to execute: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /v1/statement (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f3e2454b2d0>: Failed to establish a new connection: [Errno 111] Connection refused'))", "stack": "--------------------------------------------------------------------------- ConnectionRefusedError Traceback (most recent call last) File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/connection.py:198, in HTTPConnection._new_conn(self) 197 try: --> 198 sock = connection.create_connection( 199 (self._dns_host, self.port), 200 self.timeout, 201 source_address=self.source_address, 202 socket_options=self.socket_options, 203 ) 204 except socket.gaierror as e: File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/util/connection.py:85, in create_connection(address, timeout, source_address, socket_options) 84 try: ---> 85 raise err 86 finally: 87 # Break explicitly a reference cycle File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/util/connection.py:73, in create_connection(address, timeout, source_address, socket_options) 72 sock.bind(source_address) ---> 73 sock.connect(sa) 74 # Break explicitly a reference cycle ConnectionRefusedError: [Errno 111] Connection refused The above exception was the direct cause of the following exception: NewConnectionError Traceback (most recent call last) File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/connectionpool.py:793, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw) 792 # Make the request on the HTTPConnection object --> 793 response = self._make_request( 794 conn, 795 method, 796 url, 797 timeout=timeout_obj, 798 body=body, 799 headers=headers, 800 chunked=chunked, 801 retries=retries, 802 response_conn=response_conn, 803 preload_content=preload_content, 804 decode_content=decode_content, 805 **response_kw, 806 ) 808 # Everything went great! File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/connectionpool.py:496, in HTTPConnectionPool._make_request(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length) 495 try: --> 496 conn.request( 497 method, 498 url, 499 body=body, 500 headers=headers, 501 chunked=chunked, 502 preload_content=preload_content, 503 decode_content=decode_content, 504 enforce_content_length=enforce_content_length, 505 ) 507 # We are swallowing BrokenPipeError (errno.EPIPE) since the server is 508 # legitimately able to close the connection after sending a valid response. 509 # With this behaviour, the received response is still readable. File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/connection.py:400, in HTTPConnection.request(self, method, url, body, headers, chunked, preload_content, decode_content, enforce_content_length) 399 self.putheader(header, value) --> 400 self.endheaders() 402 # If we're given a body we start sending that in chunks. File ~/.pyenv/versions/3.11.7/lib/python3.11/http/client.py:1289, in HTTPConnection.endheaders(self, message_body, encode_chunked) 1288 raise CannotSendHeader() -> 1289 self._send_output(message_body, encode_chunked=encode_chunked) File ~/.pyenv/versions/3.11.7/lib/python3.11/http/client.py:1048, in HTTPConnection._send_output(self, message_body, encode_chunked) 1047 del self._buffer[:] -> 1048 self.send(msg) 1050 if message_body is not None: 1051 1052 # create a consistent interface to message_body File ~/.pyenv/versions/3.11.7/lib/python3.11/http/client.py:986, in HTTPConnection.send(self, data) 985 if self.auto_open: --> 986 self.connect() 987 else: File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/connection.py:238, in HTTPConnection.connect(self) 237 def connect(self) -> None: --> 238 self.sock = self._new_conn() 239 if self._tunnel_host: 240 # If we're tunneling it means we're connected to our proxy. File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/connection.py:213, in HTTPConnection._new_conn(self) 212 except OSError as e: --> 213 raise NewConnectionError( 214 self, f\"Failed to establish a new connection: {e}\" 215 ) from e 217 # Audit hooks are only available in Python 3.8+ NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f3e2454b2d0>: Failed to establish a new connection: [Errno 111] Connection refused The above exception was the direct cause of the following exception: MaxRetryError Traceback (most recent call last) File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/requests/adapters.py:486, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies) 485 try: --> 486 resp = conn.urlopen( 487 method=request.method, 488 url=url, 489 body=request.body, 490 headers=request.headers, 491 redirect=False, 492 assert_same_host=False, 493 preload_content=False, 494 decode_content=False, 495 retries=self.max_retries, 496 timeout=timeout, 497 chunked=chunked, 498 ) 500 except (ProtocolError, OSError) as err: File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/connectionpool.py:847, in HTTPConnectionPool.urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw) 845 new_e = ProtocolError(\"Connection aborted.\", new_e) --> 847 retries = retries.increment( 848 method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2] 849 ) 850 retries.sleep() File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/urllib3/util/retry.py:515, in Retry.increment(self, method, url, response, error, _pool, _stacktrace) 514 reason = error or ResponseError(cause) --> 515 raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] 517 log.debug(\"Incremented Retry for (url='%s'): %r\", url, new_retry) MaxRetryError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /v1/statement (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f3e2454b2d0>: Failed to establish a new connection: [Errno 111] Connection refused')) During handling of the above exception, another exception occurred: ConnectionError Traceback (most recent call last) File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/trino/client.py:793, in TrinoQuery.execute(self, additional_http_headers) 792 try: --> 793 response = self._request.post(self._query, additional_http_headers) 794 except requests.exceptions.RequestException as e: File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/trino/client.py:555, in TrinoRequest.post(self, sql, additional_http_headers) 553 http_headers.update(additional_http_headers or {}) --> 555 http_response = self._post( 556 self.statement_url, 557 data=data, 558 headers=http_headers, 559 timeout=self._request_timeout, 560 proxies=PROXIES, 561 ) 562 return http_response File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/trino/client.py:894, in _retry_with.<locals>.wrapper.<locals>.decorated(*args, **kwargs) 893 if error is not None: --> 894 raise error 895 return result File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/trino/client.py:881, in _retry_with.<locals>.wrapper.<locals>.decorated(*args, **kwargs) 880 try: --> 881 result = func(*args, **kwargs) 882 if any(guard(result) for guard in conditions): File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/requests/sessions.py:637, in Session.post(self, url, data, json, **kwargs) 627 r\"\"\"Sends a POST request. Returns :class:`Response` object. 628 629 :param url: URL for the new :class:`Request` object. (...) 634 :rtype: requests.Response 635 \"\"\" --> 637 return self.request(\"POST\", url, data=data, json=json, **kwargs) File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/requests/sessions.py:589, in Session.request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json) 588 send_kwargs.update(settings) --> 589 resp = self.send(prep, **send_kwargs) 591 return resp File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/requests/sessions.py:703, in Session.send(self, request, **kwargs) 702 # Send the request --> 703 r = adapter.send(request, **kwargs) 705 # Total elapsed time of the request (approximately) File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/requests/adapters.py:519, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies) 517 raise SSLError(e, request=request) --> 519 raise ConnectionError(e, request=request) 521 except ClosedPoolError as e: ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /v1/statement (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f3e2454b2d0>: Failed to establish a new connection: [Errno 111] Connection refused')) During handling of the above exception, another exception occurred: TrinoConnectionError Traceback (most recent call last) Cell In[3], line 1 ----> 1 df_history_tag = con.table('history_tag_4') File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/ibis/backends/sql/__init__.py:137, in SQLBackend.table(self, name, schema, database) 134 catalog = table_loc.catalog or None 135 database = table_loc.db or None --> 137 table_schema = self.get_schema(name, catalog=catalog, database=database) 138 return ops.DatabaseTable( 139 name, 140 schema=table_schema, 141 source=self, 142 namespace=ops.Namespace(catalog=catalog, database=database), 143 ).to_expr() File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/ibis/backends/trino/__init__.py:141, in Backend.get_schema(self, table_name, catalog, database) 128 conditions.append(sg.column(\"table_schema\").eq(sge.convert(database))) 130 query = ( 131 sg.select( 132 \"column_name\", (...) 138 .order_by(\"ordinal_position\") 139 ) --> 141 with self._safe_raw_sql(query) as cur: 142 meta = cur.fetchall() 144 if not meta: File ~/.pyenv/versions/3.11.7/lib/python3.11/contextlib.py:137, in _GeneratorContextManager.__enter__(self) 135 del self.args, self.kwds, self.func 136 try: --> 137 return next(self.gen) 138 except StopIteration: 139 raise RuntimeError(\"generator didn't yield\") from None File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/ibis/backends/trino/__init__.py:93, in Backend._safe_raw_sql(self, query) 76 @contextlib.contextmanager 77 def _safe_raw_sql( 78 self, query: str | sge.Expression 79 ) -> Iterator[trino.dbapi.Cursor]: 80 \"\"\"Execute a raw SQL query, yielding the cursor. 81 82 Parameters (...) 91 92 \"\"\" ---> 93 cur = self.raw_sql(query) 94 try: 95 yield cur File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/ibis/backends/trino/__init__.py:47, in Backend.raw_sql(self, query) 45 cur = con.cursor() 46 try: ---> 47 cur.execute(query) 48 except Exception: 49 if con.transaction is not None: File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/trino/dbapi.py:592, in Cursor.execute(self, operation, params) 589 else: 590 self._query = trino.client.TrinoQuery(self._request, query=operation, 591 legacy_primitive_types=self._legacy_primitive_types) --> 592 self._iterator = iter(self._query.execute()) 593 return self File ~/.pyenv/versions/3.11.7/envs/venv311/lib/python3.11/site-packages/trino/client.py:795, in TrinoQuery.execute(self, additional_http_headers) 793 response = self._request.post(self._query, additional_http_headers) 794 except requests.exceptions.RequestException as e: --> 795 raise trino.exceptions.TrinoConnectionError(\"failed to execute: {}\".format(e)) 796 status = self._request.process(response) 797 self._info_uri = status.info_uri TrinoConnectionError: failed to execute: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /v1/statement (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f3e2454b2d0>: Failed to establish a new connection: [Errno 111] Connection refused'))" }
9.0.0
trino
No response
The text was updated successfully, but these errors were encountered:
gforsyth
Successfully merging a pull request may close this issue.
What happened?
In version 8.0.0, the following code works fine:
After upgrading to 9.0.0, executing the above code results in the following error:
What version of ibis are you using?
9.0.0
What backend(s) are you using, if any?
trino
Relevant log output
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: