[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdb/3.1] src/drivers/sqlite: SQLite Fix loading value Incorrect display of large unsigned int (>0x7
From:       Jaroslaw Staniek <null () kde ! org>
Date:       2018-06-09 22:01:39
Message-ID: E1fRlvX-00057s-Jc () code ! kde ! org
[Download RAW message or body]

Git commit bc5a7bea6e12892930e2e02ae3cc1c6d2b27277f by Jaroslaw Staniek.
Committed on 09/06/2018 at 22:01.
Pushed by staniek into branch '3.1'.

SQLite Fix loading value Incorrect display of large unsigned int (>0x7FFFFFFF)

Summary: BUG:394913

Test Plan: Follow test case: https://bugs.kde.org/show_bug.cgi?id=394913#c

Reviewers: piggz

Reviewed By: piggz

Subscribers: Kexi-Devel-list

Tags: #kdb

Differential Revision: https://phabricator.kde.org/D13448

M  +4    -2    src/drivers/sqlite/SqliteCursor.cpp

https://commits.kde.org/kdb/bc5a7bea6e12892930e2e02ae3cc1c6d2b27277f

diff --git a/src/drivers/sqlite/SqliteCursor.cpp \
b/src/drivers/sqlite/SqliteCursor.cpp index 157fb807..eb6b4d2f 100644
--- a/src/drivers/sqlite/SqliteCursor.cpp
+++ b/src/drivers/sqlite/SqliteCursor.cpp
@@ -111,7 +111,8 @@ public:
             if (t == KDbField::BigInteger) {
                 return QVariant(qint64(sqlite3_column_int64(prepared_st_handle, \
i)));  } else if (KDbField::isIntegerType(t)) {
-                return QVariant(sqlite3_column_int(prepared_st_handle, i));
+                const int intVal = sqlite3_column_int(prepared_st_handle, i);
+                return f->isUnsigned() ? QVariant(static_cast<uint>(intVal)) : \
QVariant(intVal);  } else if (t == KDbField::Boolean) {
                 return sqlite3_column_int(prepared_st_handle, i) != 0;
             } else if (KDbField::isFPNumericType(t)) { //WEIRD, YEAH?
@@ -126,7 +127,8 @@ public:
             } else if (t == KDbField::BigInteger) {
                 return QVariant(qint64(sqlite3_column_int64(prepared_st_handle, \
i)));  } else if (KDbField::isIntegerType(t)) {
-                return QVariant(int(sqlite3_column_double(prepared_st_handle, i)));
+                const double doubleVal = sqlite3_column_double(prepared_st_handle, \
i); +                return f->isUnsigned() ? QVariant(static_cast<uint>(doubleVal)) \
: QVariant(static_cast<int>(doubleVal));  } else {
                 return QVariant(); //!< @todo
             }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic