aboutsummaryrefslogtreecommitdiffstats
path: root/common_gdal.py
diff options
context:
space:
mode:
Diffstat (limited to 'common_gdal.py')
-rw-r--r--common_gdal.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/common_gdal.py b/common_gdal.py
index b91f8c5..401e0a5 100644
--- a/common_gdal.py
+++ b/common_gdal.py
@@ -27,7 +27,7 @@ from typing import Any, Optional
from osgeo import gdal, ogr, osr
-from common import BadConfiguration
+from common import BadConfiguration, escape_identifier, getEscapedTableNamePG
# pylint: disable-next=redefined-builtin
def gdalVersionMin(maj : int = 0, min : int = 0, rev : int = 0) -> bool:
@@ -362,3 +362,12 @@ def parseTimeZone(tz : str) -> int:
else:
tzFlag += ogr.TZFLAG_UTC
return tzFlag
+
+def getEscapedTableName(lyr : ogr.Layer, extract_schema_from_layer_name : bool = True) -> str:
+ """Return the layer name as an escaped identifier, suitable for injection into SQL queries.
+ For the PostgreSQL driver, an optional boolean (default: True) indicates whether the first
+ dot character is used as the separator between the schema and the table name."""
+ layername = lyr.GetName()
+ if lyr.GetDataset().GetDriver().ShortName == 'PostgreSQL':
+ return getEscapedTableNamePG(layername, extract_schema_from_layer_name)
+ return escape_identifier(layername)