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
@@ -74,7 +74,7 @@ var ft_mydatetime = 48;
74
74
  var ft_mytimestamp = 49;
75
75
  var ft_mytext = 50;
76
76
  var ft_myblob = 51;
77
-
77
+
78
78
  //key flag
79
79
  var key_duplicate = 0;
80
80
  var key_changeable = 1;
@@ -99,352 +99,352 @@ WScript.quit(main());
99
99
  /*--------------------------------------------------------------------------------*/
100
100
  function showTableError(tb, TableName)
101
101
  {
102
- if (tb.stat != 0)
103
- WScript.Echo(TableName + " error No." + tb.stat);
102
+ if (tb.stat != 0)
103
+ WScript.Echo(TableName + " error No." + tb.stat);
104
104
  }
105
105
  /*--------------------------------------------------------------------------------*/
106
106
  function openTable(db, tableName)
107
107
  {
108
- var ret = db.OpenTable(tableName, OPEN_NORMAL, AUTO_CREATE_TABLE,OWNER_NAME,DIR);
109
- if (ret == null)
110
- WScript.Echo(tableName + " open erorr:No" + db.stat);
111
- return ret;
108
+ var ret = db.OpenTable(tableName, OPEN_NORMAL, AUTO_CREATE_TABLE,OWNER_NAME,DIR);
109
+ if (ret == null)
110
+ WScript.Echo(tableName + " open erorr:No" + db.stat);
111
+ return ret;
112
112
  }
113
113
  /*--------------------------------------------------------------------------------*/
114
114
  function write(tb, start, end)
115
115
  {
116
- tb.KeyNum = 0;
117
- for (var i=start;i< end;i++)
118
- {
119
- tb.ClearBuffer();
120
- tb.Vlng(fn_id) = i;
121
- tb.Text("name") = i;
122
- tb.Insert(changeCurrentNcc);
123
- if (tb.Stat != 0)
124
- {
125
- WScript.Echo(tb.Stat);
126
- return false;
127
- }
128
- }
129
- return true;
116
+ tb.KeyNum = 0;
117
+ for (var i=start;i< end;i++)
118
+ {
119
+ tb.ClearBuffer();
120
+ tb.Vlng(fn_id) = i;
121
+ tb.Text("name") = i;
122
+ tb.Insert(changeCurrentNcc);
123
+ if (tb.Stat != 0)
124
+ {
125
+ WScript.Echo(tb.Stat);
126
+ return false;
127
+ }
128
+ }
129
+ return true;
130
130
  }
131
131
  /*--------------------------------------------------------------------------------*/
132
132
  function deleteAll(db,tb, start, end)
133
133
  {
134
- db.BeginTrn(trans_bias);
135
- for (var i=start;i<end;i++)
136
- {
137
- tb.Vlng(fn_id) = i;
138
- tb.Seek();
139
- if (tb.Stat==0)
140
- {
141
- tb.Delete();
142
- if (tb.Stat!=0)
143
- {
144
- showTableError(tb, "deleteAll");
145
- db.EndTrn();
146
- return false;
147
- }
148
- }
149
- }
150
- db.EndTrn();
151
- return true;
134
+ db.BeginTrn(trans_bias);
135
+ for (var i=start;i<end;i++)
136
+ {
137
+ tb.Vlng(fn_id) = i;
138
+ tb.Seek();
139
+ if (tb.Stat==0)
140
+ {
141
+ tb.Delete();
142
+ if (tb.Stat!=0)
143
+ {
144
+ showTableError(tb, "deleteAll");
145
+ db.EndTrn();
146
+ return false;
147
+ }
148
+ }
149
+ }
150
+ db.EndTrn();
151
+ return true;
152
152
  }
153
153
  /*--------------------------------------------------------------------------------*/
154
154
  function Inserts(db, tb, start, end, name, mode, unit)
155
155
  {
156
- var ret = deleteAll(db,tb, start, end);
157
-
158
- if (ret == true)
159
- {
160
- var now = new Date();
161
- var ticks = now.getTime();
162
- var total = end - start;
163
- var count = total/unit;
164
- var st = start;
165
- var en = st;
166
- while (en != end)
167
- {
168
- en = st + unit;
169
- if (mode == USE_TRAN)
170
- db.BeginTrn(trans_bias);
171
- else if (mode == USE_BULKINSERT)
172
- tb.BeginBulkInsert();
173
- ret = write(tb, st, en);
174
- if (mode == USE_BULKINSERT)
175
- tb.CommitBulkInsert();
176
- else if (mode == USE_TRAN)
177
- db.EndTrn();
178
- if (ret==false) break;
179
- st = en;
180
- }
181
- if (ret == true)
182
- {
183
- now = new Date();
184
- WScript.Echo((now.getTime() - ticks) + " msec" + name);
185
- return;
186
- }
187
- }
188
- WScript.Echo("Erorr " + name);
189
-
156
+ var ret = deleteAll(db,tb, start, end);
157
+
158
+ if (ret == true)
159
+ {
160
+ var now = new Date();
161
+ var ticks = now.getTime();
162
+ var total = end - start;
163
+ var count = total/unit;
164
+ var st = start;
165
+ var en = st;
166
+ while (en != end)
167
+ {
168
+ en = st + unit;
169
+ if (mode == USE_TRAN)
170
+ db.BeginTrn(trans_bias);
171
+ else if (mode == USE_BULKINSERT)
172
+ tb.BeginBulkInsert();
173
+ ret = write(tb, st, en);
174
+ if (mode == USE_BULKINSERT)
175
+ tb.CommitBulkInsert();
176
+ else if (mode == USE_TRAN)
177
+ db.EndTrn();
178
+ if (ret==false) break;
179
+ st = en;
180
+ }
181
+ if (ret == true)
182
+ {
183
+ now = new Date();
184
+ WScript.Echo((now.getTime() - ticks) + " msec" + name);
185
+ return;
186
+ }
187
+ }
188
+ WScript.Echo("Erorr " + name);
189
+
190
190
  }
191
191
  /*--------------------------------------------------------------------------------*/
192
192
  function Reads(db, tb, start, end, name, shapshot)
193
193
  {
194
- var ret = true;
195
- var now = new Date();
196
- var ticks = now.getTime();
197
- if (shapshot==USE_SNAPSHOT) db.BeginSnapShot();
198
- for (var i=start;i<end;i++)
199
- {
200
- tb.Vlng(fn_id) = i;
201
- tb.Seek();
202
- if ((tb.Stat!=0) || (tb.Vlng(0) !=i))
203
- {
204
- WScript.Echo("Seek Error Stat = " + tb.Stat + " Value " + i + " = " + tb.Vlng(0));
205
- ret = false;
206
- break;
207
- }
208
- }
209
- if (shapshot==USE_SNAPSHOT) db.EndSnapShot();
210
- if (ret == true)
211
- {
212
- now = new Date();
213
- WScript.Echo((now.getTime() - ticks) + " msec" + name);
214
- }else
215
- WScript.Echo("Erorr " + name);
194
+ var ret = true;
195
+ var now = new Date();
196
+ var ticks = now.getTime();
197
+ if (shapshot==USE_SNAPSHOT) db.BeginSnapShot();
198
+ for (var i=start;i<end;i++)
199
+ {
200
+ tb.Vlng(fn_id) = i;
201
+ tb.Seek();
202
+ if ((tb.Stat!=0) || (tb.Vlng(0) !=i))
203
+ {
204
+ WScript.Echo("Seek Error Stat = " + tb.Stat + " Value " + i + " = " + tb.Vlng(0));
205
+ ret = false;
206
+ break;
207
+ }
208
+ }
209
+ if (shapshot==USE_SNAPSHOT) db.EndSnapShot();
210
+ if (ret == true)
211
+ {
212
+ now = new Date();
213
+ WScript.Echo((now.getTime() - ticks) + " msec" + name);
214
+ }else
215
+ WScript.Echo("Erorr " + name);
216
216
  }
217
217
  /*--------------------------------------------------------------------------------*/
218
218
  function ReadRange(db, tb, start, end, name, unit, shapshot)
219
219
  {
220
- var qb = new ActiveXObject('transactd.query');
221
- var ret = true;
222
- var now = new Date();
223
- var ticks = now.getTime();
224
- tb.KeyNum = 0;
225
- var total = end - start;
226
- var count = total/unit;
227
- var st = start;
228
- if (shapshot == USE_SNAPSHOT) db.BeginSnapShot();
229
- var en = st;
230
- while (en != end)
231
- {
232
- en = st + unit;
233
- tb.ClearBuffer();
234
- qb.Where("id", ">=", st).And("id", "<", en);
220
+ var qb = new ActiveXObject('transactd.query');
221
+ var ret = true;
222
+ var now = new Date();
223
+ var ticks = now.getTime();
224
+ tb.KeyNum = 0;
225
+ var total = end - start;
226
+ var count = total/unit;
227
+ var st = start;
228
+ if (shapshot == USE_SNAPSHOT) db.BeginSnapShot();
229
+ var en = st;
230
+ while (en != end)
231
+ {
232
+ en = st + unit;
233
+ tb.ClearBuffer();
234
+ qb.Where("id", ">=", st).And("id", "<", en);
235
235
  tb.SetQuery(qb);
236
- tb.Vlng(fn_id) = st;
237
- tb.SeekGreater(true/*orEqual*/);
238
- for(var i=st;i<en;i++)
239
- {
240
- if (tb.Vlng(fn_id) != i)
241
- {
242
- WScript.Echo("FindNext Error Stat = " + tb.Stat + " Value " + i + " = " + tb.Vlng(0));
243
- ret = false;
244
- break;
245
- }
246
- tb.FindNext();
247
- }
248
- if (ret==false) break;
249
- st = en;
250
-
251
- }
252
- if (shapshot == USE_SNAPSHOT) db.EndSnapShot();
253
- if (ret == true)
254
- {
255
- now = new Date();
256
- WScript.Echo((now.getTime() - ticks) + " msec" + name);
257
- }else
258
- WScript.Echo("Erorr " + name);
236
+ tb.Vlng(fn_id) = st;
237
+ tb.SeekGreater(true/*orEqual*/);
238
+ for(var i=st;i<en;i++)
239
+ {
240
+ if (tb.Vlng(fn_id) != i)
241
+ {
242
+ WScript.Echo("FindNext Error Stat = " + tb.Stat + " Value " + i + " = " + tb.Vlng(0));
243
+ ret = false;
244
+ break;
245
+ }
246
+ tb.FindNext();
247
+ }
248
+ if (ret==false) break;
249
+ st = en;
250
+
251
+ }
252
+ if (shapshot == USE_SNAPSHOT) db.EndSnapShot();
253
+ if (ret == true)
254
+ {
255
+ now = new Date();
256
+ WScript.Echo((now.getTime() - ticks) + " msec" + name);
257
+ }else
258
+ WScript.Echo("Erorr " + name);
259
259
  }
260
260
  /*--------------------------------------------------------------------------------*/
261
261
  function Updates(db, tb, start, end, name, tran, unit)
262
262
  {
263
- var ret = true;
264
- var now = new Date();
265
- var ticks = now.getTime();
266
- tb.KeyNum = 0;
267
-
268
- var total = end - start;
269
- var count = total/unit;
270
- var st = start;
271
- var en = st;
272
- while (en != end)
273
- {
274
- en = st + unit;
275
-
276
- if (tran==USE_TRAN) db.BeginTrn(trans_bias);
277
- for (var i=st;i<en;i++)
278
- {
279
- tb.Vlng(fn_id) = i;
280
- tb.Seek();
281
- if ((tb.Stat!=0) || (tb.Vlng(0) !=i))
282
- {
283
- WScript.Echo("Seek Error Stat = " + tb.Stat + " Value " + i + " = " + tb.Vlng(0));
284
- ret = false;
285
- break;
286
- }
287
- tb.Text("name") = (i+1+tran);
288
- tb.UpDate(changeCurrentNcc);
289
- if (tb.Stat!=0)
290
- {
291
- showTableError(tb, name);
292
- ret = false;
293
- break;
294
- }
295
- }
296
- if (tran==USE_TRAN) db.EndTrn();
297
- if (ret==false) break;
298
- st = en;
299
- }
300
-
301
- if (ret == true)
302
- {
303
- now = new Date();
304
- WScript.Echo((now.getTime() - ticks) + " msec" + name);
305
- }else
306
- WScript.Echo("Erorr " + name);
263
+ var ret = true;
264
+ var now = new Date();
265
+ var ticks = now.getTime();
266
+ tb.KeyNum = 0;
267
+
268
+ var total = end - start;
269
+ var count = total/unit;
270
+ var st = start;
271
+ var en = st;
272
+ while (en != end)
273
+ {
274
+ en = st + unit;
275
+
276
+ if (tran==USE_TRAN) db.BeginTrn(trans_bias);
277
+ for (var i=st;i<en;i++)
278
+ {
279
+ tb.Vlng(fn_id) = i;
280
+ tb.Seek();
281
+ if ((tb.Stat!=0) || (tb.Vlng(0) !=i))
282
+ {
283
+ WScript.Echo("Seek Error Stat = " + tb.Stat + " Value " + i + " = " + tb.Vlng(0));
284
+ ret = false;
285
+ break;
286
+ }
287
+ tb.Text("name") = (i+1+tran);
288
+ tb.UpDate(changeCurrentNcc);
289
+ if (tb.Stat!=0)
290
+ {
291
+ showTableError(tb, name);
292
+ ret = false;
293
+ break;
294
+ }
295
+ }
296
+ if (tran==USE_TRAN) db.EndTrn();
297
+ if (ret==false) break;
298
+ st = en;
299
+ }
300
+
301
+ if (ret == true)
302
+ {
303
+ now = new Date();
304
+ WScript.Echo((now.getTime() - ticks) + " msec" + name);
305
+ }else
306
+ WScript.Echo("Erorr " + name);
307
307
  }
308
308
  /*--------------------------------------------------------------------------------*/
309
309
  function createTestDataBase(db, uri)
310
310
  {
311
- db.Create(uri);
312
- if (db.Stat!=0)
313
- {
314
- WScript.Echo("createTestDataBase erorr:No." + db.Stat + " " + uri);
315
- return false;
316
- }
317
- if (db.Open(uri, TYPE_BDF, OPEN_NORMAL, "", ""))
318
- {
319
- var dbdef = db.DbDef;
320
- var tableid = 1;
321
-
322
- var tableDef = dbdef.InsertTable(tableid);
323
- tableDef.TableName = "user";
324
- tableDef.FileName = "user.dat";
325
-
326
- var filedIndex = 0;
327
- var fd = dbdef.InsertField(tableid, filedIndex);
328
- fd.Name = "id";
329
- fd.Type = ft_integer;
330
- fd.Len = 4;
331
-
332
- filedIndex = 1;
333
- fd = dbdef.InsertField(tableid, filedIndex);
334
- fd.Name = "name";
335
- fd.Type = ft_zstring;
336
- fd.Len = 33;
337
-
338
- var keyNum = 0;
339
- var key = dbdef.InsertKey(tableid, keyNum);
340
- var seg1 = key.Segments(0);
341
- seg1.FieldNum = 0;
342
- seg1.Flags.Bits(key_extend) = true; //extended key type
343
- seg1.Flags.Bits(key_changeable) = true;//chanageable
344
- key.SegmentCount = 1;
345
-
346
- tableDef.PrimaryKeyNum = keyNum;
347
- dbdef.UpDateTableDef(tableid);
348
- dbdef = null;
349
- return true;
311
+ db.Create(uri);
312
+ if (db.Stat!=0)
313
+ {
314
+ WScript.Echo("createTestDataBase erorr:No." + db.Stat + " " + uri);
315
+ return false;
316
+ }
317
+ if (db.Open(uri, TYPE_BDF, OPEN_NORMAL, "", ""))
318
+ {
319
+ var dbdef = db.DbDef;
320
+ var tableid = 1;
321
+
322
+ var tableDef = dbdef.InsertTable(tableid);
323
+ tableDef.TableName = "user";
324
+ tableDef.FileName = "user.dat";
325
+
326
+ var filedIndex = 0;
327
+ var fd = dbdef.InsertField(tableid, filedIndex);
328
+ fd.Name = "id";
329
+ fd.Type = ft_integer;
330
+ fd.Len = 4;
331
+
332
+ filedIndex = 1;
333
+ fd = dbdef.InsertField(tableid, filedIndex);
334
+ fd.Name = "name";
335
+ fd.Type = ft_zstring;
336
+ fd.Len = 33;
337
+
338
+ var keyNum = 0;
339
+ var key = dbdef.InsertKey(tableid, keyNum);
340
+ var seg1 = key.Segments(0);
341
+ seg1.FieldNum = 0;
342
+ seg1.Flags.Bits(key_extend) = true; //extended key type
343
+ seg1.Flags.Bits(key_changeable) = true;//chanageable
344
+ key.SegmentCount = 1;
345
+
346
+ tableDef.PrimaryKeyNum = keyNum;
347
+ dbdef.UpDateTableDef(tableid);
348
+ dbdef = null;
349
+ return true;
350
350
 
351
- }
352
- WScript.Echo("open daatabse erorr:No" + db.stat);
353
- return false;
351
+ }
352
+ WScript.Echo("open daatabse erorr:No" + db.stat);
353
+ return false;
354
354
  }
355
355
  /* -------------------------------------------------------------------------------- */
356
356
  function showUsage()
357
357
  {
358
358
 
359
359
  var s = "usage: transactdBench databaseUri processNumber functionNumber\n "
360
- + "\t --- Below is list of functionNumber ---\n"
361
- + "\t-1: all function\n"
362
- + "\t 0: Insert\n"
363
- + "\t 1: Insert in transaction. 20rec x 1000times\n"
364
- + "\t 2: Insert by bulkmode. 20rec x 1000times\n"
365
- + "\t 3: read each record\n"
366
- + "\t 4: read each record with snapshpot\n"
367
- + "\t 5: read range. 20rec x 1000times\n"
368
- + "\t 6: read range with snapshpot. 20rec x 1000times\n"
369
- + "\t 7: update\n"
370
- + "\t 8: update in transaction. 20rec x 1000times\n"
371
- + "exsample : transactdBench \"tdap://localhost/test?dbfile=test.bdf\" 0 -1\n";
372
- WScript.Echo(s);
360
+ + "\t --- Below is list of functionNumber ---\n"
361
+ + "\t-1: all function\n"
362
+ + "\t 0: Insert\n"
363
+ + "\t 1: Insert in transaction. 20rec x 1000times\n"
364
+ + "\t 2: Insert by bulkmode. 20rec x 1000times\n"
365
+ + "\t 3: read each record\n"
366
+ + "\t 4: read each record with snapshpot\n"
367
+ + "\t 5: read range. 20rec x 1000times\n"
368
+ + "\t 6: read range with snapshpot. 20rec x 1000times\n"
369
+ + "\t 7: update\n"
370
+ + "\t 8: update in transaction. 20rec x 1000times\n"
371
+ + "exsample : transactdBench \"tdap://localhost/test?dbfile=test.bdf\" 0 -1\n";
372
+ WScript.Echo(s);
373
373
  }
374
374
  /*--------------------------------------------------------------------------------*/
375
375
  function main()
376
376
  {
377
-
378
- if (WScript.Arguments.length < 3)
379
- {
380
- showUsage();
381
- return 1;
382
- }
383
-
384
- var URI = WScript.Arguments(0);//"tdap://localhost/test?dbfile=test.bdf";
385
- var db = new ActiveXObject('transactd.database');
386
- var procID = parseInt(WScript.Arguments(1), 10);
387
- var execType = parseInt(WScript.Arguments(2), 10);
388
-
389
- var count = 20000;
390
- var start = procID * count + 1;
391
- var end = start + count;
392
-
393
- if (db.Open(URI, TYPE_BDF, OPEN_NORMAL, "", ""))
394
- {
395
- if (execType < 3)
396
- db.Drop();
397
- }
398
- if (db.Stat == 3106)
399
- {
400
- WScript.Echo("Error! Maybe MySQL or Tranasactd is stopping! ");
401
- return 1;
402
- }
403
- if (execType < 3)
404
- {
405
- if (!createTestDataBase(db, URI))
406
- return 1;
377
+
378
+ if (WScript.Arguments.length < 3)
379
+ {
380
+ showUsage();
381
+ return 1;
382
+ }
383
+
384
+ var URI = WScript.Arguments(0);//"tdap://localhost/test?dbfile=test.bdf";
385
+ var db = new ActiveXObject('transactd.database');
386
+ var procID = parseInt(WScript.Arguments(1), 10);
387
+ var execType = parseInt(WScript.Arguments(2), 10);
388
+
389
+ var count = 20000;
390
+ var start = procID * count + 1;
391
+ var end = start + count;
392
+
393
+ if (db.Open(URI, TYPE_BDF, OPEN_NORMAL, "", ""))
394
+ {
395
+ if (execType < 3)
396
+ db.Drop();
397
+ }
398
+ if (db.Stat == 3106)
399
+ {
400
+ WScript.Echo("Error! Maybe MySQL or Tranasactd is stopping! ");
401
+ return 1;
402
+ }
403
+ if (execType < 3)
404
+ {
405
+ if (!createTestDataBase(db, URI))
406
+ return 1;
407
+ }
408
+ var now = new Date();
409
+ WScript.Echo("Start Bench mark Insert Items = " + count);
410
+ WScript.Echo(now);
411
+ WScript.Echo(URI);
412
+ WScript.Echo("----------------------------------------");
413
+
414
+ if (db.Open(URI, TYPE_BDF, OPEN_NORMAL, "", ""))
415
+ {
416
+ var tb = openTable(db, "user");
417
+ if (tb != null)
418
+ {
419
+ if ((execType == -1) || (execType == 0))
420
+ Inserts(db, tb, start, end, ": Insert", USE_NONE, 1);
421
+ if ((execType == -1) || (execType == 1))
422
+ Inserts(db, tb, start, end, ": Insert in transaction. 20rec �~ 1000times.", USE_TRAN, 20);
423
+ if ((execType == -1) || (execType == 2))
424
+ Inserts(db, tb, start, end, ": Insert by bulkmode. 20rec �~ 1000times.", USE_BULKINSERT, 20)
425
+ if ((execType == -1) || (execType == 3))
426
+ Reads(db, tb, start, end, ": read each record.", USE_NONE);
427
+ if ((execType == -1) || (execType == 4))
428
+ Reads(db, tb, start,end, ": read each record in snapshot.", USE_SNAPSHOT)
429
+ if ((execType == -1) || (execType == 5))
430
+ ReadRange(db, tb, start, end, ": read range. 20rec �~ 1000times.", 20, USE_NONE)
431
+ if ((execType == -1) || (execType == 6))
432
+ ReadRange(db, tb, start, end, ": read range with snapshpot. 20rec x 1000times.", 20, USE_SNAPSHOT)
433
+ if ((execType == -1) || (execType == 7))
434
+ Updates(db, tb, start, end, ": update.", USE_NONE, 1);
435
+ if ((execType == -1) || (execType == 8))
436
+ Updates(db, tb, start, end, ": update in transaction. 20rec �~ 1000times.", USE_TRAN, 20);
437
+ tb.Close();
438
+ }
439
+
440
+ }
441
+ if (db.stat!=0)
442
+ {
443
+ WScript.Echo("open table erorr:No" + db.stat);
444
+ return 1;
407
445
  }
408
- var now = new Date();
409
- WScript.Echo("Start Bench mark Insert Items = " + count);
410
- WScript.Echo(now);
411
- WScript.Echo(URI);
412
- WScript.Echo("----------------------------------------");
413
-
414
- if (db.Open(URI, TYPE_BDF, OPEN_NORMAL, "", ""))
415
- {
416
- var tb = openTable(db, "user");
417
- if (tb != null)
418
- {
419
- if ((execType == -1) || (execType == 0))
420
- Inserts(db, tb, start, end, ": Insert", USE_NONE, 1);
421
- if ((execType == -1) || (execType == 1))
422
- Inserts(db, tb, start, end, ": Insert in transaction. 20rec �~ 1000times.", USE_TRAN, 20);
423
- if ((execType == -1) || (execType == 2))
424
- Inserts(db, tb, start, end, ": Insert by bulkmode. 20rec �~ 1000times.", USE_BULKINSERT, 20)
425
- if ((execType == -1) || (execType == 3))
426
- Reads(db, tb, start, end, ": read each record.", USE_NONE);
427
- if ((execType == -1) || (execType == 4))
428
- Reads(db, tb, start,end, ": read each record in snapshot.", USE_SNAPSHOT)
429
- if ((execType == -1) || (execType == 5))
430
- ReadRange(db, tb, start, end, ": read range. 20rec �~ 1000times.", 20, USE_NONE)
431
- if ((execType == -1) || (execType == 6))
432
- ReadRange(db, tb, start, end, ": read range with snapshpot. 20rec x 1000times.", 20, USE_SNAPSHOT)
433
- if ((execType == -1) || (execType == 7))
434
- Updates(db, tb, start, end, ": update.", USE_NONE, 1);
435
- if ((execType == -1) || (execType == 8))
436
- Updates(db, tb, start, end, ": update in transaction. 20rec �~ 1000times.", USE_TRAN, 20);
437
- tb.Close();
438
- }
439
-
440
- }
441
- if (db.stat!=0)
442
- {
443
- WScript.Echo("open table erorr:No" + db.stat);
444
- return 1;
445
- }
446
446
 
447
- db.Close();
448
- WScript.Echo("----------------------------------------");
449
- return 0;
447
+ db.Close();
448
+ WScript.Echo("----------------------------------------");
449
+ return 0;
450
450
  }