mustafasrepo commented on code in PR #9790:
URL: https://github.com/apache/arrow-datafusion/pull/9790#discussion_r1540892956
##########
datafusion/sql/src/query.rs:
##########
@@ -283,3 +276,44 @@ impl<'a, S: ContextProvider> SqlToRel<'a, S> {
}
}
}
+
+/// Retrieves the constant result of an expression, evaluating it if possible.
+///
+/// This function takes an expression and an argument name as input and returns
+/// a `Result<i64>` indicating either the constant result of the expression or
an
+/// error if the expression cannot be evaluated.
+///
+/// # Arguments
+///
+/// * `expr` - An `Expr` representing the expression to evaluate.
+/// * `arg_name` - The name of the argument for error messages.
+///
+/// # Returns
+///
+/// * `Result<i64>` - An `Ok` variant containing the constant result if
evaluation is successful,
+/// or an `Err` variant containing an error message if evaluation fails.
+fn get_constant_result(expr: &Expr, arg_name: &str) -> Result<i64> {
+ match expr {
Review Comment:
I have experimented with the keeping `Expr` in the limit state. However, it
is not a trivial change. Also, it is not clear when to do error checking, when
to ignore errors while converting `skip` and `fetch` to their corresponding
`u64` versions. I suggest, we first merge this PR. Then, we can have a support
for arbitrary expressions in another PR (Also I think, we can postpone this
feature until a use case hits.).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]