transactd 2.4.0 → 2.4.2
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.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA.md +37 -29
- data/BUILD_WIN-JA.md +96 -69
- data/CMakeLists.txt +7 -17
- data/README-JA.md +22 -17
- data/README.md +23 -16
- data/{RELEASE_NOTE-JA → RELEASE_NOTE-JA.md} +163 -98
- data/{RELEASE_NOTE → RELEASE_NOTE.md} +165 -99
- data/bin/common/tdclc_32_2_4.dll +0 -0
- data/bin/common/tdclc_64_2_4.dll +0 -0
- data/build/common/get_boost_libs.cmake +2 -0
- data/build/common/system.cmake +6 -4
- data/build/common/transactd_cl_output.cmake +14 -2
- data/build/common/transactd_common.cmake +34 -12
- data/build/tdclc/CMakeLists.txt +10 -2
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/CMakeLists.txt +34 -9
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclrb/CMakeLists.txt +24 -15
- data/build/tdclrb/gem/Makefile.win32-VS +2 -2
- data/build/tdclrb/gem_output.cmake +27 -10
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/engine/mysql/database.cpp +18 -18
- data/source/bzs/db/engine/mysql/database.h +4 -4
- data/source/bzs/db/engine/mysql/dbManager.cpp +1 -2
- data/source/bzs/db/engine/mysql/mysqlInternal.h +23 -2
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +3 -2
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +26 -12
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +3 -3
- data/source/bzs/db/protocol/tdap/client/field.cpp +74 -23
- data/source/bzs/db/protocol/tdap/client/field.h +3 -1
- data/source/bzs/db/protocol/tdap/client/filter.h +4 -4
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +3 -1
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +16 -9
- data/source/bzs/db/protocol/tdap/client/memRecord.h +2 -2
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +3 -2
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +12 -0
- data/source/bzs/db/protocol/tdap/client/serializer.h +1 -0
- data/source/bzs/db/protocol/tdap/client/table.cpp +60 -109
- data/source/bzs/db/protocol/tdap/client/table.h +2 -1
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +13 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +1 -1
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +8 -8
- data/source/bzs/db/protocol/tdap/fieldComp.h +6 -0
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +147 -46
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +78 -0
- data/source/bzs/db/protocol/tdap/tdapSchema.h +6 -1
- data/source/bzs/db/protocol/tdap/tdapcapi.h +3 -3
- data/source/bzs/db/transactd/transactd.cpp +1 -1
- data/source/bzs/env/compiler.h +12 -0
- data/source/bzs/env/tcharMinGW.h +1 -0
- data/source/bzs/netsvc/client/tcpClient.h +4 -2
- data/source/bzs/netsvc/server/serverCpt.cpp +1 -0
- data/source/bzs/netsvc/server/serverTpool.cpp +3 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +2 -2
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +6 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +2 -2
- data/source/global/ormsrcgen/srcgen.cpp +1 -2
- data/source/linux/tchar.h +1 -0
- metadata +4 -4
data/README.md
CHANGED
@@ -47,13 +47,13 @@ mysql>show variables like 'version';
|
|
47
47
|
```
|
48
48
|
The names of file to download are formed under following rules:
|
49
49
|
|
50
|
-
* Windows - transactd-[platform]-2.4.
|
51
|
-
* Linux - transactd-linux-x86_64-2.4.
|
50
|
+
* Windows - transactd-[platform]-2.4.2_[mysql-version].zip
|
51
|
+
* Linux - transactd-linux-x86_64-2.4.2_[mysql-version].tar.gz
|
52
52
|
|
53
53
|
[platform] is win32 or win64, [mysql-version] is mysql-5.x.x or mariadb-5.5.x.
|
54
54
|
For example, the URL for Linux-x86_64bit mysql-5.6.14 is as follows:
|
55
55
|
|
56
|
-
http://www.bizstation.jp/al/transactd/download/transactd-2.4.
|
56
|
+
http://www.bizstation.jp/al/transactd/download/transactd-2.4.2/transactd-linux-x86_64-2.4.2_mysql-5.6.14.tar.gz
|
57
57
|
|
58
58
|
You also can download source code archive and build from it.
|
59
59
|
In this case, the source code of MySQL/MariaDB is also required.
|
@@ -100,8 +100,8 @@ administrator authority.
|
|
100
100
|
|
101
101
|
2. Extract the tar.gz file and move into it.
|
102
102
|
```
|
103
|
-
tar zxf transactd-linux-x86_64-2.4.
|
104
|
-
cd transactd-linux-x86_64-2.4.
|
103
|
+
tar zxf transactd-linux-x86_64-2.4.2_mysql-5.6.14.tar.gz
|
104
|
+
cd transactd-linux-x86_64-2.4.2_mysql-5.6.14
|
105
105
|
```
|
106
106
|
|
107
107
|
3. Copy libtransactd.so to `[MySQL|MariaDB installed directory]/lib/plugin`.
|
@@ -132,13 +132,13 @@ The Transactd clients are required to access data through Transactd Plugin.
|
|
132
132
|
Download the Transactd client binaries for your platform.
|
133
133
|
The names of file to download are formed under following rules:
|
134
134
|
|
135
|
-
* Windows - transactd-client-[platform]_with_sdk-2.4.
|
136
|
-
* Linux - transactd-client-linux-x86_64_with_sdk-2.4.
|
135
|
+
* Windows - transactd-client-[platform]_with_sdk-2.4.2.zip
|
136
|
+
* Linux - transactd-client-linux-x86_64_with_sdk-2.4.2.tar.gz
|
137
137
|
|
138
138
|
[platform] is win32 or win64.
|
139
139
|
For example, the URL for Linux-x86_64bit is as follows:
|
140
140
|
|
141
|
-
http://www.bizstation.jp/al/transactd/download/transactd-client/transactd-client-linux-x86_64_with_sdk-2.4.
|
141
|
+
http://www.bizstation.jp/al/transactd/download/transactd-client/transactd-client-linux-x86_64_with_sdk-2.4.2.tar.gz
|
142
142
|
|
143
143
|
|
144
144
|
|
@@ -146,11 +146,11 @@ Installing Transactd clients
|
|
146
146
|
-------------------------------------------------------------------------------
|
147
147
|
|
148
148
|
### Installing on Windows
|
149
|
-
1. Open transactd-client-[platform]_with_sdk-2.4.
|
150
|
-
2. Select the root folder transactd-client-[platform]-with_sdk-2.4.
|
149
|
+
1. Open transactd-client-[platform]_with_sdk-2.4.2.zip from explorer.
|
150
|
+
2. Select the root folder transactd-client-[platform]-with_sdk-2.4.2 and
|
151
151
|
copy to a folder of your choice.
|
152
|
-
3. Run the "install.cmd" in the transactd-client-[platform]_with_sdk-2.4.
|
153
|
-
This command adds "transactd-client-[platform]_with_sdk-2.4.
|
152
|
+
3. Run the "install.cmd" in the transactd-client-[platform]_with_sdk-2.4.2 folder.
|
153
|
+
This command adds "transactd-client-[platform]_with_sdk-2.4.2\bin" folder to
|
154
154
|
the system environment variables "PATH".
|
155
155
|
|
156
156
|
C++ clients contains the following three files which is placed in bin folder.
|
@@ -177,8 +177,8 @@ http://www.bizstation.jp/en/transactd/documents/BUILD_WIN.html
|
|
177
177
|
|
178
178
|
2. Extract the tar.gz file and move into it.
|
179
179
|
```
|
180
|
-
tar zxf transactd-client-linux-x86_64_with_sdk-2.4.
|
181
|
-
cd transactd-client-linux-x86_64_with_sdk-2.4.
|
180
|
+
tar zxf transactd-client-linux-x86_64_with_sdk-2.4.2.tar.gz
|
181
|
+
cd transactd-client-linux-x86_64_with_sdk-2.4.2
|
182
182
|
```
|
183
183
|
|
184
184
|
3. Run the install script.
|
@@ -248,7 +248,7 @@ Test script executes the tests in following order:
|
|
248
248
|
### Executing on Windows
|
249
249
|
1. Move to the client directory.
|
250
250
|
```
|
251
|
-
cd transactd-client-[platform]_with_sdk-2.4.
|
251
|
+
cd transactd-client-[platform]_with_sdk-2.4.2
|
252
252
|
```
|
253
253
|
|
254
254
|
2. run test:
|
@@ -276,7 +276,7 @@ Test script executes the tests in following order:
|
|
276
276
|
### Executing on Linux
|
277
277
|
1. Move to the client directory.
|
278
278
|
```
|
279
|
-
cd transactd-client-linux-x86_64_with_sdk-2.4.
|
279
|
+
cd transactd-client-linux-x86_64_with_sdk-2.4.2
|
280
280
|
```
|
281
281
|
|
282
282
|
2. run test:
|
@@ -305,6 +305,13 @@ that is installed the value of TI_BOOST_ROOT of the Makefile when building.
|
|
305
305
|
If you compile with the 64Bit version of the Visual C++ 2010 Express edittion,
|
306
306
|
change option to "Windows7.1SDK" from "v100" in
|
307
307
|
[Options] - [platform toolset] - [configuration properties] - [General].
|
308
|
+
And add new environment variable TI_BOOST_ROOT_32 and TI_BOOST_ROOT_64,
|
309
|
+
set the value to boost folder of 64bit and 32bit.
|
310
|
+
|
311
|
+
ex)
|
312
|
+
* 64bit TI_BOOST_ROOT_64 = C:\boost\boost_1_58_0
|
313
|
+
* 32bit TI_BOOST_ROOT_32 = C:\boost\boost_1_58_0
|
314
|
+
|
308
315
|
|
309
316
|
In the C++ Builder, the boost which has been supplied with the compiler
|
310
317
|
are required. In [Tools] - [Options] - [Environment Options] - [C++ Options] -
|
@@ -1,111 +1,153 @@
|
|
1
|
-
リリースノート
|
1
|
+
リリースノート
|
2
|
+
|
3
|
+
================================================================================
|
4
|
+
Version 2.4.2 2015/08/31
|
5
|
+
================================================================================
|
6
|
+
新機能
|
7
|
+
--------------------------------------------------------------------------------
|
8
|
+
* queryBase と recordsetQueryの演算子にビットAND演算子を追加しました。
|
9
|
+
従来からある6つの演算子 ( =, >, < , >= ,<= ,<> )に加えて '&' と '!&'が使用でき
|
10
|
+
ます。
|
11
|
+
'&'演算子はフィールドの値とビット演算を行い指定した値と同じであればマッチします。
|
12
|
+
'!&'演算子はフィールドの値とビット演算を行い指定した値でなければマッチします。
|
13
|
+
例 : flags & 8 and flags !& 16
|
14
|
+
|
15
|
+
|
16
|
+
その他の修正と変更点
|
17
|
+
--------------------------------------------------------------------------------
|
18
|
+
* メソッドの変更
|
19
|
+
field::addAllFileds(tabledef* def)をprotectedからpublicに変更
|
20
|
+
|
21
|
+
* メソッドパラメータの追加
|
22
|
+
writableRecord::delとwritableRecord::updateにbool noSeek=false
|
23
|
+
オプションを追加しました。noSeekをtrueにすると、削除や更新の際にカレントレコード
|
24
|
+
は確立済として、読み取りオペレーションを省略します。
|
25
|
+
|
26
|
+
* メソッドの追加
|
27
|
+
void queryStatements::move(int from, int to)
|
28
|
+
|
29
|
+
* Windowsでの接続タイムアウトが設定どおりに働かない不具合を修正しました。
|
30
|
+
|
31
|
+
* HasManyJoinにおいてJoinするレコードがなかった場合、正しく処理されないことがある
|
32
|
+
不具合を修正しました。
|
33
|
+
|
34
|
+
* Joinにおいて、結合キーが文字列の場合正しく検索できないことがある不具合を修正しま
|
35
|
+
した。
|
2
36
|
|
3
37
|
================================================================================
|
4
38
|
Version 2.4.0 2015/06/03
|
5
39
|
================================================================================
|
6
40
|
バージョンアップ上の注意点
|
7
41
|
--------------------------------------------------------------------------------
|
8
|
-
|
42
|
+
* サーバー クライアントのバージョン互換性
|
43
|
+
|
9
44
|
Version 2.3系からのバージョンアップは特に注意する点はありません。サーバー、クラ
|
10
45
|
イアントともに、2.4系との相互運用が可能です。(但し、2.4の新機能を除く)
|
11
|
-
|
12
|
-
Version 2.3
|
13
|
-
|
46
|
+
|
47
|
+
Version 2.3より前のバージョンからのアップグレードは以前のリリースノートを確認
|
48
|
+
してください。
|
14
49
|
|
15
50
|
新機能
|
16
51
|
--------------------------------------------------------------------------------
|
17
|
-
|
52
|
+
* Transactd studio
|
53
|
+
|
18
54
|
Transactdに、使用中のコネクション、データベース、テーブル情報を表示するための
|
19
55
|
APIが実装されました。テーブル情報では、テーブルをオープンしてからの読み取り、更
|
20
56
|
新、追加、削除したレコード数などを得ることができます。
|
21
57
|
|
22
|
-
|
58
|
+
* activeTableでbookmarkからのrecordsetの取得を可能にしました。
|
59
|
+
|
23
60
|
queryBase::addSeekBookmarkを使って複数のbookmarkをセットできます。
|
24
|
-
|
25
|
-
|
61
|
+
|
62
|
+
tableオブジェクトにqueryをセットしてからtable::recordCount()を呼び出すと、条件
|
63
|
+
にマッチしたレコードを数えるのと同時に、table::bookmarks()でそれらのbookmarkを
|
26
64
|
取得できます。
|
27
65
|
|
28
|
-
|
66
|
+
* C++APIにおいて以下のメソッドを、フリースレッド対応しました。複数のスレッドから
|
29
67
|
同時アクセス可能です。
|
30
|
-
table::insertBookmarks
|
31
|
-
table::moveBookmarks
|
32
|
-
table::bookmarksCount
|
33
|
-
table::bookmarks
|
68
|
+
* table::insertBookmarks
|
69
|
+
* table::moveBookmarks
|
70
|
+
* table::bookmarksCount
|
71
|
+
* table::bookmarks
|
34
72
|
|
35
73
|
その他の修正と変更点
|
36
74
|
--------------------------------------------------------------------------------
|
37
|
-
|
75
|
+
* P.SQL互換のヌルキーアクセスにおいて、ヌルキーかどうかの判定ミスすることがある不
|
38
76
|
具合を修正しました。
|
39
77
|
|
40
|
-
|
78
|
+
* 既存のテーブルの自動スキーマ生成がうまくいかない場合がある不具合を修正しました。
|
41
79
|
|
42
|
-
|
80
|
+
* サーバー統計情報を取得するためのロック制御を改善しました。モニタリング時の同時実
|
43
81
|
効性を向上させました。
|
44
82
|
|
45
|
-
|
83
|
+
* nsdatabase::isReconnected()メソッドを追加しました。
|
46
84
|
サーバーへの再接続を行ったかどうかを示します。
|
47
85
|
|
48
|
-
|
86
|
+
* 1つの接続で複数データベースを使用した場合の reconnectをサポートしました。
|
49
87
|
|
50
|
-
|
88
|
+
* テーブルの作成時にヌルキーがあった場合、不要な内部用ヌルフィールドを追加してしま
|
51
89
|
うことがある不具合を修正しました。
|
52
90
|
|
53
|
-
|
91
|
+
* 無効なプリペアードクエリハンドル受取ったときに、無効なポインタ操作してしまうバグ
|
54
92
|
を修正しました。
|
55
93
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
short dbdef::validateTableDef(short TableIndex)
|
60
|
-
ushort_td nstable::bookmarkLen() const
|
61
|
-
bookmark_td tabale::bookmarks(unsigned int index) const
|
62
|
-
recordCountFn Call back function
|
63
|
-
table::setOnRecordCount
|
64
|
-
table::onRecordCount
|
65
|
-
bool queryBase::isSeekByBookmarks() const
|
66
|
-
void queryBase::addSeekBookmark(bookmark_td& bm, ushort_td len, bool reset=false)
|
67
|
-
bool writableRecord::read(bookmark_td& bm)
|
68
|
-
|
69
|
-
|
70
|
-
table::setBookMarks --> table::insertBookmarks
|
71
|
-
table::moveBookmarksId --> table::moveBookmarks
|
72
|
-
table::bookMarksCount --> table::bookmarksCount
|
73
|
-
|
74
|
-
|
75
|
-
void database::close(bool withDropDefaultSchema = false)
|
76
|
-
activeTable::activeTable(database* db, short tableIndex,
|
94
|
+
* SQLアクセスによるロックと共存できないことがある不具合を修正しました。
|
95
|
+
|
96
|
+
* メソッドの追加
|
97
|
+
* short dbdef::validateTableDef(short TableIndex)
|
98
|
+
* ushort_td nstable::bookmarkLen() const
|
99
|
+
* bookmark_td tabale::bookmarks(unsigned int index) const
|
100
|
+
* recordCountFn Call back function
|
101
|
+
* table::setOnRecordCount
|
102
|
+
* table::onRecordCount
|
103
|
+
* bool queryBase::isSeekByBookmarks() const
|
104
|
+
* void queryBase::addSeekBookmark(bookmark_td& bm, ushort_td len, bool reset=false)
|
105
|
+
* bool writableRecord::read(bookmark_td& bm)
|
106
|
+
|
107
|
+
* メソッド名の変更
|
108
|
+
* table::setBookMarks --> table::insertBookmarks
|
109
|
+
* table::moveBookmarksId --> table::moveBookmarks
|
110
|
+
* table::bookMarksCount --> table::bookmarksCount
|
111
|
+
|
112
|
+
* メソッドパラメータの追加
|
113
|
+
* void database::close(bool withDropDefaultSchema = false)
|
114
|
+
* activeTable::activeTable(database* db, short tableIndex,
|
77
115
|
short mode = TD_OPEN_NORMAL)
|
78
|
-
static activeTable* create(database* db, short tableIndex,
|
116
|
+
* static activeTable* create(database* db, short tableIndex,
|
79
117
|
short mode = TD_OPEN_NORMAL);
|
80
118
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
void
|
104
|
-
void
|
105
|
-
|
106
|
-
|
119
|
+
* bookmark_td型の変更 unsigned int から
|
120
|
+
|
121
|
+
```
|
122
|
+
struct BOOKMARK
|
123
|
+
{
|
124
|
+
uchar_td val[MAX_BOOKMARK_SIZE];
|
125
|
+
bool empty;
|
126
|
+
BOOKMARK():empty(true){ }
|
127
|
+
bool isEmpty(){ return empty; }
|
128
|
+
void set(uchar_td* p, int len)
|
129
|
+
{
|
130
|
+
memcpy(val, p, len);
|
131
|
+
empty = false;
|
132
|
+
}
|
133
|
+
};
|
134
|
+
```
|
135
|
+
|
136
|
+
* bookmark_td型を引数に取る関数で、bookmark_td型を参照に変更しました。
|
137
|
+
|
138
|
+
* コンビニエンスAPIのopenTableの引数をフル引数対応しました。
|
139
|
+
|
140
|
+
* コンビニエンスAPIに以下の関数を追加しました。
|
141
|
+
* void deleteTable(dbdef* def, short id)
|
142
|
+
* void renumberTable(dbdef* def, short id, short newid)
|
143
|
+
* void deleteField(dbdef* def, short tableid, short fieldNum)
|
144
|
+
* void deleteKey(dbdef* def, short tableid, short keynum)
|
145
|
+
* void validateTableDef(dbdef* def, short tableid)
|
146
|
+
|
147
|
+
* Transactd Client with SDK のWindows版に、Embarcadero C++Builder用バイナリは
|
107
148
|
含まれなくなりました。Embarcadero C++Builderで使用する場合は、ソースからビルド
|
108
149
|
することで引き続き利用可能です。
|
150
|
+
|
109
151
|
http://www.bizstation.jp/ja/transactd/documents/BUILD_WIN.html
|
110
152
|
|
111
153
|
|
@@ -116,41 +158,51 @@ Version 2.3.0 2015/03/20
|
|
116
158
|
|
117
159
|
バージョンアップ上の注意点
|
118
160
|
--------------------------------------------------------------------------------
|
119
|
-
|
161
|
+
* サーバー クライアントのバージョン互換性
|
162
|
+
|
120
163
|
バージョンアップはサーバーとクライアントともに行う必要があります。
|
164
|
+
|
121
165
|
database::reconnect()の実装のために、クラインアント サーバー間の通信プロトコ
|
122
166
|
ルが変更されました。このため、このバージョンのプラグインとクライアントは過去
|
123
167
|
のバージョンと互換性がありません。
|
168
|
+
|
124
169
|
新しいクライアントでバージョン2.2以前のサーバーにアクセスすると、
|
125
170
|
SERVER_CLIENT_NOT_COMPATIBLE (3003) エラーが返ります。
|
126
171
|
|
127
|
-
|
172
|
+
* メソッドの移動
|
173
|
+
|
128
174
|
table::usePadChar()とtable::trimPadChar()関数はfielddef構造体に移動しました。
|
175
|
+
|
129
176
|
また、値の設定は、それぞれ別にあった関数が、
|
130
177
|
setPadCharSettings(bool set, bool trim)にまとめられました。これによって、これ
|
131
178
|
らの値をスキーマに保存できるようになりました。
|
179
|
+
|
132
180
|
この変更は、フィールド型がft_string ft_wstring ft_mychar ft_mywcharにのみ影響
|
133
181
|
があります。それ以外の型には影響ありません。
|
182
|
+
|
134
183
|
table::usePadChar()とtrimPadChar()の返す値はどちらもデフォルトでtrueでしたが
|
135
184
|
この設定をコードで変更していなければ動作に変更はありません。
|
136
185
|
変更していた場合は、そのテーブルの上記フィールド型を持つフィールドに対して設定
|
137
186
|
を行うようコードの修正が必要です。
|
138
187
|
|
139
188
|
たとえば、tb->setUsePadChar(false)としていた場合、
|
140
|
-
```
|
189
|
+
```
|
141
190
|
for (int i = 0 ; i < tb->tableDef()->fieldCount ; ++i)
|
142
191
|
{
|
143
192
|
fielddef* fd = const_cast<fielddef*>(&tb->tableDef()->fieldDefs[i]);
|
144
193
|
fd->setPadCharSettings(false/*set*/, true/*trim*/);
|
145
194
|
}
|
146
|
-
```
|
195
|
+
```
|
147
196
|
とします。
|
197
|
+
|
148
198
|
ただし、このコードは、揮発性でスキーマには保存されていません。必要に応じて保存する
|
149
199
|
コードを追加してください。
|
150
200
|
|
151
|
-
|
201
|
+
* トランザクション中のテーブルオープン
|
202
|
+
|
152
203
|
バイナリーログが有効で、トランザクション中にテーブルをオープンすると
|
153
204
|
STATUS_ALREADY_INTRANSACTIONエラーを返すようになりました。
|
205
|
+
|
154
206
|
従来よりバイナリーログはサポートされていましたが、トランザクション中にテーブル
|
155
207
|
をオープンすると、そのテーブルに対するbinlogマップが生成されず、正しくレプリケ
|
156
208
|
ーションできない問題がありました。そのため、バイナリーログが有効な場合、トラン
|
@@ -159,105 +211,118 @@ Version 2.3.0 2015/03/20
|
|
159
211
|
|
160
212
|
新機能
|
161
213
|
--------------------------------------------------------------------------------
|
162
|
-
|
214
|
+
* MULTILOCK_READ_COMMITEDのトランザクション中のseek step系の読み取りオペレーショ
|
163
215
|
ンのbiasパラメータにROW_LOCK_Sを指定可能にしました。
|
216
|
+
|
164
217
|
これにより、MULTILOCK_READ_COMMITEDでも、よりロック競合の少ない共有ロックを使用
|
165
218
|
した細かなロック制御が可能です。
|
166
219
|
|
167
|
-
|
220
|
+
* queryBaseクラスを使ったテーブルクエリーで、limitで設定した値で検索を終了する設
|
168
221
|
定を可能にしました。
|
222
|
+
|
169
223
|
従来、limitの値は一回のオペレーションで取得するレコードの最大値を示し、クライア
|
170
224
|
ント側でlimit以外の終了条件を満たすまで自動で繰り返し取得オペレーションが行われ
|
171
225
|
ていました。事実上limitは受信データバッファを節約するためだけのものでした。
|
226
|
+
|
172
227
|
新しく加えた、queryBase::stopAtLimit()関数にtrueをセットすることで、マッチした
|
173
228
|
レコードがlimitに達するとそこで検索を終了できます。
|
174
229
|
デフォルトのfalseの場合の動作は従来と同様です。
|
175
230
|
|
176
|
-
|
231
|
+
* table::find(eFindType type)で使用されるeFindTypeにfindContinueが追加されました。
|
232
|
+
|
177
233
|
直前のfind系オペレーションが、フィルター条件のmaxRecordまたはrejectCount
|
178
234
|
によって終了した場合、findContinueを指定すると、その続きから同じ条件で検索を続
|
179
235
|
けることができます。また、直前のfind系オペレーションがそのような条件で終了した
|
180
236
|
かどうかを調べるために、より詳しいステータスを示すtable::statReasonOfFind()と
|
181
237
|
table::lastFindDirection()メソッドが追加されました。
|
182
238
|
|
183
|
-
|
239
|
+
* ActiveTableにreadMore()メソッドが追加されました。これは上記、findContinueの
|
184
240
|
ActiveTable実装です。
|
185
241
|
|
186
|
-
|
242
|
+
* recordsetのグルーピング関数に、firstとlast関数が追加されました。これらは、各グ
|
187
243
|
ループの最初または最後のレコードのフィールド値をそのまま返します。
|
188
244
|
値は、数値と文字列の双方をサポートします。
|
245
|
+
|
189
246
|
これを使用すると非正規化されたフィールドの値を用いてidなどに対する説明のフィー
|
190
247
|
ルドの値をそのまま利用し、JOINを不要にしたりすることができます。
|
191
248
|
|
192
|
-
|
249
|
+
* フィルターとクエリーの比較演算子に、大文字/小文字を区別しない
|
193
250
|
(case-insensitive)比較の指定ができるようになりました。
|
251
|
+
|
194
252
|
文字列において大文字/小文字の区別なしに比較するには、従来の6種類の演算子
|
195
|
-
|
196
|
-
|
253
|
+
の後ろにi(アイ)を付加します。
|
254
|
+
|
255
|
+
```
|
256
|
+
Case-sensitive: =, >, < , >=, <=, <>
|
257
|
+
Case-insensitive: =i, >i, <i, >=i, <=i, <>i
|
258
|
+
```
|
197
259
|
|
198
260
|
テーブルのフィルターにおいて、比較対象フィールドが、使用するインデックスのフィ
|
199
261
|
ールドの時は、大文字/小文字区別の指定をテーブル作成時のフィールド定義と同じに
|
200
262
|
するとパフォーマンスが良くなります。異なるとインデックスによる読み取り範囲の最
|
201
263
|
適化が行えずフルスキャンを行う必要が出てきます。
|
202
264
|
|
203
|
-
|
265
|
+
* ネットワーク接続の再接続コマンド、database::reconnect()が追加されました。不意
|
204
266
|
にサーバープロセスが再起動された場合でも、このメソッドによって 再接続が可能に
|
205
267
|
なりました。再接続は、開いていたテーブルの再オープン、カーソル位置の復元、レ
|
206
268
|
コードロックの復元が行われます。ネットワーク接続の切断時に実行中だったトランザ
|
207
269
|
クションは復元されません。再度実行する必要があります。
|
270
|
+
|
208
271
|
現在のところ、再接続先の変更は行えません。将来的にはtdclcライブラリ内で接続先の
|
209
272
|
変更がサポートされる予定です。
|
210
273
|
|
211
|
-
|
274
|
+
* fielddef::lenByCharnum()メソッドは従来、ft_mychar ft_myvarcharのみのサポートで
|
212
275
|
したが、加えてft_wstring ft_wzstring ft_myvarbinary ft_mywvarbinaryもサポート
|
213
276
|
されました。これらのフィールド型の場合も文字数で長さを指定できます。
|
214
277
|
|
215
|
-
|
278
|
+
* クライアントの設定ファイル(transactd.iniまたはtransactd.cnf)で、connectTimeout
|
216
279
|
とnetTimeoutが追加されました。何も設定しない場合のデフォルト値はそれぞれ以下の
|
217
280
|
通りです。
|
218
281
|
|
282
|
+
```
|
219
283
|
connectTimeout = 20
|
220
284
|
netTimeout = 180
|
285
|
+
```
|
221
286
|
|
222
287
|
connectTimeoutは接続時のタイムアウト(秒)です。netTimeoutは、オペレーション実行
|
223
288
|
時に、サーバーから応答が返るまでのタイムアウト(秒)です。
|
224
289
|
|
225
|
-
|
290
|
+
* tdclc内のTCP read writeの実装がboostからOS nativeに変更されました。これによりパ
|
226
291
|
フォーマンスとタイムアウトの設定を可能にしました。
|
227
292
|
|
228
293
|
その他の修正と変更点
|
229
294
|
--------------------------------------------------------------------------------
|
230
|
-
|
295
|
+
* 固定長文字列型フィールドのフィルタリングが正しく行われない場合がある不具合を修
|
231
296
|
正しました。
|
232
297
|
|
233
|
-
|
298
|
+
* PHPとRubyインタフェースにsortFields sortFieldクラスが欠落していた不具合を修正
|
234
299
|
しました。
|
235
300
|
|
236
|
-
|
301
|
+
* Active XインターフェースにRecordset::UnionRecordset()メソッドが欠落していた不
|
237
302
|
具合を修正しました。
|
238
303
|
|
239
|
-
|
304
|
+
* table::find系オペレーション時に不正なキー番号をセットすると、サーバーがクラッ
|
240
305
|
シュする不具合を修正しました。
|
241
306
|
|
242
|
-
|
307
|
+
* テーブルがSQLコマンドLOCK TABLESでロックされた状態で、書き込みトランザクション
|
243
308
|
が失敗したあと、再トライ時にunlock rowでエラーが発生する不具合を修正しました。
|
244
309
|
|
245
|
-
|
310
|
+
* ActiveXインターフェースのdatabaseオブジェクトの解放で、テーブルの解放順との順序
|
246
311
|
関係によって、access violationが発生することがある不具合を修正しました。
|
247
312
|
|
248
|
-
|
313
|
+
* DNSが使用できないクライアントにおいて、接続先の指定にlocalhostが使用できない問
|
249
314
|
題を修正しました。
|
250
315
|
|
251
|
-
|
316
|
+
* ft_float型のフィールドでi64()による読み取りが常にゼロを返す不具合を修正しました。
|
252
317
|
|
253
|
-
|
318
|
+
* ft_string型とft_wstring型のフィールドでfield::getFVbin()とtable::getFVbin()に
|
254
319
|
よる値の読み取りができない不具合を修正しました。
|
255
320
|
|
256
|
-
|
321
|
+
* Windowsのパイプ接続時の共有メモリサイズのデフォルト値が、サーバーとクライアント
|
257
322
|
で異なる不具合を修正しました。
|
258
323
|
|
259
|
-
|
324
|
+
* activeTableクエリーによるft_textとft_blobフィールドの読み取りで、フィールドの
|
260
325
|
絞り込みが無い場合、不正なポインターを返す不具合を修正しました。
|
261
326
|
|
262
|
-
|
327
|
+
* Transactdプラグインのソースコードを MySQL 5.7.6対応にしました。cmakeは現在未対応
|
263
328
|
です。ビルドにはcmakeの修正が必要です。
|