File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -948,6 +948,10 @@ void QgsOgrProvider::loadFields()
948948 mAttributeFields .append (
949949 fidField
950950 );
951+ // Set default value for fid, this is needed because
952+ // the attribute form will not accept a NULL value, passing
953+ // -1 will delegate to the back-end.
954+ mDefaultValues .insert ( 0 , QStringLiteral ( " -1" ) );
951955 }
952956
953957 for ( int i = 0 ; i < fdef.GetFieldCount (); ++i )
@@ -1201,6 +1205,18 @@ QVariant QgsOgrProvider::defaultValue( int fieldId ) const
12011205 return resultVar;
12021206}
12031207
1208+ QString QgsOgrProvider::defaultValueClause ( int fieldIndex ) const
1209+ {
1210+ QString defVal = mDefaultValues .value ( fieldIndex, QString () );
1211+
1212+ if ( !providerProperty ( EvaluateDefaultValues, false ).toBool () && !defVal.isEmpty () )
1213+ {
1214+ return defVal;
1215+ }
1216+
1217+ return QString ();
1218+ }
1219+
12041220void QgsOgrProvider::updateExtents ()
12051221{
12061222 invalidateCachedExtent ( true );
Original file line number Diff line number Diff line change @@ -109,6 +109,7 @@ class QgsOgrProvider : public QgsVectorDataProvider
109109 virtual QgsFields fields () const override ;
110110 virtual QgsRectangle extent () const override ;
111111 QVariant defaultValue ( int fieldId ) const override ;
112+ QString defaultValueClause ( int fieldIndex ) const override ;
112113 virtual void updateExtents () override ;
113114 virtual bool addFeatures ( QgsFeatureList &flist, QgsFeatureSink::Flags flags = 0 ) override ;
114115 virtual bool deleteFeatures ( const QgsFeatureIds &id ) override ;
You can’t perform that action at this time.
0 commit comments