You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by mn...@apache.org on 2023/09/14 12:00:37 UTC

[arrow-datafusion] branch main updated: Minor: beautify interval display (#7554)

This is an automated email from the ASF dual-hosted git repository.

mneumann pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new c2fb263d7f Minor: beautify interval display (#7554)
c2fb263d7f is described below

commit c2fb263d7f0119b6499cadea5264f45826fc9fa1
Author: Alex Huang <hu...@gmail.com>
AuthorDate: Thu Sep 14 20:00:31 2023 +0800

    Minor: beautify interval display (#7554)
    
    * beautify interval display
    
    * add tests
---
 .../src/intervals/interval_aritmetic.rs            | 36 +++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/datafusion/physical-expr/src/intervals/interval_aritmetic.rs b/datafusion/physical-expr/src/intervals/interval_aritmetic.rs
index 5501c8cae0..3ed228517f 100644
--- a/datafusion/physical-expr/src/intervals/interval_aritmetic.rs
+++ b/datafusion/physical-expr/src/intervals/interval_aritmetic.rs
@@ -195,7 +195,14 @@ impl Default for Interval {
 
 impl Display for Interval {
     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
-        write!(f, "Interval [{}, {}]", self.lower, self.upper)
+        write!(
+            f,
+            "{}{}, {}{}",
+            if self.lower.open { "(" } else { "[" },
+            self.lower.value,
+            self.upper.value,
+            if self.upper.open { ")" } else { "]" }
+        )
     }
 }
 
@@ -1785,4 +1792,31 @@ mod tests {
 
         Ok(())
     }
+
+    #[test]
+    fn test_interval_display() {
+        let interval = Interval::new(
+            IntervalBound::new(ScalarValue::from(0.25_f32), true),
+            IntervalBound::new(ScalarValue::from(0.50_f32), false),
+        );
+        assert_eq!(format!("{}", interval), "(0.25, 0.5]");
+
+        let interval = Interval::new(
+            IntervalBound::new(ScalarValue::from(0.25_f32), false),
+            IntervalBound::new(ScalarValue::from(0.50_f32), true),
+        );
+        assert_eq!(format!("{}", interval), "[0.25, 0.5)");
+
+        let interval = Interval::new(
+            IntervalBound::new(ScalarValue::from(0.25_f32), true),
+            IntervalBound::new(ScalarValue::from(0.50_f32), true),
+        );
+        assert_eq!(format!("{}", interval), "(0.25, 0.5)");
+
+        let interval = Interval::new(
+            IntervalBound::new(ScalarValue::from(0.25_f32), false),
+            IntervalBound::new(ScalarValue::from(0.50_f32), false),
+        );
+        assert_eq!(format!("{}", interval), "[0.25, 0.5]");
+    }
 }