Skip to content

Commit 7533c19

Browse files
committed
return select query result as list of dictionaries
1 parent 95c0e74 commit 7533c19

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

Framework/Built_In_Automation/Database/BuiltInFunctions.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def db_get_connection(session_name):
163163
db_con = None
164164

165165
# Get the values
166-
db_type = db_params.get(DB_TYPE)
166+
db_type = db_params.get(DB_TYPE).lower()
167167
db_name = db_params.get(DB_NAME)
168168
db_user_id = db_params.get(DB_USER_ID)
169169
db_password = db_params.get(DB_PASSWORD)
@@ -368,14 +368,18 @@ def db_select(data_set):
368368
query = None
369369
session_name = 'default'
370370
variable_name = None
371+
return_type = None
371372
for left, mid, right in data_set:
372373
if left == "query":
373374
# Get the and query, and remove any whitespaces
374375
query = right.strip()
375376
if "action" in mid:
376377
variable_name = right.strip()
377378
if 'session' in left.lower():
378-
session_name = right.strip()
379+
session_name = right.strip()
380+
if 'return' in left.lower():
381+
return_type = "records"
382+
379383

380384
if variable_name is None:
381385
CommonUtil.ExecLog(sModuleInfo, "Variable name must be provided.", 3)
@@ -403,6 +407,10 @@ def db_select(data_set):
403407
db_rows.append(list(db_row))
404408

405409
# Set the rows as a shared variable
410+
if return_type == 'records':
411+
column_headers = [i[0] for i in db_cursor.description]
412+
db_rows = [dict(zip(column_headers, row)) for row in db_rows]
413+
406414
sr.Set_Shared_Variables(variable_name, db_rows)
407415

408416
db_con.close()

0 commit comments

Comments
 (0)