Skip to content

Commit 925d9af

Browse files
m-kuhnnyalldawson
authored andcommitted
[processing] Remove some unrequired geometry checks
1 parent 5b7b7be commit 925d9af

4 files changed

+11
-11
lines changed

src/analysis/processing/qgsalgorithmextractbyattribute.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ QgsExtractByAttributeAlgorithm *QgsExtractByAttributeAlgorithm::createInstance()
8383

8484
QVariantMap QgsExtractByAttributeAlgorithm::processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback )
8585
{
86-
std::unique_ptr< QgsFeatureSource > source( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );
86+
std::unique_ptr< QgsProcessingFeatureSource > source( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );
8787
if ( !source )
8888
throw QgsProcessingException( QObject::tr( "Could not load source layer for INPUT" ) );
8989

@@ -187,7 +187,7 @@ QVariantMap QgsExtractByAttributeAlgorithm::processAlgorithm( const QVariantMap
187187
req.setFilterExpression( expr );
188188
req.setExpressionContext( expressionContext );
189189

190-
QgsFeatureIterator it = source->getFeatures( req );
190+
QgsFeatureIterator it = source->getFeatures( req, QgsProcessingFeatureSource::FlagSkipGeometryValidityChecks );
191191
QgsFeature f;
192192
while ( it.nextFeature( f ) )
193193
{
@@ -208,7 +208,7 @@ QVariantMap QgsExtractByAttributeAlgorithm::processAlgorithm( const QVariantMap
208208
expressionContext.setFields( source->fields() );
209209
expression.prepare( &expressionContext );
210210

211-
QgsFeatureIterator it = source->getFeatures();
211+
QgsFeatureIterator it = source->getFeatures( QgsFeatureRequest(), QgsProcessingFeatureSource::FlagSkipGeometryValidityChecks );
212212
QgsFeature f;
213213
while ( it.nextFeature( f ) )
214214
{

src/analysis/processing/qgsalgorithmextractbyexpression.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ QgsExtractByExpressionAlgorithm *QgsExtractByExpressionAlgorithm::createInstance
7070

7171
QVariantMap QgsExtractByExpressionAlgorithm::processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback )
7272
{
73-
std::unique_ptr< QgsFeatureSource > source( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );
73+
std::unique_ptr< QgsProcessingFeatureSource > source( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );
7474
if ( !source )
7575
throw QgsProcessingException( QObject::tr( "Could not load source layer for INPUT" ) );
7676

@@ -106,7 +106,7 @@ QVariantMap QgsExtractByExpressionAlgorithm::processAlgorithm( const QVariantMap
106106
req.setFilterExpression( expressionString );
107107
req.setExpressionContext( expressionContext );
108108

109-
QgsFeatureIterator it = source->getFeatures( req );
109+
QgsFeatureIterator it = source->getFeatures( req, QgsProcessingFeatureSource::FlagSkipGeometryValidityChecks );
110110
QgsFeature f;
111111
while ( it.nextFeature( f ) )
112112
{

src/analysis/processing/qgsalgorithmjoinbyattribute.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ QVariantMap QgsJoinByAttributeAlgorithm::processAlgorithm( const QVariantMap &pa
9393
int joinMethod = parameterAsEnum( parameters, QStringLiteral( "METHOD" ), context );
9494
bool discardNonMatching = parameterAsBool( parameters, QStringLiteral( "DISCARD_NONMATCHING" ), context );
9595

96-
std::unique_ptr< QgsFeatureSource > input( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );
97-
std::unique_ptr< QgsFeatureSource > input2( parameterAsSource( parameters, QStringLiteral( "INPUT_2" ), context ) );
96+
std::unique_ptr< QgsProcessingFeatureSource > input( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );
97+
std::unique_ptr< QgsProcessingFeatureSource > input2( parameterAsSource( parameters, QStringLiteral( "INPUT_2" ), context ) );
9898
if ( !input || !input2 )
9999
throw QgsProcessingException( QObject::tr( "Could not load source layers" ) );
100100

@@ -144,7 +144,7 @@ QVariantMap QgsJoinByAttributeAlgorithm::processAlgorithm( const QVariantMap &pa
144144

145145
// cache attributes of input2
146146
QMultiHash< QVariant, QgsAttributes > input2AttributeCache;
147-
QgsFeatureIterator features = input2->getFeatures( QgsFeatureRequest().setFlags( QgsFeatureRequest::NoGeometry ).setSubsetOfAttributes( fields2Fetch ) );
147+
QgsFeatureIterator features = input2->getFeatures( QgsFeatureRequest().setFlags( QgsFeatureRequest::NoGeometry ).setSubsetOfAttributes( fields2Fetch ), QgsProcessingFeatureSource::FlagSkipGeometryValidityChecks );
148148
double step = input2->featureCount() > 0 ? 50.0 / input2->featureCount() : 1;
149149
int i = 0;
150150
QgsFeature feat;
@@ -175,7 +175,7 @@ QVariantMap QgsJoinByAttributeAlgorithm::processAlgorithm( const QVariantMap &pa
175175

176176
// Create output vector layer with additional attribute
177177
step = input->featureCount() > 0 ? 50.0 / input->featureCount() : 1;
178-
features = input->getFeatures();
178+
features = input->getFeatures( QgsFeatureRequest(), QgsProcessingFeatureSource::FlagSkipGeometryValidityChecks );
179179
i = 0;
180180
while ( features.nextFeature( feat ) )
181181
{

src/analysis/processing/qgsalgorithmorderbyexpression.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ QgsOrderByExpressionAlgorithm *QgsOrderByExpressionAlgorithm::createInstance() c
6969

7070
QVariantMap QgsOrderByExpressionAlgorithm::processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback )
7171
{
72-
std::unique_ptr< QgsFeatureSource > source( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );
72+
std::unique_ptr< QgsProcessingFeatureSource > source( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );
7373
if ( !source )
7474
throw QgsProcessingException( QObject::tr( "Could not load source layer for INPUT" ) );
7575

@@ -91,7 +91,7 @@ QVariantMap QgsOrderByExpressionAlgorithm::processAlgorithm( const QVariantMap &
9191
request.addOrderBy( expressionString, ascending, nullsFirst );
9292

9393
QgsFeature inFeature;
94-
QgsFeatureIterator features = source->getFeatures( request );
94+
QgsFeatureIterator features = source->getFeatures( request, QgsProcessingFeatureSource::FlagSkipGeometryValidityChecks );
9595
while ( features.nextFeature( inFeature ) )
9696
{
9797
if ( feedback->isCanceled() )

0 commit comments

Comments
 (0)