keep LowCardinality type in tuple() function

This commit is contained in:
Anton Popov 2022-07-12 02:01:41 +00:00
parent 109371f08f
commit b67405915e
3 changed files with 11 additions and 0 deletions

View File

@ -55,6 +55,7 @@ public:
/// tuple(..., Nothing, ...) -> Tuple(..., Nothing, ...)
bool useDefaultImplementationForNothing() const override { return false; }
bool useDefaultImplementationForConstants() const override { return true; }
bool useDefaultImplementationForLowCardinalityColumns() const override { return false; }
DataTypePtr getReturnTypeImpl(const DataTypes & arguments) const override
{

View File

@ -0,0 +1,4 @@
Tuple(LowCardinality(String), LowCardinality(UInt8))
Tuple(LowCardinality(String), LowCardinality(UInt8))
Tuple(LowCardinality(String), LowCardinality(UInt8))
Tuple(LowCardinality(String), LowCardinality(UInt8))

View File

@ -0,0 +1,6 @@
SET allow_suspicious_low_cardinality_types = 1;
SELECT toTypeName(tuple(toLowCardinality('1'), toLowCardinality(1)));
SELECT toTypeName(tuple(materialize(toLowCardinality('1')), toLowCardinality(1)));
SELECT toTypeName(tuple(toLowCardinality('1'), materialize(toLowCardinality(1))));
SELECT toTypeName(tuple(materialize(toLowCardinality('1')), materialize(toLowCardinality(1))));