-
Notifications
You must be signed in to change notification settings - Fork 197
Description
Expected behavior
The call to client.execute does not start the query on the Trino cluster.
Actual behavior
The query only starts on the Trino cluster once client.fetch is called.
Steps To Reproduce
Not sure if this is an issue or just expected behavior but I noticed that the query is not actually run by the Trino cluster until data is requested by the client.
So this code will not actually run the query
from trino.dbapi import connect
conn = connect(
host="<host>",
port=<port>,
user="<username>",
catalog="<catalog>",
schema="<schema>",
)
cur = conn.cursor()
cur.execute("CREATE TABLE hive.<schema>.<name> AS SELECT 'a' AS a")Nothing happens on the Trino server at this point.
The query only runs when we call fetch. This line is what kicks off the query.
cur.fetch()Basically it seems like the initial post request does not actual kick off the query. This seems unintuitive to me. Since I would have thought that execute would actually run the query. As an example if I am trying to insert data into a table, I don't feel the need to call fetch because there is no data to fetch. I just want the query to run and I want to be able to wait until it is successful. I guess I'm wondering what the reasoning is behind the current behavior. I believe the behavior of PyHive was to actually start the query when execute was called. Thanks!
Log output
No response
Operating System
macOS Monterey
Trino Python client version
0.309.0
Trino Server version
388
Python version
3.8.6
Are you willing to submit PR?
- Yes I am willing to submit a PR!