mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-03-11 21:34:06 +00:00
fix parameter formatting in sqlite debug output
This commit is contained in:
@@ -90,6 +90,11 @@ class BaseLogger:
|
|||||||
params = dict(compiled.params)
|
params = dict(compiled.params)
|
||||||
if isinstance(extra_params, Mapping):
|
if isinstance(extra_params, Mapping):
|
||||||
for k, v in extra_params.items():
|
for k, v in extra_params.items():
|
||||||
|
if hasattr(v, 'to_wkt'):
|
||||||
|
params[k] = v.to_wkt()
|
||||||
|
elif isinstance(v, (int, float)):
|
||||||
|
params[k] = v
|
||||||
|
else:
|
||||||
params[k] = str(v)
|
params[k] = str(v)
|
||||||
elif isinstance(extra_params, Sequence) and extra_params:
|
elif isinstance(extra_params, Sequence) and extra_params:
|
||||||
for k in extra_params[0]:
|
for k in extra_params[0]:
|
||||||
@@ -97,6 +102,7 @@ class BaseLogger:
|
|||||||
|
|
||||||
sqlstr = str(compiled)
|
sqlstr = str(compiled)
|
||||||
|
|
||||||
|
if conn.dialect.name == 'postgresql':
|
||||||
if sa.__version__.startswith('1'):
|
if sa.__version__.startswith('1'):
|
||||||
try:
|
try:
|
||||||
sqlstr = re.sub(r'__\[POSTCOMPILE_[^]]*\]', '%s', sqlstr)
|
sqlstr = re.sub(r'__\[POSTCOMPILE_[^]]*\]', '%s', sqlstr)
|
||||||
@@ -111,6 +117,16 @@ class BaseLogger:
|
|||||||
sqlstr = re.sub(r'__\[POSTCOMPILE_([^]]*)\]', r'%(\1)s', sqlstr)
|
sqlstr = re.sub(r'__\[POSTCOMPILE_([^]]*)\]', r'%(\1)s', sqlstr)
|
||||||
return sqlstr % params
|
return sqlstr % params
|
||||||
|
|
||||||
|
assert conn.dialect.name == 'sqlite'
|
||||||
|
|
||||||
|
# params in positional order
|
||||||
|
pparams = (repr(params.get(name, None)) for name in compiled.positiontup) # type: ignore
|
||||||
|
|
||||||
|
sqlstr = re.sub(r'__\[POSTCOMPILE_([^]]*)\]', '?', sqlstr)
|
||||||
|
sqlstr = re.sub(r"\?", lambda m: next(pparams), sqlstr)
|
||||||
|
|
||||||
|
return sqlstr
|
||||||
|
|
||||||
class HTMLLogger(BaseLogger):
|
class HTMLLogger(BaseLogger):
|
||||||
""" Logger that formats messages in HTML.
|
""" Logger that formats messages in HTML.
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user