alamb commented on code in PR #18625:
URL: https://github.com/apache/datafusion/pull/18625#discussion_r2518757423


##########
datafusion/expr-common/src/interval_arithmetic.rs:
##########
@@ -1738,6 +1738,44 @@ impl From<ScalarValue> for NullableInterval {
 }
 
 impl NullableInterval {
+    /// An interval that only contains 'false'.
+    pub const FALSE: Self = NullableInterval::NotNull {
+        values: Interval::CERTAINLY_FALSE,
+    };
+
+    /// An interval that only contains 'true'.
+    pub const TRUE: Self = NullableInterval::NotNull {
+        values: Interval::CERTAINLY_TRUE,
+    };
+
+    /// An interval that only contains 'unknown' (boolean null).
+    pub const UNKNOWN: Self = NullableInterval::Null {
+        datatype: DataType::Boolean,
+    };
+
+    /// An interval that only contains 'true' and 'false'.
+    /// This interval is equivalent to [Interval::UNCERTAIN].
+    pub const TRUE_OR_FALSE: Self = NullableInterval::NotNull {
+        values: Interval::UNCERTAIN,
+    };
+
+    /// An interval that only contains 'true' and 'unknown'.
+    pub const TRUE_OR_UNKNOWN: Self = NullableInterval::MaybeNull {
+        values: Interval::CERTAINLY_TRUE,
+    };
+
+    /// An interval that only contains 'false' and 'unknown'.
+    pub const FALSE_OR_UNKNOWN: Self = NullableInterval::MaybeNull {
+        values: Interval::CERTAINLY_FALSE,
+    };
+
+    /// An interval that contains all possible boolean values: 'true', 'false' 
and 'unknown'.
+    ///
+    /// Note that this is different from [Interval::UNCERTAIN] which only 
contains 'true' and 'false'.
+    pub const UNCERTAIN: Self = NullableInterval::MaybeNull {

Review Comment:
   > For NullableInterval::UNCERTAIN I'm inclined to go for ANY_TRUTH_VALUE 
rather than TRUE_OR_FALSE_OR_UNKNOWN just to keep it somewhat short.
   
   I defer to you -- I can also live with `UNCERTAIN` (my personal distaste for 
 SQL NULL shoudn't cause you to do more work 😆 )
   
   
   > @alamb I was wondering if we might want to consider renaming the Interval 
constants. I think this mapping would be nicer since they match exactly with 
their NullableInterval equivalents then in both name and semantics and we're 
also at least using the SQL terminology consistently.
   
   I agree it would be a nice change
   
   > For backwards compatibility it might be useful to retain the old constants 
and mark them deprecated. Not sure what the DataFusion policy on stuff like 
that is.
   
   Yes I agree that would be best and is consistent with the API health policy 
is here: https://datafusion.apache.org/contributor-guide/api-health.html
   



-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to