mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 16:12:01 +00:00
Support custom 'order by' expression for system log tables
This commit is contained in:
parent
0e2156c776
commit
90a6437716
@ -152,20 +152,34 @@ std::shared_ptr<TSystemLog> createSystemLog(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
String partition_by = config.getString(config_prefix + ".partition_by", "toYYYYMM(event_date)");
|
/// ENGINE expr is necessary.
|
||||||
engine = "ENGINE = MergeTree";
|
engine = "ENGINE = MergeTree";
|
||||||
|
|
||||||
|
/// PARTITION expr is not necessary.
|
||||||
|
String partition_by = config.getString(config_prefix + ".partition_by", "toYYYYMM(event_date)");
|
||||||
if (!partition_by.empty())
|
if (!partition_by.empty())
|
||||||
|
{
|
||||||
engine += " PARTITION BY (" + partition_by + ")";
|
engine += " PARTITION BY (" + partition_by + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
/// TTL expr is not necessary.
|
||||||
String ttl = config.getString(config_prefix + ".ttl", "");
|
String ttl = config.getString(config_prefix + ".ttl", "");
|
||||||
if (!ttl.empty())
|
if (!ttl.empty())
|
||||||
|
{
|
||||||
engine += " TTL " + ttl;
|
engine += " TTL " + ttl;
|
||||||
|
}
|
||||||
|
|
||||||
engine += " ORDER BY ";
|
/// ORDER BY expr is necessary.
|
||||||
engine += TSystemLog::getDefaultOrderBy();
|
String order_by = config.getString(config_prefix + ".order_by", TSystemLog::getDefaultOrderBy());
|
||||||
|
engine += " ORDER BY (" + order_by + ")";
|
||||||
|
|
||||||
|
/// STORAGE POLICY expr is not necessary.
|
||||||
String storage_policy = config.getString(config_prefix + ".storage_policy", "");
|
String storage_policy = config.getString(config_prefix + ".storage_policy", "");
|
||||||
if (!storage_policy.empty())
|
if (!storage_policy.empty())
|
||||||
|
{
|
||||||
engine += " SETTINGS storage_policy = " + quoteString(storage_policy);
|
engine += " SETTINGS storage_policy = " + quoteString(storage_policy);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Validate engine definition syntax to prevent some configuration errors.
|
/// Validate engine definition syntax to prevent some configuration errors.
|
||||||
ParserStorageWithComment storage_parser;
|
ParserStorageWithComment storage_parser;
|
||||||
|
Loading…
Reference in New Issue
Block a user