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
@@ -16,29 +16,21 @@
16
16
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
17
  02111-1307, USA.
18
18
  ================================================================= */
19
- #include <bzs/env/tstring.h>
20
- #pragma hdrstop
21
-
22
-
23
19
  #include "nsTable.h"
24
20
  #include "nsDatabase.h"
25
21
  #include "bulkInsert.h"
26
22
 
27
23
  #include <limits.h>
28
- #include <string.h> // Required for _fstrstr()
24
+ #include <string.h> // Required for _fstrstr()
29
25
  #include <stdio.h>
30
26
  #include <stdlib.h>
31
27
  #include <time.h>
32
28
  #include <boost/filesystem.hpp>
33
29
 
34
-
35
-
36
-
37
-
38
30
  #pragma package(smart_init)
39
31
 
40
32
  /* TODO: To be support internal started transction with original flag.*/
41
- #ifdef __x86_64__
33
+ #ifdef __x86_64__
42
34
  #define MEM_FREED_MAGIC_NUMBER (nstimpl*)0x0FEEEFEEEFEEEFEEE
43
35
  #else
44
36
  #define MEM_FREED_MAGIC_NUMBER (nstimpl*)0x0FEEEFEEE
@@ -56,11 +48,12 @@ namespace client
56
48
 
57
49
  struct nstimpl
58
50
  {
59
- nstimpl():refCount(1), bulkIns(NULL), shared(false), isOpen(false)
51
+ nstimpl()
52
+ : refCount(1), bulkIns(NULL), mode(0), shared(false), isOpen(false)
60
53
  {
61
54
  posblk[0] = 0x00;
62
55
  }
63
- int refCount;
56
+ int refCount;
64
57
  bulkInsert* bulkIns;
65
58
  nsdatabase* nsdb;
66
59
  percentage_td percentage;
@@ -68,6 +61,7 @@ struct nstimpl
68
61
  _TCHAR uri[MAX_PATH];
69
62
  uchar_td posblk[POS_BLOCK_SIZE];
70
63
  short tableid;
64
+ char_td mode;
71
65
  bool shared;
72
66
  bool isOpen;
73
67
  };
@@ -75,15 +69,15 @@ struct nstimpl
75
69
  // -----------------------------------------------------------------
76
70
  // class nstable
77
71
  // -----------------------------------------------------------------
78
- extern TCHAR* getErrorMessageLocale(int errorCode, _TCHAR* buf, size_t size);
72
+ extern _TCHAR* getErrorMessageLocale(int errorCode, _TCHAR* buf, size_t size);
79
73
 
80
- nstable::nstable(nsdatabase *pbe)
74
+ nstable::nstable(nsdatabase* pbe)
81
75
  {
82
76
  m_impl = new nstimpl();
83
77
  m_impl->nsdb = pbe;
84
78
 
85
- //addref to nsdatabase
86
- pbe->addref();
79
+ // addref to nsdatabase
80
+ pbe->addref();
87
81
  if (pbe->openTableCount() == nsdatabase::maxtables)
88
82
  {
89
83
  m_stat = STATUS_LMITS_MAX_TABLES;
@@ -100,7 +94,6 @@ nstable::nstable(nsdatabase *pbe)
100
94
  m_write = true;
101
95
  m_insart = true;
102
96
  m_delete = true;
103
-
104
97
  }
105
98
 
106
99
  nstable::~nstable()
@@ -109,24 +102,26 @@ nstable::~nstable()
109
102
  delete m_impl->bulkIns;
110
103
  close();
111
104
 
112
- if (!m_impl->shared)
113
- m_impl->nsdb->unregisterTable(this);
114
- m_impl->nsdb->internalRelease();
105
+ if (!m_impl->shared)
106
+ {
107
+ m_impl->nsdb->unregisterTable(this);
108
+ m_impl->nsdb->release();
109
+ }
110
+
115
111
  delete m_impl;
116
- m_impl = MEM_FREED_MAGIC_NUMBER;
112
+ m_impl = MEM_FREED_MAGIC_NUMBER;
117
113
  }
118
114
 
119
- TCHAR* nstable::getErrorMessage(int errorCode, _TCHAR* buf, size_t size)
115
+ _TCHAR* nstable::getErrorMessage(int errorCode, _TCHAR* buf, size_t size)
120
116
  {
121
117
  return getErrorMessageLocale(errorCode, buf, size);
122
-
123
118
  }
124
119
 
125
120
  /* Key number is set by user.
126
- KyeNum
127
- - -1 = Unlock the record that specified by bm in multi records.
128
- - -2 = Unlock all records
129
- - �{ = Unlock single record.
121
+ KyeNum
122
+ - -1 = Unlock the record that specified by bm in multi records.
123
+ - -2 = Unlock all records
124
+ - �{ = Unlock single record.
130
125
  */
131
126
  void nstable::unlock(bookmark_td bm)
132
127
  {
@@ -138,23 +133,55 @@ void nstable::unlock(bookmark_td bm)
138
133
  m_pdata = db;
139
134
  }
140
135
 
141
- void nstable::seekByBookmark() {seekByBookmark(m_impl->bookmark);}
136
+ bool nstable::isUseTransactd() const
137
+ {
138
+ return nsdb()->isUseTransactd();
139
+ }
140
+
141
+ void nstable::seekByBookmark()
142
+ {
143
+ seekByBookmark(m_impl->bookmark);
144
+ }
142
145
 
143
- const _TCHAR* nstable::uri() const {return m_impl->uri;}
146
+ const _TCHAR* nstable::uri() const
147
+ {
148
+ return m_impl->uri;
149
+ }
144
150
 
145
- const uchar_td* nstable::posblk() const {return m_impl->posblk;}
151
+ const uchar_td* nstable::posblk() const
152
+ {
153
+ return m_impl->posblk;
154
+ }
146
155
 
147
- nsdatabase* nstable::nsdb() const {return m_impl->nsdb;}
156
+ nsdatabase* nstable::nsdb() const
157
+ {
158
+ return m_impl->nsdb;
159
+ }
148
160
 
149
- bulkInsert* nstable::bulkIns() const {return m_impl->bulkIns;}
161
+ bulkInsert* nstable::bulkIns() const
162
+ {
163
+ return m_impl->bulkIns;
164
+ }
150
165
 
151
- void nstable::setIsOpen(bool v) {m_impl->isOpen = v;}
166
+ void nstable::setIsOpen(bool v)
167
+ {
168
+ m_impl->isOpen = v;
169
+ }
152
170
 
153
- bool nstable::isOpen() const {return m_impl->isOpen;}
171
+ bool nstable::isOpen() const
172
+ {
173
+ return m_impl->isOpen;
174
+ }
154
175
 
155
- short nstable::tableid() const {return m_impl->tableid;}
176
+ short nstable::tableid() const
177
+ {
178
+ return m_impl->tableid;
179
+ }
156
180
 
157
- void nstable::setTableid(short v) {m_impl->tableid = v;}
181
+ void nstable::setTableid(short v)
182
+ {
183
+ m_impl->tableid = v;
184
+ }
158
185
 
159
186
  void nstable::setShared()
160
187
  {
@@ -164,35 +191,39 @@ void nstable::setShared()
164
191
 
165
192
  int nstable::refCount() const
166
193
  {
167
- return m_impl->refCount;
194
+ return m_impl->refCount;
168
195
  }
169
196
 
170
197
  void nstable::addref(void)
171
198
  {
172
- ++m_impl->refCount;
199
+ ++m_impl->refCount;
173
200
  }
174
201
 
175
202
  void nstable::release()
176
203
  {
177
-
178
- /* If before called database::drop() database::close() etc then nstable::destory called.
179
- Client cache nstable pointer that is invalid.
180
- It test by test method.
181
- */
182
- try
183
- {
184
- if (test(this))
185
- {
186
- if (--m_impl->refCount == 0)
187
- delete this;
188
- }
189
- }catch(...){}
204
+
205
+ /* If before called database::drop() database::close() etc then
206
+ nstable::destory called.
207
+ Client cache nstable pointer that is invalid.
208
+ It test by test method.
209
+ */
210
+ try
211
+ {
212
+ if (test(this))
213
+ {
214
+ if (--m_impl->refCount == 0)
215
+ delete this;
216
+ }
217
+ }
218
+ catch (...)
219
+ {
220
+ }
190
221
  }
191
222
 
192
223
  void nstable::destroy()
193
224
  {
194
- if (!m_impl->shared)
195
- delete this;
225
+ if (!m_impl->shared)
226
+ delete this;
196
227
  }
197
228
 
198
229
  void nstable::doClose()
@@ -306,6 +337,11 @@ void nstable::seekLessThan(bool orEqual, ushort_td LockBias)
306
337
  onReadAfter();
307
338
  }
308
339
 
340
+ char_td nstable::mode() const
341
+ {
342
+ return m_impl->mode;
343
+ }
344
+
309
345
  void nstable::doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownerName)
310
346
  {
311
347
  void* svm_keybuf = m_keybuf;
@@ -324,7 +360,7 @@ void nstable::doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownerName)
324
360
  else
325
361
  #endif
326
362
  if (m_impl->uri != name)
327
- _tcscpy_s(m_impl->uri, MAX_PATH, name);
363
+ _tcscpy_s(m_impl->uri, MAX_PATH, name);
328
364
 
329
365
  // for trnasctd
330
366
  if (m_impl->nsdb->isTransactdUri(m_impl->uri))
@@ -336,8 +372,9 @@ void nstable::doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownerName)
336
372
  }
337
373
  }
338
374
 
339
- char tmpName[MAX_PATH]={0x00};
340
- const char* p = nsdatabase::toServerUri(tmpName, MAX_PATH, m_impl->uri, m_impl->nsdb->isUseTransactd());
375
+ char tmpName[MAX_PATH] = { 0x00 };
376
+ const char* p = nsdatabase::toServerUri(tmpName, MAX_PATH, m_impl->uri,
377
+ m_impl->nsdb->isUseTransactd());
341
378
  m_keybuf = (void*)p;
342
379
  m_keylen = (keylen_td)strlen(p) + 1;
343
380
 
@@ -346,25 +383,27 @@ void nstable::doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownerName)
346
383
  else
347
384
  m_keynum = mode;
348
385
 
349
- char ownerNameBuf[OWNERNAME_SIZE+1] = {0x00};
386
+ char ownerNameBuf[OWNERNAME_SIZE + 1] = { 0x00 };
350
387
  if (NULL != ownerName && 0x00 != ownerName[0])
351
388
  {
352
- const char* p = toChar(ownerNameBuf, ownerName, 22);
353
- m_pdata = (void*)p;
354
- m_datalen = (uint_td)strlen(p) + 1;
389
+ const char* p2 = toChar(ownerNameBuf, ownerName, 22);
390
+ m_pdata = (void*)p2;
391
+ m_datalen = (uint_td)strlen(p2) + 1;
355
392
  if (m_datalen > 11)
356
393
  {
357
394
  m_stat = STATUS_TOO_LONG_OWNERNAME;
358
395
  return;
359
396
  }
360
-
361
397
  }
362
398
  else
363
399
  m_datalen = 0;
364
400
 
365
401
  tdap(TD_OPENTABLE);
366
402
  if (m_stat == STATUS_SUCCESS)
403
+ {
367
404
  m_impl->isOpen = true;
405
+ m_impl->mode = mode;
406
+ }
368
407
  m_keybuf = svm_keybuf;
369
408
  m_keynum = svm_keynum;
370
409
  m_keylen = svm_keybuflen;
@@ -379,8 +418,6 @@ void nstable::doUpdate(eUpdateType type)
379
418
  return;
380
419
  }
381
420
 
382
-
383
-
384
421
  if (onUpdateCheck(type) == false)
385
422
  return;
386
423
 
@@ -390,7 +427,7 @@ void nstable::doUpdate(eUpdateType type)
390
427
  {
391
428
  if (trnCount < nsdb()->enableTrn())
392
429
  nsdb()->abortTrn();
393
- return ;
430
+ return;
394
431
  }
395
432
  char_td keynum = m_keynum;
396
433
  m_keylen = m_keybuflen;
@@ -416,7 +453,7 @@ void nstable::doDel(bool inkey)
416
453
  m_stat = STATUS_NO_ACR_UPDATE_DELETE;
417
454
  return;
418
455
  }
419
- if (onDeleteCheck(inkey)==false)
456
+ if (onDeleteCheck(inkey) == false)
420
457
  return;
421
458
 
422
459
  m_datalen = m_buflen;
@@ -441,7 +478,6 @@ void nstable::doDel(bool inkey)
441
478
  }
442
479
  tdap(TD_REC_DELETE);
443
480
  }
444
-
445
481
  }
446
482
 
447
483
  void nstable::onInsertAfter(int beforeResult)
@@ -473,7 +509,8 @@ ushort_td nstable::doInsert(bool ncc)
473
509
  m_stat = STATUS_INVALID_VALLEN;
474
510
  m_datalen = getWriteImageLen();
475
511
  if (m_impl->bulkIns)
476
- ins_rows = m_impl->bulkIns->insert((const char*)data(), m_datalen, this);
512
+ ins_rows =
513
+ m_impl->bulkIns->insert((const char*)data(), m_datalen, this);
477
514
  else
478
515
  {
479
516
  tdap(TD_REC_INSERT);
@@ -612,7 +649,6 @@ void nstable::seekByPercentage()
612
649
  tdap(TD_MOVE_PER);
613
650
  if (m_stat == STATUS_SUCCESS)
614
651
  onReadAfter();
615
-
616
652
  }
617
653
 
618
654
  void nstable::seekByPercentage(percentage_td pc)
@@ -627,7 +663,6 @@ void nstable::seekByPercentage(percentage_td pc)
627
663
  tdap(TD_MOVE_PER);
628
664
  if (m_stat == STATUS_SUCCESS)
629
665
  onReadAfter();
630
-
631
666
  }
632
667
 
633
668
  void nstable::setOwnerName(const _TCHAR* Owner_p, char_td mode)
@@ -660,7 +695,10 @@ void nstable::setOwnerName(const _TCHAR* Owner_p, char_td mode)
660
695
  m_keynum = svm_keynum;
661
696
  }
662
697
 
663
- void nstable::clearOwnerName() {tdap(TD_CLEAR_OWNERNAME);}
698
+ void nstable::clearOwnerName()
699
+ {
700
+ tdap(TD_CLEAR_OWNERNAME);
701
+ }
664
702
 
665
703
  void nstable::stats(void* dataBuf, uint_td len, bool estimate)
666
704
  {
@@ -684,9 +722,9 @@ void nstable::stats(void* dataBuf, uint_td len, bool estimate)
684
722
  m_keynum = svm_keynum;
685
723
  }
686
724
 
687
- uint_td nstable::doRecordCount(bool estimate, bool fromCurrent, eFindType /*direction*/)
725
+ uint_td nstable::doRecordCount(bool estimate, bool fromCurrent)
688
726
  {
689
- fileSpec *fs;
727
+ fileSpec* fs;
690
728
  uint_td Count;
691
729
 
692
730
  fs = (fileSpec*)malloc(1920);
@@ -698,7 +736,7 @@ uint_td nstable::doRecordCount(bool estimate, bool fromCurrent, eFindType /*dire
698
736
 
699
737
  ushort_td nstable::recordLength()
700
738
  {
701
- fileSpec *fs;
739
+ fileSpec* fs;
702
740
  ushort_td len = 0;
703
741
 
704
742
  fs = (fileSpec*)malloc(1920);
@@ -716,7 +754,6 @@ void nstable::doCreateIndex(bool specifyKeyNum)
716
754
  tdap(TD_BUILD_INDEX);
717
755
  if (specifyKeyNum)
718
756
  m_keynum -= ((uchar_td)0x80);
719
-
720
757
  }
721
758
 
722
759
  void nstable::dropIndex(bool NoRenumber)
@@ -726,7 +763,6 @@ void nstable::dropIndex(bool NoRenumber)
726
763
  tdap(TD_DROP_INDEX);
727
764
  if (NoRenumber)
728
765
  m_keynum -= ((uchar_td)0x80);
729
-
730
766
  }
731
767
 
732
768
  short_td nstable::doBtrvErr(HWND hWnd, _TCHAR* retbuf)
@@ -757,72 +793,77 @@ void nstable::tdap(ushort_td op)
757
793
  return;
758
794
  }
759
795
  BTRCALLID_PTR func = m_impl->nsdb->btrvFunc();
760
- m_stat = func(m_op, m_impl->posblk, m_pdata, &m_datalen, m_keybuf, m_keylen, m_keynum,
761
- m_impl->nsdb->clientID());
796
+ m_stat = func(m_op, m_impl->posblk, m_pdata, &m_datalen, m_keybuf,
797
+ m_keylen, m_keynum, m_impl->nsdb->clientID());
762
798
 
763
799
  // Wait for record lock or file lock.
764
- //LoopCount++;
800
+ // LoopCount++;
765
801
  switch (m_stat)
766
802
  {
767
- case STATUS_LOCK_ERROR: Sleep(m_impl->nsdb->lockWaitTime());
803
+ case STATUS_LOCK_ERROR:
804
+ Sleep(m_impl->nsdb->lockWaitTime());
768
805
  break;
769
- case STATUS_FILE_LOCKED: Sleep(m_impl->nsdb->lockWaitTime());
806
+ case STATUS_FILE_LOCKED:
807
+ Sleep(m_impl->nsdb->lockWaitTime());
770
808
  break;
771
809
 
772
- default: return;
810
+ default:
811
+ return;
773
812
  }
774
- }
775
- while ((m_stat != STATUS_SUCCESS)
776
- && (m_impl->nsdb->lockWaitCount() != LoopCount++));
777
-
813
+ } while ((m_stat != STATUS_SUCCESS) &&
814
+ (m_impl->nsdb->lockWaitCount() != LoopCount++));
778
815
  }
779
816
 
780
817
  /* tdap error handling
781
818
  */
782
- short_td nstable::tdapErr(HWND hWnd, short_td status, const _TCHAR* TableName, _TCHAR* retbuf)
819
+ short_td nstable::tdapErr(HWND hWnd, short_td status, const _TCHAR* TableName,
820
+ _TCHAR* retbuf)
783
821
  {
784
- if (status == STATUS_SUCCESS) return 0;
785
- else if (status == STATUS_EOF) return 0;
786
- else if (status == STATUS_NOT_FOUND_TI) return 0;
822
+ if (status == STATUS_SUCCESS)
823
+ return 0;
824
+ else if (status == STATUS_EOF)
825
+ return 0;
826
+ else if (status == STATUS_NOT_FOUND_TI)
827
+ return 0;
787
828
 
788
- _TCHAR buf[512];
829
+ _TCHAR buf[512];
789
830
  short_td errorCode = status;
790
- getErrorMessage(errorCode, buf, 512);
831
+ getErrorMessage(errorCode, buf, 512);
791
832
 
792
- #pragma warning(disable:4996)
833
+ #pragma warning(disable : 4996)
793
834
  if (retbuf)
794
835
  _stprintf(retbuf, _T("table_name:%s \n%s"), TableName, buf);
795
- #pragma warning(default:4996)
836
+ #pragma warning(default : 4996)
837
+
838
+ if ((int)hWnd <= 0)
839
+ return errorCode;
796
840
 
797
- if ((int)hWnd <= 0) return errorCode;
798
-
799
841
  #ifdef _WIN32
800
842
  if (TableName)
801
843
  MessageBox(hWnd, buf, TableName, MB_OK | MB_ICONSTOP | MB_SYSTEMMODAL);
802
844
  else
803
- MessageBox(hWnd, buf, _T("tdapErr"), MB_OK | MB_ICONSTOP | MB_SYSTEMMODAL);
845
+ MessageBox(hWnd, buf, _T("tdapErr"),
846
+ MB_OK | MB_ICONSTOP | MB_SYSTEMMODAL);
804
847
  #endif
805
848
  return errorCode;
806
849
  }
807
850
 
808
-
809
851
  void nstable::throwError(const _TCHAR* caption, short statusCode)
810
852
  {
811
- _TCHAR tmp[1024]={0x00};
812
- nstable::tdapErr(0x00, statusCode, NULL, tmp);
813
- _TCHAR tmp2[1024]={0x00};
814
- _stprintf_s(tmp2, 1024, _T("%s\n%s\n"),caption, tmp);
853
+ _TCHAR tmp[1024] = { 0x00 };
854
+ nstable::tdapErr(0x00, statusCode, _T("unknown"), tmp);
855
+ _TCHAR tmp2[1024] = { 0x00 };
856
+ _stprintf_s(tmp2, 1024, _T("%s\n%s\n"), caption, tmp);
815
857
  THROW_BZS_ERROR_WITH_CODEMSG(statusCode, tmp2);
816
858
  }
817
859
 
818
860
  void nstable::throwError(const _TCHAR* caption, nstable* tb)
819
861
  {
820
- _TCHAR tmp[1024]={0x00};
862
+ _TCHAR tmp[1024] = { 0x00 };
821
863
  nstable::tdapErr(0x00, tb->stat(), tb->uri(), tmp);
822
- _TCHAR tmp2[1024]={0x00};
823
- _stprintf_s(tmp2, 1024, _T("[%s]\n%s\n"),caption, tmp);
864
+ _TCHAR tmp2[1024] = { 0x00 };
865
+ _stprintf_s(tmp2, 1024, _T("[%s]\n%s\n"), caption, tmp);
824
866
  THROW_BZS_ERROR_WITH_CODEMSG(tb->stat(), tmp2);
825
-
826
867
  }
827
868
 
828
869
  _TCHAR* nstable::getDirURI(const _TCHAR* path, _TCHAR* buf)
@@ -836,8 +877,8 @@ _TCHAR* nstable::getDirURI(const _TCHAR* path, _TCHAR* buf)
836
877
  else
837
878
  #endif
838
879
  _tcscpy(buf, path);
839
- _TUCHAR* p = _tcsmrchr((_TUCHAR*)buf, PSEPARATOR_C);
840
- _TUCHAR* p2 = _tcsmrchr((_TUCHAR*)buf, '=');
880
+ _TUCHAR* p = (_TUCHAR*)_tcsmrchr((const _TUCHAR*)buf, PSEPARATOR_C);
881
+ _TUCHAR* p2 = (_TUCHAR*)_tcsmrchr((const _TUCHAR*)buf, '=');
841
882
  if (p && p2)
842
883
  {
843
884
  if (p2 > p)
@@ -846,9 +887,9 @@ _TCHAR* nstable::getDirURI(const _TCHAR* path, _TCHAR* buf)
846
887
  p2 = NULL;
847
888
  }
848
889
  if (p)
849
- * p = 0x00;
890
+ *p = 0x00;
850
891
  if (p2)
851
- * (p2 + 1) = 0x00;
892
+ *(p2 + 1) = 0x00;
852
893
  return buf;
853
894
  }
854
895
 
@@ -858,8 +899,8 @@ _TCHAR* nstable::getDirURI(const _TCHAR* path, _TCHAR* buf)
858
899
  _TCHAR* nstable::getFileName(const _TCHAR* path, _TCHAR* filename)
859
900
  {
860
901
 
861
- _TUCHAR* p = _tcsmrchr((_TUCHAR*)path, PSEPARATOR_C);
862
- _TUCHAR* p2 = _tcsmrchr((_TUCHAR*)path, '=');
902
+ _TUCHAR* p = (_TUCHAR*)_tcsmrchr((const _TUCHAR*)path, PSEPARATOR_C);
903
+ _TUCHAR* p2 = (_TUCHAR*)_tcsmrchr((const _TUCHAR*)path, '=');
863
904
  filename[0] = 0x00;
864
905
  if (p2 > p)
865
906
  p = p2;
@@ -883,27 +924,29 @@ bool nstable::existsFile(const _TCHAR* filename)
883
924
 
884
925
  bool nstable::test(nstable* p)
885
926
  {
886
- try
887
- {
927
+ try
928
+ {
888
929
 
889
- char* pp = (char*)(p);
930
+ char* pp = (char*)(p);
890
931
  #ifdef _WIN32
891
- _TCHAR buf[256];
892
- wsprintf(buf, _T("test(%p) = %p\n"), p, *((nstimpl**)(pp + 4)));
893
- OutputDebugString(buf);
932
+ _TCHAR buf[256];
933
+ wsprintf(buf, _T("test(%p) = %p\n"), p, *((nstimpl**)(pp + 4)));
934
+ OutputDebugString(buf);
894
935
  #endif
895
- #ifdef __x86_64__
896
- return (MEM_FREED_MAGIC_NUMBER != *((nstimpl**)(pp + sizeof(char*))));
936
+ #ifdef __x86_64__
937
+ return (MEM_FREED_MAGIC_NUMBER != *((nstimpl**)(pp + sizeof(char*))));
897
938
  #else
898
- return (MEM_FREED_MAGIC_NUMBER != *((nstimpl**)(pp + sizeof(char*))));
939
+ return (MEM_FREED_MAGIC_NUMBER != *((nstimpl**)(pp + sizeof(char*))));
899
940
  #endif
900
- }
901
- catch(...){};
902
- return false;
941
+ }
942
+ catch (...)
943
+ {
944
+ };
945
+ return false;
903
946
  }
904
947
 
905
- }// namespace client
906
- }// namespace tdap
907
- }// namespace protocol
908
- }// namespace db
909
- }// namespace bzs
948
+ } // namespace client
949
+ } // namespace tdap
950
+ } // namespace protocol
951
+ } // namespace db
952
+ } // namespace bzs