Summary: | Error when multiplying, dividing, subtracting or adding two Floating Point fields | ||
---|---|---|---|
Product: | [Applications] KEXI | Reporter: | r.c.drew |
Component: | Queries | Assignee: | Jarosław Staniek <staniek> |
Status: | CLOSED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | 1.1.3 (KOffice 1.6.3) | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
r.c.drew
2007-06-15 12:16:25 UTC
Sorry, I made a typo: I should have written "However, the result for FP x FP gives a square with a question mark inside". SVN commit 759457 by staniek: KexiDB fix the bug #146818: handling expressions containing binary operators like *, /, -, + where both arguments are of floating-point type (with single or double precision). Previously the result was marked as boolean, now it is floating-point. CCMAIL:146818-done@bugs.kde.org CCMAIL:kexi@kde.org M +2 -6 expression.cpp --- branches/koffice/1.6/koffice/kexi/kexidb/expression.cpp #759456:759457 @@ -400,14 +400,10 @@ if (ltInt && rtInt) return KexiDB::maximumForIntegerTypes(lt, rt); - if (Field::isFPNumericType(lt) && rtInt) + if (Field::isFPNumericType(lt) && (rtInt || lt==rt)) return lt; - if (Field::isFPNumericType(rt) && ltInt) + if (Field::isFPNumericType(rt) && (ltInt || lt==rt)) return rt; - if ((lt==Field::Double || lt==Field::Float) && rtInt) - return lt; - if ((rt==Field::Double || rt==Field::Float) && ltInt) - return rt; return Field::Boolean; } |