From: <fir...@us...> - 2015-01-06 00:17:05
|
Revision: 60473 http://sourceforge.net/p/firebird/code/60473 Author: firebirds Date: 2015-01-06 00:16:56 +0000 (Tue, 06 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-05 16:08:21 UTC (rev 60472) +++ firebird/trunk/ChangeLog 2015-01-06 00:16:56 UTC (rev 60473) @@ -1,3 +1,10 @@ + 2015-01-05 16:08 dimitr + M src/remote/client/interface.cpp + M src/remote/parse_proto.h + M src/remote/parser.cpp + M src/remote/protocol.cpp +Slightly refactored the BLR parser routines to avoid crazy error reporting and protect against NULL pointer dereference. The error handling still sucks, but it was the case before me ;-) + 2014-12-30 15:18 alexpeshkoff M src/common/IntlParametersBlock.cpp M src/common/IntlParametersBlock.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-05 16:08:21 UTC (rev 60472) +++ firebird/trunk/src/jrd/build_no.h 2015-01-06 00:16:56 UTC (rev 60473) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31529 + FORMAL BUILD NUMBER:31530 */ -#define PRODUCT_VER_STRING "3.0.0.31529" -#define FILE_VER_STRING "WI-T3.0.0.31529" -#define LICENSE_VER_STRING "WI-T3.0.0.31529" -#define FILE_VER_NUMBER 3, 0, 0, 31529 +#define PRODUCT_VER_STRING "3.0.0.31530" +#define FILE_VER_STRING "WI-T3.0.0.31530" +#define LICENSE_VER_STRING "WI-T3.0.0.31530" +#define FILE_VER_NUMBER 3, 0, 0, 31530 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31529" +#define FB_BUILD_NO "31530" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-05 16:08:21 UTC (rev 60472) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-06 00:16:56 UTC (rev 60473) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31529 +BuildNum=31530 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-01-07 00:13:38
|
Revision: 60476 http://sourceforge.net/p/firebird/code/60476 Author: firebirds Date: 2015-01-07 00:13:30 +0000 (Wed, 07 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-06 22:40:20 UTC (rev 60475) +++ firebird/trunk/ChangeLog 2015-01-07 00:13:30 UTC (rev 60476) @@ -1,3 +1,11 @@ + 2015-01-06 22:40 asfernandes + M src/dsql/StmtNodes.cpp +Fixed problem with subfunction parameters related to CORE-4572. + + 2015-01-06 22:40 asfernandes + M src/dsql/DdlNodes.epp +Fixed problem introduced by fix of CORE-4280. + 2015-01-05 16:08 dimitr M src/remote/client/interface.cpp M src/remote/parse_proto.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-06 22:40:20 UTC (rev 60475) +++ firebird/trunk/src/jrd/build_no.h 2015-01-07 00:13:30 UTC (rev 60476) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31530 + FORMAL BUILD NUMBER:31532 */ -#define PRODUCT_VER_STRING "3.0.0.31530" -#define FILE_VER_STRING "WI-T3.0.0.31530" -#define LICENSE_VER_STRING "WI-T3.0.0.31530" -#define FILE_VER_NUMBER 3, 0, 0, 31530 +#define PRODUCT_VER_STRING "3.0.0.31532" +#define FILE_VER_STRING "WI-T3.0.0.31532" +#define LICENSE_VER_STRING "WI-T3.0.0.31532" +#define FILE_VER_NUMBER 3, 0, 0, 31532 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31530" +#define FB_BUILD_NO "31532" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-06 22:40:20 UTC (rev 60475) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-07 00:13:30 UTC (rev 60476) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31530 +BuildNum=31532 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-01-09 00:13:35
|
Revision: 60479 http://sourceforge.net/p/firebird/code/60479 Author: firebirds Date: 2015-01-09 00:13:27 +0000 (Fri, 09 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-08 14:14:53 UTC (rev 60478) +++ firebird/trunk/ChangeLog 2015-01-09 00:13:27 UTC (rev 60479) @@ -1,3 +1,25 @@ + 2015-01-08 14:14 alexpeshkoff + M doc/README.services_extension +Doc for CORE-4662: Make services API pass SQL role to server. + + 2015-01-08 14:03 alexpeshkoff + M src/alice/alice.cpp + M src/alice/alice.h + M src/alice/aliceswi.h + M src/alice/exe.cpp + M src/alice/tdr.cpp + M src/burp/restore.epp + M src/jrd/svc.cpp + M src/jrd/svc.h + M src/msgs/facilities2.sql + M src/msgs/messages2.sql + M src/utilities/fbsvcmgr/fbsvcmgr.cpp + M src/utilities/gstat/dba.epp + M src/utilities/gstat/dbaswi.h + M src/utilities/nbackup/nbackup.cpp + M src/utilities/nbackup/nbkswi.h +Fixed CORE-4662: Make services API pass SQL role to server. Also added switch -role to some utilities that missed it. + 2015-01-06 22:40 asfernandes M src/dsql/StmtNodes.cpp Fixed problem with subfunction parameters related to CORE-4572. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-08 14:14:53 UTC (rev 60478) +++ firebird/trunk/src/jrd/build_no.h 2015-01-09 00:13:27 UTC (rev 60479) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31532 + FORMAL BUILD NUMBER:31534 */ -#define PRODUCT_VER_STRING "3.0.0.31532" -#define FILE_VER_STRING "WI-T3.0.0.31532" -#define LICENSE_VER_STRING "WI-T3.0.0.31532" -#define FILE_VER_NUMBER 3, 0, 0, 31532 +#define PRODUCT_VER_STRING "3.0.0.31534" +#define FILE_VER_STRING "WI-T3.0.0.31534" +#define LICENSE_VER_STRING "WI-T3.0.0.31534" +#define FILE_VER_NUMBER 3, 0, 0, 31534 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31532" +#define FB_BUILD_NO "31534" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-08 14:14:53 UTC (rev 60478) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-09 00:13:27 UTC (rev 60479) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31532 +BuildNum=31534 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <asf...@us...> - 2015-01-12 00:21:53
|
Revision: 60485 http://sourceforge.net/p/firebird/code/60485 Author: asfernandes Date: 2015-01-12 00:21:38 +0000 (Mon, 12 Jan 2015) Log Message: ----------- Make the API usable with different type of IStatus classes, throwing (what class?) or not throwing. Builtin are CheckStatusWrapper (no throw) and ThrowStatusWrapper (throws FbException). Modified Paths: -------------- firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp firebird/trunk/examples/dbcrypt/DbCrypt.cpp firebird/trunk/examples/udr/UdrCppExample.cpp firebird/trunk/src/auth/AuthDbg.cpp firebird/trunk/src/auth/AuthDbg.h firebird/trunk/src/auth/SecureRemotePassword/Message.h firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp firebird/trunk/src/auth/SecurityDatabase/LegacyClient.cpp firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp firebird/trunk/src/auth/trusted/AuthSspi.cpp firebird/trunk/src/auth/trusted/AuthSspi.h firebird/trunk/src/common/Auth.cpp firebird/trunk/src/common/Auth.h firebird/trunk/src/common/MsgMetadata.cpp firebird/trunk/src/common/MsgMetadata.h firebird/trunk/src/common/StatusHolder.h firebird/trunk/src/common/call_service.cpp firebird/trunk/src/common/classes/GetPlugins.h firebird/trunk/src/common/classes/ImplementHelper.cpp firebird/trunk/src/common/classes/ImplementHelper.h firebird/trunk/src/common/classes/TempFile.cpp firebird/trunk/src/common/classes/TempFile.h firebird/trunk/src/common/config/config.cpp firebird/trunk/src/common/config/config.h firebird/trunk/src/common/isc_sync.cpp firebird/trunk/src/common/security.cpp firebird/trunk/src/common/security.h firebird/trunk/src/common/utils_proto.h firebird/trunk/src/dsql/DdlNodes.epp firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp firebird/trunk/src/gpre/obj_cxx.cpp firebird/trunk/src/include/firebird/FirebirdInterface.idl firebird/trunk/src/include/firebird/IdlFbInterfaces.h firebird/trunk/src/include/firebird/Interface.h firebird/trunk/src/include/firebird/Message.h firebird/trunk/src/include/firebird/UdrCppEngine.h firebird/trunk/src/include/firebird/UdrEngine.h firebird/trunk/src/isql/isql.epp firebird/trunk/src/isql/show.epp firebird/trunk/src/jrd/Attachment.h firebird/trunk/src/jrd/Database.h firebird/trunk/src/jrd/EngineInterface.h firebird/trunk/src/jrd/ExtEngineManager.cpp firebird/trunk/src/jrd/ExtEngineManager.h firebird/trunk/src/jrd/UserManagement.cpp firebird/trunk/src/jrd/extds/InternalDS.cpp firebird/trunk/src/jrd/jrd.cpp firebird/trunk/src/jrd/jrd.h firebird/trunk/src/jrd/trace/TraceConfigStorage.h firebird/trunk/src/jrd/trace/TraceObjects.cpp firebird/trunk/src/jrd/trace/TraceObjects.h firebird/trunk/src/plugins/crypt/arc4/Arc4.cpp firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp firebird/trunk/src/remote/client/interface.cpp firebird/trunk/src/remote/inet.cpp firebird/trunk/src/remote/remote.cpp firebird/trunk/src/remote/remote.h firebird/trunk/src/remote/server/server.cpp firebird/trunk/src/utilities/gsec/gsec.cpp firebird/trunk/src/utilities/ntrace/PluginLogWriter.h firebird/trunk/src/utilities/ntrace/TracePluginImpl.h firebird/trunk/src/utilities/ntrace/traceplugin.cpp firebird/trunk/src/yvalve/DistributedTransaction.cpp firebird/trunk/src/yvalve/MasterImplementation.cpp firebird/trunk/src/yvalve/MasterImplementation.h firebird/trunk/src/yvalve/PluginManager.cpp firebird/trunk/src/yvalve/PluginManager.h firebird/trunk/src/yvalve/YObjects.h firebird/trunk/src/yvalve/alt.cpp firebird/trunk/src/yvalve/perf.cpp firebird/trunk/src/yvalve/prepa_proto.h firebird/trunk/src/yvalve/preparse.cpp firebird/trunk/src/yvalve/utl.cpp firebird/trunk/src/yvalve/why.cpp Modified: firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp =================================================================== --- firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2015-01-12 00:21:07 UTC (rev 60484) +++ firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2015-01-12 00:21:38 UTC (rev 60485) @@ -44,7 +44,7 @@ IMaster* master = NULL; IPluginManager* pluginManager = NULL; -class PluginModule : public Api::IPluginModuleImpl<PluginModule> +class PluginModule : public IPluginModuleImpl<PluginModule, CheckStatusWrapper> { public: PluginModule() @@ -82,7 +82,7 @@ PluginModule module; -class CryptKeyHolder : public Api::IKeyHolderPluginImpl<CryptKeyHolder> +class CryptKeyHolder : public IKeyHolderPluginImpl<CryptKeyHolder, CheckStatusWrapper> { public: explicit CryptKeyHolder(IPluginConfig* cnf) throw() @@ -97,8 +97,8 @@ } // IKeyHolderPlugin implementation - int keyCallback(IStatus* status, ICryptKeyCallback* callback); - ICryptKeyCallback* keyHandle(IStatus* status, const char* keyName); + int keyCallback(CheckStatusWrapper* status, ICryptKeyCallback* callback); + ICryptKeyCallback* keyHandle(CheckStatusWrapper* status, const char* keyName); int release() { @@ -136,7 +136,7 @@ } private: - class CallbackInterface : public Api::ICryptKeyCallbackImpl<CallbackInterface> + class CallbackInterface : public ICryptKeyCallbackImpl<CallbackInterface, CheckStatusWrapper> { public: explicit CallbackInterface(CryptKeyHolder* p) @@ -175,10 +175,10 @@ AtomicCounter refCounter; IReferenceCounted* owner; - void noKeyError(IStatus* status); + void noKeyError(CheckStatusWrapper* status); }; -void CryptKeyHolder::noKeyError(IStatus* status) +void CryptKeyHolder::noKeyError(CheckStatusWrapper* status) { ISC_STATUS_ARRAY vector; vector[0] = isc_arg_gds; @@ -189,7 +189,7 @@ status->setErrors(vector); } -int CryptKeyHolder::keyCallback(IStatus* status, ICryptKeyCallback* callback) +int CryptKeyHolder::keyCallback(CheckStatusWrapper* status, ICryptKeyCallback* callback) { status->init(); @@ -225,7 +225,7 @@ return 1; } -ICryptKeyCallback* CryptKeyHolder::keyHandle(IStatus* status, const char* keyName) +ICryptKeyCallback* CryptKeyHolder::keyHandle(CheckStatusWrapper* status, const char* keyName) { if (strcmp(keyName, "sample") != 0) { @@ -235,7 +235,7 @@ return &callbackInterface; } -class Factory : public Api::IPluginFactoryImpl<Factory> +class Factory : public IPluginFactoryImpl<Factory, CheckStatusWrapper> { public: IPluginModule* getModule() @@ -243,7 +243,7 @@ return &module; } - IPluginBase* createPlugin(IStatus* status, IPluginConfig* factoryParameter) + IPluginBase* createPlugin(CheckStatusWrapper* status, IPluginConfig* factoryParameter) { try { Modified: firebird/trunk/examples/dbcrypt/DbCrypt.cpp =================================================================== --- firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2015-01-12 00:21:07 UTC (rev 60484) +++ firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2015-01-12 00:21:38 UTC (rev 60485) @@ -41,7 +41,7 @@ IMaster* master = NULL; IPluginManager* pluginManager = NULL; -class PluginModule : public Api::IPluginModuleImpl<PluginModule> +class PluginModule : public IPluginModuleImpl<PluginModule, CheckStatusWrapper> { public: PluginModule() @@ -79,7 +79,7 @@ PluginModule module; -class DbCrypt : public Api::IDbCryptPluginImpl<DbCrypt> +class DbCrypt : public IDbCryptPluginImpl<DbCrypt, CheckStatusWrapper> { public: explicit DbCrypt(IPluginConfig* cnf) throw() @@ -94,9 +94,9 @@ } // ICryptPlugin implementation - void encrypt(IStatus* status, unsigned int length, const void* from, void* to); - void decrypt(IStatus* status, unsigned int length, const void* from, void* to); - void setKey(IStatus* status, unsigned int length, IKeyHolderPlugin** sources); + void encrypt(CheckStatusWrapper* status, unsigned int length, const void* from, void* to); + void decrypt(CheckStatusWrapper* status, unsigned int length, const void* from, void* to); + void setKey(CheckStatusWrapper* status, unsigned int length, IKeyHolderPlugin** sources); int release() { @@ -135,10 +135,10 @@ AtomicCounter refCounter; IReferenceCounted* owner; - void noKeyError(IStatus* status); + void noKeyError(CheckStatusWrapper* status); }; -void DbCrypt::noKeyError(IStatus* status) +void DbCrypt::noKeyError(CheckStatusWrapper* status) { ISC_STATUS_ARRAY vector; vector[0] = isc_arg_gds; @@ -149,7 +149,7 @@ status->setErrors(vector); } -void DbCrypt::encrypt(IStatus* status, unsigned int length, const void* from, void* to) +void DbCrypt::encrypt(CheckStatusWrapper* status, unsigned int length, const void* from, void* to) { status->init(); @@ -168,7 +168,7 @@ } } -void DbCrypt::decrypt(IStatus* status, unsigned int length, const void* from, void* to) +void DbCrypt::decrypt(CheckStatusWrapper* status, unsigned int length, const void* from, void* to) { status->init(); @@ -187,7 +187,7 @@ } } -void DbCrypt::setKey(IStatus* status, unsigned int length, IKeyHolderPlugin** sources) +void DbCrypt::setKey(CheckStatusWrapper* status, unsigned int length, IKeyHolderPlugin** sources) { status->init(); @@ -243,7 +243,7 @@ noKeyError(status); } -class Factory : public Api::IPluginFactoryImpl<Factory> +class Factory : public IPluginFactoryImpl<Factory, CheckStatusWrapper> { public: IPluginModule* getModule() @@ -251,7 +251,7 @@ return &module; } - IPluginBase* createPlugin(IStatus* status, IPluginConfig* factoryParameter) + IPluginBase* createPlugin(CheckStatusWrapper* status, IPluginConfig* factoryParameter) { try { Modified: firebird/trunk/examples/udr/UdrCppExample.cpp =================================================================== --- firebird/trunk/examples/udr/UdrCppExample.cpp 2015-01-12 00:21:07 UTC (rev 60484) +++ firebird/trunk/examples/udr/UdrCppExample.cpp 2015-01-12 00:21:38 UTC (rev 60485) @@ -21,7 +21,6 @@ */ #include "ibase.h" -#include "firebird.h" //// FIXME: #include "firebird/UdrCppEngine.h" #include <assert.h> #include <stdio.h> @@ -216,14 +215,14 @@ delete [] s; ISC_STATUS_ARRAY statusVector = {0}; - isc_db_handle dbHandle = getIscDbHandle(context); + isc_db_handle dbHandle = getIscDbHandle(status, context); ISC_ULONG counter = 0; - StatusException::checkStatus(isc_wait_for_event( - statusVector, &dbHandle, eveLen, eveBuffer, eveResult), statusVector); + FbException::check(isc_wait_for_event( + statusVector, &dbHandle, eveLen, eveBuffer, eveResult), status, statusVector); isc_event_counts(&counter, eveLen, eveBuffer, eveResult); - StatusException::checkStatus(isc_wait_for_event( - statusVector, &dbHandle, eveLen, eveBuffer, eveResult), statusVector); + FbException::check(isc_wait_for_event( + statusVector, &dbHandle, eveLen, eveBuffer, eveResult), status, statusVector); isc_event_counts(&counter, eveLen, eveBuffer, eveResult); isc_free((char*) eveBuffer); @@ -251,11 +250,10 @@ // , inCount(0) { // Get input metadata. - AutoRelease<IMessageMetadata> inMetadata(StatusException::check(status, - metadata->getInputMetadata(status))); + AutoRelease<IMessageMetadata> inMetadata(metadata->getInputMetadata(status)); // Get count of input parameters. - inCount = StatusException::check(status, inMetadata->getCount(status)); + inCount = inMetadata->getCount(status); inNullOffsets.reset(new unsigned[inCount]); inOffsets.reset(new unsigned[inCount]); @@ -263,21 +261,20 @@ for (unsigned i = 0; i < inCount; ++i) { // Get null offset of the i-th input parameter. - inNullOffsets[i] = StatusException::check(status, inMetadata->getNullOffset(status, i)); + inNullOffsets[i] = inMetadata->getNullOffset(status, i); // Get the offset of the i-th input parameter. - inOffsets[i] = StatusException::check(status, inMetadata->getOffset(status, i)); + inOffsets[i] = inMetadata->getOffset(status, i); } // Get output metadata. - AutoRelease<IMessageMetadata> outMetadata(StatusException::check(status, - metadata->getOutputMetadata(status))); + AutoRelease<IMessageMetadata> outMetadata(metadata->getOutputMetadata(status)); // Get null offset of the return value. - outNullOffset = StatusException::check(status, outMetadata->getNullOffset(status, 0)); + outNullOffset = outMetadata->getNullOffset(status, 0); // Get offset of the return value. - outOffset = StatusException::check(status, outMetadata->getOffset(status, 0)); + outOffset = outMetadata->getOffset(status, 0); } // This function requires the INTEGER parameters and return value, otherwise it will crash. @@ -333,17 +330,15 @@ // Get offsets once per procedure. FB_UDR_CONSTRUCTOR { - AutoRelease<IMessageMetadata> inMetadata(StatusException::check(status, - metadata->getInputMetadata(status))); + AutoRelease<IMessageMetadata> inMetadata(metadata->getInputMetadata(status)); - inOffsetStart = StatusException::check(status, inMetadata->getOffset(status, 0)); - inOffsetEnd = StatusException::check(status, inMetadata->getOffset(status, 1)); + inOffsetStart = inMetadata->getOffset(status, 0); + inOffsetEnd = inMetadata->getOffset(status, 1); - AutoRelease<IMessageMetadata> outMetadata(StatusException::check(status, - metadata->getOutputMetadata(status))); + AutoRelease<IMessageMetadata> outMetadata(metadata->getOutputMetadata(status)); - outNullOffset = StatusException::check(status, outMetadata->getNullOffset(status, 0)); - outOffset = StatusException::check(status, outMetadata->getOffset(status, 0)); + outNullOffset = outMetadata->getNullOffset(status, 0); + outOffset = outMetadata->getOffset(status, 0); } /*** Procedure destructor. @@ -542,24 +537,23 @@ // Without FieldsMessage definition, messages will be byte-based. FB_UDR_CONSTRUCTOR - , triggerMetadata(StatusException::check(status, metadata->getTriggerMetadata(status))) + , triggerMetadata(metadata->getTriggerMetadata(status)) { ISC_STATUS_ARRAY statusVector = {0}; - isc_db_handle dbHandle = getIscDbHandle(context); - isc_tr_handle trHandle = getIscTrHandle(context); + isc_db_handle dbHandle = getIscDbHandle(status, context); + isc_tr_handle trHandle = getIscTrHandle(status, context); isc_stmt_handle stmtHandle = 0; - StatusException::checkStatus(isc_dsql_allocate_statement( - statusVector, &dbHandle, &stmtHandle), statusVector); - StatusException::checkStatus(isc_dsql_prepare(statusVector, &trHandle, &stmtHandle, 0, + FbException::check(isc_dsql_allocate_statement( + statusVector, &dbHandle, &stmtHandle), status, statusVector); + FbException::check(isc_dsql_prepare(statusVector, &trHandle, &stmtHandle, 0, "select data_source from replicate_config where name = ?", - SQL_DIALECT_CURRENT, NULL), statusVector); + SQL_DIALECT_CURRENT, NULL), status, statusVector); - const char* table = StatusException::check(status, metadata->getTriggerTable(status)); + const char* table = metadata->getTriggerTable(status); // Skip the first exclamation point, separating the module name and entry point. - const char* info = StatusException::check(status, - strchr(metadata->getEntryPoint(status), '!')); + const char* info = strchr(metadata->getEntryPoint(status), '!'); // Skip the second exclamation point, separating the entry point and the misc info (config). if (info) @@ -573,8 +567,8 @@ XSQLDA* inSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]); inSqlDa->version = SQLDA_VERSION1; inSqlDa->sqln = 1; - StatusException::checkStatus(isc_dsql_describe_bind(statusVector, &stmtHandle, - SQL_DIALECT_CURRENT, inSqlDa), statusVector); + FbException::check(isc_dsql_describe_bind(statusVector, &stmtHandle, + SQL_DIALECT_CURRENT, inSqlDa), status, statusVector); inSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + inSqlDa->sqlvar[0].sqllen]; strncpy(inSqlDa->sqlvar[0].sqldata + sizeof(short), info, inSqlDa->sqlvar[0].sqllen); *reinterpret_cast<short*>(inSqlDa->sqlvar[0].sqldata) = strlen(info); @@ -582,20 +576,20 @@ XSQLDA* outSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]); outSqlDa->version = SQLDA_VERSION1; outSqlDa->sqln = 1; - StatusException::checkStatus(isc_dsql_describe(statusVector, &stmtHandle, - SQL_DIALECT_CURRENT, outSqlDa), statusVector); + FbException::check(isc_dsql_describe(statusVector, &stmtHandle, + SQL_DIALECT_CURRENT, outSqlDa), status, statusVector); outSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + outSqlDa->sqlvar[0].sqllen + 1]; outSqlDa->sqlvar[0].sqldata[sizeof(short) + outSqlDa->sqlvar[0].sqllen] = '\0'; - StatusException::checkStatus(isc_dsql_execute2(statusVector, &trHandle, &stmtHandle, - SQL_DIALECT_CURRENT, inSqlDa, outSqlDa), statusVector); - StatusException::checkStatus(isc_dsql_free_statement( - statusVector, &stmtHandle, DSQL_unprepare), statusVector); + FbException::check(isc_dsql_execute2(statusVector, &trHandle, &stmtHandle, + SQL_DIALECT_CURRENT, inSqlDa, outSqlDa), status, statusVector); + FbException::check(isc_dsql_free_statement( + statusVector, &stmtHandle, DSQL_unprepare), status, statusVector); delete [] inSqlDa->sqlvar[0].sqldata; delete [] reinterpret_cast<char*>(inSqlDa); - unsigned count = StatusException::check(status, triggerMetadata->getCount(status)); + unsigned count = triggerMetadata->getCount(status); char buffer[65536]; strcpy(buffer, "execute block (\n"); @@ -605,7 +599,7 @@ if (i > 0) strcat(buffer, ",\n"); - const char* name = StatusException::check(status, triggerMetadata->getField(status, i)); + const char* name = triggerMetadata->getField(status, i); strcat(buffer, " p"); sprintf(buffer + strlen(buffer), "%d type of column \"%s\".\"%s\" = ?", i, table, name); @@ -625,7 +619,7 @@ if (i > 0) strcat(buffer, ", "); - const char* name = StatusException::check(status, triggerMetadata->getField(status, i)); + const char* name = triggerMetadata->getField(status, i); strcat(buffer, "\""); strcat(buffer, name); @@ -655,11 +649,10 @@ strcat(buffer, outSqlDa->sqlvar[0].sqldata + sizeof(short)); strcat(buffer, "';\nend"); - IAttachment* attachment = StatusException::check(status, context->getAttachment(status)); - ITransaction* transaction = StatusException::check(status, context->getTransaction(status)); + IAttachment* attachment = context->getAttachment(status); + ITransaction* transaction = context->getTransaction(status); - stmt.reset(StatusException::check(status, - attachment->prepare(status, transaction, 0, buffer, SQL_DIALECT_CURRENT, 0))); + stmt.reset(attachment->prepare(status, transaction, 0, buffer, SQL_DIALECT_CURRENT, 0)); delete [] outSqlDa->sqlvar[0].sqldata; delete [] reinterpret_cast<char*>(outSqlDa); @@ -673,11 +666,10 @@ FB_UDR_EXECUTE_TRIGGER { - ITransaction* transaction = StatusException::check(status, context->getTransaction(status)); + ITransaction* transaction = context->getTransaction(status); // This will not work if the table has computed fields. stmt->execute(status, transaction, triggerMetadata, newFields, NULL, NULL); - StatusException::check(status->getErrors()); } AutoRelease<IMessageMetadata> triggerMetadata; @@ -696,24 +688,23 @@ ); FB_UDR_CONSTRUCTOR - , triggerMetadata(StatusException::check(status, metadata->getTriggerMetadata(status))) + , triggerMetadata(metadata->getTriggerMetadata(status)) { ISC_STATUS_ARRAY statusVector = {0}; - isc_db_handle dbHandle = getIscDbHandle(context); - isc_tr_handle trHandle = getIscTrHandle(context); + isc_db_handle dbHandle = getIscDbHandle(status, context); + isc_tr_handle trHandle = getIscTrHandle(status, context); isc_stmt_handle stmtHandle = 0; - StatusException::checkStatus(isc_dsql_allocate_statement( - statusVector, &dbHandle, &stmtHandle), statusVector); - StatusException::checkStatus(isc_dsql_prepare(statusVector, &trHandle, &stmtHandle, 0, + FbException::check(isc_dsql_allocate_statement( + statusVector, &dbHandle, &stmtHandle), status, statusVector); + FbException::check(isc_dsql_prepare(statusVector, &trHandle, &stmtHandle, 0, "select data_source from replicate_config where name = ?", - SQL_DIALECT_CURRENT, NULL), statusVector); + SQL_DIALECT_CURRENT, NULL), status, statusVector); - const char* table = StatusException::check(status, metadata->getTriggerTable(status)); + const char* table = metadata->getTriggerTable(status); // Skip the first exclamation point, separating the module name and entry point. - const char* info = StatusException::check(status, - strchr(metadata->getEntryPoint(status), '!')); + const char* info = strchr(metadata->getEntryPoint(status), '!'); // Skip the second exclamation point, separating the entry point and the misc info (config). if (info) @@ -727,8 +718,8 @@ XSQLDA* inSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]); inSqlDa->version = SQLDA_VERSION1; inSqlDa->sqln = 1; - StatusException::checkStatus(isc_dsql_describe_bind( - statusVector, &stmtHandle, SQL_DIALECT_CURRENT, inSqlDa), statusVector); + FbException::check(isc_dsql_describe_bind( + statusVector, &stmtHandle, SQL_DIALECT_CURRENT, inSqlDa), status, statusVector); inSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + inSqlDa->sqlvar[0].sqllen]; strncpy(inSqlDa->sqlvar[0].sqldata + sizeof(short), info, inSqlDa->sqlvar[0].sqllen); *reinterpret_cast<short*>(inSqlDa->sqlvar[0].sqldata) = strlen(info); @@ -736,15 +727,15 @@ XSQLDA* outSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]); outSqlDa->version = SQLDA_VERSION1; outSqlDa->sqln = 1; - StatusException::checkStatus(isc_dsql_describe( - statusVector, &stmtHandle, SQL_DIALECT_CURRENT, outSqlDa), statusVector); + FbException::check(isc_dsql_describe( + statusVector, &stmtHandle, SQL_DIALECT_CURRENT, outSqlDa), status, statusVector); outSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + outSqlDa->sqlvar[0].sqllen + 1]; outSqlDa->sqlvar[0].sqldata[sizeof(short) + outSqlDa->sqlvar[0].sqllen] = '\0'; - StatusException::checkStatus(isc_dsql_execute2(statusVector, &trHandle, &stmtHandle, - SQL_DIALECT_CURRENT, inSqlDa, outSqlDa), statusVector); - StatusException::checkStatus(isc_dsql_free_statement( - statusVector, &stmtHandle, DSQL_unprepare), statusVector); + FbException::check(isc_dsql_execute2(statusVector, &trHandle, &stmtHandle, + SQL_DIALECT_CURRENT, inSqlDa, outSqlDa), status, statusVector); + FbException::check(isc_dsql_free_statement( + statusVector, &stmtHandle, DSQL_unprepare), status, statusVector); delete [] inSqlDa->sqlvar[0].sqldata; delete [] reinterpret_cast<char*>(inSqlDa); @@ -765,11 +756,10 @@ strcat(buffer, outSqlDa->sqlvar[0].sqldata + sizeof(short)); strcat(buffer, "';\nend"); - IAttachment* attachment = StatusException::check(status, context->getAttachment(status)); - ITransaction* transaction = StatusException::check(status, context->getTransaction(status)); + IAttachment* attachment = context->getAttachment(status); + ITransaction* transaction = context->getTransaction(status); - stmt.reset(StatusException::check(status, - attachment->prepare(status, transaction, 0, buffer, SQL_DIALECT_CURRENT, 0))); + stmt.reset(attachment->prepare(status, transaction, 0, buffer, SQL_DIALECT_CURRENT, 0)); delete [] outSqlDa->sqlvar[0].sqldata; delete [] reinterpret_cast<char*>(outSqlDa); @@ -783,10 +773,9 @@ FB_UDR_EXECUTE_TRIGGER { - ITransaction* transaction = StatusException::check(status, context->getTransaction(status)); + ITransaction* transaction = context->getTransaction(status); stmt->execute(status, transaction, triggerMetadata, newFields, NULL, NULL); - StatusException::check(status->getErrors()); } AutoRelease<IMessageMetadata> triggerMetadata; Modified: firebird/trunk/src/auth/AuthDbg.cpp =================================================================== --- firebird/trunk/src/auth/AuthDbg.cpp 2015-01-12 00:21:07 UTC (rev 60484) +++ firebird/trunk/src/auth/AuthDbg.cpp 2015-01-12 00:21:38 UTC (rev 60485) @@ -61,7 +61,7 @@ check(&s); } -int DebugServer::authenticate(Firebird::IStatus* status, Firebird::IServerBlock* sb, +int DebugServer::authenticate(Firebird::CheckStatusWrapper* status, Firebird::IServerBlock* sb, Firebird::IWriter* writerInterface) { try @@ -136,7 +136,7 @@ : str(getPool()) { } -int DebugClient::authenticate(Firebird::IStatus* status, Firebird::IClientBlock* cb) +int DebugClient::authenticate(Firebird::CheckStatusWrapper* status, Firebird::IClientBlock* cb) { try { Modified: firebird/trunk/src/auth/AuthDbg.h =================================================================== --- firebird/trunk/src/auth/AuthDbg.h 2015-01-12 00:21:07 UTC (rev 60484) +++ firebird/trunk/src/auth/AuthDbg.h 2015-01-12 00:21:38 UTC (rev 60485) @@ -46,12 +46,12 @@ // The idea of debug plugin is to send some data from server to client, // modify them on client and return result (which becomes login name) to the server -class DebugServer FB_FINAL : public Firebird::StdPlugin<Firebird::Api::IServerImpl<DebugServer> > +class DebugServer FB_FINAL : public Firebird::StdPlugin<Firebird::IServerImpl<DebugServer, Firebird::CheckStatusWrapper> > { public: explicit DebugServer(Firebird::IPluginConfig*); - int authenticate(Firebird::IStatus* status, Firebird::IServerBlock* sBlock, + int authenticate(Firebird::CheckStatusWrapper* status, Firebird::IServerBlock* sBlock, Firebird::IWriter* writerInterface); int release(); @@ -60,12 +60,12 @@ Firebird::RefPtr<Firebird::IConfig> config; }; -class DebugClient FB_FINAL : public Firebird::StdPlugin<Firebird::Api::IClientImpl<DebugClient> > +class DebugClient FB_FINAL : public Firebird::StdPlugin<Firebird::IClientImpl<DebugClient, Firebird::CheckStatusWrapper> > { public: DebugClient(Firebird::IPluginConfig*); - int authenticate(Firebird::IStatus* status, Firebird::IClientBlock* sBlock); + int authenticate(Firebird::CheckStatusWrapper* status, Firebird::IClientBlock* sBlock); int release(); private: Modified: firebird/trunk/src/auth/SecureRemotePassword/Message.h =================================================================== --- firebird/trunk/src/auth/SecureRemotePassword/Message.h 2015-01-12 00:21:07 UTC (rev 60484) +++ firebird/trunk/src/auth/SecureRemotePassword/Message.h 2015-01-12 00:21:38 UTC (rev 60485) @@ -55,15 +55,18 @@ { public: Message(Firebird::IMessageMetadata* aMeta = NULL) - : metadata(NULL), buffer(NULL), builder(NULL), - fieldCount(0), fieldList(NULL) - { #ifdef INTERNAL_FIREBIRD - s = &st; + : s(&st), #else - s = fb_get_master_interface()->getStatus(); + : s(fb_get_master_interface()->getStatus()), #endif - + metadata(NULL), + buffer(NULL), + builder(NULL), + fieldCount(0), + fieldList(NULL), + statusWrapper(s) + { try { if (aMeta) @@ -80,8 +83,8 @@ #else fb_get_master_interface()-> #endif - getMetadataBuilder(s, 0); - check(s); + getMetadataBuilder(&statusWrapper, 0); + check(&statusWrapper); builder = bld; builder->addRef(); } @@ -123,8 +126,8 @@ { if (metadata) { - unsigned l = metadata->getCount(s); - check(s); + unsigned l = metadata->getCount(&statusWrapper); + check(&statusWrapper); if (fieldCount >= l) { #ifdef INTERNAL_FIREBIRD @@ -135,10 +138,10 @@ #endif } - t = metadata->getType(s, fieldCount); - check(s); - sz = metadata->getLength(s, fieldCount); - check(s); + t = metadata->getType(&statusWrapper, fieldCount); + check(&statusWrapper); + sz = metadata->getLength(&statusWrapper, fieldCount); + check(&statusWrapper); if (!checkType<T>(t, sz)) { #ifdef INTERNAL_FIREBIRD @@ -152,16 +155,16 @@ { fb_assert(builder); - unsigned f = builder->addField(s); - check(s); + unsigned f = builder->addField(&statusWrapper); + check(&statusWrapper); fb_assert(f == fieldCount); t = getType<T>(sz); - builder->setType(s, f, t); - check(s); - builder->setLength(s, f, sz); - check(s); + builder->setType(&statusWrapper, f, t); + check(&statusWrapper); + builder->setLength(&statusWrapper, f, sz); + check(&statusWrapper); lnk->next = fieldList; fieldList = lnk; @@ -177,10 +180,10 @@ #ifdef INTERNAL_FIREBIRD Firebird::status_exception::raise(status); #else - char s[100]; + char msg[100]; const ISC_STATUS* st = status->getErrors(); - fb_interpret(s, sizeof(s), &st); - fatalErrorHandler(s); + fb_interpret(msg, sizeof(msg), &st); + fatalErrorHandler(msg); #endif } } @@ -193,8 +196,8 @@ if (!metadata) { fb_assert(builder); - Firebird::IMessageMetadata* aMeta = builder->getMetadata(s); - check(s); + Firebird::IMessageMetadata* aMeta = builder->getMetadata(&statusWrapper); + check(&statusWrapper); metadata = aMeta; metadata->addRef(); builder->release(); @@ -230,8 +233,8 @@ private: void createBuffer(Firebird::IMessageMetadata* aMeta) { - unsigned l = aMeta->getMessageLength(s); - check(s); + unsigned l = aMeta->getMessageLength(&statusWrapper); + check(&statusWrapper); buffer = new unsigned char[l]; } @@ -239,14 +242,17 @@ Firebird::IStatus* s; private: -#ifdef INTERNAL_FIREBIRD - Firebird::LocalStatus st; -#endif Firebird::IMessageMetadata* metadata; unsigned char* buffer; Firebird::IMetadataBuilder* builder; unsigned fieldCount; FieldLink* fieldList; +#ifdef INTERNAL_FIREBIRD + Firebird::LocalStatus st; +#endif + +public: + Firebird::CheckStatusWrapper statusWrapper; }; @@ -360,12 +366,12 @@ void setPointers(const unsigned char* buf) { - unsigned tmp = msg->getMetadata()->getOffset(msg->s, ind); - Message::check(msg->s); + unsigned tmp = msg->getMetadata()->getOffset(&msg->statusWrapper, ind); + Message::check(&msg->statusWrapper); ptr = (T*) (buf + t... [truncated message content] |
From: <fir...@us...> - 2015-01-13 00:21:19
|
Revision: 60489 http://sourceforge.net/p/firebird/code/60489 Author: firebirds Date: 2015-01-13 00:21:11 +0000 (Tue, 13 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-12 14:56:55 UTC (rev 60488) +++ firebird/trunk/ChangeLog 2015-01-13 00:21:11 UTC (rev 60489) @@ -1,3 +1,117 @@ + 2015-01-12 14:56 asfernandes + M src/include/firebird/FirebirdInterface.idl + M src/include/firebird/IdlFbInterfaces.h + M src/jrd/CryptoManager.cpp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/MasterImplementation.h +Remove IMaster::same from the API. + + 2015-01-12 11:28 dimitr + M src/jrd/Optimizer.cpp +Fixed CORE-4665: Wrong result when use "where <field_C> STARTING WITH <:value> ORDER BY <field_N>' and field_C is leading part of compound index key: { field_C, field_N }. + + 2015-01-12 08:16 hvlad + M src/jrd/extds/InternalDS.cpp +Fixed build error + + 2015-01-12 00:21 asfernandes + M examples/dbcrypt/CryptKeyHolder.cpp + M examples/dbcrypt/DbCrypt.cpp + M examples/udr/UdrCppExample.cpp + M src/auth/AuthDbg.cpp + M src/auth/AuthDbg.h + M src/auth/SecureRemotePassword/Message.h + M src/auth/SecureRemotePassword/client/SrpClient.cpp + M src/auth/SecureRemotePassword/manage/SrpManagement.cpp + M src/auth/SecureRemotePassword/server/SrpServer.cpp + M src/auth/SecurityDatabase/LegacyClient.cpp + M src/auth/SecurityDatabase/LegacyClient.h + M src/auth/SecurityDatabase/LegacyManagement.epp + M src/auth/SecurityDatabase/LegacyManagement.h + M src/auth/SecurityDatabase/LegacyServer.cpp + M src/auth/trusted/AuthSspi.cpp + M src/auth/trusted/AuthSspi.h + M src/common/Auth.cpp + M src/common/Auth.h + M src/common/MsgMetadata.cpp + M src/common/MsgMetadata.h + M src/common/StatusHolder.h + M src/common/call_service.cpp + M src/common/classes/GetPlugins.h + M src/common/classes/ImplementHelper.cpp + M src/common/classes/ImplementHelper.h + M src/common/classes/TempFile.cpp + M src/common/classes/TempFile.h + M src/common/config/config.cpp + M src/common/config/config.h + M src/common/isc_sync.cpp + M src/common/security.cpp + M src/common/security.h + M src/common/utils_proto.h + M src/dsql/DdlNodes.epp + M src/gpre/boot/gpre_meta_boot.cpp + M src/gpre/obj_cxx.cpp + M src/include/firebird/FirebirdInterface.idl + M src/include/firebird/IdlFbInterfaces.h + M src/include/firebird/Interface.h + M src/include/firebird/Message.h + M src/include/firebird/UdrCppEngine.h + M src/include/firebird/UdrEngine.h + M src/isql/isql.epp + M src/isql/show.epp + M src/jrd/Attachment.h + M src/jrd/Database.h + M src/jrd/EngineInterface.h + M src/jrd/ExtEngineManager.cpp + M src/jrd/ExtEngineManager.h + M src/jrd/UserManagement.cpp + M src/jrd/extds/InternalDS.cpp + M src/jrd/jrd.cpp + M src/jrd/jrd.h + M src/jrd/trace/TraceConfigStorage.h + M src/jrd/trace/TraceObjects.cpp + M src/jrd/trace/TraceObjects.h + M src/plugins/crypt/arc4/Arc4.cpp + M src/plugins/udr_engine/UdrEngine.cpp + M src/remote/client/interface.cpp + M src/remote/inet.cpp + M src/remote/remote.cpp + M src/remote/remote.h + M src/remote/server/server.cpp + M src/utilities/gsec/gsec.cpp + M src/utilities/ntrace/PluginLogWriter.h + M src/utilities/ntrace/TracePluginImpl.h + M src/utilities/ntrace/traceplugin.cpp + M src/yvalve/DistributedTransaction.cpp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/MasterImplementation.h + M src/yvalve/PluginManager.cpp + M src/yvalve/PluginManager.h + M src/yvalve/YObjects.h + M src/yvalve/alt.cpp + M src/yvalve/perf.cpp + M src/yvalve/prepa_proto.h + M src/yvalve/preparse.cpp + M src/yvalve/utl.cpp + M src/yvalve/why.cpp +Make the API usable with different type of IStatus classes, throwing (what class?) or not throwing. Builtin are CheckStatusWrapper (no throw) and ThrowStatusWrapper (throws FbException). + + 2015-01-12 00:21 asfernandes + M src/jrd/vio.cpp +Correction. + + 2015-01-12 00:04 asfernandes + M src/gpre/cmp.cpp + M src/gpre/languages/cob.cpp + M src/jrd/UserManagement.cpp + M src/jrd/vio.cpp + M src/remote/parser.cpp +Misc. + + 2015-01-12 00:03 asfernandes + M src/common/IntlParametersBlock.cpp +Correction. + 2015-01-08 14:14 alexpeshkoff M doc/README.services_extension Doc for CORE-4662: Make services API pass SQL role to server. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-12 14:56:55 UTC (rev 60488) +++ firebird/trunk/src/jrd/build_no.h 2015-01-13 00:21:11 UTC (rev 60489) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31534 + FORMAL BUILD NUMBER:31541 */ -#define PRODUCT_VER_STRING "3.0.0.31534" -#define FILE_VER_STRING "WI-T3.0.0.31534" -#define LICENSE_VER_STRING "WI-T3.0.0.31534" -#define FILE_VER_NUMBER 3, 0, 0, 31534 +#define PRODUCT_VER_STRING "3.0.0.31541" +#define FILE_VER_STRING "WI-T3.0.0.31541" +#define LICENSE_VER_STRING "WI-T3.0.0.31541" +#define FILE_VER_NUMBER 3, 0, 0, 31541 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31534" +#define FB_BUILD_NO "31541" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-12 14:56:55 UTC (rev 60488) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-13 00:21:11 UTC (rev 60489) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31534 +BuildNum=31541 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <asf...@us...> - 2015-01-13 14:43:27
|
Revision: 60492 http://sourceforge.net/p/firebird/code/60492 Author: asfernandes Date: 2015-01-13 14:43:24 +0000 (Tue, 13 Jan 2015) Log Message: ----------- Make UDR StatusType customizable. Modified Paths: -------------- firebird/trunk/examples/udr/UdrCppExample.cpp firebird/trunk/src/include/firebird/UdrCppEngine.h firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp Modified: firebird/trunk/examples/udr/UdrCppExample.cpp =================================================================== --- firebird/trunk/examples/udr/UdrCppExample.cpp 2015-01-13 12:53:48 UTC (rev 60491) +++ firebird/trunk/examples/udr/UdrCppExample.cpp 2015-01-13 14:43:24 UTC (rev 60492) @@ -20,6 +20,8 @@ * Contributor(s): ______________________________________. */ +#define FB_UDR_STATUS_TYPE ::Firebird::ThrowStatusWrapper + #include "ibase.h" #include "firebird/UdrCppEngine.h" #include <assert.h> Modified: firebird/trunk/src/include/firebird/UdrCppEngine.h =================================================================== --- firebird/trunk/src/include/firebird/UdrCppEngine.h 2015-01-13 12:53:48 UTC (rev 60491) +++ firebird/trunk/src/include/firebird/UdrCppEngine.h 2015-01-13 14:43:24 UTC (rev 60492) @@ -23,6 +23,10 @@ #ifndef FIREBIRD_UDR_CPP_ENGINE #define FIREBIRD_UDR_CPP_ENGINE +#ifndef FB_UDR_STATUS_TYPE +#error FB_UDR_STATUS_TYPE must be defined with the Status class before UdrCppEngine.h inclusion. +#endif + #include "./UdrEngine.h" #include "./Message.h" #ifndef JRD_IBASE_H @@ -32,7 +36,6 @@ #include <string.h> -//// TODO: Make StatusType customizable. namespace Firebird { namespace Udr @@ -45,9 +48,9 @@ { \ class Impl; \ \ - static ::Firebird::Udr::FunctionFactoryImpl<Impl> factory(#name); \ + static ::Firebird::Udr::FunctionFactoryImpl<Impl, FB_UDR_STATUS_TYPE> factory(#name); \ \ - class Impl : public ::Firebird::Udr::Function<Impl> \ + class Impl : public ::Firebird::Udr::Function<Impl, FB_UDR_STATUS_TYPE> \ { \ public: \ FB__UDR_COMMON_IMPL @@ -57,13 +60,13 @@ } #define FB_UDR_EXECUTE_FUNCTION \ - void execute(::Firebird::ThrowStatusWrapper* status, ::Firebird::IExternalContext* context, \ + void execute(FB_UDR_STATUS_TYPE* status, ::Firebird::IExternalContext* context, \ void* in, void* out) \ { \ internalExecute(status, context, (InMessage::Type*) in, (OutMessage::Type*) out); \ } \ \ - void internalExecute(::Firebird::ThrowStatusWrapper* status, ::Firebird::IExternalContext* context, \ + void internalExecute(FB_UDR_STATUS_TYPE* status, ::Firebird::IExternalContext* context, \ InMessage::Type* in, OutMessage::Type* out) @@ -72,9 +75,9 @@ { \ class Impl; \ \ - static ::Firebird::Udr::ProcedureFactoryImpl<Impl> factory(#name); \ + static ::Firebird::Udr::ProcedureFactoryImpl<Impl, FB_UDR_STATUS_TYPE> factory(#name); \ \ - class Impl : public ::Firebird::Udr::Procedure<Impl> \ + class Impl : public ::Firebird::Udr::Procedure<Impl, FB_UDR_STATUS_TYPE> \ { \ public: \ FB__UDR_COMMON_IMPL @@ -85,27 +88,27 @@ } #define FB_UDR_EXECUTE_PROCEDURE \ - ::Firebird::IExternalResultSet* open(::Firebird::ThrowStatusWrapper* status, \ + ::Firebird::IExternalResultSet* open(FB_UDR_STATUS_TYPE* status, \ ::Firebird::IExternalContext* context, void* in, void* out) \ { \ return new ResultSet(status, context, this, (InMessage::Type*) in, (OutMessage::Type*) out); \ } \ \ - class ResultSet : public ::Firebird::Udr::ResultSet<ResultSet, Impl, InMessage, OutMessage> \ + class ResultSet : public ::Firebird::Udr::ResultSet<ResultSet, Impl, InMessage, OutMessage, FB_UDR_STATUS_TYPE> \ { \ public: \ - ResultSet(::Firebird::ThrowStatusWrapper* status, ::Firebird::IExternalContext* context, \ + ResultSet(FB_UDR_STATUS_TYPE* status, ::Firebird::IExternalContext* context, \ Impl* const procedure, InMessage::Type* const in, OutMessage::Type* const out) \ - : ::Firebird::Udr::ResultSet<ResultSet, Impl, InMessage, OutMessage>( \ + : ::Firebird::Udr::ResultSet<ResultSet, Impl, InMessage, OutMessage, FB_UDR_STATUS_TYPE>( \ context, procedure, in, out) #define FB_UDR_FETCH_PROCEDURE \ - FB_BOOLEAN fetch(::Firebird::ThrowStatusWrapper* status) \ + FB_BOOLEAN fetch(FB_UDR_STATUS_TYPE* status) \ { \ return (FB_BOOLEAN) internalFetch(status); \ } \ \ - bool internalFetch(::Firebird::ThrowStatusWrapper* status) + bool internalFetch(FB_UDR_STATUS_TYPE* status) #define FB_UDR_BEGIN_TRIGGER(name) \ @@ -113,9 +116,9 @@ { \ class Impl; \ \ - static ::Firebird::Udr::TriggerFactoryImpl<Impl> factory(#name); \ + static ::Firebird::Udr::TriggerFactoryImpl<Impl, FB_UDR_STATUS_TYPE> factory(#name); \ \ - class Impl : public ::Firebird::Udr::Trigger<Impl> \ + class Impl : public ::Firebird::Udr::Trigger<Impl, FB_UDR_STATUS_TYPE> \ { \ public: \ FB__UDR_COMMON_IMPL @@ -125,20 +128,20 @@ } #define FB_UDR_EXECUTE_TRIGGER \ - void execute(::Firebird::ThrowStatusWrapper* status, ::Firebird::IExternalContext* context, \ + void execute(FB_UDR_STATUS_TYPE* status, ::Firebird::IExternalContext* context, \ unsigned int action, void* oldFields, void* newFields) \ { \ internalExecute(status, context, action, \ (FieldsMessage::Type*) oldFields, (FieldsMessage::Type*) newFields); \ } \ \ - void internalExecute(::Firebird::ThrowStatusWrapper* status, ::Firebird::IExternalContext* context, \ + void internalExecute(FB_UDR_STATUS_TYPE* status, ::Firebird::IExternalContext* context, \ unsigned int action, \ FieldsMessage::Type* oldFields, FieldsMessage::Type* newFields) #define FB_UDR_CONSTRUCTOR \ - Impl(::Firebird::ThrowStatusWrapper* const status, ::Firebird::IExternalContext* const context, \ + Impl(FB_UDR_STATUS_TYPE* const status, ::Firebird::IExternalContext* const context, \ ::Firebird::IRoutineMetadata* const metadata__) \ : master(context->getMaster()), \ metadata(metadata__) @@ -162,11 +165,11 @@ struct name \ { \ typedef unsigned char Type; \ - static void setup(::Firebird::ThrowStatusWrapper*, ::Firebird::IMetadataBuilder*) {} \ + static void setup(FB_UDR_STATUS_TYPE*, ::Firebird::IMetadataBuilder*) {} \ } -template <typename T> class Procedure; +template <typename T, typename StatusType> class Procedure; class Helper @@ -218,8 +221,8 @@ }; -template <typename This, typename Procedure, typename InMessage, typename OutMessage> -class ResultSet : public IExternalResultSetImpl<This, ThrowStatusWrapper>, public Helper +template <typename This, typename Procedure, typename InMessage, typename OutMessage, typename StatusType> +class ResultSet : public IExternalResultSetImpl<This, StatusType>, public Helper { public: ResultSet(IExternalContext* aContext, Procedure* aProcedure, @@ -245,8 +248,8 @@ }; -template <typename This> -class Function : public IExternalFunctionImpl<This, ThrowStatusWrapper>, public Helper +template <typename This, typename StatusType> +class Function : public IExternalFunctionImpl<This, StatusType>, public Helper { public: FB__UDR_COMMON_TYPE(InMessage); @@ -257,15 +260,15 @@ delete static_cast<This*>(this); } - void getCharSet(ThrowStatusWrapper* /*status*/, IExternalContext* /*context*/, + void getCharSet(StatusType* /*status*/, IExternalContext* /*context*/, char* /*name*/, unsigned /*nameSize*/) { } }; -template <typename This> -class Procedure : public IExternalProcedureImpl<This, ThrowStatusWrapper>, public Helper +template <typename This, typename StatusType> +class Procedure : public IExternalProcedureImpl<This, StatusType>, public Helper { public: FB__UDR_COMMON_TYPE(InMessage); @@ -276,15 +279,15 @@ delete static_cast<This*>(this); } - void getCharSet(ThrowStatusWrapper* /*status*/, IExternalContext* /*context*/, + void getCharSet(StatusType* /*status*/, IExternalContext* /*context*/, char* /*name*/, unsigned /*nameSize*/) { } }; -template <typename This> -class Trigger : public IExternalTriggerImpl<This, ThrowStatusWrapper>, public Helper +template <typename This, typename StatusType> +class Trigger : public IExternalTriggerImpl<This, StatusType>, public Helper { public: FB__UDR_COMMON_TYPE(FieldsMessage); @@ -294,15 +297,15 @@ delete static_cast<This*>(this); } - void getCharSet(ThrowStatusWrapper* /*status*/, IExternalContext* /*context*/, + void getCharSet(StatusType* /*status*/, IExternalContext* /*context*/, char* /*name*/, unsigned /*nameSize*/) { } }; -template <typename T> class FunctionFactoryImpl : - public IUdrFunctionFactoryImpl<FunctionFactoryImpl<T>, ThrowStatusWrapper> +template <typename T, typename StatusType> class FunctionFactoryImpl : + public IUdrFunctionFactoryImpl<FunctionFactoryImpl<T, StatusType>, StatusType> { public: explicit FunctionFactoryImpl(const char* name) @@ -310,14 +313,14 @@ fbUdrRegFunction(name, this); } - void setup(ThrowStatusWrapper* status, IExternalContext* /*context*/, + void setup(StatusType* status, IExternalContext* /*context*/, IRoutineMetadata* /*metadata*/, IMetadataBuilder* in, IMetadataBuilder* out) { T::InMessage::setup(status, in); T::OutMessage::setup(status, out); } - IExternalFunction* newItem(ThrowStatusWrapper* status, IExternalContext* context, + IExternalFunction* newItem(StatusType* status, IExternalContext* context, IRoutineMetadata* metadata) { return new T(status, context, metadata); @@ -325,8 +328,8 @@ }; -template <typename T> class ProcedureFactoryImpl : - public IUdrProcedureFactoryImpl<ProcedureFactoryImpl<T>, ThrowStatusWrapper> +template <typename T, typename StatusType> class ProcedureFactoryImpl : + public IUdrProcedureFactoryImpl<ProcedureFactoryImpl<T, StatusType>, StatusType> { public: explicit ProcedureFactoryImpl(const char* name) @@ -334,14 +337,14 @@ fbUdrRegProcedure(name, this); } - void setup(ThrowStatusWrapper* status, IExternalContext* /*context*/, + void setup(StatusType* status, IExternalContext* /*context*/, IRoutineMetadata* /*metadata*/, IMetadataBuilder* in, IMetadataBuilder* out) { T::InMessage::setup(status, in); T::OutMessage::setup(status, out); } - IExternalProcedure* newItem(ThrowStatusWrapper* status, IExternalContext* context, + IExternalProcedure* newItem(StatusType* status, IExternalContext* context, IRoutineMetadata* metadata) { return new T(status, context, metadata); @@ -349,8 +352,8 @@ }; -template <typename T> class TriggerFactoryImpl : - public IUdrTriggerFactoryImpl<TriggerFactoryImpl<T>, ThrowStatusWrapper> +template <typename T, typename StatusType> class TriggerFactoryImpl : + public IUdrTriggerFactoryImpl<TriggerFactoryImpl<T, StatusType>, StatusType> { public: explicit TriggerFactoryImpl(const char* name) @@ -358,13 +361,13 @@ fbUdrRegTrigger(name, this); } - void setup(ThrowStatusWrapper* status, IExternalContext* /*context*/, + void setup(StatusType* status, IExternalContext* /*context*/, IRoutineMetadata* /*metadata*/, IMetadataBuilder* fields) { T::FieldsMessage::setup(status, fields); } - IExternalTrigger* newItem(ThrowStatusWrapper* status, IExternalContext* context, + IExternalTrigger* newItem(StatusType* status, IExternalContext* context, IRoutineMetadata* metadata) { return new T(status, context, metadata); Modified: firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp =================================================================== --- firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp 2015-01-13 12:53:48 UTC (rev 60491) +++ firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp 2015-01-13 14:43:24 UTC (rev 60492) @@ -23,7 +23,6 @@ #include "firebird.h" #include "../jrd/ibase.h" #include "firebird/UdrEngine.h" -#include "firebird/UdrCppEngine.h" #include "firebird/Interface.h" #include "../common/classes/alloc.h" #include "../common/classes/array.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-01-14 00:14:10
|
Revision: 60493 http://sourceforge.net/p/firebird/code/60493 Author: firebirds Date: 2015-01-14 00:14:02 +0000 (Wed, 14 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-13 14:43:24 UTC (rev 60492) +++ firebird/trunk/ChangeLog 2015-01-14 00:14:02 UTC (rev 60493) @@ -1,3 +1,15 @@ + 2015-01-13 14:43 asfernandes + M examples/udr/UdrCppExample.cpp + M src/include/firebird/UdrCppEngine.h + M src/plugins/udr_engine/UdrEngine.cpp +Make UDR StatusType customizable. + + 2015-01-13 11:24 hvlad + M src/common/security.cpp + M src/common/security.h + M src/jrd/UserManagement.cpp +By Alex - fix for bug CORE-4659 : Error "Missing security context for .....\SECURITY3.FDB" + 2015-01-12 14:56 asfernandes M src/include/firebird/FirebirdInterface.idl M src/include/firebird/IdlFbInterfaces.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-13 14:43:24 UTC (rev 60492) +++ firebird/trunk/src/jrd/build_no.h 2015-01-14 00:14:02 UTC (rev 60493) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31541 + FORMAL BUILD NUMBER:31543 */ -#define PRODUCT_VER_STRING "3.0.0.31541" -#define FILE_VER_STRING "WI-T3.0.0.31541" -#define LICENSE_VER_STRING "WI-T3.0.0.31541" -#define FILE_VER_NUMBER 3, 0, 0, 31541 +#define PRODUCT_VER_STRING "3.0.0.31543" +#define FILE_VER_STRING "WI-T3.0.0.31543" +#define LICENSE_VER_STRING "WI-T3.0.0.31543" +#define FILE_VER_NUMBER 3, 0, 0, 31543 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31541" +#define FB_BUILD_NO "31543" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-13 14:43:24 UTC (rev 60492) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-14 00:14:02 UTC (rev 60493) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31541 +BuildNum=31543 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-01-15 00:13:53
|
Revision: 60497 http://sourceforge.net/p/firebird/code/60497 Author: firebirds Date: 2015-01-15 00:13:46 +0000 (Thu, 15 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-14 14:43:07 UTC (rev 60496) +++ firebird/trunk/ChangeLog 2015-01-15 00:13:46 UTC (rev 60497) @@ -1,3 +1,28 @@ + 2015-01-14 14:43 asfernandes + M src/include/firebird/FirebirdInterface.idl +Correction. + + 2015-01-14 14:38 asfernandes + M src/yvalve/MasterImplementation.cpp + M src/yvalve/utl.cpp + M src/yvalve/why.cpp +Misc. + + 2015-01-14 14:21 asfernandes + M src/common/classes/ImplementHelper.h + M src/gpre/boot/gpre_meta_boot.cpp + M src/include/firebird/FirebirdInterface.idl + M src/include/firebird/IdlFbInterfaces.h + M src/isql/isql.epp + M src/isql/show.epp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/MasterImplementation.h + M src/yvalve/YObjects.h + M src/yvalve/perf.cpp + M src/yvalve/utl.cpp + M src/yvalve/why.cpp +Renamed "Utl" API to "Util". + 2015-01-13 14:43 asfernandes M examples/udr/UdrCppExample.cpp M src/include/firebird/UdrCppEngine.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-14 14:43:07 UTC (rev 60496) +++ firebird/trunk/src/jrd/build_no.h 2015-01-15 00:13:46 UTC (rev 60497) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31543 + FORMAL BUILD NUMBER:31546 */ -#define PRODUCT_VER_STRING "3.0.0.31543" -#define FILE_VER_STRING "WI-T3.0.0.31543" -#define LICENSE_VER_STRING "WI-T3.0.0.31543" -#define FILE_VER_NUMBER 3, 0, 0, 31543 +#define PRODUCT_VER_STRING "3.0.0.31546" +#define FILE_VER_STRING "WI-T3.0.0.31546" +#define LICENSE_VER_STRING "WI-T3.0.0.31546" +#define FILE_VER_NUMBER 3, 0, 0, 31546 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31543" +#define FB_BUILD_NO "31546" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-14 14:43:07 UTC (rev 60496) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-15 00:13:46 UTC (rev 60497) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31543 +BuildNum=31546 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-01-16 00:14:47
|
Revision: 60505 http://sourceforge.net/p/firebird/code/60505 Author: firebirds Date: 2015-01-16 00:14:39 +0000 (Fri, 16 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-15 21:20:14 UTC (rev 60504) +++ firebird/trunk/ChangeLog 2015-01-16 00:14:39 UTC (rev 60505) @@ -1,3 +1,63 @@ + 2015-01-15 14:55 asfernandes + M src/include/firebird/FirebirdInterface.idl + M src/include/firebird/IdlFbInterfaces.h + M src/include/firebird/Message.h + M src/yvalve/YObjects.h + M src/yvalve/utl.cpp +Added encode/decode date/time methods to IUtil interface. + + 2015-01-15 01:17 asfernandes + M src/auth/AuthDbg.h + M src/auth/SecurityDatabase/LegacyClient.h + M src/auth/SecurityDatabase/LegacyManagement.epp + M src/auth/SecurityDatabase/LegacyManagement.h + M src/auth/SecurityDatabase/LegacyServer.cpp + M src/auth/trusted/AuthSspi.h + M src/common/Auth.h + M src/common/MsgMetadata.h + M src/common/classes/ImplementHelper.h + M src/common/classes/TempFile.h + M src/common/config/config.h + M src/common/isc_sync.cpp + M src/common/security.h + M src/dsql/DdlNodes.epp + M src/include/firebird/UdrEngine.h + M src/isql/show.epp + M src/jrd/Database.h + M src/jrd/EngineInterface.h + M src/jrd/ExtEngineManager.h + M src/jrd/extds/InternalDS.cpp + M src/jrd/jrd.cpp + M src/jrd/trace/TraceConfigStorage.h + M src/jrd/trace/TraceObjects.cpp + M src/jrd/trace/TraceObjects.h + M src/plugins/udr_engine/UdrEngine.cpp + M src/remote/remote.h + M src/utilities/gsec/gsec.cpp + M src/utilities/ntrace/PluginLogWriter.h + M src/utilities/ntrace/TracePluginImpl.h + M src/utilities/ntrace/traceplugin.cpp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/MasterImplementation.h + M src/yvalve/PluginManager.cpp + M src/yvalve/YObjects.h + M src/yvalve/perf.cpp + M src/yvalve/why.cpp +Misc. + + 2015-01-15 01:16 asfernandes + M src/remote/inet.cpp +Warning. + + 2015-01-15 01:16 asfernandes + M src/include/firebird/Interface.h +Implement FbException copying. + + 2015-01-15 01:16 asfernandes + M examples/dbcrypt/CryptKeyHolder.cpp + M examples/dbcrypt/DbCrypt.cpp +Remove old hacks. + 2015-01-14 14:43 asfernandes M src/include/firebird/FirebirdInterface.idl Correction. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-15 21:20:14 UTC (rev 60504) +++ firebird/trunk/src/jrd/build_no.h 2015-01-16 00:14:39 UTC (rev 60505) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31546 + FORMAL BUILD NUMBER:31551 */ -#define PRODUCT_VER_STRING "3.0.0.31546" -#define FILE_VER_STRING "WI-T3.0.0.31546" -#define LICENSE_VER_STRING "WI-T3.0.0.31546" -#define FILE_VER_NUMBER 3, 0, 0, 31546 +#define PRODUCT_VER_STRING "3.0.0.31551" +#define FILE_VER_STRING "WI-T3.0.0.31551" +#define LICENSE_VER_STRING "WI-T3.0.0.31551" +#define FILE_VER_NUMBER 3, 0, 0, 31551 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31546" +#define FB_BUILD_NO "31551" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-15 21:20:14 UTC (rev 60504) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-16 00:14:39 UTC (rev 60505) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31546 +BuildNum=31551 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-01-17 00:15:51
|
Revision: 60512 http://sourceforge.net/p/firebird/code/60512 Author: firebirds Date: 2015-01-17 00:15:43 +0000 (Sat, 17 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-16 17:53:38 UTC (rev 60511) +++ firebird/trunk/ChangeLog 2015-01-17 00:15:43 UTC (rev 60512) @@ -1,3 +1,26 @@ + 2015-01-16 17:53 alexpeshkoff + M src/auth/SecureRemotePassword/client/SrpClient.cpp + M src/auth/SecureRemotePassword/server/SrpServer.cpp + M src/include/firebird/FirebirdInterface.idl + M src/include/firebird/IdlFbInterfaces.h + M src/include/firebird/Interface.h + M src/plugins/crypt/arc4/Arc4.cpp + M src/remote/client/interface.cpp + M src/remote/remote.cpp + M src/remote/remote.h + M src/remote/server/server.cpp + M src/yvalve/DistributedTransaction.cpp + A src/yvalve/DistributedTransaction.h + M src/yvalve/MasterImplementation.cpp + M src/yvalve/MasterImplementation.h + M src/yvalve/why.cpp +Avoid use of plain structures, missing in previous FB versions, in public API + + 2015-01-16 15:12 asfernandes + M src/include/firebird/Interface.h + M src/include/firebird/Message.h +Adjustments after fix and test of fbstuff repository. + 2015-01-15 14:55 asfernandes M src/include/firebird/FirebirdInterface.idl M src/include/firebird/IdlFbInterfaces.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-16 17:53:38 UTC (rev 60511) +++ firebird/trunk/src/jrd/build_no.h 2015-01-17 00:15:43 UTC (rev 60512) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31551 + FORMAL BUILD NUMBER:31553 */ -#define PRODUCT_VER_STRING "3.0.0.31551" -#define FILE_VER_STRING "WI-T3.0.0.31551" -#define LICENSE_VER_STRING "WI-T3.0.0.31551" -#define FILE_VER_NUMBER 3, 0, 0, 31551 +#define PRODUCT_VER_STRING "3.0.0.31553" +#define FILE_VER_STRING "WI-T3.0.0.31553" +#define LICENSE_VER_STRING "WI-T3.0.0.31553" +#define FILE_VER_NUMBER 3, 0, 0, 31553 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31551" +#define FB_BUILD_NO "31553" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-16 17:53:38 UTC (rev 60511) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-17 00:15:43 UTC (rev 60512) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31551 +BuildNum=31553 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-01-18 00:16:54
|
Revision: 60516 http://sourceforge.net/p/firebird/code/60516 Author: firebirds Date: 2015-01-18 00:16:51 +0000 (Sun, 18 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-17 18:49:32 UTC (rev 60515) +++ firebird/trunk/ChangeLog 2015-01-18 00:16:51 UTC (rev 60516) @@ -1,3 +1,7 @@ + 2015-01-17 18:05 dimitr + M src/jrd/jrd.h +Fixed CORE-4668: Select from mon$table_stats doesn`t work on SC and CS. + 2015-01-16 17:53 alexpeshkoff M src/auth/SecureRemotePassword/client/SrpClient.cpp M src/auth/SecureRemotePassword/server/SrpServer.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-17 18:49:32 UTC (rev 60515) +++ firebird/trunk/src/jrd/build_no.h 2015-01-18 00:16:51 UTC (rev 60516) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31553 + FORMAL BUILD NUMBER:31554 */ -#define PRODUCT_VER_STRING "3.0.0.31553" -#define FILE_VER_STRING "WI-T3.0.0.31553" -#define LICENSE_VER_STRING "WI-T3.0.0.31553" -#define FILE_VER_NUMBER 3, 0, 0, 31553 +#define PRODUCT_VER_STRING "3.0.0.31554" +#define FILE_VER_STRING "WI-T3.0.0.31554" +#define LICENSE_VER_STRING "WI-T3.0.0.31554" +#define FILE_VER_NUMBER 3, 0, 0, 31554 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31553" +#define FB_BUILD_NO "31554" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-17 18:49:32 UTC (rev 60515) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-18 00:16:51 UTC (rev 60516) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31553 +BuildNum=31554 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <asf...@us...> - 2015-01-18 14:53:08
|
Revision: 60523 http://sourceforge.net/p/firebird/code/60523 Author: asfernandes Date: 2015-01-18 14:53:06 +0000 (Sun, 18 Jan 2015) Log Message: ----------- Fixed problem of local templates being not allowed in pre-C++-11 code. Modified Paths: -------------- firebird/trunk/examples/udr/UdrCppExample.cpp firebird/trunk/src/include/firebird/Message.h firebird/trunk/src/include/firebird/UdrCppEngine.h Modified: firebird/trunk/examples/udr/UdrCppExample.cpp =================================================================== --- firebird/trunk/examples/udr/UdrCppExample.cpp 2015-01-18 14:52:50 UTC (rev 60522) +++ firebird/trunk/examples/udr/UdrCppExample.cpp 2015-01-18 14:53:06 UTC (rev 60523) @@ -196,11 +196,11 @@ engine udr; ***/ FB_UDR_BEGIN_FUNCTION(wait_event) - FB_MESSAGE(InMessage, + FB_UDR_MESSAGE(InMessage, (FB_VARCHAR(31 * 4), name) ); - FB_MESSAGE(OutMessage, + FB_UDR_MESSAGE(OutMessage, (FB_INTEGER, result) ); @@ -391,12 +391,12 @@ engine udr; ***/ FB_UDR_BEGIN_PROCEDURE(gen_rows2) - FB_MESSAGE(InMessage, + FB_UDR_MESSAGE(InMessage, (FB_INTEGER, start) (FB_INTEGER, end) ); - FB_MESSAGE(OutMessage, + FB_UDR_MESSAGE(OutMessage, (FB_INTEGER, result) ); @@ -431,11 +431,11 @@ // metadata object. // n3 and n4 are on the ResultSet scope, i.e., each procedure execution have they own instances. FB_UDR_BEGIN_PROCEDURE(inc) - FB_MESSAGE(InMessage, + FB_UDR_MESSAGE(InMessage, (FB_INTEGER, count) ); - FB_MESSAGE(OutMessage, + FB_UDR_MESSAGE(OutMessage, (FB_INTEGER, n0) (FB_INTEGER, n1) (FB_INTEGER, n2) @@ -682,7 +682,7 @@ FB_UDR_BEGIN_TRIGGER(replicate_persons) // Order of fields does not need to match the fields order in the table, but it should match // the order of fields in the SQL command constructed in the initialization. - FB_TRIGGER_MESSAGE(FieldsMessage, + FB_UDR_TRIGGER_MESSAGE(FieldsMessage, (FB_INTEGER, id, "ID") (FB_BLOB, info, "INFO") ///(FB_VARCHAR(60 * 4), address, "ADDRESS") Modified: firebird/trunk/src/include/firebird/Message.h =================================================================== --- firebird/trunk/src/include/firebird/Message.h 2015-01-18 14:52:50 UTC (rev 60522) +++ firebird/trunk/src/include/firebird/Message.h 2015-01-18 14:53:06 UTC (rev 60523) @@ -29,16 +29,16 @@ #include <assert.h> #include <string.h> -#define FB_MESSAGE(name, fields) \ - FB__MESSAGE_I(name, 2, FB_BOOST_PP_CAT(FB__MESSAGE_X fields, 0), ) +#define FB_MESSAGE(name, statusType, fields) \ + FB__MESSAGE_I(name, statusType, 2, FB_BOOST_PP_CAT(FB__MESSAGE_X fields, 0), ) #define FB__MESSAGE_X(x, y) ((x, y)) FB__MESSAGE_Y #define FB__MESSAGE_Y(x, y) ((x, y)) FB__MESSAGE_X #define FB__MESSAGE_X0 #define FB__MESSAGE_Y0 -#define FB_TRIGGER_MESSAGE(name, fields) \ - FB__MESSAGE_I(name, 3, FB_BOOST_PP_CAT(FB_TRIGGER_MESSAGE_X fields, 0), \ +#define FB_TRIGGER_MESSAGE(name, statusType, fields) \ + FB__MESSAGE_I(name, statusType, 3, FB_BOOST_PP_CAT(FB_TRIGGER_MESSAGE_X fields, 0), \ FB_TRIGGER_MESSAGE_MOVE_NAMES(name, fields)) #define FB_TRIGGER_MESSAGE_X(x, y, z) ((x, y, z)) FB_TRIGGER_MESSAGE_Y @@ -46,7 +46,7 @@ #define FB_TRIGGER_MESSAGE_X0 #define FB_TRIGGER_MESSAGE_Y0 -#define FB__MESSAGE_I(name, size, fields, moveNames) \ +#define FB__MESSAGE_I(name, statusType, size, fields, moveNames) \ struct name \ { \ struct Type \ @@ -54,17 +54,15 @@ FB_BOOST_PP_SEQ_FOR_EACH_I(FB__MESSAGE_FIELD, size, fields) \ }; \ \ - template <typename StatusType> \ - static void setup(StatusType* status, ::Firebird::IMetadataBuilder* builder) \ + static void setup(statusType* status, ::Firebird::IMetadataBuilder* builder) \ { \ unsigned index = 0; \ moveNames \ FB_BOOST_PP_SEQ_FOR_EACH_I(FB__MESSAGE_META, size, fields) \ } \ \ - template <typename StatusType> \ - name(StatusType* status, ::Firebird::IMaster* master) \ - : desc(master, status, FB_BOOST_PP_SEQ_SIZE(fields), &setup<StatusType>) \ + name(statusType* status, ::Firebird::IMaster* master) \ + : desc(master, status, FB_BOOST_PP_SEQ_SIZE(fields), setup) \ { \ } \ \ Modified: firebird/trunk/src/include/firebird/UdrCppEngine.h =================================================================== --- firebird/trunk/src/include/firebird/UdrCppEngine.h 2015-01-18 14:52:50 UTC (rev 60522) +++ firebird/trunk/src/include/firebird/UdrCppEngine.h 2015-01-18 14:53:06 UTC (rev 60523) @@ -150,6 +150,13 @@ ~Impl() +#define FB_UDR_MESSAGE(name, fields) \ + FB_MESSAGE(name, FB_UDR_STATUS_TYPE, fields) + +#define FB_UDR_TRIGGER_MESSAGE(name, fields) \ + FB_TRIGGER_MESSAGE(name, FB_UDR_STATUS_TYPE, fields) + + #define FB__UDR_COMMON_IMPL \ Impl(const void* const, ::Firebird::IExternalContext* const context, \ ::Firebird::IRoutineMetadata* const aMetadata) \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-01-19 00:14:59
|
Revision: 60525 http://sourceforge.net/p/firebird/code/60525 Author: firebirds Date: 2015-01-19 00:14:49 +0000 (Mon, 19 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-18 16:46:24 UTC (rev 60524) +++ firebird/trunk/ChangeLog 2015-01-19 00:14:49 UTC (rev 60525) @@ -1,3 +1,18 @@ + 2015-01-18 14:53 asfernandes + M examples/udr/UdrCppExample.cpp + M src/include/firebird/Message.h + M src/include/firebird/UdrCppEngine.h +Fixed problem of local templates being not allowed in pre-C++-11 code. + + 2015-01-18 14:52 asfernandes + A src/include/iberror.h +Add iberror.h in the place so that external code may point to the development tree include files. + + 2015-01-18 09:05 dimitr + M src/jrd/btr.cpp + M src/jrd/err_proto.h +Better diagnostics. + 2015-01-17 18:05 dimitr M src/jrd/jrd.h Fixed CORE-4668: Select from mon$table_stats doesn`t work on SC and CS. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-18 16:46:24 UTC (rev 60524) +++ firebird/trunk/src/jrd/build_no.h 2015-01-19 00:14:49 UTC (rev 60525) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31554 + FORMAL BUILD NUMBER:31557 */ -#define PRODUCT_VER_STRING "3.0.0.31554" -#define FILE_VER_STRING "WI-T3.0.0.31554" -#define LICENSE_VER_STRING "WI-T3.0.0.31554" -#define FILE_VER_NUMBER 3, 0, 0, 31554 +#define PRODUCT_VER_STRING "3.0.0.31557" +#define FILE_VER_STRING "WI-T3.0.0.31557" +#define LICENSE_VER_STRING "WI-T3.0.0.31557" +#define FILE_VER_NUMBER 3, 0, 0, 31557 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31554" +#define FB_BUILD_NO "31557" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-18 16:46:24 UTC (rev 60524) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-19 00:14:49 UTC (rev 60525) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31554 +BuildNum=31557 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ego...@us...> - 2015-01-21 11:11:14
|
Revision: 60531 http://sourceforge.net/p/firebird/code/60531 Author: egorpugin Date: 2015-01-21 11:11:04 +0000 (Wed, 21 Jan 2015) Log Message: ----------- [build] [cmake] Prepare sources for CMake building. Add clang preprocessor defs, ARM architecture defs, some Android-related defs. Add 'qsort_r' function search to configure.ac. Modified Paths: -------------- firebird/trunk/configure.ac firebird/trunk/src/common/common.h firebird/trunk/src/common/isc_sync.cpp firebird/trunk/src/jrd/license.h firebird/trunk/src/jrd/recsrc/HashJoin.cpp firebird/trunk/src/remote/inet.cpp firebird/trunk/src/remote/protocol.h firebird/trunk/src/remote/remote_def.h firebird/trunk/src/utilities/ntrace/PluginLogWriter.cpp Modified: firebird/trunk/configure.ac =================================================================== --- firebird/trunk/configure.ac 2015-01-21 09:18:18 UTC (rev 60530) +++ firebird/trunk/configure.ac 2015-01-21 11:11:04 UTC (rev 60531) @@ -854,6 +854,7 @@ AC_CHECK_FUNCS(semtimedop) AC_CHECK_FUNCS(fegetenv) AC_CHECK_FUNCS(strerror_r) +AC_CHECK_FUNCS(qsort_r) case $host in *-darwin*) ac_cv_func_fdatasync=no Modified: firebird/trunk/src/common/common.h =================================================================== --- firebird/trunk/src/common/common.h 2015-01-21 09:18:18 UTC (rev 60530) +++ firebird/trunk/src/common/common.h 2015-01-21 11:11:04 UTC (rev 60531) @@ -220,6 +220,9 @@ #define UNIX #define FB_OS OsDarwin +#ifdef ARM +#define FB_CPU CpuArm +#endif /* ARM */ #ifdef __ppc__ #define powerpc #define FB_CPU CpuPowerPc Modified: firebird/trunk/src/common/isc_sync.cpp =================================================================== --- firebird/trunk/src/common/isc_sync.cpp 2015-01-21 09:18:18 UTC (rev 60530) +++ firebird/trunk/src/common/isc_sync.cpp 2015-01-21 11:11:04 UTC (rev 60531) @@ -112,12 +112,14 @@ #include <sys/param.h> #endif +#ifndef WIN_NT #ifndef HAVE_GETPAGESIZE static size_t getpagesize() { return PAGESIZE; } #endif +#endif //#define DEBUG_IPC #ifdef DEBUG_IPC Modified: firebird/trunk/src/jrd/license.h =================================================================== --- firebird/trunk/src/jrd/license.h 2015-01-21 09:18:18 UTC (rev 60530) +++ firebird/trunk/src/jrd/license.h 2015-01-21 11:11:04 UTC (rev 60531) @@ -125,6 +125,9 @@ #if defined(__ppc__) || defined(__ppc64__) #define FB_PLATFORM "UP" // Darwin/PowerPC #endif +#if defined(ARM) +#define FB_PLATFORM "UA" +#endif #endif // DARWIN #ifndef FB_VERSION Modified: firebird/trunk/src/jrd/recsrc/HashJoin.cpp =================================================================== --- firebird/trunk/src/jrd/recsrc/HashJoin.cpp 2015-01-21 09:18:18 UTC (rev 60530) +++ firebird/trunk/src/jrd/recsrc/HashJoin.cpp 2015-01-21 11:11:04 UTC (rev 60531) @@ -65,7 +65,11 @@ void qsort_ctx(void* base, size_t count, size_t width, qsort_compare_callback compare, void* arg) { #if defined(LINUX) +#ifdef HAVE_QSORT_R qsort_r(base, count, width, compare, arg); +#else +#undef USE_QSORT_CTX +#endif #elif defined(WIN_NT) struct qsort_ctx_data tmp = {arg, compare}; qsort_s(base, count, width, &qsort_ctx_arg_swap, &tmp); Modified: firebird/trunk/src/remote/inet.cpp =================================================================== --- firebird/trunk/src/remote/inet.cpp 2015-01-21 09:18:18 UTC (rev 60530) +++ firebird/trunk/src/remote/inet.cpp 2015-01-21 11:11:04 UTC (rev 60531) @@ -799,7 +799,7 @@ gai_hints.ai_family = ((packet || host.hasData() || !ipv6) ? AF_UNSPEC : AF_INET6); gai_hints.ai_socktype = SOCK_STREAM; -#ifndef WIN_NT +#if !defined(WIN_NT) && !defined(__clang__) gai_hints.ai_protocol = SOL_TCP; #else gai_hints.ai_protocol = IPPROTO_TCP; Modified: firebird/trunk/src/remote/protocol.h =================================================================== --- firebird/trunk/src/remote/protocol.h 2015-01-21 09:18:18 UTC (rev 60530) +++ firebird/trunk/src/remote/protocol.h 2015-01-21 11:11:04 UTC (rev 60531) @@ -95,7 +95,8 @@ arch_winnt_64 = 40, arch_darwin_x64 = 41, arch_darwin_ppc64 = 42, - arch_max = 43 // Keep this at the end + arch_arm = 43, + arch_max = 44 // Keep this at the end }; // Protocol Types Modified: firebird/trunk/src/remote/remote_def.h =================================================================== --- firebird/trunk/src/remote/remote_def.h 2015-01-21 09:18:18 UTC (rev 60530) +++ firebird/trunk/src/remote/remote_def.h 2015-01-21 11:11:04 UTC (rev 60531) @@ -70,6 +70,8 @@ const P_ARCH ARCHITECTURE = arch_darwin_x64; #elif defined(DARWINPPC64) const P_ARCH ARCHITECTURE = arch_darwin_ppc64; +#elif defined(ARM) +const P_ARCH ARCHITECTURE = arch_arm; #endif Modified: firebird/trunk/src/utilities/ntrace/PluginLogWriter.cpp =================================================================== --- firebird/trunk/src/utilities/ntrace/PluginLogWriter.cpp 2015-01-21 09:18:18 UTC (rev 60530) +++ firebird/trunk/src/utilities/ntrace/PluginLogWriter.cpp 2015-01-21 11:11:04 UTC (rev 60531) @@ -28,6 +28,13 @@ #include "PluginLogWriter.h" #include "../common/classes/init.h" +#ifndef S_IREAD +#define S_IREAD S_IRUSR +#endif +#ifndef S_IWRITE +#define S_IWRITE S_IWUSR +#endif + using namespace Firebird; // seems to only be Solaris 9 that doesn't have strerror_r, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ego...@us...> - 2015-01-21 11:21:53
|
Revision: 60532 http://sourceforge.net/p/firebird/code/60532 Author: egorpugin Date: 2015-01-21 11:21:51 +0000 (Wed, 21 Jan 2015) Log Message: ----------- [build] [cmake] Initial CMake build system commit. Added Paths: ----------- firebird/trunk/CMakeLists.txt firebird/trunk/builds/cmake/ firebird/trunk/builds/cmake/BuildFunctions.cmake firebird/trunk/builds/cmake/Configure.cmake firebird/trunk/builds/cmake/SourceGroups.cmake firebird/trunk/examples/CMakeLists.txt firebird/trunk/src/CMakeLists.txt firebird/trunk/src/gpre/CMakeLists.txt firebird/trunk/src/include/gen/autoconfig.h.in firebird/trunk/src/remote/CMakeLists.txt firebird/trunk/src/utilities/CMakeLists.txt Added: firebird/trunk/CMakeLists.txt =================================================================== --- firebird/trunk/CMakeLists.txt (rev 0) +++ firebird/trunk/CMakeLists.txt 2015-01-21 11:21:51 UTC (rev 60532) @@ -0,0 +1,262 @@ +# +# firebird (trunk) +# + +############################################################################### +# +# cmake settings +# +############################################################################### + +cmake_minimum_required(VERSION 2.8.8) + +# In-source builds are not possible and so disabled. +if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) + message(FATAL_ERROR + "CMake generation for firebird is not possible within the source directory!" + "\n Remove the CMakeCache.txt file and try again from another folder, e.g.:" + "\n " + "\n rm CMakeCache.txt" + "\n mkdir build" + "\n cd build" + "\n cmake .." + ) +endif() + +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/builds/cmake) + +if (NATIVE_BUILD_DIR) + get_filename_component(NATIVE_BUILD_DIR ${NATIVE_BUILD_DIR} ABSOLUTE) +else() + set(NATIVE_BUILD_DIR ${CMAKE_BINARY_DIR}) +endif() + +# Use solution folders. +set_property(GLOBAL PROPERTY USE_FOLDERS ON) +set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake Targets") + +############################################################################### +# +# project settings +# +############################################################################### + +project("firebird" C CXX) + +####################################### + +set(output_dir ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) + +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${output_dir}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${output_dir}) + +if (MSVC OR XCODE) + set(output_dir ${output_dir}/$<CONFIG>) +endif() + +if (XCODE) + foreach(conf ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER ${conf} conf2) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${conf2} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${conf}/bin) + endforeach() +elseif (UNIX) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${output_dir}/bin) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${output_dir}/bin) +endif() + +############################################################################### +# +# configure +# +############################################################################### + +include(Configure) + +if (FREEBSD) + # temporary + set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}) +endif() + +set(FB_PREFIX ${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}) +set(FB_IPC_NAME "FirebirdIPI") +set(FB_LOGFILENAME "firebird.log") +set(FB_PIPE_NAME "interbas") +set(FB_SERVICE_NAME "gds_db") +set(FB_SERVICE_PORT 3050) + +if (WIN32) + set(FB_PREFIX "c:\\\\Program Files\\\\Firebird\\\\") + set(FB_IPC_NAME "FIREBIRD") +endif() + +set(AUTOCONFIG_SRC ${CMAKE_SOURCE_DIR}/src/include/gen/autoconfig.h.in) +set(AUTOCONFIG ${CMAKE_BINARY_DIR}/src/include/gen/autoconfig.h) +configure_file(${AUTOCONFIG_SRC} ${AUTOCONFIG} @ONLY) + +############################################################################### +# +# compiler & linker +# +############################################################################### + +add_definitions(-DDEV_BUILD) + +if (WIN32) + set(OS_DIR win32) + set(VERSION_RC ${CMAKE_SOURCE_DIR}/src/jrd/version.rc) + + if (MSVC) + set(disable_msvc_warnings "/wd4996") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP ${disable_msvc_warnings}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP ${disable_msvc_warnings}") + endif(MSVC) + + set(LIB_Ws2_32 Ws2_32) + set(LIB_comctl32 comctl32) + set(LIB_mpr mpr) + set(LIB_version version) +endif(WIN32) + +if (MINGW) + add_definitions(-D_WIN32_WINNT=0x0600) +endif() + +if (UNIX) + set(OS_DIR posix) + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") + + if (NOT CMAKE_CROSSCOMPILING) + set(LIB_readline readline) + endif() + if (NOT FREEBSD) + set(LIB_dl dl) + endif() +endif() + +if (CLANG OR IOS) + set(LIB_iconv iconv) +endif() + +if (FREEBSD) + include_directories(/usr/local/include) + link_directories(/usr/local/lib) +endif() + +if (APPLE) + set(OS_DIR darwin) + + include_directories(/opt/local/include) + if (NOT CMAKE_CROSSCOMPILING) + link_directories(/opt/local/lib) + endif() + + find_library(LIB_CoreFoundation CoreFoundation) +elseif (UNIX) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread") +endif() + +############################################################################### +# +# pre build +# +############################################################################### + +if (WIN32) + # icu + set(ICU_EXTRACT ${CMAKE_CURRENT_SOURCE_DIR}/extern/icu/icu.exe -y) + #message("Extracting pre-built ICU") + execute_process(COMMAND ${ICU_EXTRACT}) + + # zlib + set(ZLIB_EXTRACT ${CMAKE_CURRENT_SOURCE_DIR}/extern/zlib/zlib.exe -y) + #message("Extracting pre-built zlib") + execute_process(COMMAND ${ZLIB_EXTRACT}) +endif() + +if (UNIX) + file(GLOB vers_src "${CMAKE_SOURCE_DIR}/builds/posix/*.vers") + foreach(f ${vers_src}) + get_filename_component(name ${f} NAME) + set(name ${CMAKE_BINARY_DIR}/builds/posix/${name}) + + if (AIX) + file(WRITE ${name} "#!\n") + elseif (LINUX) + file(WRITE ${name} "{\nglobal:\n") + endif() + + file(STRINGS ${f} strings) + foreach(s ${strings}) + string(REGEX REPLACE "#.*$" "" s "${s}") + string(STRIP "${s}" s) + if (NOT "${s}" STREQUAL "") + if (AIX) + file(APPEND ${name} "\t${s}\n") + elseif (APPLE) + file(APPEND ${name} "\t_${s}\n") + elseif (HPUX) + file(APPEND ${name} "+e ${s}\n") + else() + file(APPEND ${name} "\t${s};\n") + endif() + endif() + endforeach() + + if (LINUX) + file(APPEND ${name} "local:\n\t*;\n};\n") + endif() + endforeach() +endif() + + +############################################################################### +# +# build +# +############################################################################### + +include(BuildFunctions) + +crosscompile_prebuild_steps() + +include_directories("extern/libtommath") +include_directories("extern/icu/include") +include_directories("extern/zlib") + +include_directories("src/include") +include_directories("src/include/gen") +include_directories("${CMAKE_CURRENT_BINARY_DIR}/src/include") +include_directories("${CMAKE_CURRENT_BINARY_DIR}/src/include/gen") + +######################################## +# EXECUTABLE btyacc +######################################## + +file(GLOB btyacc_src "extern/btyacc/*.c" "extern/btyacc/*.h") + +if (NOT CMAKE_CROSSCOMPILING) + +add_executable (btyacc ${btyacc_src}) +project_group (btyacc Extern) + +endif() # if (NOT CMAKE_CROSSCOMPILING) + + +######################################## +# LIBRARY btyacc +######################################## + +file(GLOB libtommath_src "extern/libtommath/*.c" "extern/libtommath/*.h") + +add_library (libtommath ${libtommath_src}) +project_group (libtommath Extern) + +######################################## + +add_subdirectory("examples") +add_subdirectory("src") + +############################################################################### + Property changes on: firebird/trunk/CMakeLists.txt ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: firebird/trunk/builds/cmake/BuildFunctions.cmake =================================================================== --- firebird/trunk/builds/cmake/BuildFunctions.cmake (rev 0) +++ firebird/trunk/builds/cmake/BuildFunctions.cmake 2015-01-21 11:21:51 UTC (rev 60532) @@ -0,0 +1,255 @@ +############################################################################### +# +# macros and functions +# +############################################################################### + +####################################### +# FUNCTION set_output_directory +####################################### +function(set_output_directory target dir) + set(out ${output_dir}) + if (MSVC OR XCODE) # multiconfiguration builds + set(out ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + endif() + if ("${ARGV2}" STREQUAL "FORCE") + if (MSVC OR XCODE) + set(out ${dir}) + set(dir) + else() + set(out .) + endif() + endif() + if (MSVC OR XCODE) + foreach(conf ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER ${conf} conf2) + set_target_properties(${target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${conf2} ${out}/${conf}/${dir}) + set_target_properties(${target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${conf2} ${out}/${conf}/${dir}) + endforeach() + else() # single configuration + execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${out}/${dir}) + set_target_properties(${target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${out}/${dir}) + set_target_properties(${target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${out}/${dir}) + endif() +endfunction(set_output_directory) + +####################################### +# FUNCTION set_output_directory_unix +####################################### +function(set_output_directory_unix target dir) + if (UNIX) + set_output_directory(${target} ${dir} ${ARGN}) + endif() +endfunction(set_output_directory_unix) + +####################################### +# FUNCTION set_exported_symbols +####################################### +if (WIN32) + function(set_exported_symbols target filename) + set(def_file ${filename}.def) + if ("${filename}" STREQUAL "empty") + set(def_file) + elseif("${filename}" STREQUAL "fbplugin") + set(def_file "plugin.def") + endif() + if (NOT "${def_file}" STREQUAL "") + if (MSVC) + set_target_properties(${target} PROPERTIES LINK_FLAGS "/DEF:\"${CMAKE_SOURCE_DIR}/builds/win32/defs/${def_file}\"") + endif() + if (MINGW) + #set_target_properties(${target} PROPERTIES LINK_FLAGS "-Wl,${CMAKE_SOURCE_DIR}/builds/win32/defs/${def_file}") + endif() + endif() + endfunction(set_exported_symbols) +endif() + +if (UNIX) + function(set_exported_symbols target filename) + set(def_file ${filename}.vers) + if ("${filename}" STREQUAL "ib_udf") + set(def_file) + endif() + if (NOT "${def_file}" STREQUAL "") + set(wl_option "--version-script") + if (APPLE) + set(wl_option "-exported_symbols_list") + endif() + set_target_properties(${target} PROPERTIES LINK_FLAGS -Wl,${wl_option},${CMAKE_BINARY_DIR}/builds/posix/${def_file}) + endif() + endfunction(set_exported_symbols) +endif(UNIX) + + +####################################### +# FUNCTION epp_process +####################################### +function(epp_process type files) + set(epp_suffix ".${type}.cpp") + + foreach(F ${${files}}) + set(in ${CMAKE_CURRENT_SOURCE_DIR}/${F}) + set(out ${CMAKE_CURRENT_BINARY_DIR}/${F}${epp_suffix}) + + get_filename_component(dir ${out} PATH) + + if ("${type}" STREQUAL "boot") + add_custom_command( + OUTPUT ${out} + DEPENDS gpre_boot ${in} + COMMENT "Calling GPRE boot for ${F}" + COMMAND ${CMAKE_COMMAND} -E make_directory ${dir} + COMMAND ${ARGN} ${in} ${out} + ) + elseif ("${type}" STREQUAL "master") + get_filename_component(file ${out} NAME) + set(dir ${dir}/${file}.d) + add_custom_command( + OUTPUT ${out} + DEPENDS ${in} databases + COMMENT "Calling GPRE master for ${F}" + COMMAND ${CMAKE_COMMAND} -E make_directory ${dir} + COMMAND ${CMAKE_COMMAND} -E copy_if_different metadata.fdb ${dir}/yachts.lnk + COMMAND ${CMAKE_COMMAND} -E copy_if_different security.fdb ${dir}/security.fdb + COMMAND ${CMAKE_COMMAND} -E copy_if_different msg.fdb ${dir}/msg.fdb + COMMAND ${CMAKE_COMMAND} -E copy_if_different help.fdb ${dir}/help.fdb + COMMAND ${ARGN} -b ${dir}/ ${in} ${out} + ) + endif() + endforeach() +endfunction(epp_process) + +####################################### +# FUNCTION add_epp_suffix +####################################### +function(add_epp_suffix files suffix) + foreach(F ${${files}}) + list(APPEND ${files}_${suffix} ${CMAKE_CURRENT_SOURCE_DIR}/${F}) + list(APPEND ${files}_${suffix} ${GENERATED_DIR}/${F}.${suffix}.cpp) + endforeach() + set_source_files_properties(${${files}_${suffix}} PROPERTIES GENERATED TRUE) + set(${files}_${suffix} ${${files}_${suffix}} PARENT_SCOPE) +endfunction(add_epp_suffix) + +####################################### +# FUNCTION set_win32 +####################################### +function(set_win32 var) + if (WIN32) + set(${var} ${ARGN} PARENT_SCOPE) + endif() +endfunction(set_win32) + +####################################### +# FUNCTION set_unix +####################################### +function(set_unix var) + if (UNIX) + set(${var} ${ARGN} PARENT_SCOPE) + endif() +endfunction(set_unix) + +####################################### +# FUNCTION set_apple +####################################### +function(set_apple var) + if (APPLE) + set(${var} ${ARGN} PARENT_SCOPE) + endif() +endfunction(set_apple) + +####################################### +# FUNCTION add_src_win32 +####################################### +function(add_src_win32 var) + if (WIN32) + set(${var} ${${var}} ${ARGN} PARENT_SCOPE) + endif() +endfunction(add_src_win32) + +####################################### +# FUNCTION add_src_unix +####################################### +function(add_src_unix var) + if (UNIX) + set(${var} ${${var}} ${ARGN} PARENT_SCOPE) + endif() +endfunction(add_src_unix) + +####################################### +# FUNCTION add_src_unix_not_apple +####################################### +function(add_src_unix_not_apple var) + if (UNIX AND NOT APPLE) + set(${var} ${${var}} ${ARGN} PARENT_SCOPE) + endif() +endfunction(add_src_unix_not_apple) + +####################################### +# FUNCTION add_src_apple +####################################### +function(add_src_apple var) + if (APPLE) + set(${var} ${${var}} ${ARGN} PARENT_SCOPE) + endif() +endfunction(add_src_apple) + +####################################### +# FUNCTION copy_and_rename_lib +####################################### +function(copy_and_rename_lib target name) + set(name2 $<TARGET_FILE_DIR:${target}>/${CMAKE_SHARED_LIBRARY_PREFIX}${name}${CMAKE_SHARED_LIBRARY_SUFFIX}) + add_custom_command( + TARGET ${target} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:${target}> ${name2} + ) +endfunction(copy_and_rename_lib) + +####################################### +# FUNCTION project_group +####################################### +function(project_group target name) + set_target_properties(${target} PROPERTIES FOLDER ${name}) +endfunction(project_group) + +####################################### +# FUNCTION set_generated_directory +####################################### +function(set_generated_directory) + if (NOT CMAKE_CROSSCOMPILING) + set(GENERATED_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE) + else() + string(REPLACE "${CMAKE_BINARY_DIR}" "${NATIVE_BUILD_DIR}" GENERATED_DIR ${CMAKE_CURRENT_BINARY_DIR}) + set(GENERATED_DIR ${GENERATED_DIR} PARENT_SCOPE) + endif() +endfunction(set_generated_directory) + +####################################### +# FUNCTION add_dependencies_cc (cross compile) +####################################### +function(add_dependencies_cc target) + if (NOT CMAKE_CROSSCOMPILING) + add_dependencies(${target} ${ARGN}) + endif() +endfunction(add_dependencies_cc) + +####################################### +# FUNCTION add_dependencies_unix_cc (cross compile) +####################################### +function(add_dependencies_unix_cc target) + if (UNIX) + add_dependencies_cc(${target} ${ARGN}) + endif() +endfunction(add_dependencies_unix_cc) + +####################################### +# FUNCTION crosscompile_prebuild_steps +####################################### +function(crosscompile_prebuild_steps) + if (CMAKE_CROSSCOMPILING) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${NATIVE_BUILD_DIR}/src/include/gen/parse.h ${CMAKE_BINARY_DIR}/src/include/gen/parse.h) + endif() +endfunction(crosscompile_prebuild_steps) + +############################################################################### Property changes on: firebird/trunk/builds/cmake/BuildFunctions.cmake ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: firebird/trunk/builds/cmake/Configure.cmake =================================================================== --- firebird/trunk/builds/cmake/Configure.cmake (rev 0) +++ firebird/trunk/builds/cmake/Configure.cmake 2015-01-21 11:21:51 UTC (rev 60532) @@ -0,0 +1,330 @@ +############################################################################### +# +# configure +# +############################################################################### + +####################################### +# FUNCTION check_includes +####################################### +function(check_includes files) + foreach(F ${${files}}) + set(name ${F}) + string(REPLACE "." "_" name ${name}) + string(REPLACE "/" "_" name ${name}) + string(TOUPPER ${name} name) + check_include_files(${F} HAVE_${name}) + #message("/* Define to 1 if you have the <${F}> header file. */") + #message("#cmakedefine HAVE_${name} 1") + #message("") + endforeach() +endfunction(check_includes) + +####################################### +# FUNCTION check_functions +####################################### +function(check_functions functions) + foreach(F ${${functions}}) + set(name ${F}) + string(TOUPPER ${name} name) + check_function_exists(${F} HAVE_${name}) + #message("/* Define to 1 if you have the `${F}' function. */") + #message("#cmakedefine HAVE_${name} 1") + #message("") + endforeach() +endfunction(check_functions) + +####################################### +# FUNCTION check_type_alignment +####################################### +function(check_type_alignment type var) + if (NOT DEFINED ${var}) + check_c_source_runs("main(){struct s{char a;${type} b;};exit((int)&((struct s*)0)->b);}" ${var}) + #message("-- Performing Test ${var} - It's still OK.") + message("-- Performing Test ${var} - Success") + set(${var} ${${var}_EXITCODE} CACHE STRING "${type} alignment" FORCE) + endif() +endfunction(check_type_alignment) + +####################################### + +include(CheckCSourceCompiles) +include(CheckCSourceRuns) +include(CheckCXXSourceCompiles) +include(CheckCXXSourceRuns) +include(CheckFunctionExists) +include(CheckIncludeFiles) +include(CheckLibraryExists) +include(CheckPrototypeDefinition) +include(CheckStructHasMember) +include(CheckSymbolExists) +include(CheckTypeSize) +include(TestBigEndian) + +if (ANDROID) + set(LINUX 1) +endif() + +if (IOS) + set(CMAKE_SYSTEM_PROCESSOR “arm”) # armv7 ? + add_definitions(-D__arm__) +endif() + +if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + set(CLANG 1) +endif() + +set(ENABLE_BINRELOC 1) + +string(TOUPPER ${CMAKE_SYSTEM_NAME} CMAKE_SYSTEM_NAME_UPPER) +set(${CMAKE_SYSTEM_NAME_UPPER} 1) + +string(TOUPPER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR_UPPER) +string(FIND ${CMAKE_SYSTEM_PROCESSOR} "arm" ARM) +if (NOT ${ARM} EQUAL -1) + set(ARM 1) +else() + set(ARM) +endif() +if (${CMAKE_SYSTEM_PROCESSOR_UPPER} STREQUAL "X86_64" OR + ${CMAKE_SYSTEM_PROCESSOR_UPPER} STREQUAL "AMD64") + set(AMD64 1) + set(I386 1) +endif() +set(${CMAKE_SYSTEM_PROCESSOR_UPPER} 1) + +set(SHRLIB_EXT ${CMAKE_SHARED_LIBRARY_SUFFIX}) +string(REPLACE "." "" SHRLIB_EXT ${SHRLIB_EXT}) + +set(CASE_SENSITIVITY "true") +set(SUPPORT_RAW_DEVICES 1) + +set(include_files_list + aio.h + assert.h + atomic.h + atomic_ops.h + crypt.h + ctype.h + dirent.h + dlfcn.h + editline.h + errno.h + fcntl.h + float.h + grp.h + iconv.h + io.h + inttypes.h + langinfo.h + libio.h + linux/falloc.h + limits.h + locale.h + math.h + memory.h + mntent.h + mnttab.h + ndir.h + netconfig.h + netinet/in.h + poll.h + pthread.h + pwd.h + rpc/rpc.h + rpc/xdr.h + semaphore.h + setjmp.h + signal.h + socket.h + stdarg.h + stdint.h + stdlib.h + string.h + strings.h + sys/dir.h + sys/file.h + sys/ioctl.h + sys/ipc.h + sys/mntent.h + sys/mnttab.h + sys/mount.h + sys/ndir.h + sys/param.h + sys/resource.h + sys/sem.h + sys/select.h + sys/siginfo.h + sys/signal.h + sys/socket.h + sys/sockio.h + sys/stat.h + sys/syscall.h + sys/time.h + sys/timeb.h + sys/types.h + sys/uio.h + sys/wait.h + termio.h + termios.h + unistd.h + varargs.h + vfork.h + winsock2.h + zlib.h +) +check_includes(include_files_list) + +#if test "$EDITLINE_FLG" = "Y"; then +# AC_HEADER_DIRENT +# AC_DEFINE(HAVE_EDITLINE_H, 1, [Define this if editline is in use]) +#fi + +set(functions_list + AO_compare_and_swap_full + clock_gettime + dirname + fallocate + fchmod + fsync + flock + fork + getpagesize + getcwd getwd + gettimeofday + gmtime_r + initgroups + localtime_r + mkstemp + mmap + nanosleep + poll + posix_fadvise + pread pwrite + pthread_cancel + pthread_keycreate pthread_key_create + pthread_mutexattr_setprotocol + pthread_mutexattr_setrobust_np + pthread_mutex_consistent_np + pthread_rwlockattr_setkind_np + qsort_r + setitimer + semtimedop + setpgid + setpgrp + setmntent getmntent + setrlimit getrlimit + sigaction + sigset + snprintf vsnprintf + strcasecmp stricmp + strncasecmp strnicmp + strdup + strerror_r + swab _swab + tcgetattr + time times + vfork +) +check_functions(functions_list) + +check_cxx_source_compiles("#include <unistd.h>\nmain(){fdatasync(0);}" HAVE_FDATASYNC) + +check_library_exists(dl dladdr "${CMAKE_LIBRARY_PREFIX}" HAVE_DLADDR) +check_library_exists(m fegetenv "${CMAKE_LIBRARY_PREFIX}" HAVE_FEGETENV) +check_library_exists(m llrint "${CMAKE_LIBRARY_PREFIX}" HAVE_LLRINT) +check_library_exists(pthread sem_init "${CMAKE_LIBRARY_PREFIX}" HAVE_SEM_INIT) +check_library_exists(pthread sem_timedwait "${CMAKE_LIBRARY_PREFIX}" HAVE_SEM_TIMEDWAIT) + +check_type_size(caddr_t HAVE_CADDR_T) +check_c_source_compiles("#include <sys/sem.h>\nmain(){union semun s;return 0;}" HAVE_SEMUN) +set(CMAKE_EXTRA_INCLUDE_FILES sys/socket.h sys/types.h) +check_type_size(socklen_t HAVE_SOCKLEN_T) +set(CMAKE_EXTRA_INCLUDE_FILES) + +check_type_size(long SIZEOF_LONG) +check_type_size(size_t SIZEOF_SIZE_T) +check_type_size("void *" SIZEOF_VOID_P) + +check_type_size(gid_t HAVE_GID_T) +check_type_size(off_t HAVE_OFF_T) +check_type_size(pid_t HAVE_PID_T) +check_type_size(size_t HAVE_SIZE_T) +check_type_size(uid_t HAVE_UID_T) + +if (${HAVE_OFF_T} AND ${HAVE_OFF_T} EQUAL 8) + set(_FILE_OFFSET_BITS 64) +endif() + +test_big_endian(WORDS_BIGENDIAN) +check_symbol_exists(INFINITY math.h HAVE_INFINITY) +check_symbol_exists(va_copy stdarg.h HAVE_VA_COPY) + +set(CMAKE_EXTRA_INCLUDE_FILES Windows.h) +check_type_size("char[MAX_PATH]" MAXPATHLEN) +set(CMAKE_EXTRA_INCLUDE_FILES) + +set(TIMEZONE_TYPE "struct timezone") +if (APPLE OR MINGW) + set(TIMEZONE_TYPE "void") +endif() +check_prototype_definition( + gettimeofday + "int gettimeofday(struct timeval *tv, ${TIMEZONE_TYPE} *tz)" + 0 + "sys/time.h" + GETTIMEOFDAY_RETURNS_TIMEZONE +) + +check_prototype_definition( + getmntent + "int getmntent(FILE *file, struct mnttab *mptr)" + 0 + mntent.h + GETMNTENT_TAKES_TWO_ARGUMENTS +) + +check_struct_has_member("struct dirent" d_type dirent.h HAVE_STRUCT_DIRENT_D_TYPE) + +check_c_source_compiles("#include <unistd.h>\nmain(){getpgrp();}" GETPGRP_VOID) +check_c_source_compiles("#include <unistd.h>\nmain(){setpgrp();}" SETPGRP_VOID) + +check_c_source_compiles("__thread int a = 42;main(){a = a + 1;}" HAVE___THREAD) +check_c_source_compiles("#include <sys/time.h>\n#include <time.h>\nmain(){}" TIME_WITH_SYS_TIME) + +set(CMAKE_REQUIRED_LIBRARIES pthread) +check_c_source_compiles("#include <semaphore.h>\nmain(){sem_t s;sem_init(&s,0,0);}" WORKING_SEM_INIT) +set(CMAKE_REQUIRED_LIBRARIES) + +if (EXISTS "/proc/self/exe") + set(HAVE__PROC_SELF_EXE 1) +endif() + +####################################### + +if (NOT CMAKE_CROSSCOMPILING) + check_type_alignment(long FB_ALIGNMENT) + check_type_alignment(double FB_DOUBLE_ALIGN) +else() # CMAKE_CROSSCOMPILING + set(FB_ALIGNMENT 8) + set(FB_DOUBLE_ALIGN 8) + if (ANDROID) + set(HAVE__PROC_SELF_EXE 1) + endif() +endif() + +####################################### + +if (WIN32) + set(ENABLE_BINRELOC 0) + set(SUPPORT_RAW_DEVICES 0) + set(WIN_NT 1) + set(CASE_SENSITIVITY "false") +endif(WIN32) + +if (APPLE) + set(ENABLE_BINRELOC 0) + set(CASE_SENSITIVITY "false") +endif() + +############################################################################### Property changes on: firebird/trunk/builds/cmake/Configure.cmake ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: firebird/trunk/builds/cmake/SourceGroups.cmake =================================================================== --- firebird/trunk/builds/cmake/SourceGroups.cmake (rev 0) +++ firebird/trunk/builds/cmake/SourceGroups.cmake 2015-01-21 11:21:51 UTC (rev 60532) @@ -0,0 +1,54 @@ +#include(SourceGroups) + +set(SSRC ${CMAKE_SOURCE_DIR}/src) +set(BSRC ${CMAKE_BINARY_DIR}/src) + +set(EPP_TXT "GPRE files") +set(GEN_TXT "GPRE cpp") + +set(_CPP ".*\\.cpp") +set(CPP "${_CPP}$") +set(_EPP ".*\\.(e|epp)") +set(EPP "${_EPP}$") +set(GEN "${_EPP}\\.(boot|master)\\.cpp$") + +source_group("${EPP_TXT}" "${EPP}") +source_group("${GEN_TXT}" "${GEN}") +source_group("Resource files" ".*\\.(rc|ico)") + +source_group("ALICE files" "${SSRC}/alice/${CPP}") +source_group("ALICE files\\${EPP_TXT}" "${SSRC}/alice/${EPP}") +source_group("ALICE files\\${GEN_TXT}" "${BSRC}/alice/${GEN}") +#source_group("AUTH files" "${SSRC}/auth/.*\\.(cpp|h)") +source_group("AUTH files" "${SSRC}/auth/${CPP}") +source_group("BURP files" "${SSRC}/burp/${CPP}") +source_group("BURP files\\${EPP_TXT}" "${SSRC}/burp/${EPP}") +source_group("BURP files\\${GEN_TXT}" "${BSRC}/burp/${GEN}") +source_group("common" "${SSRC}/common/${CPP}") +source_group("classes" "${SSRC}/common/classes/${CPP}") +source_group("config" "${SSRC}/common/config/${CPP}") +source_group("DSQL" "(${SSRC}|${BSRC})/dsql/.*\\.(cpp|y|ske)") +source_group("DSQL\\${EPP_TXT}" "${SSRC}/dsql/${EPP}") +source_group("DSQL\\${GEN_TXT}" "${BSRC}/dsql/${GEN}") +source_group("EXTLIB files" "${SSRC}/extlib/${CPP}") +source_group("Languages" "${SSRC}/gpre/languages/${CPP}") +#source_group("FBRMCLIB files" FILES ${SSRC}/gpre/languages/fbrmclib.cpp) gpre_boot, fbrmclib +source_group("GPRE files\\${EPP_TXT}" "${SSRC}/gpre/std/${EPP}") +source_group("GPRE files\\${GEN_TXT}" "${BSRC}/gpre/std/${GEN}") +source_group("INTL files" "${SSRC}/intl/${CPP}") +source_group("GUARD files" "${SSRC}/iscguard/${CPP}") +source_group("ISQL files" "${SSRC}/isql/${CPP}") +source_group("ISQL files\\${EPP_TXT}" "${SSRC}/isql/${EPP}") +source_group("ISQL files\\${GEN_TXT}" "${BSRC}/isql/${GEN}") +source_group("JRD files" "${SSRC}/jrd/${CPP}") +source_group("JRD files\\Data Access" "${SSRC}/jrd/recsrc/${CPP}") +source_group("JRD files\\EXTDS" "${SSRC}/jrd/extds/${CPP}") +source_group("JRD files\\${EPP_TXT}" "${SSRC}/jrd/${EPP}") +source_group("JRD files\\${GEN_TXT}" "${BSRC}/jrd/${GEN}") +source_group("JRD files\\Trace" "${SSRC}/jrd/trace/${CPP}") +source_group("Lock" ... [truncated message content] |
From: <fir...@us...> - 2015-01-24 00:13:32
|
Revision: 60539 http://sourceforge.net/p/firebird/code/60539 Author: firebirds Date: 2015-01-24 00:13:28 +0000 (Sat, 24 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-22 15:06:54 UTC (rev 60538) +++ firebird/trunk/ChangeLog 2015-01-24 00:13:28 UTC (rev 60539) @@ -1,3 +1,76 @@ + 2015-01-22 12:50 alexpeshkoff + M src/common/isc_file.cpp +Fixed static area corruption in ISC_expand_nfs, should fix CORE-4644: Get both "335545060 : Missing security context " and "335544344 : I/O error during "open" operation" for existing database under heavy concurrent DML + + 2015-01-22 10:35 hvlad + M src/common/isc_s_proto.h + M src/jrd/Mapping.cpp + M src/jrd/Monitoring.cpp + M src/jrd/Monitoring.h + M src/jrd/event.cpp + M src/jrd/event.h + M src/jrd/trace/TraceConfigStorage.cpp + M src/jrd/trace/TraceConfigStorage.h + M src/jrd/trace/TraceLog.cpp + M src/jrd/trace/TraceLog.h + M src/lock/lock.cpp + M src/lock/lock_proto.h + M src/lock/print.cpp +Make shared memory header same size independent on OS. +Introduce shared memory header version. + + 2015-01-22 10:32 alexpeshkoff + M src/common/isc_file.cpp +Fixed CORE-4624: Firebird won't start under Docker + + 2015-01-22 10:23 alexpeshkoff + M src/include/firebird/Interface.h + M src/include/gen/msgs.h + M src/msgs/messages2.sql +Enhance diags + + 2015-01-21 11:21 egorpugin + A CMakeLists.txt + A builds/cmake + A builds/cmake/BuildFunctions.cmake + A builds/cmake/Configure.cmake + A builds/cmake/SourceGroups.cmake + A examples/CMakeLists.txt + A src/CMakeLists.txt + A src/gpre/CMakeLists.txt + A src/include/gen/autoconfig.h.in + A src/remote/CMakeLists.txt + A src/utilities/CMakeLists.txt +[build] [cmake] Initial CMake build system commit. + + 2015-01-21 11:11 egorpugin + M configure.ac + M src/common/common.h + M src/common/isc_sync.cpp + M src/jrd/license.h + M src/jrd/recsrc/HashJoin.cpp + M src/remote/inet.cpp + M src/remote/protocol.h + M src/remote/remote_def.h + M src/utilities/ntrace/PluginLogWriter.cpp +[build] [cmake] Prepare sources for CMake building. Add clang preprocessor defs, ARM architecture defs, some Android-related defs. Add 'qsort_r' function search to configure.ac. + + 2015-01-21 09:18 hvlad + M src/jrd/cch.cpp +Fixed my error at patch for CORE-4565. It was the reason of false "lock denied" errors. + + 2015-01-20 18:59 dimitr + M src/common/isc_f_proto.h + M src/common/isc_file.cpp + M src/remote/client/interface.cpp +1) Make xnet://db connection strings useful with forward slashes +2) Unified port numbers / protocol names syntax (thus allowing custom ports in inet://host/db connection strings) + + 2015-01-19 12:58 alexpeshkoff + M src/common/common.h + M src/include/firebird/Interface.h +Public header cleanup + 2015-01-18 14:53 asfernandes M examples/udr/UdrCppExample.cpp M src/include/firebird/Message.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-22 15:06:54 UTC (rev 60538) +++ firebird/trunk/src/jrd/build_no.h 2015-01-24 00:13:28 UTC (rev 60539) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31557 + FORMAL BUILD NUMBER:31566 */ -#define PRODUCT_VER_STRING "3.0.0.31557" -#define FILE_VER_STRING "WI-T3.0.0.31557" -#define LICENSE_VER_STRING "WI-T3.0.0.31557" -#define FILE_VER_NUMBER 3, 0, 0, 31557 +#define PRODUCT_VER_STRING "3.0.0.31566" +#define FILE_VER_STRING "WI-T3.0.0.31566" +#define LICENSE_VER_STRING "WI-T3.0.0.31566" +#define FILE_VER_NUMBER 3, 0, 0, 31566 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31557" +#define FB_BUILD_NO "31566" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-22 15:06:54 UTC (rev 60538) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-24 00:13:28 UTC (rev 60539) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31557 +BuildNum=31566 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2015-01-25 00:14:08
|
Revision: 60544 http://sourceforge.net/p/firebird/code/60544 Author: firebirds Date: 2015-01-25 00:14:05 +0000 (Sun, 25 Jan 2015) Log Message: ----------- nightly update Modified Paths: -------------- firebird/trunk/ChangeLog firebird/trunk/src/jrd/build_no.h firebird/trunk/src/misc/writeBuildNum.sh Modified: firebird/trunk/ChangeLog =================================================================== --- firebird/trunk/ChangeLog 2015-01-24 16:47:54 UTC (rev 60543) +++ firebird/trunk/ChangeLog 2015-01-25 00:14:05 UTC (rev 60544) @@ -1,3 +1,7 @@ + 2015-01-24 11:49 hvlad + M src/jrd/cch.cpp +Frontportred fix for bug CORE-2848 : "lock conversion denied" or "lock denied" error + 2015-01-22 12:50 alexpeshkoff M src/common/isc_file.cpp Fixed static area corruption in ISC_expand_nfs, should fix CORE-4644: Get both "335545060 : Missing security context " and "335544344 : I/O error during "open" operation" for existing database under heavy concurrent DML Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2015-01-24 16:47:54 UTC (rev 60543) +++ firebird/trunk/src/jrd/build_no.h 2015-01-25 00:14:05 UTC (rev 60544) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:31566 + FORMAL BUILD NUMBER:31567 */ -#define PRODUCT_VER_STRING "3.0.0.31566" -#define FILE_VER_STRING "WI-T3.0.0.31566" -#define LICENSE_VER_STRING "WI-T3.0.0.31566" -#define FILE_VER_NUMBER 3, 0, 0, 31566 +#define PRODUCT_VER_STRING "3.0.0.31567" +#define FILE_VER_STRING "WI-T3.0.0.31567" +#define LICENSE_VER_STRING "WI-T3.0.0.31567" +#define FILE_VER_NUMBER 3, 0, 0, 31567 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "31566" +#define FB_BUILD_NO "31567" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2015-01-24 16:47:54 UTC (rev 60543) +++ firebird/trunk/src/misc/writeBuildNum.sh 2015-01-25 00:14:05 UTC (rev 60544) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=31566 +BuildNum=31567 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <asf...@us...> - 2015-01-25 20:27:56
|
Revision: 60551 http://sourceforge.net/p/firebird/code/60551 Author: asfernandes Date: 2015-01-25 20:27:46 +0000 (Sun, 25 Jan 2015) Log Message: ----------- Improvements to the UDR plugin. Modified Paths: -------------- firebird/trunk/builds/posix/Makefile.in.plugins_examples firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj firebird/trunk/builds/win32/msvc9/Firebird3_Examples.sln firebird/trunk/examples/udr/UdrCppExample.cpp firebird/trunk/src/include/firebird/FirebirdInterface.idl firebird/trunk/src/include/firebird/IdlFbInterfaces.h firebird/trunk/src/include/firebird/Interface.h firebird/trunk/src/include/firebird/UdrCppEngine.h firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp Removed Paths: ------------- firebird/trunk/src/include/firebird/UdrEngine.h Modified: firebird/trunk/builds/posix/Makefile.in.plugins_examples =================================================================== --- firebird/trunk/builds/posix/Makefile.in.plugins_examples 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/builds/posix/Makefile.in.plugins_examples 2015-01-25 20:27:46 UTC (rev 60551) @@ -67,7 +67,7 @@ $(FIREBIRD_LIBRARY_LINK) else $(LIB_LINK) $(LIB_LINK_OPTIONS) $(LIB_LINK_SONAME)udrcpp_example.$(SHRLIB_EXT) \ - $(LIB_PATH_OPTS) -o $@ $^ $(THR_LIBS) $(PLUGINS)/$(LIB_PREFIX)udr_engine.$(SHRLIB_EXT) \ + $(LIB_PATH_OPTS) -o $@ $^ $(THR_LIBS) \ $(FIREBIRD_LIBRARY_LINK) endif Modified: firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj 2015-01-25 20:27:46 UTC (rev 60551) @@ -207,13 +207,7 @@ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\src\jrd</AdditionalIncludeDirectories> </ResourceCompile> </ItemGroup> - <ItemGroup> - <ProjectReference Include="udr_engine.vcxproj"> - <Project>{20debf08-ef0a-4c94-adeb-fe9bba14588b}</Project> - <ReferenceOutputAssembly>false</ReferenceOutputAssembly> - </ProjectReference> - </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> -</Project> \ No newline at end of file +</Project> Modified: firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj 2015-01-25 20:27:46 UTC (rev 60551) @@ -211,13 +211,7 @@ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\src\jrd</AdditionalIncludeDirectories> </ResourceCompile> </ItemGroup> - <ItemGroup> - <ProjectReference Include="udr_engine.vcxproj"> - <Project>{20debf08-ef0a-4c94-adeb-fe9bba14588b}</Project> - <ReferenceOutputAssembly>false</ReferenceOutputAssembly> - </ProjectReference> - </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> -</Project> \ No newline at end of file +</Project> Modified: firebird/trunk/builds/win32/msvc9/Firebird3_Examples.sln =================================================================== --- firebird/trunk/builds/win32/msvc9/Firebird3_Examples.sln 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/builds/win32/msvc9/Firebird3_Examples.sln 2015-01-25 20:27:46 UTC (rev 60551) @@ -12,7 +12,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "udrcpp_example", "udrcpp_example.vcproj", "{FF0FD8DF-1E5C-486E-B395-A620376A4633}" ProjectSection(ProjectDependencies) = postProject - {20DEBF08-EF0A-4C94-ADEB-FE9BBA14588B} = {20DEBF08-EF0A-4C94-ADEB-FE9BBA14588B} {4FE03933-98CD-4879-A135-FD9430087A6B} = {4FE03933-98CD-4879-A135-FD9430087A6B} EndProjectSection EndProject Modified: firebird/trunk/examples/udr/UdrCppExample.cpp =================================================================== --- firebird/trunk/examples/udr/UdrCppExample.cpp 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/examples/udr/UdrCppExample.cpp 2015-01-25 20:27:46 UTC (rev 60551) @@ -783,3 +783,6 @@ AutoRelease<IMessageMetadata> triggerMetadata; AutoRelease<IStatement> stmt; FB_UDR_END_TRIGGER + + +FB_UDR_IMPLEMENT_ENTRY_POINT Modified: firebird/trunk/src/include/firebird/FirebirdInterface.idl =================================================================== --- firebird/trunk/src/include/firebird/FirebirdInterface.idl 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/src/include/firebird/FirebirdInterface.idl 2015-01-25 20:27:46 UTC (rev 60551) @@ -1216,23 +1216,32 @@ // UDR Factory interfaces. They should be singletons instances created by user's modules and // registered. When UDR engine is going to load a routine, it calls newItem. -interface UdrFunctionFactory : Versioned +interface UdrFunctionFactory : Disposable { void setup(Status status, ExternalContext context, RoutineMetadata metadata, MetadataBuilder inBuilder, MetadataBuilder outBuilder); ExternalFunction newItem(Status status, ExternalContext context, RoutineMetadata metadata); } -interface UdrProcedureFactory : Versioned +interface UdrProcedureFactory : Disposable { void setup(Status status, ExternalContext context, RoutineMetadata metadata, MetadataBuilder inBuilder, MetadataBuilder outBuilder); ExternalProcedure newItem(Status status, ExternalContext context, RoutineMetadata metadata); } -interface UdrTriggerFactory : Versioned +interface UdrTriggerFactory : Disposable { void setup(Status status, ExternalContext context, RoutineMetadata metadata, MetadataBuilder fieldsBuilder); ExternalTrigger newItem(Status status, ExternalContext context, RoutineMetadata metadata); } + +interface UdrPlugin : Versioned +{ + Master getMaster(); + + void registerFunction(Status status, const string name, UdrFunctionFactory factory); + void registerProcedure(Status status, const string name, UdrProcedureFactory factory); + void registerTrigger(Status status, const string name, UdrTriggerFactory factory); +} Modified: firebird/trunk/src/include/firebird/IdlFbInterfaces.h =================================================================== --- firebird/trunk/src/include/firebird/IdlFbInterfaces.h 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/src/include/firebird/IdlFbInterfaces.h 2015-01-25 20:27:46 UTC (rev 60551) @@ -3,6 +3,8 @@ #ifndef IDL_FB_INTERFACES_H #define IDL_FB_INTERFACES_H +#include <stdint.h> + #ifndef CLOOP_CARG #define CLOOP_CARG #endif @@ -106,6 +108,7 @@ class IUdrFunctionFactory; class IUdrProcedureFactory; class IUdrTriggerFactory; + class IUdrPlugin; // Interfaces declarations @@ -4401,10 +4404,10 @@ } }; - class IUdrFunctionFactory : public IVersioned + class IUdrFunctionFactory : public IDisposable { public: - struct VTable : public IVersioned::VTable + struct VTable : public IDisposable::VTable { void (CLOOP_CARG *setup)(IUdrFunctionFactory* self, IStatus* status, IExternalContext* context, IRoutineMetadata* metadata, IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) throw(); IExternalFunction* (CLOOP_CARG *newItem)(IUdrFunctionFactory* self, IStatus* status, IExternalContext* context, IRoutineMetadata* metadata) throw(); @@ -4412,7 +4415,7 @@ protected: IUdrFunctionFactory(DoNotInherit) - : IVersioned(DoNotInherit()) + : IDisposable(DoNotInherit()) { } @@ -4421,7 +4424,7 @@ } public: - static const unsigned VERSION = 2; + static const unsigned VERSION = 3; template <typename StatusType> void setup(StatusType* status, IExternalContext* context, IRoutineMetadata* metadata, IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) { @@ -4437,10 +4440,10 @@ } }; - class IUdrProcedureFactory : public IVersioned + class IUdrProcedureFactory : public IDisposable { public: - struct VTable : public IVersioned::VTable + struct VTable : public IDisposable::VTable { void (CLOOP_CARG *setup)(IUdrProcedureFactory* self, IStatus* status, IExternalContext* context, IRoutineMetadata* metadata, IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) throw(); IExternalProcedure* (CLOOP_CARG *newItem)(IUdrProcedureFactory* self, IStatus* status, IExternalContext* context, IRoutineMetadata* metadata) throw(); @@ -4448,7 +4451,7 @@ protected: IUdrProcedureFactory(DoNotInherit) - : IVersioned(DoNotInherit()) + : IDisposable(DoNotInherit()) { } @@ -4457,7 +4460,7 @@ } public: - static const unsigned VERSION = 2; + static const unsigned VERSION = 3; template <typename StatusType> void setup(StatusType* status, IExternalContext* context, IRoutineMetadata* metadata, IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) { @@ -4473,10 +4476,10 @@ } }; - class IUdrTriggerFactory : public IVersioned + class IUdrTriggerFactory : public IDisposable { public: - struct VTable : public IVersioned::VTable + struct VTable : public IDisposable::VTable { void (CLOOP_CARG *setup)(IUdrTriggerFactory* self, IStatus* status, IExternalContext* context, IRoutineMetadata* metadata, IMetadataBuilder* fieldsBuilder) throw(); IExternalTrigger* (CLOOP_CARG *newItem)(IUdrTriggerFactory* self, IStatus* status, IExternalContext* context, IRoutineMetadata* metadata) throw(); @@ -4484,7 +4487,7 @@ protected: IUdrTriggerFactory(DoNotInherit) - : IVersioned(DoNotInherit()) + : IDisposable(DoNotInherit()) { } @@ -4493,7 +4496,7 @@ } public: - static const unsigned VERSION = 2; + static const unsigned VERSION = 3; template <typename StatusType> void setup(StatusType* status, IExternalContext* context, IRoutineMetadata* metadata, IMetadataBuilder* fieldsBuilder) { @@ -4509,6 +4512,55 @@ } }; + class IUdrPlugin : public IVersioned + { + public: + struct VTable : public IVersioned::VTable + { + IMaster* (CLOOP_CARG *getMaster)(IUdrPlugin* self) throw(); + void (CLOOP_CARG *registerFunction)(IUdrPlugin* self, IStatus* status, const char* name, IUdrFunctionFactory* factory) throw(); + void (CLOOP_CARG *registerProcedure)(IUdrPlugin* self, IStatus* status, const char* name, IUdrProcedureFactory* factory) throw(); + void (CLOOP_CARG *registerTrigger)(IUdrPlugin* self, IStatus* status, const char* name, IUdrTriggerFactory* factory) throw(); + }; + + protected: + IUdrPlugin(DoNotInherit) + : IVersioned(DoNotInherit()) + { + } + + ~IUdrPlugin() + { + } + + public: + static const unsigned VERSION = 2; + + IMaster* getMaster() + { + IMaster* ret = static_cast<VTable*>(this->cloopVTable)->getMaster(this); + return ret; + } + + template <typename StatusType> void registerFunction(StatusType* status, const char* name, IUdrFunctionFactory* factory) + { + static_cast<VTable*>(this->cloopVTable)->registerFunction(this, status, name, factory); + StatusType::checkException(status); + } + + template <typename StatusType> void registerProcedure(StatusType* status, const char* name, IUdrProcedureFactory* factory) + { + static_cast<VTable*>(this->cloopVTable)->registerProcedure(this, status, name, factory); + StatusType::checkException(status); + } + + template <typename StatusType> void registerTrigger(StatusType* status, const char* name, IUdrTriggerFactory* factory) + { + static_cast<VTable*>(this->cloopVTable)->registerTrigger(this, status, name, factory); + StatusType::checkException(status); + } + }; + // Interfaces implementations template <typename Name, typename StatusType, typename Base> @@ -14377,6 +14429,7 @@ VTableImpl() { this->version = Base::VERSION; + this->dispose = &Name::cloopdisposeDispatcher; this->setup = &Name::cloopsetupDispatcher; this->newItem = &Name::cloopnewItemDispatcher; } @@ -14413,9 +14466,21 @@ return static_cast<IExternalFunction*>(0); } } + + static void CLOOP_CARG cloopdisposeDispatcher(IDisposable* self) throw() + { + try + { + static_cast<Name*>(self)->Name::dispose(); + } + catch (...) + { + StatusType::catchException(0); + } + } }; - template <typename Name, typename StatusType, typename Base = IVersionedImpl<Name, StatusType, Inherit<IUdrFunctionFactory> > > + template <typename Name, typename StatusType, typename Base = IDisposableImpl<Name, StatusType, Inherit<IVersionedImpl<Name, StatusType, Inherit<IUdrFunctionFactory> > > > > class IUdrFunctionFactoryImpl : public IUdrFunctionFactoryBaseImpl<Name, StatusType, Base> { protected: @@ -14445,6 +14510,7 @@ VTableImpl() { this->version = Base::VERSION; + this->dispose = &Name::cloopdisposeDispatcher; this->setup = &Name::cloopsetupDispatcher; this->newItem = &Name::cloopnewItemDispatcher; } @@ -14481,9 +14547,21 @@ return static_cast<IExternalProcedure*>(0); } } + + static void CLOOP_CARG cloopdisposeDispatcher(IDisposable* self) throw() + { + try + { + static_cast<Name*>(self)->Name::dispose(); + } + catch (...) + { + StatusType::catchException(0); + } + } }; - template <typename Name, typename StatusType, typename Base = IVersionedImpl<Name, StatusType, Inherit<IUdrProcedureFactory> > > + template <typename Name, typename StatusType, typename Base = IDisposableImpl<Name, StatusType, Inherit<IVersionedImpl<Name, StatusType, Inherit<IUdrProcedureFactory> > > > > class IUdrProcedureFactoryImpl : public IUdrProcedureFactoryBaseImpl<Name, StatusType, Base> { protected: @@ -14513,6 +14591,7 @@ VTableImpl() { this->version = Base::VERSION; + this->dispose = &Name::cloopdisposeDispatcher; this->setup = &Name::cloopsetupDispatcher; this->newItem = &Name::cloopnewItemDispatcher; } @@ -14549,9 +14628,21 @@ return static_cast<IExternalTrigger*>(0); } } + + static void CLOOP_CARG cloopdisposeDispatcher(IDisposable* self) throw() + { + try + { + static_cast<Name*>(self)->Name::dispose(); + } + catch (...) + { + StatusType::catchException(0); + } + } }; - template <typename Name, typename StatusType, typename Base = IVersionedImpl<Name, StatusType, Inherit<IUdrTriggerFactory> > > + template <typename Name, typename StatusType, typename Base = IDisposableImpl<Name, StatusType, Inherit<IVersionedImpl<Name, StatusType, Inherit<IUdrTriggerFactory> > > > > class IUdrTriggerFactoryImpl : public IUdrTriggerFactoryBaseImpl<Name, StatusType, Base> { protected: @@ -14567,6 +14658,104 @@ virtual void setup(StatusType* status, IExternalContext* context, IRoutineMetadata* metadata, IMetadataBuilder* fieldsBuilder) = 0; virtual IExternalTrigger* newItem(StatusType* status, IExternalContext* context, IRoutineMetadata* metadata) = 0; }; + + template <typename Name, typename StatusType, typename Base> + class IUdrPluginBaseImpl : public Base + { + public: + typedef IUdrPlugin Declaration; + + IUdrPluginBaseImpl(DoNotInherit = DoNotInherit()) + { + static struct VTableImpl : Base::VTable + { + VTableImpl() + { + this->version = Base::VERSION; + this->getMaster = &Name::cloopgetMasterDispatcher; + this->registerFunction = &Name::cloopregisterFunctionDispatcher; + this->registerProcedure = &Name::cloopregisterProcedureDispatcher; + this->registerTrigger = &Name::cloopregisterTriggerDispatcher; + } + } vTable; + + this->cloopVTable = &vTable; + } + + static IMaster* CLOOP_CARG cloopgetMasterDispatcher(IUdrPlugin* self) throw() + { + try + { + return static_cast<Name*>(self)->Name::getMaster(); + } + catch (...) + { + StatusType::catchException(0); + return static_cast<IMaster*>(0); + } + } + + static void CLOOP_CARG cloopregisterFunctionDispatcher(IUdrPlugin* self, IStatus* status, const char* name, IUdrFunctionFactory* factory) throw() + { + StatusType status2(status); + + try + { + static_cast<Name*>(self)->Name::registerFunction(&status2, name, factory); + } + catch (...) + { + StatusType::catchException(&status2); + } + } + + static void CLOOP_CARG cloopregisterProcedureDispatcher(IUdrPlugin* self, IStatus* status, const char* name, IUdrProcedureFactory* factory) throw() + { + StatusType status2(status); + + try + { + static_cast<Name*>(self)->Name::registerProcedure(&status2, name, factory); + } + catch (...) + { + StatusType::catchException(&status2); + } + } + + static void CLOOP_CARG cloopregisterTriggerDispatcher(IUdrPlugin* self, IStatus* status, const char* name, IUdrTriggerFactory* factory) throw() + { + StatusType status2(status); + + try + { + static_cast<Name*>(self)->Name::registerTrigger(&status2, name, factory); + } + catch (...) + { + StatusType::catchException(&status2); + } + } + }; + + template <typename Name, typename StatusType, typename Base = IVersionedImpl<Name, StatusType, Inherit<IUdrPlugin> > > + class IUdrPluginImpl : public IUdrPluginBaseImpl<Name, StatusType, Base> + { + protected: + IUdrPluginImpl(DoNotInherit = DoNotInherit()) + { + } + + public: + virtual ~IUdrPluginImpl() + { + } + + virtual IMaster* getMaster() = 0; + virtual void registerFunction(StatusType* status, const char* name, IUdrFunctionFactory* factory) = 0; + virtual void registerProcedure(StatusType* status, const char* name, IUdrProcedureFactory* factory) = 0; + virtual void registerTrigger(StatusType* status, const char* name, IUdrTriggerFactory* factory) = 0; + }; }; Modified: firebird/trunk/src/include/firebird/Interface.h =================================================================== --- firebird/trunk/src/include/firebird/Interface.h 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/src/include/firebird/Interface.h 2015-01-25 20:27:46 UTC (rev 60551) @@ -239,5 +239,6 @@ } // namespace Firebird #define FB_PLUGIN_ENTRY_POINT firebird_plugin +#define FB_UDR_PLUGIN_ENTRY_POINT firebird_udr_plugin #endif // FB_INTERFACE_H Modified: firebird/trunk/src/include/firebird/UdrCppEngine.h =================================================================== --- firebird/trunk/src/include/firebird/UdrCppEngine.h 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/src/include/firebird/UdrCppEngine.h 2015-01-25 20:27:46 UTC (rev 60551) @@ -27,20 +27,51 @@ #error FB_UDR_STATUS_TYPE must be defined with the Status class before UdrCppEngine.h inclusion. #endif -#include "./UdrEngine.h" #include "./Message.h" -#ifndef JRD_IBASE_H -#include "ibase.h" -#include "iberror.h" -#endif #include <string.h> -namespace Firebird -{ - namespace Udr - { -//------------------------------------------------------------------------------ +#define FB_UDR_IMPLEMENT_ENTRY_POINT \ + namespace Firebird \ + { \ + namespace Udr \ + { \ + RegistrationNode<IUdrFunctionFactory>* regFunctions = NULL; \ + RegistrationNode<IUdrProcedureFactory>* regProcedures = NULL; \ + RegistrationNode<IUdrTriggerFactory>* regTriggers = NULL; \ + } \ + } \ + \ + extern "C" FB_BOOLEAN* FB_UDR_PLUGIN_ENTRY_POINT(IStatus* status, FB_BOOLEAN* theirUnloadFlag, \ + IUdrPlugin* udrPlugin) \ + { \ + ::Firebird::Udr::FactoryRegistration::finish(status, udrPlugin); \ + \ + class UnloadDetector \ + { \ + public: \ + UnloadDetector(FB_BOOLEAN* aTheirUnloadFlag, IUdrPlugin* aUdrPlugin) \ + : myUnloadFlag(FB_FALSE), \ + theirUnloadFlag(aTheirUnloadFlag), \ + udrPlugin(aUdrPlugin) \ + { \ + } \ + \ + ~UnloadDetector() \ + { \ + if (!myUnloadFlag) \ + *theirUnloadFlag = FB_TRUE; \ + } \ + \ + FB_BOOLEAN myUnloadFlag; \ + FB_BOOLEAN* theirUnloadFlag; \ + IUdrPlugin* udrPlugin; \ + }; \ + \ + static UnloadDetector unloadDetector(theirUnloadFlag, udrPlugin); \ + \ + return &unloadDetector.myUnloadFlag; \ + } #define FB_UDR_BEGIN_FUNCTION(name) \ @@ -176,6 +207,13 @@ } +namespace Firebird +{ + namespace Udr + { +//------------------------------------------------------------------------------ + + template <typename T, typename StatusType> class Procedure; @@ -311,15 +349,78 @@ }; +template <typename T> struct RegistrationNode +{ + const char* name; + T* factory; + RegistrationNode<T>* next; +}; + +extern RegistrationNode<IUdrFunctionFactory>* regFunctions; +extern RegistrationNode<IUdrProcedureFactory>* regProcedures; +extern RegistrationNode<IUdrTriggerFactory>* regTriggers; + +class FactoryRegistration +{ +public: + template <typename T> static void schedule(const char* name, T* factory, + RegistrationNode<T>** list) + { + RegistrationNode<T>* node = new RegistrationNode<T>(); + node->name = name; + node->factory = factory; + node->next = *list; + + *list = node; + } + + static void finish(IStatus* status, IUdrPlugin* plugin) + { + CheckStatusWrapper statusWrapper(status); + + if (!run(&statusWrapper, plugin, &IUdrPlugin::registerFunction, regFunctions)) + return; + + if (!run(&statusWrapper, plugin, &IUdrPlugin::registerProcedure, regProcedures)) + return; + + if (!run(&statusWrapper, plugin, &IUdrPlugin::registerTrigger, regTriggers)) + return; + } + +private: + template <typename T> + static bool run(CheckStatusWrapper* statusWrapper, IUdrPlugin* plugin, + void (IUdrPlugin::*routine)(CheckStatusWrapper* status, const char* name, T* factory), + RegistrationNode<T>* list) + { + for (RegistrationNode<T>* node = list; node; node = node->next) + { + (plugin->*routine)(statusWrapper, node->name, node->factory); + + if (statusWrapper->getStatus() & IStatus::FB_HAS_ERRORS) + return false; + } + + return true; + } +}; + + template <typename T, typename StatusType> class FunctionFactoryImpl : public IUdrFunctionFactoryImpl<FunctionFactoryImpl<T, StatusType>, StatusType> { public: explicit FunctionFactoryImpl(const char* name) { - fbUdrRegFunction(name, this); + FactoryRegistration::schedule<IUdrFunctionFactory>(name, this, ®Functions); } + void dispose() + { + // Do not delete this. The instances are statically allocated. + } + void setup(StatusType* status, IExternalContext* /*context*/, IRoutineMetadata* /*metadata*/, IMetadataBuilder* in, IMetadataBuilder* out) { @@ -341,9 +442,14 @@ public: explicit ProcedureFactoryImpl(const char* name) { - fbUdrRegProcedure(name, this); + FactoryRegistration::schedule<IUdrProcedureFactory>(name, this, ®Procedures); } + void dispose() + { + // Do not delete this. The instances are statically allocated. + } + void setup(StatusType* status, IExternalContext* /*context*/, IRoutineMetadata* /*metadata*/, IMetadataBuilder* in, IMetadataBuilder* out) { @@ -365,9 +471,14 @@ public: explicit TriggerFactoryImpl(const char* name) { - fbUdrRegTrigger(name, this); + FactoryRegistration::schedule<IUdrTriggerFactory>(name, this, ®Triggers); } + void dispose() + { + // Do not delete this. The instances are statically allocated. + } + void setup(StatusType* status, IExternalContext* /*context*/, IRoutineMetadata* /*metadata*/, IMetadataBuilder* fields) { Deleted: firebird/trunk/src/include/firebird/UdrEngine.h =================================================================== --- firebird/trunk/src/include/firebird/UdrEngine.h 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/src/include/firebird/UdrEngine.h 2015-01-25 20:27:46 UTC (rev 60551) @@ -1,52 +0,0 @@ -/* - * The contents of this file are subject to the Initial - * Developer's Public License Version 1.0 (the "License"); - * you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl. - * - * Software distributed under the License is distributed AS IS, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. - * See the License for the specific language governing rights - * and limitations under the License. - * - * The Original Code was created by Adriano dos Santos Fernandes - * for the Firebird Open Source RDBMS project. - * - * Copyright (c) 2008 Adriano dos Santos Fernandes <adr...@uo...> - * and all contributors signed below. - * - * All Rights Reserved. - * Contributor(s): ______________________________________. - */ - -#ifndef FIREBIRD_UDR_H -#define FIREBIRD_UDR_H - -#include "./Interface.h" - -#ifndef FB_EXPORTED -#if defined(DARWIN) -#define FB_EXPORTED __attribute__((visibility("default"))) -#else -#define FB_EXPORTED -#endif // OS choice (DARWIN) -#endif // FB_EXPORTED - - -namespace Firebird -{ -//------------------------------------------------------------------------------ - - -//// TODO: review -// Routine registration functions. -extern "C" void FB_EXPORTED fbUdrRegFunction(const char* name, IUdrFunctionFactory* factory); -extern "C" void FB_EXPORTED fbUdrRegProcedure(const char* name, IUdrProcedureFactory* factory); -extern "C" void FB_EXPORTED fbUdrRegTrigger(const char* name, IUdrTriggerFactory* factory); - - -//------------------------------------------------------------------------------ -} // namespace Firebird - -#endif // FIREBIRD_UDR_H Modified: firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp =================================================================== --- firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp 2015-01-25 20:27:18 UTC (rev 60550) +++ firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp 2015-01-25 20:27:46 UTC (rev 60551) @@ -22,7 +22,6 @@ #include "firebird.h" #include "../jrd/ibase.h" -#include "firebird/UdrEngine.h" #include "firebird/Interface.h" #include "../common/classes/alloc.h" #include "../common/classes/array.h" @@ -43,37 +42,9 @@ //------------------------------------------------------------------------------ -struct Node -{ - Node() - : name(*getDefaultMemoryPool()), - module(*getDefaultMemoryPool()) - { - } +class UdrPluginImpl; - string name; - PathName module; -}; -struct FunctionNode : public Node -{ - IUdrFunctionFactory* factory; - FunctionNode* next; -}; - -struct ProcedureNode : public Node -{ - IUdrProcedureFactory* factory; - ProcedureNode* next; -}; - -struct TriggerNode : public Node -{ - IUdrTriggerFactory* factory; - TriggerNode* next; -}; - - static GlobalPtr<ObjectsArray<PathName> > paths; class Engine : public StdPlugin<IExternalEngineImpl<Engine, ThrowStatusWrapper> > @@ -129,25 +100,21 @@ } public: - void loadModule(ThrowStatusWrapper* status, IRoutineMetadata* metadata, + UdrPluginImpl* loadModule(ThrowStatusWrapper* status, IRoutineMetadata* metadata, PathName* moduleName, string* entryPoint); template <typename NodeType, typename ObjType, typename SharedObjType> ObjType* getChild( - ThrowStatusWrapper* status, GenericMap<Pair<NonPooled<IExternalContext*, ObjType*> > >& children, - SharedObjType* sharedObj, IExternalContext* context, NodeType* nodes, + ThrowStatusWrapper* status, + GenericMap<Pair<NonPooled<IExternalContext*, ObjType*> > >& children, + SharedObjType* sharedObj, IExternalContext* context, SortedArray<SharedObjType*>& sharedObjs, const PathName& moduleName); template <typename ObjType> void deleteChildren( GenericMap<Pair<NonPooled<IExternalContext*, ObjType*> > >& children); - template <typename T> T* findNode(ThrowStatusWrapper* status, T* nodes, - const PathName& moduleName, const string& entryPoint); + template <typename T> T* findNode(ThrowStatusWrapper* status, + const GenericMap<Pair<Left<string, T*> > >& nodes, const string& entryPoint); -private: - template <typename T, typename T2> T2* getNode(ThrowStatusWrapper* status, T* nodes, - const PathName& moduleName, IExternalContext* context, IRoutineMetadata* metadata, - const string& entryPoint); - public: void open(ThrowStatusWrapper* status, IExternalContext* context, char* name, unsigned nameSize); void openAttachment(ThrowStatusWrapper* status, IExternalContext* context); @@ -172,11 +139,11 @@ }; -class ModulesMap : public GenericMap<Pair<Left<PathName, ModuleLoader::Module*> > > +class ModulesMap : public GenericMap<Pair<Left<PathName, UdrPluginImpl*> > > { public: explicit ModulesMap(MemoryPool& p) - : GenericMap<Pair<Left<PathName, ModuleLoader::Module*> > >(p) + : GenericMap<Pair<Left<PathName, UdrPluginImpl*> > >(p) { } @@ -190,15 +157,125 @@ static GlobalPtr<Mutex> modulesMutex; static GlobalPtr<ModulesMap> modules; -static InitInstance<PathName> loadingModule; -static FunctionNode* registeredFunctions = NULL; -static ProcedureNode* registeredProcedures = NULL; -static TriggerNode* registeredTriggers = NULL; - //-------------------------------------- +class UdrPluginImpl : public VersionedIface<IUdrPluginImpl<UdrPluginImpl, ThrowStatusWrapper> > +{ +public: + UdrPluginImpl(const PathName& aModuleName, ModuleLoader::Module* aModule) + : moduleName(*getDefaultMemoryPool(), aModuleName), + module(aModule), + myUnloadFlag(FB_FALSE), + theirUnloadFlag(NULL), + functionsMap(*getDefaultMemoryPool()), + proceduresMap(*getDefaultMemoryPool()), + triggersMap(*getDefaultMemoryPool()) + { + } + + ~UdrPluginImpl() + { + if (myUnloadFlag) + return; + + *theirUnloadFlag = FB_TRUE; + + { + GenericMap<Pair<Left<string, IUdrFunctionFactory*> > >::Accessor accessor(&functionsMap); + for (bool cont = accessor.getFirst(); cont; cont = accessor.getNext()) + accessor.current()->second->dispose(); + } + + { + GenericMap<Pair<Left<string, IUdrProcedureFactory*> > >::Accessor accessor(&proceduresMap); + for (bool cont = accessor.getFirst(); cont; cont = accessor.getNext()) + accessor.current()->second->dispose(); + } + + { + GenericMap<Pair<Left<string, IUdrTriggerFactory*> > >::Accessor accessor(&triggersMap); + for (bool cont = accessor.getFirst(); cont; cont = accessor.getNext()) + accessor.current()->second->dispose(); + } + + delete module; + } + +public: + IMaster* getMaster() + { + return MasterInterfacePtr(); + } + + void registerFunction(ThrowStatusWrapp... [truncated message content] |
From: <ego...@us...> - 2015-01-26 07:56:58
|
Revision: 60553 http://sourceforge.net/p/firebird/code/60553 Author: egorpugin Date: 2015-01-26 07:56:51 +0000 (Mon, 26 Jan 2015) Log Message: ----------- [build] [cmake] Fix build, typos. Move some projects to 'Boot' dir. Modified Paths: -------------- firebird/trunk/builds/cmake/Configure.cmake firebird/trunk/examples/CMakeLists.txt firebird/trunk/src/CMakeLists.txt Modified: firebird/trunk/builds/cmake/Configure.cmake =================================================================== --- firebird/trunk/builds/cmake/Configure.cmake 2015-01-25 22:24:41 UTC (rev 60552) +++ firebird/trunk/builds/cmake/Configure.cmake 2015-01-26 07:56:51 UTC (rev 60553) @@ -66,7 +66,7 @@ endif() if (IOS) - set(CMAKE_SYSTEM_PROCESSOR “arm”) # armv7 ? + set(CMAKE_SYSTEM_PROCESSOR "arm") # armv7 ? add_definitions(-D__arm__) endif() Modified: firebird/trunk/examples/CMakeLists.txt =================================================================== --- firebird/trunk/examples/CMakeLists.txt 2015-01-25 22:24:41 UTC (rev 60552) +++ firebird/trunk/examples/CMakeLists.txt 2015-01-26 07:56:51 UTC (rev 60553) @@ -34,7 +34,7 @@ add_executable (empbuild empbuild.c ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbuild.e) target_link_libraries (empbuild yvalve) set_output_directory (empbuild empbuild FORCE) -add_dependencies (empbuild gfix engine12) +add_dependencies (empbuild gfix engine12 fbtrace) project_group (empbuild Examples) file(GLOB files Modified: firebird/trunk/src/CMakeLists.txt =================================================================== --- firebird/trunk/src/CMakeLists.txt 2015-01-25 22:24:41 UTC (rev 60552) +++ firebird/trunk/src/CMakeLists.txt 2015-01-26 07:56:51 UTC (rev 60553) @@ -247,9 +247,9 @@ # ################################################################################ -############################################################################### +######################################## # LIBRARY boot_alice -############################################################################### +######################################## file(GLOB alice_src "alice/*.cpp" "alice/*.h") @@ -267,16 +267,16 @@ endif() # if (NOT CMAKE_CROSSCOMPILING) -############################################################################### +######################################## # LIBRARY alice -############################################################################### +######################################## add_library (alice ${alice_src} ${alice_generated_src_master}) -############################################################################### +######################################## # LIBRARY boot_burp -############################################################################### +######################################## file(GLOB burp_src "burp/*.cpp" "burp/*.h") @@ -296,16 +296,16 @@ endif() # if (NOT CMAKE_CROSSCOMPILING) -############################################################################### +######################################## # LIBRARY burp -############################################################################### +######################################## add_library (burp ${burp_src} ${burp_generated_src_master}) -############################################################################### +######################################## # LIBRARY common -############################################################################### +######################################## file(GLOB common_src "common/*.cpp" "common/classes/*.cpp" "common/config/*.cpp" "common/os/${OS_DIR}/*.cpp") file(GLOB_RECURSE common_include "common/*.h") @@ -502,7 +502,7 @@ add_library (udr_engine SHARED ${udr_engine_src} ${VERSION_RC}) target_link_libraries (udr_engine common yvalve) set_output_directory (udr_engine plugins) -set_exported_symbols (udr_engine udr_engine) +set_exported_symbols (udr_engine plugin) ######################################## @@ -567,6 +567,7 @@ add_executable (gpre_boot ${gpre_boot_src} ${VERSION_RC}) target_link_libraries (gpre_boot gpre_common common ${LIB_Ws2_32}) +project_group (gpre_boot Boot) endif() # if (NOT CMAKE_CROSSCOMPILING) @@ -611,6 +612,7 @@ add_executable (build_msg ${build_msg_generated_src_master} ${VERSION_RC}) target_link_libraries (build_msg common yvalve) +project_group (build_msg Boot) endif() # if (NOT CMAKE_CROSSCOMPILING) @@ -628,6 +630,7 @@ add_executable (codes ${codes_generated_src_master} ${VERSION_RC}) target_link_libraries (codes yvalve) +project_group (codes Boot) add_custom_command( TARGET codes POST_BUILD @@ -697,17 +700,17 @@ target_link_libraries (fbtracemgr common yvalve) -############################################################################### +######################################## # EXECUTABLE gfix -############################################################################### +######################################## add_executable (gfix alice/main/aliceMain.cpp ${VERSION_RC}) target_link_libraries (gfix alice common yvalve) -############################################################################### +######################################## # EXECUTABLE boot_gbak -############################################################################### +######################################## file(GLOB gbak_include "burp/*.h") @@ -720,25 +723,25 @@ endif() # if (NOT CMAKE_CROSSCOMPILING) -############################################################################### +######################################## # EXECUTABLE gbak -############################################################################### +######################################## add_executable (gbak burp/main/burpMain.cpp ${gbak_include} ${VERSION_RC}) target_link_libraries (gbak burp yvalve common) -############################################################################### +######################################## # EXECUTABLE gsplit -############################################################################### +######################################## add_executable (gsplit burp/split/spit.cpp burp/split/spit.h ${VERSION_RC}) target_link_libraries (gsplit burp common yvalve) -############################################################################### +######################################## # EXECUTABLE boot_isql -############################################################################### +######################################## file(GLOB isql_src "isql/*.cpp" "isql/*.h") @@ -792,17 +795,17 @@ endif() -############################################################################### +######################################## # EXECUTABLE isql -############################################################################### +######################################## add_executable (isql ${isql_src} ${isql_generated_src_master} ${VERSION_RC}) target_link_libraries (isql common yvalve) -############################################################################### +######################################## # EXECUTABLE qli -############################################################################### +######################################## file(GLOB qli_src "qli/*.cpp" "qli/*.h") set(qli_generated_src This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <asf...@us...> - 2015-01-26 14:53:05
|
Revision: 60559 http://sourceforge.net/p/firebird/code/60559 Author: asfernandes Date: 2015-01-26 14:52:54 +0000 (Mon, 26 Jan 2015) Log Message: ----------- Split the UDR examples in multiple files to demonstrate how it should be done. Modified Paths: -------------- firebird/trunk/builds/posix/Makefile.in.plugins_examples firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj.filters firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj.filters firebird/trunk/builds/win32/msvc8/udrcpp_example.vcproj firebird/trunk/builds/win32/msvc9/udrcpp_example.vcproj Added Paths: ----------- firebird/trunk/examples/udr/Functions.cpp firebird/trunk/examples/udr/Procedures.cpp firebird/trunk/examples/udr/Triggers.cpp firebird/trunk/examples/udr/UdrCppExample.h Removed Paths: ------------- firebird/trunk/examples/udr/UdrCppExample.cpp Modified: firebird/trunk/builds/posix/Makefile.in.plugins_examples =================================================================== --- firebird/trunk/builds/posix/Makefile.in.plugins_examples 2015-01-26 14:39:48 UTC (rev 60558) +++ firebird/trunk/builds/posix/Makefile.in.plugins_examples 2015-01-26 14:52:54 UTC (rev 60559) @@ -55,7 +55,10 @@ all: udrcpp_example dc_example kh_example -UDR_Objects = $(call makeObjects,../examples/udr,UdrCppExample.cpp) +UDR_Objects = $(call makeObjects,../examples/udr,Functions.cpp) \ + $(call makeObjects,../examples/udr,Procedures.cpp) \ + $(call makeObjects,../examples/udr,Triggers.cpp) + UDR_Plugin = $(PLUGINS)/udr/$(LIB_PREFIX)udrcpp_example.$(SHRLIB_EXT) AllObjects = $(UDR_Objects) Modified: firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj 2015-01-26 14:39:48 UTC (rev 60558) +++ firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj 2015-01-26 14:52:54 UTC (rev 60559) @@ -194,12 +194,15 @@ </Link> </ItemDefinitionGroup> <ItemGroup> - <ClCompile Include="..\..\..\examples\udr\UdrCppExample.cpp" /> + <ClCompile Include="..\..\..\examples\udr\Functions.cpp" /> </ItemGroup> <ItemGroup> - <ClInclude Include="..\..\..\src\includeFirebirdUdr.h" /> + <ClCompile Include="..\..\..\examples\udr\Procedures.cpp" /> </ItemGroup> <ItemGroup> + <ClCompile Include="..\..\..\examples\udr\Triggers.cpp" /> + </ItemGroup> + <ItemGroup> <ResourceCompile Include="..\..\..\src\jrd\version.rc"> <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\src\jrd</AdditionalIncludeDirectories> <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\src\jrd</AdditionalIncludeDirectories> Modified: firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj.filters 2015-01-26 14:39:48 UTC (rev 60558) +++ firebird/trunk/builds/win32/msvc10/udrcpp_example.vcxproj.filters 2015-01-26 14:52:54 UTC (rev 60559) @@ -14,18 +14,23 @@ </Filter> </ItemGroup> <ItemGroup> - <ClCompile Include="..\..\..\examples\udr\UdrCppExample.cpp"> + <ClCompile Include="..\..\..\examples\udr\Functions.cpp"> <Filter>Source files</Filter> </ClCompile> </ItemGroup> <ItemGroup> - <ClInclude Include="..\..\..\src\includeFirebirdUdr.h"> - <Filter>Header files</Filter> - </ClInclude> + <ClCompile Include="..\..\..\examples\udr\Procedures.cpp"> + <Filter>Source files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> + <ClCompile Include="..\..\..\examples\udr\Triggers.cpp"> + <Filter>Source files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> <ResourceCompile Include="..\..\..\src\jrd\version.rc"> <Filter>Resource files</Filter> </ResourceCompile> </ItemGroup> -</Project> \ No newline at end of file +</Project> Modified: firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj 2015-01-26 14:39:48 UTC (rev 60558) +++ firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj 2015-01-26 14:52:54 UTC (rev 60559) @@ -198,12 +198,15 @@ </Link> </ItemDefinitionGroup> <ItemGroup> - <ClCompile Include="..\..\..\examples\udr\UdrCppExample.cpp" /> + <ClCompile Include="..\..\..\examples\udr\Functions.cpp" /> </ItemGroup> <ItemGroup> - <ClInclude Include="..\..\..\src\includeFirebirdUdr.h" /> + <ClCompile Include="..\..\..\examples\udr\Procedures.cpp" /> </ItemGroup> <ItemGroup> + <ClCompile Include="..\..\..\examples\udr\Triggers.cpp" /> + </ItemGroup> + <ItemGroup> <ResourceCompile Include="..\..\..\src\jrd\version.rc"> <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\src\jrd</AdditionalIncludeDirectories> <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\src\jrd</AdditionalIncludeDirectories> Modified: firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj.filters 2015-01-26 14:39:48 UTC (rev 60558) +++ firebird/trunk/builds/win32/msvc12/udrcpp_example.vcxproj.filters 2015-01-26 14:52:54 UTC (rev 60559) @@ -14,18 +14,23 @@ </Filter> </ItemGroup> <ItemGroup> - <ClCompile Include="..\..\..\examples\udr\UdrCppExample.cpp"> + <ClCompile Include="..\..\..\examples\udr\Functions.cpp"> <Filter>Source files</Filter> </ClCompile> </ItemGroup> <ItemGroup> - <ClInclude Include="..\..\..\src\includeFirebirdUdr.h"> - <Filter>Header files</Filter> - </ClInclude> + <ClCompile Include="..\..\..\examples\udr\Procedures.cpp"> + <Filter>Source files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> + <ClCompile Include="..\..\..\examples\udr\Triggers.cpp"> + <Filter>Source files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> <ResourceCompile Include="..\..\..\src\jrd\version.rc"> <Filter>Resource files</Filter> </ResourceCompile> </ItemGroup> -</Project> \ No newline at end of file +</Project> Modified: firebird/trunk/builds/win32/msvc8/udrcpp_example.vcproj =================================================================== --- firebird/trunk/builds/win32/msvc8/udrcpp_example.vcproj 2015-01-26 14:39:48 UTC (rev 60558) +++ firebird/trunk/builds/win32/msvc8/udrcpp_example.vcproj 2015-01-26 14:52:54 UTC (rev 60559) @@ -330,18 +330,17 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="..\..\..\examples\udr\UdrCppExample.cpp" + RelativePath="..\..\..\examples\udr\Functions.cpp" > </File> - </Filter> - <Filter - Name="Header files" - Filter="h;hpp;hxx;hm;inl" - > <File - RelativePath="..\..\..\src\includeFirebirdUdr.h" + RelativePath="..\..\..\examples\udr\Procedures.cpp" > </File> + <File + RelativePath="..\..\..\examples\udr\Triggers.cpp" + > + </File> </Filter> <Filter Name="Resource files" Modified: firebird/trunk/builds/win32/msvc9/udrcpp_example.vcproj =================================================================== --- firebird/trunk/builds/win32/msvc9/udrcpp_example.vcproj 2015-01-26 14:39:48 UTC (rev 60558) +++ firebird/trunk/builds/win32/msvc9/udrcpp_example.vcproj 2015-01-26 14:52:54 UTC (rev 60559) @@ -327,18 +327,17 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="..\..\..\examples\udr\UdrCppExample.cpp" + RelativePath="..\..\..\examples\udr\Functions.cpp" > </File> - </Filter> - <Filter - Name="Header files" - Filter="h;hpp;hxx;hm;inl" - > <File - RelativePath="..\..\..\src\includeFirebirdUdr.h" + RelativePath="..\..\..\examples\udr\Procedures.cpp" > </File> + <File + RelativePath="..\..\..\examples\udr\Triggers.cpp" + > + </File> </Filter> <Filter Name="Resource files" Added: firebird/trunk/examples/udr/Functions.cpp =================================================================== --- firebird/trunk/examples/udr/Functions.cpp (rev 0) +++ firebird/trunk/examples/udr/Functions.cpp 2015-01-26 14:52:54 UTC (rev 60559) @@ -0,0 +1,160 @@ +/* + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl. + * + * Software distributed under the License is distributed AS IS, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. + * See the License for the specific language governing rights + * and limitations under the License. + * + * The Original Code was created by Adriano dos Santos Fernandes + * for the Firebird Open Source RDBMS project. + * + * Copyright (c) 2008 Adriano dos Santos Fernandes <adr...@gm...> + * and all contributors signed below. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + */ + +#include "UdrCppExample.h" + +using namespace Firebird; + + +//------------------------------------------------------------------------------ + + +/*** +create function wait_event ( + event_name varchar(31) character set utf8 not null +) returns integer not null + external name 'udrcpp_example!wait_event' + engine udr; +***/ +FB_UDR_BEGIN_FUNCTION(wait_event) + FB_UDR_MESSAGE(InMessage, + (FB_VARCHAR(31 * 4), name) + ); + + FB_UDR_MESSAGE(OutMessage, + (FB_INTEGER, result) + ); + + FB_UDR_EXECUTE_FUNCTION + { + char* s = new char[in->name.length + 1]; + memcpy(s, in->name.str, in->name.length); + s[in->name.length] = '\0'; + + unsigned char* eveBuffer; + unsigned char* eveResult; + int eveLen = isc_event_block(&eveBuffer, &eveResult, 1, s); + + delete [] s; + + ISC_STATUS_ARRAY statusVector = {0}; + isc_db_handle dbHandle = getIscDbHandle(status, context); + ISC_ULONG counter = 0; + + FbException::check(isc_wait_for_event( + statusVector, &dbHandle, eveLen, eveBuffer, eveResult), status, statusVector); + isc_event_counts(&counter, eveLen, eveBuffer, eveResult); + FbException::check(isc_wait_for_event( + statusVector, &dbHandle, eveLen, eveBuffer, eveResult), status, statusVector); + isc_event_counts(&counter, eveLen, eveBuffer, eveResult); + + isc_free((char*) eveBuffer); + isc_free((char*) eveResult); + + out->resultNull = FB_FALSE; + out->result = counter; + } +FB_UDR_END_FUNCTION + + +/*** +create function sum_args ( + n1 integer, + n2 integer, + n3 integer +) returns integer + external name 'udrcpp_example!sum_args' + engine udr; +***/ +FB_UDR_BEGIN_FUNCTION(sum_args) + // Without InMessage/OutMessage definitions, messages will be byte-based. + + FB_UDR_CONSTRUCTOR + // , inCount(0) + { + // Get input metadata. + AutoRelease<IMessageMetadata> inMetadata(metadata->getInputMetadata(status)); + + // Get count of input parameters. + inCount = inMetadata->getCount(status); + + inNullOffsets.reset(new unsigned[inCount]); + inOffsets.reset(new unsigned[inCount]); + + for (unsigned i = 0; i < inCount; ++i) + { + // Get null offset of the i-th input parameter. + inNullOffsets[i] = inMetadata->getNullOffset(status, i); + + // Get the offset of the i-th input parameter. + inOffsets[i] = inMetadata->getOffset(status, i); + } + + // Get output metadata. + AutoRelease<IMessageMetadata> outMetadata(metadata->getOutputMetadata(status)); + + // Get null offset of the return value. + outNullOffset = outMetadata->getNullOffset(status, 0); + + // Get offset of the return value. + outOffset = outMetadata->getOffset(status, 0); + } + + // This function requires the INTEGER parameters and return value, otherwise it will crash. + // Metadata is inspected dynamically (in execute). This is not the fastest method. + FB_UDR_EXECUTE_FUNCTION + { + *(ISC_SHORT*) (out + outNullOffset) = FB_FALSE; + + // Get a reference to the return value. + ISC_LONG& ret = *(ISC_LONG*) (out + outOffset); + + // The return value is automatically initialized to 0. + ///ret = 0; + + for (unsigned i = 0; i < inCount; ++i) + { + // If the i-th input parameter is NULL, set the output to NULL and finish. + if (*(ISC_SHORT*) (in + inNullOffsets[i])) + { + *(ISC_SHORT*) (out + outNullOffset) = FB_TRUE; + return; + } + + // Read the i-th input parameter value and sum it in the referenced return value. + ret += *(ISC_LONG*) (in + inOffsets[i]); + } + } + + unsigned inCount; + AutoArrayDelete<unsigned> inNullOffsets; + AutoArrayDelete<unsigned> inOffsets; + unsigned outNullOffset; + unsigned outOffset; +FB_UDR_END_FUNCTION + + +//------------------------------------------------------------------------------ + + +// This should be used in only one of the UDR library files. +FB_UDR_IMPLEMENT_ENTRY_POINT Property changes on: firebird/trunk/examples/udr/Functions.cpp ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: firebird/trunk/examples/udr/Procedures.cpp =================================================================== --- firebird/trunk/examples/udr/Procedures.cpp (rev 0) +++ firebird/trunk/examples/udr/Procedures.cpp 2015-01-26 14:52:54 UTC (rev 60559) @@ -0,0 +1,212 @@ +/* + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl. + * + * Software distributed under the License is distributed AS IS, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. + * See the License for the specific language governing rights + * and limitations under the License. + * + * The Original Code was created by Adriano dos Santos Fernandes + * for the Firebird Open Source RDBMS project. + * + * Copyright (c) 2008 Adriano dos Santos Fernandes <adr...@gm...> + * and all contributors signed below. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + */ + +#include "UdrCppExample.h" + +using namespace Firebird; + + +//------------------------------------------------------------------------------ + + +/*** +create procedure gen_rows ( + start_n integer not null, + end_n integer not null +) returns ( + n integer not null +) + external name 'udrcpp_example!gen_rows' + engine udr; +***/ +FB_UDR_BEGIN_PROCEDURE(gen_rows) + // Without InMessage/OutMessage definitions, messages will be byte-based. + + // Procedure variables. + unsigned inOffsetStart, inOffsetEnd, outNullOffset, outOffset; + + // Get offsets once per procedure. + FB_UDR_CONSTRUCTOR + { + AutoRelease<IMessageMetadata> inMetadata(metadata->getInputMetadata(status)); + + inOffsetStart = inMetadata->getOffset(status, 0); + inOffsetEnd = inMetadata->getOffset(status, 1); + + AutoRelease<IMessageMetadata> outMetadata(metadata->getOutputMetadata(status)); + + outNullOffset = outMetadata->getNullOffset(status, 0); + outOffset = outMetadata->getOffset(status, 0); + } + + /*** Procedure destructor. + FB_UDR_DESTRUCTOR + { + } + ***/ + + FB_UDR_EXECUTE_PROCEDURE + { + counter = *(ISC_LONG*) (in + procedure->inOffsetStart); + end = *(ISC_LONG*) (in + procedure->inOffsetEnd); + + *(ISC_SHORT*) (out + procedure->outNullOffset) = FB_FALSE; + } + + // After procedure's execute definition, starts the result set definition. + + FB_UDR_FETCH_PROCEDURE + { + if (counter > end) + return false; + + *(ISC_LONG*) (out + procedure->outOffset) = counter++; + return true; + } + + /*** ResultSet destructor. + ~ResultSet() + { + } + ***/ + + // ResultSet variables. + ISC_LONG counter; + ISC_LONG end; +FB_UDR_END_PROCEDURE + + +/*** +create procedure gen_rows2 ( + start_n integer not null, + end_n integer not null +) returns ( + n integer not null +) + external name 'udrcpp_example!gen_rows2' + engine udr; +***/ +FB_UDR_BEGIN_PROCEDURE(gen_rows2) + FB_UDR_MESSAGE(InMessage, + (FB_INTEGER, start) + (FB_INTEGER, end) + ); + + FB_UDR_MESSAGE(OutMessage, + (FB_INTEGER, result) + ); + + FB_UDR_EXECUTE_PROCEDURE + { + out->resultNull = FB_FALSE; + out->result = in->start - 1; + } + + FB_UDR_FETCH_PROCEDURE + { + return out->result++ < in->end; + } +FB_UDR_END_PROCEDURE + + +/*** +create procedure inc ( + count_n integer not null +) returns ( + n0 integer not null, + n1 integer not null, + n2 integer not null, + n3 integer not null, + n4 integer not null +) + external name 'udrcpp_example!inc' + engine udr; +***/ +// This is a sample procedure demonstrating how the scopes of variables works. +// n1 and n2 are on the Procedure scope, i.e., they're shared for each execution of the same cached +// metadata object. +// n3 and n4 are on the ResultSet scope, i.e., each procedure execution have they own instances. +FB_UDR_BEGIN_PROCEDURE(inc) + FB_UDR_MESSAGE(InMessage, + (FB_INTEGER, count) + ); + + FB_UDR_MESSAGE(OutMessage, + (FB_INTEGER, n0) + (FB_INTEGER, n1) + (FB_INTEGER, n2) + (FB_INTEGER, n3) + (FB_INTEGER, n4) + ); + + ISC_LONG n1; + + // This is how a procedure (class) initializer is written. + // ResultSet variables are not accessible here. + // If there is nothing to initialize, it can be completelly suppressed. + FB_UDR_CONSTRUCTOR + , n1(0), + n2(0) + { + } + + ISC_LONG n2; + + // FB_UDR_EXECUTE_PROCEDURE starts the ResultSet scope. + FB_UDR_EXECUTE_PROCEDURE + // This is the ResultSet (class) initializer. + , n3(procedure->n1), // n3 will start with the next value for n1 of the last execution + n4(0) + { + out->n0Null = out->n1Null = out->n2Null = out->n3Null = out->n4Null = FB_FALSE; + + out->n0 = 0; + + // In the execute method, the procedure scope must be accessed using the 'procedure' pointer. + procedure->n1 = 0; + + // We don't touch n2 here, so it incremented counter will be kept after each execution. + + // The ResultSet scope must be accessed directly, i.e., they're member variables of the + // 'this' pointer. + ++n4; + } + + ISC_LONG n3; + + // FB_UDR_FETCH_PROCEDURE must be always after FB_UDR_EXECUTE_PROCEDURE. + FB_UDR_FETCH_PROCEDURE + { + if (out->n0++ <= in->count) + { + out->n1 = ++procedure->n1; + out->n2 = ++procedure->n2; + out->n3 = ++n3; + out->n4 = ++n4; + return true; + } + + return false; + } + + ISC_LONG n4; +FB_UDR_END_PROCEDURE Property changes on: firebird/trunk/examples/udr/Procedures.cpp ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Copied: firebird/trunk/examples/udr/Triggers.cpp (from rev 60555, firebird/trunk/examples/udr/UdrCppExample.cpp) =================================================================== --- firebird/trunk/examples/udr/Triggers.cpp (rev 0) +++ firebird/trunk/examples/udr/Triggers.cpp 2015-01-26 14:52:54 UTC (rev 60559) @@ -0,0 +1,316 @@ +/* + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl. + * + * Software distributed under the License is distributed AS IS, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. + * See the License for the specific language governing rights + * and limitations under the License. + * + * The Original Code was created by Adriano dos Santos Fernandes + * for the Firebird Open Source RDBMS project. + * + * Copyright (c) 2008 Adriano dos Santos Fernandes <adr...@gm...> + * and all contributors signed below. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + */ + +#include "UdrCppExample.h" + +using namespace Firebird; + + +//------------------------------------------------------------------------------ + + +/*** +Sample usage: + +create database 'c:\temp\slave.fdb'; +create table persons ( + id integer not null, + name varchar(60) not null, + address varchar(60), + info blob sub_type text +); +commit; + +create database 'c:\temp\master.fdb'; +create table persons ( + id integer not null, + name varchar(60) not null, + address varchar(60), + info blob sub_type text +); + +create table replicate_config ( + name varchar(31) not null, + data_source varchar(255) not null +); + +insert into replicate_config (name, data_source) + values ('ds1', 'c:\temp\slave.fdb'); + +create trigger persons_replicate + after insert on persons + external name 'udrcpp_example!replicate!ds1' + engine udr; + +create trigger persons_replicate2 + after insert on persons + external name 'udrcpp_example!replicate_persons!ds1' + engine udr; +***/ +FB_UDR_BEGIN_TRIGGER(replicate) + // Without FieldsMessage definition, messages will be byte-based. + + FB_UDR_CONSTRUCTOR + , triggerMetadata(metadata->getTriggerMetadata(status)) + { + ISC_STATUS_ARRAY statusVector = {0}; + isc_db_handle dbHandle = getIscDbHandle(status, context); + isc_tr_handle trHandle = getIscTrHandle(status, context); + + isc_stmt_handle stmtHandle = 0; + FbException::check(isc_dsql_allocate_statement( + statusVector, &dbHandle, &stmtHandle), status, statusVector); + FbException::check(isc_dsql_prepare(statusVector, &trHandle, &stmtHandle, 0, + "select data_source from replicate_config where name = ?", + SQL_DIALECT_CURRENT, NULL), status, statusVector); + + const char* table = metadata->getTriggerTable(status); + + // Skip the first exclamation point, separating the module name and entry point. + const char* info = strchr(metadata->getEntryPoint(status), '!'); + + // Skip the second exclamation point, separating the entry point and the misc info (config). + if (info) + info = strchr(info + 1, '!'); + + if (info) + ++info; + else + info = ""; + + XSQLDA* inSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]); + inSqlDa->version = SQLDA_VERSION1; + inSqlDa->sqln = 1; + FbException::check(isc_dsql_describe_bind(statusVector, &stmtHandle, + SQL_DIALECT_CURRENT, inSqlDa), status, statusVector); + inSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + inSqlDa->sqlvar[0].sqllen]; + strncpy(inSqlDa->sqlvar[0].sqldata + sizeof(short), info, inSqlDa->sqlvar[0].sqllen); + *reinterpret_cast<short*>(inSqlDa->sqlvar[0].sqldata) = strlen(info); + + XSQLDA* outSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]); + outSqlDa->version = SQLDA_VERSION1; + outSqlDa->sqln = 1; + FbException::check(isc_dsql_describe(statusVector, &stmtHandle, + SQL_DIALECT_CURRENT, outSqlDa), status, statusVector); + outSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + outSqlDa->sqlvar[0].sqllen + 1]; + outSqlDa->sqlvar[0].sqldata[sizeof(short) + outSqlDa->sqlvar[0].sqllen] = '\0'; + + FbException::check(isc_dsql_execute2(statusVector, &trHandle, &stmtHandle, + SQL_DIALECT_CURRENT, inSqlDa, outSqlDa), status, statusVector); + FbException::check(isc_dsql_free_statement( + statusVector, &stmtHandle, DSQL_unprepare), status, statusVector); + + delete [] inSqlDa->sqlvar[0].sqldata; + delete [] reinterpret_cast<char*>(inSqlDa); + + unsigned count = triggerMetadata->getCount(status); + + char buffer[65536]; + strcpy(buffer, "execute block (\n"); + + for (unsigned i = 0; i < count; ++i) + { + if (i > 0) + strcat(buffer, ",\n"); + + const char* name = triggerMetadata->getField(status, i); + + strcat(buffer, " p"); + sprintf(buffer + strlen(buffer), "%d type of column \"%s\".\"%s\" = ?", i, table, name); + } + + strcat(buffer, + ")\n" + "as\n" + "begin\n" + " execute statement ('insert into \""); + + strcat(buffer, table); + strcat(buffer, "\" ("); + + for (unsigned i = 0; i < count; ++i) + { + if (i > 0) + strcat(buffer, ", "); + + const char* name = triggerMetadata->getField(status, i); + + strcat(buffer, "\""); + strcat(buffer, name); + strcat(buffer, "\""); + } + + strcat(buffer, ") values ("); + + for (unsigned i = 0; i < count; ++i) + { + if (i > 0) + strcat(buffer, ", "); + strcat(buffer, "?"); + } + + strcat(buffer, ")') ("); + + for (unsigned i = 0; i < count; ++i) + { + if (i > 0) + strcat(buffer, ", "); + strcat(buffer, ":p"); + sprintf(buffer + strlen(buffer), "%d", i); + } + + strcat(buffer, ")\n on external data source '"); + strcat(buffer, outSqlDa->sqlvar[0].sqldata + sizeof(short)); + strcat(buffer, "';\nend"); + + IAttachment* attachment = context->getAttachment(status); + ITransaction* transaction = context->getTransaction(status); + + stmt.reset(attachment->prepare(status, transaction, 0, buffer, SQL_DIALECT_CURRENT, 0)); + + delete [] outSqlDa->sqlvar[0].sqldata; + delete [] reinterpret_cast<char*>(outSqlDa); + } + + /*** + FB_UDR_DESTRUCTOR + { + } + ***/ + + FB_UDR_EXECUTE_TRIGGER + { + ITransaction* transaction = context->getTransaction(status); + + // This will not work if the table has computed fields. + stmt->execute(status, transaction, triggerMetadata, newFields, NULL, NULL); + } + + AutoRelease<IMessageMetadata> triggerMetadata; + AutoRelease<IStatement> stmt; +FB_UDR_END_TRIGGER + + +FB_UDR_BEGIN_TRIGGER(replicate_persons) + // Order of fields does not need to match the fields order in the table, but it should match + // the order of fields in the SQL command constructed in the initialization. + FB_UDR_TRIGGER_MESSAGE(FieldsMessage, + (FB_INTEGER, id, "ID") + (FB_BLOB, info, "INFO") + ///(FB_VARCHAR(60 * 4), address, "ADDRESS") + (FB_VARCHAR(60 * 4), name, "NAME") + ); + + FB_UDR_CONSTRUCTOR + , triggerMetadata(metadata->getTriggerMetadata(status)) + { + ISC_STATUS_ARRAY statusVector = {0}; + isc_db_handle dbHandle = getIscDbHandle(status, context); + isc_tr_handle trHandle = getIscTrHandle(status, context); + + isc_stmt_handle stmtHandle = 0; + FbException::check(isc_dsql_allocate_statement( + statusVector, &dbHandle, &stmtHandle), status, statusVector); + FbException::check(isc_dsql_prepare(statusVector, &trHandle, &stmtHandle, 0, + "select data_source from replicate_config where name = ?", + SQL_DIALECT_CURRENT, NULL), status, statusVector); + + const char* table = metadata->getTriggerTable(status); + + // Skip the first exclamation point, separating the module name and entry point. + const char* info = strchr(metadata->getEntryPoint(status), '!'); + + // Skip the second exclamation point, separating the entry point and the misc info (config). + if (info) + info = strchr(info + 1, '!'); + + if (info) + ++info; + else + info = ""; + + XSQLDA* inSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]); + inSqlDa->version = SQLDA_VERSION1; + inSqlDa->sqln = 1; + FbException::check(isc_dsql_describe_bind( + statusVector, &stmtHandle, SQL_DIALECT_CURRENT, inSqlDa), status, statusVector); + inSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + inSqlDa->sqlvar[0].sqllen]; + strncpy(inSqlDa->sqlvar[0].sqldata + sizeof(short), info, inSqlDa->sqlvar[0].sqllen); + *reinterpret_cast<short*>(inSqlDa->sqlvar[0].sqldata) = strlen(info); + + XSQLDA* outSqlDa = reinterpret_cast<XSQLDA*>(new char[(XSQLDA_LENGTH(1))]); + outSqlDa->version = SQLDA_VERSION1; + outSqlDa->sqln = 1; + FbException::check(isc_dsql_describe( + statusVector, &stmtHandle, SQL_DIALECT_CURRENT, outSqlDa), status, statusVector); + outSqlDa->sqlvar[0].sqldata = new char[sizeof(short) + outSqlDa->sqlvar[0].sqllen + 1]; + outSqlDa->sqlvar[0].sqldata[sizeof(short) + outSqlDa->sqlvar[0].sqllen] = '\0'; + + FbException::check(isc_dsql_execute2(statusVector, &trHandle, &stmtHandle, + SQL_DIALECT_CURRENT, inSqlDa, outSqlDa), status, statusVector); + FbException::check(isc_dsql_free_statement( + statusVector, &stmtHandle, DSQL_unprepare), status, statusVector); + + delete [] inSqlDa->sqlvar[0].sqldata; + delete [] reinterpret_cast<char*>(inSqlDa); + + char buffer[65536]; + strcpy(buffer, + "execute block (\n" + " id type of column PERSONS.ID = ?,\n" + " info type of column PERSONS.INFO = ?,\n" + ///" address type of column PERSONS.ADDRESS = ?,\n" + " name type of column PERSONS.NAME = ?\n" + ")" + "as\n" + "begin\n" + " execute statement ('insert into persons (id, name/***, address***/, info)\n" + " values (?, ?/***, ?***/, ?)') (:id, :name/***, :address***/, :info)\n" + " on external data source '"); + strcat(buffer, outSqlDa->sqlvar[0].sqldata + sizeof(short)); + strcat(buffer, "';\nend"); + + IAttachment* attachment = context->getAttachment(status); + ITransaction* transaction = context->getTransaction(status); + + stmt.reset(attachment->prepare(status, transaction, 0, buffer, SQL_DIALECT_CURRENT, 0)); + + delete [] outSqlDa->sqlvar[0].sqldata; + delete [] reinterpret_cast<char*>(outSqlDa); + } + + /*** + FB_UDR_DESTRUCTOR + { + } + ***/ + + FB_UDR_EXECUTE_TRIGGER + { + ITransaction* transaction = context->getTransaction(status); + + stmt->execute(status, transaction, triggerMetadata, newFields, NULL, NULL); + } + + AutoRelease<IMessageMetadata> triggerMetadata; + AutoRelease<IStatement> stmt; +FB_UDR_END_TRIGGER Property changes on: firebird/trunk/examples/udr/Triggers.cpp ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property A... [truncated message content] |
From: <ego...@us...> - 2015-01-26 15:23:29
|
Revision: 60563 http://sourceforge.net/p/firebird/code/60563 Author: egorpugin Date: 2015-01-26 15:23:27 +0000 (Mon, 26 Jan 2015) Log Message: ----------- [build] [cmake] Update build according to the last changes. Modified Paths: -------------- firebird/trunk/CMakeLists.txt firebird/trunk/builds/cmake/BuildFunctions.cmake firebird/trunk/examples/CMakeLists.txt firebird/trunk/src/CMakeLists.txt Modified: firebird/trunk/CMakeLists.txt =================================================================== --- firebird/trunk/CMakeLists.txt 2015-01-26 15:00:31 UTC (rev 60562) +++ firebird/trunk/CMakeLists.txt 2015-01-26 15:23:27 UTC (rev 60563) @@ -238,8 +238,9 @@ if (NOT CMAKE_CROSSCOMPILING) -add_executable (btyacc ${btyacc_src}) -project_group (btyacc Extern) +add_executable (btyacc ${btyacc_src}) +project_group (btyacc Extern) +set_output_directory (btyacc . FORCE) endif() # if (NOT CMAKE_CROSSCOMPILING) @@ -250,8 +251,8 @@ file(GLOB libtommath_src "extern/libtommath/*.c" "extern/libtommath/*.h") -add_library (libtommath ${libtommath_src}) -project_group (libtommath Extern) +add_library (libtommath ${libtommath_src}) +project_group (libtommath Extern) ######################################## Modified: firebird/trunk/builds/cmake/BuildFunctions.cmake =================================================================== --- firebird/trunk/builds/cmake/BuildFunctions.cmake 2015-01-26 15:00:31 UTC (rev 60562) +++ firebird/trunk/builds/cmake/BuildFunctions.cmake 2015-01-26 15:23:27 UTC (rev 60563) @@ -136,7 +136,7 @@ ####################################### function(set_win32 var) if (WIN32) - set(${var} ${ARGN} PARENT_SCOPE) + set(${var} "${ARGN}" PARENT_SCOPE) endif() endfunction(set_win32) @@ -145,7 +145,7 @@ ####################################### function(set_unix var) if (UNIX) - set(${var} ${ARGN} PARENT_SCOPE) + set(${var} "${ARGN}" PARENT_SCOPE) endif() endfunction(set_unix) @@ -154,7 +154,7 @@ ####################################### function(set_apple var) if (APPLE) - set(${var} ${ARGN} PARENT_SCOPE) + set(${var} "${ARGN}" PARENT_SCOPE) endif() endfunction(set_apple) Modified: firebird/trunk/examples/CMakeLists.txt =================================================================== --- firebird/trunk/examples/CMakeLists.txt 2015-01-26 15:00:31 UTC (rev 60562) +++ firebird/trunk/examples/CMakeLists.txt 2015-01-26 15:23:27 UTC (rev 60563) @@ -31,9 +31,9 @@ COMMAND gpre -r -m -n -z ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbuild.e empbuild.c ) -add_executable (empbuild empbuild.c ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbuild.e) +add_executable (empbuild empbuild.c empbuild.fdb ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbuild.e) target_link_libraries (empbuild yvalve) -set_output_directory (empbuild empbuild FORCE) +set_output_directory (empbuild . FORCE) add_dependencies (empbuild gfix engine12 fbtrace) project_group (empbuild Examples) @@ -47,21 +47,19 @@ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${F} ${name}) endforeach() -set_unix (CMD PATH=${output_dir}/bin) -set_apple(CMD DYLD_LIBRARY_PATH=${output_dir}/plugins:${output_dir}/lib ${CMD}) +set(EMPBUILD_CMD empbuild employe2.fdb) +set_win32(EMPBUILD_CMD set PATH=%PATH%\\\\;${output_dir} COMMAND ${EMPBUILD_CMD}) +set_unix (EMPBUILD_CMD PATH=${output_dir}/bin ${EMPBUILD_CMD}) +set_apple(EMPBUILD_CMD DYLD_LIBRARY_PATH=${output_dir}/plugins:${output_dir}/lib ${EMPBUILD_CMD}) -if (WIN32) - add_custom_command(OUTPUT employe2.fdb DEPENDS empbuild ${files} - COMMAND ${CMAKE_COMMAND} -E remove employe2.fdb - COMMAND set PATH=%PATH%\;${output_dir} - COMMAND ${CMD} $<TARGET_FILE:empbuild> employe2.fdb - ) -else() - add_custom_command(OUTPUT employe2.fdb DEPENDS empbuild ${files} - COMMAND ${CMAKE_COMMAND} -E remove employe2.fdb - COMMAND ${CMD} $<TARGET_FILE:empbuild> employe2.fdb - ) -endif() +add_custom_command( + OUTPUT employe2.fdb + DEPENDS + empbuild + ${files} + COMMAND ${CMAKE_COMMAND} -E remove employe2.fdb + COMMAND ${EMPBUILD_CMD} +) add_custom_target (employee_db DEPENDS employe2.fdb SOURCES ${files}) project_group (employee_db Examples) @@ -71,7 +69,9 @@ # SHARED LIBRARY udrcpp_example ######################################## -add_library (udrcpp_example SHARED udr/UdrCppExample.cpp) +file(GLOB udrcpp_example_src "udr/*") + +add_library (udrcpp_example SHARED ${udrcpp_example_src}) target_link_libraries (udrcpp_example udr_engine) set_output_directory (udrcpp_example plugins/udr) project_group (udrcpp_example Examples) Modified: firebird/trunk/src/CMakeLists.txt =================================================================== --- firebird/trunk/src/CMakeLists.txt 2015-01-26 15:00:31 UTC (rev 60562) +++ firebird/trunk/src/CMakeLists.txt 2015-01-26 15:23:27 UTC (rev 60563) @@ -181,8 +181,10 @@ add_custom_target(databases DEPENDS boot_engine12 + help.fdb + metadata.fdb msg.fdb - help.fdb + security.fdb SOURCES ${databases_src} ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ego...@us...> - 2015-01-26 19:20:52
|
Revision: 60564 http://sourceforge.net/p/firebird/code/60564 Author: egorpugin Date: 2015-01-26 19:20:48 +0000 (Mon, 26 Jan 2015) Log Message: ----------- [build] [cmake] Fix crosscompiling for android on linux. Modified Paths: -------------- firebird/trunk/CMakeLists.txt firebird/trunk/examples/CMakeLists.txt firebird/trunk/src/CMakeLists.txt firebird/trunk/src/utilities/CMakeLists.txt Modified: firebird/trunk/CMakeLists.txt =================================================================== --- firebird/trunk/CMakeLists.txt 2015-01-26 15:23:27 UTC (rev 60563) +++ firebird/trunk/CMakeLists.txt 2015-01-26 19:20:48 UTC (rev 60564) @@ -122,6 +122,24 @@ endif() if (UNIX) + if (CMAKE_CROSSCOMPILING) + find_path(ICU_INCLUDE_DIR unicode/ucnv.h + PATHS + /usr/include + /usr/include/x86_64-linux-gnu + /usr/local/include + /opt/local/include + CMAKE_FIND_ROOT_PATH_BOTH + ) + if (ICU_INCLUDE_DIR) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory + ${ICU_INCLUDE_DIR}/unicode + ${CMAKE_BINARY_DIR}/unicode + ) + include_directories(${CMAKE_BINARY_DIR}) + endif() + endif() + set(OS_DIR posix) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") Modified: firebird/trunk/examples/CMakeLists.txt =================================================================== --- firebird/trunk/examples/CMakeLists.txt 2015-01-26 15:23:27 UTC (rev 60563) +++ firebird/trunk/examples/CMakeLists.txt 2015-01-26 19:20:48 UTC (rev 60564) @@ -34,7 +34,7 @@ add_executable (empbuild empbuild.c empbuild.fdb ${CMAKE_CURRENT_SOURCE_DIR}/empbuild/empbuild.e) target_link_libraries (empbuild yvalve) set_output_directory (empbuild . FORCE) -add_dependencies (empbuild gfix engine12 fbtrace) +add_dependencies_cc (empbuild gfix engine12 fbtrace) project_group (empbuild Examples) file(GLOB files Modified: firebird/trunk/src/CMakeLists.txt =================================================================== --- firebird/trunk/src/CMakeLists.txt 2015-01-26 15:23:27 UTC (rev 60563) +++ firebird/trunk/src/CMakeLists.txt 2015-01-26 19:20:48 UTC (rev 60564) @@ -504,7 +504,7 @@ add_library (udr_engine SHARED ${udr_engine_src} ${VERSION_RC}) target_link_libraries (udr_engine common yvalve) set_output_directory (udr_engine plugins) -set_exported_symbols (udr_engine plugin) +set_exported_symbols (udr_engine fbplugin) ######################################## Modified: firebird/trunk/src/utilities/CMakeLists.txt =================================================================== --- firebird/trunk/src/utilities/CMakeLists.txt 2015-01-26 15:23:27 UTC (rev 60563) +++ firebird/trunk/src/utilities/CMakeLists.txt 2015-01-26 19:20:48 UTC (rev 60564) @@ -57,7 +57,7 @@ add_library (fbtrace SHARED ${fbtrace_src} ${fbtrace_os_src} ${fbtrace_include} ${VERSION_RC}) target_link_libraries (fbtrace common yvalve) -add_dependencies (fbtrace engine12 build_msg codes) # try to wait all generators stop +add_dependencies_cc (fbtrace engine12 build_msg codes) # try to wait all generators stop set_output_directory (fbtrace plugins) set_exported_symbols (fbtrace fbplugin) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ale...@us...> - 2015-01-27 10:46:56
|
Revision: 60571 http://sourceforge.net/p/firebird/code/60571 Author: alexpeshkoff Date: 2015-01-27 10:46:48 +0000 (Tue, 27 Jan 2015) Log Message: ----------- Work in progress on CORE-3885: Firebird for Android, build is complete Modified Paths: -------------- firebird/trunk/builds/posix/Makefile.in firebird/trunk/builds/posix/Makefile.in.plugins_examples firebird/trunk/builds/posix/make.android.arme firebird/trunk/builds/posix/make.defaults firebird/trunk/builds/posix/make.rules firebird/trunk/configure.ac firebird/trunk/src/common/ThreadStart.cpp firebird/trunk/src/common/ThreadStart.h firebird/trunk/src/common/classes/init.cpp firebird/trunk/src/include/cross/android.arme firebird/trunk/src/remote/server/os/posix/inet_server.cpp Modified: firebird/trunk/builds/posix/Makefile.in =================================================================== --- firebird/trunk/builds/posix/Makefile.in 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/builds/posix/Makefile.in 2015-01-27 10:46:48 UTC (rev 60571) @@ -130,7 +130,7 @@ # main build target for both debug abd release builds # -.PHONY: cross1 cross2 boot yvalve engine fbintl gpre utilities plugins rest codes ids examples +.PHONY: cross1 cross2 boot yvalve engine fbintl gpre utilities plugins rest codes ids examples cross_rest master_process: ln -sf $(SRC_ROOT)/include/gen/autoconfig.auto $(SRC_ROOT)/include/gen/autoconfig.h @@ -187,13 +187,22 @@ # even if gpre itself was not rebuilt -$(RM) $(GPRE_CURRENT) (cd $(BIN); $(LN) $(notdir $(RUN_GPRE)) $(notdir $(GPRE_CURRENT))) + $(MAKE) include_generic + $(MAKE) -f Makefile.examples -C $(GEN_ROOT)/examples/ cross2: ln -sf $(SRC_ROOT)/include/cross/$(CROSS_CONFIG) $(SRC_ROOT)/include/gen/autoconfig.h + $(MAKE) prerequisites $(MAKE) tommath $(MAKE) yvalve + $(MAKE) engine + $(MAKE) fbintl + $(MAKE) utilities + $(MAKE) $(GPRE) + $(MAKE) plugins + $(MAKE) -f Makefile.plugins_examples -C $(GEN_ROOT)/examples/ + $(MAKE) cross_rest - #___________________________________________________________________________ # static library - various common code, used in different FB projects # @@ -493,10 +502,17 @@ # all the rest we need to build # -.PHONY: qli message_file +.PHONY: qli message_file gbak_files +FDB_FILES := $(HELP_FDB) $(ROOT)/gen/msg.fdb $(SECURITY_FDB) $(FIREBIRD)/examples/empbuild/employee.fdb +GBAK_FILES := $(FDB_FILES:.fdb=.gbak) $(FIREBIRD)/msg.gbak +GBAK_FILES := $(subst Native,$(TARGET),$(GBAK_FILES)) + rest: qli message_file +cross_rest: qli gbak_files + $(MAKE) $(BUILD_FILE) + qli: $(QLI) $(QLI): $(QLI_Objects) $(COMMON_LIB) @@ -508,14 +524,18 @@ message_file: $(FIREBIRD_MSG) -$(FIREBIRD_MSG): $(RUN_BUILD_FILE) msg.timestamp - $(RUN_BUILD_FILE) -d msg.fdb -f $@ +$(FIREBIRD_MSG): $(BUILD_FILE) msg.timestamp + $(BUILD_FILE) -d msg.fdb -f $@ $(CHMOD_6) $@ $(BUILD_FILE): $(BUILD_Objects) $(COMMON_LIB) $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS) +gbak_files: $(GBAK_FILES) +$(GEN_ROOT)/$(TARGET)/firebird/msg.gbak: $(ROOT)/gen/msg.gbak + cp $^ $@ + #--------------------------------------------------------------------------- # This target builds the include files for distribution with the release Modified: firebird/trunk/builds/posix/Makefile.in.plugins_examples =================================================================== --- firebird/trunk/builds/posix/Makefile.in.plugins_examples 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/builds/posix/Makefile.in.plugins_examples 2015-01-27 10:46:48 UTC (rev 60571) @@ -39,7 +39,11 @@ CPPFLAGS+= -I$(FB_BUILD)/include include $(ROOT)/gen/make.defaults +ifeq ($(CROSS_OUT), Y) +include $(ROOT)/gen/make.crossPlatform +else include $(ROOT)/gen/make.platform +endif include $(ROOT)/gen/make.rules include $(ROOT)/gen/make.shared.variables Modified: firebird/trunk/builds/posix/make.android.arme =================================================================== --- firebird/trunk/builds/posix/make.android.arme 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/builds/posix/make.android.arme 2015-01-27 10:46:48 UTC (rev 60571) @@ -3,16 +3,24 @@ $(error Must export NDK location before building for Android) endif NDK_ROOT:=$(NDK) -NDK_LOG:=1 +#NDK_LOG:=1 include $(NDK)/build/core/init.mk + TOOLCHAIN_DIR:=$(foreach chain, $(NDK_ALL_TOOLCHAINS), $(if $(findstring arm, $(chain)), $(chain), )) -TOOLCHAIN_DIR:=$(strip $(TOOLCHAIN_DIR)) +# Filter out clang +TEMP_LIST_DIR := $(foreach chain, $(TOOLCHAIN_DIR), $(if $(findstring clang, $(chain)), , $(chain))) +ifdef TEMP_LIST_DIR + TOOLCHAIN_DIR := $(TEMP_LIST_DIR) +endif +# use freshmost compiler +TOOLCHAIN_DIR:=$(lastword $(TOOLCHAIN_DIR)) + ifeq ($(HOST_TAG64),) HOST_TAG64:=linux-x86 endif NDK_TOOLCHAIN_VERSION:=$(shell echo $(TOOLCHAIN_DIR) | awk -F - '{print $$NF;}') -CROSS_PLATFORM:=$(NDK)/platforms/android-9/arch-arm +CROSS_PLATFORM:=$(NDK)/platforms/android-14/arch-arm CROSS_PREFIX:=$(NDK)/toolchains/$(TOOLCHAIN_DIR)/prebuilt/$(HOST_TAG64)/bin/arm-linux-androideabi- CXX:=$(CROSS_PREFIX)g++ @@ -28,8 +36,9 @@ COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DANDROID -DARM -pipe -MMD -fPIC -fmessage-length=0 \ -I$(ROOT)/extern/libtommath --sysroot=$(CROSS_PLATFORM) \ - -I/usr/include -OPTIMIZE_FLAGS=-O0 -fno-omit-frame-pointer # optimizing cause bugs... - i.e. -O0 + -I$(CROSS_PLATFORM)/usr/include -I$(ROOT)/gen/cross + +OPTIMIZE_FLAGS=-fno-omit-frame-pointer WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable PROD_FLAGS=$(COMMON_FLAGS) $(OPTIMIZE_FLAGS) @@ -47,3 +56,19 @@ EXE_LINK_OPTIONS= $(LDFLAGS) $(UNDEF_FLAGS) $(LIB_PATH_OPTS) $(LINK_EMPTY_SYMBOLS) LIB_LINK_OPTIONS= $(LDFLAGS) -shared + +UNICODE_DIR := $(shell dirname `find /usr/include -name ucnv.h`) +UNICODE_DIR := $(filter %unicode, $(UNICODE_DIR)) +UNICODE_DIR := $(firstword $(UNICODE_DIR)) +ifndef UNICODE_DIR + $(error ERROR while locating ICU include directory, probably missing ucnv.h) +endif + +.PHONY: prerequisites +prerequisites: $(ROOT)/gen/cross/unicode + +$(ROOT)/gen/cross/unicode: + echo $(UNICODE_DIR) + rm -rf $(ROOT)/gen/cross + mkdir $(ROOT)/gen/cross + ln -s $(UNICODE_DIR) cross/unicode Modified: firebird/trunk/builds/posix/make.defaults =================================================================== --- firebird/trunk/builds/posix/make.defaults 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/builds/posix/make.defaults 2015-01-27 10:46:48 UTC (rev 60571) @@ -297,8 +297,8 @@ # Per-library link rules LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) $(UNDEF_FLAGS)\ - $(call LIB_LINK_RPATH,lib) $(SO_LINK_LIBS) -LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util + $(call LIB_LINK_RPATH,lib) +LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util $(SO_LINK_LIBS) LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) @@ -375,7 +375,6 @@ # From msgs CHECK_MESSAGES = $(BIN)/check_messages$(EXEC_EXT) BUILD_FILE = $(BIN)/build_file$(EXEC_EXT) -RUN_BUILD_FILE = $(RBIN)/build_file$(EXEC_EXT) FIREBIRD_MSG = $(FIREBIRD)/firebird.msg ENTER_MESSAGES = $(BIN)/enter_messages$(EXEC_EXT) Modified: firebird/trunk/builds/posix/make.rules =================================================================== --- firebird/trunk/builds/posix/make.rules 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/builds/posix/make.rules 2015-01-27 10:46:48 UTC (rev 60571) @@ -104,3 +104,13 @@ $(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc windres --output-format=coff --include-dir=$(<D) $< $@ + +# Rule for making gbak files when cross-compiling + +.SUFFIXES: .gbak .fdb + +$(GEN_ROOT)/$(TARGET)/%.gbak: $(GEN_ROOT)/Native/%.fdb + $(RUN_GBAK) -b $(firstword $<) $(firstword $@) + +$(GEN_ROOT)/%.gbak: $(GEN_ROOT)/%.fdb + $(RUN_GBAK) -b $(firstword $<) $(firstword $@) Modified: firebird/trunk/configure.ac =================================================================== --- firebird/trunk/configure.ac 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/configure.ac 2015-01-27 10:46:48 UTC (rev 60571) @@ -706,6 +706,7 @@ AC_CHECK_HEADERS(sys/ioctl.h) AC_CHECK_HEADERS(sys/select.h) AC_CHECK_HEADERS(sys/syscall.h) +AC_CHECK_HEADERS(sys/signal.h) AC_CHECK_HEADERS(limits.h) AC_CHECK_HEADERS(setjmp.h) AC_CHECK_HEADERS(stdarg.h) Modified: firebird/trunk/src/common/ThreadStart.cpp =================================================================== --- firebird/trunk/src/common/ThreadStart.cpp 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/src/common/ThreadStart.cpp 2015-01-27 10:46:48 UTC (rev 60571) @@ -200,7 +200,7 @@ ThreadId Thread::getId() { -#ifdef LINUX +#if defined(LINUX) && !defined(ANDROID) return syscall(SYS_gettid); #else return pthread_self(); Modified: firebird/trunk/src/common/ThreadStart.h =================================================================== --- firebird/trunk/src/common/ThreadStart.h 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/src/common/ThreadStart.h 2015-01-27 10:46:48 UTC (rev 60571) @@ -56,7 +56,7 @@ #if defined(WIN_NT) typedef DWORD ThreadId; -#elif defined(LINUX) +#elif defined(LINUX) && !defined(ANDROID) typedef int ThreadId; #elif defined(USE_POSIX_THREADS) typedef pthread_t ThreadId; Modified: firebird/trunk/src/common/classes/init.cpp =================================================================== --- firebird/trunk/src/common/classes/init.cpp 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/src/common/classes/init.cpp 2015-01-27 10:46:48 UTC (rev 60571) @@ -56,7 +56,7 @@ // This helps initialize globals, needed before regular ctors run int initDone = 0; -#ifndef WIN_NT +#ifdef HAVE_PTHREAD_ATFORK void child(void) { // turn off dtors execution in forked process @@ -132,7 +132,7 @@ #endif //DEBUG_INIT initDone = 1; -#ifndef WIN_NT +#ifdef HAVE_PTHREAD_ATFORK int ret = pthread_atfork(NULL, NULL, child); #endif Modified: firebird/trunk/src/include/cross/android.arme =================================================================== --- firebird/trunk/src/include/cross/android.arme 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/src/include/cross/android.arme 2015-01-27 10:46:48 UTC (rev 60571) @@ -125,7 +125,7 @@ /* #undef GPRE_PASCAL */ /* Define to 1 if you have the <aio.h> header file. */ -#define HAVE_AIO_H 1 +/* #undef HAVE_AIO_H */ /* Define this if AO_compare_and_swap_full() is defined in atomic_ops.h */ /* #undef HAVE_AO_COMPARE_AND_SWAP_FULL */ @@ -162,7 +162,7 @@ #define HAVE_DLFCN_H 1 /* Define this if editline is in use */ -#define HAVE_EDITLINE_H 1 +/* #undef HAVE_EDITLINE_H */ /* Define to 1 if you have the <errno.h> header file. */ #define HAVE_ERRNO_H 1 @@ -291,7 +291,7 @@ #define HAVE_POLL_H 1 /* Define this if posix_fadvise() is present on the platform */ -#define HAVE_POSIX_FADVISE 1 +/* #undef HAVE_POSIX_FADVISE */ /* Define to 1 if you have the `pread' function. */ #define HAVE_PREAD 1 @@ -369,7 +369,7 @@ #define HAVE_SIGNAL_H 1 /* Define to 1 if you have the `sigset' function. */ -#define HAVE_SIGSET 1 +/* #undef HAVE_SIGSET */ /* Define to 1 if you have the `snprintf' function. */ #define HAVE_SNPRINTF 1 @@ -587,6 +587,9 @@ /* Architecture is big-edian sh4 */ /* #undef SHEB */ +/* Extension for shared libraries */ +#define SHRLIB_EXT "so" + /* The size of `long', as computed by sizeof. */ #define SIZEOF_LONG 4 Modified: firebird/trunk/src/remote/server/os/posix/inet_server.cpp =================================================================== --- firebird/trunk/src/remote/server/os/posix/inet_server.cpp 2015-01-27 10:33:10 UTC (rev 60570) +++ firebird/trunk/src/remote/server/os/posix/inet_server.cpp 2015-01-27 10:46:48 UTC (rev 60571) @@ -92,13 +92,11 @@ #include "../auth/trusted/AuthSspi.h" #include "../auth/SecureRemotePassword/server/SrpServer.h" -#ifdef UNIX -#ifdef NETBSD +#ifdef HAVE_SYS_SIGNAL_H +#include <sys/signal.h> +#else #include <signal.h> -#else -#include <sys/signal.h> #endif -#endif #ifdef HAVE_SYS_RESOURCE_H #include <sys/resource.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ego...@us...> - 2015-01-27 14:38:01
|
Revision: 60572 http://sourceforge.net/p/firebird/code/60572 Author: egorpugin Date: 2015-01-27 14:37:59 +0000 (Tue, 27 Jan 2015) Log Message: ----------- Improve Qt+MSVC build. Fix some messages. Crosscompiling improvements (add some defines). Modified Paths: -------------- firebird/trunk/CMakeLists.txt firebird/trunk/builds/cmake/BuildFunctions.cmake firebird/trunk/builds/cmake/Configure.cmake firebird/trunk/src/CMakeLists.txt firebird/trunk/src/include/gen/autoconfig.h.in Modified: firebird/trunk/CMakeLists.txt =================================================================== --- firebird/trunk/CMakeLists.txt 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/CMakeLists.txt 2015-01-27 14:37:59 UTC (rev 60572) @@ -2,18 +2,18 @@ # firebird (trunk) # -############################################################################### +################################################################################ # # cmake settings # -############################################################################### +################################################################################ cmake_minimum_required(VERSION 2.8.8) # In-source builds are not possible and so disabled. if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) message(FATAL_ERROR - "CMake generation for firebird is not possible within the source directory!" + "CMake generation for Firebird is not possible within the source directory!" "\n Remove the CMakeCache.txt file and try again from another folder, e.g.:" "\n " "\n rm CMakeCache.txt" @@ -35,16 +35,37 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake Targets") -############################################################################### +################################################################################ # # project settings # -############################################################################### +################################################################################ project("firebird" C CXX) -####################################### +######################################## +# build type settings +######################################## +# Define build mode +if (NOT DEFINED CMAKE_BUILD_TYPE OR "${CMAKE_BUILD_TYPE}" STREQUAL "") + set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build.") +endif() + +# Qt with MSVC does not have multiconfiguration option by default, +# so we create it. +set(DEFAULT_CONFIGURATION) + +# Set build types if none was specified +if (NOT DEFINED CMAKE_CONFIGURATION_TYPES) + set(CMAKE_CONFIGURATION_TYPES Debug Release MinSizeRel RelWithDebInfo) + set(DEFAULT_CONFIGURATION ${CMAKE_BUILD_TYPE}) +endif() + +######################################## +# Output directory settings +######################################## + set(output_dir ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${output_dir}) @@ -54,6 +75,13 @@ set(output_dir ${output_dir}/$<CONFIG>) endif() +if (MSVC AND DEFAULT_CONFIGURATION) + foreach(conf ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER ${conf} conf2) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${conf2} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${DEFAULT_CONFIGURATION}) + endforeach() +endif() + if (XCODE) foreach(conf ${CMAKE_CONFIGURATION_TYPES}) string(TOUPPER ${conf} conf2) @@ -64,11 +92,11 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${output_dir}/bin) endif() -############################################################################### +################################################################################ # # configure # -############################################################################### +################################################################################ include(Configure) @@ -93,11 +121,11 @@ set(AUTOCONFIG ${CMAKE_BINARY_DIR}/src/include/gen/autoconfig.h) configure_file(${AUTOCONFIG_SRC} ${AUTOCONFIG} @ONLY) -############################################################################### +################################################################################ # # compiler & linker # -############################################################################### +################################################################################ add_definitions(-DDEV_BUILD) @@ -175,11 +203,11 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread") endif() -############################################################################### +################################################################################ # # pre build # -############################################################################### +################################################################################ if (WIN32) # icu @@ -228,12 +256,11 @@ endforeach() endif() - -############################################################################### +################################################################################ # # build # -############################################################################### +################################################################################ include(BuildFunctions) @@ -273,9 +300,11 @@ project_group (libtommath Extern) ######################################## +# subdirectories +######################################## add_subdirectory("examples") add_subdirectory("src") -############################################################################### +################################################################################ Modified: firebird/trunk/builds/cmake/BuildFunctions.cmake =================================================================== --- firebird/trunk/builds/cmake/BuildFunctions.cmake 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/builds/cmake/BuildFunctions.cmake 2015-01-27 14:37:59 UTC (rev 60572) @@ -27,7 +27,7 @@ set_target_properties(${target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${conf2} ${out}/${conf}/${dir}) endforeach() else() # single configuration - execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${out}/${dir}) + add_custom_command(TARGET ${target} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${out}/${dir}) set_target_properties(${target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${out}/${dir}) set_target_properties(${target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${out}/${dir}) endif() @@ -103,7 +103,7 @@ ) elseif ("${type}" STREQUAL "master") get_filename_component(file ${out} NAME) - set(dir ${dir}/${file}.d) + set(dir ${dir}/${file}.d) add_custom_command( OUTPUT ${out} DEPENDS ${in} databases Modified: firebird/trunk/builds/cmake/Configure.cmake =================================================================== --- firebird/trunk/builds/cmake/Configure.cmake 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/builds/cmake/Configure.cmake 2015-01-27 14:37:59 UTC (rev 60572) @@ -40,8 +40,8 @@ function(check_type_alignment type var) if (NOT DEFINED ${var}) check_c_source_runs("main(){struct s{char a;${type} b;};exit((int)&((struct s*)0)->b);}" ${var}) - #message("-- Performing Test ${var} - It's still OK.") - message("-- Performing Test ${var} - Success") + #message(STATUS "Performing Test ${var} - It's still OK.") + message(STATUS "Performing Test ${var} - Success") set(${var} ${${var}_EXITCODE} CACHE STRING "${type} alignment" FORCE) endif() endfunction(check_type_alignment) Modified: firebird/trunk/src/CMakeLists.txt =================================================================== --- firebird/trunk/src/CMakeLists.txt 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/src/CMakeLists.txt 2015-01-27 14:37:59 UTC (rev 60572) @@ -92,18 +92,22 @@ # BUILD STEP databases ######################################## -set(databases_src - ${CMAKE_CURRENT_SOURCE_DIR}/dbs/security.sql +set(msgs_src ${CMAKE_CURRENT_SOURCE_DIR}/msgs/facilities2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/history2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/locales.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/messages2.sql + ${CMAKE_CURRENT_SOURCE_DIR}/msgs/msg.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/sqlstates.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/symbols2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/system_errors2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.de_DE2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.fr_FR2.sql ) +set(databases_src + ${CMAKE_CURRENT_SOURCE_DIR}/dbs/security.sql + ${msgs_src} +) add_custom_command( OUTPUT security.fdb DEPENDS @@ -112,8 +116,8 @@ VERBATIM # COMMAND ${CMAKE_COMMAND} -E remove security3.fdb - COMMAND ${CMAKE_COMMAND} -E echo "create database 'security3.fdb';" > create_db.sql - COMMAND boot_isql -q -i create_db.sql + COMMAND ${CMAKE_COMMAND} -E echo "create database 'security3.fdb';" > create_db_security3.sql + COMMAND boot_isql -q -i create_db_security3.sql COMMAND boot_isql -q security3.fdb -i ${CMAKE_CURRENT_SOURCE_DIR}/dbs/security.sql COMMAND ${CMAKE_COMMAND} -E copy_if_different security3.fdb security.fdb ) @@ -132,21 +136,11 @@ VERBATIM DEPENDS boot_isql - metadata.fdb - security.fdb - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/facilities2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/history2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/locales.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/messages2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/sqlstates.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/symbols2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/system_errors2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.de_DE2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.fr_FR2.sql + ${msgs_src} # COMMAND ${CMAKE_COMMAND} -E remove msg.fdb - COMMAND ${CMAKE_COMMAND} -E echo "create database 'msg.fdb';" > create_db.sql - COMMAND boot_isql -q -i create_db.sql + COMMAND ${CMAKE_COMMAND} -E echo "create database 'msg.fdb';" > create_db_msg.sql + COMMAND boot_isql -q -i create_db_msg.sql COMMAND ${isql_exec_msg}/msg.sql # COMMAND echo loading facilities @@ -774,7 +768,7 @@ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/extern/icu/icudt52l_empty.dat ${output_dir}/icudt52l_empty.dat ) - string(FIND ${CMAKE_EXE_LINKER_FLAGS} "/machine:x64" arch) + string(FIND "${CMAKE_EXE_LINKER_FLAGS}" "/machine:x64" arch) if (NOT ${arch} EQUAL -1) set(arch "x64") else() Modified: firebird/trunk/src/include/gen/autoconfig.h.in =================================================================== --- firebird/trunk/src/include/gen/autoconfig.h.in 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/src/include/gen/autoconfig.h.in 2015-01-27 14:37:59 UTC (rev 60572) @@ -45,6 +45,9 @@ /* Define this if OS is AIX */ #cmakedefine AIX 1 +/* Define this if OS is ANDROID */ +#cmakedefine ANDROID 1 + /* Define this if OS is DARWIN */ #cmakedefine DARWIN 1 @@ -54,6 +57,9 @@ /* Define this if OS is HP-UX */ #cmakedefine HPUX 1 +/* Define this if OS is iOS */ +#cmakedefine IOS 1 + /* Define this if OS is Linux */ #cmakedefine LINUX 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ego...@us...> - 2015-01-29 07:10:49
|
Revision: 60580 http://sourceforge.net/p/firebird/code/60580 Author: egorpugin Date: 2015-01-29 07:10:47 +0000 (Thu, 29 Jan 2015) Log Message: ----------- [build] [cmake] Extract ICU and zlib only once. Modified Paths: -------------- firebird/trunk/CMakeLists.txt firebird/trunk/src/CMakeLists.txt Modified: firebird/trunk/CMakeLists.txt =================================================================== --- firebird/trunk/CMakeLists.txt 2015-01-28 17:12:57 UTC (rev 60579) +++ firebird/trunk/CMakeLists.txt 2015-01-29 07:10:47 UTC (rev 60580) @@ -211,14 +211,20 @@ if (WIN32) # icu - set(ICU_EXTRACT ${CMAKE_CURRENT_SOURCE_DIR}/extern/icu/icu.exe -y) - #message("Extracting pre-built ICU") - execute_process(COMMAND ${ICU_EXTRACT}) + if (NOT ICU_EXTRACT) + message(STATUS "Extracting pre-built ICU") + set(ICU_EXTRACT ${CMAKE_CURRENT_SOURCE_DIR}/extern/icu/icu.exe -y + CACHE STRING "ICU extraction variable") + execute_process(COMMAND ${ICU_EXTRACT}) + endif() # zlib - set(ZLIB_EXTRACT ${CMAKE_CURRENT_SOURCE_DIR}/extern/zlib/zlib.exe -y) - #message("Extracting pre-built zlib") - execute_process(COMMAND ${ZLIB_EXTRACT}) + if (NOT ZLIB_EXTRACT) + message(STATUS "Extracting pre-built zlib") + set(ZLIB_EXTRACT ${CMAKE_CURRENT_SOURCE_DIR}/extern/zlib/zlib.exe -y + CACHE STRING "zlib extraction variable") + execute_process(COMMAND ${ZLIB_EXTRACT}) + endif() endif() if (UNIX) Modified: firebird/trunk/src/CMakeLists.txt =================================================================== --- firebird/trunk/src/CMakeLists.txt 2015-01-28 17:12:57 UTC (rev 60579) +++ firebird/trunk/src/CMakeLists.txt 2015-01-29 07:10:47 UTC (rev 60580) @@ -413,13 +413,13 @@ file(GLOB_RECURSE engine12_include "dsql/*.h" "jrd/*.h" include/gen/iberror.h) -add_library (engine12_common OBJECT ${engine12_src} ${engine12_include} ${parse_src}) +add_library (engine12_common ${engine12_src} ${engine12_include} ${parse_src}) add_dependencies_cc (engine12_common parse) if (NOT CMAKE_CROSSCOMPILING) -add_library (boot_engine12 SHARED $<TARGET_OBJECTS:engine12_common> ${engine12_generated_src_boot} ${VERSION_RC}) -target_link_libraries (boot_engine12 boot_alice boot_burp common boot_yvalve) +add_library (boot_engine12 SHARED ${engine12_generated_src_boot} ${VERSION_RC}) +target_link_libraries (boot_engine12 engine12_common boot_alice boot_burp common boot_yvalve) set_output_directory (boot_engine12 plugins) set_exported_symbols (boot_engine12 fbplugin) copy_and_rename_lib (boot_engine12 Engine12) @@ -432,8 +432,8 @@ # SHARED LIBRARY engine12 ######################################## -add_library (engine12 SHARED $<TARGET_OBJECTS:engine12_common> ${engine12_generated_src_master} ${VERSION_RC}) -target_link_libraries (engine12 alice burp common yvalve) +add_library (engine12 SHARED ${engine12_generated_src_master} ${VERSION_RC}) +target_link_libraries (engine12 engine12_common alice burp common yvalve) add_dependencies_cc (engine12 messages) # possible build during build_msg or codes run set_target_properties (engine12 PROPERTIES OUTPUT_NAME Engine12) set_output_directory (engine12 plugins) @@ -724,7 +724,7 @@ ######################################## add_executable (gbak burp/main/burpMain.cpp ${gbak_include} ${VERSION_RC}) -target_link_libraries (gbak burp yvalve common) +target_link_libraries (gbak burp common yvalve) ######################################## This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |