Skip to content

Commit 21a82cb

Browse files
author
IlyaFaer
committed
fix: revert googleapis#233
1 parent e990ff7 commit 21a82cb

File tree

2 files changed

+41
-23
lines changed

2 files changed

+41
-23
lines changed

google/cloud/spanner_dbapi/parse_utils.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -306,15 +306,19 @@ def parse_insert(insert_sql, params):
306306
# Case c)
307307

308308
columns = [mi.strip(" `") for mi in match.group("columns").split(",")]
309+
sql_params_list = []
310+
insert_sql_preamble = "INSERT INTO %s (%s) VALUES %s" % (
311+
match.group("table_name"),
312+
match.group("columns"),
313+
values.argv[0],
314+
)
309315
values_pyformat = [str(arg) for arg in values.argv]
310316
rows_list = rows_for_insert_or_update(columns, params, values_pyformat)
317+
insert_sql_preamble = sanitize_literals_for_upload(insert_sql_preamble)
318+
for row in rows_list:
319+
sql_params_list.append((insert_sql_preamble, row))
311320

312-
return {
313-
"homogenous": True,
314-
"table": match.group("table_name"),
315-
"columns": columns,
316-
"values": rows_list,
317-
}
321+
return {"sql_params_list": sql_params_list}
318322

319323
# Case d)
320324
# insert_sql is of the form:

tests/unit/spanner_dbapi/test_parse_utils.py

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,32 @@ def test_parse_insert(self):
7272
"INSERT INTO django_migrations (app, name, applied) VALUES (%s, %s, %s)",
7373
[1, 2, 3, 4, 5, 6],
7474
{
75-
"homogenous": True,
76-
"table": "django_migrations",
77-
"columns": ["app", "name", "applied"],
78-
"values": [(1, 2, 3), (4, 5, 6)],
75+
"sql_params_list": [
76+
(
77+
"INSERT INTO django_migrations (app, name, applied) VALUES (%s, %s, %s)",
78+
(1, 2, 3),
79+
),
80+
(
81+
"INSERT INTO django_migrations (app, name, applied) VALUES (%s, %s, %s)",
82+
(4, 5, 6),
83+
),
84+
]
7985
},
8086
),
8187
(
8288
"INSERT INTO django_migrations(app, name, applied) VALUES (%s, %s, %s)",
8389
[1, 2, 3, 4, 5, 6],
8490
{
85-
"homogenous": True,
86-
"table": "django_migrations",
87-
"columns": ["app", "name", "applied"],
88-
"values": [(1, 2, 3), (4, 5, 6)],
91+
"sql_params_list": [
92+
(
93+
"INSERT INTO django_migrations (app, name, applied) VALUES (%s, %s, %s)",
94+
(1, 2, 3),
95+
),
96+
(
97+
"INSERT INTO django_migrations (app, name, applied) VALUES (%s, %s, %s)",
98+
(4, 5, 6),
99+
),
100+
]
89101
},
90102
),
91103
(
@@ -106,23 +118,25 @@ def test_parse_insert(self):
106118
),
107119
(
108120
"INSERT INTO ap (n, ct, cn) "
109-
"VALUES (%s, %s, %s), (%s, %s, %s), (%s, %s, %s),(%s,%s, %s)",
121+
"VALUES (%s, %s, %s), (%s, %s, %s), (%s, %s, %s),(%s, %s, %s)",
110122
(1, 2, 3, 4, 5, 6, 7, 8, 9),
111123
{
112-
"homogenous": True,
113-
"table": "ap",
114-
"columns": ["n", "ct", "cn"],
115-
"values": [(1, 2, 3), (4, 5, 6), (7, 8, 9)],
124+
"sql_params_list": [
125+
("INSERT INTO ap (n, ct, cn) VALUES (%s, %s, %s)", (1, 2, 3)),
126+
("INSERT INTO ap (n, ct, cn) VALUES (%s, %s, %s)", (4, 5, 6)),
127+
("INSERT INTO ap (n, ct, cn) VALUES (%s, %s, %s)", (7, 8, 9)),
128+
]
116129
},
117130
),
118131
(
119132
"INSERT INTO `no` (`yes`) VALUES (%s)",
120133
(1, 4, 5),
121134
{
122-
"homogenous": True,
123-
"table": "`no`",
124-
"columns": ["yes"],
125-
"values": [(1,), (4,), (5,)],
135+
"sql_params_list": [
136+
("INSERT INTO `no` (`yes`) VALUES (%s)", (1,)),
137+
("INSERT INTO `no` (`yes`) VALUES (%s)", (4,)),
138+
("INSERT INTO `no` (`yes`) VALUES (%s)", (5,)),
139+
]
126140
},
127141
),
128142
(

0 commit comments

Comments
 (0)