Zhen Chen created CALCITE-7346:
----------------------------------
Summary: Prevent overflow in metadata row-count when LIMIT/OFFSET
literal exceeds Long range
Key: CALCITE-7346
URL: https://issues.apache.org/jira/browse/CALCITE-7346
Project: Calcite
Issue Type: Improvement
Reporter: Zhen Chen
Currently, the implementations of RelMdRowCount, RelMdMaxRowCount, and
RelMdMinRowCount all use RexLiteral.longValue() when dealing with LIMIT/OFFSET.
If the literal value of the LIMIT/OFFSET exceeds the range of Long, an overflow
error will occur. Ideally, this would be changed to BigDecimal, but considering
that structures like mq.getRowCount() return Double, we can continue using
Double. This value is sufficient for most databases. As far as I know,
ClickHouse currently supports a maximum of UInt64. I don't know if there are
any databases that support larger values.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)