Floating-point constants are not correctly parser in the SQL view of the Kexi query designer. Fractional part is parser as integer without remembering the leading zeros. Example: - 1.2 is parsed as a pair of integers: (1, 2). This is OK. - 1.002 is parsed as a pair of integers: (1, 2). This is not OK since the value decoded back to floating point is: 1.2. Reproducible: Always Steps to Reproduce: 1. Open a new query design and type "SELECT 1.002" in the SQL view 2. Go to the data view Actual Results: 1.2 is displayed Expected Results: 1.002 is displayed A workaround for Kexi <= 2.9.7 is: use the following notation e.g. for 1.002 constant: 1002/1000. The bug is driver-independent.
Extra info: - when user goes back to the SQL view, 1.2 is displayed, so the original constant is lost - changes are not saves unless user saves the query design though - the bug is apparently present since the beginning: Kexi 0.1 beta
Git commit 4b9456f7f0741c8510015e9996929220eea4410e by Jaroslaw Staniek. Committed on 12/09/2015 at 20:45. Pushed by staniek into branch 'kexi-functions-352631-staniek'. Fix broken floating-point constants in Kexi SQL queries Summary: Bonus: After parsing numbers are now kept losslessly as byte arrays, so with unlimited precision. FIXED-IN:2.9.8 Test Plan: See "Steps to Reproduce" at https://bugs.kde.org/show_bug.cgi?id=352363 Reviewers: piggz Subscribers: Kexi-Devel-list Differential Revision: https://phabricator.kde.org/D333 M +1 -1 libs/db/expression.cpp M +52 -51 libs/db/parser/sqlparser.cpp M +1 -1 libs/db/parser/sqlparser.h M +5 -4 libs/db/parser/sqlparser.y M +54 -72 libs/db/parser/sqlscanner.cpp M +3 -22 libs/db/parser/sqlscanner.l http://commits.kde.org/calligra/4b9456f7f0741c8510015e9996929220eea4410e
Git commit 79d5e7c5af55cb4152b7b2b59f8d457961f051be by Jaroslaw Staniek. Committed on 30/11/2015 at 08:07. Pushed by staniek into branch 'master'. Fix broken floating-point constants in SQL queries Bonus: After parsing numbers are now kept losslessly as byte arrays, so with unlimited precision. Test Plan: See "Steps to Reproduce" at https://bugs.kde.org/show_bug.cgi?id=352363 >From calligradb 2.9 4b9456f7f0741c M +5 -5 autotests/ExpressionsTest.cpp M +2 -9 src/expression/KDbConstExpression.cpp M +5 -4 src/parser/KDbSqlParser.y M +3 -22 src/parser/KDbSqlScanner.l M +53 -52 src/parser/generated/sqlparser.cpp M +1 -1 src/parser/generated/sqlparser.h M +56 -74 src/parser/generated/sqlscanner.cpp http://commits.kde.org/kdb/79d5e7c5af55cb4152b7b2b59f8d457961f051be