Open
Conversation
b6bbc05 to
605fb2d
Compare
605fb2d to
b05d2a4
Compare
YuLeven
reviewed
Feb 6, 2025
|
|
||
| def add_materialized_to_clause!(create_sql, options) | ||
| if !options.to | ||
| create_sql << " ENGINE = Memory()" |
Author
There was a problem hiding this comment.
Yes. If the create_table definition does not include a to value but the view: materialized k/v pair is set so that we need to make a to clauses, we will default to storing the data in memory (since we don't know what tables we can use to store it, and Null() engine wouldn't make sense).
Author
|
@PNixx What's the process for reviewing and merging here? |
Owner
|
Maybe this problem was fixed in #220 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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:clickhouseon 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
TOstatement is just missing 😲Changes
Restructured the
visit_TableDefinitionmethod 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.