| 
      
      
      From: <hv...@us...> - 2014-12-01 09:04:48
       | 
| Revision: 60317
          http://sourceforge.net/p/firebird/code/60317
Author:   hvlad
Date:     2014-12-01 09:04:39 +0000 (Mon, 01 Dec 2014)
Log Message:
-----------
Support for zlib on Windows
Modified Paths:
--------------
    firebird/trunk/builds/win32/make_boot.bat
    firebird/trunk/builds/win32/msvc10/firebird2.props
    firebird/trunk/builds/win32/msvc12/firebird2.props
    firebird/trunk/src/include/gen/autoconfig_msvc.h
    firebird/trunk/src/remote/remote.cpp
Modified: firebird/trunk/builds/win32/make_boot.bat
===================================================================
--- firebird/trunk/builds/win32/make_boot.bat	2014-12-01 09:03:36 UTC (rev 60316)
+++ firebird/trunk/builds/win32/make_boot.bat	2014-12-01 09:04:39 UTC (rev 60317)
@@ -42,6 +42,9 @@
 call :LibTomMath
 if "%ERRLEV%"=="1" goto :END
 
+call :zlib
+if "%ERRLEV%"=="1" goto :END
+
 @echo Generating DSQL parser...
 @call parse.bat %*
 if "%ERRLEV%"=="1" goto :END
@@ -69,17 +72,19 @@
 
 @findstr /V "@UDF_COMMENT@" %FB_ROOT_PATH%\builds\install\misc\firebird.conf.in > %FB_BIN_DIR%\firebird.conf
 
-:: Copy ICU both to Debug and Release configurations
+:: Copy ICU and zlib both to Debug and Release configurations
 
 @call set_build_target.bat %* RELEASE
 @mkdir %FB_BIN_DIR%
 @copy %FB_ROOT_PATH%\extern\icu\icudt???.dat %FB_BIN_DIR% >nul 2>&1
 @copy %FB_ICU_SOURCE_BIN%\*.dll %FB_BIN_DIR% >nul 2>&1
+@copy %FB_ROOT_PATH%\extern\zlib\%FB_TARGET_PLATFORM%\*.dll %FB_BIN_DIR% >nul 2>&1
 
 @call set_build_target.bat %* DEBUG
 @mkdir %FB_BIN_DIR%
 @copy %FB_ROOT_PATH%\extern\icu\icudt???.dat %FB_BIN_DIR% >nul 2>&1
 @copy %FB_ICU_SOURCE_BIN%\*.dll %FB_BIN_DIR% >nul 2>&1
+@copy %FB_ROOT_PATH%\extern\zlib\%FB_TARGET_PLATFORM%\*.dll %FB_BIN_DIR% >nul 2>&1
 
 @call set_build_target.bat %*
 
@@ -133,6 +138,18 @@
 goto :EOF
 
 ::===================
+:: Extract zlib
+:zlib
+@echo Extracting pre-built zlib
+if exist %FB_ROOT_PATH%\extern\zlib\zlib.h (
+  @echo %FB_ROOT_PATH%\extern\zlib\zlib.h already extracted
+) else (
+  %FB_ROOT_PATH%\extern\zlib\zlib.exe -y > zlib_%FB_TARGET_PLATFORM%.log
+  if errorlevel 1 call :boot2 zlib
+)
+goto :EOF
+
+::===================
 :: BUILD gpre_boot
 :gpre_boot
 @echo.
Modified: firebird/trunk/builds/win32/msvc10/firebird2.props
===================================================================
--- firebird/trunk/builds/win32/msvc10/firebird2.props	2014-12-01 09:03:36 UTC (rev 60316)
+++ firebird/trunk/builds/win32/msvc10/firebird2.props	2014-12-01 09:04:39 UTC (rev 60317)
@@ -10,7 +10,7 @@
     <ClCompile>
       <AdditionalOptions>/EHsc- %(AdditionalOptions)</AdditionalOptions>
       <OmitFramePointers>true</OmitFramePointers>
-      <AdditionalIncludeDirectories>../../../src/include;../../../src/include/gen;../../../extern/libtommath;../../../extern/icu/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../../src/include;../../../src/include/gen;../../../extern/libtommath;../../../extern/icu/include;../../../extern/zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <ExceptionHandling>
       </ExceptionHandling>
       <RuntimeTypeInfo>false</RuntimeTypeInfo>
Modified: firebird/trunk/builds/win32/msvc12/firebird2.props
===================================================================
--- firebird/trunk/builds/win32/msvc12/firebird2.props	2014-12-01 09:03:36 UTC (rev 60316)
+++ firebird/trunk/builds/win32/msvc12/firebird2.props	2014-12-01 09:04:39 UTC (rev 60317)
@@ -10,7 +10,7 @@
     <ClCompile>
       <AdditionalOptions>/EHsc- %(AdditionalOptions)</AdditionalOptions>
       <OmitFramePointers>true</OmitFramePointers>
-      <AdditionalIncludeDirectories>../../../src/include;../../../src/include/gen;../../../extern/libtommath;../../../extern/icu/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../../src/include;../../../src/include/gen;../../../extern/libtommath;../../../extern/icu/include;../../../extern/zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <ExceptionHandling>
       </ExceptionHandling>
       <RuntimeTypeInfo>false</RuntimeTypeInfo>
Modified: firebird/trunk/src/include/gen/autoconfig_msvc.h
===================================================================
--- firebird/trunk/src/include/gen/autoconfig_msvc.h	2014-12-01 09:03:36 UTC (rev 60316)
+++ firebird/trunk/src/include/gen/autoconfig_msvc.h	2014-12-01 09:04:39 UTC (rev 60317)
@@ -156,8 +156,8 @@
 #undef HAVE_SYS_SOCKIO_H
 #undef HAVE_WINSOCK2_H
 #define HAVE_FLOAT_H
+#define HAVE_ZLIB_H
 
-
 /* Functions */
 #undef HAVE_GETTIMEOFDAY
 #undef HAVE_TIME
Modified: firebird/trunk/src/remote/remote.cpp
===================================================================
--- firebird/trunk/src/remote/remote.cpp	2014-12-01 09:03:36 UTC (rev 60316)
+++ firebird/trunk/src/remote/remote.cpp	2014-12-01 09:04:39 UTC (rev 60317)
@@ -1385,7 +1385,11 @@
 	public:
 		ZLib(Firebird::MemoryPool&)
 		{
+#ifdef WIN_NT
+			const char* name = "zlib1.dll";
+#else
 			const char* name = "libz." SHRLIB_EXT ".1";
+#endif
 			z.reset(ModuleLoader::fixAndLoadModule(name));
 			if (z)
 				symbols();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2014-12-02 10:09:24
       | 
| Revision: 60321
          http://sourceforge.net/p/firebird/code/60321
Author:   firebirds
Date:     2014-12-02 10:09:15 +0000 (Tue, 02 Dec 2014)
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	2014-12-01 21:53:29 UTC (rev 60320)
+++ firebird/trunk/ChangeLog	2014-12-02 10:09:15 UTC (rev 60321)
@@ -1,3 +1,37 @@
+ 2014-12-01 21:53  dimitr 
+   M src/dsql/StmtNodes.cpp
+   M src/jrd/JrdStatement.cpp
+   M src/jrd/exe.h
+   M src/jrd/recsrc/BufferedStream.cpp
+   M src/jrd/recsrc/RecordSource.cpp
+   M src/jrd/recsrc/SortedStream.cpp
+   M src/jrd/req.h
+   M src/jrd/rpb_chain.cpp
+   M src/jrd/vio.cpp
+Refactored the RPB flags. The new logic also provides a second-level protection against CORE-4618.
+
+ 2014-12-01 13:38  dimitr 
+   M src/misc/writeBuildNum.sh
+Updated the version info.
+
+ 2014-12-01 09:45  alexpeshkoff 
+   M src/isql/show.epp
+Fixed CORE-4503: ISQL command SHOW USERS display only me
+
+ 2014-12-01 09:04  hvlad 
+   M builds/win32/make_boot.bat
+   M builds/win32/msvc10/firebird2.props
+   M builds/win32/msvc12/firebird2.props
+   M src/include/gen/autoconfig_msvc.h
+   M src/remote/remote.cpp
+Support for zlib on Windows
+
+ 2014-12-01 09:03  hvlad 
+   A extern/zlib
+   A extern/zlib/Readme.txt
+   A extern/zlib/zlib.exe
+Add pre-built zlib library
+
  2014-11-30 21:09  asfernandes 
    M src/common/os/win32/os_utils.cpp
    M src/dsql/parse.y
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-01 21:53:29 UTC (rev 60320)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-02 10:09:15 UTC (rev 60321)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31458
+  FORMAL BUILD NUMBER:31463
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31458"
-#define FILE_VER_STRING "WI-T3.0.0.31458"
-#define LICENSE_VER_STRING "WI-T3.0.0.31458"
-#define FILE_VER_NUMBER 3, 0, 0, 31458
+#define PRODUCT_VER_STRING "3.0.0.31463"
+#define FILE_VER_STRING "WI-T3.0.0.31463"
+#define LICENSE_VER_STRING "WI-T3.0.0.31463"
+#define FILE_VER_NUMBER 3, 0, 0, 31463
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31458"
+#define FB_BUILD_NO "31463"
 #define FB_BUILD_TYPE "T"
-#define FB_BUILD_SUFFIX "Firebird 3.0 Beta 1"
+#define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-01 21:53:29 UTC (rev 60320)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-02 10:09:15 UTC (rev 60321)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31458
+BuildNum=31463
 
 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...> - 2014-12-03 09:20:59
       | 
| Revision: 60332
          http://sourceforge.net/p/firebird/code/60332
Author:   firebirds
Date:     2014-12-03 09:20:56 +0000 (Wed, 03 Dec 2014)
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	2014-12-03 07:23:15 UTC (rev 60331)
+++ firebird/trunk/ChangeLog	2014-12-03 09:20:56 UTC (rev 60332)
@@ -1,3 +1,12 @@
+ 2014-12-02 20:37  dimitr 
+   M src/common/StatusArg.cpp
+   M src/common/StatusArg.h
+Forgotten commit.
+
+ 2014-12-02 20:14  dimitr 
+   M src/lock/lock.cpp
+Fixed CORE-4631: Lock manager "out of room" error hides the real cause of this problem.
+
  2014-12-01 21:53  dimitr 
    M src/dsql/StmtNodes.cpp
    M src/jrd/JrdStatement.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-03 07:23:15 UTC (rev 60331)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-03 09:20:56 UTC (rev 60332)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31463
+  FORMAL BUILD NUMBER:31465
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31463"
-#define FILE_VER_STRING "WI-T3.0.0.31463"
-#define LICENSE_VER_STRING "WI-T3.0.0.31463"
-#define FILE_VER_NUMBER 3, 0, 0, 31463
+#define PRODUCT_VER_STRING "3.0.0.31465"
+#define FILE_VER_STRING "WI-T3.0.0.31465"
+#define LICENSE_VER_STRING "WI-T3.0.0.31465"
+#define FILE_VER_NUMBER 3, 0, 0, 31465
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31463"
+#define FB_BUILD_NO "31465"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-03 07:23:15 UTC (rev 60331)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-03 09:20:56 UTC (rev 60332)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31463
+BuildNum=31465
 
 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...> - 2014-12-04 09:31:34
       | 
| Revision: 60340
          http://sourceforge.net/p/firebird/code/60340
Author:   firebirds
Date:     2014-12-04 09:31:31 +0000 (Thu, 04 Dec 2014)
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	2014-12-04 09:27:36 UTC (rev 60339)
+++ firebird/trunk/ChangeLog	2014-12-04 09:31:31 UTC (rev 60340)
@@ -1,3 +1,13 @@
+ 2014-12-03 14:27  alexpeshkoff 
+   M src/remote/client/interface.cpp
+   M src/remote/remot_proto.h
+   M src/remote/remote.cpp
+Fixed CORE-4471: Legacy_Auth plugin does not connect from FB3 to FB2.5 server when tried after Win_Sspi
+
+ 2014-12-03 14:19  alexpeshkoff 
+   M src/include/firebird/Interface.h
+Misc
+
  2014-12-02 20:37  dimitr 
    M src/common/StatusArg.cpp
    M src/common/StatusArg.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-04 09:27:36 UTC (rev 60339)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-04 09:31:31 UTC (rev 60340)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31465
+  FORMAL BUILD NUMBER:31467
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31465"
-#define FILE_VER_STRING "WI-T3.0.0.31465"
-#define LICENSE_VER_STRING "WI-T3.0.0.31465"
-#define FILE_VER_NUMBER 3, 0, 0, 31465
+#define PRODUCT_VER_STRING "3.0.0.31467"
+#define FILE_VER_STRING "WI-T3.0.0.31467"
+#define LICENSE_VER_STRING "WI-T3.0.0.31467"
+#define FILE_VER_NUMBER 3, 0, 0, 31467
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31465"
+#define FB_BUILD_NO "31467"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-04 09:27:36 UTC (rev 60339)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-04 09:31:31 UTC (rev 60340)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31465
+BuildNum=31467
 
 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...> - 2014-12-06 17:17:29
       | 
| Revision: 60344
          http://sourceforge.net/p/firebird/code/60344
Author:   firebirds
Date:     2014-12-06 17:17:23 +0000 (Sat, 06 Dec 2014)
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	2014-12-04 18:24:13 UTC (rev 60343)
+++ firebird/trunk/ChangeLog	2014-12-06 17:17:23 UTC (rev 60344)
@@ -1,3 +1,7 @@
+ 2014-12-04 18:24  dimitr 
+   M src/remote/client/interface.cpp
+Fixed missing initialization of the output variable in the case of FB_EOF.
+
  2014-12-03 14:27  alexpeshkoff 
    M src/remote/client/interface.cpp
    M src/remote/remot_proto.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-04 18:24:13 UTC (rev 60343)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-06 17:17:23 UTC (rev 60344)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31467
+  FORMAL BUILD NUMBER:31468
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31467"
-#define FILE_VER_STRING "WI-T3.0.0.31467"
-#define LICENSE_VER_STRING "WI-T3.0.0.31467"
-#define FILE_VER_NUMBER 3, 0, 0, 31467
+#define PRODUCT_VER_STRING "3.0.0.31468"
+#define FILE_VER_STRING "WI-T3.0.0.31468"
+#define LICENSE_VER_STRING "WI-T3.0.0.31468"
+#define FILE_VER_NUMBER 3, 0, 0, 31468
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31467"
+#define FB_BUILD_NO "31468"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-04 18:24:13 UTC (rev 60343)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-06 17:17:23 UTC (rev 60344)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31467
+BuildNum=31468
 
 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...> - 2014-12-08 00:03:48
       | 
| Revision: 60345
          http://sourceforge.net/p/firebird/code/60345
Author:   firebirds
Date:     2014-12-08 00:03:33 +0000 (Mon, 08 Dec 2014)
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	2014-12-06 17:17:23 UTC (rev 60344)
+++ firebird/trunk/ChangeLog	2014-12-08 00:03:33 UTC (rev 60345)
@@ -75944,55086 +75944,6 @@
 Fix compile error on Solaris
 
  2006-04-17 15:52  alexpeshkoff 
-   M src/remote/inet.cpp
-Don't raise SIGPIPE when other side terminated connection
-
- 2006-04-17 10:40  alexpeshkoff 
-   M src/remote/server.cpp
-removed unneeded h-file
-
- 2006-04-16 22:11  asfernandes 
-   M builds/install/arch-specific/linux/classic/postinstall.sh.in
-   M builds/posix/Makefile.in.client.util
-   M src/utilities/guard/guard.cpp
-   M src/utilities/ibmgr/ibmgrswi.h
-Misc
-
- 2006-04-16 22:01  asfernandes 
-   M src/common/classes/semaphore.h
-Correction for posix build
-
- 2006-04-16 19:54  kkuznetsov 
-   M src/common/classes/semaphore.h
-Solaris error correction
-
- 2006-04-16 18:49  asfernandes 
-   M src/jrd/evl.cpp
-Misc
-
- 2006-04-16 18:45  asfernandes 
-   M src/dsql/make.cpp
-   M src/jrd/evl.cpp
-   M src/jrd/exe.h
-Let LOWER/UPPER (blob) work - returning a blob
-
- 2006-04-16 17:09  asfernandes 
-   M src/remote/server.cpp
-Use THREAD_SLEEP as sleep don't exist in WIN32
-
- 2006-04-16 17:03  alexpeshkoff 
-   M src/jrd/execute_statement.cpp
-Fixed bug in VC7.1 builds, reported by Ivan Prenosil
-
- 2006-04-16 16:13  alexpeshkoff 
-   M src/common/classes/ClumpletReader.cpp
-ported fixes from release
-
- 2006-04-16 15:27  asfernandes 
-   M src/utilities/guard/guard.cpp
-Correction
-
- 2006-04-16 12:58  alexpeshkoff 
-   M builds/install/arch-specific/linux/classic/postinstall.sh.in
-   M builds/install/arch-specific/linux/misc/firebird.init.d.debian.in
-   M builds/install/arch-specific/linux/misc/firebird.init.d.generic.in
-   M builds/install/arch-specific/linux/misc/firebird.init.d.gentoo.in
-   M builds/install/arch-specific/linux/misc/firebird.init.d.mandrake.in
-   M builds/install/arch-specific/linux/misc/firebird.init.d.suse.in
-   M builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
-   M builds/install/arch-specific/linux/misc/superLinux.sh.in
-   M builds/install/arch-specific/linux/super/postuninstall.sh.in
-   M builds/install/misc/classicLibrary.sh.in
-   M builds/install/misc/posixLibrary.sh.in
-   M builds/install/misc/superLibrary.sh.in
-   M builds/posix/Makefile.in.client.util
-   M src/burp/restore.epp
-   M src/utilities/guard/guard.cpp
-   M src/utilities/ibmgr/ibmgr.cpp
-   M src/utilities/ibmgr/ibmgr.h
-   M src/utilities/ibmgr/ibmgrswi.h
-   M src/utilities/ibmgr/srvrmgr.cpp
-ported fixes from 2.0 release
-
- 2006-04-16 12:52  alexpeshkoff 
-   M src/jrd/jrd.cpp
-fixed debug build
-
- 2006-04-14 18:16  asfernandes 
-   A builds/win32/create_msgs.bat
-   M builds/win32/make_boot2.bat
-Add create_msgs.bat to be able to rebuild messages files without running make_boot2.bat
-
- 2006-04-14 16:46  alexpeshkoff 
-   M src/remote/inet_server.cpp
-   M src/remote/serve_proto.h
-   M src/remote/server.cpp
-shutdown working threads before server shutdown
-
- 2006-04-13 03:59  robocop 
-   M src/common/classes/semaphore.h
-Misc.
-
- 2006-04-13 03:04  asfernandes 
-   M builds/install/misc/fbintl.conf
-   M builds/win32/msvc6/intl.dsp
-   M builds/win32/msvc7/intl.vcproj
-   A src/intl/collations/xx88592plk.h
-   M src/intl/lc_iso8859_2.cpp
-   M src/intl/ld.cpp
-   M src/jrd/intlnames.h
-Polish collation ISO_PLK for ISO8859_2 charset - contributed by Jaroslaw Glowacki
-
- 2006-04-12 11:54  kkuznetsov 
-   M src/common/classes/semaphore.h
-Correct messages from Semaphore exceptions
-
- 2006-04-12 09:25  kkuznetsov 
-   M src/common/classes/semaphore.h
-Rewiev semaphore on Solaris platform:
-add some fixes and loop on EINTR
-
- 2006-04-12 01:57  asfernandes 
-   M src/common/classes/fb_string.cpp
-Misc
-
- 2006-04-11 08:21  robocop 
-   M src/isql/show.epp
-Correction.
-
- 2006-04-11 07:30  robocop 
-   M src/isql/show.epp
-Adriano reported a problem with SHOW GENERATORS skipping the required object because an old db had NULL in the sysflag column. Using his proposed fix, committed only to the HEAD.
-
- 2006-04-11 07:18  robocop 
-   M src/remote/inet.cpp
-   M src/remote/os/win32/wnet.cpp
-   M src/remote/xnet.cpp
-Delete dead code after checking with Dmitry.
-The B.O. are still there when copying the result of GetCommandLine().
-
- 2006-04-11 07:16  robocop 
-   M src/include/old_fb_blk.h
-   M src/remote/allr.cpp
-Solve a possible truncation problem due to USHORT<->ULONG issues.
-Tweak for embedded so it doesn't crash when handling an error.
-
- 2006-04-11 07:14  robocop 
-   M src/dsql/hsh.cpp
-Misc.
-
- 2006-04-11 06:46  dimitr 
-   M src/common/classes/fb_string.cpp
-   M src/common/classes/tree.h
-Sync with BV branch. Committed on behalf of George Sergeev.
-
- 2006-04-09 15:46  alexpeshkoff 
-   M src/jrd/isc_sync.cpp
-make CS lock manager semaphores have correct access rights
-
- 2006-04-09 12:47  alexpeshkoff 
-   M src/dsql/hsh.cpp
-fixed AV during massive addition of relations to DSQL hash
-
- 2006-04-09 10:59  alexpeshkoff 
-   M src/jrd/nbak.cpp
-fixed access rights to delta file
-
- 2006-04-09 06:53  robocop 
-   M src/remote/server.cpp
-Handle zero-length strings even if we have our buffer full.
-
- 2006-04-09 06:50  robocop 
-   M src/remote/merge.cpp
-We can't handle more than 255 bytes for some items when merging information. Let's be consistent between the length indicator and the bytes we put in the buffer.
-
- 2006-04-09 06:46  robocop 
-   M src/remote/inet.cpp
-   M src/remote/protocol.cpp
-   M src/remote/remote.cpp
-   M src/remote/xdr.cpp
-Style.
-
- 2006-04-09 00:53  robocop 
-   M src/remote/server.cpp
-Refactor this damn unreadable code and take into account the problem Adriano found with zero length file names in my previous commit.
-
- 2006-04-08 03:29  robocop 
-   M src/lock/print.cpp
-Misc.
-
- 2006-04-08 03:28  robocop 
-   M src/msgs/messages.sql
-Correction.
-
- 2006-04-08 03:09  asfernandes 
-   M src/dsql/gen.cpp
-Fix problem which occur when select a field with NONE charset when using another connection charset - second part of problem reported by Michal Kubecek
-
- 2006-04-08 00:03  robocop 
-   M src/isql/isql.epp
-   M src/msgs/facilities.sql
-   M src/msgs/history.sql
-   M src/msgs/messages.sql
-Adjust isql to the full words stated in the IB5 docs for the command line options.
-
- 2006-04-07 09:16  dimitr 
-   M src/dsql/array.epp
-   M src/dsql/blob.epp
-More threading related fixes. As a side effect, it disables a primitive client-side caching of a few predefined queries, but it doesn't show any performance difference.
-
- 2006-04-07 04:51  robocop 
-   M src/remote/server.cpp
-I think I'm fixing a potential buffer overrun here.
-
- 2006-04-07 02:58  asfernandes 
-   M builds/posix/Makefile.in.client.fbudf
-   M src/common/classes/class_test.cpp
-   M src/common/classes/sparse_bitmap.h
-   M src/jrd/rse.cpp
-Misc
-
- 2006-04-07 02:55  asfernandes 
-   M src/remote/server.cpp
-Correction
-
- 2006-04-06 14:43  alexpeshkoff 
-   M src/isql/isql.epp
-fixed regression in switch
-
- 2006-04-06 13:34  alexpeshkoff 
-   M src/remote/server.cpp
-validate port_context before use to avoid AV in remote
-
- 2006-04-06 13:30  alexpeshkoff 
-   M src/jrd/svc.cpp
-make service output look the same for both CS and SS
-
- 2006-04-06 08:18  robocop 
-   M src/common/classes/ClumpletReader.cpp
-   M src/common/classes/ClumpletWriter.cpp
-   M src/common/classes/alloc.cpp
-   M src/common/classes/class_perf.cpp
-   M src/common/classes/class_test.cpp
-   M src/common/classes/fb_string.cpp
-   M src/common/classes/fb_string.h
-   M src/common/classes/semaphore.h
-   M src/common/classes/sparse_bitmap.h
-   M src/common/classes/tree.h
-   M src/common/fb_exception.cpp
-   M src/config/Lex.cpp
-   M src/config/Lex.h
-   M src/intl/lc_narrow.cpp
-   M src/intl/utils/dtest2.c
-   M src/intl/utils/mapgen4.c
-   M src/isql/isql.epp
-   M src/jrd/blb.cpp
-   M src/jrd/btr.cpp
-   M src/jrd/cch.cpp
-   M src/jrd/cmp.cpp
-   M src/jrd/dfw.epp
-   M src/jrd/evl.cpp
-   M src/jrd/exe.cpp
-   M src/jrd/functions.cpp
-   M src/jrd/met.epp
-   M src/jrd/nbak.cpp
-   M src/jrd/opt.cpp
-   M src/jrd/rse.cpp
-   M src/jrd/tra.cpp
-   M src/jrd/validation.cpp
-   M src/jrd/vio.cpp
-   M src/misc/makeHeader.cpp
-   M src/remote/server.cpp
-   M src/utilities/gsec/gsec.cpp
-   M src/utilities/rebuild/rebuild.cpp
-   M src/vulcan/RefObject.h
-Style.
-
- 2006-04-06 06:32  robocop 
-   M src/jrd/gds.cpp
-   M src/jrd/gds_proto.h
-   M src/jrd/ibase.h
-Stop complainers related to the argument types of fb_interpret.
-
- 2006-04-06 04:19  aafemt 
-   M builds/posix/Makefile.in.client.fbudf
-Since timestamp routines are compiled-in directly, no need to link against fbclient.
-
- 2006-04-05 16:34  asfernandes 
-   M src/jrd/jrd.cpp
-   M src/jrd/met.epp
-   M src/jrd/met_proto.h
-Allow collation IDs greater than 127
-
- 2006-04-05 16:24  asfernandes 
-   M src/burp/backup.epp
-Remove obsolete comment
-
- 2006-04-05 07:08  dimitr 
-   M src/remote/inet.cpp
-Nagle algorithm is now disabled by default, so there's no need to print an appropriate message in the server log.
-
- 2006-04-05 06:25  kkuznetsov 
-   M src/common/classes/alloc.cpp
-Add check for result of mmap() on Solaris platforms
-
- 2006-04-05 05:04  dimitr 
-   M src/remote/inet.cpp
-1) Set NoNagle depending on config only.
-2) Set socket options for Win32 CS.
-
- 2006-04-05 04:38  dimitr 
-   M src/dsql/make.cpp
-Fixed the regression caused by my changes re. Dialect 1.
-
- 2006-04-05 04:36  dimitr 
-   M src/jrd/cch.cpp
-gds_alloc() no longer throws exceptions. Let's handle it properly.
-
- 2006-04-04 22:48  robocop 
-   M src/alice/alice.cpp
-   M src/alice/alice.h
-   M src/alice/tdr.cpp
-Misc.
-
- 2006-03-30 05:59  kkuznetsov 
-   A extern/SfIO/read.me
-Add readme
-
- 2006-03-29 17:47  dimitr 
-   M src/jrd/cmp.cpp
-   M src/jrd/exe.h
-   M src/misc/blrtable.cpp
-Fixed yet another bug in cursors. Will this ever end? :-)
-
- 2006-03-29 15:26  dimitr 
-   M src/jrd/btr.cpp
-Fixed the bug that caused unexpected bugcheck(205) in big databases.
-
- 2006-03-29 15:20  asfernandes 
-   M builds/install/arch-specific/win32/pt/instalacao_leia-me.txt
-Misc
-
- 2006-03-29 13:44  paul_reeves 
-   M builds/install/arch-specific/win32/BuildExecutableInstall.bat
-   M builds/install/arch-specific/win32/FirebirdInstall_20.iss
-   M builds/install/arch-specific/win32/Readme.txt
-   M builds/install/arch-specific/win32/installation_readme.txt
-   M builds/win32/make_examples.bat
-Minor tweaks to the Win32 build/install stuff. Updated readme and install_readme.
-
- 2006-03-29 13:43  paul_reeves 
-   M builds/install/arch-specific/win32/pt/custom_messages_pt.inc
-   M builds/install/arch-specific/win32/pt/instalacao_leia-me.txt
-   M builds/install/arch-specific/win32/pt/leia-me.txt
-Win32 installer - latest portuguese translations
-
- 2006-03-29 13:41  paul_reeves 
-   A builds/install/arch-specific/win32/it
-   A builds/install/arch-specific/win32/it/custom_messages_it.inc
-   A builds/install/arch-specific/win32/it/leggimi.txt
-   A builds/install/arch-specific/win32/it/leggimi_installazione.txt
-Add italian translations of install strings for Windows installs
-
- 2006-03-29 09:41  hvlad 
-   M src/dsql/pass1.cpp
-Make input parameters of EXECUTE BLOCK statement nullable
-
- 2006-03-29 09:39  kkuznetsov 
-   A extern/SfIO
-   A extern/SfIO/include
-   A extern/SfIO/include/stdio.h
-Add modifyed SFIO include file to public CVS
-
- 2006-03-28 10:16  dimitr 
-   M src/jrd/dyn_mod.epp
-Misc.
-
- 2006-03-28 09:55  dimitr 
-   M src/jrd/evl.cpp
-Protected from assignments to not existing fields.
-
- 2006-03-28 09:54  dimitr 
-   M lang_helpers/gds_codes.ftn
-   M lang_helpers/gds_codes.pas
-   M src/include/gen/codetext.h
-   M src/include/gen/iberror.h
-   M src/include/gen/msgs.h
-   M src/include/gen/rdb_codes.h
-   M src/include/gen/sql_code.h
-   M src/msgs/facilities.sql
-   M src/msgs/messages.sql
-   M src/msgs/system_errors.sql
-Added new error message.
-
- 2006-03-28 09:36  dimitr 
-   M src/jrd/exe.h
-Fixed a minor regression in the permission checking logic.
-Let's first check the relation privileges and only then the column ones.
-
- 2006-03-28 04:31  mkubecek 
-   M src/isql/isql.epp
-   M src/isql/isql.h
-   M src/msgs/facilities.sql
-   M src/msgs/history.sql
-   M src/msgs/messages.sql
-Fix of isql command line parser: check for repeated switches or database name.
-
- 2006-03-28 04:04  robocop 
-   M doc/README.garbage_collector
-Misc.
-
- 2006-03-26 20:51  hvlad 
-   A doc/README.garbage_collector
-Documentation for garbage collector
-
- 2006-03-26 05:58  robocop 
-   M src/isql/isql.epp
-- Misc.
-- Style
-- Avoiding one indentation level.
-
- 2006-03-26 04:58  robocop 
-   M src/msgs/history.sql
-Misc.
-
- 2006-03-26 03:34  asfernandes 
-   M src/isql/isql.epp
-Correction
-
- 2006-03-25 23:41  mkubecek 
-   M src/isql/isql.epp
-   M src/isql/isql.h
-   M src/msgs/facilities.sql
-   M src/msgs/messages.sql
-Fix of isql command line parser: allow only abbreviations of standard switch names, check integer arguments to be integers.
-
- 2006-03-25 07:08  robocop 
-   M configure.in
-   M src/common/utils_proto.h
-   M src/include/gen/autoconfig_msvc.h
-   M src/jrd/common.h
-   M src/jrd/svc.cpp
-   M src/utilities/gsec/security.epp
-Only strcmp and strncmp have common names across all plartforms. Cater for differences in strcasecmp/stricmp and strncasecmp/strnicmp.
-
- 2006-03-25 07:01  robocop 
-   M src/isql/show.epp
-   M src/jrd/thd.cpp
-Misc.
-
- 2006-03-21 01:55  asfernandes 
-   M builds/posix/Makefile.in.client.qli
-Misc
-
- 2006-03-20 16:29  alexpeshkoff 
-   M src/remote/inet.cpp
-fixed server hang in case of broken client
-
- 2006-03-20 14:17  alexpeshkoff 
+   M /firebird/trun
+o.h
    M src/misc/writeBuildNum.sh
-fixed bugs building release candidate 1
-
- 2006-03-19 15:37  alexpeshkoff 
-   M configure.in
-Let FreeBSD use editline by default
-
- 2006-03-19 15:32  alexpeshkoff 
-   M builds/posix/Makefile.in.client.qli
-   M builds/posix/Makefile.in.embed.qli
-removed absolutely unneeded setuid - thanks to Sergey Skvortsov
-
- 2006-03-19 13:56  alexpeshkoff 
-   M configure.in
-fixing build on FreeBSD/amd64
-
- 2006-03-18 06:22  robocop 
-   M src/jrd/blb.cpp
-Totally misc.
-
- 2006-03-18 01:57  asfernandes 
-   M src/jrd/blb.cpp
-Misc
-
- 2006-03-18 01:47  asfernandes 
-   M doc/WhatsNew
-Misc
-
- 2006-03-17 16:08  dimitr 
-   M src/remote/os/win32/window.cpp
-Let's not duplicate things.
-
- 2006-03-17 15:18  dimitr 
-   M src/misc/writeBuildNum.sh
-Misc.
-
- 2006-03-17 14:25  dimitr 
-   M src/misc/writeBuildNum.sh
-Updated the version number.
-
- 2006-03-17 13:36  alexpeshkoff 
-   M doc/WhatsNew
-Misc
-
- 2006-03-17 10:41  robocop 
-   M doc/WhatsNew
-Document isql's command line arguments explanation.
-
- 2006-03-17 09:39  hvlad 
-   M doc/WhatsNew
-Update WhatsNew
-
- 2006-03-17 09:28  hvlad 
-   M src/jrd/blb.cpp
-   M src/jrd/blb.h
-Fixed SF #1446987
-
- 2006-03-17 08:15  dimitr 
-   M doc/WhatsNew
-Updated docs.
-
- 2006-03-17 07:56  hvlad 
-   M src/jrd/vio.cpp
-Fixed Beta2 bug reported in Russian newsgroup : AV when dropping FK
-with inactive index. Style
-
- 2006-03-16 13:45  alexpeshkoff 
-   M src/jrd/utl.cpp
-misc
-
- 2006-03-16 09:07  robocop 
-   M src/isql/isql.epp
-   M src/isql/isql.h
-   M src/msgs/facilities.sql
-   M src/msgs/history.sql
-   M src/msgs/messages.sql
-Give isql a more useful help when receiving incorrect command line arguments, in sync with other utilities. Courtesy of Michal Kubecek.
-Example: isql -?
-
- 2006-03-16 08:55  robocop 
-   M src/jrd/sch.cpp
-1.- Style.
-2.- Don't overflow in case of long error message.
-
- 2006-03-16 08:53  robocop 
-   M builds/install/misc/firebird.conf
-Misc.
-
- 2006-03-16 02:26  asfernandes 
-   M src/jrd/pag.cpp
-Misc
-
- 2006-03-15 17:34  alexpeshkoff 
-   M src/jrd/sch.cpp
-   M src/jrd/thd.cpp
-   M src/jrd/thd.h
-fixed bugcheck in case of OS error in mutex
-
- 2006-03-15 17:32  alexpeshkoff 
-   M src/jrd/common.h
-   M src/jrd/inf_pub.h
-   M src/jrd/pag.cpp
-   M src/jrd/utl.cpp
-applied patch of Sergey Skvortsov - port for FreeBSD AMD64
-
- 2006-03-15 17:29  alexpeshkoff 
-   M src/common/fb_exception.cpp
-   M src/include/fb_exception.h
-better support for OS error code in system_call_failed
-
- 2006-03-15 17:27  alexpeshkoff 
-   M src/alice/alice.h
-   M src/burp/burp.cpp
-   M src/burp/burp.h
-return error in case of unexpected status_exception
-
- 2006-03-15 17:25  alexpeshkoff 
-   M src/jrd/vio.cpp
-   M src/remote/server.cpp
-we should not loose status vector held in status_exception
-
- 2006-03-15 17:23  alexpeshkoff 
-   M builds/install/misc/firebird.conf
-   M src/common/config/config.cpp
-   M src/misc/upgrade/v2/security_database.txt
-change default value of LegacyHash
-
- 2006-03-15 14:03  paul_reeves 
-   M src/jrd/isc_version.h
-Use different release number in ISC_FILE_VER_XXXX to distinguish between Fb 1.5 and Fb 2.0. Bump the build number at the same time.
-
- 2006-03-15 04:22  robocop 
-   M src/remote/os/win32/wnet.cpp
-Commit Alex' fix for a buffer overrun.
-
- 2006-03-15 04:21  robocop 
-   M src/burp/restore.epp
-Get rid of unused handle.
-
- 2006-03-14 10:57  arnobrinkman 
-   M src/dsql/pass1.cpp
-Fix node compare function for derived fields.
-Fixes field test-item #1449377.
-
- 2006-03-13 14:39  hvlad 
-   M src/burp/restore.epp
-Update statistics for system indices after restore
-
- 2006-03-13 14:32  hvlad 
-   M src/jrd/sort.cpp
-Fix SF #1434147 : Bugs with COUNT (DISTINCT XXX) when XXXX is a high integer
-
- 2006-03-10 17:46  alexpeshkoff 
-   M src/jrd/cmp.cpp
-   M src/jrd/exe.cpp
-   M src/jrd/exe.h
-   M src/jrd/req.h
-fixed memory leak - SF#1422471
-
- 2006-03-10 08:23  robocop 
-   M src/jrd/alt.cpp
-   M src/jrd/alt_proto.h
-   M src/jrd/dfw.epp
-   M src/jrd/ibase.h
-   M src/jrd/os/vms/vmsevent.cpp
-   M src/jrd/utl.cpp
-   M src/jrd/utl_proto.h
-   M src/jrd/why.cpp
-   M src/jrd/why_proto.h
-   M src/remote/server.cpp
-Commit correct signature for events-related calls.
-
- 2006-03-10 02:05  asfernandes 
-   M builds/posix/Makefile.in.libfbembed
-Misc
-
- 2006-03-10 00:26  asfernandes 
-   M src/jrd/req.h
-   M src/jrd/vio.cpp
-Fix SF Field-test #1439268 - Sequence of commands crash FB server - second part - thanks to Claudio
-
- 2006-03-10 00:08  asfernandes 
-   M src/dsql/pass1.cpp
-Fix incorrect malformed string error, reported by Richard Wesley
-
- 2006-03-09 17:52  dimitr 
-   M src/remote/xnet.cpp
-Fixed an exception during events shutdown, reported in fb-devel.
-
- 2006-03-09 15:24  kkuznetsov 
-   M builds/install/arch-specific/solx86gcc/CS/prototype.in
-Update solaris packaging
-
- 2006-03-09 13:26  kkuznetsov 
-   M configure.in
-Fix packaging on SOLARIS sparc port
-
- 2006-03-09 10:27  alexpeshkoff 
-   M src/utilities/gsec/call_service.cpp
-   M src/utilities/gsec/gsec.cpp
-   M src/utilities/gsec/gsec.h
-always fill internal_user_data with 0's on creation
-
- 2006-03-09 09:42  kkuznetsov 
-   M src/jrd/common.h
-Set ODS aligment to 8 on Solaris sparc 32 bits port to avoid a lot of aligment problems.
-
- 2006-03-09 09:34  kkuznetsov 
-   M builds/posix/Makefile.in.libfbembed
-   M builds/posix/prefix.solaris
-Minor cleanup
-
- 2006-03-09 09:23  kkuznetsov 
-   M builds/posix/prefix.solaris
-Fix Solaris sparc 32 bit gcc port
-
- 2006-03-08 03:12  robocop 
-   M src/include/gen/msgs.h
-   M src/msgs/facilities.sql
-   M src/msgs/history.sql
-Sync after Dmitry's changes.
-
- 2006-03-08 03:10  robocop 
-   M src/jrd/gds.cpp
-   M src/jrd/gds_proto.h
-Misc.
-
- 2006-03-08 02:06  asfernandes 
-   M builds/posix/Makefile.in.libfbembed
-Use tab instead of spaces
-
- 2006-03-07 17:52  dimitr 
-   M src/dsql/gen.cpp
-   M src/jrd/cmp.cpp
-   M src/jrd/exe.h
-   M src/jrd/par.cpp
-Fixed yet another bug in explicit cursors.
-Unfortunately, BLR compatibility is not provided, so users have to recompile their SPs/triggers.
-
- 2006-03-07 14:43  dimitr 
-   M src/jrd/Optimizer.cpp
-More precise calculation of index cardinalities.
-
- 2006-03-07 14:42  dimitr 
-   M src/dsql/pass1.cpp
-Fixed bug in RETURNING INTO code.
-
- 2006-03-07 14:39  dimitr 
-   M src/msgs/messages.sql
-Fixed the error message.
-
- 2006-03-07 13:01  kkuznetsov 
-   M builds/posix/Makefile.in.libfbembed
-Temporally comment out my previous commit
-
- 2006-03-07 11:21  kkuznetsov 
-   M builds/posix/Makefile.in.libfbembed
-Fix make process on Solaris OSes
-
- 2006-03-07 10:20  dimitr 
-   M src/dsql/gen.cpp
-Added a context overflow check to DSQL as well.
-Based on a bugreport by Volker Rehn.
-
- 2006-03-07 09:23  dimitr 
-   M src/jrd/why.cpp
-Fixed SF #1435997.
-
- 2006-03-07 05:44  robocop 
-   M src/jrd/validation.cpp
-   M src/remote/inet.cpp
-   M src/remote/interface.cpp
-Style.
-
- 2006-03-07 03:12  asfernandes 
-   M src/remote/server.cpp
-Formatting
-
- 2006-03-07 03:11  asfernandes 
-   M src/include/fb_types.h
-   M src/include/types_pub.h
-Move ISC_STATUS_LENGTH and ISC_STATUS_ARRAY to public
-
- 2006-03-06 17:49  alexpeshkoff 
-   M builds/posix/Makefile.in.client.fbudf
-   M builds/posix/Makefile.in.embed.fbudf
-fixed FBUDF build on posix
-
- 2006-03-06 13:51  alexpeshkoff 
-   M src/remote/server.cpp
-Use named constant for buffer size
-
- 2006-03-06 13:36  alexpeshkoff 
-   M src/remote/protocol.cpp
-no need to check '<0' for unsigned variables - thanks to Adriano
-
- 2006-03-06 11:03  alexpeshkoff 
-   M src/remote/protocol.cpp
-   M src/remote/server.cpp
-1. Fixed win32 classic build.
-2. Attempt to fix SF#1260310.
-
- 2006-03-06 10:53  alexpeshkoff 
-   M src/misc/upgrade/v2/security_database.txt
-added requirement to convert security database to ods11
-
- 2006-03-06 10:40  alexpeshkoff 
-   M src/jrd/os/posix/fbsyslog.cpp
-make syslog messages visible on terminal
-
- 2006-03-06 01:00  asfernandes 
-   M doc/README.user.embedded
-Document files required for fbembed.dll
-
- 2006-03-05 10:26  alexpeshkoff 
-   M src/remote/server.cpp
-fixed debugging code - thanks to Claudio
-
- 2006-03-04 18:24  asfernandes 
-   M src/jrd/req.h
-   M src/jrd/vio.cpp
-Fix SF field-test #1439268 - Sequence of commands crash FB server
-
- 2006-03-03 16:20  alexpeshkoff 
-   M src/remote/inet.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.cpp
-Fixed SF bug 1385092
-
- 2006-03-03 16:08  alexpeshkoff 
-   M src/jrd/why.cpp
-don't let printf() damage sockets in debug build
-
- 2006-03-03 16:06  alexpeshkoff 
-   M src/jrd/err.cpp
-slightly better diagnostic in log
-
- 2006-03-03 16:03  alexpeshkoff 
-   M src/common/classes/alloc.h
-let's try to make gcc4 happy
-
- 2006-03-03 10:56  kkuznetsov 
-   M builds/posix/prefix.solaris
-   M builds/posix/prefix.solaris-64gcc
-Removed profile gcc flag
-
- 2006-03-01 22:58  asfernandes 
-   M src/jrd/evl_string.h
-Fix AV in Knuth-Morris-Pratt algorithm implementation
-
- 2006-02-24 09:21  robocop 
-   M src/isql/isql.h
-   M src/isql/show.epp
-   M src/msgs/facilities.sql
-   M src/msgs/messages.sql
-Fix misleading error message reported by Michal Kubecek.
-
- 2006-02-24 01:33  asfernandes 
-   M src/jrd/unicode_util.cpp
-   M src/jrd/unicode_util.h
-Constify
-
- 2006-02-24 01:04  robocop 
-   M src/jrd/isc.h
-Fix compile-time error reported by Michal Kubecek.
-
- 2006-02-23 07:36  robocop 
-   M src/jrd/cvt.cpp
-Better play safe with int.
-
- 2006-02-23 07:30  robocop 
-   M src/jrd/cvt.cpp
-Try to put the correct pad character.
-
- 2006-02-23 07:22  robocop 
-   M src/jrd/nbak.h
-Misc.
-
- 2006-02-23 07:13  hvlad 
-   M doc/WhatsNew
-Misc
-
- 2006-02-23 06:52  robocop 
-   M src/jrd/btr.cpp
-   M src/jrd/dyn_proto.h
-   M src/jrd/filters.cpp
-   M src/jrd/idx.cpp
-   M src/jrd/met_proto.h
-   M src/jrd/nav.cpp
-   M src/jrd/nbak.h
-   M src/jrd/os/pio_proto.h
-   M src/jrd/os/posix/unix.cpp
-   M src/jrd/os/vms/map.cpp
-   M src/jrd/os/vms/vms.cpp
-   M src/jrd/os/vms/vmslock.cpp
-   M src/jrd/os/win32/winnt.cpp
-   M src/jrd/par.cpp
-   M src/jrd/sdw.h
-   M src/jrd/why.cpp
-   M src/remote/allr.cpp
-   M src/remote/inet.cpp
-   M src/remote/os/win32/wnet.cpp
-   M src/remote/remote.cpp
-More cleanup.
-
- 2006-02-23 05:22  robocop 
-   M doc/WhatsNew
-   M src/jrd/isc.cpp
-Misc.
-
- 2006-02-23 05:08  robocop 
-   M src/burp/burp.cpp
-   M src/burp/burp.h
-   M src/common/config/config_impl.h
-   M src/jrd/blb.cpp
-   M src/jrd/btr.cpp
-   M src/jrd/btr.h
-   M src/jrd/cch.cpp
-   M src/jrd/cch.h
-   M src/jrd/cch_proto.h
-   M src/jrd/cvt.cpp
-   M src/jrd/dbt.cpp
-   M src/jrd/dfw.epp
-   M src/jrd/dpm.epp
-   M src/jrd/entry.h
-   M src/jrd/exe.cpp
-   M src/jrd/exe.h
-   M src/jrd/ext.cpp
-   M src/jrd/ext.h
-   M src/jrd/fil.h
-   M src/jrd/filters.cpp
-   M src/jrd/fun.epp
-   M src/jrd/gds.cpp
-   M src/jrd/ibase.h
-   M src/jrd/ibsetjmp.h
-   M src/jrd/idx.cpp
-   M src/jrd/inf.cpp
-   M src/jrd/ini.epp
-   M src/jrd/inuse.cpp
-   M src/jrd/inuse_proto.h
-   M src/jrd/isc.cpp
-   M src/jrd/isc.h
-   M src/jrd/isc_proto.h
-   M src/jrd/isc_sync.cpp
-   M src/jrd/jrd.cpp
-   M src/jrd/jrd.h
-   M src/jrd/jrd_proto.h
-   M src/jrd/lck.cpp
-   M src/jrd/lck.h
-   M src/jrd/log.h
-   M src/jrd/met.epp
-   M src/jrd/mov.cpp
-   M src/jrd/nav.cpp
-   M src/jrd/os/posix/unix.cpp
-   M src/jrd/os/vms/extvms.cpp
-   M src/jrd/os/vms/map.cpp
-   M src/jrd/os/vms/rdbint.cpp
-   M src/jrd/os/vms/vms.cpp
-   M src/jrd/os/vms/vmsevent.cpp
-   M src/jrd/os/vms/vmslock.cpp
-   M src/jrd/os/win32/winnt.cpp
-   M src/jrd/par.cpp
-   M src/jrd/perf.cpp
-   M src/jrd/plugin_manager.h
-   M src/jrd/req.h
-   M src/jrd/rlck.cpp
-   M src/jrd/rse.cpp
-   M src/jrd/rse.h
-   M src/jrd/scl.h
-   M src/jrd/sdl.cpp
-   M src/jrd/sdl.h
-   M src/jrd/sdl_proto.h
-   M src/jrd/sdw.cpp
-   M src/jrd/sdw_proto.h
-   M src/jrd/shut.cpp
-   M src/jrd/smp_impl.h
-   M src/jrd/sort.cpp
-   M src/jrd/sort.h
-   M src/jrd/svc.cpp
-   M src/jrd/svc.h
-   M src/jrd/svc_proto.h
-   M src/jrd/sym.h
-   M src/jrd/thd.cpp
-   M src/jrd/thd.h
-   M src/jrd/tra.cpp
-   M src/jrd/tra.h
-   M src/jrd/utl.cpp
-   M src/jrd/validation.cpp
-   M src/jrd/vio.cpp
-   M src/jrd/why.cpp
-   M src/lock/driver.cpp
-   M src/misc/align.cpp
-   M src/remote/inet.cpp
-   M src/remote/inter_proto.h
-   M src/remote/interface.cpp
-   M src/remote/os/win32/ibconfig.cpp
-   M src/remote/os/win32/wnet.cpp
-   M src/remote/remote.h
-   M src/utilities/gsec/gsec.cpp
-   M src/utilities/gsec/gsec.h
-   M src/utilities/gstat/dba.epp
-   M src/utilities/gstat/ppg.cpp
-   M src/utilities/gstat/ppg_proto.h
-Mark unused data members, discover more code associated to conditional compilation, clean some places, replace custom loops by memcpy and memset when possible, etc.
-
- 2006-02-23 05:03  robocop 
-   M src/jrd/cmp.cpp
-We better do not have loop variables with the same name in nested loops.
-:-)
-
- 2006-02-22 15:25  hvlad 
-   M doc/WhatsNew
-Update WhatsNew
-
- 2006-02-22 14:55  hvlad 
-   M src/jrd/dfw.epp
-Fixed SF #1436066 : Adding index during DB activity causes GFIX errors
-
- 2006-02-22 13:55  dimitr 
-   M doc/WhatsNew
-An update.
-
- 2006-02-22 07:22  robocop 
-   D src/jrd/mem.cpp
-Remove obsolete file.
-
- 2006-02-22 07:21  robocop 
-   M builds/mac_os_x/CS/CS.pbproj/project.pbxproj
-This was the only project file referencing legacy mem.cpp.
-
- 2006-02-22 07:19  robocop 
-   M src/jrd/sha.cpp
-This file lacked indentation.
-
- 2006-02-22 07:11  dimitr 
-   M src/jrd/cmp.cpp
-Sorry, the unused code has been committed.
-
- 2006-02-22 05:30  dimitr 
-   M src/jrd/cmp.cpp
-Fixed imcomplete invariants tracking for subqueries.
-Views are still a problem, so more to follow.
-
- 2006-02-22 02:50  asfernandes 
-   M src/jrd/unicode_util.cpp
-Fixed SF field-test $1433583 - key size exceeds implementation restriction
-
- 2006-02-21 04:29  robocop 
-   M src/common/classes/fb_tls.h
-   M src/common/classes/tree.h
-The whole indentation was screwed in those files.
-
- 2006-02-20 13:20  kkuznetsov 
-   M src/jrd/sdl.cpp
-Quick fix compile error: inline function has prototype
-
- 2006-02-20 08:25  kkuznetsov 
-   M src/common/config/config_impl.h
-Fix Sun C++ compiler visibility error
-
- 2006-02-20 08:00  kkuznetsov 
-   M src/common/classes/fb_tls.h
-misc
-
- 2006-02-20 07:59  kkuznetsov 
-   M src/common/classes/fb_tls.h
-misc
-
- 2006-02-20 07:46  kkuznetsov 
-   M src/common/classes/tree.h
-Support Sun C++ compiller in Bee+tree though conditional compilation.
-
- 2006-02-20 07:45  kkuznetsov 
-   M builds/posix/prefix.solaris-64SCC
-Add defines to support Sun C++ compiller
-in FB Code.
-
- 2006-02-19 21:16  asfernandes 
-   M src/jrd/dfw.epp
-   M src/jrd/vio.cpp
-Don't allow to drop indices used in explicit plans inside SPs/triggers
-
- 2006-02-18 23:39  robocop 
-   M src/jrd/opt.cpp
-Misc.
-
- 2006-02-15 13:35  dimitr 
-   M src/dsql/pass1.cpp
-There's no need to transform NOT ANY to ALL, as NOT ANY effectively uses indices.
-
- 2006-02-15 13:34  dimitr 
-   M src/jrd/cmp.cpp
-   M src/jrd/rse.cpp
-More clever solution for bug #459059.
-Deoptimization of NOT ANY is no longer necessary.
-
- 2006-02-10 19:40  dimitr 
-   M builds/win32/preprocess.bat
-   M builds/win32/preprocess2.bat
-Committed changes for the win32 build process.
-
- 2006-02-10 03:35  robocop 
-   M src/jrd/rse.cpp
-This is why we put {} around if/else always: to avoid errors like this one, where indentation is not what the compiler follows.
-
- 2006-02-10 03:28  robocop 
-   M src/include/memory_routines.h
-   M src/jrd/blb.cpp
-   M src/jrd/cmp.cpp
-   M src/jrd/dfw.epp
-   M src/jrd/exe.cpp
-   M src/jrd/ext.cpp
-   M src/jrd/ini.epp
-   M src/jrd/jrd.cpp
-   M src/jrd/jrd.h
-   M src/jrd/met.epp
-   M src/jrd/opt.cpp
-   M src/jrd/par.cpp
-   M src/jrd/rse.cpp
-   M src/jrd/tra.cpp
-   M src/jrd/validation.cpp
-Misc.
-
- 2006-02-09 15:50  kkuznetsov 
-   M src/jrd/rse.cpp
-Fix...
 
[truncated message content] | 
| 
      
      
      From: <ma...@us...> - 2014-12-08 16:35:26
       | 
| Revision: 60347
          http://sourceforge.net/p/firebird/code/60347
Author:   mapopa
Date:     2014-12-08 16:35:22 +0000 (Mon, 08 Dec 2014)
Log Message:
-----------
Remove deprecated GCC flag -mno-cygwin .
Modified Paths:
--------------
    firebird/trunk/builds/posix/prefix.mingw
    firebird/trunk/configure.ac
    firebird/trunk/extern/libtommath/makefile.cygwin_dll
Modified: firebird/trunk/builds/posix/prefix.mingw
===================================================================
--- firebird/trunk/builds/posix/prefix.mingw	2014-12-08 13:12:16 UTC (rev 60346)
+++ firebird/trunk/builds/posix/prefix.mingw	2014-12-08 16:35:22 UTC (rev 60347)
@@ -20,8 +20,8 @@
 # 
 
 # -Wno-unused-variable is used due to unused gpre generated variables
-PROD_FLAGS=-O2  -march=i586 -DMINGW -mno-cygwin -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor
-DEV_FLAGS=-ggdb -march=i586 -DMINGW -mno-cygwin -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor
+PROD_FLAGS=-O2  -march=i586 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor
+DEV_FLAGS=-ggdb -march=i586 -DMINGW -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -Wno-non-virtual-dtor
 
 PLATFORM_PATH=os/win32
 
Modified: firebird/trunk/configure.ac
===================================================================
--- firebird/trunk/configure.ac	2014-12-08 13:12:16 UTC (rev 60346)
+++ firebird/trunk/configure.ac	2014-12-08 16:35:22 UTC (rev 60347)
@@ -1037,7 +1037,7 @@
 #define FB_PIPE_NAME "interbas"])
     AC_DEFINE_UNQUOTED(FB_PIPE_NAME,"$FB_PIPE_NAME")
     AC_SUBST(FB_PIPE_NAME)
-    XE_PREPEND( -mno-cygwin -mthreads -lmpr -lversion -lws2_32 -lole32,LIBS)
+    XE_PREPEND( -mthreads -lmpr -lversion -lws2_32 -lole32,LIBS)
     ;;
 
   *)
Modified: firebird/trunk/extern/libtommath/makefile.cygwin_dll
===================================================================
--- firebird/trunk/extern/libtommath/makefile.cygwin_dll	2014-12-08 13:12:16 UTC (rev 60346)
+++ firebird/trunk/extern/libtommath/makefile.cygwin_dll	2014-12-08 16:35:22 UTC (rev 60347)
@@ -5,7 +5,7 @@
 #"-Wl,--enable-auto-import" to your client build to avoid the auto-import warnings
 #
 #Tom St Denis
-CFLAGS  +=  -I./ -Wall -W -Wshadow -O3 -funroll-loops -mno-cygwin
+CFLAGS  +=  -I./ -Wall -W -Wshadow -O3 -funroll-loops
 
 #x86 optimizations [should be valid for any GCC install though]
 CFLAGS  += -fomit-frame-pointer 
@@ -42,7 +42,7 @@
 
 # make a Windows DLL via Cygwin
 windll:  $(OBJECTS)
-	gcc -mno-cygwin -mdll -o libtommath.dll -Wl,--out-implib=libtommath.dll.a -Wl,--export-all-symbols *.o
+	gcc -mdll -o libtommath.dll -Wl,--out-implib=libtommath.dll.a -Wl,--export-all-symbols *.o
 	ranlib libtommath.dll.a
 
 # build the test program using the windows DLL
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2014-12-09 10:59:43
       | 
| Revision: 60350
          http://sourceforge.net/p/firebird/code/60350
Author:   firebirds
Date:     2014-12-09 10:59:38 +0000 (Tue, 09 Dec 2014)
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	2014-12-09 07:10:01 UTC (rev 60349)
+++ firebird/trunk/ChangeLog	2014-12-09 10:59:38 UTC (rev 60350)
@@ -1,3 +1,17 @@
+ 2014-12-08 16:58  mapopa 
+   M builds/posix/prefix.mingw
+Remove hardcoded march to allow 64-bit builds
+
+ 2014-12-08 16:35  mapopa 
+   M builds/posix/prefix.mingw
+   M configure.ac
+   M extern/libtommath/makefile.cygwin_dll
+Remove deprecated GCC flag -mno-cygwin .
+
+ 2014-12-08 13:12  dimitr 
+   M src/jrd/opt.cpp
+Fixed CORE-4634: ORDER BY via an index + WHERE clause: error "no current record for fetch operation".
+
  2014-12-04 18:24  dimitr 
    M src/remote/client/interface.cpp
 Fixed missing initialization of the output variable in the case of FB_EOF.
@@ -75944,6 +75958,55086 @@
 Fix compile error on Solaris
 
  2006-04-17 15:52  alexpeshkoff 
-   M /firebird/trun
-o.h
+   M src/remote/inet.cpp
+Don't raise SIGPIPE when other side terminated connection
+
+ 2006-04-17 10:40  alexpeshkoff 
+   M src/remote/server.cpp
+removed unneeded h-file
+
+ 2006-04-16 22:11  asfernandes 
+   M builds/install/arch-specific/linux/classic/postinstall.sh.in
+   M builds/posix/Makefile.in.client.util
+   M src/utilities/guard/guard.cpp
+   M src/utilities/ibmgr/ibmgrswi.h
+Misc
+
+ 2006-04-16 22:01  asfernandes 
+   M src/common/classes/semaphore.h
+Correction for posix build
+
+ 2006-04-16 19:54  kkuznetsov 
+   M src/common/classes/semaphore.h
+Solaris error correction
+
+ 2006-04-16 18:49  asfernandes 
+   M src/jrd/evl.cpp
+Misc
+
+ 2006-04-16 18:45  asfernandes 
+   M src/dsql/make.cpp
+   M src/jrd/evl.cpp
+   M src/jrd/exe.h
+Let LOWER/UPPER (blob) work - returning a blob
+
+ 2006-04-16 17:09  asfernandes 
+   M src/remote/server.cpp
+Use THREAD_SLEEP as sleep don't exist in WIN32
+
+ 2006-04-16 17:03  alexpeshkoff 
+   M src/jrd/execute_statement.cpp
+Fixed bug in VC7.1 builds, reported by Ivan Prenosil
+
+ 2006-04-16 16:13  alexpeshkoff 
+   M src/common/classes/ClumpletReader.cpp
+ported fixes from release
+
+ 2006-04-16 15:27  asfernandes 
+   M src/utilities/guard/guard.cpp
+Correction
+
+ 2006-04-16 12:58  alexpeshkoff 
+   M builds/install/arch-specific/linux/classic/postinstall.sh.in
+   M builds/install/arch-specific/linux/misc/firebird.init.d.debian.in
+   M builds/install/arch-specific/linux/misc/firebird.init.d.generic.in
+   M builds/install/arch-specific/linux/misc/firebird.init.d.gentoo.in
+   M builds/install/arch-specific/linux/misc/firebird.init.d.mandrake.in
+   M builds/install/arch-specific/linux/misc/firebird.init.d.suse.in
+   M builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
+   M builds/install/arch-specific/linux/misc/superLinux.sh.in
+   M builds/install/arch-specific/linux/super/postuninstall.sh.in
+   M builds/install/misc/classicLibrary.sh.in
+   M builds/install/misc/posixLibrary.sh.in
+   M builds/install/misc/superLibrary.sh.in
+   M builds/posix/Makefile.in.client.util
+   M src/burp/restore.epp
+   M src/utilities/guard/guard.cpp
+   M src/utilities/ibmgr/ibmgr.cpp
+   M src/utilities/ibmgr/ibmgr.h
+   M src/utilities/ibmgr/ibmgrswi.h
+   M src/utilities/ibmgr/srvrmgr.cpp
+ported fixes from 2.0 release
+
+ 2006-04-16 12:52  alexpeshkoff 
+   M src/jrd/jrd.cpp
+fixed debug build
+
+ 2006-04-14 18:16  asfernandes 
+   A builds/win32/create_msgs.bat
+   M builds/win32/make_boot2.bat
+Add create_msgs.bat to be able to rebuild messages files without running make_boot2.bat
+
+ 2006-04-14 16:46  alexpeshkoff 
+   M src/remote/inet_server.cpp
+   M src/remote/serve_proto.h
+   M src/remote/server.cpp
+shutdown working threads before server shutdown
+
+ 2006-04-13 03:59  robocop 
+   M src/common/classes/semaphore.h
+Misc.
+
+ 2006-04-13 03:04  asfernandes 
+   M builds/install/misc/fbintl.conf
+   M builds/win32/msvc6/intl.dsp
+   M builds/win32/msvc7/intl.vcproj
+   A src/intl/collations/xx88592plk.h
+   M src/intl/lc_iso8859_2.cpp
+   M src/intl/ld.cpp
+   M src/jrd/intlnames.h
+Polish collation ISO_PLK for ISO8859_2 charset - contributed by Jaroslaw Glowacki
+
+ 2006-04-12 11:54  kkuznetsov 
+   M src/common/classes/semaphore.h
+Correct messages from Semaphore exceptions
+
+ 2006-04-12 09:25  kkuznetsov 
+   M src/common/classes/semaphore.h
+Rewiev semaphore on Solaris platform:
+add some fixes and loop on EINTR
+
+ 2006-04-12 01:57  asfernandes 
+   M src/common/classes/fb_string.cpp
+Misc
+
+ 2006-04-11 08:21  robocop 
+   M src/isql/show.epp
+Correction.
+
+ 2006-04-11 07:30  robocop 
+   M src/isql/show.epp
+Adriano reported a problem with SHOW GENERATORS skipping the required object because an old db had NULL in the sysflag column. Using his proposed fix, committed only to the HEAD.
+
+ 2006-04-11 07:18  robocop 
+   M src/remote/inet.cpp
+   M src/remote/os/win32/wnet.cpp
+   M src/remote/xnet.cpp
+Delete dead code after checking with Dmitry.
+The B.O. are still there when copying the result of GetCommandLine().
+
+ 2006-04-11 07:16  robocop 
+   M src/include/old_fb_blk.h
+   M src/remote/allr.cpp
+Solve a possible truncation problem due to USHORT<->ULONG issues.
+Tweak for embedded so it doesn't crash when handling an error.
+
+ 2006-04-11 07:14  robocop 
+   M src/dsql/hsh.cpp
+Misc.
+
+ 2006-04-11 06:46  dimitr 
+   M src/common/classes/fb_string.cpp
+   M src/common/classes/tree.h
+Sync with BV branch. Committed on behalf of George Sergeev.
+
+ 2006-04-09 15:46  alexpeshkoff 
+   M src/jrd/isc_sync.cpp
+make CS lock manager semaphores have correct access rights
+
+ 2006-04-09 12:47  alexpeshkoff 
+   M src/dsql/hsh.cpp
+fixed AV during massive addition of relations to DSQL hash
+
+ 2006-04-09 10:59  alexpeshkoff 
+   M src/jrd/nbak.cpp
+fixed access rights to delta file
+
+ 2006-04-09 06:53  robocop 
+   M src/remote/server.cpp
+Handle zero-length strings even if we have our buffer full.
+
+ 2006-04-09 06:50  robocop 
+   M src/remote/merge.cpp
+We can't handle more than 255 bytes for some items when merging information. Let's be consistent between the length indicator and the bytes we put in the buffer.
+
+ 2006-04-09 06:46  robocop 
+   M src/remote/inet.cpp
+   M src/remote/protocol.cpp
+   M src/remote/remote.cpp
+   M src/remote/xdr.cpp
+Style.
+
+ 2006-04-09 00:53  robocop 
+   M src/remote/server.cpp
+Refactor this damn unreadable code and take into account the problem Adriano found with zero length file names in my previous commit.
+
+ 2006-04-08 03:29  robocop 
+   M src/lock/print.cpp
+Misc.
+
+ 2006-04-08 03:28  robocop 
+   M src/msgs/messages.sql
+Correction.
+
+ 2006-04-08 03:09  asfernandes 
+   M src/dsql/gen.cpp
+Fix problem which occur when select a field with NONE charset when using another connection charset - second part of problem reported by Michal Kubecek
+
+ 2006-04-08 00:03  robocop 
+   M src/isql/isql.epp
+   M src/msgs/facilities.sql
+   M src/msgs/history.sql
+   M src/msgs/messages.sql
+Adjust isql to the full words stated in the IB5 docs for the command line options.
+
+ 2006-04-07 09:16  dimitr 
+   M src/dsql/array.epp
+   M src/dsql/blob.epp
+More threading related fixes. As a side effect, it disables a primitive client-side caching of a few predefined queries, but it doesn't show any performance difference.
+
+ 2006-04-07 04:51  robocop 
+   M src/remote/server.cpp
+I think I'm fixing a potential buffer overrun here.
+
+ 2006-04-07 02:58  asfernandes 
+   M builds/posix/Makefile.in.client.fbudf
+   M src/common/classes/class_test.cpp
+   M src/common/classes/sparse_bitmap.h
+   M src/jrd/rse.cpp
+Misc
+
+ 2006-04-07 02:55  asfernandes 
+   M src/remote/server.cpp
+Correction
+
+ 2006-04-06 14:43  alexpeshkoff 
+   M src/isql/isql.epp
+fixed regression in switch
+
+ 2006-04-06 13:34  alexpeshkoff 
+   M src/remote/server.cpp
+validate port_context before use to avoid AV in remote
+
+ 2006-04-06 13:30  alexpeshkoff 
+   M src/jrd/svc.cpp
+make service output look the same for both CS and SS
+
+ 2006-04-06 08:18  robocop 
+   M src/common/classes/ClumpletReader.cpp
+   M src/common/classes/ClumpletWriter.cpp
+   M src/common/classes/alloc.cpp
+   M src/common/classes/class_perf.cpp
+   M src/common/classes/class_test.cpp
+   M src/common/classes/fb_string.cpp
+   M src/common/classes/fb_string.h
+   M src/common/classes/semaphore.h
+   M src/common/classes/sparse_bitmap.h
+   M src/common/classes/tree.h
+   M src/common/fb_exception.cpp
+   M src/config/Lex.cpp
+   M src/config/Lex.h
+   M src/intl/lc_narrow.cpp
+   M src/intl/utils/dtest2.c
+   M src/intl/utils/mapgen4.c
+   M src/isql/isql.epp
+   M src/jrd/blb.cpp
+   M src/jrd/btr.cpp
+   M src/jrd/cch.cpp
+   M src/jrd/cmp.cpp
+   M src/jrd/dfw.epp
+   M src/jrd/evl.cpp
+   M src/jrd/exe.cpp
+   M src/jrd/functions.cpp
+   M src/jrd/met.epp
+   M src/jrd/nbak.cpp
+   M src/jrd/opt.cpp
+   M src/jrd/rse.cpp
+   M src/jrd/tra.cpp
+   M src/jrd/validation.cpp
+   M src/jrd/vio.cpp
+   M src/misc/makeHeader.cpp
+   M src/remote/server.cpp
+   M src/utilities/gsec/gsec.cpp
+   M src/utilities/rebuild/rebuild.cpp
+   M src/vulcan/RefObject.h
+Style.
+
+ 2006-04-06 06:32  robocop 
+   M src/jrd/gds.cpp
+   M src/jrd/gds_proto.h
+   M src/jrd/ibase.h
+Stop complainers related to the argument types of fb_interpret.
+
+ 2006-04-06 04:19  aafemt 
+   M builds/posix/Makefile.in.client.fbudf
+Since timestamp routines are compiled-in directly, no need to link against fbclient.
+
+ 2006-04-05 16:34  asfernandes 
+   M src/jrd/jrd.cpp
+   M src/jrd/met.epp
+   M src/jrd/met_proto.h
+Allow collation IDs greater than 127
+
+ 2006-04-05 16:24  asfernandes 
+   M src/burp/backup.epp
+Remove obsolete comment
+
+ 2006-04-05 07:08  dimitr 
+   M src/remote/inet.cpp
+Nagle algorithm is now disabled by default, so there's no need to print an appropriate message in the server log.
+
+ 2006-04-05 06:25  kkuznetsov 
+   M src/common/classes/alloc.cpp
+Add check for result of mmap() on Solaris platforms
+
+ 2006-04-05 05:04  dimitr 
+   M src/remote/inet.cpp
+1) Set NoNagle depending on config only.
+2) Set socket options for Win32 CS.
+
+ 2006-04-05 04:38  dimitr 
+   M src/dsql/make.cpp
+Fixed the regression caused by my changes re. Dialect 1.
+
+ 2006-04-05 04:36  dimitr 
+   M src/jrd/cch.cpp
+gds_alloc() no longer throws exceptions. Let's handle it properly.
+
+ 2006-04-04 22:48  robocop 
+   M src/alice/alice.cpp
+   M src/alice/alice.h
+   M src/alice/tdr.cpp
+Misc.
+
+ 2006-03-30 05:59  kkuznetsov 
+   A extern/SfIO/read.me
+Add readme
+
+ 2006-03-29 17:47  dimitr 
+   M src/jrd/cmp.cpp
+   M src/jrd/exe.h
+   M src/misc/blrtable.cpp
+Fixed yet another bug in cursors. Will this ever end? :-)
+
+ 2006-03-29 15:26  dimitr 
+   M src/jrd/btr.cpp
+Fixed the bug that caused unexpected bugcheck(205) in big databases.
+
+ 2006-03-29 15:20  asfernandes 
+   M builds/install/arch-specific/win32/pt/instalacao_leia-me.txt
+Misc
+
+ 2006-03-29 13:44  paul_reeves 
+   M builds/install/arch-specific/win32/BuildExecutableInstall.bat
+   M builds/install/arch-specific/win32/FirebirdInstall_20.iss
+   M builds/install/arch-specific/win32/Readme.txt
+   M builds/install/arch-specific/win32/installation_readme.txt
+   M builds/win32/make_examples.bat
+Minor tweaks to the Win32 build/install stuff. Updated readme and install_readme.
+
+ 2006-03-29 13:43  paul_reeves 
+   M builds/install/arch-specific/win32/pt/custom_messages_pt.inc
+   M builds/install/arch-specific/win32/pt/instalacao_leia-me.txt
+   M builds/install/arch-specific/win32/pt/leia-me.txt
+Win32 installer - latest portuguese translations
+
+ 2006-03-29 13:41  paul_reeves 
+   A builds/install/arch-specific/win32/it
+   A builds/install/arch-specific/win32/it/custom_messages_it.inc
+   A builds/install/arch-specific/win32/it/leggimi.txt
+   A builds/install/arch-specific/win32/it/leggimi_installazione.txt
+Add italian translations of install strings for Windows installs
+
+ 2006-03-29 09:41  hvlad 
+   M src/dsql/pass1.cpp
+Make input parameters of EXECUTE BLOCK statement nullable
+
+ 2006-03-29 09:39  kkuznetsov 
+   A extern/SfIO
+   A extern/SfIO/include
+   A extern/SfIO/include/stdio.h
+Add modifyed SFIO include file to public CVS
+
+ 2006-03-28 10:16  dimitr 
+   M src/jrd/dyn_mod.epp
+Misc.
+
+ 2006-03-28 09:55  dimitr 
+   M src/jrd/evl.cpp
+Protected from assignments to not existing fields.
+
+ 2006-03-28 09:54  dimitr 
+   M lang_helpers/gds_codes.ftn
+   M lang_helpers/gds_codes.pas
+   M src/include/gen/codetext.h
+   M src/include/gen/iberror.h
+   M src/include/gen/msgs.h
+   M src/include/gen/rdb_codes.h
+   M src/include/gen/sql_code.h
+   M src/msgs/facilities.sql
+   M src/msgs/messages.sql
+   M src/msgs/system_errors.sql
+Added new error message.
+
+ 2006-03-28 09:36  dimitr 
+   M src/jrd/exe.h
+Fixed a minor regression in the permission checking logic.
+Let's first check the relation privileges and only then the column ones.
+
+ 2006-03-28 04:31  mkubecek 
+   M src/isql/isql.epp
+   M src/isql/isql.h
+   M src/msgs/facilities.sql
+   M src/msgs/history.sql
+   M src/msgs/messages.sql
+Fix of isql command line parser: check for repeated switches or database name.
+
+ 2006-03-28 04:04  robocop 
+   M doc/README.garbage_collector
+Misc.
+
+ 2006-03-26 20:51  hvlad 
+   A doc/README.garbage_collector
+Documentation for garbage collector
+
+ 2006-03-26 05:58  robocop 
+   M src/isql/isql.epp
+- Misc.
+- Style
+- Avoiding one indentation level.
+
+ 2006-03-26 04:58  robocop 
+   M src/msgs/history.sql
+Misc.
+
+ 2006-03-26 03:34  asfernandes 
+   M src/isql/isql.epp
+Correction
+
+ 2006-03-25 23:41  mkubecek 
+   M src/isql/isql.epp
+   M src/isql/isql.h
+   M src/msgs/facilities.sql
+   M src/msgs/messages.sql
+Fix of isql command line parser: allow only abbreviations of standard switch names, check integer arguments to be integers.
+
+ 2006-03-25 07:08  robocop 
+   M configure.in
+   M src/common/utils_proto.h
+   M src/include/gen/autoconfig_msvc.h
+   M src/jrd/common.h
+   M src/jrd/svc.cpp
+   M src/utilities/gsec/security.epp
+Only strcmp and strncmp have common names across all plartforms. Cater for differences in strcasecmp/stricmp and strncasecmp/strnicmp.
+
+ 2006-03-25 07:01  robocop 
+   M src/isql/show.epp
+   M src/jrd/thd.cpp
+Misc.
+
+ 2006-03-21 01:55  asfernandes 
+   M builds/posix/Makefile.in.client.qli
+Misc
+
+ 2006-03-20 16:29  alexpeshkoff 
+   M src/remote/inet.cpp
+fixed server hang in case of broken client
+
+ 2006-03-20 14:17  alexpeshkoff 
    M src/misc/writeBuildNum.sh
+fixed bugs building release candidate 1
+
+ 2006-03-19 15:37  alexpeshkoff 
+   M configure.in
+Let FreeBSD use editline by default
+
+ 2006-03-19 15:32  alexpeshkoff 
+   M builds/posix/Makefile.in.client.qli
+   M builds/posix/Makefile.in.embed.qli
+removed absolutely unneeded setuid - thanks to Sergey Skvortsov
+
+ 2006-03-19 13:56  alexpeshkoff 
+   M configure.in
+fixing build on FreeBSD/amd64
+
+ 2006-03-18 06:22  robocop 
+   M src/jrd/blb.cpp
+Totally misc.
+
+ 2006-03-18 01:57  asfernandes 
+   M src/jrd/blb.cpp
+Misc
+
+ 2006-03-18 01:47  asfernandes 
+   M doc/WhatsNew
+Misc
+
+ 2006-03-17 16:08  dimitr 
+   M src/remote/os/win32/window.cpp
+Let's not duplicate things.
+
+ 2006-03-17 15:18  dimitr 
+   M src/misc/writeBuildNum.sh
+Misc.
+
+ 2006-03-17 14:25  dimitr 
+   M src/misc/writeBuildNum.sh
+Updated the version number.
+
+ 2006-03-17 13:36  alexpeshkoff 
+   M doc/WhatsNew
+Misc
+
+ 2006-03-17 10:41  robocop 
+   M doc/WhatsNew
+Document isql's command line arguments explanation.
+
+ 2006-03-17 09:39  hvlad 
+   M doc/WhatsNew
+Update WhatsNew
+
+ 2006-03-17 09:28  hvlad 
+   M src/jrd/blb.cpp
+   M src/jrd/blb.h
+Fixed SF #1446987
+
+ 2006-03-17 08:15  dimitr 
+   M doc/WhatsNew
+Updated docs.
+
+ 2006-03-17 07:56  hvlad 
+   M src/jrd/vio.cpp
+Fixed Beta2 bug reported in Russian newsgroup : AV when dropping FK
+with inactive index. Style
+
+ 2006-03-16 13:45  alexpeshkoff 
+   M src/jrd/utl.cpp
+misc
+
+ 2006-03-16 09:07  robocop 
+   M src/isql/isql.epp
+   M src/isql/isql.h
+   M src/msgs/facilities.sql
+   M src/msgs/history.sql
+   M src/msgs/messages.sql
+Give isql a more useful help when receiving incorrect command line arguments, in sync with other utilities. Courtesy of Michal Kubecek.
+Example: isql -?
+
+ 2006-03-16 08:55  robocop 
+   M src/jrd/sch.cpp
+1.- Style.
+2.- Don't overflow in case of long error message.
+
+ 2006-03-16 08:53  robocop 
+   M builds/install/misc/firebird.conf
+Misc.
+
+ 2006-03-16 02:26  asfernandes 
+   M src/jrd/pag.cpp
+Misc
+
+ 2006-03-15 17:34  alexpeshkoff 
+   M src/jrd/sch.cpp
+   M src/jrd/thd.cpp
+   M src/jrd/thd.h
+fixed bugcheck in case of OS error in mutex
+
+ 2006-03-15 17:32  alexpeshkoff 
+   M src/jrd/common.h
+   M src/jrd/inf_pub.h
+   M src/jrd/pag.cpp
+   M src/jrd/utl.cpp
+applied patch of Sergey Skvortsov - port for FreeBSD AMD64
+
+ 2006-03-15 17:29  alexpeshkoff 
+   M src/common/fb_exception.cpp
+   M src/include/fb_exception.h
+better support for OS error code in system_call_failed
+
+ 2006-03-15 17:27  alexpeshkoff 
+   M src/alice/alice.h
+   M src/burp/burp.cpp
+   M src/burp/burp.h
+return error in case of unexpected status_exception
+
+ 2006-03-15 17:25  alexpeshkoff 
+   M src/jrd/vio.cpp
+   M src/remote/server.cpp
+we should not loose status vector held in status_exception
+
+ 2006-03-15 17:23  alexpeshkoff 
+   M builds/install/misc/firebird.conf
+   M src/common/config/config.cpp
+   M src/misc/upgrade/v2/security_database.txt
+change default value of LegacyHash
+
+ 2006-03-15 14:03  paul_reeves 
+   M src/jrd/isc_version.h
+Use different release number in ISC_FILE_VER_XXXX to distinguish between Fb 1.5 and Fb 2.0. Bump the build number at the same time.
+
+ 2006-03-15 04:22  robocop 
+   M src/remote/os/win32/wnet.cpp
+Commit Alex' fix for a buffer overrun.
+
+ 2006-03-15 04:21  robocop 
+   M src/burp/restore.epp
+Get rid of unused handle.
+
+ 2006-03-14 10:57  arnobrinkman 
+   M src/dsql/pass1.cpp
+Fix node compare function for derived fields.
+Fixes field test-item #1449377.
+
+ 2006-03-13 14:39  hvlad 
+   M src/burp/restore.epp
+Update statistics for system indices after restore
+
+ 2006-03-13 14:32  hvlad 
+   M src/jrd/sort.cpp
+Fix SF #1434147 : Bugs with COUNT (DISTINCT XXX) when XXXX is a high integer
+
+ 2006-03-10 17:46  alexpeshkoff 
+   M src/jrd/cmp.cpp
+   M src/jrd/exe.cpp
+   M src/jrd/exe.h
+   M src/jrd/req.h
+fixed memory leak - SF#1422471
+
+ 2006-03-10 08:23  robocop 
+   M src/jrd/alt.cpp
+   M src/jrd/alt_proto.h
+   M src/jrd/dfw.epp
+   M src/jrd/ibase.h
+   M src/jrd/os/vms/vmsevent.cpp
+   M src/jrd/utl.cpp
+   M src/jrd/utl_proto.h
+   M src/jrd/why.cpp
+   M src/jrd/why_proto.h
+   M src/remote/server.cpp
+Commit correct signature for events-related calls.
+
+ 2006-03-10 02:05  asfernandes 
+   M builds/posix/Makefile.in.libfbembed
+Misc
+
+ 2006-03-10 00:26  asfernandes 
+   M src/jrd/req.h
+   M src/jrd/vio.cpp
+Fix SF Field-test #1439268 - Sequence of commands crash FB server - second part - thanks to Claudio
+
+ 2006-03-10 00:08  asfernandes 
+   M src/dsql/pass1.cpp
+Fix incorrect malformed string error, reported by Richard Wesley
+
+ 2006-03-09 17:52  dimitr 
+   M src/remote/xnet.cpp
+Fixed an exception during events shutdown, reported in fb-devel.
+
+ 2006-03-09 15:24  kkuznetsov 
+   M builds/install/arch-specific/solx86gcc/CS/prototype.in
+Update solaris packaging
+
+ 2006-03-09 13:26  kkuznetsov 
+   M configure.in
+Fix packaging on SOLARIS sparc port
+
+ 2006-03-09 10:27  alexpeshkoff 
+   M src/utilities/gsec/call_service.cpp
+   M src/utilities/gsec/gsec.cpp
+   M src/utilities/gsec/gsec.h
+always fill internal_user_data with 0's on creation
+
+ 2006-03-09 09:42  kkuznetsov 
+   M src/jrd/common.h
+Set ODS aligment to 8 on Solaris sparc 32 bits port to avoid a lot of aligment problems.
+
+ 2006-03-09 09:34  kkuznetsov 
+   M builds/posix/Makefile.in.libfbembed
+   M builds/posix/prefix.solaris
+Minor cleanup
+
+ 2006-03-09 09:23  kkuznetsov 
+   M builds/posix/prefix.solaris
+Fix Solaris sparc 32 bit gcc port
+
+ 2006-03-08 03:12  robocop 
+   M src/include/gen/msgs.h
+   M src/msgs/facilities.sql
+   M src/msgs/history.sql
+Sync after Dmitry's changes.
+
+ 2006-03-08 03:10  robocop 
+   M src/jrd/gds.cpp
+   M src/jrd/gds_proto.h
+Misc.
+
+ 2006-03-08 02:06  asfernandes 
+   M builds/posix/Makefile.in.libfbembed
+Use tab instead of spaces
+
+ 2006-03-07 17:52  dimitr 
+   M src/dsql/gen.cpp
+   M src/jrd/cmp.cpp
+   M src/jrd/exe.h
+   M src/jrd/par.cpp
+Fixed yet another bug in explicit cursors.
+Unfortunately, BLR compatibility is not provided, so users have to recompile their SPs/triggers.
+
+ 2006-03-07 14:43  dimitr 
+   M src/jrd/Optimizer.cpp
+More precise calculation of index cardinalities.
+
+ 2006-03-07 14:42  dimitr 
+   M src/dsql/pass1.cpp
+Fixed bug in RETURNING INTO code.
+
+ 2006-03-07 14:39  dimitr 
+   M src/msgs/messages.sql
+Fixed the error message.
+
+ 2006-03-07 13:01  kkuznetsov 
+   M builds/posix/Makefile.in.libfbembed
+Temporally comment out my previous commit
+
+ 2006-03-07 11:21  kkuznetsov 
+   M builds/posix/Makefile.in.libfbembed
+Fix make process on Solaris OSes
+
+ 2006-03-07 10:20  dimitr 
+   M src/dsql/gen.cpp
+Added a context overflow check to DSQL as well.
+Based on a bugreport by Volker Rehn.
+
+ 2006-03-07 09:23  dimitr 
+   M src/jrd/why.cpp
+Fixed SF #1435997.
+
+ 2006-03-07 05:44  robocop 
+   M src/jrd/validation.cpp
+   M src/remote/inet.cpp
+   M src/remote/interface.cpp
+Style.
+
+ 2006-03-07 03:12  asfernandes 
+   M src/remote/server.cpp
+Formatting
+
+ 2006-03-07 03:11  asfernandes 
+   M src/include/fb_types.h
+   M src/include/types_pub.h
+Move ISC_STATUS_LENGTH and ISC_STATUS_ARRAY to public
+
+ 2006-03-06 17:49  alexpeshkoff 
+   M builds/posix/Makefile.in.client.fbudf
+   M builds/posix/Makefile.in.embed.fbudf
+fixed FBUDF build on posix
+
+ 2006-03-06 13:51  alexpeshkoff 
+   M src/remote/server.cpp
+Use named constant for buffer size
+
+ 2006-03-06 13:36  alexpeshkoff 
+   M src/remote/protocol.cpp
+no need to check '<0' for unsigned variables - thanks to Adriano
+
+ 2006-03-06 11:03  alexpeshkoff 
+   M src/remote/protocol.cpp
+   M src/remote/server.cpp
+1. Fixed win32 classic build.
+2. Attempt to fix SF#1260310.
+
+ 2006-03-06 10:53  alexpeshkoff 
+   M src/misc/upgrade/v2/security_database.txt
+added requirement to convert security database to ods11
+
+ 2006-03-06 10:40  alexpeshkoff 
+   M src/jrd/os/posix/fbsyslog.cpp
+make syslog messages visible on terminal
+
+ 2006-03-06 01:00  asfernandes 
+   M doc/README.user.embedded
+Document files required for fbembed.dll
+
+ 2006-03-05 10:26  alexpeshkoff 
+   M src/remote/server.cpp
+fixed debugging code - thanks to Claudio
+
+ 2006-03-04 18:24  asfernandes 
+   M src/jrd/req.h
+   M src/jrd/vio.cpp
+Fix SF field-test #1439268 - Sequence of commands crash FB server
+
+ 2006-03-03 16:20  alexpeshkoff 
+   M src/remote/inet.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.cpp
+Fixed SF bug 1385092
+
+ 2006-03-03 16:08  alexpeshkoff 
+   M src/jrd/why.cpp
+don't let printf() damage sockets in debug build
+
+ 2006-03-03 16:06  alexpeshkoff 
+   M src/jrd/err.cpp
+slightly better diagnostic in log
+
+ 2006-03-03 16:03  alexpeshkoff 
+   M src/common/classes/alloc.h
+let's try to make gcc4 happy
+
+ 2006-03-03 10:56  kkuznetsov 
+   M builds/posix/prefix.solaris
+   M builds/posix/prefix.solaris-64gcc
+Removed profile gcc flag
+
+ 2006-03-01 22:58  asfernandes 
+   M src/jrd/evl_string.h
+Fix AV in Knuth-Morris-Pratt algorithm implementation
+
+ 2006-02-24 09:21  robocop 
+   M src/isql/isql.h
+   M src/isql/show.epp
+   M src/msgs/facilities.sql
+   M src/msgs/messages.sql
+Fix misleading error message reported by Michal Kubecek.
+
+ 2006-02-24 01:33  asfernandes 
+   M src/jrd/unicode_util.cpp
+   M src/jrd/unicode_util.h
+Constify
+
+ 2006-02-24 01:04  robocop 
+   M src/jrd/isc.h
+Fix compile-time error reported by Michal Kubecek.
+
+ 2006-02-23 07:36  robocop 
+   M src/jrd/cvt.cpp
+Better play safe with int.
+
+ 2006-02-23 07:30  robocop 
+   M src/jrd/cvt.cpp
+Try to put the correct pad character.
+
+ 2006-02-23 07:22  robocop 
+   M src/jrd/nbak.h
+Misc.
+
+ 2006-02-23 07:13  hvlad 
+   M doc/WhatsNew
+Misc
+
+ 2006-02-23 06:52  robocop 
+   M src/jrd/btr.cpp
+   M src/jrd/dyn_proto.h
+   M src/jrd/filters.cpp
+   M src/jrd/idx.cpp
+   M src/jrd/met_proto.h
+   M src/jrd/nav.cpp
+   M src/jrd/nbak.h
+   M src/jrd/os/pio_proto.h
+   M src/jrd/os/posix/unix.cpp
+   M src/jrd/os/vms/map.cpp
+   M src/jrd/os/vms/vms.cpp
+   M src/jrd/os/vms/vmslock.cpp
+   M src/jrd/os/win32/winnt.cpp
+   M src/jrd/par.cpp
+   M src/jrd/sdw.h
+   M src/jrd/why.cpp
+   M src/remote/allr.cpp
+   M src/remote/inet.cpp
+   M src/remote/os/win32/wnet.cpp
+   M src/remote/remote.cpp
+More cleanup.
+
+ 2006-02-23 05:22  robocop 
+   M doc/WhatsNew
+   M src/jrd/isc.cpp
+Misc.
+
+ 2006-02-23 05:08  robocop 
+   M src/burp/burp.cpp
+   M src/burp/burp.h
+   M src/common/config/config_impl.h
+   M src/jrd/blb.cpp
+   M src/jrd/btr.cpp
+   M src/jrd/btr.h
+   M src/jrd/cch.cpp
+   M src/jrd/cch.h
+   M src/jrd/cch_proto.h
+   M src/jrd/cvt.cpp
+   M src/jrd/dbt.cpp
+   M src/jrd/dfw.epp
+   M src/jrd/dpm.epp
+   M src/jrd/entry.h
+   M src/jrd/exe.cpp
+   M src/jrd/exe.h
+   M src/jrd/ext.cpp
+   M src/jrd/ext.h
+   M src/jrd/fil.h
+   M src/jrd/filters.cpp
+   M src/jrd/fun.epp
+   M src/jrd/gds.cpp
+   M src/jrd/ibase.h
+   M src/jrd/ibsetjmp.h
+   M src/jrd/idx.cpp
+   M src/jrd/inf.cpp
+   M src/jrd/ini.epp
+   M src/jrd/inuse.cpp
+   M src/jrd/inuse_proto.h
+   M src/jrd/isc.cpp
+   M src/jrd/isc.h
+   M src/jrd/isc_proto.h
+   M src/jrd/isc_sync.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/jrd.h
+   M src/jrd/jrd_proto.h
+   M src/jrd/lck.cpp
+   M src/jrd/lck.h
+   M src/jrd/log.h
+   M src/jrd/met.epp
+   M src/jrd/mov.cpp
+   M src/jrd/nav.cpp
+   M src/jrd/os/posix/unix.cpp
+   M src/jrd/os/vms/extvms.cpp
+   M src/jrd/os/vms/map.cpp
+   M src/jrd/os/vms/rdbint.cpp
+   M src/jrd/os/vms/vms.cpp
+   M src/jrd/os/vms/vmsevent.cpp
+   M src/jrd/os/vms/vmslock.cpp
+   M src/jrd/os/win32/winnt.cpp
+   M src/jrd/par.cpp
+   M src/jrd/perf.cpp
+   M src/jrd/plugin_manager.h
+   M src/jrd/req.h
+   M src/jrd/rlck.cpp
+   M src/jrd/rse.cpp
+   M src/jrd/rse.h
+   M src/jrd/scl.h
+   M src/jrd/sdl.cpp
+   M src/jrd/sdl.h
+   M src/jrd/sdl_proto.h
+   M src/jrd/sdw.cpp
+   M src/jrd/sdw_proto.h
+   M src/jrd/shut.cpp
+   M src/jrd/smp_impl.h
+   M src/jrd/sort.cpp
+   M src/jrd/sort.h
+   M src/jrd/svc.cpp
+   M src/jrd/svc.h
+   M src/jrd/svc_proto.h
+   M src/jrd/sym.h
+   M src/jrd/thd.cpp
+   M src/jrd/thd.h
+   M src/jrd/tra.cpp
+   M src/jrd/tra.h
+   M src/jrd/utl.cpp
+   M src/jrd/validation.cpp
+   M src/jrd/vio.cpp
+   M src/jrd/why.cpp
+   M src/lock/driver.cpp
+   M src/misc/align.cpp
+   M src/remote/inet.cpp
+   M src/remote/inter_proto.h
+   M src/remote/interface.cpp
+   M src/remote/os/win32/ibconfig.cpp
+   M src/remote/os/win32/wnet.cpp
+   M src/remote/remote.h
+   M src/utilities/gsec/gsec.cpp
+   M src/utilities/gsec/gsec.h
+   M src/utilities/gstat/dba.epp
+   M src/utilities/gstat/ppg.cpp
+   M src/utilities/gstat/ppg_proto.h
+Mark unused data members, discover more code associated to conditional compilation, clean some places, replace custom loops by memcpy and memset when possible, etc.
+
+ 2006-02-23 05:03  robocop 
+   M src/jrd/cmp.cpp
+We better do not have loop variables with the same name in nested loops.
+:-)
+
+ 2006-02-22 15:25  hvlad 
+   M doc/WhatsNew
+Update WhatsNew
+
+ 2006-02-22 14:55  hvlad 
+   M src/jrd/dfw.epp
+Fixed SF #1436066 : Adding index during DB activity causes GFIX errors
+
+ 2006-02-22 13:55  dimitr 
+   M doc/WhatsNew
+An update.
+
+ 2006-02-22 07:22  robocop 
+   D src/jrd/mem.cpp
+Remove obsolete file.
+
+ 2006-02-22 07:21  robocop 
+   M builds/mac_os_x/CS/CS.pbproj/project.pbxproj
+This was the only project file referencing legacy mem.cpp.
+
+ 2006-02-22 07:19  robocop 
+   M src/jrd/sha.cpp
+This file lacked indentation.
+
+ 2006-02-22 07:11  dimitr 
+   M src/jrd/cmp.cpp
+Sorry, the unused code has been committed.
+
+ 2006-02-22 05:30  dimitr 
+   M src/jrd/cmp.cpp
+Fixed imcomplete invariants tracking for subqueries.
+Views are still a problem, so more to follow.
+
+ 2006-02-22 02:50  asfernandes 
+   M src/jrd/unicode_util.cpp
+Fixed SF field-test $1433583 - key size exceeds implementation restriction
+
+ 2006-02-21 04:29  robocop 
+   M src/common/classes/fb_tls.h
+   M src/common/classes/tree.h
+The whole indentation was screwed in those files.
+
+ 2006-02-20 13:20  kkuznetsov 
+   M src/jrd/sdl.cpp
+Quick fix compile error: inline function has prototype
+
+ 2006-02-20 08:25  kkuznetsov 
+   M src/common/config/config_impl.h
+Fix Sun C++ compiler visibility error
+
+ 2006-02-20 08:00  kkuznetsov 
+   M src/common/classes/fb_tls.h
+misc
+
+ 2006-02-20 07:59  kkuznetsov 
+   M src/common/classes/fb_tls.h
+misc
+
+ 2006-02-20 07:46  kkuznetsov 
+   M src/common/classes/tree.h
+Support Sun C++ compiller in Bee+tree though conditional compilation.
+
+ 2006-02-20 07:45  kkuznetsov 
+   M builds/posix/prefix.solaris-64SCC
+Add defines to support Sun C++ compiller
+in FB Code.
+
+ 2006-02-19 21:16  asfernandes 
+   M src/jrd/dfw.epp
+   M src/jrd/vio.cpp
+Don't allow to drop indices used in explicit plans inside SPs/triggers
+
+ 2006-02-18 23:39  robocop 
+   M src/jrd/opt.cpp
+Misc.
+
+ 2006-02-15 13:35  dimitr 
+   M src/dsql/pass1.cpp
+There's no need to transform NOT ANY to ALL, as NOT ANY effectively uses indices.
+
+ 2006-02-15 13:34  dimitr 
+   M src/jrd/cmp.cpp
+   M src/jrd/rse.cpp
+More clever solution for bug #459059.
+Deoptimization of NOT ANY is no longer necessary.
+
+ 2006-02-10 19:40  dimitr 
+   M builds/win32/preprocess.bat
+   M builds/win32/preprocess2.bat
+Committed changes for the win32 build process.
+
+ 2006-02-10 03:35  robocop 
+   M sr...
 
[truncated message content] | 
| 
      
      
      From: <fir...@us...> - 2014-12-10 00:30:54
       | 
| Revision: 60357
          http://sourceforge.net/p/firebird/code/60357
Author:   firebirds
Date:     2014-12-10 00:30:51 +0000 (Wed, 10 Dec 2014)
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	2014-12-09 20:41:38 UTC (rev 60356)
+++ firebird/trunk/ChangeLog	2014-12-10 00:30:51 UTC (rev 60357)
@@ -1,3 +1,7 @@
+ 2014-12-09 11:13  firebirds 
+   M mkChangeLog.sh
+Make it work faster
+
  2014-12-08 16:58  mapopa 
    M builds/posix/prefix.mingw
 Remove hardcoded march to allow 64-bit builds
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-09 20:41:38 UTC (rev 60356)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-10 00:30:51 UTC (rev 60357)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31471
+  FORMAL BUILD NUMBER:31472
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31471"
-#define FILE_VER_STRING "WI-T3.0.0.31471"
-#define LICENSE_VER_STRING "WI-T3.0.0.31471"
-#define FILE_VER_NUMBER 3, 0, 0, 31471
+#define PRODUCT_VER_STRING "3.0.0.31472"
+#define FILE_VER_STRING "WI-T3.0.0.31472"
+#define LICENSE_VER_STRING "WI-T3.0.0.31472"
+#define FILE_VER_NUMBER 3, 0, 0, 31472
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31471"
+#define FB_BUILD_NO "31472"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-09 20:41:38 UTC (rev 60356)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-10 00:30:51 UTC (rev 60357)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31471
+BuildNum=31472
 
 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...> - 2014-12-13 00:26:53
       | 
| Revision: 60359
          http://sourceforge.net/p/firebird/code/60359
Author:   firebirds
Date:     2014-12-13 00:26:46 +0000 (Sat, 13 Dec 2014)
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	2014-12-12 18:28:44 UTC (rev 60358)
+++ firebird/trunk/ChangeLog	2014-12-13 00:26:46 UTC (rev 60359)
@@ -1,3 +1,8 @@
+ 2014-12-12 18:28  alexpeshkoff 
+   M src/msgs/facilities2.sql
+   M src/msgs/messages2.sql
+Message for new gfix version
+
  2014-12-09 11:13  firebirds 
    M mkChangeLog.sh
 Make it work faster
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-12 18:28:44 UTC (rev 60358)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-13 00:26:46 UTC (rev 60359)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31472
+  FORMAL BUILD NUMBER:31473
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31472"
-#define FILE_VER_STRING "WI-T3.0.0.31472"
-#define LICENSE_VER_STRING "WI-T3.0.0.31472"
-#define FILE_VER_NUMBER 3, 0, 0, 31472
+#define PRODUCT_VER_STRING "3.0.0.31473"
+#define FILE_VER_STRING "WI-T3.0.0.31473"
+#define LICENSE_VER_STRING "WI-T3.0.0.31473"
+#define FILE_VER_NUMBER 3, 0, 0, 31473
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31472"
+#define FB_BUILD_NO "31473"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-12 18:28:44 UTC (rev 60358)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-13 00:26:46 UTC (rev 60359)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31472
+BuildNum=31473
 
 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...> - 2014-12-14 00:25:13
       | 
| Revision: 60364
          http://sourceforge.net/p/firebird/code/60364
Author:   firebirds
Date:     2014-12-14 00:25:05 +0000 (Sun, 14 Dec 2014)
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	2014-12-13 14:25:09 UTC (rev 60363)
+++ firebird/trunk/ChangeLog	2014-12-14 00:25:05 UTC (rev 60364)
@@ -1,3 +1,7 @@
+ 2014-12-13 08:55  hvlad 
+   M src/jrd/GarbageCollector.cpp
+Fixed bug, noted by Claudio in fb-devel
+
  2014-12-12 18:28  alexpeshkoff 
    M src/msgs/facilities2.sql
    M src/msgs/messages2.sql
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-13 14:25:09 UTC (rev 60363)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-14 00:25:05 UTC (rev 60364)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31473
+  FORMAL BUILD NUMBER:31474
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31473"
-#define FILE_VER_STRING "WI-T3.0.0.31473"
-#define LICENSE_VER_STRING "WI-T3.0.0.31473"
-#define FILE_VER_NUMBER 3, 0, 0, 31473
+#define PRODUCT_VER_STRING "3.0.0.31474"
+#define FILE_VER_STRING "WI-T3.0.0.31474"
+#define LICENSE_VER_STRING "WI-T3.0.0.31474"
+#define FILE_VER_NUMBER 3, 0, 0, 31474
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31473"
+#define FB_BUILD_NO "31474"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-13 14:25:09 UTC (rev 60363)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-14 00:25:05 UTC (rev 60364)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31473
+BuildNum=31474
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <di...@us...> - 2014-12-16 19:12:28
       | 
| Revision: 60373
          http://sourceforge.net/p/firebird/code/60373
Author:   dimitr
Date:     2014-12-16 19:12:18 +0000 (Tue, 16 Dec 2014)
Log Message:
-----------
Fixed CORE-4572: Incorrect error for PSQL function when the number of actual arguments does not match the number of formal arguments.
Modified Paths:
--------------
    firebird/trunk/lang_helpers/gds_codes.ftn
    firebird/trunk/lang_helpers/gds_codes.pas
    firebird/trunk/src/dsql/ExprNodes.cpp
    firebird/trunk/src/dsql/StmtNodes.cpp
    firebird/trunk/src/dsql/dsql.h
    firebird/trunk/src/dsql/metd.epp
    firebird/trunk/src/include/gen/codetext.h
    firebird/trunk/src/include/gen/iberror.h
    firebird/trunk/src/include/gen/msgs.h
    firebird/trunk/src/include/gen/sql_code.h
    firebird/trunk/src/include/gen/sql_state.h
    firebird/trunk/src/msgs/facilities2.sql
    firebird/trunk/src/msgs/messages2.sql
    firebird/trunk/src/msgs/system_errors2.sql
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/lang_helpers/gds_codes.ftn	2014-12-16 19:12:18 UTC (rev 60373)
@@ -1612,6 +1612,8 @@
       PARAMETER (GDS__crdb_notable                     = 335545099)
       INTEGER*4 GDS__interface_version_too_old       
       PARAMETER (GDS__interface_version_too_old        = 335545100)
+      INTEGER*4 GDS__fun_param_mismatch              
+      PARAMETER (GDS__fun_param_mismatch               = 335545101)
       INTEGER*4 GDS__gfix_db_name                    
       PARAMETER (GDS__gfix_db_name                     = 335740929)
       INTEGER*4 GDS__gfix_invalid_sw                 
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/lang_helpers/gds_codes.pas	2014-12-16 19:12:18 UTC (rev 60373)
@@ -813,6 +813,7 @@
 	gds_crdb_nodb                        = 335545098;
 	gds_crdb_notable                     = 335545099;
 	gds_interface_version_too_old        = 335545100;
+	gds_fun_param_mismatch               = 335545101;
 	gds_gfix_db_name                     = 335740929;
 	gds_gfix_invalid_sw                  = 335740930;
 	gds_gfix_incmp_sw                    = 335740932;
Modified: firebird/trunk/src/dsql/ExprNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/ExprNodes.cpp	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/dsql/ExprNodes.cpp	2014-12-16 19:12:18 UTC (rev 60373)
@@ -10913,6 +10913,11 @@
 				  Arg::Gds(isc_random) << Arg::Str(name.toString()));
 	}
 
+	const USHORT arg_count = node->dsqlFunction->udf_arguments.getCount();
+	const USHORT count = node->args->items.getCount();
+	if (count > arg_count || count < arg_count - node->dsqlFunction->udf_def_count)
+		ERRD_post(Arg::Gds(isc_fun_param_mismatch) << Arg::Str(name.toString()));
+
 	for (NestConst<ValueExprNode>* ptr = node->args->items.begin();
 		 ptr != node->args->items.end();
 		 ++ptr)
Modified: firebird/trunk/src/dsql/StmtNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/StmtNodes.cpp	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/dsql/StmtNodes.cpp	2014-12-16 19:12:18 UTC (rev 60373)
@@ -1357,7 +1357,7 @@
 
 		USHORT count = subFunc->getInputFormat() ? subFunc->getInputFormat()->fmt_count : 0;
 		if (subFunc->getInputFields().getCount() * 2 != count)
-			PAR_error(csb, Arg::Gds(isc_prcmismat) << name);
+			PAR_error(csb, Arg::Gds(isc_fun_param_mismatch) << name);
 
 		for (USHORT i = 0; i < count; i += 2u)
 		{
Modified: firebird/trunk/src/dsql/dsql.h
===================================================================
--- firebird/trunk/src/dsql/dsql.h	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/dsql/dsql.h	2014-12-16 19:12:18 UTC (rev 60373)
@@ -347,6 +347,7 @@
 	Firebird::QualifiedName udf_name;
 	Firebird::Array<dsc> udf_arguments;
 	bool		udf_private;	// Packaged private function
+	SSHORT		udf_def_count;	// number of inputs with default values
 };
 
 // udf_flags bits
Modified: firebird/trunk/src/dsql/metd.epp
===================================================================
--- firebird/trunk/src/dsql/metd.epp	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/dsql/metd.epp	2014-12-16 19:12:18 UTC (rev 60373)
@@ -880,6 +880,8 @@
 		}
 	}
 
+	SSHORT defaults = 0;
+
 	AutoCacheRequest handle2(tdbb, irq_func_return, IRQ_REQUESTS);
 
 	FOR(REQUEST_HANDLE handle2 TRANSACTION_HANDLE transaction)
@@ -971,6 +973,12 @@
 						d.dsc_flags = DSC_nullable;
 					}
 
+					if (!X.RDB$DEFAULT_VALUE.NULL ||
+						(fb_utils::implicit_domain(F.RDB$FIELD_NAME) && !F.RDB$DEFAULT_VALUE.NULL))
+					{
+						defaults++;
+					}
+
 					userFunc->udf_arguments.add(d);
 				}
 			}
@@ -1038,12 +1046,19 @@
 					d.dsc_flags = DSC_nullable;
 				}
 
+				if (!X.RDB$DEFAULT_VALUE.NULL)
+				{
+					defaults++;
+				}
+
 				userFunc->udf_arguments.add(d);
 			}
 		}
 	}
 	END_FOR
 
+	userFunc->udf_def_count = defaults;
+
 	// Adjust the return type & length of the UDF to account for
 	// cstring & varying.  While a UDF can return CSTRING, we convert it
 	// to VARCHAR for manipulation as CSTRING is not a SQL type.
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/include/gen/codetext.h	2014-12-16 19:12:18 UTC (rev 60373)
@@ -802,6 +802,7 @@
 	{"crdb_nodb", 335545098},
 	{"crdb_notable", 335545099},
 	{"interface_version_too_old", 335545100},
+	{"fun_param_mismatch", 335545101},
 	{"gfix_db_name", 335740929},
 	{"gfix_invalid_sw", 335740930},
 	{"gfix_incmp_sw", 335740932},
Modified: firebird/trunk/src/include/gen/iberror.h
===================================================================
--- firebird/trunk/src/include/gen/iberror.h	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/include/gen/iberror.h	2014-12-16 19:12:18 UTC (rev 60373)
@@ -836,6 +836,7 @@
 const ISC_STATUS isc_crdb_nodb                        = 335545098L;
 const ISC_STATUS isc_crdb_notable                     = 335545099L;
 const ISC_STATUS isc_interface_version_too_old        = 335545100L;
+const ISC_STATUS isc_fun_param_mismatch               = 335545101L;
 const ISC_STATUS isc_gfix_db_name                     = 335740929L;
 const ISC_STATUS isc_gfix_invalid_sw                  = 335740930L;
 const ISC_STATUS isc_gfix_incmp_sw                    = 335740932L;
@@ -1294,7 +1295,7 @@
 const ISC_STATUS isc_trace_switch_param_miss          = 337182758L;
 const ISC_STATUS isc_trace_param_act_notcompat        = 337182759L;
 const ISC_STATUS isc_trace_mandatory_switch_miss      = 337182760L;
-const ISC_STATUS isc_err_max                          = 1238;
+const ISC_STATUS isc_err_max                          = 1239;
 
 #else /* c definitions */
 
@@ -2100,6 +2101,7 @@
 #define isc_crdb_nodb                        335545098L
 #define isc_crdb_notable                     335545099L
 #define isc_interface_version_too_old        335545100L
+#define isc_fun_param_mismatch               335545101L
 #define isc_gfix_db_name                     335740929L
 #define isc_gfix_invalid_sw                  335740930L
 #define isc_gfix_incmp_sw                    335740932L
@@ -2558,7 +2560,7 @@
 #define isc_trace_switch_param_miss          337182758L
 #define isc_trace_param_act_notcompat        337182759L
 #define isc_trace_mandatory_switch_miss      337182760L
-#define isc_err_max                          1238
+#define isc_err_max                          1239
 
 #endif
 
Modified: firebird/trunk/src/include/gen/msgs.h
===================================================================
--- firebird/trunk/src/include/gen/msgs.h	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/include/gen/msgs.h	2014-12-16 19:12:18 UTC (rev 60373)
@@ -805,6 +805,7 @@
 	{335545098, "CREATE DATABASE grants check is not possible when database @1 is not present"},		/* crdb_nodb */
 	{335545099, "CREATE DATABASE grants check is not possible when table RDB$DB_CREATORS is not present in database @1"},		/* crdb_notable */
 	{335545100, "Interface version too old: expected @1, found @2"},		/* interface_version_too_old */
+	{335545101, "Input parameter mismatch for function @1"},		/* fun_param_mismatch */
 	{335740929, "data base file name (@1) already given"},		/* gfix_db_name */
 	{335740930, "invalid switch @1"},		/* gfix_invalid_sw */
 	{335740932, "incompatible switch combination"},		/* gfix_incmp_sw */
Modified: firebird/trunk/src/include/gen/sql_code.h
===================================================================
--- firebird/trunk/src/include/gen/sql_code.h	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/include/gen/sql_code.h	2014-12-16 19:12:18 UTC (rev 60373)
@@ -801,6 +801,7 @@
 	{335545098, -901}, /* 778 crdb_nodb */
 	{335545099, -901}, /* 779 crdb_notable */
 	{335545100, -804}, /* 780 interface_version_too_old */
+	{335545101, -170}, /* 781 fun_param_mismatch */
 	{335740929, -901}, /*   1 gfix_db_name */
 	{335740930, -901}, /*   2 gfix_invalid_sw */
 	{335740932, -901}, /*   4 gfix_incmp_sw */
Modified: firebird/trunk/src/include/gen/sql_state.h
===================================================================
--- firebird/trunk/src/include/gen/sql_state.h	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/include/gen/sql_state.h	2014-12-16 19:12:18 UTC (rev 60373)
@@ -801,6 +801,7 @@
 	{335545098, "0A000"}, // 778 crdb_nodb
 	{335545099, "0A000"}, // 779 crdb_notable
 	{335545100, "HY000"}, // 780 interface_version_too_old
+	{335545101, "07001"}, // 781 fun_param_mismatch
 	{335740929, "00000"}, //   1 gfix_db_name
 	{335740930, "00000"}, //   2 gfix_invalid_sw
 	{335740932, "00000"}, //   4 gfix_incmp_sw
Modified: firebird/trunk/src/msgs/facilities2.sql
===================================================================
--- firebird/trunk/src/msgs/facilities2.sql	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/msgs/facilities2.sql	2014-12-16 19:12:18 UTC (rev 60373)
@@ -1,7 +1,7 @@
 /* MAX_NUMBER is the next number to be used, always one more than the highest message number. */
 set bulk_insert INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES (?, ?, ?, ?);
 --
-('2014-11-06 12:17:00', 'JRD', 0, 781)
+('2014-12-16 21:00:00', 'JRD', 0, 782)
 ('2012-01-23 20:10:30', 'QLI', 1, 532)
 ('2014-12-12 20:59:56', 'GFIX', 3, 132)
 ('1996-11-07 13:39:40', 'GPRE', 4, 1)
Modified: firebird/trunk/src/msgs/messages2.sql
===================================================================
--- firebird/trunk/src/msgs/messages2.sql	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/msgs/messages2.sql	2014-12-16 19:12:18 UTC (rev 60373)
@@ -888,6 +888,7 @@
 ('crdb_nodb', 'DbCreatorsList::getList', 'DbCreators.cpp', NULL, 0, 778, NULL, 'CREATE DATABASE grants check is not possible when database @1 is not present', NULL, NULL);
 ('crdb_notable', 'DbCreatorsList::getList', 'DbCreators.cpp', NULL, 0, 779, NULL, 'CREATE DATABASE grants check is not possible when table RDB$DB_CREATORS is not present in database @1', NULL, NULL);
 ('interface_version_too_old', NULL, 'Interface.h', NULL, 0, 780, NULL, 'Interface version too old: expected @1, found @2', NULL, NULL);
+('fun_param_mismatch', 'UdfCallNode::dsqlPass', 'ExprNode.cpp', NULL, 0, 781, NULL, 'Input parameter mismatch for function @1', NULL, NULL);
 -- QLI
 (NULL, NULL, NULL, NULL, 1, 0, NULL, 'expected type', NULL, NULL);
 (NULL, NULL, NULL, NULL, 1, 1, NULL, 'bad block type', NULL, NULL);
Modified: firebird/trunk/src/msgs/system_errors2.sql
===================================================================
--- firebird/trunk/src/msgs/system_errors2.sql	2014-12-16 17:33:28 UTC (rev 60372)
+++ firebird/trunk/src/msgs/system_errors2.sql	2014-12-16 19:12:18 UTC (rev 60373)
@@ -787,6 +787,7 @@
 (-901, '0A', '000', 0, 778, 'crdb_nodb', NULL, NULL);
 (-901, '0A', '000', 0, 779, 'crdb_notable', NULL, NULL);
 (-804, 'HY', '000', 0, 780, 'interface_version_too_old', NULL, NULL)
+(-170, '07', '001', 0, 781, 'fun_param_mismatch', NULL, NULL)
 -- GFIX
 (-901, '00', '000', 3, 1, 'gfix_db_name', NULL, NULL)
 (-901, '00', '000', 3, 2, 'gfix_invalid_sw', NULL, NULL)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ale...@us...> - 2014-12-17 14:31:16
       | 
| Revision: 60379
          http://sourceforge.net/p/firebird/code/60379
Author:   alexpeshkoff
Date:     2014-12-17 14:31:02 +0000 (Wed, 17 Dec 2014)
Log Message:
-----------
Work in progress on CORE-3632: make all file descriptors, opened by firebird, close on exec()
Modified Paths:
--------------
    firebird/trunk/configure.ac
    firebird/trunk/src/burp/burp.cpp
    firebird/trunk/src/burp/mvol.cpp
    firebird/trunk/src/burp/split/spit.cpp
    firebird/trunk/src/common/classes/TempFile.cpp
    firebird/trunk/src/common/classes/alloc.cpp
    firebird/trunk/src/common/config/config_file.cpp
    firebird/trunk/src/common/isc_file.cpp
    firebird/trunk/src/common/os/os_utils.h
    firebird/trunk/src/common/os/posix/divorce.cpp
    firebird/trunk/src/common/os/posix/guid.cpp
    firebird/trunk/src/common/os/posix/os_utils.cpp
    firebird/trunk/src/common/os/win32/os_utils.cpp
    firebird/trunk/src/common/utils.cpp
    firebird/trunk/src/jrd/Optimizer.cpp
    firebird/trunk/src/jrd/ext.cpp
    firebird/trunk/src/jrd/jrd.cpp
    firebird/trunk/src/jrd/opt.cpp
    firebird/trunk/src/jrd/os/posix/unix.cpp
    firebird/trunk/src/jrd/svc.cpp
    firebird/trunk/src/jrd/trace/TraceConfigStorage.cpp
    firebird/trunk/src/lock/lock.cpp
    firebird/trunk/src/remote/SockAddr.h
    firebird/trunk/src/remote/inet.cpp
    firebird/trunk/src/remote/remote.h
    firebird/trunk/src/remote/server/os/posix/inet_server.cpp
    firebird/trunk/src/remote/server/os/win32/srvr_w32.cpp
    firebird/trunk/src/remote/server/server.cpp
    firebird/trunk/src/utilities/analyse.cpp
    firebird/trunk/src/utilities/gstat/dba.epp
    firebird/trunk/src/utilities/nbackup/nbackup.cpp
    firebird/trunk/src/yvalve/gds.cpp
    firebird/trunk/src/yvalve/utl.cpp
Modified: firebird/trunk/configure.ac
===================================================================
--- firebird/trunk/configure.ac	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/configure.ac	2014-12-17 14:31:02 UTC (rev 60379)
@@ -883,6 +883,9 @@
 dnl Check for fallocate() system call
 AC_CHECK_FUNCS(fallocate)
 
+dnl Check for close_on_exec support
+AC_CHECK_FUNCS(accept4)
+
 dnl Semaphores
 if test "$ac_cv_header_semaphore_h" = "yes"; then
 AC_SEARCH_LIBS(sem_init, rt pthread)
Modified: firebird/trunk/src/burp/burp.cpp
===================================================================
--- firebird/trunk/src/burp/burp.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/burp/burp.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -58,6 +58,7 @@
 #include "../common/classes/ClumpletWriter.h"
 #include "../common/classes/Switches.h"
 #include "../common/IntlUtil.h"
+#include "../common/os/os_utils.h"
 #include "../burp/burpswi.h"
 
 #ifdef HAVE_CTYPE_H
@@ -768,7 +769,7 @@
 				if (tdgbl->sw_redirect == REDIRECT)		// not NOREDIRECT, and not NOOUTPUT
 				{
 					// Make sure the status file doesn't already exist
-					FILE* tmp_outfile = fopen(redirect, fopen_read_type);
+					FILE* tmp_outfile = os_utils::fopen(redirect, fopen_read_type);
 					if (tmp_outfile)
 					{
 						BURP_print(true, 66, redirect);
@@ -776,7 +777,7 @@
 						fclose(tmp_outfile);
 						BURP_exit_local(FINI_ERROR, tdgbl);
 					}
-					if (! (tdgbl->output_file = fopen(redirect, fopen_write_type)))
+					if (! (tdgbl->output_file = os_utils::fopen(redirect, fopen_write_type)))
 					{
 						BURP_print(true, 66, redirect);
 						// msg 66 can't open status and error output file %s
@@ -1862,7 +1863,7 @@
 				if ((fil->fil_fd = MVOL_open(nm.c_str(), MODE_WRITE, CREATE_ALWAYS)) ==
 					INVALID_HANDLE_VALUE)
 #else
-				if ((fil->fil_fd = open(nm.c_str(), MODE_WRITE, open_mask)) == -1)
+				if ((fil->fil_fd = os_utils::open(nm.c_str(), MODE_WRITE, open_mask)) == -1)
 #endif // WIN_NT
 
 				{
@@ -1970,7 +1971,7 @@
 		if ((fil->fil_fd = MVOL_open(nm.c_str(), MODE_READ, OPEN_EXISTING)) ==
 			INVALID_HANDLE_VALUE)
 #else
-		if ((fil->fil_fd = open(nm.c_str(), MODE_READ)) == INVALID_HANDLE_VALUE)
+		if ((fil->fil_fd = os_utils::open(nm.c_str(), MODE_READ)) == INVALID_HANDLE_VALUE)
 #endif
 		{
 			BURP_error(65, true, fil->fil_name.c_str());
@@ -2019,7 +2020,7 @@
 				if ((fil->fil_fd = MVOL_open(nm.c_str(), MODE_READ, OPEN_EXISTING)) ==
 					INVALID_HANDLE_VALUE)
 #else
-				if ((fil->fil_fd = open(nm.c_str(), MODE_READ)) == INVALID_HANDLE_VALUE)
+				if ((fil->fil_fd = os_utils::open(nm.c_str(), MODE_READ)) == INVALID_HANDLE_VALUE)
 #endif
 				{
 					BURP_error(65, false, fil->fil_name.c_str());
Modified: firebird/trunk/src/burp/mvol.cpp
===================================================================
--- firebird/trunk/src/burp/mvol.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/burp/mvol.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -44,6 +44,7 @@
 #include "../burp/mvol_proto.h"
 #include "../yvalve/gds_proto.h"
 #include "../common/gdsassert.h"
+#include "../common/os/os_utils.h"
 #include <fcntl.h>
 #include <sys/types.h>
 
@@ -905,7 +906,7 @@
 		new_desc = MVOL_open(new_file, mode, OPEN_ALWAYS);
 		if (new_desc == INVALID_HANDLE_VALUE)
 #else
-		new_desc = open(new_file, mode, open_mask);
+		new_desc = os_utils::open(new_file, mode, open_mask);
 		if (new_desc < 0)
 #endif // WIN_NT
 		{
@@ -975,12 +976,12 @@
 	// Get a location to read from.
 	fb_assert(!tdgbl->uSvc->isService());
 
-	if (isatty(fileno(stdout)) || !(term_out = fopen(TERM_OUTPUT, "w")))
+	if (isatty(fileno(stdout)) || !(term_out = os_utils::fopen(TERM_OUTPUT, "w")))
 	{
 		term_out = stdout;
 	}
 
-	if (isatty(fileno(stdin)) || !(term_in = fopen(TERM_INPUT, "r")))
+	if (isatty(fileno(stdin)) || !(term_in = os_utils::fopen(TERM_INPUT, "r")))
 	{
 		term_in = stdin;
 	}
Modified: firebird/trunk/src/burp/split/spit.cpp
===================================================================
--- firebird/trunk/src/burp/split/spit.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/burp/split/spit.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -49,6 +49,7 @@
 #include "../common/classes/Switches.h"
 #include "../burp/std_desc.h"
 #include "../burp/burpswi.h"
+#include "../common/os/os_utils.h"
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
@@ -68,7 +69,7 @@
 	return CreateFile(name, (writeFlag ? GENERIC_WRITE : GENERIC_READ), 0, NULL,
 		(writeFlag ? CREATE_ALWAYS : OPEN_EXISTING), FILE_ATTRIBUTE_NORMAL, 0);
 #else
-	return open(name, (writeFlag ? mode_write : mode_read), mask);
+	return os_utils::open(name, (writeFlag ? mode_write : mode_read), mask);
 #endif
 }
 
Modified: firebird/trunk/src/common/classes/TempFile.cpp
===================================================================
--- firebird/trunk/src/common/classes/TempFile.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/classes/TempFile.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -216,9 +216,7 @@
 		system_error::raise("mktemp");
 	}
 
-	do {
-		handle = open(filename.c_str(), O_RDWR | O_EXCL | O_CREAT);
-	} while (handle == -1 && errno == EINTR);
+	handle = os_utils::open(filename.c_str(), O_RDWR | O_EXCL | O_CREAT);
 #endif
 
 	if (handle == -1)
Modified: firebird/trunk/src/common/classes/alloc.cpp
===================================================================
--- firebird/trunk/src/common/classes/alloc.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/classes/alloc.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -52,6 +52,7 @@
 #include "../common/classes/locks.h"
 #include "../common/classes/init.h"
 #include "../common/classes/vector.h"
+#include "../common/os/os_utils.h"
 #include "gen/iberror.h"
 
 #ifdef USE_VALGRIND
@@ -828,7 +829,7 @@
 #else // MAP_ANONYMOUS
 
 	if (dev_zero_fd < 0)
-		dev_zero_fd = open("/dev/zero", O_RDWR);
+		dev_zero_fd = os_utils::open("/dev/zero", O_RDWR);
 	void* result = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, dev_zero_fd, 0);
 
 #endif // MAP_ANONYMOUS
@@ -1015,7 +1016,7 @@
 
 void MemoryPool::print_contents(const char* filename, bool used_only, const char* filter_path) throw ()
 {
-	FILE* out = fopen(filename, "w");
+	FILE* out = os_utils::fopen(filename, "w");
 	if (!out)
 		return;
 
Modified: firebird/trunk/src/common/config/config_file.cpp
===================================================================
--- firebird/trunk/src/common/config/config_file.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/config/config_file.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -28,6 +28,7 @@
 #include "../common/config/config.h"
 #include "../common/config/ConfigCache.h"
 #include "../common/os/path_utils.h"
+#include "../common/os/os_utils.h"
 #include "../common/ScanDir.h"
 #include "../common/utils_proto.h"
 #include <stdio.h>
@@ -49,7 +50,7 @@
 {
 public:
 	MainStream(const char* fname, bool errorWhenMissing)
-		: file(fopen(fname, "rt")), fileName(fname), l(0)
+		: file(os_utils::fopen(fname, "rt")), fileName(fname), l(0)
 	{
 		if (errorWhenMissing && !file)
 		{
Modified: firebird/trunk/src/common/isc_file.cpp
===================================================================
--- firebird/trunk/src/common/isc_file.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/isc_file.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -116,7 +116,7 @@
 #define MTAB_OPEN(path, type)	setmntent(path, "r")
 #define MTAB_CLOSE(stream)	endmntent(stream)
 #else
-#define MTAB_OPEN(path, type)	fopen(path, type)
+#define MTAB_OPEN(path, type)	os_utils::fopen(path, type)
 #define MTAB_CLOSE(stream)	fclose(stream)
 #endif
 
Modified: firebird/trunk/src/common/os/os_utils.h
===================================================================
--- firebird/trunk/src/common/os/os_utils.h	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/os/os_utils.h	2014-12-17 14:31:02 UTC (rev 60379)
@@ -28,9 +28,7 @@
 #ifndef INCLUDE_OS_FILE_UTILS_H
 #define INCLUDE_OS_FILE_UTILS_H
 
-#ifdef SFIO
 #include <stdio.h>
-#endif
 
 #include "../common/classes/fb_string.h"
 #include "../common/StatusArg.h"
@@ -47,6 +45,11 @@
 	bool touchFile(const char* pathname);
 
 	bool isIPv6supported();
+
+	// force descriptor to have O_CLOEXEC set
+	int open(const char *pathname, int flags, mode_t mode = 0666);
+	void setCloseOnExec(int fd);	// posix only
+	FILE* fopen(const char *pathname, const char *mode);
 } // namespace os_utils
 
 #endif // INCLUDE_OS_FILE_UTILS_H
Modified: firebird/trunk/src/common/os/posix/divorce.cpp
===================================================================
--- firebird/trunk/src/common/os/posix/divorce.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/os/posix/divorce.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -52,6 +52,7 @@
 #include "firebird.h"
 #include "../common/os/divorce.h"
 #include "../common/classes/semaphore.h"
+#include "../common/os/os_utils.h"
 
 #ifdef HAVE_IO_H
 #include <io.h>
@@ -123,7 +124,7 @@
 	// Perform terminal divorce
 	// this is in case of BSD systems
 
-	fid = open("/dev/tty", 2);
+	fid = os_utils::open("/dev/tty", 2);
 
 	if (fid >= 0) {
 		ioctl(fid, TIOCNOTTY, 0);
Modified: firebird/trunk/src/common/os/posix/guid.cpp
===================================================================
--- firebird/trunk/src/common/os/posix/guid.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/os/posix/guid.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -30,6 +30,7 @@
 #include "../common/os/guid.h"
 
 #include "fb_exception.h"
+#include "../common/os/os_utils.h"
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -43,15 +44,7 @@
 void GenerateRandomBytes(void* buffer, FB_SIZE_T size)
 {
 	// do not use /dev/random because it may return lesser data than we need.
-	int fd = -1;
-	for (;;)
-	{
-		fd = open("/dev/urandom", O_RDONLY);
-		if (fd >= 0)
-			break;
-		if (errno != EINTR)
-			Firebird::system_call_failed::raise("open");
-	}
+	int fd = os_utils::open("/dev/urandom", O_RDONLY);
 	for (FB_SIZE_T offset = 0; offset < size; )
 	{
 		int rc = read(fd, static_cast<char*>(buffer) + offset, size - offset);
Modified: firebird/trunk/src/common/os/posix/os_utils.cpp
===================================================================
--- firebird/trunk/src/common/os/posix/os_utils.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/os/posix/os_utils.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -58,6 +58,14 @@
 #include <pwd.h>
 #endif
 
+#ifdef HAVE_ACCEPT4
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+
 using namespace Firebird;
 
 namespace os_utils
@@ -117,6 +125,7 @@
 	}
 } // anonymous namespace
 
+
 // create directory for lock files and set appropriate access rights
 void createLockDirectory(const char* pathname)
 {
@@ -173,11 +182,7 @@
 // open (or create if missing) and set appropriate access rights
 int openCreateSharedFile(const char* pathname, int flags)
 {
-	int fd;
-	do {
-		fd = ::open(pathname, flags | O_RDWR | O_CREAT, S_IREAD | S_IWRITE);
-	} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
-
+	int fd = os_utils::open(pathname, flags | O_RDWR | O_CREAT, S_IREAD | S_IWRITE);
 	if (fd < 0)
 		raiseError(fd, pathname);
 
@@ -235,4 +240,41 @@
 	return true;
 }
 
+// setting flag is not absolutely required, therefore ignore errors here
+void setCloseOnExec(int fd)
+{
+	if (fd >= 0)
+	{
+		while (fcntl(fd, F_SETFD, O_CLOEXEC) < 0 && SYSCALL_INTERRUPTED(errno))
+			;
+	}
+}
+
+// force file descriptor to have O_CLOEXEC set
+int open(const char *pathname, int flags, mode_t mode)
+{
+	int fd;
+	do {
+		fd = ::open(pathname, flags | O_CLOEXEC, mode);
+	} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
+
+	if (fd < 0 && errno == EINVAL)	// probably O_CLOEXEC not accepted
+	{
+		do {
+			fd = ::open(pathname, flags | O_CLOEXEC, mode);
+		} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
+	}
+
+	setCloseOnExec(fd);
+	return fd;
+}
+
+FILE* fopen(const char *pathname, const char *mode)
+{
+	FILE* f = ::fopen(pathname, mode);	// TODO: use open + fdopen to avoid races
+	if (f)
+		setCloseOnExec(fileno(f));
+	return f;
+}
+
 } // namespace os_utils
Modified: firebird/trunk/src/common/os/win32/os_utils.cpp
===================================================================
--- firebird/trunk/src/common/os/win32/os_utils.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/os/win32/os_utils.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -303,4 +303,14 @@
 	return false;
 }
 
+int open(const char *pathname, int flags, mode_t mode = 0666)
+{
+	return ::_open(char *pathname, flags, mode);
+}
+
+FILE* fopen(const char *pathname, const char *mode)
+{
+	return ::fopen(pathname, mode);
+}
+
 } // namespace os_utils
Modified: firebird/trunk/src/common/utils.cpp
===================================================================
--- firebird/trunk/src/common/utils.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/common/utils.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -49,6 +49,7 @@
 #include "../common/os/path_utils.h"
 #include "../common/os/fbsyslog.h"
 #include "../common/StatusArg.h"
+#include "../common/os/os_utils.h"
 #include "../dsql/sqlda_pub.h"
 
 #ifdef WIN_NT
@@ -734,7 +735,7 @@
 				f = stdin;
 			}
 			else {
-				f = fopen(name.c_str(), "rt");
+				f = os_utils::fopen(name.c_str(), "rt");
 			}
 			if (f && isatty(fileno(f)))
 			{
Modified: firebird/trunk/src/jrd/Optimizer.cpp
===================================================================
--- firebird/trunk/src/jrd/Optimizer.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/jrd/Optimizer.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -2255,7 +2255,7 @@
  *
  **************************************/
 
-	FILE *opt_debug_file = fopen(OPTIMIZER_DEBUG_FILE, "a");
+	FILE *opt_debug_file = os_utils::fopen(OPTIMIZER_DEBUG_FILE, "a");
 	fprintf(opt_debug_file, "     cost(%1.2f), selectivity(%1.10f), indexes(%d), matched(%d, %d)",
 		candidate->cost, candidate->selectivity, candidate->indexes, candidate->matchedSegments,
 		candidate->nonFullMatchedSegments);
@@ -2289,7 +2289,7 @@
  *
  **************************************/
 
-	FILE *opt_debug_file = fopen(OPTIMIZER_DEBUG_FILE, "a");
+	FILE *opt_debug_file = os_utils::fopen(OPTIMIZER_DEBUG_FILE, "a");
 	fprintf(opt_debug_file, "    retrieval candidates:\n");
 	fclose(opt_debug_file);
 	const InversionCandidate* const* inversion = inversions->begin();
@@ -2314,7 +2314,7 @@
 
 	if (candidate)
 	{
-		FILE *opt_debug_file = fopen(OPTIMIZER_DEBUG_FILE, "a");
+		FILE *opt_debug_file = os_utils::fopen(OPTIMIZER_DEBUG_FILE, "a");
 		fprintf(opt_debug_file, "    final candidate: ");
 		fclose(opt_debug_file);
 		printCandidate(candidate);
@@ -3037,7 +3037,7 @@
  *
  **************************************/
 
-	FILE *opt_debug_file = fopen(OPTIMIZER_DEBUG_FILE, "a");
+	FILE *opt_debug_file = os_utils::fopen(OPTIMIZER_DEBUG_FILE, "a");
 	fprintf(opt_debug_file, " best order, streams: ");
 	for (StreamType i = 0; i < optimizer->opt_best_count; i++)
 	{
@@ -3064,7 +3064,7 @@
  *
  **************************************/
 
-	FILE *opt_debug_file = fopen(OPTIMIZER_DEBUG_FILE, "a");
+	FILE *opt_debug_file = os_utils::fopen(OPTIMIZER_DEBUG_FILE, "a");
 	fprintf(opt_debug_file, "  position %2.2d:", position);
 	fprintf(opt_debug_file, " pos. cardinality(%10.2f) pos. cost(%10.2f)", positionCardinality, positionCost);
 	fprintf(opt_debug_file, " cardinality(%10.2f) cost(%10.2f)", cardinality, cost);
@@ -3095,7 +3095,7 @@
  *
  **************************************/
 
-	FILE *opt_debug_file = fopen(OPTIMIZER_DEBUG_FILE, "a");
+	FILE *opt_debug_file = os_utils::fopen(OPTIMIZER_DEBUG_FILE, "a");
 	fprintf(opt_debug_file, "   basestream %d, relationships: stream(cost)", stream);
 	const IndexRelationship* const* relationships = processList->begin();
 	for (int i = 0; i < processList->getCount(); i++)
@@ -3116,7 +3116,7 @@
  *
  **************************************/
 
-	FILE *opt_debug_file = fopen(OPTIMIZER_DEBUG_FILE, "a");
+	FILE *opt_debug_file = os_utils::fopen(OPTIMIZER_DEBUG_FILE, "a");
 	fprintf(opt_debug_file, "Start join order: with stream(baseCost)");
 	bool firstStream = true;
 	for (int i = 0; i < innerStreams.getCount(); i++)
Modified: firebird/trunk/src/jrd/ext.cpp
===================================================================
--- firebird/trunk/src/jrd/ext.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/jrd/ext.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -59,6 +59,7 @@
 #include "../common/os/path_utils.h"
 #include "../common/classes/init.h"
 #include "../common/isc_f_proto.h"
+#include "../common/os/os_utils.h"
 
 #if defined _MSC_VER && _MSC_VER < 1400
 // NS: in VS2003 these only work with static CRT
@@ -135,12 +136,12 @@
 		// RW mode. If the DB is ReadOnly, then open the external files only in
 		// ReadOnly mode, thus being consistent.
 		if (!dbb->readOnly())
-			ext_file->ext_ifi = fopen(file_name, FOPEN_TYPE);
+			ext_file->ext_ifi = os_utils::fopen(file_name, FOPEN_TYPE);
 
 		if (!ext_file->ext_ifi)
 		{
 			// could not open the file as read write attempt as read only
-			if (!(ext_file->ext_ifi = fopen(file_name, FOPEN_READ_ONLY)))
+			if (!(ext_file->ext_ifi = os_utils::fopen(file_name, FOPEN_READ_ONLY)))
 			{
 				ERR_post(Arg::Gds(isc_io_error) << Arg::Str("fopen") << Arg::Str(file_name) <<
 						 Arg::Gds(isc_io_open_err) << SYS_ERR(errno));
Modified: firebird/trunk/src/jrd/jrd.cpp
===================================================================
--- firebird/trunk/src/jrd/jrd.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/jrd/jrd.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -5196,7 +5196,7 @@
 	TEXT fname[MAXPATHLEN];
 
 	Firebird::string fname = fb_utils::getPrefix(IConfigManager::FB_DIR_LOG, "proc_info.log");
-	FILE* fptr = fopen(fname.c_str(), "a+");
+	FILE* fptr = os_utils::fopen(fname.c_str(), "a+");
 	if (!fptr)
 	{
 		gds__log("Failed to open %s\n", fname.c_str());
Modified: firebird/trunk/src/jrd/opt.cpp
===================================================================
--- firebird/trunk/src/jrd/opt.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/jrd/opt.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -82,6 +82,7 @@
 #include "../jrd/UserManagement.h"
 #include "../common/classes/array.h"
 #include "../common/classes/objects_array.h"
+#include "../common/os/os_utils.h"
 #include "../jrd/recsrc/RecordSource.h"
 #include "../jrd/recsrc/Cursor.h"
 #include "../jrd/Mapping.h"
@@ -466,7 +467,7 @@
 
 #ifdef OPT_DEBUG
 	if (opt_debug_flag != DEBUG_NONE && !opt_debug_file)
-		opt_debug_file = fopen("opt_debug.out", "w");
+		opt_debug_file = os_utils::fopen("opt_debug.out", "w");
 #endif
 
 	// If there is a boolean, there is some work to be done.  First,
Modified: firebird/trunk/src/jrd/os/posix/unix.cpp
===================================================================
--- firebird/trunk/src/jrd/os/posix/unix.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/jrd/os/posix/unix.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -67,6 +67,7 @@
 #include "../jrd/ods_proto.h"
 #include "../jrd/os/pio_proto.h"
 #include "../common/classes/init.h"
+#include "../common/os/os_utils.h"
 
 using namespace Jrd;
 using namespace Firebird;
@@ -215,7 +216,7 @@
 #endif
 #endif
 
-	const int desc = open(file_name.c_str(), flag, 0666);
+	const int desc = os_utils::open(file_name.c_str(), flag, 0666);
 	if (desc == -1)
 	{
 		ERR_post(Arg::Gds(isc_io_error) << Arg::Str("open O_CREAT") << Arg::Str(file_name) <<
@@ -891,16 +892,7 @@
 		flag |= O_DIRECT;
 #endif
 
-	for (int i = 0; i < IO_RETRY; i++)
-	{
-		int desc = open(name, flag);
-		if (desc != -1)
-			return desc;
-		if (!SYSCALL_INTERRUPTED(errno))
-			break;
-	}
-
-	return -1;
+	return os_utils::open(name, flag);
 }
 
 
@@ -1213,18 +1205,12 @@
 static int raw_devices_unlink_database(const PathName& file_name)
 {
 	char header[MIN_PAGE_SIZE];
-	int desc = -1;
 
-	for (int i = 0; i < IO_RETRY; i++)
+	int desc = os_utils::open(file_name.c_str(), O_RDWR | O_BINARY);
+	if (desc < 0)
 	{
-		if ((desc = open (file_name.c_str(), O_RDWR | O_BINARY)) != -1)
-			break;
-
-		if (!SYSCALL_INTERRUPTED(errno))
-		{
-			ERR_post(Arg::Gds(isc_io_error) << Arg::Str("open") << Arg::Str(file_name) <<
-					 Arg::Gds(isc_io_open_err) << Arg::Unix(errno));
-		}
+		ERR_post(Arg::Gds(isc_io_error) << Arg::Str("open") << Arg::Str(file_name) <<
+				 Arg::Gds(isc_io_open_err) << Arg::Unix(errno));
 	}
 
 	memset(header, 0xa5, sizeof(header));
Modified: firebird/trunk/src/jrd/svc.cpp
===================================================================
--- firebird/trunk/src/jrd/svc.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/jrd/svc.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -63,6 +63,7 @@
 #include "../jrd/EngineInterface.h"
 #include "../jrd/Mapping.h"
 #include "../common/classes/RefMutex.h"
+#include "../common/os/os_utils.h"
 
 #include "../common/classes/DbImplementation.h"
 
@@ -2194,7 +2195,7 @@
 	bool svc_started = false;
 
 	Firebird::PathName name = fb_utils::getPrefix(IConfigManager::FB_DIR_LOG, LOGFILE);
-	FILE* file = fopen(name.c_str(), "r");
+	FILE* file = os_utils::fopen(name.c_str(), "r");
 
 	try
 	{
Modified: firebird/trunk/src/jrd/trace/TraceConfigStorage.cpp
===================================================================
--- firebird/trunk/src/jrd/trace/TraceConfigStorage.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/jrd/trace/TraceConfigStorage.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -208,7 +208,7 @@
 	}
 	else
 	{
-		m_cfg_file = ::open(cfg_file_name, O_RDWR | O_BINARY);
+		m_cfg_file = os_utils::open(cfg_file_name, O_RDWR | O_BINARY);
 
 		if (m_cfg_file < 0)
 			checkFileError(cfg_file_name, "open", isc_io_open_err);
@@ -244,7 +244,7 @@
 				configFileName.insert(0, root);
 			}
 
-			cfgFile = fopen(configFileName.c_str(), "rb");
+			cfgFile = os_utils::fopen(configFileName.c_str(), "rb");
 			if (!cfgFile) {
 				checkFileError(configFileName.c_str(), "fopen", isc_io_open_err);
 			}
Modified: firebird/trunk/src/lock/lock.cpp
===================================================================
--- firebird/trunk/src/lock/lock.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/lock/lock.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -54,6 +54,7 @@
 #include "../common/classes/semaphore.h"
 #include "../common/classes/init.h"
 #include "../common/classes/timestamp.h"
+#include "../common/os/os_utils.h"
 
 #include <stdio.h>
 #include <errno.h>
@@ -1621,7 +1622,7 @@
 			TEXT buffer[MAXPATHLEN];
 			gds__prefix_lock(buffer, "fb_lock_table.dump");
 			const TEXT* const lock_file = buffer;
-			FILE* const fd = fopen(lock_file, "wb");
+			FILE* const fd = os_utils::fopen(lock_file, "wb");
 			if (fd)
 			{
 				FB_UNUSED(fwrite(header, 1, header->lhb_used, fd));
Modified: firebird/trunk/src/remote/SockAddr.h
===================================================================
--- firebird/trunk/src/remote/SockAddr.h	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/remote/SockAddr.h	2014-12-17 14:31:02 UTC (rev 60379)
@@ -45,7 +45,6 @@
 
 #include "../remote/remote.h"
 
-
 class SockAddr
 {
 private:
@@ -111,7 +110,7 @@
 
 inline int SockAddr::accept(SOCKET s)
 {
-	return ::accept(s, (struct sockaddr*) data, &len);
+	return os_utils::accept(s, (struct sockaddr*) data, &len);
 }
 
 
Modified: firebird/trunk/src/remote/inet.cpp
===================================================================
--- firebird/trunk/src/remote/inet.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/remote/inet.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -54,6 +54,7 @@
 #include "../common/classes/timestamp.h"
 #include "../common/classes/init.h"
 #include "../common/ThreadStart.h"
+#include "../common/os/os_utils.h"
 
 #ifdef HAVE_PWD_H
 #include <pwd.h>
@@ -111,7 +112,6 @@
 #include "../common/config/config.h"
 #include "../common/utils_proto.h"
 #include "../common/classes/ClumpletWriter.h"
-#include "../common/os/os_utils.h"
 
 // Please review. Maybe not needed. See H_ERRNO in common.h.
 #if defined HPUX
@@ -842,7 +842,7 @@
 	for (const addrinfo* pai = gai_result; pai; pai = pai->ai_next)
 	{
 		// Allocate a port block and initialize a socket for communications
-		port->port_handle = socket(pai->ai_family, pai->ai_socktype, pai->ai_protocol);
+		port->port_handle = os_utils::socket(pai->ai_family, pai->ai_socktype, pai->ai_protocol);
 
 		if (port->port_handle == INVALID_SOCKET)
 		{
@@ -997,7 +997,7 @@
 
 	while (true)
 	{
-		SOCKET s = accept(port->port_handle, NULL, NULL);
+		SOCKET s = os_utils::accept(port->port_handle, NULL, NULL);
 		const int inetErrNo = INET_ERRNO;
 		if (s == INVALID_SOCKET)
 		{
@@ -1371,7 +1371,7 @@
 			}
 		}
 
-		const SOCKET n = accept(port->port_channel, NULL, NULL);
+		const SOCKET n = os_utils::accept(port->port_channel, NULL, NULL);
 		inetErrNo = INET_ERRNO;
 
 		if (n == INVALID_SOCKET)
@@ -1416,7 +1416,7 @@
 
 	// Set up new socket
 
-	SOCKET n = socket(address.family(), SOCK_STREAM, 0);
+	SOCKET n = os_utils::socket(address.family(), SOCK_STREAM, 0);
 	if (n == INVALID_SOCKET)
 	{
 		int savedError = INET_ERRNO;
@@ -1465,7 +1465,7 @@
 	unsigned short aux_port = port->getPortConfig()->getRemoteAuxPort();
 	our_address.setPort(aux_port); // may be 0
 
-	SOCKET n = socket(our_address.family(), SOCK_STREAM, 0);
+	SOCKET n = os_utils::socket(our_address.family(), SOCK_STREAM, 0);
 	if (n == INVALID_SOCKET)
 	{
 		inet_error(false, port, "socket", isc_net_event_listen_err, INET_ERRNO);
@@ -1966,7 +1966,7 @@
 	rem_port* const port = alloc_port(main_port);
 	inet_ports->registerPort(port);
 
-	port->port_handle = accept(main_port->port_handle, NULL, NULL);
+	port->port_handle = os_utils::accept(main_port->port_handle, NULL, NULL);
 	if (port->port_handle == INVALID_SOCKET)
 	{
 		inet_error(true, port, "accept", isc_net_connect_err, INET_ERRNO);
@@ -3081,3 +3081,58 @@
  **************************************/
 	tryStopMainThread = func;
 }
+
+namespace os_utils
+{
+
+// force socket descriptor to have O_CLOEXEC set
+int socket(int domain, int type, int protocol)
+{
+#ifdef WIN_NT
+	return ::socket(domain, type, protocol);
+#else
+	int fd;
+	do {
+		fd = ::socket(domain, type | O_CLOEXEC, protocol);
+	} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
+
+	if (fd < 0 && errno == EINVAL)	// probably O_CLOEXEC not accepted
+	{
+		do {
+			fd = ::socket(domain, type, protocol);
+		} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
+	}
+
+	setCloseOnExec(fd);
+	return fd;
+#endif
+}
+
+// force socket descriptor to have O_CLOEXEC set
+int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
+{
+#ifdef WIN_NT
+	return ::accept(sockfd, addr, addrlen);
+#else
+	int fd;
+#ifdef HAVE_ACCEPT4
+	do {
+		fd = ::accept4(sockfd, addr, addrlen, O_CLOEXEC);
+	} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
+
+	if (fd < 0 && errno == EINVAL)	// probably O_CLOEXEC not accepted
+	{
+#endif
+		do {
+			fd = ::accept(sockfd, addr, addrlen);
+		} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
+#ifdef HAVE_ACCEPT4
+	}
+#endif
+
+	setCloseOnExec(fd);
+	return fd;
+#endif
+}
+
+} // namespace os_utils
Modified: firebird/trunk/src/remote/remote.h
===================================================================
--- firebird/trunk/src/remote/remote.h	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/remote/remote.h	2014-12-17 14:31:02 UTC (rev 60379)
@@ -105,6 +105,17 @@
 	class Exception;
 }
 
+#ifndef WIN_NT
+typedef int SOCKET;
+#endif
+
+namespace os_utils
+{
+	// force descriptor to have O_CLOEXEC set
+	SOCKET socket(int domain, int type, int protocol);
+	SOCKET accept(SOCKET sockfd, sockaddr *addr, socklen_t *addrlen);
+}
+
 struct rem_port;
 
 typedef Firebird::AutoPtr<UCHAR, Firebird::ArrayDelete<UCHAR> > UCharArrayAutoPtr;
@@ -586,11 +597,6 @@
 
 // Generalized port definition.
 
-#ifndef WIN_NT
-typedef int SOCKET;
-#endif
-
-
 //////////////////////////////////////////////////////////////////
 // fwd. decl.
 struct p_cnct;
Modified: firebird/trunk/src/remote/server/os/posix/inet_server.cpp
===================================================================
--- firebird/trunk/src/remote/server/os/posix/inet_server.cpp	2014-12-17 11:56:48 UTC (rev 60378)
+++ firebird/trunk/src/remote/server/os/posix/inet_server.cpp	2014-12-17 14:31:02 UTC (rev 60379)
@@ -40,6 +40,7 @@
 #include "../common/classes/init.h"
 #include "../common/conf...
 
[truncated message content] | 
| 
      
      
      From: <fir...@us...> - 2014-12-18 00:15:41
       | 
| Revision: 60380
          http://sourceforge.net/p/firebird/code/60380
Author:   firebirds
Date:     2014-12-18 00:15:38 +0000 (Thu, 18 Dec 2014)
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	2014-12-17 14:31:02 UTC (rev 60379)
+++ firebird/trunk/ChangeLog	2014-12-18 00:15:38 UTC (rev 60380)
@@ -1,3 +1,113 @@
+ 2014-12-17 14:31  alexpeshkoff 
+   M configure.ac
+   M src/burp/burp.cpp
+   M src/burp/mvol.cpp
+   M src/burp/split/spit.cpp
+   M src/common/classes/TempFile.cpp
+   M src/common/classes/alloc.cpp
+   M src/common/config/config_file.cpp
+   M src/common/isc_file.cpp
+   M src/common/os/os_utils.h
+   M src/common/os/posix/divorce.cpp
+   M src/common/os/posix/guid.cpp
+   M src/common/os/posix/os_utils.cpp
+   M src/common/os/win32/os_utils.cpp
+   M src/common/utils.cpp
+   M src/jrd/Optimizer.cpp
+   M src/jrd/ext.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/opt.cpp
+   M src/jrd/os/posix/unix.cpp
+   M src/jrd/svc.cpp
+   M src/jrd/trace/TraceConfigStorage.cpp
+   M src/lock/lock.cpp
+   M src/remote/SockAddr.h
+   M src/remote/inet.cpp
+   M src/remote/remote.h
+   M src/remote/server/os/posix/inet_server.cpp
+   M src/remote/server/os/win32/srvr_w32.cpp
+   M src/remote/server/server.cpp
+   M src/utilities/analyse.cpp
+   M src/utilities/gstat/dba.epp
+   M src/utilities/nbackup/nbackup.cpp
+   M src/yvalve/gds.cpp
+   M src/yvalve/utl.cpp
+Work in progress on CORE-3632: make all file descriptors, opened by firebird, close on exec()
+
+ 2014-12-17 11:56  dimitr 
+   M src/dsql/DdlNodes.epp
+Fixed CORE-4622: Regression: Trigger with UPDATE OR INSERT statement and IIF() not working as expected.
+
+ 2014-12-17 10:38  dimitr 
+   M src/dsql/ExprNodes.cpp
+   M src/dsql/ExprNodes.h
+   M src/dsql/StmtNodes.cpp
+   M src/dsql/parse.y
+Fixed CORE-4161: User can not insert records into table with column "generated by default as identity" in its DDL.
+
+ 2014-12-17 10:01  dimitr 
+   M src/dsql/DdlNodes.epp
+Fixed CORE-4280: FB3: Stored function accepts duplicate input arguments.
+
+ 2014-12-17 07:41  dimitr 
+   M src/jrd/met.epp
+Fixed CORE-4472: Message "Modifying function <F> which is currently in use" when running script with AUTODDL=OFF and <F> is called from INTERNAL function declared in other unit.
+
+ 2014-12-16 19:12  dimitr 
+   M lang_helpers/gds_codes.ftn
+   M lang_helpers/gds_codes.pas
+   M src/dsql/ExprNodes.cpp
+   M src/dsql/StmtNodes.cpp
+   M src/dsql/dsql.h
+   M src/dsql/metd.epp
+   M src/include/gen/codetext.h
+   M src/include/gen/iberror.h
+   M src/include/gen/msgs.h
+   M src/include/gen/sql_code.h
+   M src/include/gen/sql_state.h
+   M src/msgs/facilities2.sql
+   M src/msgs/messages2.sql
+   M src/msgs/system_errors2.sql
+Fixed CORE-4572: Incorrect error for PSQL function when the number of actual arguments does not match the number of formal arguments.
+
+ 2014-12-16 17:33  dimitr 
+   M src/dsql/parse.y
+Fixed one more regression with explicit plans -- parser error for multiple entries inside the INDEX clause, e.g. SELECT * FROM T WHERE F1 = 0 AND F2 = 0 PLAN (T INDEX (IDX_F1, IDX_F2)).
+
+ 2014-12-16 17:29  dimitr 
+   M src/dsql/gen.cpp
+Simplification.
+
+ 2014-12-16 17:28  dimitr 
+   M src/dsql/parse.y
+Fixed CORE-4539: Server does not accept the right plan.
+
+ 2014-12-16 14:39  alexpeshkoff 
+   M src/alice/aliceswi.h
+   M src/alice/exe.cpp
+   M src/include/consts_pub.h
+   M src/jrd/dfw.epp
+   M src/jrd/dfw_proto.h
+   M src/jrd/jrd.cpp
+   M src/utilities/fbsvcmgr/fbsvcmgr.cpp
+Fixed CORE-4571: Can't select from table with ICU column when database (.FDB) is created on LINUX with icu 4.2.1 and then copied to WINDOWS
+
+ 2014-12-16 11:40  dimitr 
+   M src/jrd/Optimizer.cpp
+Postfix for CORE-1550: Unnecessary index scan happens when the same index is mapped to both WHERE and ORDER BY clauses.
+
+ 2014-12-16 10:30  dimitr 
+   M src/remote/server/os/posix/inet_server.cpp
+This should fix CORE-4639: Linux server may reject connections with a transliteration error.
+
+ 2014-12-16 05:02  mapopa 
+   M src/common/sha.cpp
+Page url changed , use archive.org url 
+
+ 2014-12-16 04:41  mapopa 
+   M src/include/types_pub.h
+16-bit platforms not supported
+
  2014-12-13 08:55  hvlad 
    M src/jrd/GarbageCollector.cpp
 Fixed bug, noted by Claudio in fb-devel
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-17 14:31:02 UTC (rev 60379)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-18 00:15:38 UTC (rev 60380)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31474
+  FORMAL BUILD NUMBER:31488
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31474"
-#define FILE_VER_STRING "WI-T3.0.0.31474"
-#define LICENSE_VER_STRING "WI-T3.0.0.31474"
-#define FILE_VER_NUMBER 3, 0, 0, 31474
+#define PRODUCT_VER_STRING "3.0.0.31488"
+#define FILE_VER_STRING "WI-T3.0.0.31488"
+#define LICENSE_VER_STRING "WI-T3.0.0.31488"
+#define FILE_VER_NUMBER 3, 0, 0, 31488
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31474"
+#define FB_BUILD_NO "31488"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-17 14:31:02 UTC (rev 60379)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-18 00:15:38 UTC (rev 60380)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31474
+BuildNum=31488
 
 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...> - 2014-12-18 16:54:53
       | 
| Revision: 60389
          http://sourceforge.net/p/firebird/code/60389
Author:   alexpeshkoff
Date:     2014-12-18 16:54:44 +0000 (Thu, 18 Dec 2014)
Log Message:
-----------
Changed struct DtcStart to interface. Make external programs build again with minimum changes.
Modified Paths:
--------------
    firebird/trunk/examples/interfaces/01.create.cpp
    firebird/trunk/examples/interfaces/02.update.cpp
    firebird/trunk/examples/interfaces/03.select.cpp
    firebird/trunk/examples/interfaces/04.print_table.cpp
    firebird/trunk/src/include/firebird/FirebirdInterface.idl
    firebird/trunk/src/include/firebird/IdlFbInterfaces.h
    firebird/trunk/src/include/firebird/Interface.h
    firebird/trunk/src/include/firebird/Message.h
    firebird/trunk/src/include/firebird/UdrEngine.h
    firebird/trunk/src/yvalve/DistributedTransaction.cpp
    firebird/trunk/src/yvalve/MasterImplementation.h
    firebird/trunk/src/yvalve/PluginManager.cpp
    firebird/trunk/src/yvalve/why.cpp
Added Paths:
-----------
    firebird/trunk/examples/interfaces/ifaceExamples.h
Modified: firebird/trunk/examples/interfaces/01.create.cpp
===================================================================
--- firebird/trunk/examples/interfaces/01.create.cpp	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/examples/interfaces/01.create.cpp	2014-12-18 16:54:44 UTC (rev 60389)
@@ -33,26 +33,12 @@
  *  Contributor(s): ______________________________________.
  */
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
+#include "ifaceExamples.h"
 
-#include <ibase.h>
-#include <firebird/Interface.h>
-
-using namespace Firebird;
-
 // Here we get access to master interface. This is main interface of firebird,
 // and the only one for getting which there is special function in our API.
 static IMaster* master = fb_get_master_interface();
 
-// Probably not best way of error processing, but it's OK for a sample
-static void check(IStatus* s, const char* text)
-{
-	if (s->getStatus() & IStatus::FB_HAS_ERRORS)
-		throw text;
-}
-
 int main()
 {
 	int rc = 0;
Modified: firebird/trunk/examples/interfaces/02.update.cpp
===================================================================
--- firebird/trunk/examples/interfaces/02.update.cpp	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/examples/interfaces/02.update.cpp	2014-12-18 16:54:44 UTC (rev 60389)
@@ -35,15 +35,8 @@
  *					Alex Peshkov, 2013
  */
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
+#include "ifaceExamples.h"
 
-#include <ibase.h>
-#include <firebird/Interface.h>
-
-using namespace Firebird;
-
 static IMaster* master = fb_get_master_interface();
 
 int get_input(char*, double*);
@@ -53,12 +46,6 @@
     {0.05,  1.00,  0.075,  0.10, 0};
 int Input_ptr = 0;
 
-static void check(IStatus* s, const char* text)
-{
-	if (s->getStatus() & IStatus::FB_HAS_ERRORS)
-		throw text;
-}
-
 int main()
 {
 	int rc = 0;
Modified: firebird/trunk/examples/interfaces/03.select.cpp
===================================================================
--- firebird/trunk/examples/interfaces/03.select.cpp	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/examples/interfaces/03.select.cpp	2014-12-18 16:54:44 UTC (rev 60389)
@@ -33,23 +33,10 @@
  *  Contributor(s): ______________________________________.
  */
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
+#include "ifaceExamples.h"
 
-#include <ibase.h>
-#include <firebird/Interface.h>
-
-using namespace Firebird;
-
 static IMaster* master = fb_get_master_interface();
 
-static void check(IStatus* s, const char* text)
-{
-	if (s->getStatus() & IStatus::FB_HAS_ERRORS)
-		throw text;
-}
-
 int main()
 {
 	int rc = 0;
Modified: firebird/trunk/examples/interfaces/04.print_table.cpp
===================================================================
--- firebird/trunk/examples/interfaces/04.print_table.cpp	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/examples/interfaces/04.print_table.cpp	2014-12-18 16:54:44 UTC (rev 60389)
@@ -32,23 +32,11 @@
  *  All Rights Reserved.
  *  Contributor(s): ______________________________________.
  */
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
 
-#include <ibase.h>
-#include <firebird/Interface.h>
+#include "ifaceExamples.h"
 
-using namespace Firebird;
-
 static IMaster* master = fb_get_master_interface();
 
-static void check(IStatus* s, const char* text)
-{
-	if (s->getStatus() & IStatus::FB_HAS_ERRORS)
-		throw text;
-}
-
 struct MyField
 {
 	const char* name;
Added: firebird/trunk/examples/interfaces/ifaceExamples.h
===================================================================
--- firebird/trunk/examples/interfaces/ifaceExamples.h	                        (rev 0)
+++ firebird/trunk/examples/interfaces/ifaceExamples.h	2014-12-18 16:54:44 UTC (rev 60389)
@@ -0,0 +1,60 @@
+/*
+ *	PROGRAM:	Object oriented API samples.
+ *	MODULE:		ifaceExamples.h
+ *	DESCRIPTION:	A number of common defines for all samples.
+ *
+ *  The contents of this file are subject to the Initial
+ *  Developer's Public License Version 1.0 (the "License");
+ *  you may not use this file except in compliance with the
+ *  License. You may obtain a copy of the License at
+ *  http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
+ *
+ *  Software distributed under the License is distributed AS IS,
+ *  WITHOUT WARRANTY OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing rights
+ *  and limitations under the License.
+ *
+ *  The Original Code was created by Alexander Peshkoff
+ *  for the Firebird Open Source RDBMS project.
+ *
+ *  Copyright (c) 2014 Alexander Peshkoff <pes...@ma...>
+ *  and all contributors signed below.
+ *
+ *  All Rights Reserved.
+ *  Contributor(s): ______________________________________.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <ibase.h>
+#include <firebird/Interface.h>
+
+using namespace Firebird;
+
+typedef FirebirdApi<class ExamplesPolicy> Api;
+FB_USE_API(Api, I)
+
+// Dummy policy - to be enhanced
+class ExamplesPolicy
+{
+public:
+	template <unsigned V, typename T>
+	static inline bool checkVersion(T* versioned, IStatus* status)
+	{ return true; }
+	static void checkException(Api::Status*) { }
+	static void catchException(Api::Status*) { }
+	typedef Api::Status* Status;
+};
+
+
+// Declare function to get access to master interface.
+DECLARE_GET_MASTER(ExamplesPolicy);
+
+// Probably not best way of error processing, but it's OK for a sample
+static void check(IStatus* s, const char* text)
+{
+	if (s->getStatus() & IStatus::FB_HAS_ERRORS)
+		throw text;
+}
Property changes on: firebird/trunk/examples/interfaces/ifaceExamples.h
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/x-chdr
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: firebird/trunk/src/include/firebird/FirebirdInterface.idl
===================================================================
--- firebird/trunk/src/include/firebird/FirebirdInterface.idl	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/src/include/firebird/FirebirdInterface.idl	2014-12-18 16:54:44 UTC (rev 60389)
@@ -533,21 +533,22 @@
 	void setDbCryptCallback(Status status, CryptKeyCallback cryptCallback);
 }
 
-/*** FIXME:
-// DtcStart - structure to start transaction over >1 attachments (former TEB)
-struct DtcStart
+// Helper to start transaction over >1 attachments (former TEB)
+interface DtcStart : Disposable
 {
-	Attachment attachment;
-	const uchar* tpb;
-	uint tpbLength;
+	void setComponent(Status status, Attachment att);
+	void setWithParam(Status status, Attachment att, uint length, const uchar* tpb);
+	uint getCount(Status status);
+	Attachment getAttachment(Status status, uint pos);
+	const uchar* getTpb(Status status, uint pos, uint* length);
 }
-***/
 
 // Distributed transactions coordinator
 interface Dtc : Versioned
 {
-	Transaction start(Status status, uint cnt, DtcStart* components);
+	Transaction start(Status status, DtcStart components);
 	Transaction join(Status status, Transaction one, Transaction two);
+	DtcStart startBuilder(Status status);
 }
 
 
Modified: firebird/trunk/src/include/firebird/IdlFbInterfaces.h
===================================================================
--- firebird/trunk/src/include/firebird/IdlFbInterfaces.h	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/src/include/firebird/IdlFbInterfaces.h	2014-12-18 16:54:44 UTC (rev 60389)
@@ -56,6 +56,7 @@
 	class Attachment;
 	class Service;
 	class Provider;
+	class DtcStart;
 	class Dtc;
 	class Auth;
 	class Writer;
@@ -2009,13 +2010,78 @@
 		}
 	};
 
+	class DtcStart : public Disposable
+	{
+	public:
+		struct VTable : public Disposable::VTable
+		{
+			void (CLOOP_CARG *setComponent)(DtcStart* self, Status* status, Attachment* att) throw();
+			void (CLOOP_CARG *setWithParam)(DtcStart* self, Status* status, Attachment* att, unsigned length, const unsigned char* tpb) throw();
+			unsigned (CLOOP_CARG *getCount)(DtcStart* self, Status* status) throw();
+			Attachment* (CLOOP_CARG *getAttachment)(DtcStart* self, Status* status, unsigned pos) throw();
+			const unsigned char* (CLOOP_CARG *getTpb)(DtcStart* self, Status* status, unsigned pos, unsigned* length) throw();
+		};
+
+	protected:
+		DtcStart(DoNotInherit)
+			: Disposable(DoNotInherit())
+		{
+		}
+
+		~DtcStart()
+		{
+		}
+
+	public:
+		static const unsigned VERSION = 3;
+
+		void setComponent(Status* status, Attachment* att)
+		{
+			typename Policy::Status status2(status);
+			static_cast<VTable*>(this->cloopVTable)->setComponent(this, status2, att);
+			Policy::checkException(status2);
+		}
+
+		void setWithParam(Status* status, Attachment* att, unsigned length, const unsigned char* tpb)
+		{
+			typename Policy::Status status2(status);
+			static_cast<VTable*>(this->cloopVTable)->setWithParam(this, status2, att, length, tpb);
+			Policy::checkException(status2);
+		}
+
+		unsigned getCount(Status* status)
+		{
+			typename Policy::Status status2(status);
+			unsigned ret = static_cast<VTable*>(this->cloopVTable)->getCount(this, status2);
+			Policy::checkException(status2);
+			return ret;
+		}
+
+		Attachment* getAttachment(Status* status, unsigned pos)
+		{
+			typename Policy::Status status2(status);
+			Attachment* ret = static_cast<VTable*>(this->cloopVTable)->getAttachment(this, status2, pos);
+			Policy::checkException(status2);
+			return ret;
+		}
+
+		const unsigned char* getTpb(Status* status, unsigned pos, unsigned* length)
+		{
+			typename Policy::Status status2(status);
+			const unsigned char* ret = static_cast<VTable*>(this->cloopVTable)->getTpb(this, status2, pos, length);
+			Policy::checkException(status2);
+			return ret;
+		}
+	};
+
 	class Dtc : public Versioned
 	{
 	public:
 		struct VTable : public Versioned::VTable
 		{
-			Transaction* (CLOOP_CARG *start)(Dtc* self, Status* status, unsigned cnt, DtcStart* components) throw();
+			Transaction* (CLOOP_CARG *start)(Dtc* self, Status* status, DtcStart* components) throw();
 			Transaction* (CLOOP_CARG *join)(Dtc* self, Status* status, Transaction* one, Transaction* two) throw();
+			DtcStart* (CLOOP_CARG *startBuilder)(Dtc* self, Status* status) throw();
 		};
 
 	protected:
@@ -2031,10 +2097,10 @@
 	public:
 		static const unsigned VERSION = 2;
 
-		Transaction* start(Status* status, unsigned cnt, DtcStart* components)
+		Transaction* start(Status* status, DtcStart* components)
 		{
 			typename Policy::Status status2(status);
-			Transaction* ret = static_cast<VTable*>(this->cloopVTable)->start(this, status2, cnt, components);
+			Transaction* ret = static_cast<VTable*>(this->cloopVTable)->start(this, status2, components);
 			Policy::checkException(status2);
 			return ret;
 		}
@@ -2046,6 +2112,14 @@
 			Policy::checkException(status2);
 			return ret;
 		}
+
+		DtcStart* startBuilder(Status* status)
+		{
+			typename Policy::Status status2(status);
+			DtcStart* ret = static_cast<VTable*>(this->cloopVTable)->startBuilder(this, status2);
+			Policy::checkException(status2);
+			return ret;
+		}
 	};
 
 	class Auth : public PluginBase
@@ -8636,6 +8710,141 @@
 	};
 
 	template <typename Name, typename Base>
+	class DtcStartBaseImpl : public Base
+	{
+	public:
+		typedef DtcStart Declaration;
+
+		DtcStartBaseImpl(DoNotInherit = DoNotInherit())
+		{
+			static struct VTableImpl : Base::VTable
+			{
+				VTableImpl()
+				{
+					this->version = Base::VERSION;
+					this->getModule = &Name::cloopgetModuleDispatcher;
+					this->dispose = &Name::cloopdisposeDispatcher;
+					this->setComponent = &Name::cloopsetComponentDispatcher;
+					this->setWithParam = &Name::cloopsetWithParamDispatcher;
+					this->getCount = &Name::cloopgetCountDispatcher;
+					this->getAttachment = &Name::cloopgetAttachmentDispatcher;
+					this->getTpb = &Name::cloopgetTpbDispatcher;
+				}
+			} vTable;
+
+			this->cloopVTable = &vTable;
+		}
+
+		static void CLOOP_CARG cloopsetComponentDispatcher(DtcStart* self, Status* status, Attachment* att) throw()
+		{
+			try
+			{
+				static_cast<Name*>(self)->Name::setComponent(status, att);
+			}
+			catch (...)
+			{
+				Policy::catchException(status);
+			}
+		}
+
+		static void CLOOP_CARG cloopsetWithParamDispatcher(DtcStart* self, Status* status, Attachment* att, unsigned length, const unsigned char* tpb) throw()
+		{
+			try
+			{
+				static_cast<Name*>(self)->Name::setWithParam(status, att, length, tpb);
+			}
+			catch (...)
+			{
+				Policy::catchException(status);
+			}
+		}
+
+		static unsigned CLOOP_CARG cloopgetCountDispatcher(DtcStart* self, Status* status) throw()
+		{
+			try
+			{
+				return static_cast<Name*>(self)->Name::getCount(status);
+			}
+			catch (...)
+			{
+				Policy::catchException(status);
+				return static_cast<unsigned>(0);
+			}
+		}
+
+		static Attachment* CLOOP_CARG cloopgetAttachmentDispatcher(DtcStart* self, Status* status, unsigned pos) throw()
+		{
+			try
+			{
+				return static_cast<Name*>(self)->Name::getAttachment(status, pos);
+			}
+			catch (...)
+			{
+				Policy::catchException(status);
+				return static_cast<Attachment*>(0);
+			}
+		}
+
+		static const unsigned char* CLOOP_CARG cloopgetTpbDispatcher(DtcStart* self, Status* status, unsigned pos, unsigned* length) throw()
+		{
+			try
+			{
+				return static_cast<Name*>(self)->Name::getTpb(status, pos, length);
+			}
+			catch (...)
+			{
+				Policy::catchException(status);
+				return static_cast<const unsigned char*>(0);
+			}
+		}
+
+		static void CLOOP_CARG cloopdisposeDispatcher(Disposable* self) throw()
+		{
+			try
+			{
+				static_cast<Name*>(self)->Name::dispose();
+			}
+			catch (...)
+			{
+				Policy::catchException(0);
+			}
+		}
+
+		static PluginModule* CLOOP_CARG cloopgetModuleDispatcher(Versioned* self) throw()
+		{
+			try
+			{
+				return static_cast<Name*>(self)->Name::getModule();
+			}
+			catch (...)
+			{
+				Policy::catchException(0);
+				return static_cast<PluginModule*>(0);
+			}
+		}
+	};
+
+	template <typename Name, typename Base = DisposableImpl<Name, Inherit<VersionedImpl<Name, Inherit<DtcStart> > > > >
+	class DtcStartImpl : public DtcStartBaseImpl<Name, Base>
+	{
+	protected:
+		DtcStartImpl(DoNotInherit = DoNotInherit())
+		{
+		}
+
+	public:
+		virtual ~DtcStartImpl()
+		{
+		}
+
+		virtual void setComponent(Status* status, Attachment* att) = 0;
+		virtual void setWithParam(Status* status, Attachment* att, unsigned length, const unsigned char* tpb) = 0;
+		virtual unsigned getCount(Status* status) = 0;
+		virtual Attachment* getAttachment(Status* status, unsigned pos) = 0;
+		virtual const unsigned char* getTpb(Status* status, unsigned pos, unsigned* length) = 0;
+	};
+
+	template <typename Name, typename Base>
 	class DtcBaseImpl : public Base
 	{
 	public:
@@ -8651,17 +8860,18 @@
 					this->getModule = &Name::cloopgetModuleDispatcher;
 					this->start = &Name::cloopstartDispatcher;
 					this->join = &Name::cloopjoinDispatcher;
+					this->startBuilder = &Name::cloopstartBuilderDispatcher;
 				}
 			} vTable;
 
 			this->cloopVTable = &vTable;
 		}
 
-		static Transaction* CLOOP_CARG cloopstartDispatcher(Dtc* self, Status* status, unsigned cnt, DtcStart* components) throw()
+		static Transaction* CLOOP_CARG cloopstartDispatcher(Dtc* self, Status* status, DtcStart* components) throw()
 		{
 			try
 			{
-				return static_cast<Name*>(self)->Name::start(status, cnt, components);
+				return static_cast<Name*>(self)->Name::start(status, components);
 			}
 			catch (...)
 			{
@@ -8683,6 +8893,19 @@
 			}
 		}
 
+		static DtcStart* CLOOP_CARG cloopstartBuilderDispatcher(Dtc* self, Status* status) throw()
+		{
+			try
+			{
+				return static_cast<Name*>(self)->Name::startBuilder(status);
+			}
+			catch (...)
+			{
+				Policy::catchException(status);
+				return static_cast<DtcStart*>(0);
+			}
+		}
+
 		static PluginModule* CLOOP_CARG cloopgetModuleDispatcher(Versioned* self) throw()
 		{
 			try
@@ -8710,8 +8933,9 @@
 		{
 		}
 
-		virtual Transaction* start(Status* status, unsigned cnt, DtcStart* components) = 0;
+		virtual Transaction* start(Status* status, DtcStart* components) = 0;
 		virtual Transaction* join(Status* status, Transaction* one, Transaction* two) = 0;
+		virtual DtcStart* startBuilder(Status* status) = 0;
 	};
 
 	template <typename Name, typename Base>
Modified: firebird/trunk/src/include/firebird/Interface.h
===================================================================
--- firebird/trunk/src/include/firebird/Interface.h	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/src/include/firebird/Interface.h	2014-12-18 16:54:44 UTC (rev 60389)
@@ -42,12 +42,10 @@
 {
 
 struct FbCryptKey;
-struct DtcStart;
 
 #include "IdlFbInterfaces.h"
 
 #define FB_USE_API(name, prefix)	\
-	/* awk <FirebirdInterface.idl '($1 == "interface") {printf "\t\ttypedef name::%s prefix##%s;\n", $2, $2;}' */	\
 	typedef name::Versioned prefix##Versioned;	\
 	typedef name::ReferenceCounted prefix##ReferenceCounted;	\
 	typedef name::Disposable prefix##Disposable;	\
@@ -75,6 +73,7 @@
 	typedef name::Attachment prefix##Attachment;	\
 	typedef name::Service prefix##Service;	\
 	typedef name::Provider prefix##Provider;	\
+	typedef name::DtcStart prefix##DtcStart;	\
 	typedef name::Dtc prefix##Dtc;	\
 	typedef name::Auth prefix##Auth;	\
 	typedef name::Writer prefix##Writer;	\
@@ -174,15 +173,6 @@
 	unsigned decryptLength;			// Ignored when decryptKey is NULL
 };
 
-struct DtcStart
-{
-	IAttachment* attachment;
-	const unsigned char* tpb;
-	unsigned tpbLength;
-};
-
-typedef void PluginEntrypoint(IMaster* masterInterface);
-
 #ifdef INCLUDE_Firebird_H		// Building internal module
 
 // This item is for ISC API emulation only
@@ -196,12 +186,13 @@
 
 #define FB_PLUGIN_ENTRY_POINT firebird_plugin
 
-extern "C"
-{
-	// Additional API function.
-	// Should be used only in non-plugin modules.
-	// All plugins including providers should use passed at init time interface instead.
-	Firebird::IMaster* ISC_EXPORT fb_get_master_interface();
-}
+// Additional API function.
+// Should be used only in non-plugin modules.
+// All plugins including providers should use passed at init time interface instead.
+#define DECLARE_GET_MASTER(P) extern "C" Firebird::FirebirdApi<P>::Master* ISC_EXPORT fb_get_master_interface();
 
+#ifdef INCLUDE_Firebird_H		// Building internal module
+DECLARE_GET_MASTER(Firebird::FirebirdPolicy)
+#endif //INCLUDE_Firebird_H
+
 #endif // FB_INCLUDE_INTERFACE
Modified: firebird/trunk/src/include/firebird/Message.h
===================================================================
--- firebird/trunk/src/include/firebird/Message.h	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/src/include/firebird/Message.h	2014-12-18 16:54:44 UTC (rev 60389)
@@ -30,6 +30,33 @@
 #include <time.h>
 #include <string.h>
 
+//----------------------------------------------------------------
+// This ifdef is a dirty hack to make tests (fbstuff) to compile
+#ifndef INCLUDE_Firebird_H
+
+namespace Firebird
+{
+typedef FirebirdApi<class TempPolicy> Api;
+FB_USE_API(Api, I)
+
+class TempPolicy
+{
+public:
+	template <unsigned V, typename T>
+	static inline bool checkVersion(T* versioned, IStatus* status)
+	{ return true; }
+	static void checkException(Api::Status*) { }
+	static void catchException(Api::Status*) { }
+	typedef Api::Status* Status;
+};
+} //namespace Firebird
+
+DECLARE_GET_MASTER(Firebird::TempPolicy)
+#define INCLUDE_Firebird_H
+
+#endif
+//- END OF HACK --------------------------------------------------
+
 #define FB_MESSAGE(name, fields)	\
 	FB__MESSAGE_I(name, 2, FB_BOOST_PP_CAT(FB__MESSAGE_X fields, 0), )
 
Modified: firebird/trunk/src/include/firebird/UdrEngine.h
===================================================================
--- firebird/trunk/src/include/firebird/UdrEngine.h	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/src/include/firebird/UdrEngine.h	2014-12-18 16:54:44 UTC (rev 60389)
@@ -25,6 +25,34 @@
 
 #include "./Interface.h"
 
+//----------------------------------------------------------------
+// This ifdef is a dirty hack to make tests (fbstuff) to compile
+#ifndef INCLUDE_Firebird_H
+
+namespace Firebird
+{
+typedef FirebirdApi<class TempPolicy> Api;
+FB_USE_API(Api, I)
+
+class TempPolicy
+{
+public:
+	template <unsigned V, typename T>
+	static inline bool checkVersion(T* versioned, IStatus* status)
+	{ return true; }
+	static void checkException(Api::Status*) { }
+	static void catchException(Api::Status*) { }
+	typedef Api::Status* Status;
+};
+} //namespace Firebird
+
+DECLARE_GET_MASTER(Firebird::TempPolicy)
+#define INCLUDE_Firebird_H
+
+#endif
+//- END OF HACK --------------------------------------------------
+
+
 #ifndef FB_EXPORTED
 #if defined(DARWIN)
 #define FB_EXPORTED __attribute__((visibility("default")))
Modified: firebird/trunk/src/yvalve/DistributedTransaction.cpp
===================================================================
--- firebird/trunk/src/yvalve/DistributedTransaction.cpp	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/src/yvalve/DistributedTransaction.cpp	2014-12-18 16:54:44 UTC (rev 60389)
@@ -498,7 +498,7 @@
 
 namespace Why {
 
-YTransaction* Dtc::start(IStatus* status, unsigned int cnt, DtcStart* components)
+YTransaction* Dtc::start(IStatus* status, IDtcStart* components)
 {
 	try
 	{
@@ -506,26 +506,37 @@
 
 		RefPtr<DTransaction> dtransaction(new DTransaction);
 
-		for (unsigned int i = 0; i < cnt; ++i)
+		unsigned cnt = components->getCount(status);
+		if (status->getStatus() & Firebird::IStatus::FB_HAS_ERRORS)
+			status_exception::raise(status);
+
+		for (unsigned i = 0; i < cnt; ++i)
 		{
-			RefPtr<ITransaction> transaction(components[i].attachment->
-				startTransaction(status, components[i].tpbLength, components[i].tpb));
+			RefPtr<IAttachment> att(REF_NO_INCR, components->getAttachment(status, i));
+			if (status->getStatus() & Firebird::IStatus::FB_HAS_ERRORS)
+				status_exception::raise(status);
 
+			unsigned tpbLen;
+			const unsigned char* tpb = components->getTpb(status, i, &tpbLen);
 			if (status->getStatus() & Firebird::IStatus::FB_HAS_ERRORS)
-				return NULL;
+				status_exception::raise(status);
 
-			dtransaction->join(status, transaction);
+			ITransaction* started = att->startTransaction(status, tpbLen, tpb);
+			if (status->getStatus() & Firebird::IStatus::FB_HAS_ERRORS)
+				status_exception::raise(status);
 
+			dtransaction->join(status, started);
 			if (status->getStatus() & Firebird::IStatus::FB_HAS_ERRORS)
 			{
-				LocalStatus tmp;
-				dtransaction->rollback(&tmp);
-				return NULL;
+				started->release();
+				status_exception::raise(status);
 			}
 		}
 
+		YTransaction* rc = new YTransaction(NULL, dtransaction);
 		dtransaction->addRef();
-		return new YTransaction(NULL, dtransaction);
+		components->dispose();
+		return rc;
 	}
 	catch (const Exception& ex)
 	{
@@ -564,4 +575,114 @@
 	return NULL;
 }
 
+class DtcStart : public DisposeIface<Api::DtcStartImpl<DtcStart> >
+{
+public:
+	DtcStart()
+		: components(getPool())
+	{ }
+
+	// IDtcStart implementation
+	void setComponent(IStatus* status, IAttachment* att)
+	{
+		this->setWithParam(status, att, 0, NULL);
+	}
+
+	void setWithParam(IStatus* status, IAttachment* att, unsigned length, const unsigned char* tpb)
+	{
+		try
+		{
+			Component toAdd;
+			toAdd.att = att;
+			toAdd.tpbLen = length;
+			toAdd.tpb = tpb;
+
+			components.add(toAdd);
+			att->addRef();
+		}
+		catch (const Exception& ex)
+		{
+			ex.stuffException(status);
+		}
+	}
+
+	unsigned getCount(IStatus*)
+	{
+		return components.getCount();
+	}
+
+	IAttachment* getAttachment(IStatus* status, unsigned pos)
+	{
+		try
+		{
+			errorOver(pos);
+
+			components[pos].att->addRef();
+			return components[pos].att;
+		}
+		catch (const Exception& ex)
+		{
+			ex.stuffException(status);
+		}
+		return NULL;
+	}
+
+	const unsigned char* getTpb(IStatus* status, unsigned pos, unsigned* length)
+	{
+		try
+		{
+			errorOver(pos);
+
+			*length = components[pos].tpbLen;
+			return components[pos].tpb;
+		}
+		catch (const Exception& ex)
+		{
+			ex.stuffException(status);
+		}
+		return NULL;
+	}
+
+	void dispose()
+	{
+		for (unsigned i = 0; i < components.getCount(); ++i)
+			components[i].att->release();
+
+		delete this;
+	}
+
+private:
+	struct Component
+	{
+		IAttachment* att;
+		unsigned tpbLen;
+		const unsigned char* tpb;
+	};
+
+	HalfStaticArray<Component, 16> components;
+
+	void errorOver(unsigned n)
+	{
+		// TODO: add component num & limit to the message
+		if (n >= components.getCount())
+			(Arg::Gds(isc_random) << "Access to invalid component number in DtcStart").raise();
+	}
+};
+
+IDtcStart* Dtc::startBuilder(IStatus* status)
+{
+	try
+	{
+		status->init();
+
+		return new DtcStart;
+	}
+	catch (const Exception& ex)
+	{
+		ex.stuffException(status);
+	}
+
+	return NULL;
+}
+
 } // namespace Why
Modified: firebird/trunk/src/yvalve/MasterImplementation.h
===================================================================
--- firebird/trunk/src/yvalve/MasterImplementation.h	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/src/yvalve/MasterImplementation.h	2014-12-18 16:54:44 UTC (rev 60389)
@@ -45,10 +45,10 @@
 	{
 	public:
 		// IDtc implementation
-		YTransaction* start(Firebird::IStatus* status,
-			unsigned int cnt, Firebird::DtcStart* components);
+		YTransaction* start(Firebird::IStatus* status, Firebird::IDtcStart* components);
 		YTransaction* join(Firebird::IStatus* status,
 			Firebird::ITransaction* one, Firebird::ITransaction* two);
+		Firebird::IDtcStart* startBuilder(Firebird::IStatus* status);
 	};
 
 	class MasterImplementation : public Firebird::AutoIface<Firebird::Api::MasterImpl<MasterImplementation> >
Modified: firebird/trunk/src/yvalve/PluginManager.cpp
===================================================================
--- firebird/trunk/src/yvalve/PluginManager.cpp	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/src/yvalve/PluginManager.cpp	2014-12-18 16:54:44 UTC (rev 60389)
@@ -946,6 +946,7 @@
 		}
 
 		RefPtr<PluginModule> rc(new PluginModule(module, info.curModule));
+		typedef void PluginEntrypoint(IMaster* masterInterface);
 		PluginEntrypoint* startModule;
 		if (module->findSymbol(STRINGIZE(FB_PLUGIN_ENTRY_POINT), startModule))
 		{
Modified: firebird/trunk/src/yvalve/why.cpp
===================================================================
--- firebird/trunk/src/yvalve/why.cpp	2014-12-18 16:23:03 UTC (rev 60388)
+++ firebird/trunk/src/yvalve/why.cpp	2014-12-18 16:54:44 UTC (rev 60389)
@@ -3407,7 +3407,6 @@
 	StatusVector status(userStatus);
 	TEB* vector = (TEB*) vec;
 	YTransaction* multiTrans = NULL;
-	DtcStart* ds = NULL;
 
 	try
 	{
@@ -3429,22 +3428,20 @@
 			return status[1];
 		}
 
-		HalfStaticArray<DtcStart, 16> dtcStartBuffer;
-		ds = dtcStartBuffer.getBuffer(count);
-		memset(ds, 0, sizeof(DtcStart) * count);
-		DtcStart* const end = ds + count;
+		IDtcStart* ds = MasterImplementation::dtc->startBuilder(&status);
+		if (status.getStatus() & IStatus::FB_HAS_ERRORS)
+			return status[1];
 
-		for (DtcStart* p = ds; p < end; ++p, ++vector)
+		for (unsigned u = 0; u < count; ++u)
 		{
 			RefPtr<YAttachment> attachment(translateHandle(attachments, vector->teb_database));
-			p->attachment = attachment;
-			attachment->addRef();
-			p->tpbLength = vector->teb_tpb_length;
-			p->tpb = reinterpret_cast<const unsigned char*>(vector->teb_tpb);
+			ds->setWithParam(&status, attachment, vector->teb_tpb_length,
+				reinterpret_cast<const unsigned char*>(vector->teb_tpb));
+			if (status.getStatus() & IStatus::FB_HAS_ERRORS)
+				return status[1];
 		}
 
-		multiTrans = MasterImplementation::dtc->start(&status, count, ds);
-
+		multiTrans = MasterImplementation::dtc->start(&status, ds);
 		if (multiTrans)
 			*traHandle = multiTrans->getHandle();
 	}
@@ -3458,17 +3455,6 @@
 		e.stuffException(&status);
 	}
 
-	if (ds)
-	{
-		DtcStart* const end = ds + count;
-
-		for (DtcStart* p = ds; p < end; ++p)
-		{
-			if (p->attachment)
-				p->attachment->release();
-		}
-	}
-
 	return status[1];
 }
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2014-12-19 00:15:41
       | 
| Revision: 60393
          http://sourceforge.net/p/firebird/code/60393
Author:   firebirds
Date:     2014-12-19 00:15:32 +0000 (Fri, 19 Dec 2014)
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	2014-12-18 20:39:12 UTC (rev 60392)
+++ firebird/trunk/ChangeLog	2014-12-19 00:15:32 UTC (rev 60393)
@@ -1,3 +1,67 @@
+ 2014-12-18 17:54  dimitr 
+   M src/isql/isql.epp
+Simplified code and attempted a second-time solution for CORE-4259.
+
+ 2014-12-18 16:54  alexpeshkoff 
+   M examples/interfaces/01.create.cpp
+   M examples/interfaces/02.update.cpp
+   M examples/interfaces/03.select.cpp
+   M examples/interfaces/04.print_table.cpp
+   A examples/interfaces/ifaceExamples.h
+   M src/include/firebird/FirebirdInterface.idl
+   M src/include/firebird/IdlFbInterfaces.h
+   M src/include/firebird/Interface.h
+   M src/include/firebird/Message.h
+   M src/include/firebird/UdrEngine.h
+   M src/yvalve/DistributedTransaction.cpp
+   M src/yvalve/MasterImplementation.h
+   M src/yvalve/PluginManager.cpp
+   M src/yvalve/why.cpp
+Changed struct DtcStart to interface. Make external programs build again with minimum changes.
+
+ 2014-12-18 16:23  alexpeshkoff 
+   M src/common/classes/SafeArg.h
+   M src/common/classes/array.h
+   M src/common/classes/fb_string.h
+   M src/common/classes/objects_array.h
+   M src/common/classes/stack.h
+   M src/common/classes/vector.h
+getCount() in FB classes never throws exceptions
+
+ 2014-12-18 16:20  alexpeshkoff 
+   M builds/posix/prefix.linux_amd64
+Avoid annoying warning in remote.h
+
+ 2014-12-18 10:58  hvlad 
+   M src/auth/trusted/AuthSspi.cpp
+Patch for mingw by Alexey Pavlov : Don't use hack for mingw-w64
+
+ 2014-12-18 10:56  hvlad 
+   M src/common/common.h
+Patch for mingw by Alexey Pavlov : Mingw also have posix threads library so to resolve conflict we need guard using posix threads for Windows.
+
+ 2014-12-18 10:48  hvlad 
+   M src/common/classes/locks.cpp
+   M src/common/os/win32/guid.cpp
+Patch for mingw by Alexey Pavlov : Mingw compilers don't support Win98
+
+ 2014-12-18 10:38  hvlad 
+   M src/common/classes/locks.cpp
+   M src/common/classes/locks.h
+Patch for mingw by Alexey Pavlov : Fix using function pointer
+
+ 2014-12-18 10:20  alexpeshkoff 
+   M src/yvalve/gds.cpp
+   M src/yvalve/gds_proto.h
+Patch from Alexey - marked unused function as NOT_USED_OR_REPLACED
+
+ 2014-12-18 07:24  hvlad 
+   M src/common/os/os_utils.h
+   M src/common/os/win32/os_utils.cpp
+   M src/remote/inet.cpp
+   M src/remote/remote.h
+Fix Windows build
+
  2014-12-17 14:31  alexpeshkoff 
    M configure.ac
    M src/burp/burp.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-18 20:39:12 UTC (rev 60392)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-19 00:15:32 UTC (rev 60393)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31488
+  FORMAL BUILD NUMBER:31498
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31488"
-#define FILE_VER_STRING "WI-T3.0.0.31488"
-#define LICENSE_VER_STRING "WI-T3.0.0.31488"
-#define FILE_VER_NUMBER 3, 0, 0, 31488
+#define PRODUCT_VER_STRING "3.0.0.31498"
+#define FILE_VER_STRING "WI-T3.0.0.31498"
+#define LICENSE_VER_STRING "WI-T3.0.0.31498"
+#define FILE_VER_NUMBER 3, 0, 0, 31498
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31488"
+#define FB_BUILD_NO "31498"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-18 20:39:12 UTC (rev 60392)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-19 00:15:32 UTC (rev 60393)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31488
+BuildNum=31498
 
 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...> - 2014-12-19 15:24:57
       | 
| Revision: 60397
          http://sourceforge.net/p/firebird/code/60397
Author:   asfernandes
Date:     2014-12-19 15:24:44 +0000 (Fri, 19 Dec 2014)
Log Message:
-----------
Generate interfaces with I-prefix.
Modified Paths:
--------------
    firebird/trunk/examples/dbcrypt/CryptApplication.cpp
    firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp
    firebird/trunk/examples/dbcrypt/DbCrypt.cpp
    firebird/trunk/examples/interfaces/ifaceExamples.h
    firebird/trunk/src/auth/AuthDbg.h
    firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp
    firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp
    firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp
    firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h
    firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h
    firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp
    firebird/trunk/src/auth/trusted/AuthSspi.h
    firebird/trunk/src/common/Auth.h
    firebird/trunk/src/common/MsgMetadata.h
    firebird/trunk/src/common/StatusHolder.h
    firebird/trunk/src/common/classes/ImplementHelper.h
    firebird/trunk/src/common/config/config.h
    firebird/trunk/src/common/isc_sync.cpp
    firebird/trunk/src/common/security.h
    firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp
    firebird/trunk/src/include/firebird/IdlFbInterfaces.h
    firebird/trunk/src/include/firebird/Interface.h
    firebird/trunk/src/include/firebird/Message.h
    firebird/trunk/src/include/firebird/UdrCppEngine.h
    firebird/trunk/src/include/firebird/UdrEngine.h
    firebird/trunk/src/include/gen/ids.h
    firebird/trunk/src/isql/show.epp
    firebird/trunk/src/jrd/Database.h
    firebird/trunk/src/jrd/EngineInterface.h
    firebird/trunk/src/jrd/ExtEngineManager.h
    firebird/trunk/src/jrd/UserManagement.cpp
    firebird/trunk/src/jrd/jrd.cpp
    firebird/trunk/src/jrd/trace/TraceConfigStorage.h
    firebird/trunk/src/jrd/trace/TraceObjects.cpp
    firebird/trunk/src/jrd/trace/TraceObjects.h
    firebird/trunk/src/plugins/crypt/arc4/Arc4.cpp
    firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp
    firebird/trunk/src/remote/client/interface.cpp
    firebird/trunk/src/remote/remote.h
    firebird/trunk/src/remote/server/server.cpp
    firebird/trunk/src/utilities/gsec/gsec.cpp
    firebird/trunk/src/utilities/ntrace/PluginLogWriter.h
    firebird/trunk/src/utilities/ntrace/TracePluginImpl.h
    firebird/trunk/src/utilities/ntrace/traceplugin.cpp
    firebird/trunk/src/yvalve/DistributedTransaction.cpp
    firebird/trunk/src/yvalve/MasterImplementation.cpp
    firebird/trunk/src/yvalve/MasterImplementation.h
    firebird/trunk/src/yvalve/PluginManager.cpp
    firebird/trunk/src/yvalve/PluginManager.h
    firebird/trunk/src/yvalve/YObjects.h
    firebird/trunk/src/yvalve/utl.cpp
    firebird/trunk/src/yvalve/why.cpp
Modified: firebird/trunk/examples/dbcrypt/CryptApplication.cpp
===================================================================
--- firebird/trunk/examples/dbcrypt/CryptApplication.cpp	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/examples/dbcrypt/CryptApplication.cpp	2014-12-19 15:24:44 UTC (rev 60397)
@@ -34,7 +34,7 @@
 
 using namespace Firebird;
 
-class CryptKey : public Api::CryptKeyCallbackImpl<CryptKey>
+class CryptKey : public Api::ICryptKeyCallbackImpl<CryptKey>
 {
 public:
 	unsigned int callback(unsigned int, const void*, unsigned int length, void* buffer)
Modified: firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp
===================================================================
--- firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp	2014-12-19 15:24:44 UTC (rev 60397)
@@ -44,7 +44,7 @@
 IMaster* master = NULL;
 IPluginManager* pluginManager = NULL;
 
-class PluginModule : public Api::PluginModuleImpl<PluginModule>
+class PluginModule : public Api::IPluginModuleImpl<PluginModule>
 {
 public:
 	PluginModule()
@@ -82,7 +82,7 @@
 
 PluginModule module;
 
-class CryptKeyHolder : public Api::KeyHolderPluginImpl<CryptKeyHolder>
+class CryptKeyHolder : public Api::IKeyHolderPluginImpl<CryptKeyHolder>
 {
 public:
 	explicit CryptKeyHolder(IPluginConfig* cnf) throw()
@@ -136,7 +136,7 @@
 	}
 
 private:
-	class CallbackInterface : public Api::CryptKeyCallbackImpl<CallbackInterface>
+	class CallbackInterface : public Api::ICryptKeyCallbackImpl<CallbackInterface>
 	{
 	public:
 		explicit CallbackInterface(CryptKeyHolder* p)
@@ -235,7 +235,7 @@
 	return &callbackInterface;
 }
 
-class Factory : public Api::PluginFactoryImpl<Factory>
+class Factory : public Api::IPluginFactoryImpl<Factory>
 {
 public:
 	IPluginModule* getModule()
Modified: firebird/trunk/examples/dbcrypt/DbCrypt.cpp
===================================================================
--- firebird/trunk/examples/dbcrypt/DbCrypt.cpp	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/examples/dbcrypt/DbCrypt.cpp	2014-12-19 15:24:44 UTC (rev 60397)
@@ -41,7 +41,7 @@
 IMaster* master = NULL;
 IPluginManager* pluginManager = NULL;
 
-class PluginModule : public Api::PluginModuleImpl<PluginModule>
+class PluginModule : public Api::IPluginModuleImpl<PluginModule>
 {
 public:
 	PluginModule()
@@ -79,7 +79,7 @@
 
 PluginModule module;
 
-class DbCrypt : public Api::DbCryptPluginImpl<DbCrypt>
+class DbCrypt : public Api::IDbCryptPluginImpl<DbCrypt>
 {
 public:
 	explicit DbCrypt(IPluginConfig* cnf) throw()
@@ -243,7 +243,7 @@
 	noKeyError(status);
 }
 
-class Factory : public Api::PluginFactoryImpl<Factory>
+class Factory : public Api::IPluginFactoryImpl<Factory>
 {
 public:
 	IPluginModule* getModule()
Modified: firebird/trunk/examples/interfaces/ifaceExamples.h
===================================================================
--- firebird/trunk/examples/interfaces/ifaceExamples.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/examples/interfaces/ifaceExamples.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -34,7 +34,7 @@
 using namespace Firebird;
 
 typedef FirebirdApi<class ExamplesPolicy> Api;
-FB_USE_API(Api, I)
+FB_USE_API(Api)
 
 // Dummy policy - to be enhanced
 class ExamplesPolicy
@@ -43,9 +43,9 @@
 	template <unsigned V, typename T>
 	static inline bool checkVersion(T* versioned, IStatus* status)
 	{ return true; }
-	static void checkException(Api::Status*) { }
-	static void catchException(Api::Status*) { }
-	typedef Api::Status* Status;
+	static void checkException(Api::IStatus*) { }
+	static void catchException(Api::IStatus*) { }
+	typedef Api::IStatus* IStatus;
 };
 
 
Modified: firebird/trunk/src/auth/AuthDbg.h
===================================================================
--- firebird/trunk/src/auth/AuthDbg.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/auth/AuthDbg.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -46,7 +46,7 @@
 // The idea of debug plugin is to send some data from server to client,
 // modify them on client and return result (which becomes login name) to the server
 
-class DebugServer FB_FINAL : public Firebird::StdPlugin<Firebird::Api::ServerImpl<DebugServer> >
+class DebugServer FB_FINAL : public Firebird::StdPlugin<Firebird::Api::IServerImpl<DebugServer> >
 {
 public:
 	explicit DebugServer(Firebird::IPluginConfig*);
@@ -60,7 +60,7 @@
 	Firebird::RefPtr<Firebird::IConfig> config;
 };
 
-class DebugClient FB_FINAL : public Firebird::StdPlugin<Firebird::Api::ClientImpl<DebugClient> >
+class DebugClient FB_FINAL : public Firebird::StdPlugin<Firebird::Api::IClientImpl<DebugClient> >
 {
 public:
 	DebugClient(Firebird::IPluginConfig*);
Modified: firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp
===================================================================
--- firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp	2014-12-19 15:24:44 UTC (rev 60397)
@@ -34,7 +34,7 @@
 
 namespace Auth {
 
-class SrpClient FB_FINAL : public StdPlugin<Api::ClientImpl<SrpClient> >
+class SrpClient FB_FINAL : public StdPlugin<Api::IClientImpl<SrpClient> >
 {
 public:
 	explicit SrpClient(IPluginConfig*)
Modified: firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp
===================================================================
--- firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp	2014-12-19 15:24:44 UTC (rev 60397)
@@ -60,7 +60,7 @@
 
 namespace Auth {
 
-class SrpManagement FB_FINAL : public Firebird::StdPlugin<Firebird::Api::ManagementImpl<SrpManagement> >
+class SrpManagement FB_FINAL : public Firebird::StdPlugin<Firebird::Api::IManagementImpl<SrpManagement> >
 {
 public:
 	explicit SrpManagement(Firebird::IPluginConfig* par)
Modified: firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp
===================================================================
--- firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp	2014-12-19 15:24:44 UTC (rev 60397)
@@ -48,7 +48,7 @@
 
 namespace Auth {
 
-class SrpServer FB_FINAL : public StdPlugin<Api::ServerImpl<SrpServer> >
+class SrpServer FB_FINAL : public StdPlugin<Api::IServerImpl<SrpServer> >
 {
 public:
 	explicit SrpServer(IPluginConfig* par)
Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h
===================================================================
--- firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -35,7 +35,7 @@
 // Required to stop analyzing rest of plugins before first roundtrip to server
 // if legacy login is present in DPB
 
-class SecurityDatabaseClient FB_FINAL : public Firebird::StdPlugin<Firebird::Api::ClientImpl<SecurityDatabaseClient> >
+class SecurityDatabaseClient FB_FINAL : public Firebird::StdPlugin<Firebird::Api::IClientImpl<SecurityDatabaseClient> >
 {
 public:
 	explicit SecurityDatabaseClient(Firebird::IPluginConfig*)
Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h
===================================================================
--- firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -33,7 +33,7 @@
 
 namespace Auth {
 
-class SecurityDatabaseManagement FB_FINAL : public Firebird::StdPlugin<Firebird::Api::ManagementImpl<SecurityDatabaseManagement> >
+class SecurityDatabaseManagement FB_FINAL : public Firebird::StdPlugin<Firebird::Api::IManagementImpl<SecurityDatabaseManagement> >
 {
 public:
 	explicit SecurityDatabaseManagement(Firebird::IPluginConfig* par);
Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp
===================================================================
--- firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp	2014-12-19 15:24:44 UTC (rev 60397)
@@ -123,7 +123,7 @@
 
 namespace Auth {
 
-class SecurityDatabaseServer FB_FINAL : public Firebird::StdPlugin<Firebird::Api::ServerImpl<SecurityDatabaseServer> >
+class SecurityDatabaseServer FB_FINAL : public Firebird::StdPlugin<Firebird::Api::IServerImpl<SecurityDatabaseServer> >
 {
 public:
 	explicit SecurityDatabaseServer(Firebird::IPluginConfig* p)
@@ -138,7 +138,7 @@
 	Firebird::RefPtr<Firebird::IPluginConfig> iParameter;
 };
 
-class SecurityDatabase FB_FINAL : public Firebird::RefCntIface<Firebird::Api::TimerImpl<SecurityDatabase> >
+class SecurityDatabase FB_FINAL : public Firebird::RefCntIface<Firebird::Api::ITimerImpl<SecurityDatabase> >
 {
 public:
 	int verify(IWriter* authBlock, IServerBlock* sBlock);
Modified: firebird/trunk/src/auth/trusted/AuthSspi.h
===================================================================
--- firebird/trunk/src/auth/trusted/AuthSspi.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/auth/trusted/AuthSspi.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -100,7 +100,7 @@
 	bool getLogin(Firebird::string& login, bool& wh);
 };
 
-class WinSspiServer : public Firebird::StdPlugin<Firebird::Api::ServerImpl<WinSspiServer> >
+class WinSspiServer : public Firebird::StdPlugin<Firebird::Api::IServerImpl<WinSspiServer> >
 {
 public:
 	// IServer implementation
@@ -114,7 +114,7 @@
 	AuthSspi sspi;
 };
 
-class WinSspiClient : public Firebird::StdPlugin<Firebird::Api::ClientImpl<WinSspiClient> >
+class WinSspiClient : public Firebird::StdPlugin<Firebird::Api::IClientImpl<WinSspiClient> >
 {
 public:
 	// IClient implementation
Modified: firebird/trunk/src/common/Auth.h
===================================================================
--- firebird/trunk/src/common/Auth.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/common/Auth.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -39,7 +39,7 @@
 
 namespace Auth {
 
-class WriterImplementation : public Firebird::AutoIface<Firebird::Api::WriterImpl<WriterImplementation> >
+class WriterImplementation : public Firebird::AutoIface<Firebird::Api::IWriterImpl<WriterImplementation> >
 {
 public:
 	WriterImplementation();
Modified: firebird/trunk/src/common/MsgMetadata.h
===================================================================
--- firebird/trunk/src/common/MsgMetadata.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/common/MsgMetadata.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -38,7 +38,7 @@
 class StatementMetadata;
 class MetadataFromBlr;
 
-class MsgMetadata : public RefCntIface<Api::MessageMetadataImpl<MsgMetadata> >
+class MsgMetadata : public RefCntIface<Api::IMessageMetadataImpl<MsgMetadata> >
 {
 	friend class MetadataBuilder;
 	friend class StatementMetadata;
@@ -278,7 +278,7 @@
 	unsigned length;
 };
 
-//class AttMetadata : public Api::MessageMetadataBaseImpl<AttMetadata, MsgMetadata>
+//class AttMetadata : public Api::IMessageMetadataBaseImpl<AttMetadata, MsgMetadata>
 class AttMetadata : public MsgMetadata
 {
 public:
@@ -292,7 +292,7 @@
 	RefPtr<RefCounted> attachment;
 };
 
-class MetadataBuilder FB_FINAL : public RefCntIface<Api::MetadataBuilderImpl<MetadataBuilder> >
+class MetadataBuilder FB_FINAL : public RefCntIface<Api::IMetadataBuilderImpl<MetadataBuilder> >
 {
 public:
 	explicit MetadataBuilder(const MsgMetadata* from);
Modified: firebird/trunk/src/common/StatusHolder.h
===================================================================
--- firebird/trunk/src/common/StatusHolder.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/common/StatusHolder.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -37,7 +37,7 @@
 namespace Firebird {
 
 template <class Final>
-class BaseStatus : public Api::StatusImpl<Final>
+class BaseStatus : public Api::IStatusImpl<Final>
 {
 public:
 	// IStatus implementation
Modified: firebird/trunk/src/common/classes/ImplementHelper.h
===================================================================
--- firebird/trunk/src/common/classes/ImplementHelper.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/common/classes/ImplementHelper.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -135,7 +135,7 @@
 
 // Trivial factory
 template <class P>
-class SimpleFactoryBase : public AutoIface<Api::PluginFactoryImpl<SimpleFactoryBase<P> > >
+class SimpleFactoryBase : public AutoIface<Api::IPluginFactoryImpl<SimpleFactoryBase<P> > >
 {
 public:
 	IPluginBase* createPlugin(IStatus* status, IPluginConfig* factoryParameter)
@@ -266,7 +266,7 @@
 // when yvalve is starting fb_shutdown(). This causes almost unavoidable segfault.
 // To avoid it this class is added - it detects spontaneous (not by PluginManager)
 // module unload and notifies PluginManager about this said fact.
-class UnloadDetectorHelper FB_FINAL : public VersionedIface<Api::PluginModuleImpl<UnloadDetectorHelper> >
+class UnloadDetectorHelper FB_FINAL : public VersionedIface<Api::IPluginModuleImpl<UnloadDetectorHelper> >
 {
 public:
 	typedef void VoidNoParam();
Modified: firebird/trunk/src/common/config/config.h
===================================================================
--- firebird/trunk/src/common/config/config.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/common/config/config.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -339,7 +339,7 @@
 };
 
 // Implementation of interface to access master configuration file
-class FirebirdConf FB_FINAL : public Firebird::RefCntIface<Firebird::Api::FirebirdConfImpl<FirebirdConf> >
+class FirebirdConf FB_FINAL : public Firebird::RefCntIface<Firebird::Api::IFirebirdConfImpl<FirebirdConf> >
 {
 public:
 	FirebirdConf(Config* existingConfig)
Modified: firebird/trunk/src/common/isc_sync.cpp
===================================================================
--- firebird/trunk/src/common/isc_sync.cpp	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/common/isc_sync.cpp	2014-12-19 15:24:44 UTC (rev 60397)
@@ -952,7 +952,7 @@
 
 namespace {
 
-class TimerEntry FB_FINAL : public Firebird::RefCntIface<Firebird::Api::TimerImpl<TimerEntry> >
+class TimerEntry FB_FINAL : public Firebird::RefCntIface<Firebird::Api::ITimerImpl<TimerEntry> >
 {
 public:
 	TimerEntry(int id, USHORT num)
Modified: firebird/trunk/src/common/security.h
===================================================================
--- firebird/trunk/src/common/security.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/common/security.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -31,7 +31,7 @@
 
 namespace Auth {
 
-class CharField : public Firebird::AutoIface<Firebird::Api::CharUserFieldImpl<CharField> >
+class CharField : public Firebird::AutoIface<Firebird::Api::ICharUserFieldImpl<CharField> >
 {
 public:
 	CharField()
@@ -96,7 +96,7 @@
 	Firebird::string value;
 };
 
-class IntField : public Firebird::AutoIface<Firebird::Api::IntUserFieldImpl<IntField> >
+class IntField : public Firebird::AutoIface<Firebird::Api::IIntUserFieldImpl<IntField> >
 {
 public:
 	IntField()
@@ -151,7 +151,7 @@
 
 typedef Firebird::Array<UCHAR> AuthenticationBlock;
 
-class UserData : public Firebird::VersionedIface<Firebird::Api::UserImpl<UserData> >
+class UserData : public Firebird::VersionedIface<Firebird::Api::IUserImpl<UserData> >
 {
 public:
 	UserData()
Modified: firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp
===================================================================
--- firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp	2014-12-19 15:24:44 UTC (rev 60397)
@@ -684,7 +684,7 @@
 
 using namespace Firebird;
 
-class DummyMasterImpl : public FirebirdApi<FirebirdPolicy>::MasterImpl<DummyMasterImpl>
+class DummyMasterImpl : public FirebirdApi<FirebirdPolicy>::IMasterImpl<DummyMasterImpl>
 {
 public:
 	// IMaster implementation (almost dummy, for boot build)
Modified: firebird/trunk/src/include/firebird/IdlFbInterfaces.h
===================================================================
--- firebird/trunk/src/include/firebird/IdlFbInterfaces.h	2014-12-19 14:49:44 UTC (rev 60396)
+++ firebird/trunk/src/include/firebird/IdlFbInterfaces.h	2014-12-19 15:24:44 UTC (rev 60397)
@@ -3,6 +3,8 @@
 #ifndef IDL_FB_INTERFACES_H
 #define IDL_FB_INTERFACES_H
 
+#include <stdint.h>
+
 #ifndef CLOOP_CARG
 #define CLOOP_CARG
 #endif
@@ -29,133 +31,133 @@
 public:
 	// Forward interfaces declarations
 
-	class Versioned;
-	class ReferenceCounted;
-	class Disposable;
-	class Status;
-	class Master;
-	class PluginBase;
-	class PluginSet;
-	class ConfigEntry;
-	class Config;
-	class FirebirdConf;
-	class PluginConfig;
-	class PluginFactory;
-	class PluginModule;
-	class PluginManager;
-	class ConfigManager;
-	class EventCallback;
-	class Blob;
-	class Transaction;
-	class MessageMetadata;
-	class MetadataBuilder;
-	class ResultSet;
-	class Statement;
-	class Request;
-	class Events;
-	class Attachment;
-	class Service;
-	class Provider;
-	class DtcStart;
-	class Dtc;
-	class Auth;
-	class Writer;
-	class ServerBlock;
-	class ClientBlock;
-	class Server;
-	class Client;
-	class UserField;
-	class CharUserField;
-	class IntUserField;
-	class User;
-	class ListUsers;
-	class LogonInfo;
-	class Management;
-	class WireCryptPlugin;
-	class CryptKeyCallback;
-	class KeyHolderPlugin;
-	class DbCryptPlugin;
-	class ExternalContext;
-	class ExternalResultSet;
-	class ExternalFunction;
-	class ExternalProcedure;
-	class ExternalTrigger;
-	class RoutineMetadata;
-	class ExternalEngine;
-	class Timer;
-	class TimerControl;
-	class VersionCallback;
-	class Utl;
-	class TraceConnection;
-	class TraceDatabaseConnection;
-	class TraceTransaction;
-	class TraceParams;
-	class TraceStatement;
-	class TraceSQLStatement;
-	class TraceBLRStatement;
-	class TraceDYNRequest;
-	class TraceContextVariable;
-	class TraceProcedure;
-	class TraceFunction;
-	class TraceTrigger;
-	class TraceServiceConnection;
-	class TraceStatusVector;
-	class TraceSweepInfo;
-	class TraceLogWriter;
-	class TraceInitInfo;
-	class TracePlugin;
-	class TraceFactory;
+	class IVersioned;
+	class IReferenceCounted;
+	class IDisposable;
+	class IStatus;
+	class IMaster;
+	class IPluginBase;
+	class IPluginSet;
+	class IConfigEntry;
+	class IConfig;
+	class IFirebirdConf;
+	class IPluginConfig;
+	class IPluginFactory;
+	class IPluginModule;
+	class IPluginManager;
+	class IConfigManager;
+	class IEventCallback;
+	class IBlob;
+	class ITransaction;
+	class IMessageMetadata;
+	class IMetadataBuilder;
+	class IResultSet;
+	class IStatement;
+	class IRequest;
+	class IEvents;
+	class IAttachment;
+	class IService;
+	class IProvider;
+	class IDtcStart;
+	class IDtc;
+	class IAuth;
+	class IWriter;
+	class IServerBlock;
+	class IClientBlock;
+	class IServer;
+	class IClient;
+	class IUserField;
+	class ICharUserField;
+	class IIntUserField;
+	class IUser;
+	class IListUsers;
+	class ILogonInfo;
+	class IManagement;
+	class IWireCryptPlugin;
+	class ICryptKeyCallback;
+	class IKeyHolderPlugin;
+	class IDbCryptPlugin;
+	class IExternalContext;
+	class IExternalResultSet;
+	class IExternalFunction;
+	class IExternalProcedure;
+	class IExternalTrigger;
+	class IRoutineMetadata;
+	class IExternalEngine;
+	class ITimer;
+	class ITimerControl;
+	class IVersionCallback;
+	class IUtl;
+	class ITraceConnection;
+	class ITraceDatabaseConnection;
+	class ITraceTransaction;
+	class ITraceParams;
+	class ITraceStatement;
+	class ITraceSQLStatement;
+	class ITraceBLRStatement;
+	class ITraceDYNRequest;
+	class ITraceContextVariable;
+	class ITraceProcedure;
+	class ITraceFunction;
+	class ITraceTrigger;
+	class ITraceServiceConnection;
+	class ITraceStatusVector;
+	class ITraceSweepInfo;
+	class ITraceLogWriter;
+	class ITraceInitInfo;
+	class ITracePlugin;
+	class ITraceFactory;
 
 	// Interfaces declarations
 
-	class Versioned
+	class IVersioned
 	{
 	public:
 		struct VTable
 		{
 			void* cloopDummy[1];
 			uintptr_t version;
-			PluginModule* (CLOOP_CARG *getModule)(Versioned* self) throw();
+			IPluginModule* (CLOOP_CARG *getModule)(IVersioned* self) throw();
 		};
 
 		void* cloopDummy[1];
 		VTable* cloopVTable;
 
 	protected:
-		Versioned(DoNotInherit)
+		IVersioned(DoNotInherit)
 		{
 		}
 
-		~Versioned()
+		~IVersioned()
 		{
 		}
 
 	public:
 		static const unsigned VERSION = 1;
 
-		PluginModule* getModule()
+		IPluginModule* getModule()
 		{
-			PluginModule* ret = static_cast<VTable*>(this->cloopVTable)->getModule(this);
+			IPluginModule* ret = static_cast<VTable*>(this->cloopVTable)->getModule(this);
 			return ret;
 		}
 	};
 
-	class ReferenceCounted : public Versioned
+	class IReferenceCounted : public IVersioned
 	{
 	public:
-		struct VTable : public Versioned::VTable
+		struct VTable : public IVersioned::VTable
 		{
-			void (CLOOP_CARG *addRef)(ReferenceCounted* self) throw();
-			int (CLOOP_CARG *release)(ReferenceCounted* self) throw();
+			void (CLOOP_CARG *addRef)(IReferenceCounted* self) throw();
+			int (CLOOP_CARG *release)(IReferenceCounted* self) throw();
 		};
 
 	protected:
-		ReferenceCounted(DoNotInherit)
-			: Versioned(DoNotInherit())
+		IReferenceCounted(DoNotInherit)
+			: IVersioned(DoNotInherit())
 		{
 		}
 
-		~ReferenceCounted()
+		~IReferenceCounted()
 		{
 		}
 
@@ -174,21 +176,21 @@
 		}
 	};
 
-	class Disposable : public Versioned
+	class IDisposable : public IVersioned
 	{
 	public:
-		struct VTable : public Versioned::VTable
+		struct VTable : public IVersioned::VTable
 		{
-			void (CLOOP_CARG *dispose)(Disposable* self) throw();
+			void (CLOOP_CARG *dispose)(IDisposable* self) throw();
 		};
 
 	protected:
-		Disposable(DoNotInherit)
-			: Versioned(DoNotInherit())
+		IDisposable(DoNotInherit)
+			: IVersioned(DoNotInherit())
 		{
 		}
 
-		~Disposable()
+		~IDisposable()
 		{
 		}
 
@@ -201,28 +203,28 @@
 		}
 	};
 
-	class Status : public Disposable
+	class IStatus : public IDisposable
 	{
 	public:
-		struct VTable : public Disposable::VTable
+		struct VTable : public IDisposable::VTable
 		{
-			void (CLOOP_CARG *init)(Status* self) throw();
-			unsigned (CLOOP_CARG *getStatus)(const Status* self) throw();
-			void (CLOOP_CARG *setErrors2)(Status* self, unsigned length, const intptr_t* value) throw();
-			void (CLOOP_CARG *setWarnings2)(Status* self, unsigned length, const intptr_t* value) throw();
-			void (CLOOP_CARG *setErrors)(Status* self, const intptr_t* value) throw();
-			void (CLOOP_CARG *setWarnings)(Status* self, const intptr_t* value) throw();
-			const intptr_t* (CLOOP_CARG *getErrors)(const Status* self) throw();
-			const intptr_t* (CLOOP_CARG *getWarnings)(const Status* self) throw();
+			void (CLOOP_CARG *init)(IStatus* self) throw();
+			unsigned (CLOOP_CARG *getStatus)(const IStatus* self) throw();
+			void (CLOOP_CARG *setErrors2)(IStatus* self, unsigned length, const intptr_t* value) throw();
+			void (CLOOP_CARG *setWarnings2)(IStatus* self, unsigned length, const intptr_t* value) throw();
+			void (CLOOP_CARG *setErrors)(IStatus* self, const intptr_t* value) throw();
+			void (CLOOP_CARG *setWarnings)(IStatus* self, const intptr_t* value) throw();
+			const intptr_t* (CLOOP_CARG *getErrors)(const IStatus* self) throw();
+			const intptr_t* (CLOOP_CARG *getWarnings)(const IStatus* self) throw();
 		};
 
 	protected:
-		Status(DoNotInherit)
-			: Disposable(DoNotInherit())
+		IStatus(DoNotInherit)
+			: IDisposable(DoNotInherit())
 		{
 		}
 
-		~Status()
+		~IStatus()
 		{
 		}
 
@@ -280,54 +282,54 @@
 		}
 	};
 
-	class Master : public Versioned
+	class IMaster : public IVersioned
 	{
 	public:
-		struct VTable : public Versioned::VTable
+		struct VTable : public IVersioned::VTable
 		{
-			Status* (CLOOP_CARG *getStatus)(Master* self) throw();
-			Provider* (CLOOP_CARG *getDispatcher)(Master* self) throw();
-			PluginManager* (CLOOP_CARG *getPluginManager)(Master* self) throw();
-			const char* (CLOOP_CARG *circularAlloc)(Master* self, const char* s, unsigned len, intptr_t thr) throw();
-			TimerControl* (CLOOP_CARG *getTimerControl)(Master* self) throw();
-			Dtc* (CLOOP_CARG *getDtc)(Master* self) throw();
-			Attachment* (CLOOP_CARG *registerAttachment)(Master* self, Provider* provider, Attachment* attachment) throw();
-			Transaction* (CLOOP_CARG *registerTransaction)(Master* self, Attachment* attachment, Transaction* transaction) throw();
-			int (CLOOP_CARG *same)(Master* self, Versioned* first, Versioned* second) throw();
-			MetadataBuilder* (CLOOP_CARG *getMetadataBuilder)(Master* self, Status* status, unsigned fieldCount) throw();
-			int (CLOOP_CARG *serverMode)(Master* self, int mode) throw();
-			Utl* (CLOOP_CARG *getUtlInterface)(Master* self) throw();
-			ConfigManager* (CLOOP_CARG *getConfigManager)(Master* self) throw();
+			IStatus* (CLOOP_CARG *getStatus)(IMaster* self) throw();
+			IProvider* (CLOOP_CARG *getDispatcher)(IMaster* self) throw();
+			IPluginManager* (CLOOP_CARG *getPluginManager)(IMaster* self) throw();
+			const char* (CLOOP_CARG *circularAlloc)(IMaster* self, const char* s, unsigned len, intptr_t thr) throw();
+			ITimerControl* (CLOOP_CARG *getTimerControl)(IMaster* self) throw();
+			IDtc* (CLOOP_CARG *getDtc)(IMaster* self) throw();
+			IAttachment* (CLOOP_CARG *registerAttachment)(IMaster* self, IProvider* provider, IAttachment* attachment) throw();
+			ITransaction* (CLOOP_CARG *registerTransaction)(IMaster* self, IAttachment* attachment, ITransaction* transaction) throw();
+			int (CLOOP_CARG *same)(IMaster* self, IVersioned* first, IVersioned* second) throw();
+			IMetadataBuilder* (CLOOP_CARG *getMetadataBuilder)(IMaster* self, IStatus* status, unsigned fieldCount) throw();
+			int (CLOOP_CARG *serverMode)(IMaster* self, int mode) throw();
+			IUtl* (CLOOP_CARG *getUtlInterface)(IMaster* self) throw();
+			IConfigManager* (CLOOP_CARG *getConfigManager)(IMaster* self) throw();
 		};
 
 	protected:
-		Master(DoNotInherit)
-			: Versioned(DoNotInherit())
+		IMaster(DoNotInherit)
+			: IVersioned(DoNotInherit())
 		{
 		}
 
-		~Master()
+		~IMaster()
 		{
 		}
 
 	public:
 		static const unsigned VERSION = 2;
 
-		Status* getStatus()
+		IStatus* getStatus()
 		{
-			Status* ret = static_cast<VTable*>(this->cloopVTable)->getStatus(this);
+			IStatus* ret = static_cast<VTable*>(this->cloopVTable)->getStatus(this);
 			return ret;
 		}
 
-		Provider* getDispatcher()
+		IProvider* getDispatcher()
 		{
-			Provider* ret = static_cast<VTable*>(this->cloopVTable)->getDispatcher(this);
+			IProvider* ret = static_cast<VTable*>(this->cloopVTable)->getDispatcher(this);
 			return ret;
 		}
 
-		PluginManager* getPluginManager()
+		IPluginManager* getPluginManager()
 		{
-			PluginManager* ret = static_cast<VTable*>(this->cloopVTable)->getPluginManager(this);
+			IPluginManager* ret = static_cast<VTable*>(this->cloopVTable)->getPluginManager(this);
 			return ret;
 		}
 
@@ -337,40 +339,40 @@
 			return ret;
 		}
 
-		TimerControl* getTimerControl()
+		ITimerControl* getTimerControl()
 		{
-			TimerControl* ret = static_cast<VTable*>(this->cloopVTable)->getTimerControl(this);
+			ITimerControl* ret = static_cast<VTable*>(this->cloopVTable)->getTimerControl(...
 
[truncated message content] | 
| 
      
      
      From: <fir...@us...> - 2014-12-20 00:22:20
       | 
| Revision: 60402
          http://sourceforge.net/p/firebird/code/60402
Author:   firebirds
Date:     2014-12-20 00:22:08 +0000 (Sat, 20 Dec 2014)
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	2014-12-19 15:43:27 UTC (rev 60401)
+++ firebird/trunk/ChangeLog	2014-12-20 00:22:08 UTC (rev 60402)
@@ -1,3 +1,70 @@
+ 2014-12-19 15:43  alexpeshkoff 
+   M src/common/classes/init.cpp
+Fixed CORE-3632: Crash after calling fork in a process, using embedded firebird library
+
+ 2014-12-19 15:28  asfernandes 
+   M src/yvalve/gds.cpp
+Warnings.
+
+ 2014-12-19 15:24  asfernandes 
+   M examples/dbcrypt/CryptApplication.cpp
+   M examples/dbcrypt/CryptKeyHolder.cpp
+   M examples/dbcrypt/DbCrypt.cpp
+   M examples/interfaces/ifaceExamples.h
+   M src/auth/AuthDbg.h
+   M src/auth/SecureRemotePassword/client/SrpClient.cpp
+   M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+   M src/auth/SecureRemotePassword/server/SrpServer.cpp
+   M src/auth/SecurityDatabase/LegacyClient.h
+   M src/auth/SecurityDatabase/LegacyManagement.h
+   M src/auth/SecurityDatabase/LegacyServer.cpp
+   M src/auth/trusted/AuthSspi.h
+   M src/common/Auth.h
+   M src/common/MsgMetadata.h
+   M src/common/StatusHolder.h
+   M src/common/classes/ImplementHelper.h
+   M src/common/config/config.h
+   M src/common/isc_sync.cpp
+   M src/common/security.h
+   M src/gpre/boot/gpre_meta_boot.cpp
+   M src/include/firebird/IdlFbInterfaces.h
+   M src/include/firebird/Interface.h
+   M src/include/firebird/Message.h
+   M src/include/firebird/UdrCppEngine.h
+   M src/include/firebird/UdrEngine.h
+   M src/include/gen/ids.h
+   M src/isql/show.epp
+   M src/jrd/Database.h
+   M src/jrd/EngineInterface.h
+   M src/jrd/ExtEngineManager.h
+   M src/jrd/UserManagement.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/trace/TraceConfigStorage.h
+   M src/jrd/trace/TraceObjects.cpp
+   M src/jrd/trace/TraceObjects.h
+   M src/plugins/crypt/arc4/Arc4.cpp
+   M src/plugins/udr_engine/UdrEngine.cpp
+   M src/remote/client/interface.cpp
+   M src/remote/remote.h
+   M src/remote/server/server.cpp
+   M src/utilities/gsec/gsec.cpp
+   M src/utilities/ntrace/PluginLogWriter.h
+   M src/utilities/ntrace/TracePluginImpl.h
+   M src/utilities/ntrace/traceplugin.cpp
+   M src/yvalve/DistributedTransaction.cpp
+   M src/yvalve/MasterImplementation.cpp
+   M src/yvalve/MasterImplementation.h
+   M src/yvalve/PluginManager.cpp
+   M src/yvalve/PluginManager.h
+   M src/yvalve/YObjects.h
+   M src/yvalve/utl.cpp
+   M src/yvalve/why.cpp
+Generate interfaces with I-prefix.
+
+ 2014-12-19 08:52  dimitr 
+   M src/gpre/languages/fbrmclib.cpp
+Applied patch by Alexey Pavlov.
+
  2014-12-18 17:54  dimitr 
    M src/isql/isql.epp
 Simplified code and attempted a second-time solution for CORE-4259.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-19 15:43:27 UTC (rev 60401)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-20 00:22:08 UTC (rev 60402)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31498
+  FORMAL BUILD NUMBER:31502
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31498"
-#define FILE_VER_STRING "WI-T3.0.0.31498"
-#define LICENSE_VER_STRING "WI-T3.0.0.31498"
-#define FILE_VER_NUMBER 3, 0, 0, 31498
+#define PRODUCT_VER_STRING "3.0.0.31502"
+#define FILE_VER_STRING "WI-T3.0.0.31502"
+#define LICENSE_VER_STRING "WI-T3.0.0.31502"
+#define FILE_VER_NUMBER 3, 0, 0, 31502
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31498"
+#define FB_BUILD_NO "31502"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-19 15:43:27 UTC (rev 60401)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-20 00:22:08 UTC (rev 60402)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31498
+BuildNum=31502
 
 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...> - 2014-12-22 00:15:12
       | 
| Revision: 60407
          http://sourceforge.net/p/firebird/code/60407
Author:   firebirds
Date:     2014-12-22 00:15:05 +0000 (Mon, 22 Dec 2014)
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	2014-12-21 19:30:06 UTC (rev 60406)
+++ firebird/trunk/ChangeLog	2014-12-22 00:15:05 UTC (rev 60407)
@@ -1,3 +1,45 @@
+ 2014-12-21 19:30  dimitr 
+   M src/jrd/RecordSourceNodes.cpp
+   M src/jrd/opt.cpp
+   M src/jrd/opt_proto.h
+Correction for the prior commit.
+
+ 2014-12-21 19:16  dimitr 
+   M src/jrd/Optimizer.cpp
+   M src/jrd/Optimizer.h
+   M src/jrd/RecordSourceNodes.cpp
+   M src/jrd/opt.cpp
+   M src/jrd/opt_proto.h
+Small refactoring.
+
+ 2014-12-21 13:45  dimitr 
+   M src/gpre/c_cxx.cpp
+   M src/gpre/cme.cpp
+   M src/gpre/cmp.cpp
+   M src/gpre/gpre.h
+   M src/gpre/hsh.h
+   M src/gpre/languages/ada.cpp
+   M src/gpre/languages/cob.cpp
+   M src/gpre/languages/ftn.cpp
+   M src/gpre/languages/pas.cpp
+   M src/gpre/languages/rmc.cpp
+   M src/gpre/msc.cpp
+   M src/gpre/msc_proto.h
+   M src/gpre/par.cpp
+   M src/gpre/sqe.cpp
+   M src/gpre/sqe_proto.h
+   M src/gpre/sql.cpp
+   M src/gpre/words.h
+Front-ported CORE-4437 and CORE-4438.
+
+ 2014-12-21 01:54  asfernandes 
+   M src/common/os/os_utils.h
+   M src/common/os/posix/os_utils.cpp
+   M src/common/os/win32/os_utils.cpp
+   M src/jrd/dfw.epp
+   M src/remote/remote.h
+Misc.
+
  2014-12-19 15:43  alexpeshkoff 
    M src/common/classes/init.cpp
 Fixed CORE-3632: Crash after calling fork in a process, using embedded firebird library
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-21 19:30:06 UTC (rev 60406)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-22 00:15:05 UTC (rev 60407)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31502
+  FORMAL BUILD NUMBER:31506
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31502"
-#define FILE_VER_STRING "WI-T3.0.0.31502"
-#define LICENSE_VER_STRING "WI-T3.0.0.31502"
-#define FILE_VER_NUMBER 3, 0, 0, 31502
+#define PRODUCT_VER_STRING "3.0.0.31506"
+#define FILE_VER_STRING "WI-T3.0.0.31506"
+#define LICENSE_VER_STRING "WI-T3.0.0.31506"
+#define FILE_VER_NUMBER 3, 0, 0, 31506
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31502"
+#define FB_BUILD_NO "31506"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-21 19:30:06 UTC (rev 60406)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-22 00:15:05 UTC (rev 60407)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31502
+BuildNum=31506
 
 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...> - 2014-12-23 00:16:53
       | 
| Revision: 60417
          http://sourceforge.net/p/firebird/code/60417
Author:   firebirds
Date:     2014-12-23 00:16:31 +0000 (Tue, 23 Dec 2014)
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	2014-12-22 16:19:44 UTC (rev 60416)
+++ firebird/trunk/ChangeLog	2014-12-23 00:16:31 UTC (rev 60417)
@@ -1,3 +1,31 @@
+ 2014-12-22 16:19  alexpeshkoff 
+   M src/auth/SecurityDatabase/LegacyServer.cpp
+Fixed CORE-4646: Attach failure when using LegacyAuth on server and default configuration on client
+
+ 2014-12-22 14:41  hvlad 
+   M src/include/firebird/IdlFbInterfaces.h
+Fixed compilation errors
+
+ 2014-12-22 09:47  hvlad 
+   M src/common/classes/init.cpp
+Fixed Windows build
+
+ 2014-12-22 09:45  hvlad 
+   M src/gpre/languages/ada.cpp
+   M src/gpre/languages/cob.cpp
+   M src/gpre/languages/ftn.cpp
+   M src/gpre/languages/rmc.cpp
+Fix compilation errors
+
+ 2014-12-22 09:17  alexpeshkoff 
+   M src/jrd/jrd.cpp
+Added forgotten security check - thanks to Adriano
+
+ 2014-12-22 08:51  dimitr 
+   M src/remote/inet.cpp
+   M src/remote/server/os/win32/srvr_w32.cpp
+Patches by Alexey Pavlov.
+
  2014-12-21 19:30  dimitr 
    M src/jrd/RecordSourceNodes.cpp
    M src/jrd/opt.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-22 16:19:44 UTC (rev 60416)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-23 00:16:31 UTC (rev 60417)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31506
+  FORMAL BUILD NUMBER:31512
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31506"
-#define FILE_VER_STRING "WI-T3.0.0.31506"
-#define LICENSE_VER_STRING "WI-T3.0.0.31506"
-#define FILE_VER_NUMBER 3, 0, 0, 31506
+#define PRODUCT_VER_STRING "3.0.0.31512"
+#define FILE_VER_STRING "WI-T3.0.0.31512"
+#define LICENSE_VER_STRING "WI-T3.0.0.31512"
+#define FILE_VER_NUMBER 3, 0, 0, 31512
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31506"
+#define FB_BUILD_NO "31512"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-22 16:19:44 UTC (rev 60416)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-23 00:16:31 UTC (rev 60417)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31506
+BuildNum=31512
 
 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...> - 2014-12-25 00:13:31
       | 
| Revision: 60429
          http://sourceforge.net/p/firebird/code/60429
Author:   firebirds
Date:     2014-12-25 00:13:28 +0000 (Thu, 25 Dec 2014)
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	2014-12-24 15:23:42 UTC (rev 60428)
+++ firebird/trunk/ChangeLog	2014-12-25 00:13:28 UTC (rev 60429)
@@ -1,3 +1,23 @@
+ 2014-12-24 15:23  alexpeshkoff 
+   M doc/sql.extensions/README.user_management
+Documentation changes for CORE-4607: Add support for having >1 UserManager in firebird.conf and use them from SQL
+
+ 2014-12-24 14:50  alexpeshkoff 
+   M src/common/classes/fb_string.h
+   M src/common/security.cpp
+   M src/common/security.h
+   M src/dsql/DdlNodes.epp
+   M src/dsql/DdlNodes.h
+   M src/dsql/parse.y
+   M src/include/gen/ids.h
+   M src/jrd/UserManagement.cpp
+   M src/jrd/UserManagement.h
+   M src/jrd/fields.h
+   M src/jrd/names.h
+   M src/jrd/relations.h
+   M src/yvalve/PluginManager.cpp
+Implemented CORE-4607: Add support for having >1 UserManager in firebird.conf and use them from SQL
+
  2014-12-22 16:19  alexpeshkoff 
    M src/auth/SecurityDatabase/LegacyServer.cpp
 Fixed CORE-4646: Attach failure when using LegacyAuth on server and default configuration on client
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-24 15:23:42 UTC (rev 60428)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-25 00:13:28 UTC (rev 60429)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31512
+  FORMAL BUILD NUMBER:31514
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31512"
-#define FILE_VER_STRING "WI-T3.0.0.31512"
-#define LICENSE_VER_STRING "WI-T3.0.0.31512"
-#define FILE_VER_NUMBER 3, 0, 0, 31512
+#define PRODUCT_VER_STRING "3.0.0.31514"
+#define FILE_VER_STRING "WI-T3.0.0.31514"
+#define LICENSE_VER_STRING "WI-T3.0.0.31514"
+#define FILE_VER_NUMBER 3, 0, 0, 31514
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31512"
+#define FB_BUILD_NO "31514"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-24 15:23:42 UTC (rev 60428)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-25 00:13:28 UTC (rev 60429)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31512
+BuildNum=31514
 
 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...> - 2014-12-26 14:10:41
       | 
| Revision: 60432
          http://sourceforge.net/p/firebird/code/60432
Author:   alexpeshkoff
Date:     2014-12-26 14:10:39 +0000 (Fri, 26 Dec 2014)
Log Message:
-----------
Fixed CORE-4651: CREATE DATABASE fails for the user having RDB$ADMIN rights in security database
Modified Paths:
--------------
    firebird/trunk/doc/sql.extensions/README.ddl.txt
    firebird/trunk/src/dsql/parse.y
    firebird/trunk/src/isql/isql.epp
    firebird/trunk/src/jrd/DbCreators.cpp
    firebird/trunk/src/jrd/DbCreators.h
    firebird/trunk/src/jrd/jrd.cpp
    firebird/trunk/src/yvalve/preparse.cpp
Modified: firebird/trunk/doc/sql.extensions/README.ddl.txt
===================================================================
--- firebird/trunk/doc/sql.extensions/README.ddl.txt	2014-12-26 12:27:40 UTC (rev 60431)
+++ firebird/trunk/doc/sql.extensions/README.ddl.txt	2014-12-26 14:10:39 UTC (rev 60432)
@@ -462,3 +462,16 @@
 
 Also, the name RDB$GENERATORS does not refer anymore to an invisible system
 generator. The name can be applied to an user generator.
+
+
+18) Added ROLE clause to CREATE DATABASE statement.
+(Alex Peshkov)
+
+For 3.0, setting role when creating database may affect user rights to create databases.
+This can happen if user is granted (in appropriate security database) system role RDB$ADMIN
+or some ordinary role which in turn is granted CREATE DATABASE right. When using API call
+IProvider::createDatabase (or isc_create_database) there are no problems with placing
+isc_dpb_sql_role_name tag with required value into DPB, but CREATE DATABASE statement
+missed ROLE clause before 3.0.
+
+ISQL now also takes into an account global role setting when creating databases.
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y	2014-12-26 12:27:40 UTC (rev 60431)
+++ firebird/trunk/src/dsql/parse.y	2014-12-26 14:10:39 UTC (rev 60432)
@@ -1841,6 +1841,7 @@
 db_initial_option($alterDatabaseNode)
 	: KW_PAGE_SIZE equals pos_short_integer
 	| USER utf_string
+	| ROLE utf_string
 	| PASSWORD utf_string
 	| SET NAMES utf_string
 	| LENGTH equals long_integer page_noise
Modified: firebird/trunk/src/isql/isql.epp
===================================================================
--- firebird/trunk/src/isql/isql.epp	2014-12-26 12:27:40 UTC (rev 60431)
+++ firebird/trunk/src/isql/isql.epp	2014-12-26 14:10:39 UTC (rev 60432)
@@ -342,7 +342,7 @@
 static bool check_timestamp(const tm& times, const int msec);
 static size_t chop_at(char target[], const size_t size);
 static void col_check(const TEXT*, unsigned*);
-static void copy_str(TEXT**, const TEXT**, bool*, const TEXT* const,
+static void copy_str(Firebird::string&, const TEXT**, bool*, const TEXT* const,
 	const TEXT* const, literal_string_type);
 static processing_state copy_table(TEXT*, TEXT*, TEXT*);
 static processing_state create_db(const TEXT*, TEXT*);
@@ -3458,7 +3458,7 @@
 }
 
 
-static void copy_str(TEXT** output_str,
+static void copy_str(Firebird::string& output_str,
 					 const TEXT** input_str,
 					 bool* done,
 					 const TEXT* const str_begin,
@@ -3510,47 +3510,33 @@
 	int slen = 0;
 	const TEXT* b1;
 
-	TEXT* temp_str = *output_str;
 	const TEXT* temp_local_stmt_str = *input_str;
 
 	switch (str_flag)
 	{
 	case SINGLE_QUOTED_STRING:
 		slen = str_end - temp_local_stmt_str;
-		if (temp_str != temp_local_stmt_str)
-		{
-			strncpy(temp_str, temp_local_stmt_str, slen);
-		}
-		*output_str = temp_str + slen;
+		output_str.append(temp_local_stmt_str, slen);
 		*input_str = str_end;
 		break;
 	case DOUBLE_QUOTED_STRING:
 		slen = str_begin - temp_local_stmt_str;
-		if (temp_str != temp_local_stmt_str)
-		{
-			strncpy(temp_str, temp_local_stmt_str, slen);
-		}
-		temp_str += slen;
-		*temp_str = SINGLE_QUOTE;
-		temp_str++;
+		output_str.append(temp_local_stmt_str, slen);
+		output_str += SINGLE_QUOTE;
 		b1 = str_begin + 1;
 		while (b1 < str_end)
 		{
-			*temp_str = *b1;
-			temp_str++;
+			output_str += *b1;
 			switch (*b1)
 			{
 			case SINGLE_QUOTE:
-				*temp_str = SINGLE_QUOTE;
-				temp_str++;
+				output_str += SINGLE_QUOTE;
 				break;
 			case DBL_QUOTE:
 				b1++;
 				if (*b1 != DBL_QUOTE)
 				{
-					temp_str--;
-					*temp_str = SINGLE_QUOTE;
-					temp_str++;
+					output_str[output_str.length() - 1] = SINGLE_QUOTE;
 					b1--;
 				}
 				break;
@@ -3559,20 +3545,12 @@
 			}
 			b1++;
 		}
-		*output_str = temp_str;
 		*input_str = b1;
 		break;
 	case NO_MORE_STRING:
-		slen = static_cast<int>(strlen(temp_local_stmt_str));
-		if (temp_str != temp_local_stmt_str)
-		{
-			strncpy(temp_str, temp_local_stmt_str, slen);
-		}
-		temp_str += slen;
-		*temp_str = '\0';
+		output_str += temp_local_stmt_str;
 		*done = true;
-		*output_str = temp_str;
-		*input_str = temp_local_stmt_str + slen;
+		*input_str = temp_local_stmt_str + strlen(temp_local_stmt_str);
 		break;
 	default:
 		break;
@@ -3690,6 +3668,16 @@
 }
 
 
+static void appendClause(Firebird::string& to, const char* label, const TEXT* value)
+{
+	to += ' ';
+	to += label;
+	to += " \'";
+	to += value;
+	to += "\' ";
+}
+
+
 static processing_state create_db(const TEXT* statement, TEXT* d_name)
 {
 /**************************************
@@ -3704,8 +3692,9 @@
  *
  *	Parameters:  statement == the entire statement for processing.
  *
- * Note: SQL ROLE settings are ignored - the newly created database
- *	will not have any roles defined in it.
+ * Note: SQL ROLE setting must be taken into an account no matter
+ *	that the newly created database will not have any roles defined
+ *	in it. Role may affect right to create new database.
  *
  **************************************/
 	processing_state ret = SKIP;
@@ -3713,146 +3702,81 @@
 	// Disconnect from the database and cleanup
 	ISQL_disconnect_database(false);
 
-	SLONG arglength = static_cast<SLONG>(strlen(statement) + strlen(isqlGlob.User) + strlen(Password) + 24);
-	if (*setValues.ISQL_charset && strcmp(setValues.ISQL_charset, DEFCHARSET))
-		arglength += static_cast<SLONG>(strlen(setValues.ISQL_charset) + strlen(" SET NAMES \'\' "));
-	TEXT* local_statement = (TEXT*) ISQL_ALLOC(arglength + 1);
-	if (!local_statement)
-		return (FAIL);
-	TEXT usr[USER_LENGTH];
-	TEXT psw[PASSWORD_LENGTH];
+	for (int createWithoutRole = 0; createWithoutRole < 2; ++createWithoutRole)
+	{
+		ret = SKIP;
+		TEXT usr[USER_LENGTH];
+		TEXT psw[PASSWORD_LENGTH];
+		TEXT role[ROLE_LENGTH];
 
-	strcpy(local_statement, statement);
+		Firebird::string local_statement(statement);
 
-	TEXT quote = DBL_QUOTE;
-	const TEXT* p = NULL;
+		TEXT quote = DBL_QUOTE;
+		const TEXT* p = NULL;
 
-	// If there is a user parameter, we will set it into the create stmt.
-	if (global_usr || global_psw ||
-		(*setValues.ISQL_charset && strcmp(setValues.ISQL_charset, DEFCHARSET)))
-	{
-		strip_quotes(isqlGlob.User, usr);
-		strip_quotes(Password, psw);
-		// Look for the quotes on the database name and find the close quotes.
-		// Use '"' first, if not successful try '''.
-		// CVC: Again, this is wrong with embedded quotes.
-		// Maybe IUTILS_remove_and_unescape_quotes coupled with IUTILS_copy_SQL_id could work.
-		const TEXT* q = strchr(statement, quote);
-		if (!q)
+		// If there is a user parameter, we will set it into the create stmt.
+		if (global_usr || global_psw ||
+			(*setValues.ISQL_charset && strcmp(setValues.ISQL_charset, DEFCHARSET)))
 		{
-			quote = SINGLE_QUOTE;
-			q = strchr(statement, quote);
-		}
+			strip_quotes(isqlGlob.User, usr);
+			strip_quotes(Password, psw);
+			strip_quotes(isqlGlob.Role, role);
+			// Look for the quotes on the database name and find the close quotes.
+			// Use '"' first, if not successful try '''.
+			// CVC: Again, this is wrong with embedded quotes.
+			// Maybe IUTILS_remove_and_unescape_quotes coupled with IUTILS_copy_SQL_id could work.
+			const TEXT* q = strchr(statement, quote);
+			if (!q)
+			{
+				quote = SINGLE_QUOTE;
+				q = strchr(statement, quote);
+			}
 
-		if (q)
-		{
-			// Set quote to match open quote
-			quote = *q;
-			q++;
-			p = strchr(q, quote);
-			if (p)
+			if (q)
 			{
-				p++;
-				const ptrdiff_t slen = p - statement;
-				local_statement[slen] = '\0';
-				if (isqlGlob.SQL_dialect == 1)
+				// Set quote to match open quote
+				quote = *q;
+				q++;
+				p = strchr(q, quote);
+				if (p)
 				{
-					if (global_usr)
-						sprintf(local_statement + strlen(local_statement),
-								" USER \'%s\' ", usr);
-					if (global_psw)
-						sprintf(local_statement + strlen(local_statement),
-								" PASSWORD \'%s\' ", psw);
-					if (*setValues.ISQL_charset && strcmp(setValues.ISQL_charset, DEFCHARSET))
-						sprintf(local_statement + strlen(local_statement),
-								" SET NAMES \'%s\' ", setValues.ISQL_charset);
-					sprintf(local_statement + strlen(local_statement), "%s", p);
+					p++;
+					const ptrdiff_t slen = p - statement;
+					local_statement.resize(slen);
+					if (isqlGlob.SQL_dialect == 1)
+					{
+						if (global_usr)
+							appendClause(local_statement, "USER", usr);
+						if (global_psw)
+							appendClause(local_statement, "PASSWORD", psw);
+						if (global_role && createWithoutRole == 0)
+							appendClause(local_statement, "ROLE", role);
+						if (*setValues.ISQL_charset && strcmp(setValues.ISQL_charset, DEFCHARSET))
+							appendClause(local_statement, "SET NAMES", setValues.ISQL_charset);
+						local_statement += p;
+					}
 				}
 			}
 		}
-	}
 
-	SLONG cnt = 0;
-	if ((isqlGlob.SQL_dialect == 0) || (isqlGlob.SQL_dialect > 1))
-	{
-		const TEXT* q = strchr(statement, SINGLE_QUOTE);
-		while (q)
+		SLONG cnt = 0;
+		if ((isqlGlob.SQL_dialect == 0) || (isqlGlob.SQL_dialect > 1))
 		{
-			cnt++;
-			const TEXT* l = q + 1;
-			q = strchr(l, SINGLE_QUOTE);
-		}
-
-		TEXT* new_local_statement = NULL;
-		if (cnt > 0)
-		{
-			arglength = static_cast<SLONG>(strlen(statement) +
-				strlen(isqlGlob.User) + strlen(Password) + 24 + 2 * cnt);
-
-			if (*setValues.ISQL_charset && strcmp(setValues.ISQL_charset, DEFCHARSET))
-				arglength += static_cast<SLONG>(strlen(setValues.ISQL_charset) + strlen(" SET NAMES \'\' "));
-			new_local_statement = (TEXT*) ISQL_ALLOC(arglength + 1);
-
-			if (!new_local_statement)
+			const TEXT* q = strchr(statement, SINGLE_QUOTE);
+			while (q)
 			{
-				ISQL_FREE(local_statement);
-				return (FAIL);
+				cnt++;
+				const TEXT* l = q + 1;
+				q = strchr(l, SINGLE_QUOTE);
 			}
-		}
 
-		TEXT errbuf[MSG_LENGTH];
+			Firebird::string new_local_statement;
+			TEXT errbuf[MSG_LENGTH];
 
-		TEXT* temp_str;
-		if (new_local_statement)
-			temp_str = new_local_statement;
-		else
-			temp_str = local_statement;
-
-		const TEXT* temp_local_stmt_str = local_statement;
-		bool done = false;
-		while (!done)
-		{
-			const TEXT* str_begin = NULL;
-			const TEXT* str_end = NULL;
-			literal_string_type str_flag = INIT_STR_FLAG;
-			get_str(temp_local_stmt_str, &str_begin, &str_end, &str_flag);
-			if (str_flag == INCOMPLETE_STRING)
+			const TEXT* temp_local_stmt_str = local_statement.c_str();
+			bool done = false;
+			while (!done)
 			{
-				IUTILS_msg_get(INCOMPLETE_STR, errbuf, SafeArg() << "create database statement");
-				STDERROUT(errbuf);
-				ISQL_FREE(local_statement);
-				if (new_local_statement)
-					ISQL_FREE(new_local_statement);
-				return (FAIL);
-			}
-			copy_str(&temp_str, &temp_local_stmt_str, &done, str_begin, str_end, str_flag);
-		}
-
-		if (new_local_statement)
-			temp_str = new_local_statement;
-		else
-			temp_str = local_statement;
-
-		if (global_usr)
-			sprintf(temp_str + strlen(temp_str), " USER \'%s\' ", usr);
-
-		if (global_psw)
-			sprintf(temp_str + strlen(temp_str), " PASSWORD \'%s\' ", psw);
-
-		if (*setValues.ISQL_charset && strcmp(setValues.ISQL_charset, DEFCHARSET))
-			sprintf(temp_str + strlen(temp_str), " SET NAMES \'%s\' ", setValues.ISQL_charset);
-
-		if (new_local_statement)
-			temp_str = new_local_statement + strlen(new_local_statement);
-		else
-			temp_str = local_statement + strlen(local_statement);
-
-		if (p && strlen(p) > 0)
-		{
-			temp_local_stmt_str = p;
-			bool done2 = false;
-			while (!done2)
-			{
 				const TEXT* str_begin = NULL;
 				const TEXT* str_end = NULL;
 				literal_string_type str_flag = INIT_STR_FLAG;
@@ -3861,33 +3785,63 @@
 				{
 					IUTILS_msg_get(INCOMPLETE_STR, errbuf, SafeArg() << "create database statement");
 					STDERROUT(errbuf);
-					ISQL_FREE(local_statement);
-					if (new_local_statement)
-						ISQL_FREE(new_local_statement);
 					return (FAIL);
 				}
-				copy_str(&temp_str, &temp_local_stmt_str, &done2,
-					 str_begin, str_end, str_flag);
+				copy_str(new_local_statement, &temp_local_stmt_str, &done, str_begin, str_end, str_flag);
 			}
+
+			if (global_usr)
+				appendClause(new_local_statement, "USER", usr);
+			if (global_psw)
+				appendClause(new_local_statement, "PASSWORD", psw);
+			if (global_role && createWithoutRole == 0)
+				appendClause(new_local_statement, "ROLE", role);
+			if (*setValues.ISQL_charset && strcmp(setValues.ISQL_charset, DEFCHARSET))
+				appendClause(new_local_statement, "SET NAMES", setValues.ISQL_charset);
+
+			if (p && strlen(p) > 0)
+			{
+				temp_local_stmt_str = p;
+				bool done2 = false;
+				while (!done2)
+				{
+					const TEXT* str_begin = NULL;
+					const TEXT* str_end = NULL;
+					literal_string_type str_flag = INIT_STR_FLAG;
+					get_str(temp_local_stmt_str, &str_begin, &str_end, &str_flag);
+					if (str_flag == INCOMPLETE_STRING)
+					{
+						IUTILS_msg_get(INCOMPLETE_STR, errbuf, SafeArg() << "create database statement");
+						STDERROUT(errbuf);
+						return (FAIL);
+					}
+					copy_str(new_local_statement, &temp_local_stmt_str, &done2, str_begin, str_end, str_flag);
+				}
+			}
+
+			local_statement = new_local_statement;
 		}
 
-		if (new_local_statement)
+		// execute the create statement
+		// If the isqlGlob.SQL_dialect is not set or set to 2, create the database
+		// as a dialect 3 database.
+		unsigned dialect =
+			(isqlGlob.SQL_dialect == 0 || isqlGlob.SQL_dialect == SQL_DIALECT_V6_TRANSITION) ?
+				requested_SQL_dialect : isqlGlob.SQL_dialect;
+		DB = Firebird::UtlInterfacePtr()->executeCreateDatabase(fbStatus, local_statement.length(),
+			local_statement.c_str(), dialect, NULL);
+
+		if ((!DB) && (createWithoutRole == 0) && (fbStatus->getErrors()[1] == isc_dsql_error))
 		{
-			ISQL_FREE(local_statement);
-			local_statement = new_local_statement;
+			// OLd server failed to parse ROLE clause
+			continue;
 		}
-	}
 
-	// execute the create statement
-	// If the isqlGlob.SQL_dialect is not set or set to 2, create the database
-	// as a dialect 3 database.
-	unsigned dialect =
-		(isqlGlob.SQL_dialect == 0 || isqlGlob.SQL_dialect == SQL_DIALECT_V6_TRANSITION) ?
-			requested_SQL_dialect : isqlGlob.SQL_dialect;
-	DB = Firebird::UtlInterfacePtr()->executeCreateDatabase(fbStatus, 0, local_statement, dialect, NULL);
-	if (ISQL_errmsg(fbStatus))
-	{
-		ret = FAIL;
+		if (ISQL_errmsg(fbStatus))
+		{
+			ret = FAIL;
+		}
+		break;
 	}
 
 	if (DB)
@@ -4022,8 +3976,6 @@
 
 	}
 
-	if (local_statement)
-		ISQL_FREE(local_statement);
 	return (ret);
 }
 
Modified: firebird/trunk/src/jrd/DbCreators.cpp
===================================================================
--- firebird/trunk/src/jrd/DbCreators.cpp	2014-12-26 12:27:40 UTC (rev 60431)
+++ firebird/trunk/src/jrd/DbCreators.cpp	2014-12-26 14:10:39 UTC (rev 60432)
@@ -100,10 +100,10 @@
 
 namespace Jrd {
 
-bool checkCreateDatabaseGrant(Firebird::string& userName, Firebird::string& trustedRole,
-	const char* securityDb)
+bool checkCreateDatabaseGrant(const string& userName, const string& trustedRole,
+	const string& sqlRole, const char* securityDb)
 {
-	if (userName == SYSDBA_USER_NAME || trustedRole == ADMIN_ROLE)
+	if (userName == SYSDBA_USER_NAME)
 		return true;
 
 	RefPtr<IAttachment> att;
@@ -111,6 +111,46 @@
 	if (!openDb(securityDb, att, tra))
 		return false;
 
+	string role(sqlRole);
+	if (role.hasData())
+	{
+		role.upper();
+
+		// We need to check is admin role granted to userName in security DB
+		const char* sql = "select count(*) from RDB$USER_PRIVILEGES "
+			"where RDB$USER = ? and RDB$RELATION_NAME = ? and RDB$PRIVILEGE = 'M'";
+
+		Message prm;
+		Field<Varying> u(prm, MAX_SQL_IDENTIFIER_LEN);
+		Field<Varying> r(prm, MAX_SQL_IDENTIFIER_LEN);
+		u = userName.c_str();
+		r = role.c_str();
+
+		Message result;
+		Field<ISC_INT64> cnt(result);
+
+		LocalStatus st;
+		att->execute(&st, tra, 0, sql, SQL_DIALECT_V6, prm.getMetadata(), prm.getBuffer(),
+			result.getMetadata(), result.getBuffer());
+
+		if (st.getStatus() & IStatus::FB_HAS_ERRORS)
+		{
+			// isc_dsql_relation_err when exec SQL - i.e. table RDB$USER_PRIVILEGES
+			// is missing due to non-FB security DB
+			if (!fb_utils::containsErrorCode(st.getErrors(), isc_dsql_relation_err))
+				check("IAttachment::execute", &st);
+
+			role = "";
+		}
+		else if (cnt == 0)
+			role = "";
+	}
+	else
+		role = trustedRole;
+
+	if (role == ADMIN_ROLE)
+		return true;
+
 	Message gr;
 	Field<ISC_SHORT> uType(gr);
 	Field<Varying> u(gr, MAX_SQL_IDENTIFIER_LEN);
@@ -118,8 +158,8 @@
 	Field<Varying> r(gr, MAX_SQL_IDENTIFIER_LEN);
 	uType = obj_user;
 	u = userName.c_str();
-	rType = trustedRole.hasData() ? obj_sql_role : 255;
-	r = trustedRole.c_str();
+	rType = role.hasData() ? obj_sql_role : 255;
+	r = role.c_str();
 
 	Message result;
 	Field<ISC_INT64> cnt(result);
Modified: firebird/trunk/src/jrd/DbCreators.h
===================================================================
--- firebird/trunk/src/jrd/DbCreators.h	2014-12-26 12:27:40 UTC (rev 60431)
+++ firebird/trunk/src/jrd/DbCreators.h	2014-12-26 14:10:39 UTC (rev 60432)
@@ -36,8 +36,8 @@
 
 namespace Jrd {
 
-bool checkCreateDatabaseGrant(Firebird::string& userName, Firebird::string& trustedRole,
-	const char* securityDb);
+bool checkCreateDatabaseGrant(const Firebird::string& userName, const Firebird::string& trustedRole,
+	const Firebird::string& sqlRole, const char* securityDb);
 
 class DbCreatorsScan: public VirtualTableScan
 {
Modified: firebird/trunk/src/jrd/jrd.cpp
===================================================================
--- firebird/trunk/src/jrd/jrd.cpp	2014-12-26 12:27:40 UTC (rev 60431)
+++ firebird/trunk/src/jrd/jrd.cpp	2014-12-26 14:10:39 UTC (rev 60432)
@@ -7128,7 +7128,7 @@
 
 			if (creating && config)		// when config is NULL we are in error handler
 			{
-				if (!checkCreateDatabaseGrant(name, trusted_role, (*config)->getSecurityDatabase()))
+				if (!checkCreateDatabaseGrant(name, trusted_role, options.dpb_role_name, (*config)->getSecurityDatabase()))
 					(Arg::Gds(isc_no_priv) << "CREATE" << "DATABASE" << aliasName).raise();
 			}
 		}
Modified: firebird/trunk/src/yvalve/preparse.cpp
===================================================================
--- firebird/trunk/src/yvalve/preparse.cpp	2014-12-26 12:27:40 UTC (rev 60431)
+++ firebird/trunk/src/yvalve/preparse.cpp	2014-12-26 14:10:39 UTC (rev 60432)
@@ -46,7 +46,8 @@
 	PP_PAGES = 8,
 	PP_PAGE = 9,
 	PP_SET = 10,
-	PP_NAMES = 11
+	PP_NAMES = 11,
+	PP_ROLE = 12
 };
 
 
@@ -79,6 +80,7 @@
 	{"PAGE", 4, PP_PAGE},
 	{"SET", 3, PP_SET},
 	{"NAMES", 5, PP_NAMES},
+	{"ROLE", 4, PP_ROLE},
 	{"", 0, 0}
 };
 
@@ -214,6 +216,17 @@
 						matched = true;
 						break;
 
+					case PP_ROLE:
+						if (get_token(status, STRING, false, &stmt, stmt_end, token))
+						{
+							get_out = true;
+							break;
+						}
+
+						dpb.insertString(isc_dpb_sql_role_name, token);
+						matched = true;
+						break;
+
 					case PP_SET:
 						if (get_token(status, SYMBOL, false, &stmt, stmt_end, token) ||
 							token.length() != pp_symbols[PP_NAMES].length ||
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2014-12-27 00:13:57
       | 
| Revision: 60436
          http://sourceforge.net/p/firebird/code/60436
Author:   firebirds
Date:     2014-12-27 00:13:46 +0000 (Sat, 27 Dec 2014)
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	2014-12-26 16:06:57 UTC (rev 60435)
+++ firebird/trunk/ChangeLog	2014-12-27 00:13:46 UTC (rev 60436)
@@ -1,3 +1,21 @@
+ 2014-12-26 15:32  alexpeshkoff 
+   M src/auth/SecurityDatabase/LegacyManagement.epp
+Fixed CORE-4652: Legacy user manager ignores explicitly set SQL role
+
+ 2014-12-26 15:04  alexpeshkoff 
+   M src/isql/show.epp
+Skip system attachmnets in SHOW USERS
+
+ 2014-12-26 14:10  alexpeshkoff 
+   M doc/sql.extensions/README.ddl.txt
+   M src/dsql/parse.y
+   M src/isql/isql.epp
+   M src/jrd/DbCreators.cpp
+   M src/jrd/DbCreators.h
+   M src/jrd/jrd.cpp
+   M src/yvalve/preparse.cpp
+Fixed CORE-4651: CREATE DATABASE fails for the user having RDB$ADMIN rights in security database
+
  2014-12-24 15:23  alexpeshkoff 
    M doc/sql.extensions/README.user_management
 Documentation changes for CORE-4607: Add support for having >1 UserManager in firebird.conf and use them from SQL
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-26 16:06:57 UTC (rev 60435)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-27 00:13:46 UTC (rev 60436)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31514
+  FORMAL BUILD NUMBER:31517
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31514"
-#define FILE_VER_STRING "WI-T3.0.0.31514"
-#define LICENSE_VER_STRING "WI-T3.0.0.31514"
-#define FILE_VER_NUMBER 3, 0, 0, 31514
+#define PRODUCT_VER_STRING "3.0.0.31517"
+#define FILE_VER_STRING "WI-T3.0.0.31517"
+#define LICENSE_VER_STRING "WI-T3.0.0.31517"
+#define FILE_VER_NUMBER 3, 0, 0, 31517
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31514"
+#define FB_BUILD_NO "31517"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-26 16:06:57 UTC (rev 60435)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-27 00:13:46 UTC (rev 60436)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31514
+BuildNum=31517
 
 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...> - 2014-12-30 00:16:08
       | 
| Revision: 60453
          http://sourceforge.net/p/firebird/code/60453
Author:   firebirds
Date:     2014-12-30 00:16:00 +0000 (Tue, 30 Dec 2014)
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	2014-12-29 21:15:54 UTC (rev 60452)
+++ firebird/trunk/ChangeLog	2014-12-30 00:16:00 UTC (rev 60453)
@@ -1,3 +1,60 @@
+ 2014-12-29 21:15  dimitr 
+   M src/jrd/RecordNumber.h
+   M src/jrd/dpm.epp
+   M src/utilities/gstat/dba.epp
+Type correctness (mostly signed->unsigned adjustments).
+
+ 2014-12-29 18:04  alexpeshkoff 
+   M src/yvalve/why.cpp
+Fixed my severe bug in one of previous commits
+
+ 2014-12-29 17:40  dimitr 
+   M src/jrd/RecordNumber.h
+   M src/jrd/Relation.h
+   M src/jrd/dpm.epp
+   M src/utilities/gstat/dba.epp
+This commit is expected to fix CORE-4384: Problems when a table grows beyond 65535 pointer pages. Testing would be appreciated.
+
+ 2014-12-29 16:39  alexpeshkoff 
+   M builds/install/misc/firebird.conf.in
+Completed fix for CORE-4605: Rename CryptPlugin parameter in config file
+
+ 2014-12-29 16:15  alexpeshkoff 
+   M src/remote/SockAddr.h
+   M src/remote/inet.cpp
+Cleanup - remove debris of pre-firebird authentication
+
+ 2014-12-29 15:48  dimitr 
+   M src/remote/server/server.cpp
+Cleanup.
+
+ 2014-12-29 15:45  dimitr 
+   M src/dsql/dsql.cpp
+   M src/remote/server/server.cpp
+Cleaned up the API from the legacy crap (fortunately, not needed these days).
+
+ 2014-12-29 12:00  starodubov 
+   M src/jrd/trace/TraceObjects.h
+   M src/yvalve/YObjects.h
+   M src/yvalve/why.cpp
+Revert fix for CORE-4654, because it depends on unsupported compiler
+
+ 2014-12-29 11:08  starodubov 
+   M builds/win32/msvc8/common.vcproj
+   M builds/win32/msvc8/firebird2.vsprops
+   M builds/win32/msvc8/gpre_common.vcproj
+   M builds/win32/msvc9/common.vcproj
+   M builds/win32/msvc9/engine.vcproj
+   M builds/win32/msvc9/firebird2.vsprops
+   M builds/win32/msvc9/gpre_common.vcproj
+Fixed builds for msvc8 and msvc9 (CORE-4655)
+
+ 2014-12-29 10:56  starodubov 
+   M src/jrd/trace/TraceObjects.h
+   M src/yvalve/YObjects.h
+   M src/yvalve/why.cpp
+Fixed POSIX build (CORE-4654)
+
  2014-12-26 15:32  alexpeshkoff 
    M src/auth/SecurityDatabase/LegacyManagement.epp
 Fixed CORE-4652: Legacy user manager ignores explicitly set SQL role
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-29 21:15:54 UTC (rev 60452)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-30 00:16:00 UTC (rev 60453)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31517
+  FORMAL BUILD NUMBER:31527
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31517"
-#define FILE_VER_STRING "WI-T3.0.0.31517"
-#define LICENSE_VER_STRING "WI-T3.0.0.31517"
-#define FILE_VER_NUMBER 3, 0, 0, 31517
+#define PRODUCT_VER_STRING "3.0.0.31527"
+#define FILE_VER_STRING "WI-T3.0.0.31527"
+#define LICENSE_VER_STRING "WI-T3.0.0.31527"
+#define FILE_VER_NUMBER 3, 0, 0, 31527
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31517"
+#define FB_BUILD_NO "31527"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-29 21:15:54 UTC (rev 60452)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-30 00:16:00 UTC (rev 60453)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31517
+BuildNum=31527
 
 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...> - 2014-12-31 00:13:46
       | 
| Revision: 60460
          http://sourceforge.net/p/firebird/code/60460
Author:   firebirds
Date:     2014-12-31 00:13:44 +0000 (Wed, 31 Dec 2014)
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	2014-12-30 18:44:56 UTC (rev 60459)
+++ firebird/trunk/ChangeLog	2014-12-31 00:13:44 UTC (rev 60460)
@@ -1,3 +1,12 @@
+ 2014-12-30 15:18  alexpeshkoff 
+   M src/common/IntlParametersBlock.cpp
+   M src/common/IntlParametersBlock.h
+Fixed CORE-4610: Add a tag name to diagnostics when trasliteration errors in Parameter Block values occur
+
+ 2014-12-30 08:17  starodubov 
+   M src/jrd/vio.cpp
+Fixed CORE-4656: Server could hang during chasing dead record version
+
  2014-12-29 21:15  dimitr 
    M src/jrd/RecordNumber.h
    M src/jrd/dpm.epp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-12-30 18:44:56 UTC (rev 60459)
+++ firebird/trunk/src/jrd/build_no.h	2014-12-31 00:13:44 UTC (rev 60460)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31527
+  FORMAL BUILD NUMBER:31529
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31527"
-#define FILE_VER_STRING "WI-T3.0.0.31527"
-#define LICENSE_VER_STRING "WI-T3.0.0.31527"
-#define FILE_VER_NUMBER 3, 0, 0, 31527
+#define PRODUCT_VER_STRING "3.0.0.31529"
+#define FILE_VER_STRING "WI-T3.0.0.31529"
+#define LICENSE_VER_STRING "WI-T3.0.0.31529"
+#define FILE_VER_NUMBER 3, 0, 0, 31529
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31527"
+#define FB_BUILD_NO "31529"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-12-30 18:44:56 UTC (rev 60459)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-12-31 00:13:44 UTC (rev 60460)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31527
+BuildNum=31529
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |