transactd 1.2.0 → 2.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/BUILD_UNIX-JA +46 -67
- data/BUILD_WIN-JA +106 -63
- data/CMakeLists.txt +40 -15
- data/README +219 -75
- data/README-JA +207 -76
- data/README_ORMSRCGEN +118 -0
- data/README_ORMSRCGEN-JA +115 -0
- data/bin/common/tdclc_32_2_0.dll +0 -0
- data/bin/common/tdclc_64_2_0.dll +0 -0
- data/build/common/check_for_link_iconv.cmake +18 -14
- data/build/common/create_symlink.cmake.in +25 -0
- data/build/common/get_boost_libs.cmake +23 -23
- data/build/common/options.cmake +0 -66
- data/build/common/smart_install.cmake +3 -3
- data/build/common/transactd.rc.in +15 -5
- data/build/common/transactd_cl_common.cmake +37 -18
- data/build/common/transactd_cl_output.cmake +55 -13
- data/build/common/transactd_common.cmake +108 -31
- data/build/swig/php/generate.cmake.in +15 -17
- data/build/swig/php/generate.cmd.in +15 -9
- data/build/swig/php/php.swg +124 -82
- data/build/swig/php/transactd.no_yield.php +4494 -0
- data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
- data/build/swig/php/transactd.no_yield.php.patch +685 -0
- data/build/swig/php/transactd.yield.php +4461 -0
- data/build/swig/php/transactd.yield.php.git.patch +652 -0
- data/build/swig/php/transactd.yield.php.patch +652 -0
- data/build/swig/referencecounter.h +79 -0
- data/build/swig/ruby/ruby.swg +226 -76
- data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
- data/build/swig/ruby/without_gvl.swg +87 -0
- data/build/swig/tdcl.i +659 -170
- data/build/swig/validatablepointer.h +91 -0
- data/build/tdclc/CMakeLists.txt +49 -34
- data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
- data/build/tdclc/tdclc.rc +0 -0
- data/build/tdclcpp/CMakeLists.txt +84 -20
- data/build/tdclcpp/tdclcpp.rc +0 -0
- data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
- data/build/tdclrb/CMakeLists.txt +84 -66
- data/build/tdclrb/bldgem/extconf.rb +28 -3
- data/build/tdclrb/gem/helper.rb +11 -1
- data/build/tdclrb/gem_output.cmake +20 -16
- data/index_ja.html +15 -0
- data/source/bzs/db/IBlobBuffer.h +15 -17
- data/source/bzs/db/blobBuffer.h +186 -140
- data/source/bzs/db/blobStructs.h +37 -37
- data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
- data/source/bzs/db/engine/mysql/bookmark.h +150 -147
- data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
- data/source/bzs/db/engine/mysql/database.h +608 -370
- data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
- data/source/bzs/db/engine/mysql/dbManager.h +115 -104
- data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
- data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
- data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
- data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
- data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
- data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
- data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
- data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
- data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
- data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
- data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
- data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
- data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
- data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
- data/source/bzs/db/protocol/tdap/client/client.h +361 -320
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
- data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
- data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
- data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
- data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
- data/source/bzs/db/protocol/tdap/client/database.h +141 -118
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
- data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
- data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
- data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
- data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
- data/source/bzs/db/protocol/tdap/client/export.h +35 -0
- data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
- data/source/bzs/db/protocol/tdap/client/field.h +393 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
- data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
- data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
- data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
- data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
- data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
- data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
- data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
- data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
- data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
- data/source/bzs/db/protocol/tdap/client/request.h +227 -170
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
- data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
- data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
- data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
- data/source/bzs/db/protocol/tdap/client/table.h +413 -87
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
- data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
- data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
- data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
- data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
- data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
- data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
- data/source/bzs/db/transactd/appBuilderImple.h +21 -20
- data/source/bzs/db/transactd/appModule.cpp +350 -98
- data/source/bzs/db/transactd/appModule.h +31 -37
- data/source/bzs/db/transactd/connManager.cpp +138 -135
- data/source/bzs/db/transactd/connManager.h +28 -21
- data/source/bzs/db/transactd/connectionRecord.h +39 -39
- data/source/bzs/db/transactd/transactd.cpp +217 -203
- data/source/bzs/env/boost_bcb_link.h +131 -0
- data/source/bzs/env/compiler.h +136 -79
- data/source/bzs/env/crosscompile.cpp +57 -57
- data/source/bzs/env/crosscompile.h +130 -115
- data/source/bzs/env/fileopen.h +7 -8
- data/source/bzs/env/mbcswchrLinux.cpp +4 -9
- data/source/bzs/env/mbcswchrLinux.h +37 -34
- data/source/bzs/env/tcharMinGW.h +59 -0
- data/source/bzs/env/tstring.h +90 -95
- data/source/bzs/example/changeSchema.cpp +22 -23
- data/source/bzs/example/changeSchema_c.cpp +22 -24
- data/source/bzs/example/connection_pool_c.cpp +49 -104
- data/source/bzs/example/createDatabase.cpp +40 -47
- data/source/bzs/example/createDatabase_c.cpp +38 -43
- data/source/bzs/example/deleteRecords.cpp +10 -15
- data/source/bzs/example/deleteRecords_c.cpp +10 -14
- data/source/bzs/example/dropDatabase.cpp +3 -9
- data/source/bzs/example/dropDatabase_c.cpp +5 -6
- data/source/bzs/example/insertRecords.cpp +37 -29
- data/source/bzs/example/insertRecords_c.cpp +19 -25
- data/source/bzs/example/ormap_c.cpp +621 -0
- data/source/bzs/example/queryData.cpp +371 -0
- data/source/bzs/example/queryData.h +16 -0
- data/source/bzs/example/query_c.cpp +109 -0
- data/source/bzs/example/readRecords.cpp +27 -27
- data/source/bzs/example/readRecords_c.cpp +25 -23
- data/source/bzs/example/updateRecords.cpp +16 -21
- data/source/bzs/example/updateRecords_c.cpp +8 -12
- data/source/bzs/example/update_with_transaction.cpp +21 -24
- data/source/bzs/example/update_with_transaction_c.cpp +12 -15
- data/source/bzs/example/useORMRecord.cpp +177 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
- data/source/bzs/netsvc/client/tcpClient.h +541 -489
- data/source/bzs/netsvc/server/IAppModule.h +119 -32
- data/source/bzs/netsvc/server/iserver.h +21 -23
- data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
- data/source/bzs/netsvc/server/serverCpt.h +41 -43
- data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
- data/source/bzs/netsvc/server/serverPipe.h +44 -45
- data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
- data/source/bzs/netsvc/server/serverTpool.h +38 -43
- data/source/bzs/rtl/benchmark.cpp +91 -31
- data/source/bzs/rtl/benchmark.h +76 -22
- data/source/bzs/rtl/datetime.cpp +231 -233
- data/source/bzs/rtl/datetime.h +16 -16
- data/source/bzs/rtl/debuglog.cpp +48 -51
- data/source/bzs/rtl/debuglog.h +55 -44
- data/source/bzs/rtl/exception.h +55 -48
- data/source/bzs/rtl/stl_uty.cpp +27 -28
- data/source/bzs/rtl/stl_uty.h +28 -29
- data/source/bzs/rtl/stringBuffers.cpp +8 -6
- data/source/bzs/rtl/stringBuffers.h +16 -9
- data/source/bzs/rtl/strtrim.cpp +90 -91
- data/source/bzs/rtl/strtrim.h +14 -16
- data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
- data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
- data/source/bzs/test/tdclphp/bench.php +357 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
- data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
- data/source/bzs/test/tdclrb/prepare.rb +15 -12
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
- data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
- data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
- data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
- data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
- data/source/bzs/test/transactdBench/workerBase.h +88 -0
- data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
- data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
- data/source/global/ormsrcgen/confParam.h +80 -0
- data/source/global/ormsrcgen/fieldName.cpp +77 -0
- data/source/global/ormsrcgen/fieldName.h +43 -0
- data/source/global/ormsrcgen/main.cpp +196 -0
- data/source/global/ormsrcgen/srcgen.cpp +763 -0
- data/source/global/ormsrcgen/srcgen.h +72 -0
- data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
- data/source/global/ormsrcgen/template/template.cnf +38 -0
- data/source/global/querystmts/querystmts.cpp +237 -0
- data/source/global/tdclatl/ConnectParams.cpp +77 -0
- data/source/global/tdclatl/ConnectParams.h +70 -0
- data/source/global/tdclatl/Database.cpp +132 -128
- data/source/global/tdclatl/Database.h +60 -49
- data/source/global/tdclatl/DbDef.cpp +68 -64
- data/source/global/tdclatl/DbDef.h +36 -36
- data/source/global/tdclatl/Field.cpp +12 -17
- data/source/global/tdclatl/Field.h +15 -12
- data/source/global/tdclatl/FieldDef.cpp +75 -36
- data/source/global/tdclatl/FieldDef.h +38 -19
- data/source/global/tdclatl/FieldDefs.cpp +74 -0
- data/source/global/tdclatl/FieldDefs.h +56 -0
- data/source/global/tdclatl/FieldNames.cpp +99 -0
- data/source/global/tdclatl/FieldNames.h +66 -0
- data/source/global/tdclatl/Flags.cpp +75 -37
- data/source/global/tdclatl/Flags.h +13 -12
- data/source/global/tdclatl/GroupQuery.cpp +119 -0
- data/source/global/tdclatl/GroupQuery.h +65 -0
- data/source/global/tdclatl/KeyDef.cpp +15 -14
- data/source/global/tdclatl/KeyDef.h +20 -17
- data/source/global/tdclatl/KeySegment.cpp +13 -12
- data/source/global/tdclatl/PooledDbManager.cpp +223 -0
- data/source/global/tdclatl/PooledDbManager.h +76 -0
- data/source/global/tdclatl/QueryBase.cpp +206 -127
- data/source/global/tdclatl/QueryBase.h +55 -59
- data/source/global/tdclatl/Record.cpp +214 -0
- data/source/global/tdclatl/Record.h +96 -0
- data/source/global/tdclatl/Recordset.cpp +278 -0
- data/source/global/tdclatl/Recordset.h +83 -0
- data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
- data/source/global/tdclatl/RecordsetQuery.h +126 -0
- data/source/global/tdclatl/Table.cpp +57 -60
- data/source/global/tdclatl/Table.h +32 -29
- data/source/global/tdclatl/TableDef.cpp +63 -62
- data/source/global/tdclatl/TableDef.h +20 -22
- data/source/global/tdclatl/TdVersion.cpp +3 -3
- data/source/global/tdclatl/TdVersion.h +15 -11
- data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
- data/source/global/tdclatl/activeTable.cpp +355 -0
- data/source/global/tdclatl/activeTable.h +79 -0
- data/source/global/tdclatl/dllmain.cpp +4 -3
- data/source/global/tdclatl/dllmain.h +7 -6
- data/source/global/tdclatl/keySegment.h +22 -18
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/stdafx.h +6 -4
- data/source/global/tdclatl/targetver.h +0 -1
- data/source/global/tdclatl/tdclatl.cpp +10 -5
- data/source/global/tdclatl/tdclatl.idl +530 -14
- data/source/linux/charsetConvert.h +78 -79
- data/source/linux/linuxTypes.h +9 -12
- data/source/linux/tchar.h +168 -166
- data/transactd.gemspec +24 -16
- metadata +98 -12
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclc_64_1_2.dll +0 -0
- data/build/tdclc/tdclc_32.cbproj +0 -173
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
- data/build/tdclrb/GEM_VERSION +0 -3
- data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
- data/source/bzs/example/useORM.cpp +0 -585
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
GNU General Public License for more details.
|
|
13
13
|
|
|
14
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
|
|
15
|
+
along with this program; if not, write to the Free Software
|
|
16
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
17
17
|
02111-1307, USA.
|
|
18
18
|
=================================================================*/
|
|
19
19
|
|
|
@@ -31,12 +31,8 @@
|
|
|
31
31
|
|
|
32
32
|
#define _CRT_SECURE_NO_WARNINGS
|
|
33
33
|
|
|
34
|
-
static const int TYPE_DDF = 1;
|
|
35
34
|
static const int TYPE_BDF = 0;
|
|
36
35
|
static const bool AUTO_CREATE_TABLE = true;
|
|
37
|
-
static const _TCHAR* OWNER_NAME = _T("");
|
|
38
|
-
static const _TCHAR* DIR = _T("");
|
|
39
|
-
|
|
40
36
|
static const short fn_id = 0;
|
|
41
37
|
static const short fn_name = 1;
|
|
42
38
|
static const int trans_bias = PARALLEL_TRN + LOCK_SINGLE_NOWAIT;
|
|
@@ -49,24 +45,27 @@ static const int USE_SNAPSHOT = 4;
|
|
|
49
45
|
using namespace bzs::rtl;
|
|
50
46
|
using namespace bzs::db::protocol::tdap;
|
|
51
47
|
|
|
52
|
-
/* --------------------------------------------------------------------------------
|
|
48
|
+
/* --------------------------------------------------------------------------------
|
|
49
|
+
*/
|
|
53
50
|
void showTableError(client::table* tb, const _TCHAR* description)
|
|
54
51
|
{
|
|
55
52
|
if (tb->stat() != 0)
|
|
56
|
-
_tprintf(_T("%s error %s:No.%d\r\n"), description,
|
|
53
|
+
_tprintf(_T("%s error %s:No.%d\r\n"), description,
|
|
54
|
+
tb->tableDef()->fileName(), tb->stat());
|
|
57
55
|
}
|
|
58
56
|
|
|
59
|
-
/* --------------------------------------------------------------------------------
|
|
57
|
+
/* --------------------------------------------------------------------------------
|
|
58
|
+
*/
|
|
60
59
|
void showEnginError(client::database* db, const _TCHAR* tableName)
|
|
61
60
|
{
|
|
62
61
|
if (db->stat() != 0)
|
|
63
62
|
_tprintf(_T("%s error No.%d\r\n"), tableName, db->stat());
|
|
64
63
|
}
|
|
65
64
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
/* --------------------------------------------------------------------------------
|
|
66
|
+
*/
|
|
67
|
+
client::table* openTable(client::database* db, const _TCHAR* tableName,
|
|
68
|
+
short mode)
|
|
70
69
|
{
|
|
71
70
|
client::table* tb = db->openTable(tableName, mode, AUTO_CREATE_TABLE);
|
|
72
71
|
if (tb == NULL)
|
|
@@ -74,14 +73,16 @@ client::table* openTable(client::database* db, const _TCHAR* tableName, short mo
|
|
|
74
73
|
return tb;
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
/* --------------------------------------------------------------------------------
|
|
76
|
+
/* --------------------------------------------------------------------------------
|
|
77
|
+
*/
|
|
78
78
|
bool createDataBase(client::database* db, const _TCHAR* uri)
|
|
79
79
|
{
|
|
80
80
|
db->create(uri);
|
|
81
81
|
return (db->stat() == 0);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
/* --------------------------------------------------------------------------------
|
|
84
|
+
/* --------------------------------------------------------------------------------
|
|
85
|
+
*/
|
|
85
86
|
bool write(client::table* tb, int start, int end)
|
|
86
87
|
{
|
|
87
88
|
tb->setKeyNum(0);
|
|
@@ -100,7 +101,8 @@ bool write(client::table* tb, int start, int end)
|
|
|
100
101
|
return true;
|
|
101
102
|
}
|
|
102
103
|
|
|
103
|
-
/* --------------------------------------------------------------------------------
|
|
104
|
+
/* --------------------------------------------------------------------------------
|
|
105
|
+
*/
|
|
104
106
|
bool deleteAll(client::database* db, client::table* tb, int start, int end)
|
|
105
107
|
{
|
|
106
108
|
db->beginTrn(trans_bias);
|
|
@@ -124,12 +126,12 @@ bool deleteAll(client::database* db, client::table* tb, int start, int end)
|
|
|
124
126
|
return true;
|
|
125
127
|
}
|
|
126
128
|
|
|
127
|
-
/* --------------------------------------------------------------------------------
|
|
128
|
-
|
|
129
|
+
/* --------------------------------------------------------------------------------
|
|
130
|
+
*/
|
|
131
|
+
bool Inserts(client::database* db, client::table* tb, int start, int end,
|
|
132
|
+
int mode, int unit)
|
|
129
133
|
{
|
|
130
134
|
bool ret = true;
|
|
131
|
-
int total = end - start;
|
|
132
|
-
int count = total / unit;
|
|
133
135
|
int st = start;
|
|
134
136
|
int en = st;
|
|
135
137
|
while (en != end)
|
|
@@ -149,11 +151,12 @@ bool Inserts(client::database* db, client::table* tb, int start, int end, int mo
|
|
|
149
151
|
st = en;
|
|
150
152
|
}
|
|
151
153
|
return ret;
|
|
152
|
-
|
|
153
154
|
}
|
|
154
155
|
|
|
155
|
-
/* --------------------------------------------------------------------------------
|
|
156
|
-
|
|
156
|
+
/* --------------------------------------------------------------------------------
|
|
157
|
+
*/
|
|
158
|
+
bool Read(client::database* db, client::table* tb, int start, int end,
|
|
159
|
+
int shapshot)
|
|
157
160
|
{
|
|
158
161
|
bool ret = true;
|
|
159
162
|
tb->clearBuffer();
|
|
@@ -165,7 +168,8 @@ bool Read(client::database* db, client::table* tb, int start, int end, int shaps
|
|
|
165
168
|
tb->seek();
|
|
166
169
|
if ((tb->stat() != 0) || (tb->getFVlng(fn_id) != i))
|
|
167
170
|
{
|
|
168
|
-
printf("GetEqual Error stat() = %d Value %d = %d\r\n", tb->stat(),
|
|
171
|
+
printf("GetEqual Error stat() = %d Value %d = %d\r\n", tb->stat(),
|
|
172
|
+
i, tb->getFVlng(fn_id));
|
|
169
173
|
ret = false;
|
|
170
174
|
break;
|
|
171
175
|
}
|
|
@@ -176,12 +180,12 @@ bool Read(client::database* db, client::table* tb, int start, int end, int shaps
|
|
|
176
180
|
return ret;
|
|
177
181
|
}
|
|
178
182
|
|
|
179
|
-
/* --------------------------------------------------------------------------------
|
|
180
|
-
|
|
183
|
+
/* --------------------------------------------------------------------------------
|
|
184
|
+
*/
|
|
185
|
+
bool Reads(client::database* db, client::table* tb, int start, int end,
|
|
186
|
+
int unit, int shapshot)
|
|
181
187
|
{
|
|
182
188
|
bool ret = true;
|
|
183
|
-
int total = end - start;
|
|
184
|
-
int count = total / unit;
|
|
185
189
|
int st = start;
|
|
186
190
|
int en = st;
|
|
187
191
|
if (shapshot == USE_SNAPSHOT)
|
|
@@ -198,7 +202,8 @@ bool Reads(client::database* db, client::table* tb, int start, int end, int unit
|
|
|
198
202
|
{
|
|
199
203
|
if (tb->getFVlng(fn_id) != i)
|
|
200
204
|
{
|
|
201
|
-
printf("findNext Error stat() = %d Value %d = %d\r\n",
|
|
205
|
+
printf("findNext Error stat() = %d Value %d = %d\r\n",
|
|
206
|
+
tb->stat(), i, tb->getFVlng(fn_id));
|
|
202
207
|
ret = false;
|
|
203
208
|
break;
|
|
204
209
|
}
|
|
@@ -207,21 +212,20 @@ bool Reads(client::database* db, client::table* tb, int start, int end, int unit
|
|
|
207
212
|
if (ret == false)
|
|
208
213
|
break;
|
|
209
214
|
st = en;
|
|
210
|
-
|
|
211
215
|
}
|
|
212
216
|
if (shapshot == USE_SNAPSHOT)
|
|
213
217
|
db->endSnapshot();
|
|
214
218
|
return ret;
|
|
215
219
|
}
|
|
216
|
-
/* --------------------------------------------------------------------------------
|
|
217
|
-
|
|
220
|
+
/* --------------------------------------------------------------------------------
|
|
221
|
+
*/
|
|
222
|
+
bool Updates(client::database* db, client::table* tb, int start, int end,
|
|
223
|
+
int tran, int unit)
|
|
218
224
|
{
|
|
219
225
|
bool ret = true;
|
|
220
226
|
_TCHAR buf[30];
|
|
221
227
|
tb->setKeyNum(0);
|
|
222
228
|
|
|
223
|
-
int total = end - start;
|
|
224
|
-
int count = total / unit;
|
|
225
229
|
int st = start;
|
|
226
230
|
int en = st;
|
|
227
231
|
while (en != end)
|
|
@@ -233,9 +237,9 @@ bool Updates(client::database* db, client::table* tb, int start, int end, int tr
|
|
|
233
237
|
for (int i = st; i < en; i++)
|
|
234
238
|
{
|
|
235
239
|
tb->setFV(fn_id, i);
|
|
236
|
-
|
|
240
|
+
_ltot_s(i + 1 + tran, buf, 30, 10);
|
|
237
241
|
tb->setFV(fn_name, buf);
|
|
238
|
-
tb->update(client::nstable::changeInKey);
|
|
242
|
+
tb->update(client::nstable::changeInKey);
|
|
239
243
|
if (tb->stat() != 0)
|
|
240
244
|
{
|
|
241
245
|
ret = false;
|
|
@@ -251,7 +255,8 @@ bool Updates(client::database* db, client::table* tb, int start, int end, int tr
|
|
|
251
255
|
return ret;
|
|
252
256
|
}
|
|
253
257
|
|
|
254
|
-
/* --------------------------------------------------------------------------------
|
|
258
|
+
/* --------------------------------------------------------------------------------
|
|
259
|
+
*/
|
|
255
260
|
bool createTestDataBase(client::database* db, const _TCHAR* uri)
|
|
256
261
|
{
|
|
257
262
|
db->create(uri);
|
|
@@ -266,7 +271,7 @@ bool createTestDataBase(client::database* db, const _TCHAR* uri)
|
|
|
266
271
|
client::dbdef* def = db->dbDef();
|
|
267
272
|
|
|
268
273
|
tabledef td;
|
|
269
|
-
memset(&td, 0, sizeof(td));
|
|
274
|
+
memset(&td, 0, sizeof(td));
|
|
270
275
|
td.setTableName(_T("user"));
|
|
271
276
|
td.setFileName(_T("user.dat"));
|
|
272
277
|
td.id = 1;
|
|
@@ -280,12 +285,15 @@ bool createTestDataBase(client::database* db, const _TCHAR* uri)
|
|
|
280
285
|
fd->setName(_T("id"));
|
|
281
286
|
fd->type = ft_integer;
|
|
282
287
|
fd->len = (ushort_td)4;
|
|
283
|
-
|
|
288
|
+
def->updateTableDef(1);
|
|
284
289
|
|
|
285
290
|
fd = def->insertField(td.id, 1);
|
|
286
291
|
fd->setName(_T("name"));
|
|
287
|
-
|
|
288
|
-
|
|
292
|
+
if (db->isUseTransactd())
|
|
293
|
+
fd->type = ft_myvarchar;
|
|
294
|
+
else
|
|
295
|
+
fd->type = ft_zstring;
|
|
296
|
+
|
|
289
297
|
fd->len = (ushort_td)100;
|
|
290
298
|
def->updateTableDef(td.id);
|
|
291
299
|
|
|
@@ -304,68 +312,72 @@ bool createTestDataBase(client::database* db, const _TCHAR* uri)
|
|
|
304
312
|
return false;
|
|
305
313
|
}
|
|
306
314
|
|
|
307
|
-
/* --------------------------------------------------------------------------------
|
|
315
|
+
/* --------------------------------------------------------------------------------
|
|
316
|
+
*/
|
|
308
317
|
void printDateTime()
|
|
309
318
|
{
|
|
310
319
|
time_t timer;
|
|
311
320
|
#ifdef LINUX
|
|
312
|
-
|
|
321
|
+
time(&timer);
|
|
313
322
|
#else
|
|
314
323
|
timer = time(NULL);
|
|
315
324
|
#endif
|
|
316
|
-
#pragma warning(
|
|
325
|
+
#pragma warning(disable : 4996)
|
|
317
326
|
printf("%s", ctime(&timer));
|
|
318
|
-
#pragma warning(
|
|
319
|
-
|
|
327
|
+
#pragma warning(default : 4996)
|
|
320
328
|
}
|
|
321
329
|
|
|
322
|
-
/* --------------------------------------------------------------------------------
|
|
330
|
+
/* --------------------------------------------------------------------------------
|
|
331
|
+
*/
|
|
323
332
|
void printHeader(const _TCHAR* uri, int count)
|
|
324
333
|
{
|
|
325
334
|
printf("Start Bench mark Insert Items = %d\r\n", count);
|
|
326
335
|
printDateTime();
|
|
327
336
|
_tprintf(_T("%s\r\n"), uri);
|
|
328
|
-
|
|
337
|
+
printf("BOOST_VERSION = %s\r\n", BOOST_LIB_VERSION);
|
|
329
338
|
printf("----------------------------------------\r\n");
|
|
330
339
|
}
|
|
331
340
|
|
|
332
|
-
/* --------------------------------------------------------------------------------
|
|
341
|
+
/* --------------------------------------------------------------------------------
|
|
342
|
+
*/
|
|
333
343
|
void printTail()
|
|
334
344
|
{
|
|
335
345
|
printf("----------------------------------------\r\n");
|
|
336
346
|
}
|
|
337
347
|
|
|
338
|
-
/* --------------------------------------------------------------------------------
|
|
348
|
+
/* --------------------------------------------------------------------------------
|
|
349
|
+
*/
|
|
339
350
|
#pragma argsused
|
|
340
351
|
int _tmain(int argc, _TCHAR* argv[])
|
|
341
352
|
{
|
|
342
353
|
if (argc < 4)
|
|
343
354
|
{
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
355
|
+
printf("usage: bench_tdclcpp_bcb32(64) databaseUri processNumber "
|
|
356
|
+
"functionNumber\n "
|
|
357
|
+
"\t --- Below is list of functionNumber ---\n"
|
|
358
|
+
"\t-1: all function\n"
|
|
359
|
+
"\t 0: Insert\n"
|
|
360
|
+
"\t 1: Insert in transaction. 20rec x 1000times\n"
|
|
361
|
+
"\t 2: Insert by bulkmode. 20rec x 1000times\n"
|
|
362
|
+
"\t 3: read each record\n"
|
|
363
|
+
"\t 4: read each record with snapshpot\n"
|
|
364
|
+
"\t 5: read range. 20rec x 1000times\n"
|
|
365
|
+
"\t 6: read range with snapshpot. 20rec x 1000times\n"
|
|
366
|
+
"\t 7: update\n"
|
|
367
|
+
"\t 8: update in transaction. 20rec x 1000times\n"
|
|
368
|
+
"exsample : bench_tdclcpp_bcb32(64) "
|
|
369
|
+
"\"tdap://localhost/test?dbfile=test.bdf\" 0 -1\n");
|
|
370
|
+
return 0;
|
|
371
|
+
}
|
|
359
372
|
const _TCHAR* uri = argv[1]; // "tdap://localhost/test?dbfile=test.bdf";
|
|
360
373
|
int procID = _ttol(argv[2]); // 0
|
|
361
374
|
int count = 20000;
|
|
362
375
|
int start = procID * count + 1;
|
|
363
376
|
int end = start + count;
|
|
364
|
-
int exeType =
|
|
377
|
+
int exeType = _ttol(argv[3]); // -1
|
|
365
378
|
bool insertBeforeNoDelete = 0;
|
|
366
379
|
if (argc > 4)
|
|
367
|
-
insertBeforeNoDelete = (_ttol(argv[4])!=0);
|
|
368
|
-
|
|
380
|
+
insertBeforeNoDelete = (_ttol(argv[4]) != 0);
|
|
369
381
|
|
|
370
382
|
client::database* db = client::database::create();
|
|
371
383
|
if (db->open(uri, TYPE_BDF, TD_OPEN_NORMAL, _T(""), _T("")) == false)
|
|
@@ -385,46 +397,58 @@ int _tmain(int argc, _TCHAR* argv[])
|
|
|
385
397
|
{
|
|
386
398
|
client::table* tb = openTable(db, _T("user"), TD_OPEN_NORMAL);
|
|
387
399
|
|
|
388
|
-
|
|
389
400
|
if ((exeType == -1) || (exeType == 0))
|
|
390
401
|
{
|
|
391
402
|
if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
|
|
392
|
-
benchmark::report(
|
|
403
|
+
benchmark::report(
|
|
404
|
+
boost::bind(Inserts, db, tb, start, end, USE_NORMAL, 1),
|
|
405
|
+
": Insert");
|
|
393
406
|
else
|
|
394
|
-
|
|
407
|
+
printf("deleteAll erorr No:%d\r\n", tb->stat());
|
|
395
408
|
}
|
|
396
409
|
if ((exeType == -1) || (exeType == 1))
|
|
397
410
|
{
|
|
398
411
|
if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
|
|
399
|
-
benchmark::report(
|
|
400
|
-
|
|
412
|
+
benchmark::report(
|
|
413
|
+
boost::bind(Inserts, db, tb, start, end, USE_TRANS, 20),
|
|
414
|
+
": Insert in transaction. 20rec x 1000times.");
|
|
401
415
|
else
|
|
402
416
|
printf("deleteAll erorr No:%d\r\n", tb->stat());
|
|
403
417
|
}
|
|
404
418
|
if ((exeType == -1) || (exeType == 2))
|
|
405
419
|
{
|
|
406
420
|
if (insertBeforeNoDelete || deleteAll(db, tb, start, end))
|
|
407
|
-
benchmark::report(
|
|
408
|
-
|
|
421
|
+
benchmark::report(
|
|
422
|
+
boost::bind(Inserts, db, tb, start, end, USE_BALKINS, 20),
|
|
423
|
+
": Insert by bulkmode. 20rec x 1000times.");
|
|
409
424
|
else
|
|
410
425
|
printf("deleteAll erorr No:%d\r\n", tb->stat());
|
|
411
426
|
}
|
|
412
427
|
if ((exeType == -1) || (exeType == 3))
|
|
413
|
-
benchmark::report(boost::bind(
|
|
428
|
+
benchmark::report(boost::bind(Read, db, tb, start, end, USE_NORMAL),
|
|
429
|
+
": read each record.");
|
|
414
430
|
if ((exeType == -1) || (exeType == 4))
|
|
415
|
-
benchmark::report(
|
|
431
|
+
benchmark::report(
|
|
432
|
+
boost::bind(Read, db, tb, start, end, USE_SNAPSHOT),
|
|
433
|
+
": read each record with snapshpot.");
|
|
416
434
|
if ((exeType == -1) || (exeType == 5))
|
|
417
|
-
benchmark::report(
|
|
435
|
+
benchmark::report(
|
|
436
|
+
boost::bind(Reads, db, tb, start, end, 20, USE_NORMAL),
|
|
437
|
+
": read range. 20rec x 1000times.");
|
|
418
438
|
if ((exeType == -1) || (exeType == 6))
|
|
419
|
-
benchmark::report(
|
|
439
|
+
benchmark::report(
|
|
440
|
+
boost::bind(Reads, db, tb, start, end, 20, USE_SNAPSHOT),
|
|
441
|
+
": read range with snapshpot. 20rec x 1000times.");
|
|
420
442
|
if ((exeType == -1) || (exeType == 7))
|
|
421
|
-
benchmark::report(
|
|
443
|
+
benchmark::report(
|
|
444
|
+
boost::bind(Updates, db, tb, start, end, USE_NORMAL, 1),
|
|
445
|
+
": update.");
|
|
422
446
|
if ((exeType == -1) || (exeType == 8))
|
|
423
|
-
benchmark::report(
|
|
424
|
-
|
|
447
|
+
benchmark::report(
|
|
448
|
+
boost::bind(Updates, db, tb, start, end, USE_TRANS, 20),
|
|
449
|
+
": update in transaction. 20rec x 1000times.");
|
|
425
450
|
}
|
|
426
451
|
client::database::destroy(db);
|
|
427
452
|
printTail();
|
|
428
453
|
return 0;
|
|
429
|
-
|
|
430
454
|
}
|