diff options
Diffstat (limited to 'import_source.py')
| -rw-r--r-- | import_source.py | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/import_source.py b/import_source.py index c04390e..289bc4c 100644 --- a/import_source.py +++ b/import_source.py @@ -49,6 +49,7 @@ from common_gdal import ( gdalGetMetadataItem, formatTZFlag, getSpatialFilterFromGeometry, + getEscapedTableName, ) def openOutputDS(def_dict : dict[str, Any]) -> gdal.Dataset: @@ -393,11 +394,9 @@ def clearLayer(lyr : ogr.Layer) -> None: if n == 0: # nothing to clear, we're good return - layername_esc = escape_identifier(lyr.GetName()) ds = lyr.GetDataset() - drv = ds.GetDriver() - if drv.ShortName == 'PostgreSQL': + if ds.GetDriver().ShortName == 'PostgreSQL': # https://www.postgresql.org/docs/15/sql-truncate.html query = 'TRUNCATE TABLE {table} CONTINUE IDENTITY CASCADE' op = 'Truncating' @@ -405,8 +404,8 @@ def clearLayer(lyr : ogr.Layer) -> None: query = 'DELETE FROM {table}' op = 'Clearing' logging.info('%s table %s (former feature count: %s)', op, - layername_esc, str(n) if n >= 0 else 'unknown') - ds.ExecuteSQL(query.format(table=layername_esc)) + lyr.GetName(), str(n) if n >= 0 else 'unknown') + ds.ExecuteSQL(query.format(table=getEscapedTableName(lyr))) def extractArchive(path : Path, destdir : str, fmt : str|None = None, @@ -967,7 +966,7 @@ def updateLayerCache(lyr : ogr.Layer, cache : ogr.Layer, '\'\')) AS hash_geom') if len(fields) == 0: raise RuntimeError('Empty field list in SELECT') - query = 'SELECT ' + ','.join(fields) + ' FROM ' + escape_identifier(layername) + ' t' + query = 'SELECT ' + ','.join(fields) + ' FROM ' + getEscapedTableName(lyr) + ' t' sort_by = next(listFieldsOrderBy(defn, unique=True, nullable=False), None) if sort_by is not None: |
