From 668b190ad5ae1ae1f9660fa4cddf68abbcc01e92 Mon Sep 17 00:00:00 2001
From: guojidan <1948535941@qq.com>
Date: Tue, 9 Jan 2024 09:16:14 +0000
Subject: [PATCH 1/2] Implement monotonicity for ScalarUDF
---
datafusion-examples/examples/advanced_udf.rs | 8 +++++++-
datafusion/expr/src/udf.rs | 15 ++++++++++++++-
datafusion/physical-expr/src/udf.rs | 2 +-
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/datafusion-examples/examples/advanced_udf.rs b/datafusion-examples/examples/advanced_udf.rs
index d530b9abe030a..3e7dd2e2af08f 100644
--- a/datafusion-examples/examples/advanced_udf.rs
+++ b/datafusion-examples/examples/advanced_udf.rs
@@ -31,7 +31,9 @@ use arrow::datatypes::Float64Type;
use datafusion::error::Result;
use datafusion::prelude::*;
use datafusion_common::{internal_err, ScalarValue};
-use datafusion_expr::{ColumnarValue, ScalarUDF, ScalarUDFImpl, Signature};
+use datafusion_expr::{
+ ColumnarValue, FuncMonotonicity, ScalarUDF, ScalarUDFImpl, Signature,
+};
use std::sync::Arc;
/// This example shows how to use the full ScalarUDFImpl API to implement a user
@@ -184,6 +186,10 @@ impl ScalarUDFImpl for PowUdf {
fn aliases(&self) -> &[String] {
&self.aliases
}
+
+ fn monotonicity(&self) -> Result