fix(clickhouse): fix sorted query sql
This commit is contained in:
1 parent
de65189ed0
commit
9621f277bf
4 files changed
+21
-1
No files matched your search
@@ -240,6 +240,7 @@ pub fn build_sorted_query_sql(options: SortedQuerySqlOptions) -> QuerySqlBuildRe
|
||||
|
||||
let aliases = build_derived_column_aliases(&options.result_columns);
|
||||
let use_derived_column_aliases = options.database_type != Some(DatabaseType::Mysql)
|
||||
&& options.database_type != Some(DatabaseType::ClickHouse)
|
||||
&& options.database_type != Some(DatabaseType::Sqlite)
|
||||
&& options.database_type != Some(DatabaseType::DuckDb);
|
||||
let sort_alias = if use_derived_column_aliases {
|
||||
@@ -1169,6 +1170,23 @@ mod tests {
|
||||
assert_eq!(result.sql.unwrap(), "SELECT * FROM (SELECT * FROM admin LIMIT 100) t ORDER BY `login_name` ASC;");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn builds_clickhouse_sorted_query_without_alias_list() {
|
||||
let result = build_sorted_query_sql(SortedQuerySqlOptions {
|
||||
original_sql: "SELECT id, part_day, hid FROM events LIMIT 100".to_string(),
|
||||
database_type: Some(DatabaseType::ClickHouse),
|
||||
result_columns: vec!["id".to_string(), "part_day".to_string(), "hid".to_string()],
|
||||
column_index: 0,
|
||||
column: "id".to_string(),
|
||||
direction: QuerySortDirection::Desc,
|
||||
});
|
||||
|
||||
assert_eq!(
|
||||
result.sql.unwrap(),
|
||||
"SELECT * FROM (SELECT id, part_day, hid FROM events LIMIT 100) t ORDER BY `id` DESC;"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn strips_sqlserver_order_by_for_sorted_query() {
|
||||
let result = build_sorted_query_sql(SortedQuerySqlOptions {
|
||||
|
||||
@@ -75,6 +75,7 @@ pub fn quote_table_identifier(database_type: Option<DatabaseType>, name: &str) -
|
||||
Some(DatabaseType::Jdbc) => name.to_string(),
|
||||
Some(
|
||||
DatabaseType::Mysql
|
||||
| DatabaseType::ClickHouse
|
||||
| DatabaseType::Goldendb
|
||||
| DatabaseType::StarRocks
|
||||
| DatabaseType::ManticoreSearch
|
||||
|
||||
@@ -15,6 +15,7 @@ fn transfer_identifier_policy_preserves_legacy_output() {
|
||||
#[test]
|
||||
fn quotes_identifiers_by_database_type() {
|
||||
assert_eq!(quote_table_identifier(Some(DatabaseType::Mysql), "user`name"), "`user``name`");
|
||||
assert_eq!(quote_table_identifier(Some(DatabaseType::ClickHouse), "user`name"), "`user``name`");
|
||||
assert_eq!(quote_table_identifier(Some(DatabaseType::Goldendb), "user`name"), "`user``name`");
|
||||
assert_eq!(quote_table_identifier(Some(DatabaseType::StarRocks), "user`name"), "`user``name`");
|
||||
assert_eq!(quote_table_identifier(Some(DatabaseType::SqlServer), "user]name"), "[user]]name]");
|
||||
|
||||
Reference in new issue
Block a user