transactd 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. checksums.yaml +7 -0
  2. data/BUILD_UNIX-JA +174 -0
  3. data/BUILD_WIN-JA +256 -0
  4. data/CMakeLists.txt +96 -0
  5. data/COPYING +339 -0
  6. data/README +406 -0
  7. data/README-JA +424 -0
  8. data/bin/common/tdclc_32_1_0.dll +0 -0
  9. data/bin/common/tdclc_64_1_0.dll +0 -0
  10. data/build/common/check_for_link_iconv.cmake +73 -0
  11. data/build/common/copyifgreater.cmd +30 -0
  12. data/build/common/copyifgreater.js +290 -0
  13. data/build/common/get_boost_libs.cmake +106 -0
  14. data/build/common/get_ruby_path.cmake +115 -0
  15. data/build/common/options.cmake +127 -0
  16. data/build/common/smart_install.cmake +263 -0
  17. data/build/common/system.cmake +122 -0
  18. data/build/common/transactd.rc.in +52 -0
  19. data/build/common/transactd_cl_common.cmake +101 -0
  20. data/build/common/transactd_cl_output.cmake +93 -0
  21. data/build/common/transactd_common.cmake +237 -0
  22. data/build/common/transactd_required.cmake +28 -0
  23. data/build/swig/ruby/generate.cmake.in +35 -0
  24. data/build/swig/ruby/generate.cmd.in +19 -0
  25. data/build/swig/ruby/ruby.swg +101 -0
  26. data/build/swig/tdcl.i +188 -0
  27. data/build/tdclc/BUILDNUMBER.txt +1 -0
  28. data/build/tdclc/CMakeLists.txt +170 -0
  29. data/build/tdclc/tdclc_32.cbproj +181 -0
  30. data/build/tdclc/tdclc_64.cbproj +205 -0
  31. data/build/tdclcpp/BUILDNUMBER.txt +1 -0
  32. data/build/tdclcpp/CMakeLists.txt +142 -0
  33. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +239 -0
  34. data/build/tdclcpp/tdclcpp_bcb_64.cbproj +304 -0
  35. data/build/tdclrb/BUILDNUMBER.txt +1 -0
  36. data/build/tdclrb/CMakeLists.txt +258 -0
  37. data/build/tdclrb/GEM_VERSION +3 -0
  38. data/build/tdclrb/bldgem/extconf.rb +123 -0
  39. data/build/tdclrb/gem/INSTALLLOG.win32 +9 -0
  40. data/build/tdclrb/gem/Makefile.win32-VS +65 -0
  41. data/build/tdclrb/gem/Makefile.win32-prebuilt +48 -0
  42. data/build/tdclrb/gem/detect.rb +31 -0
  43. data/build/tdclrb/gem/helper.rb +113 -0
  44. data/build/tdclrb/gem/transactd.rb +22 -0
  45. data/build/tdclrb/gem_output.cmake +44 -0
  46. data/source/bzs/db/IBlobBuffer.h +51 -0
  47. data/source/bzs/db/blobBuffer.h +177 -0
  48. data/source/bzs/db/blobStructs.h +85 -0
  49. data/source/bzs/db/engine/mysql/IReadRecords.h +52 -0
  50. data/source/bzs/db/engine/mysql/bookmark.h +195 -0
  51. data/source/bzs/db/engine/mysql/database.cpp +1882 -0
  52. data/source/bzs/db/engine/mysql/database.h +465 -0
  53. data/source/bzs/db/engine/mysql/dbManager.cpp +303 -0
  54. data/source/bzs/db/engine/mysql/dbManager.h +143 -0
  55. data/source/bzs/db/engine/mysql/errorMessage.cpp +75 -0
  56. data/source/bzs/db/engine/mysql/errorMessage.h +43 -0
  57. data/source/bzs/db/engine/mysql/fieldAccess.h +158 -0
  58. data/source/bzs/db/engine/mysql/mydebuglog.cpp +349 -0
  59. data/source/bzs/db/engine/mysql/mydebuglog.h +89 -0
  60. data/source/bzs/db/engine/mysql/mysqlInternal.h +171 -0
  61. data/source/bzs/db/engine/mysql/mysqlThd.cpp +169 -0
  62. data/source/bzs/db/engine/mysql/mysqlThd.h +35 -0
  63. data/source/bzs/db/engine/mysql/percentageKey.h +260 -0
  64. data/source/bzs/db/protocol/ICommandExecuter.h +49 -0
  65. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +689 -0
  66. data/source/bzs/db/protocol/hs/hsCommandExecuter.h +228 -0
  67. data/source/bzs/db/protocol/tdap/btrDate.cpp +437 -0
  68. data/source/bzs/db/protocol/tdap/btrDate.h +227 -0
  69. data/source/bzs/db/protocol/tdap/client/bulkInsert.h +127 -0
  70. data/source/bzs/db/protocol/tdap/client/client.cpp +106 -0
  71. data/source/bzs/db/protocol/tdap/client/client.h +292 -0
  72. data/source/bzs/db/protocol/tdap/client/connMgr.cpp +144 -0
  73. data/source/bzs/db/protocol/tdap/client/connMgr.h +82 -0
  74. data/source/bzs/db/protocol/tdap/client/database.cpp +863 -0
  75. data/source/bzs/db/protocol/tdap/client/database.h +118 -0
  76. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +100 -0
  77. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +1640 -0
  78. data/source/bzs/db/protocol/tdap/client/dbDef.h +135 -0
  79. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +434 -0
  80. data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +92 -0
  81. data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +98 -0
  82. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +174 -0
  83. data/source/bzs/db/protocol/tdap/client/fieldDDF.h +91 -0
  84. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +140 -0
  85. data/source/bzs/db/protocol/tdap/client/fileDDF.h +86 -0
  86. data/source/bzs/db/protocol/tdap/client/filter.cpp +527 -0
  87. data/source/bzs/db/protocol/tdap/client/filter.h +154 -0
  88. data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +137 -0
  89. data/source/bzs/db/protocol/tdap/client/indexDDF.h +84 -0
  90. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +724 -0
  91. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +123 -0
  92. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +899 -0
  93. data/source/bzs/db/protocol/tdap/client/nsTable.h +199 -0
  94. data/source/bzs/db/protocol/tdap/client/request.h +198 -0
  95. data/source/bzs/db/protocol/tdap/client/sharedData.cpp +58 -0
  96. data/source/bzs/db/protocol/tdap/client/sharedData.h +56 -0
  97. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +574 -0
  98. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +53 -0
  99. data/source/bzs/db/protocol/tdap/client/stringConverter.h +627 -0
  100. data/source/bzs/db/protocol/tdap/client/table.cpp +2613 -0
  101. data/source/bzs/db/protocol/tdap/client/table.h +221 -0
  102. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +1096 -0
  103. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +179 -0
  104. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +40 -0
  105. data/source/bzs/db/protocol/tdap/client/trnsctcl.def +11 -0
  106. data/source/bzs/db/protocol/tdap/myDateTime.cpp +500 -0
  107. data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +184 -0
  108. data/source/bzs/db/protocol/tdap/mysql/characterset.h +60 -0
  109. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +284 -0
  110. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +53 -0
  111. data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +383 -0
  112. data/source/bzs/db/protocol/tdap/mysql/debuglog.h +106 -0
  113. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +680 -0
  114. data/source/bzs/db/protocol/tdap/mysql/request.h +202 -0
  115. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1020 -0
  116. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +141 -0
  117. data/source/bzs/db/protocol/tdap/tdapRequest.h +190 -0
  118. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +295 -0
  119. data/source/bzs/db/protocol/tdap/tdapSchema.h +558 -0
  120. data/source/bzs/db/protocol/tdap/tdapcapi.h +423 -0
  121. data/source/bzs/db/transactd/appBuilderImple.h +55 -0
  122. data/source/bzs/db/transactd/appModule.cpp +183 -0
  123. data/source/bzs/db/transactd/appModule.h +80 -0
  124. data/source/bzs/db/transactd/connManager.cpp +201 -0
  125. data/source/bzs/db/transactd/connManager.h +60 -0
  126. data/source/bzs/db/transactd/connectionRecord.h +69 -0
  127. data/source/bzs/db/transactd/transactd.cpp +325 -0
  128. data/source/bzs/env/compiler.h +135 -0
  129. data/source/bzs/env/crosscompile.cpp +130 -0
  130. data/source/bzs/env/crosscompile.h +150 -0
  131. data/source/bzs/env/fileopen.h +36 -0
  132. data/source/bzs/env/mbcswchrLinux.cpp +40 -0
  133. data/source/bzs/env/mbcswchrLinux.h +88 -0
  134. data/source/bzs/env/tstring.h +183 -0
  135. data/source/bzs/example/changeSchema.cpp +117 -0
  136. data/source/bzs/example/changeSchema_c.cpp +78 -0
  137. data/source/bzs/example/connection_pool_c.cpp +171 -0
  138. data/source/bzs/example/createDatabase.cpp +305 -0
  139. data/source/bzs/example/createDatabase_c.cpp +202 -0
  140. data/source/bzs/example/deleteRecords.cpp +87 -0
  141. data/source/bzs/example/deleteRecords_c.cpp +57 -0
  142. data/source/bzs/example/dropDatabase.cpp +59 -0
  143. data/source/bzs/example/dropDatabase_c.cpp +34 -0
  144. data/source/bzs/example/insertRecords.cpp +212 -0
  145. data/source/bzs/example/insertRecords_c.cpp +153 -0
  146. data/source/bzs/example/readRecords.cpp +141 -0
  147. data/source/bzs/example/readRecords_c.cpp +107 -0
  148. data/source/bzs/example/updateRecords.cpp +99 -0
  149. data/source/bzs/example/updateRecords_c.cpp +71 -0
  150. data/source/bzs/example/update_with_transaction.cpp +104 -0
  151. data/source/bzs/example/update_with_transaction_c.cpp +80 -0
  152. data/source/bzs/netsvc/client/tcpClient.cpp +226 -0
  153. data/source/bzs/netsvc/client/tcpClient.h +489 -0
  154. data/source/bzs/netsvc/server/IAppModule.h +94 -0
  155. data/source/bzs/netsvc/server/iserver.h +65 -0
  156. data/source/bzs/netsvc/server/serverCpt.cpp +522 -0
  157. data/source/bzs/netsvc/server/serverCpt.h +88 -0
  158. data/source/bzs/netsvc/server/serverPipe.cpp +705 -0
  159. data/source/bzs/netsvc/server/serverPipe.h +96 -0
  160. data/source/bzs/netsvc/server/serverTpool.cpp +416 -0
  161. data/source/bzs/netsvc/server/serverTpool.h +84 -0
  162. data/source/bzs/rtl/benchmark.cpp +96 -0
  163. data/source/bzs/rtl/benchmark.h +65 -0
  164. data/source/bzs/rtl/datetime.cpp +375 -0
  165. data/source/bzs/rtl/datetime.h +53 -0
  166. data/source/bzs/rtl/debuglog.cpp +106 -0
  167. data/source/bzs/rtl/debuglog.h +97 -0
  168. data/source/bzs/rtl/exception.h +116 -0
  169. data/source/bzs/rtl/stl_uty.cpp +35 -0
  170. data/source/bzs/rtl/stl_uty.h +29 -0
  171. data/source/bzs/rtl/stringBuffers.cpp +101 -0
  172. data/source/bzs/rtl/stringBuffers.h +58 -0
  173. data/source/bzs/rtl/strtrim.cpp +135 -0
  174. data/source/bzs/rtl/strtrim.h +46 -0
  175. data/source/bzs/test/tdclatl/bench_tdclatl.js +445 -0
  176. data/source/bzs/test/tdclrb/bench_tdclcpp.rb +375 -0
  177. data/source/bzs/test/tdclrb/prepare.rb +226 -0
  178. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +172 -0
  179. data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +208 -0
  180. data/source/bzs/test/tdclrb/transactd_spec.rb +1536 -0
  181. data/source/bzs/test/transactdBench/transactdBench.cpp +430 -0
  182. data/source/bzs/test/transactdBench/transactdBench2.cpp +342 -0
  183. data/source/bzs/test/trdclengn/test_trdclengn.cpp +2030 -0
  184. data/source/global/tdclatl/Database.cpp +503 -0
  185. data/source/global/tdclatl/Database.h +139 -0
  186. data/source/global/tdclatl/DbDef.cpp +242 -0
  187. data/source/global/tdclatl/DbDef.h +79 -0
  188. data/source/global/tdclatl/Field.cpp +92 -0
  189. data/source/global/tdclatl/Field.h +59 -0
  190. data/source/global/tdclatl/FieldDef.cpp +238 -0
  191. data/source/global/tdclatl/FieldDef.h +87 -0
  192. data/source/global/tdclatl/Flags.cpp +111 -0
  193. data/source/global/tdclatl/Flags.h +55 -0
  194. data/source/global/tdclatl/KeyDef.cpp +51 -0
  195. data/source/global/tdclatl/KeyDef.h +55 -0
  196. data/source/global/tdclatl/KeySegment.cpp +55 -0
  197. data/source/global/tdclatl/Table.cpp +600 -0
  198. data/source/global/tdclatl/Table.h +144 -0
  199. data/source/global/tdclatl/TableDef.cpp +291 -0
  200. data/source/global/tdclatl/TableDef.h +86 -0
  201. data/source/global/tdclatl/TdVersion.cpp +74 -0
  202. data/source/global/tdclatl/TdVersion.h +54 -0
  203. data/source/global/tdclatl/_IDatabaseEvents_CP.h +113 -0
  204. data/source/global/tdclatl/dllmain.cpp +30 -0
  205. data/source/global/tdclatl/dllmain.h +27 -0
  206. data/source/global/tdclatl/keySegment.h +57 -0
  207. data/source/global/tdclatl/resource.h +0 -0
  208. data/source/global/tdclatl/stdafx.cpp +2 -0
  209. data/source/global/tdclatl/stdafx.h +25 -0
  210. data/source/global/tdclatl/targetver.h +4 -0
  211. data/source/global/tdclatl/tdclatl.cpp +68 -0
  212. data/source/global/tdclatl/tdclatl.def +10 -0
  213. data/source/global/tdclatl/tdclatl.idl +1035 -0
  214. data/source/linux/charsetConvert.h +112 -0
  215. data/source/linux/linuxTypes.h +33 -0
  216. data/source/linux/tchar.h +428 -0
  217. data/transactd.gemspec +97 -0
  218. metadata +267 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: eee3cdfaa3f792fa78bdd768a1e1bd59aab2d397
4
+ data.tar.gz: b3bdc6c8537f1702937fec029a738741acf7ce36
5
+ SHA512:
6
+ metadata.gz: d9c9fd281de6502256b7c224c4e1a5ea0f76feec5c3e3835c18f80d90154d2e94ed178deffc408c9af08f404e221518adf8b639a7035a6694a3870e1c46e1aa1
7
+ data.tar.gz: af652139f6b992ae9bd0785633f617a6720d104b1559fce4ee94519a4d35da99490b01ece82e695cf6e1b212ba70b013a6018b3f579e865bd19ffed82e30e58f
data/BUILD_UNIX-JA ADDED
@@ -0,0 +1,174 @@
1
+ Transactd ビルドガイド for Unix
2
+ ============================================================
3
+
4
+ 1. ビルド環境の準備
5
+ ------------------------------------------------------------
6
+ Transactd Plugin および Transactd クライアントは、Unix上のGCC(64bit)
7
+ でビルドできます。ここでは、以下の環境でのビルドを想定して進めます。
8
+
9
+ * Ubuntu 12.10 x86_64
10
+ * gcc 4.7.2
11
+
12
+
13
+
14
+ 2. CMakeのインストール
15
+ ------------------------------------------------------------
16
+ [CMake](http://www.cmake.org)をインストールします。
17
+ ```
18
+ sudo aptitude install cmake
19
+ ```
20
+
21
+
22
+
23
+ 3. Boost C++ Libraries のダウンロードとビルド
24
+ ------------------------------------------------------------
25
+ [Boostのダウンロードページ](http://www.boost.org/users/download )からソースコー
26
+ ドをダウンロードし、解凍します。
27
+ ```
28
+ cd ~
29
+ wget http://sourceforge.net/projects/boost/files/boost/1.54.0/boost_1_54_0.tar.gz/download -O boost_1_54_0.tar.gz
30
+ tar -xzf boost_1_54_0.tar.gz
31
+ ```
32
+
33
+ 以下のコマンドを実行しBoostのビルドを行います。
34
+ ```
35
+ cd ~/boost_1_54_0
36
+ ./bootstrap.sh --with-libraries=chrono,filesystem,system,thread,timer
37
+ ./b2 cxxflags=-fPIC
38
+ ```
39
+
40
+
41
+
42
+ 4. サーバープラグインとクライアントの両方をビルド
43
+ ------------------------------------------------------------
44
+ クライアントのみをビルドしたい場合はこのステップを飛ばしてください。
45
+
46
+ ### 4-1 MySQLソースコードのダウンロード
47
+ [MySQL Community Serverのダウンロードページ](http://dev.mysql.com/downloads/mysql)
48
+ からソースコードをダウンロードし、解凍します。
49
+ ```
50
+ cd ~
51
+ wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz
52
+ tar -xzf mysql-5.6.13.tar.gz
53
+ ```
54
+
55
+
56
+ ### 4-2 Transactd Pluginソースコードのダウンロード
57
+ [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
58
+ からソースコードをダウンロードします。
59
+
60
+ ダウンロードしたソースコードは、4-1で展開したMySQLソースコードのpluginディレ
61
+ クトリに展開します。
62
+ ```
63
+ cd ~
64
+ wget http://www.bizstation.jp/al/transactd/download/transactd-1.1.0/transactd-source-1.1.0.zip
65
+ unzip -q transactd-source-1.1.0.zip
66
+ mv transactd ~/mysql-5.6.13/plugin/
67
+ ```
68
+
69
+
70
+ ### 4-3 BOMの削除(gcc 4.3 未満の場合)
71
+ gccのバージョンが4.3未満の場合、UTF-8 BOM付きのソースコードをビルドできない
72
+ ため、BOMを削除します。
73
+ バージョンは以下のコマンドで確認できます。
74
+ ```
75
+ gcc --version
76
+ ```
77
+
78
+ gccのバージョンが4.3未満だった場合、以下のコマンドで
79
+ で`transactd/source/bzs/test/trdclengn/test_trdclengn.cpp` のBOMを削除します。
80
+ ```
81
+ cd ~/mysql-5.6.13/plugin/transactd/source/bzs/test/trdclengn/
82
+ cp test_trdclengn.cpp test_trdclengn.cpp.backup
83
+ file_length=`wc -c < test_trdclengn.cpp.backup`
84
+ tail -c `expr ${file_length} - 3` test_trdclengn.cpp.backup > test_trdclengn.cpp
85
+ ```
86
+
87
+
88
+ ### 4-4 CMakeの実行
89
+ 以下のコマンドを実行します。後述するオプションに注意してください。
90
+ ```
91
+ cd ~/mysql-5.6.13
92
+ mkdir bldgccx64
93
+ cd bldgccx64
94
+ cmake .. -DWITH_TRANSACTD_SERVER=ON -DWITH_TRANSACTD_CLIENTS=ON \
95
+ -DBUILD_CONFIG=mysql_release \
96
+ -DBOOST_ROOT=~/boost_1_54_0 \
97
+ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.13 \
98
+ -DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
99
+ -DTRANSACTD_PREFIX=/usr/local/transactd
100
+ ```
101
+ * CMAKE_INSTALL_PREFIXに指定するのは、これからビルドするMySQLのインストール先で
102
+ す。
103
+ ***すでにインストール済みのMySQLがある場合に、それと同じパスを指定すると、上書
104
+ きされてしまいます。上書きしたくないときは異なるパスを指定してください。***
105
+ * TRANSACTD_CLIENTS_PREFIXに指定するのは、これからビルドするクライアントのインス
106
+ トール先です。デフォルトは「/usr/lib」です。
107
+ * TRANSACTD_PREFIXに指定するのは、これからビルドするテストやベンチマークのプログ
108
+ ラムのインストール先です。デフォルトは「/usr/local/transactd」です。
109
+
110
+
111
+ ### 4-5 ビルド
112
+ CMakeが完了するとMakefileが生成されているので、makeコマンドでビルド・インストール
113
+ します。
114
+ ```
115
+ make
116
+ make install
117
+ ```
118
+
119
+
120
+
121
+ 5. クライアントライブラリのみをビルド
122
+ ------------------------------------------------------------
123
+ ### 5-1 Transactd Pluginソースコードのダウンロード
124
+ [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
125
+ からソースコードをダウンロードします。
126
+ ```
127
+ cd ~
128
+ wget http://www.bizstation.jp/al/transactd/download/transactd-1.1.0/transactd-source-1.1.0.zip
129
+ unzip -q transactd-source-1.1.0.zip
130
+ ```
131
+
132
+
133
+ ### 5-2 BOMの削除(gcc 4.3 未満の場合)
134
+ gccのバージョンが4.3未満の場合、UTF-8 BOM付きのソースコードをビルドできない
135
+ ため、BOMを削除します。
136
+ バージョンは以下のコマンドで確認できます。
137
+ ```
138
+ gcc --version
139
+ ```
140
+
141
+ gccのバージョンが4.3未満だった場合、以下のコマンドで
142
+ `transactd/source/bzs/test/trdclengn/test_trdclengn.cpp` のBOMを削除します。
143
+ ```
144
+ cd ~/transactd/source/bzs/test/trdclengn/
145
+ cp test_trdclengn.cpp test_trdclengn.cpp.backup
146
+ file_length=`wc -c < test_trdclengn.cpp.backup`
147
+ tail -c `expr ${file_length} - 3` test_trdclengn.cpp.backup > test_trdclengn.cpp
148
+ ```
149
+
150
+
151
+ ### 5-3 CMakeの実行
152
+ 以下のコマンドを実行します。後述するオプションに注意してください。
153
+ ```
154
+ cd ~/transactd
155
+ mkdir bldgccx64
156
+ cd bldgccx64
157
+ cmake .. -DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON \
158
+ -DBOOST_ROOT=~/boost_1_54_0 \
159
+ -DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
160
+ -DTRANSACTD_PREFIX=/usr/local/transactd
161
+ ```
162
+ * TRANSACTD_CLIENTS_PREFIXに指定するのは、これからビルドするクライアントのインス
163
+ トール先です。デフォルトは「/usr/lib」です。
164
+ * TRANSACTD_PREFIXに指定するのは、これからビルドするテストやベンチマークのプログ
165
+ ラムのインストール先です。デフォルトは「/usr/local/transactd」です。
166
+
167
+
168
+ ### 5-4 ビルド
169
+ CMakeが完了するとMakefileが生成されているので、makeコマンドでビルド・インストール
170
+ します。
171
+ ```
172
+ make
173
+ make install
174
+ ```
data/BUILD_WIN-JA ADDED
@@ -0,0 +1,256 @@
1
+ Transactd ビルドガイド for Windows
2
+ ============================================================
3
+
4
+ 1. コンパイラの準備
5
+ ------------------------------------------------------------
6
+ Transactd Plugin および Transactd クライアントは、Windows上のVisual Studio
7
+ (32bit/64bit)でビルドできます。ここでは、以下の環境でのビルドを想定して進めます
8
+
9
+
10
+ * Windows 7 (64bit)
11
+ * Visual Studio 2010 Express
12
+
13
+ Visual Studio 2010 Expressで64bitビルドを行うには、別途Windows SDKのインストール
14
+ が必要になります。32bitビルドの場合やExpress版でない場合は不要です。
15
+ 以下のソフトウェアをインストールします。
16
+
17
+ * [Visual Studio 2010 Express ダウンロードページ(Microsoft)](
18
+ http://www.microsoft.com/visualstudio/jpn/downloads#d-2010-express)
19
+ * [Windows SDK for Windows 7 ダウンロードページ(Microsoft Download Center)](
20
+ http://www.microsoft.com/en-us/download/details.aspx?id=8442)
21
+ (GRMSDKX_EN_DVD.iso をダウンロードし、マウントしてインストーラを実行)
22
+
23
+ ### Visual Studioコマンドプロンプトの起動方法
24
+ 後述する手順の中で、Visual Studioコマンドプロンプトを開くことがあります。
25
+ [スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2010 Express]-
26
+ [Visual Studio コマンドプロンプト (2010)]を選択し起動します。
27
+
28
+ Visual Studio 2010 Express には、64bit版ビルドツール用の Visual Studioコマンド
29
+ プロンプトが付属しません。代わりに、64bit用ビルドツールのパスを設定するための
30
+ バッチファイルを作成し、そこから起動します。
31
+ 以下の内容のファイルを作成し、`set64env.cmd`という名前でデスクトップに保存します
32
+
33
+ ```
34
+ %comspec% /k "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
35
+ ```
36
+
37
+
38
+
39
+ 2. CMakeのダウンロードとインストール
40
+ ------------------------------------------------------------
41
+ [CMake ダウンロードページ](http://www.cmake.org/cmake/resources/software.html)か
42
+ らWindows (Win32 Installer) をダウンロードし実行します。
43
+
44
+ 途中、「Add CMake to the system PATH for all(or current) users」を選択し、
45
+ cmakeの実行ファイルにパスが通るようにします。
46
+
47
+
48
+
49
+ 3. Boost C++ Libraries のダウンロードとインストール
50
+ ------------------------------------------------------------
51
+ ### 3-a ビルド済みバイナリのダウンロード
52
+ [BoostProのダウンロードページ](http://www.boostpro.com/download)から、
53
+ BoostPro 1.51.0 Installer (64-bit)をダウンロードし、インストールします。
54
+
55
+ BoostProインストーラの「Select Default Variants」では以下の項目にチェックを入れ
56
+ ます。
57
+
58
+ * Visual C++ 10.0
59
+ * Mlutithread, static runtime
60
+ * Mlutithread debug, static runtime
61
+
62
+ 次の「Choose Components」では、以下のコンポーネント以外のチェックは外してもかま
63
+ いません。
64
+
65
+ * chrono
66
+ * filesystem
67
+ * system
68
+ * thread
69
+ * timer
70
+
71
+ インストールができたら、システム環境変数に `TI_BOOST_ROOT_32` および
72
+ `TI_BOOST_ROOT_64`という変数を追加し、32bitと64bitのフォルダのパスを値として設
73
+ 定します。自分のビルドするbitに合わせた変数が設定されていれば、両方を設定する必
74
+ 要はありません。
75
+ ```
76
+ TI_BOOST_ROOT_32 = c:\boost\boost_1_51_32
77
+ TI_BOOST_ROOT_64 = c:\boost\boost_1_51_64
78
+ ```
79
+ 環境変数の追加は、[コントロールパネル]-[システム]-[詳細設定]タブ-[環境変数]から
80
+ 行います。
81
+
82
+
83
+ ### 3-b ソースからのビルド
84
+ 自分でboostをビルドする場合は、[Boostのダウンロードページ](
85
+ http://www.boost.org/users/download )からソースコードをダウンロードし、解凍しま
86
+ す。ここでは、以下のフォルダに保存したものとします。
87
+ ```
88
+ C:\Program Files\boost\boost_1_54_0
89
+ ```
90
+
91
+ Visual Studioコマンドプロンプトを起動します。以下のコマンドを実行し、Boostのビル
92
+ ドを行います。
93
+ ```
94
+ cd C:\Program Files\boost\boost_1_54_0
95
+ bootstrap.bat
96
+ bjam.exe toolset=msvc threading=multi address-model=64 architecture=x86 ^
97
+ --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
98
+ variant=debug,release link=static runtime-link=static
99
+ bjam.exe toolset=msvc threading=multi address-model=64 architecture=x86 ^
100
+ --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
101
+ variant=debug,release link=static runtime-link=shared
102
+ ```
103
+
104
+ インストールができたら、システム環境変数に `TI_BOOST_ROOT_32` および
105
+ `TI_BOOST_ROOT_64`という変数を追加し、32bitと64bitのフォルダのパスを値として設
106
+ 定します。自分のビルドするbitに合わせた変数が設定されていれば、両方を設定する必
107
+ 要はありません。
108
+ ```
109
+ TI_BOOST_ROOT_32 = c:\boost\boost_1_51_32
110
+ TI_BOOST_ROOT_64 = c:\boost\boost_1_51_64
111
+ ```
112
+ 環境変数の追加は、[コントロールパネル]-[システム]-[詳細設定]タブ-[環境変数]から
113
+ 行います。
114
+
115
+
116
+
117
+ 4. サーバープラグインとクライアントの両方をビルド
118
+ ------------------------------------------------------------
119
+ クライアントのみをビルドしたい場合はこのステップを飛ばしてください。
120
+
121
+ ### 4-1 MySQLソースコードのダウンロード
122
+ [MySQL Community Serverのダウンロードページ](http://dev.mysql.com/downloads/mysql)
123
+ からソースコードをダウンロードします。
124
+ 「Select Platform」のプルダウンから「Source Code」を選択し、Windows ZIP形式の
125
+ ファイルをダウンロードします。
126
+
127
+ ダウンロードした圧縮ファイルを解凍します。ここでは、以下のフォルダに保存したも
128
+ のとします。
129
+ ```
130
+ C:\Users\Public\Documents\mysql-5.6.13
131
+ ```
132
+
133
+
134
+ ### 4-2 Transactd Pluginソースコードのダウンロード
135
+ [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
136
+ からソースコードをダウンロードします。
137
+
138
+
139
+ ダウンロードしたソースコードを、4-1で展開したMySQLソースコードのpluginフォルダに
140
+ 展開します。ここでは、以下のようなフォルダ構造になります。
141
+ ```
142
+ C:\Users\Public\Documents\mysql-5.6.13\plugin\transactd
143
+ ```
144
+
145
+
146
+ ### 4-3 MySQLソースコードの修正
147
+
148
+ #### 4-3.1 パッチの適用
149
+ Transactd Pluginソースコードのpatchディレクトリにmysqlのソースコードを修正する
150
+ ためのパッチが含まれています。そのパッチをmysqlのソースディレクトリにコピー
151
+ します。(パッチはmysql/mariadbのバージョンごとに異なる名前になっています。
152
+ パッチ名のバージョンの部分は合ったものに変更してください。)
153
+ ```
154
+ cd C:\Users\Public\Documents\mysql-5.6.13
155
+ copy plugin\transactd\patch\transactd-win-mysql-5.6.13.patch *
156
+ ```
157
+
158
+ patchコマンドを使用できる環境(Cygwin、Git Bashなど)があるならば、以下の
159
+ コマンドでパッチを適用します。
160
+ ```
161
+ cd C:\Users\Public\Documents\mysql-5.6.13
162
+ patch -p0 -i transactd-win-mysql-5.6.13.patch
163
+ ```
164
+
165
+ patchコマンドがない場合、[宮坂 賢 氏のGNU patch 2.5.4 (Win32 版)](
166
+ http://cetus.sakura.ne.jp/softlab/toolbox1/index.html#difpat)をダウンロードし
167
+ 使用します。
168
+ ここでは、以下のフォルダに保存したものとします。
169
+ ```
170
+ C:\Program Files (x86)\patc254w
171
+ ```
172
+ 以下のコマンドでパッチを適用します。
173
+ ```
174
+ cd C:\Users\Public\Documents\mysql-5.6.13
175
+ "C:\Program Files (x86)\patc254w\patch.exe" -p0 --binary -i transactd-win-mysql-5.6.13.patch
176
+ ```
177
+
178
+ #### 4-3.2 ソースコードのエンコーディングの修正
179
+ 日本語Windows環境でビルドする場合、一部のソースコードのエンコーディングを変更する
180
+ 必要があります。以下のファイルをVisual Studioから開き、[名前を付けて保存]-
181
+ [上書き保存]の右の▼をクリック-[エンコード付きで保存]を選択し、
182
+ 「Unicode (UTF-8 シグネチャ付き)-コードページ 65001」で上書き保存します。
183
+
184
+ * sql\sql_locale.cc
185
+ * storage\perfschema\unittest\pfs_connect_attr-t.cc
186
+
187
+
188
+ ### 4-4 CMakeの実行
189
+ Visual Studioコマンドプロンプトを起動して、以下のコマンドを実行します。
190
+ ```
191
+ cd C:\Users\Public\Documents\mysql-5.6.13
192
+ md bldVC100x64
193
+ cd bldVC100x64
194
+ cmake .. -G "Visual Studio 10 Win64" ^
195
+ -DWITH_TRANSACTD_SERVER=ON -DWITH_TRANSACTD_CLIENTS=ON ^
196
+ -DBUILD_CONFIG=mysql_release
197
+ ```
198
+
199
+
200
+ ### 4-5 ビルド
201
+ CMakeが完了すると、以下のソリューションファイルが生成されています。
202
+ ```
203
+ C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\MySQL.sln
204
+ ```
205
+ MySQL.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マネージャー]から構
206
+ 成を「RelWithDebInfo」に変更し、[ビルド]-[ソリューションのビルド]をクリックしま
207
+ す。
208
+
209
+ バイナリは以下のフォルダに出力されます。
210
+ ```
211
+ C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\sql\lib\plugin
212
+ C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\plugin\transactd\bin
213
+ C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\plugin\transactd\lib
214
+ ```
215
+
216
+
217
+
218
+ 5. クライアントのみをビルド
219
+ ------------------------------------------------------------
220
+ ### 5-1 Transactd Pluginソースコードのダウンロード
221
+ [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
222
+ からソースコードをダウンロードします。
223
+
224
+ ここでは、以下のフォルダに展開したとします。
225
+ ```
226
+ C:\Users\Public\Documents
227
+ ```
228
+
229
+
230
+ ### 5-2 CMakeの実行
231
+
232
+ Visual Studioコマンドプロンプトを起動して、以下のコマンドを実行します。
233
+ ```
234
+ cd C:\Users\Public\Documents\transactd
235
+ md bldVC100x64
236
+ cd bldVC100x64
237
+ cmake .. -G "Visual Studio 10 Win64" ^
238
+ -DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON ^
239
+ -DBOOST_ROOT="C:\Program Files\boost\boost_1_54_0"
240
+ ```
241
+
242
+
243
+ ### 5-3 ビルド
244
+ CMakeが完了すると、以下のソリューションファイルが生成されています。
245
+ ```
246
+ C:\Users\Public\Documents\transactd\bldVC100x64\tdcl.sln
247
+ ```
248
+ tdcl.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マネージャー]から構
249
+ 成を「RelWithDebInfo」に変更し、[ビルド]-[ソリューションのビルド]をクリックしま
250
+ す。
251
+
252
+ バイナリは以下のフォルダに出力されます。
253
+ ```
254
+ C:\Users\Public\Documents\transactd\bldVC100x64\bin
255
+ C:\Users\Public\Documents\transactd\bldVC100x64\lib
256
+ ```
data/CMakeLists.txt ADDED
@@ -0,0 +1,96 @@
1
+ ##=================================================================
2
+ # Copyright (C) 2012 2013 BizStation Corp All rights reserved.
3
+ #
4
+ # This program is free software; you can redistribute it and/or
5
+ # modify it under the terms of the GNU General Public License
6
+ # as published by the Free Software Foundation; either version 2
7
+ # of the License, or (at your option) any later version.
8
+ #
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with this program; if not, write to the Free Software
16
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
+ # 02111-1307, USA.
18
+ ##=================================================================
19
+ ##
20
+ ## Build Transactd server plugin and client libraries
21
+ ##
22
+ cmake_minimum_required(VERSION 2.6)
23
+ include(build/common/transactd_required.cmake)
24
+ include(build/common/transactd_common.cmake)
25
+
26
+ # ==========================================================
27
+ # options
28
+ # ==========================================================
29
+ option(WITH_TRANSACTD_SERVER "Build Transactd server plugin" ON)
30
+ option(WITH_TRANSACTD_CLIENTS "Build Transactd client libraries" ON)
31
+ option(TRANSACTD_HANDLERSOCKET "Add HandlerSocket protocol to Transactd plugin" ON)
32
+ option(TRANSACTD_RUBY_GEM "Build Transactd ruby gem" OFF)
33
+ set(TRANSACTD_PREFIX "/usr/local/transactd" CACHE STRING "Prefix for transactd executables(test,benchmark)")
34
+ set(TRANSACTD_CLIENTS_PREFIX "" CACHE STRING "Prefix for transactd client libraries")
35
+
36
+ # The following options are set automatically if not specified.
37
+ # Usually you do not have to set these values.
38
+ set(TRANSACTD_RUBY_GEM_ROOT_PATH "" CACHE STRING "Transactd gem root path")
39
+ set(TRANSACTD_RUBY_EXECUTABLE_PATH "" CACHE STRING "Ruby executable path")
40
+ set(TRANSACTD_RUBY_INCLUDE_PATH "" CACHE STRING "Include path for ruby-swig")
41
+ set(TRANSACTD_RUBY_LIBRARY_PATH "" CACHE STRING "Include path for ruby")
42
+
43
+
44
+ # ==========================================================
45
+ # set variables
46
+ # ==========================================================
47
+ get_filename_component(TRANSACTD_ROOT "${CMAKE_CURRENT_SOURCE_DIR}" ABSOLUTE)
48
+ set(TRANSACTD_BINARY_ROOT "${CMAKE_CURRENT_BINARY_DIR}")
49
+ if(TRANSACTD_RUBY_GEM)
50
+ set(WITH_TRANSACTD_SERVER OFF)
51
+ set(WITH_TRANSACTD_CLIENTS OFF)
52
+ endif()
53
+
54
+
55
+ # ==========================================================
56
+ # build server plugin
57
+ # ==========================================================
58
+ if(WITH_TRANSACTD_SERVER)
59
+ message(STATUS "BUILD Transactd Server Plugin")
60
+ subdirs("build/transactd")
61
+ endif()
62
+
63
+
64
+ # ==========================================================
65
+ # build client libraries
66
+ # ==========================================================
67
+ if(WITH_TRANSACTD_CLIENTS)
68
+ message(STATUS "BUILD Transactd Client Libraries")
69
+ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
70
+ project(tdcl)
71
+ endif()
72
+ subdirs("build/tdclc")
73
+ if(WIN32 AND NOT MINGW)
74
+ set(TDCL_CPP_CHARSET u)
75
+ else()
76
+ set(TDCL_CPP_CHARSET m)
77
+ endif()
78
+ foreach(srcname tdclcpp test_tdcl bench_td)
79
+ transactd_copy_subdir(
80
+ "${TRANSACTD_ROOT}" "${srcname}" "${srcname}${TDCL_CPP_CHARSET}")
81
+ subdirs("build/${srcname}${TDCL_CPP_CHARSET}")
82
+ endforeach()
83
+ endif()
84
+
85
+
86
+ # ==========================================================
87
+ # build Ruby Gem
88
+ # ==========================================================
89
+ if(TRANSACTD_RUBY_GEM)
90
+ message(STATUS "BUILD Transactd Ruby Gem")
91
+ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
92
+ project(tdcl)
93
+ endif()
94
+ transactd_copy_subdir("${TRANSACTD_ROOT}" tdclcpp tdclcppm)
95
+ subdirs("build/tdclrb")
96
+ endif()