diff --git a/src/providers/postgres/qgspostgresconn.cpp b/src/providers/postgres/qgspostgresconn.cpp index c938f070ac0f..4563e088fa99 100644 --- a/src/providers/postgres/qgspostgresconn.cpp +++ b/src/providers/postgres/qgspostgresconn.cpp @@ -1183,15 +1183,15 @@ QString QgsPostgresConn::fieldExpression( const QgsField &fld, QString expr ) expr = expr.arg( quotedIdentifier( fld.name() ) ); if ( type == "money" ) { - return QString( "cash_out(%1)" ).arg( expr ); + return QString( "cash_out(%1)::text" ).arg( expr ); } else if ( type.startsWith( "_" ) ) { - return QString( "array_out(%1)" ).arg( expr ); + return QString( "array_out(%1)::text" ).arg( expr ); } else if ( type == "bool" ) { - return QString( "boolout(%1)" ).arg( expr ); + return QString( "boolout(%1)::text" ).arg( expr ); } else if ( type == "geometry" ) { diff --git a/src/providers/postgres/qgspostgresprovider.cpp b/src/providers/postgres/qgspostgresprovider.cpp index f89950928039..fb9b95cdbbef 100644 --- a/src/providers/postgres/qgspostgresprovider.cpp +++ b/src/providers/postgres/qgspostgresprovider.cpp @@ -1270,8 +1270,7 @@ void QgsPostgresProvider::uniqueValues( int index, QList &uniqueValues sql += QString( " WHERE %1" ).arg( mSqlWhereClause ); } - sql += QString( " ORDER BY %1" ) - .arg( quotedIdentifier( fld.name() ) ); + sql += QString( " ORDER BY %1" ).arg( connectionRO()->fieldExpression( fld ) ); if ( limit >= 0 ) {