Skip to content

Commit 61f39d6

Browse files
committed
postgres provider: fix indexing of default values (fixes #12996)
1 parent cecae9f commit 61f39d6

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/providers/postgres/qgspostgresprovider.cpp

+9-8
Original file line numberDiff line numberDiff line change
@@ -905,8 +905,8 @@ bool QgsPostgresProvider::loadFields()
905905
fields << fieldName;
906906

907907
mAttrPalIndexName.insert( i, fieldName );
908+
mDefaultValues.insert( mAttributeFields.size(), defValMap[tableoid][attnum] );
908909
mAttributeFields.append( QgsField( fieldName, fieldType, fieldTypeName, fieldSize, fieldPrec, fieldComment ) );
909-
mDefaultValues.insert( i, defValMap[tableoid][attnum] );
910910
}
911911

912912
return true;
@@ -1778,23 +1778,24 @@ bool QgsPostgresProvider::addFeatures( QgsFeatureList &flist )
17781778

17791779
for ( int i = 0; i < fieldId.size(); i++ )
17801780
{
1781-
QVariant value = attrs[ fieldId[i] ];
1781+
int attrIdx = fieldId[i];
1782+
QVariant value = attrs[ attrIdx ];
17821783

17831784
QString v;
17841785
if ( value.isNull() )
17851786
{
1786-
const QgsField &fld = field( fieldId[i] );
1787-
v = paramValue( defaultValues[i], defaultValues[i] );
1788-
features->setAttribute( fieldId[i], convertValue( fld.type(), v ) );
1787+
const QgsField &fld = field( attrIdx );
1788+
v = paramValue( defaultValues[ attrIdx ], defaultValues[ attrIdx ] );
1789+
features->setAttribute( idx, convertValue( fld.type(), v ) );
17891790
}
17901791
else
17911792
{
1792-
v = paramValue( value.toString(), defaultValues[i] );
1793+
v = paramValue( value.toString(), defaultValues[ attrIdx ] );
17931794

17941795
if ( v != value.toString() )
17951796
{
1796-
const QgsField &fld = field( fieldId[i] );
1797-
features->setAttribute( fieldId[i], convertValue( fld.type(), v ) );
1797+
const QgsField &fld = field( attrIdx );
1798+
features->setAttribute( attrIdx, convertValue( fld.type(), v ) );
17981799
}
17991800
}
18001801

0 commit comments

Comments
 (0)