@@ -212,9 +212,9 @@ def test_upsert_on_duplicate(self):
212212 old_sql = SQLizer .upsert_on_duplicate (
213213 self .table ,
214214 [
215- {'id' : 7 , ' gender' : 1 , ' name' : ' 斉藤 修平' , ' locale' : ' ja_JP' , ' extend' : {}},
216- {'id' : 8 , ' gender' : 1 , ' name' : ' Ojas Salvi' , ' locale' : ' en_IN' , ' extend' : {}},
217- {'id' : 9 , ' gender' : 1 , ' name' : ' 羊淑兰' , ' locale' : ' zh_CN' , ' extend' : {}}
215+ {"id" : 7 , " gender" : 1 , " name" : " 斉藤 修平" , " locale" : " ja_JP" , " extend" : {}},
216+ {"id" : 8 , " gender" : 1 , " name" : " Ojas Salvi" , " locale" : " en_IN" , " extend" : {}},
217+ {"id" : 9 , " gender" : 1 , " name" : " 羊淑兰" , " locale" : " zh_CN" , " extend" : {}}
218218 ],
219219 insert_fields = ["id" , "gender" , "name" , "locale" , "extend" ],
220220 upsert_fields = ["name" , "locale" ],
@@ -233,9 +233,9 @@ def test_upsert_on_duplicate(self):
233233 new_sql = SQLizer .upsert_on_duplicate (
234234 self .table ,
235235 [
236- {'id' : 7 , ' gender' : 1 , ' name' : ' 斉藤 修平' , ' locale' : ' ja_JP' , ' extend' : {}},
237- {'id' : 8 , ' gender' : 1 , ' name' : ' Ojas Salvi' , ' locale' : ' en_IN' , ' extend' : {}},
238- {'id' : 9 , ' gender' : 1 , ' name' : ' 羊淑兰' , ' locale' : ' zh_CN' , ' extend' : {}}
236+ {"id" : 7 , " gender" : 1 , " name" : " 斉藤 修平" , " locale" : " ja_JP" , " extend" : {}},
237+ {"id" : 8 , " gender" : 1 , " name" : " Ojas Salvi" , " locale" : " en_IN" , " extend" : {}},
238+ {"id" : 9 , " gender" : 1 , " name" : " 羊淑兰" , " locale" : " zh_CN" , " extend" : {}}
239239 ],
240240 insert_fields = ["id" , "gender" , "name" , "locale" , "extend" ],
241241 upsert_fields = ["name" , "locale" ],
@@ -254,9 +254,9 @@ def test_upsert_on_duplicate(self):
254254 only_insert_sql = SQLizer .upsert_on_duplicate (
255255 self .table ,
256256 [
257- {'id' : 7 , ' gender' : 1 , ' name' : ' 斉藤 修平' , ' locale' : ' ja_JP' , ' extend' : {}},
258- {'id' : 8 , ' gender' : 1 , ' name' : ' Ojas Salvi' , ' locale' : ' en_IN' , ' extend' : {}},
259- {'id' : 9 , ' gender' : 1 , ' name' : ' 羊淑兰' , ' locale' : ' zh_CN' , ' extend' : {}}
257+ {"id" : 7 , " gender" : 1 , " name" : " 斉藤 修平" , " locale" : " ja_JP" , " extend" : {}},
258+ {"id" : 8 , " gender" : 1 , " name" : " Ojas Salvi" , " locale" : " en_IN" , " extend" : {}},
259+ {"id" : 9 , " gender" : 1 , " name" : " 羊淑兰" , " locale" : " zh_CN" , " extend" : {}}
260260 ],
261261 insert_fields = ["id" , "gender" , "name" , "locale" , "extend" ],
262262 )
@@ -328,8 +328,8 @@ def test_build_fly_table(self):
328328
329329 old_sql = SQLizer .build_fly_table (
330330 [
331- {'id' : 7 , ' active' : False , ' gender' : GenderEnum .male },
332- {'id' : 15 , ' active' : True , ' gender' : GenderEnum .unknown }
331+ {"id" : 7 , " active" : False , " gender" : GenderEnum .male },
332+ {"id" : 15 , " active" : True , " gender" : GenderEnum .unknown }
333333 ],
334334 fields = ["id" , "active" , "gender" ],
335335 using_values = False ,
@@ -343,8 +343,8 @@ def test_build_fly_table(self):
343343
344344 new_sql = SQLizer .build_fly_table (
345345 [
346- {'id' : 7 , ' active' : False , ' gender' : GenderEnum .male },
347- {'id' : 15 , ' active' : True , ' gender' : GenderEnum .unknown }
346+ {"id" : 7 , " active" : False , " gender" : GenderEnum .male },
347+ {"id" : 15 , " active" : True , " gender" : GenderEnum .unknown }
348348 ],
349349 fields = ["id" , "active" , "gender" ],
350350 using_values = True ,
@@ -368,22 +368,23 @@ def test_bulk_update_from_dicts(self):
368368 sql = SQLizer .bulk_update_from_dicts (
369369 self .table ,
370370 [
371- {'id' : 7 , ' active' : False , ' gender' : GenderEnum .male },
372- {'id' : 15 , ' active' : True , ' gender' : GenderEnum .unknown }
371+ {"id" : 7 , " active" : False , " gender" : GenderEnum .male , "extend" : { "test" : 1 , "debug" : 0 } },
372+ {"id" : 15 , " active" : True , " gender" : GenderEnum .unknown , "extend" : { "test" : 1 , "debug" : 0 } }
373373 ],
374374 join_fields = ["id" ],
375375 update_fields = ["active" , "gender" ],
376+ merge_fields = ["extend" ],
376377 )
377378 assert sql == """
378379 UPDATE account
379380 JOIN (
380381 SELECT * FROM (
381382 VALUES
382- ROW(7, False, 1),
383- ROW(15, True, 0)
384- ) AS fly_table (id, active, gender)
383+ ROW(7, False, 1, '{"test": 1, "debug": 0}' ),
384+ ROW(15, True, 0, '{"test": 1, "debug": 0}' )
385+ ) AS fly_table (id, active, gender, extend )
385386 ) tmp ON account.id=tmp.id
386- SET account.active=tmp.active, account.gender=tmp.gender
387+ SET account.active=tmp.active, account.gender=tmp.gender, account.extend=JSON_MERGE_PATCH(COALESCE(account.extend, '{}'), tmp.extend)
387388"""
388389
389390 # def test_(self):
0 commit comments