Skip to content

Commit e48b64d

Browse files
committed
[GDAL provider] Fix opening of GeoPackage datasets with foreign key violation
1 parent 87f4410 commit e48b64d

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/providers/gdal/qgsgdalproviderbase.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,16 @@ QgsRectangle QgsGdalProviderBase::extent( GDALDatasetH gdalDataset )const
261261

262262
GDALDatasetH QgsGdalProviderBase::gdalOpen( const char *pszFilename, GDALAccess eAccess )
263263
{
264+
bool modify_OGR_GPKG_FOREIGN_KEY_CHECK = !CPLGetConfigOption( "OGR_GPKG_FOREIGN_KEY_CHECK", nullptr );
265+
if ( modify_OGR_GPKG_FOREIGN_KEY_CHECK )
266+
{
267+
CPLSetThreadLocalConfigOption( "OGR_GPKG_FOREIGN_KEY_CHECK", "NO" );
268+
}
264269
GDALDatasetH hDS = GDALOpen( pszFilename, eAccess );
270+
if ( modify_OGR_GPKG_FOREIGN_KEY_CHECK )
271+
{
272+
CPLSetThreadLocalConfigOption( "OGR_GPKG_FOREIGN_KEY_CHECK", nullptr );
273+
}
265274
return hDS;
266275
}
267276

0 commit comments

Comments
 (0)