mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 08:02:02 +00:00
Avoid crash with big int in prewhere
This commit is contained in:
parent
729692f862
commit
5579d139eb
@ -628,12 +628,12 @@ Block MergeTreeBaseSelectProcessor::transformHeader(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
WhichDataType which(removeNullable(recursiveRemoveLowCardinality(prewhere_column.type)));
|
WhichDataType which(removeNullable(recursiveRemoveLowCardinality(prewhere_column.type)));
|
||||||
if (which.isInt() || which.isUInt())
|
if (which.isNativeInt() || which.isNativeUInt())
|
||||||
prewhere_column.column = prewhere_column.type->createColumnConst(block.rows(), 1u)->convertToFullColumnIfConst();
|
prewhere_column.column = prewhere_column.type->createColumnConst(block.rows(), 1u)->convertToFullColumnIfConst();
|
||||||
else if (which.isFloat())
|
else if (which.isFloat())
|
||||||
prewhere_column.column = prewhere_column.type->createColumnConst(block.rows(), 1.0f)->convertToFullColumnIfConst();
|
prewhere_column.column = prewhere_column.type->createColumnConst(block.rows(), 1.0f)->convertToFullColumnIfConst();
|
||||||
else
|
else
|
||||||
throw Exception("Illegal type " + prewhere_column.type->getName() + " of column for filter.",
|
throw Exception("Illegal type " + prewhere_column.type->getName() + " of column for filter",
|
||||||
ErrorCodes::ILLEGAL_TYPE_OF_COLUMN_FOR_FILTER);
|
ErrorCodes::ILLEGAL_TYPE_OF_COLUMN_FOR_FILTER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
15
tests/queries/0_stateless/02473_prewhere_with_bigint.sql
Normal file
15
tests/queries/0_stateless/02473_prewhere_with_bigint.sql
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
CREATE TABLE prewhere_int128 (a Int128) ENGINE=MergeTree ORDER BY a;
|
||||||
|
SELECT a FROM prewhere_int128 WHERE a; -- { serverError 59 }
|
||||||
|
DROP TABLE prewhere_int128;
|
||||||
|
|
||||||
|
CREATE TABLE prewhere_int256 (a Int256) ENGINE=MergeTree ORDER BY a;
|
||||||
|
SELECT a FROM prewhere_int256 WHERE a; -- { serverError 59 }
|
||||||
|
DROP TABLE prewhere_int256;
|
||||||
|
|
||||||
|
CREATE TABLE prewhere_uint128 (a UInt128) ENGINE=MergeTree ORDER BY a;
|
||||||
|
SELECT a FROM prewhere_uint128 WHERE a; -- { serverError 59 }
|
||||||
|
DROP TABLE prewhere_uint128;
|
||||||
|
|
||||||
|
CREATE TABLE prewhere_uint256 (a UInt256) ENGINE=MergeTree ORDER BY a;
|
||||||
|
SELECT a FROM prewhere_uint256 WHERE a; -- { serverError 59 }
|
||||||
|
DROP TABLE prewhere_uint256;
|
Loading…
Reference in New Issue
Block a user