Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

525 righe
23 KiB

  1. #include <cpphibernate/driver/mariadb.h>
  2. #include "test_helper.h"
  3. #include "test_schema.h"
  4. #include "mariadb_mock.h"
  5. using namespace ::testing;
  6. using namespace ::cpphibernate;
  7. TEST(CppHibernateTests, update_test1)
  8. {
  9. StrictMock<mariadb_mock> mock;
  10. expect_query(mock, "START TRANSACTION");
  11. expect_query(mock, "UPDATE "
  12. "`tbl_test1` "
  13. "SET "
  14. "`str_data`='Xstr_data of class `test1` object `t1`X', "
  15. "`str64_data`='Xstr64_data of class `test1` object `t1`X', "
  16. "`u32_nullable`=null, "
  17. "`u32_ptr_u`='X456X', "
  18. "`u32_ptr_s`='X789X' "
  19. "WHERE "
  20. "`tbl_test1_id`=UuidToBin('X3d12697a-abb9-11e8-98d0-529269fb1459X')",
  21. result_affected_rows(1));
  22. expect_query(mock, "COMMIT");
  23. EXPECT_CALL(
  24. mock,
  25. mysql_real_escape_string(reinterpret_cast<MYSQL*>(0x1111), _, _, _))
  26. .Times(AnyNumber())
  27. .WillRepeatedly(WithArgs<1, 2, 3>(EscapeString()));
  28. EXPECT_CALL(
  29. mock,
  30. mysql_close(
  31. reinterpret_cast<MYSQL*>(0x1111)));
  32. test1 t1;
  33. t1.id = uuid("3d12697a-abb9-11e8-98d0-529269fb1459");
  34. t1.str_data = "str_data of class `test1` object `t1`";
  35. t1.str64_data = "str64_data of class `test1` object `t1`";
  36. t1.u32_ptr_u = std::make_unique<uint32_t>(456);
  37. t1.u32_ptr_s = std::make_shared<uint32_t>(789);
  38. ::cppmariadb::connection connection(reinterpret_cast<MYSQL*>(0x1111));
  39. auto context = make_context<driver::mariadb>(test_schema, connection);
  40. context.update(t1);
  41. }
  42. TEST(CppHibernateTests, update_test2)
  43. {
  44. StrictMock<mariadb_mock> mock;
  45. expect_query(mock, "START TRANSACTION");
  46. expect_query(mock, "UPDATE "
  47. "`tbl_test2` "
  48. "SET "
  49. "`u8_data`='X1X', "
  50. "`i8_data`='X2X', "
  51. "`u16_data`='X3X', "
  52. "`i16_data`='X4X' "
  53. "WHERE "
  54. "`tbl_test2_id`=UuidToBin('X3d1270dc-abb9-11e8-98d0-529269fb1459X')",
  55. result_affected_rows(1));
  56. expect_query(mock, "COMMIT");
  57. EXPECT_CALL(
  58. mock,
  59. mysql_real_escape_string(reinterpret_cast<MYSQL*>(0x1111), _, _, _))
  60. .Times(AnyNumber())
  61. .WillRepeatedly(WithArgs<1, 2, 3>(EscapeString()));
  62. EXPECT_CALL(
  63. mock,
  64. mysql_close(
  65. reinterpret_cast<MYSQL*>(0x1111)));
  66. test2 t2;
  67. t2.id = uuid("3d1270dc-abb9-11e8-98d0-529269fb1459");
  68. t2.u8_data = 1;
  69. t2.i8_data = 2;
  70. t2.u16_data = 3;
  71. t2.i16_data = 4;
  72. ::cppmariadb::connection connection(reinterpret_cast<MYSQL*>(0x1111));
  73. auto context = make_context<driver::mariadb>(test_schema, connection);
  74. context.update(t2);
  75. }
  76. TEST(CppHibernateTests, update_test3)
  77. {
  78. StrictMock<mariadb_mock> mock;
  79. expect_query(mock, "START TRANSACTION");
  80. expect_query(mock, "UPDATE "
  81. "`tbl_test3` "
  82. "SET "
  83. "`u32_data`='X5X', "
  84. "`i32_data`='X6X', "
  85. "`u64_data`='X7X', "
  86. "`i64_data`='X8X' "
  87. "WHERE "
  88. "`tbl_test3_id`=UuidToBin('X3d12737a-abb9-11e8-98d0-529269fb1459X')",
  89. result_affected_rows(1));
  90. expect_query(mock, "COMMIT");
  91. EXPECT_CALL(
  92. mock,
  93. mysql_real_escape_string(reinterpret_cast<MYSQL*>(0x1111), _, _, _))
  94. .Times(AnyNumber())
  95. .WillRepeatedly(WithArgs<1, 2, 3>(EscapeString()));
  96. EXPECT_CALL(
  97. mock,
  98. mysql_close(
  99. reinterpret_cast<MYSQL*>(0x1111)));
  100. test3 t3;
  101. t3.id = uuid("3d12737a-abb9-11e8-98d0-529269fb1459");
  102. t3.u32_data = 5;
  103. t3.i32_data = 6;
  104. t3.u64_data = 7;
  105. t3.i64_data = 8;
  106. ::cppmariadb::connection connection(reinterpret_cast<MYSQL*>(0x1111));
  107. auto context = make_context<driver::mariadb>(test_schema, connection);
  108. context.update(t3);
  109. }
  110. TEST(CppHibernateTests, update_derived1)
  111. {
  112. StrictMock<mariadb_mock> mock;
  113. expect_query(mock, "START TRANSACTION");
  114. expect_query(mock, "UPDATE "
  115. "`tbl_base` "
  116. "SET "
  117. "`name`='Xderived1X' "
  118. "WHERE "
  119. "`tbl_base_id`=UuidToBin('X3d12778a-abb9-11e8-98d0-529269fb1459X')",
  120. result_affected_rows(1));
  121. expect_query(mock, "SELECT Uuid()", result_used({
  122. { "e2488a64-b843-11e8-96f8-529269fb1459" }
  123. }));
  124. expect_query(mock, "INSERT INTO "
  125. "`tbl_test1` "
  126. "SET "
  127. "`tbl_test1_id`=UuidToBin('Xe2488a64-b843-11e8-96f8-529269fb1459X'), "
  128. "`str_data`='Xstr_data of class `test1` object `d1.test1_data`X', "
  129. "`str64_data`='Xstr64_data of class `test1` object `d1.test1_data`X', "
  130. "`u32_nullable`='X32X', "
  131. "`u32_ptr_u`=null, "
  132. "`u32_ptr_s`='X789X'",
  133. result_affected_rows(1));
  134. expect_query(mock, "DELETE FROM "
  135. "`tbl_test1` "
  136. "WHERE "
  137. "`tbl_test1_id` IN ("
  138. "SELECT "
  139. "`tbl_test1_id_test1_data` "
  140. "FROM "
  141. "`tbl_derived1` "
  142. "WHERE "
  143. "`tbl_derived1_id`=UuidToBin('X3d12758c-abb9-11e8-98d0-529269fb1459X') AND "
  144. "`tbl_test1_id_test1_data`!= UuidToBin('Xe2488a64-b843-11e8-96f8-529269fb1459X')"
  145. ")");
  146. expect_query(mock, "UPDATE "
  147. "`tbl_derived1` "
  148. "SET "
  149. "`tbl_base_id`=UuidToBin('X3d12778a-abb9-11e8-98d0-529269fb1459X'), "
  150. "`tbl_test1_id_test1_data`=UuidToBin('Xe2488a64-b843-11e8-96f8-529269fb1459X'), "
  151. "`enum_data`='Xtest2X' "
  152. "WHERE "
  153. "`tbl_derived1_id`=UuidToBin('X3d12758c-abb9-11e8-98d0-529269fb1459X')",
  154. result_affected_rows(1));
  155. expect_query(mock, "COMMIT");
  156. EXPECT_CALL(
  157. mock,
  158. mysql_real_escape_string(reinterpret_cast<MYSQL*>(0x1111), _, _, _))
  159. .Times(AnyNumber())
  160. .WillRepeatedly(WithArgs<1, 2, 3>(EscapeString()));
  161. EXPECT_CALL(
  162. mock,
  163. mysql_close(
  164. reinterpret_cast<MYSQL*>(0x1111)));
  165. derived1 d1;
  166. d1.id = uuid("3d12778a-abb9-11e8-98d0-529269fb1459");
  167. d1.name = "derived1";
  168. d1.derived1_id = uuid("3d12758c-abb9-11e8-98d0-529269fb1459");
  169. d1.enum_data = test_enum::test2;
  170. d1.test1_data.str_data = "str_data of class `test1` object `d1.test1_data`";
  171. d1.test1_data.str64_data = "str64_data of class `test1` object `d1.test1_data`";
  172. d1.test1_data.u32_nullable = 32;
  173. d1.test1_data.u32_ptr_s = std::make_shared<uint32_t>(789);
  174. ::cppmariadb::connection connection(reinterpret_cast<MYSQL*>(0x1111));
  175. auto context = make_context<driver::mariadb>(test_schema, connection);
  176. context.update(static_cast<base&>(d1));
  177. }
  178. TEST(CppHibernateTests, update_derived2)
  179. {
  180. StrictMock<mariadb_mock> mock;
  181. expect_query(mock, "START TRANSACTION");
  182. expect_query(mock, "UPDATE "
  183. "`tbl_base` "
  184. "SET "
  185. "`name`='Xderived2X' "
  186. "WHERE "
  187. "`tbl_base_id`=UuidToBin('X3d127db6-abb9-11e8-98d0-529269fb1459X')",
  188. result_affected_rows(1));
  189. expect_query(mock, "UPDATE "
  190. "`tbl_test2` "
  191. "SET "
  192. "`u8_data`='X10X', "
  193. "`i8_data`='X11X', "
  194. "`u16_data`='X12X', "
  195. "`i16_data`='X13X' "
  196. "WHERE "
  197. "`tbl_test2_id`=UuidToBin('X3d1283a6-abb9-11e8-98d0-529269fb1459X')",
  198. result_affected_rows(1));
  199. expect_query(mock, "DELETE FROM "
  200. "`tbl_test2` "
  201. "WHERE "
  202. "`tbl_test2_id` IN ("
  203. "SELECT "
  204. "`tbl_test2_id_test2_nullable` "
  205. "FROM "
  206. "`tbl_derived2` "
  207. "WHERE "
  208. "`tbl_derived2_id`=UuidToBin('X3d127bcc-abb9-11e8-98d0-529269fb1459X') AND "
  209. "`tbl_test2_id_test2_nullable`!= UuidToBin('X3d1283a6-abb9-11e8-98d0-529269fb1459X')"
  210. ")");
  211. expect_query(mock, "SELECT Uuid()",
  212. result_used({
  213. { "ec0f0aac-b8b9-11e8-96f8-529269fb1459" }
  214. }));
  215. expect_query(mock, "INSERT INTO "
  216. "`tbl_test2` "
  217. "SET "
  218. "`tbl_test2_id`=UuidToBin('Xec0f0aac-b8b9-11e8-96f8-529269fb1459X'), "
  219. "`u8_data`='X20X', "
  220. "`i8_data`='X21X', "
  221. "`u16_data`='X22X', "
  222. "`i16_data`='X23X'",
  223. result_affected_rows(1));
  224. expect_query(mock, "DELETE FROM "
  225. "`tbl_test2` "
  226. "WHERE "
  227. "`tbl_test2_id` IN ("
  228. "SELECT "
  229. "`tbl_test2_id_test2_ptr_u` "
  230. "FROM "
  231. "`tbl_derived2` "
  232. "WHERE "
  233. "`tbl_derived2_id`=UuidToBin('X3d127bcc-abb9-11e8-98d0-529269fb1459X') AND "
  234. "`tbl_test2_id_test2_ptr_u`!= UuidToBin('Xec0f0aac-b8b9-11e8-96f8-529269fb1459X')"
  235. ")");
  236. expect_query(mock, "DELETE FROM "
  237. "`tbl_test2` "
  238. "WHERE "
  239. "`tbl_test2_id` IN ("
  240. "SELECT "
  241. "`tbl_test2_id_test2_ptr_s` "
  242. "FROM "
  243. "`tbl_derived2` "
  244. "WHERE "
  245. "`tbl_derived2_id`=UuidToBin('X3d127bcc-abb9-11e8-98d0-529269fb1459X')"
  246. ")");
  247. expect_query(mock, "UPDATE "
  248. "`tbl_derived2` "
  249. "SET "
  250. "`tbl_base_id`=UuidToBin('X3d127db6-abb9-11e8-98d0-529269fb1459X'), "
  251. "`tbl_test2_id_test2_nullable`=UuidToBin('X3d1283a6-abb9-11e8-98d0-529269fb1459X'), "
  252. "`tbl_test2_id_test2_ptr_u`=UuidToBin('Xec0f0aac-b8b9-11e8-96f8-529269fb1459X'), "
  253. "`tbl_test2_id_test2_ptr_s`=UuidToBin(null) "
  254. "WHERE "
  255. "`tbl_derived2_id`=UuidToBin('X3d127bcc-abb9-11e8-98d0-529269fb1459X')",
  256. result_affected_rows(1));
  257. expect_query(mock, "COMMIT");
  258. EXPECT_CALL(
  259. mock,
  260. mysql_real_escape_string(reinterpret_cast<MYSQL*>(0x1111), _, _, _))
  261. .Times(AnyNumber())
  262. .WillRepeatedly(WithArgs<1, 2, 3>(EscapeString()));
  263. EXPECT_CALL(
  264. mock,
  265. mysql_close(
  266. reinterpret_cast<MYSQL*>(0x1111)));
  267. derived2 d2;
  268. d2.id = uuid("3d127db6-abb9-11e8-98d0-529269fb1459");
  269. d2.name = "derived2";
  270. d2.derived2_id = uuid("3d127bcc-abb9-11e8-98d0-529269fb1459");
  271. d2.test2_nullable = test2 { };
  272. d2.test2_nullable->id = uuid("3d1283a6-abb9-11e8-98d0-529269fb1459");
  273. d2.test2_nullable->u8_data = 10;
  274. d2.test2_nullable->i8_data = 11;
  275. d2.test2_nullable->u16_data = 12;
  276. d2.test2_nullable->i16_data = 13;
  277. d2.test2_ptr_u = std::make_unique<test2>();
  278. d2.test2_ptr_u->u8_data = 20;
  279. d2.test2_ptr_u->i8_data = 21;
  280. d2.test2_ptr_u->u16_data = 22;
  281. d2.test2_ptr_u->i16_data = 23;
  282. ::cppmariadb::connection connection(reinterpret_cast<MYSQL*>(0x1111));
  283. auto context = make_context<driver::mariadb>(test_schema, connection);
  284. context.update(static_cast<base&>(d2));
  285. }
  286. TEST(CppHibernateTests, update_derived3)
  287. {
  288. StrictMock<mariadb_mock> mock;
  289. expect_query(mock, "START TRANSACTION");
  290. expect_query(mock, "UPDATE "
  291. "`tbl_base` "
  292. "SET "
  293. "`name`='Xderived3X' "
  294. "WHERE "
  295. "`tbl_base_id`=UuidToBin('X3d1288ce-abb9-11e8-98d0-529269fb1459X')",
  296. result_affected_rows(1));
  297. expect_query(mock, "DELETE FROM "
  298. "`tbl_test2` "
  299. "WHERE "
  300. "`tbl_test2_id` IN ("
  301. "SELECT "
  302. "`tbl_test2_id_test2_nullable` "
  303. "FROM "
  304. "`tbl_derived2` "
  305. "WHERE "
  306. "`tbl_derived2_id`=UuidToBin('X3d1287a2-abb9-11e8-98d0-529269fb1459X')"
  307. ")");
  308. expect_query(mock, "DELETE FROM "
  309. "`tbl_test2` "
  310. "WHERE "
  311. "`tbl_test2_id` IN ("
  312. "SELECT "
  313. "`tbl_test2_id_test2_ptr_u` "
  314. "FROM "
  315. "`tbl_derived2` "
  316. "WHERE "
  317. "`tbl_derived2_id`=UuidToBin('X3d1287a2-abb9-11e8-98d0-529269fb1459X')"
  318. ")");
  319. expect_query(mock, "DELETE FROM "
  320. "`tbl_test2` "
  321. "WHERE "
  322. "`tbl_test2_id` IN ("
  323. "SELECT "
  324. "`tbl_test2_id_test2_ptr_s` "
  325. "FROM "
  326. "`tbl_derived2` "
  327. "WHERE "
  328. "`tbl_derived2_id`=UuidToBin('X3d1287a2-abb9-11e8-98d0-529269fb1459X')"
  329. ")");
  330. expect_query(mock, "UPDATE "
  331. "`tbl_derived2` "
  332. "SET "
  333. "`tbl_base_id`=UuidToBin('X3d1288ce-abb9-11e8-98d0-529269fb1459X'), "
  334. "`tbl_test2_id_test2_nullable`=UuidToBin(null), "
  335. "`tbl_test2_id_test2_ptr_u`=UuidToBin(null), "
  336. "`tbl_test2_id_test2_ptr_s`=UuidToBin(null) "
  337. "WHERE "
  338. "`tbl_derived2_id`=UuidToBin('X3d1287a2-abb9-11e8-98d0-529269fb1459X')",
  339. result_affected_rows(1));
  340. expect_query(mock, "UPDATE "
  341. "`tbl_derived3` "
  342. "SET "
  343. "`tbl_derived2_id`=UuidToBin('X3d1287a2-abb9-11e8-98d0-529269fb1459X') "
  344. "WHERE "
  345. "`tbl_derived3_id`=UuidToBin('X3d12866c-abb9-11e8-98d0-529269fb1459X')",
  346. result_affected_rows(1));
  347. expect_query(mock, "UPDATE "
  348. "`tbl_test3` "
  349. "SET "
  350. "`tbl_test3_id_test3_list`=NULL, "
  351. "`tbl_test3_index_test3_list`=0 "
  352. "WHERE "
  353. "`tbl_test3_id_test3_list`=UuidToBin('X3d12866c-abb9-11e8-98d0-529269fb1459X')");
  354. expect_query(mock, "UPDATE "
  355. "`tbl_test3` "
  356. "SET "
  357. "`tbl_derived3_id_test3_list`=UuidToBin('X3d12866c-abb9-11e8-98d0-529269fb1459X'), "
  358. "`tbl_derived3_index_test3_list`='X0X', "
  359. "`u32_data`='X100X', "
  360. "`i32_data`='X101X', "
  361. "`u64_data`='X102X', "
  362. "`i64_data`='X103X' "
  363. "WHERE "
  364. "`tbl_test3_id`=UuidToBin('X3d1289f0-abb9-11e8-98d0-529269fb1459X')",
  365. result_affected_rows(1));
  366. expect_query(mock, "SELECT Uuid()",
  367. result_used({
  368. { "435bd976-b8c3-11e8-96f8-529269fb1459" }
  369. }));
  370. expect_query(mock, "INSERT INTO "
  371. "`tbl_test3` "
  372. "SET "
  373. "`tbl_test3_id`=UuidToBin('X435bd976-b8c3-11e8-96f8-529269fb1459X'), "
  374. "`tbl_derived3_id_test3_list`=UuidToBin('X3d12866c-abb9-11e8-98d0-529269fb1459X'), "
  375. "`tbl_derived3_index_test3_list`='X1X', "
  376. "`tbl_derived3_id_test3_vector`=UuidToBin(null), "
  377. "`tbl_derived3_index_test3_vector`='X0X', "
  378. "`u32_data`='X110X', "
  379. "`i32_data`='X111X', "
  380. "`u64_data`='X112X', "
  381. "`i64_data`='X113X'",
  382. result_affected_rows(1));
  383. expect_query(mock, "DELETE FROM "
  384. "`tbl_test3` "
  385. "WHERE "
  386. "(`tbl_derived3_id_test3_list` IS NULL) AND "
  387. "(`tbl_derived3_id_test3_vector` IS NULL)");
  388. expect_query(mock, "UPDATE "
  389. "`tbl_test3` "
  390. "SET "
  391. "`tbl_test3_id_test3_vector`=NULL, "
  392. "`tbl_test3_index_test3_vector`=0 "
  393. "WHERE "
  394. "`tbl_test3_id_test3_vector`=UuidToBin('X3d12866c-abb9-11e8-98d0-529269fb1459X')");
  395. expect_query(mock, "UPDATE "
  396. "`tbl_test3` "
  397. "SET "
  398. "`tbl_derived3_id_test3_vector`=UuidToBin('X3d12866c-abb9-11e8-98d0-529269fb1459X'), "
  399. "`tbl_derived3_index_test3_vector`='X0X', "
  400. "`u32_data`='X200X', "
  401. "`i32_data`='X201X', "
  402. "`u64_data`='X202X', "
  403. "`i64_data`='X203X' "
  404. "WHERE "
  405. "`tbl_test3_id`=UuidToBin('X3d128eb4-abb9-11e8-98d0-529269fb1459X')",
  406. result_affected_rows(1));
  407. expect_query(mock, "SELECT Uuid()",
  408. result_used({
  409. { "1c0a3592-b8c4-11e8-96f8-529269fb1459" }
  410. }));
  411. expect_query(mock, "INSERT INTO "
  412. "`tbl_test3` "
  413. "SET "
  414. "`tbl_test3_id`=UuidToBin('X1c0a3592-b8c4-11e8-96f8-529269fb1459X'), "
  415. "`tbl_derived3_id_test3_list`=UuidToBin(null), "
  416. "`tbl_derived3_index_test3_list`='X0X', "
  417. "`tbl_derived3_id_test3_vector`=UuidToBin('X3d12866c-abb9-11e8-98d0-529269fb1459X'), "
  418. "`tbl_derived3_index_test3_vector`='X1X', "
  419. "`u32_data`='X210X', "
  420. "`i32_data`='X211X', "
  421. "`u64_data`='X212X', "
  422. "`i64_data`='X213X'",
  423. result_affected_rows(1));
  424. expect_query(mock, "UPDATE "
  425. "`tbl_test3` "
  426. "SET "
  427. "`tbl_derived3_id_test3_vector`=UuidToBin('X3d12866c-abb9-11e8-98d0-529269fb1459X'), "
  428. "`tbl_derived3_index_test3_vector`='X2X', "
  429. "`u32_data`='X220X', "
  430. "`i32_data`='X221X', "
  431. "`u64_data`='X222X', "
  432. "`i64_data`='X223X' "
  433. "WHERE "
  434. "`tbl_test3_id`=UuidToBin('X3d129134-abb9-11e8-98d0-529269fb1459X')",
  435. result_affected_rows(1));
  436. expect_query(mock, "DELETE FROM "
  437. "`tbl_test3` "
  438. "WHERE "
  439. "(`tbl_derived3_id_test3_list` IS NULL) AND "
  440. "(`tbl_derived3_id_test3_vector` IS NULL)");
  441. expect_query(mock, "COMMIT");
  442. EXPECT_CALL(
  443. mock,
  444. mysql_real_escape_string(reinterpret_cast<MYSQL*>(0x1111), _, _, _))
  445. .Times(AnyNumber())
  446. .WillRepeatedly(WithArgs<1, 2, 3>(EscapeString()));
  447. EXPECT_CALL(
  448. mock,
  449. mysql_close(
  450. reinterpret_cast<MYSQL*>(0x1111)));
  451. derived3 d3;
  452. d3.id = uuid("3d1288ce-abb9-11e8-98d0-529269fb1459");
  453. d3.name = "derived3";
  454. d3.derived2_id = uuid("3d1287a2-abb9-11e8-98d0-529269fb1459");
  455. d3.derived3_id = uuid("3d12866c-abb9-11e8-98d0-529269fb1459");
  456. d3.test3_list.emplace_back();
  457. d3.test3_list.back().id = uuid("3d1289f0-abb9-11e8-98d0-529269fb1459");
  458. d3.test3_list.back().u32_data = 100;
  459. d3.test3_list.back().i32_data = 101;
  460. d3.test3_list.back().u64_data = 102;
  461. d3.test3_list.back().i64_data = 103;
  462. d3.test3_list.emplace_back();
  463. d3.test3_list.back().u32_data = 110;
  464. d3.test3_list.back().i32_data = 111;
  465. d3.test3_list.back().u64_data = 112;
  466. d3.test3_list.back().i64_data = 113;
  467. d3.test3_vector.emplace_back();
  468. d3.test3_vector.back().id = uuid("3d128eb4-abb9-11e8-98d0-529269fb1459");
  469. d3.test3_vector.back().u32_data = 200;
  470. d3.test3_vector.back().i32_data = 201;
  471. d3.test3_vector.back().u64_data = 202;
  472. d3.test3_vector.back().i64_data = 203;
  473. d3.test3_vector.emplace_back();
  474. d3.test3_vector.back().u32_data = 210;
  475. d3.test3_vector.back().i32_data = 211;
  476. d3.test3_vector.back().u64_data = 212;
  477. d3.test3_vector.back().i64_data = 213;
  478. d3.test3_vector.emplace_back();
  479. d3.test3_vector.back().id = uuid("3d129134-abb9-11e8-98d0-529269fb1459");
  480. d3.test3_vector.back().u32_data = 220;
  481. d3.test3_vector.back().i32_data = 221;
  482. d3.test3_vector.back().u64_data = 222;
  483. d3.test3_vector.back().i64_data = 223;
  484. ::cppmariadb::connection connection(reinterpret_cast<MYSQL*>(0x1111));
  485. auto context = make_context<driver::mariadb>(test_schema, connection);
  486. context.update(static_cast<derived2&>(d3));
  487. }