transactd 2.4.5 → 3.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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/CMakeLists.txt +1 -1
  3. data/README-JA.md +52 -529
  4. data/README.md +52 -523
  5. data/bin/common/tdclc_32_3_0.dll +0 -0
  6. data/bin/common/tdclc_64_3_0.dll +0 -0
  7. data/build/common/system.cmake +2 -1
  8. data/build/common/transactd_cl_common.cmake +3 -6
  9. data/build/swig/ruby/ruby.swg +85 -28
  10. data/build/swig/ruby/tdclrb_wrap.cpp +3195 -1578
  11. data/build/swig/tdcl.i +161 -5
  12. data/build/tdclc/CMakeLists.txt +1 -0
  13. data/build/tdclc/tdclc.cbproj +7 -1
  14. data/build/tdclc/tdclc.rc +4 -4
  15. data/build/tdclcpp/tdclcpp.rc +4 -4
  16. data/build/tdclcpp/tdclcpp_bc.cbproj +2 -5
  17. data/build/tdclrb/tdclrb.rc +4 -4
  18. data/source/bzs/db/blobStructs.h +1 -1
  19. data/source/bzs/db/engine/mysql/database.cpp +199 -74
  20. data/source/bzs/db/engine/mysql/database.h +47 -18
  21. data/source/bzs/db/engine/mysql/dbManager.cpp +1 -0
  22. data/source/bzs/db/engine/mysql/mysqlInternal.h +32 -8
  23. data/source/bzs/db/protocol/tdap/btrDate.cpp +110 -75
  24. data/source/bzs/db/protocol/tdap/btrDate.h +46 -21
  25. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +18 -18
  26. data/source/bzs/db/protocol/tdap/client/activeTable.h +25 -25
  27. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +10 -4
  28. data/source/bzs/db/protocol/tdap/client/client.cpp +6 -5
  29. data/source/bzs/db/protocol/tdap/client/client.h +82 -15
  30. data/source/bzs/db/protocol/tdap/client/database.cpp +531 -142
  31. data/source/bzs/db/protocol/tdap/client/database.h +19 -6
  32. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +461 -408
  33. data/source/bzs/db/protocol/tdap/client/dbDef.h +11 -17
  34. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +61 -13
  35. data/source/bzs/db/protocol/tdap/client/field.cpp +1592 -1398
  36. data/source/bzs/db/protocol/tdap/client/field.h +110 -121
  37. data/source/bzs/db/protocol/tdap/client/fields.h +40 -10
  38. data/source/bzs/db/protocol/tdap/client/filter.h +69 -55
  39. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +296 -164
  40. data/source/bzs/db/protocol/tdap/client/groupQuery.h +77 -25
  41. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +31 -13
  42. data/source/bzs/db/protocol/tdap/client/memRecord.h +31 -21
  43. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
  44. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
  45. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +69 -24
  46. data/source/bzs/db/protocol/tdap/client/nsTable.h +3 -1
  47. data/source/bzs/db/protocol/tdap/client/recordset.cpp +1 -0
  48. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +46 -27
  49. data/source/bzs/db/protocol/tdap/client/request.h +2 -1
  50. data/source/bzs/db/protocol/tdap/client/serializer.cpp +44 -9
  51. data/source/bzs/db/protocol/tdap/client/serializer.h +1 -1
  52. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +182 -76
  53. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +23 -12
  54. data/source/bzs/db/protocol/tdap/client/stringConverter.h +8 -10
  55. data/source/bzs/db/protocol/tdap/client/table.cpp +172 -93
  56. data/source/bzs/db/protocol/tdap/client/table.h +112 -37
  57. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +17 -0
  58. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +0 -1
  59. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +0 -2
  60. data/source/bzs/db/protocol/tdap/client/trdormapi.h +1 -1
  61. data/source/bzs/db/protocol/tdap/fieldComp.h +698 -14
  62. data/source/bzs/db/protocol/tdap/myDateTime.cpp +723 -307
  63. data/source/bzs/db/protocol/tdap/myDateTime.h +294 -0
  64. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +164 -54
  65. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +6 -3
  66. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +133 -550
  67. data/source/bzs/db/protocol/tdap/mysql/request.h +6 -5
  68. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +217 -82
  69. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +1 -1
  70. data/source/bzs/db/protocol/tdap/tdapRequest.h +4 -9
  71. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +808 -17
  72. data/source/bzs/db/protocol/tdap/tdapSchema.h +656 -164
  73. data/source/bzs/db/protocol/tdap/tdapcapi.h +130 -28
  74. data/source/bzs/db/protocol/tdap/uri.h +40 -32
  75. data/source/bzs/db/transactd/connManager.cpp +1 -1
  76. data/source/bzs/db/transactd/transactd.cpp +7 -0
  77. data/source/bzs/env/compiler.h +107 -94
  78. data/source/bzs/env/crosscompile.cpp +24 -12
  79. data/source/bzs/env/crosscompile.h +75 -6
  80. data/source/bzs/env/mbcswchrLinux.cpp +2 -2
  81. data/source/bzs/env/tcharMinGW.h +4 -0
  82. data/source/bzs/example/changeSchema.cpp +22 -17
  83. data/source/bzs/example/queryData.cpp +4 -0
  84. data/source/bzs/netsvc/client/iconnection.h +3 -1
  85. data/source/bzs/netsvc/client/tcpClient.h +10 -3
  86. data/source/bzs/rtl/stringBuffers.cpp +7 -0
  87. data/source/bzs/test/tdclatl/bench_query_atl.js +6 -0
  88. data/source/bzs/test/tdclatl/bench_tdclatl.js +8 -1
  89. data/source/bzs/test/tdclatl/test_query_atl.js +22 -2
  90. data/source/bzs/test/tdclatl/test_v3.js +1017 -0
  91. data/source/bzs/test/tdclphp/transactd_Test.php +55 -21
  92. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +0 -5
  93. data/source/bzs/test/tdclphp/transactd_pool_Test.php +2 -0
  94. data/source/bzs/test/tdclphp/transactd_v3_Test.php +743 -0
  95. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -5
  96. data/source/bzs/test/tdclrb/transactd_pool_spec.rb +2 -0
  97. data/source/bzs/test/tdclrb/transactd_spec.rb +39 -16
  98. data/source/bzs/test/tdclrb/transactd_v3_spec.rb +748 -0
  99. data/source/bzs/test/transactdBench/transactdBench.cpp +55 -58
  100. data/source/bzs/test/transactdBench/transactdBench2.cpp +1 -3
  101. data/source/bzs/test/trdclengn/testField.h +3305 -0
  102. data/source/bzs/test/trdclengn/test_tdclcpp_v3.cpp +1050 -0
  103. data/source/bzs/test/trdclengn/test_trdclengn.cpp +112 -190
  104. data/source/bzs/test/trdclengn/testbase.h +137 -0
  105. data/source/global/ormsrcgen/srcgen.cpp +23 -12
  106. data/source/global/ormsrcgen/template/ormDataClass_template.h +2 -0
  107. data/source/global/querystmts/querystmts.cpp +2 -3
  108. data/source/global/tdclatl/Bitset.cpp +38 -0
  109. data/source/global/tdclatl/Bitset.h +63 -0
  110. data/source/global/tdclatl/Database.cpp +59 -18
  111. data/source/global/tdclatl/Database.h +7 -4
  112. data/source/global/tdclatl/DbDef.cpp +6 -6
  113. data/source/global/tdclatl/DbDef.h +2 -1
  114. data/source/global/tdclatl/Field.cpp +112 -0
  115. data/source/global/tdclatl/Field.h +19 -5
  116. data/source/global/tdclatl/FieldDef.cpp +137 -16
  117. data/source/global/tdclatl/FieldDef.h +18 -2
  118. data/source/global/tdclatl/FieldDefs.cpp +54 -1
  119. data/source/global/tdclatl/FieldDefs.h +3 -0
  120. data/source/global/tdclatl/GroupQuery.cpp +8 -8
  121. data/source/global/tdclatl/QueryBase.cpp +65 -0
  122. data/source/global/tdclatl/QueryBase.h +10 -0
  123. data/source/global/tdclatl/Record.cpp +33 -2
  124. data/source/global/tdclatl/Record.h +3 -1
  125. data/source/global/tdclatl/RecordsetQuery.cpp +42 -0
  126. data/source/global/tdclatl/RecordsetQuery.h +8 -0
  127. data/source/global/tdclatl/Table.cpp +127 -3
  128. data/source/global/tdclatl/Table.h +10 -1
  129. data/source/global/tdclatl/TableDef.cpp +41 -8
  130. data/source/global/tdclatl/TableDef.h +7 -2
  131. data/source/global/tdclatl/activeTable.cpp +40 -71
  132. data/source/global/tdclatl/resource.h +0 -0
  133. data/source/global/tdclatl/tdclatl.idl +222 -28
  134. data/source/linux/tchar.h +100 -96
  135. data/transactd.gemspec +2 -2
  136. metadata +13 -11
  137. data/BUILD_UNIX-JA.md +0 -161
  138. data/BUILD_WIN-JA.md +0 -326
  139. data/README_ORMSRCGEN-JA.md +0 -115
  140. data/README_ORMSRCGEN.md +0 -118
  141. data/RELEASE_NOTE-JA.md +0 -356
  142. data/RELEASE_NOTE.md +0 -360
  143. data/bin/common/tdclc_32_2_4.dll +0 -0
  144. data/bin/common/tdclc_64_2_4.dll +0 -0
  145. data/source/bzs/test/trdclengn/test_blob.cpp +0 -375
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transactd
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.5
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BizStation Corp.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-29 00:00:00.000000000 Z
11
+ date: 2015-12-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Transactd client for ruby gem
14
14
  email: transactd@bizstation.jp
@@ -19,8 +19,8 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - CMakeLists.txt
21
21
  - build/tdclrb/bldgem/extconf.rb
22
- - bin/common/tdclc_32_2_4.dll
23
- - bin/common/tdclc_64_2_4.dll
22
+ - bin/common/tdclc_32_3_0.dll
23
+ - bin/common/tdclc_64_3_0.dll
24
24
  - source/bzs/db/blobBuffer.h
25
25
  - source/bzs/db/blobStructs.h
26
26
  - source/bzs/db/engine/mysql/bookmark.h
@@ -106,6 +106,7 @@ files:
106
106
  - source/bzs/db/protocol/tdap/client/trnsctcl.def
107
107
  - source/bzs/db/protocol/tdap/fieldComp.h
108
108
  - source/bzs/db/protocol/tdap/myDateTime.cpp
109
+ - source/bzs/db/protocol/tdap/myDateTime.h
109
110
  - source/bzs/db/protocol/tdap/mysql/characterset.cpp
110
111
  - source/bzs/db/protocol/tdap/mysql/characterset.h
111
112
  - source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp
@@ -186,12 +187,14 @@ files:
186
187
  - source/bzs/test/tdclatl/bench_query_atl.js
187
188
  - source/bzs/test/tdclatl/bench_tdclatl.js
188
189
  - source/bzs/test/tdclatl/test_query_atl.js
190
+ - source/bzs/test/tdclatl/test_v3.js
189
191
  - source/bzs/test/tdclphp/bench.php
190
192
  - source/bzs/test/tdclphp/transactd_blob_Test.php
191
193
  - source/bzs/test/tdclphp/transactd_datetime_Test.php
192
194
  - source/bzs/test/tdclphp/transactd_kanjischema_Test.php
193
195
  - source/bzs/test/tdclphp/transactd_pool_Test.php
194
196
  - source/bzs/test/tdclphp/transactd_Test.php
197
+ - source/bzs/test/tdclphp/transactd_v3_Test.php
195
198
  - source/bzs/test/tdclrb/bench_tdclcpp.rb
196
199
  - source/bzs/test/tdclrb/prepare.rb
197
200
  - source/bzs/test/tdclrb/transactd_blob_spec.rb
@@ -199,6 +202,7 @@ files:
199
202
  - source/bzs/test/tdclrb/transactd_kanjischema_spec.rb
200
203
  - source/bzs/test/tdclrb/transactd_pool_spec.rb
201
204
  - source/bzs/test/tdclrb/transactd_spec.rb
205
+ - source/bzs/test/tdclrb/transactd_v3_spec.rb
202
206
  - source/bzs/test/transactdBench/query_bench.cpp
203
207
  - source/bzs/test/transactdBench/scaling_bench.cpp
204
208
  - source/bzs/test/transactdBench/transactdBench.cpp
@@ -207,7 +211,9 @@ files:
207
211
  - source/bzs/test/transactdBench/workerBase.h
208
212
  - source/bzs/test/transactdBench/workerMySQLImple.h
209
213
  - source/bzs/test/transactdBench/workerTransactdImple.h
210
- - source/bzs/test/trdclengn/test_blob.cpp
214
+ - source/bzs/test/trdclengn/testbase.h
215
+ - source/bzs/test/trdclengn/testField.h
216
+ - source/bzs/test/trdclengn/test_tdclcpp_v3.cpp
211
217
  - source/bzs/test/trdclengn/test_trdclengn.cpp
212
218
  - source/global/boost/sha1.hpp
213
219
  - source/global/ormsrcgen/confParam.h
@@ -225,6 +231,8 @@ files:
225
231
  - source/global/querystmts/querystmts.cpp
226
232
  - source/global/tdclatl/activeTable.cpp
227
233
  - source/global/tdclatl/activeTable.h
234
+ - source/global/tdclatl/Bitset.cpp
235
+ - source/global/tdclatl/Bitset.h
228
236
  - source/global/tdclatl/Bookmark.cpp
229
237
  - source/global/tdclatl/Bookmark.h
230
238
  - source/global/tdclatl/ConnectParams.cpp
@@ -319,17 +327,11 @@ files:
319
327
  - build/tdclcpp/CMakeLists.txt
320
328
  - build/tdclcpp/tdclcpp.rc
321
329
  - build/tdclcpp/tdclcpp_bc.cbproj
322
- - ./BUILD_UNIX-JA.md
323
- - ./BUILD_WIN-JA.md
324
330
  - ./CMakeLists.txt
325
331
  - ./COPYING
326
332
  - ./index_ja.html
327
333
  - ./README-JA.md
328
334
  - ./README.md
329
- - ./README_ORMSRCGEN-JA.md
330
- - ./README_ORMSRCGEN.md
331
- - ./RELEASE_NOTE-JA.md
332
- - ./RELEASE_NOTE.md
333
335
  - ./transactd.gemspec
334
336
  homepage: http://www.bizstation.jp/ja/transactd
335
337
  licenses:
data/BUILD_UNIX-JA.md DELETED
@@ -1,161 +0,0 @@
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.4.6
11
-
12
- ビルドにはCMake 2.8.12以上、gccバージョン4.4.6以上、boost 1.58(以上)が必須です。
13
- また、CentOS(GCC4.4以上 or clang LLVM 3.4)、Mac OS X 10.9(GCC4.4以上
14
- または Xcode5.1 LLVM 3.4)でも同様にビルドできます。
15
-
16
-
17
- 2. CMakeのインストール
18
- ------------------------------------------------------------
19
- [CMake](http://www.cmake.org)をインストールします。
20
- ```
21
- sudo aptitude install cmake
22
- ```
23
-
24
- CentOSでは
25
- ```
26
- sudo yum install cmake
27
- ```
28
-
29
- Mac OS Xでは、バイナリ配布をアプリケーションフォルダにインストールして
30
- `/Applications/CMake.app/Contents/bin`にパスを通します。
31
-
32
-
33
-
34
- 3. Boost C++ Libraries のダウンロードとビルド
35
- ------------------------------------------------------------
36
- [Boostのダウンロードページ](http://www.boost.org/users/download)から
37
- ソースコードをダウンロードし、解凍します。
38
- ```
39
- cd ~
40
- wget http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.gz/download -O boost_1_58_0.tar.gz
41
- tar xzf boost_1_58_0.tar.gz
42
- ```
43
-
44
- 以下のコマンドを実行しBoostのビルドを行います。
45
- ```
46
- cd ~/boost_1_58_0
47
- ./bootstrap.sh --with-libraries=chrono,filesystem,system,thread,timer,serialization,program_options
48
- ./b2 cxxflags=-fPIC
49
- ```
50
-
51
-
52
-
53
- 4. サーバープラグインとクライアントの両方をビルド
54
- ------------------------------------------------------------
55
- クライアントのみをビルドしたい場合はこのステップを飛ばしてください。
56
-
57
- ### 4-1 MySQLソースコードのダウンロード
58
- [MySQL Community Serverのダウンロードページ](http://dev.mysql.com/downloads/mysql)
59
- からソースコードをダウンロードし、解凍します。
60
- ```
61
- cd ~
62
- wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.25.tar.gz
63
- tar xzf mysql-5.6.25.tar.gz
64
- ```
65
-
66
-
67
- ### 4-2 Transactd Pluginソースコードのダウンロード
68
- [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
69
- からソースコードをダウンロードします。
70
-
71
- ダウンロードしたソースコードは、4-1で展開したMySQLソースコードの
72
- pluginディレクトリに展開します。
73
- ```
74
- cd ~
75
- wget http://www.bizstation.jp/al/transactd/download/transactd-2.4.2/transactd-source-2.4.2.zip
76
- #Mac OS Xでは
77
- #curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.4.2/transactd-source-2.4.2.zip
78
- unzip -q transactd-source-2.4.2.zip -d transactd
79
- mv transactd ~/mysql-5.6.25/plugin/
80
- ```
81
-
82
-
83
- ### 4-3 CMakeの実行
84
- MySQL 5.5/5.6 MariaDB 5.5/10.0の場合は以下のコマンドを実行します。オプションの意味はコマンドの後に記載しています。
85
- ```
86
- cd ~/mysql-5.6.25
87
- mkdir x64
88
- cd x64
89
- cmake .. -DBOOST_ROOT=~/boost_1_58_0 \
90
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.25 \
91
- -DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
92
- -DTRANSACTD_PREFIX=/usr/local/transactd
93
- ```
94
- MySQL 5.7の場合は以下のコマンドを実行します。
95
- ```
96
- cd ~/mysql-5.7.8-rc
97
- mkdir x64
98
- cd x64
99
- cmake .. -DBOOST_ROOT=~/boost_1_58_0 \
100
- -DWITH_BOOST=~/boost_1_58_0 \
101
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.8-rc \
102
- -DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
103
- -DTRANSACTD_PREFIX=/usr/local/transactd
104
- ```
105
- * `CMAKE_INSTALL_PREFIX` に指定するのは、これからビルドするMySQLのインストール先
106
- です。
107
- ***すでにインストール済みのMySQLがある場合に、それと同じパスを指定すると、上書
108
- きされてしまいます。上書きしたくないときは異なるパスを指定してください。***
109
- * `TRANSACTD_CLIENTS_PREFIX` に指定するのは、これからビルドするクライアントの
110
- インストール先です。デフォルトは`/usr/lib`です。
111
- * `TRANSACTD_PREFIX`に指定するのは、これからビルドするテストやベンチマークの
112
- プログラムのインストール先です。デフォルトは`/usr/local/transactd`です。
113
-
114
-
115
- ### 4-4 ビルド
116
- CMakeが完了するとMakefileが生成されているので、makeコマンドでビルド・インストール
117
- します。
118
- ```
119
- make
120
- make install
121
- ```
122
-
123
-
124
-
125
- 5. クライアントライブラリのみをビルド
126
- ------------------------------------------------------------
127
- ### 5-1 Transactd Pluginソースコードのダウンロード
128
- [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
129
- からソースコードをダウンロードします。
130
- ```
131
- cd ~
132
- wget http://www.bizstation.jp/al/transactd/download/transactd-2.4.2/transactd-source-2.4.2.zip
133
- #Mac OS Xでは
134
- #curl curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.4.2/transactd-source-2.4.2.zip
135
- unzip -q transactd-source-2.4.2.zip -d transactd
136
- ```
137
-
138
- ### 5-2 CMakeの実行
139
- 以下のコマンドを実行します。オプションの意味はコマンドの後に記載しています。
140
- ```
141
- cd ~/transactd
142
- mkdir x64
143
- cd x64
144
- cmake .. -DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON \
145
- -DBOOST_ROOT=~/boost_1_58_0 \
146
- -DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
147
- -DTRANSACTD_PREFIX=/usr/local/transactd
148
- ```
149
- * `TRANSACTD_CLIENTS_PREFIX` に指定するのは、これからビルドするクライアントの
150
- インストール先です。デフォルトは`/usr/lib`です。
151
- * `TRANSACTD_PREFIX`に指定するのは、これからビルドするテストやベンチマークの
152
- プログラムのインストール先です。デフォルトは`/usr/local/transactd`です。
153
-
154
-
155
- ### 5-3 ビルド
156
- CMakeが完了するとMakefileが生成されているので、makeコマンドでビルド・インストール
157
- します。
158
- ```
159
- make
160
- make install
161
- ```
data/BUILD_WIN-JA.md DELETED
@@ -1,326 +0,0 @@
1
- Transactd ビルドガイド for Windows
2
- ============================================================
3
-
4
- 1. コンパイラの準備
5
- ------------------------------------------------------------
6
- Transactd Plugin および Transactd クライアントは、Windows上のVisual Studio
7
- (32bit/64bit)でビルドできます。
8
- Transactd Pluginは、MySQLとともにビルドしますので、MySQLの要求するコンパイラに
9
- 合わせてビルドします。MySQL 5.7は、Visual Studio Express 2013、それ以外の
10
- MySQL/MariaDBのバージョンはVisual Studio Express 2010を使用してビルドします。
11
-
12
- クライアントはEmbarcaderoのコンパイラーC++ Builder XEシリーズでもビルドできます。
13
- [クライアントのみをビルド]の項を参照してください。)
14
-
15
-
16
- MySQL 5.7は以下のコンパイラをダウンロードしてインストールします。
17
- * [Visual Studio Express 2013 with Update 5 for Windows Desktop
18
- ダウンロードページ(Microsoft)]
19
- (http://go.microsoft.com/fwlink/?LinkId=532500&clcid=0x411)
20
-
21
- MySQL 5.5/5.6、MariaDB 5.5/10.0は以下のコンパイラとSDKをダウンロードし
22
- てインストールします。
23
-
24
- * [Visual Studio 2010 Express ダウンロードページ(Microsoft)](
25
- http://www.microsoft.com/visualstudio/jpn/downloads#d-2010-express)
26
- * [Windows SDK for Windows 7 ダウンロードページ(Microsoft Download Center)](
27
- http://www.microsoft.com/en-us/download/details.aspx?id=8442)
28
- (GRMSDKX_EN_DVD.iso をダウンロードし、マウントしてインストーラを実行)
29
-
30
-
31
- ### Visual Studioコマンドプロンプトの起動方法
32
- 後述する手順の中で、Visual Studioコマンドプロンプトを開くことがあります。
33
-
34
- MySQL 5.5/5.6、MariaDB 5.5/10.0は以下の手順でVisual Studioコマンドプロンプトを
35
- 開きます。
36
-
37
- [32Bit]
38
- * [スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2010 Express]-
39
- [Visual Studio コマンドプロンプト (2010)]を選択し起動します。
40
-
41
- [64Bit]
42
- *Visual Studio 2010 Express には、64bit版ビルドツール用の Visual Studioコマンド
43
- プロンプトが付属しません。代わりに、64bit用ビルドツールのパスを設定するための
44
- バッチファイルを作成し、そこから起動します。
45
- 以下の内容のファイルを作成し、`set64env.cmd`という名前でデスクトップに保存します。
46
- ```
47
- %comspec% /k "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
48
- ```
49
-
50
- MySQL 5.7は以下の手順でVisual Studioコマンドプロンプトを開きます。
51
- [32Bit]
52
- * [スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2013]-
53
- [Visual Studio ツール]-[VS2013 x86 Native Tools コマンド プロンプト]を選択し起動します。
54
-
55
- [64Bit]
56
- * [スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2013]-
57
- [Visual Studio ツール]-[VS2013 x64 Cross Tools コマンド プロンプト]を選択し起動します。
58
-
59
-
60
-
61
- 2. CMakeのダウンロードとインストール
62
- ------------------------------------------------------------
63
- [CMake ダウンロードページ](http://www.cmake.org/cmake/resources/software.html)か
64
- らWindows (Win32 Installer) cmake-2.8.12.2-win32-x86.exe をダウンロードし実行します。
65
-
66
- 途中、「Add CMake to the system PATH for all(or current) users」を選択し、
67
- cmakeの実行ファイルにパスが通るようにします。
68
-
69
-
70
-
71
- 3. Boost C++ Libraries のダウンロードとインストール
72
- ------------------------------------------------------------
73
- boostはソースからビルドします。
74
-
75
- ### ソースからのビルド
76
- [Boostのダウンロードページ](http://www.boost.org/users/download)からソースコードを
77
- ダウンロードし、解凍します。ここでは、以下のフォルダに保存したものとします。
78
- ```
79
- C:\boost\boost_1_58_0
80
- ```
81
-
82
- Visual Studioコマンドプロンプトを起動します。以下のコマンドを実行し、Boostのビル
83
- ドを行います。
84
- ```
85
- cd C:\boost\boost_1_58_0
86
- bootstrap.bat
87
-
88
- @REM Visula studio 2010 64bitの場合
89
- bjam.exe toolset=msvc-10.0 threading=multi address-model=64 architecture=x86 ^
90
- --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
91
- --with-serialization --with-program_options ^
92
- variant=debug,release link=static runtime-link=static,shared
93
-
94
- @REM Visula studio 2010 32bitの場合
95
- bjam.exe toolset=msvc-10.0 threading=multi architecture=x86 ^
96
- --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
97
- --with-serialization --with-program_options ^
98
- variant=debug,release link=static runtime-link=static,shared
99
-
100
- @REM Visula studio 2013 64bitの場合
101
- bjam.exe toolset=msvc-12.0 threading=multi address-model=64 architecture=x86 ^
102
- --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
103
- --with-serialization --with-program_options ^
104
- variant=debug,release link=static runtime-link=static,shared
105
-
106
- @REM Visula studio 2013 32bitの場合
107
- bjam.exe toolset=msvc-12.0 threading=multi architecture=x86 ^
108
- --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
109
- --with-serialization --with-program_options ^
110
- variant=debug,release link=static runtime-link=static,shared
111
-
112
- ```
113
-
114
- 4. サーバープラグインとクライアントの両方をビルド
115
- ------------------------------------------------------------
116
- クライアントのみをビルドしたい場合はこのステップを飛ばしてください。
117
-
118
- ### 4-1 MySQLソースコードのダウンロード
119
- [MySQL Community Serverのダウンロードページ](http://dev.mysql.com/downloads/mysql)
120
- からソースコードをダウンロードします。
121
- 「Select Platform」のプルダウンから「Source Code」を選択し、Windows ZIP形式の
122
- ファイルをダウンロードします。
123
-
124
- ダウンロードした圧縮ファイルを解凍します。ここでは、以下のフォルダに保存したも
125
- のとします。
126
- ```
127
- C:\Users\Public\Documents\mysql-5.6.25
128
- ```
129
-
130
-
131
- ### 4-2 Transactd Pluginソースコードのダウンロード
132
- [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
133
- からソースコードをダウンロードします。
134
- ソースを展開するフォルダ transactd をMySQLのソースツリー内のpluginフォルダに作成
135
- します。
136
- ```
137
- md C:\Users\Public\Documents\mysql-5.6.25\plugin\transactd
138
- ```
139
- ダウンロードしたソースコードを、上記で作成したtransactdフォルダに展開します。
140
- ここでは、以下のようなフォルダ構造になります。
141
- ```
142
- C:\Users\Public\Documents\mysql-5.6.25\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.25
155
- copy plugin\transactd\patch\transactd-win-mysql-5.6.25.patch *
156
- ```
157
-
158
- patchコマンドを使用できる環境(Cygwin、Git Bashなど)があるならば、以下の
159
- コマンドでパッチを適用します。
160
- ```
161
- cd C:\Users\Public\Documents\mysql-5.6.25
162
- patch -p0 -i transactd-win-mysql-5.6.25.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.25
175
- "C:\Program Files (x86)\patc254w\patch.exe" -p0 --binary -i transactd-win-mysql-5.6.25.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
- @REM Visual studio 2010 64Bitの場合
192
- cd C:\Users\Public\Documents\mysql-5.6.25
193
- md x64
194
- cd x64
195
- cmake .. -G "Visual Studio 10 Win64" ^
196
- -DBOOST_ROOT="C:\boost\boost_1_58_0"
197
-
198
- @REM Visual studio 2013 64Bitの場合
199
- cd C:\Users\Public\Documents\mysql-5.7.8
200
- md x64
201
- cd x64
202
- cmake .. -G "Visual Studio 12 Win64" ^
203
- -DWITH_BOOST="C:\boost\boost_1_58_0" ^
204
- -DBOOST_ROOT="C:\boost\boost_1_58_0"
205
-
206
- ```
207
-
208
-
209
- ### 4-5 ビルド
210
- CMakeが完了すると、以下のソリューションファイルが生成されています。
211
- ```
212
- C:\Users\Public\Documents\mysql-5.6.25\x64\MySQL.sln
213
- ```
214
- MySQL.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マネージャー]から構
215
- 成を「Release」に変更し、[ビルド]-[ソリューションのビルド]をクリックします。
216
-
217
- バイナリは以下のフォルダに出力されます。
218
- ```
219
- C:\Users\Public\Documents\mysql-5.6.25\x64\sql\lib\plugin
220
- C:\Users\Public\Documents\mysql-5.6.25\x64\plugin\transactd\bin
221
- C:\Users\Public\Documents\mysql-5.6.25\x64\plugin\transactd\lib
222
- ```
223
-
224
-
225
-
226
- 5. クライアントのみをビルド
227
- ------------------------------------------------------------
228
- ### 5-1 Transactd Pluginソースコードのダウンロード
229
- [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
230
- からソースコードをダウンロードします。
231
-
232
- ここでは、以下のフォルダに展開したとします。
233
- ```
234
- C:\Users\Public\Documents\transactd
235
- ```
236
- (EmbarcaderoのC++BuilderXEシリーズの場合は[5-4 C++BuilderXEシリーズでのビルド]に進んでください。)
237
-
238
-
239
- ### 5-2 CMakeの実行
240
- Visual Studioコマンドプロンプトを起動して、以下のコマンドを実行します。
241
- ```
242
- @REM Visual studio 2010 64Bitの場合
243
- cd C:\Users\Public\Documents\transactd
244
- md x64
245
- cd x64
246
- cmake .. -G "Visual Studio 10 Win64" ^
247
- -DBOOST_ROOT="C:\boost\boost_1_58_0" ^
248
- -DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON
249
-
250
- @REM Visual studio 2013 64Bitの場合
251
- cd C:\Users\Public\Documents\transactd
252
- md x64
253
- cd x64
254
- cmake .. -G "Visual Studio 12 Win64" ^
255
- -DBOOST_ROOT="C:\boost\boost_1_58_0" ^
256
- -DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON
257
-
258
- ```
259
-
260
-
261
- ### 5-3 ビルド
262
- CMakeが完了すると、以下のソリューションファイル (TransactdClinet.sln)が生成されています。
263
- (Version 2.4.0以前は tdcl.sln)
264
- ```
265
- C:\Users\Public\Documents\transactd\x64\TransactdClinet.sln
266
- ```
267
- TransactdClinet.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マネージャー]から構
268
- 成を「Release」に変更し、[ビルド]-[ソリューションのビルド]をクリックしま
269
- す。
270
-
271
- バイナリは以下のフォルダに出力されます。
272
- ```
273
- C:\Users\Public\Documents\transactd\x64\bin
274
- C:\Users\Public\Documents\transactd\x64\lib
275
- ```
276
-
277
-
278
- ### 5-4 C++BuilderXEシリーズでのビルド
279
- EmbarcaderoのC++BuilderXEシリーズの場合は
280
- ```
281
- C:\Users\Public\Documents\Build\TransactdClient_bcb.groupproj
282
- ```
283
- にてXE以降のコンパイラーでコンパイルできます。
284
-
285
- コンパイルにはコンパイラー付属のboostライブラリがインストールされている必要が
286
- あります。また、C++ Builderの[ツール]-[オプション]-[環境オプション]-[C++ オプション]
287
- -[パスとディレクトリ]の[システムインクルードパス]に
288
- ```
289
- 32Bitの場合 $(CG_BOOST_ROOT)
290
- 64Bitの場合 $(CG_64_BOOST_ROOT)
291
- ```
292
- を追加します。
293
- ビルド構成は、Unicode版/Ansi版 Release/Debug 32Bit/64Bit があります。
294
- 出力は、bin libフォルダに生成されます。64Bitの場合は常に動的RTLとリンクが必要です。
295
-
296
- 以下はバージョンごとの補足事項です。
297
-
298
- 32Bit(すべてのXEバージョン)の場合、boost_program_optionsがコンパイルされていないため、
299
- ```
300
- build\libboost_program_options-bcb1_39\libboost_program_options-bcb-mt-1_39.cbproj
301
- ```
302
- にて事前にlibboost_program_options-bcb-mt-1_39.libを生成してください。
303
- コンパイルの前に、下記のboostのソースの修正が必要です。
304
- ```
305
- ファイル:$(CG_BOOST_ROOT)\boost_1_39\libs\program_options\src\variables_map.cpp
306
- 71行目 :v = variable_value(); --> variable_value vr;v = vr;
307
- 115行目 :m[key] = variable_value(def, true); --> variable_value vr(def, true);m[key] = vr;
308
- ```
309
-
310
- XE2の場合、boost_serializationがコンパイルされていないため、
311
- ```
312
- build\libboost_serialization-bcb-1_39\libboost_boost_serialization-bcb-mt-1_39.cbproj
313
- ```
314
- にて事前にlibboost_serialization-bcb-mt-1_39.libを生成してください。
315
-
316
- XE4 64Bitの場合、コンパイラバージョンがXE3と同じであるため、tdclcppを使用する
317
- アプリケーションの自動リンクでtdclcpp_bc170_64x.libを探そうとします。しかしXE4で
318
- 生成されるdllはtdclcpp_bc180_64x.dllのため、libが見つからずリンクエラーが発生します。
319
- XE4 64Bitでtdclcppとtdclstmtをコンパイルした際には、libのファイル名の180部分を170に
320
- リネームし`tdclcpp_bc180_64x_xx.lib`と`tdclstmt_bc180_64x_xx.lib`にしてください。
321
-
322
- XE6 64Bitの場合、boost_threadのコンパイルが通らないためboostのソースを修正します。
323
- ```
324
- ファイル:$(CG_BOOST_ROOT)\boost_1_50\boost\asio\detail\impl\win_thread.ipp
325
- 52行目: ::QueueUserAPC(apc_function, thread_, 0); --> ::QueueUserAPC((PAPCFUNC)apc_function, thread_, 0);
326
- ```