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
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
#ifndef BZS_DB_ENGINE_MYSQL_DBMANAGER_H
|
|
2
|
+
#define BZS_DB_ENGINE_MYSQL_DBMANAGER_H
|
|
3
|
+
/* =================================================================
|
|
4
|
+
Copyright (C) 2012 2013 BizStation Corp All rights reserved.
|
|
5
|
+
|
|
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
|
+
|
|
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
|
+
|
|
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 <boost/thread/mutex.hpp>
|
|
23
23
|
#include <bzs/db/engine/mysql/database.h>
|
|
24
24
|
|
|
25
25
|
/* dbManager original error code */
|
|
26
|
-
#define DBM_ERROR_TABLE_USED HA_ERR_LAST + 1
|
|
26
|
+
#define DBM_ERROR_TABLE_USED HA_ERR_LAST + 1
|
|
27
27
|
|
|
28
28
|
namespace bzs
|
|
29
29
|
{
|
|
@@ -36,108 +36,119 @@ namespace mysql
|
|
|
36
36
|
|
|
37
37
|
struct handle
|
|
38
38
|
{
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
handle(int i, short d, short t) : id(i), db(d), tb(t), cid(0){};
|
|
40
|
+
|
|
41
|
+
int id;
|
|
42
|
+
short db;
|
|
43
|
+
short tb;
|
|
44
|
+
short cid;
|
|
44
45
|
};
|
|
45
46
|
|
|
46
47
|
class smartDbsReopen
|
|
47
48
|
{
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
public:
|
|
51
|
-
static std::string removeName;
|
|
52
|
-
|
|
53
|
-
smartDbsReopen(std::vector<boost::shared_ptr<database> >& dbs)
|
|
54
|
-
:m_dbs(dbs)
|
|
55
|
-
{
|
|
56
|
-
for (size_t i=0;i<m_dbs.size();i++)
|
|
57
|
-
{
|
|
58
|
-
if (m_dbs[i])
|
|
59
|
-
{
|
|
60
|
-
m_dbs[i]->use();
|
|
61
|
-
m_dbs[i]->unUseTables(false);
|
|
62
|
-
m_dbs[i]->closeForReopen();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
~smartDbsReopen()
|
|
68
|
-
{
|
|
69
|
-
for (size_t i=0;i<m_dbs.size();i++)
|
|
70
|
-
{
|
|
71
|
-
if (m_dbs[i])
|
|
72
|
-
{
|
|
73
|
-
if (removeName != m_dbs[i]->name())
|
|
74
|
-
{
|
|
75
|
-
m_dbs[i]->use();
|
|
76
|
-
m_dbs[i]->reopen();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
49
|
+
std::vector<boost::shared_ptr<database> >& m_dbs;
|
|
81
50
|
|
|
51
|
+
public:
|
|
52
|
+
static std::string removeName;
|
|
53
|
+
|
|
54
|
+
smartDbsReopen(std::vector<boost::shared_ptr<database> >& dbs) : m_dbs(dbs)
|
|
55
|
+
{
|
|
56
|
+
for (size_t i = 0; i < m_dbs.size(); i++)
|
|
57
|
+
{
|
|
58
|
+
if (m_dbs[i])
|
|
59
|
+
{
|
|
60
|
+
m_dbs[i]->use();
|
|
61
|
+
m_dbs[i]->unUseTables(false);
|
|
62
|
+
m_dbs[i]->closeForReopen();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
~smartDbsReopen()
|
|
68
|
+
{
|
|
69
|
+
for (size_t i = 0; i < m_dbs.size(); i++)
|
|
70
|
+
{
|
|
71
|
+
if (m_dbs[i])
|
|
72
|
+
{
|
|
73
|
+
if (removeName != m_dbs[i]->name())
|
|
74
|
+
{
|
|
75
|
+
m_dbs[i]->use();
|
|
76
|
+
m_dbs[i]->reopen();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
82
81
|
};
|
|
83
82
|
|
|
84
83
|
class dbManager;
|
|
85
84
|
|
|
86
85
|
class dbManager
|
|
87
86
|
{
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
mutable boost::mutex m_mutex;
|
|
88
|
+
|
|
89
|
+
int m_autoHandle;
|
|
90
|
+
|
|
90
91
|
protected:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
92
|
+
mutable databases m_dbs;
|
|
93
|
+
|
|
94
|
+
mutable std::vector<handle> m_handles;
|
|
95
|
+
|
|
96
|
+
table* m_tb;
|
|
97
|
+
|
|
98
|
+
database* createDatabase(const char* dbname, short cid) const;
|
|
99
|
+
void releaseDatabase(short cid);
|
|
100
|
+
handle* getHandle(int handle) const;
|
|
101
|
+
database* getDatabase(const char* dbname, short cid) const;
|
|
102
|
+
database* getDatabaseCid(short cid) const;
|
|
103
|
+
int getDatabaseID(short cid) const;
|
|
104
|
+
table* getTable(int handle, enum_sql_command cmd = SQLCOM_SELECT) const;
|
|
105
|
+
void checkNewHandle(int newHandle) const;
|
|
106
|
+
int addHandle(int dbid, int tableid, int assignid = -1);
|
|
107
|
+
database* useDataBase(int id) const;
|
|
108
|
+
int closeCacheTable(database* db, const std::string& tbname);
|
|
109
|
+
int ddl_execSql(THD* thd, const std::string& sql_stmt);
|
|
110
|
+
int ddl_createDataBase(THD* thd, const std::string& dbname);
|
|
111
|
+
int ddl_dropDataBase(THD* thd, const std::string& dbname,
|
|
112
|
+
const std::string& dbSqlname);
|
|
113
|
+
int ddl_useDataBase(THD* thd, const std::string& dbSqlname);
|
|
114
|
+
int ddl_dropTable(database* db, const std::string& tbname,
|
|
115
|
+
const std::string& sqldbname,
|
|
116
|
+
const std::string& sqltbname);
|
|
117
|
+
int ddl_renameTable(database* db, const std::string& oldName,
|
|
118
|
+
const std::string& dbSqlName,
|
|
119
|
+
const std::string& oldSqlName,
|
|
120
|
+
const std::string& newSqlName);
|
|
121
|
+
int ddl_replaceTable(database* db, const std::string& name1,
|
|
122
|
+
const std::string& name2, const std::string& dbSqlName,
|
|
123
|
+
const std::string& nameSql1,
|
|
124
|
+
const std::string& nameSql2);
|
|
125
|
+
std::string makeSQLChangeTableComment(const std::string& dbSqlName,
|
|
126
|
+
const std::string& tableSqlName,
|
|
127
|
+
const char* comment);
|
|
128
|
+
std::string makeSQLDropIndex(const std::string& dbSqlName,
|
|
129
|
+
const std::string& tbSqlName,
|
|
130
|
+
const char* name);
|
|
131
|
+
void clenupNoException();
|
|
132
|
+
virtual int errorCode(int ha_error) = 0;
|
|
133
|
+
|
|
122
134
|
public:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const databases& dbs()const{return m_dbs;};
|
|
135
|
+
dbManager();
|
|
136
|
+
virtual ~dbManager();
|
|
137
|
+
bool isShutDown() const;
|
|
127
138
|
|
|
139
|
+
const databases& dbs() const { return m_dbs; };
|
|
128
140
|
};
|
|
129
141
|
|
|
130
142
|
class igetDatabases
|
|
131
143
|
{
|
|
132
144
|
public:
|
|
133
|
-
|
|
134
|
-
|
|
145
|
+
virtual ~igetDatabases(){};
|
|
146
|
+
virtual const engine::mysql::databases& dbs() const = 0;
|
|
135
147
|
};
|
|
136
148
|
|
|
137
|
-
}//namespace mysql
|
|
138
|
-
}//namespace engine
|
|
139
|
-
}//namespace db
|
|
140
|
-
}//namespace bzs
|
|
141
|
-
|
|
149
|
+
} // namespace mysql
|
|
150
|
+
} // namespace engine
|
|
151
|
+
} // namespace db
|
|
152
|
+
} // namespace bzs
|
|
142
153
|
|
|
143
|
-
#endif //
|
|
154
|
+
#endif // BZS_DB_ENGINE_MYSQL_DBMANAGER_H
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/* =================================================================
|
|
2
|
+
Copyright (C) 2012 2013 BizStation Corp All rights reserved.
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
19
|
|
|
20
20
|
#include "errorMessage.h"
|
|
21
|
+
#undef PACKAGE
|
|
21
22
|
#include "mysqlInternal.h"
|
|
22
23
|
#include <bzs/db/protocol/tdap/tdapcapi.h>
|
|
23
24
|
|
|
@@ -32,44 +33,42 @@ namespace mysql
|
|
|
32
33
|
|
|
33
34
|
const char* errorMessage(int errorCode)
|
|
34
35
|
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
36
|
+
switch (errorCode)
|
|
37
|
+
{
|
|
38
|
+
case STATUS_PROGRAM_ERROR:
|
|
39
|
+
return "Program error";
|
|
40
|
+
case STATUS_CANNOT_LOCK_TABLE:
|
|
41
|
+
return "Can not open the table Allrady locked";
|
|
42
|
+
case STATUS_TABLE_NOTOPEN:
|
|
43
|
+
return "Can not open the table";
|
|
44
|
+
case STATUS_INVALID_KEYNAME:
|
|
45
|
+
return "Invalid key name";
|
|
46
|
+
case HA_ERR_KEY_NOT_FOUND:
|
|
47
|
+
return "Did not find key on read or update";
|
|
48
|
+
case STATUS_INVALID_LOCKTYPE:
|
|
49
|
+
return "locktype is diffarent to got locks";
|
|
50
|
+
case STATUS_INVALID_DATASIZE:
|
|
51
|
+
return "Invalid data buffer size";
|
|
52
|
+
case STATUS_TABLE_EXISTS_ERROR:
|
|
53
|
+
return "Can not check if exists table";
|
|
54
|
+
}
|
|
55
|
+
return "";
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
void printErrorMessage(const int* errorCode, const std::string* message)
|
|
58
59
|
{
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if ((code != STATUS_TABLE_NOTOPEN) && (code != STATUS_INVALID_BOOKMARK))
|
|
65
|
-
{
|
|
66
|
-
sql_print_error("%s", msg.c_str());
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
60
|
+
int code = errorCode ? *errorCode : 0;
|
|
61
|
+
std::string msg = errorMessage(code);
|
|
62
|
+
if (message)
|
|
63
|
+
msg += " :" + *message;
|
|
70
64
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
65
|
+
if ((code != STATUS_TABLE_NOTOPEN) && (code != STATUS_INVALID_BOOKMARK))
|
|
66
|
+
{
|
|
67
|
+
sql_print_error("%s", msg.c_str());
|
|
68
|
+
}
|
|
69
|
+
}
|
|
75
70
|
|
|
71
|
+
} // namespace mysql
|
|
72
|
+
} // namespace engine
|
|
73
|
+
} // namespace db
|
|
74
|
+
} // namespace bzs
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
#ifndef
|
|
2
|
-
#define
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
#ifndef BZS_DB_ENGINE_MYSQL_ERRORMESSAGE_H
|
|
2
|
+
#define BZS_DB_ENGINE_MYSQL_ERRORMESSAGE_H
|
|
3
|
+
/* =================================================================
|
|
4
|
+
Copyright (C) 2012 2013 BizStation Corp All rights reserved.
|
|
5
|
+
|
|
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
|
+
|
|
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
|
+
|
|
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 <string>
|
|
23
23
|
#include <bzs/rtl/exception.h>
|
|
@@ -33,11 +33,10 @@ namespace mysql
|
|
|
33
33
|
|
|
34
34
|
const char* errorMessage(int errorCode);
|
|
35
35
|
void printErrorMessage(const int* errorCode, const std::string* msg);
|
|
36
|
-
|
|
37
|
-
}//namespace mysql
|
|
38
|
-
}//namespace engine
|
|
39
|
-
}//namespace db
|
|
40
|
-
}//namespace bzs
|
|
41
36
|
|
|
42
|
-
|
|
37
|
+
} // namespace mysql
|
|
38
|
+
} // namespace engine
|
|
39
|
+
} // namespace db
|
|
40
|
+
} // namespace bzs
|
|
43
41
|
|
|
42
|
+
#endif // BZS_DB_ENGINE_MYSQL_ERRORMESSAGE_H
|
|
@@ -1,27 +1,25 @@
|
|
|
1
|
-
#ifndef
|
|
2
|
-
#define
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
#ifndef BZS_DB_ENGINE_MYSQL_FIELDACCESS_H
|
|
2
|
+
#define BZS_DB_ENGINE_MYSQL_FIELDACCESS_H
|
|
3
|
+
/* =================================================================
|
|
4
|
+
Copyright (C) 2013 BizStation Corp All rights reserved.
|
|
5
|
+
|
|
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
|
+
|
|
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
|
+
|
|
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
|
#include "mysqlInternal.h"
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
23
|
namespace bzs
|
|
26
24
|
{
|
|
27
25
|
namespace db
|
|
@@ -31,128 +29,124 @@ namespace engine
|
|
|
31
29
|
namespace mysql
|
|
32
30
|
{
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
/**
|
|
32
|
+
/**
|
|
36
33
|
* var or bolob type sub functions;
|
|
37
34
|
*/
|
|
38
|
-
//-----------------------------------------------------------------------------
|
|
39
35
|
inline uint var_bytes(Field* fd)
|
|
40
36
|
{
|
|
41
|
-
|
|
37
|
+
return (uint)HA_VARCHAR_PACKLENGTH(fd->field_length);
|
|
42
38
|
}
|
|
43
39
|
|
|
44
40
|
/** sizeof var text body
|
|
45
41
|
*/
|
|
46
42
|
inline uint var_strlen(const uchar* ptr, uint varlen)
|
|
47
43
|
{
|
|
48
|
-
|
|
44
|
+
return (varlen == 1) ? *ptr : *((const unsigned short*)ptr);
|
|
49
45
|
}
|
|
50
46
|
|
|
51
47
|
inline uint var_strlen(Field* fd)
|
|
52
48
|
{
|
|
53
|
-
|
|
49
|
+
return var_strlen(fd->ptr, var_bytes(fd));
|
|
54
50
|
}
|
|
55
51
|
|
|
56
52
|
/** sizeof var text body + size bytes
|
|
57
53
|
*/
|
|
58
54
|
inline uint var_total_len(Field* fd)
|
|
59
55
|
{
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
uint varlen = var_bytes(fd);
|
|
57
|
+
return var_strlen(fd->ptr, varlen) + varlen;
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
inline uint var_total_len(const uchar* ptr, uint varlen)
|
|
65
61
|
{
|
|
66
|
-
|
|
62
|
+
return var_strlen(ptr, varlen) + varlen;
|
|
67
63
|
}
|
|
68
64
|
|
|
69
|
-
|
|
70
65
|
/** var text body length on key buffer
|
|
71
66
|
* size bytes is 2 byte fixed in key buffer.
|
|
72
67
|
*/
|
|
73
68
|
inline uint var_strlen_key(const uchar* ptr)
|
|
74
69
|
{
|
|
75
|
-
|
|
70
|
+
return *((const unsigned short*)ptr);
|
|
76
71
|
}
|
|
77
72
|
|
|
78
73
|
/** return Is type var type
|
|
79
74
|
*/
|
|
80
75
|
inline bool isVarType(enum_field_types type)
|
|
81
76
|
{
|
|
82
|
-
|
|
77
|
+
return ((type == MYSQL_TYPE_VAR_STRING) || (type == MYSQL_TYPE_VARCHAR));
|
|
83
78
|
}
|
|
79
|
+
|
|
84
80
|
/** return Is type blob type
|
|
85
81
|
*/
|
|
86
82
|
inline bool isBlobType(enum_field_types type)
|
|
87
83
|
{
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
return ((type == MYSQL_TYPE_TINY_BLOB) || (type == MYSQL_TYPE_BLOB) ||
|
|
85
|
+
(type == MYSQL_TYPE_MEDIUM_BLOB) || (type == MYSQL_TYPE_LONG_BLOB));
|
|
90
86
|
}
|
|
91
87
|
|
|
92
88
|
inline uint blob_var_bytes(Field* fd)
|
|
93
89
|
{
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
return fd->pack_length() - portable_sizeof_char_ptr;
|
|
96
91
|
}
|
|
92
|
+
|
|
97
93
|
/** sizeof blob body
|
|
98
94
|
*/
|
|
99
95
|
inline uint blob_len(const uchar* ptr, uint varlen)
|
|
100
96
|
{
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
97
|
+
uint v = 0;
|
|
98
|
+
memcpy(&v, ptr, varlen);
|
|
99
|
+
return v;
|
|
104
100
|
}
|
|
105
101
|
|
|
106
102
|
inline uint blob_len(Field* fd)
|
|
107
103
|
{
|
|
108
|
-
|
|
104
|
+
return blob_len(fd->ptr, blob_var_bytes(fd));
|
|
109
105
|
}
|
|
110
106
|
|
|
111
107
|
/** sizeof blob body ptr + size bytes. not include blob body length
|
|
112
108
|
*/
|
|
113
109
|
inline uint blob_total_len(Field* fd)
|
|
114
110
|
{
|
|
115
|
-
|
|
111
|
+
return sizeof(char*) + blob_var_bytes(fd);
|
|
116
112
|
}
|
|
117
113
|
|
|
118
114
|
inline uint blob_total_len(uint varlen)
|
|
119
115
|
{
|
|
120
|
-
|
|
116
|
+
return sizeof(char*) + varlen;
|
|
121
117
|
}
|
|
122
118
|
|
|
123
119
|
inline const uchar** blobBodyPtrRef(Field* fd)
|
|
124
120
|
{
|
|
125
|
-
|
|
121
|
+
return (const uchar**)(fd->ptr + blob_var_bytes(fd));
|
|
126
122
|
}
|
|
127
123
|
|
|
128
124
|
inline const uchar* blobBodyPtr(Field* fd)
|
|
129
125
|
{
|
|
130
|
-
|
|
126
|
+
return *(blobBodyPtrRef(fd));
|
|
131
127
|
}
|
|
132
128
|
|
|
133
129
|
/** return size bytes
|
|
134
130
|
*/
|
|
135
131
|
inline uint var_bytes_if(Field* fd)
|
|
136
132
|
{
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
133
|
+
if (isVarType(fd->type()))
|
|
134
|
+
return var_bytes(fd);
|
|
135
|
+
else if (isBlobType(fd->type()))
|
|
136
|
+
return blob_var_bytes(fd);
|
|
137
|
+
return 0;
|
|
142
138
|
}
|
|
143
139
|
|
|
144
140
|
/** Is this field name NIS?
|
|
145
141
|
*/
|
|
146
|
-
inline bool isNisField(const char* name)
|
|
142
|
+
inline bool isNisField(const char* name)
|
|
147
143
|
{
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
&& name[2] && (name[2] == 'f'));
|
|
144
|
+
return (name[0] && (name[0] == '$') && name[1] && (name[1] == 'n') &&
|
|
145
|
+
name[2] && (name[2] == 'f'));
|
|
151
146
|
}
|
|
152
147
|
|
|
153
|
-
}//namespace mysql
|
|
154
|
-
}//namespace engine
|
|
155
|
-
}//namespace db
|
|
156
|
-
}//namespace bzs
|
|
157
|
-
#endif
|
|
158
|
-
|
|
148
|
+
} // namespace mysql
|
|
149
|
+
} // namespace engine
|
|
150
|
+
} // namespace db
|
|
151
|
+
} // namespace bzs
|
|
152
|
+
#endif // BZS_DB_ENGINE_MYSQL_FIELDACCESS_H
|