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
@@ -1,5 +1,5 @@
1
- #ifndef BZS_DB_BLOBSTRUCTS_H
2
- #define BZS_DB_BLOBSTRUCTS_H
1
+ #ifndef BZS_DB_BLOBSTRUCTS_H
2
+ #define BZS_DB_BLOBSTRUCTS_H
3
3
  /*=================================================================
4
4
  Copyright (C) 2013 BizStation Corp All rights reserved.
5
5
 
@@ -21,12 +21,12 @@
21
21
  #include <bzs/env/compiler.h>
22
22
 
23
23
  namespace bzs
24
- {
24
+ {
25
25
  namespace db
26
26
  {
27
27
 
28
- #pragma option -a-
29
- pragma_pack1
28
+ #pragma pack(push, 1)
29
+ pragma_pack1;
30
30
 
31
31
  /** bolob buffer field
32
32
  * size byte is allways 4byte.
@@ -34,52 +34,52 @@ pragma_pack1
34
34
  */
35
35
  struct blobField
36
36
  {
37
- unsigned int size;
38
- unsigned short fieldNum;
39
- inline const char* data()const{return (const char*)(this+1);}
40
- inline const blobField* next()const{return (const blobField*)(data()+size+2);};
37
+ unsigned int size;
38
+ unsigned short fieldNum;
39
+ inline const char* data() const { return (const char*)(this + 1); }
40
+ inline const blobField* next() const
41
+ {
42
+ return (const blobField*)(data() + size + 2);
43
+ }
41
44
  };
42
45
 
43
46
  struct blob
44
47
  {
45
- inline blob(unsigned int size, unsigned short fnum, const unsigned char* dataptr)
46
- :ptr(dataptr)
47
- {
48
- bf.fieldNum = fnum;
49
- bf.size = size;
50
- };
51
- blobField bf;
52
- const unsigned char* ptr;
48
+ inline blob(unsigned int size, unsigned short fnum,
49
+ const unsigned char* dataptr)
50
+ : ptr(dataptr)
51
+ {
52
+ bf.fieldNum = fnum;
53
+ bf.size = size;
54
+ }
55
+ blobField bf;
56
+ const unsigned char* ptr;
53
57
  };
54
58
 
55
59
  /** blob buffer header
56
- *
60
+ *
57
61
  */
58
62
  struct blobHeader
59
63
  {
60
- unsigned short rows;
61
- unsigned short fieldCount;
62
- mutable unsigned short curRow;
63
- mutable blobField* nextField;
64
+ unsigned short rows;
65
+ unsigned short fieldCount;
66
+ mutable unsigned short curRow;
67
+ mutable blobField* nextField;
64
68
  #ifndef __x86_64__
65
- blobField* dymmySpace32; //8byte size space for 32bit
69
+ blobField* dymmySpace32; // 8byte size space for 32bit
66
70
  #endif
67
71
 
68
- inline void resetCur() const
69
- {
70
- curRow = 0;
71
- nextField = (blobField*)(this+1);
72
- }
72
+ inline void resetCur() const
73
+ {
74
+ curRow = 0;
75
+ nextField = (blobField*)(this + 1);
76
+ }
73
77
  };
74
78
 
75
- #pragma option -a
76
- pragma_pop
77
-
78
- }//namespace db
79
- }//namespace bzs
80
-
81
- #endif //BZS_DB_BLOBSTRUCTS_H
82
-
83
-
79
+ #pragma pack(pop)
80
+ pragma_pop;
84
81
 
82
+ } // namespace db
83
+ } // namespace bzs
85
84
 
85
+ #endif // BZS_DB_BLOBSTRUCTS_H
@@ -1,24 +1,23 @@
1
- #ifndef IREADRECORDS_H
2
- #define IREADRECORDS_H
3
- /*=================================================================
4
- Copyright (C) 2012 2013 BizStation Corp All rights reserved.
5
-
6
- This program is free software; you can redistribute it and/or
7
- modify it under the terms of the GNU General Public License
8
- as published by the Free Software Foundation; either version 2
9
- of the License, or (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU General Public License for more details.
15
-
16
- You should have received a copy of the GNU General Public License
17
- along with this program; if not, write to the Free Software
18
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
- 02111-1307, USA.
20
- =================================================================*/
21
-
1
+ #ifndef BZS_DB_ENGINE_MYSQL_IREADRECORDS_H
2
+ #define BZS_DB_ENGINE_MYSQL_IREADRECORDS_H
3
+ /* =================================================================
4
+ Copyright (C) 2012 2013 BizStation Corp All rights reserved.
5
+
6
+ This program is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU General Public License
8
+ as published by the Free Software Foundation; either version 2
9
+ of the License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
+ 02111-1307, USA.
20
+ ================================================================= */
22
21
 
23
22
  namespace bzs
24
23
  {
@@ -29,24 +28,25 @@ namespace engine
29
28
  namespace mysql
30
29
  {
31
30
 
32
- #define REC_MACTH 0
33
- #define REC_NOMACTH 1
34
- #define REC_NOMACTH_NOMORE 2
31
+ #define REC_MACTH 0
32
+ #define REC_NOMACTH 1
33
+ #define REC_NOMACTH_NOMORE 2
35
34
 
36
35
  class IReadRecordsHandler
37
36
  {
38
37
 
39
38
  public:
40
- virtual ~IReadRecordsHandler(){};
41
- virtual int match(bool typeNext) const=0;
42
- virtual short write(const unsigned char* bookmark, unsigned int bmlen, short stat=0)=0;
43
- virtual unsigned short rejectCount() = 0;
44
- virtual unsigned short maxRows() = 0;
39
+ virtual ~IReadRecordsHandler(){};
40
+ virtual int match(bool typeNext) const = 0;
41
+ virtual short write(const unsigned char* bookmark,
42
+ unsigned int bmlen /* , short stat=0 */) = 0;
43
+ virtual unsigned short rejectCount() const = 0;
44
+ virtual unsigned short maxRows() const = 0;
45
45
  };
46
46
 
47
- }//namespace mysql
48
- }//namespace engine
49
- }//namespace db
50
- }//namespace bzs
47
+ } // namespace mysql
48
+ } // namespace engine
49
+ } // namespace db
50
+ } // namespace bzs
51
51
 
52
- #endif //IREADRECORDS_H
52
+ #endif // BZS_DB_ENGINE_MYSQL_IREADRECORDS_H
@@ -1,35 +1,34 @@
1
- #ifndef BOOKMARK_H
2
- #define BOOKMARK_H
3
- /*=================================================================
4
- Copyright (C) 2012 2013 BizStation Corp All rights reserved.
5
-
6
- This program is free software; you can redistribute it and/or
7
- modify it under the terms of the GNU General Public License
8
- as published by the Free Software Foundation; either version 2
9
- of the License, or (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU General Public License for more details.
15
-
16
- You should have received a copy of the GNU General Public License
17
- along with this program; if not, write to the Free Software
18
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
- 02111-1307, USA.
20
- =================================================================*/
1
+ #ifndef BZS_DB_ENGINE_MYSQL_BOOKMARK_H
2
+ #define BZS_DB_ENGINE_MYSQL_BOOKMARK_H
3
+ /* =================================================================
4
+ Copyright (C) 2012 2013 BizStation Corp All rights reserved.
5
+
6
+ This program is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU General Public License
8
+ as published by the Free Software Foundation; either version 2
9
+ of the License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
+ 02111-1307, USA.
20
+ ================================================================= */
21
21
 
22
22
  #include <vector>
23
23
  #include <bzs/rtl/exception.h>
24
24
  #include "mysqlInternal.h"
25
25
 
26
26
  #ifdef BOOKMARK_USE_MULTIMAP
27
- #include <boost/multi_index_container.hpp>
28
- #include <boost/multi_index/member.hpp>
29
- #include <boost/multi_index/ordered_index.hpp>
30
- using namespace boost::multi_index;
31
-
32
- #endif
27
+ #include <boost/multi_index_container.hpp>
28
+ #include <boost/multi_index/member.hpp>
29
+ #include <boost/multi_index/ordered_index.hpp>
30
+ using namespace boost::multi_index;
31
+ #endif // BOOKMARK_USE_MULTIMAP
33
32
 
34
33
  namespace bzs
35
34
  {
@@ -41,155 +40,159 @@ namespace mysql
41
40
  {
42
41
 
43
42
  #ifdef BOOKMARK_USE_MULTIMAP
44
- /** The version which can reverse-refer to bookmark from raw ref using multi map
43
+ /** The version which can reverse-refer to bookmark from raw ref using multi map
45
44
  * In order that this system may use a lot of memories
46
- , there is a problem in which the fall of performance occurs.
45
+ , there is a problem in which the fall of performance occurs.
47
46
  */
48
47
 
49
48
  typedef std::vector<unsigned char> charArray;
50
- struct bookmark
49
+
50
+ struct bookmark
51
51
  {
52
- unsigned int id;
53
- charArray ref;
54
- bookmark(unsigned int id, const charArray& ref):id(id), ref(ref){}
52
+ unsigned int id;
53
+ charArray ref;
55
54
 
55
+ bookmark(unsigned int id, const charArray& ref) : id(id), ref(ref) {}
56
56
  };
57
57
 
58
- struct id {};
59
- struct ref {};
58
+ struct id
59
+ {
60
+ };
61
+
62
+ struct ref
63
+ {
64
+ };
60
65
 
61
- typedef multi_index_container< bookmark,
62
- indexed_by<ordered_unique<tag<id>, member<bookmark, unsigned int, &bookmark::id> >
63
- ,ordered_unique<tag<ref>, member<bookmark, charArray, &bookmark::ref> > > > bookmarkContainer;
66
+ typedef multi_index_container<
67
+ bookmark,
68
+ indexed_by<
69
+ ordered_unique<tag<id>, member<bookmark, unsigned int, &bookmark::id> >,
70
+ ordered_unique<tag<ref>, member<bookmark, charArray,
71
+ &bookmark::ref> > > > bookmarkContainer;
64
72
 
65
73
  typedef bookmarkContainer::index<id>::type id_map;
66
74
  typedef bookmarkContainer::index<ref>::type ref_map;
67
75
 
68
76
  class bookmarks
69
77
  {
70
- int m_refLen;
71
- int m_lastbm;
72
- bookmarkContainer m_bms;
73
- charArray m_tmpRef;
74
-
75
- public:
76
- bookmarks(int refLen):m_refLen(refLen),m_tmpRef(refLen),m_lastbm(0)
77
- {
78
- }
79
-
80
- /** get integer bookmark pointer by raw ref pointer
81
- */
82
- const unsigned char* getBookmarkPtr(unsigned char* rawRefPtr)
83
- {
84
- m_tmpRef.clear();
85
- m_tmpRef.insert(m_tmpRef.end(), rawRefPtr, rawRefPtr+m_refLen);
86
- ref_map& m = m_bms.get<ref>();
87
- ref_map::iterator it = m.find(m_tmpRef);
88
- if (it == m.end())
89
- {
90
- m_bms.insert(m_bms.end(), bookmark(++m_lastbm, m_tmpRef));
91
- it = m.find(m_tmpRef);
92
- }
93
- return (const unsigned char*)&it->id;
94
- }
95
-
96
- unsigned int getBookmark(unsigned char* rawRefPtr)
97
- {
98
- return *((unsigned int*)getBookmarkPtr(rawRefPtr));
99
- }
100
- /** get raw ref pointer by integer bookmark
101
- */
102
- const unsigned char* getRefByBm(unsigned int bm)
103
- {
104
- id_map& m = m_bms.get<id>();
105
- id_map::iterator it = m.find(bm);
106
- if (it != m.end())
107
- return &(it->ref[0]);
108
- THROW_BZS_ERROR_WITH_CODEMSG(STATUS_INVALID_BOOKMARK ,"invalid bookmark.");
109
- }
78
+ int m_refLen;
79
+ int m_lastbm;
80
+ bookmarkContainer m_bms;
81
+ charArray m_tmpRef;
110
82
 
83
+ public:
84
+ bookmarks(int refLen) : m_refLen(refLen), m_tmpRef(refLen), m_lastbm(0) {}
85
+
86
+ /** get integer bookmark pointer by raw ref pointer
87
+ */
88
+ const unsigned char* getBookmarkPtr(unsigned char* rawRefPtr)
89
+ {
90
+ m_tmpRef.clear();
91
+ m_tmpRef.insert(m_tmpRef.end(), rawRefPtr, rawRefPtr + m_refLen);
92
+ ref_map& m = m_bms.get<ref>();
93
+ ref_map::iterator it = m.find(m_tmpRef);
94
+ if (it == m.end())
95
+ {
96
+ m_bms.insert(m_bms.end(), bookmark(++m_lastbm, m_tmpRef));
97
+ it = m.find(m_tmpRef);
98
+ }
99
+ return (const unsigned char*)&it->id;
100
+ }
101
+
102
+ unsigned int getBookmark(unsigned char* rawRefPtr)
103
+ {
104
+ return *((unsigned int*)getBookmarkPtr(rawRefPtr));
105
+ }
106
+
107
+ /** get raw ref pointer by integer bookmark
108
+ */
109
+ const unsigned char* getRefByBm(unsigned int bm)
110
+ {
111
+ id_map& m = m_bms.get<id>();
112
+ id_map::iterator it = m.find(bm);
113
+ if (it != m.end())
114
+ return &(it->ref[0]);
115
+ THROW_BZS_ERROR_WITH_CODEMSG(STATUS_INVALID_BOOKMARK,
116
+ "invalid bookmark.");
117
+ }
111
118
  };
112
- #else //BOOKMARK_USE_MULTIMAP
119
+ #else // NOT BOOKMARK_USE_MULTIMAP
113
120
 
114
- /** The version which returns raw ref to bookmark in simple arrangement
115
- * The maximum memory size is specified in MAX_BOOKMARK_MEM_SIZE.
121
+ /** The version which returns raw ref to bookmark in simple arrangement
122
+ * The maximum memory size is specified in MAX_BOOKMARK_MEM_SIZE.
116
123
  * When the memory exceeding it is required, it is considered as an error.
117
124
  */
118
125
 
119
-
120
-
121
- #define MAX_BOOKMARK_MEM_SIZE 500*1024*1024 //500MB
126
+ #define MAX_BOOKMARK_MEM_SIZE 500 * 1024 * 1024 // 500MB
122
127
  #define UNIT_OF_ALLOCCOUNT 10000
123
128
 
124
129
  class bookmarks
125
130
  {
126
- size_t m_refLen;
127
- size_t m_allocatedCount;
128
- size_t m_usedCount;
129
- unsigned char* m_ptr;
130
- unsigned int m_bookmark;
131
-
132
- void allocBuffer(size_t count)
133
- {
134
- if (MAX_BOOKMARK_MEM_SIZE < count*m_refLen)
135
- THROW_BZS_ERROR_WITH_CODEMSG(STATUS_INVALID_BOOKMARK ,"invalid bookmark.");
136
- void* tmp;
137
- if (m_ptr == NULL)
138
- tmp = (unsigned char*)td_malloc(count*m_refLen, 0);
139
- else
140
- tmp = td_realloc(m_ptr, count*m_refLen, 0);
141
- if (tmp)
142
- m_ptr = (unsigned char*)tmp;
143
- else
144
- THROW_BZS_ERROR_WITH_CODEMSG(STATUS_INVALID_BOOKMARK ,"invalid bookmark.");
145
- m_allocatedCount = count;
146
- }
131
+ size_t m_refLen;
132
+ size_t m_allocatedCount;
133
+ size_t m_usedCount;
134
+ unsigned char* m_ptr;
135
+ unsigned int m_bookmark;
136
+
137
+ void allocBuffer(size_t count)
138
+ {
139
+ if (MAX_BOOKMARK_MEM_SIZE < count * m_refLen)
140
+ THROW_BZS_ERROR_WITH_CODEMSG(STATUS_INVALID_BOOKMARK,
141
+ "invalid bookmark.");
142
+ void* tmp;
143
+ if (m_ptr == NULL)
144
+ tmp = (unsigned char*)td_malloc(count * m_refLen, 0);
145
+ else
146
+ tmp = td_realloc(m_ptr, count * m_refLen, 0);
147
+ if (tmp)
148
+ m_ptr = (unsigned char*)tmp;
149
+ else
150
+ THROW_BZS_ERROR_WITH_CODEMSG(STATUS_INVALID_BOOKMARK,
151
+ "invalid bookmark.");
152
+ m_allocatedCount = count;
153
+ }
147
154
 
148
155
  public:
149
- bookmarks(size_t refLen):m_refLen(refLen),m_usedCount(0),m_ptr(NULL)
150
- {
151
- allocBuffer(UNIT_OF_ALLOCCOUNT);
152
- }
153
-
154
- ~bookmarks()
155
- {
156
- td_free(m_ptr);
157
- }
158
-
159
- /** get integer bookmark pointer by raw ref pointer
160
- */
161
- const unsigned char* getBookmarkPtr(unsigned char* rawRefPtr)
162
- {
163
- if (m_usedCount == m_allocatedCount)
164
- allocBuffer(m_usedCount+UNIT_OF_ALLOCCOUNT);
165
-
166
- memcpy(m_ptr+m_usedCount*m_refLen, rawRefPtr, m_refLen);
167
- m_bookmark = (unsigned int)(++m_usedCount);
168
- return (const unsigned char*)&m_bookmark;
169
- }
170
-
171
- unsigned int getBookmark(unsigned char* rawRefPtr)
172
- {
173
- return *((unsigned int*)getBookmarkPtr(rawRefPtr));
174
- }
175
-
176
- /** get raw ref pointer by integer bookmark
177
- */
178
- const unsigned char* getRefByBm(unsigned int bm)
179
- {
180
- if ((0==bm) || bm > m_usedCount)
181
- THROW_BZS_ERROR_WITH_CODEMSG(STATUS_INVALID_BOOKMARK ,"invalid bookmark.");
182
- return m_ptr+(bm-1)*m_refLen;
183
- }
184
-
156
+ bookmarks(size_t refLen) : m_refLen(refLen), m_usedCount(0), m_ptr(NULL)
157
+ {
158
+ allocBuffer(UNIT_OF_ALLOCCOUNT);
159
+ }
160
+
161
+ ~bookmarks() { td_free(m_ptr); }
162
+
163
+ /** get integer bookmark pointer by raw ref pointer
164
+ */
165
+ const unsigned char* getBookmarkPtr(unsigned char* rawRefPtr)
166
+ {
167
+ if (m_usedCount == m_allocatedCount)
168
+ allocBuffer(m_usedCount + UNIT_OF_ALLOCCOUNT);
169
+
170
+ memcpy(m_ptr + m_usedCount * m_refLen, rawRefPtr, m_refLen);
171
+ m_bookmark = (unsigned int)(++m_usedCount);
172
+ return (const unsigned char*)&m_bookmark;
173
+ }
174
+
175
+ unsigned int getBookmark(unsigned char* rawRefPtr)
176
+ {
177
+ return *((unsigned int*)getBookmarkPtr(rawRefPtr));
178
+ }
179
+
180
+ /** get raw ref pointer by integer bookmark
181
+ */
182
+ const unsigned char* getRefByBm(unsigned int bm)
183
+ {
184
+ if ((0 == bm) || bm > m_usedCount)
185
+ THROW_BZS_ERROR_WITH_CODEMSG(STATUS_INVALID_BOOKMARK,
186
+ "invalid bookmark.");
187
+ return m_ptr + (bm - 1) * m_refLen;
188
+ }
185
189
  };
186
190
 
187
- #endif
188
-
189
- }//namespace mysql
190
- }//namespace engine
191
- }//namespace db
192
- }//namespace bzs
191
+ #endif // NOT BOOKMARK_USE_MULTIMAP
193
192
 
194
- #endif //BOOKMARK_H
193
+ } // namespace mysql
194
+ } // namespace engine
195
+ } // namespace db
196
+ } // namespace bzs
195
197
 
198
+ #endif // BZS_DB_ENGINE_MYSQL_BOOKMARK_H