diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2018-09-05 21:32:14 +0200 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2018-09-12 09:11:04 +0000 |
commit | 0d1481b4d26997bab9ab9a6200776b27b9826ba6 (patch) | |
tree | d8122e0dc001c05500d82836b9a3e21d67a17728 /src/plugins/sqldrivers/sqlite | |
parent | 9d1c881f491363f330284ddb177cbee5f3e9952d (diff) |
SQL PostgreSQL/SQlite: Properly decode default varchar parameter
The default values for varchar columns were not decoded properly.
Task-number: QTBUG-46968
Change-Id: Ie13d48c316cd694240f7e287010b97afc8c6c341
Reviewed-by: Robert Szefner <robertsz27@interia.pl>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Diffstat (limited to 'src/plugins/sqldrivers/sqlite')
-rw-r--r-- | src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp b/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp index e1bf0f2d47..81b5776a7c 100644 --- a/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp +++ b/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp @@ -917,13 +917,20 @@ static QSqlIndex qGetTableInfo(QSqlQuery &q, const QString &tableName, bool only if (onlyPIndex && !isPk) continue; QString typeName = q.value(2).toString().toLower(); + QString defVal = q.value(4).toString(); + if (!defVal.isEmpty() && defVal.at(0) == QLatin1Char('\'')) { + const int end = defVal.lastIndexOf(QLatin1Char('\'')); + if (end > 0) + defVal = defVal.mid(1, end - 1); + } + QSqlField fld(q.value(1).toString(), qGetColumnType(typeName), tableName); if (isPk && (typeName == QLatin1String("integer"))) // INTEGER PRIMARY KEY fields are auto-generated in sqlite // INT PRIMARY KEY is not the same as INTEGER PRIMARY KEY! fld.setAutoValue(true); fld.setRequired(q.value(3).toInt() != 0); - fld.setDefaultValue(q.value(4)); + fld.setDefaultValue(defVal); ind.append(fld); } return ind; |