transactd 3.4.1 → 3.5.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 +2 -2
- data/bin/common/tdclc_32_3_5.dll +0 -0
- data/bin/common/tdclc_64_3_5.dll +0 -0
- data/build/common/options.cmake +12 -0
- data/build/common/transactd_cl_common.cmake +1 -0
- data/build/common/transactd_required.cmake +5 -0
- data/build/swig/ruby/tdclrb_wrap.cpp +1029 -130
- data/build/swig/tdcl.i +60 -5
- data/build/tdclc/CMakeLists.txt +30 -32
- data/build/tdclc/libtdclcm.map +1 -1
- data/build/tdclc/tdclc.cbproj +1 -1
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/CMakeLists.txt +39 -48
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclcpp/tdclcpp_bc.cbproj +4 -1
- data/build/tdclrb/CMakeLists.txt +5 -4
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/engine/mysql/database.cpp +45 -35
- data/source/bzs/db/engine/mysql/database.h +6 -8
- data/source/bzs/db/engine/mysql/dbManager.cpp +11 -0
- data/source/bzs/db/engine/mysql/dbManager.h +1 -0
- data/source/bzs/db/engine/mysql/ha.cpp +174 -0
- data/source/bzs/db/engine/mysql/ha.h +50 -0
- data/source/bzs/db/engine/mysql/mysqlInternal.h +18 -1
- data/source/bzs/db/engine/mysql/mysqlProtocol.cpp +222 -9
- data/source/bzs/db/engine/mysql/mysqlProtocol.h +5 -0
- data/source/bzs/db/protocol/tdap/client/client.cpp +23 -9
- data/source/bzs/db/protocol/tdap/client/client.h +125 -94
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +139 -30
- data/source/bzs/db/protocol/tdap/client/connMgr.h +40 -8
- data/source/bzs/db/protocol/tdap/client/database.cpp +17 -17
- data/source/bzs/db/protocol/tdap/client/database.h +15 -0
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +10 -4
- data/source/bzs/db/protocol/tdap/client/haNameResolver.cpp +486 -0
- data/source/bzs/db/protocol/tdap/client/haNameResolver.h +74 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +102 -71
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +15 -3
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +2 -5
- data/source/bzs/db/protocol/tdap/client/nsTable.h +2 -1
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +2 -2
- data/source/bzs/db/protocol/tdap/client/table.cpp +1 -2
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +13 -0
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -0
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +9 -7
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +2 -2
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +328 -117
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +7 -8
- data/source/bzs/db/protocol/tdap/tdapcapi.h +81 -41
- data/source/bzs/db/transactd/connManager.cpp +118 -93
- data/source/bzs/db/transactd/connManager.h +6 -1
- data/source/bzs/db/transactd/connectionRecord.h +27 -7
- data/source/bzs/db/transactd/transactd.cpp +24 -13
- data/source/bzs/env/crosscompile.h +2 -0
- data/source/bzs/netsvc/client/iconnection.h +2 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +45 -14
- data/source/bzs/netsvc/client/tcpClient.h +21 -4
- data/source/bzs/netsvc/server/IAppModule.h +1 -0
- data/source/bzs/netsvc/server/serverCpt.cpp +1 -1
- data/source/bzs/netsvc/server/serverPipe.cpp +2 -0
- data/source/bzs/netsvc/server/serverTpool.cpp +3 -5
- data/source/bzs/test/tdclatl/test_v3.js +91 -3
- data/source/bzs/test/tdclphp/transactd_v3_Test.php +89 -3
- data/source/bzs/test/tdclrb/transactd_v3_spec.rb +69 -2
- data/source/bzs/test/trdclengn/testField.h +19 -1
- data/source/bzs/test/trdclengn/test_tdclcpp_ha.cpp +388 -0
- data/source/bzs/test/trdclengn/test_tdclcpp_v3.cpp +6 -1
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +1 -0
- data/source/bzs/test/trdclengn/testbase.h +7 -1
- data/source/global/replication/haCommand.cpp +843 -0
- data/source/global/replication/haCommand.h +78 -0
- data/source/global/replication/haMgr.cpp +321 -0
- data/source/global/replication/replCommand.cpp +696 -0
- data/source/global/replication/replCommand.h +161 -0
- data/source/global/tdclatl/BinlogPos.cpp +10 -0
- data/source/global/tdclatl/BinlogPos.h +1 -0
- data/source/global/tdclatl/ConnMgr.cpp +89 -2
- data/source/global/tdclatl/ConnMgr.h +13 -1
- data/source/global/tdclatl/ConnRecord.cpp +8 -2
- data/source/global/tdclatl/ConnRecord.h +4 -3
- data/source/global/tdclatl/Database.cpp +13 -0
- data/source/global/tdclatl/Database.h +2 -0
- data/source/global/tdclatl/HaNameREsolver.cpp +54 -0
- data/source/global/tdclatl/HaNameREsolver.h +68 -0
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/tdclatl.idl +76 -5
- metadata +16 -6
- data/bin/common/tdclc_32_3_4.dll +0 -0
- data/bin/common/tdclc_64_3_4.dll +0 -0
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +0 -423
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +0 -116
@@ -0,0 +1,68 @@
|
|
1
|
+
|
2
|
+
#pragma once
|
3
|
+
#include "resource.h" // ���C�� �V���{��
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
#include "tdclatl_i.h"
|
8
|
+
#include <bzs/db/protocol/tdap/client/haNameResolver.h>
|
9
|
+
|
10
|
+
|
11
|
+
#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
|
12
|
+
#error "DCOM �̊��S�T�|�[�g���܂�ł��Ȃ� Windows Mobile �v���b�g�t�H�[���̂悤�� Windows CE �v���b�g�t�H�[���ł́A�P��X���b�h COM �I�u�W�F�N�g�͐������T�|�[�g����Ă��܂���BATL ���P��X���b�h COM �I�u�W�F�N�g�̍쐬���T�|�[�g���邱�ƁA����т��̒P��X���b�h COM �I�u�W�F�N�g�̎����̎g�p�������邱�Ƃ���������ɂ́A_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA ���`���Ă��������B���g�p�� rgs �t�@�C���̃X���b�h ���f���� 'Free' �ɐݒ肳��Ă���ADCOM Windows CE �ȊO�̃v���b�g�t�H�[���ŃT�|�[�g�����B��̃X���b�h ���f���Ɛݒ肳��Ă��܂����B"
|
13
|
+
#endif
|
14
|
+
|
15
|
+
using namespace ATL;
|
16
|
+
|
17
|
+
|
18
|
+
// CHaNameResolver
|
19
|
+
|
20
|
+
class ATL_NO_VTABLE CHaNameResolver :
|
21
|
+
public CComObjectRootEx<CComSingleThreadModel>,
|
22
|
+
public CComCoClass<CHaNameResolver, &CLSID_HaNameResolver>,
|
23
|
+
public IDispatchImpl<IHaNameResolver, &IID_IHaNameResolver, &LIBID_transactd, /*wMajor =*/ 1, /*wMinor =*/ 0>
|
24
|
+
{
|
25
|
+
|
26
|
+
public:
|
27
|
+
|
28
|
+
|
29
|
+
CHaNameResolver()
|
30
|
+
{
|
31
|
+
}
|
32
|
+
|
33
|
+
DECLARE_REGISTRY_RESOURCEID(IDR_HANAMERESOLVER)
|
34
|
+
|
35
|
+
|
36
|
+
BEGIN_COM_MAP(CHaNameResolver)
|
37
|
+
COM_INTERFACE_ENTRY(IHaNameResolver)
|
38
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
39
|
+
END_COM_MAP()
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
44
|
+
|
45
|
+
HRESULT FinalConstruct()
|
46
|
+
{
|
47
|
+
return S_OK;
|
48
|
+
}
|
49
|
+
|
50
|
+
void FinalRelease()
|
51
|
+
{
|
52
|
+
}
|
53
|
+
|
54
|
+
public:
|
55
|
+
STDMETHOD(Start)(BSTR master, BSTR slaves,
|
56
|
+
BSTR slaveHostsWithPort, short slaveNum,
|
57
|
+
BSTR userName,
|
58
|
+
BSTR password,
|
59
|
+
int option, int* retVal);
|
60
|
+
STDMETHOD(AddPortMap)(short mysqlPort, short transactdPort);
|
61
|
+
STDMETHOD(ClearPortMap)();
|
62
|
+
STDMETHOD(Stop)();
|
63
|
+
STDMETHOD(get_Master)(BSTR* retVal);
|
64
|
+
STDMETHOD(get_Slave)(BSTR* retVal);
|
65
|
+
|
66
|
+
};
|
67
|
+
|
68
|
+
OBJECT_ENTRY_AUTO(__uuidof(HaNameResolver), CHaNameResolver)
|
Binary file
|
@@ -49,6 +49,7 @@ interface IBookmark;
|
|
49
49
|
interface IBitset;
|
50
50
|
interface IBinlogPos;
|
51
51
|
interface IConnMgr;
|
52
|
+
interface IHaNameResolver;
|
52
53
|
|
53
54
|
typedef
|
54
55
|
[
|
@@ -205,7 +206,10 @@ enum eStatus
|
|
205
206
|
ERROR_TD_NET_TOO_BIGDATA = 3802,
|
206
207
|
ERROR_TD_NET_OTHER = 3810,
|
207
208
|
ERROR_TD_C_CLIENT_UNKNOWN = 3811,
|
208
|
-
|
209
|
+
ERROR_TD_INVALID_SERVER_ROLE= 3812,
|
210
|
+
ERROR_TD_RECONNECTED = 3900,
|
211
|
+
ERROR_TD_RECONNECTED_OFFSET = 1000,
|
212
|
+
MYSQL_ERROR_OFFSET = 25000
|
209
213
|
}eStatus;
|
210
214
|
|
211
215
|
typedef
|
@@ -571,6 +575,10 @@ interface IDatabase : IDispatch
|
|
571
575
|
HRESULT _stdcall GetCreateViewSql([in]BSTR name, [out, retval] BSTR* retVal);
|
572
576
|
[id(0x00000101)]
|
573
577
|
HRESULT _stdcall ExecSql([in] BSTR Sql, [out, retval] VARIANT_BOOL* Value);
|
578
|
+
[propget, id(0x00000102)]
|
579
|
+
HRESULT _stdcall EnableAutoReconnect([out, retval] VARIANT_BOOL* retVal);
|
580
|
+
[propput, id(0x00000102)]
|
581
|
+
HRESULT _stdcall EnableAutoReconnect([in] VARIANT_BOOL val);
|
574
582
|
|
575
583
|
};
|
576
584
|
|
@@ -1780,6 +1788,8 @@ interface IBinlogPos : IDispatch{
|
|
1780
1788
|
HRESULT _stdcall Filename([out, retval] BSTR* retVal);
|
1781
1789
|
[propget, id(3)]
|
1782
1790
|
HRESULT _stdcall Gtid([out, retval] BSTR* retVal);
|
1791
|
+
[propput, id(3)]
|
1792
|
+
HRESULT _stdcall Gtid([in] BSTR Value);
|
1783
1793
|
};
|
1784
1794
|
|
1785
1795
|
[
|
@@ -1797,11 +1807,11 @@ interface IConnRecord : IDispatch{
|
|
1797
1807
|
HRESULT _stdcall ConId([out, retval] BSTR* retVal);
|
1798
1808
|
#endif
|
1799
1809
|
[propget, id(0x0000002)]
|
1800
|
-
HRESULT _stdcall Id([out, retval] int* retVal);
|
1810
|
+
HRESULT _stdcall Id([out, retval] int* retVal);
|
1801
1811
|
[propget, id(0x0000003)]
|
1802
|
-
HRESULT _stdcall Db([out, retval]
|
1812
|
+
HRESULT _stdcall Db([out, retval] int* retVal);
|
1803
1813
|
[propget, id(0x0000004)]
|
1804
|
-
HRESULT _stdcall Type([out, retval]
|
1814
|
+
HRESULT _stdcall Type([out, retval] int* retVal);
|
1805
1815
|
[propget, id(0x0000005)]
|
1806
1816
|
HRESULT _stdcall Name([out, retval] BSTR* retVal);
|
1807
1817
|
[propget, id(0x0000006)]
|
@@ -1818,6 +1828,9 @@ interface IConnRecord : IDispatch{
|
|
1818
1828
|
HRESULT _stdcall InsCount([out, retval] int* retVal);
|
1819
1829
|
[propget, id(0x000000C)]
|
1820
1830
|
HRESULT _stdcall LongValue([out, retval] BSTR* retVal);
|
1831
|
+
[propget, id(0x000000D)]
|
1832
|
+
HRESULT _stdcall Port([out, retval] int* retVal);
|
1833
|
+
|
1821
1834
|
}
|
1822
1835
|
|
1823
1836
|
[
|
@@ -1859,7 +1872,7 @@ interface IConnMgr : IDispatch{
|
|
1859
1872
|
[id(0x0000008)]
|
1860
1873
|
HRESULT _stdcall Sysvars([out, retval] IConnRecords** retVal);
|
1861
1874
|
[id(0x0000011)]
|
1862
|
-
HRESULT _stdcall SlaveStatus([out, retval] IConnRecords** retVal);
|
1875
|
+
HRESULT _stdcall SlaveStatus([in, defaultvalue("") ]BSTR channel, [out, retval] IConnRecords** retVal);
|
1863
1876
|
[id(0x0000009)]
|
1864
1877
|
HRESULT _stdcall Connections([out, retval] IConnRecords** retVal);
|
1865
1878
|
[id(0x000000A)]
|
@@ -1897,9 +1910,59 @@ interface IConnMgr : IDispatch{
|
|
1897
1910
|
HRESULT _stdcall Statusvars([out, retval] IConnRecords** retVal);
|
1898
1911
|
[id(0x0000015)]
|
1899
1912
|
HRESULT _stdcall StatusvarName([in]int index, [out, retval] BSTR* retVal);
|
1913
|
+
[id(0x0000016)]
|
1914
|
+
HRESULT _stdcall Extendedvars([out, retval] IConnRecords** retVal);
|
1915
|
+
[id(0x0000017)]
|
1916
|
+
HRESULT _stdcall SlaveHosts([out, retval] IConnRecords** retVal);
|
1917
|
+
[id(0x0000018)]
|
1918
|
+
HRESULT _stdcall Channels([out, retval] IConnRecords** retVal);
|
1919
|
+
[id(0x0000019)]
|
1920
|
+
HRESULT _stdcall ExtendedVarName([in]int index, [out, retval] BSTR* retVal);
|
1921
|
+
[id(0x000001A)]
|
1922
|
+
HRESULT _stdcall HaLock([out, retval] VARIANT_BOOL* retVal);
|
1923
|
+
[id(0x000001B)]
|
1924
|
+
HRESULT _stdcall HaUnlock();
|
1925
|
+
[id(0x000001C)]
|
1926
|
+
HRESULT _stdcall SetRole([in]int v, [out, retval] VARIANT_BOOL* retVal);
|
1927
|
+
[id(0x000001D)]
|
1928
|
+
HRESULT _stdcall SetTrxBlock([in]VARIANT_BOOL v, [out, retval] VARIANT_BOOL* retVal);
|
1929
|
+
[id(0x000001E)]
|
1930
|
+
HRESULT _stdcall SetEnableFailover([in]VARIANT_BOOL v, [out, retval] VARIANT_BOOL* retVal);
|
1931
|
+
[propget, id(0x0000001F)]
|
1932
|
+
HRESULT _stdcall IsOpen([out, retval] VARIANT_BOOL* retVal);
|
1900
1933
|
|
1901
1934
|
};
|
1902
1935
|
|
1936
|
+
interface IHaNameResolver;
|
1937
|
+
[
|
1938
|
+
object,
|
1939
|
+
uuid(C6665527-3B17-49A3-BF38-AE3855EC073F),
|
1940
|
+
dual,
|
1941
|
+
nonextensible,
|
1942
|
+
pointer_default(unique)
|
1943
|
+
]
|
1944
|
+
interface IHaNameResolver : IDispatch{
|
1945
|
+
[id(0x0000001)]
|
1946
|
+
HRESULT _stdcall Start([in]BSTR master, [in]BSTR slaves,
|
1947
|
+
[in]BSTR slaveHostsWithPort, [in]short slaveNum,
|
1948
|
+
[in]BSTR userName,
|
1949
|
+
[in]BSTR password,
|
1950
|
+
[in, defaultvalue(0)]int option,
|
1951
|
+
[out, retval]int* retVal);
|
1952
|
+
[id(0x0000002)]
|
1953
|
+
HRESULT _stdcall AddPortMap([in]short mysqlPort, [in]short transactdPort);
|
1954
|
+
[id(0x0000003)]
|
1955
|
+
HRESULT _stdcall ClearPortMap();
|
1956
|
+
[id(0x0000004)]
|
1957
|
+
HRESULT _stdcall Stop();
|
1958
|
+
/*[id(0x0000005)]
|
1959
|
+
HRESULT _stdcall Clear();*/
|
1960
|
+
[propget, id(0x0000006)]
|
1961
|
+
HRESULT _stdcall Master([out, retval]BSTR* retVal);
|
1962
|
+
[propget, id(0x0000007)]
|
1963
|
+
HRESULT _stdcall Slave([out, retval]BSTR* retVal);
|
1964
|
+
};
|
1965
|
+
|
1903
1966
|
|
1904
1967
|
[
|
1905
1968
|
uuid(3B712514-E2EF-4040-8A3C-BCACB839EB3E),
|
@@ -2196,6 +2259,14 @@ library transactd
|
|
2196
2259
|
{
|
2197
2260
|
[default] interface IConnMgr;
|
2198
2261
|
};
|
2262
|
+
|
2263
|
+
[
|
2264
|
+
uuid(9259C707-BF39-4B9A-B013-67AF11F4B642)
|
2265
|
+
]
|
2266
|
+
coclass HaNameResolver
|
2267
|
+
{
|
2268
|
+
[default] interface IHaNameResolver;
|
2269
|
+
};
|
2199
2270
|
|
2200
2271
|
};
|
2201
2272
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transactd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BizStation Corp.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Transactd client for ruby gem
|
14
14
|
email: transactd@bizstation.jp
|
@@ -19,8 +19,8 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- CMakeLists.txt
|
21
21
|
- build/tdclrb/bldgem/extconf.rb
|
22
|
-
- bin/common/
|
23
|
-
- bin/common/
|
22
|
+
- bin/common/tdclc_32_3_5.dll
|
23
|
+
- bin/common/tdclc_64_3_5.dll
|
24
24
|
- source/bzs/db/blobBuffer.h
|
25
25
|
- source/bzs/db/blobStructs.h
|
26
26
|
- source/bzs/db/engine/mysql/bookmark.h
|
@@ -31,6 +31,8 @@ files:
|
|
31
31
|
- source/bzs/db/engine/mysql/errorMessage.cpp
|
32
32
|
- source/bzs/db/engine/mysql/errorMessage.h
|
33
33
|
- source/bzs/db/engine/mysql/fieldAccess.h
|
34
|
+
- source/bzs/db/engine/mysql/ha.cpp
|
35
|
+
- source/bzs/db/engine/mysql/ha.h
|
34
36
|
- source/bzs/db/engine/mysql/IReadRecords.h
|
35
37
|
- source/bzs/db/engine/mysql/mydebuglog.cpp
|
36
38
|
- source/bzs/db/engine/mysql/mydebuglog.h
|
@@ -79,6 +81,8 @@ files:
|
|
79
81
|
- source/bzs/db/protocol/tdap/client/groupComp.h
|
80
82
|
- source/bzs/db/protocol/tdap/client/groupQuery.cpp
|
81
83
|
- source/bzs/db/protocol/tdap/client/groupQuery.h
|
84
|
+
- source/bzs/db/protocol/tdap/client/haNameResolver.cpp
|
85
|
+
- source/bzs/db/protocol/tdap/client/haNameResolver.h
|
82
86
|
- source/bzs/db/protocol/tdap/client/indexDDF.cpp
|
83
87
|
- source/bzs/db/protocol/tdap/client/indexDDF.h
|
84
88
|
- source/bzs/db/protocol/tdap/client/memRecord.cpp
|
@@ -113,8 +117,6 @@ files:
|
|
113
117
|
- source/bzs/db/protocol/tdap/mysql/characterset.h
|
114
118
|
- source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp
|
115
119
|
- source/bzs/db/protocol/tdap/mysql/databaseSchema.h
|
116
|
-
- source/bzs/db/protocol/tdap/mysql/debuglog.cpp
|
117
|
-
- source/bzs/db/protocol/tdap/mysql/debuglog.h
|
118
120
|
- source/bzs/db/protocol/tdap/mysql/recordsetReader.h
|
119
121
|
- source/bzs/db/protocol/tdap/mysql/request.h
|
120
122
|
- source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp
|
@@ -215,6 +217,7 @@ files:
|
|
215
217
|
- source/bzs/test/transactdBench/workerTransactdImple.h
|
216
218
|
- source/bzs/test/trdclengn/testbase.h
|
217
219
|
- source/bzs/test/trdclengn/testField.h
|
220
|
+
- source/bzs/test/trdclengn/test_tdclcpp_ha.cpp
|
218
221
|
- source/bzs/test/trdclengn/test_tdclcpp_v3.cpp
|
219
222
|
- source/bzs/test/trdclengn/test_trdclengn.cpp
|
220
223
|
- source/global/boost/sha1.hpp
|
@@ -231,6 +234,11 @@ files:
|
|
231
234
|
- source/global/ormsrcgen/template/ormMapClass_template.h
|
232
235
|
- source/global/ormsrcgen/template/template.cnf
|
233
236
|
- source/global/querystmts/querystmts.cpp
|
237
|
+
- source/global/replication/haCommand.cpp
|
238
|
+
- source/global/replication/haCommand.h
|
239
|
+
- source/global/replication/haMgr.cpp
|
240
|
+
- source/global/replication/replCommand.cpp
|
241
|
+
- source/global/replication/replCommand.h
|
234
242
|
- source/global/tdclatl/activeTable.cpp
|
235
243
|
- source/global/tdclatl/activeTable.h
|
236
244
|
- source/global/tdclatl/BinlogPos.cpp
|
@@ -265,6 +273,8 @@ files:
|
|
265
273
|
- source/global/tdclatl/Flags.h
|
266
274
|
- source/global/tdclatl/GroupQuery.cpp
|
267
275
|
- source/global/tdclatl/GroupQuery.h
|
276
|
+
- source/global/tdclatl/HaNameREsolver.cpp
|
277
|
+
- source/global/tdclatl/HaNameREsolver.h
|
268
278
|
- source/global/tdclatl/KeyDef.cpp
|
269
279
|
- source/global/tdclatl/KeyDef.h
|
270
280
|
- source/global/tdclatl/KeySegment.cpp
|
data/bin/common/tdclc_32_3_4.dll
DELETED
Binary file
|
data/bin/common/tdclc_64_3_4.dll
DELETED
Binary file
|
@@ -1,423 +0,0 @@
|
|
1
|
-
/*=================================================================
|
2
|
-
Copyright (C) 2012 2013 BizStation Corp All rights reserved.
|
3
|
-
|
4
|
-
This program is free software; you can redistribute it and/or
|
5
|
-
modify it under the terms of the GNU General Public License
|
6
|
-
as published by the Free Software Foundation; either version 2
|
7
|
-
of the License, or (at your option) any later version.
|
8
|
-
|
9
|
-
This program is distributed in the hope that it will be useful,
|
10
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
-
GNU General Public License for more details.
|
13
|
-
|
14
|
-
You should have received a copy of the GNU General Public License
|
15
|
-
along with this program; if not, write to the Free Software
|
16
|
-
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
17
|
-
02111-1307, USA.
|
18
|
-
=================================================================*/
|
19
|
-
|
20
|
-
#include "debuglog.h"
|
21
|
-
#include "btrvProtocol.h"
|
22
|
-
#include "recordsetReader.h"
|
23
|
-
#include "stl_uty.h"
|
24
|
-
|
25
|
-
namespace bzs
|
26
|
-
{
|
27
|
-
namespace msqlp
|
28
|
-
{
|
29
|
-
|
30
|
-
static char logfilename[FN_REFLEN];
|
31
|
-
static boost::mutex g_logMutex;
|
32
|
-
|
33
|
-
char msg[1024];
|
34
|
-
void writeDebuglog(ushort_td op, request& req, bool error)
|
35
|
-
{
|
36
|
-
bool write = false;
|
37
|
-
|
38
|
-
switch (op)
|
39
|
-
{
|
40
|
-
/*case TD_CONNECT:
|
41
|
-
case TD_STOP_ENGINE:
|
42
|
-
|
43
|
-
break;*/
|
44
|
-
case TD_RESET_CLIENT:
|
45
|
-
{
|
46
|
-
std::string dbname = getDatabaseName(req);
|
47
|
-
sprintf_s(msg,
|
48
|
-
"%s TD_RESET_CLIENT result = %d \tdbname = %s\t cid = %d \n",
|
49
|
-
dateTime(), req.result, dbname.c_str(), req.cid);
|
50
|
-
write = true;
|
51
|
-
break;
|
52
|
-
}
|
53
|
-
case TD_CREATETABLE:
|
54
|
-
{
|
55
|
-
std::string dbname = getDatabaseName(req);
|
56
|
-
sprintf_s(
|
57
|
-
msg, "%s TD_CREATETABLE result = %d \tdbname = %s\t table=%s\n",
|
58
|
-
dateTime(), req.result, dbname.c_str(), getTableName(req).c_str());
|
59
|
-
write = true;
|
60
|
-
break;
|
61
|
-
}
|
62
|
-
case TD_OPENTABLE:
|
63
|
-
{
|
64
|
-
std::string dbname = getDatabaseName(req);
|
65
|
-
sprintf_s(msg,
|
66
|
-
"%s TD_OPENTABLE result = %d \tHandle = %d \tdbname = %s\n",
|
67
|
-
dateTime(), req.result, req.pbk->handle, dbname.c_str());
|
68
|
-
write = true;
|
69
|
-
break;
|
70
|
-
}
|
71
|
-
case TD_CLOSETABLE:
|
72
|
-
sprintf_s(msg, "%s TD_CLOSETABLE result = %d \tHandle = %d\n",
|
73
|
-
dateTime(), req.result, req.pbk->handle);
|
74
|
-
write = true;
|
75
|
-
break;
|
76
|
-
case TD_KEY_SEEK:
|
77
|
-
sprintf_s(msg, "%s TD_KEY_SEEK result = %d \tHandle = %d\n", dateTime(),
|
78
|
-
req.result, req.pbk->handle);
|
79
|
-
write = true;
|
80
|
-
break;
|
81
|
-
case TD_KEY_AFTER:
|
82
|
-
sprintf_s(msg, "%s TD_KEY_AFTER result = %d \tHandle = %d\n",
|
83
|
-
dateTime(), req.result, req.pbk->handle);
|
84
|
-
write = true;
|
85
|
-
break;
|
86
|
-
case TD_KEY_OR_AFTER:
|
87
|
-
sprintf_s(msg, "%s TD_KEY_OR_AFTER result = %d \tHandle = %d\n",
|
88
|
-
dateTime(), req.result, req.pbk->handle);
|
89
|
-
write = true;
|
90
|
-
break;
|
91
|
-
case TD_KEY_BEFORE:
|
92
|
-
sprintf_s(msg, "%s TD_KEY_BEFORE result = %d \tHandle = %d\n",
|
93
|
-
dateTime(), req.result, req.pbk->handle);
|
94
|
-
write = true;
|
95
|
-
break;
|
96
|
-
case TD_KEY_OR_BEFORE:
|
97
|
-
sprintf_s(msg, "%s TD_KEY_OR_BEFORE result = %d \tHandle = %d\n",
|
98
|
-
dateTime(), req.result, req.pbk->handle);
|
99
|
-
write = true;
|
100
|
-
break;
|
101
|
-
case TD_KEY_FIRST:
|
102
|
-
sprintf_s(msg, "%s TD_KEY_FIRST result = %d \tHandle = %d\n",
|
103
|
-
dateTime(), req.result, req.pbk->handle);
|
104
|
-
write = true;
|
105
|
-
break;
|
106
|
-
case TD_KEY_PREV:
|
107
|
-
sprintf_s(msg, "%s TD_KEY_PREV result = %d \tHandle = %d\n", dateTime(),
|
108
|
-
req.result, req.pbk->handle);
|
109
|
-
write = true;
|
110
|
-
break;
|
111
|
-
case TD_KEY_LAST:
|
112
|
-
sprintf_s(msg, "%s TD_KEY_LAST result = %d \tHandle = %d\n", dateTime(),
|
113
|
-
req.result, req.pbk->handle);
|
114
|
-
write = true;
|
115
|
-
break;
|
116
|
-
case TD_KEY_NEXT:
|
117
|
-
sprintf_s(msg, "%s TD_KEY_NEXT result = %d \tHandle = %d\n", dateTime(),
|
118
|
-
req.result, req.pbk->handle);
|
119
|
-
write = true;
|
120
|
-
break;
|
121
|
-
case TD_REC_INSERT:
|
122
|
-
sprintf_s(msg, "%s TD_REC_INSERT result = %d \tHandle = %d\n",
|
123
|
-
dateTime(), req.result, req.pbk->handle);
|
124
|
-
write = true;
|
125
|
-
break;
|
126
|
-
case TD_REC_UPDATE:
|
127
|
-
sprintf_s(msg, "%s TD_REC_UPDATE result = %d \tHandle = %d\n",
|
128
|
-
dateTime(), req.result, req.pbk->handle);
|
129
|
-
write = true;
|
130
|
-
break;
|
131
|
-
case TD_REC_DELETE:
|
132
|
-
sprintf_s(msg, "%s TD_REC_DELETE result = %d \tHandle = %d\n",
|
133
|
-
dateTime(), req.result, req.pbk->handle);
|
134
|
-
write = true;
|
135
|
-
break;
|
136
|
-
case TD_BEGIN_TRANSACTION:
|
137
|
-
sprintf_s(msg, "%s TD_BEGIN_TRANSACTION cid = %d \n", dateTime(),
|
138
|
-
req.cid);
|
139
|
-
write = true;
|
140
|
-
break;
|
141
|
-
case TD_END_TRANSACTION:
|
142
|
-
sprintf_s(msg, "%s TD_END_TRANSACTION cid = %d \n", dateTime(),
|
143
|
-
req.cid);
|
144
|
-
write = true;
|
145
|
-
break;
|
146
|
-
case TD_ABORT_TRANSACTION:
|
147
|
-
sprintf_s(msg, "%s TD_ABORT_TRANSACTION cid = %d \n", dateTime(),
|
148
|
-
req.cid);
|
149
|
-
write = true;
|
150
|
-
break;
|
151
|
-
case TD_BEGIN_SHAPSHOT:
|
152
|
-
sprintf_s(msg, "%s TD_BEGIN_SHAPSHOT cid = %d \n", dateTime(), req.cid);
|
153
|
-
write = true;
|
154
|
-
break;
|
155
|
-
case TD_END_SNAPSHOT:
|
156
|
-
sprintf_s(msg, "%s TD_END_SNAPSHOT cid = %d \n", dateTime(), req.cid);
|
157
|
-
write = true;
|
158
|
-
break;
|
159
|
-
case TD_TABLE_INFO:
|
160
|
-
{
|
161
|
-
std::string dbname = getDatabaseName(req);
|
162
|
-
sprintf_s(msg, "%s TD_TABLE_INFO result = %d \tHandle = %d\n",
|
163
|
-
dateTime(), req.result, req.pbk->handle);
|
164
|
-
write = true;
|
165
|
-
break;
|
166
|
-
}
|
167
|
-
|
168
|
-
case TD_POS_FIRST:
|
169
|
-
sprintf_s(msg, "%s TD_POS_FIRST result = %d \tHandle = %d\n",
|
170
|
-
dateTime(), req.result, req.pbk->handle);
|
171
|
-
write = true;
|
172
|
-
break;
|
173
|
-
case TD_POS_LAST:
|
174
|
-
sprintf_s(msg, "%s TD_POS_LAST result = %d \tHandle = %d\n", dateTime(),
|
175
|
-
req.result, req.pbk->handle);
|
176
|
-
write = true;
|
177
|
-
break;
|
178
|
-
case TD_POS_NEXT:
|
179
|
-
sprintf_s(msg, "%s TD_POS_NEXT result = %d \tHandle = %d\n", dateTime(),
|
180
|
-
req.result, req.pbk->handle);
|
181
|
-
write = true;
|
182
|
-
break;
|
183
|
-
case TD_POS_PREV:
|
184
|
-
sprintf_s(msg, "%s TD_POS_PREV result = %d \tHandle = %d\n", dateTime(),
|
185
|
-
req.result, req.pbk->handle);
|
186
|
-
write = true;
|
187
|
-
break;
|
188
|
-
case TD_BOOKMARK:
|
189
|
-
if (req.result == 0)
|
190
|
-
sprintf_s(
|
191
|
-
msg,
|
192
|
-
"%s TD_BOOKMARK result = %d \tHandle = %d key = %d pos = %d\n",
|
193
|
-
dateTime(), req.result, req.pbk->handle, req.keyNum,
|
194
|
-
*((uint*)req.data));
|
195
|
-
else
|
196
|
-
sprintf_s(msg,
|
197
|
-
"%s TD_BOOKMARK result = %d \tHandle = %d key = %d \n",
|
198
|
-
dateTime(), req.result, req.pbk->handle, req.keyNum);
|
199
|
-
write = true;
|
200
|
-
break;
|
201
|
-
|
202
|
-
case TD_MOVE_BOOKMARK:
|
203
|
-
sprintf_s(
|
204
|
-
msg,
|
205
|
-
"%s TD_MOVE_BOOKMARK result = %d \tHandle = %d key = %d pos = %d\n",
|
206
|
-
dateTime(), req.result, req.pbk->handle, req.keyNum,
|
207
|
-
*((uchar*)req.data));
|
208
|
-
write = true;
|
209
|
-
break;
|
210
|
-
|
211
|
-
case TD_GETDIRECTORY:
|
212
|
-
sprintf_s(msg, "%s TD_GETDIRECTORY cid = %d \n", dateTime(), req.cid);
|
213
|
-
write = true;
|
214
|
-
break;
|
215
|
-
|
216
|
-
/*case TD_VERSION:
|
217
|
-
break;
|
218
|
-
case TD_CLEAR_OWNERNAME:
|
219
|
-
*/
|
220
|
-
case TD_SET_OWNERNAME:
|
221
|
-
sprintf_s(msg, "%s TD_SET_OWNERNAME result = %d \tHandle = %d\n",
|
222
|
-
dateTime(), req.result, req.pbk->handle);
|
223
|
-
write = true;
|
224
|
-
break;
|
225
|
-
case TD_DROP_INDEX:
|
226
|
-
sprintf_s(msg, "%s TD_DROP_INDEX result = %d \tHandle = %d\n",
|
227
|
-
dateTime(), req.result, req.pbk->handle);
|
228
|
-
write = true;
|
229
|
-
break;
|
230
|
-
case TD_KEY_NEXT_MULTI:
|
231
|
-
sprintf_s(msg, "%s TD_KEY_NEXT_MULTI result = %d \tHandle = %d\n",
|
232
|
-
dateTime(), req.result, req.pbk->handle);
|
233
|
-
write = true;
|
234
|
-
break;
|
235
|
-
case TD_KEY_PREV_MULTI:
|
236
|
-
sprintf_s(msg, "%s TD_KEY_PREV_MULTI result = %d \tHandle = %d\n",
|
237
|
-
dateTime(), req.result, req.pbk->handle);
|
238
|
-
write = true;
|
239
|
-
break;
|
240
|
-
case TD_POS_NEXT_MULTI:
|
241
|
-
sprintf_s(msg, "%s TD_POS_NEXT_MULTI result = %d \tHandle = %d\n",
|
242
|
-
dateTime(), req.result, req.pbk->handle);
|
243
|
-
write = true;
|
244
|
-
break;
|
245
|
-
case TD_POS_PREV_MULTI:
|
246
|
-
sprintf_s(msg, "%s TD_POS_PREV_MULTI result = %d \tHandle = %d\n",
|
247
|
-
dateTime(), req.result, req.pbk->handle);
|
248
|
-
write = true;
|
249
|
-
break;
|
250
|
-
case TD_MOVE_PER:
|
251
|
-
sprintf_s(msg, "%s TD_MOVE_PER result = %d \tHandle = %d\n", dateTime(),
|
252
|
-
req.result, req.pbk->handle);
|
253
|
-
write = true;
|
254
|
-
break;
|
255
|
-
case TD_GET_PER:
|
256
|
-
sprintf_s(msg, "%s TD_GET_PER result = %d \tHandle = %d\n", dateTime(),
|
257
|
-
req.result, req.pbk->handle);
|
258
|
-
write = true;
|
259
|
-
break;
|
260
|
-
case TD_INSERT_BULK:
|
261
|
-
sprintf_s(msg, "%s TD_INSERT_BULK result = %d \tHandle = %d\n",
|
262
|
-
dateTime(), req.result, req.pbk->handle);
|
263
|
-
write = true;
|
264
|
-
break;
|
265
|
-
}
|
266
|
-
if (error)
|
267
|
-
{
|
268
|
-
sprintf_s(msg, "%s ERROR result = %d op=%d\t\tHandle = %d\n",
|
269
|
-
dateTime(), req.result, op, req.pbk ? req.pbk->handle : 0);
|
270
|
-
write = true;
|
271
|
-
}
|
272
|
-
if (write)
|
273
|
-
{
|
274
|
-
boost::mutex::scoped_lock lck(g_logMutex);
|
275
|
-
FILE* fp = fileOpne(logfilename, "a+");
|
276
|
-
if (fp)
|
277
|
-
{
|
278
|
-
fputs(msg, fp);
|
279
|
-
fclose(fp);
|
280
|
-
}
|
281
|
-
}
|
282
|
-
}
|
283
|
-
void writeDebuglog(const char* msg)
|
284
|
-
{
|
285
|
-
boost::mutex::scoped_lock lck(g_logMutex);
|
286
|
-
FILE* fp = fileOpne(logfilename, "a+");
|
287
|
-
if (fp)
|
288
|
-
{
|
289
|
-
fputs(dateTime(), fp);
|
290
|
-
fputs(" ", fp);
|
291
|
-
fputs(msg, fp);
|
292
|
-
fclose(fp);
|
293
|
-
}
|
294
|
-
}
|
295
|
-
void writeDebuglogDump(const char* msg, const char* p, int size)
|
296
|
-
{
|
297
|
-
boost::mutex::scoped_lock lck(g_logMutex);
|
298
|
-
FILE* fp = fileOpne(logfilename, "a+");
|
299
|
-
if (fp)
|
300
|
-
{
|
301
|
-
fputs(msg, fp);
|
302
|
-
fputs("\n", fp);
|
303
|
-
dump(fp, p, size, INT_MAX);
|
304
|
-
|
305
|
-
fclose(fp);
|
306
|
-
}
|
307
|
-
}
|
308
|
-
void fieldDump(table* tb)
|
309
|
-
{
|
310
|
-
boost::mutex::scoped_lock lck(g_logMutex);
|
311
|
-
FILE* fp = fileOpne(logfilename, "a+");
|
312
|
-
if (fp)
|
313
|
-
{
|
314
|
-
for (int j = 0; j < (int)tb->m_table->s->fields; j++)
|
315
|
-
{
|
316
|
-
fputs(tb->m_table->s->field[j]->field_name, fp);
|
317
|
-
fputs("=", fp);
|
318
|
-
fputs(tb->valStr(j), fp);
|
319
|
-
fputs("\n", fp);
|
320
|
-
}
|
321
|
-
fclose(fp);
|
322
|
-
}
|
323
|
-
}
|
324
|
-
|
325
|
-
void initLog()
|
326
|
-
{
|
327
|
-
fn_format(logfilename, "transctd_debug", "", ".log",
|
328
|
-
MY_REPLACE_EXT | MY_UNPACK_FILENAME);
|
329
|
-
|
330
|
-
FILE* fp = fileOpne(logfilename, "w");
|
331
|
-
if (fp)
|
332
|
-
{
|
333
|
-
fputs(dateTime(), fp);
|
334
|
-
fputs("Transctd debug Start", fp);
|
335
|
-
fputs(msg, fp);
|
336
|
-
fclose(fp);
|
337
|
-
}
|
338
|
-
}
|
339
|
-
void endLog()
|
340
|
-
{
|
341
|
-
writeDebuglog("Transctd debug End");
|
342
|
-
}
|
343
|
-
void dump(FILE* fp, const char* p, int size, int limit)
|
344
|
-
{
|
345
|
-
size = std::min(size, limit);
|
346
|
-
for (int i = 0; i < size; i += 16)
|
347
|
-
{
|
348
|
-
|
349
|
-
for (int j = 0; j < 16; j++)
|
350
|
-
fprintf(fp, "%02X ", *((unsigned char*)(p + i + j)));
|
351
|
-
fprintf(fp, " ");
|
352
|
-
for (int j = 0; j < 16; j++)
|
353
|
-
fprintf(fp, "%c", *((unsigned char*)(p + i + j)));
|
354
|
-
fprintf(fp, "\n");
|
355
|
-
}
|
356
|
-
fprintf(fp, "\n");
|
357
|
-
}
|
358
|
-
void debugReadRecordsBegin(extResultDef* resultDef, extRequest* req)
|
359
|
-
{
|
360
|
-
char tmp[2048];
|
361
|
-
char tmp2[1024] = { 0x00 };
|
362
|
-
sprintf(tmp, "READS RESULTDEF maxRows=%d fieldCount=%d\n",
|
363
|
-
resultDef->maxRows, resultDef->fieldCount);
|
364
|
-
for (int i = 0; i < resultDef->fieldCount; i++)
|
365
|
-
{
|
366
|
-
resultField* fd = &resultDef->field[i];
|
367
|
-
sprintf(tmp2, "RESULTDEF FIELD%d pos =%d len=%d \n", i + 1, fd->pos,
|
368
|
-
fd->len);
|
369
|
-
strcat(tmp, tmp2);
|
370
|
-
}
|
371
|
-
sprintf(tmp2, "READS REQ len=%d reject=%d logicalCount=%d\n", req->len,
|
372
|
-
req->rejectCount, req->logicalCount);
|
373
|
-
strcat(tmp, tmp2);
|
374
|
-
logicalField* field = &req->field;
|
375
|
-
while (1)
|
376
|
-
{
|
377
|
-
sprintf(
|
378
|
-
tmp2, "REQUEST FIELD1 type =%d len=%d pos=%d logType=%d opr=%d ",
|
379
|
-
field->type, field->len, field->pos, field->logType, field->opr);
|
380
|
-
strcat(tmp, tmp2);
|
381
|
-
if (field->logType & CMPLOGICAL_FIELD)
|
382
|
-
sprintf(tmp2, "offset=%d\n", field->offset);
|
383
|
-
else
|
384
|
-
{
|
385
|
-
strcat(tmp, "Value=");
|
386
|
-
for (int j = 0; j < field->len; j++)
|
387
|
-
{
|
388
|
-
sprintf(tmp2, "%02X ", *(field->ptr + j));
|
389
|
-
strcat(tmp, tmp2);
|
390
|
-
}
|
391
|
-
strcat(tmp, "\n");
|
392
|
-
}
|
393
|
-
if (field->opr == 0)
|
394
|
-
break; // this is last
|
395
|
-
field = field->next();
|
396
|
-
}
|
397
|
-
writeDebuglog(tmp);
|
398
|
-
}
|
399
|
-
void debugReadRecordsEnd(resultWriter* rw)
|
400
|
-
{
|
401
|
-
writeDebuglogDump("READS RESULT DUMP",
|
402
|
-
rw->resultBuffer() + RETBUF_EXT_RESERVE_SIZE,
|
403
|
-
rw->resultLen() - RETBUF_EXT_RESERVE_SIZE);
|
404
|
-
}
|
405
|
-
void debugInsert(table* tb, const char* packPtr, int packlen, int row,
|
406
|
-
int errorCount)
|
407
|
-
{
|
408
|
-
char tmp[64];
|
409
|
-
sprintf(tmp, "INSERT PACKED Row=%d len=%d ErrorRows=%d ", packlen, row,
|
410
|
-
errorCount);
|
411
|
-
writeDebuglogDump(tmp, packPtr + sizeof(ushort_td), packlen);
|
412
|
-
sprintf(tmp, "INSERT UNPACKED Row=%d len=%ld stat=%d", row, tb->recordLen(),
|
413
|
-
tb->stat());
|
414
|
-
writeDebuglogDump(tmp, (const char*)tb->record(), tb->recordLen());
|
415
|
-
fieldDump(tb);
|
416
|
-
}
|
417
|
-
|
418
|
-
} // namespace msqlp
|
419
|
-
} // namespace bzs
|
420
|
-
|
421
|
-
#ifdef DEBUG_PROFILE
|
422
|
-
unsigned int g_v;
|
423
|
-
#endif
|