Repository navigation
Conversation
96ed42c to
88803de
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #17850 +/- ##
============================================
+ Coverage 46.42% 46.84% +0.41%
Complexity 713 713
============================================
Files 5537 5538 +1
Lines 404332 404728 +396
Branches 52852 52917 +65
============================================
+ Hits 187717 189582 +1865
+ Misses 216615 215146 -1469 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…ant-folding # Conflicts: # iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/parser/AstBuilder.java
…values-constant-folding
|
Retain uniform insert targets and semantic errors for unbound parameters in the constant-folding path. Align time-expression integration tests and localize insert error messages.
…values-constant-folding
Retain constant-folded timestamp assertions alongside the FIELD schema validation setup and preserve both locales' insert and LOAD messages. Validated English and Chinese full-reactor test compilation, formatting, 3 InsertValuesTest cases, and 4 targeted TableSimpleIT methods.
|
|
||
| if (set != null) { | ||
| return set.contains(value); | ||
| return set.contains(normalizeArithmeticValue(value, type(node.getValue()))); |
There was a problem hiding this comment.
Found and fixed in 939d153bdf9: folded INT32 arithmetic can produce Integer while an INT32 literal can produce Long, so raw Set.contains made 1 + 1 IN (2, 3) false. The IN cache now normalizes same-type values to the SQL native container, and mixed SQL types use numeric comparison. testFoldedNumericInPredicates covers both paths.
|
|
||
| private Boolean evaluateNumericComparison( | ||
| ComparisonExpression.Operator operator, Number left, Number right) { | ||
| if (Double.isNaN(left.doubleValue()) || Double.isNaN(right.doubleValue())) { |
There was a problem hiding this comment.
Found and fixed in 939d153bdf9: Double.compare orders NaN above finite values and treats NaN as equal to itself, so constant folding incorrectly made 1.0 < NaN, NaN >= 1.0, NaN = NaN, and the derived <> predicate true. The interpreter now returns false whenever either operand is NaN, matching CompareBinaryColumnTransformer. testFoldedNaNComparisons and the focused IT cover these cases.
|
Self-review passed. I reviewed the full PR diff and fixed two correctness issues in
Verification:
|
|







Summary
Verification