From: <fir...@us...> - 2013-04-04 00:47:03
|
Revision: 57895 http://sourceforge.net/p/firebird/code/57895 Author: firebirds Date: 2013-04-04 00:46:59 +0000 (Thu, 04 Apr 2013) 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 2013-04-03 15:27:28 UTC (rev 57894) +++ firebird/trunk/ChangeLog 2013-04-04 00:46:59 UTC (rev 57895) @@ -1,3 +1,7 @@ + 2013-04-03 15:27 asfernandes + M src/jrd/recsrc/ProcedureScan.cpp +Fixed CORE-4073 - Constant columns getting empty value with subselect from procedure. + 2013-04-01 21:54 mapopa M configure.ac Remove absolete sinixz check Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-03 15:27:28 UTC (rev 57894) +++ firebird/trunk/src/jrd/build_no.h 2013-04-04 00:46:59 UTC (rev 57895) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30325 + FORMAL BUILD NUMBER:30326 */ -#define PRODUCT_VER_STRING "3.0.0.30325" -#define FILE_VER_STRING "WI-T3.0.0.30325" -#define LICENSE_VER_STRING "WI-T3.0.0.30325" -#define FILE_VER_NUMBER 3, 0, 0, 30325 +#define PRODUCT_VER_STRING "3.0.0.30326" +#define FILE_VER_STRING "WI-T3.0.0.30326" +#define LICENSE_VER_STRING "WI-T3.0.0.30326" +#define FILE_VER_NUMBER 3, 0, 0, 30326 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30325" +#define FB_BUILD_NO "30326" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-03 15:27:28 UTC (rev 57894) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-04 00:46:59 UTC (rev 57895) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30325 +BuildNum=30326 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ale...@us...> - 2013-04-04 13:18:04
|
Revision: 57896 http://sourceforge.net/p/firebird/code/57896 Author: alexpeshkoff Date: 2013-04-04 13:17:57 +0000 (Thu, 04 Apr 2013) Log Message: ----------- Added support for changing configuration (client and embedded) from API Modified Paths: -------------- firebird/trunk/builds/install/misc/firebird.conf.in firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp firebird/trunk/src/common/call_service.cpp firebird/trunk/src/common/call_service.h firebird/trunk/src/common/config/config.cpp firebird/trunk/src/common/config/config.h firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp firebird/trunk/src/include/consts_pub.h firebird/trunk/src/include/firebird/Interface.h firebird/trunk/src/include/firebird.h firebird/trunk/src/jrd/EngineInterface.h firebird/trunk/src/jrd/jrd.cpp firebird/trunk/src/jrd/svc.cpp firebird/trunk/src/remote/client/interface.cpp firebird/trunk/src/remote/inet.cpp firebird/trunk/src/remote/inet_proto.h firebird/trunk/src/remote/os/win32/wnet.cpp firebird/trunk/src/remote/os/win32/wnet_proto.h firebird/trunk/src/remote/os/win32/xnet.cpp firebird/trunk/src/remote/os/win32/xnet_proto.h firebird/trunk/src/remote/remot_proto.h firebird/trunk/src/remote/remote.cpp firebird/trunk/src/remote/remote.h firebird/trunk/src/remote/server/os/posix/inet_server.cpp firebird/trunk/src/remote/server/server.cpp firebird/trunk/src/utilities/gsec/gsec.cpp firebird/trunk/src/yvalve/MasterImplementation.cpp firebird/trunk/src/yvalve/MasterImplementation.h firebird/trunk/src/yvalve/why.cpp Modified: firebird/trunk/builds/install/misc/firebird.conf.in =================================================================== --- firebird/trunk/builds/install/misc/firebird.conf.in 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/builds/install/misc/firebird.conf.in 2013-04-04 13:17:57 UTC (rev 57896) @@ -19,9 +19,9 @@ # To activate an entry, remove the leading "#"s and supply the desired # value. # -# Please note, a number of the values are specified in **Bytes** (Not KB). -# Accordingly, we have provided some simple conversion tables at the bottom -# of this file. +# Please note, by default a number of the values are specified in **Bytes** (Not KB). +# You may add obvious abbreviations k, m and g in the end of a numver to specify +# kilobytes, megabytes and gigabytes. # # There are three types of configuration values: integer, boolean and string. # @@ -31,12 +31,13 @@ # 1 # 42 # 4711 +# 24M # 24 * 1024 * 1024 # # Boolean # ------- # Boolean is expressed as integer values with 0 (zero) being "false" and # non-zero is taken to mean "true". For consistency we recommend you -# only use 0/1. +# only use 0/1. Also strings 'y', 'yes' and 'true' stand for "true". # # String # ------ @@ -44,6 +45,14 @@ # RemoteServiceName = gds_db # RemotePipeName = pipe47 # +# Scopes +# ------ +# Some parameters are marked as per-database / per-connection configurable. +# Per-database configuration is done in file databases.conf (former aliases.conf). +# Per-connection configuration is primarily client tool and done using +# isc_dpb_config parameter in DPB (isc_spb_config for services). +# Notice that per-database entries also may be tuned using DPB in case of +# embedded engine when attaching to database first time. # # Portions of this file have been reproduced/made available with the # permission of Ann Harrison @ IBPhoenix. @@ -350,12 +359,16 @@ # is default one. On windows Sspi is also used when no login/password is given. # Client can use legacy authentication to talk to old servers. # +# Per-database & per-connection configurable. +# #AuthServer = Srp, Win_Sspi #AuthClient = Srp, Win_Sspi, Legacy_Auth # UserManager sets plugin used to work with security database. If more than # one plugin is given, first plugin from the list is used. # +# Per-database configurable. +# #UserManager = Srp # TracePlugin is used by firebird trace facility to send trace data to the user @@ -366,10 +379,14 @@ # Crypt plugins are used to crypt data transferred over the wire. # In default case wire is encrypted using Alleged RC4 # (key must be generated by auth plugin). +# +# Per-connection configurable. +# #CryptPlugin = Arc4 # Key holder is a kind of temp storage for DB crypt keys. # There is no default for this kind of plugins. +# #KeyHolderPlugin = @@ -381,6 +398,8 @@ # # Type: string # +# Per-database & per-connection configurable. +# #Providers = Remote,Engine12,Loopback @@ -475,11 +494,28 @@ # # Seconds to wait before concluding an attempt to connect has failed. # +# Per-connection configurable. +# # Type: integer # #ConnectionTimeout = 180 # +# Should connection over the wire be encrypted? +# Has 3 different values: Required, Enabled or Disabled. Enabled behavior +# depends another side requirements. If both sides set to enabled, connection +# is encrypted. +# +# Attention: default depends upon connection type: incoming (server) +# or outgoing (client). +# +# Per-connection configurable. +# +# Type: integer +# +#WireCrypt = Enabled (for client) / Required (for server) + +# # Seconds to wait on a silent client connection before the server sends # dummy packets to request acknowledgment. # @@ -495,6 +531,8 @@ # follow instrutions of this article: # http://support.microsoft.com/default.aspx?kbid=140325 # +# Per-connection configurable. +# # Type: integer # #DummyPacketInterval = 0 @@ -510,6 +548,8 @@ # order of precendence is the 'RemoteServiceName' (if an entry is # found in the 'services.' file) then the 'RemoteServicePort'. # +# Per-connection configurable. +# # Type: string, integer # #RemoteServiceName = gds_db @@ -520,6 +560,8 @@ # messages. The value of 0 (Zero) means that the server will choose # a port number randomly. # +# Per-connection configurable. +# # Type: integer # #RemoteAuxPort = 0 @@ -540,6 +582,8 @@ # # Note: Currently is a default for classic and super servers. # +# Per-connection configurable. +# # Type: boolean # #TcpNoNagle = 1 @@ -701,6 +745,8 @@ # Windows Vista/XP SP2/2000 SP4 it will not be accessible using the # local protocol from other sessions. # +# Per-connection configurable. +# # Type: string # #IpcName = FIREBIRD @@ -710,6 +756,8 @@ # Has the same meaning as a port number for TCP/IP. The default value is # compatible with IB/FB1. # +# Per-connection configurable. +# # Type: string # #RemotePipeName = interbas Modified: firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp =================================================================== --- firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -32,6 +32,8 @@ #include "../common/classes/ClumpletWriter.h" #include "../auth/SecureRemotePassword/Message.h" +#include "../jrd/EngineInterface.h" + using namespace Firebird; namespace { @@ -122,6 +124,8 @@ dpb.insertByte(isc_dpb_sec_attach, TRUE); const char* str = "SYSDBA"; dpb.insertString(isc_dpb_user_name, str, strlen(str)); + const char* providers = "Providers=" CURRENT_ENGINE; + dpb.insertString(isc_dpb_config, providers, strlen(providers)); DispatcherPtr p; Modified: firebird/trunk/src/common/call_service.cpp =================================================================== --- firebird/trunk/src/common/call_service.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/common/call_service.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -28,6 +28,7 @@ #include <stdio.h> #include <ctype.h> #include "../common/utils_proto.h" +#include "../jrd/EngineInterface.h" using namespace Firebird; @@ -196,7 +197,7 @@ return 0; } - return attachRemoteServiceManager(status, username, password, trusted, service); + return attachRemoteServiceManager(status, username, password, trusted, service, true); } @@ -218,7 +219,8 @@ const TEXT* username, const TEXT* password, bool trusted, - const TEXT* server) + const TEXT* server, + bool forceLoopback) { char service[SERVICE_SIZE]; @@ -242,6 +244,10 @@ { stuffSpb(spb, isc_spb_trusted_auth, ""); } + if ((!server[0]) && forceLoopback && (!Config::getSharedDatabase())) + { // local connection & force & superserver + stuffSpb(spb, isc_spb_config, "Providers=Loopback," CURRENT_ENGINE); + } fb_assert((size_t)(spb - spb_buffer) <= sizeof(spb_buffer)); isc_svc_handle svc_handle = 0; Modified: firebird/trunk/src/common/call_service.h =================================================================== --- firebird/trunk/src/common/call_service.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/common/call_service.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -30,7 +30,7 @@ isc_svc_handle attachRemoteServiceManager(ISC_STATUS*, const TEXT*, const TEXT*, bool, int, const TEXT*); -isc_svc_handle attachRemoteServiceManager(ISC_STATUS*, const TEXT*, const TEXT*, bool, const TEXT*); +isc_svc_handle attachRemoteServiceManager(ISC_STATUS*, const TEXT*, const TEXT*, bool, const TEXT*, bool); void callRemoteServiceManager(ISC_STATUS*, isc_svc_handle, Auth::UserData&, Auth::IListUsers*); void detachRemoteServiceManager(ISC_STATUS*, isc_svc_handle); Modified: firebird/trunk/src/common/config/config.cpp =================================================================== --- firebird/trunk/src/common/config/config.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/common/config/config.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -28,6 +28,7 @@ #include "../common/classes/init.h" #include "../common/dllinst.h" #include "../common/os/fbsyslog.h" +#include "../jrd/EngineInterface.h" #include "firebird/Plugin.h" #ifdef HAVE_STDLIB_H @@ -72,7 +73,7 @@ defaultConfig = newConfig; } */ - Firebird::RefPtr<Config> getDefaultConfig() const + const Firebird::RefPtr<Config>& getDefaultConfig() const { return defaultConfig; } @@ -176,7 +177,7 @@ {TYPE_STRING, "AuditTraceConfigFile", (ConfigValue) ""}, // location of audit trace configuration file {TYPE_INTEGER, "MaxUserTraceLogSize", (ConfigValue) 10}, // maximum size of user session trace log {TYPE_INTEGER, "FileSystemCacheSize", (ConfigValue) 0}, // percent - {TYPE_STRING, "Providers", (ConfigValue) "Remote, Engine12, Loopback"}, + {TYPE_STRING, "Providers", (ConfigValue) "Remote, " CURRENT_ENGINE ", Loopback"}, {TYPE_STRING, "AuthServer", (ConfigValue) "Srp, Win_Sspi"}, {TYPE_STRING, "AuthClient", (ConfigValue) "Srp, Win_Sspi, Legacy_Auth"}, {TYPE_STRING, "UserManager", (ConfigValue) "Srp"}, @@ -197,7 +198,7 @@ Config::Config(const ConfigFile& file) { // Array to save string temporarily - // Will be finally save by loadValues() in the end of ctor + // Will be finally saved by loadValues() in the end of ctor Firebird::ObjectsArray<ConfigFile::String> tempStrings(getPool()); // Iterate through the known configuration entries @@ -231,6 +232,15 @@ loadValues(file); } +void Config::merge(Firebird::RefPtr<Config>& config, const Firebird::string* dpbConfig) +{ + if (dpbConfig && dpbConfig->hasData()) + { + ConfigFile txtStream(ConfigFile::USE_TEXT, dpbConfig->c_str()); + config = new Config(txtStream, *(config.hasData() ? config : getDefaultConfig())); + } +} + void Config::loadValues(const ConfigFile& file) { // Iterate through the known configuration entries @@ -296,7 +306,7 @@ * Public interface */ -const Firebird::RefPtr<Config> Config::getDefaultConfig() +const Firebird::RefPtr<Config>& Config::getDefaultConfig() { return firebirdConf().getDefaultConfig(); } @@ -413,9 +423,9 @@ return rc; } -bool Config::getTcpNoNagle() +bool Config::getTcpNoNagle() const { - return (bool) getDefaultConfig()->values[KEY_TCP_NO_NAGLE]; + return get<bool>(KEY_TCP_NO_NAGLE); } int Config::getDefaultDbCachePages() const @@ -428,14 +438,14 @@ return rc; } -int Config::getConnectionTimeout() +int Config::getConnectionTimeout() const { - return (int) getDefaultConfig()->values[KEY_CONNECTION_TIMEOUT]; + return get<int>(KEY_CONNECTION_TIMEOUT); } -int Config::getDummyPacketInterval() +int Config::getDummyPacketInterval() const { - return (int) getDefaultConfig()->values[KEY_DUMMY_PACKET_INTERVAL]; + return get<int>(KEY_DUMMY_PACKET_INTERVAL); } int Config::getLockMemSize() const @@ -463,24 +473,24 @@ return get<int>(KEY_DEADLOCK_TIMEOUT); } -const char *Config::getRemoteServiceName() +const char *Config::getRemoteServiceName() const { - return (const char*) getDefaultConfig()->values[KEY_REMOTE_SERVICE_NAME]; + return get<const char*>(KEY_REMOTE_SERVICE_NAME); } -unsigned short Config::getRemoteServicePort() +unsigned short Config::getRemoteServicePort() const { - return (unsigned short) getDefaultConfig()->values[KEY_REMOTE_SERVICE_PORT]; + return get<unsigned short>(KEY_REMOTE_SERVICE_PORT); } -const char *Config::getRemotePipeName() +const char *Config::getRemotePipeName() const { - return (const char*) getDefaultConfig()->values[KEY_REMOTE_PIPE_NAME]; + return get<const char*>(KEY_REMOTE_PIPE_NAME); } -const char *Config::getIpcName() +const char *Config::getIpcName() const { - return (const char*) getDefaultConfig()->values[KEY_IPC_NAME]; + return get<const char*>(KEY_IPC_NAME); } int Config::getMaxUnflushedWrites() const @@ -498,9 +508,9 @@ return (int) getDefaultConfig()->values[KEY_PROCESS_PRIORITY_LEVEL]; } -int Config::getRemoteAuxPort() +int Config::getRemoteAuxPort() const { - return (int) getDefaultConfig()->values[KEY_REMOTE_AUX_PORT]; + return get<int>(KEY_REMOTE_AUX_PORT); } const char *Config::getRemoteBindAddress() @@ -644,17 +654,6 @@ return (bool) getDefaultConfig()->values[KEY_SHARED_DATABASE]; } -bool Config::getMultiClientServer() -{ - // AP - absolutely wrong for superclassic assumption - // should be set by server in case of 'super' mode in it -#ifdef SUPERSERVER - return true; -#else - return false; -#endif -} - const char* Config::getPlugins(unsigned int type) const { switch (type) @@ -715,8 +714,8 @@ return get<const char*>(KEY_SECURITY_DATABASE); } -const char* Config::getWireCrypt(WireCryptMode wcMode) +const char* Config::getWireCrypt(WireCryptMode wcMode) const { - const char* rc = getDefaultConfig()->get<const char*>(KEY_WIRE_CRYPT); + const char* rc = get<const char*>(KEY_WIRE_CRYPT); return rc ? rc : wcMode == WC_CLIENT ? WIRE_CRYPT_ENABLED : WIRE_CRYPT_REQUIRED; } Modified: firebird/trunk/src/common/config/config.h =================================================================== --- firebird/trunk/src/common/config/config.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/common/config/config.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -192,8 +192,11 @@ static const Firebird::PathName* getCommandLineRootDirectory(); // Master config - needed to provide per-database config - static const Firebird::RefPtr<Config> getDefaultConfig(); + static const Firebird::RefPtr<Config>& getDefaultConfig(); + // Merge config entries from DPB into existing config + static void merge(Firebird::RefPtr<Config>& config, const Firebird::string* dpbConfig); + // reports key to be used by the following functions static unsigned int getKeyByName(ConfigName name); // helpers to build interface for firebird.conf file @@ -229,16 +232,16 @@ static int getTcpRemoteBufferSize(); // Disable Nagle algorithm - static bool getTcpNoNagle(); + bool getTcpNoNagle() const; // Default database cache size int getDefaultDbCachePages() const; // Connection timeout - static int getConnectionTimeout(); + int getConnectionTimeout() const; // Dummy packet interval - static int getDummyPacketInterval(); + int getDummyPacketInterval() const; // Lock manager memory size int getLockMemSize() const; @@ -256,16 +259,16 @@ int getDeadlockTimeout() const; // Service name for remote protocols - static const char* getRemoteServiceName(); + const char* getRemoteServiceName() const; // Service port for INET - static unsigned short getRemoteServicePort(); + unsigned short getRemoteServicePort() const; // Pipe name for WNET - static const char* getRemotePipeName(); + const char* getRemotePipeName() const; // Name for IPC-related objects - static const char* getIpcName(); + const char* getIpcName() const; // Unflushed writes number int getMaxUnflushedWrites() const; @@ -277,7 +280,7 @@ static int getProcessPriorityLevel(); // Port for event processing - static int getRemoteAuxPort(); + int getRemoteAuxPort() const; // Server binding NIC address static const char* getRemoteBindAddress(); @@ -328,13 +331,11 @@ static bool getSharedDatabase(); - static bool getMultiClientServer(); - const char* getPlugins(unsigned int type) const; const char* getSecurityDatabase() const; - static const char* getWireCrypt(WireCryptMode wcMode); + const char* getWireCrypt(WireCryptMode wcMode) const; }; // Implementation of interface to access master configuration file Modified: firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp =================================================================== --- firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -760,6 +760,11 @@ { return NULL; } + + virtual int FB_CARG serverMode(int mode) + { + return -1; + } }; Modified: firebird/trunk/src/include/consts_pub.h =================================================================== --- firebird/trunk/src/include/consts_pub.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/include/consts_pub.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -119,6 +119,7 @@ #define isc_dpb_specific_auth_data 84 #define isc_dpb_auth_plugin_list 85 #define isc_dpb_auth_plugin_name 86 +#define isc_dpb_config 87 /**************************************************/ /* clumplet tags used inside isc_dpb_address_path */ @@ -280,6 +281,7 @@ #define isc_spb_remote_protocol 120 #define isc_spb_host_name 121 #define isc_spb_os_user 122 +#define isc_spb_config 123 #define isc_spb_connect_timeout isc_dpb_connect_timeout #define isc_spb_dummy_packet_interval isc_dpb_dummy_packet_interval Modified: firebird/trunk/src/include/firebird/Interface.h =================================================================== --- firebird/trunk/src/include/firebird/Interface.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/include/firebird/Interface.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -121,8 +121,9 @@ virtual IMetadataBuilder* FB_CARG getMetadataBuilder(IStatus* status, unsigned fieldCount) = 0; virtual Firebird::IDebug* FB_CARG getDebug() = 0; + virtual int FB_CARG serverMode(int mode) = 0; }; -#define FB_MASTER_VERSION (FB_VERSIONED_VERSION + 12) +#define FB_MASTER_VERSION (FB_VERSIONED_VERSION + 13) } // namespace Firebird Modified: firebird/trunk/src/include/firebird.h =================================================================== --- firebird/trunk/src/include/firebird.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/include/firebird.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -75,8 +75,4 @@ #define TRUSTED_AUTH #endif -#if defined(SUPERSERVER) -#define SHARED_METADATA_CACHE -#endif - #endif // INCLUDE_Firebird_H Modified: firebird/trunk/src/jrd/EngineInterface.h =================================================================== --- firebird/trunk/src/jrd/EngineInterface.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/jrd/EngineInterface.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -28,6 +28,8 @@ #include "../common/StatementMetadata.h" #include "../common/classes/RefCounted.h" +#define CURRENT_ENGINE "Engine12" + namespace Jrd { // Engine objects used by interface objects Modified: firebird/trunk/src/jrd/jrd.cpp =================================================================== --- firebird/trunk/src/jrd/jrd.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/jrd/jrd.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -355,7 +355,7 @@ void registerEngine(IPluginManager* iPlugin) { myModule->setCleanup(shutdownBeforeUnload); - iPlugin->registerPluginFactory(PluginType::Provider, "Engine12", &engineFactory); + iPlugin->registerPluginFactory(PluginType::Provider, CURRENT_ENGINE, &engineFactory); myModule->registerMe(); } @@ -739,6 +739,7 @@ string dpb_trusted_login; PathName dpb_remote_process; PathName dpb_org_filename; + string dpb_config; public: DatabaseOptions() @@ -1281,12 +1282,10 @@ if (options.dpb_set_page_buffers) { -#ifdef SHARED_METADATA_CACHE // Here we do not let anyone except SYSDBA (like DBO) to change dbb_page_buffers, // cause other flags is UserId can be set only when DB is opened. // No idea how to test for other cases before init is complete. - if (userId.locksmith()) -#endif + if (config->getSharedDatabase() ? userId.locksmith() : true) dbb->dbb_page_buffers = options.dpb_page_buffers; } @@ -5585,6 +5584,10 @@ ERR_post(Arg::Gds(isc_exec_sql_max_call_exceeded)); break; + case isc_dpb_config: + getString(rdr, dpb_config); + break; + default: break; } @@ -5681,6 +5684,13 @@ tdbb->setDatabase(dbb); jAtt = create_attachment(alias_name, dbb, options); tdbb->setAttachment(jAtt->getHandle()); + + if (options.dpb_config.hasData()) + { + ERR_post_warning(Arg::Warning(isc_random) << + "Secondary attachment - config data from DPB ignored"); + } + return jAtt; } @@ -5690,6 +5700,8 @@ } } + Config::merge(config, &options.dpb_config); + dbb = Database::create(); dbb->dbb_config = config; dbb->dbb_filename = expanded_name; Modified: firebird/trunk/src/jrd/svc.cpp =================================================================== --- firebird/trunk/src/jrd/svc.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/jrd/svc.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -60,6 +60,7 @@ #include "../jrd/msg_encode.h" #include "../jrd/trace/TraceManager.h" #include "../jrd/trace/TraceObjects.h" +#include "../jrd/EngineInterface.h" #include "../common/classes/DbImplementation.h" @@ -637,6 +638,8 @@ void Service::fillDpb(ClumpletWriter& dpb) { + const char* providers = "Providers=" CURRENT_ENGINE; + dpb.insertString(isc_dpb_config, providers, strlen(providers)); if (svc_address_path.hasData()) { dpb.insertString(isc_dpb_address_path, svc_address_path); @@ -684,14 +687,19 @@ val |= QUOTED_FILENAME_SUPPORT; #endif // WIN_NT - if (Config::getMultiClientServer()) + Firebird::MasterInterfacePtr master; + switch (master->serverMode(-1)) { + case 1: // super val |= MULTI_CLIENT_SUPPORT; - } - else - { + break; + case 0: // classic val |= NO_SERVER_SHUTDOWN_SUPPORT; + break; + default: // none-server mode + break; } + return val; } } Modified: firebird/trunk/src/remote/client/interface.cpp =================================================================== --- firebird/trunk/src/remote/client/interface.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/client/interface.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -650,7 +650,7 @@ static void add_other_params(rem_port*, ClumpletWriter&, const ParametersSet&); static void add_working_directory(ClumpletWriter&, const PathName&); static rem_port* analyze(ClntAuthBlock&, PathName&, bool, ClumpletReader&, PathName&, bool); -static rem_port* analyze_service(PathName&, bool, ClumpletReader&, bool); +static rem_port* analyze_service(ClntAuthBlock&, PathName&, bool, ClumpletReader&, bool); static void batch_gds_receive(rem_port*, struct rmtque *, USHORT); static void batch_dsql_fetch(rem_port*, struct rmtque *, USHORT); static void clear_queue(rem_port*); @@ -746,7 +746,7 @@ PathName expanded_name(filename); PathName node_name; - ClntAuthBlock cBlock(&expanded_name); + ClntAuthBlock cBlock(&expanded_name, &newDpb, &dpbParam); rem_port* port = analyze(cBlock, expanded_name, user_verification, newDpb, node_name, loopback); if (!port) @@ -1322,7 +1322,7 @@ PathName expanded_name(filename); PathName node_name; - ClntAuthBlock cBlock(&expanded_name); + ClntAuthBlock cBlock(&expanded_name, &newDpb, &dpbParam); rem_port* port = analyze(cBlock, expanded_name, user_verification, newDpb, node_name, loopback); if (!port) @@ -4375,7 +4375,9 @@ ClumpletWriter newSpb(ClumpletReader::spbList, MAX_DPB_SIZE, spb, spbLength); const bool user_verification = get_new_dpb(newSpb, spbParam); - rem_port* port = analyze_service(expanded_name, user_verification, newSpb, loopback); + ClntAuthBlock cBlock(NULL, &newSpb, &spbParam); + cBlock.loadClnt(newSpb, &spbParam); + rem_port* port = analyze_service(cBlock, expanded_name, user_verification, newSpb, loopback); RefMutexGuard portGuard(*port->port_sync, FB_FUNCTION); Rdb* rdb = port->port_context; @@ -4386,8 +4388,6 @@ add_other_params(port, newSpb, spbParam); - ClntAuthBlock cBlock(NULL); - cBlock.load(newSpb, &spbParam); IntlSpb intl; init(status, cBlock, port, op_service_attach, expanded_name, newSpb, intl, cryptCallback); @@ -4528,7 +4528,7 @@ rem_port* port = rdb->rdb_port; RefMutexGuard portGuard(*port->port_sync, FB_FUNCTION); - ClntAuthBlock cBlock(NULL); + ClntAuthBlock cBlock(NULL, NULL, NULL); cBlock.loadServiceDataFrom(port); info(status, rdb, op_service_info, rdb->rdb_id, 0, @@ -5146,7 +5146,7 @@ // Analyze the file name to see if a remote connection is required. If not, // quietly (sic) return. - cBlock.load(dpb, &dpbParam); + cBlock.loadClnt(dpb, &dpbParam); authenticateStep0(cBlock); rem_port* port = NULL; @@ -5154,7 +5154,7 @@ #ifdef WIN_NT if (ISC_analyze_protocol(PROTOCOL_XNET, file_name, node_name)) { - port = XNET_analyze(&cBlock, file_name, uv_flag); + port = XNET_analyze(&cBlock, file_name, uv_flag, cBlock.getConfig()); } else if (ISC_analyze_protocol(PROTOCOL_WNET, file_name, node_name) || ISC_analyze_pclan(file_name, node_name)) @@ -5167,7 +5167,7 @@ ISC_utf8ToSystem(node_name); } - port = WNET_analyze(&cBlock, file_name, node_name.c_str(), uv_flag); + port = WNET_analyze(&cBlock, file_name, node_name.c_str(), uv_flag, cBlock.getConfig()); } else #endif @@ -5183,7 +5183,7 @@ ISC_utf8ToSystem(node_name); } - port = INET_analyze(&cBlock, file_name, node_name.c_str(), uv_flag, dpb); + port = INET_analyze(&cBlock, file_name, node_name.c_str(), uv_flag, dpb, cBlock.getConfig()); } // We have a local connection string. If it's a file on a network share, @@ -5197,7 +5197,7 @@ ISC_unescape(node_name); ISC_utf8ToSystem(node_name); - port = WNET_analyze(&cBlock, expanded_name, node_name.c_str(), uv_flag); + port = WNET_analyze(&cBlock, expanded_name, node_name.c_str(), uv_flag, cBlock.getConfig()); } #endif @@ -5210,7 +5210,7 @@ ISC_unescape(node_name); ISC_utf8ToSystem(node_name); - port = INET_analyze(&cBlock, expanded_name, node_name.c_str(), uv_flag, dpb); + port = INET_analyze(&cBlock, expanded_name, node_name.c_str(), uv_flag, dpb, cBlock.getConfig()); } } #endif @@ -5225,17 +5225,17 @@ #ifdef WIN_NT if (!port) { - port = XNET_analyze(&cBlock, file_name, uv_flag); + port = XNET_analyze(&cBlock, file_name, uv_flag, cBlock.getConfig()); } if (!port) { - port = WNET_analyze(&cBlock, file_name, WNET_LOCALHOST, uv_flag); + port = WNET_analyze(&cBlock, file_name, WNET_LOCALHOST, uv_flag, cBlock.getConfig()); } #endif if (!port) { - port = INET_analyze(&cBlock, file_name, INET_LOCALHOST, uv_flag, dpb); + port = INET_analyze(&cBlock, file_name, INET_LOCALHOST, uv_flag, dpb, cBlock.getConfig()); } } } @@ -5244,7 +5244,8 @@ } -static rem_port* analyze_service(PathName& service_name, +static rem_port* analyze_service(ClntAuthBlock& cBlock, + PathName& service_name, bool uv_flag, ClumpletReader& spb, bool loopback) @@ -5272,7 +5273,7 @@ #if defined(WIN_NT) if (ISC_analyze_protocol(PROTOCOL_XNET, service_name, node_name)) { - return XNET_analyze(NULL, service_name, uv_flag); + return XNET_analyze(NULL, service_name, uv_flag, cBlock.getConfig()); } if (ISC_analyze_protocol(PROTOCOL_WNET, service_name, node_name) || @@ -5282,7 +5283,7 @@ { node_name = WNET_LOCALHOST; } - return WNET_analyze(NULL, service_name, node_name.c_str(), uv_flag); + return WNET_analyze(NULL, service_name, node_name.c_str(), uv_flag, cBlock.getConfig()); } #endif @@ -5293,7 +5294,7 @@ { node_name = INET_LOCALHOST; } - return INET_analyze(NULL, service_name, node_name.c_str(), uv_flag, spb); + return INET_analyze(NULL, service_name, node_name.c_str(), uv_flag, spb, cBlock.getConfig()); } rem_port* port = NULL; @@ -5309,17 +5310,17 @@ #if defined(WIN_NT) if (!port) { - port = XNET_analyze(NULL, service_name, uv_flag); + port = XNET_analyze(NULL, service_name, uv_flag, cBlock.getConfig()); } if (!port) { - port = WNET_analyze(NULL, service_name, WNET_LOCALHOST, uv_flag); + port = WNET_analyze(NULL, service_name, WNET_LOCALHOST, uv_flag, cBlock.getConfig()); } #endif if (!port) { - port = INET_analyze(NULL, service_name, INET_LOCALHOST, uv_flag, spb); + port = INET_analyze(NULL, service_name, INET_LOCALHOST, uv_flag, spb, cBlock.getConfig()); } } } @@ -7102,7 +7103,7 @@ IntlSpbStart().fromUtf8(send, 0); } - ClntAuthBlock cBlock(NULL); + ClntAuthBlock cBlock(NULL, NULL, NULL); cBlock.loadServiceDataFrom(rdb->rdb_port); HANDSHAKE_DEBUG(fprintf(stderr, "start calls authFillParametersBlock\n")); authFillParametersBlock(cBlock, send, &spbStartParam, rdb->rdb_port); @@ -7249,14 +7250,19 @@ } //namespace Remote -ClntAuthBlock::ClntAuthBlock(const Firebird::PathName* fileName) +ClntAuthBlock::ClntAuthBlock(const Firebird::PathName* fileName, Firebird::ClumpletReader* dpb, + const ParametersSet* tags) : pluginList(getPool()), userName(getPool()), password(getPool()), dataForPlugin(getPool()), dataFromPlugin(getPool()), - hasCryptKey(false), + cryptKeys(getPool()), dpbConfig(getPool()), hasCryptKey(false), plugins(PluginType::AuthClient, FB_AUTH_CLIENT_VERSION, upInfo), authComplete(false), firstTime(true) { - reset(fileName); + if (dpb && tags && dpb->find(tags->config_text)) + { + dpb->getString(dpbConfig); + } + resetClnt(fileName); } void ClntAuthBlock::resetDataFromPlugin() @@ -7317,7 +7323,7 @@ ISC_unescape(s); } -void ClntAuthBlock::load(Firebird::ClumpletReader& dpb, const ParametersSet* tags) +void ClntAuthBlock::loadClnt(Firebird::ClumpletReader& dpb, const ParametersSet* tags) { bool uft8Convert = !dpb.find(isc_dpb_utf8_filename); Modified: firebird/trunk/src/remote/inet.cpp =================================================================== --- firebird/trunk/src/remote/inet.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/inet.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -447,7 +447,8 @@ Rdb*, const PathName&, const TEXT*, - ClumpletReader&); + ClumpletReader&, + RefPtr<Config>*); static bool_t inet_write(XDR*); //, int); #ifdef DEBUG @@ -521,7 +522,8 @@ const PathName& file_name, const TEXT* node_name, bool uv_flag, - ClumpletReader &dpb) + ClumpletReader &dpb, + RefPtr<Config>* config) { /************************************** * @@ -604,7 +606,7 @@ // Try connection using first set of protocols - rem_port* port = inet_try_connect(packet, rdb, file_name, node_name, dpb); + rem_port* port = inet_try_connect(packet, rdb, file_name, node_name, dpb, config); P_ACPT* accept = NULL; switch (packet->p_operation) @@ -623,7 +625,7 @@ case op_accept: if (cBlock) { - cBlock->reset(&file_name); + cBlock->resetClnt(&file_name); } accept = &packet->p_acpt; break; @@ -678,7 +680,8 @@ rem_port* INET_connect(const TEXT* name, PACKET* packet, USHORT flag, - ClumpletReader* dpb) + ClumpletReader* dpb, + RefPtr<Config>* config) { /************************************** * @@ -709,6 +712,10 @@ #endif rem_port* const port = alloc_port(NULL); + if (config) + { + port->port_config = *config; + } REMOTE_get_timeout_params(port, dpb); string host; @@ -736,12 +743,12 @@ if (protocol.isEmpty()) { - const unsigned short port2 = Config::getRemoteServicePort(); + const unsigned short port2 = port->getPortConfig()->getRemoteServicePort(); if (port2) { protocol.printf("%hu", port2); } else { - protocol = Config::getRemoteServiceName(); + protocol = port->getPortConfig()->getRemoteServiceName(); } } @@ -1462,7 +1469,7 @@ address.sin_family = AF_INET; in_addr bind_addr = get_bind_address(); memcpy(&address.sin_addr, &bind_addr, sizeof(address.sin_addr)); - address.sin_port = htons(Config::getRemoteAuxPort()); + address.sin_port = htons(port->getPortConfig()->getRemoteAuxPort()); SOCKET n = socket(AF_INET, SOCK_STREAM, 0); if (n == INVALID_SOCKET) @@ -2672,7 +2679,8 @@ Rdb* rdb, const PathName& file_name, const TEXT* node_name, - ClumpletReader& dpb) + ClumpletReader& dpb, + RefPtr<Config>* config) { /************************************** * @@ -2702,7 +2710,7 @@ rem_port* port = NULL; try { - port = INET_connect(node_name, packet, FALSE, &dpb); + port = INET_connect(node_name, packet, FALSE, &dpb, config); } catch (const Exception&) { @@ -3203,7 +3211,7 @@ * in case of unexpected error * **************************************/ - if (Config::getTcpNoNagle()) + if (port->getPortConfig()->getTcpNoNagle()) { int optval = TRUE; int n = setsockopt(port->port_handle, IPPROTO_TCP, TCP_NODELAY, Modified: firebird/trunk/src/remote/inet_proto.h =================================================================== --- firebird/trunk/src/remote/inet_proto.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/inet_proto.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -25,6 +25,8 @@ #define REMOTE_INET_PROTO_H #include "../common/classes/fb_string.h" +#include "../common/classes/RefCounted.h" +#include "../common/config/config.h" namespace Firebird { @@ -32,8 +34,9 @@ } rem_port* INET_analyze(ClntAuthBlock*, const Firebird::PathName&, const TEXT*, - bool, Firebird::ClumpletReader&); -rem_port* INET_connect(const TEXT*, struct packet*, USHORT, Firebird::ClumpletReader*); + bool, Firebird::ClumpletReader&, Firebird::RefPtr<Config>*); +rem_port* INET_connect(const TEXT*, struct packet*, USHORT, Firebird::ClumpletReader*, + Firebird::RefPtr<Config>*); rem_port* INET_reconnect(SOCKET); rem_port* INET_server(SOCKET); void setStopMainThread(FPTR_INT func); Modified: firebird/trunk/src/remote/os/win32/wnet.cpp =================================================================== --- firebird/trunk/src/remote/os/win32/wnet.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/os/win32/wnet.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -73,7 +73,7 @@ static void exit_handler(void*); #endif static void force_close(rem_port*); -static rem_str* make_pipe_name(const TEXT*, const TEXT*, const TEXT*); +static rem_str* make_pipe_name(const RefPtr<Config>&, const TEXT*, const TEXT*, const TEXT*); static rem_port* receive(rem_port*, PACKET*); static int send_full(rem_port*, PACKET*); static int send_partial(rem_port*, PACKET*); @@ -104,7 +104,8 @@ rem_port* WNET_analyze(ClntAuthBlock* cBlock, const PathName& file_name, const TEXT* node_name, - bool uv_flag) + bool uv_flag, + RefPtr<Config>* config) { /************************************** * @@ -181,7 +182,7 @@ rem_port* port = NULL; try { - port = WNET_connect(node_name, packet, 0); + port = WNET_connect(node_name, packet, 0, config); } catch (const Exception&) { @@ -260,7 +261,7 @@ } -rem_port* WNET_connect(const TEXT* name, PACKET* packet, USHORT flag) +rem_port* WNET_connect(const TEXT* name, PACKET* packet, USHORT flag, Firebird::RefPtr<Config>* config) { /************************************** * @@ -275,9 +276,13 @@ * **************************************/ rem_port* const port = alloc_port(0); + if (config) + { + port->port_config = *config; + } delete port->port_connection; - port->port_connection = make_pipe_name(name, SERVER_PIPE_SUFFIX, 0); + port->port_connection = make_pipe_name(port->getPortConfig(), name, SERVER_PIPE_SUFFIX, 0); // If we're a host, just make the connection @@ -412,7 +417,7 @@ rem_port* const port = alloc_port(0); delete port->port_connection; - port->port_connection = make_pipe_name(NULL, SERVER_PIPE_SUFFIX, 0); + port->port_connection = make_pipe_name(port->getPortConfig(), NULL, SERVER_PIPE_SUFFIX, 0); port->port_pipe = handle; port->port_server_flags |= SRVR_server; @@ -582,7 +587,7 @@ port->port_async = new_port; new_port->port_flags = port->port_flags & PORT_no_oob; new_port->port_flags |= PORT_async; - new_port->port_connection = make_pipe_name(port->port_connection->str_data, EVENT_PIPE_SUFFIX, p); + new_port->port_connection = make_pipe_name(port->getPortConfig(), port->port_connection->str_data, EVENT_PIPE_SUFFIX, p); while (true) { @@ -631,7 +636,7 @@ TEXT str_pid[32]; wnet_make_file_name(str_pid, server_pid); new_port->port_connection = - make_pipe_name(vport->port_connection->str_data, EVENT_PIPE_SUFFIX, str_pid); + make_pipe_name(vport->getPortConfig(), vport->port_connection->str_data, EVENT_PIPE_SUFFIX, str_pid); new_port->port_pipe = CreateNamedPipe(new_port->port_connection->str_data, @@ -791,7 +796,7 @@ #endif -static rem_str* make_pipe_name(const TEXT* connect_name, const TEXT* suffix_name, const TEXT* str_pid) +static rem_str* make_pipe_name(RefPtr<Config>& config, const TEXT* connect_name, const TEXT* suffix_name, const TEXT* str_pid) { /************************************** * @@ -820,7 +825,7 @@ switch (*p) { case 0: - protocol = Config::getRemoteServiceName(); + protocol = config->getRemoteServiceName(); break; case '@': protocol = p + 1; @@ -836,7 +841,7 @@ buffer += '\\'; buffer += PIPE_PREFIX; buffer += '\\'; - const char *pipe_name = Config::getRemotePipeName(); + const char *pipe_name = config->getRemotePipeName(); buffer += pipe_name; buffer += '\\'; buffer += suffix_name; Modified: firebird/trunk/src/remote/os/win32/wnet_proto.h =================================================================== --- firebird/trunk/src/remote/os/win32/wnet_proto.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/os/win32/wnet_proto.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -31,8 +31,8 @@ #endif -rem_port* WNET_analyze(ClntAuthBlock*, const Firebird::PathName&, const TEXT*, bool); -rem_port* WNET_connect(const TEXT*, struct packet*, USHORT); +rem_port* WNET_analyze(ClntAuthBlock*, const Firebird::PathName&, const TEXT*, bool, Firebird::RefPtr<Config>*); +rem_port* WNET_connect(const TEXT*, struct packet*, USHORT, Firebird::RefPtr<Config>*); rem_port* WNET_reconnect(HANDLE); Modified: firebird/trunk/src/remote/os/win32/xnet.cpp =================================================================== --- firebird/trunk/src/remote/os/win32/xnet.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/os/win32/xnet.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -61,7 +61,7 @@ static void cleanup_comm(XCC); static void cleanup_mapping(XPM); static void cleanup_port(rem_port*); -static rem_port* connect_client(PACKET*); +static rem_port* connect_client(PACKET*, const Firebird::RefPtr<Config>*); static rem_port* connect_server(USHORT); static void disconnect(rem_port*); static void force_close(rem_port*); @@ -189,7 +189,10 @@ #define ERR_STR(str) (str) #endif -rem_port* XNET_analyze(ClntAuthBlock* cBlock, const PathName& file_name, bool uv_flag) +rem_port* XNET_analyze(ClntAuthBlock* cBlock, + const PathName& file_name, + bool uv_flag, + RefPtr<Config>* config) { /************************************** * @@ -264,7 +267,7 @@ rem_port* port = NULL; try { - port = XNET_connect(packet, 0); + port = XNET_connect(packet, 0, config); } catch (const Exception&) { @@ -345,7 +348,8 @@ rem_port* XNET_connect(PACKET* packet, - USHORT flag) + USHORT flag, + Firebird::RefPtr<Config>* config) { /************************************** * @@ -366,7 +370,7 @@ if (packet) { - return connect_client(packet); + return connect_client(packet, config); } return connect_server(flag); @@ -392,7 +396,7 @@ // Initialize server-side IPC endpoint to a value we know we have permissions to listen at if (strcmp(xnet_endpoint, "") == 0) { - fb_utils::copy_terminate(xnet_endpoint, Config::getIpcName(), sizeof(xnet_endpoint)); + fb_utils::copy_terminate(xnet_endpoint, Config::getDefaultConfig()->getIpcName(), sizeof(xnet_endpoint)); fb_utils::prefix_kernel_object_name(xnet_endpoint, sizeof(xnet_endpoint)); } @@ -1020,7 +1024,7 @@ } -static rem_port* connect_client(PACKET* packet) +static rem_port* connect_client(PACKET* packet, Firebird::RefPtr<Config>* config) { /************************************** * @@ -1033,6 +1037,8 @@ * **************************************/ + Firebird::RefPtr<Config>& conf(config ? *config : Config::getDefaultConfig()); + if (!xnet_initialized) { MutexLockGuard guard(xnet_mutex, FB_FUNCTION); @@ -1055,7 +1061,7 @@ // First, try to connect using default kernel namespace. // This should work on Win9X, NT4 and on later OS when server is running // under restricted account in the same session as the client - fb_utils::copy_terminate(xnet_endpoint, Config::getIpcName(), sizeof(xnet_endpoint)); + fb_utils::copy_terminate(xnet_endpoint, conf->getIpcName(), sizeof(xnet_endpoint)); try { @@ -1066,7 +1072,7 @@ // The client may not have permissions to create global objects, // but still be able to connect to a local server that has such permissions. // This is why we try to connect using Global\ namespace unconditionally - fb_utils::snprintf(xnet_endpoint, sizeof(xnet_endpoint), "Global\\%s", Config::getIpcName()); + fb_utils::snprintf(xnet_endpoint, sizeof(xnet_endpoint), "Global\\%s", conf->getIpcName()); if (!connect_init()) { return NULL; @@ -1078,7 +1084,7 @@ Arg::StatusVector temp; temp << Arg::Gds(isc_net_read_err); - static const int timeout = Config::getConnectionTimeout() * 1000; + static const int timeout = conf->getConnectionTimeout() * 1000; // waiting for XNET connect lock to release @@ -1281,6 +1287,10 @@ port->port_xcc = xcc; xnet_ports->registerPort(port); send_full(port, packet); + if (config) + { + port->port_config = *config; + } return port; } @@ -2126,7 +2136,7 @@ // Initialize server-side IPC endpoint to a value we know we have permissions to listen at if (strcmp(xnet_endpoint, "") == 0) { - fb_utils::copy_terminate(xnet_endpoint, Config::getIpcName(), sizeof(name_buffer)); + fb_utils::copy_terminate(xnet_endpoint, Config::getDefaultConfig()->getIpcName(), sizeof(name_buffer)); fb_utils::prefix_kernel_object_name(xnet_endpoint, sizeof(xnet_endpoint)); } Modified: firebird/trunk/src/remote/os/win32/xnet_proto.h =================================================================== --- firebird/trunk/src/remote/os/win32/xnet_proto.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/os/win32/xnet_proto.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -32,8 +32,8 @@ #define rem_port void #endif -rem_port* XNET_analyze(ClntAuthBlock*, const Firebird::PathName&, bool); -rem_port* XNET_connect(struct packet*, USHORT); +rem_port* XNET_analyze(ClntAuthBlock*, const Firebird::PathName&, bool, Firebird::RefPtr<Config>*); +rem_port* XNET_connect(struct packet*, USHORT, Firebird::RefPtr<Config>*); rem_port* XNET_reconnect(ULONG); #endif // REMOTE_XNET_PROTO_H Modified: firebird/trunk/src/remote/remot_proto.h =================================================================== --- firebird/trunk/src/remote/remot_proto.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/remot_proto.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -58,7 +58,7 @@ void REMOTE_save_status_strings (ISC_STATUS *); bool_t REMOTE_getbytes (XDR*, SCHAR*, u_int); bool REMOTE_legacy_auth(const char* nm, int protocol); -Firebird::RefPtr<Config> REMOTE_get_config(const Firebird::PathName* dbName); +Firebird::RefPtr<Config> REMOTE_get_config(const Firebird::PathName* dbName, const Firebird::string* dpb_config); void REMOTE_parseList(Remote::ParsedList&, Firebird::PathName); void REMOTE_makeList(Firebird::PathName& list, const Remote::ParsedList& parsed); void REMOTE_check_response(Firebird::IStatus* warning, Rdb* rdb, PACKET* packet, bool checkKeys = false); Modified: firebird/trunk/src/remote/remote.cpp =================================================================== --- firebird/trunk/src/remote/remote.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/remote.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -65,7 +65,8 @@ isc_dpb_client_version, isc_dpb_remote_protocol, isc_dpb_host_name, - isc_dpb_os_user + isc_dpb_os_user, + isc_dpb_config }; const ParametersSet spbParam = @@ -86,7 +87,8 @@ isc_spb_client_version, isc_spb_remote_protocol, isc_spb_host_name, - isc_spb_os_user + isc_spb_os_user, + isc_spb_config }; const ParametersSet spbStartParam = @@ -107,6 +109,7 @@ 0, 0, 0, + 0, 0 }; @@ -128,6 +131,7 @@ 0, 0, 0, + 0, 0 }; @@ -438,10 +442,10 @@ fb_assert(isc_dpb_connect_timeout == isc_spb_connect_timeout); port->port_connect_timeout = - pb && pb->find(isc_dpb_connect_timeout) ? pb->getInt() : Config::getConnectionTimeout(); + pb && pb->find(isc_dpb_connect_timeout) ? pb->getInt() : port->getPortConfig()->getConnectionTimeout(); port->port_flags |= PORT_dummy_pckt_set; - port->port_dummy_packet_interval = Config::getDummyPacketInterval(); + port->port_dummy_packet_interval = port->getPortConfig()->getDummyPacketInterval(); if (port->port_dummy_packet_interval < 0) port->port_dummy_packet_interval = DUMMY_INTERVAL; @@ -682,10 +686,16 @@ this->port_next = parent->port_clients; this->port_server = parent->port_server; this->port_server_flags = parent->port_server_flags; + this->port_config = parent->port_config; parent->port_clients = parent->port_next = this; } +const Firebird::RefPtr<Config>& rem_port::getPortConfig() const +{ + return port_config.hasData() ? port_config : Config::getDefaultConfig(); +} + void rem_port::unlinkParent() { if (this->port_parent == NULL) @@ -1063,32 +1073,42 @@ } } -void ClntAuthBlock::reset(const Firebird::PathName* fileName) +void ClntAuthBlock::resetClnt(const Firebird::PathName* fileName) { dataForPlugin.clear(); dataFromPlugin.clear(); authComplete = false; firstTime = true; - pluginList = REMOTE_get_config(fileName)->getPlugins(Firebird::PluginType::AuthClient); + config = REMOTE_get_config(fileName, &dpbConfig); + pluginList = config->getPlugins(Firebird::PluginType::AuthClient); plugins.set(pluginList.c_str()); } +Firebird::RefPtr<Config>* ClntAuthBlock::getConfig() +{ + return config.hasData() ? &config : NULL; +} + void ClntAuthBlock::storeDataForPlugin(unsigned int length, const unsigned char* data) { dataForPlugin.assign(data, length); HANDSHAKE_DEBUG(fprintf(stderr, "Cln: accepted data for plugin length=%d\n", length)); } -Firebird::RefPtr<Config> REMOTE_get_config(const Firebird::PathName* dbName) +Firebird::RefPtr<Config> REMOTE_get_config(const Firebird::PathName* dbName, + const Firebird::string* dpb_config) { + Firebird::RefPtr<Config> rc = Config::getDefaultConfig(); + if (dbName) { - Firebird::RefPtr<Config> rc; Firebird::PathName dummy; expandDatabaseName(*dbName, dummy, &rc); - return rc; } - return Config::getDefaultConfig(); + + Config::merge(rc, dpb_config); + + return rc; } void REMOTE_parseList(Remote::ParsedList& parsed, Firebird::PathName list) @@ -1276,7 +1296,7 @@ return false; } - if (Config::getWireCrypt(WC_CLIENT) == WIRE_CRYPT_DISABLED) + if (getPortConfig()->getWireCrypt(WC_CLIENT) == WIRE_CRYPT_DISABLED) { port_crypt_complete = true; return true; @@ -1285,7 +1305,7 @@ // we got correct key's type pair // check what about crypt plugin for it Remote::ParsedList clientPlugins; - REMOTE_parseList(clientPlugins, Config::getDefaultConfig()->getPlugins(Firebird::PluginType::WireCrypt)); + REMOTE_parseList(clientPlugins, getPortConfig()->getPlugins(Firebird::PluginType::WireCrypt)); for (unsigned n = 0; n < clientPlugins.getCount(); ++n) { Firebird::PathName p(clientPlugins[n]); Modified: firebird/trunk/src/remote/remote.h =================================================================== --- firebird/trunk/src/remote/remote.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/remote.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -113,7 +113,7 @@ plugin_name, plugin_list, specific_data, address_path, process_id, process_name, encrypt_key, client_version, remote_protocol, - host_name, os_user; + host_name, os_user, config_text; }; extern const ParametersSet dpbParam, spbParam, spbStartParam, spbInfoParam; @@ -639,6 +639,8 @@ // These two are legacy encrypted password, trusted auth data and so on - what plugin needs Firebird::UCharBuffer dataForPlugin, dataFromPlugin; Firebird::HalfStaticArray<InternalCryptKey*, 1> cryptKeys; // Wire crypt keys that came from plugin(s) last time + Firebird::string dpbConfig; // Used to recreate config with new filename + Firebird::RefPtr<Config> config; // Used to get plugins list and pass to port unsigned nextKey; // First key to be analyzed bool hasCryptKey; // DPB contains disk crypt key, may be passed only over encrypted wire @@ -648,7 +650,7 @@ bool authComplete; // Set as response from client that authentication accepted bool firstTime; // Invoked first time after reset - explicit ClntAuthBlock(const Firebird::PathName* fileName); + ClntAuthBlock(const Firebird::PathName* fileName, Firebird::ClumpletReader* dpb, const ParametersSet* tags); ~ClntAuthBlock() { @@ -660,15 +662,16 @@ void extractDataFromPluginTo(Firebird::ClumpletWriter& dpb, const ParametersSet* tags, int protocol); void extractDataFromPluginTo(CSTRING* to); void extractDataFromPluginTo(P_AUTH_CONT* to); - void load(Firebird::ClumpletReader& dpb, const ParametersSet*); + void loadClnt(Firebird::ClumpletReader& dpb, const ParametersSet*); void extractDataFromPluginTo(Firebird::ClumpletWriter& user_id); - void reset(const Firebird::PathName* fileName); + void resetClnt(const Firebird::PathName* fileName); bool checkPluginName(Firebird::PathName& nameToCheck); void saveServiceDataTo(rem_port*); void loadServiceDataFrom(rem_port*); Firebird::PathName getPluginName(); void tryNewKeys(rem_port*); void releaseKeys(unsigned from); + Firebird::RefPtr<Config>* getConfig(); // Auth::IClientBlock implementation int FB_CARG release(); @@ -873,6 +876,7 @@ OBJCT port_last_object_id; // cached last id Firebird::ObjectsArray< Firebird::Array<char> > port_queue; size_t port_qoffset; // current packet in the queue + Firebird::RefPtr<Config> port_config; // connection-specific configuration info // Authentication and crypt stuff ServerAuthBase* port_srv_auth; @@ -934,8 +938,8 @@ public: void linkParent(rem_port* const parent); - void unlinkParent(); + const Firebird::RefPtr<Config>& getPortConfig() const; template <typename T> void getHandle(T*& blk, OBJCT id) Modified: firebird/trunk/src/remote/server/os/posix/inet_server.cpp =================================================================== --- firebird/trunk/src/remote/server/os/posix/inet_server.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/server/os/posix/inet_server.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -292,6 +292,11 @@ INET_SERVER_flag |= SRVR_multi_client; super = true; } + { // scope + Firebird::MasterInterfacePtr master; + master->serverMode(super ? 1 : 0); + } + if (debug) { INET_SERVER_flag |= SRVR_debug; @@ -356,7 +361,7 @@ { try { - port = INET_connect(protocol, 0, INET_SERVER_flag, 0); + port = INET_connect(protocol, 0, INET_SERVER_flag, 0, NULL); } catch (const Firebird::Exception& ex) { Modified: firebird/trunk/src/remote/server/server.cpp =================================================================== --- firebird/trunk/src/remote/server/server.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/remote/server/server.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -1890,6 +1890,9 @@ case isc_dpb_user_name: case isc_dpb_password: case isc_dpb_password_enc: + + // remove client's config information + case isc_dpb_config: pb->deleteClumplet(); break; @@ -1973,7 +1976,8 @@ send->p_resp.p_resp_data.cstr_address = buffer; // To be retrieved via an overloaded class member once our ports become real classes - const int aux_port_id = (port->port_type == rem_port::INET) ? Config::getRemoteAuxPort() : 0; + const int aux_port_id = (port->port_type == rem_port::INET) ? + Config::getDefaultConfig()->getRemoteAuxPort() : 0; GlobalPortLock auxPortLock(aux_port_id); rem_port* const aux_port = port->request(send); @@ -5091,10 +5095,6 @@ // Now insert additional clumplets into spb addClumplets(spb, spbParam, this); - // See if user has specified parameters relevent to the connection, - // they will be stuffed in the SPB if so. - REMOTE_get_timeout_params(this, spb); - // Get ready to cache old-style auth parameters ClumpletWriter* cache = NULL; if (!authenticated) @@ -5120,6 +5120,9 @@ // remove trusted auth & trusted role if present (security measure) case isc_spb_trusted_role: case isc_spb_trusted_auth: + + // remove user config info (security measure) + case isc_spb_config: spb->deleteClumplet(); break; @@ -5129,6 +5132,10 @@ } } + // See if user has specified parameters relevent to the connection, + // they will be stuffed in the SPB if so. + REMOTE_get_timeout_params(this, spb); + if (!authenticated) { // add fake auth block to have additional guarantee that this service never reachs database @@ -6369,7 +6376,7 @@ Remote::ParsedList fromClient; REMOTE_parseList(fromClient, pluginList); - RefPtr<Config> myConfig = REMOTE_get_config(dbPath.hasData() ? &dbPath : NULL); + RefPtr<Config> myConfig = REMOTE_get_config(dbPath.hasData() ? &dbPath : NULL, NULL); Remote::ParsedList onServer; REMOTE_parseList(onServer, myConfig->getPlugins(PluginType::AuthServer)); @@ -6426,7 +6433,7 @@ REMOTE_makeList(pluginList, final); plugins = new AuthServerPlugins(PluginType::AuthServer, FB_AUTH_SERVER_VERSION, upInfo, - myConfig, pluginList.c_str()); + myConfig, pluginList.c_str()); } void SrvAuthBlock::reset() Modified: firebird/trunk/src/utilities/gsec/gsec.cpp =================================================================== --- firebird/trunk/src/utilities/gsec/gsec.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/utilities/gsec/gsec.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -333,7 +333,8 @@ #else false, #endif - serverName.c_str()); + serverName.c_str(), + !databaseNameEntered); if (! sHandle) { GSEC_print(GsecMsg101); // use gsec -? to get help Modified: firebird/trunk/src/yvalve/MasterImplementation.cpp =================================================================== --- firebird/trunk/src/yvalve/MasterImplementation.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/yvalve/MasterImplementation.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -264,6 +264,14 @@ #endif } +int FB_CARG MasterImplementation::serverMode(int mode) +{ + static int currentMode = -1; + if (mode >= 0) + currentMode = mode; + return currentMode; +} + } // namespace Why // Modified: firebird/trunk/src/yvalve/MasterImplementation.h =================================================================== --- firebird/trunk/src/yvalve/MasterImplementation.h 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/yvalve/MasterImplementation.h 2013-04-04 13:17:57 UTC (rev 57896) @@ -68,6 +68,7 @@ int FB_CARG same(IVersioned* first, IVersioned* second); Firebird::IMetadataBuilder* FB_CARG getMetadataBuilder(Firebird::IStatus* status, unsigned fieldCount); Firebird::IDebug* FB_CARG getDebug(); + int FB_CARG serverMode(int mode); }; void shutdownTimers(); Modified: firebird/trunk/src/yvalve/why.cpp =================================================================== --- firebird/trunk/src/yvalve/why.cpp 2013-04-04 00:46:59 UTC (rev 57895) +++ firebird/trunk/src/yvalve/why.cpp 2013-04-04 13:17:57 UTC (rev 57896) @@ -4884,8 +4884,18 @@ const char* serviceName, unsigned int spbLength, const unsigned char* spb, Firebird::ICryptKeyCallback* cryptCallback) { + RefPtr<Config> config(Config::getDefaultConfig()); + + ClumpletReader readSpb(ClumpletReader::spbList, spb, spbLength); + if (readSpb.find(isc_spb_config)) + { + string spb_config; + readSpb.getString(spb_config); + Config::merge(config, &spb_config); + } + for (GetPlugins<IProvider> providerIterator(PluginType::Provider, - FB_PROVIDER_VERSION, upInfo); + FB_PROVIDER_VERSION, upInfo, config); providerIterator.hasData(); providerIterator.next()) { @@ -5211,6 +5221,13 @@ expandedFilename = orgFilename; } + if (newDpb.find(isc_dpb_config)) + { + string dpb_config; + newDpb.getString(dpb_config); + Config::merge(config, &dpb_config); + } + // Convert to UTF8 ISC_systemToUtf8(orgFilename); ISC_systemToUtf8(expandedFilename); @@ -5249,7 +5266,7 @@ { // Now we can expand, the file exists ISC_utf8ToSystem(orgFilename); - if (expandDatabaseName(orgFilename, expandedFilename, &config)) + if (expandDatabaseName(orgFilename, expandedFilename, NULL)) { expandedFilename = orgFilename; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2013-04-05 00:34:51
|
Revision: 57897 http://sourceforge.net/p/firebird/code/57897 Author: firebirds Date: 2013-04-05 00:34:48 +0000 (Fri, 05 Apr 2013) 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 2013-04-04 13:17:57 UTC (rev 57896) +++ firebird/trunk/ChangeLog 2013-04-05 00:34:48 UTC (rev 57897) @@ -1,3 +1,35 @@ + 2013-04-04 13:17 alexpeshkoff + M builds/install/misc/firebird.conf.in + M src/auth/SecureRemotePassword/server/SrpServer.cpp + M src/common/call_service.cpp + M src/common/call_service.h + M src/common/config/config.cpp + M src/common/config/config.h + M src/gpre/boot/gpre_meta_boot.cpp + M src/include/consts_pub.h + M src/include/firebird/Interface.h + M src/include/firebird.h + M src/jrd/EngineInterface.h + M src/jrd/jrd.cpp + M src/jrd/svc.cpp + M src/remote/client/interface.cpp + M src/remote/inet.cpp + M src/remote/inet_proto.h + M src/remote/os/win32/wnet.cpp + M src/remote/os/win32/wnet_proto.h + M src/remote/os/win32/xnet.cpp + M src/remote/os/win32/xnet_proto.h + M src/remote/remot_proto.h + M src/remote/remote.cpp + M src/remote/remote.h + M src/remote/server/os/posix/inet_server.cpp + M src/remote/server/server.cpp + M src/utilities/gsec/gsec.cpp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/MasterImplementation.h + M src/yvalve/why.cpp +Added support for changing configuration (client and embedded) from API + 2013-04-03 15:27 asfernandes M src/jrd/recsrc/ProcedureScan.cpp Fixed CORE-4073 - Constant columns getting empty value with subselect from procedure. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-04 13:17:57 UTC (rev 57896) +++ firebird/trunk/src/jrd/build_no.h 2013-04-05 00:34:48 UTC (rev 57897) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30326 + FORMAL BUILD NUMBER:30327 */ -#define PRODUCT_VER_STRING "3.0.0.30326" -#define FILE_VER_STRING "WI-T3.0.0.30326" -#define LICENSE_VER_STRING "WI-T3.0.0.30326" -#define FILE_VER_NUMBER 3, 0, 0, 30326 +#define PRODUCT_VER_STRING "3.0.0.30327" +#define FILE_VER_STRING "WI-T3.0.0.30327" +#define LICENSE_VER_STRING "WI-T3.0.0.30327" +#define FILE_VER_NUMBER 3, 0, 0, 30327 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30326" +#define FB_BUILD_NO "30327" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-04 13:17:57 UTC (rev 57896) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-05 00:34:48 UTC (rev 57897) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30326 +BuildNum=30327 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...> - 2013-04-06 00:37:36
|
Revision: 57908 http://sourceforge.net/p/firebird/code/57908 Author: firebirds Date: 2013-04-06 00:37:11 +0000 (Sat, 06 Apr 2013) 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 2013-04-05 10:43:19 UTC (rev 57907) +++ firebird/trunk/ChangeLog 2013-04-06 00:37:11 UTC (rev 57908) @@ -1,3 +1,9 @@ + 2013-04-05 07:48 hvlad + M src/remote/os/win32/wnet.cpp + M src/remote/os/win32/xnet.cpp + M src/remote/server/os/win32/srvr_w32.cpp +Fixed Windows build + 2013-04-04 13:17 alexpeshkoff M builds/install/misc/firebird.conf.in M src/auth/SecureRemotePassword/server/SrpServer.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-05 10:43:19 UTC (rev 57907) +++ firebird/trunk/src/jrd/build_no.h 2013-04-06 00:37:11 UTC (rev 57908) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30327 + FORMAL BUILD NUMBER:30328 */ -#define PRODUCT_VER_STRING "3.0.0.30327" -#define FILE_VER_STRING "WI-T3.0.0.30327" -#define LICENSE_VER_STRING "WI-T3.0.0.30327" -#define FILE_VER_NUMBER 3, 0, 0, 30327 +#define PRODUCT_VER_STRING "3.0.0.30328" +#define FILE_VER_STRING "WI-T3.0.0.30328" +#define LICENSE_VER_STRING "WI-T3.0.0.30328" +#define FILE_VER_NUMBER 3, 0, 0, 30328 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30327" +#define FB_BUILD_NO "30328" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-05 10:43:19 UTC (rev 57907) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-06 00:37:11 UTC (rev 57908) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30327 +BuildNum=30328 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-04-06 17:58:37
|
Revision: 57912 http://sourceforge.net/p/firebird/code/57912 Author: mapopa Date: 2013-04-06 17:58:35 +0000 (Sat, 06 Apr 2013) Log Message: ----------- Remove unused and broken code defined with PIGGYBACK Modified Paths: -------------- firebird/trunk/doc/emacros-cross_ref.html firebird/trunk/src/remote/inet.cpp Modified: firebird/trunk/doc/emacros-cross_ref.html =================================================================== --- firebird/trunk/doc/emacros-cross_ref.html 2013-04-06 17:46:27 UTC (rev 57911) +++ firebird/trunk/doc/emacros-cross_ref.html 2013-04-06 17:58:35 UTC (rev 57912) @@ -236,17 +236,6 @@ used in remote\window.cpp(481) with #ifdef <br> </td></tr> <tr><td valign="top"> -(16) ISC_DATABASE_ENCRYPTION</td><td> </td></tr> -<tr><td> </td><td> -used in jrd\jrd.cpp(5248) with #ifdef <br> -used in jrd\unix.cpp(480) with #ifdef <br> -used in jrd\unix.cpp(743) with #ifdef <br> -used in jrd\unix.cpp(838) with #ifdef <br> -used in jrd\vms.cpp(346) with #ifdef <br> -used in jrd\vms.cpp(547) with #ifdef <br> -used in jrd\vms.cpp(618) with #ifdef <br> -</td></tr> -<tr><td valign="top"> (17) MANAGER_PROCESS</td><td> </td></tr> <tr><td> </td><td> used in lock\lock.cpp(105) with #ifdef <br> @@ -438,12 +427,6 @@ used in qli\show.epp(1834) with #ifdef <br> </td></tr> <tr><td valign="top"> -(22) PIGGYBACK</td><td> </td></tr> -<tr><td> </td><td> -used in remote\inet.cpp(3432) with #ifdef <br> -used in remote\inet.cpp(3462) with #ifdef <br> -</td></tr> -<tr><td valign="top"> (23) REPLAY_OSRI_API_CALLS_SUBSYSTEM</td><td>System to reply requests, usable for debug. Not complete.</td></tr> <tr><td> </td><td> used in jrd\blb.cpp(88) with #ifdef <br> @@ -2685,69 +2668,6 @@ used in utilities\drop.cpp(357) with #if<br> </td></tr> <tr><td valign="top"> -(12) SCO</td><td> </td></tr> -<tr><td> </td><td> -used in jrd\isc_file.cpp(267) with #ifndef<br> -used in jrd\shdef.h(87) with #ifndef<br> -used in jrd\shrinit.cpp(34) with #ifndef<br> -used in jrd\shrinit.cpp(87) with #ifndef<br> -used in jrd\shrinit.cpp(98) with #ifndef<br> -used in jrd\shrinit.cpp(130) with #ifndef<br> -used in jrd\shrinit.cpp(169) with #ifndef<br> -used in jrd\shrinit.cpp(179) with #ifndef<br> -used in jrd\shrinit.cpp(189) with #ifdef <br> -used in jrd\shrinit.cpp(195) with #ifndef<br> -used in jrd\shrinit.cpp(200) with #ifdef <br> -used in jrd\shrinit.cpp(220) with #ifdef <br> -used in jrd\shrinit.cpp(236) with #ifdef <br> -used in remote\inet.cpp(491) with #ifndef<br> -used in remote\inet.cpp(526) with #ifndef<br> -</td></tr> -<tr><td valign="top"> -(13) SCO_EV</td><td> </td></tr> -<tr><td> </td><td> -used in jrd\flu.cpp(100) with #if<br> -used in jrd\isc.cpp(83) with #ifdef <br> -used in jrd\isc.cpp(329) with #if<br> -used in jrd\isc_ipc.cpp(94) with #ifdef <br> -used in remote\remote_def.h(67) with #ifdef <br> -used in utilities\drop.cpp(306) with #ifdef <br> -</td></tr> -<tr><td valign="top"> -(14) SCO_UNIX</td><td> </td></tr> -<tr><td> </td><td> -used in gpre\gpre.h(79) with #if<br> -used in journal\console.cpp(34) with #ifdef <br> -used in jrd\cvt.cpp(83) with #ifdef <br> -used in jrd\isc_file.cpp(167) with #ifdef <br> -used in jrd\isc_file.cpp(1432) with #ifdef <br> -used in jrd\jio.cpp(58) with #ifdef <br> -used in jrd\svc.cpp(98) with #ifdef <br> -used in lock\lock.h(83) with #ifdef <br> -used in remote\inet.cpp(122) with #if<br> -</td></tr> -<tr><td valign="top"> -(15) SINIXZ</td><td> </td></tr> -<tr><td> </td><td> -used in common\config\config.cpp(71) with #ifdef <br> -used in gpre\cob.cpp(160) with #ifdef <br> -used in gpre\ftn.cpp(256) with #ifdef <br> -used in jrd\flu.cpp(100) with #if<br> -used in jrd\flu.cpp(228) with #if<br> -used in jrd\isc_file.cpp(203) with #if<br> -used in jrd\isc_file.cpp(587) with #if<br> -used in jrd\isc_file.cpp(1018) with #if<br> -used in jrd\isc_ipc.cpp(222) with #ifdef <br> -used in jrd\isc_ipc.cpp(1023) with #ifdef <br> -used in jrd\license.h(123) with #ifdef <br> -used in jrd\pag.cpp(168) with #ifdef <br> -used in jrd\why.cpp(518) with #ifndef<br> -used in lock\lock.h(87) with #ifdef <br> -used in remote\inet.cpp(2398) with #if<br> -used in remote\inet.cpp(2427) with #if<br> -used in utilities\drop.cpp(357) with #if<br> -</td></tr> -<tr><td valign="top"> (16) SOLARIS</td><td> </td></tr> <tr><td> </td><td> used in common\classes\locks.h(12) with #ifndef<br> Modified: firebird/trunk/src/remote/inet.cpp =================================================================== --- firebird/trunk/src/remote/inet.cpp 2013-04-06 17:46:27 UTC (rev 57911) +++ firebird/trunk/src/remote/inet.cpp 2013-04-06 17:58:35 UTC (rev 57912) @@ -2767,56 +2767,6 @@ return TRUE; -#ifdef PIGGYBACK - // CVC: Screwed logic here: if I initialize l2 to zero, nothing useful executes. - SCHAR aux_buffer[BUFFER_SIZE]; - SSHORT l2 = 0; -#error Assign l2 some meaningful value before running this. - // If the other end has not piggy-backed the next packet, we're done. - - if (!l2) - return TRUE; - - // We've got a piggy-backed response. If the packet is partial, - // send an ACK for part we did receive. - - char* p2 = aux_buffer; - - while (l2 < 0) - { - if (!packet_send(port, 0, 0)) - return FALSE; - p2 -= l2; - length = aux_buffer + sizeof(aux_buffer) - p2; - if (!packet_receive(port, p2, length, &l2)) - { - p2 += l2; - continue; - } - } - - length = p2 - aux_buffer + l2; - - // Now we're got a encode glump ready to stuff into the read buffer. - // Unfortunately, if we just add it to the read buffer, we will shortly - // overflow the buffer. To avoid this, "scrumpf down" the active bits - // in the read buffer, then add out stuff at the end. - - xdrs = &port->port_receive; - p2 = xdrs->x_base; - - if (xdrs->x_handy && p2 != xdrs->x_private) { - memmove(p2, xdrs->x_private, xdrs->x_handy); - } - - p2 += xdrs->x_handy; - - xdrs->x_private = xdrs->x_base; - - // xdrs->x_handy += JAP_decode (aux_buffer, length, p2); - - return TRUE; -#endif } #ifdef DEBUG This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2013-04-07 00:38:05
|
Revision: 57913 http://sourceforge.net/p/firebird/code/57913 Author: firebirds Date: 2013-04-07 00:37:00 +0000 (Sun, 07 Apr 2013) 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 2013-04-06 17:58:35 UTC (rev 57912) +++ firebird/trunk/ChangeLog 2013-04-07 00:37:00 UTC (rev 57913) @@ -1,3 +1,18 @@ + 2013-04-06 17:58 mapopa + M doc/emacros-cross_ref.html + M src/remote/inet.cpp +Remove unused and broken code defined with PIGGYBACK + + 2013-04-06 17:46 mapopa + M src/remote/inet.cpp +Cleanup comments and unused code + + 2013-04-06 09:12 dimitr + M src/jrd/dpm.epp + M src/jrd/sqz.cpp + M src/jrd/sqz.h +Pass the pool explicitly, it saves us one TLS access per record. + 2013-04-05 07:48 hvlad M src/remote/os/win32/wnet.cpp M src/remote/os/win32/xnet.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-06 17:58:35 UTC (rev 57912) +++ firebird/trunk/src/jrd/build_no.h 2013-04-07 00:37:00 UTC (rev 57913) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30328 + FORMAL BUILD NUMBER:30331 */ -#define PRODUCT_VER_STRING "3.0.0.30328" -#define FILE_VER_STRING "WI-T3.0.0.30328" -#define LICENSE_VER_STRING "WI-T3.0.0.30328" -#define FILE_VER_NUMBER 3, 0, 0, 30328 +#define PRODUCT_VER_STRING "3.0.0.30331" +#define FILE_VER_STRING "WI-T3.0.0.30331" +#define LICENSE_VER_STRING "WI-T3.0.0.30331" +#define FILE_VER_NUMBER 3, 0, 0, 30331 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30328" +#define FB_BUILD_NO "30331" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-06 17:58:35 UTC (rev 57912) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-07 00:37:00 UTC (rev 57913) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30328 +BuildNum=30331 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...> - 2013-04-07 23:48:17
|
Revision: 57915 http://sourceforge.net/p/firebird/code/57915 Author: asfernandes Date: 2013-04-07 23:48:14 +0000 (Sun, 07 Apr 2013) Log Message: ----------- Misc. Modified Paths: -------------- firebird/trunk/builds/install/misc/firebird.conf.in firebird/trunk/src/remote/inet.cpp firebird/trunk/src/remote/os/win32/wnet.cpp firebird/trunk/src/remote/os/win32/xnet.cpp firebird/trunk/src/remote/remot_proto.h firebird/trunk/src/remote/remote.cpp firebird/trunk/src/remote/remote.h firebird/trunk/src/remote/server/server.cpp Modified: firebird/trunk/builds/install/misc/firebird.conf.in =================================================================== --- firebird/trunk/builds/install/misc/firebird.conf.in 2013-04-07 07:55:40 UTC (rev 57914) +++ firebird/trunk/builds/install/misc/firebird.conf.in 2013-04-07 23:48:14 UTC (rev 57915) @@ -20,7 +20,7 @@ # value. # # Please note, by default a number of the values are specified in **Bytes** (Not KB). -# You may add obvious abbreviations k, m and g in the end of a numver to specify +# You may add obvious abbreviations k, m and g in the end of a number to specify # kilobytes, megabytes and gigabytes. # # There are three types of configuration values: integer, boolean and string. Modified: firebird/trunk/src/remote/inet.cpp =================================================================== --- firebird/trunk/src/remote/inet.cpp 2013-04-07 07:55:40 UTC (rev 57914) +++ firebird/trunk/src/remote/inet.cpp 2013-04-07 23:48:14 UTC (rev 57915) @@ -2732,7 +2732,7 @@ return port; } -static bool_t inet_write( XDR* xdrs ) +static bool_t inet_write(XDR* xdrs) { /************************************** * Modified: firebird/trunk/src/remote/os/win32/wnet.cpp =================================================================== --- firebird/trunk/src/remote/os/win32/wnet.cpp 2013-04-07 07:55:40 UTC (rev 57914) +++ firebird/trunk/src/remote/os/win32/wnet.cpp 2013-04-07 23:48:14 UTC (rev 57915) @@ -587,7 +587,8 @@ port->port_async = new_port; new_port->port_flags = port->port_flags & PORT_no_oob; new_port->port_flags |= PORT_async; - new_port->port_connection = make_pipe_name(port->getPortConfig(), port->port_connection->str_data, EVENT_PIPE_SUFFIX, p); + new_port->port_connection = make_pipe_name(port->getPortConfig(), + port->port_connection->str_data, EVENT_PIPE_SUFFIX, p); while (true) { @@ -635,8 +636,8 @@ TEXT str_pid[32]; wnet_make_file_name(str_pid, server_pid); - new_port->port_connection = - make_pipe_name(vport->getPortConfig(), vport->port_connection->str_data, EVENT_PIPE_SUFFIX, str_pid); + new_port->port_connection = make_pipe_name(vport->getPortConfig(), + vport->port_connection->str_data, EVENT_PIPE_SUFFIX, str_pid); new_port->port_pipe = CreateNamedPipe(new_port->port_connection->str_data, @@ -796,7 +797,8 @@ #endif -static rem_str* make_pipe_name(const RefPtr<Config>& config, const TEXT* connect_name, const TEXT* suffix_name, const TEXT* str_pid) +static rem_str* make_pipe_name(const RefPtr<Config>& config, const TEXT* connect_name, + const TEXT* suffix_name, const TEXT* str_pid) { /************************************** * Modified: firebird/trunk/src/remote/os/win32/xnet.cpp =================================================================== --- firebird/trunk/src/remote/os/win32/xnet.cpp 2013-04-07 07:55:40 UTC (rev 57914) +++ firebird/trunk/src/remote/os/win32/xnet.cpp 2013-04-07 23:48:14 UTC (rev 57915) @@ -396,7 +396,8 @@ // Initialize server-side IPC endpoint to a value we know we have permissions to listen at if (strcmp(xnet_endpoint, "") == 0) { - fb_utils::copy_terminate(xnet_endpoint, Config::getDefaultConfig()->getIpcName(), sizeof(xnet_endpoint)); + fb_utils::copy_terminate(xnet_endpoint, Config::getDefaultConfig()->getIpcName(), + sizeof(xnet_endpoint)); fb_utils::prefix_kernel_object_name(xnet_endpoint, sizeof(xnet_endpoint)); } @@ -2136,7 +2137,8 @@ // Initialize server-side IPC endpoint to a value we know we have permissions to listen at if (strcmp(xnet_endpoint, "") == 0) { - fb_utils::copy_terminate(xnet_endpoint, Config::getDefaultConfig()->getIpcName(), sizeof(name_buffer)); + fb_utils::copy_terminate(xnet_endpoint, Config::getDefaultConfig()->getIpcName(), + sizeof(name_buffer)); fb_utils::prefix_kernel_object_name(xnet_endpoint, sizeof(xnet_endpoint)); } Modified: firebird/trunk/src/remote/remot_proto.h =================================================================== --- firebird/trunk/src/remote/remot_proto.h 2013-04-07 07:55:40 UTC (rev 57914) +++ firebird/trunk/src/remote/remot_proto.h 2013-04-07 23:48:14 UTC (rev 57915) @@ -58,7 +58,8 @@ void REMOTE_save_status_strings (ISC_STATUS *); bool_t REMOTE_getbytes (XDR*, SCHAR*, u_int); bool REMOTE_legacy_auth(const char* nm, int protocol); -Firebird::RefPtr<Config> REMOTE_get_config(const Firebird::PathName* dbName, const Firebird::string* dpb_config); +Firebird::RefPtr<Config> REMOTE_get_config(const Firebird::PathName* dbName, + const Firebird::string* dpb_config); void REMOTE_parseList(Remote::ParsedList&, Firebird::PathName); void REMOTE_makeList(Firebird::PathName& list, const Remote::ParsedList& parsed); void REMOTE_check_response(Firebird::IStatus* warning, Rdb* rdb, PACKET* packet, bool checkKeys = false); Modified: firebird/trunk/src/remote/remote.cpp =================================================================== --- firebird/trunk/src/remote/remote.cpp 2013-04-07 07:55:40 UTC (rev 57914) +++ firebird/trunk/src/remote/remote.cpp 2013-04-07 23:48:14 UTC (rev 57915) @@ -441,8 +441,8 @@ fb_assert(isc_dpb_connect_timeout == isc_spb_connect_timeout); - port->port_connect_timeout = - pb && pb->find(isc_dpb_connect_timeout) ? pb->getInt() : port->getPortConfig()->getConnectionTimeout(); + port->port_connect_timeout = pb && pb->find(isc_dpb_connect_timeout) ? + pb->getInt() : port->getPortConfig()->getConnectionTimeout(); port->port_flags |= PORT_dummy_pckt_set; port->port_dummy_packet_interval = port->getPortConfig()->getDummyPacketInterval(); Modified: firebird/trunk/src/remote/remote.h =================================================================== --- firebird/trunk/src/remote/remote.h 2013-04-07 07:55:40 UTC (rev 57914) +++ firebird/trunk/src/remote/remote.h 2013-04-07 23:48:14 UTC (rev 57915) @@ -650,7 +650,8 @@ bool authComplete; // Set as response from client that authentication accepted bool firstTime; // Invoked first time after reset - ClntAuthBlock(const Firebird::PathName* fileName, Firebird::ClumpletReader* dpb, const ParametersSet* tags); + ClntAuthBlock(const Firebird::PathName* fileName, Firebird::ClumpletReader* dpb, + const ParametersSet* tags); ~ClntAuthBlock() { Modified: firebird/trunk/src/remote/server/server.cpp =================================================================== --- firebird/trunk/src/remote/server/server.cpp 2013-04-07 07:55:40 UTC (rev 57914) +++ firebird/trunk/src/remote/server/server.cpp 2013-04-07 23:48:14 UTC (rev 57915) @@ -5132,7 +5132,7 @@ } } - // See if user has specified parameters relevent to the connection, + // See if user has specified parameters relevant to the connection, // they will be stuffed in the SPB if so. REMOTE_get_timeout_params(this, spb); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2013-04-08 00:48:52
|
Revision: 57916 http://sourceforge.net/p/firebird/code/57916 Author: firebirds Date: 2013-04-08 00:48:48 +0000 (Mon, 08 Apr 2013) 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 2013-04-07 23:48:14 UTC (rev 57915) +++ firebird/trunk/ChangeLog 2013-04-08 00:48:48 UTC (rev 57916) @@ -1,3 +1,18 @@ + 2013-04-07 23:48 asfernandes + M builds/install/misc/firebird.conf.in + M src/remote/inet.cpp + M src/remote/os/win32/wnet.cpp + M src/remote/os/win32/xnet.cpp + M src/remote/remot_proto.h + M src/remote/remote.cpp + M src/remote/remote.h + M src/remote/server/server.cpp +Misc. + + 2013-04-07 07:55 dimitr + M src/jrd/cch.cpp +Avoid calling lock_buffer() for the SS setup. + 2013-04-06 17:58 mapopa M doc/emacros-cross_ref.html M src/remote/inet.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-07 23:48:14 UTC (rev 57915) +++ firebird/trunk/src/jrd/build_no.h 2013-04-08 00:48:48 UTC (rev 57916) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30331 + FORMAL BUILD NUMBER:30333 */ -#define PRODUCT_VER_STRING "3.0.0.30331" -#define FILE_VER_STRING "WI-T3.0.0.30331" -#define LICENSE_VER_STRING "WI-T3.0.0.30331" -#define FILE_VER_NUMBER 3, 0, 0, 30331 +#define PRODUCT_VER_STRING "3.0.0.30333" +#define FILE_VER_STRING "WI-T3.0.0.30333" +#define LICENSE_VER_STRING "WI-T3.0.0.30333" +#define FILE_VER_NUMBER 3, 0, 0, 30333 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30331" +#define FB_BUILD_NO "30333" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-07 23:48:14 UTC (rev 57915) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-08 00:48:48 UTC (rev 57916) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30331 +BuildNum=30333 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ale...@us...> - 2013-04-08 16:28:09
|
Revision: 57918 http://sourceforge.net/p/firebird/code/57918 Author: alexpeshkoff Date: 2013-04-08 16:28:05 +0000 (Mon, 08 Apr 2013) Log Message: ----------- Renamed aliases.conf to databases.conf as suggested by Dmitry Modified Paths: -------------- firebird/trunk/builds/install/arch-specific/aix/classic/makeInstallImage.sh.in firebird/trunk/builds/install/arch-specific/darwin/install-script firebird/trunk/builds/install/arch-specific/darwin/preupgrade-script firebird/trunk/builds/install/arch-specific/freebsd/install.sh.in firebird/trunk/builds/install/arch-specific/hpux/classic/firebirdCS.psf.in firebird/trunk/builds/install/arch-specific/hpux/classic/makeinstallImage.sh.in firebird/trunk/builds/install/arch-specific/hpux/misc/createaliasDB.sh.in firebird/trunk/builds/install/arch-specific/hpux/super/makeinstallImage.sh.in firebird/trunk/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in firebird/trunk/builds/install/arch-specific/netbsd/install.sh.in firebird/trunk/builds/install/arch-specific/solaris/CS/prototype.in firebird/trunk/builds/install/arch-specific/solaris/SS/prototype.in firebird/trunk/builds/install/arch-specific/win32/BuildExecutableInstall.bat firebird/trunk/builds/install/arch-specific/win32/FirebirdInstallEnvironmentChecks.inc firebird/trunk/builds/install/arch-specific/win32/FirebirdInstall_30.iss firebird/trunk/builds/install/arch-specific/win32/installation_readme.txt firebird/trunk/builds/install/arch-specific/win32/installation_scripted.txt firebird/trunk/builds/install/misc/createAliasDB.sh.in firebird/trunk/builds/install/misc/firebird.conf.in firebird/trunk/builds/posix/postfix.darwin firebird/trunk/configure.ac firebird/trunk/doc/README.raw_devices firebird/trunk/doc/install_windows_manually.txt firebird/trunk/src/common/db_alias.cpp firebird/trunk/src/yvalve/PluginManager.cpp Added Paths: ----------- firebird/trunk/builds/install/misc/databases.conf.in Removed Paths: ------------- firebird/trunk/builds/install/misc/aliases.conf.in Modified: firebird/trunk/builds/install/arch-specific/aix/classic/makeInstallImage.sh.in =================================================================== --- firebird/trunk/builds/install/arch-specific/aix/classic/makeInstallImage.sh.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/aix/classic/makeInstallImage.sh.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -209,7 +209,7 @@ # Misc config files cp $BuildRootDir/gen/install/misc/firebird.conf $DestDir/ - cp $BuildRootDir/gen/install/misc/aliases.conf $DestDir/ + cp $BuildRootDir/gen/install/misc/databases.conf $DestDir/ cp $BuildRootDir/gen/install/misc/fbintl.conf $DestDir/intl/ # Create links from @libdir@ to install area. Modified: firebird/trunk/builds/install/arch-specific/darwin/install-script =================================================================== --- firebird/trunk/builds/install/arch-specific/darwin/install-script 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/darwin/install-script 2013-04-08 16:28:05 UTC (rev 57918) @@ -240,10 +240,10 @@ rm -f /tmp/fb-security-database-update2.fdb fi -#Install the saved aliases.conf, if any -echo "Install the saved aliases.conf file" -if test -f /tmp/fb-aliases.conf; then - mv -f /tmp/fb-aliases.conf "$FB_RES/English.lproj/var/aliases.conf" +#Install the saved databases.conf, if any +echo "Install the saved databases.conf file" +if test -f /tmp/fb-databases.conf; then + mv -f /tmp/fb-databases.conf "$FB_RES/English.lproj/var/databases.conf" fi #Install the saved UDF libraries, if any Modified: firebird/trunk/builds/install/arch-specific/darwin/preupgrade-script =================================================================== --- firebird/trunk/builds/install/arch-specific/darwin/preupgrade-script 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/darwin/preupgrade-script 2013-04-08 16:28:05 UTC (rev 57918) @@ -18,8 +18,8 @@ if test -f "$FB_FW/Versions/A/Resources/English.lproj/var/security2.fdb"; then mv -f "$FB_FW/Versions/A/Resources/English.lproj/var/security2.fdb" /tmp/fb-security-database-update2.fdb fi -if test -f "$FB_FW/Versions/A/Resources/English.lproj/var/aliases.conf"; then - mv -f "$FB_FW/Versions/A/Resources/English.lproj/var/aliases.conf" /tmp/fb-aliases.conf +if test -f "$FB_FW/Versions/A/Resources/English.lproj/var/databases.conf"; then + mv -f "$FB_FW/Versions/A/Resources/English.lproj/var/databases.conf" /tmp/fb-databases.conf fi for i in /Library/Frameworks/Firebird.framework/Resources/English.lproj/var/UDF/*;do Modified: firebird/trunk/builds/install/arch-specific/freebsd/install.sh.in =================================================================== --- firebird/trunk/builds/install/arch-specific/freebsd/install.sh.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/freebsd/install.sh.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -301,7 +301,7 @@ #conf cp $BuiltFBDir/firebird.conf ${TargetDir}@FB_CONFDIR@ - cp $BuiltFBDir/aliases.conf ${TargetDir}@FB_CONFDIR@ + cp $BuiltFBDir/databases.conf ${TargetDir}@FB_CONFDIR@ cp $BuiltFBDir/fbtrace.conf ${TargetDir}@FB_CONFDIR@ chown root:wheel ${TargetDir}@FB_CONFDIR@/*.conf Modified: firebird/trunk/builds/install/arch-specific/hpux/classic/firebirdCS.psf.in =================================================================== --- firebird/trunk/builds/install/arch-specific/hpux/classic/firebirdCS.psf.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/hpux/classic/firebirdCS.psf.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -27,7 +27,7 @@ tag main file -u 0660 -g firebird -o firebird buildroot@prefix@/security2.fdb @prefix@/security2.fdb file -u 0644 -g firebird -o firebird buildroot@prefix@/firebird.conf @prefix@/firebird.conf -file -u 0644 -g firebird -o firebird buildroot@prefix@/aliases.conf @prefix@/aliases.conf +file -u 0644 -g firebird -o firebird buildroot@prefix@/databases.conf @prefix@/databases.conf file -u 0644 -g firebird -o firebird buildroot@prefix@/WhatsNew @prefix@/WhatsNew end # Modified: firebird/trunk/builds/install/arch-specific/hpux/classic/makeinstallImage.sh.in =================================================================== --- firebird/trunk/builds/install/arch-specific/hpux/classic/makeinstallImage.sh.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/hpux/classic/makeinstallImage.sh.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -206,7 +206,7 @@ # Misc config files cp $BuildRootDir/gen/install/misc/firebird.conf $DestDir/ - cp $BuildRootDir/gen/install/misc/aliases.conf $DestDir/ + cp $BuildRootDir/gen/install/misc/databases.conf $DestDir/ cp $BuildRootDir/gen/install/misc/fbintl.conf $DestDir/intl/ # Create links from @libdir@ to install area. Modified: firebird/trunk/builds/install/arch-specific/hpux/misc/createaliasDB.sh.in =================================================================== --- firebird/trunk/builds/install/arch-specific/hpux/misc/createaliasDB.sh.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/hpux/misc/createaliasDB.sh.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -51,7 +51,7 @@ #------------------------------------------------------------------------------ # appendAliasEntry -# check to see if an entry already exists in the aliases.conf file +# check to see if an entry already exists in the databases.conf file # if it doesn't append it to the end of the file appendAliasEntry() { @@ -138,7 +138,7 @@ aliasName=$1 newDB=$2 - AliasFile=@FB_CONFDIR@/aliases.conf + AliasFile=@FB_CONFDIR@/databases.conf checkNameStartsWithSlash $newDB Modified: firebird/trunk/builds/install/arch-specific/hpux/super/makeinstallImage.sh.in =================================================================== --- firebird/trunk/builds/install/arch-specific/hpux/super/makeinstallImage.sh.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/hpux/super/makeinstallImage.sh.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -169,7 +169,7 @@ # Miscellaneous config and stratup files cp $BuildRootDir/gen/install/misc/firebird.conf $DestDir/firebird.conf - cp $BuildRootDir/gen/install/misc/aliases.conf $DestDir/ + cp $BuildRootDir/gen/install/misc/databases.conf $DestDir/ # Create links from /usr/lib to install area. Modified: firebird/trunk/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in =================================================================== --- firebird/trunk/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -304,7 +304,7 @@ #conf cp $BuiltFBDir/firebird.conf ${TargetDir}@FB_CONFDIR@ - cp $BuiltFBDir/aliases.conf ${TargetDir}@FB_CONFDIR@ + cp $BuiltFBDir/databases.conf ${TargetDir}@FB_CONFDIR@ cp $BuiltFBDir/fbtrace.conf ${TargetDir}@FB_CONFDIR@ cp $BuiltFBDir/plugins.conf ${TargetDir}@FB_CONFDIR@ Modified: firebird/trunk/builds/install/arch-specific/netbsd/install.sh.in =================================================================== --- firebird/trunk/builds/install/arch-specific/netbsd/install.sh.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/netbsd/install.sh.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -197,14 +197,14 @@ cp $BuiltFBDir/misc/firebird.conf $DestDir/firebird.conf.sample || exit -echo "#" >> $DestDir/aliases.conf.sample -echo "# List of known database aliases" >> $DestDir/aliases.conf.sample -echo "# ------------------------------" >> $DestDir/aliases.conf.sample -echo "#" >> $DestDir/aliases.conf.sample -echo "# Examples:" >> $DestDir/aliases.conf.sample -echo "#" >> $DestDir/aliases.conf.sample -echo "# employee = /$DestDir/examples/employee.fdb" >> $DestDir/aliases.conf.sample -echo "#" >> $DestDir/aliases.conf.sample +echo "#" >> $DestDir/databases.conf.sample +echo "# List of known database aliases" >> $DestDir/databases.conf.sample +echo "# ------------------------------" >> $DestDir/databases.conf.sample +echo "#" >> $DestDir/databases.conf.sample +echo "# Examples:" >> $DestDir/databases.conf.sample +echo "#" >> $DestDir/databases.conf.sample +echo "# employee = /$DestDir/examples/employee.fdb" >> $DestDir/databases.conf.sample +echo "#" >> $DestDir/databases.conf.sample echo Setting ownership and permissions on installed files @@ -284,7 +284,7 @@ chmod ug=rw,o= help/*.fdb || exit # install the samples if they don't exist -[ -f aliases.conf ] || install -o firebird -g firebird -m 440 aliases.conf.sample aliases.conf +[ -f databases.conf ] || install -o firebird -g firebird -m 440 databases.conf.sample databases.conf [ -f firebird.conf ] || install -o firebird -g firebird -m 440 firebird.conf.sample firebird.conf [ -f security2.fdb ] || install -o firebird -g firebird -m 660 security2.fdb.sample security2.fdb Modified: firebird/trunk/builds/install/arch-specific/solaris/CS/prototype.in =================================================================== --- firebird/trunk/builds/install/arch-specific/solaris/CS/prototype.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/solaris/CS/prototype.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -18,7 +18,7 @@ v CONFIG.prsv @prefix@/security2.fdb=$SRCDIR/security2.fdb 0660 firebird firebird v CONFIG.prsv @prefix@/firebird.conf=$SRCDIR/misc/firebird.conf 0444 firebird firebird -v CONFIG.prsv @prefix@/aliases.conf=$SRCDIR/../../builds/install/misc/aliases.conf.in 0444 firebird firebird +v CONFIG.prsv @prefix@/databases.conf=$SRCDIR/../../builds/install/misc/databases.conf.in 0444 firebird firebird v CONFIG.prsv @prefix@/intl/fbintl.conf=$SRCDIR/misc/fbintl.conf 0644 firebird firebird f none @prefix@/WhatsNew=$SRCDIR/../../doc/WhatsNew 0644 firebird firebird Modified: firebird/trunk/builds/install/arch-specific/solaris/SS/prototype.in =================================================================== --- firebird/trunk/builds/install/arch-specific/solaris/SS/prototype.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/solaris/SS/prototype.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -18,7 +18,7 @@ v CONFIG.prsv @prefix@/security2.fdb=$SRCDIR/security2.fdb 0660 firebird firebird v CONFIG.prsv @prefix@/firebird.conf=$SRCDIR/misc/firebird.conf 0644 firebird firebird -v CONFIG.prsv @prefix@/aliases.conf=$SRCDIR/../../builds/install/misc/aliases.conf.in 0544 firebird firebird +v CONFIG.prsv @prefix@/databases.conf=$SRCDIR/../../builds/install/misc/databases.conf.in 0544 firebird firebird v CONFIG.prsv @prefix@/intl/fbintl.conf=$SRCDIR/misc/fbintl.conf 0644 firebird firebird f none @prefix@/WhatsNew=$SRCDIR/../../doc/WhatsNew 0644 firebird firebird Modified: firebird/trunk/builds/install/arch-specific/win32/BuildExecutableInstall.bat =================================================================== --- firebird/trunk/builds/install/arch-specific/win32/BuildExecutableInstall.bat 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/win32/BuildExecutableInstall.bat 2013-04-08 16:28:05 UTC (rev 57918) @@ -441,15 +441,15 @@ :ALIAS_CONF :: Generate a sample aliases file ::=============================== -@echo Creating sample aliases.conf -@echo # > %FB_OUTPUT_DIR%\aliases.conf -@echo # List of known database aliases >> %FB_OUTPUT_DIR%\aliases.conf -@echo # ------------------------------ >> %FB_OUTPUT_DIR%\aliases.conf -@echo # >> %FB_OUTPUT_DIR%\aliases.conf -@echo # Examples: >> %FB_OUTPUT_DIR%\aliases.conf -@echo # >> %FB_OUTPUT_DIR%\aliases.conf -@echo # dummy = c:\data\dummy.fdb >> %FB_OUTPUT_DIR%\aliases.conf -@echo # >> %FB_OUTPUT_DIR%\aliases.conf +@echo Creating sample databases.conf +@echo # > %FB_OUTPUT_DIR%\databases.conf +@echo # List of known database aliases >> %FB_OUTPUT_DIR%\databases.conf +@echo # ------------------------------ >> %FB_OUTPUT_DIR%\databases.conf +@echo # >> %FB_OUTPUT_DIR%\databases.conf +@echo # Examples: >> %FB_OUTPUT_DIR%\databases.conf +@echo # >> %FB_OUTPUT_DIR%\databases.conf +@echo # dummy = c:\data\dummy.fdb >> %FB_OUTPUT_DIR%\databases.conf +@echo # >> %FB_OUTPUT_DIR%\databases.conf ::End of ALIAS_CONF ::----------------- @@ -585,7 +585,7 @@ @mkdir %FBBUILD_EMB_PACK_ROOT% 2>nul @del /s /q %FBBUILD_EMB_PACK_ROOT%\ > nul -for %%v in (aliases.conf firebird.conf firebird.msg) do ( @copy /Y %FB_OUTPUT_DIR%\%%v %FBBUILD_EMB_PACK_ROOT%\%%v > nul) +for %%v in (databases.conf firebird.conf firebird.msg) do ( @copy /Y %FB_OUTPUT_DIR%\%%v %FBBUILD_EMB_PACK_ROOT%\%%v > nul) for %%v in ( doc intl udf ) do (@mkdir %FBBUILD_EMB_PACK_ROOT%\%%v 2>nul) Modified: firebird/trunk/builds/install/arch-specific/win32/FirebirdInstallEnvironmentChecks.inc =================================================================== --- firebird/trunk/builds/install/arch-specific/win32/FirebirdInstallEnvironmentChecks.inc 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/win32/FirebirdInstallEnvironmentChecks.inc 2013-04-08 16:28:05 UTC (rev 57918) @@ -736,7 +736,7 @@ else SharedFileArray[26].Filename := ExpandConstant('{sys}')+'FIREBI~1.CPL'; -SharedFileArray[27].Filename := ExpandConstant('{app}')+'aliases.conf'; +SharedFileArray[27].Filename := ExpandConstant('{app}')+'databases.conf'; SharedFileArray[28].Filename := ExpandConstant('{app}')+'firebird.conf'; SharedFileArray[29].Filename := ExpandConstant('{app}')+'firebird.log'; SharedFileArray[30].Filename := ExpandConstant('{app}')+'security3.fdb'; Modified: firebird/trunk/builds/install/arch-specific/win32/FirebirdInstall_30.iss =================================================================== --- firebird/trunk/builds/install/arch-specific/win32/FirebirdInstall_30.iss 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/win32/FirebirdInstall_30.iss 2013-04-08 16:28:05 UTC (rev 57918) @@ -494,7 +494,7 @@ Source: {#FilesDir}\firebird.conf; DestDir: {app}; DestName: firebird.conf; Components: ServerComponent; Flags: uninsneveruninstall; check: NoFirebirdConfExists Source: {#FilesDir}\fbtrace.conf; DestDir: {app}; DestName: fbtrace.conf.default; Components: ServerComponent; Source: {#FilesDir}\fbtrace.conf; DestDir: {app}; DestName: fbtrace.conf; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist; check: NofbtraceConfExists; -Source: {#FilesDir}\aliases.conf; DestDir: {app}; Components: ClientComponent; Flags: uninsneveruninstall onlyifdoesntexist +Source: {#FilesDir}\databases.conf; DestDir: {app}; Components: ClientComponent; Flags: uninsneveruninstall onlyifdoesntexist Source: {#FilesDir}\security3.fdb; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist Source: {#FilesDir}\firebird.msg; DestDir: {app}; Components: ClientComponent; Flags: sharedfile ignoreversion Source: {#FilesDir}\firebird.log; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall skipifsourcedoesntexist external dontcopy @@ -665,7 +665,7 @@ // Options for scripted uninstall. CleanUninstall: Boolean; // If /clean is passed to the uninstaller it will delete // user config files - firebird.conf, firebird.log, - // aliases.conf, fbtrace.conf and the security database. + // databases.conf, fbtrace.conf and the security database. SYSDBAName: String; // Name of SYSDBA SYSDBAPassword: String; // SYSDBA password @@ -1056,7 +1056,7 @@ //Manually set the sharedfile count of these files. IncrementSharedCount(Is64BitInstallMode, GetAppPath+'\firebird.conf', false); IncrementSharedCount(Is64BitInstallMode, GetAppPath+'\firebird.log', false); - IncrementSharedCount(Is64BitInstallMode, GetAppPath+'\aliases.conf', false); + IncrementSharedCount(Is64BitInstallMode, GetAppPath+'\databases.conf', false); IncrementSharedCount(Is64BitInstallMode, GetAppPath+'\fbtrace.conf', false); IncrementSharedCount(Is64BitInstallMode, GetAppPath+'\security3.fdb', false); end; @@ -1168,9 +1168,9 @@ if CleanUninstall then DeleteFile(GetAppPath+'\firebird.log'); - if DecrementSharedCount(Is64BitInstallMode, GetAppPath+'\aliases.conf') then + if DecrementSharedCount(Is64BitInstallMode, GetAppPath+'\databases.conf') then if CleanUninstall then - DeleteFile(GetAppPath+'\aliases.conf'); + DeleteFile(GetAppPath+'\databases.conf'); if DecrementSharedCount(Is64BitInstallMode, GetAppPath+'\fbtrace.conf') then if CleanUninstall then Modified: firebird/trunk/builds/install/arch-specific/win32/installation_readme.txt =================================================================== --- firebird/trunk/builds/install/arch-specific/win32/installation_readme.txt 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/win32/installation_readme.txt 2013-04-08 16:28:05 UTC (rev 57918) @@ -130,7 +130,7 @@ o Uninstallation leaves five files in the install directory: - - aliases.conf + - databases.conf - firebird.conf - fbtrace.conf - firebird.log Modified: firebird/trunk/builds/install/arch-specific/win32/installation_scripted.txt =================================================================== --- firebird/trunk/builds/install/arch-specific/win32/installation_scripted.txt 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/arch-specific/win32/installation_scripted.txt 2013-04-08 16:28:05 UTC (rev 57918) @@ -398,7 +398,7 @@ the uninstallation process has completed: firebird.conf - aliases.conf + databases.conf firebird.log security3.fdb fbtrace.conf Deleted: firebird/trunk/builds/install/misc/aliases.conf.in =================================================================== --- firebird/trunk/builds/install/misc/aliases.conf.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/misc/aliases.conf.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -1,13 +0,0 @@ -# ------------------------------ -# List of known database aliases -# ------------------------------ - -# -# Example Database: -# -employee.fdb = $(dir_sampledb)/employee.fdb -employee = $(dir_sampledb)/employee.fdb - -# -# Live Databases: -# Modified: firebird/trunk/builds/install/misc/createAliasDB.sh.in =================================================================== --- firebird/trunk/builds/install/misc/createAliasDB.sh.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/misc/createAliasDB.sh.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -36,7 +36,7 @@ #------------------------------------------------------------------------------ # appendAliasEntry -# check to see if an entry already exists in the aliases.conf file +# check to see if an entry already exists in the databases.conf file # if it doesn't append it to the end of the file appendAliasEntry() { @@ -121,7 +121,7 @@ aliasName=$1 newDB=$2 - AliasFile=@FB_CONFDIR@/aliases.conf + AliasFile=@FB_CONFDIR@/databases.conf checkNameStartsWithSlash $newDB appendAliasEntry $aliasName $newDB Copied: firebird/trunk/builds/install/misc/databases.conf.in (from rev 57903, firebird/trunk/builds/install/misc/aliases.conf.in) =================================================================== --- firebird/trunk/builds/install/misc/databases.conf.in (rev 0) +++ firebird/trunk/builds/install/misc/databases.conf.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -0,0 +1,13 @@ +# ------------------------------ +# List of known database aliases +# ------------------------------ + +# +# Example Database: +# +employee.fdb = $(dir_sampledb)/employee.fdb +employee = $(dir_sampledb)/employee.fdb + +# +# Live Databases: +# Property changes on: firebird/trunk/builds/install/misc/databases.conf.in ___________________________________________________________________ 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 Modified: firebird/trunk/builds/install/misc/firebird.conf.in =================================================================== --- firebird/trunk/builds/install/misc/firebird.conf.in 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/install/misc/firebird.conf.in 2013-04-08 16:28:05 UTC (rev 57918) @@ -70,7 +70,7 @@ # To specify access to specific trees, enum all required paths # (for Win32 this may be something like 'C:\DataBase;D:\Mirror', # for unix - '/db;/mnt/mirrordb'). If you choose 'None', then only -# databases listed in aliases.conf can be attached. +# databases listed in databases.conf can be attached. # # Note: simple quotation marks shown above should *NOT* be used when # specifying values and directory path names. Examples: Modified: firebird/trunk/builds/posix/postfix.darwin =================================================================== --- firebird/trunk/builds/posix/postfix.darwin 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/builds/posix/postfix.darwin 2013-04-08 16:28:05 UTC (rev 57918) @@ -105,8 +105,8 @@ cp ../builds/install/arch-specific/darwin/Readme.txt \ $(FB_FW)/Resources/Readme.txt cp ../gen/install/misc/firebird.conf $(FB_FW)/Resources/English.lproj/var - cp ../builds/install/arch-specific/darwin/aliases.conf.in \ - $(FB_FW)/Resources/English.lproj/var/aliases.conf + cp ../builds/install/arch-specific/darwin/databases.conf.in \ + $(FB_FW)/Resources/English.lproj/var/databases.conf cp ../src/utilities/ntrace/fbtrace.conf \ $(FB_FW)/Resources/English.lproj/var/fbtrace.conf @@ -171,8 +171,8 @@ cp ../builds/install/arch-specific/darwin/Readme.txt \ $(FB_FW)/Resources/Readme.txt cp ../gen/install/misc/firebird.conf $(FB_FW)/Resources/English.lproj/var - cp ../builds/install/arch-specific/darwin/aliases.conf.in \ - $(FB_FW)/Resources/English.lproj/var/aliases.conf + cp ../builds/install/arch-specific/darwin/databases.conf.in \ + $(FB_FW)/Resources/English.lproj/var/databases.conf cp ../src/utilities/ntrace/fbtrace.conf \ $(FB_FW)/Resources/English.lproj/var/fbtrace.conf darwin_postbuild_target: package Modified: firebird/trunk/configure.ac =================================================================== --- firebird/trunk/configure.ac 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/configure.ac 2013-04-08 16:28:05 UTC (rev 57918) @@ -1114,7 +1114,7 @@ for fb_tgt in $FB_TARGETS; do AC_CONFIG_FILES([ gen/$fb_tgt/firebird/firebird.conf:builds/install/misc/firebird.conf.in -gen/$fb_tgt/firebird/aliases.conf:builds/install/misc/aliases.conf.in +gen/$fb_tgt/firebird/databases.conf:builds/install/misc/databases.conf.in gen/$fb_tgt/firebird/fbtrace.conf:src/utilities/ntrace/fbtrace.conf gen/$fb_tgt/firebird/intl/fbintl.conf:builds/install/misc/fbintl.conf gen/$fb_tgt/firebird/plugins.conf:builds/install/misc/plugins.conf Modified: firebird/trunk/doc/README.raw_devices =================================================================== --- firebird/trunk/doc/README.raw_devices 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/doc/README.raw_devices 2013-04-08 16:28:05 UTC (rev 57918) @@ -74,6 +74,6 @@ In all other aspects raw devices do not have known specific in use. - Tip: it's good idea to have raw devices in aliases.conf - in + Tip: it's good idea to have raw devices in databases.conf - in case of HW reconfiguration of your server you will not need to change connection strings. Modified: firebird/trunk/doc/install_windows_manually.txt =================================================================== --- firebird/trunk/doc/install_windows_manually.txt 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/doc/install_windows_manually.txt 2013-04-08 16:28:05 UTC (rev 57918) @@ -81,7 +81,7 @@ instclient.exe remove <libname> - Delete installation directory. You may wish to keep the log file, security - database, firebird.conf and aliases.conf. + database, firebird.conf and databases.conf. Modified: firebird/trunk/src/common/db_alias.cpp =================================================================== --- firebird/trunk/src/common/db_alias.cpp 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/src/common/db_alias.cpp 2013-04-08 16:28:05 UTC (rev 57918) @@ -54,7 +54,7 @@ }; InitInstance<DatabaseDirectoryList> databaseDirectoryList; - const char* const ALIAS_FILE = "aliases.conf"; + const char* const ALIAS_FILE = "databases.conf"; void replace_dir_sep(PathName& s) { @@ -272,8 +272,8 @@ return false; } -// Search for 'alias' in aliases.conf, return its value in 'file' if found. Else set file to alias. -// Returns true if alias is found in aliases.conf. +// Search for 'alias' in databases.conf, return its value in 'file' if found. Else set file to alias. +// Returns true if alias is found in databases.conf. static bool resolveAlias(const PathName& alias, PathName& file, RefPtr<Config>* config) { PathName correctedAlias = alias; @@ -346,7 +346,7 @@ } // Full processing of database name -// Returns true if alias was found in aliases.conf +// Returns true if alias was found in databases.conf bool expandDatabaseName(const Firebird::PathName& alias, Firebird::PathName& file, Firebird::RefPtr<Config>* config) @@ -357,13 +357,13 @@ } catch (const fatal_exception& ex) { - gds__log("File aliases.conf contains bad data: %s", ex.what()); + gds__log("File databases.conf contains bad data: %s", ex.what()); (Arg::Gds(isc_random) << "Server misconfigured - contact administrator please").raise(); } ReadLockGuard guard(aliasesConf().rwLock, "expandDatabaseName"); - // First of all check in aliases.conf + // First of all check in databases.conf if (resolveAlias(alias, file, config)) { return true; @@ -390,7 +390,7 @@ } } - // Search for correct config in aliases.conf + // Search for correct config in databases.conf if (config) { DbName* db = aliasesConf().dbHash.lookup(file); Modified: firebird/trunk/src/yvalve/PluginManager.cpp =================================================================== --- firebird/trunk/src/yvalve/PluginManager.cpp 2013-04-08 15:05:22 UTC (rev 57917) +++ firebird/trunk/src/yvalve/PluginManager.cpp 2013-04-08 16:28:05 UTC (rev 57918) @@ -395,7 +395,7 @@ PluginModule* builtin = NULL; // Provides most of configuration services for plugins, - // except per-database configuration in aliases.conf + // except per-database configuration in databases.conf class ConfiguredPlugin : public RefCntIface<ITimer, FB_TIMER_VERSION> { public: @@ -472,7 +472,7 @@ PathName plugName; }; - // Provides per-database configuration from aliases.conf. + // Provides per-database configuration from databases.conf. class FactoryParameter : public RefCntIface<IPluginConfig, FB_PLUGIN_CONFIG_VERSION> { public: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2013-04-10 00:44:31
|
Revision: 57923 http://sourceforge.net/p/firebird/code/57923 Author: firebirds Date: 2013-04-10 00:44:27 +0000 (Wed, 10 Apr 2013) 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 2013-04-09 20:09:56 UTC (rev 57922) +++ firebird/trunk/ChangeLog 2013-04-10 00:44:27 UTC (rev 57923) @@ -1,3 +1,45 @@ + 2013-04-09 20:09 mapopa + M doc/README.build.mingw.html +Cleanup mingw build instructions , todo add up to date instructions with ming-w64 http://mingw-w64.sourceforge.net/ used for qt , boost ... http://qt-project.org/wiki/MinGW + + 2013-04-09 15:34 mapopa + M doc/README.build.msvc.html +Update VisualStudio 20xx building notes README + + 2013-04-08 16:28 alexpeshkoff + M builds/install/arch-specific/aix/classic/makeInstallImage.sh.in + M builds/install/arch-specific/darwin/install-script + M builds/install/arch-specific/darwin/preupgrade-script + M builds/install/arch-specific/freebsd/install.sh.in + M builds/install/arch-specific/hpux/classic/firebirdCS.psf.in + M builds/install/arch-specific/hpux/classic/makeinstallImage.sh.in + M builds/install/arch-specific/hpux/misc/createaliasDB.sh.in + M builds/install/arch-specific/hpux/super/makeinstallImage.sh.in + M builds/install/arch-specific/linux/misc/makeInstallImage.sh.in + M builds/install/arch-specific/netbsd/install.sh.in + M builds/install/arch-specific/solaris/CS/prototype.in + M builds/install/arch-specific/solaris/SS/prototype.in + M builds/install/arch-specific/win32/BuildExecutableInstall.bat + M builds/install/arch-specific/win32/FirebirdInstallEnvironmentChecks.inc + M builds/install/arch-specific/win32/FirebirdInstall_30.iss + M builds/install/arch-specific/win32/installation_readme.txt + M builds/install/arch-specific/win32/installation_scripted.txt + D builds/install/misc/aliases.conf.in + M builds/install/misc/createAliasDB.sh.in + A builds/install/misc/databases.conf.in (from /firebird/trunk/builds/install/misc/aliases.conf.in:57903) + M builds/install/misc/firebird.conf.in + M builds/posix/postfix.darwin + M configure.ac + M doc/README.raw_devices + M doc/install_windows_manually.txt + M src/common/db_alias.cpp + M src/yvalve/PluginManager.cpp +Renamed aliases.conf to databases.conf as suggested by Dmitry + + 2013-04-08 15:05 alexpeshkoff + M src/auth/SecureRemotePassword/manage/SrpManagement.cpp +Fixed leak, found by Claudio. Fixed diagnostics. + 2013-04-07 23:48 asfernandes M builds/install/misc/firebird.conf.in M src/remote/inet.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-09 20:09:56 UTC (rev 57922) +++ firebird/trunk/src/jrd/build_no.h 2013-04-10 00:44:27 UTC (rev 57923) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30333 + FORMAL BUILD NUMBER:30337 */ -#define PRODUCT_VER_STRING "3.0.0.30333" -#define FILE_VER_STRING "WI-T3.0.0.30333" -#define LICENSE_VER_STRING "WI-T3.0.0.30333" -#define FILE_VER_NUMBER 3, 0, 0, 30333 +#define PRODUCT_VER_STRING "3.0.0.30337" +#define FILE_VER_STRING "WI-T3.0.0.30337" +#define LICENSE_VER_STRING "WI-T3.0.0.30337" +#define FILE_VER_NUMBER 3, 0, 0, 30337 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30333" +#define FB_BUILD_NO "30337" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-09 20:09:56 UTC (rev 57922) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-10 00:44:27 UTC (rev 57923) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30333 +BuildNum=30337 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...> - 2013-04-11 00:38:06
|
Revision: 57925 http://sourceforge.net/p/firebird/code/57925 Author: firebirds Date: 2013-04-11 00:38:01 +0000 (Thu, 11 Apr 2013) 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 2013-04-10 11:32:45 UTC (rev 57924) +++ firebird/trunk/ChangeLog 2013-04-11 00:38:01 UTC (rev 57925) @@ -1,3 +1,8 @@ + 2013-04-10 11:32 mapopa + M doc/cleaning-todo.txt + M doc/emacros-cross_ref.html +Update cleaning todo for 3.x , remove already cleaned work done in 1.5.x,2.x + 2013-04-09 20:09 mapopa M doc/README.build.mingw.html Cleanup mingw build instructions , todo add up to date instructions with ming-w64 http://mingw-w64.sourceforge.net/ used for qt , boost ... http://qt-project.org/wiki/MinGW Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-10 11:32:45 UTC (rev 57924) +++ firebird/trunk/src/jrd/build_no.h 2013-04-11 00:38:01 UTC (rev 57925) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30337 + FORMAL BUILD NUMBER:30338 */ -#define PRODUCT_VER_STRING "3.0.0.30337" -#define FILE_VER_STRING "WI-T3.0.0.30337" -#define LICENSE_VER_STRING "WI-T3.0.0.30337" -#define FILE_VER_NUMBER 3, 0, 0, 30337 +#define PRODUCT_VER_STRING "3.0.0.30338" +#define FILE_VER_STRING "WI-T3.0.0.30338" +#define LICENSE_VER_STRING "WI-T3.0.0.30338" +#define FILE_VER_NUMBER 3, 0, 0, 30338 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30337" +#define FB_BUILD_NO "30338" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-10 11:32:45 UTC (rev 57924) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-11 00:38:01 UTC (rev 57925) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30337 +BuildNum=30338 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...> - 2013-04-11 15:44:24
|
Revision: 57933 http://sourceforge.net/p/firebird/code/57933 Author: asfernandes Date: 2013-04-11 15:44:17 +0000 (Thu, 11 Apr 2013) Log Message: ----------- Revert external routines to request-based (*) code, but now using a totally different internal approach. * This is not ideal IMO, but much more easier to currently support stack traces, and domain's defaults and validations. Modified Paths: -------------- firebird/trunk/examples/udr/UdrCppExample.cpp firebird/trunk/src/dsql/ExprNodes.cpp firebird/trunk/src/dsql/Nodes.h firebird/trunk/src/dsql/StmtNodes.cpp firebird/trunk/src/dsql/StmtNodes.h firebird/trunk/src/jrd/ExtEngineManager.cpp firebird/trunk/src/jrd/ExtEngineManager.h firebird/trunk/src/jrd/Function.epp firebird/trunk/src/jrd/exe.cpp firebird/trunk/src/jrd/jrd.cpp firebird/trunk/src/jrd/met.epp firebird/trunk/src/jrd/par.cpp firebird/trunk/src/jrd/par_proto.h firebird/trunk/src/jrd/recsrc/ProcedureScan.cpp firebird/trunk/src/jrd/recsrc/RecordSource.h firebird/trunk/src/jrd/req.h Modified: firebird/trunk/examples/udr/UdrCppExample.cpp =================================================================== --- firebird/trunk/examples/udr/UdrCppExample.cpp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/examples/udr/UdrCppExample.cpp 2013-04-11 15:44:17 UTC (rev 57933) @@ -190,8 +190,7 @@ unsigned outNullOffset = outMetadata->getNullOffset(status, 0); StatusException::check(status->get()); - // By default, the return value is NOT NULL. - ///*(ISC_SHORT*) (out + outNullOffset) = FB_FALSE; + *(ISC_SHORT*) (out + outNullOffset) = FB_FALSE; // Get offset of the return value. unsigned outOffset = outMetadata->getOffset(status, 0); @@ -244,7 +243,7 @@ ***/ FB_UDR_BEGIN_PROCEDURE(gen_rows) // Procedure variables. - unsigned inOffsetStart, inOffsetEnd, outOffset; + unsigned inOffsetStart, inOffsetEnd, outNullOffset, outOffset; /*** Procedure destructor. ~FB_UDR_PROCEDURE(gen_rows)() @@ -269,6 +268,9 @@ IMessageMetadata* outMetadata = metadata->getOutputMetadata(status); StatusException::check(status->get()); + outNullOffset = outMetadata->getNullOffset(status, 0); + StatusException::check(status->get()); + outOffset = outMetadata->getOffset(status, 0); StatusException::check(status->get()); @@ -279,6 +281,8 @@ { counter = *(ISC_LONG*) (in + procedure->inOffsetStart); end = *(ISC_LONG*) (in + procedure->inOffsetEnd); + + *(ISC_SHORT*) (out + procedure->outNullOffset) = FB_FALSE; } FB_UDR_FETCH_PROCEDURE @@ -320,6 +324,7 @@ , (FB_INTEGER, result)) { + out->resultNull = FB_FALSE; out->result = in->start - 1; } Modified: firebird/trunk/src/dsql/ExprNodes.cpp =================================================================== --- firebird/trunk/src/dsql/ExprNodes.cpp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/dsql/ExprNodes.cpp 2013-04-11 15:44:17 UTC (rev 57933) @@ -10671,10 +10671,7 @@ CMP_impure(csb, function->getInputFormat()->fmt_length); } - if (function->fun_external) - fb_assert(function->getOutputFormat()->fmt_count == 2); - else - fb_assert(function->getOutputFormat()->fmt_count == 3); + fb_assert(function->getOutputFormat()->fmt_count == 3); fb_assert(function->getOutputFormat()->fmt_length); CMP_impure(csb, function->getOutputFormat()->fmt_length); @@ -10763,13 +10760,6 @@ UCHAR* const inMsg = (UCHAR*) FB_ALIGN((IPTR) impure + sizeof(impure_value), FB_ALIGNMENT); UCHAR* const outMsg = (UCHAR*) FB_ALIGN((IPTR) inMsg + inMsgLength, FB_ALIGNMENT); - if (function->fun_external) - { - // We must clear messages of external functions. - memset(inMsg, 0, inMsgLength); - memset(outMsg, 0, outMsgLength); - } - if (function->fun_inputs != 0) { const NestConst<ValueExprNode>* const sourceEnd = args->items.end(); @@ -10801,10 +10791,28 @@ const SLONG savePointNumber = transaction->tra_save_point ? transaction->tra_save_point->sav_number : 0; - if (function->fun_external) + jrd_req* funcRequest = function->getStatement()->findRequest(tdbb); + + // trace function execution start + //// TODO: TraceProcExecute trace(tdbb, funcRequest, request, inputTargets); + + // Catch errors so we can unwind cleanly. + + try { - function->fun_external->execute(tdbb, inMsg, outMsg); + Jrd::ContextPoolHolder context(tdbb, funcRequest->req_pool); // Save the old pool. + funcRequest->req_timestamp = request->req_timestamp; + + EXE_start(tdbb, funcRequest, transaction); + + if (inMsgLength != 0) + EXE_send(tdbb, funcRequest, 0, inMsgLength, inMsg); + + EXE_receive(tdbb, funcRequest, 1, outMsgLength, outMsg); + + // Clean up all savepoints started during execution of the procedure. + if (transaction != attachment->getSysTransaction()) { for (const Savepoint* savePoint = transaction->tra_save_point; @@ -10815,65 +10823,30 @@ } } } - else + catch (const Exception& ex) { - jrd_req* funcRequest = function->getStatement()->findRequest(tdbb); + /*** TODO: + const bool noPriv = (ex.stuff_exception(tdbb->tdbb_status_vector) == isc_no_priv); + trace.finish(false, noPriv ? res_unauthorized : res_failed); + ***/ - // trace function execution start - //// TODO: TraceProcExecute trace(tdbb, funcRequest, request, inputTargets); - - // Catch errors so we can unwind cleanly. - - try - { - Jrd::ContextPoolHolder context(tdbb, funcRequest->req_pool); // Save the old pool. - - funcRequest->req_timestamp = request->req_timestamp; - - EXE_start(tdbb, funcRequest, transaction); - - if (inMsgLength != 0) - EXE_send(tdbb, funcRequest, 0, inMsgLength, inMsg); - - EXE_receive(tdbb, funcRequest, 1, outMsgLength, outMsg); - - // Clean up all savepoints started during execution of the procedure. - - if (transaction != attachment->getSysTransaction()) - { - for (const Savepoint* savePoint = transaction->tra_save_point; - savePoint && savePointNumber < savePoint->sav_number; - savePoint = transaction->tra_save_point) - { - VIO_verb_cleanup(tdbb, transaction); - } - } - } - catch (const Exception& ex) - { - /*** TODO: - const bool noPriv = (ex.stuff_exception(tdbb->tdbb_status_vector) == isc_no_priv); - trace.finish(false, noPriv ? res_unauthorized : res_failed); - ***/ - - tdbb->setRequest(request); - EXE_unwind(tdbb, funcRequest); - funcRequest->req_attachment = NULL; - funcRequest->req_flags &= ~(req_in_use | req_proc_fetch); - funcRequest->req_timestamp.invalidate(); - throw; - } - - //// TODO: trace.finish(false, res_successful); - + tdbb->setRequest(request); EXE_unwind(tdbb, funcRequest); - tdbb->setRequest(request); - funcRequest->req_attachment = NULL; funcRequest->req_flags &= ~(req_in_use | req_proc_fetch); funcRequest->req_timestamp.invalidate(); + throw; } + //// TODO: trace.finish(false, res_successful); + + EXE_unwind(tdbb, funcRequest); + tdbb->setRequest(request); + + funcRequest->req_attachment = NULL; + funcRequest->req_flags &= ~(req_in_use | req_proc_fetch); + funcRequest->req_timestamp.invalidate(); + const dsc* fmtDesc = function->getOutputFormat()->fmt_desc.begin(); const ULONG nullOffset = (IPTR) fmtDesc[1].dsc_address; SSHORT* const nullPtr = reinterpret_cast<SSHORT*>(outMsg + nullOffset); Modified: firebird/trunk/src/dsql/Nodes.h =================================================================== --- firebird/trunk/src/dsql/Nodes.h 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/dsql/Nodes.h 2013-04-11 15:44:17 UTC (rev 57933) @@ -1286,7 +1286,10 @@ TYPE_STORE, TYPE_SUSPEND, TYPE_UPDATE_OR_INSERT, - TYPE_USER_SAVEPOINT + TYPE_USER_SAVEPOINT, + + TYPE_EXT_INIT_PARAMETER, + TYPE_EXT_TRIGGER }; enum WhichTrigger Modified: firebird/trunk/src/dsql/StmtNodes.cpp =================================================================== --- firebird/trunk/src/dsql/StmtNodes.cpp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/dsql/StmtNodes.cpp 2013-04-11 15:44:17 UTC (rev 57933) @@ -2745,13 +2745,6 @@ outMsg = (UCHAR*) FB_ALIGN((U_IPTR) outMsg, FB_DOUBLE_ALIGN); } - if (procedure->getExternal()) - { - // We must clear messages of external procedures. - memset(inMsg, 0, inMsgLength); - memset(outMsg, 0, outMsgLength); - } - if (inputSources) { const NestConst<ValueExprNode>* const sourceEnd = inputSources->items.end(); @@ -2766,14 +2759,26 @@ const SLONG savePointNumber = transaction->tra_save_point ? transaction->tra_save_point->sav_number : 0; - if (procedure->getExternal()) + jrd_req* procRequest = procedure->getStatement()->findRequest(tdbb); + + // trace procedure execution start + TraceProcExecute trace(tdbb, procRequest, request, inputTargets); + + // Catch errors so we can unwind cleanly. + + try { - { // scope - AutoPtr<ExtEngineManager::ResultSet> resultSet(procedure->getExternal()->open( - tdbb, inMsg, outMsg)); - resultSet->fetch(tdbb); - } + Jrd::ContextPoolHolder context(tdbb, procRequest->req_pool); // Save the old pool. + procRequest->req_timestamp = request->req_timestamp; + + EXE_start(tdbb, procRequest, transaction); + + if (inputMessage) + EXE_send(tdbb, procRequest, 0, inMsgLength, inMsg); + + EXE_receive(tdbb, procRequest, 1, outMsgLength, outMsg); + // Clean up all savepoints started during execution of the procedure. if (transaction != attachment->getSysTransaction()) @@ -2786,64 +2791,29 @@ } } } - else + catch (const Exception& ex) { - jrd_req* procRequest = procedure->getStatement()->findRequest(tdbb); + const bool noPriv = (ex.stuff_exception(tdbb->tdbb_status_vector) == isc_no_priv); + trace.finish(false, noPriv ? res_unauthorized : res_failed); - // trace procedure execution start - TraceProcExecute trace(tdbb, procRequest, request, inputTargets); - - // Catch errors so we can unwind cleanly. - - try - { - Jrd::ContextPoolHolder context(tdbb, procRequest->req_pool); // Save the old pool. - - procRequest->req_timestamp = request->req_timestamp; - - EXE_start(tdbb, procRequest, transaction); - - if (inputMessage) - EXE_send(tdbb, procRequest, 0, inMsgLength, inMsg); - - EXE_receive(tdbb, procRequest, 1, outMsgLength, outMsg); - - // Clean up all savepoints started during execution of the procedure. - - if (transaction != attachment->getSysTransaction()) - { - for (const Savepoint* savePoint = transaction->tra_save_point; - savePoint && savePointNumber < savePoint->sav_number; - savePoint = transaction->tra_save_point) - { - VIO_verb_cleanup(tdbb, transaction); - } - } - } - catch (const Exception& ex) - { - const bool noPriv = (ex.stuff_exception(tdbb->tdbb_status_vector) == isc_no_priv); - trace.finish(false, noPriv ? res_unauthorized : res_failed); - - tdbb->setRequest(request); - EXE_unwind(tdbb, procRequest); - procRequest->req_attachment = NULL; - procRequest->req_flags &= ~(req_in_use | req_proc_fetch); - procRequest->req_timestamp.invalidate(); - throw; - } - - // trace procedure execution finish - trace.finish(false, res_successful); - + tdbb->setRequest(request); EXE_unwind(tdbb, procRequest); - tdbb->setRequest(request); - procRequest->req_attachment = NULL; procRequest->req_flags &= ~(req_in_use | req_proc_fetch); procRequest->req_timestamp.invalidate(); + throw; } + // trace procedure execution finish + trace.finish(false, res_successful); + + EXE_unwind(tdbb, procRequest); + tdbb->setRequest(request); + + procRequest->req_attachment = NULL; + procRequest->req_flags &= ~(req_in_use | req_proc_fetch); + procRequest->req_timestamp.invalidate(); + if (outputSources) { const NestConst<ValueExprNode>* const sourceEnd = outputSources->items.end(); @@ -5193,35 +5163,43 @@ { MessageNode* node = FB_NEW(pool) MessageNode(pool); - // Get message number, register it in the compiler scratch block, and + // Parse the BLR and finish the node creation. + USHORT message = csb->csb_blr_reader.getByte(); + USHORT count = csb->csb_blr_reader.getWord(); + node->setup(tdbb, csb, message, count); + + return node; +} + +void MessageNode::setup(thread_db* tdbb, CompilerScratch* csb, USHORT message, USHORT count) +{ + // Register message number in the compiler scratch block, and // allocate a node to represent the message. - USHORT n = csb->csb_blr_reader.getByte(); - CompilerScratch::csb_repeat* tail = CMP_csb_element(csb, n); + CompilerScratch::csb_repeat* tail = CMP_csb_element(csb, message); - tail->csb_message = node; - node->messageNumber = n; + tail->csb_message = this; + messageNumber = message; - if (n > csb->csb_msg_number) - csb->csb_msg_number = n; + if (message > csb->csb_msg_number) + csb->csb_msg_number = message; USHORT padField; - bool shouldPad = csb->csb_message_pad.get(node->messageNumber, padField); + bool shouldPad = csb->csb_message_pad.get(messageNumber, padField); // Get the number of parameters in the message and prepare to fill out the format block. - n = csb->csb_blr_reader.getWord(); - node->format = Format::newFormat(*tdbb->getDefaultPool(), n); + format = Format::newFormat(*tdbb->getDefaultPool(), count); USHORT maxAlignment = 0; ULONG offset = 0; Format::fmt_desc_iterator desc, end; USHORT index = 0; - for (desc = node->format->fmt_desc.begin(), end = desc + n; desc < end; ++desc, ++index) + for (desc = format->fmt_desc.begin(), end = desc + count; desc < end; ++desc, ++index) { ItemInfo itemInfo; - const USHORT alignment = PAR_desc(tdbb, csb, &*desc, &itemInfo); + const USHORT alignment = setupDesc(tdbb, csb, index, &*desc, &itemInfo); if (alignment) offset = FB_ALIGN(offset, alignment); @@ -5248,9 +5226,13 @@ if (offset > MAX_MESSAGE_SIZE) PAR_error(csb, Arg::Gds(isc_imp_exc) << Arg::Gds(isc_blktoobig)); - node->format->fmt_length = offset; + format->fmt_length = offset; +} - return node; +USHORT MessageNode::setupDesc(thread_db* tdbb, CompilerScratch* csb, USHORT /*index*/, + dsc* desc, ItemInfo* itemInfo) +{ + return PAR_desc(tdbb, csb, desc, itemInfo); } MessageNode* MessageNode::dsqlPass(DsqlCompilerScratch* /*dsqlScratch*/) Modified: firebird/trunk/src/dsql/StmtNodes.h =================================================================== --- firebird/trunk/src/dsql/StmtNodes.h 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/dsql/StmtNodes.h 2013-04-11 15:44:17 UTC (rev 57933) @@ -1067,6 +1067,11 @@ public: static DmlNode* parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, UCHAR blrOp); + void setup(thread_db* tdbb, CompilerScratch* csb, USHORT message, USHORT count); + + virtual USHORT setupDesc(thread_db* tdbb, CompilerScratch* csb, USHORT index, + dsc* desc, ItemInfo* itemInfo); + virtual void print(Firebird::string& text) const; virtual MessageNode* dsqlPass(DsqlCompilerScratch* dsqlScratch); virtual void genBlr(DsqlCompilerScratch* dsqlScratch); Modified: firebird/trunk/src/jrd/ExtEngineManager.cpp =================================================================== --- firebird/trunk/src/jrd/ExtEngineManager.cpp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/ExtEngineManager.cpp 2013-04-11 15:44:17 UTC (rev 57933) @@ -34,7 +34,9 @@ #include "../jrd/status.h" #include "../jrd/tra.h" #include "../jrd/ibase.h" +#include "../dsql/StmtNodes.h" #include "../common/os/path_utils.h" +#include "../jrd/cmp_proto.h" #include "../jrd/cvt_proto.h" #include "../jrd/evl_proto.h" #include "../jrd/intl_proto.h" @@ -54,8 +56,407 @@ #include "../common/classes/GetPlugins.h" using namespace Firebird; +using namespace Jrd; +namespace +{ + // External message node. + class ExtMessageNode : public MessageNode + { + public: + ExtMessageNode(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, USHORT message, + Array<NestConst<Parameter> >& aParameters, const Format* aFormat) + : MessageNode(pool), + parameters(aParameters), + format(aFormat), + isSpecial(pool) + { + setup(tdbb, csb, message, format->fmt_count); + } + + virtual USHORT setupDesc(thread_db* tdbb, CompilerScratch* csb, USHORT index, + dsc* desc, ItemInfo* itemInfo) + { + *desc = format->fmt_desc[index]; + + if (index % 2 == 0 && index / 2 < parameters.getCount()) + { + const Parameter* param = parameters[index / 2]; + + if (param->prm_mechanism != prm_mech_type_of && + !fb_utils::implicit_domain(param->prm_field_source.c_str())) + { + MetaNamePair namePair(param->prm_field_source, ""); + + FieldInfo fieldInfo; + bool exist = csb->csb_map_field_info.get(namePair, fieldInfo); + MET_get_domain(tdbb, param->prm_field_source, desc, (exist ? NULL : &fieldInfo)); + + if (!exist) + csb->csb_map_field_info.put(namePair, fieldInfo); + + itemInfo->field = namePair; + itemInfo->nullable = fieldInfo.nullable; + itemInfo->fullDomain = true; + } + + itemInfo->name = param->prm_name; + + if (!param->prm_nullable) + itemInfo->nullable = false; + + isSpecial.getBuffer(index / 2 + 1)[index / 2] = itemInfo->isSpecial(); + } + + return type_alignments[desc->dsc_dtype]; + } + + virtual const StmtNode* execute(thread_db* tdbb, jrd_req* request, ExeState* exeState) const + { + if (request->req_operation == jrd_req::req_evaluate) + { + // Clear the message. This is important for external routines. + UCHAR* msg = request->getImpure<UCHAR>(impureOffset); + memset(msg, 0, format->fmt_length); + } + + return MessageNode::execute(tdbb, request, exeState); + } + + public: + Array<NestConst<Parameter> >& parameters; + const Format* format; + Array<bool> isSpecial; + }; + + // Initialize output parameters with their domains default value or NULL. + // Kind of blr_init_variable, but for parameters. + class ExtInitParameterNode : public TypedNode<StmtNode, StmtNode::TYPE_EXT_INIT_PARAMETER> + { + public: + ExtInitParameterNode(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, + ExtMessageNode* aMessage, USHORT aArgNumber) + : TypedNode<StmtNode, StmtNode::TYPE_EXT_INIT_PARAMETER>(pool), + message(aMessage), + argNumber(aArgNumber) + { + Parameter* parameter = message->parameters[argNumber / 2]; + + if (parameter->prm_mechanism == prm_mech_type_of || + fb_utils::implicit_domain(parameter->prm_field_source.c_str()) || + !parameter->prm_default_value) + { + defaultValueNode = NULL; + } + else + defaultValueNode = CMP_clone_node(tdbb, csb, parameter->prm_default_value); + } + + void print(string& text) const + { + text = "ExtInitParameterNode"; + } + + void genBlr(DsqlCompilerScratch* /*dsqlScratch*/) + { + } + + ExtInitParameterNode* pass1(thread_db* tdbb, CompilerScratch* csb) + { + doPass1(tdbb, csb, &defaultValueNode); + return this; + } + + ExtInitParameterNode* pass2(thread_db* tdbb, CompilerScratch* csb) + { + ExprNode::doPass2(tdbb, csb, &defaultValueNode); + return this; + } + + const StmtNode* execute(thread_db* tdbb, jrd_req* request, ExeState* /*exeState*/) const + { + if (request->req_operation == jrd_req::req_evaluate) + { + dsc* defaultDesc = NULL; + + if (defaultValueNode) + { + defaultDesc = EVL_expr(tdbb, request, defaultValueNode); + + if (request->req_flags & req_null) + defaultDesc = NULL; + } + + if (defaultDesc) + { + // Initialize the value. The null flag is already initialized to not-null + // by the ExtMessageNode. + + dsc desc = message->format->fmt_desc[argNumber]; + desc.dsc_address = request->getImpure<UCHAR>( + message->impureOffset + (IPTR) desc.dsc_address); + + MOV_move(tdbb, defaultDesc, &desc); + } + else + { + SSHORT tempValue = -1; + dsc temp; + temp.makeShort(0, &tempValue); + + dsc desc = message->format->fmt_desc[argNumber + 1]; + desc.dsc_address = request->getImpure<UCHAR>( + message->impureOffset + (IPTR) desc.dsc_address); + + MOV_move(tdbb, &temp, &desc); + } + + request->req_operation = jrd_req::req_return; + } + + return parentStmt; + } + + private: + ExtMessageNode* message; + USHORT argNumber; + ValueExprNode* defaultValueNode; + }; + + // External output parameters initialization. + class ExtInitOutputNode : public CompoundStmtNode + { + public: + ExtInitOutputNode(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, + ExtMessageNode* message) + : CompoundStmtNode(pool) + { + for (USHORT i = 0; i < message->format->fmt_count; i += 2) + { + if (i + 1 >= message->format->fmt_count) + continue; + + ExtInitParameterNode* init = FB_NEW(pool) ExtInitParameterNode( + tdbb, pool, csb, message, i); + statements.add(init); + } + } + }; + + // External parameters validation. + class ExtValidationNode : public CompoundStmtNode + { + public: + ExtValidationNode(MemoryPool& pool, ExtMessageNode* message, bool procedure, bool input) + : CompoundStmtNode(pool) + { + for (USHORT i = 0; i < message->format->fmt_count; i += 2) + { + if (i + 1 >= message->format->fmt_count || !message->isSpecial[i / 2]) + continue; + + ParameterNode* flag = FB_NEW(pool) ParameterNode(pool); + flag->message = message; + flag->argNumber = i + 1; + + ParameterNode* param = FB_NEW(pool) ParameterNode(pool); + param->message = message; + param->argNumber = i; + param->argFlag = flag; + + AssignmentNode* assign = FB_NEW(pool) AssignmentNode(pool); + assign->asgnFrom = param; + statements.add(assign); + + // It's sufficient to assign input parameters to NULL, but output parameters + // need to be assigned to themselves to validate correctly. + if (input) + assign->asgnTo = FB_NEW(pool) NullNode(pool); + else + { + flag = FB_NEW(pool) ParameterNode(pool); + flag->message = message; + flag->argNumber = i + 1; + + param = FB_NEW(pool) ParameterNode(pool); + param->message = message; + param->argNumber = i; + param->argFlag = flag; + + assign->asgnTo = param; + } + } + + // A stall is required to read req_proc_fetch state correctly. + if (procedure) + statements.add(FB_NEW(pool) StallNode(pool)); + } + }; + + // External function node. + class ExtFunctionNode : public SuspendNode + { + public: + ExtFunctionNode(MemoryPool& pool, const ReceiveNode* aReceiveNode, + const ExtEngineManager::Function* aFunction) + : SuspendNode(pool), + receiveNode(aReceiveNode), + function(aFunction) + { + } + + virtual const StmtNode* execute(thread_db* tdbb, jrd_req* request, ExeState* exeState) const + { + if (request->req_operation == jrd_req::req_evaluate) + { + UCHAR* inMsg = receiveNode ? + request->getImpure<UCHAR>(receiveNode->message->impureOffset) : NULL; + UCHAR* outMsg = request->getImpure<UCHAR>(message->impureOffset); + + function->execute(tdbb, inMsg, outMsg); + } + + return SuspendNode::execute(tdbb, request, exeState); + } + + private: + const ReceiveNode* receiveNode; + const ExtEngineManager::Function* function; + }; + + // External procedure node. + class ExtProcedureNode : public SuspendNode + { + public: + ExtProcedureNode(MemoryPool& pool, const ReceiveNode* aReceiveNode, + const ExtEngineManager::Procedure* aProcedure) + : SuspendNode(pool), + receiveNode(aReceiveNode), + procedure(aProcedure) + { + } + + virtual const StmtNode* execute(thread_db* tdbb, jrd_req* request, ExeState* exeState) const + { + ExtEngineManager::ResultSet*& resultSet = request->req_ext_resultset; + UCHAR* inMsg = receiveNode ? + request->getImpure<UCHAR>(receiveNode->message->impureOffset) : NULL; + UCHAR* outMsg = request->getImpure<UCHAR>(message->impureOffset); + USHORT* eof = (USHORT*) (outMsg + (IPTR) message->format->fmt_desc.back().dsc_address); + + switch (request->req_operation) + { + case jrd_req::req_evaluate: + fb_assert(!resultSet && *eof == 0); + resultSet = procedure->open(tdbb, inMsg, outMsg); + + if (resultSet) + *eof = -1; + else + { + if (!(request->req_flags & req_proc_fetch)) + { + request->req_operation = jrd_req::req_evaluate; + return statement; + } + } + + request->req_operation = jrd_req::req_return; + // fall into + + case jrd_req::req_return: + if (*eof == 0) + { + fb_assert(!resultSet); + return parentStmt; + } + + fb_assert(resultSet); + + if (!resultSet->fetch(tdbb) || !(request->req_flags & req_proc_fetch)) + { + *eof = 0; + delete resultSet; + resultSet = NULL; + } + + break; + + case jrd_req::req_proceed: + request->req_operation = jrd_req::req_evaluate; + return statement; + + case jrd_req::req_unwind: + delete resultSet; + resultSet = NULL; + break; + } + + return SuspendNode::execute(tdbb, request, exeState); + } + + private: + const ReceiveNode* receiveNode; + const ExtEngineManager::Procedure* procedure; + }; + + // External trigger node. + class ExtTriggerNode : public TypedNode<StmtNode, StmtNode::TYPE_EXT_TRIGGER> + { + public: + ExtTriggerNode(MemoryPool& pool, const ExtEngineManager::Trigger* aTrigger) + : TypedNode<StmtNode, StmtNode::TYPE_EXT_TRIGGER>(pool), + trigger(aTrigger) + { + } + + void print(string& text) const + { + text = "ExtTriggerNode"; + } + + void genBlr(DsqlCompilerScratch* /*dsqlScratch*/) + { + } + + ExtTriggerNode* pass1(thread_db* /*tdbb*/, CompilerScratch* /*csb*/) + { + return this; + } + + ExtTriggerNode* pass2(thread_db* /*tdbb*/, CompilerScratch* /*csb*/) + { + return this; + } + + const StmtNode* execute(thread_db* tdbb, jrd_req* request, ExeState* /*exeState*/) const + { + if (request->req_operation == jrd_req::req_evaluate) + { + trigger->execute(tdbb, (ExternalTrigger::Action) request->req_trigger_action, + getRpb(request, 0), getRpb(request, 1)); + + request->req_operation = jrd_req::req_return; + } + + return parentStmt; + } + + private: + static record_param* getRpb(jrd_req* request, USHORT n) + { + return request->req_rpb.getCount() > n && request->req_rpb[n].rpb_number.isValid() ? + &request->req_rpb[n] : NULL; + } + + + private: + const ExtEngineManager::Trigger* trigger; + }; +} + + namespace Jrd { static MakeUpgradeInfo<> upInfo; @@ -614,7 +1015,7 @@ } -void ExtEngineManager::makeFunction(thread_db* tdbb, Jrd::Function* udf, +void ExtEngineManager::makeFunction(thread_db* tdbb, CompilerScratch* csb, Jrd::Function* udf, const MetaName& engine, const string& entryPoint, const string& body) { string entryPointTrimmed = entryPoint; @@ -669,13 +1070,52 @@ status.check(); } + udf->setInputFormat(Routine::createFormat(pool, metadata->inputParameters, false)); + udf->setOutputFormat(Routine::createFormat(pool, metadata->outputParameters, true)); + try { - udf->setInputFormat(Routine::createFormat(pool, metadata->inputParameters, false)); - udf->setOutputFormat(Routine::createFormat(pool, metadata->outputParameters, false)); - udf->fun_external = FB_NEW(getPool()) Function(tdbb, this, attInfo->engine, metadata.release(), externalFunction, udf); + + CompoundStmtNode* mainNode = FB_NEW(getPool()) CompoundStmtNode(getPool()); + + ExtMessageNode* inMessageNode = udf->getInputFields().hasData() ? + FB_NEW(getPool()) ExtMessageNode(tdbb, getPool(), csb, 0, + udf->getInputFields(), udf->getInputFormat()) : + NULL; + if (inMessageNode) + mainNode->statements.add(inMessageNode); + + ExtMessageNode* outMessageNode = FB_NEW(getPool()) ExtMessageNode(tdbb, getPool(), csb, 1, + udf->getOutputFields(), udf->getOutputFormat()); + mainNode->statements.add(outMessageNode); + + ExtInitOutputNode* initOutputNode = FB_NEW(getPool()) ExtInitOutputNode( + tdbb, getPool(), csb, outMessageNode); + mainNode->statements.add(initOutputNode); + + ReceiveNode* receiveNode = inMessageNode ? + FB_NEW(getPool()) ReceiveNode(getPool()) : NULL; + + if (inMessageNode) + { + receiveNode->message = inMessageNode; + receiveNode->statement = FB_NEW(getPool()) ExtValidationNode( + getPool(), inMessageNode, false, true); + mainNode->statements.add(receiveNode); + } + + ExtFunctionNode* extFunctionNode = FB_NEW(getPool()) ExtFunctionNode(getPool(), + receiveNode, udf->fun_external); + mainNode->statements.add(extFunctionNode); + extFunctionNode->message = outMessageNode; + extFunctionNode->statement = FB_NEW(getPool()) ExtValidationNode( + getPool(), outMessageNode, false, false); + + JrdStatement* statement = udf->getStatement(); + PAR_preparsed_node(tdbb, NULL, mainNode, NULL, &csb, &statement, false, 0); + udf->setStatement(statement); } catch (...) { @@ -686,7 +1126,7 @@ } -void ExtEngineManager::makeProcedure(thread_db* tdbb, jrd_prc* prc, +void ExtEngineManager::makeProcedure(thread_db* tdbb, CompilerScratch* csb, jrd_prc* prc, const MetaName& engine, const string& entryPoint, const string& body) { string entryPointTrimmed = entryPoint; @@ -742,13 +1182,52 @@ status.check(); } + prc->setInputFormat(Routine::createFormat(pool, metadata->inputParameters, false)); + prc->setOutputFormat(Routine::createFormat(pool, metadata->outputParameters, true)); + try { - prc->setInputFormat(Routine::createFormat(pool, metadata->inputParameters, false)); - prc->setOutputFormat(Routine::createFormat(pool, metadata->outputParameters, false)); - prc->setExternal(FB_NEW(getPool()) Procedure(tdbb, this, attInfo->engine, metadata.release(), externalProcedure, prc)); + + CompoundStmtNode* mainNode = FB_NEW(getPool()) CompoundStmtNode(getPool()); + + ExtMessageNode* inMessageNode = prc->getInputFields().hasData() ? + FB_NEW(getPool()) ExtMessageNode(tdbb, getPool(), csb, 0, + prc->getInputFields(), prc->getInputFormat()) : + NULL; + if (inMessageNode) + mainNode->statements.add(inMessageNode); + + ExtMessageNode* outMessageNode = FB_NEW(getPool()) ExtMessageNode(tdbb, getPool(), csb, 1, + prc->getOutputFields(), prc->getOutputFormat()); + mainNode->statements.add(outMessageNode); + + ExtInitOutputNode* initOutputNode = FB_NEW(getPool()) ExtInitOutputNode( + tdbb, getPool(), csb, outMessageNode); + mainNode->statements.add(initOutputNode); + + ReceiveNode* receiveNode = inMessageNode ? + FB_NEW(getPool()) ReceiveNode(getPool()) : NULL; + + if (inMessageNode) + { + receiveNode->message = inMessageNode; + receiveNode->statement = FB_NEW(getPool()) ExtValidationNode( + getPool(), inMessageNode, true, true); + mainNode->statements.add(receiveNode); + } + + ExtProcedureNode* extProcedureNode = FB_NEW(getPool()) ExtProcedureNode(getPool(), + receiveNode, prc->getExternal()); + mainNode->statements.add(extProcedureNode); + extProcedureNode->message = outMessageNode; + extProcedureNode->statement = FB_NEW(getPool()) ExtValidationNode( + getPool(), outMessageNode, true, false); + + JrdStatement* statement = prc->getStatement(); + PAR_preparsed_node(tdbb, NULL, mainNode, NULL, &csb, &statement, false, 0); + prc->setStatement(statement); } catch (...) { @@ -759,7 +1238,7 @@ } -void ExtEngineManager::makeTrigger(thread_db* tdbb, Jrd::Trigger* trg, +void ExtEngineManager::makeTrigger(thread_db* tdbb, CompilerScratch* csb, Jrd::Trigger* trg, const MetaName& engine, const string& entryPoint, const string& body, ExternalTrigger::Type type) { @@ -835,6 +1314,14 @@ { trg->extTrigger = FB_NEW(getPool()) Trigger(tdbb, pool, this, attInfo->engine, metadata.release(), externalTrigger, trg); + + CompoundStmtNode* mainNode = FB_NEW(getPool()) CompoundStmtNode(getPool()); + + ExtTriggerNode* extTriggerNode = FB_NEW(getPool()) ExtTriggerNode(getPool(), + trg->extTrigger); + mainNode->statements.add(extTriggerNode); + + PAR_preparsed_node(tdbb, trg->relation, mainNode, NULL, &csb, &trg->statement, true, 0); } catch (...) { Modified: firebird/trunk/src/jrd/ExtEngineManager.h =================================================================== --- firebird/trunk/src/jrd/ExtEngineManager.h 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/ExtEngineManager.h 2013-04-11 15:44:17 UTC (rev 57933) @@ -43,6 +43,7 @@ class jrd_prc; class jrd_tra; class Attachment; +class CompilerScratch; class Database; class Format; class Trigger; @@ -311,13 +312,13 @@ public: void closeAttachment(thread_db* tdbb, Attachment* attachment); - void makeFunction(thread_db* tdbb, Jrd::Function* udf, + void makeFunction(thread_db* tdbb, CompilerScratch* csb, Jrd::Function* udf, const Firebird::MetaName& engine, const Firebird::string& entryPoint, const Firebird::string& body); - void makeProcedure(thread_db* tdbb, jrd_prc* prc, + void makeProcedure(thread_db* tdbb, CompilerScratch* csb, jrd_prc* prc, const Firebird::MetaName& engine, const Firebird::string& entryPoint, const Firebird::string& body); - void makeTrigger(thread_db* tdbb, Jrd::Trigger* trg, + void makeTrigger(thread_db* tdbb, CompilerScratch* csb, Jrd::Trigger* trg, const Firebird::MetaName& engine, const Firebird::string& entryPoint, const Firebird::string& body, Firebird::ExternalTrigger::Type type); Modified: firebird/trunk/src/jrd/Function.epp =================================================================== --- firebird/trunk/src/jrd/Function.epp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/Function.epp 2013-04-11 15:44:17 UTC (rev 57933) @@ -374,27 +374,23 @@ function->fun_external = NULL; function->setStatement(NULL); - if (!X.RDB$ENGINE_NAME.NULL) + if (!X.RDB$MODULE_NAME.NULL && !X.RDB$ENTRYPOINT.NULL) { - HalfStaticArray<UCHAR, 512> body; + function->fun_entrypoint = + Module::lookup(X.RDB$MODULE_NAME, X.RDB$ENTRYPOINT, dbb->dbb_modules); - if (!X.RDB$FUNCTION_SOURCE.NULL) + // Could not find a function with given MODULE, ENTRYPOINT. + // Try the list of internally implemented functions. + if (!function->fun_entrypoint) { - blb* const blob = blb::open(tdbb, sysTransaction, &X.RDB$FUNCTION_SOURCE); - const ULONG len = blob->BLB_get_data(tdbb, - body.getBuffer(blob->blb_length + 1), blob->blb_length + 1); - body[MIN(blob->blb_length, len)] = 0; + function->fun_entrypoint = + BUILTIN_entrypoint(X.RDB$MODULE_NAME, X.RDB$ENTRYPOINT); } - else - body.getBuffer(1)[0] = 0; - dbb->dbb_extManager.makeFunction(tdbb, function, X.RDB$ENGINE_NAME, - (X.RDB$ENTRYPOINT.NULL ? "" : X.RDB$ENTRYPOINT), (char*) body.begin()); - - if (!function->fun_external) + if (!function->fun_entrypoint) function->setDefined(false); } - else if (!X.RDB$FUNCTION_BLR.NULL) + else if (!X.RDB$ENGINE_NAME.NULL || !X.RDB$FUNCTION_BLR.NULL) { MemoryPool* const csb_pool = attachment->createPool(); Jrd::ContextPoolHolder context(tdbb, csb_pool); @@ -403,17 +399,40 @@ { AutoPtr<CompilerScratch> csb(CompilerScratch::newCsb(*csb_pool, 5)); - if (!X.RDB$DEBUG_INFO.NULL) - DBG_parse_debug_info(tdbb, &X.RDB$DEBUG_INFO, *csb->csb_dbg_info); + if (!X.RDB$ENGINE_NAME.NULL) + { + HalfStaticArray<UCHAR, 512> body; - try - { - function->parseBlr(tdbb, csb, &X.RDB$FUNCTION_BLR); + if (!X.RDB$FUNCTION_SOURCE.NULL) + { + blb* const blob = blb::open(tdbb, sysTransaction, &X.RDB$FUNCTION_SOURCE); + const ULONG len = blob->BLB_get_data(tdbb, + body.getBuffer(blob->blb_length + 1), blob->blb_length + 1); + body[MIN(blob->blb_length, len)] = 0; + } + else + body.getBuffer(1)[0] = 0; + + dbb->dbb_extManager.makeFunction(tdbb, csb, function, X.RDB$ENGINE_NAME, + (X.RDB$ENTRYPOINT.NULL ? "" : X.RDB$ENTRYPOINT), (char*) body.begin()); + + if (!function->fun_external) + function->setDefined(false); } - catch (const Exception&) + else if (!X.RDB$FUNCTION_BLR.NULL) { - const string name = function->getName().toString(); - status_exception::raise(Arg::Gds(isc_bad_fun_BLR) << Arg::Str(name)); + if (!X.RDB$DEBUG_INFO.NULL) + DBG_parse_debug_info(tdbb, &X.RDB$DEBUG_INFO, *csb->csb_dbg_info); + + try + { + function->parseBlr(tdbb, csb, &X.RDB$FUNCTION_BLR); + } + catch (const Exception&) + { + const string name = function->getName().toString(); + status_exception::raise(Arg::Gds(isc_bad_fun_BLR) << Arg::Str(name)); + } } } catch (const Exception&) @@ -424,22 +443,6 @@ function->getStatement()->function = function; } - else if (!X.RDB$MODULE_NAME.NULL && !X.RDB$ENTRYPOINT.NULL) - { - function->fun_entrypoint = - Module::lookup(X.RDB$MODULE_NAME, X.RDB$ENTRYPOINT, dbb->dbb_modules); - - // Could not find a function with given MODULE, ENTRYPOINT. - // Try the list of internally implemented functions. - if (!function->fun_entrypoint) - { - function->fun_entrypoint = - BUILTIN_entrypoint(X.RDB$MODULE_NAME, X.RDB$ENTRYPOINT); - } - - if (!function->fun_entrypoint) - function->setDefined(false); - } else { RefPtr<MsgMetadata> inputMetadata(createMetadata(function->getInputFields())); Modified: firebird/trunk/src/jrd/exe.cpp =================================================================== --- firebird/trunk/src/jrd/exe.cpp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/exe.cpp 2013-04-11 15:44:17 UTC (rev 57933) @@ -955,6 +955,9 @@ (*ptr)->close(tdbb); } + if (request->req_ext_resultset) + delete request->req_ext_resultset; + while (request->req_ext_stmt) request->req_ext_stmt->close(tdbb); } @@ -1099,72 +1102,62 @@ { ptr->compile(tdbb); - if (ptr->extTrigger) + jrd_req* trigger = ptr->statement->findRequest(tdbb); + + if (trigger->req_rpb.getCount() > 0) { - //// TODO: trace stuff + trigger->req_rpb[0].rpb_record = old_rec ? old_rec : null_rec.get(); - ptr->extTrigger->execute(tdbb, (Firebird::ExternalTrigger::Action) trigger_action, - old_rpb, new_rpb); + if (old_rec && trigger_action != jrd_req::req_trigger_insert) + { + trigger->req_rpb[0].rpb_number = old_rpb->rpb_number; + trigger->req_rpb[0].rpb_number.setValid(true); + } + else + trigger->req_rpb[0].rpb_number.setValid(false); } - else + + if (trigger->req_rpb.getCount() > 1) + trigger->req_rpb[1].rpb_record = new_rec ? new_rec : null_rec.get(); + + if (new_rec && !(which_trig == StmtNode::PRE_TRIG && + trigger_action == jrd_req::req_trigger_insert)) { - jrd_req* trigger = ptr->statement->findRequest(tdbb); - - if (trigger->req_rpb.getCount() > 0) + if (which_trig == StmtNode::PRE_TRIG && + trigger_action == jrd_req::req_trigger_update) { - trigger->req_rpb[0].rpb_record = old_rec ? old_rec : null_rec.get(); - - if (old_rec && trigger_action != jrd_req::req_trigger_insert) - { - trigger->req_rpb[0].rpb_number = old_rpb->rpb_number; - trigger->req_rpb[0].rpb_number.setValid(true); - } - else - trigger->req_rpb[0].rpb_number.setValid(false); + new_rpb->rpb_number = old_rpb->rpb_number; } if (trigger->req_rpb.getCount() > 1) - trigger->req_rpb[1].rpb_record = new_rec ? new_rec : null_rec.get(); - - if (new_rec && !(which_trig == StmtNode::PRE_TRIG && - trigger_action == jrd_req::req_trigger_insert)) { - if (which_trig == StmtNode::PRE_TRIG && - trigger_action == jrd_req::req_trigger_update) - { - new_rpb->rpb_number = old_rpb->rpb_number; - } - - if (trigger->req_rpb.getCount() > 1) - { - trigger->req_rpb[1].rpb_number = new_rpb->rpb_number; - trigger->req_rpb[1].rpb_number.setValid(true); - } + trigger->req_rpb[1].rpb_number = new_rpb->rpb_number; + trigger->req_rpb[1].rpb_number.setValid(true); } - else if (trigger->req_rpb.getCount() > 1) - trigger->req_rpb[1].rpb_number.setValid(false); + } + else if (trigger->req_rpb.getCount() > 1) + trigger->req_rpb[1].rpb_number.setValid(false); - trigger->req_timestamp = timestamp; - trigger->req_trigger_action = trigger_action; + trigger->req_timestamp = timestamp; + trigger->req_trigger_action = trigger_action; - TraceTrigExecute trace(tdbb, trigger, which_trig); + TraceTrigExecute trace(tdbb, trigger, which_trig); - EXE_start(tdbb, trigger, transaction); + EXE_start(tdbb, trigger, transaction); - const bool ok = (trigger->req_operation != jrd_req::req_unwind); - trace.finish(ok ? res_successful : res_failed); + const bool ok = (trigger->req_operation != jrd_req::req_unwind); + trace.finish(ok ? res_successful : res_failed); - EXE_unwind(tdbb, trigger); + EXE_unwind(tdbb, trigger); - trigger->req_attachment = NULL; - trigger->req_flags &= ~req_in_use; - trigger->req_timestamp.invalidate(); + trigger->req_attachment = NULL; + trigger->req_flags &= ~req_in_use; + trigger->req_timestamp.invalidate(); - if (!ok) - { - trigger_failure(tdbb, trigger); - break; - } + if (!ok) + { + trigger_failure(tdbb, trigger); + break; } } Modified: firebird/trunk/src/jrd/jrd.cpp =================================================================== --- firebird/trunk/src/jrd/jrd.cpp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/jrd.cpp 2013-04-11 15:44:17 UTC (rev 57933) @@ -586,78 +586,77 @@ Database* dbb = tdbb->getDatabase(); Jrd::Attachment* const att = tdbb->getAttachment(); - if (engine.isEmpty() && !extTrigger) + if (extTrigger) + return; + + if (!statement /*&& !compile_in_progress*/) { - if (!statement /*&& !compile_in_progress*/) - { - if (statement) - return; + if (statement) + return; - compile_in_progress = true; - // Allocate statement memory pool - MemoryPool* new_pool = att->createPool(); - // Trigger request is not compiled yet. Lets do it now - USHORT par_flags = (USHORT) (flags & TRG_ignore_perm) ? csb_ignore_perm : 0; - if (type & 1) - par_flags |= csb_pre_trigger; - else - par_flags |= csb_post_trigger; + compile_in_progress = true; + // Allocate statement memory pool + MemoryPool* new_pool = att->createPool(); + // Trigger request is not compiled yet. Lets do it now + USHORT par_flags = (USHORT) (flags & TRG_ignore_perm) ? csb_ignore_perm : 0; + if (type & 1) + par_flags |= csb_pre_trigger; + else + par_flags |= csb_post_trigger; - CompilerScratch* csb = NULL; - try { - Jrd::ContextPoolHolder context(tdbb, new_pool); + CompilerScratch* csb = NULL; + try + { + Jrd::ContextPoolHolder context(tdbb, new_pool); - csb = CompilerScratch::newCsb(*tdbb->getDefaultPool(), 5); - csb->csb_g_flags |= par_flags; + csb = CompilerScratch::newCsb(*tdbb->getDefaultPool(), 5); + csb->csb_g_flags |= par_flags; + if (engine.isEmpty()) + { if (!dbg_blob_id.isEmpty()) DBG_parse_debug_info(tdbb, &dbg_blob_id, *csb->csb_dbg_info); PAR_blr(tdbb, relation, blr.begin(), (ULONG) blr.getCount(), NULL, &csb, &statement, (relation ? true : false), par_flags); - - delete csb; } - catch (const Exception&) + else { - compile_in_progress = false; - delete csb; - csb = NULL; + dbb->dbb_extManager.makeTrigger(tdbb, csb, this, engine, entryPoint, extBody.c_str(), + (relation ? + (type & 1 ? ExternalTrigger::TYPE_BEFORE : ExternalTrigger::TYPE_AFTER) : + Firebird::ExternalTrigger::TYPE_DATABASE)); + } - if (statement) - { - statement->release(tdbb); - statement = NULL; - } - else - att->deletePool(new_pool); + delete csb; + } + catch (const Exception&) + { + compile_in_progress = false; + delete csb; + csb = NULL; - throw; + if (statement) + { + statement->release(tdbb); + statement = NULL; } + else + att->deletePool(new_pool); - statement->triggerName = name; + throw; + } - if (sys_trigger) - statement->flags |= JrdStatement::FLAG_SYS_TRIGGER; + statement->triggerName = name; - if (flags & TRG_ignore_perm) - statement->flags |= JrdStatement::FLAG_IGNORE_PERM; + if (sys_trigger) + statement->flags |= JrdStatement::FLAG_SYS_TRIGGER; - compile_in_progress = false; - } + if (flags & TRG_ignore_perm) + statement->flags |= JrdStatement::FLAG_IGNORE_PERM; - return; + compile_in_progress = false; } - - // external trigger - - if (extTrigger) - return; - - dbb->dbb_extManager.makeTrigger(tdbb, this, engine, entryPoint, extBody.c_str(), - (relation ? - (type & 1 ? ExternalTrigger::TYPE_BEFORE : ExternalTrigger::TYPE_AFTER) : - Firebird::ExternalTrigger::TYPE_DATABASE)); } void Trigger::release(thread_db* tdbb) Modified: firebird/trunk/src/jrd/met.epp =================================================================== --- firebird/trunk/src/jrd/met.epp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/met.epp 2013-04-11 15:44:17 UTC (rev 57933) @@ -3001,25 +3001,6 @@ const bool external = !P.RDB$ENGINE_NAME.NULL; // ODS_12_0 - if (external) - { - HalfStaticArray<char, 512> body; - - if (!P.RDB$PROCEDURE_SOURCE.NULL) - { - blb* blob = blb::open(tdbb, attachment->getSysTransaction(), - &P.RDB$PROCEDURE_SOURCE); - ULONG len = blob->BLB_get_data(tdbb, - (UCHAR*) body.getBuffer(blob->blb_length + 1), blob->blb_length + 1); - body.begin()[MIN(blob->blb_length, len)] = '\0'; - } - else - body.getBuffer(1)[0] = '\0'; - - dbb->dbb_extManager.makeProcedure(tdbb, procedure, P.RDB$ENGINE_NAME, - (P.RDB$ENTRYPOINT.NULL ? "" : P.RDB$ENTRYPOINT), body.begin()); - } - Array<NestConst<Parameter> >& paramArray = procedure->getOutputFields(); if (paramArray.hasData() && paramArray[0]) @@ -3051,69 +3032,85 @@ procedure->prc_type = P.RDB$PROCEDURE_TYPE.NULL ? prc_legacy : (prc_t) P.RDB$PROCEDURE_TYPE; - if (!external) + if (external || !P.RDB$PROCEDURE_BLR.NULL) { - if (!P.RDB$PROCEDURE_BLR.NULL) - { - MemoryPool* csb_pool = attachment->createPool(); + MemoryPool* csb_pool = attachment->createPool(); - Jrd::ContextPoolHolder context(tdbb, csb_pool); - CompilerScratch* csb = CompilerScratch::newCsb(*tdbb->getDefaultPool(), 5); + Jrd::ContextPoolHolder context(tdbb, csb_pool); + CompilerScratch* csb = CompilerScratch::newCsb(*tdbb->getDefaultPool(), 5); - if (!P.RDB$DEBUG_INFO.NULL) - DBG_parse_debug_info(tdbb, &P.RDB$DEBUG_INFO, *csb->csb_dbg_info); + if (!P.RDB$DEBUG_INFO.NULL) + DBG_parse_debug_info(tdbb, &P.RDB$DEBUG_INFO, *csb->csb_dbg_info); - try + try + { + if (external) { - procedure->parseBlr(tdbb, csb, &P.RDB$PROCEDURE_BLR); - } - catch (const Exception&) - { - delete csb; + HalfStaticArray<char, 512> body; - if (procedure->getStatement()) - procedure->releaseStatement(tdbb); + if (!P.RDB$PROCEDURE_SOURCE.NULL) + { + blb* blob = blb::open(tdbb, attachment->getSysTransaction(), + &P.RDB$PROCEDURE_SOURCE); + ULONG len = blob->BLB_get_data(tdbb, + (UCHAR*) body.getBuffer(blob->blb_length + 1), blob->blb_length + 1); + body.begin()[MIN(blob->blb_length, len)] = '\0'; + } else - attachment->deletePool(csb_pool); + body.getBuffer(1)[0] = '\0'; - ERR_post(Arg::Gds(isc_bad_proc_BLR) << Arg::Str(procedure->getName().toString())); + dbb->dbb_extManager.makeProcedure(tdbb, csb, procedure, P.RDB$ENGINE_NAME, + (P.RDB$ENTRYPOINT.NULL ? "" : P.RDB$ENTRYPOINT), body.begin()); } + else + procedure->parseBlr(tdbb, csb, &P.RDB$PROCEDURE_BLR); + } + catch (const Exception&) + { + delete csb; - procedure->getStatement()->procedure = procedure; + if (procedure->getStatement()) + procedure->releaseStatement(tdbb); + else + attachment->deletePool(csb_pool); - for (size_t i = 0; i < csb->csb_rpt.getCount(); i++) - { - MessageNode* node = csb->csb_rpt[i].csb_message; + ERR_post(Arg::Gds(isc_bad_proc_BLR) << Arg::Str(procedure->getName().toString())); + } - /*** - if (node) - { - if (node->messageNumber == 1) - procedure->prc_output_msg = node; - } - ***/ - } + procedure->getStatement()->procedure = procedure; - delete csb; - } - else + for (size_t i = 0; i < csb->csb_rpt.getCount(); i++) { - RefPtr<MsgMetadata> inputMetadata( - Routine::createMetadata(procedure->getInputFields())); - inputMetadata->release(); - procedure->setInputFormat( - Routine::createFormat(procedure->getPool(), inputMetadata, false)); + MessageNode* node = csb->csb_rpt[i].csb_message; - RefPtr<MsgMetadata> outputMetadata( - Routine::createMetadata(procedure->getOutputFields())); - outputMetadata->release(); - procedure->setOutputFormat( - Routine::createFormat(procedure->getPool(), outputMetadata, true)); + /*** + if (node) + { + if (node->messageNumber == 1) + procedure->prc_output_msg = node; + } + ***/ + } - procedure->setImplemented(false); - } + delete csb; } + else + { + RefPtr<MsgMetadata> inputMetadata( + Routine::createMetadata(procedure->getInputFields())); + inputMetadata->release(); + procedure->setInputFormat( + Routine::createFormat(procedure->getPool(), inputMetadata, false)); + RefPtr<MsgMetadata> outputMetadata( + Routine::createMetadata(procedure->getOutputFields())); + outputMetadata->release(); + procedure->setOutputFormat( + Routine::createFormat(procedure->getPool(), outputMetadata, true)); + + procedure->setImplemented(false); + } + if (P.RDB$VALID_BLR.NULL || P.RDB$VALID_BLR == FALSE) valid_blr = false; } Modified: firebird/trunk/src/jrd/par.cpp =================================================================== --- firebird/trunk/src/jrd/par.cpp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/par.cpp 2013-04-11 15:44:17 UTC (rev 57933) @@ -79,6 +79,8 @@ static NodeParseFunc blr_parsers[256] = {NULL}; +static CompilerScratch* par_start(thread_db* tdbb, jrd_rel* relation, CompilerScratch* view_csb, + CompilerScratch** csb_ptr, const bool trigger, USHORT flags); static void par_error(BlrReader& blrReader, const Arg::StatusVector& v, bool isSyntaxError = true); static PlanNode* par_plan(thread_db*, CompilerScratch*); static void getBlrVersion(CompilerScratch* csb); @@ -134,20 +136,12 @@ } // namespace -// Parse blr, returning a compiler scratch block with the results. -// Caller must do pool handling. -DmlNode* PAR_blr(thread_db* tdbb, jrd_rel* relation, const UCHAR* blr, ULONG blr_length, - CompilerScratch* view_csb, CompilerScratch** csb_ptr, JrdStatement** statementPtr, - const bool trigger, USHORT flags) +// Common start for PAR_blr and PAR_preparsed_node. Returns the possibily created csb. +static CompilerScratch* par_start(thread_db* tdbb, jrd_rel* relation, CompilerScratch* view_csb, + CompilerScratch** csb_ptr, const bool trigger, USHORT flags) { SET_TDBB(tdbb); -#ifdef CMP_DEBUG - cmp_trace("BLR code given for JRD parsing:"); - // CVC: Couldn't find isc_trace_printer, so changed it to gds__trace_printer. - fb_print_blr(blr, blr_length, gds__trace_printer, 0, 0); -#endif - CompilerScratch* csb; if (!(csb_ptr && (csb = *csb_ptr))) { @@ -183,8 +177,6 @@ t1->csb_flags = csb_used | csb_active; } - csb->csb_blr_reader = BlrReader(blr, blr_length); - if (view_csb) { CompilerScratch::rpt_itr ptr = view_csb->csb_rpt.begin(); @@ -203,6 +195,26 @@ csb->csb_n_stream = view_csb->csb_n_stream; } + return csb; +} + + +// Parse blr, returning a compiler scratch block with the results. +// Caller must do pool handling. +DmlNode* PAR_blr(thread_db* tdbb, jrd_rel* relation, const UCHAR* blr, ULONG blr_length, + CompilerScratch* view_csb, CompilerScratch** csb_ptr, JrdStatement** statementPtr, + const bool trigger, USHORT flags) +{ +#ifdef CMP_DEBUG + cmp_trace("BLR code given for JRD parsing:"); + // CVC: Couldn't find isc_trace_printer, so changed it to gds__trace_printer. + fb_print_blr(blr, blr_length, gds__trace_printer, 0, 0); +#endif + + CompilerScratch* csb = par_start(tdbb, relation, view_csb, csb_ptr, trigger, flags); + + csb->csb_blr_reader = BlrReader(blr, blr_length); + getBlrVersion(csb); DmlNode* node = PAR_parse_node(tdbb, csb); @@ -223,6 +235,27 @@ } +// Finish parse of memory nodes, returning a compiler scratch block with the results. +// Caller must do pool handling. +void PAR_preparsed_node(thread_db* tdbb, jrd_rel* relation, DmlNode* node, + CompilerScratch* view_csb, CompilerScratch** csb_ptr, JrdStatement** statementPtr, + const bool trigger, USHORT flags) +{ + CompilerScratch* csb = par_start(tdbb, relation, view_csb, csb_ptr, trigger, flags); + + csb->blrVersion = 5; // blr_version5 + csb->csb_node = node; + + if (statementPtr) + *statementPtr = JrdStatement::makeStatement(tdbb, csb, true); + + if (csb_ptr) + *csb_ptr = csb; + else + delete csb; +} + + // PAR_blr equivalent for validation expressions. // Validation expressions are boolean expressions, but may be prefixed with a blr_stmt_expr. BoolExprNode* PAR_validation_blr(thread_db* tdbb, jrd_rel* relation, const UCHAR* blr, ULONG blr_length, Modified: firebird/trunk/src/jrd/par_proto.h =================================================================== --- firebird/trunk/src/jrd/par_proto.h 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/par_proto.h 2013-04-11 15:44:17 UTC (rev 57933) @@ -47,6 +47,8 @@ Jrd::ValueListNode* PAR_args(Jrd::thread_db*, Jrd::CompilerScratch*); Jrd::DmlNode* PAR_blr(Jrd::thread_db*, Jrd::jrd_rel*, const UCHAR*, ULONG blr_length, Jrd::CompilerScratch*, Jrd::CompilerScratch**, Jrd::JrdStatement**, const bool, USHORT); +void PAR_preparsed_node(Jrd::thread_db*, Jrd::jrd_rel*, Jrd::DmlNode*, + Jrd::CompilerScratch*, Jrd::CompilerScratch**, Jrd::JrdStatement**, const bool, USHORT); Jrd::BoolExprNode* PAR_validation_blr(Jrd::thread_db*, Jrd::jrd_rel*, const UCHAR* blr, ULONG blr_length, Jrd::CompilerScratch*, Jrd::CompilerScratch**, USHORT); StreamType PAR_context(Jrd::CompilerScratch*, SSHORT*); Modified: firebird/trunk/src/jrd/recsrc/ProcedureScan.cpp =================================================================== --- firebird/trunk/src/jrd/recsrc/ProcedureScan.cpp 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/recsrc/ProcedureScan.cpp 2013-04-11 15:44:17 UTC (rev 57933) @@ -78,9 +78,6 @@ iml = m_message->format->fmt_length; im = request->getImpure<UCHAR>(m_message->impureOffset); - // We must clear messages of external procedures. - memset(im, 0, iml); - const NestConst<ValueExprNode>* const sourceEnd = m_sourceList->items.end(); const NestConst<ValueExprNode>* sourcePtr = m_sourceList->items.begin(); const NestConst<ValueExprNode>* targetPtr = m_targetList->items.begin(); @@ -94,55 +91,36 @@ im = NULL; } - if (m_procedure->getExternal()) - { - ///const Format* const msg_format = m_procedure->prc_output_msg->format; - const Format* const msg_format = m_procedure->getOutputFormat(); - const ULONG oml = msg_format->fmt_length; - UCHAR* om = impure->irsb_message; + jrd_req* const proc_request = m_procedure->getStatement()->findRequest(tdbb); + impure->irsb_req_handle = proc_request; - if (!om) - om = impure->irsb_message = FB_NEW(*tdbb->getDefaultPool()) UCHAR[oml]; + // req_proc_fetch flag used only when fetching rows, so + // is set at end of open() - // We must clear messages of external procedures. - memset(om, 0, oml); + proc_request->req_flags &= ~req_proc_fetch; - ExtEngineManager::ResultSet* rs = impure->irsb_ext_resultset = - m_procedure->getExternal()->open(tdbb, im, om); - } - else + try { - jrd_req* const proc_request = m_procedure->getStatement()->findRequest(tdbb); - impure->irsb_req_handle = proc_request; + proc_request->req_timestamp = request->req_timestamp; - // req_proc_fetch flag used only when fetching rows, so - // is set at end of open() + TraceProcExecute trace(tdbb, proc_request, request, m_targetList); - proc_request->req_flags &= ~req_proc_fetch; + EXE_start(tdbb, proc_request, request->req_transaction); - try + if (iml) { - proc_request->req_timestamp = request->req_timestamp; - - TraceProcExecute trace(tdbb, proc_request, request, m_targetList); - - EXE_start(tdbb, proc_request, request->req_transaction); - - if (iml) - { - EXE_send(tdbb, proc_request, 0, iml, im); - } - - trace.finish(true, res_successful); + EXE_send(tdbb, proc_request, 0, iml, im); } - catch (const Firebird::Exception&) - { - close(tdbb); - throw; - } - proc_request->req_flags |= req_proc_fetch; + trace.finish(true, res_successful); } + catch (const Firebird::Exception&) + { + close(tdbb); + throw; + } + + proc_request->req_flags |= req_proc_fetch; } void ProcedureScan::close(thread_db* tdbb) const @@ -157,24 +135,16 @@ { impure->irsb_flags &= ~irsb_open; - if (m_procedure->getExternal()) + jrd_req* const proc_request = impure->irsb_req_handle; + + if (proc_request) { - delete impure->irsb_ext_resultset; - impure->irsb_ext_resultset = NULL; + EXE_unwind(tdbb, proc_request); + proc_request->req_flags &= ~req_in_use; + impure->irsb_req_handle = NULL; + proc_request->req_attachment = NULL; } - else - { - jrd_req* const proc_request = impure->irsb_req_handle; - if (proc_request) - { - EXE_unwind(tdbb, proc_request); - proc_request->req_flags &= ~req_in_use; - impure->irsb_req_handle = NULL; - proc_request->req_attachment = NULL; - } - } - delete [] impure->irsb_message; impure->irsb_message = NULL; } @@ -216,50 +186,37 @@ else record = rpb->rpb_record; - if (m_procedure->getExternal()) + jrd_req* const proc_request = impure->irsb_req_handle; + + TraceProcFetch trace(tdbb, proc_request); + + try { - fb_assert(impure->irsb_ext_resultset); + EXE_receive(tdbb, proc_request, 1, oml, om); - if (!impure->irsb_ext_resultset->fetch(tdbb)) + dsc desc = msg_format->fmt_desc[msg_format->fmt_count - 1]; + desc.dsc_address = (UCHAR*) (om + (IPTR) desc.dsc_address); + SSHORT eos; + dsc eos_desc; + eos_desc.makeShort(0, &eos); + MOV_move(tdbb, &desc, &eos_desc); + + if (!eos) { + trace.fetch(true, res_successful); rpb->rpb_number.setValid(false); return false; } } - else + catch (const Firebird::Exception&) { - jrd_req* const proc_request = impure->irsb_req_handle; + trace.fetch(true, res_failed); + close(tdbb); + throw; + } - TraceProcFetch trace(tdbb, proc_request); + trace.fetch(false, res_successful); - try - { - EXE_receive(tdbb, proc_request, 1, oml, om); - - dsc desc = msg_format->fmt_desc[msg_format->fmt_count - 1]; - desc.dsc_address = (UCHAR*) (om + (IPTR) desc.dsc_address); - SSHORT eos; - dsc eos_desc; - eos_desc.makeShort(0, &eos); - MOV_move(tdbb, &desc, &eos_desc); - - if (!eos) - { - trace.fetch(true, res_successful); - rpb->rpb_number.setValid(false); - return false; - } - } - catch (const Firebird::Exception&) - { - trace.fetch(true, res_failed); - close(tdbb); - throw; - } - - trace.fetch(false, res_successful); - } - for (unsigned i = 0; i < rec_format->fmt_count; i++) { assignParams(tdbb, &msg_format->fmt_desc[2 * i], &msg_format->fmt_desc[2 * i + 1], Modified: firebird/trunk/src/jrd/recsrc/RecordSource.h =================================================================== --- firebird/trunk/src/jrd/recsrc/RecordSource.h 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/recsrc/RecordSource.h 2013-04-11 15:44:17 UTC (rev 57933) @@ -285,7 +285,6 @@ struct Impure : public RecordSource::Impure { jrd_req* irsb_req_handle; - ExtEngineManager::ResultSet* irsb_ext_resultset; UCHAR* irsb_message; }; Modified: firebird/trunk/src/jrd/req.h =================================================================== --- firebird/trunk/src/jrd/req.h 2013-04-11 14:28:01 UTC (rev 57932) +++ firebird/trunk/src/jrd/req.h 2013-04-11 15:44:17 UTC (rev 57933) @@ -238,6 +238,7 @@ req_base_stats(*req_pool), req_ext_stmt(NULL), req_cursors(*req_pool), + req_ext_resu... [truncated message content] |
From: <fir...@us...> - 2013-04-12 00:45:02
|
Revision: 57937 http://sourceforge.net/p/firebird/code/57937 Author: firebirds Date: 2013-04-12 00:44:59 +0000 (Fri, 12 Apr 2013) 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 2013-04-12 00:24:34 UTC (rev 57936) +++ firebird/trunk/ChangeLog 2013-04-12 00:44:59 UTC (rev 57937) @@ -1,3 +1,78 @@ + 2013-04-11 16:09 asfernandes + M src/jrd/exe.cpp +Misc. + + 2013-04-11 16:04 asfernandes + M src/dsql/ExprNodes.cpp + M src/jrd/exe.cpp + M src/jrd/exe_proto.h +Cleanup. + + 2013-04-11 15:44 asfernandes + M examples/udr/UdrCppExample.cpp + M src/dsql/ExprNodes.cpp + M src/dsql/Nodes.h + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/jrd/ExtEngineManager.cpp + M src/jrd/ExtEngineManager.h + M src/jrd/Function.epp + M src/jrd/exe.cpp + M src/jrd/jrd.cpp + M src/jrd/met.epp + M src/jrd/par.cpp + M src/jrd/par_proto.h + M src/jrd/recsrc/ProcedureScan.cpp + M src/jrd/recsrc/RecordSource.h + M src/jrd/req.h +Revert external routines to request-based (*) code, but now using a totally different internal approach. +* This is not ideal IMO, but much more easier to currently support stack traces, and domain's defaults and validations. + + 2013-04-11 14:28 alexpeshkoff + M src/remote/client/interface.cpp +Fixed regression in protocol < 13 introduced when adding statement flags + + 2013-04-11 13:35 alexpeshkoff + M src/remote/client/interface.cpp + M src/remote/remote.cpp + M src/remote/remote.h +Fixed security issue - plain password remained in DPB + + 2013-04-11 11:40 alexpeshkoff + M src/yvalve/why.cpp +Fixed regression, found by Adriano - fbtcs does not work + + 2013-04-11 10:13 dimitr + M src/common/xdr.cpp + M src/common/xdr_proto.h +Cleanup. + + 2013-04-11 10:07 dimitr + M src/common/IntlParametersBlock.cpp + M src/remote/client/interface.cpp + M src/remote/inet.cpp + M src/remote/os/win32/wnet.cpp + M src/remote/os/win32/xnet.cpp + M src/remote/parse_proto.h + M src/remote/parser.cpp + M src/remote/protocol.cpp + M src/remote/protocol.h + M src/remote/remot_proto.h + M src/remote/remote.cpp + M src/remote/remote.h + M src/remote/server/server.cpp +Finished the 16-bit -> 32-bit conversion for SQL/BLR/buffer/message sizes, this time in the remote provider. The server has been proven to be able to create a procedure longer than 64KB in length and execute it, but more testing is required. +A major battle against 64-bit build warnings were performed. +Additionally, fixed CORE-3943. It does affect compatibility with older servers, but at the minor level. + + 2013-04-11 01:17 asfernandes + M src/dsql/ExprNodes.cpp +Fixed CORE-4081 - Built-in functions and subselect no longer supported in "update or insert" value list. + + 2013-04-11 01:03 asfernandes + M src/common/unicode_util.cpp +Apply patch by Treeve Jelbert to build against ICU 5.11. + 2013-04-10 11:32 mapopa M doc/cleaning-todo.txt M doc/emacros-cross_ref.html Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-12 00:24:34 UTC (rev 57936) +++ firebird/trunk/src/jrd/build_no.h 2013-04-12 00:44:59 UTC (rev 57937) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30338 + FORMAL BUILD NUMBER:30348 */ -#define PRODUCT_VER_STRING "3.0.0.30338" -#define FILE_VER_STRING "WI-T3.0.0.30338" -#define LICENSE_VER_STRING "WI-T3.0.0.30338" -#define FILE_VER_NUMBER 3, 0, 0, 30338 +#define PRODUCT_VER_STRING "3.0.0.30348" +#define FILE_VER_STRING "WI-T3.0.0.30348" +#define LICENSE_VER_STRING "WI-T3.0.0.30348" +#define FILE_VER_NUMBER 3, 0, 0, 30348 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30338" +#define FB_BUILD_NO "30348" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-12 00:24:34 UTC (rev 57936) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-12 00:44:59 UTC (rev 57937) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30338 +BuildNum=30348 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...> - 2013-04-13 00:35:54
|
Revision: 57940 http://sourceforge.net/p/firebird/code/57940 Author: firebirds Date: 2013-04-13 00:35:50 +0000 (Sat, 13 Apr 2013) 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 2013-04-12 17:59:59 UTC (rev 57939) +++ firebird/trunk/ChangeLog 2013-04-13 00:35:50 UTC (rev 57940) @@ -1,3 +1,15 @@ + 2013-04-12 17:59 dimitr + M src/common/cvt.cpp +Fixed CORE-4082: Wrong error message. + + 2013-04-12 15:20 asfernandes + M examples/udr/UdrCppExample.cpp +Corrections. + + 2013-04-12 00:24 asfernandes + M src/common/unicode_util.cpp +Fix build with ICU 3.0. + 2013-04-11 16:09 asfernandes M src/jrd/exe.cpp Misc. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-12 17:59:59 UTC (rev 57939) +++ firebird/trunk/src/jrd/build_no.h 2013-04-13 00:35:50 UTC (rev 57940) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30348 + FORMAL BUILD NUMBER:30351 */ -#define PRODUCT_VER_STRING "3.0.0.30348" -#define FILE_VER_STRING "WI-T3.0.0.30348" -#define LICENSE_VER_STRING "WI-T3.0.0.30348" -#define FILE_VER_NUMBER 3, 0, 0, 30348 +#define PRODUCT_VER_STRING "3.0.0.30351" +#define FILE_VER_STRING "WI-T3.0.0.30351" +#define LICENSE_VER_STRING "WI-T3.0.0.30351" +#define FILE_VER_NUMBER 3, 0, 0, 30351 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30348" +#define FB_BUILD_NO "30351" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-12 17:59:59 UTC (rev 57939) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-13 00:35:50 UTC (rev 57940) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30348 +BuildNum=30351 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...> - 2013-04-14 00:46:18
|
Revision: 57949 http://sourceforge.net/p/firebird/code/57949 Author: firebirds Date: 2013-04-14 00:46:15 +0000 (Sun, 14 Apr 2013) 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 2013-04-13 16:31:12 UTC (rev 57948) +++ firebird/trunk/ChangeLog 2013-04-14 00:46:15 UTC (rev 57949) @@ -1,3 +1,53 @@ + 2013-04-13 16:31 dimitr + M src/common/classes/Synchronize.cpp + M src/common/classes/Synchronize.h +Misc and small cleanup. + + 2013-04-13 15:07 dimitr + M src/alice/alice.h + M src/burp/burp.h + M src/common/ThreadData.cpp + M src/common/ThreadData.h + M src/jrd/jrd.h + M src/utilities/gsec/gsec.h + M src/utilities/gstat/dba.epp +Moved ThreadData into the namespace + small cleanup. + + 2013-04-13 13:20 dimitr + M src/common/gdsassert.h +Fixed typo, thanks to Claudio. + + 2013-04-13 07:11 dimitr + M src/auth/SecureRemotePassword/manage/SrpManagement.cpp + M src/include/firebird/Provider.h + M src/jrd/EngineInterface.h + M src/jrd/extds/InternalDS.cpp + M src/jrd/jrd.cpp + M src/remote/client/interface.cpp + M src/remote/server/server.cpp + M src/yvalve/YObjects.h + M src/yvalve/why.cpp +Add interface support for scrollable DSQL cursors. Implementation will follow later. + + 2013-04-13 07:09 dimitr + M doc/README.incompatibilities.txt +Updated docs. + + 2013-04-13 06:50 dimitr + M doc/sql.extensions/README.keywords +Updated docs. + + 2013-04-13 05:58 dimitr + M doc/README.monitoring_tables + M doc/WhatsNew + M doc/sql.extensions/README.builtin_functions.txt + M doc/sql.extensions/README.cursors +The initial list of changes for Alpha. + + 2013-04-13 05:11 dimitr + M src/common/cvt.cpp +Misc. + 2013-04-12 17:59 dimitr M src/common/cvt.cpp Fixed CORE-4082: Wrong error message. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-13 16:31:12 UTC (rev 57948) +++ firebird/trunk/src/jrd/build_no.h 2013-04-14 00:46:15 UTC (rev 57949) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30351 + FORMAL BUILD NUMBER:30359 */ -#define PRODUCT_VER_STRING "3.0.0.30351" -#define FILE_VER_STRING "WI-T3.0.0.30351" -#define LICENSE_VER_STRING "WI-T3.0.0.30351" -#define FILE_VER_NUMBER 3, 0, 0, 30351 +#define PRODUCT_VER_STRING "3.0.0.30359" +#define FILE_VER_STRING "WI-T3.0.0.30359" +#define LICENSE_VER_STRING "WI-T3.0.0.30359" +#define FILE_VER_NUMBER 3, 0, 0, 30359 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30351" +#define FB_BUILD_NO "30359" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-13 16:31:12 UTC (rev 57948) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-14 00:46:15 UTC (rev 57949) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30351 +BuildNum=30359 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...> - 2013-04-16 01:02:33
|
Revision: 57956 http://sourceforge.net/p/firebird/code/57956 Author: firebirds Date: 2013-04-16 01:02:27 +0000 (Tue, 16 Apr 2013) 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 2013-04-15 16:54:58 UTC (rev 57955) +++ firebird/trunk/ChangeLog 2013-04-16 01:02:27 UTC (rev 57956) @@ -1,3 +1,26 @@ + 2013-04-15 16:51 alexpeshkoff + M src/jrd/Database.h + M src/jrd/jrd.cpp +Postfix for CORE-3935 and CORE-3993: avoid opening same database file twice + + 2013-04-15 15:58 alexpeshkoff + M src/remote/client/interface.cpp +Fixed a bug in one of my recent commits - thanks to Claudio + + 2013-04-15 12:10 alexpeshkoff + M builds/install/misc/databases.conf.in + M builds/install/misc/firebird.conf.in +Documented configuration file changes in distributed .conf files + + 2013-04-15 11:07 alexpeshkoff + M src/common/config/config.cpp + M src/common/config/config_file.cpp +Make numbers parser behave traditionally - no spaces inside the number + + 2013-04-15 06:54 alexpeshkoff + M builds/install/arch-specific/linux/misc/tarMainInstall.sh.in +Misc + 2013-04-13 16:31 dimitr M src/common/classes/Synchronize.cpp M src/common/classes/Synchronize.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-15 16:54:58 UTC (rev 57955) +++ firebird/trunk/src/jrd/build_no.h 2013-04-16 01:02:27 UTC (rev 57956) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30359 + FORMAL BUILD NUMBER:30364 */ -#define PRODUCT_VER_STRING "3.0.0.30359" -#define FILE_VER_STRING "WI-T3.0.0.30359" -#define LICENSE_VER_STRING "WI-T3.0.0.30359" -#define FILE_VER_NUMBER 3, 0, 0, 30359 +#define PRODUCT_VER_STRING "3.0.0.30364" +#define FILE_VER_STRING "WI-T3.0.0.30364" +#define LICENSE_VER_STRING "WI-T3.0.0.30364" +#define FILE_VER_NUMBER 3, 0, 0, 30364 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30359" +#define FB_BUILD_NO "30364" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-15 16:54:58 UTC (rev 57955) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-16 01:02:27 UTC (rev 57956) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30359 +BuildNum=30364 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...> - 2013-04-17 00:41:52
|
Revision: 57961 http://sourceforge.net/p/firebird/code/57961 Author: firebirds Date: 2013-04-17 00:41:48 +0000 (Wed, 17 Apr 2013) 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 2013-04-16 16:13:38 UTC (rev 57960) +++ firebird/trunk/ChangeLog 2013-04-17 00:41:48 UTC (rev 57961) @@ -1,3 +1,16 @@ + 2013-04-16 16:13 asfernandes + M doc/WhatsNew + M doc/sql.extensions/README.data_types +Document CORE-726 - Boolean data type. + + 2013-04-16 16:13 asfernandes + M doc/WhatsNew +Replace my e-mail. + + 2013-04-16 08:54 alexpeshkoff + M src/remote/client/interface.cpp +Fixed assertion in services when talking to pre-FB3 server + 2013-04-15 16:51 alexpeshkoff M src/jrd/Database.h M src/jrd/jrd.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-16 16:13:38 UTC (rev 57960) +++ firebird/trunk/src/jrd/build_no.h 2013-04-17 00:41:48 UTC (rev 57961) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30364 + FORMAL BUILD NUMBER:30367 */ -#define PRODUCT_VER_STRING "3.0.0.30364" -#define FILE_VER_STRING "WI-T3.0.0.30364" -#define LICENSE_VER_STRING "WI-T3.0.0.30364" -#define FILE_VER_NUMBER 3, 0, 0, 30364 +#define PRODUCT_VER_STRING "3.0.0.30367" +#define FILE_VER_STRING "WI-T3.0.0.30367" +#define LICENSE_VER_STRING "WI-T3.0.0.30367" +#define FILE_VER_NUMBER 3, 0, 0, 30367 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30364" +#define FB_BUILD_NO "30367" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-16 16:13:38 UTC (rev 57960) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-17 00:41:48 UTC (rev 57961) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30364 +BuildNum=30367 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...> - 2013-04-18 00:40:05
|
Revision: 57966 http://sourceforge.net/p/firebird/code/57966 Author: firebirds Date: 2013-04-18 00:40:00 +0000 (Thu, 18 Apr 2013) 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 2013-04-17 15:54:00 UTC (rev 57965) +++ firebird/trunk/ChangeLog 2013-04-18 00:40:00 UTC (rev 57966) @@ -1,3 +1,31 @@ + 2013-04-17 15:54 asfernandes + M src/jrd/RecordSourceNodes.cpp +Fixed CORE-4084 - GROUP BY fails if subselect-column is involved. + + 2013-04-17 11:16 alexpeshkoff + M src/auth/SecureRemotePassword/Message.h + M src/auth/SecureRemotePassword/manage/SrpManagement.cpp + M src/auth/SecureRemotePassword/server/SrpServer.cpp + M src/auth/SecurityDatabase/LegacyManagement.epp + M src/auth/SecurityDatabase/LegacyServer.cpp + M src/common/classes/GetPlugins.h + M src/common/classes/RefCounted.h + M src/common/classes/semaphore.cpp + M src/jrd/ExtEngineManager.cpp + M src/jrd/Function.epp + M src/jrd/jrd.cpp + M src/jrd/met.epp + M src/plugins/udr_engine/UdrEngine.cpp + M src/remote/client/interface.cpp + M src/utilities/gsec/gsec.cpp + M src/yvalve/why.cpp +Avoid extra atomic operations when assigning pointer to the object with pre-incremented counter (like returned from the function) to reference-counted pointer holder + + 2013-04-17 08:04 alexpeshkoff + M src/jrd/cch.cpp + M src/jrd/jrd.cpp +Fixes related with CORE-3993 + 2013-04-16 16:13 asfernandes M doc/WhatsNew M doc/sql.extensions/README.data_types Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-17 15:54:00 UTC (rev 57965) +++ firebird/trunk/src/jrd/build_no.h 2013-04-18 00:40:00 UTC (rev 57966) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30367 + FORMAL BUILD NUMBER:30370 */ -#define PRODUCT_VER_STRING "3.0.0.30367" -#define FILE_VER_STRING "WI-T3.0.0.30367" -#define LICENSE_VER_STRING "WI-T3.0.0.30367" -#define FILE_VER_NUMBER 3, 0, 0, 30367 +#define PRODUCT_VER_STRING "3.0.0.30370" +#define FILE_VER_STRING "WI-T3.0.0.30370" +#define LICENSE_VER_STRING "WI-T3.0.0.30370" +#define FILE_VER_NUMBER 3, 0, 0, 30370 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30367" +#define FB_BUILD_NO "30370" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-17 15:54:00 UTC (rev 57965) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-18 00:40:00 UTC (rev 57966) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30367 +BuildNum=30370 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...> - 2013-04-19 00:40:12
|
Revision: 57969 http://sourceforge.net/p/firebird/code/57969 Author: firebirds Date: 2013-04-19 00:40:07 +0000 (Fri, 19 Apr 2013) 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 2013-04-18 13:51:28 UTC (rev 57968) +++ firebird/trunk/ChangeLog 2013-04-19 00:40:07 UTC (rev 57969) @@ -1,3 +1,7 @@ + 2013-04-18 13:51 alexpeshkoff + A doc/README.plugins.html +First draft of plugins readme file + 2013-04-17 15:54 asfernandes M src/jrd/RecordSourceNodes.cpp Fixed CORE-4084 - GROUP BY fails if subselect-column is involved. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-18 13:51:28 UTC (rev 57968) +++ firebird/trunk/src/jrd/build_no.h 2013-04-19 00:40:07 UTC (rev 57969) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30370 + FORMAL BUILD NUMBER:30371 */ -#define PRODUCT_VER_STRING "3.0.0.30370" -#define FILE_VER_STRING "WI-T3.0.0.30370" -#define LICENSE_VER_STRING "WI-T3.0.0.30370" -#define FILE_VER_NUMBER 3, 0, 0, 30370 +#define PRODUCT_VER_STRING "3.0.0.30371" +#define FILE_VER_STRING "WI-T3.0.0.30371" +#define LICENSE_VER_STRING "WI-T3.0.0.30371" +#define FILE_VER_NUMBER 3, 0, 0, 30371 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30370" +#define FB_BUILD_NO "30371" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-18 13:51:28 UTC (rev 57968) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-19 00:40:07 UTC (rev 57969) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30370 +BuildNum=30371 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...> - 2013-04-20 02:05:17
|
Revision: 57971 http://sourceforge.net/p/firebird/code/57971 Author: firebirds Date: 2013-04-20 02:05:13 +0000 (Sat, 20 Apr 2013) 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 2013-04-19 09:22:58 UTC (rev 57970) +++ firebird/trunk/ChangeLog 2013-04-20 02:05:13 UTC (rev 57971) @@ -1,3 +1,22 @@ + 2013-04-19 09:22 dimitr + M src/jrd/recsrc/BufferedStream.cpp + M src/jrd/recsrc/ConditionalStream.cpp + M src/jrd/recsrc/FilteredStream.cpp + M src/jrd/recsrc/FirstRowsStream.cpp + M src/jrd/recsrc/FullOuterJoin.cpp + M src/jrd/recsrc/HashJoin.cpp + M src/jrd/recsrc/LockedStream.cpp + M src/jrd/recsrc/MergeJoin.cpp + M src/jrd/recsrc/NestedLoopJoin.cpp + M src/jrd/recsrc/RecordSource.cpp + M src/jrd/recsrc/RecordSource.h + M src/jrd/recsrc/SingularStream.cpp + M src/jrd/recsrc/SkipRowsStream.cpp + M src/jrd/recsrc/SortedStream.cpp + M src/jrd/recsrc/WindowedStream.cpp + M src/jrd/req.h +Refactoring: isolated the singularity checking logic and simplified the whole RSB beast. + 2013-04-18 13:51 alexpeshkoff A doc/README.plugins.html First draft of plugins readme file Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-19 09:22:58 UTC (rev 57970) +++ firebird/trunk/src/jrd/build_no.h 2013-04-20 02:05:13 UTC (rev 57971) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30371 + FORMAL BUILD NUMBER:30372 */ -#define PRODUCT_VER_STRING "3.0.0.30371" -#define FILE_VER_STRING "WI-T3.0.0.30371" -#define LICENSE_VER_STRING "WI-T3.0.0.30371" -#define FILE_VER_NUMBER 3, 0, 0, 30371 +#define PRODUCT_VER_STRING "3.0.0.30372" +#define FILE_VER_STRING "WI-T3.0.0.30372" +#define LICENSE_VER_STRING "WI-T3.0.0.30372" +#define FILE_VER_NUMBER 3, 0, 0, 30372 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30371" +#define FB_BUILD_NO "30372" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-19 09:22:58 UTC (rev 57970) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-20 02:05:13 UTC (rev 57971) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30371 +BuildNum=30372 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...> - 2013-04-21 02:09:48
|
Revision: 57973 http://sourceforge.net/p/firebird/code/57973 Author: asfernandes Date: 2013-04-21 02:09:45 +0000 (Sun, 21 Apr 2013) Log Message: ----------- Misc. Modified Paths: -------------- firebird/trunk/builds/install/misc/firebird.conf.in firebird/trunk/doc/README.build.mingw.html firebird/trunk/doc/README.build.msvc.html firebird/trunk/doc/README.plugins.html firebird/trunk/doc/sql.extensions/README.data_types firebird/trunk/src/common/cvt.cpp firebird/trunk/src/jrd/ExtEngineManager.cpp firebird/trunk/src/jrd/jrd.h Modified: firebird/trunk/builds/install/misc/firebird.conf.in =================================================================== --- firebird/trunk/builds/install/misc/firebird.conf.in 2013-04-21 01:52:37 UTC (rev 57972) +++ firebird/trunk/builds/install/misc/firebird.conf.in 2013-04-21 02:09:45 UTC (rev 57973) @@ -79,7 +79,7 @@ # I.e. when # include some_file.conf # is used in /opt/config/master.conf, we include /opt/config/some_file.conf. -# Traditional wildcards * and ? may be used in icnlude operator. In this case +# Traditional wildcards * and ? may be used in include operator. In this case # all matching files will be included in undefined order. Example: # include $(dir_plugins)/config/*.conf # Modified: firebird/trunk/doc/README.build.mingw.html =================================================================== --- firebird/trunk/doc/README.build.mingw.html 2013-04-21 01:52:37 UTC (rev 57972) +++ firebird/trunk/doc/README.build.mingw.html 2013-04-21 02:09:45 UTC (rev 57973) @@ -58,7 +58,7 @@ <ol> <li>Start msys with the icon.</li> -<li>Go to the firebird2 root directory. For instance, if your root is d:\svn\firebird you must do cd /d/svn/firebird2.</li> +<li>Go to the firebird root directory. For instance, if your root is d:\svn\firebird you must do cd /d/svn/firebird.</li> <li>Start configure with the switches to get super/classic and production/development build, for instance:<br> autogen.sh --enable-superserver<br> The valid switches for autogen are<br> @@ -81,11 +81,11 @@ <h3>4.- INSTALL.</h3> <p>To create an installable build you need to execute the InnoSetup script.</p> <ol> -<li>Open firebird2/builds/install/arch-specific/mingw/super/FirebirdInstall_15.iss with InnoSetup.</li> +<li>Open firebird/builds/install/arch-specific/mingw/super/FirebirdInstall_15.iss with InnoSetup.</li> <li>Run the script with F9 or Run->Run</li> <li>Close InnoSetup</li> </ol> -<p>A executable installer will be in firebird2/builds/install/arch-specific/mingw/super/</p> +<p>A executable installer will be in firebird/builds/install/arch-specific/mingw/super/</p> <p>To install the build, simply run the resulting exe.</p> <h3>5.- TROUBLESHOOTING</h3> Modified: firebird/trunk/doc/README.build.msvc.html =================================================================== --- firebird/trunk/doc/README.build.msvc.html 2013-04-21 01:52:37 UTC (rev 57972) +++ firebird/trunk/doc/README.build.msvc.html 2013-04-21 02:09:45 UTC (rev 57973) @@ -104,7 +104,7 @@ <h4>4.1.-Standard build</h4> <ol> -<li>Eliminate the fb2control from firebird2 solution if you are using Visual Studio Express (doesn't support MFC) and it's only the control pannel applet and try to build it, it should give you no errors when you build the solution.</li> +<li>Eliminate the fb2control from firebird3 solution if you are using Visual Studio Express (doesn't support MFC) and it's only the control pannel applet and try to build it, it should give you no errors when you build the solution.</li> <li>Open a command line window.</li> <li>Go to the builds\win32 directory.</li> <li>Run the following batches in order (your version of VisualStudio is detected automatically)</li> @@ -115,7 +115,7 @@ </ol> </ol> <ul> -<p>After the build finish, an output directory with the binaries is created below your firebird2 directory.</p> +<p>After the build finish, an output directory with the binaries is created below your firebird3 directory.</p> <li>To make a clean build from scratch after making changes to the code use the clean_all.bat script</li> </ul> <h4>4.2.-Parser rebuild</h4> @@ -137,7 +137,7 @@ </ul> <h4>4.5.-Building samples</h4> <p>After the standard build is finished, an output directory with the same structure as the installed FB directory is created.</p> -<p>If you want to build the examples just cd to firebird2\output\examples\build_win32 and run run_all.bat</p> +<p>If you want to build the examples just cd to firebird3\output\examples\build_win32 and run run_all.bat</p> <p>Run_all.bat calls four other bats to make the example sets. Any example set can be build independently with its make_XXX script.</p> <p>The example sets are:</p> <ul> Modified: firebird/trunk/doc/README.plugins.html =================================================================== --- firebird/trunk/doc/README.plugins.html 2013-04-21 01:52:37 UTC (rev 57972) +++ firebird/trunk/doc/README.plugins.html 2013-04-21 02:09:45 UTC (rev 57973) @@ -17,13 +17,13 @@ <P STYLE="margin-bottom: 0in"><FONT SIZE=4>Firebird plugins.</FONT></P> <P STYLE="margin-bottom: 0in"><BR> </P> -<P STYLE="margin-bottom: 0in"><FONT SIZE=4>Since version 3 firebird +<P STYLE="margin-bottom: 0in"><FONT SIZE=4>Since version 3, Firebird supports plugins architecture. This means that for a number of -predefined points in firebird code user can write his own fragment of +predefined points in Firebird code, user can write his own fragment of code which will be executed when needed. Plugin is not necessarily -always written be user - firebird already has a number of plugins -which are it's native part. Moreover, as you will see later, some -core parts of firebird are implemented as plugins. </FONT> +always written be user - Firebird already has a number of plugins +which are its native part. Moreover, as you will see later, some +core parts of Firebird are implemented as plugins. </FONT> </P> <P STYLE="margin-bottom: 0in"><BR> </P> @@ -39,7 +39,7 @@ library may contain code for more than one plugin;</FONT></P> <LI><P STYLE="margin-bottom: 0in"><FONT SIZE=4>plugin's factory - an object created by that code (pure virtual C++ class), creating - plugin instances on firebird request;</FONT></P> + plugin instances on Firebird request;</FONT></P> <LI><P STYLE="margin-bottom: 0in"><FONT SIZE=4>instance of plugin, created by factory.</FONT></P> </UL> @@ -49,12 +49,12 @@ <P STYLE="margin-bottom: 0in"><BR> </P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4>One should not expect that -firebird plugin architecture will make it possible to create any kind +Firebird plugin architecture will make it possible to create any kind of plugin you want. To be able to have plugin (for example) -encrypting database on the disk firebird code should be prepared for +encrypting database on the disk, Firebird code should be prepared for it – must have a point from which plugin is called. I.e. each version has a fixed set of plugins which are supported. To add one -more type first of all firebird code should be modified. What DOES +more type, first of all Firebird code should be modified. What DOES our plugin architecture – it helps to make both adding new types of plugins and writing plugin code simple and as universal between plugins as possible.</FONT></P> @@ -71,7 +71,7 @@ <LI><P STYLE="margin-bottom: 0in"><FONT SIZE=4>ExternalEngine controls use of various engines, see README.external_routines;</FONT></P> <LI><P STYLE="margin-bottom: 0in"><FONT SIZE=4>Trace plugin is known - from firebird 2.5, but a way how it interacts with engine was + from Firebird 2.5, but a way how it interacts with engine was changed to match new generic rules; </FONT> </P> <LI><P STYLE="margin-bottom: 0in"><FONT SIZE=4>encrypting plugins @@ -87,8 +87,8 @@ <P STYLE="margin-bottom: 0in"><BR> </P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4>Plugins are using a set of -special firebird interfaces (see README.interfaces about interfaces -in firebird). All plugin-specific interfaces are reference counted, +special Firebird interfaces (see README.interfaces about interfaces +in Firebird). All plugin-specific interfaces are reference counted, i.e. have explicitly controlled lifetime. Interfaces are declared in Plugin.h include file. There is a simple example of writing plugin module – DbCrypt_example. It does not perform any actual encryption @@ -105,14 +105,14 @@ attention to word “reasonable” - asking a question from plugin at server's console is hardly good idea;</FONT></P> <LI><P STYLE="margin-bottom: 0in"><FONT SIZE=4>it's OK to use - firebird API calls in your plugin if needed (for example, default - authentication server and user manager are using firebird database + Firebird API calls in your plugin if needed (for example, default + authentication server and user manager are using Firebird database to store accounts);</FONT></P> - <LI><P STYLE="margin-bottom: 0in"><FONT SIZE=4>additionally firebird + <LI><P STYLE="margin-bottom: 0in"><FONT SIZE=4>additionally Firebird provides a set of interfaces, helping you to configure your plugins (certainly, you are not forced to use them – plugin is generic code, which may use any way of providing configuration information, - but with standard tools you get common for the rest of firebird + but with standard tools you get common for the rest of Firebird configuration style and sooner of all save you efforts).</FONT></P> </UL> <P STYLE="margin-bottom: 0in"><BR> @@ -142,7 +142,7 @@ <P STYLE="margin-bottom: 0in"><BR> </P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4>As it was already -mentioned single plugin module may implement more than single plugin. +mentioned, single plugin module may implement more than single plugin. Moreover, single plugin may have at the same time more than one configuration – and for each configuration separate plugin's factory is created. Each of this 3 objects (module – implementation @@ -151,7 +151,7 @@ plugin developer and hard-coded inside module. Factory's name by default equals to plugin implementation's name (and it's factory name which is actually used in firebird.conf). Certainly in typical -trivial case module contains one plugin, and that plugin works with +trivial case, module contains one plugin, and that plugin works with only one configuration, and all 3 names are equal, and no more configuration is needed – for example libEngine12.so or Engine12.dll contains implementation of provider Engine12, and @@ -159,7 +159,7 @@ </P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4>Providers = Engine12</FONT></P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4>in firebird.conf is needed -to load it. But if you have something complex – file hwill help +to load it. But if you have something complex – file will help you to have such plugin factories which you really want.</FONT></P> <P STYLE="margin-bottom: 0in"><BR> </P> @@ -180,14 +180,14 @@ ## name of a file, containing plugin's configuration</I></FONT></P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4><I>}</I></FONT></P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4>i.e. when plugin PlugName -is needed firebird loads library LibName, finds in it plugin +is needed Firebird loads library LibName, finds in it plugin registered with name RegName and passes it configuration from config record ConfName or config file ConfFile (config record is used if -bith are given). Each parameter in this record may be missing, in +both are given). Each parameter in this record may be missing, in that case the default PlugName is used. The only exception is -ConfigFile – by default file with same name as module's dynamic +ConfigFile – by default, file with same name as module's dynamic library but .conf extension is used. ConfigFile is expected to have -format Key=Value (like other firebird configuration files), same +format Key=Value (like other Firebird configuration files), same format is used for plugin record:</FONT></P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4><I>Config = ConfName</I></FONT></P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4><I>{</I></FONT></P> @@ -203,8 +203,8 @@ for appropriate client parts), but each vendor calls his plugin BestCrypt. Certainly, first of all you have to rename libraries to something like WC1 and WC2 – one can't have 2 files with same name -in one directory. But after it modules stop to load automatically – -they are not named BestCrypt any more. To fix it plugins.conf should +in one directory. But after it, modules stop to load automatically – +they are not named BestCrypt any more. To fix it, plugins.conf should contain something like this:</FONT></P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4><I>Plugin = WC1</I></FONT></P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4><I>{</I></FONT></P> @@ -227,7 +227,7 @@ <P STYLE="margin-bottom: 0in"><BR> </P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4>Another sample may be -found in distributed with firebird plugins.conf. One of standard +found in distributed with Firebird plugins.conf. One of standard plugins, UDR, is written to use non-default configuration. Therefore module name and one configuration parameter are given explicitly.</FONT></P> <P STYLE="margin-bottom: 0in"><BR> @@ -241,7 +241,7 @@ <P STYLE="margin-bottom: 0in"><FONT SIZE=4>A. That are so-called 'built-in' plugins. They are built into fbclient library, and therefore are always present. Arrival of such plugins is due to old -ability to distribute windows firebird client as single dll. It was +ability to distribute windows Firebird client as single dll. It was decided to keep such feature at least for a case when standard set of plugins is used.</FONT></P> <P STYLE="margin-bottom: 0in"><BR> @@ -250,7 +250,7 @@ and Arc4 plugins mean?</FONT></P> <P STYLE="margin-bottom: 0in"><FONT SIZE=4>A. Srp implements Secure Remote Passwords protocol which is default way of authenticating -users in firebird 3. It has efficient password’s length equal to 20 +users in Firebird 3. It has efficient password’s length equal to 20 bytes, resistant to most of attacks (including man in the middle) and does not require exchanging any keys between client and server to work. Arc4 means Alleged RC4 - an implementation of RC4 cypher. The Modified: firebird/trunk/doc/sql.extensions/README.data_types =================================================================== --- firebird/trunk/doc/sql.extensions/README.data_types 2013-04-21 01:52:37 UTC (rev 57972) +++ firebird/trunk/doc/sql.extensions/README.data_types 2013-04-21 02:09:45 UTC (rev 57973) @@ -55,7 +55,7 @@ 2. CREATE TABLE TABLE1 (FIELD1 BOOLEAN); Note(s): - 1. Quote from the SQL-99 specification: + 1. Quote from the SQL-2008 specification: The data type boolean comprises the distinct truth values TRUE and FALSE. Unless prohibited by a NOT NULL constraint, the boolean data type also supports the truth value UNKNOWN as the Modified: firebird/trunk/src/common/cvt.cpp =================================================================== --- firebird/trunk/src/common/cvt.cpp 2013-04-21 01:52:37 UTC (rev 57972) +++ firebird/trunk/src/common/cvt.cpp 2013-04-21 02:09:45 UTC (rev 57973) @@ -1449,8 +1449,10 @@ ptr += sizeof(USHORT); if (l < from->dsc_length) + { cb->err(Arg::Gds(isc_arith_except) << Arg::Gds(isc_string_truncation) << Arg::Gds(isc_trunc_limits) << Arg::Num(l) << Arg::Num(from->dsc_length)); + } Jrd::CharSet* charSet = cb->getToCharset(to->getCharSet()); cb->validateData(charSet, from->dsc_length, from->dsc_address); Modified: firebird/trunk/src/jrd/ExtEngineManager.cpp =================================================================== --- firebird/trunk/src/jrd/ExtEngineManager.cpp 2013-04-21 01:52:37 UTC (rev 57972) +++ firebird/trunk/src/jrd/ExtEngineManager.cpp 2013-04-21 02:09:45 UTC (rev 57973) @@ -449,8 +449,8 @@ return request->req_rpb.getCount() > n && request->req_rpb[n].rpb_number.isValid() ? &request->req_rpb[n] : NULL; } - + private: const ExtEngineManager::Trigger* trigger; }; Modified: firebird/trunk/src/jrd/jrd.h =================================================================== --- firebird/trunk/src/jrd/jrd.h 2013-04-21 01:52:37 UTC (rev 57972) +++ firebird/trunk/src/jrd/jrd.h 2013-04-21 02:09:45 UTC (rev 57973) @@ -831,7 +831,7 @@ /*-------------------------------------------------------------------------* * macros used to set thread_db and Database pointers when there are not set already * *-------------------------------------------------------------------------*/ -inline void SET_TDBB(Jrd::thread_db* &tdbb) +inline void SET_TDBB(Jrd::thread_db*& tdbb) { if (tdbb == NULL) { tdbb = JRD_get_thread_data(); @@ -839,7 +839,7 @@ CHECK_TDBB(tdbb); } -inline void SET_DBB(Jrd::Database* &dbb) +inline void SET_DBB(Jrd::Database*& dbb) { if (dbb == NULL) { dbb = GET_DBB(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2013-04-22 00:33:59
|
Revision: 57974 http://sourceforge.net/p/firebird/code/57974 Author: firebirds Date: 2013-04-22 00:33:55 +0000 (Mon, 22 Apr 2013) 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 2013-04-21 02:09:45 UTC (rev 57973) +++ firebird/trunk/ChangeLog 2013-04-22 00:33:55 UTC (rev 57974) @@ -1,3 +1,18 @@ + 2013-04-21 02:09 asfernandes + M builds/install/misc/firebird.conf.in + M doc/README.build.mingw.html + M doc/README.build.msvc.html + M doc/README.plugins.html + M doc/sql.extensions/README.data_types + M src/common/cvt.cpp + M src/jrd/ExtEngineManager.cpp + M src/jrd/jrd.h +Misc. + + 2013-04-21 01:52 asfernandes + M src/include/firebird/Provider.h +Correction. + 2013-04-19 09:22 dimitr M src/jrd/recsrc/BufferedStream.cpp M src/jrd/recsrc/ConditionalStream.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-21 02:09:45 UTC (rev 57973) +++ firebird/trunk/src/jrd/build_no.h 2013-04-22 00:33:55 UTC (rev 57974) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30372 + FORMAL BUILD NUMBER:30374 */ -#define PRODUCT_VER_STRING "3.0.0.30372" -#define FILE_VER_STRING "WI-T3.0.0.30372" -#define LICENSE_VER_STRING "WI-T3.0.0.30372" -#define FILE_VER_NUMBER 3, 0, 0, 30372 +#define PRODUCT_VER_STRING "3.0.0.30374" +#define FILE_VER_STRING "WI-T3.0.0.30374" +#define LICENSE_VER_STRING "WI-T3.0.0.30374" +#define FILE_VER_NUMBER 3, 0, 0, 30374 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30372" +#define FB_BUILD_NO "30374" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-21 02:09:45 UTC (rev 57973) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-22 00:33:55 UTC (rev 57974) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30372 +BuildNum=30374 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...> - 2013-04-23 00:49:22
|
Revision: 57976 http://sourceforge.net/p/firebird/code/57976 Author: firebirds Date: 2013-04-23 00:49:18 +0000 (Tue, 23 Apr 2013) 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 2013-04-22 09:43:34 UTC (rev 57975) +++ firebird/trunk/ChangeLog 2013-04-23 00:49:18 UTC (rev 57976) @@ -1,3 +1,7 @@ + 2013-04-22 09:43 alexpeshkoff + M src/auth/SecureRemotePassword/Message.h +Cleanup + 2013-04-21 02:09 asfernandes M builds/install/misc/firebird.conf.in M doc/README.build.mingw.html Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-22 09:43:34 UTC (rev 57975) +++ firebird/trunk/src/jrd/build_no.h 2013-04-23 00:49:18 UTC (rev 57976) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30374 + FORMAL BUILD NUMBER:30375 */ -#define PRODUCT_VER_STRING "3.0.0.30374" -#define FILE_VER_STRING "WI-T3.0.0.30374" -#define LICENSE_VER_STRING "WI-T3.0.0.30374" -#define FILE_VER_NUMBER 3, 0, 0, 30374 +#define PRODUCT_VER_STRING "3.0.0.30375" +#define FILE_VER_STRING "WI-T3.0.0.30375" +#define LICENSE_VER_STRING "WI-T3.0.0.30375" +#define FILE_VER_NUMBER 3, 0, 0, 30375 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30374" +#define FB_BUILD_NO "30375" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-22 09:43:34 UTC (rev 57975) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-23 00:49:18 UTC (rev 57976) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30374 +BuildNum=30375 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...> - 2013-04-24 00:28:25
|
Revision: 57979 http://sourceforge.net/p/firebird/code/57979 Author: firebirds Date: 2013-04-24 00:28:22 +0000 (Wed, 24 Apr 2013) 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 2013-04-23 17:32:52 UTC (rev 57978) +++ firebird/trunk/ChangeLog 2013-04-24 00:28:22 UTC (rev 57979) @@ -1,3 +1,11 @@ + 2013-04-23 17:32 dimitr + M builds/win32/make_all.bat +Added databases.conf to the Windows kits. + + 2013-04-23 17:26 dimitr + M doc/WhatsNew +Updated the docs. + 2013-04-22 09:43 alexpeshkoff M src/auth/SecureRemotePassword/Message.h Cleanup Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-23 17:32:52 UTC (rev 57978) +++ firebird/trunk/src/jrd/build_no.h 2013-04-24 00:28:22 UTC (rev 57979) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30375 + FORMAL BUILD NUMBER:30377 */ -#define PRODUCT_VER_STRING "3.0.0.30375" -#define FILE_VER_STRING "WI-T3.0.0.30375" -#define LICENSE_VER_STRING "WI-T3.0.0.30375" -#define FILE_VER_NUMBER 3, 0, 0, 30375 +#define PRODUCT_VER_STRING "3.0.0.30377" +#define FILE_VER_STRING "WI-T3.0.0.30377" +#define LICENSE_VER_STRING "WI-T3.0.0.30377" +#define FILE_VER_NUMBER 3, 0, 0, 30377 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30375" +#define FB_BUILD_NO "30377" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-23 17:32:52 UTC (rev 57978) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-24 00:28:22 UTC (rev 57979) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30375 +BuildNum=30377 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...> - 2013-04-25 01:32:20
|
Revision: 57981 http://sourceforge.net/p/firebird/code/57981 Author: firebirds Date: 2013-04-25 01:32:16 +0000 (Thu, 25 Apr 2013) 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 2013-04-24 15:31:13 UTC (rev 57980) +++ firebird/trunk/ChangeLog 2013-04-25 01:32:16 UTC (rev 57981) @@ -1,3 +1,9 @@ + 2013-04-24 15:31 asfernandes + M src/dsql/WinNodes.cpp + M src/dsql/WinNodes.h + M src/dsql/parse.y +Added FROM FIRST/LAST clause to NTH_VALUE (CORE-3621). + 2013-04-23 17:32 dimitr M builds/win32/make_all.bat Added databases.conf to the Windows kits. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2013-04-24 15:31:13 UTC (rev 57980) +++ firebird/trunk/src/jrd/build_no.h 2013-04-25 01:32:16 UTC (rev 57981) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30377 + FORMAL BUILD NUMBER:30378 */ -#define PRODUCT_VER_STRING "3.0.0.30377" -#define FILE_VER_STRING "WI-T3.0.0.30377" -#define LICENSE_VER_STRING "WI-T3.0.0.30377" -#define FILE_VER_NUMBER 3, 0, 0, 30377 +#define PRODUCT_VER_STRING "3.0.0.30378" +#define FILE_VER_STRING "WI-T3.0.0.30378" +#define LICENSE_VER_STRING "WI-T3.0.0.30378" +#define FILE_VER_NUMBER 3, 0, 0, 30378 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30377" +#define FB_BUILD_NO "30378" #define FB_BUILD_TYPE "T" #define FB_BUILD_SUFFIX "Firebird 3.0 Unstable" Modified: firebird/trunk/src/misc/writeBuildNum.sh =================================================================== --- firebird/trunk/src/misc/writeBuildNum.sh 2013-04-24 15:31:13 UTC (rev 57980) +++ firebird/trunk/src/misc/writeBuildNum.sh 2013-04-25 01:32:16 UTC (rev 57981) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30377 +BuildNum=30378 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |