transactd 1.0.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README +1 -1
- data/README-JA +1 -1
- data/bin/common/tdclc_32_1_1.dll +0 -0
- data/bin/common/tdclc_64_1_1.dll +0 -0
- data/build/common/transactd_common.cmake +6 -2
- data/build/tdclc/CMakeLists.txt +9 -0
- data/build/tdclc/tdclc_32.cbproj +2 -10
- data/build/tdclc/tdclc_64.cbproj +2 -9
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +3 -7
- data/build/tdclcpp/tdclcpp_bcb_64.cbproj +1 -15
- data/build/tdclrb/CMakeLists.txt +12 -4
- data/build/tdclrb/GEM_VERSION +2 -2
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +5 -4
- data/source/bzs/db/engine/mysql/mysqlThd.h +1 -1
- data/source/bzs/db/protocol/tdap/btrDate.cpp +15 -4
- data/source/bzs/db/protocol/tdap/client/client.cpp +2 -2
- data/source/bzs/db/protocol/tdap/client/client.h +46 -18
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +53 -11
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +50 -28
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +5 -2
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +19 -1
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +16 -5
- data/source/bzs/db/protocol/tdap/tdapcapi.h +9 -4
- data/source/bzs/db/transactd/transactd.cpp +22 -8
- data/source/bzs/env/compiler.h +6 -0
- data/source/bzs/env/crosscompile.h +9 -1
- data/source/bzs/example/changeSchema.cpp +6 -6
- data/source/bzs/example/changeSchema_c.cpp +4 -4
- data/source/bzs/example/createDatabase.cpp +7 -7
- data/source/bzs/example/deleteRecords.cpp +2 -2
- data/source/bzs/example/deleteRecords_c.cpp +1 -1
- data/source/bzs/example/dropDatabase.cpp +4 -1
- data/source/bzs/example/dropDatabase_c.cpp +1 -1
- data/source/bzs/example/insertRecords.cpp +1 -1
- data/source/bzs/example/readRecords.cpp +1 -1
- data/source/bzs/example/updateRecords.cpp +1 -1
- data/source/bzs/example/update_with_transaction.cpp +1 -1
- data/source/bzs/example/update_with_transaction_c.cpp +1 -1
- data/source/bzs/netsvc/client/tcpClient.cpp +3 -2
- data/source/bzs/rtl/datetime.cpp +15 -5
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +1 -1
- metadata +3 -3
- data/bin/common/tdclc_32_1_0.dll +0 -0
- data/bin/common/tdclc_64_1_0.dll +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f89d3c2a7bda1a1c1acbe8113106f860cac1ede
|
4
|
+
data.tar.gz: 33eb8baabb33c8915a9fc68dd5bb8cf4b3198d76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1341f50aaae62539ab3844a0658836f516ea75f47d48879e78e34f795f12fa41743a580ec1b54d4c93fb8408729d44f770514a1aee17fe2cf0b0a73058317123
|
7
|
+
data.tar.gz: 8ca6b44afd9d429e98c673a32982b0a759c1a2ab304029778262c5729ffdbf0bb7311f18d86b5ee5df29b6d2baac4a1841d0fdfaf679fa45b1ea2a3a4a7c53dc
|
data/README
CHANGED
@@ -258,7 +258,7 @@ to drop a database.
|
|
258
258
|
mysql>drop database test;
|
259
259
|
```
|
260
260
|
|
261
|
-
If `--
|
261
|
+
If `-- show_progress=yes` is passed, it shows progress like:
|
262
262
|
```
|
263
263
|
0% 10 20 30 40 50 60 70 80 90 100%
|
264
264
|
|----|----|----|----|----|----|----|----|----|----|
|
data/README-JA
CHANGED
Binary file
|
Binary file
|
@@ -208,8 +208,12 @@ macro(transactd_link_boost_libraries boost_components)
|
|
208
208
|
if(MINGW)
|
209
209
|
target_link_libraries(${this_target} ${Boost_LIBRARIES})
|
210
210
|
else()
|
211
|
-
|
212
|
-
|
211
|
+
if(APPLE)
|
212
|
+
target_link_libraries(${this_target} ${Boost_LIBRARIES})
|
213
|
+
else()
|
214
|
+
# need "-lrt" after chrono or timer
|
215
|
+
target_link_libraries(${this_target} ${Boost_LIBRARIES} rt)
|
216
|
+
endif()
|
213
217
|
endif()
|
214
218
|
endif()
|
215
219
|
## find Boost for Visual Studio /MD or /MDd or /MT or /MTd
|
data/build/tdclc/CMakeLists.txt
CHANGED
@@ -67,6 +67,12 @@ set(${this_target}_SOURCE_FILES
|
|
67
67
|
${TRANSACTD_ROOT}/source/bzs/netsvc/client/tcpClient.cpp
|
68
68
|
${TRANSACTD_ROOT}/source/bzs/rtl/stl_uty.cpp
|
69
69
|
)
|
70
|
+
if(APPLE)
|
71
|
+
set(${this_target}_SOURCE_FILES ${${this_target}_SOURCE_FILES}
|
72
|
+
${TRANSACTD_ROOT}/source/bzs/env/crosscompile.cpp
|
73
|
+
${TRANSACTD_ROOT}/source/bzs/env/mbcswchrLinux.cpp
|
74
|
+
)
|
75
|
+
endif()
|
70
76
|
|
71
77
|
|
72
78
|
# ==========================================================
|
@@ -129,6 +135,9 @@ add_library(${this_target} SHARED ${${this_target}_SOURCE_FILES})
|
|
129
135
|
# add link / include
|
130
136
|
# ==========================================================
|
131
137
|
transactd_link_boost_libraries("filesystem;system;thread")
|
138
|
+
if(APPLE)
|
139
|
+
target_link_libraries(${this_target} iconv)
|
140
|
+
endif()
|
132
141
|
|
133
142
|
|
134
143
|
# ==========================================================
|
data/build/tdclc/tdclc_32.cbproj
CHANGED
@@ -26,9 +26,7 @@
|
|
26
26
|
<PropertyGroup Condition="'$(Base)'!=''">
|
27
27
|
<Defines>BOOST_ALL_NO_LIB;TRANSACTD;$(Defines)</Defines>
|
28
28
|
<BRCC_CompilerToUse>rc</BRCC_CompilerToUse>
|
29
|
-
<
|
30
|
-
<VerInfo_DLL>true</VerInfo_DLL>
|
31
|
-
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
29
|
+
<BRCC_IncludePath>$(BDSINCLUDE)\windows\sdk;$(BRCC_IncludePath)</BRCC_IncludePath>
|
32
30
|
<DllSuffix>_1_0</DllSuffix>
|
33
31
|
<DynamicRTL>false</DynamicRTL>
|
34
32
|
<BPILibOutputDir>..\..\lib</BPILibOutputDir>
|
@@ -38,10 +36,7 @@
|
|
38
36
|
<Manifest_File>None</Manifest_File>
|
39
37
|
<IncludePath>..\..\source\;$(IncludePath)</IncludePath>
|
40
38
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
41
|
-
<VerInfo_Locale>1041</VerInfo_Locale>
|
42
|
-
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
43
39
|
<OutputExt>dll</OutputExt>
|
44
|
-
<PackageImports>vcl.bpi;rtl.bpi</PackageImports>
|
45
40
|
<Multithreaded>true</Multithreaded>
|
46
41
|
<NoVCL>true</NoVCL>
|
47
42
|
<ProjectType>VCppStyleDll</ProjectType>
|
@@ -77,7 +72,7 @@
|
|
77
72
|
</PropertyGroup>
|
78
73
|
<ItemGroup>
|
79
74
|
<ResourceCompile Include="tdclc.rc">
|
80
|
-
<Form>
|
75
|
+
<Form>tdclc.res</Form>
|
81
76
|
<BuildOrder>20</BuildOrder>
|
82
77
|
</ResourceCompile>
|
83
78
|
<CppCompile Include="..\..\source\bzs\db\protocol\tdap\client\client.cpp">
|
@@ -114,9 +109,6 @@
|
|
114
109
|
<DependentOn>..\..\netsvc\client\tcpClient.h</DependentOn>
|
115
110
|
<BuildOrder>2</BuildOrder>
|
116
111
|
</CppCompile>
|
117
|
-
<CppCompile Include="..\..\source\bzs\rtl\datetime.cpp">
|
118
|
-
<BuildOrder>13</BuildOrder>
|
119
|
-
</CppCompile>
|
120
112
|
<CppCompile Include="..\..\source\bzs\rtl\stl_uty.cpp">
|
121
113
|
<BuildOrder>9</BuildOrder>
|
122
114
|
</CppCompile>
|
data/build/tdclc/tdclc_64.cbproj
CHANGED
@@ -43,9 +43,7 @@
|
|
43
43
|
<PropertyGroup Condition="'$(Base)'!=''">
|
44
44
|
<Defines>BOOST_ALL_NO_LIB;TRANSACTD;$(Defines)</Defines>
|
45
45
|
<BRCC_CompilerToUse>rc</BRCC_CompilerToUse>
|
46
|
-
<
|
47
|
-
<VerInfo_DLL>true</VerInfo_DLL>
|
48
|
-
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
46
|
+
<BRCC_IncludePath>$(BDSINCLUDE)\windows\sdk;$(BRCC_IncludePath)</BRCC_IncludePath>
|
49
47
|
<DllSuffix>_1_0</DllSuffix>
|
50
48
|
<DynamicRTL>false</DynamicRTL>
|
51
49
|
<BPILibOutputDir>..\..\lib</BPILibOutputDir>
|
@@ -55,8 +53,6 @@
|
|
55
53
|
<Manifest_File>None</Manifest_File>
|
56
54
|
<IncludePath>..\..\source\;$(IncludePath)</IncludePath>
|
57
55
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
58
|
-
<VerInfo_Locale>1041</VerInfo_Locale>
|
59
|
-
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
60
56
|
<OutputExt>dll</OutputExt>
|
61
57
|
<PackageImports>vcl.bpi;rtl.bpi</PackageImports>
|
62
58
|
<Multithreaded>true</Multithreaded>
|
@@ -101,7 +97,7 @@
|
|
101
97
|
</PropertyGroup>
|
102
98
|
<ItemGroup>
|
103
99
|
<ResourceCompile Include="tdclc.rc">
|
104
|
-
<Form>
|
100
|
+
<Form>tdclc.res</Form>
|
105
101
|
<BuildOrder>20</BuildOrder>
|
106
102
|
</ResourceCompile>
|
107
103
|
<CppCompile Include="..\..\source\bzs\db\protocol\tdap\client\client.cpp">
|
@@ -138,9 +134,6 @@
|
|
138
134
|
<DependentOn>..\..\netsvc\client\tcpClient.h</DependentOn>
|
139
135
|
<BuildOrder>2</BuildOrder>
|
140
136
|
</CppCompile>
|
141
|
-
<CppCompile Include="..\..\source\bzs\rtl\datetime.cpp">
|
142
|
-
<BuildOrder>13</BuildOrder>
|
143
|
-
</CppCompile>
|
144
137
|
<CppCompile Include="..\..\source\bzs\rtl\stl_uty.cpp">
|
145
138
|
<BuildOrder>9</BuildOrder>
|
146
139
|
</CppCompile>
|
@@ -36,15 +36,12 @@
|
|
36
36
|
<PropertyGroup Condition="'$(Base)'!=''">
|
37
37
|
<BRCC_EnableMultiByte>true</BRCC_EnableMultiByte>
|
38
38
|
<BRCC_CompilerToUse>rc</BRCC_CompilerToUse>
|
39
|
-
<
|
39
|
+
<BRCC_IncludePath>$(BDSINCLUDE)\windows\sdk;$(BRCC_IncludePath)</BRCC_IncludePath>
|
40
40
|
<Defines>ARBTREGN_PKG;BOOST_ALL_NO_LIB;$(Defines)</Defines>
|
41
|
-
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
42
|
-
<VerInfo_Keys>CompanyName=BizStation Corp;FileDescription=;FileVersion=1.1.0.0;InternalName=;LegalCopyright=Copy right (C) 2013 BizStation Corp;LegalTrademarks=;OriginalFilename=;ProductName=Transactd Client;ProductVersion=1.1.0.0;Comments=</VerInfo_Keys>
|
43
|
-
<VerInfo_MinorVer>1</VerInfo_MinorVer>
|
44
|
-
<VerInfo_DLL>true</VerInfo_DLL>
|
45
41
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
46
|
-
<VerInfo_Locale>1041</VerInfo_Locale>
|
47
42
|
<BCC_wiip>false</BCC_wiip>
|
43
|
+
<BCC_wpch>false</BCC_wpch>
|
44
|
+
<BCC_wpar>false</BCC_wpar>
|
48
45
|
<Multithreaded>true</Multithreaded>
|
49
46
|
<ILINK_LibraryPath>..\..\lib;$(ILINK_LibraryPath)</ILINK_LibraryPath>
|
50
47
|
<ProjectType>CppDynamicLibrary</ProjectType>
|
@@ -59,7 +56,6 @@
|
|
59
56
|
<UsePackages>false</UsePackages>
|
60
57
|
<IntermediateOutputDir>.\$(Config)\$(Platform)</IntermediateOutputDir>
|
61
58
|
<FinalOutputDir>..\..\bin\</FinalOutputDir>
|
62
|
-
<BCC_wpar>false</BCC_wpar>
|
63
59
|
<BCC_OptimizeForSpeed>true</BCC_OptimizeForSpeed>
|
64
60
|
<BCC_ExtendedErrorInfo>true</BCC_ExtendedErrorInfo>
|
65
61
|
<TD_VER_MAJOR>1</TD_VER_MAJOR>
|
@@ -64,16 +64,12 @@
|
|
64
64
|
<PropertyGroup Condition="'$(Base)'!=''">
|
65
65
|
<ILINK_LibraryPath>..\..\lib;$(ILINK_LibraryPath)</ILINK_LibraryPath>
|
66
66
|
<BRCC_CompilerToUse>rc</BRCC_CompilerToUse>
|
67
|
-
<
|
67
|
+
<BRCC_IncludePath>$(BDSINCLUDE)\windows\sdk;$(BRCC_IncludePath)</BRCC_IncludePath>
|
68
68
|
<BRCC_EnableMultiByte>true</BRCC_EnableMultiByte>
|
69
|
-
<VerInfo_MinorVer>1</VerInfo_MinorVer>
|
70
|
-
<VerInfo_DLL>true</VerInfo_DLL>
|
71
69
|
<Defines>ARBTREGN_PKG;$(Defines)</Defines>
|
72
70
|
<IncludePath>..\..\source\;$(IncludePath)</IncludePath>
|
73
71
|
<Manifest_File>None</Manifest_File>
|
74
72
|
<ILINK_AdditionalOptions>/Gl</ILINK_AdditionalOptions>
|
75
|
-
<VerInfo_Keys>CompanyName=BizStation Corp;FileDescription=;FileVersion=1.1.0.0;InternalName=;LegalCopyright=Copyright(C) 2013 BizStation Corp;LegalTrademarks=;OriginalFilename=;ProductName=Transactd Client;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
76
|
-
<VerInfo_Locale>1041</VerInfo_Locale>
|
77
73
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
78
74
|
<BCC_wiip>false</BCC_wiip>
|
79
75
|
<TD_VER_MAJOR>1</TD_VER_MAJOR>
|
@@ -100,14 +96,10 @@
|
|
100
96
|
</PropertyGroup>
|
101
97
|
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
102
98
|
<Manifest_File>None</Manifest_File>
|
103
|
-
<VerInfo_Locale>1033</VerInfo_Locale>
|
104
99
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
105
|
-
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
106
100
|
</PropertyGroup>
|
107
101
|
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
108
102
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
|
109
|
-
<VerInfo_Locale>1033</VerInfo_Locale>
|
110
|
-
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
111
103
|
</PropertyGroup>
|
112
104
|
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
113
105
|
<_TCHARMapping>char</_TCHARMapping>
|
@@ -136,8 +128,6 @@
|
|
136
128
|
<TASM_Debugging>None</TASM_Debugging>
|
137
129
|
</PropertyGroup>
|
138
130
|
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
|
139
|
-
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
140
|
-
<VerInfo_Locale>1033</VerInfo_Locale>
|
141
131
|
<Defines>NDEBUG;$(Defines)</Defines>
|
142
132
|
<DllSuffix>m_$(DllSuffix)</DllSuffix>
|
143
133
|
</PropertyGroup>
|
@@ -149,9 +139,7 @@
|
|
149
139
|
<BCC_DisableOptimizations>true</BCC_DisableOptimizations>
|
150
140
|
<BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
|
151
141
|
<ILINK_Verbose>true</ILINK_Verbose>
|
152
|
-
<VerInfo_Locale>1033</VerInfo_Locale>
|
153
142
|
<BCC_SourceDebuggingOn>true</BCC_SourceDebuggingOn>
|
154
|
-
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
155
143
|
<DllSuffix>u_$(DllSuffix)</DllSuffix>
|
156
144
|
</PropertyGroup>
|
157
145
|
<PropertyGroup Condition="'$(Cfg_4)'!=''">
|
@@ -162,8 +150,6 @@
|
|
162
150
|
<BCC_WindowsVersionDefines>NTDDI_VERSION=NTDDI_WINXPSP1;_WIN32_WINNT=_WIN32_WINNT_WINXP</BCC_WindowsVersionDefines>
|
163
151
|
<BCC_OptimizeForSize>true</BCC_OptimizeForSize>
|
164
152
|
<BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
|
165
|
-
<VerInfo_Locale>1033</VerInfo_Locale>
|
166
|
-
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
167
153
|
<DllSuffix>u_$(DllSuffix)</DllSuffix>
|
168
154
|
</PropertyGroup>
|
169
155
|
<ItemGroup>
|
data/build/tdclrb/CMakeLists.txt
CHANGED
@@ -167,8 +167,12 @@ endif()
|
|
167
167
|
# ==========================================================
|
168
168
|
# add_library
|
169
169
|
# ==========================================================
|
170
|
-
|
171
|
-
|
170
|
+
if(APPLE)
|
171
|
+
add_library(${this_target} MODULE ${${this_target}_SOURCE_FILES})
|
172
|
+
set_target_properties(${this_target} PROPERTIES LINK_FLAGS "-flat_namespace")
|
173
|
+
else()
|
174
|
+
add_library(${this_target} SHARED ${${this_target}_SOURCE_FILES})
|
175
|
+
endif()
|
172
176
|
|
173
177
|
# ==========================================================
|
174
178
|
# add link / include
|
@@ -187,8 +191,12 @@ target_link_libraries(${this_target} ${TRANSACTD_RUBY_LIBRARY_PATH})
|
|
187
191
|
# ==========================================================
|
188
192
|
set_target_properties(${this_target} PROPERTIES PREFIX "")
|
189
193
|
set_target_properties(${this_target} PROPERTIES OUTPUT_NAME transactd)
|
190
|
-
|
191
|
-
|
194
|
+
if(APPLE)
|
195
|
+
set_target_properties(${this_target} PROPERTIES SUFFIX ".bundle")
|
196
|
+
else()
|
197
|
+
set_target_properties(${this_target} PROPERTIES SUFFIX ".so")
|
198
|
+
endif()
|
199
|
+
if(UNIX AND NOT APPLE)
|
192
200
|
set_target_properties(${this_target} PROPERTIES
|
193
201
|
SOVERSION ${TDVER_RUBYGEM_MAJOR}.${TDVER_RUBYGEM_MINOR}
|
194
202
|
VERSION ${TDVER_RUBYGEM_MAJOR}.${TDVER_RUBYGEM_MINOR}.${TDVER_RUBYGEM_RELEASE})
|
data/build/tdclrb/GEM_VERSION
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
TDVER_RUBYGEM_VER_MAJOR 1
|
2
|
-
TDVER_RUBYGEM_VER_MINOR
|
3
|
-
TDVER_RUBYGEM_VER_RELEASE
|
2
|
+
TDVER_RUBYGEM_VER_MINOR 1
|
3
|
+
TDVER_RUBYGEM_VER_RELEASE 2
|
@@ -27,15 +27,16 @@ extern unsigned int g_lock_wait_timeout;
|
|
27
27
|
extern char* g_transaction_isolation;
|
28
28
|
|
29
29
|
#ifdef USETLS
|
30
|
-
|
30
|
+
tls_key g_tlsiID ;
|
31
|
+
#else
|
32
|
+
__THREAD char* __THREAD_BCB t_stack = NULL;
|
31
33
|
#endif
|
32
34
|
|
33
|
-
__THREAD char* __THREAD_BCB t_stack = NULL;
|
34
35
|
|
35
36
|
inline char* getStackaddr()
|
36
37
|
{
|
37
38
|
#ifdef USETLS
|
38
|
-
return (char*)
|
39
|
+
return (char*)tls_getspecific(g_tlsiID);
|
39
40
|
#else
|
40
41
|
return t_stack;
|
41
42
|
#endif
|
@@ -44,7 +45,7 @@ inline char* getStackaddr()
|
|
44
45
|
inline void setStackaddr(char* v)
|
45
46
|
{
|
46
47
|
#ifdef USETLS
|
47
|
-
|
48
|
+
tls_setspecific(g_tlsiID, v);
|
48
49
|
#else
|
49
50
|
t_stack = v;
|
50
51
|
#endif
|
@@ -31,17 +31,28 @@
|
|
31
31
|
|
32
32
|
#pragma package(smart_init)
|
33
33
|
|
34
|
+
#undef USETLS
|
35
|
+
#if ((defined(_WIN32) && _MSC_VER) || __APPLE__)
|
36
|
+
#define USETLS
|
37
|
+
#endif
|
38
|
+
|
34
39
|
|
35
|
-
#
|
36
|
-
extern
|
40
|
+
#ifdef USETLS
|
41
|
+
extern tls_key g_tlsiID_SC2;
|
37
42
|
#else
|
38
43
|
__THREAD _TCHAR __THREAD_BCB g_date2[45];
|
39
44
|
#endif
|
40
45
|
|
41
46
|
inline _TCHAR* databuf()
|
42
47
|
{
|
43
|
-
#
|
44
|
-
|
48
|
+
#ifdef USETLS
|
49
|
+
_TCHAR* p = (_TCHAR*)tls_getspecific(g_tlsiID_SC2);
|
50
|
+
if (p == NULL)
|
51
|
+
{
|
52
|
+
p = (_TCHAR*)new wchar_t[45];
|
53
|
+
tls_setspecific(g_tlsiID_SC2, p);
|
54
|
+
}
|
55
|
+
return p;
|
45
56
|
#else
|
46
57
|
return g_date2;
|
47
58
|
#endif
|
@@ -31,7 +31,10 @@
|
|
31
31
|
#include <vector>
|
32
32
|
#ifdef _WIN32
|
33
33
|
#include <mbstring.h>
|
34
|
+
#else
|
35
|
+
#include <pthread.h>
|
34
36
|
#endif
|
37
|
+
|
35
38
|
extern bzs::netsvc::client::connections* m_cons;
|
36
39
|
|
37
40
|
namespace bzs
|
@@ -46,7 +49,8 @@ namespace client
|
|
46
49
|
{
|
47
50
|
#define TABELNAME_PREFIX "dbfile="
|
48
51
|
|
49
|
-
|
52
|
+
class client;
|
53
|
+
void setClientThread(client* v);
|
50
54
|
|
51
55
|
class client
|
52
56
|
{
|
@@ -60,11 +64,10 @@ class client
|
|
60
64
|
std::string m_sql;
|
61
65
|
std::string m_serverCharData;
|
62
66
|
std::string m_serverCharData2;
|
63
|
-
|
64
67
|
uint_td m_tmplen;
|
65
68
|
bool m_logout;
|
66
69
|
blobBuffer m_blobBuffer;
|
67
|
-
|
70
|
+
bool m_disconnected;
|
68
71
|
|
69
72
|
std::vector<char> m_sendbuf;
|
70
73
|
inline bzs::netsvc::client::connection* con(){return m_req.cid->con;};
|
@@ -72,7 +75,10 @@ class client
|
|
72
75
|
|
73
76
|
inline void disconnect()
|
74
77
|
{
|
75
|
-
|
78
|
+
if (!con())
|
79
|
+
m_req.result = 1;
|
80
|
+
else
|
81
|
+
m_disconnected = m_cons->disconnect(con());
|
76
82
|
if (m_req.result==0)
|
77
83
|
setCon(NULL);
|
78
84
|
}
|
@@ -106,8 +112,13 @@ class client
|
|
106
112
|
}
|
107
113
|
static void addSecondCharsetData(unsigned int destCodePage, std::string& src);
|
108
114
|
public:
|
109
|
-
client():m_charsetIndexServer(-1)
|
115
|
+
client():m_charsetIndexServer(-1),m_disconnected(true)
|
116
|
+
{
|
117
|
+
}
|
118
|
+
void cleanup()
|
110
119
|
{
|
120
|
+
if (m_disconnected)
|
121
|
+
setClientThread(NULL);
|
111
122
|
}
|
112
123
|
request& req(){return m_req;}
|
113
124
|
inline void setParam(ushort_td op, posblk* pbk,
|
@@ -136,9 +147,8 @@ public:
|
|
136
147
|
{
|
137
148
|
if (m_op==TD_STOP_ENGINE)
|
138
149
|
{
|
139
|
-
m_req.result =
|
140
|
-
|
141
|
-
setCon(NULL);
|
150
|
+
m_req.result = 0;
|
151
|
+
disconnect();
|
142
152
|
return !m_req.result;
|
143
153
|
}
|
144
154
|
return false;
|
@@ -153,7 +163,7 @@ public:
|
|
153
163
|
setCon(m_cons->connect(host)); //if error throw exception
|
154
164
|
|
155
165
|
}
|
156
|
-
|
166
|
+
m_disconnected = !m_req.cid->con;
|
157
167
|
}
|
158
168
|
inline void create()
|
159
169
|
{
|
@@ -176,7 +186,6 @@ public:
|
|
176
186
|
}else if ((m_req.keyNum == CR_SUBOP_SWAPNAME)||(m_req.keyNum == CR_SUBOP_RENAME))
|
177
187
|
{
|
178
188
|
readServerCharsetIndex();
|
179
|
-
//m_sql = std::string((char*)m_req.data, *m_req.datalen);
|
180
189
|
m_sql = (char*)m_req.data;
|
181
190
|
addSecondCharsetData(mysql::codePage(m_charsetIndexServer), m_sql);
|
182
191
|
m_req.data =(ushort_td*) m_sql.c_str();
|
@@ -211,7 +220,6 @@ public:
|
|
211
220
|
{
|
212
221
|
if (result()==0)
|
213
222
|
{
|
214
|
-
//mutex::scoped_lock lck(m_mutex);
|
215
223
|
if (!con())
|
216
224
|
m_preResult = ERROR_TD_NOT_CONNECTED;
|
217
225
|
else
|
@@ -257,27 +265,47 @@ public:
|
|
257
265
|
|
258
266
|
};
|
259
267
|
|
260
|
-
#
|
261
|
-
|
268
|
+
#define USETLS //USE TLS ALL
|
269
|
+
|
270
|
+
|
271
|
+
|
272
|
+
#ifdef USETLS
|
273
|
+
extern tls_key g_tlsiID;
|
262
274
|
#else
|
263
|
-
extern
|
275
|
+
extern __THREAD client* __THREAD_BCB g_client;
|
264
276
|
#endif
|
265
277
|
|
266
278
|
|
279
|
+
|
267
280
|
inline client* getClientThread()
|
268
281
|
{
|
269
|
-
#ifdef
|
270
|
-
|
282
|
+
#ifdef USETLS
|
283
|
+
client* p = (client*)tls_getspecific(g_tlsiID);
|
284
|
+
if (p == NULL)
|
285
|
+
{
|
286
|
+
p = new client();
|
287
|
+
tls_setspecific(g_tlsiID, p);
|
288
|
+
}
|
289
|
+
return p;
|
271
290
|
#else
|
291
|
+
if (g_client == NULL)
|
292
|
+
g_client = new client();
|
272
293
|
return g_client;
|
273
294
|
#endif
|
274
295
|
}
|
275
296
|
|
276
297
|
inline void setClientThread(client* v)
|
277
298
|
{
|
278
|
-
#ifdef
|
279
|
-
|
299
|
+
#ifdef USETLS
|
300
|
+
if (v == NULL)
|
301
|
+
{
|
302
|
+
client* p = (client*)tls_getspecific(g_tlsiID);
|
303
|
+
delete p;
|
304
|
+
}
|
305
|
+
tls_setspecific(g_tlsiID, v);
|
280
306
|
#else
|
307
|
+
if (v == NULL)
|
308
|
+
delete g_client;
|
281
309
|
g_client = v;
|
282
310
|
#endif
|
283
311
|
}
|
@@ -20,7 +20,7 @@
|
|
20
20
|
#pragma hdrstop
|
21
21
|
|
22
22
|
#include "database.h"
|
23
|
-
|
23
|
+
#include <bzs/rtl/exception.h>
|
24
24
|
//---------------------------------------------------------------------------
|
25
25
|
|
26
26
|
|
@@ -40,7 +40,12 @@ namespace client
|
|
40
40
|
|
41
41
|
database* database::create()
|
42
42
|
{
|
43
|
-
|
43
|
+
try
|
44
|
+
{
|
45
|
+
return new database();
|
46
|
+
}
|
47
|
+
catch( bzs::rtl::exception& /*e*/){}
|
48
|
+
return NULL;
|
44
49
|
}
|
45
50
|
|
46
51
|
}//namespace client
|
@@ -49,23 +54,59 @@ database* database::create()
|
|
49
54
|
}//namespace db
|
50
55
|
}//namespace bzs
|
51
56
|
|
57
|
+
|
58
|
+
#undef USETLS
|
59
|
+
#if ((defined(_WIN32) && _MSC_VER) || __APPLE__)
|
60
|
+
#define USETLS
|
61
|
+
#endif
|
62
|
+
|
52
63
|
/* At MSVC use __thread before Windows Vista, After the DLL is loaded with LoadLibrary
|
53
64
|
then it causes system failure.
|
54
65
|
|
55
66
|
*/
|
56
|
-
#
|
57
|
-
|
58
|
-
|
59
|
-
|
67
|
+
#ifdef USETLS
|
68
|
+
tls_key g_tlsiID_SC1;
|
69
|
+
tls_key g_tlsiID_SC2;
|
70
|
+
tls_key g_tlsiID_SC3;
|
60
71
|
|
61
72
|
void initTlsThread()
|
62
73
|
{
|
63
|
-
|
74
|
+
tls_setspecific(g_tlsiID_SC1, new wchar_t[256]);
|
75
|
+
tls_setspecific(g_tlsiID_SC2, new wchar_t[45]);
|
76
|
+
tls_setspecific(g_tlsiID_SC3, new wchar_t[45]);
|
77
|
+
}
|
64
78
|
|
65
|
-
|
66
|
-
|
79
|
+
void cleanupTls()
|
80
|
+
{
|
81
|
+
delete (char*)tls_getspecific(g_tlsiID_SC1);
|
82
|
+
delete (char*)tls_getspecific(g_tlsiID_SC2);
|
83
|
+
delete (char*)tls_getspecific(g_tlsiID_SC3);
|
67
84
|
}
|
68
85
|
|
86
|
+
#ifdef __APPLE__
|
87
|
+
|
88
|
+
void __attribute__ ((constructor)) onLoadLibrary(void);
|
89
|
+
void __attribute__ ((destructor)) onUnloadLibrary(void);
|
90
|
+
|
91
|
+
void onLoadLibrary(void)
|
92
|
+
{
|
93
|
+
pthread_key_create(&g_tlsiID_SC1, NULL);
|
94
|
+
pthread_key_create(&g_tlsiID_SC2, NULL);
|
95
|
+
pthread_key_create(&g_tlsiID_SC3, NULL);
|
96
|
+
}
|
97
|
+
|
98
|
+
void onUnloadLibrary(void)
|
99
|
+
{
|
100
|
+
cleanupTls();
|
101
|
+
pthread_key_delete(g_tlsiID_SC1);
|
102
|
+
pthread_key_delete(g_tlsiID_SC2);
|
103
|
+
pthread_key_delete(g_tlsiID_SC3);
|
104
|
+
}
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
#else
|
109
|
+
|
69
110
|
BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
|
70
111
|
{
|
71
112
|
if (reason == DLL_PROCESS_ATTACH)
|
@@ -77,7 +118,6 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
|
|
77
118
|
if ((g_tlsiID_SC3 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
|
78
119
|
return FALSE;
|
79
120
|
initTlsThread();
|
80
|
-
|
81
121
|
}
|
82
122
|
else if(reason == DLL_THREAD_ATTACH)
|
83
123
|
{
|
@@ -85,16 +125,18 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
|
|
85
125
|
}
|
86
126
|
else if(reason == DLL_THREAD_DETACH)
|
87
127
|
{
|
88
|
-
|
128
|
+
cleanupTls();
|
89
129
|
}
|
90
130
|
else if (reason == DLL_PROCESS_DETACH)
|
91
131
|
{
|
132
|
+
cleanupTls();
|
92
133
|
TlsFree(g_tlsiID_SC1);
|
93
134
|
TlsFree(g_tlsiID_SC2);
|
94
135
|
TlsFree(g_tlsiID_SC3);
|
95
136
|
}
|
96
137
|
return TRUE;
|
97
138
|
}
|
139
|
+
#endif
|
98
140
|
#endif //(_UNICODE && defined(_WIN32) && _MSC_VER)
|
99
141
|
|
100
142
|
|