This repository was archived by the owner on Jun 22, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 92
This repository was archived by the owner on Jun 22, 2025. It is now read-only.
Cannot parse expression of type LowCardinality(String) #66
Copy link
Copy link
Closed
Description
Доброго дня!
Заметил странное поведение при тестировании своих приложения на недавно вышедшей версии ClickHouse 21.1.2.15.
Например, есть база TestDB с простейшей таблицей:
-- TestDB.ValuesTable definition
CREATE TABLE TestDB.ValuesTable
(
`TestString1` LowCardinality(String)
)
ENGINE = MergeTree
ORDER BY TestString1
SETTINGS index_granularity = 8192;Колонка имеет тип LowCardinality(String). Если бы был просто 'String', то никаких проблем нет.
Пишем такой же простой алгоритм вставки нового значения:
using (ClickHouseConnection connection =
new ClickHouseConnection(
"Host=<Server>;Port=8123;Database=<DBNAME>;Username=default;password=<USERPASSWORD>;"))
{
var cmd = connection.CreateCommand();
cmd.CommandText =
@"INSERT INTO ValuesTable (
TestString1
) VALUES (
{TestString1:String},
)";
cmd.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "TestString1",
DbType = DbType.String,
Value = "Wow, wow!"
});
cmd.ExecuteNonQuery();
}
}При попытке выполнения команды появляется ошибка:
ClickHouse.Client.ClickHouseServerException: "Code: 62, e.displayText() = DB::Exception: Cannot parse expression of type LowCardinality(String) here: {TestString1:String},
) (version 21.1.2.15 (official build))
"
Также может быть ошибка на подобие:
Cast exception String to LowCardinality(String)
Текст уже, к сожалению, не помню, но как-то так.
При этом на версиях ClickHouse 20.x.x.x такой ошибки не было.
Если вставлять значения через класс "ClickHouseBulkCopy", то проблем нет.
Есть ли идеи как такую ошибку обойти, кроме как использовал BULK-операции?
Может какие-то параметры можно указать для подсказки что за тип данных ожидается?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels