fix: get length attribute of postgres array columns #7239
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.
Description of change
Fixes #6990.
PostgresQueryRunner method loadTables is used to determine if the database is in sync with the entity definitions. This change updates how loadTables determines the length value of array columns. It uses the postgres-specific pg_catalog.pg_attribute table and the pg_catalog.format_type function to find the data type name, which includes the length for types that have a length attribute. Previously, loadTables relied solely on character_maximum_length in information_schema.columns, which is null for array columns. Because of this, array columns with a length attribute were always dropped.
This also includes a test that confirms the issues is resolved by this fix.
Pull-Request Checklist
master
branchnpm run lint
passes with this changenpm run test
passes with this changeFixes #0000