From 0943631342c619801e0d209b66a259ffe750334a Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Fri, 7 Feb 2025 14:39:54 +1000 Subject: [PATCH] [oracle] Ignore unset attributes when changing attribute values, adding features --- src/providers/oracle/qgsoracleprovider.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/providers/oracle/qgsoracleprovider.cpp b/src/providers/oracle/qgsoracleprovider.cpp index f154bbfc8f0..5fc066723dd 100644 --- a/src/providers/oracle/qgsoracleprovider.cpp +++ b/src/providers/oracle/qgsoracleprovider.cpp @@ -1394,7 +1394,9 @@ bool QgsOracleProvider::addFeatures( QgsFeatureList &flist, QgsFeatureSink::Flag QVariant value = attributevec.value( fieldId[i], QVariant() ); QgsField fld = field( fieldId[i] ); - if ( ( QgsVariantUtils::isNull( value ) && mPrimaryKeyAttrs.contains( i ) && !defaultValues.at( i ).isEmpty() ) || ( value.toString() == defaultValues[i] ) ) + if ( ( QgsVariantUtils::isNull( value ) && mPrimaryKeyAttrs.contains( i ) && !defaultValues.at( i ).isEmpty() ) + || ( value.toString() == defaultValues[i] ) + || value.userType() == qMetaTypeId< QgsUnsetAttributeValue >() ) { value = evaluateDefaultExpression( defaultValues[i], fld.type() ); } @@ -1860,6 +1862,10 @@ bool QgsOracleProvider::changeAttributeValues( const QgsChangedAttributesMap &at QgsLogger::warning( tr( "Changing the value of GENERATED field %1 is not allowed." ).arg( fld.name() ) ); continue; } + if ( siter.value().userType() == qMetaTypeId< QgsUnsetAttributeValue >() ) + { + continue; + } pkChanged = pkChanged || mPrimaryKeyAttrs.contains( siter.key() );