From 2fa39019cd4bbe0c221b084a9bd17698f8ffd767 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Fri, 6 Mar 2026 09:00:51 +0100 Subject: Add wrapper for gdal.Dataset.ExecuteSQL(). --- common_gdal.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'common_gdal.py') diff --git a/common_gdal.py b/common_gdal.py index 401e0a5..b5570eb 100644 --- a/common_gdal.py +++ b/common_gdal.py @@ -371,3 +371,13 @@ def getEscapedTableName(lyr : ogr.Layer, extract_schema_from_layer_name : bool = if lyr.GetDataset().GetDriver().ShortName == 'PostgreSQL': return getEscapedTableNamePG(layername, extract_schema_from_layer_name) return escape_identifier(layername) + +def executeSQL(ds : gdal.Dataset, statement : str, + spatialFilter : Optional[ogr.Geometry] = None) -> ogr.Layer|None: + """Wrapper for gdal.Dataset.ExecuteSQL(). + https://gdal.org/en/stable/api/python/raster_api.html#osgeo.gdal.Dataset.ExecuteSQL""" + msg = statement + if spatialFilter is not None: + msg += ', spatialFilter=' + spatialFilter.ExportToWkt() + logging.debug('ExecuteSQL(%s)', msg) + return ds.ExecuteSQL(statement, spatialFilter=spatialFilter) -- cgit v1.2.3