--- qtbase/src/sql/drivers/psql/qsql_psql.cpp 2015-07-01 16:39:36.716687389 +0200 +++ qtbase/src/sql/drivers/psql/qsql_psql_fixed.cpp 2015-07-01 14:15:56.077168431 +0200 @@ -1197,7 +1197,7 @@ } QString defVal = query.value(5).toString(); if (!defVal.isEmpty() && defVal.at(0) == QLatin1Char('\'')) - defVal = defVal.mid(1, defVal.length() - 2); + defVal = defVal.mid(1, defVal.lastIndexOf(QLatin1Char('\'')) - 1); QSqlField f(query.value(0).toString(), qDecodePSQLType(query.value(1).toInt())); f.setRequired(query.value(2).toBool()); f.setLength(len); @@ -1217,7 +1217,7 @@ if (query2.isActive() && query2.next()) defVal = query2.value(0).toString(); if (!defVal.isEmpty() && defVal.at(0) == QLatin1Char('\'')) - defVal = defVal.mid(1, defVal.length() - 2); + defVal = defVal.mid(1, defVal.lastIndexOf(QLatin1Char('\'')) - 1); int len = query.value(3).toInt(); int precision = query.value(4).toInt(); // swap length and precision if length == -1