40     QgsDataProvider::ReadFlags flags )
 
   48   return QStringLiteral( 
"Generic vector file" );
 
   67     return QgsFeatureSource::FeatureAvailability::NoFeaturesAvailable;
 
   69     return QgsFeatureSource::FeatureAvailability::FeaturesAvailable;
 
   96   return mErrors.isEmpty() ? QString() : mErrors.last();
 
  121   Q_UNUSED( attributes )
 
  127   Q_UNUSED( attributes )
 
  133   Q_UNUSED( renamedAttributes )
 
  151   Q_UNUSED( fieldIndex )
 
  158   if ( fieldIndex < 0 || fieldIndex >= f.
count() )
 
  159     return QgsFieldConstraints::Constraints();
 
  171   Q_UNUSED( geometry_map )
 
  205   mEncoding = QTextCodec::codecForName( e.toLocal8Bit().constData() );
 
  206   if ( !mEncoding && e != QLatin1String( 
"System" ) )
 
  221         mEncoding = QTextCodec::codecForName( 
"System" );
 
  227     mEncoding = QTextCodec::codecForLocale();
 
  229   Q_ASSERT( mEncoding );
 
  236     return mEncoding->name();
 
  244   QStringList abilitiesList;
 
  250     abilitiesList += tr( 
"Add Features" );
 
  255     abilitiesList += tr( 
"Delete Features" );
 
  260     abilitiesList += tr( 
"Change Attribute Values" );
 
  265     abilitiesList += tr( 
"Add Attributes" );
 
  270     abilitiesList += tr( 
"Delete Attributes" );
 
  275     abilitiesList += tr( 
"Rename Attributes" );
 
  281     abilitiesList += tr( 
"Create Spatial Index" );
 
  286     abilitiesList += tr( 
"Create Attribute Indexes" );
 
  291     abilitiesList += tr( 
"Fast Access to Features at ID" );
 
  296     abilitiesList += tr( 
"Change Geometries" );
 
  301     abilitiesList += tr( 
"Presimplify Geometries" );
 
  306     abilitiesList += tr( 
"Presimplify Geometries with Validity Check" );
 
  311     abilitiesList += tr( 
"Simultaneous Geometry and Attribute Updates" );
 
  316     abilitiesList += tr( 
"Transactions" );
 
  321     abilitiesList += tr( 
"Curved Geometries" );
 
  326     abilitiesList += tr( 
"Feature Symbology" );
 
  329   return abilitiesList.join( QLatin1String( 
", " ) );
 
  340   QMap<QString, int> resultMap;
 
  343   for ( 
int i = 0; i < fieldsCopy.
count(); ++i )
 
  345     resultMap.insert( fieldsCopy.
at( i ).
name(), i );
 
  373   QgsDebugMsgLevel( QStringLiteral( 
"field name = %1 type = %2 length = %3 precision = %4" )
 
  379   for ( 
const NativeType &nativeType : mNativeTypes )
 
  381     QgsDebugMsgLevel( QStringLiteral( 
"native field type = %1 min length = %2 max length = %3 min precision = %4 max precision = %5" )
 
  382                       .arg( QVariant::typeToName( nativeType.mType ) )
 
  383                       .arg( nativeType.mMinLen )
 
  384                       .arg( nativeType.mMaxLen )
 
  385                       .arg( nativeType.mMinPrec )
 
  386                       .arg( nativeType.mMaxPrec ), 2 );
 
  394       if ( ( nativeType.mMinLen > 0 && 
field.
length() < nativeType.mMinLen ) ||
 
  395            ( nativeType.mMaxLen > 0 && 
field.
length() > nativeType.mMaxLen ) )
 
  405       if ( ( nativeType.mMinPrec > 0 && 
field.
precision() < nativeType.mMinPrec ) ||
 
  406            ( nativeType.mMaxPrec > 0 && 
field.
precision() > nativeType.mMaxPrec ) )
 
  417   QgsDebugMsg( QStringLiteral( 
"no sufficient native type found" ) );
 
  423   if ( index < 0 || index >= 
fields().count() )
 
  425     QgsDebugMsg( 
"Warning: access requested to invalid field index: " + QString::number( index ) );
 
  431   if ( !mCacheMinValues.contains( index ) )
 
  434   return mCacheMinValues[index];
 
  439   if ( index < 0 || index >= 
fields().count() )
 
  441     QgsDebugMsg( 
"Warning: access requested to invalid field index: " + QString::number( index ) );
 
  447   if ( !mCacheMaxValues.contains( index ) )
 
  450   return mCacheMaxValues[index];
 
  459   if ( index < 0 || index >= 
fields().count() )
 
  464   keys.append( index );
 
  470   request.
setFilterExpression( QStringLiteral( 
"\"%1\" ILIKE '%%2%'" ).arg( fieldName, substring ) );
 
  477     const QString value = f.
attribute( index ).toString();
 
  478     if ( !set.contains( value ) )
 
  480       results.append( value );
 
  484     if ( ( limit >= 0 && results.size() >= limit ) || ( feedback && feedback->
isCanceled() ) )
 
  496   Q_UNUSED( parameters )
 
  506   mCacheMinMaxDirty = 
true;
 
  507   mCacheMinValues.clear();
 
  508   mCacheMaxValues.clear();
 
  513   if ( !mCacheMinMaxDirty )
 
  517   for ( 
int i = 0; i < flds.
count(); ++i )
 
  519     if ( flds.
at( i ).
type() == QVariant::Int )
 
  521       mCacheMinValues[i] = QVariant( std::numeric_limits<int>::max() );
 
  522       mCacheMaxValues[i] = QVariant( std::numeric_limits<int>::lowest() );
 
  524     else if ( flds.
at( i ).
type() == QVariant::LongLong )
 
  526       mCacheMinValues[i] = QVariant( std::numeric_limits<qlonglong>::max() );
 
  527       mCacheMaxValues[i] = QVariant( std::numeric_limits<qlonglong>::lowest() );
 
  529     else if ( flds.
at( i ).
type() == QVariant::Double )
 
  531       mCacheMinValues[i] = QVariant( std::numeric_limits<double>::max() );
 
  532       mCacheMaxValues[i] = QVariant( std::numeric_limits<double>::lowest() );
 
  537       mCacheMinValues[i] = QVariant();
 
  538       mCacheMaxValues[i] = QVariant();
 
  550     for ( 
const int attributeIndex : keys )
 
  552       const QVariant &varValue = attrs.at( attributeIndex );
 
  554       if ( varValue.isNull() )
 
  557       switch ( flds.
at( attributeIndex ).
type() )
 
  561           const int value = varValue.toInt();
 
  562           if ( value < mCacheMinValues[ attributeIndex ].toInt() )
 
  563             mCacheMinValues[ attributeIndex ] = value;
 
  564           if ( value > mCacheMaxValues[ attributeIndex ].toInt() )
 
  565             mCacheMaxValues[ attributeIndex ] = value;
 
  568         case QVariant::LongLong:
 
  570           const qlonglong value = varValue.toLongLong();
 
  571           if ( value < mCacheMinValues[ attributeIndex ].toLongLong() )
 
  572             mCacheMinValues[ attributeIndex ] = value;
 
  573           if ( value > mCacheMaxValues[ attributeIndex ].toLongLong() )
 
  574             mCacheMaxValues[ attributeIndex ] = value;
 
  577         case QVariant::Double:
 
  579           const double value = varValue.toDouble();
 
  580           if ( value < mCacheMinValues[ attributeIndex ].toDouble() )
 
  581             mCacheMinValues[attributeIndex ] = value;
 
  582           if ( value > mCacheMaxValues[ attributeIndex ].toDouble() )
 
  583             mCacheMaxValues[ attributeIndex ] = value;
 
  586         case QVariant::DateTime:
 
  588           const QDateTime value = varValue.toDateTime();
 
  589           if ( value < mCacheMinValues[ attributeIndex ].toDateTime() || !mCacheMinValues[ attributeIndex ].
isValid() )
 
  590             mCacheMinValues[attributeIndex ] = value;
 
  591           if ( value > mCacheMaxValues[ attributeIndex ].toDateTime() || !mCacheMaxValues[ attributeIndex ].
isValid() )
 
  592             mCacheMaxValues[ attributeIndex ] = value;
 
  597           const QDate value = varValue.toDate();
 
  598           if ( value < mCacheMinValues[ attributeIndex ].toDate() || !mCacheMinValues[ attributeIndex ].
isValid() )
 
  599             mCacheMinValues[attributeIndex ] = value;
 
  600           if ( value > mCacheMaxValues[ attributeIndex ].toDate() || !mCacheMaxValues[ attributeIndex ].
isValid() )
 
  601             mCacheMaxValues[ attributeIndex ] = value;
 
  606           const QTime value = varValue.toTime();
 
  607           if ( value < mCacheMinValues[ attributeIndex ].toTime() || !mCacheMinValues[ attributeIndex ].
isValid() )
 
  608             mCacheMinValues[attributeIndex ] = value;
 
  609           if ( value > mCacheMaxValues[ attributeIndex ].toTime() || !mCacheMaxValues[ attributeIndex ].
isValid() )
 
  610             mCacheMaxValues[ attributeIndex ] = value;
 
  615           const QString value = varValue.toString();
 
  616           if ( mCacheMinValues[ attributeIndex ].isNull() || value < mCacheMinValues[attributeIndex ].toString() )
 
  618             mCacheMinValues[attributeIndex] = value;
 
  620           if ( mCacheMaxValues[attributeIndex].isNull() || value > mCacheMaxValues[attributeIndex].toString() )
 
  622             mCacheMaxValues[attributeIndex] = value;
 
  630   mCacheMinMaxDirty = 
false;
 
  637   if ( !v.convert( type ) || value.isNull() )
 
  638     v = QVariant( type );
 
  648 static bool _compareEncodings( 
const QString &s1, 
const QString &s2 )
 
  650   return s1.toLower() < s2.toLower();
 
  655   static std::once_flag initialized;
 
  656   std::call_once( initialized, [ = ]
 
  658     const auto codecs { QTextCodec::availableCodecs() };
 
  659     for ( 
const QByteArray &codec : codecs )
 
  664     smEncodings << 
"BIG5";
 
  665     smEncodings << 
"BIG5-HKSCS";
 
  666     smEncodings << 
"EUCJP";
 
  667     smEncodings << 
"EUCKR";
 
  668     smEncodings << 
"GB2312";
 
  669     smEncodings << 
"GBK";
 
  670     smEncodings << 
"GB18030";
 
  671     smEncodings << 
"JIS7";
 
  672     smEncodings << 
"SHIFT-JIS";
 
  673     smEncodings << 
"TSCII";
 
  674     smEncodings << 
"UTF-8";
 
  675     smEncodings << 
"UTF-16";
 
  676     smEncodings << 
"KOI8-R";
 
  677     smEncodings << 
"KOI8-U";
 
  678     smEncodings << 
"ISO8859-1";
 
  679     smEncodings << 
"ISO8859-2";
 
  680     smEncodings << 
"ISO8859-3";
 
  681     smEncodings << 
"ISO8859-4";
 
  682     smEncodings << 
"ISO8859-5";
 
  683     smEncodings << 
"ISO8859-6";
 
  684     smEncodings << 
"ISO8859-7";
 
  685     smEncodings << 
"ISO8859-8";
 
  686     smEncodings << 
"ISO8859-8-I";
 
  687     smEncodings << 
"ISO8859-9";
 
  688     smEncodings << 
"ISO8859-10";
 
  689     smEncodings << 
"ISO8859-11";
 
  690     smEncodings << 
"ISO8859-12";
 
  691     smEncodings << 
"ISO8859-13";
 
  692     smEncodings << 
"ISO8859-14";
 
  693     smEncodings << 
"ISO8859-15";
 
  694     smEncodings << 
"IBM 850";
 
  695     smEncodings << 
"IBM 866";
 
  696     smEncodings << 
"CP874";
 
  697     smEncodings << 
"CP1250";
 
  698     smEncodings << 
"CP1251";
 
  699     smEncodings << 
"CP1252";
 
  700     smEncodings << 
"CP1253";
 
  701     smEncodings << 
"CP1254";
 
  702     smEncodings << 
"CP1255";
 
  703     smEncodings << 
"CP1256";
 
  704     smEncodings << 
"CP1257";
 
  705     smEncodings << 
"CP1258";
 
  706     smEncodings << 
"Apple Roman";
 
  707     smEncodings << 
"TIS-620";
 
  708     smEncodings << 
"System";
 
  712     std::sort( sEncodings.begin(), sEncodings.end(), _compareEncodings );
 
  726   return !mErrors.isEmpty();
 
  763   return QSet<QgsMapLayerDependency>();
 
  782   if ( geometry->
wkbType() == providerGeomType )
 
  787   std::unique_ptr< QgsAbstractGeometry > outputGeom;
 
  792     QgsCompoundCurve *compoundCurve = qgsgeometry_cast<QgsCompoundCurve *>( geometry );
 
  795       if ( compoundCurve->
nCurves() == 1 )
 
  797         const QgsCircularString *circularString = qgsgeometry_cast<const QgsCircularString *>( compoundCurve->
curveAt( 0 ) );
 
  798         if ( circularString )
 
  800           outputGeom.reset( circularString->
clone() );
 
  812       outputGeom.reset( curveGeom );
 
  820     if ( segmentizedGeom )
 
  822       outputGeom.reset( segmentizedGeom );
 
  831     if ( geomCollection )
 
  833       if ( geomCollection->
addGeometry( outputGeom ? outputGeom->clone() : geometry->
clone() ) )
 
  835         outputGeom.reset( collGeom.release() );
 
  843     const QgsGeometryCollection *collection = qgsgeometry_cast<const QgsGeometryCollection *>( geometry );
 
  849         if ( firstGeom && firstGeom->
wkbType() == providerGeomType )
 
  851           outputGeom.reset( firstGeom->
clone() );
 
  862       outputGeom.reset( geometry->
clone() );
 
  871       outputGeom.reset( geometry->
clone() );
 
  873     outputGeom->addMValue();
 
  899 QStringList QgsVectorDataProvider::sEncodings;
 
  903   return QList<QgsRelation>();
 
  913   return mTemporalCapabilities.get();
 
  918   return mTemporalCapabilities.get();
 
Abstract base class for all geometries.
virtual bool addZValue(double zValue=0)=0
Adds a z-dimension to the geometry, initialized to a preset value.
virtual QgsAbstractGeometry * segmentize(double tolerance=M_PI/180., SegmentationToleranceType toleranceType=MaximumAngle) const
Returns a version of the geometry without curves.
virtual QgsAbstractGeometry * toCurveType() const =0
Returns the geometry converted to the more generic curve type.
virtual QgsAbstractGeometry * clone() const =0
Clones the geometry by performing a deep copy.
QgsWkbTypes::Type wkbType() const SIP_HOLDGIL
Returns the WKB type of the geometry.
Abstract base class - its implementations define different approaches to the labeling of a vector lay...
Aggregate
Available aggregates to calculate.
Circular string geometry type.
QgsCircularString * clone() const override
Clones the geometry by performing a deep copy.
Compound curve geometry type.
const QgsCurve * curveAt(int i) const SIP_HOLDGIL
Returns the curve at the specified index.
int nCurves() const SIP_HOLDGIL
Returns the number of curves in the geometry.
This class represents a coordinate reference system (CRS).
Abstract base class for spatial data provider implementations.
virtual QgsCoordinateReferenceSystem crs() const =0
Returns the coordinate system for the data source.
virtual bool isValid() const =0
Returns true if this is a valid layer.
virtual QgsRectangle extent() const =0
Returns the extent of the layer.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Wrapper for iterator of features from vector data provider or vector layer.
bool nextFeature(QgsFeature &f)
This class wraps a request for features to a vector layer (or directly its vector data provider).
QgsFeatureRequest & setLimit(long long limit)
Set the maximum number of features to request.
QgsFeatureRequest & setFlags(QgsFeatureRequest::Flags flags)
Sets flags that affect how features will be fetched.
QgsFeatureRequest & setSubsetOfAttributes(const QgsAttributeList &attrs)
Set a subset of attributes that will be fetched.
QgsFeatureRequest & setFilterExpression(const QString &expression)
Set the filter expression.
@ NoGeometry
Geometry is not required. It may still be returned if e.g. required for a filter condition.
QgsFeatureRequest & setNoAttributes()
Set that no attributes will be fetched.
FeatureAvailability
Possible return value for hasFeatures() to determine if a source is empty.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
QVariant attribute(const QString &name) const
Lookup attribute value by attribute name.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
bool isCanceled() const SIP_HOLDGIL
Tells whether the operation has been canceled already.
Constraint
Constraints which may be present on a field.
Q_GADGET Constraints constraints
Encapsulate a field in an attribute table or data source.
QgsFieldConstraints constraints
Container of fields for a vector layer.
QgsAttributeList allAttributesList() const
Utility function to get list of attribute indexes.
int count() const
Returns number of items.
QgsField at(int i) const
Returns the field at particular index (must be in range 0..N-1).
int lookupField(const QString &fieldName) const
Looks up field's index from the field name.
int numGeometries() const SIP_HOLDGIL
Returns the number of geometries within the collection.
const QgsAbstractGeometry * geometryN(int n) const
Returns a const reference to a geometry from within the collection.
virtual bool addGeometry(QgsAbstractGeometry *g)
Adds a geometry and takes ownership. Returns true in case of success.
static std::unique_ptr< QgsAbstractGeometry > geomFromWkbType(QgsWkbTypes::Type t)
Returns empty geometry from wkb type.
A geometry is the spatial representation of a feature.
const QgsAbstractGeometry * constGet() const SIP_HOLDGIL
Returns a non-modifiable (const) reference to the underlying abstract geometry primitive.
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::MessageLevel::Warning, bool notifyUser=true)
Adds a message to the log instance (and creates it if necessary).
A QTextCodec implementation which relies on OGR to do the text conversion.
static QStringList supportedCodecs()
Returns a list of supported text codecs.
A rectangle specified with double values.
This class allows including a set of layers in a database-side transaction, provided the layer data p...
Implementation of data provider temporal properties for QgsVectorDataProviders.
This is the base class for vector data providers.
void pushError(const QString &msg) const
Push a notification about errors that happened in this providers scope.
QgsRectangle sourceExtent() const override
Returns the extent of all geometries from the source.
virtual bool cancelReload()
Cancels the current reloading of data.
QString lastError() const override
Returns the most recent error encountered by the sink, e.g.
void setNativeTypes(const QList< QgsVectorDataProvider::NativeType > &nativeTypes)
Set the list of native types supported by this provider.
virtual QList< QgsRelation > discoverRelations(const QgsVectorLayer *target, const QList< QgsVectorLayer * > &layers) const
Discover the available relations with the given layers.
static QStringList availableEncodings()
Returns a list of available encodings.
virtual QString dataComment() const override
Returns a short comment for the data that this provider is providing access to (e....
@ SimplifyGeometries
Supports simplification of geometries on provider side according to a distance tolerance.
@ SimplifyGeometriesWithTopologicalValidation
Supports topological simplification of geometries on provider side according to a distance tolerance.
@ CircularGeometries
Supports circular geometry types (circularstring, compoundcurve, curvepolygon)
@ SelectAtId
Fast access to features using their ID.
@ ChangeFeatures
Supports joint updates for attributes and geometry. Providers supporting this should still define Cha...
@ ChangeGeometries
Allows modifications of geometries.
@ DeleteAttributes
Allows deletion of attributes (fields)
@ DeleteFeatures
Allows deletion of features.
@ CreateAttributeIndex
Can create indexes on provider's fields.
@ TransactionSupport
Supports transactions.
@ NoCapabilities
Provider has no capabilities.
@ AddAttributes
Allows addition of new attributes (fields)
@ CreateSpatialIndex
Allows creation of spatial index.
@ FeatureSymbology
Provider is able retrieve embedded symbology associated with individual features. Since QGIS 3....
@ RenameAttributes
Supports renaming attributes (fields). Since QGIS 2.16.
@ ChangeAttributeValues
Allows modification of attribute values.
@ AddFeatures
Allows adding features.
QgsWkbTypes::Type wkbType() const override=0
Returns the geometry type which is returned by this layer.
bool supportedType(const QgsField &field) const
check if provider supports type of field
virtual bool isSaveAndLoadStyleToDatabaseSupported() const
It returns false by default.
virtual bool changeGeometryValues(const QgsGeometryMap &geometry_map)
Changes geometries of existing features.
virtual bool createSpatialIndex()
Creates a spatial index on the datasource (if supported by the provider type).
virtual QgsAttrPalIndexNameHash palAttributeIndexNames() const
Returns list of indexes to names for QgsPalLabeling fix.
QgsCoordinateReferenceSystem sourceCrs() const override
Returns the coordinate reference system for features in the source.
virtual QgsFeatureRenderer * createRenderer(const QVariantMap &configuration=QVariantMap()) const
Creates a new vector layer feature renderer, using provider backend specific information.
virtual QString storageType() const
Returns the permanent storage type for this layer as a friendly name.
void clearMinMaxCache()
Invalidates the min/max cache.
virtual bool truncate()
Removes all features from the layer.
virtual bool isDeleteStyleFromDatabaseSupported() const
It returns false by default.
virtual QStringList uniqueStringsMatching(int index, const QString &substring, int limit=-1, QgsFeedback *feedback=nullptr) const
Returns unique string values of an attribute which contain a specified subset string.
void raiseError(const QString &msg) const
Signals an error in this provider.
QTextCodec * textEncoding() const
Gets this providers encoding.
void clearErrors()
Clear recorded errors.
QStringList errors() const
Gets recorded errors.
virtual bool empty() const
Returns true if the layer does not contain any feature.
QgsVectorDataProvider(const QString &uri=QString(), const QgsDataProvider::ProviderOptions &providerOptions=QgsDataProvider::ProviderOptions(), QgsDataProvider::ReadFlags flags=QgsDataProvider::ReadFlags())
Constructor for a vector data provider.
QList< QgsVectorDataProvider::NativeType > nativeTypes() const
Returns the names of the supported types.
virtual QgsAttributeList pkAttributeIndexes() const
Returns list of indexes of fields that make up the primary key.
virtual void handlePostCloneOperations(QgsVectorDataProvider *source)
Handles any post-clone operations required after this vector data provider was cloned from the source...
QgsGeometry convertToProviderType(const QgsGeometry &geom) const
Converts the geometry to the provider type if possible / necessary.
virtual bool changeFeatures(const QgsChangedAttributesMap &attr_map, const QgsGeometryMap &geometry_map)
Changes attribute values and geometries of existing features.
virtual QSet< QgsMapLayerDependency > dependencies() const
Gets the list of layer ids on which this layer depends.
int fieldNameIndex(const QString &fieldName) const
Returns the index of a field name or -1 if the field does not exist.
virtual QString defaultValueClause(int fieldIndex) const
Returns any default value clauses which are present at the provider for a specified field index.
virtual void setEncoding(const QString &e)
Set encoding used for accessing data from layer.
virtual bool changeAttributeValues(const QgsChangedAttributesMap &attr_map)
Changes attribute values of existing features.
QgsFeatureSource::FeatureAvailability hasFeatures() const override
Will always return FeatureAvailability::FeaturesAvailable or FeatureAvailability::NoFeaturesAvailable...
virtual bool deleteFeatures(const QgsFeatureIds &id)
Deletes one or more features from the provider.
QVariant maximumValue(int index) const override
Returns the maximum value of an attribute.
virtual bool createAttributeIndex(int field)
Create an attribute index on the datasource.
bool addFeatures(QgsFeatureList &flist, QgsFeatureSink::Flags flags=QgsFeatureSink::Flags()) override
Adds a list of features to the sink.
QgsFields fields() const override=0
Returns the fields associated with this data provider.
QMap< QString, int > fieldNameMap() const
Returns a map where the key is the name of the field and the value is its index.
QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const override=0
Query the provider for features specified in request.
virtual QgsAttributeList attributeIndexes() const
Returns list of indexes to fetch all attributes in nextFeature()
virtual bool addAttributes(const QList< QgsField > &attributes)
Adds new attributes to the provider.
QVariant minimumValue(int index) const override
Returns the minimum value of an attribute.
virtual QVariant aggregate(QgsAggregateCalculator::Aggregate aggregate, int index, const QgsAggregateCalculator::AggregateParameters ¶meters, QgsExpressionContext *context, bool &ok, QgsFeatureIds *fids=nullptr) const
Calculates an aggregated value from the layer's features.
void fillMinMaxCache() const
Populates the cache of minimum and maximum attribute values.
QString encoding() const
Returns the encoding which is used for accessing data.
virtual QVariant defaultValue(int fieldIndex) const
Returns any literal default values which are present at the provider for a specified field index.
QgsFieldConstraints::Constraints fieldConstraints(int fieldIndex) const
Returns any constraints which are present at the provider for a specified field index.
virtual QgsTransaction * transaction() const
Returns the transaction this data provider is included in, if any.
virtual QgsAbstractVectorLayerLabeling * createLabeling(const QVariantMap &configuration=QVariantMap()) const
Creates labeling settings, using provider backend specific information.
virtual Q_INVOKABLE QgsVectorDataProvider::Capabilities capabilities() const
Returns flags containing the supported capabilities.
virtual bool renameAttributes(const QgsFieldNameMap &renamedAttributes)
Renames existing attributes.
virtual bool deleteAttributes(const QgsAttributeIds &attributes)
Deletes existing attributes from the provider.
virtual bool skipConstraintCheck(int fieldIndex, QgsFieldConstraints::Constraint constraint, const QVariant &value=QVariant()) const
Returns true if a constraint check should be skipped for a specified field (e.g., if the value return...
static QVariant convertValue(QVariant::Type type, const QString &value)
bool hasErrors() const
Provider has errors to report.
QgsVectorDataProviderTemporalCapabilities * temporalCapabilities() override
Returns the provider's temporal capabilities.
QString capabilitiesString() const
Returns the above in friendly format.
Represents a vector layer which manages a vector based data sets.
static bool isMultiType(Type type) SIP_HOLDGIL
Returns true if the WKB type is a multi type.
static bool hasM(Type type) SIP_HOLDGIL
Tests whether a WKB type contains m values.
Type
The WKB type describes the number of dimensions a geometry has.
static bool isCurvedType(Type type) SIP_HOLDGIL
Returns true if the WKB type is a curved type or can contain curved geometries.
static Type flatType(Type type) SIP_HOLDGIL
Returns the flat type for a WKB type.
static bool hasZ(Type type) SIP_HOLDGIL
Tests whether a WKB type contains the z-dimension.
QMap< int, QString > QgsFieldNameMap
QMap< QgsFeatureId, QgsGeometry > QgsGeometryMap
QMap< QgsFeatureId, QgsAttributeMap > QgsChangedAttributesMap
QList< QgsFeature > QgsFeatureList
QSet< QgsFeatureId > QgsFeatureIds
QList< int > QgsAttributeList
#define QgsDebugMsgLevel(str, level)
QSet< int > QgsAttributeIds
QHash< int, QString > QgsAttrPalIndexNameHash
A bundle of parameters controlling aggregate calculation.
Setting options for creating vector data providers.