summaryrefslogtreecommitdiffstats
path: root/src/plugins/sqldrivers/psql
diff options
context:
space:
mode:
authorChristian Ehrlicher <ch.ehrlicher@gmx.de>2018-09-05 21:32:14 +0200
committerChristian Ehrlicher <ch.ehrlicher@gmx.de>2018-09-12 09:11:04 +0000
commit0d1481b4d26997bab9ab9a6200776b27b9826ba6 (patch)
treed8122e0dc001c05500d82836b9a3e21d67a17728 /src/plugins/sqldrivers/psql
parent9d1c881f491363f330284ddb177cbee5f3e9952d (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/psql')
-rw-r--r--src/plugins/sqldrivers/psql/qsql_psql.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/sqldrivers/psql/qsql_psql.cpp b/src/plugins/sqldrivers/psql/qsql_psql.cpp
index 5e0f7626b4..5796644d34 100644
--- a/src/plugins/sqldrivers/psql/qsql_psql.cpp
+++ b/src/plugins/sqldrivers/psql/qsql_psql.cpp
@@ -1465,8 +1465,11 @@ QSqlRecord QPSQLDriver::record(const QString& tablename) const
precision = -1;
}
QString defVal = query.value(5).toString();
- if (!defVal.isEmpty() && defVal.at(0) == QLatin1Char('\''))
- defVal = defVal.mid(1, defVal.length() - 2);
+ if (!defVal.isEmpty() && defVal.at(0) == QLatin1Char('\'')) {
+ const int end = defVal.lastIndexOf(QLatin1Char('\''));
+ if (end > 0)
+ defVal = defVal.mid(1, end - 1);
+ }
QSqlField f(query.value(0).toString(), qDecodePSQLType(query.value(1).toInt()), tablename);
f.setRequired(query.value(2).toBool());
f.setLength(len);