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
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
GNU General Public License for more details.
|
|
15
15
|
|
|
16
16
|
You should have received a copy of the GNU General Public License
|
|
17
|
-
along with this program; if not, write to the Free Software
|
|
18
|
-
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
17
|
+
along with this program; if not, write to the Free Software
|
|
18
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
19
19
|
02111-1307, USA.
|
|
20
20
|
=================================================================*/
|
|
21
21
|
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
extern int g_tableNmaeLower;
|
|
28
28
|
|
|
29
29
|
namespace bzs
|
|
30
|
-
{
|
|
30
|
+
{
|
|
31
31
|
namespace db
|
|
32
32
|
{
|
|
33
|
-
|
|
33
|
+
class blobBuffer;
|
|
34
34
|
namespace protocol
|
|
35
35
|
{
|
|
36
36
|
namespace tdap
|
|
@@ -40,103 +40,109 @@ namespace mysql
|
|
|
40
40
|
|
|
41
41
|
class ReadRecordsHandler;
|
|
42
42
|
struct extRequest;
|
|
43
|
+
struct extRequestSeeks;
|
|
43
44
|
|
|
44
|
-
#define
|
|
45
|
+
#define FOR_SQL true
|
|
45
46
|
|
|
46
|
-
std::string getDatabaseName(const request& req, bool forSql=false);
|
|
47
|
-
std::string getTableName(const request& req, bool forSql=false);
|
|
47
|
+
std::string getDatabaseName(const request& req, bool forSql = false);
|
|
48
|
+
std::string getTableName(const request& req, bool forSql = false);
|
|
48
49
|
short_td errorCode(int ha_error);
|
|
49
50
|
bool isMetaDb(const request& req);
|
|
50
51
|
|
|
51
52
|
class dbExecuter : public engine::mysql::dbManager
|
|
52
53
|
{
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
54
|
+
ReadRecordsHandler* m_readHandler;
|
|
55
|
+
blobBuffer* m_blobBuffer;
|
|
56
|
+
|
|
57
|
+
void connect(request& req);
|
|
58
|
+
void releaseDatabase(request& req, int op);
|
|
59
|
+
std::string makeSQLcreateTable(const request& req);
|
|
60
|
+
inline void doCreateTable(request& req);
|
|
61
|
+
inline void doOpenTable(request& req);
|
|
62
|
+
inline void doSeekKey(request& req, int op);
|
|
63
|
+
inline void doMoveFirst(request& req);
|
|
64
|
+
inline void doMoveKey(request& req, int op);
|
|
65
|
+
inline int doReadMultiWithSeek(request& req, int op,
|
|
66
|
+
netsvc::server::netWriter* nw);
|
|
67
|
+
inline int doReadMulti(request& req, int op, netsvc::server::netWriter* nw);
|
|
68
|
+
inline void doStepRead(request& req, int op);
|
|
69
|
+
|
|
70
|
+
inline void doInsert(request& req);
|
|
71
|
+
inline void doUpdate(request& req);
|
|
72
|
+
inline void doUpdateKey(request& req);
|
|
73
|
+
inline void doDelete(request& req);
|
|
74
|
+
inline void doDeleteKey(request& req);
|
|
75
|
+
inline void doInsertBulk(request& req);
|
|
76
|
+
inline void doStat(request& req);
|
|
77
|
+
inline short seekEach(extRequestSeeks* ereq, bool noBookMark);
|
|
78
|
+
|
|
77
79
|
public:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
dbExecuter();
|
|
81
|
+
~dbExecuter();
|
|
82
|
+
int commandExec(request& req, netsvc::server::netWriter* nw);
|
|
83
|
+
int errorCode(int ha_error);
|
|
84
|
+
short_td errorCodeSht(int ha_error)
|
|
85
|
+
{
|
|
86
|
+
return (short_td)errorCode(ha_error);
|
|
87
|
+
};
|
|
84
88
|
};
|
|
85
89
|
|
|
86
90
|
/** Command dispatcher for connectionManager
|
|
87
91
|
*/
|
|
88
92
|
class connMgrExecuter
|
|
89
93
|
{
|
|
90
|
-
|
|
91
|
-
|
|
94
|
+
request& m_req;
|
|
95
|
+
__int64 m_modHandle;
|
|
96
|
+
|
|
92
97
|
public:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
connMgrExecuter(request& req, unsigned __int64 parent);
|
|
99
|
+
int read(char* buf, size_t& size);
|
|
100
|
+
int disconnectOne(char* buf, size_t& size);
|
|
101
|
+
int disconnectAll(char* buf, size_t& size);
|
|
102
|
+
int commandExec(netsvc::server::netWriter* nw);
|
|
98
103
|
};
|
|
99
104
|
|
|
100
|
-
class commandExecuter :
|
|
105
|
+
class commandExecuter : public ICommandExecuter,
|
|
106
|
+
public engine::mysql::igetDatabases
|
|
101
107
|
{
|
|
102
|
-
|
|
103
|
-
|
|
108
|
+
mutable request m_req;
|
|
109
|
+
boost::shared_ptr<dbExecuter> m_dbExec;
|
|
110
|
+
|
|
111
|
+
int readStatistics(char* buf, size_t& size);
|
|
112
|
+
int cmdStatistics(char* buf, size_t& size);
|
|
113
|
+
unsigned __int64 m_modHandle;
|
|
104
114
|
|
|
105
|
-
int readStatistics(char* buf, size_t& size);
|
|
106
|
-
int cmdStatistics(char* buf, size_t& size);
|
|
107
|
-
unsigned __int64 m_modHandle;
|
|
108
115
|
public:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
bool parse(const char* p, size_t size);
|
|
120
|
-
|
|
121
|
-
int execute(char* resultBuffer, size_t& size, netsvc::server::buffers* optionalData)
|
|
122
|
-
{
|
|
123
|
-
if (m_req.op == TD_STASTISTICS)
|
|
124
|
-
return connMgrExecuter(m_req, m_modHandle).commandExec(resultBuffer, size);
|
|
125
|
-
return m_dbExec->commandExec(m_req, resultBuffer, size, optionalData);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
bool isShutDown(){return m_dbExec->isShutDown();}
|
|
129
|
-
|
|
130
|
-
void cleanup(){};
|
|
131
|
-
|
|
132
|
-
const engine::mysql::databases& dbs() const{return m_dbExec->dbs();};
|
|
133
|
-
};
|
|
116
|
+
commandExecuter(__int64 parent);
|
|
117
|
+
~commandExecuter();
|
|
118
|
+
size_t perseRequestEnd(const char* p, size_t size, bool& comp) const;
|
|
119
|
+
|
|
120
|
+
size_t getAcceptMessage(char* message, size_t size)
|
|
121
|
+
{
|
|
122
|
+
strcpy_s(message, size, "200 OK\n");
|
|
123
|
+
return strlen(message);
|
|
124
|
+
}
|
|
134
125
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
126
|
+
bool parse(const char* p, size_t size);
|
|
127
|
+
|
|
128
|
+
int execute(netsvc::server::netWriter* nw)
|
|
129
|
+
{
|
|
130
|
+
if (m_req.op == TD_STASTISTICS)
|
|
131
|
+
return connMgrExecuter(m_req, m_modHandle).commandExec(nw);
|
|
132
|
+
return m_dbExec->commandExec(m_req, nw);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
bool isShutDown() { return m_dbExec->isShutDown(); }
|
|
136
|
+
|
|
137
|
+
void cleanup(){};
|
|
138
|
+
|
|
139
|
+
const engine::mysql::databases& dbs() const { return m_dbExec->dbs(); };
|
|
140
|
+
};
|
|
140
141
|
|
|
141
|
-
|
|
142
|
+
} // namespace mysql
|
|
143
|
+
} // namespace tdap
|
|
144
|
+
} // namespace protocol
|
|
145
|
+
} // namespace db
|
|
146
|
+
} // namespace bzs
|
|
142
147
|
|
|
148
|
+
#endif // BZS_DB_PROTOCOL_TDAP_MYSQL_TDAPCOMMANDEXECUTER_H
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
#ifndef BZS_DB_PROTOCOL_TDAP_TDAPREQUSET_H
|
|
2
2
|
#define BZS_DB_PROTOCOL_TDAP_TDAPREQUSET_H
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/* =================================================================
|
|
4
|
+
Copyright (C) 2013 BizStation Corp All rights reserved.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
This program is free software; you can redistribute it and/or
|
|
7
|
+
modify it under the terms of the GNU General Public License
|
|
8
|
+
as published by the Free Software Foundation; either version 2
|
|
9
|
+
of the License, or (at your option) any later version.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU General Public License for more details.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
You should have received a copy of the GNU General Public License
|
|
17
|
+
along with this program; if not, write to the Free Software
|
|
18
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
19
|
+
02111-1307, USA.
|
|
20
|
+
================================================================= */
|
|
21
21
|
|
|
22
22
|
#include <bzs/db/protocol/tdap/tdapcapi.h>
|
|
23
23
|
#include <bzs/db/blobBuffer.h>
|
|
@@ -27,10 +27,16 @@
|
|
|
27
27
|
#include <boost/asio/buffer.hpp>
|
|
28
28
|
#include <bzs/env/compiler.h>
|
|
29
29
|
|
|
30
|
-
|
|
31
30
|
namespace bzs
|
|
32
31
|
{
|
|
33
|
-
|
|
32
|
+
namespace netsvc
|
|
33
|
+
{
|
|
34
|
+
namespace client
|
|
35
|
+
{
|
|
36
|
+
class connection;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
34
40
|
namespace db
|
|
35
41
|
{
|
|
36
42
|
namespace protocol
|
|
@@ -38,153 +44,179 @@ namespace protocol
|
|
|
38
44
|
namespace tdap
|
|
39
45
|
{
|
|
40
46
|
|
|
41
|
-
#define P_MASK_OP
|
|
42
|
-
#define P_MASK_POSBLK
|
|
43
|
-
#define P_MASK_DATA
|
|
44
|
-
#define P_MASK_DATALEN
|
|
45
|
-
#define P_MASK_KEYBUF
|
|
46
|
-
#define P_MASK_KEYNUM
|
|
47
|
-
#define P_MASK_EX_SENDLEN
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
#define
|
|
51
|
-
#define
|
|
52
|
-
#define
|
|
53
|
-
|
|
54
|
-
#define
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
#define
|
|
60
|
-
#define
|
|
61
|
-
|
|
62
|
-
#define
|
|
47
|
+
#define P_MASK_OP 0
|
|
48
|
+
#define P_MASK_POSBLK 1
|
|
49
|
+
#define P_MASK_DATA 2
|
|
50
|
+
#define P_MASK_DATALEN 4
|
|
51
|
+
#define P_MASK_KEYBUF 8
|
|
52
|
+
#define P_MASK_KEYNUM 16
|
|
53
|
+
#define P_MASK_EX_SENDLEN \
|
|
54
|
+
32 //< The data length which transmits to a client is described at 2 bytes
|
|
55
|
+
// of the data buffer head.
|
|
56
|
+
#define P_MASK_BLOBBODY 64
|
|
57
|
+
#define P_MASK_FINALRET 128 // server sent final result
|
|
58
|
+
#define P_MASK_FINALDATALEN 256 // server sent final result
|
|
59
|
+
|
|
60
|
+
#define P_MASK_ALL \
|
|
61
|
+
P_MASK_POSBLK | P_MASK_DATA | P_MASK_DATALEN | P_MASK_KEYBUF | P_MASK_KEYNUM
|
|
62
|
+
#define P_MASK_KEYONLY P_MASK_KEYBUF | P_MASK_KEYNUM
|
|
63
|
+
#define P_MASK_NOKEYBUF \
|
|
64
|
+
P_MASK_POSBLK | P_MASK_DATA | P_MASK_DATALEN | P_MASK_KEYNUM
|
|
65
|
+
#define P_MASK_POS_LEN_KEY P_MASK_POSBLK | P_MASK_DATALEN | P_MASK_KEYNUM
|
|
66
|
+
#define P_MASK_KEYNAVI \
|
|
67
|
+
P_MASK_POSBLK | P_MASK_DATALEN | P_MASK_KEYBUF | P_MASK_KEYNUM
|
|
68
|
+
#define P_MASK_NODATA P_MASK_POSBLK | P_MASK_DATALEN | P_MASK_KEYBUF
|
|
69
|
+
|
|
70
|
+
// server side
|
|
71
|
+
#define P_MASK_READRESULT P_MASK_POSBLK | P_MASK_DATA | P_MASK_DATALEN
|
|
72
|
+
#define P_MASK_STAT P_MASK_DATA | P_MASK_DATALEN
|
|
73
|
+
#define P_MASK_READ_EXT P_MASK_STAT | P_MASK_KEYBUF
|
|
74
|
+
#define P_MASK_MOVPOS \
|
|
75
|
+
P_MASK_POSBLK | P_MASK_DATA | P_MASK_DATALEN | P_MASK_KEYBUF
|
|
76
|
+
#define P_MASK_INS_AUTOINC P_MASK_MOVPOS
|
|
63
77
|
|
|
64
78
|
struct req1
|
|
65
79
|
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
void write(std::ostream& ost);
|
|
71
|
-
};
|
|
80
|
+
ushort_td op;
|
|
81
|
+
void_td* keybuf;
|
|
82
|
+
uchar_td keylen;
|
|
83
|
+
short_td keyNum;
|
|
72
84
|
|
|
73
|
-
|
|
74
|
-
|
|
85
|
+
void write(std::ostream& ost);
|
|
86
|
+
};
|
|
75
87
|
|
|
88
|
+
#pragma pack(push, 1)
|
|
89
|
+
pragma_pack1;
|
|
76
90
|
|
|
77
91
|
#define POSBLK_SIZE 4
|
|
78
92
|
#define CLIENTID_SIZE 2
|
|
93
|
+
#define PARAMMASK_SIZE 2
|
|
79
94
|
|
|
80
95
|
/** tdap version info struct
|
|
81
96
|
*/
|
|
97
|
+
|
|
82
98
|
struct version
|
|
83
99
|
{
|
|
84
100
|
ushort_td majorVersion;
|
|
85
101
|
ushort_td minorVersion;
|
|
86
|
-
uchar_td Type;
|
|
102
|
+
uchar_td Type;
|
|
87
103
|
};
|
|
88
104
|
|
|
89
105
|
struct posblk
|
|
90
106
|
{
|
|
91
|
-
|
|
92
|
-
{
|
|
93
|
-
memset(this, 0, sizeof(posblk));
|
|
94
|
-
}
|
|
95
|
-
int handle;
|
|
107
|
+
posblk() { memset(this, 0, sizeof(posblk)); }
|
|
96
108
|
|
|
109
|
+
int handle;
|
|
97
110
|
};
|
|
111
|
+
|
|
98
112
|
struct clientID
|
|
99
113
|
{
|
|
100
114
|
|
|
101
115
|
#ifdef __x86_64__
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
char_td reserved[8];
|
|
107
|
-
#endif
|
|
108
|
-
char_td aid[2];
|
|
109
|
-
ushort_td id;
|
|
110
|
-
};
|
|
116
|
+
bzs::netsvc::client::connection* con;
|
|
117
|
+
|
|
118
|
+
char_td reserved[4];
|
|
119
|
+
#else // NOT __x86_64__
|
|
111
120
|
|
|
121
|
+
bzs::netsvc::client::connection* con;
|
|
112
122
|
|
|
113
|
-
|
|
114
|
-
|
|
123
|
+
char_td reserved[8];
|
|
124
|
+
#endif // NOT __x86_64__
|
|
125
|
+
char_td aid[2];
|
|
126
|
+
ushort_td id;
|
|
127
|
+
};
|
|
115
128
|
|
|
129
|
+
#pragma pack(pop)
|
|
130
|
+
pragma_pop;
|
|
116
131
|
|
|
117
132
|
class request
|
|
118
133
|
{
|
|
119
134
|
private:
|
|
120
|
-
|
|
121
|
-
|
|
135
|
+
ushort_td varLenBytesPos; /* Ooffset of last var field */
|
|
136
|
+
ushort_td varLenBytes; /* Bytes of last var field length */
|
|
122
137
|
|
|
123
138
|
public:
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
139
|
+
ushort_td paramMask;
|
|
140
|
+
|
|
141
|
+
union
|
|
142
|
+
{
|
|
143
|
+
short_td result;
|
|
144
|
+
short_td op;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
posblk* pbk;
|
|
148
|
+
uint_td* datalen;
|
|
149
|
+
void_td* data;
|
|
150
|
+
keylen_td keylen;
|
|
151
|
+
void_td* keybuf;
|
|
152
|
+
char_td keyNum;
|
|
153
|
+
uint_td resultLen;
|
|
154
|
+
short_td* resltPtr;
|
|
155
|
+
|
|
156
|
+
request()
|
|
157
|
+
: paramMask(0), op(0), pbk(0), datalen(0), data(0), keylen(0),
|
|
158
|
+
keybuf(0), keyNum(0), resultLen(0), resltPtr(0)
|
|
159
|
+
{
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
virtual ~request() {}
|
|
163
|
+
|
|
164
|
+
virtual void clear()
|
|
165
|
+
{
|
|
166
|
+
pbk = 0;
|
|
167
|
+
datalen = 0;
|
|
168
|
+
data = 0;
|
|
169
|
+
keylen = 0;
|
|
170
|
+
keybuf = 0;
|
|
171
|
+
keyNum = 0;
|
|
172
|
+
resltPtr = 0;
|
|
173
|
+
reset();
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
void reset()
|
|
177
|
+
{
|
|
178
|
+
paramMask = 0;
|
|
179
|
+
result = 0;
|
|
180
|
+
varLenBytesPos = 0;
|
|
181
|
+
varLenBytes = 0;
|
|
182
|
+
resultLen = 0;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
const struct bzs::db::blobHeader* blobHeader;
|
|
186
|
+
|
|
187
|
+
inline unsigned int serializeBlobBody(
|
|
188
|
+
blobBuffer* blob, char* buf, size_t curSize, unsigned int max_size,
|
|
189
|
+
std::vector<boost::asio::const_buffer>* mbuffer, short& stat)
|
|
190
|
+
{
|
|
191
|
+
|
|
192
|
+
char* blobbuf = buf + curSize;
|
|
193
|
+
unsigned int datalen = *((unsigned int*)buf);
|
|
194
|
+
// write blob body
|
|
195
|
+
unsigned int bloblen = 0;
|
|
196
|
+
if (mbuffer)
|
|
197
|
+
bloblen = blob->makeMultiBuffer(*mbuffer);
|
|
198
|
+
else
|
|
199
|
+
bloblen = blob->writeBuffer((unsigned char*)blobbuf,
|
|
200
|
+
max_size - datalen - 200, stat);
|
|
201
|
+
|
|
202
|
+
// write total
|
|
203
|
+
|
|
204
|
+
datalen += bloblen;
|
|
205
|
+
memcpy(buf, &datalen, sizeof(unsigned int));
|
|
206
|
+
|
|
207
|
+
// write result
|
|
208
|
+
if (stat && resltPtr)
|
|
209
|
+
*resltPtr = stat;
|
|
210
|
+
// return this buffer size;
|
|
211
|
+
if (mbuffer)
|
|
212
|
+
return (unsigned int)curSize;
|
|
213
|
+
return (unsigned int)curSize + bloblen;
|
|
214
|
+
}
|
|
181
215
|
};
|
|
182
216
|
|
|
217
|
+
} // namespace tdap
|
|
218
|
+
} // namespace protocol
|
|
219
|
+
} // namespace db
|
|
220
|
+
} // namespace bzs
|
|
183
221
|
|
|
184
|
-
|
|
185
|
-
}//namespace protocol
|
|
186
|
-
}//namespace db
|
|
187
|
-
}//namespace bzs
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
#endif //BZS_DB_PROTOCOL_TDAP_TDAPREQUSET_H
|
|
222
|
+
#endif // BZS_DB_PROTOCOL_TDAP_TDAPREQUSET_H
|