transactd 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA +6 -6
- data/README +20 -18
- data/README-JA +19 -17
- data/RELEASE_NOTE +144 -0
- data/RELEASE_NOTE-JA +153 -0
- data/bin/common/tdclc_32_2_3.dll +0 -0
- data/bin/common/tdclc_64_2_3.dll +0 -0
- data/build/common/get_ruby_path.cmake +1 -1
- data/build/swig/ruby/ruby.swg +10 -9
- data/build/swig/ruby/tdclrb_wrap.cpp +1416 -561
- data/build/swig/tdcl.i +30 -3
- data/build/tdclc/tdclc.cbproj +1 -1
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/BUILDNUMBER.txt +1 -0
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclcpp/tdclcpp_bc.cbproj +1 -1
- data/build/tdclrb/BUILDNUMBER.txt +1 -0
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/engine/mysql/database.cpp +85 -41
- data/source/bzs/db/engine/mysql/database.h +35 -5
- data/source/bzs/db/engine/mysql/mysqlInternal.h +189 -37
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +21 -21
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +11 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +1 -1
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +11 -4
- data/source/bzs/db/protocol/tdap/client/client.h +30 -1
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +2 -1
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +35 -5
- data/source/bzs/db/protocol/tdap/client/field.cpp +100 -51
- data/source/bzs/db/protocol/tdap/client/field.h +7 -7
- data/source/bzs/db/protocol/tdap/client/filter.h +20 -6
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +337 -58
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +56 -13
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +83 -5
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +2 -2
- data/source/bzs/db/protocol/tdap/client/nsTable.h +2 -1
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +20 -6
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +7 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +8 -4
- data/source/bzs/db/protocol/tdap/client/request.h +11 -1
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +40 -2
- data/source/bzs/db/protocol/tdap/client/serializer.h +4 -2
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +1 -0
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +4 -4
- data/source/bzs/db/protocol/tdap/client/table.cpp +124 -71
- data/source/bzs/db/protocol/tdap/client/table.h +8 -7
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +33 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +1 -1
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +3 -1
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +20 -4
- data/source/bzs/db/protocol/tdap/mysql/request.h +14 -0
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +132 -69
- data/source/bzs/db/protocol/tdap/tdapRequest.h +18 -4
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +32 -22
- data/source/bzs/db/protocol/tdap/tdapSchema.h +69 -4
- data/source/bzs/db/protocol/tdap/tdapcapi.h +13 -5
- data/source/bzs/db/protocol/tdap/uri.h +4 -4
- data/source/bzs/db/transactd/transactd.cpp +6 -5
- data/source/bzs/env/crosscompile.cpp +17 -0
- data/source/bzs/env/crosscompile.h +4 -1
- data/source/bzs/env/mbcswchrLinux.cpp +3 -0
- data/source/bzs/example/deleteRecords.cpp +13 -0
- data/source/bzs/example/deleteRecords_c.cpp +8 -1
- data/source/bzs/example/insertRecords.cpp +14 -0
- data/source/bzs/example/insertRecords_c.cpp +8 -1
- data/source/bzs/example/ormap_c.cpp +8 -1
- data/source/bzs/example/queryData.cpp +92 -2
- data/source/bzs/example/queryData.h +3 -1
- data/source/bzs/example/readRecords.cpp +13 -0
- data/source/bzs/example/readRecords_c.cpp +8 -1
- data/source/bzs/example/updateRecords.cpp +13 -0
- data/source/bzs/example/updateRecords_c.cpp +8 -1
- data/source/bzs/example/update_with_transaction.cpp +13 -0
- data/source/bzs/example/update_with_transaction_c.cpp +8 -1
- data/source/bzs/example/useORMRecord.cpp +9 -3
- data/source/bzs/netsvc/client/iconnection.h +8 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +61 -16
- data/source/bzs/netsvc/client/tcpClient.h +430 -214
- data/source/bzs/netsvc/server/serverPipe.cpp +2 -2
- data/source/bzs/test/tdclphp/transactd_Test.php +115 -19
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +33 -5
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +21 -3
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +17 -3
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +26 -8
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +13 -6
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +14 -8
- data/source/bzs/test/tdclrb/transactd_spec.rb +117 -27
- data/source/bzs/test/transactdBench/scaling_bench.cpp +5 -5
- data/source/bzs/test/transactdBench/workerBase.h +2 -2
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +898 -51
- data/source/global/tdclatl/Database.cpp +12 -0
- data/source/global/tdclatl/Database.h +4 -0
- data/source/global/tdclatl/FieldDef.cpp +19 -0
- data/source/global/tdclatl/FieldDef.h +4 -0
- data/source/global/tdclatl/FieldDefs.cpp +14 -16
- data/source/global/tdclatl/GroupQuery.cpp +21 -16
- data/source/global/tdclatl/GroupQuery.h +1 -1
- data/source/global/tdclatl/QueryBase.cpp +14 -0
- data/source/global/tdclatl/QueryBase.h +2 -0
- data/source/global/tdclatl/Record.cpp +41 -10
- data/source/global/tdclatl/Record.h +1 -1
- data/source/global/tdclatl/Recordset.cpp +117 -31
- data/source/global/tdclatl/Recordset.h +6 -5
- data/source/global/tdclatl/Table.cpp +24 -28
- data/source/global/tdclatl/Table.h +3 -4
- data/source/global/tdclatl/activeTable.cpp +149 -103
- data/source/global/tdclatl/activeTable.h +1 -1
- data/source/global/tdclatl/tdclatl.idl +38 -18
- data/transactd.gemspec +1 -1
- metadata +8 -4
- data/bin/common/tdclc_32_2_2.dll +0 -0
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbef5b972fce0666898b9541ce16a6bf92ec4c0d
|
4
|
+
data.tar.gz: 5c70c91068cc565649a8e4d844ae90bb80dd46a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
79
|
-
unzip -q transactd-source-2.
|
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.
|
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.
|
127
|
-
unzip -q transactd-source-2.
|
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
|
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.
|
49
|
-
* Linux - transactd-linux-x86_64-2.
|
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.
|
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.
|
102
|
-
cd transactd-linux-x86_64-2.
|
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.
|
134
|
-
* Linux - transactd-client-linux-x86_64_with_sdk-2.
|
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.
|
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.
|
148
|
-
2. Select the root folder transactd-client-[platform]-with_sdk-2.
|
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.
|
151
|
-
This command adds "transactd-client-[platform]_with_sdk-2.
|
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.
|
182
|
-
cd transactd-client-linux-x86_64_with_sdk-2.
|
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.
|
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.
|
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.
|
49
|
-
* Linuxの場合 transactd-linux-x86_64-2.
|
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.
|
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.
|
101
|
-
cd transactd-linux-x86_64-2.
|
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.
|
133
|
-
* Linuxの場合 transactd-client-linux-x86_64_with_sdk-2.
|
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.
|
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.
|
147
|
-
2. ルートフォルダーのtransactd-client-[platform]_with_sdk-2.
|
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.
|
150
|
-
これによりtransactd-client-[platform]_with_sdk-2.
|
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.
|
180
|
-
cd transactd-client-linux-x86_64_with_sdk-2.
|
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.
|
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.
|
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.
|
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)
|
data/build/swig/ruby/ruby.swg
CHANGED
@@ -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;
|