Abstract drop_tables database interactions #42
Merged
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.
The drop tables logic was always a little weird and required autocommit transaction hacks for postgres. This refactors the existing drop tables logic into the database abstraction. Any place that is dropping tables also uses the same logic where is was duplicated before. I don't know when the jtable was used but it doesn't hurt to leave it in I guess?
This also lets the abstraction manage its own connection as is intended by the abstraction. There is maybe a behavior change here, where a table in the catalog doesn't actually exist in the database. Before that wouldn't cause an error but now it will. I'm ok with this edge case as the behavior wasn't really specified before.
Lastly, the on_progress function was doing multiple checks which adds up over a million invocations. Maybe python optimizes these code paths at runtime but it doesn't hurt to do a little less work by default.