diff --git a/src/core/qgsvectordataprovider.cpp b/src/core/qgsvectordataprovider.cpp index b689183db89..ddebf456083 100644 --- a/src/core/qgsvectordataprovider.cpp +++ b/src/core/qgsvectordataprovider.cpp @@ -606,7 +606,7 @@ QStringList QgsVectorDataProvider::errors() const return mErrors; } -void QgsVectorDataProvider::pushError( const QString& msg ) +void QgsVectorDataProvider::pushError( const QString& msg ) const { QgsDebugMsg( msg ); mErrors << msg; @@ -722,4 +722,4 @@ QStringList QgsVectorDataProvider::smEncodings; QList QgsVectorDataProvider::discoverRelations( const QgsVectorLayer*, const QList& ) const { return QList(); -} \ No newline at end of file +} diff --git a/src/core/qgsvectordataprovider.h b/src/core/qgsvectordataprovider.h index 2addd3ac4c9..4074e47919a 100644 --- a/src/core/qgsvectordataprovider.h +++ b/src/core/qgsvectordataprovider.h @@ -445,7 +445,7 @@ class CORE_EXPORT QgsVectorDataProvider : public QgsDataProvider signals: /** Signals an error in this provider */ - void raiseError( const QString& msg ); + void raiseError( const QString& msg ) const; protected: void clearMinMaxCache(); @@ -465,7 +465,7 @@ class CORE_EXPORT QgsVectorDataProvider : public QgsDataProvider /** The names of the providers native types*/ QList< NativeType > mNativeTypes; - void pushError( const QString& msg ); + void pushError( const QString& msg ) const; /** Old-style mapping of index to name for QgsPalLabeling fix */ QgsAttrPalIndexNameHash mAttrPalIndexName; @@ -479,7 +479,7 @@ class CORE_EXPORT QgsVectorDataProvider : public QgsDataProvider QMap mOldTypeList; /** List of errors */ - QStringList mErrors; + mutable QStringList mErrors; static QStringList smEncodings; diff --git a/src/providers/postgres/qgspostgresprovider.cpp b/src/providers/postgres/qgspostgresprovider.cpp index c0eaaeaf705..ef01dae574e 100644 --- a/src/providers/postgres/qgspostgresprovider.cpp +++ b/src/providers/postgres/qgspostgresprovider.cpp @@ -1707,7 +1707,13 @@ QVariant QgsPostgresProvider::defaultValue( int fieldId ) const QgsPostgresResult res( connectionRO()->PQexec( QString( "SELECT %1" ).arg( defVal.toString() ) ) ); - return convertValue( fld.type(), fld.subType(), res.PQgetvalue( 0, 0 ) ); + if ( res.result() ) + return convertValue( fld.type(), fld.subType(), res.PQgetvalue( 0, 0 ) ); + else + { + pushError( tr( "Could not execute query" ) ); + return QVariant(); + } } return defVal;