Skip to content

Commit

Permalink
Install query logger only when needed
Browse files Browse the repository at this point in the history
  • Loading branch information
elpaso committed Dec 28, 2022
1 parent 43de538 commit b4d73ca
Showing 1 changed file with 18 additions and 15 deletions.
33 changes: 18 additions & 15 deletions src/core/providers/ogr/qgsogrfeatureiterator.cpp
Expand Up @@ -277,22 +277,25 @@ QgsOgrFeatureIterator::QgsOgrFeatureIterator( QgsOgrFeatureSource *source, bool
std::sort( mRequestAttributes.begin(), mRequestAttributes.end() );
}

// Install query logger
#if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(3,7,0)
GDALDatasetSetQueryLoggerFunc( mConn->ds, [ ]( const char *pszSQL, const char *pszError, int64_t lNumRecords, int64_t lExecutionTimeMilliseconds, void *pQueryLoggerArg )
{
QgsDatabaseQueryLogEntry entry;
entry.initiatorClass = QStringLiteral( "QgsOgrFeatureIterator" );
entry.origin = QGS_QUERY_LOG_ORIGIN;
entry.provider = QStringLiteral( "ogr" );
entry.uri = *reinterpret_cast<QString *>( pQueryLoggerArg );
entry.query = QString( pszSQL );
entry.error = QString( pszError );
entry.startedTime = QDateTime::currentMSecsSinceEpoch() - lExecutionTimeMilliseconds;
entry.fetchedRows = lNumRecords;
QgsApplication::databaseQueryLog()->log( entry );
QgsApplication::databaseQueryLog()->finished( entry );
}, reinterpret_cast<void *>( &mConn->path ) );
// Install query logger
if ( QgsApplication::databaseQueryLog()->enabled() )
{
GDALDatasetSetQueryLoggerFunc( mConn->ds, [ ]( const char *pszSQL, const char *pszError, int64_t lNumRecords, int64_t lExecutionTimeMilliseconds, void *pQueryLoggerArg )
{
QgsDatabaseQueryLogEntry entry;
entry.initiatorClass = QStringLiteral( "QgsOgrFeatureIterator" );
entry.origin = QGS_QUERY_LOG_ORIGIN;
entry.provider = QStringLiteral( "ogr" );
entry.uri = *reinterpret_cast<QString *>( pQueryLoggerArg );
entry.query = QString( pszSQL );
entry.error = QString( pszError );
entry.startedTime = QDateTime::currentMSecsSinceEpoch() - lExecutionTimeMilliseconds;
entry.fetchedRows = lNumRecords;
QgsApplication::databaseQueryLog()->log( entry );
QgsApplication::databaseQueryLog()->finished( entry );
}, reinterpret_cast<void *>( &mConn->path ) );
}
#endif
//start with first feature
rewind();
Expand Down

0 comments on commit b4d73ca

Please sign in to comment.