|
1 | 1 | #include <clickhouse/columns/array.h>
|
2 | 2 | #include <clickhouse/columns/date.h>
|
3 | 3 | #include <clickhouse/columns/enum.h>
|
| 4 | +#include <clickhouse/columns/factory.h> |
4 | 5 | #include <clickhouse/columns/lowcardinality.h>
|
5 | 6 | #include <clickhouse/columns/nullable.h>
|
6 | 7 | #include <clickhouse/columns/numeric.h>
|
@@ -258,3 +259,26 @@ TEST(ColumnsCase, LowCardinalityString_Save) {
|
258 | 259 | EXPECT_EQ(col.At(i), foobar(i)) << " at pos: " << i;
|
259 | 260 | }
|
260 | 261 | }
|
| 262 | + |
| 263 | +TEST(ColumnsCase, CreateSimpleAggregateFunction) { |
| 264 | + auto col = CreateColumnByType("SimpleAggregateFunction(funt, Int32)"); |
| 265 | + |
| 266 | + ASSERT_EQ("Int32", col->Type()->GetName()); |
| 267 | + ASSERT_EQ(Type::Int32, col->Type()->GetCode()); |
| 268 | + ASSERT_NE(nullptr, col->As<ColumnInt32>()); |
| 269 | +} |
| 270 | + |
| 271 | + |
| 272 | +TEST(CreateColumnByType, UnmatchedBrackets) { |
| 273 | + // When type string has unmatched brackets, CreateColumnByType must return nullptr. |
| 274 | + ASSERT_EQ(nullptr, CreateColumnByType("FixedString(10")); |
| 275 | + ASSERT_EQ(nullptr, CreateColumnByType("Nullable(FixedString(10000")); |
| 276 | + ASSERT_EQ(nullptr, CreateColumnByType("Nullable(FixedString(10000)")); |
| 277 | + ASSERT_EQ(nullptr, CreateColumnByType("LowCardinality(Nullable(FixedString(10000")); |
| 278 | + ASSERT_EQ(nullptr, CreateColumnByType("LowCardinality(Nullable(FixedString(10000)")); |
| 279 | + ASSERT_EQ(nullptr, CreateColumnByType("LowCardinality(Nullable(FixedString(10000))")); |
| 280 | + ASSERT_EQ(nullptr, CreateColumnByType("Array(LowCardinality(Nullable(FixedString(10000")); |
| 281 | + ASSERT_EQ(nullptr, CreateColumnByType("Array(LowCardinality(Nullable(FixedString(10000)")); |
| 282 | + ASSERT_EQ(nullptr, CreateColumnByType("Array(LowCardinality(Nullable(FixedString(10000))")); |
| 283 | + ASSERT_EQ(nullptr, CreateColumnByType("Array(LowCardinality(Nullable(FixedString(10000)))")); |
| 284 | +} |
0 commit comments