transactd 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. checksums.yaml +4 -4
  2. data/BUILD_UNIX-JA +46 -67
  3. data/BUILD_WIN-JA +106 -63
  4. data/CMakeLists.txt +40 -15
  5. data/README +219 -75
  6. data/README-JA +207 -76
  7. data/README_ORMSRCGEN +118 -0
  8. data/README_ORMSRCGEN-JA +115 -0
  9. data/bin/common/tdclc_32_2_0.dll +0 -0
  10. data/bin/common/tdclc_64_2_0.dll +0 -0
  11. data/build/common/check_for_link_iconv.cmake +18 -14
  12. data/build/common/create_symlink.cmake.in +25 -0
  13. data/build/common/get_boost_libs.cmake +23 -23
  14. data/build/common/options.cmake +0 -66
  15. data/build/common/smart_install.cmake +3 -3
  16. data/build/common/transactd.rc.in +15 -5
  17. data/build/common/transactd_cl_common.cmake +37 -18
  18. data/build/common/transactd_cl_output.cmake +55 -13
  19. data/build/common/transactd_common.cmake +108 -31
  20. data/build/swig/php/generate.cmake.in +15 -17
  21. data/build/swig/php/generate.cmd.in +15 -9
  22. data/build/swig/php/php.swg +124 -82
  23. data/build/swig/php/transactd.no_yield.php +4494 -0
  24. data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
  25. data/build/swig/php/transactd.no_yield.php.patch +685 -0
  26. data/build/swig/php/transactd.yield.php +4461 -0
  27. data/build/swig/php/transactd.yield.php.git.patch +652 -0
  28. data/build/swig/php/transactd.yield.php.patch +652 -0
  29. data/build/swig/referencecounter.h +79 -0
  30. data/build/swig/ruby/ruby.swg +226 -76
  31. data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
  32. data/build/swig/ruby/without_gvl.swg +87 -0
  33. data/build/swig/tdcl.i +659 -170
  34. data/build/swig/validatablepointer.h +91 -0
  35. data/build/tdclc/CMakeLists.txt +49 -34
  36. data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
  37. data/build/tdclc/tdclc.rc +0 -0
  38. data/build/tdclcpp/CMakeLists.txt +84 -20
  39. data/build/tdclcpp/tdclcpp.rc +0 -0
  40. data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
  41. data/build/tdclrb/CMakeLists.txt +84 -66
  42. data/build/tdclrb/bldgem/extconf.rb +28 -3
  43. data/build/tdclrb/gem/helper.rb +11 -1
  44. data/build/tdclrb/gem_output.cmake +20 -16
  45. data/index_ja.html +15 -0
  46. data/source/bzs/db/IBlobBuffer.h +15 -17
  47. data/source/bzs/db/blobBuffer.h +186 -140
  48. data/source/bzs/db/blobStructs.h +37 -37
  49. data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
  50. data/source/bzs/db/engine/mysql/bookmark.h +150 -147
  51. data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
  52. data/source/bzs/db/engine/mysql/database.h +608 -370
  53. data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
  54. data/source/bzs/db/engine/mysql/dbManager.h +115 -104
  55. data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
  56. data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
  57. data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
  58. data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
  59. data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
  60. data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
  61. data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
  62. data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
  63. data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
  64. data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
  65. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
  66. data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
  67. data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
  68. data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
  69. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
  70. data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
  71. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
  72. data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
  73. data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
  74. data/source/bzs/db/protocol/tdap/client/client.h +361 -320
  75. data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
  76. data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
  77. data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
  78. data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
  79. data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
  80. data/source/bzs/db/protocol/tdap/client/database.h +141 -118
  81. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
  82. data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
  83. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
  84. data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
  85. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
  86. data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
  87. data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
  88. data/source/bzs/db/protocol/tdap/client/export.h +35 -0
  89. data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
  90. data/source/bzs/db/protocol/tdap/client/field.h +393 -0
  91. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
  92. data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
  93. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
  94. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
  95. data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
  96. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
  97. data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
  98. data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
  99. data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
  100. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
  101. data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
  102. data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
  103. data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
  104. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
  105. data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
  106. data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
  107. data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
  108. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
  109. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
  110. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
  111. data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
  112. data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
  113. data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
  114. data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
  115. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
  116. data/source/bzs/db/protocol/tdap/client/request.h +227 -170
  117. data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
  118. data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
  119. data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
  120. data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
  121. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
  122. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
  123. data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
  124. data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
  125. data/source/bzs/db/protocol/tdap/client/table.h +413 -87
  126. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
  127. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
  128. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
  129. data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
  130. data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
  131. data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
  132. data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
  133. data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
  134. data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
  135. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
  136. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
  137. data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
  138. data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
  139. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
  140. data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
  141. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
  142. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
  143. data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
  144. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
  145. data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
  146. data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
  147. data/source/bzs/db/transactd/appBuilderImple.h +21 -20
  148. data/source/bzs/db/transactd/appModule.cpp +350 -98
  149. data/source/bzs/db/transactd/appModule.h +31 -37
  150. data/source/bzs/db/transactd/connManager.cpp +138 -135
  151. data/source/bzs/db/transactd/connManager.h +28 -21
  152. data/source/bzs/db/transactd/connectionRecord.h +39 -39
  153. data/source/bzs/db/transactd/transactd.cpp +217 -203
  154. data/source/bzs/env/boost_bcb_link.h +131 -0
  155. data/source/bzs/env/compiler.h +136 -79
  156. data/source/bzs/env/crosscompile.cpp +57 -57
  157. data/source/bzs/env/crosscompile.h +130 -115
  158. data/source/bzs/env/fileopen.h +7 -8
  159. data/source/bzs/env/mbcswchrLinux.cpp +4 -9
  160. data/source/bzs/env/mbcswchrLinux.h +37 -34
  161. data/source/bzs/env/tcharMinGW.h +59 -0
  162. data/source/bzs/env/tstring.h +90 -95
  163. data/source/bzs/example/changeSchema.cpp +22 -23
  164. data/source/bzs/example/changeSchema_c.cpp +22 -24
  165. data/source/bzs/example/connection_pool_c.cpp +49 -104
  166. data/source/bzs/example/createDatabase.cpp +40 -47
  167. data/source/bzs/example/createDatabase_c.cpp +38 -43
  168. data/source/bzs/example/deleteRecords.cpp +10 -15
  169. data/source/bzs/example/deleteRecords_c.cpp +10 -14
  170. data/source/bzs/example/dropDatabase.cpp +3 -9
  171. data/source/bzs/example/dropDatabase_c.cpp +5 -6
  172. data/source/bzs/example/insertRecords.cpp +37 -29
  173. data/source/bzs/example/insertRecords_c.cpp +19 -25
  174. data/source/bzs/example/ormap_c.cpp +621 -0
  175. data/source/bzs/example/queryData.cpp +371 -0
  176. data/source/bzs/example/queryData.h +16 -0
  177. data/source/bzs/example/query_c.cpp +109 -0
  178. data/source/bzs/example/readRecords.cpp +27 -27
  179. data/source/bzs/example/readRecords_c.cpp +25 -23
  180. data/source/bzs/example/updateRecords.cpp +16 -21
  181. data/source/bzs/example/updateRecords_c.cpp +8 -12
  182. data/source/bzs/example/update_with_transaction.cpp +21 -24
  183. data/source/bzs/example/update_with_transaction_c.cpp +12 -15
  184. data/source/bzs/example/useORMRecord.cpp +177 -0
  185. data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
  186. data/source/bzs/netsvc/client/tcpClient.h +541 -489
  187. data/source/bzs/netsvc/server/IAppModule.h +119 -32
  188. data/source/bzs/netsvc/server/iserver.h +21 -23
  189. data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
  190. data/source/bzs/netsvc/server/serverCpt.h +41 -43
  191. data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
  192. data/source/bzs/netsvc/server/serverPipe.h +44 -45
  193. data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
  194. data/source/bzs/netsvc/server/serverTpool.h +38 -43
  195. data/source/bzs/rtl/benchmark.cpp +91 -31
  196. data/source/bzs/rtl/benchmark.h +76 -22
  197. data/source/bzs/rtl/datetime.cpp +231 -233
  198. data/source/bzs/rtl/datetime.h +16 -16
  199. data/source/bzs/rtl/debuglog.cpp +48 -51
  200. data/source/bzs/rtl/debuglog.h +55 -44
  201. data/source/bzs/rtl/exception.h +55 -48
  202. data/source/bzs/rtl/stl_uty.cpp +27 -28
  203. data/source/bzs/rtl/stl_uty.h +28 -29
  204. data/source/bzs/rtl/stringBuffers.cpp +8 -6
  205. data/source/bzs/rtl/stringBuffers.h +16 -9
  206. data/source/bzs/rtl/strtrim.cpp +90 -91
  207. data/source/bzs/rtl/strtrim.h +14 -16
  208. data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
  209. data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
  210. data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
  211. data/source/bzs/test/tdclphp/bench.php +357 -0
  212. data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
  213. data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
  214. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
  215. data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
  216. data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
  217. data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
  218. data/source/bzs/test/tdclrb/prepare.rb +15 -12
  219. data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
  220. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
  221. data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
  222. data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
  223. data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
  224. data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
  225. data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
  226. data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
  227. data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
  228. data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
  229. data/source/bzs/test/transactdBench/workerBase.h +88 -0
  230. data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
  231. data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
  232. data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
  233. data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
  234. data/source/global/ormsrcgen/confParam.h +80 -0
  235. data/source/global/ormsrcgen/fieldName.cpp +77 -0
  236. data/source/global/ormsrcgen/fieldName.h +43 -0
  237. data/source/global/ormsrcgen/main.cpp +196 -0
  238. data/source/global/ormsrcgen/srcgen.cpp +763 -0
  239. data/source/global/ormsrcgen/srcgen.h +72 -0
  240. data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
  241. data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
  242. data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
  243. data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
  244. data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
  245. data/source/global/ormsrcgen/template/template.cnf +38 -0
  246. data/source/global/querystmts/querystmts.cpp +237 -0
  247. data/source/global/tdclatl/ConnectParams.cpp +77 -0
  248. data/source/global/tdclatl/ConnectParams.h +70 -0
  249. data/source/global/tdclatl/Database.cpp +132 -128
  250. data/source/global/tdclatl/Database.h +60 -49
  251. data/source/global/tdclatl/DbDef.cpp +68 -64
  252. data/source/global/tdclatl/DbDef.h +36 -36
  253. data/source/global/tdclatl/Field.cpp +12 -17
  254. data/source/global/tdclatl/Field.h +15 -12
  255. data/source/global/tdclatl/FieldDef.cpp +75 -36
  256. data/source/global/tdclatl/FieldDef.h +38 -19
  257. data/source/global/tdclatl/FieldDefs.cpp +74 -0
  258. data/source/global/tdclatl/FieldDefs.h +56 -0
  259. data/source/global/tdclatl/FieldNames.cpp +99 -0
  260. data/source/global/tdclatl/FieldNames.h +66 -0
  261. data/source/global/tdclatl/Flags.cpp +75 -37
  262. data/source/global/tdclatl/Flags.h +13 -12
  263. data/source/global/tdclatl/GroupQuery.cpp +119 -0
  264. data/source/global/tdclatl/GroupQuery.h +65 -0
  265. data/source/global/tdclatl/KeyDef.cpp +15 -14
  266. data/source/global/tdclatl/KeyDef.h +20 -17
  267. data/source/global/tdclatl/KeySegment.cpp +13 -12
  268. data/source/global/tdclatl/PooledDbManager.cpp +223 -0
  269. data/source/global/tdclatl/PooledDbManager.h +76 -0
  270. data/source/global/tdclatl/QueryBase.cpp +206 -127
  271. data/source/global/tdclatl/QueryBase.h +55 -59
  272. data/source/global/tdclatl/Record.cpp +214 -0
  273. data/source/global/tdclatl/Record.h +96 -0
  274. data/source/global/tdclatl/Recordset.cpp +278 -0
  275. data/source/global/tdclatl/Recordset.h +83 -0
  276. data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
  277. data/source/global/tdclatl/RecordsetQuery.h +126 -0
  278. data/source/global/tdclatl/Table.cpp +57 -60
  279. data/source/global/tdclatl/Table.h +32 -29
  280. data/source/global/tdclatl/TableDef.cpp +63 -62
  281. data/source/global/tdclatl/TableDef.h +20 -22
  282. data/source/global/tdclatl/TdVersion.cpp +3 -3
  283. data/source/global/tdclatl/TdVersion.h +15 -11
  284. data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
  285. data/source/global/tdclatl/activeTable.cpp +355 -0
  286. data/source/global/tdclatl/activeTable.h +79 -0
  287. data/source/global/tdclatl/dllmain.cpp +4 -3
  288. data/source/global/tdclatl/dllmain.h +7 -6
  289. data/source/global/tdclatl/keySegment.h +22 -18
  290. data/source/global/tdclatl/resource.h +0 -0
  291. data/source/global/tdclatl/stdafx.h +6 -4
  292. data/source/global/tdclatl/targetver.h +0 -1
  293. data/source/global/tdclatl/tdclatl.cpp +10 -5
  294. data/source/global/tdclatl/tdclatl.idl +530 -14
  295. data/source/linux/charsetConvert.h +78 -79
  296. data/source/linux/linuxTypes.h +9 -12
  297. data/source/linux/tchar.h +168 -166
  298. data/transactd.gemspec +24 -16
  299. metadata +98 -12
  300. data/bin/common/tdclc_32_1_2.dll +0 -0
  301. data/bin/common/tdclc_64_1_2.dll +0 -0
  302. data/build/tdclc/tdclc_32.cbproj +0 -173
  303. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
  304. data/build/tdclrb/GEM_VERSION +0 -3
  305. data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
  306. data/source/bzs/example/useORM.cpp +0 -585
@@ -12,8 +12,8 @@
12
12
  GNU General Public License for more details.
13
13
 
14
14
  You should have received a copy of the GNU General Public License
15
- along with this program; if not, write to the Free Software
16
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
17
  02111-1307, USA.
18
18
  =================================================================*/
19
19
 
@@ -31,12 +31,8 @@
31
31
 
32
32
  #define _CRT_SECURE_NO_WARNINGS
33
33
 
34
- static const int TYPE_DDF = 1;
35
34
  static const int TYPE_BDF = 0;
36
35
  static const bool AUTO_CREATE_TABLE = true;
37
- static const _TCHAR* OWNER_NAME = _T("");
38
- static const _TCHAR* DIR = _T("");
39
-
40
36
  static const short fn_id = 0;
41
37
  static const short fn_name = 1;
42
38
  static const int trans_bias = PARALLEL_TRN + LOCK_SINGLE_NOWAIT;
@@ -49,24 +45,27 @@ static const int USE_SNAPSHOT = 4;
49
45
  using namespace bzs::rtl;
50
46
  using namespace bzs::db::protocol::tdap;
51
47
 
52
- /* -------------------------------------------------------------------------------- */
48
+ /* --------------------------------------------------------------------------------
49
+ */
53
50
  void showTableError(client::table* tb, const _TCHAR* description)
54
51
  {
55
52
  if (tb->stat() != 0)
56
- _tprintf(_T("%s error %s:No.%d\r\n"), description, tb->tableDef()->fileName(), tb->stat());
53
+ _tprintf(_T("%s error %s:No.%d\r\n"), description,
54
+ tb->tableDef()->fileName(), tb->stat());
57
55
  }
58
56
 
59
- /* -------------------------------------------------------------------------------- */
57
+ /* --------------------------------------------------------------------------------
58
+ */
60
59
  void showEnginError(client::database* db, const _TCHAR* tableName)
61
60
  {
62
61
  if (db->stat() != 0)
63
62
  _tprintf(_T("%s error No.%d\r\n"), tableName, db->stat());
64
63
  }
65
64
 
66
-
67
-
68
- /* -------------------------------------------------------------------------------- */
69
- client::table* openTable(client::database* db, const _TCHAR* tableName, short mode)
65
+ /* --------------------------------------------------------------------------------
66
+ */
67
+ client::table* openTable(client::database* db, const _TCHAR* tableName,
68
+ short mode)
70
69
  {
71
70
  client::table* tb = db->openTable(tableName, mode, AUTO_CREATE_TABLE);
72
71
  if (tb == NULL)
@@ -74,14 +73,16 @@ client::table* openTable(client::database* db, const _TCHAR* tableName, short mo
74
73
  return tb;
75
74
  }
76
75
 
77
- /* -------------------------------------------------------------------------------- */
76
+ /* --------------------------------------------------------------------------------
77
+ */
78
78
  bool createDataBase(client::database* db, const _TCHAR* uri)
79
79
  {
80
80
  db->create(uri);
81
81
  return (db->stat() == 0);
82
82
  }
83
83
 
84
- /* -------------------------------------------------------------------------------- */
84
+ /* --------------------------------------------------------------------------------
85
+ */
85
86
  bool write(client::table* tb, int start, int end)
86
87
  {
87
88
  tb->setKeyNum(0);
@@ -100,7 +101,8 @@ bool write(client::table* tb, int start, int end)
100
101
  return true;
101
102
  }
102
103
 
103
- /* -------------------------------------------------------------------------------- */
104
+ /* --------------------------------------------------------------------------------
105
+ */
104
106
  bool deleteAll(client::database* db, client::table* tb, int start, int end)
105
107
  {
106
108
  db->beginTrn(trans_bias);
@@ -124,12 +126,12 @@ bool deleteAll(client::database* db, client::table* tb, int start, int end)
124
126
  return true;
125
127
  }
126
128
 
127
- /* -------------------------------------------------------------------------------- */
128
- bool Inserts(client::database* db, client::table* tb, int start, int end, int mode, int unit)
129
+ /* --------------------------------------------------------------------------------
130
+ */
131
+ bool Inserts(client::database* db, client::table* tb, int start, int end,
132
+ int mode, int unit)
129
133
  {
130
134
  bool ret = true;
131
- int total = end - start;
132
- int count = total / unit;
133
135
  int st = start;
134
136
  int en = st;
135
137
  while (en != end)
@@ -149,11 +151,12 @@ bool Inserts(client::database* db, client::table* tb, int start, int end, int mo
149
151
  st = en;
150
152
  }
151
153
  return ret;
152
-
153
154
  }
154
155
 
155
- /* -------------------------------------------------------------------------------- */
156
- bool Read(client::database* db, client::table* tb, int start, int end, int shapshot)
156
+ /* --------------------------------------------------------------------------------
157
+ */
158
+ bool Read(client::database* db, client::table* tb, int start, int end,
159
+ int shapshot)
157
160
  {
158
161
  bool ret = true;
159
162
  tb->clearBuffer();
@@ -165,7 +168,8 @@ bool Read(client::database* db, client::table* tb, int start, int end, int shaps
165
168
  tb->seek();
166
169
  if ((tb->stat() != 0) || (tb->getFVlng(fn_id) != i))
167
170
  {
168
- printf("GetEqual Error stat() = %d Value %d = %d\r\n", tb->stat(), i, tb->getFVlng(fn_id));
171
+ printf("GetEqual Error stat() = %d Value %d = %d\r\n", tb->stat(),
172
+ i, tb->getFVlng(fn_id));
169
173
  ret = false;
170
174
  break;
171
175
  }
@@ -176,12 +180,12 @@ bool Read(client::database* db, client::table* tb, int start, int end, int shaps
176
180
  return ret;
177
181
  }
178
182
 
179
- /* -------------------------------------------------------------------------------- */
180
- bool Reads(client::database* db, client::table* tb, int start, int end, int unit, int shapshot)
183
+ /* --------------------------------------------------------------------------------
184
+ */
185
+ bool Reads(client::database* db, client::table* tb, int start, int end,
186
+ int unit, int shapshot)
181
187
  {
182
188
  bool ret = true;
183
- int total = end - start;
184
- int count = total / unit;
185
189
  int st = start;
186
190
  int en = st;
187
191
  if (shapshot == USE_SNAPSHOT)
@@ -198,7 +202,8 @@ bool Reads(client::database* db, client::table* tb, int start, int end, int unit
198
202
  {
199
203
  if (tb->getFVlng(fn_id) != i)
200
204
  {
201
- printf("findNext Error stat() = %d Value %d = %d\r\n", tb->stat(), i, tb->getFVlng(fn_id));
205
+ printf("findNext Error stat() = %d Value %d = %d\r\n",
206
+ tb->stat(), i, tb->getFVlng(fn_id));
202
207
  ret = false;
203
208
  break;
204
209
  }
@@ -207,21 +212,20 @@ bool Reads(client::database* db, client::table* tb, int start, int end, int unit
207
212
  if (ret == false)
208
213
  break;
209
214
  st = en;
210
-
211
215
  }
212
216
  if (shapshot == USE_SNAPSHOT)
213
217
  db->endSnapshot();
214
218
  return ret;
215
219
  }
216
- /* -------------------------------------------------------------------------------- */
217
- bool Updates(client::database* db, client::table* tb, int start, int end, int tran, int unit)
220
+ /* --------------------------------------------------------------------------------
221
+ */
222
+ bool Updates(client::database* db, client::table* tb, int start, int end,
223
+ int tran, int unit)
218
224
  {
219
225
  bool ret = true;
220
226
  _TCHAR buf[30];
221
227
  tb->setKeyNum(0);
222
228
 
223
- int total = end - start;
224
- int count = total / unit;
225
229
  int st = start;
226
230
  int en = st;
227
231
  while (en != end)
@@ -233,9 +237,9 @@ bool Updates(client::database* db, client::table* tb, int start, int end, int tr
233
237
  for (int i = st; i < en; i++)
234
238
  {
235
239
  tb->setFV(fn_id, i);
236
- _ltot_s(i + 1 + tran, buf, 30, 10);
240
+ _ltot_s(i + 1 + tran, buf, 30, 10);
237
241
  tb->setFV(fn_name, buf);
238
- tb->update(client::nstable::changeInKey);
242
+ tb->update(client::nstable::changeInKey);
239
243
  if (tb->stat() != 0)
240
244
  {
241
245
  ret = false;
@@ -251,7 +255,8 @@ bool Updates(client::database* db, client::table* tb, int start, int end, int tr
251
255
  return ret;
252
256
  }
253
257
 
254
- /* -------------------------------------------------------------------------------- */
258
+ /* --------------------------------------------------------------------------------
259
+ */
255
260
  bool createTestDataBase(client::database* db, const _TCHAR* uri)
256
261
  {
257
262
  db->create(uri);
@@ -266,7 +271,7 @@ bool createTestDataBase(client::database* db, const _TCHAR* uri)
266
271
  client::dbdef* def = db->dbDef();
267
272
 
268
273
  tabledef td;
269
- memset(&td, 0, sizeof(td));
274
+ memset(&td, 0, sizeof(td));
270
275
  td.setTableName(_T("user"));
271
276
  td.setFileName(_T("user.dat"));
272
277
  td.id = 1;
@@ -280,12 +285,15 @@ bool createTestDataBase(client::database* db, const _TCHAR* uri)
280
285
  fd->setName(_T("id"));
281
286
  fd->type = ft_integer;
282
287
  fd->len = (ushort_td)4;
283
- def->updateTableDef(1);
288
+ def->updateTableDef(1);
284
289
 
285
290
  fd = def->insertField(td.id, 1);
286
291
  fd->setName(_T("name"));
287
- // fd->type = ft_zstring;
288
- fd->type = ft_myvarchar;
292
+ if (db->isUseTransactd())
293
+ fd->type = ft_myvarchar;
294
+ else
295
+ fd->type = ft_zstring;
296
+
289
297
  fd->len = (ushort_td)100;
290
298
  def->updateTableDef(td.id);
291
299
 
@@ -304,68 +312,72 @@ bool createTestDataBase(client::database* db, const _TCHAR* uri)
304
312
  return false;
305
313
  }
306
314
 
307
- /* -------------------------------------------------------------------------------- */
315
+ /* --------------------------------------------------------------------------------
316
+ */
308
317
  void printDateTime()
309
318
  {
310
319
  time_t timer;
311
320
  #ifdef LINUX
312
- time(&timer);
321
+ time(&timer);
313
322
  #else
314
323
  timer = time(NULL);
315
324
  #endif
316
- #pragma warning( disable : 4996 )
325
+ #pragma warning(disable : 4996)
317
326
  printf("%s", ctime(&timer));
318
- #pragma warning( default : 4996 )
319
-
327
+ #pragma warning(default : 4996)
320
328
  }
321
329
 
322
- /* -------------------------------------------------------------------------------- */
330
+ /* --------------------------------------------------------------------------------
331
+ */
323
332
  void printHeader(const _TCHAR* uri, int count)
324
333
  {
325
334
  printf("Start Bench mark Insert Items = %d\r\n", count);
326
335
  printDateTime();
327
336
  _tprintf(_T("%s\r\n"), uri);
328
- printf("BOOST_VERSION = %s\r\n", BOOST_LIB_VERSION );
337
+ printf("BOOST_VERSION = %s\r\n", BOOST_LIB_VERSION);
329
338
  printf("----------------------------------------\r\n");
330
339
  }
331
340
 
332
- /* -------------------------------------------------------------------------------- */
341
+ /* --------------------------------------------------------------------------------
342
+ */
333
343
  void printTail()
334
344
  {
335
345
  printf("----------------------------------------\r\n");
336
346
  }
337
347
 
338
- /* -------------------------------------------------------------------------------- */
348
+ /* --------------------------------------------------------------------------------
349
+ */
339
350
  #pragma argsused
340
351
  int _tmain(int argc, _TCHAR* argv[])
341
352
  {
342
353
  if (argc < 4)
343
354
  {
344
- printf("usage: transactdBench databaseUri processNumber functionNumber\n "
345
- "\t --- Below is list of functionNumber ---\n"
346
- "\t-1: all function\n"
347
- "\t 0: Insert\n"
348
- "\t 1: Insert in transaction. 20rec x 1000times\n"
349
- "\t 2: Insert by bulkmode. 20rec x 1000times\n"
350
- "\t 3: read each record\n"
351
- "\t 4: read each record with snapshpot\n"
352
- "\t 5: read range. 20rec x 1000times\n"
353
- "\t 6: read range with snapshpot. 20rec x 1000times\n"
354
- "\t 7: update\n"
355
- "\t 8: update in transaction. 20rec x 1000times\n"
356
- "exsample : transactdBench \"tdap://localhost/test?dbfile=test.bdf\" 0 -1\n");
357
- return 0;
358
- }
355
+ printf("usage: bench_tdclcpp_bcb32(64) databaseUri processNumber "
356
+ "functionNumber\n "
357
+ "\t --- Below is list of functionNumber ---\n"
358
+ "\t-1: all function\n"
359
+ "\t 0: Insert\n"
360
+ "\t 1: Insert in transaction. 20rec x 1000times\n"
361
+ "\t 2: Insert by bulkmode. 20rec x 1000times\n"
362
+ "\t 3: read each record\n"
363
+ "\t 4: read each record with snapshpot\n"
364
+ "\t 5: read range. 20rec x 1000times\n"
365
+ "\t 6: read range with snapshpot. 20rec x 1000times\n"
366
+ "\t 7: update\n"
367
+ "\t 8: update in transaction. 20rec x 1000times\n"
368
+ "exsample : bench_tdclcpp_bcb32(64) "
369
+ "\"tdap://localhost/test?dbfile=test.bdf\" 0 -1\n");
370
+ return 0;
371
+ }
359
372
  const _TCHAR* uri = argv[1]; // "tdap://localhost/test?dbfile=test.bdf";
360
373
  int procID = _ttol(argv[2]); // 0
361
374
  int count = 20000;
362
375
  int start = procID * count + 1;
363
376
  int end = start + count;
364
- int exeType = _ttol(argv[3]);// -1
377
+ int exeType = _ttol(argv[3]); // -1
365
378
  bool insertBeforeNoDelete = 0;
366
379
  if (argc > 4)
367
- insertBeforeNoDelete = (_ttol(argv[4])!=0);
368
-
380
+ insertBeforeNoDelete = (_ttol(argv[4]) != 0);
369
381
 
370
382
  client::database* db = client::database::create();
371
383
  if (db->open(uri, TYPE_BDF, TD_OPEN_NORMAL, _T(""), _T("")) == false)
@@ -385,46 +397,58 @@ int _tmain(int argc, _TCHAR* argv[])
385
397
  {
386
398
  client::table* tb = openTable(db, _T("user"), TD_OPEN_NORMAL);
387
399
 
388
-
389
400
  if ((exeType == -1) || (exeType == 0))
390
401
  {
391
402
  if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
392
- benchmark::report(boost::bind(Inserts, db, tb, start, end, USE_NORMAL, 1), ": Insert");
403
+ benchmark::report(
404
+ boost::bind(Inserts, db, tb, start, end, USE_NORMAL, 1),
405
+ ": Insert");
393
406
  else
394
- printf("deleteAll erorr No:%d\r\n", tb->stat());
407
+ printf("deleteAll erorr No:%d\r\n", tb->stat());
395
408
  }
396
409
  if ((exeType == -1) || (exeType == 1))
397
410
  {
398
411
  if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
399
- benchmark::report(boost::bind(Inserts, db, tb, start, end, USE_TRANS, 20)
400
- , ": Insert in transaction. 20rec x 1000times.");
412
+ benchmark::report(
413
+ boost::bind(Inserts, db, tb, start, end, USE_TRANS, 20),
414
+ ": Insert in transaction. 20rec x 1000times.");
401
415
  else
402
416
  printf("deleteAll erorr No:%d\r\n", tb->stat());
403
417
  }
404
418
  if ((exeType == -1) || (exeType == 2))
405
419
  {
406
420
  if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
407
- benchmark::report(boost::bind(Inserts, db, tb, start, end, USE_BALKINS, 20)
408
- , ": Insert by bulkmode. 20rec x 1000times.");
421
+ benchmark::report(
422
+ boost::bind(Inserts, db, tb, start, end, USE_BALKINS, 20),
423
+ ": Insert by bulkmode. 20rec x 1000times.");
409
424
  else
410
425
  printf("deleteAll erorr No:%d\r\n", tb->stat());
411
426
  }
412
427
  if ((exeType == -1) || (exeType == 3))
413
- benchmark::report(boost::bind( Read, db, tb, start, end, USE_NORMAL), ": read each record.");
428
+ benchmark::report(boost::bind(Read, db, tb, start, end, USE_NORMAL),
429
+ ": read each record.");
414
430
  if ((exeType == -1) || (exeType == 4))
415
- benchmark::report(boost::bind( Read, db, tb, start, end, USE_SNAPSHOT), ": read each record with snapshpot.");
431
+ benchmark::report(
432
+ boost::bind(Read, db, tb, start, end, USE_SNAPSHOT),
433
+ ": read each record with snapshpot.");
416
434
  if ((exeType == -1) || (exeType == 5))
417
- benchmark::report(boost::bind( Reads, db, tb, start, end, 20, USE_NORMAL), ": read range. 20rec x 1000times.");
435
+ benchmark::report(
436
+ boost::bind(Reads, db, tb, start, end, 20, USE_NORMAL),
437
+ ": read range. 20rec x 1000times.");
418
438
  if ((exeType == -1) || (exeType == 6))
419
- benchmark::report(boost::bind( Reads, db, tb, start, end, 20, USE_SNAPSHOT), ": read range with snapshpot. 20rec x 1000times.");
439
+ benchmark::report(
440
+ boost::bind(Reads, db, tb, start, end, 20, USE_SNAPSHOT),
441
+ ": read range with snapshpot. 20rec x 1000times.");
420
442
  if ((exeType == -1) || (exeType == 7))
421
- benchmark::report(boost::bind( Updates, db, tb, start, end, USE_NORMAL, 1), ": update.");
443
+ benchmark::report(
444
+ boost::bind(Updates, db, tb, start, end, USE_NORMAL, 1),
445
+ ": update.");
422
446
  if ((exeType == -1) || (exeType == 8))
423
- benchmark::report(boost::bind( Updates, db, tb, start, end, USE_TRANS, 20), ": update in transaction. 20rec x 1000times.");
424
-
447
+ benchmark::report(
448
+ boost::bind(Updates, db, tb, start, end, USE_TRANS, 20),
449
+ ": update in transaction. 20rec x 1000times.");
425
450
  }
426
451
  client::database::destroy(db);
427
452
  printTail();
428
453
  return 0;
429
-
430
454
  }