transactd 2.4.5 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/CMakeLists.txt +1 -1
  3. data/README-JA.md +52 -529
  4. data/README.md +52 -523
  5. data/bin/common/tdclc_32_3_0.dll +0 -0
  6. data/bin/common/tdclc_64_3_0.dll +0 -0
  7. data/build/common/system.cmake +2 -1
  8. data/build/common/transactd_cl_common.cmake +3 -6
  9. data/build/swig/ruby/ruby.swg +85 -28
  10. data/build/swig/ruby/tdclrb_wrap.cpp +3195 -1578
  11. data/build/swig/tdcl.i +161 -5
  12. data/build/tdclc/CMakeLists.txt +1 -0
  13. data/build/tdclc/tdclc.cbproj +7 -1
  14. data/build/tdclc/tdclc.rc +4 -4
  15. data/build/tdclcpp/tdclcpp.rc +4 -4
  16. data/build/tdclcpp/tdclcpp_bc.cbproj +2 -5
  17. data/build/tdclrb/tdclrb.rc +4 -4
  18. data/source/bzs/db/blobStructs.h +1 -1
  19. data/source/bzs/db/engine/mysql/database.cpp +199 -74
  20. data/source/bzs/db/engine/mysql/database.h +47 -18
  21. data/source/bzs/db/engine/mysql/dbManager.cpp +1 -0
  22. data/source/bzs/db/engine/mysql/mysqlInternal.h +32 -8
  23. data/source/bzs/db/protocol/tdap/btrDate.cpp +110 -75
  24. data/source/bzs/db/protocol/tdap/btrDate.h +46 -21
  25. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +18 -18
  26. data/source/bzs/db/protocol/tdap/client/activeTable.h +25 -25
  27. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +10 -4
  28. data/source/bzs/db/protocol/tdap/client/client.cpp +6 -5
  29. data/source/bzs/db/protocol/tdap/client/client.h +82 -15
  30. data/source/bzs/db/protocol/tdap/client/database.cpp +531 -142
  31. data/source/bzs/db/protocol/tdap/client/database.h +19 -6
  32. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +461 -408
  33. data/source/bzs/db/protocol/tdap/client/dbDef.h +11 -17
  34. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +61 -13
  35. data/source/bzs/db/protocol/tdap/client/field.cpp +1592 -1398
  36. data/source/bzs/db/protocol/tdap/client/field.h +110 -121
  37. data/source/bzs/db/protocol/tdap/client/fields.h +40 -10
  38. data/source/bzs/db/protocol/tdap/client/filter.h +69 -55
  39. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +296 -164
  40. data/source/bzs/db/protocol/tdap/client/groupQuery.h +77 -25
  41. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +31 -13
  42. data/source/bzs/db/protocol/tdap/client/memRecord.h +31 -21
  43. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
  44. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
  45. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +69 -24
  46. data/source/bzs/db/protocol/tdap/client/nsTable.h +3 -1
  47. data/source/bzs/db/protocol/tdap/client/recordset.cpp +1 -0
  48. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +46 -27
  49. data/source/bzs/db/protocol/tdap/client/request.h +2 -1
  50. data/source/bzs/db/protocol/tdap/client/serializer.cpp +44 -9
  51. data/source/bzs/db/protocol/tdap/client/serializer.h +1 -1
  52. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +182 -76
  53. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +23 -12
  54. data/source/bzs/db/protocol/tdap/client/stringConverter.h +8 -10
  55. data/source/bzs/db/protocol/tdap/client/table.cpp +172 -93
  56. data/source/bzs/db/protocol/tdap/client/table.h +112 -37
  57. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +17 -0
  58. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +0 -1
  59. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +0 -2
  60. data/source/bzs/db/protocol/tdap/client/trdormapi.h +1 -1
  61. data/source/bzs/db/protocol/tdap/fieldComp.h +698 -14
  62. data/source/bzs/db/protocol/tdap/myDateTime.cpp +723 -307
  63. data/source/bzs/db/protocol/tdap/myDateTime.h +294 -0
  64. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +164 -54
  65. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +6 -3
  66. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +133 -550
  67. data/source/bzs/db/protocol/tdap/mysql/request.h +6 -5
  68. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +217 -82
  69. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +1 -1
  70. data/source/bzs/db/protocol/tdap/tdapRequest.h +4 -9
  71. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +808 -17
  72. data/source/bzs/db/protocol/tdap/tdapSchema.h +656 -164
  73. data/source/bzs/db/protocol/tdap/tdapcapi.h +130 -28
  74. data/source/bzs/db/protocol/tdap/uri.h +40 -32
  75. data/source/bzs/db/transactd/connManager.cpp +1 -1
  76. data/source/bzs/db/transactd/transactd.cpp +7 -0
  77. data/source/bzs/env/compiler.h +107 -94
  78. data/source/bzs/env/crosscompile.cpp +24 -12
  79. data/source/bzs/env/crosscompile.h +75 -6
  80. data/source/bzs/env/mbcswchrLinux.cpp +2 -2
  81. data/source/bzs/env/tcharMinGW.h +4 -0
  82. data/source/bzs/example/changeSchema.cpp +22 -17
  83. data/source/bzs/example/queryData.cpp +4 -0
  84. data/source/bzs/netsvc/client/iconnection.h +3 -1
  85. data/source/bzs/netsvc/client/tcpClient.h +10 -3
  86. data/source/bzs/rtl/stringBuffers.cpp +7 -0
  87. data/source/bzs/test/tdclatl/bench_query_atl.js +6 -0
  88. data/source/bzs/test/tdclatl/bench_tdclatl.js +8 -1
  89. data/source/bzs/test/tdclatl/test_query_atl.js +22 -2
  90. data/source/bzs/test/tdclatl/test_v3.js +1017 -0
  91. data/source/bzs/test/tdclphp/transactd_Test.php +55 -21
  92. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +0 -5
  93. data/source/bzs/test/tdclphp/transactd_pool_Test.php +2 -0
  94. data/source/bzs/test/tdclphp/transactd_v3_Test.php +743 -0
  95. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -5
  96. data/source/bzs/test/tdclrb/transactd_pool_spec.rb +2 -0
  97. data/source/bzs/test/tdclrb/transactd_spec.rb +39 -16
  98. data/source/bzs/test/tdclrb/transactd_v3_spec.rb +748 -0
  99. data/source/bzs/test/transactdBench/transactdBench.cpp +55 -58
  100. data/source/bzs/test/transactdBench/transactdBench2.cpp +1 -3
  101. data/source/bzs/test/trdclengn/testField.h +3305 -0
  102. data/source/bzs/test/trdclengn/test_tdclcpp_v3.cpp +1050 -0
  103. data/source/bzs/test/trdclengn/test_trdclengn.cpp +112 -190
  104. data/source/bzs/test/trdclengn/testbase.h +137 -0
  105. data/source/global/ormsrcgen/srcgen.cpp +23 -12
  106. data/source/global/ormsrcgen/template/ormDataClass_template.h +2 -0
  107. data/source/global/querystmts/querystmts.cpp +2 -3
  108. data/source/global/tdclatl/Bitset.cpp +38 -0
  109. data/source/global/tdclatl/Bitset.h +63 -0
  110. data/source/global/tdclatl/Database.cpp +59 -18
  111. data/source/global/tdclatl/Database.h +7 -4
  112. data/source/global/tdclatl/DbDef.cpp +6 -6
  113. data/source/global/tdclatl/DbDef.h +2 -1
  114. data/source/global/tdclatl/Field.cpp +112 -0
  115. data/source/global/tdclatl/Field.h +19 -5
  116. data/source/global/tdclatl/FieldDef.cpp +137 -16
  117. data/source/global/tdclatl/FieldDef.h +18 -2
  118. data/source/global/tdclatl/FieldDefs.cpp +54 -1
  119. data/source/global/tdclatl/FieldDefs.h +3 -0
  120. data/source/global/tdclatl/GroupQuery.cpp +8 -8
  121. data/source/global/tdclatl/QueryBase.cpp +65 -0
  122. data/source/global/tdclatl/QueryBase.h +10 -0
  123. data/source/global/tdclatl/Record.cpp +33 -2
  124. data/source/global/tdclatl/Record.h +3 -1
  125. data/source/global/tdclatl/RecordsetQuery.cpp +42 -0
  126. data/source/global/tdclatl/RecordsetQuery.h +8 -0
  127. data/source/global/tdclatl/Table.cpp +127 -3
  128. data/source/global/tdclatl/Table.h +10 -1
  129. data/source/global/tdclatl/TableDef.cpp +41 -8
  130. data/source/global/tdclatl/TableDef.h +7 -2
  131. data/source/global/tdclatl/activeTable.cpp +40 -71
  132. data/source/global/tdclatl/resource.h +0 -0
  133. data/source/global/tdclatl/tdclatl.idl +222 -28
  134. data/source/linux/tchar.h +100 -96
  135. data/transactd.gemspec +2 -2
  136. metadata +13 -11
  137. data/BUILD_UNIX-JA.md +0 -161
  138. data/BUILD_WIN-JA.md +0 -326
  139. data/README_ORMSRCGEN-JA.md +0 -115
  140. data/README_ORMSRCGEN.md +0 -118
  141. data/RELEASE_NOTE-JA.md +0 -356
  142. data/RELEASE_NOTE.md +0 -360
  143. data/bin/common/tdclc_32_2_4.dll +0 -0
  144. data/bin/common/tdclc_64_2_4.dll +0 -0
  145. data/source/bzs/test/trdclengn/test_blob.cpp +0 -375
@@ -271,21 +271,15 @@ bool createTestDataBase(client::database* db, const _TCHAR* uri)
271
271
  client::dbdef* def = db->dbDef();
272
272
 
273
273
  tabledef td;
274
- memset(&td, 0, sizeof(td));
275
274
  td.setTableName(_T("user"));
276
275
  td.setFileName(_T("user.dat"));
277
276
  td.id = 1;
278
- td.primaryKeyNum = -1;
279
- td.parentKeyNum = -1;
280
- td.replicaKeyNum = -1;
281
- td.pageSize = 2048;
282
277
  def->insertTable(&td);
283
278
 
284
279
  fielddef* fd = def->insertField(td.id, 0);
285
280
  fd->setName(_T("id"));
286
281
  fd->type = ft_integer;
287
282
  fd->len = (ushort_td)4;
288
- def->updateTableDef(1);
289
283
 
290
284
  fd = def->insertField(td.id, 1);
291
285
  fd->setName(_T("name"));
@@ -294,9 +288,7 @@ bool createTestDataBase(client::database* db, const _TCHAR* uri)
294
288
  else
295
289
  fd->type = ft_zstring;
296
290
 
297
- fd->len = (ushort_td)100;
298
- def->updateTableDef(td.id);
299
-
291
+ fd->setLenByCharnum(49);
300
292
  keydef* kd = def->insertKey(td.id, 0);
301
293
  kd->segments[0].fieldNum = 0;
302
294
  kd->segments[0].flags.bit8 = 1; // extend key type
@@ -305,7 +297,9 @@ bool createTestDataBase(client::database* db, const _TCHAR* uri)
305
297
 
306
298
  td.primaryKeyNum = 0;
307
299
  def->updateTableDef(td.id);
308
- return true;
300
+ if (def->stat())
301
+ printf("crate daatabse erorr No:%d\r\n", def->stat());
302
+ return def->stat() == 0;
309
303
  }
310
304
  else
311
305
  printf("open daatabse erorr No:%d\r\n", db->stat());
@@ -392,61 +386,64 @@ int _tmain(int argc, _TCHAR* argv[])
392
386
  printHeader(uri, count);
393
387
 
394
388
  if (!db->open(uri, TYPE_BDF, TD_OPEN_NORMAL, _T(""), _T("")))
395
- printf("open table erorr No:%d\r\n", db->stat());
389
+ printf("open database erorr No:%d\r\n", db->stat());
396
390
  else
397
391
  {
398
392
  client::table* tb = openTable(db, _T("user"), TD_OPEN_NORMAL);
399
-
400
- if ((exeType == -1) || (exeType == 0))
393
+ if (tb)
401
394
  {
402
- if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
395
+ if ((exeType == -1) || (exeType == 0))
396
+ {
397
+ if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
398
+ benchmark::report(
399
+ boost::bind(Inserts, db, tb, start, end, USE_NORMAL, 1),
400
+ ": Insert");
401
+ else
402
+ printf("deleteAll erorr No:%d\r\n", tb->stat());
403
+ }
404
+ if ((exeType == -1) || (exeType == 1))
405
+ {
406
+ if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
407
+ benchmark::report(
408
+ boost::bind(Inserts, db, tb, start, end, USE_TRANS, 20),
409
+ ": Insert in transaction. 20rec x 1000times.");
410
+ else
411
+ printf("deleteAll erorr No:%d\r\n", tb->stat());
412
+ }
413
+ if ((exeType == -1) || (exeType == 2))
414
+ {
415
+ if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
416
+ benchmark::report(
417
+ boost::bind(Inserts, db, tb, start, end, USE_BALKINS, 20),
418
+ ": Insert by bulkmode. 20rec x 1000times.");
419
+ else
420
+ printf("deleteAll erorr No:%d\r\n", tb->stat());
421
+ }
422
+ if ((exeType == -1) || (exeType == 3))
423
+ benchmark::report(boost::bind(Read, db, tb, start, end, USE_NORMAL),
424
+ ": read each record.");
425
+ if ((exeType == -1) || (exeType == 4))
403
426
  benchmark::report(
404
- boost::bind(Inserts, db, tb, start, end, USE_NORMAL, 1),
405
- ": Insert");
406
- else
407
- printf("deleteAll erorr No:%d\r\n", tb->stat());
408
- }
409
- if ((exeType == -1) || (exeType == 1))
410
- {
411
- if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
427
+ boost::bind(Read, db, tb, start, end, USE_SNAPSHOT),
428
+ ": read each record with snapshpot.");
429
+ if ((exeType == -1) || (exeType == 5))
412
430
  benchmark::report(
413
- boost::bind(Inserts, db, tb, start, end, USE_TRANS, 20),
414
- ": Insert in transaction. 20rec x 1000times.");
415
- else
416
- printf("deleteAll erorr No:%d\r\n", tb->stat());
417
- }
418
- if ((exeType == -1) || (exeType == 2))
419
- {
420
- if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
431
+ boost::bind(Reads, db, tb, start, end, 20, USE_NORMAL),
432
+ ": read range. 20rec x 1000times.");
433
+ if ((exeType == -1) || (exeType == 6))
421
434
  benchmark::report(
422
- boost::bind(Inserts, db, tb, start, end, USE_BALKINS, 20),
423
- ": Insert by bulkmode. 20rec x 1000times.");
424
- else
425
- printf("deleteAll erorr No:%d\r\n", tb->stat());
426
- }
427
- if ((exeType == -1) || (exeType == 3))
428
- benchmark::report(boost::bind(Read, db, tb, start, end, USE_NORMAL),
429
- ": read each record.");
430
- if ((exeType == -1) || (exeType == 4))
431
- benchmark::report(
432
- boost::bind(Read, db, tb, start, end, USE_SNAPSHOT),
433
- ": read each record with snapshpot.");
434
- if ((exeType == -1) || (exeType == 5))
435
- benchmark::report(
436
- boost::bind(Reads, db, tb, start, end, 20, USE_NORMAL),
437
- ": read range. 20rec x 1000times.");
438
- if ((exeType == -1) || (exeType == 6))
439
- benchmark::report(
440
- boost::bind(Reads, db, tb, start, end, 20, USE_SNAPSHOT),
441
- ": read range with snapshpot. 20rec x 1000times.");
442
- if ((exeType == -1) || (exeType == 7))
443
- benchmark::report(
444
- boost::bind(Updates, db, tb, start, end, USE_NORMAL, 1),
445
- ": update.");
446
- if ((exeType == -1) || (exeType == 8))
447
- benchmark::report(
448
- boost::bind(Updates, db, tb, start, end, USE_TRANS, 20),
449
- ": update in transaction. 20rec x 1000times.");
435
+ boost::bind(Reads, db, tb, start, end, 20, USE_SNAPSHOT),
436
+ ": read range with snapshpot. 20rec x 1000times.");
437
+ if ((exeType == -1) || (exeType == 7))
438
+ benchmark::report(
439
+ boost::bind(Updates, db, tb, start, end, USE_NORMAL, 1),
440
+ ": update.");
441
+ if ((exeType == -1) || (exeType == 8))
442
+ benchmark::report(
443
+ boost::bind(Updates, db, tb, start, end, USE_TRANS, 20),
444
+ ": update in transaction. 20rec x 1000times.");
445
+ }else
446
+ printf("open table erorr No:%d\r\n", db->stat());
450
447
  }
451
448
  client::database::destroy(db);
452
449
  printTail();
@@ -224,9 +224,7 @@ void createUserTableSchema(dbdef* def)
224
224
 
225
225
  short fieldNum = 0;
226
226
  insertField(def, tableid, fieldNum, _T("id"), ft_integer, 4);
227
- insertField(def, tableid, ++fieldNum, _T("name"), ft_myvarchar, 100);
228
- updateTableDef(def, tableid);
229
-
227
+ insertField(def, tableid, ++fieldNum, _T("name"), ft_myvarchar, 99);
230
228
  short keyNum = 0;
231
229
  keydef* kd = insertKey(def, tableid, keyNum);
232
230
  kd->segments[0].fieldNum = 0;