transactd 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/BUILD_UNIX-JA +6 -6
  3. data/README +20 -18
  4. data/README-JA +19 -17
  5. data/RELEASE_NOTE +144 -0
  6. data/RELEASE_NOTE-JA +153 -0
  7. data/bin/common/tdclc_32_2_3.dll +0 -0
  8. data/bin/common/tdclc_64_2_3.dll +0 -0
  9. data/build/common/get_ruby_path.cmake +1 -1
  10. data/build/swig/ruby/ruby.swg +10 -9
  11. data/build/swig/ruby/tdclrb_wrap.cpp +1416 -561
  12. data/build/swig/tdcl.i +30 -3
  13. data/build/tdclc/tdclc.cbproj +1 -1
  14. data/build/tdclc/tdclc.rc +4 -4
  15. data/build/tdclcpp/BUILDNUMBER.txt +1 -0
  16. data/build/tdclcpp/tdclcpp.rc +4 -4
  17. data/build/tdclcpp/tdclcpp_bc.cbproj +1 -1
  18. data/build/tdclrb/BUILDNUMBER.txt +1 -0
  19. data/build/tdclrb/tdclrb.rc +4 -4
  20. data/source/bzs/db/engine/mysql/database.cpp +85 -41
  21. data/source/bzs/db/engine/mysql/database.h +35 -5
  22. data/source/bzs/db/engine/mysql/mysqlInternal.h +189 -37
  23. data/source/bzs/db/engine/mysql/mysqlThd.cpp +21 -21
  24. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +11 -0
  25. data/source/bzs/db/protocol/tdap/client/activeTable.h +1 -1
  26. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +11 -4
  27. data/source/bzs/db/protocol/tdap/client/client.h +30 -1
  28. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +2 -1
  29. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +35 -5
  30. data/source/bzs/db/protocol/tdap/client/field.cpp +100 -51
  31. data/source/bzs/db/protocol/tdap/client/field.h +7 -7
  32. data/source/bzs/db/protocol/tdap/client/filter.h +20 -6
  33. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +337 -58
  34. data/source/bzs/db/protocol/tdap/client/groupQuery.h +56 -13
  35. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +83 -5
  36. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
  37. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +2 -2
  38. data/source/bzs/db/protocol/tdap/client/nsTable.h +2 -1
  39. data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +20 -6
  40. data/source/bzs/db/protocol/tdap/client/recordset.cpp +7 -0
  41. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +8 -4
  42. data/source/bzs/db/protocol/tdap/client/request.h +11 -1
  43. data/source/bzs/db/protocol/tdap/client/serializer.cpp +40 -2
  44. data/source/bzs/db/protocol/tdap/client/serializer.h +4 -2
  45. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +1 -0
  46. data/source/bzs/db/protocol/tdap/client/stringConverter.h +4 -4
  47. data/source/bzs/db/protocol/tdap/client/table.cpp +124 -71
  48. data/source/bzs/db/protocol/tdap/client/table.h +8 -7
  49. data/source/bzs/db/protocol/tdap/client/trdormapi.h +33 -1
  50. data/source/bzs/db/protocol/tdap/fieldComp.h +1 -1
  51. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +3 -1
  52. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +20 -4
  53. data/source/bzs/db/protocol/tdap/mysql/request.h +14 -0
  54. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +132 -69
  55. data/source/bzs/db/protocol/tdap/tdapRequest.h +18 -4
  56. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +32 -22
  57. data/source/bzs/db/protocol/tdap/tdapSchema.h +69 -4
  58. data/source/bzs/db/protocol/tdap/tdapcapi.h +13 -5
  59. data/source/bzs/db/protocol/tdap/uri.h +4 -4
  60. data/source/bzs/db/transactd/transactd.cpp +6 -5
  61. data/source/bzs/env/crosscompile.cpp +17 -0
  62. data/source/bzs/env/crosscompile.h +4 -1
  63. data/source/bzs/env/mbcswchrLinux.cpp +3 -0
  64. data/source/bzs/example/deleteRecords.cpp +13 -0
  65. data/source/bzs/example/deleteRecords_c.cpp +8 -1
  66. data/source/bzs/example/insertRecords.cpp +14 -0
  67. data/source/bzs/example/insertRecords_c.cpp +8 -1
  68. data/source/bzs/example/ormap_c.cpp +8 -1
  69. data/source/bzs/example/queryData.cpp +92 -2
  70. data/source/bzs/example/queryData.h +3 -1
  71. data/source/bzs/example/readRecords.cpp +13 -0
  72. data/source/bzs/example/readRecords_c.cpp +8 -1
  73. data/source/bzs/example/updateRecords.cpp +13 -0
  74. data/source/bzs/example/updateRecords_c.cpp +8 -1
  75. data/source/bzs/example/update_with_transaction.cpp +13 -0
  76. data/source/bzs/example/update_with_transaction_c.cpp +8 -1
  77. data/source/bzs/example/useORMRecord.cpp +9 -3
  78. data/source/bzs/netsvc/client/iconnection.h +8 -0
  79. data/source/bzs/netsvc/client/tcpClient.cpp +61 -16
  80. data/source/bzs/netsvc/client/tcpClient.h +430 -214
  81. data/source/bzs/netsvc/server/serverPipe.cpp +2 -2
  82. data/source/bzs/test/tdclphp/transactd_Test.php +115 -19
  83. data/source/bzs/test/tdclphp/transactd_blob_Test.php +33 -5
  84. data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +21 -3
  85. data/source/bzs/test/tdclphp/transactd_pool_Test.php +17 -3
  86. data/source/bzs/test/tdclrb/transactd_blob_spec.rb +26 -8
  87. data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +13 -6
  88. data/source/bzs/test/tdclrb/transactd_pool_spec.rb +14 -8
  89. data/source/bzs/test/tdclrb/transactd_spec.rb +117 -27
  90. data/source/bzs/test/transactdBench/scaling_bench.cpp +5 -5
  91. data/source/bzs/test/transactdBench/workerBase.h +2 -2
  92. data/source/bzs/test/trdclengn/test_trdclengn.cpp +898 -51
  93. data/source/global/tdclatl/Database.cpp +12 -0
  94. data/source/global/tdclatl/Database.h +4 -0
  95. data/source/global/tdclatl/FieldDef.cpp +19 -0
  96. data/source/global/tdclatl/FieldDef.h +4 -0
  97. data/source/global/tdclatl/FieldDefs.cpp +14 -16
  98. data/source/global/tdclatl/GroupQuery.cpp +21 -16
  99. data/source/global/tdclatl/GroupQuery.h +1 -1
  100. data/source/global/tdclatl/QueryBase.cpp +14 -0
  101. data/source/global/tdclatl/QueryBase.h +2 -0
  102. data/source/global/tdclatl/Record.cpp +41 -10
  103. data/source/global/tdclatl/Record.h +1 -1
  104. data/source/global/tdclatl/Recordset.cpp +117 -31
  105. data/source/global/tdclatl/Recordset.h +6 -5
  106. data/source/global/tdclatl/Table.cpp +24 -28
  107. data/source/global/tdclatl/Table.h +3 -4
  108. data/source/global/tdclatl/activeTable.cpp +149 -103
  109. data/source/global/tdclatl/activeTable.h +1 -1
  110. data/source/global/tdclatl/tdclatl.idl +38 -18
  111. data/transactd.gemspec +1 -1
  112. metadata +8 -4
  113. data/bin/common/tdclc_32_2_2.dll +0 -0
  114. data/bin/common/tdclc_64_2_2.dll +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f8f875e6affe6c38b22c4bcdc01cd6de4d30f457
4
- data.tar.gz: 96eb711ba751d83179783a9c79038b85ea6543a2
3
+ metadata.gz: dbef5b972fce0666898b9541ce16a6bf92ec4c0d
4
+ data.tar.gz: 5c70c91068cc565649a8e4d844ae90bb80dd46a5
5
5
  SHA512:
6
- metadata.gz: feb5bf1f6d6a4b009e08565d8486227c205b00cd16cb38a162851817a11b47c9b9cf8dc22b4726c0cb4912fd78853a9d13a6e2567089406b77d9df65f5039308
7
- data.tar.gz: 81e05e8272892794243d260f950e5187a9142db99f6cf08cf5ce7ec36d72725d072d52e36d3393df1964e44d7e1401fd7501eefb7702f081fc7e9af60221d4e4
6
+ metadata.gz: 4a907d85b63951d37e7a1c7e55f67aa8d0e1f985b81382dc12cb881bfdc60f80d23c7bc0536aab26bef37625907d16a45ddb83f4d08f9dbdc8071a1448ce1e3d
7
+ data.tar.gz: a6a940f8d0e2de0427d1afc3a062714bd9f7d5f56d4d687cf20986bd7a9143794b0109b4493b3f0eba8718dbaf2c2dd89e9cd52f0ed7af5f7543b277d95f1683
data/BUILD_UNIX-JA CHANGED
@@ -73,10 +73,10 @@ tar xzf mysql-5.6.20.tar.gz
73
73
  pluginディレクトリに展開します。
74
74
  ```
75
75
  cd ~
76
- wget http://www.bizstation.jp/al/transactd/download/transactd-2.1.0/transactd-source-2.1.0.zip
76
+ wget http://www.bizstation.jp/al/transactd/download/transactd-2.3.0/transactd-source-2.3.0.zip
77
77
  #Mac OS Xでは
78
- #curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.1.0/transactd-source-2.1.0.zip
79
- unzip -q transactd-source-2.1.0.zip -d transactd
78
+ #curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.3.0/transactd-source-2.3.0.zip
79
+ unzip -q transactd-source-2.3.0.zip -d transactd
80
80
  mv transactd ~/mysql-5.6.20/plugin/
81
81
  ```
82
82
 
@@ -121,10 +121,10 @@ make install
121
121
  からソースコードをダウンロードします。
122
122
  ```
123
123
  cd ~
124
- wget http://www.bizstation.jp/al/transactd/download/transactd-2.1.0/transactd-source-2.1.0.zip
124
+ wget http://www.bizstation.jp/al/transactd/download/transactd-2.3.0/transactd-source-2.3.0.zip
125
125
  #Mac OS Xでは
126
- #curl curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.1.0/transactd-source-2.1.0.zip
127
- unzip -q transactd-source-2.1.0.zip -d transactd
126
+ #curl curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.3.0/transactd-source-2.3.0.zip
127
+ unzip -q transactd-source-2.3.0.zip -d transactd
128
128
  ```
129
129
 
130
130
  ### 5-2 CMakeの実行
data/README CHANGED
@@ -1,4 +1,4 @@
1
- Transactd release note
1
+ Transactd readme
2
2
  ===============================================================================
3
3
  Transactd is plugin which adds NoSQL access to MySQL/MariaDB.
4
4
 
@@ -27,7 +27,9 @@ Introduction
27
27
  Transactd consists of the server side plugin and the client side modules.
28
28
  The server side plugin is called "Transactd Plugin" and the client side module
29
29
  is called "Transactd clients".
30
-
30
+ Transactd has been constantly updated. This text has also been updated with the
31
+ latest information in this release. Please refer to the RELEASE_NOTE.md the
32
+ changes in this release.
31
33
 
32
34
 
33
35
  Preparation of Transactd Plugin binary
@@ -45,13 +47,13 @@ mysql>show variables like 'version';
45
47
  ```
46
48
  The names of file to download are formed under following rules:
47
49
 
48
- * Windows - transactd-[platform]-2.1.0_[mysql-version].zip
49
- * Linux - transactd-linux-x86_64-2.1.0_[mysql-version].tar.gz
50
+ * Windows - transactd-[platform]-2.3.0_[mysql-version].zip
51
+ * Linux - transactd-linux-x86_64-2.3.0_[mysql-version].tar.gz
50
52
 
51
53
  [platform] is win32 or win64, [mysql-version] is mysql-5.x.x or mariadb-5.5.x.
52
54
  For example, the URL for Linux-x86_64bit mysql-5.6.14 is as follows:
53
55
 
54
- http://www.bizstation.jp/al/transactd/download/transactd-2.1.0/transactd-linux-x86_64-2.1.0_mysql-5.6.14.tar.gz
56
+ http://www.bizstation.jp/al/transactd/download/transactd-2.3.0/transactd-linux-x86_64-2.3.0_mysql-5.6.14.tar.gz
55
57
 
56
58
  You also can download source code archive and build from it.
57
59
  In this case, the source code of MySQL/MariaDB is also required.
@@ -98,8 +100,8 @@ administrator authority.
98
100
 
99
101
  2. Extract the tar.gz file and move into it.
100
102
  ```
101
- tar zxf transactd-linux-x86_64-2.1.0_mysql-5.6.14.tar.gz
102
- cd transactd-linux-x86_64-2.1.0_mysql-5.6.14
103
+ tar zxf transactd-linux-x86_64-2.3.0_mysql-5.6.14.tar.gz
104
+ cd transactd-linux-x86_64-2.3.0_mysql-5.6.14
103
105
  ```
104
106
 
105
107
  3. Copy libtransactd.so to `[MySQL|MariaDB installed directory]/lib/plugin`.
@@ -130,13 +132,13 @@ The Transactd clients are required to access data through Transactd Plugin.
130
132
  Download the Transactd client binaries for your platform.
131
133
  The names of file to download are formed under following rules:
132
134
 
133
- * Windows - transactd-client-[platform]_with_sdk-2.1.0.zip
134
- * Linux - transactd-client-linux-x86_64_with_sdk-2.1.0.tar.gz
135
+ * Windows - transactd-client-[platform]_with_sdk-2.3.0.zip
136
+ * Linux - transactd-client-linux-x86_64_with_sdk-2.3.0.tar.gz
135
137
 
136
138
  [platform] is win32 or win64.
137
139
  For example, the URL for Linux-x86_64bit is as follows:
138
140
 
139
- http://www.bizstation.jp/al/transactd/download/transactd-client/transactd-client-linux-x86_64_with_sdk-2.1.0.tar.gz
141
+ http://www.bizstation.jp/al/transactd/download/transactd-client/transactd-client-linux-x86_64_with_sdk-2.3.0.tar.gz
140
142
 
141
143
 
142
144
 
@@ -144,11 +146,11 @@ Installing Transactd clients
144
146
  -------------------------------------------------------------------------------
145
147
 
146
148
  ### Installing on Windows
147
- 1. Open transactd-client-[platform]_with_sdk-2.1.0.zip from explorer.
148
- 2. Select the root folder transactd-client-[platform]-with_sdk-2.1.0 and
149
+ 1. Open transactd-client-[platform]_with_sdk-2.3.0.zip from explorer.
150
+ 2. Select the root folder transactd-client-[platform]-with_sdk-2.3.0 and
149
151
  copy to a folder of your choice.
150
- 3. Run the "install.cmd" in the transactd-client-[platform]_with_sdk-2.1.0 folder.
151
- This command adds "transactd-client-[platform]_with_sdk-2.1.0\bin" folder to
152
+ 3. Run the "install.cmd" in the transactd-client-[platform]_with_sdk-2.3.0 folder.
153
+ This command adds "transactd-client-[platform]_with_sdk-2.3.0\bin" folder to
152
154
  the system environment variables "PATH".
153
155
 
154
156
  C++ clients contains the following three files which is placed in bin folder.
@@ -178,8 +180,8 @@ There are binaries which is compiled with following 7 compilers:
178
180
 
179
181
  2. Extract the tar.gz file and move into it.
180
182
  ```
181
- tar zxf transactd-client-linux-x86_64_with_sdk-2.1.0.tar.gz
182
- cd transactd-client-linux-x86_64_with_sdk-2.1.0
183
+ tar zxf transactd-client-linux-x86_64_with_sdk-2.3.0.tar.gz
184
+ cd transactd-client-linux-x86_64_with_sdk-2.3.0
183
185
  ```
184
186
 
185
187
  3. Run the install script.
@@ -249,7 +251,7 @@ Test script executes the tests in following order:
249
251
  ### Executing on Windows
250
252
  1. Move to the client directory.
251
253
  ```
252
- cd transactd-client-[platform]_with_sdk-2.1.0
254
+ cd transactd-client-[platform]_with_sdk-2.3.0
253
255
  ```
254
256
 
255
257
  2. run test:
@@ -277,7 +279,7 @@ Test script executes the tests in following order:
277
279
  ### Executing on Linux
278
280
  1. Move to the client directory.
279
281
  ```
280
- cd transactd-client-linux-x86_64_with_sdk-2.1.0
282
+ cd transactd-client-linux-x86_64_with_sdk-2.3.0
281
283
  ```
282
284
 
283
285
  2. run test:
data/README-JA CHANGED
@@ -1,4 +1,4 @@
1
- Transactd リリースノート
1
+ Transactd Readme
2
2
  ===============================================================================
3
3
  Transactd PluginはMySQL/MariaDBにNoSQLアクセスを追加するプラグインです。
4
4
 
@@ -28,6 +28,8 @@ Transactdはプラグインとして動作するサーバー側モジュール
28
28
  るクライアント側モジュールから構成されます。
29
29
  以降はこれらを区別して、サーバー側をTransactd Plugin、クライアント側をTransactd
30
30
  クライアントと呼びます。
31
+ Transactdは、常に更新されています。このテキストもこのリリースの最新の情報に更新
32
+ されています。今回のリリースでの変更点は RELEASE_NOTE-JA.mdを参照してください。
31
33
 
32
34
 
33
35
 
@@ -45,14 +47,14 @@ show variables like 'version';
45
47
  ```
46
48
  ダウンロードするファイルは
47
49
 
48
- * Windowsの場合 transactd-[platform]-2.1.0_[mysql-version].zip
49
- * Linuxの場合 transactd-linux-x86_64-2.1.0_[mysql-version].tar.gz
50
+ * Windowsの場合 transactd-[platform]-2.3.0_[mysql-version].zip
51
+ * Linuxの場合 transactd-linux-x86_64-2.3.0_[mysql-version].tar.gz
50
52
 
51
53
  といった形式です。
52
54
  [platform]はwin32またはwin64、[mysql-version]はmysql-5.x.xまたはmariadb-5.5.xです。
53
55
  たとえば、Linux-x86_64bit mysql-5.6.14用の完全なURLは以下の通りです。
54
56
 
55
- http://www.bizstation.jp/al/transactd/download/transactd-2.1.0/transactd-linux-x86_64-2.1.0_mysql-5.6.14.tar.gz
57
+ http://www.bizstation.jp/al/transactd/download/transactd-2.3.0/transactd-linux-x86_64-2.3.0_mysql-5.6.14.tar.gz
56
58
 
57
59
  また、ソースをダウンロードしてビルドすることもできます。その場合は、
58
60
  MySQL/MariaDBのソースコードも必要です。ビルド方法はソースコード内の
@@ -97,8 +99,8 @@ MySQL/MariaDBのバイナリに変更を加えることなく、所定の位置
97
99
 
98
100
  2. ダウンロードしたtar.gzを解凍し、解凍したフォルダに移動します。
99
101
  ```
100
- tar zxf transactd-linux-x86_64-2.1.0_mysql-5.6.14.tar.gz
101
- cd transactd-linux-x86_64-2.1.0_mysql-5.6.14
102
+ tar zxf transactd-linux-x86_64-2.3.0_mysql-5.6.14.tar.gz
103
+ cd transactd-linux-x86_64-2.3.0_mysql-5.6.14
102
104
  ```
103
105
 
104
106
  3. [MySQL|MariaDBインストールフォルダ]/lib/pluginに、libtransactd.soをコピー
@@ -129,13 +131,13 @@ Transactd Pluginを介してデータにアクセスするにはTransactdクラ
129
131
  プラットフォームに合ったビルド済Transactdクライアントをダウンロードします。
130
132
  ダウンロードするファイルは
131
133
 
132
- * Windowsの場合 transactd-client-[platform]_with_sdk-2.1.0.zip
133
- * Linuxの場合 transactd-client-linux-x86_64_with_sdk-2.1.0.tar.gz
134
+ * Windowsの場合 transactd-client-[platform]_with_sdk-2.3.0.zip
135
+ * Linuxの場合 transactd-client-linux-x86_64_with_sdk-2.3.0.tar.gz
134
136
 
135
137
  といった形式です。[platform]はwin32またはwin64です。
136
138
  たとえば、LINUXの完全なURLは以下の通りです。
137
139
 
138
- http://www.bizstation.jp/al/transactd/download/transactd-client/transactd-client-linux-x86_64_with_sdk-2.1.0.tar.gz
140
+ http://www.bizstation.jp/al/transactd/download/transactd-client/transactd-client-linux-x86_64_with_sdk-2.3.0.tar.gz
139
141
 
140
142
 
141
143
 
@@ -143,11 +145,11 @@ Transactdクライアントのインストール
143
145
  -------------------------------------------------------------------------------
144
146
 
145
147
  ### Windowsでのインストール
146
- 1. ダウンロードしたtransactd-client-[platform]_with_sdk-2.1.0.zipを開きます。
147
- 2. ルートフォルダーのtransactd-client-[platform]_with_sdk-2.1.0ごと適当なフォルダに
148
+ 1. ダウンロードしたtransactd-client-[platform]_with_sdk-2.3.0.zipを開きます。
149
+ 2. ルートフォルダーのtransactd-client-[platform]_with_sdk-2.3.0ごと適当なフォルダに
148
150
  コピーします。
149
- 3. transactd-client-[platform]_with_sdk-2.1.0直下にあるinstall.cmdを実行します。
150
- これによりtransactd-client-[platform]_with_sdk-2.1.0\binフォルダをシステム環境変数
151
+ 3. transactd-client-[platform]_with_sdk-2.3.0直下にあるinstall.cmdを実行します。
152
+ これによりtransactd-client-[platform]_with_sdk-2.3.0\binフォルダをシステム環境変数
151
153
  PATHに追加します。
152
154
 
153
155
  C++クライアントは binフォルダに配置された以下の3つのDLLからなります。
@@ -176,8 +178,8 @@ C++クライアントは binフォルダに配置された以下の3つのDLL
176
178
 
177
179
  2. ダウンロードしたtar.gzを解凍し、解凍したフォルダに移動します。
178
180
  ```
179
- tar zxf transactd-client-linux-x86_64_with_sdk-2.1.0.tar.gz
180
- cd transactd-client-linux-x86_64_with_sdk-2.1.0
181
+ tar zxf transactd-client-linux-x86_64_with_sdk-2.3.0.tar.gz
182
+ cd transactd-client-linux-x86_64_with_sdk-2.3.0
181
183
  ```
182
184
 
183
185
  3. インストールスクリプトを実行します。
@@ -252,7 +254,7 @@ Transactd Pluginとクライアントのインストールが済んだら、テ
252
254
  ### Windowsでの起動
253
255
  1. クライアントのインストールで解凍したフォルダに移動します
254
256
  ```
255
- cd transactd-client-[platform]_with_sdk-2.1.0
257
+ cd transactd-client-[platform]_with_sdk-2.3.0
256
258
  ```
257
259
 
258
260
  2. テストの起動
@@ -279,7 +281,7 @@ Transactd Pluginとクライアントのインストールが済んだら、テ
279
281
  ### Linuxでの起動
280
282
  1. クライアントのインストールで解凍したフォルダに移動します
281
283
  ```
282
- cd transactd-client-linux-x86_64_with_sdk-2.1.0
284
+ cd transactd-client-linux-x86_64_with_sdk-2.3.0
283
285
  ```
284
286
 
285
287
  2. テストの起動
data/RELEASE_NOTE ADDED
@@ -0,0 +1,144 @@
1
+ Release note
2
+
3
+ ================================================================================
4
+ Version 2.3.0 2015-03-20
5
+ ================================================================================
6
+
7
+ Upgrade Notes
8
+ --------------------------------------------------------------------------------
9
+ * Compatibility between server plugin and clients.
10
+ You have to upgrade both of the server plugin and client libraries.
11
+ The protocol that is used communicating between server and client were changed
12
+ for database::reconnect() method. This version of server plugin and clients
13
+ has no compatibility with the past versions of them.
14
+ If you access to 2.2 or earlier version of server plugin with this version of
15
+ clients, error code SERVER_CLIENT_NOT_COMPATIBLE (3003) will be returned.
16
+
17
+ * Some methods were moved.
18
+ table::usePadChar() and table:: trimPadChar() were moved to fielddef structure.
19
+ The setter methods of them were put together to setPadCharSettings(bool set,
20
+ bool trim). By this change, these values can be saved to the schema.
21
+ This affects to the field types ft_string, ft_wstring, ft_mychar and ft_mywchar.
22
+ Other field types are not affected.
23
+ The default value of table::usePadChar() and trimPadChar() are true. If you did
24
+ not change this value, there is no changes on program behavior.
25
+ If you changed the values, you have to fix program code.
26
+
27
+ For example, the code `tb->setUsePadChar(false);` has to be modified like this:
28
+ ```
29
+ for (int i = 0 ; i < tb->tableDef()->fieldCount ; ++i)
30
+ {
31
+ fielddef* fd = const_cast<fielddef*>(&tb->tableDef()->fieldDefs[i]);
32
+ fd->setPadCharSettings(false/*set*/, true/*trim*/);
33
+ }
34
+ ```
35
+ Note: Changes in this code are volatile, and not saved on schema. Add updating
36
+ schema code if you need.
37
+
38
+ * openTable in transaction.
39
+ The error code STATUS_ALREADY_INTRANSACTION is added. If openTable is called
40
+ in transaction, and binary log is enable, the server returns this error.
41
+ The binary log was supported until now, but there was the problem that if
42
+ openTable is called in transaction the binlog map will not be generated and
43
+ replication does not go well. So that, we modified the server plugin to return
44
+ error if openTable is called in transaction with enable binary log. There is
45
+ no changes if binary log is disabled.
46
+
47
+ New Features
48
+ --------------------------------------------------------------------------------
49
+ * Add bias parameter ROW_LOCK_S to seek and step read operations in
50
+ MULTILOCK_READ_COMMITED transaction.
51
+ By this, you can control lock in more detail with using shared lock.
52
+
53
+ * Add limit option to finish searching to table query with queryBase.
54
+ In the past, the value of limit option meant that max number of records which
55
+ will be got with one operation. The clients automatically called read operation
56
+ many times until the other finish conditions are met. In effect, limit was the
57
+ option that save receive buffer.
58
+ If you set true to queryBase::stopAtLimit(), the limit option behaves as finish
59
+ condition. The default value is false, and it is same as the past behavior.
60
+
61
+ * Add findContinue to enum eFindType for table::find(eFindType type).
62
+ If the last find operation has been finished because of the filter conditions
63
+ maxRecord or rejectCount, it is able to continue searching from next record
64
+ with findContinue.
65
+ To check the cause of finishing the last operation, table::statReasonOfFind()
66
+ and table::lastFindDirection() which return more detail status were added.
67
+
68
+ * Add ActiveTable::readMore(). It is same as above findContinue for ActiveTable.
69
+
70
+ * Add first and last method to recordset grouping functions. These methods
71
+ return first or last record in each group. Strings and numbers are supported.
72
+ These methods are useful when use non-normalized field values to avoid JOIN
73
+ for some reason.
74
+
75
+ * Add case-insensitive comparison operator to filter and query.
76
+ To compare strings without case sensitivity, add "i" after the normal
77
+ comparison operators.
78
+
79
+ * Case-sensitive: =, >, < , >=, <=, <>
80
+ * Case-insensitive: =i, >i, <i, >=i, <=i, <>i
81
+
82
+ When the comparison field is same as the index field which is using, setting
83
+ case sensitivity same as field definition makes performance better. If case
84
+ sensitivities are different between them, optimization with the indexes is
85
+ disable and full scan will be needed.
86
+
87
+ * Add database::reconnect() which is used to reconnect to database. You can
88
+ reconnect to database with this method even if server process has been
89
+ restarted unexpectedly.
90
+ The reconnection contains reopening tables, recovering cursor positions and
91
+ record locks. Transactions which have not been commited yet will not be
92
+ recovered. You have to run it again.
93
+ There is no way to change the reconnect address at present, but tdclc will
94
+ support it in the future.
95
+
96
+ * Add field types ft_wstring, ft_wzstring, ft_myvarbinary and ft_mywvarbinary
97
+ to fielddef::lenByCharnum(). You can specify field length with number of
98
+ characters.
99
+
100
+ * Add connectTimeout and netTimeout to client setting file (transactd.ini or
101
+ transactd.cnf). The default values are following:
102
+
103
+ connectTimeout = 20
104
+ netTimeout = 180
105
+
106
+ connectTimeout means timeout seconds for connection. netTimeout means timeout
107
+ seconds for waiting response from server in a operation.
108
+
109
+ * The implementation of TCP reading and writing methods in tdclc were changed to
110
+ OS native from boost library. It makes performance better and enable timeout
111
+ settings.
112
+
113
+ Other Modifications
114
+ --------------------------------------------------------------------------------
115
+ * Fix a bug that filter works wrong for fixed-length string fields.
116
+
117
+ * Fix a bug that sortFields and sortField are not in PHP and Ruby interface.
118
+
119
+ * Fix a bug that Recordset::UnionRecordset() is not in ActiveX interface.
120
+
121
+ * Fix a bug that the server will crash when set invalid key number to table::find
122
+ operations.
123
+
124
+ * Fix a bug that when the table is locked by LOCK TABLES SQL command, after a
125
+ transaction with writing failed, an unlock row error will occur in retrying.
126
+
127
+ * Fix a access violation that occurs in releasing database object in ActiveX
128
+ interface depending on table releasing order.
129
+
130
+ * Fix a problem that "localhost" alias cannot be used without DNS.
131
+
132
+ * Fix a bug that i64() method always returns 0 on ft_float field.
133
+
134
+ * Fix a bug that field::getFVbin() and table::getFVbin() methods can not read
135
+ values on ft_string and ft_wstring fields.
136
+
137
+ * Fix a bug that the default values of size of shared memory on Windows pipe
138
+ connection are different between server and clients.
139
+
140
+ * Fix a bug that a invalid pointer will be returned when activeTable and query
141
+ reads ft_text or ft_blob fields without "select fields" filter.
142
+
143
+ * The source codes of Transactd plugin supports MySQL 5.7.6.
144
+ (Build-scripts do not support it yet. Have to fix cmake scripts to build.)
data/RELEASE_NOTE-JA ADDED
@@ -0,0 +1,153 @@
1
+ リリースノート
2
+
3
+ ================================================================================
4
+ Version 2.3.0 2015/03/20
5
+ ================================================================================
6
+
7
+ バージョンアップ上の注意点
8
+ --------------------------------------------------------------------------------
9
+ ・サーバー クライアントのバージョン互換性
10
+ バージョンアップはサーバーとクライアントともに行う必要があります。
11
+ database::reconnect()の実装のために、クラインアント サーバー間の通信プロトコ
12
+ ルが変更されました。このため、このバージョンのプラグインとクライアントは過去
13
+ のバージョンと互換性がありません。
14
+ 新しいクライアントでバージョン2.2以前のサーバーにアクセスすると、
15
+ SERVER_CLIENT_NOT_COMPATIBLE (3003) エラーが返ります。
16
+
17
+ ・メソッドの移動
18
+ table::usePadChar()とtable::trimPadChar()関数はfielddef構造体に移動しました。
19
+ また、値の設定は、それぞれ別にあった関数が、
20
+ setPadCharSettings(bool set, bool trim)にまとめられました。これによって、これ
21
+ らの値をスキーマに保存できるようになりました。
22
+ この変更は、フィールド型がft_string ft_wstring ft_mychar ft_mywcharにのみ影響
23
+ があります。それ以外の型には影響ありません。
24
+ table::usePadChar()とtrimPadChar()の返す値はどちらもデフォルトでtrueでしたが
25
+ この設定をコードで変更していなければ動作に変更はありません。
26
+ 変更していた場合は、そのテーブルの上記フィールド型を持つフィールドに対して設定
27
+ を行うようコードの修正が必要です。
28
+
29
+ たとえば、tb->setUsePadChar(false)としていた場合、
30
+ ```
31
+ for (int i = 0 ; i < tb->tableDef()->fieldCount ; ++i)
32
+ {
33
+ fielddef* fd = const_cast<fielddef*>(&tb->tableDef()->fieldDefs[i]);
34
+ fd->setPadCharSettings(false/*set*/, true/*trim*/);
35
+ }
36
+ ```
37
+ とします。
38
+ ただし、このコードは、揮発性でスキーマには保存されていません。必要に応じて保存する
39
+ コードを追加してください。
40
+
41
+ ・トランザクション中のテーブルオープン
42
+ バイナリーログが有効で、トランザクション中にテーブルをオープンすると
43
+ STATUS_ALREADY_INTRANSACTIONエラーを返すようになりました。
44
+ 従来よりバイナリーログはサポートされていましたが、トランザクション中にテーブル
45
+ をオープンすると、そのテーブルに対するbinlogマップが生成されず、正しくレプリケ
46
+ ーションできない問題がありました。そのため、バイナリーログが有効な場合、トラン
47
+ ザクション中のテーブルオープンはエラーになるようにしました。
48
+ バイナリーログが無効な場合は、動作に変更はありません。
49
+
50
+ 新機能
51
+ --------------------------------------------------------------------------------
52
+ ・MULTILOCK_READ_COMMITEDのトランザクション中のseek step系の読み取りオペレーショ
53
+ ンのbiasパラメータにROW_LOCK_Sを指定可能にしました。
54
+ これにより、MULTILOCK_READ_COMMITEDでも、よりロック競合の少ない共有ロックを使用
55
+ した細かなロック制御が可能です。
56
+
57
+ ・queryBaseクラスを使ったテーブルクエリーで、limitで設定した値で検索を終了する設
58
+ 定を可能にしました。
59
+ 従来、limitの値は一回のオペレーションで取得するレコードの最大値を示し、クライア
60
+ ント側でlimit以外の終了条件を満たすまで自動で繰り返し取得オペレーションが行われ
61
+ ていました。事実上limitは受信データバッファを節約するためだけのものでした。
62
+ 新しく加えた、queryBase::stopAtLimit()関数にtrueをセットすることで、マッチした
63
+ レコードがlimitに達するとそこで検索を終了できます。
64
+ デフォルトのfalseの場合の動作は従来と同様です。
65
+
66
+ ・table::find(eFindType type)で使用されるeFindTypeにfindContinueが追加されました。
67
+ 直前のfind系オペレーションが、フィルター条件のmaxRecordまたはrejectCount
68
+ によって終了した場合、findContinueを指定すると、その続きから同じ条件で検索を続
69
+ けることができます。また、直前のfind系オペレーションがそのような条件で終了した
70
+ かどうかを調べるために、より詳しいステータスを示すtable::statReasonOfFind()と
71
+ table::lastFindDirection()メソッドが追加されました。
72
+
73
+ ・ActiveTableにreadMore()メソッドが追加されました。これは上記、findContinueの
74
+ ActiveTable実装です。
75
+
76
+ ・recordsetのグルーピング関数に、firstとlast関数が追加されました。これらは、各グ
77
+ ループの最初または最後のレコードのフィールド値をそのまま返します。
78
+ 値は、数値と文字列の双方をサポートします。
79
+ これを使用すると非正規化されたフィールドの値を用いてidなどに対する説明のフィー
80
+ ルドの値をそのまま利用し、JOINを不要にしたりすることができます。
81
+
82
+ ・フィルターとクエリーの比較演算子に、大文字/小文字を区別しない
83
+ (case-insensitive)比較の指定ができるようになりました。
84
+ 文字列において大文字/小文字の区別なしに比較するには、従来の6種類の演算子
85
+ ( =, >, < , >= ,<= ,<> ) の後ろにi(アイ)を付加します。
86
+ ( =i, >i, <i , >=i ,<=i ,<>i )
87
+
88
+ テーブルのフィルターにおいて、比較対象フィールドが、使用するインデックスのフィ
89
+ ールドの時は、大文字/小文字区別の指定をテーブル作成時のフィールド定義と同じに
90
+ するとパフォーマンスが良くなります。異なるとインデックスによる読み取り範囲の最
91
+ 適化が行えずフルスキャンを行う必要が出てきます。
92
+
93
+ ・ネットワーク接続の再接続コマンド、database::reconnect()が追加されました。不意
94
+ にサーバープロセスが再起動された場合でも、このメソッドによって 再接続が可能に
95
+ なりました。再接続は、開いていたテーブルの再オープン、カーソル位置の復元、レ
96
+ コードロックの復元が行われます。ネットワーク接続の切断時に実行中だったトランザ
97
+ クションは復元されません。再度実行する必要があります。
98
+ 現在のところ、再接続先の変更は行えません。将来的にはtdclcライブラリ内で接続先の
99
+ 変更がサポートされる予定です。
100
+
101
+ ・fielddef::lenByCharnum()メソッドは従来、ft_mychar ft_myvarcharのみのサポートで
102
+ したが、加えてft_wstring ft_wzstring ft_myvarbinary ft_mywvarbinaryもサポート
103
+ されました。これらのフィールド型の場合も文字数で長さを指定できます。
104
+
105
+ ・クライアントの設定ファイル(transactd.iniまたはtransactd.cnf)で、connectTimeout
106
+ とnetTimeoutが追加されました。何も設定しない場合のデフォルト値はそれぞれ以下の
107
+ 通りです。
108
+
109
+ connectTimeout = 20
110
+ netTimeout = 180
111
+
112
+ connectTimeoutは接続時のタイムアウト(秒)です。netTimeoutは、オペレーション実行
113
+ 時に、サーバーから応答が返るまでのタイムアウト(秒)です。
114
+
115
+ ・tdclc内のTCP read writeの実装がboostからOS nativeに変更されました。これによりパ
116
+ フォーマンスとタイムアウトの設定を可能にしました。
117
+
118
+ その他の修正と変更点
119
+ --------------------------------------------------------------------------------
120
+ ・固定長文字列型フィールドのフィルタリングが正しく行われない場合がある不具合を修
121
+ 正しました。
122
+
123
+ ・PHPとRubyインタフェースにsortFields sortFieldクラスが欠落していた不具合を修正
124
+ しました。
125
+
126
+ ・Active XインターフェースにRecordset::UnionRecordset()メソッドが欠落していた不
127
+ 具合を修正しました。
128
+
129
+ ・table::find系オペレーション時に不正なキー番号をセットすると、サーバーがクラッ
130
+ シュする不具合を修正しました。
131
+
132
+ ・テーブルがSQLコマンドLOCK TABLESでロックされた状態で、書き込みトランザクション
133
+ が失敗したあと、再トライ時にunlock rowでエラーが発生する不具合を修正しました。
134
+
135
+ ・ActiveXインターフェースのdatabaseオブジェクトの解放で、テーブルの解放順との順序
136
+ 関係によって、access violationが発生することがある不具合を修正しました。
137
+
138
+ ・DNSが使用できないクライアントにおいて、接続先の指定にlocalhostが使用できない問
139
+ 題を修正しました。
140
+
141
+ ・ft_float型のフィールドでi64()による読み取りが常にゼロを返す不具合を修正しました。
142
+
143
+ ・ft_string型とft_wstring型のフィールドでfield::getFVbin()とtable::getFVbin()に
144
+ よる値の読み取りができない不具合を修正しました。
145
+
146
+ ・Windowsのパイプ接続時の共有メモリサイズのデフォルト値が、サーバーとクライアント
147
+ で異なる不具合を修正しました。
148
+
149
+ ・activeTableクエリーによるft_textとft_blobフィールドの読み取りで、フィールドの
150
+ 絞り込みが無い場合、不正なポインターを返す不具合を修正しました。
151
+
152
+ ・Transactdプラグインのソースコードを MySQL 5.7.6対応にしました。cmakeは現在未対応
153
+ です。ビルドにはcmakeの修正が必要です。
Binary file
Binary file
@@ -43,7 +43,7 @@ macro(get_ruby_path RUBY_EXE_PATH)
43
43
  OUTPUT_VARIABLE RUBY_VERSION)
44
44
  string(STRIP "${RUBY_VERSION}" RUBY_VERSION)
45
45
  # RUBY_VERSION_GEM
46
- execute_process(COMMAND ${tmp_ruby} -e "puts RUBY_VERSION.match(/\\d+\\.\\d+/)[0]"
46
+ execute_process(COMMAND ${tmp_ruby} -e "puts RUBY_VERSION.sub(/(\\d+\\.\\d+)\\..*/, '\\1')"
47
47
  OUTPUT_VARIABLE RUBY_VERSION_FOR_GEM)
48
48
  string(STRIP "${RUBY_VERSION_FOR_GEM}" RUBY_VERSION_FOR_GEM)
49
49
  # excec ruby command (rbconfig)
@@ -148,11 +148,18 @@ static void mark_activeTable(void* ptr) {
148
148
  %ignore bzs::db::protocol::tdap::client::fielddefs::operator[] (const std::_tstring&) const;
149
149
  %rename(__getitem__) bzs::db::protocol::tdap::client::fielddefs::operator[] (int index) const;
150
150
  %rename(__getitem__) bzs::db::protocol::tdap::client::fielddefs::operator[] (const _TCHAR* name) const;
151
+ // getBin typemap
152
+ %typemap(in, numinputs=0) (uint_td & size) (uint_td temp) {
153
+ $1 = &temp;
154
+ }
155
+ %typemap(argout) (uint_td & size) {
156
+ $result = rb_str_new((const char *)result, *$1);
157
+ }
151
158
 
152
159
  // * bzs/db/protocol/tdap/client/fields.h *
153
- %ignore bzs::db::protocol::tdap::client::fieldsBase::operator[] (short index) const;
154
- %ignore bzs::db::protocol::tdap::client::fieldsBase::operator[] (const _TCHAR* name) const;
155
160
  %ignore bzs::db::protocol::tdap::client::fieldsBase::operator[] (const std::_tstring&) const;
161
+ %rename(getField) bzs::db::protocol::tdap::client::fieldsBase::operator[] (short index) const;
162
+ %rename(getField) bzs::db::protocol::tdap::client::fieldsBase::operator[] (const _TCHAR* name) const;
156
163
  // typemap and expand for get field value.
157
164
  %typemap(argout) (short fieldsBase_getitem_index) {
158
165
  bzs::db::protocol::tdap::client::field f = arg1->operator[]($1);
@@ -180,13 +187,6 @@ static void mark_activeTable(void* ptr) {
180
187
  tmp_d = f.d();
181
188
  $result = SWIG_From_double(static_cast< double >(tmp_d));
182
189
  break;
183
- /*
184
- case ft_string:
185
- case ft_myvarbinary:
186
- case ft_mywvarbinary:
187
- case ft_myblob:
188
- return f.getBin();
189
- */
190
190
  default:
191
191
  tmp_c_str = f.c_str();
192
192
  $result = rb_enc_str_new(tmp_c_str, strlen(tmp_c_str), rb_enc_find_from_codepage(CP_UTF8));
@@ -203,6 +203,7 @@ static void mark_activeTable(void* ptr) {
203
203
 
204
204
  // * bzs/db/protocol/tdap/client/groupQuery.h *
205
205
  %rename(__getitem__) bzs::db::protocol::tdap::client::fieldNames::operator[] (int index) const;
206
+ %rename(__getitem__) bzs::db::protocol::tdap::client::sortFields::operator[];
206
207
 
207
208
  // * bzs/db/protocol/tdap/client/memRecord.h *
208
209
  %rename(__setitem__) bzs::db::protocol::tdap::client::field::setBin;