|
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.
|