Threat "money" PostgreSQL datatype as numeric with 2 digits precision

Fixes GH-25529
This commit is contained in:
Sandro Santilli 2024-05-22 11:27:45 +02:00 committed by Nyall Dawson
parent 1b2c859dac
commit feeb7223fa
3 changed files with 13 additions and 3 deletions

View File

@ -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( '_' ) )
{

View File

@ -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" ) ||

View File

@ -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" ) ||