mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-03 00:02:25 -05:00
Fix calculation of spatialite SelectAtId capability
This commit is contained in:
parent
4fbf4cf3ad
commit
6ddcae2936
@ -588,8 +588,23 @@ QgsAbstractFeatureSource* QgsSpatiaLiteProvider::featureSource() const
|
||||
return new QgsSpatiaLiteFeatureSource( this );
|
||||
}
|
||||
|
||||
void QgsSpatiaLiteProvider::updatePrimaryKeyCapabilities()
|
||||
{
|
||||
if ( mPrimaryKey.isEmpty() )
|
||||
{
|
||||
enabledCapabilities &= ~QgsVectorDataProvider::SelectAtId;
|
||||
enabledCapabilities &= ~QgsVectorDataProvider::SelectGeometryAtId;
|
||||
}
|
||||
else
|
||||
{
|
||||
enabledCapabilities |= QgsVectorDataProvider::SelectAtId;
|
||||
enabledCapabilities |= QgsVectorDataProvider::SelectGeometryAtId;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef SPATIALITE_VERSION_GE_4_0_0
|
||||
// only if libspatialite version is >= 4.0.0
|
||||
|
||||
void QgsSpatiaLiteProvider::loadFieldsAbstractInterface( gaiaVectorLayerPtr lyr )
|
||||
{
|
||||
if ( lyr == nullptr )
|
||||
@ -657,6 +672,9 @@ void QgsSpatiaLiteProvider::loadFieldsAbstractInterface( gaiaVectorLayerPtr lyr
|
||||
mPrimaryKeyAttrs << i - 1;
|
||||
}
|
||||
}
|
||||
|
||||
updatePrimaryKeyCapabilities();
|
||||
|
||||
sqlite3_free_table( results );
|
||||
}
|
||||
#endif
|
||||
@ -849,6 +867,8 @@ void QgsSpatiaLiteProvider::loadFields()
|
||||
mPrimaryKey = pkName;
|
||||
}
|
||||
|
||||
updatePrimaryKeyCapabilities();
|
||||
|
||||
return;
|
||||
|
||||
error:
|
||||
|
@ -426,6 +426,8 @@ class QgsSpatiaLiteProvider: public QgsVectorDataProvider
|
||||
static int computeMultiWKB3Dsize( const unsigned char *p_in, int little_endian,
|
||||
int endian_arch );
|
||||
private:
|
||||
void updatePrimaryKeyCapabilities();
|
||||
|
||||
int computeSizeFromMultiWKB2D( const unsigned char *p_in, int nDims,
|
||||
int little_endian,
|
||||
int endian_arch );
|
||||
@ -496,6 +498,7 @@ class QgsSpatiaLiteProvider: public QgsVectorDataProvider
|
||||
QgsSqliteHandle *handle;
|
||||
|
||||
friend class QgsSpatiaLiteFeatureSource;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user