@@ -6208,15 +6208,20 @@ void QgisApp::mergeAttributesOfSelectedFeatures()
62086208 continue ;
62096209
62106210 QVariant val = merged.at ( i );
6211+ const QgsField &fld ( vl->fields ().at ( i ) );
6212+ bool isDefaultValue = vl->fields ().fieldOrigin ( i ) == QgsFields::OriginProvider &&
6213+ vl->dataProvider () &&
6214+ vl->dataProvider ()->defaultValue ( vl->fields ().fieldOriginIndex ( i ) ) == val;
6215+
62116216 // convert to destination data type
6212- if ( ! vl-> fields (). at ( i ) .convertCompatible ( val ) )
6217+ if ( !isDefaultValue && !fld .convertCompatible ( val ) )
62136218 {
62146219 if ( firstFeature )
62156220 {
62166221 // only warn on first feature
62176222 messageBar ()->pushMessage (
62186223 tr ( " Invalid result" ),
6219- tr ( " Could not store value '%1' in field of type %2" ).arg ( merged.at ( i ).toString (), vl-> fields (). at ( i ) .typeName () ),
6224+ tr ( " Could not store value '%1' in field of type %2" ).arg ( merged.at ( i ).toString (), fld .typeName () ),
62206225 QgsMessageBar::WARNING );
62216226 }
62226227 }
@@ -6345,8 +6350,12 @@ void QgisApp::mergeSelectedFeatures()
63456350 for ( int i = 0 ; i < attrs.count (); ++i )
63466351 {
63476352 QVariant val = attrs.at ( i );
6353+ bool isDefaultValue = vl->fields ().fieldOrigin ( i ) == QgsFields::OriginProvider &&
6354+ vl->dataProvider () &&
6355+ vl->dataProvider ()->defaultValue ( vl->fields ().fieldOriginIndex ( i ) ) == val;
6356+
63486357 // convert to destination data type
6349- if ( ! vl->fields ().at ( i ).convertCompatible ( val ) )
6358+ if ( !isDefaultValue && ! vl->fields ().at ( i ).convertCompatible ( val ) )
63506359 {
63516360 messageBar ()->pushMessage (
63526361 tr ( " Invalid result" ),
0 commit comments