提交 560e0a04 编写于 作者: N Nikolai Kochetov

Fix functions with low cardinality argumant and array result.

上级 de16f362
...@@ -82,6 +82,7 @@ public: ...@@ -82,6 +82,7 @@ public:
size_t getSizeOfValueInMemory() const override { return n; } size_t getSizeOfValueInMemory() const override { return n; }
bool isCategorial() const override { return true; } bool isCategorial() const override { return true; }
bool canBeInsideNullable() const override { return true; } bool canBeInsideNullable() const override { return true; }
bool canBeInsideLowCardinality() const override { return true; }
}; };
} }
...@@ -51,6 +51,7 @@ public: ...@@ -51,6 +51,7 @@ public:
bool haveMaximumSizeOfValue() const override { return true; } bool haveMaximumSizeOfValue() const override { return true; }
size_t getSizeOfValueInMemory() const override { return sizeof(T); } size_t getSizeOfValueInMemory() const override { return sizeof(T); }
bool isCategorial() const override { return isValueRepresentedByInteger(); } bool isCategorial() const override { return isValueRepresentedByInteger(); }
bool canBeInsideLowCardinality() const override { return true; }
}; };
} }
...@@ -61,6 +61,7 @@ public: ...@@ -61,6 +61,7 @@ public:
bool isValueUnambiguouslyRepresentedInContiguousMemoryRegion() const override { return true; } bool isValueUnambiguouslyRepresentedInContiguousMemoryRegion() const override { return true; }
bool isCategorial() const override { return true; } bool isCategorial() const override { return true; }
bool canBeInsideNullable() const override { return true; } bool canBeInsideNullable() const override { return true; }
bool canBeInsideLowCardinality() const override { return true; }
}; };
} }
...@@ -399,7 +399,7 @@ public: ...@@ -399,7 +399,7 @@ public:
virtual bool lowCardinality() const { return false; } virtual bool lowCardinality() const { return false; }
/// Strings, Numbers, Date, DateTime, Nullable /// Strings, Numbers, Date, DateTime, Nullable
virtual bool canBeInsideLowCardinality() const { return isStringOrFixedString() || isDateOrDateTime() || isNumber(); } virtual bool canBeInsideLowCardinality() const { return false; }
/// Updates avg_value_size_hint for newly read column. Uses to optimize deserialization. Zero expected for first column. /// Updates avg_value_size_hint for newly read column. Uses to optimize deserialization. Zero expected for first column.
static void updateAvgValueSizeHint(const IColumn & column, double & avg_value_size_hint); static void updateAvgValueSizeHint(const IColumn & column, double & avg_value_size_hint);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册