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.
This PR fixes an issue with the creation of materialized views in the ClickHouse adapter, specifically addressing the order of SQL clauses and engine specification.
Motivation
When using
rails db:schema:load:clickhouse
on a fresh DB, materialized views are not created correctly because the schema dumper and loader don't properly handle the full ClickHouse materialized view syntax.Example of what happens:
Note, the
TO
statement is just missing 😲Changes
Restructured the
visit_TableDefinition
method to properly handle different types of table/view creation:Fixed the order of SQL clauses for materialized views:
Improved code organization and readability by:
The changes ensure that materialized views are created with the correct SQL syntax, fixing issues where view creation would fail due to incorrect clause ordering. All tests are now passing, including specific tests for materialized view creation and dropping.
Testing
These changes make the adapter more robust and reliable when working with ClickHouse materialized views.