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)

Reply via email to