aboutsummaryrefslogtreecommitdiffstats
path: root/common_gdal.py
diff options
context:
space:
mode:
Diffstat (limited to 'common_gdal.py')
-rw-r--r--common_gdal.py10
1 files changed, 10 insertions, 0 deletions
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)