Merge pull request #1230 from imachug/db-array
Handle :param being an array
This commit is contained in:
commit
520fd6e063
1 changed files with 15 additions and 0 deletions
|
@ -47,6 +47,21 @@ class DbCursor:
|
||||||
keysvalues = "(%s) VALUES (%s)" % (keys, values)
|
keysvalues = "(%s) VALUES (%s)" % (keys, values)
|
||||||
query = re.sub("(.*)[?]", "\\1%s" % keysvalues, query) # Replace the last ?
|
query = re.sub("(.*)[?]", "\\1%s" % keysvalues, query) # Replace the last ?
|
||||||
params = tuple(params.values())
|
params = tuple(params.values())
|
||||||
|
elif isinstance(params, dict) and ":" in query:
|
||||||
|
new_params = dict()
|
||||||
|
values = []
|
||||||
|
for key, value in params.items():
|
||||||
|
if type(value) is list:
|
||||||
|
for idx, val in enumerate(value):
|
||||||
|
new_params[key + "__" + str(idx)] = val
|
||||||
|
|
||||||
|
new_names = [":" + key + "__" + str(idx) for idx in range(len(value))]
|
||||||
|
query = re.sub(r":" + re.escape(key) + r"([)\s])", ", ".join(new_names) + r"\1", query)
|
||||||
|
else:
|
||||||
|
new_params[key] = value
|
||||||
|
|
||||||
|
params = new_params
|
||||||
|
|
||||||
|
|
||||||
s = time.time()
|
s = time.time()
|
||||||
# if query == "COMMIT": self.logging = True # Turn logging back on transaction commit
|
# if query == "COMMIT": self.logging = True # Turn logging back on transaction commit
|
||||||
|
|
Loading…
Reference in a new issue