transactd 2.4.5 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -22,6 +22,8 @@ mb_internal_encoding('UTF-8');
|
|
22
22
|
require_once("transactd.php");
|
23
23
|
use BizStation\Transactd as Bz;
|
24
24
|
|
25
|
+
Bz\transactd::setRecordValueMode(Bz\transactd::RECORD_KEYVALUE_FIELDVALUE);
|
26
|
+
|
25
27
|
function getHost()
|
26
28
|
{
|
27
29
|
$host = getenv('TRANSACTD_PHPUNIT_HOST');
|
@@ -148,11 +150,11 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
148
150
|
//test padChar only string or wstring
|
149
151
|
$fd->type = Bz\transactd::ft_string;
|
150
152
|
$fd->setPadCharSettings(true, false);
|
151
|
-
$this->assertEquals($fd->
|
152
|
-
$this->assertEquals($fd->
|
153
|
+
$this->assertEquals($fd->isUsePadChar(), true);
|
154
|
+
$this->assertEquals($fd->isTrimPadChar(), false);
|
153
155
|
$fd->setPadCharSettings(false, true);
|
154
|
-
$this->assertEquals($fd->
|
155
|
-
$this->assertEquals($fd->
|
156
|
+
$this->assertEquals($fd->isUsePadChar(), false);
|
157
|
+
$this->assertEquals($fd->isTrimPadChar(), true);
|
156
158
|
|
157
159
|
$fd->type = Bz\transactd::ft_zstring;
|
158
160
|
$dbdef->updateTableDef($tableid);
|
@@ -220,10 +222,6 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
220
222
|
$this->assertEquals($dbdef->stat(), 0);
|
221
223
|
$this->assertEquals($dbdef->validateTableDef($tableid), 0);
|
222
224
|
|
223
|
-
//test toChar
|
224
|
-
$s = $td->toChar('abcdefg');
|
225
|
-
$this->assertEquals($s, 'abcdefg');
|
226
|
-
|
227
225
|
}
|
228
226
|
private function openTable($db)
|
229
227
|
{
|
@@ -330,9 +328,10 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
330
328
|
$this->assertEquals($client_ver->minorVersion, Bz\transactd::CPP_INTERFACE_VER_MINOR);
|
331
329
|
$this->assertEquals(chr($client_ver->type), 'N');
|
332
330
|
$my5x = ($server_ver->majorVersion == 5) && ($server_ver->minorVersion >= 5);
|
333
|
-
$maria10 = ($server_ver->majorVersion == 10) && ($server_ver->minorVersion
|
331
|
+
$maria10 = ($server_ver->majorVersion == 10) && ($server_ver->minorVersion <= 1);
|
334
332
|
$this->assertTrue($my5x || $maria10);
|
335
|
-
$
|
333
|
+
$tmp = (chr($server_ver->type) == 'M') || (chr($server_ver->type) == 'A');
|
334
|
+
$this->assertTrue($tmp);
|
336
335
|
$this->assertEquals($engine_ver->majorVersion, Bz\transactd::TRANSACTD_VER_MAJOR);
|
337
336
|
$this->assertEquals($engine_ver->minorVersion, Bz\transactd::TRANSACTD_VER_MINOR);
|
338
337
|
$this->assertEquals(chr($engine_ver->type), 'T');
|
@@ -1566,6 +1565,15 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
1566
1565
|
$tb2->seekFirst(Bz\transactd::ROW_LOCK_S);
|
1567
1566
|
$this->assertEquals(Bz\transactd::STATUS_INVALID_LOCKTYPE, $tb2->stat());
|
1568
1567
|
}
|
1568
|
+
private function isMySQL5_7($db)
|
1569
|
+
{
|
1570
|
+
$vv = new Bz\btrVersions();
|
1571
|
+
$db->getBtrVersion($vv);
|
1572
|
+
$server_ver = $vv->version(1);
|
1573
|
+
return ($db->stat() == 0) &&
|
1574
|
+
((5 == $server_ver->majorVersion) &&
|
1575
|
+
(7 == $server_ver->minorVersion));
|
1576
|
+
}
|
1569
1577
|
public function testExclusive()
|
1570
1578
|
{
|
1571
1579
|
// db mode exclusive
|
@@ -1597,15 +1605,24 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
1597
1605
|
$tb = $db->openTable(TABLENAME, Bz\transactd::TD_OPEN_READONLY_EXCLUSIVE);
|
1598
1606
|
$this->assertEquals($db->stat(), 0);
|
1599
1607
|
|
1608
|
+
$mysql5_7 = $this->isMySQL5_7($db);
|
1609
|
+
|
1600
1610
|
// Read only open
|
1601
1611
|
$db2->open(URL, Bz\transactd::TYPE_SCHEMA_BDF);
|
1602
1612
|
$this->assertEquals($db2->stat(), 0);
|
1603
1613
|
$db2->close();
|
1604
1614
|
|
1605
1615
|
// Normal open
|
1616
|
+
// Since MySQL 5.7 : D_OPEN_READONLY_EXCLUSIVE + TD_OPEN_NORMAL is fail,
|
1617
|
+
// It's correct.
|
1618
|
+
//
|
1619
|
+
|
1606
1620
|
$db2->connect(URL_DB, true);
|
1607
1621
|
$db2->open(URL, Bz\transactd::TYPE_SCHEMA_BDF, Bz\transactd::TD_OPEN_NORMAL);
|
1608
|
-
|
1622
|
+
if ($mysql5_7 == true)
|
1623
|
+
$this->assertEquals($db2->stat(), Bz\transactd::STATUS_CANNOT_LOCK_TABLE);
|
1624
|
+
else
|
1625
|
+
$this->assertEquals($db2->stat(), 0);
|
1609
1626
|
$db2->close();
|
1610
1627
|
|
1611
1628
|
// Write Exclusive open
|
@@ -1935,7 +1952,7 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
1935
1952
|
// invalid database name
|
1936
1953
|
$this->dropDatabase($db);
|
1937
1954
|
$db->disconnect();
|
1938
|
-
$this->assertEquals($db->stat(),
|
1955
|
+
$this->assertEquals($db->stat(), 1);
|
1939
1956
|
$db->connect(URL_DB);
|
1940
1957
|
$this->assertEquals($db->stat(), Bz\transactd::ERROR_NO_DATABASE);
|
1941
1958
|
$db->disconnect();
|
@@ -1956,7 +1973,7 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
1956
1973
|
$vv = new Bz\btrVersions();
|
1957
1974
|
$db->getBtrVersion($vv);
|
1958
1975
|
$server_ver = $vv->version(1);
|
1959
|
-
if ('M' == chr($server_ver->type))
|
1976
|
+
if ('M' == chr($server_ver->type) || 'A' == chr($server_ver->type))
|
1960
1977
|
{
|
1961
1978
|
if ($server_ver->majorVersion <= 4)
|
1962
1979
|
return false;
|
@@ -2468,6 +2485,21 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
2468
2485
|
//-----------------------------------------------------
|
2469
2486
|
// transactd StringFilter
|
2470
2487
|
//-----------------------------------------------------
|
2488
|
+
private function varLenBytes($fd)
|
2489
|
+
{
|
2490
|
+
if ((($fd->type >= ft_myvarchar) && ($fd->type <= ft_mywvarbinary)) || $fd->type == ft_lstring)
|
2491
|
+
return $fd->len < 256 ? 1 : 2;
|
2492
|
+
else if ($fd->type == ft_lvar)
|
2493
|
+
return 2;
|
2494
|
+
return 0;
|
2495
|
+
}
|
2496
|
+
|
2497
|
+
private function blobLenBytes($fd)
|
2498
|
+
{
|
2499
|
+
if (($fd->type== ft_myblob) || ($fd->type == ft_mytext))
|
2500
|
+
return $fd->len - 8;
|
2501
|
+
return 0;
|
2502
|
+
}
|
2471
2503
|
|
2472
2504
|
private function createTableStringFilter($db, $id, $name, $type, $type2)
|
2473
2505
|
{
|
@@ -2492,12 +2524,12 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
2492
2524
|
$fd->setName('name');
|
2493
2525
|
$fd->type = $type;
|
2494
2526
|
$fd->len = 44;
|
2495
|
-
if ($
|
2527
|
+
if ($this->varLenBytes($fd) != 0)
|
2496
2528
|
{
|
2497
|
-
$fd->len = $
|
2529
|
+
$fd->len = $this->varLenBytes($fd) + 44;
|
2498
2530
|
$fd->keylen = $fd->len;
|
2499
2531
|
}
|
2500
|
-
if ($
|
2532
|
+
if ($this->blobLenBytes($fd) != 0)
|
2501
2533
|
$fd->len = 12; // 8+4
|
2502
2534
|
$fd->keylen = $fd->len;
|
2503
2535
|
$dbdef->updateTableDef($id);
|
@@ -2506,12 +2538,12 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
2506
2538
|
$fd->setName('namew');
|
2507
2539
|
$fd->type = $type2;
|
2508
2540
|
$fd->len = 44;
|
2509
|
-
if ($
|
2541
|
+
if ($this->varLenBytes($fd) != 0)
|
2510
2542
|
{
|
2511
|
-
$fd->len = $
|
2543
|
+
$fd->len = $this->varLenBytes($fd) + 44;
|
2512
2544
|
$fd->keylen = $fd->len;
|
2513
2545
|
}
|
2514
|
-
if ($
|
2546
|
+
if ($this->blobLenBytes($fd) != 0)
|
2515
2547
|
$fd->len = 12; // 8+4
|
2516
2548
|
$fd->keylen = $fd->len;
|
2517
2549
|
$dbdef->updateTableDef($id);
|
@@ -3515,10 +3547,10 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
3515
3547
|
$rs = $atu->keyValue(1)->read($stmt1, 15000);
|
3516
3548
|
$ate->outerJoin($rs, $stmt2, 'id');
|
3517
3549
|
$this->assertEquals($rs->size(), 15000);
|
3550
|
+
$this->assertEquals($rs[NO_RECORD_ID - 1]->isInvalidRecord(), true);
|
3518
3551
|
$atg->outerJoin($rs, $stmt3, 'group');
|
3519
3552
|
$this->assertEquals($rs->size(), 15000);
|
3520
3553
|
|
3521
|
-
$this->assertEquals($rs[NO_RECORD_ID - 1]->isInvalidRecord(), true);
|
3522
3554
|
$this->assertEquals($rs[NO_RECORD_ID]['comment'], '' . (NO_RECORD_ID + 1) . ' comment');
|
3523
3555
|
$this->assertEquals($rs[NO_RECORD_ID]['blob'], '' . (NO_RECORD_ID + 1) . ' blob');
|
3524
3556
|
|
@@ -3530,13 +3562,15 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
3530
3562
|
$ate->outerJoin($rs, $stmt2, 'id');
|
3531
3563
|
$this->assertEquals($rs->size(), 15000);
|
3532
3564
|
$this->assertEquals($rs[NO_RECORD_ID - 1]->isInvalidRecord(), true);
|
3565
|
+
$this->assertEquals($rs[NO_RECORD_ID - 1]->getField('comment')->isNull(), true);
|
3533
3566
|
$this->assertEquals($rs[NO_RECORD_ID]['comment'], '' . (NO_RECORD_ID + 1) . ' comment');
|
3534
3567
|
$this->assertEquals($rs[NO_RECORD_ID]['blob'], '' . (NO_RECORD_ID + 1) . ' blob');
|
3535
3568
|
|
3536
3569
|
// Test clone blob field
|
3537
3570
|
$rs2 = clone($rs);
|
3538
3571
|
$this->assertEquals($rs2->size(), 15000);
|
3539
|
-
|
3572
|
+
//$this->assertEquals($rs2[NO_RECORD_ID - 1]->isInvalidRecord(), true);
|
3573
|
+
$this->assertEquals($rs2[NO_RECORD_ID - 1]->getField('comment')->isNull(), true);
|
3540
3574
|
$this->assertEquals($rs2[NO_RECORD_ID]['comment'], '' . (NO_RECORD_ID + 1) . ' comment');
|
3541
3575
|
$this->assertEquals($rs2[NO_RECORD_ID]['blob'], '' . (NO_RECORD_ID + 1) . ' blob');
|
3542
3576
|
|
@@ -46,19 +46,14 @@ class transactdDatetimeTest extends PHPUnit_Framework_TestCase
|
|
46
46
|
{
|
47
47
|
$i_nowtime = Bz\transactd::getNowTime(); // get now time as integer
|
48
48
|
$s_i_nowtime = Bz\transactd::btrttoa($i_nowtime);
|
49
|
-
$s_i_nowtime2 = Bz\transactd::btrttoa($i_nowtime, true);
|
50
49
|
//print_r($i_nowtime);
|
51
50
|
//print_r($s_i_nowtime);
|
52
|
-
//print_r($s_i_nowtime2);
|
53
51
|
$nowtime = new Bz\btrTime();
|
54
52
|
$nowtime->i = $i_nowtime; // get now time as BtrTime
|
55
53
|
$s_nowtime = Bz\transactd::btrttoa($nowtime);
|
56
|
-
$s_nowtime2 = Bz\transactd::btrttoa($nowtime, true);
|
57
54
|
//print_r($nowtime);
|
58
55
|
//print_r($s_nowtime);
|
59
|
-
//print_r($s_nowtime2);
|
60
56
|
$this->assertEquals($s_i_nowtime, $s_nowtime);
|
61
|
-
$this->assertEquals($s_i_nowtime2, $s_nowtime2);
|
62
57
|
}
|
63
58
|
public function testGetBtrdatetime()
|
64
59
|
{
|