transactd 2.4.0 → 2.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/BUILD_UNIX-JA.md +37 -29
  3. data/BUILD_WIN-JA.md +96 -69
  4. data/CMakeLists.txt +7 -17
  5. data/README-JA.md +22 -17
  6. data/README.md +23 -16
  7. data/{RELEASE_NOTE-JA → RELEASE_NOTE-JA.md} +163 -98
  8. data/{RELEASE_NOTE → RELEASE_NOTE.md} +165 -99
  9. data/bin/common/tdclc_32_2_4.dll +0 -0
  10. data/bin/common/tdclc_64_2_4.dll +0 -0
  11. data/build/common/get_boost_libs.cmake +2 -0
  12. data/build/common/system.cmake +6 -4
  13. data/build/common/transactd_cl_output.cmake +14 -2
  14. data/build/common/transactd_common.cmake +34 -12
  15. data/build/tdclc/CMakeLists.txt +10 -2
  16. data/build/tdclc/tdclc.rc +4 -4
  17. data/build/tdclcpp/CMakeLists.txt +34 -9
  18. data/build/tdclcpp/tdclcpp.rc +4 -4
  19. data/build/tdclrb/CMakeLists.txt +24 -15
  20. data/build/tdclrb/gem/Makefile.win32-VS +2 -2
  21. data/build/tdclrb/gem_output.cmake +27 -10
  22. data/build/tdclrb/tdclrb.rc +4 -4
  23. data/source/bzs/db/engine/mysql/database.cpp +18 -18
  24. data/source/bzs/db/engine/mysql/database.h +4 -4
  25. data/source/bzs/db/engine/mysql/dbManager.cpp +1 -2
  26. data/source/bzs/db/engine/mysql/mysqlInternal.h +23 -2
  27. data/source/bzs/db/engine/mysql/mysqlThd.cpp +3 -2
  28. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +26 -12
  29. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +3 -3
  30. data/source/bzs/db/protocol/tdap/client/field.cpp +74 -23
  31. data/source/bzs/db/protocol/tdap/client/field.h +3 -1
  32. data/source/bzs/db/protocol/tdap/client/filter.h +4 -4
  33. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +3 -1
  34. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +16 -9
  35. data/source/bzs/db/protocol/tdap/client/memRecord.h +2 -2
  36. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
  37. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +3 -2
  38. data/source/bzs/db/protocol/tdap/client/serializer.cpp +12 -0
  39. data/source/bzs/db/protocol/tdap/client/serializer.h +1 -0
  40. data/source/bzs/db/protocol/tdap/client/table.cpp +60 -109
  41. data/source/bzs/db/protocol/tdap/client/table.h +2 -1
  42. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +13 -0
  43. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +1 -1
  44. data/source/bzs/db/protocol/tdap/client/trdormapi.h +8 -8
  45. data/source/bzs/db/protocol/tdap/fieldComp.h +6 -0
  46. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +147 -46
  47. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +78 -0
  48. data/source/bzs/db/protocol/tdap/tdapSchema.h +6 -1
  49. data/source/bzs/db/protocol/tdap/tdapcapi.h +3 -3
  50. data/source/bzs/db/transactd/transactd.cpp +1 -1
  51. data/source/bzs/env/compiler.h +12 -0
  52. data/source/bzs/env/tcharMinGW.h +1 -0
  53. data/source/bzs/netsvc/client/tcpClient.h +4 -2
  54. data/source/bzs/netsvc/server/serverCpt.cpp +1 -0
  55. data/source/bzs/netsvc/server/serverTpool.cpp +3 -0
  56. data/source/bzs/test/tdclphp/transactd_Test.php +2 -2
  57. data/source/bzs/test/tdclphp/transactd_pool_Test.php +6 -0
  58. data/source/bzs/test/trdclengn/test_trdclengn.cpp +2 -2
  59. data/source/global/ormsrcgen/srcgen.cpp +1 -2
  60. data/source/linux/tchar.h +1 -0
  61. 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.0_[mysql-version].zip
51
- * Linux - transactd-linux-x86_64-2.4.0_[mysql-version].tar.gz
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.0/transactd-linux-x86_64-2.4.0_mysql-5.6.14.tar.gz
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.0_mysql-5.6.14.tar.gz
104
- cd transactd-linux-x86_64-2.4.0_mysql-5.6.14
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.0.zip
136
- * Linux - transactd-client-linux-x86_64_with_sdk-2.4.0.tar.gz
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.0.tar.gz
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.0.zip from explorer.
150
- 2. Select the root folder transactd-client-[platform]-with_sdk-2.4.0 and
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.0 folder.
153
- This command adds "transactd-client-[platform]_with_sdk-2.4.0\bin" folder to
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.0.tar.gz
181
- cd transactd-client-linux-x86_64_with_sdk-2.4.0
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.0
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.0
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
- Transactd studio
52
+ * Transactd studio
53
+
18
54
  Transactdに、使用中のコネクション、データベース、テーブル情報を表示するための
19
55
  APIが実装されました。テーブル情報では、テーブルをオープンしてからの読み取り、更
20
56
  新、追加、削除したレコード数などを得ることができます。
21
57
 
22
- activeTableでbookmarkからのrecordsetの取得を可能にしました。
58
+ * activeTableでbookmarkからのrecordsetの取得を可能にしました。
59
+
23
60
  queryBase::addSeekBookmarkを使って複数のbookmarkをセットできます。
24
- tableオブジェクトにqueryをセットしてから、table::recordCount()を呼び出すと条件
25
- にマッチしたレコード数を数えるのと同時に、table::bookmarks()でそれらのbookmarkを
61
+
62
+ tableオブジェクトにqueryをセットしてからtable::recordCount()を呼び出すと、条件
63
+ にマッチしたレコードを数えるのと同時に、table::bookmarks()でそれらのbookmarkを
26
64
  取得できます。
27
65
 
28
- C++APIにおいて以下のメソッドを、フリースレッド対応しました。複数のスレッドから
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
- P.SQL互換のヌルキーアクセスにおいて、ヌルキーかどうかの判定ミスすることがある不
75
+ * P.SQL互換のヌルキーアクセスにおいて、ヌルキーかどうかの判定ミスすることがある不
38
76
  具合を修正しました。
39
77
 
40
- ・既存のテーブルの自動スキーマ生成がうまくいかない場合がある不具合を修正しました。
78
+ * 既存のテーブルの自動スキーマ生成がうまくいかない場合がある不具合を修正しました。
41
79
 
42
- ・サーバー統計情報を取得するためのロック制御を改善しました。モニタリング時の同時実
80
+ * サーバー統計情報を取得するためのロック制御を改善しました。モニタリング時の同時実
43
81
  効性を向上させました。
44
82
 
45
- nsdatabase::isReconnected()メソッドを追加しました。
83
+ * nsdatabase::isReconnected()メソッドを追加しました。
46
84
  サーバーへの再接続を行ったかどうかを示します。
47
85
 
48
- ・1つの接続で複数データベースを使用した場合の reconnectをサポートしました。
86
+ * 1つの接続で複数データベースを使用した場合の reconnectをサポートしました。
49
87
 
50
- ・テーブルの作成時にヌルキーがあった場合、不要な内部用ヌルフィールドを追加してしま
88
+ * テーブルの作成時にヌルキーがあった場合、不要な内部用ヌルフィールドを追加してしま
51
89
  うことがある不具合を修正しました。
52
90
 
53
- ・無効なプリペアードクエリハンドル受取ったときに、無効なポインタ操作してしまうバグ
91
+ * 無効なプリペアードクエリハンドル受取ったときに、無効なポインタ操作してしまうバグ
54
92
  を修正しました。
55
93
 
56
- SQLアクセスによるロックと共存できないことがある不具合を修正しました。
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
- bookmark_td型の変更 unsigned int から
82
- struct BOOKMARK
83
- {
84
- uchar_td val[MAX_BOOKMARK_SIZE];
85
- bool empty;
86
- BOOKMARK():empty(true){ }
87
- bool isEmpty(){ return empty; }
88
- void set(uchar_td* p, int len)
89
- {
90
- memcpy(val, p, len);
91
- empty = false;
92
- }
93
- };
94
-
95
- ・bookmark_td型を引数に取る関数で、bookmark_td型を参照に変更しました。
96
-
97
- ・コンビニエンスAPIのopenTableの引数をフル引数対応しました。
98
-
99
- ・コンビニエンスAPIに以下の関数を追加しました。
100
- void deleteTable(dbdef* def, short id)
101
- void renumberTable(dbdef* def, short id, short newid)
102
- void deleteField(dbdef* def, short tableid, short fieldNum)
103
- void deleteKey(dbdef* def, short tableid, short keynum)
104
- void validateTableDef(dbdef* def, short tableid)
105
-
106
- ・Trasnactd Client with SDK のWindows版に、Embarcadero C++Builder用バイナリは
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
- MULTILOCK_READ_COMMITEDのトランザクション中のseek step系の読み取りオペレーショ
214
+ * MULTILOCK_READ_COMMITEDのトランザクション中のseek step系の読み取りオペレーショ
163
215
  ンのbiasパラメータにROW_LOCK_Sを指定可能にしました。
216
+
164
217
  これにより、MULTILOCK_READ_COMMITEDでも、よりロック競合の少ない共有ロックを使用
165
218
  した細かなロック制御が可能です。
166
219
 
167
- queryBaseクラスを使ったテーブルクエリーで、limitで設定した値で検索を終了する設
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
- table::find(eFindType type)で使用されるeFindTypeにfindContinueが追加されました。
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
- ActiveTableにreadMore()メソッドが追加されました。これは上記、findContinueの
239
+ * ActiveTableにreadMore()メソッドが追加されました。これは上記、findContinueの
184
240
  ActiveTable実装です。
185
241
 
186
- recordsetのグルーピング関数に、firstとlast関数が追加されました。これらは、各グ
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
- ( =, >, < , >= ,<= ,<> ) の後ろにi(アイ)を付加します。
196
- ( =i, >i, <i , >=i ,<=i ,<>i )
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
- ・ネットワーク接続の再接続コマンド、database::reconnect()が追加されました。不意
265
+ * ネットワーク接続の再接続コマンド、database::reconnect()が追加されました。不意
204
266
  にサーバープロセスが再起動された場合でも、このメソッドによって 再接続が可能に
205
267
  なりました。再接続は、開いていたテーブルの再オープン、カーソル位置の復元、レ
206
268
  コードロックの復元が行われます。ネットワーク接続の切断時に実行中だったトランザ
207
269
  クションは復元されません。再度実行する必要があります。
270
+
208
271
  現在のところ、再接続先の変更は行えません。将来的にはtdclcライブラリ内で接続先の
209
272
  変更がサポートされる予定です。
210
273
 
211
- fielddef::lenByCharnum()メソッドは従来、ft_mychar ft_myvarcharのみのサポートで
274
+ * fielddef::lenByCharnum()メソッドは従来、ft_mychar ft_myvarcharのみのサポートで
212
275
  したが、加えてft_wstring ft_wzstring ft_myvarbinary ft_mywvarbinaryもサポート
213
276
  されました。これらのフィールド型の場合も文字数で長さを指定できます。
214
277
 
215
- ・クライアントの設定ファイル(transactd.iniまたはtransactd.cnf)で、connectTimeout
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
- tdclc内のTCP read writeの実装がboostからOS nativeに変更されました。これによりパ
290
+ * tdclc内のTCP read writeの実装がboostからOS nativeに変更されました。これによりパ
226
291
  フォーマンスとタイムアウトの設定を可能にしました。
227
292
 
228
293
  その他の修正と変更点
229
294
  --------------------------------------------------------------------------------
230
- ・固定長文字列型フィールドのフィルタリングが正しく行われない場合がある不具合を修
295
+ * 固定長文字列型フィールドのフィルタリングが正しく行われない場合がある不具合を修
231
296
  正しました。
232
297
 
233
- PHPとRubyインタフェースにsortFields sortFieldクラスが欠落していた不具合を修正
298
+ * PHPとRubyインタフェースにsortFields sortFieldクラスが欠落していた不具合を修正
234
299
  しました。
235
300
 
236
- Active XインターフェースにRecordset::UnionRecordset()メソッドが欠落していた不
301
+ * Active XインターフェースにRecordset::UnionRecordset()メソッドが欠落していた不
237
302
  具合を修正しました。
238
303
 
239
- table::find系オペレーション時に不正なキー番号をセットすると、サーバーがクラッ
304
+ * table::find系オペレーション時に不正なキー番号をセットすると、サーバーがクラッ
240
305
  シュする不具合を修正しました。
241
306
 
242
- ・テーブルがSQLコマンドLOCK TABLESでロックされた状態で、書き込みトランザクション
307
+ * テーブルがSQLコマンドLOCK TABLESでロックされた状態で、書き込みトランザクション
243
308
  が失敗したあと、再トライ時にunlock rowでエラーが発生する不具合を修正しました。
244
309
 
245
- ActiveXインターフェースのdatabaseオブジェクトの解放で、テーブルの解放順との順序
310
+ * ActiveXインターフェースのdatabaseオブジェクトの解放で、テーブルの解放順との順序
246
311
  関係によって、access violationが発生することがある不具合を修正しました。
247
312
 
248
- DNSが使用できないクライアントにおいて、接続先の指定にlocalhostが使用できない問
313
+ * DNSが使用できないクライアントにおいて、接続先の指定にlocalhostが使用できない問
249
314
  題を修正しました。
250
315
 
251
- ft_float型のフィールドでi64()による読み取りが常にゼロを返す不具合を修正しました。
316
+ * ft_float型のフィールドでi64()による読み取りが常にゼロを返す不具合を修正しました。
252
317
 
253
- ft_string型とft_wstring型のフィールドでfield::getFVbin()とtable::getFVbin()に
318
+ * ft_string型とft_wstring型のフィールドでfield::getFVbin()とtable::getFVbin()に
254
319
  よる値の読み取りができない不具合を修正しました。
255
320
 
256
- Windowsのパイプ接続時の共有メモリサイズのデフォルト値が、サーバーとクライアント
321
+ * Windowsのパイプ接続時の共有メモリサイズのデフォルト値が、サーバーとクライアント
257
322
  で異なる不具合を修正しました。
258
323
 
259
- activeTableクエリーによるft_textとft_blobフィールドの読み取りで、フィールドの
324
+ * activeTableクエリーによるft_textとft_blobフィールドの読み取りで、フィールドの
260
325
  絞り込みが無い場合、不正なポインターを返す不具合を修正しました。
261
326
 
262
- Transactdプラグインのソースコードを MySQL 5.7.6対応にしました。cmakeは現在未対応
327
+ * Transactdプラグインのソースコードを MySQL 5.7.6対応にしました。cmakeは現在未対応
263
328
  です。ビルドにはcmakeの修正が必要です。