transactd 2.4.5 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CMakeLists.txt +1 -1
- data/README-JA.md +52 -529
- data/README.md +52 -523
- data/bin/common/tdclc_32_3_0.dll +0 -0
- data/bin/common/tdclc_64_3_0.dll +0 -0
- data/build/common/system.cmake +2 -1
- data/build/common/transactd_cl_common.cmake +3 -6
- data/build/swig/ruby/ruby.swg +85 -28
- data/build/swig/ruby/tdclrb_wrap.cpp +3195 -1578
- data/build/swig/tdcl.i +161 -5
- data/build/tdclc/CMakeLists.txt +1 -0
- data/build/tdclc/tdclc.cbproj +7 -1
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclcpp/tdclcpp_bc.cbproj +2 -5
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/blobStructs.h +1 -1
- data/source/bzs/db/engine/mysql/database.cpp +199 -74
- data/source/bzs/db/engine/mysql/database.h +47 -18
- data/source/bzs/db/engine/mysql/dbManager.cpp +1 -0
- data/source/bzs/db/engine/mysql/mysqlInternal.h +32 -8
- data/source/bzs/db/protocol/tdap/btrDate.cpp +110 -75
- data/source/bzs/db/protocol/tdap/btrDate.h +46 -21
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +18 -18
- data/source/bzs/db/protocol/tdap/client/activeTable.h +25 -25
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +10 -4
- data/source/bzs/db/protocol/tdap/client/client.cpp +6 -5
- data/source/bzs/db/protocol/tdap/client/client.h +82 -15
- data/source/bzs/db/protocol/tdap/client/database.cpp +531 -142
- data/source/bzs/db/protocol/tdap/client/database.h +19 -6
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +461 -408
- data/source/bzs/db/protocol/tdap/client/dbDef.h +11 -17
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +61 -13
- data/source/bzs/db/protocol/tdap/client/field.cpp +1592 -1398
- data/source/bzs/db/protocol/tdap/client/field.h +110 -121
- data/source/bzs/db/protocol/tdap/client/fields.h +40 -10
- data/source/bzs/db/protocol/tdap/client/filter.h +69 -55
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +296 -164
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +77 -25
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +31 -13
- data/source/bzs/db/protocol/tdap/client/memRecord.h +31 -21
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +69 -24
- data/source/bzs/db/protocol/tdap/client/nsTable.h +3 -1
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +1 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +46 -27
- data/source/bzs/db/protocol/tdap/client/request.h +2 -1
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +44 -9
- data/source/bzs/db/protocol/tdap/client/serializer.h +1 -1
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +182 -76
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +23 -12
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +8 -10
- data/source/bzs/db/protocol/tdap/client/table.cpp +172 -93
- data/source/bzs/db/protocol/tdap/client/table.h +112 -37
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +17 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +0 -1
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +0 -2
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +698 -14
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +723 -307
- data/source/bzs/db/protocol/tdap/myDateTime.h +294 -0
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +164 -54
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +6 -3
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +133 -550
- data/source/bzs/db/protocol/tdap/mysql/request.h +6 -5
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +217 -82
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +1 -1
- data/source/bzs/db/protocol/tdap/tdapRequest.h +4 -9
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +808 -17
- data/source/bzs/db/protocol/tdap/tdapSchema.h +656 -164
- data/source/bzs/db/protocol/tdap/tdapcapi.h +130 -28
- data/source/bzs/db/protocol/tdap/uri.h +40 -32
- data/source/bzs/db/transactd/connManager.cpp +1 -1
- data/source/bzs/db/transactd/transactd.cpp +7 -0
- data/source/bzs/env/compiler.h +107 -94
- data/source/bzs/env/crosscompile.cpp +24 -12
- data/source/bzs/env/crosscompile.h +75 -6
- data/source/bzs/env/mbcswchrLinux.cpp +2 -2
- data/source/bzs/env/tcharMinGW.h +4 -0
- data/source/bzs/example/changeSchema.cpp +22 -17
- data/source/bzs/example/queryData.cpp +4 -0
- data/source/bzs/netsvc/client/iconnection.h +3 -1
- data/source/bzs/netsvc/client/tcpClient.h +10 -3
- data/source/bzs/rtl/stringBuffers.cpp +7 -0
- data/source/bzs/test/tdclatl/bench_query_atl.js +6 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +8 -1
- data/source/bzs/test/tdclatl/test_query_atl.js +22 -2
- data/source/bzs/test/tdclatl/test_v3.js +1017 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +55 -21
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +0 -5
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +2 -0
- data/source/bzs/test/tdclphp/transactd_v3_Test.php +743 -0
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -5
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +2 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +39 -16
- data/source/bzs/test/tdclrb/transactd_v3_spec.rb +748 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +55 -58
- data/source/bzs/test/transactdBench/transactdBench2.cpp +1 -3
- data/source/bzs/test/trdclengn/testField.h +3305 -0
- data/source/bzs/test/trdclengn/test_tdclcpp_v3.cpp +1050 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +112 -190
- data/source/bzs/test/trdclengn/testbase.h +137 -0
- data/source/global/ormsrcgen/srcgen.cpp +23 -12
- data/source/global/ormsrcgen/template/ormDataClass_template.h +2 -0
- data/source/global/querystmts/querystmts.cpp +2 -3
- data/source/global/tdclatl/Bitset.cpp +38 -0
- data/source/global/tdclatl/Bitset.h +63 -0
- data/source/global/tdclatl/Database.cpp +59 -18
- data/source/global/tdclatl/Database.h +7 -4
- data/source/global/tdclatl/DbDef.cpp +6 -6
- data/source/global/tdclatl/DbDef.h +2 -1
- data/source/global/tdclatl/Field.cpp +112 -0
- data/source/global/tdclatl/Field.h +19 -5
- data/source/global/tdclatl/FieldDef.cpp +137 -16
- data/source/global/tdclatl/FieldDef.h +18 -2
- data/source/global/tdclatl/FieldDefs.cpp +54 -1
- data/source/global/tdclatl/FieldDefs.h +3 -0
- data/source/global/tdclatl/GroupQuery.cpp +8 -8
- data/source/global/tdclatl/QueryBase.cpp +65 -0
- data/source/global/tdclatl/QueryBase.h +10 -0
- data/source/global/tdclatl/Record.cpp +33 -2
- data/source/global/tdclatl/Record.h +3 -1
- data/source/global/tdclatl/RecordsetQuery.cpp +42 -0
- data/source/global/tdclatl/RecordsetQuery.h +8 -0
- data/source/global/tdclatl/Table.cpp +127 -3
- data/source/global/tdclatl/Table.h +10 -1
- data/source/global/tdclatl/TableDef.cpp +41 -8
- data/source/global/tdclatl/TableDef.h +7 -2
- data/source/global/tdclatl/activeTable.cpp +40 -71
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/tdclatl.idl +222 -28
- data/source/linux/tchar.h +100 -96
- data/transactd.gemspec +2 -2
- metadata +13 -11
- data/BUILD_UNIX-JA.md +0 -161
- data/BUILD_WIN-JA.md +0 -326
- data/README_ORMSRCGEN-JA.md +0 -115
- data/README_ORMSRCGEN.md +0 -118
- data/RELEASE_NOTE-JA.md +0 -356
- data/RELEASE_NOTE.md +0 -360
- data/bin/common/tdclc_32_2_4.dll +0 -0
- data/bin/common/tdclc_64_2_4.dll +0 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +0 -375
|
@@ -16,115 +16,13 @@
|
|
|
16
16
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
17
17
|
02111-1307, USA.
|
|
18
18
|
================================================================= */
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
#if defined(__BCPLUSPLUS__)
|
|
22
|
-
#pragma warn -8012
|
|
23
|
-
#pragma warn -8022
|
|
24
|
-
#endif
|
|
25
|
-
#include <boost/test/included/unit_test.hpp>
|
|
26
|
-
#ifndef BOOST_TEST_MESSAGE
|
|
27
|
-
#define BOOST_TEST_MESSAGE BOOST_MESSAGE
|
|
28
|
-
#endif
|
|
29
|
-
#if defined(__BCPLUSPLUS__)
|
|
30
|
-
#pragma warn .8012
|
|
31
|
-
#pragma warn .8022
|
|
32
|
-
#endif
|
|
33
|
-
|
|
34
|
-
#include <bzs/db/protocol/tdap/client/database.h>
|
|
35
|
-
#include <bzs/db/protocol/tdap/client/table.h>
|
|
36
|
-
#include <bzs/db/protocol/tdap/client/dbDef.h>
|
|
37
|
-
#include <bzs/db/protocol/tdap/mysql/characterset.h>
|
|
38
|
-
#include <bzs/db/protocol/tdap/tdapcapi.h>
|
|
39
|
-
#include <bzs/db/protocol/tdap/client/stringConverter.h>
|
|
40
|
-
#include <stdio.h>
|
|
41
|
-
#include <bzs/db/protocol/tdap/client/filter.h>
|
|
42
|
-
#include <bzs/example/queryData.h>
|
|
43
|
-
#include <bzs/db/protocol/tdap/client/activeTable.h>
|
|
19
|
+
#include "testbase.h"
|
|
44
20
|
#include <bzs/db/protocol/tdap/client/pooledDatabaseManager.h>
|
|
45
21
|
#include <boost/thread.hpp>
|
|
46
22
|
|
|
47
|
-
using namespace bzs::db::protocol::tdap::client;
|
|
48
|
-
using namespace bzs::db::protocol::tdap;
|
|
49
|
-
using namespace std;
|
|
50
|
-
|
|
51
|
-
#define TDAP
|
|
52
|
-
#ifdef TDAP
|
|
53
|
-
#define PROTOCOL _T("tdap")
|
|
54
|
-
#else
|
|
55
|
-
#define PROTOCOL _T("btrv")
|
|
56
|
-
#endif
|
|
57
|
-
static _TCHAR HOSTNAME[MAX_PATH] = { _T("127.0.0.1") };
|
|
58
|
-
#define DBNAME _T("test")
|
|
59
|
-
#define BDFNAME _T("test")
|
|
60
|
-
// #define ISOLATION_REPEATABLE_READ
|
|
61
|
-
#define ISOLATION_READ_COMMITTED
|
|
62
|
-
|
|
63
|
-
static _TCHAR g_uri[MAX_PATH];
|
|
64
|
-
static _TCHAR g_userName[MYSQL_USERNAME_MAX + 1]={0x00};
|
|
65
|
-
static _TCHAR g_password[MAX_PATH]={0x00};
|
|
66
|
-
|
|
67
23
|
static const short fdi_id = 0;
|
|
68
24
|
static const short fdi_name = 1;
|
|
69
25
|
|
|
70
|
-
boost::unit_test::test_suite* init_unit_test_suite(int argc, char* argv[]);
|
|
71
|
-
|
|
72
|
-
boost::unit_test::test_suite* init_unit_test_suite(int argc, char* argv[])
|
|
73
|
-
{
|
|
74
|
-
for (int i = 1; i < argc; ++i)
|
|
75
|
-
{
|
|
76
|
-
if (strstr(argv[i], "--host=") == argv[i])
|
|
77
|
-
{
|
|
78
|
-
#ifdef _UNICODE
|
|
79
|
-
MultiByteToWideChar(CP_ACP,
|
|
80
|
-
(CP_ACP == CP_UTF8) ? 0 : MB_PRECOMPOSED,
|
|
81
|
-
argv[i] + 7, -1, HOSTNAME, MAX_PATH);
|
|
82
|
-
#else
|
|
83
|
-
strcpy_s(HOSTNAME, MAX_PATH, argv[i] + 7);
|
|
84
|
-
#endif
|
|
85
|
-
}
|
|
86
|
-
if (strstr(argv[i], "--user=") == argv[i])
|
|
87
|
-
{
|
|
88
|
-
#ifdef _UNICODE
|
|
89
|
-
MultiByteToWideChar(CP_ACP,
|
|
90
|
-
(CP_ACP == CP_UTF8) ? 0 : MB_PRECOMPOSED,
|
|
91
|
-
argv[i] + 7, -1, g_userName, MYSQL_USERNAME_MAX+1);
|
|
92
|
-
#else
|
|
93
|
-
strcpy_s(g_userName, MYSQL_USERNAME_MAX+1, argv[i] + 7);
|
|
94
|
-
#endif
|
|
95
|
-
}
|
|
96
|
-
if (strstr(argv[i], "--pwd=") == argv[i])
|
|
97
|
-
{
|
|
98
|
-
#ifdef _UNICODE
|
|
99
|
-
MultiByteToWideChar(CP_ACP,
|
|
100
|
-
(CP_ACP == CP_UTF8) ? 0 : MB_PRECOMPOSED,
|
|
101
|
-
argv[i] + 6, -1, g_password, MAX_PATH);
|
|
102
|
-
#else
|
|
103
|
-
strcpy_s(g_password, MAX_PATH, argv[i] + 6);
|
|
104
|
-
#endif
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
printf("Transactd test ... \nMay look like progress is stopped, \n"
|
|
108
|
-
"but it is such as record lock test, please wait.\n");
|
|
109
|
-
|
|
110
|
-
return 0;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const _TCHAR* makeUri(const _TCHAR* protocol, const _TCHAR* host,
|
|
116
|
-
const _TCHAR* dbname, const _TCHAR* dbfile=_T(""))
|
|
117
|
-
{
|
|
118
|
-
connectParams cp(protocol, host, dbname, dbfile, g_userName, g_password);
|
|
119
|
-
_tcscpy_s(g_uri, 260, cp.uri());
|
|
120
|
-
/*if (dbfile)
|
|
121
|
-
_stprintf_s(g_uri, MAX_PATH, _T("%s://%s/%s?dbfile=%s"), protocol, host,
|
|
122
|
-
dbname, dbfile);
|
|
123
|
-
else
|
|
124
|
-
_stprintf_s(g_uri, MAX_PATH, _T("%s://%s/%s"), protocol, host, dbname);*/
|
|
125
|
-
return g_uri;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
26
|
class fixture
|
|
129
27
|
{
|
|
130
28
|
mutable database* m_db;
|
|
@@ -250,6 +148,8 @@ void testClone(database* db)
|
|
|
250
148
|
BOOST_CHECK_MESSAGE(ret == false, "testTablePtr");
|
|
251
149
|
}
|
|
252
150
|
|
|
151
|
+
|
|
152
|
+
#define NAMEFIELD_TYPE ft_myvarbinary
|
|
253
153
|
void testCreateNewDataBase(database* db)
|
|
254
154
|
{
|
|
255
155
|
|
|
@@ -275,14 +175,10 @@ void testCreateNewDataBase(database* db)
|
|
|
275
175
|
{
|
|
276
176
|
/* user table */
|
|
277
177
|
tabledef td;
|
|
278
|
-
memset(&td, 0, sizeof(tabledef));
|
|
279
178
|
td.setTableName(_T("user"));
|
|
280
179
|
td.setFileName(_T("user.dat"));
|
|
281
180
|
td.id = 1;
|
|
282
|
-
|
|
283
|
-
td.parentKeyNum = -1;
|
|
284
|
-
td.replicaKeyNum = -1;
|
|
285
|
-
td.pageSize = 2048;
|
|
181
|
+
|
|
286
182
|
#ifdef _WIN32
|
|
287
183
|
td.charsetIndex = CHARSET_CP932;
|
|
288
184
|
#else
|
|
@@ -308,13 +204,15 @@ void testCreateNewDataBase(database* db)
|
|
|
308
204
|
//test padChar only string or wstring
|
|
309
205
|
fd->type = ft_string;
|
|
310
206
|
fd->setPadCharSettings(true, false);
|
|
311
|
-
BOOST_CHECK(fd->
|
|
312
|
-
BOOST_CHECK(fd->
|
|
207
|
+
BOOST_CHECK(fd->isUsePadChar() == true);
|
|
208
|
+
BOOST_CHECK(fd->isTrimPadChar() == false);
|
|
313
209
|
fd->setPadCharSettings(false, true);
|
|
314
|
-
BOOST_CHECK(fd->
|
|
315
|
-
BOOST_CHECK(fd->
|
|
210
|
+
BOOST_CHECK(fd->isUsePadChar() == false);
|
|
211
|
+
BOOST_CHECK(fd->isTrimPadChar() == true);
|
|
316
212
|
|
|
317
|
-
fd->type = ft_zstring;
|
|
213
|
+
//fd->type = ft_zstring;
|
|
214
|
+
fd->type = NAMEFIELD_TYPE;
|
|
215
|
+
fd->setNullable(use_nullfield);
|
|
318
216
|
def->updateTableDef(1);
|
|
319
217
|
BOOST_CHECK_MESSAGE(0 == def->stat(),
|
|
320
218
|
"updateTableDef 2 stat = " << def->stat());
|
|
@@ -323,6 +221,7 @@ void testCreateNewDataBase(database* db)
|
|
|
323
221
|
fd->setName(_T("select"));
|
|
324
222
|
fd->type = ft_integer;
|
|
325
223
|
fd->len = (ushort_td)4;
|
|
224
|
+
fd->setNullable(use_nullfield);
|
|
326
225
|
def->updateTableDef(1);
|
|
327
226
|
BOOST_CHECK_MESSAGE(0 == def->stat(),
|
|
328
227
|
"updateTableDef 2 stat = " << def->stat());
|
|
@@ -331,6 +230,7 @@ void testCreateNewDataBase(database* db)
|
|
|
331
230
|
fd->setName(_T("in"));
|
|
332
231
|
fd->type = ft_integer;
|
|
333
232
|
fd->len = (ushort_td)4;
|
|
233
|
+
fd->setNullable(use_nullfield);
|
|
334
234
|
def->updateTableDef(1);
|
|
335
235
|
BOOST_CHECK_MESSAGE(0 == def->stat(),
|
|
336
236
|
"updateTableDef 2 stat = " << def->stat());
|
|
@@ -399,34 +299,34 @@ void testVersion(database* db)
|
|
|
399
299
|
if (_tcscmp(PROTOCOL, _T("tdap")) == 0)
|
|
400
300
|
{
|
|
401
301
|
BOOST_CHECK_MESSAGE(
|
|
402
|
-
atoi(CPP_INTERFACE_VER_MAJOR) == vv.versions[
|
|
403
|
-
"clent_Major = " << vv.versions[
|
|
302
|
+
atoi(CPP_INTERFACE_VER_MAJOR) == vv.versions[VER_IDX_CLINET].majorVersion,
|
|
303
|
+
"clent_Major = " << vv.versions[VER_IDX_CLINET].majorVersion);
|
|
404
304
|
BOOST_CHECK_MESSAGE(
|
|
405
|
-
atoi(CPP_INTERFACE_VER_MINOR) == vv.versions[
|
|
406
|
-
"clent_Miner = " << vv.versions[
|
|
407
|
-
BOOST_CHECK_MESSAGE((int)'N' == (int)vv.versions[
|
|
408
|
-
"clent_Type = " << vv.versions[
|
|
305
|
+
atoi(CPP_INTERFACE_VER_MINOR) == vv.versions[VER_IDX_CLINET].minorVersion,
|
|
306
|
+
"clent_Miner = " << vv.versions[VER_IDX_CLINET].minorVersion);
|
|
307
|
+
BOOST_CHECK_MESSAGE((int)'N' == (int)vv.versions[VER_IDX_CLINET].type,
|
|
308
|
+
"clent_Type = " << vv.versions[VER_IDX_CLINET].type);
|
|
409
309
|
|
|
410
310
|
BOOST_CHECK_MESSAGE(
|
|
411
|
-
((5 == vv.versions[
|
|
412
|
-
(10 == vv.versions[
|
|
413
|
-
"mysql_server_Major = " << vv.versions[
|
|
311
|
+
((5 == vv.versions[VER_IDX_DB_SERVER].majorVersion) ||
|
|
312
|
+
(10 == vv.versions[VER_IDX_DB_SERVER].majorVersion)),
|
|
313
|
+
"mysql_server_Major = " << vv.versions[VER_IDX_DB_SERVER].majorVersion);
|
|
414
314
|
BOOST_CHECK_MESSAGE(
|
|
415
|
-
((5 <= vv.versions[
|
|
416
|
-
(
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
BOOST_CHECK_MESSAGE((int)'M' == (int)
|
|
420
|
-
"mysql_server_Type = " << vv.versions[
|
|
315
|
+
((5 <= vv.versions[VER_IDX_DB_SERVER].minorVersion) ||
|
|
316
|
+
(1 >= vv.versions[VER_IDX_DB_SERVER].minorVersion)),
|
|
317
|
+
"mysql_server_Miner = " << vv.versions[VER_IDX_DB_SERVER].minorVersion);
|
|
318
|
+
int type = (int)vv.versions[VER_IDX_DB_SERVER].type;
|
|
319
|
+
BOOST_CHECK_MESSAGE(((int)'M' == type) || ((int)'A' == type),
|
|
320
|
+
"mysql_server_Type = " << vv.versions[VER_IDX_DB_SERVER].type);
|
|
421
321
|
|
|
422
322
|
BOOST_CHECK_MESSAGE(
|
|
423
|
-
TRANSACTD_VER_MAJOR == vv.versions[
|
|
424
|
-
"server_Major = " << vv.versions[
|
|
323
|
+
TRANSACTD_VER_MAJOR == vv.versions[VER_IDX_PLUGIN].majorVersion,
|
|
324
|
+
"server_Major = " << vv.versions[VER_IDX_PLUGIN].majorVersion);
|
|
425
325
|
BOOST_CHECK_MESSAGE(
|
|
426
|
-
TRANSACTD_VER_MINOR == vv.versions[
|
|
427
|
-
"server_Miner = " << vv.versions[
|
|
428
|
-
BOOST_CHECK_MESSAGE((int)'T' == (int)vv.versions[
|
|
429
|
-
"server_Type = " << vv.versions[
|
|
326
|
+
TRANSACTD_VER_MINOR == vv.versions[VER_IDX_PLUGIN].minorVersion,
|
|
327
|
+
"server_Miner = " << vv.versions[VER_IDX_PLUGIN].minorVersion);
|
|
328
|
+
BOOST_CHECK_MESSAGE((int)'T' == (int)vv.versions[VER_IDX_PLUGIN].type,
|
|
329
|
+
"server_Type = " << vv.versions[VER_IDX_PLUGIN].type);
|
|
430
330
|
}
|
|
431
331
|
}
|
|
432
332
|
}
|
|
@@ -462,8 +362,6 @@ void testInsert(database* db)
|
|
|
462
362
|
tb->clearBuffer();
|
|
463
363
|
tb->setFV((short)0, i);
|
|
464
364
|
tb->setFV((short)1, i);
|
|
465
|
-
if (i == 87170)
|
|
466
|
-
i = 87170;
|
|
467
365
|
tb->insert();
|
|
468
366
|
}
|
|
469
367
|
tb->commitBulkInsert();
|
|
@@ -747,7 +645,7 @@ void testPrepareServer(database* db)
|
|
|
747
645
|
v = 50;
|
|
748
646
|
tb->setFV((short)0, v);
|
|
749
647
|
tb->seek();
|
|
750
|
-
BOOST_CHECK_MESSAGE(0 == tb->stat(), "seek");
|
|
648
|
+
BOOST_CHECK_MESSAGE(0 == tb->stat(), "seek stat = " << tb->stat());
|
|
751
649
|
tb->findNext(false);
|
|
752
650
|
findNextLoop(tb, v, 100);
|
|
753
651
|
|
|
@@ -1557,7 +1455,7 @@ void testTransactionLockReadCommited(database* db)
|
|
|
1557
1455
|
BOOST_CHECK_MESSAGE(0 == tb2->stat(), "tb->seekNext");
|
|
1558
1456
|
// Try lock(X) whith lock(IX)
|
|
1559
1457
|
tb2->update();
|
|
1560
|
-
BOOST_CHECK_MESSAGE(STATUS_LOCK_ERROR == tb2->stat(), "
|
|
1458
|
+
BOOST_CHECK_MESSAGE(STATUS_LOCK_ERROR == tb2->stat(), "tb2->update stat = " << tb2->stat());
|
|
1561
1459
|
|
|
1562
1460
|
/* ---------------------------------------------------------*/
|
|
1563
1461
|
/* Test single record lock Transaction and Transaction lock */
|
|
@@ -1663,7 +1561,7 @@ void testTransactionLockReadCommited(database* db)
|
|
|
1663
1561
|
tb2->seekFirst();
|
|
1664
1562
|
BOOST_CHECK_MESSAGE(0 == tb2->stat(), "tb2->seekFirst");
|
|
1665
1563
|
tb2->update();
|
|
1666
|
-
BOOST_CHECK_MESSAGE(STATUS_LOCK_ERROR == tb2->stat(), "tb2->update");
|
|
1564
|
+
BOOST_CHECK_MESSAGE(STATUS_LOCK_ERROR == tb2->stat(), "tb2->update stat = " << tb2->stat());
|
|
1667
1565
|
|
|
1668
1566
|
db->endTrn();
|
|
1669
1567
|
/* -------------------------------------------------*/
|
|
@@ -1972,15 +1870,18 @@ void testExclusive()
|
|
|
1972
1870
|
db2->close();
|
|
1973
1871
|
|
|
1974
1872
|
// Normal open
|
|
1873
|
+
/* Since MySQL 5.7 : D_OPEN_READONLY_EXCLUSIVE + TD_OPEN_NORMAL is fail,
|
|
1874
|
+
It's correct.
|
|
1875
|
+
*/
|
|
1876
|
+
|
|
1975
1877
|
db2->connect(makeUri(PROTOCOL, HOSTNAME, DBNAME), true);
|
|
1976
|
-
db2->open(makeUri(PROTOCOL, HOSTNAME, DBNAME, BDFNAME),
|
|
1977
|
-
|
|
1878
|
+
db2->open(makeUri(PROTOCOL, HOSTNAME, DBNAME, BDFNAME), TYPE_SCHEMA_BDF, TD_OPEN_NORMAL);
|
|
1879
|
+
|
|
1978
1880
|
if (MySQL5_7)
|
|
1979
|
-
BOOST_CHECK_MESSAGE(STATUS_CANNOT_LOCK_TABLE == db2->stat()
|
|
1980
|
-
, "Normal open");
|
|
1881
|
+
BOOST_CHECK_MESSAGE(STATUS_CANNOT_LOCK_TABLE == db2->stat() , "Normal open");
|
|
1981
1882
|
else
|
|
1982
|
-
BOOST_CHECK_MESSAGE(0 == db2->stat()
|
|
1983
|
-
|
|
1883
|
+
BOOST_CHECK_MESSAGE(0 == db2->stat(), "Normal open");
|
|
1884
|
+
|
|
1984
1885
|
db2->close();
|
|
1985
1886
|
|
|
1986
1887
|
// Write Exclusive open
|
|
@@ -2339,11 +2240,11 @@ void testReconnect(database* db)
|
|
|
2339
2240
|
//Check restore lock
|
|
2340
2241
|
tb2->setFV(fdi_id, 10);
|
|
2341
2242
|
tb2->seek(ROW_LOCK_X);
|
|
2342
|
-
BOOST_CHECK_MESSAGE(STATUS_LOCK_ERROR == tb2->stat(), "tb->seek stat = " << tb2->stat());
|
|
2243
|
+
BOOST_CHECK_MESSAGE(STATUS_LOCK_ERROR == tb2->stat(), "tb->seek stat = " << tb2->stat()); //0
|
|
2343
2244
|
|
|
2344
2245
|
tb->seekNext();
|
|
2345
|
-
BOOST_CHECK_MESSAGE(0 == tb->stat(), "tb->seek stat = " << tb->stat())
|
|
2346
|
-
BOOST_CHECK_MESSAGE(11 == tb->getFVint(fdi_id), "getFVint 11 bad = " << tb->getFVint(fdi_id))
|
|
2246
|
+
BOOST_CHECK_MESSAGE(0 == tb->stat(), "tb->seek stat = " << tb->stat());//8
|
|
2247
|
+
BOOST_CHECK_MESSAGE(11 == tb->getFVint(fdi_id), "getFVint 11 bad = " << tb->getFVint(fdi_id));//10
|
|
2347
2248
|
|
|
2348
2249
|
tb2->setFV(fdi_id, 11);
|
|
2349
2250
|
tb2->seek(ROW_LOCK_X);
|
|
@@ -2452,7 +2353,7 @@ void testLogin(database* db)
|
|
|
2452
2353
|
// invalid database name
|
|
2453
2354
|
testDropDatabase(db);
|
|
2454
2355
|
db->disconnect();
|
|
2455
|
-
BOOST_CHECK_MESSAGE(
|
|
2356
|
+
BOOST_CHECK_MESSAGE(STATUS_PROGRAM_ERROR == db->stat(),
|
|
2456
2357
|
"databese disconnect db->stat() = " << db->stat());
|
|
2457
2358
|
|
|
2458
2359
|
db->connect(makeUri(PROTOCOL, HOSTNAME, DBNAME));
|
|
@@ -2461,7 +2362,7 @@ void testLogin(database* db)
|
|
|
2461
2362
|
|
|
2462
2363
|
//connect is failed, no need disconnet.
|
|
2463
2364
|
db->disconnect();
|
|
2464
|
-
BOOST_CHECK_MESSAGE(
|
|
2365
|
+
BOOST_CHECK_MESSAGE(STATUS_PROGRAM_ERROR == db->stat(),
|
|
2465
2366
|
"databese disconnect db->stat() = " << db->stat());
|
|
2466
2367
|
}
|
|
2467
2368
|
|
|
@@ -2484,22 +2385,14 @@ void doCreateVarTable(database* db, int id, const _TCHAR* name, char fieldType,
|
|
|
2484
2385
|
// create table
|
|
2485
2386
|
dbdef* def = db->dbDef();
|
|
2486
2387
|
tabledef td;
|
|
2487
|
-
memset(&td, 0, sizeof(td));
|
|
2488
2388
|
td.setTableName(name);
|
|
2489
2389
|
_TCHAR buf[267];
|
|
2490
2390
|
_tcscpy_s(buf, 100, name);
|
|
2491
2391
|
_tcscat_s(buf, 100, _T(".dat"));
|
|
2492
2392
|
td.setFileName(buf);
|
|
2493
2393
|
td.id = id;
|
|
2494
|
-
td.keyCount = 0;
|
|
2495
|
-
td.fieldCount = 0;
|
|
2496
|
-
td.flags.all = 0;
|
|
2497
|
-
|
|
2498
|
-
td.primaryKeyNum = -1;
|
|
2499
|
-
td.parentKeyNum = -1;
|
|
2500
|
-
td.replicaKeyNum = -1;
|
|
2501
2394
|
|
|
2502
|
-
td.
|
|
2395
|
+
td.primaryKeyNum = 0;
|
|
2503
2396
|
|
|
2504
2397
|
td.charsetIndex = charset;
|
|
2505
2398
|
|
|
@@ -2571,7 +2464,7 @@ bool isUtf16leSupport(database* db)
|
|
|
2571
2464
|
{
|
|
2572
2465
|
btrVersions vv;
|
|
2573
2466
|
db->getBtrVersion(&vv);
|
|
2574
|
-
if ((int)'M' == (int)vv.versions[1].type)
|
|
2467
|
+
if ((int)'M' == (int)vv.versions[1].type || (int)'A' == (int)vv.versions[1].type)
|
|
2575
2468
|
{
|
|
2576
2469
|
if (vv.versions[1].majorVersion > 5)
|
|
2577
2470
|
return true;
|
|
@@ -3272,8 +3165,9 @@ void doInsertStringFileter(table* tb)
|
|
|
3272
3165
|
tb->setFV(_T("namew"), _T("おめでとうございます。"));
|
|
3273
3166
|
tb->insert();
|
|
3274
3167
|
BOOST_CHECK_MESSAGE(0 == tb->stat(), "InsertStringFileter 4");
|
|
3275
|
-
tb->commitBulkInsert();
|
|
3168
|
+
int n = tb->commitBulkInsert();
|
|
3276
3169
|
BOOST_CHECK_MESSAGE(0 == tb->stat(), "InsertStringFileter 5");
|
|
3170
|
+
BOOST_CHECK_MESSAGE(n == 3, "InsertStringFileter 5");
|
|
3277
3171
|
}
|
|
3278
3172
|
|
|
3279
3173
|
void doTestReadSF(table* tb)
|
|
@@ -3682,18 +3576,22 @@ void testLogic(database* db)
|
|
|
3682
3576
|
{
|
|
3683
3577
|
table* tb = openTable(db);
|
|
3684
3578
|
logic lc;
|
|
3579
|
+
db->dbDef()->tableDefs(1)->fieldDefs[1].type = ft_zstring;
|
|
3685
3580
|
|
|
3686
3581
|
lc.setParam(tb, _T("name"), _T("="), _T("abc"), eCend);
|
|
3687
3582
|
|
|
3688
3583
|
BOOST_CHECK_MESSAGE(lc.type == ft_zstring, " logic.type");
|
|
3689
|
-
|
|
3584
|
+
|
|
3690
3585
|
BOOST_CHECK_MESSAGE(lc.pos == 4, " logic.pos");
|
|
3691
3586
|
BOOST_CHECK_MESSAGE(lc.logType == 1, " logic.logType");
|
|
3692
3587
|
BOOST_CHECK_MESSAGE(lc.opr == eCend, " logic.opr");
|
|
3693
|
-
BOOST_CHECK_MESSAGE(strcmp((char*)lc.data, "abc") == 0, " logic.data");
|
|
3694
|
-
|
|
3695
3588
|
int len = lc.size();
|
|
3589
|
+
BOOST_CHECK_MESSAGE(lc.len == 33, " logic.len");
|
|
3590
|
+
BOOST_CHECK_MESSAGE(strcmp((char*)lc.data, "abc") == 0, " logic.data");
|
|
3696
3591
|
BOOST_CHECK_MESSAGE(len == 7 + 33, " logic.writeBuffer");
|
|
3592
|
+
|
|
3593
|
+
|
|
3594
|
+
|
|
3697
3595
|
|
|
3698
3596
|
// compField invalid filed name
|
|
3699
3597
|
bool ret = lc.setParam(tb, _T("name"), _T("="), _T("1"), eCend, true);
|
|
@@ -4292,8 +4190,7 @@ void testJoin(database* db)
|
|
|
4292
4190
|
gq.addFunction(&count3).keyField(_T("group")); //.resultField(_T("count"));
|
|
4293
4191
|
rs.groupBy(gq);
|
|
4294
4192
|
BOOST_CHECK_MESSAGE(rs.size() == 5,
|
|
4295
|
-
"group by2 rs.size()==" <<
|
|
4296
|
-
|
|
4193
|
+
"group by2 rs.size()==" << rs.size());
|
|
4297
4194
|
// having
|
|
4298
4195
|
recordsetQuery rq;
|
|
4299
4196
|
rq.when(_T("gropu1_count"), _T("="), 1).or_(_T("gropu1_count"), _T("="), 2);
|
|
@@ -4524,10 +4421,10 @@ void testServerPrepareJoin(database* db)
|
|
|
4524
4421
|
atu.keyValue(1).read(rs, stmt1, 15000);
|
|
4525
4422
|
ate.outerJoin(rs, stmt2, _T("id"));
|
|
4526
4423
|
BOOST_CHECK_MESSAGE(rs.size() == 15000, "outerJoin rs.size()== 15000");
|
|
4424
|
+
BOOST_CHECK_MESSAGE(rs[NO_RECORD_ID-1].isInvalidRecord() == true, "outerJoin isInvalidRecord");
|
|
4527
4425
|
atg.outerJoin(rs, stmt3, _T("group"));
|
|
4528
4426
|
BOOST_CHECK_MESSAGE(rs.size() == 15000, "join2 rs.size()== 15000");
|
|
4529
4427
|
|
|
4530
|
-
BOOST_CHECK_MESSAGE(rs[NO_RECORD_ID-1].isInvalidRecord() == true, "outerJoin isInvalidRecord");
|
|
4531
4428
|
BOOST_CHECK_MESSAGE(rs[NO_RECORD_ID][_T("comment")].i() == NO_RECORD_ID+1, "row of 6 = '6 comment'");
|
|
4532
4429
|
vs = rs[NO_RECORD_ID][_T("blob")].c_str();
|
|
4533
4430
|
ret = _tcscmp(vs, _T("6 blob")) == 0;
|
|
@@ -4541,6 +4438,7 @@ void testServerPrepareJoin(database* db)
|
|
|
4541
4438
|
ate.outerJoin(rs, stmt2, _T("id"));
|
|
4542
4439
|
BOOST_CHECK_MESSAGE(rs.size() == 15000, "outerJoin rs.size()== 15000");
|
|
4543
4440
|
BOOST_CHECK_MESSAGE(rs[NO_RECORD_ID-1].isInvalidRecord() == true, "outerJoin isInvalidRecord");
|
|
4441
|
+
BOOST_CHECK_MESSAGE(rs[NO_RECORD_ID-1][_T("comment")].isNull() == true, "outerJoin NULL");
|
|
4544
4442
|
BOOST_CHECK_MESSAGE(rs[NO_RECORD_ID][_T("comment")].i() == NO_RECORD_ID+1, "row of 6 = '6 comment'");
|
|
4545
4443
|
vs = rs[NO_RECORD_ID][_T("blob")].c_str();
|
|
4546
4444
|
ret = _tcscmp(vs, _T("6 blob")) == 0;
|
|
@@ -4553,7 +4451,8 @@ void testServerPrepareJoin(database* db)
|
|
|
4553
4451
|
// Test clone blob field
|
|
4554
4452
|
recordset& rs2 = *rs.clone();
|
|
4555
4453
|
BOOST_CHECK_MESSAGE(rs2.size() == 15000, "outerJoin rs2.size()== 15000");
|
|
4556
|
-
BOOST_CHECK_MESSAGE(rs2[NO_RECORD_ID-1].isInvalidRecord() == true, "outerJoin isInvalidRecord");
|
|
4454
|
+
//BOOST_CHECK_MESSAGE(rs2[NO_RECORD_ID-1].isInvalidRecord() == true, "outerJoin isInvalidRecord");
|
|
4455
|
+
BOOST_CHECK_MESSAGE(rs[NO_RECORD_ID-1][_T("comment")].isNull() == true, "outerJoin NULL");
|
|
4557
4456
|
BOOST_CHECK_MESSAGE(rs2[NO_RECORD_ID][_T("comment")].i() == NO_RECORD_ID+1, "row of 6 = '6 comment'");
|
|
4558
4457
|
vs = rs2[NO_RECORD_ID][_T("blob")].c_str();
|
|
4559
4458
|
ret = _tcscmp(vs, _T("6 blob")) == 0;
|
|
@@ -4940,10 +4839,10 @@ void createFilterTestDb(database* db)
|
|
|
4940
4839
|
td.setTableName(_T("user"));
|
|
4941
4840
|
td.setFileName(_T("user.dat"));
|
|
4942
4841
|
td.id = 1;
|
|
4943
|
-
td.primaryKeyNum = -1;
|
|
4842
|
+
/*td.primaryKeyNum = -1;
|
|
4944
4843
|
td.parentKeyNum = -1;
|
|
4945
4844
|
td.replicaKeyNum = -1;
|
|
4946
|
-
td.pageSize = 2048
|
|
4845
|
+
td.pageSize = 2048;*/
|
|
4947
4846
|
#ifdef _WIN32
|
|
4948
4847
|
td.charsetIndex = CHARSET_CP932;
|
|
4949
4848
|
#else
|
|
@@ -5011,7 +4910,7 @@ void doTestReadByQuery(int num, activeTable& at, recordset& rs, Q& q,
|
|
|
5011
4910
|
setReject(q);
|
|
5012
4911
|
at.index(0).keyValue(0).read(rs, q);
|
|
5013
4912
|
BOOST_CHECK_MESSAGE(compSize == (int)rs.size(),
|
|
5014
|
-
num << " " << msg << " rs.size() = " << rs.size());
|
|
4913
|
+
num << " " << msg << " " << compSize << " --> bad rs.size() = " << rs.size());
|
|
5015
4914
|
}
|
|
5016
4915
|
|
|
5017
4916
|
void testFilterOfServer(database* db)
|
|
@@ -5028,7 +4927,8 @@ void testFilterOfServer(database* db)
|
|
|
5028
4927
|
|
|
5029
4928
|
q.reset().where(fdf_names[i], _T("="), _T(""));
|
|
5030
4929
|
int n = 3;
|
|
5031
|
-
|
|
4930
|
+
fielddef* fd = &atu.table()->tableDef()->fieldDefs[i+1];
|
|
4931
|
+
if (fd->isUsePadChar())
|
|
5032
4932
|
n += 1;
|
|
5033
4933
|
doTestReadByQuery(i, atu, rs, q, n, "");
|
|
5034
4934
|
q.where(fdf_names[i], _T("=i"), _T(""));
|
|
@@ -5119,12 +5019,12 @@ void testFilterOfServer(database* db)
|
|
|
5119
5019
|
}
|
|
5120
5020
|
}
|
|
5121
5021
|
|
|
5122
|
-
void doTestMatchBy(int num, recordset& rs, recordsetQuery& rq, int compSize, const
|
|
5022
|
+
void doTestMatchBy(int num, recordset& rs, recordsetQuery& rq, int compSize, const char* msg)
|
|
5123
5023
|
{
|
|
5124
5024
|
recordset* rss = rs.clone();
|
|
5125
5025
|
rss->matchBy(rq);
|
|
5126
5026
|
BOOST_CHECK_MESSAGE(compSize == (int)rss->size(),
|
|
5127
|
-
num << msg <<
|
|
5027
|
+
num << " " << msg << " rss->size = " << rss->size());
|
|
5128
5028
|
rss->release();
|
|
5129
5029
|
}
|
|
5130
5030
|
|
|
@@ -5143,47 +5043,47 @@ void testFilterOfMatchBy(database* db)
|
|
|
5143
5043
|
recordsetQuery rq;
|
|
5144
5044
|
rq.when(fdf_names[i], _T("="), _T(""));
|
|
5145
5045
|
int n = 3;
|
|
5146
|
-
if (atu.table()->tableDef()->fieldDefs[i+1].
|
|
5046
|
+
if (atu.table()->tableDef()->fieldDefs[i+1].isUsePadChar())
|
|
5147
5047
|
n += 1;
|
|
5148
|
-
doTestMatchBy(i, rs, rq, n,
|
|
5048
|
+
doTestMatchBy(i, rs, rq, n, " = ");
|
|
5149
5049
|
rq.reset().when(fdf_names[i], _T("=i"), _T(""));
|
|
5150
|
-
doTestMatchBy(i, rs, rq, n,
|
|
5050
|
+
doTestMatchBy(i, rs, rq, n, " =i ");
|
|
5151
5051
|
|
|
5152
5052
|
|
|
5153
5053
|
// wildcard
|
|
5154
5054
|
rq.reset().when(fdf_names[i], _T("="), _T("09*"));
|
|
5155
|
-
doTestMatchBy(i, rs, rq, 5,
|
|
5055
|
+
doTestMatchBy(i, rs, rq, 5, " = 09*");
|
|
5156
5056
|
rq.reset().when(fdf_names[i], _T("=i"), _T("09*"));
|
|
5157
|
-
doTestMatchBy(i, rs, rq, 5,
|
|
5057
|
+
doTestMatchBy(i, rs, rq, 5, " =i 09*");
|
|
5158
5058
|
|
|
5159
5059
|
// match complate
|
|
5160
5060
|
rq.reset().when(fdf_names[i], _T("="), _T("070"));
|
|
5161
|
-
doTestMatchBy(i, rs, rq, 1,
|
|
5061
|
+
doTestMatchBy(i, rs, rq, 1, " = 070");
|
|
5162
5062
|
rq.reset().when(fdf_names[i], _T("=i"), _T("070"));
|
|
5163
|
-
doTestMatchBy(i, rs, rq, 1,
|
|
5063
|
+
doTestMatchBy(i, rs, rq, 1, " =i 070");
|
|
5164
5064
|
|
|
5165
5065
|
// match complate
|
|
5166
5066
|
rq.reset().when(fdf_names[i], _T("<"), _T("09"));
|
|
5167
|
-
doTestMatchBy(i, rs, rq, 7,
|
|
5067
|
+
doTestMatchBy(i, rs, rq, 7, " < 09");
|
|
5168
5068
|
|
|
5169
5069
|
rq.reset().when(fdf_names[i], _T("<i"), _T("09"));
|
|
5170
|
-
doTestMatchBy(i, rs, rq, 7,
|
|
5070
|
+
doTestMatchBy(i, rs, rq, 7, " <i 09");
|
|
5171
5071
|
|
|
5172
5072
|
// ascii
|
|
5173
5073
|
rq.reset().when(fdf_names[i], _T("="), _T("a*"));
|
|
5174
|
-
doTestMatchBy(i, rs, rq, 1,
|
|
5074
|
+
doTestMatchBy(i, rs, rq, 1, " = a*");
|
|
5175
5075
|
|
|
5176
5076
|
rq.reset().when(fdf_names[i], _T("=i"), _T("a*"));
|
|
5177
|
-
doTestMatchBy(i, rs, rq, 3,
|
|
5077
|
+
doTestMatchBy(i, rs, rq, 3, " =i a*");
|
|
5178
5078
|
|
|
5179
5079
|
rq.reset().when(fdf_names[i], _T("=i"), _T("A*"));
|
|
5180
|
-
doTestMatchBy(i, rs, rq, 3,
|
|
5080
|
+
doTestMatchBy(i, rs, rq, 3, " =i A*");
|
|
5181
5081
|
|
|
5182
5082
|
rq.reset().when(fdf_names[i], _T("="), _T("AA0*"));
|
|
5183
|
-
doTestMatchBy(i, rs, rq, 0,
|
|
5083
|
+
doTestMatchBy(i, rs, rq, 0, " = AA0*");
|
|
5184
5084
|
|
|
5185
5085
|
rq.reset().when(fdf_names[i], _T("=i"), _T("AA0*"));
|
|
5186
|
-
doTestMatchBy(i, rs, rq, 1,
|
|
5086
|
+
doTestMatchBy(i, rs, rq, 1, " =i Aa0*");
|
|
5187
5087
|
|
|
5188
5088
|
|
|
5189
5089
|
BOOST_CHECK_MESSAGE(FILTER_RECORDS == rs.size(), " rs.size() = " << rs.size());
|
|
@@ -5218,7 +5118,7 @@ void testBinaryField()
|
|
|
5218
5118
|
fdd.len = 255;
|
|
5219
5119
|
fdd.pos = 0;
|
|
5220
5120
|
|
|
5221
|
-
client::field fd(buf, fdd, NULL);
|
|
5121
|
+
client::field fd(buf, fdd, NULL/*, NULL, 0*/);
|
|
5222
5122
|
for (int i = 0 ; i < 10; ++i)
|
|
5223
5123
|
{
|
|
5224
5124
|
fdd.type = field_types[i];
|
|
@@ -5247,8 +5147,30 @@ BOOST_FIXTURE_TEST_CASE(createNewDataBase, fixture)
|
|
|
5247
5147
|
{
|
|
5248
5148
|
connectParams cp(PROTOCOL, HOSTNAME, DBNAME, BDFNAME, g_userName);
|
|
5249
5149
|
_tprintf(_T("URI = %s\n"), cp.uri());
|
|
5250
|
-
|
|
5150
|
+
bool ret = db()->open(makeUri(PROTOCOL, HOSTNAME, DBNAME, BDFNAME));
|
|
5151
|
+
if (ret)
|
|
5152
|
+
{
|
|
5251
5153
|
db()->drop();
|
|
5154
|
+
if (db()->stat())
|
|
5155
|
+
{
|
|
5156
|
+
printf("test database drop error No.%d\nTest is stopped !" , db()->stat());
|
|
5157
|
+
exit(1);
|
|
5158
|
+
}
|
|
5159
|
+
}
|
|
5160
|
+
db()->connect(makeUri(PROTOCOL, HOSTNAME, _T("")));
|
|
5161
|
+
|
|
5162
|
+
btrVersions v;
|
|
5163
|
+
db()->getBtrVersion(&v);
|
|
5164
|
+
if (db()->stat() ==0)
|
|
5165
|
+
{
|
|
5166
|
+
_tprintf(_T("%s-%d.%d with Transactd plugin %d.%d\n"),
|
|
5167
|
+
v.versions[VER_IDX_DB_SERVER].type == 'M' ? _T("mysql") : _T("mariadb"),
|
|
5168
|
+
v.versions[VER_IDX_DB_SERVER].majorVersion,
|
|
5169
|
+
v.versions[VER_IDX_DB_SERVER].minorVersion,
|
|
5170
|
+
v.versions[VER_IDX_PLUGIN].majorVersion,
|
|
5171
|
+
v.versions[VER_IDX_PLUGIN].minorVersion
|
|
5172
|
+
);
|
|
5173
|
+
}
|
|
5252
5174
|
testCreateNewDataBase(db());
|
|
5253
5175
|
}
|
|
5254
5176
|
BOOST_FIXTURE_TEST_CASE(clone, fixture)
|