fix: EXPOSED-662 SchemaUtils.listTables() returns empty list & closes db connection #2331
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.
Detailed description:
Changes made in PR fix: EXPOSED-625
SchemaUtils.listTables()
retrieves tables for the default schema only #2301 were causing the database connection to close as a side effect andSchemaUtils.listTables()
was returning an empty list (if the table name cache was not filled before invoking it).Table names are cached lazily by a custom map that cannot be iterated over. All calls to
getAllTableNamesCache()
(or its underlying metadata fieldtableNames
) must be followed bygetValue(key)
to ensure a metadata query is sent by default to fill the cache if empty.SchemaUtils.listTables()
SchemaUtils.listTablesInAllSchemas()
that accomplishes the new behaviorDatabaseDialect.allTablesNamesInAllSchemas()
, since some users found this issue by usingDatabaseDialect.allTablesNames()
directlyType of Change
Please mark the relevant options with an "X":
Affected databases:
Checklist
Related Issues
EXPOSED-622
Reverted change - EXPOSED-625