diff --git a/src/providers/postgres/qgspostgresconn.cpp b/src/providers/postgres/qgspostgresconn.cpp index 581413ebd03..06cd3b5f887 100644 --- a/src/providers/postgres/qgspostgresconn.cpp +++ b/src/providers/postgres/qgspostgresconn.cpp @@ -1948,7 +1948,7 @@ QString QgsPostgresConn::fieldExpression( const QgsField &fld, QString expr ) expr = expr.arg( quotedIdentifier( fld.name() ) ); if ( type == QLatin1String( "money" ) ) { - return QStringLiteral( "cash_out(%1)::text" ).arg( expr ); + return QStringLiteral( "%1::numeric::text" ).arg( expr ); } else if ( type.startsWith( '_' ) ) { diff --git a/src/providers/postgres/qgspostgresprovider.cpp b/src/providers/postgres/qgspostgresprovider.cpp index 340bd81a740..22708e3e7f1 100644 --- a/src/providers/postgres/qgspostgresprovider.cpp +++ b/src/providers/postgres/qgspostgresprovider.cpp @@ -1189,6 +1189,12 @@ bool QgsPostgresProvider::loadFields() } } } + else if ( fieldTypeName == QLatin1String( "money" ) ) + { + fieldType = QVariant::Double; + fieldSize = -1; + fieldPrec = 2; + } else if ( fieldTypeName == QLatin1String( "varchar" ) ) { fieldType = QMetaType::Type::QString; @@ -1231,7 +1237,6 @@ bool QgsPostgresProvider::loadFields() fieldTypeName == QLatin1String( "cidr" ) || fieldTypeName == QLatin1String( "macaddr" ) || fieldTypeName == QLatin1String( "macaddr8" ) || - fieldTypeName == QLatin1String( "money" ) || fieldTypeName == QLatin1String( "ltree" ) || fieldTypeName == QLatin1String( "uuid" ) || fieldTypeName == QLatin1String( "xml" ) || diff --git a/src/providers/postgres/raster/qgspostgresrasterprovider.cpp b/src/providers/postgres/raster/qgspostgresrasterprovider.cpp index a3a9fb556b5..1a750f23ff5 100644 --- a/src/providers/postgres/raster/qgspostgresrasterprovider.cpp +++ b/src/providers/postgres/raster/qgspostgresrasterprovider.cpp @@ -1815,6 +1815,12 @@ bool QgsPostgresRasterProvider::loadFields() } } } + else if ( fieldTypeName == QLatin1String( "money" ) ) + { + fieldType = QVariant::Double; + fieldSize = -1; + fieldPrec = 2; + } else if ( fieldTypeName == QLatin1String( "varchar" ) ) { fieldType = QMetaType::Type::QString; @@ -1854,7 +1860,6 @@ bool QgsPostgresRasterProvider::loadFields() fieldTypeName == QLatin1String( "citext" ) || fieldTypeName == QLatin1String( "geometry" ) || fieldTypeName == QLatin1String( "inet" ) || - fieldTypeName == QLatin1String( "money" ) || fieldTypeName == QLatin1String( "ltree" ) || fieldTypeName == QLatin1String( "uuid" ) || fieldTypeName == QLatin1String( "xml" ) ||