Simplify the query run to make sure to report the correct error #641
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.
Currently, if the query is failed to run with some errors other than the timeout (e.g. syntax error), the error won't be correctly reported back and the error becomes "pq: current transaction is aborted, commands ignored until end of transaction block", as the second run's error will be reported.
I updated and simplified a bit to avoid this, but I'm not actually sure if this is what we want. Looks like currently we are not running the query 3 times unless the 1. error 2. success case. Maybe the intention here is that the first run failed due to the timeout, but second run went well because some half-cached data from the first run there? If so, I'm happy to update the logic, but I think we need to narrow down the error checking and try the second run only when the first run failed with the timeout error.