diff --git a/cmake/FindSPATIALITE.cmake b/cmake/FindSPATIALITE.cmake index 697b617a55e..a35926738df 100644 --- a/cmake/FindSPATIALITE.cmake +++ b/cmake/FindSPATIALITE.cmake @@ -69,6 +69,7 @@ IF (SPATIALITE_FOUND) SET(CMAKE_REQUIRED_LIBRARIES "-F/Library/Frameworks" ${CMAKE_REQUIRED_LIBRARIES}) ENDIF(APPLE) check_library_exists("${SPATIALITE_LIBRARY}" gaiaDropTable "" SPATIALITE_VERSION_GE_4_0_0) + check_library_exists("${SPATIALITE_LIBRARY}" gaiaStatisticsInvalidate "" SPATIALITE_VERSION_G_4_1_1) ELSE (SPATIALITE_FOUND) diff --git a/src/providers/spatialite/CMakeLists.txt b/src/providers/spatialite/CMakeLists.txt index 60baf54de5e..0df0a45d7a9 100644 --- a/src/providers/spatialite/CMakeLists.txt +++ b/src/providers/spatialite/CMakeLists.txt @@ -33,6 +33,9 @@ QT4_WRAP_CPP(SPATIALITE_MOC_SRCS ${SPATIALITE_MOC_HDRS}) IF(SPATIALITE_VERSION_GE_4_0_0) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSPATIALITE_VERSION_GE_4_0_0") ENDIF(SPATIALITE_VERSION_GE_4_0_0) +IF(SPATIALITE_VERSION_G_4_1_1) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSPATIALITE_VERSION_G_4_1_1") +ENDIF(SPATIALITE_VERSION_G_4_1_1) INCLUDE_DIRECTORIES( diff --git a/src/providers/spatialite/qgsspatialiteprovider.cpp b/src/providers/spatialite/qgsspatialiteprovider.cpp index e3eea197ce7..da037817669 100644 --- a/src/providers/spatialite/qgsspatialiteprovider.cpp +++ b/src/providers/spatialite/qgsspatialiteprovider.cpp @@ -3827,6 +3827,16 @@ bool QgsSpatiaLiteProvider::addAttributes( const QList &attributes ) // some error occurred goto abort; } +#ifdef SPATIALITE_VERSION_GE_4_0_0 + sql = QString( "UPDATE geometry_columns_statistics set last_verified = 0 WHERE f_table_name=\"%1\" AND f_geometry_column=\"%2\";" ) + .arg( mTableName ) + .arg( mGeometryColumn ); + ret = sqlite3_exec( sqliteHandle, sql.toUtf8().constData(), NULL, NULL, &errMsg ); + update_layer_statistics( sqliteHandle, mTableName.toUtf8().constData(), mGeometryColumn.toUtf8().constData() ); +#elif SPATIALITE_VERSION_G_4_1_1 + gaiaStatisticsInvalidate( sqliteHandle, tableName.toUtf8().constData(), mGeometryColumn.toUtf8().constData() ); + update_layer_statistics( sqliteHandle, mTableName.toUtf8().constData(), mGeometryColumn.toUtf8().constData() ); +#endif // reload columns loadFields();