Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR fixes unnecessary delete requests when the query is already finished.
Explanation
This change addresses Issue #102
QueryRow
followed by aScan
, the Trino driver first calls theNext
method and then the Close method. TheClose
method triggers a delete request to cancel the query, even when the query has already completed.nextUri
in theClose
method instead of directly calling/v1/query/queryId
, as suggested in the documentation and implemented by other drivers. However, to make this work, I needed to always updaterows.nextUri
inside thefetch
method, as it was previously retaining only the first URI set here. Despite these changes, the issue persisted.Next
method so that when all rows have been read, it fetches the next set of rows. This works because ourfetch
method, along with the running Goroutines, followsnextUri
until data is retrieved.QueryRow
, this ensures that when the query reaches the finished state with no more data, nextUri is cleared, preventing an unnecessary request on Close().QueryContext
, this is also fine because it fetches the next batch of data, ensuring that additional data (if available) is retrieved correctly.