| 
      
      
      From: <fir...@us...> - 2014-04-24 01:05:37
       | 
| Revision: 59474
          http://sourceforge.net/p/firebird/code/59474
Author:   firebirds
Date:     2014-04-24 01:05:32 +0000 (Thu, 24 Apr 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-04-23 16:14:15 UTC (rev 59473)
+++ firebird/trunk/ChangeLog	2014-04-24 01:05:32 UTC (rev 59474)
@@ -1,3 +1,7 @@
+ 2014-04-23 12:43  alexpeshkoff 
+   M src/common/os/posix/path_utils.cpp
+Missing return - thanks to Claudio
+
  2014-04-22 13:37  alexpeshkoff 
    M lang_helpers/gds_codes.ftn
    M lang_helpers/gds_codes.pas
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-04-23 16:14:15 UTC (rev 59473)
+++ firebird/trunk/src/jrd/build_no.h	2014-04-24 01:05:32 UTC (rev 59474)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31075
+  FORMAL BUILD NUMBER:31076
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31075"
-#define FILE_VER_STRING "WI-T3.0.0.31075"
-#define LICENSE_VER_STRING "WI-T3.0.0.31075"
-#define FILE_VER_NUMBER 3, 0, 0, 31075
+#define PRODUCT_VER_STRING "3.0.0.31076"
+#define FILE_VER_STRING "WI-T3.0.0.31076"
+#define LICENSE_VER_STRING "WI-T3.0.0.31076"
+#define FILE_VER_NUMBER 3, 0, 0, 31076
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31075"
+#define FB_BUILD_NO "31076"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-04-23 16:14:15 UTC (rev 59473)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-04-24 01:05:32 UTC (rev 59474)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31075
+BuildNum=31076
 
 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-04-26 00:33:33
       | 
| Revision: 59479
          http://sourceforge.net/p/firebird/code/59479
Author:   firebirds
Date:     2014-04-26 00:33:30 +0000 (Sat, 26 Apr 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-04-25 11:01:51 UTC (rev 59478)
+++ firebird/trunk/ChangeLog	2014-04-26 00:33:30 UTC (rev 59479)
@@ -1,3 +1,25 @@
+ 2014-04-25 10:59  alexpeshkoff 
+   M src/alice/alice.cpp
+   M src/alice/alice_proto.h
+   M src/burp/burp.cpp
+   M src/burp/burp_proto.h
+   M src/common/UtilSvc.cpp
+   M src/common/UtilSvc.h
+   M src/jrd/EngineInterface.h
+   M src/jrd/jrd.cpp
+   M src/jrd/svc.cpp
+   M src/jrd/svc.h
+   M src/jrd/svc_tab.cpp
+   M src/jrd/svc_tab.h
+   M src/jrd/trace/TraceService.cpp
+   M src/jrd/trace/TraceService.h
+   M src/utilities/gsec/gsec.cpp
+   M src/utilities/gsec/gsec_proto.h
+   M src/utilities/gstat/dba.epp
+   M src/utilities/nbackup/nbackup.cpp
+   M src/utilities/nbackup/nbk_proto.h
+Fixed CORE-4303: Possible races while Service destruction, related code cleanup
+
  2014-04-23 12:43  alexpeshkoff 
    M src/common/os/posix/path_utils.cpp
 Missing return - thanks to Claudio
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-04-25 11:01:51 UTC (rev 59478)
+++ firebird/trunk/src/jrd/build_no.h	2014-04-26 00:33:30 UTC (rev 59479)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31076
+  FORMAL BUILD NUMBER:31077
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31076"
-#define FILE_VER_STRING "WI-T3.0.0.31076"
-#define LICENSE_VER_STRING "WI-T3.0.0.31076"
-#define FILE_VER_NUMBER 3, 0, 0, 31076
+#define PRODUCT_VER_STRING "3.0.0.31077"
+#define FILE_VER_STRING "WI-T3.0.0.31077"
+#define LICENSE_VER_STRING "WI-T3.0.0.31077"
+#define FILE_VER_NUMBER 3, 0, 0, 31077
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31076"
+#define FB_BUILD_NO "31077"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-04-25 11:01:51 UTC (rev 59478)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-04-26 00:33:30 UTC (rev 59479)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31076
+BuildNum=31077
 
 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-04-28 01:46:49
       | 
| Revision: 59488
          http://sourceforge.net/p/firebird/code/59488
Author:   firebirds
Date:     2014-04-28 01:46:46 +0000 (Mon, 28 Apr 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-04-27 10:06:54 UTC (rev 59487)
+++ firebird/trunk/ChangeLog	2014-04-28 01:46:46 UTC (rev 59488)
@@ -1,3 +1,12 @@
+ 2014-04-26 09:02  mapopa 
+   A builds/misc (from /firebird/trunk/builds/misc:59480)
+revert the change 
+
+ 2014-04-26 08:40  mapopa 
+   M builds/make.new/config/install-sh
+   D builds/misc
+removed 11 years ago due to new method to create security database 
+
  2014-04-25 10:59  alexpeshkoff 
    M src/alice/alice.cpp
    M src/alice/alice_proto.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-04-27 10:06:54 UTC (rev 59487)
+++ firebird/trunk/src/jrd/build_no.h	2014-04-28 01:46:46 UTC (rev 59488)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31077
+  FORMAL BUILD NUMBER:31079
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31077"
-#define FILE_VER_STRING "WI-T3.0.0.31077"
-#define LICENSE_VER_STRING "WI-T3.0.0.31077"
-#define FILE_VER_NUMBER 3, 0, 0, 31077
+#define PRODUCT_VER_STRING "3.0.0.31079"
+#define FILE_VER_STRING "WI-T3.0.0.31079"
+#define LICENSE_VER_STRING "WI-T3.0.0.31079"
+#define FILE_VER_NUMBER 3, 0, 0, 31079
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31077"
+#define FB_BUILD_NO "31079"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-04-27 10:06:54 UTC (rev 59487)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-04-28 01:46:46 UTC (rev 59488)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31077
+BuildNum=31079
 
 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-04-29 00:48:05
       | 
| Revision: 59496
          http://sourceforge.net/p/firebird/code/59496
Author:   firebirds
Date:     2014-04-29 00:48:02 +0000 (Tue, 29 Apr 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-04-28 16:05:34 UTC (rev 59495)
+++ firebird/trunk/ChangeLog	2014-04-29 00:48:02 UTC (rev 59496)
@@ -1,3 +1,23 @@
+ 2014-04-28 12:51  alexpeshkoff 
+   M src/yvalve/PluginManager.cpp
+   M src/yvalve/why.cpp
+Fixed CORE-4395: execute statement on external doesn't find Firebird 2.5 database
+
+ 2014-04-28 12:50  hvlad 
+   M src/common/classes/Reasons.h
+MSVC 12 support, very first step
+
+ 2014-04-28 09:40  alexpeshkoff 
+   M src/burp/backup.epp
+   M src/burp/burp.cpp
+   M src/burp/burp.h
+   M src/burp/burpswi.h
+   M src/burp/restore.epp
+   M src/jrd/SimilarToMatcher.h
+   M src/msgs/facilities2.sql
+   M src/msgs/messages2.sql
+Implemented CORE-2208: New gbak option to ignore specific tables data during the backup
+
  2014-04-26 09:02  mapopa 
    A builds/misc (from /firebird/trunk/builds/misc:59480)
 revert the change 
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-04-28 16:05:34 UTC (rev 59495)
+++ firebird/trunk/src/jrd/build_no.h	2014-04-29 00:48:02 UTC (rev 59496)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31079
+  FORMAL BUILD NUMBER:31082
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31079"
-#define FILE_VER_STRING "WI-T3.0.0.31079"
-#define LICENSE_VER_STRING "WI-T3.0.0.31079"
-#define FILE_VER_NUMBER 3, 0, 0, 31079
+#define PRODUCT_VER_STRING "3.0.0.31082"
+#define FILE_VER_STRING "WI-T3.0.0.31082"
+#define LICENSE_VER_STRING "WI-T3.0.0.31082"
+#define FILE_VER_NUMBER 3, 0, 0, 31082
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31079"
+#define FB_BUILD_NO "31082"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-04-28 16:05:34 UTC (rev 59495)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-04-29 00:48:02 UTC (rev 59496)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31079
+BuildNum=31082
 
 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-04-30 15:12:16
       | 
| Revision: 59508
          http://sourceforge.net/p/firebird/code/59508
Author:   alexpeshkoff
Date:     2014-04-30 15:12:12 +0000 (Wed, 30 Apr 2014)
Log Message:
-----------
Implemented CORE-1377: Add an ability to change role without reconnecting to database
Modified Paths:
--------------
    firebird/trunk/lang_helpers/gds_codes.ftn
    firebird/trunk/lang_helpers/gds_codes.pas
    firebird/trunk/src/dsql/StmtNodes.cpp
    firebird/trunk/src/dsql/StmtNodes.h
    firebird/trunk/src/dsql/dsql.cpp
    firebird/trunk/src/dsql/dsql.h
    firebird/trunk/src/dsql/parse.y
    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/isql/isql.epp
    firebird/trunk/src/jrd/irq.h
    firebird/trunk/src/jrd/jrd.cpp
    firebird/trunk/src/jrd/scl.epp
    firebird/trunk/src/jrd/scl.h
    firebird/trunk/src/jrd/scl_proto.h
    firebird/trunk/src/msgs/facilities2.sql
    firebird/trunk/src/msgs/messages2.sql
    firebird/trunk/src/msgs/system_errors2.sql
    firebird/trunk/src/yvalve/keywords.cpp
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/lang_helpers/gds_codes.ftn	2014-04-30 15:12:12 UTC (rev 59508)
@@ -1590,6 +1590,10 @@
       PARAMETER (GDS__map_nodb                         = 335545088)
       INTEGER*4 GDS__map_notable                     
       PARAMETER (GDS__map_notable                      = 335545089)
+      INTEGER*4 GDS__miss_trusted_role               
+      PARAMETER (GDS__miss_trusted_role                = 335545090)
+      INTEGER*4 GDS__set_invalid_role                
+      PARAMETER (GDS__set_invalid_role                 = 335545091)
       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-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/lang_helpers/gds_codes.pas	2014-04-30 15:12:12 UTC (rev 59508)
@@ -802,6 +802,8 @@
 	gds_baddpb_temp_buffers              = 335545087;
 	gds_map_nodb                         = 335545088;
 	gds_map_notable                      = 335545089;
+	gds_miss_trusted_role                = 335545090;
+	gds_set_invalid_role                 = 335545091;
 	gds_gfix_db_name                     = 335740929;
 	gds_gfix_invalid_sw                  = 335740930;
 	gds_gfix_incmp_sw                    = 335740932;
Modified: firebird/trunk/src/dsql/StmtNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/StmtNodes.cpp	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/dsql/StmtNodes.cpp	2014-04-30 15:12:12 UTC (rev 59508)
@@ -49,6 +49,7 @@
 #include "../jrd/par_proto.h"
 #include "../jrd/rlck_proto.h"
 #include "../jrd/tra_proto.h"
+#include "../jrd/scl_proto.h"
 #include "../dsql/ddl_proto.h"
 #include "../dsql/metd_proto.h"
 #include "../jrd/vio_proto.h"
@@ -7593,6 +7594,45 @@
 //--------------------
 
 
+SetRoleNode* SetRoleNode::dsqlPass(DsqlCompilerScratch* dsqlScratch)
+{
+	dsqlScratch->getStatement()->setType(DsqlCompiledStatement::TYPE_SET_ROLE);
+
+	return this;
+}
+
+void SetRoleNode::execute(thread_db* tdbb, dsql_req* request, jrd_tra** transaction) const
+{
+	SET_TDBB(tdbb);
+	Attachment* const attachment = tdbb->getAttachment();
+	UserId* user = attachment->att_user;
+	fb_assert(user);
+
+	if (trusted)
+	{
+		if (!user->usr_trusted_role.hasData())
+			Arg::Gds(isc_miss_trusted_role).raise();
+		user->usr_sql_role_name = user->usr_trusted_role;
+	}
+	else
+	{
+		if (!SCL_role_granted(tdbb, *user, roleName.c_str()))
+			(Arg::Gds(isc_set_invalid_role) << roleName).raise();
+		user->usr_sql_role_name = roleName.c_str();
+	}
+
+	if (SCL_admin_role(tdbb, user->usr_sql_role_name.c_str()))
+		user->usr_flags |= USR_dba;
+	else
+		user->usr_flags &= ~USR_dba;
+
+	SCL_release_all(attachment->att_security_classes);
+}
+
+
+//--------------------
+
+
 StmtNode* UpdateOrInsertNode::dsqlPass(DsqlCompilerScratch* dsqlScratch)
 {
 	thread_db* tdbb = JRD_get_thread_data(); // necessary?
Modified: firebird/trunk/src/dsql/StmtNodes.h
===================================================================
--- firebird/trunk/src/dsql/StmtNodes.h	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/dsql/StmtNodes.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -1509,6 +1509,42 @@
 };
 
 
+// This node should better be session management node,
+// but as long as we do not have other session management and
+// node is rather similiar internally to transaction management
+// let it for now be transaction management node.
+class SetRoleNode : public TransactionNode
+{
+public:
+	explicit SetRoleNode(MemoryPool& pool)
+		: TransactionNode(pool),
+		  trusted(true),
+		  roleName(pool)
+	{
+	}
+
+	SetRoleNode(MemoryPool& pool, Firebird::MetaName* name)
+		: TransactionNode(pool),
+		  trusted(false),
+		  roleName(pool, *name)
+	{
+	}
+
+public:
+	virtual void print(Firebird::string& text) const
+	{
+		text = "SetRoleNode";
+	}
+
+	virtual SetRoleNode* dsqlPass(DsqlCompilerScratch* dsqlScratch);
+	virtual void execute(thread_db* tdbb, dsql_req* request, jrd_tra** transaction) const;
+
+public:
+	bool trusted;
+	Firebird::MetaName roleName;
+};
+
+
 class UpdateOrInsertNode : public TypedNode<DsqlOnlyStmtNode, StmtNode::TYPE_UPDATE_OR_INSERT>
 {
 public:
Modified: firebird/trunk/src/dsql/dsql.cpp
===================================================================
--- firebird/trunk/src/dsql/dsql.cpp	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/dsql/dsql.cpp	2014-04-30 15:12:12 UTC (rev 59508)
@@ -1822,6 +1822,7 @@
 				break;
 			case DsqlCompiledStatement::TYPE_CREATE_DB:
 			case DsqlCompiledStatement::TYPE_DDL:
+			case DsqlCompiledStatement::TYPE_SET_ROLE:
 				number = isc_info_sql_stmt_ddl;
 				break;
 			case DsqlCompiledStatement::TYPE_COMMIT:
Modified: firebird/trunk/src/dsql/dsql.h
===================================================================
--- firebird/trunk/src/dsql/dsql.h	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/dsql/dsql.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -429,7 +429,7 @@
 		TYPE_SELECT, TYPE_SELECT_UPD, TYPE_INSERT, TYPE_DELETE, TYPE_UPDATE, TYPE_UPDATE_CURSOR,
 		TYPE_DELETE_CURSOR, TYPE_COMMIT, TYPE_ROLLBACK, TYPE_CREATE_DB, TYPE_DDL, TYPE_START_TRANS,
 		TYPE_EXEC_PROCEDURE, TYPE_COMMIT_RETAIN, TYPE_ROLLBACK_RETAIN, TYPE_SET_GENERATOR,
-		TYPE_SAVEPOINT, TYPE_EXEC_BLOCK, TYPE_SELECT_BLOCK
+		TYPE_SAVEPOINT, TYPE_EXEC_BLOCK, TYPE_SELECT_BLOCK, TYPE_SET_ROLE
 	};
 
 	// Statement flags.
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/dsql/parse.y	2014-04-30 15:12:12 UTC (rev 59508)
@@ -569,6 +569,7 @@
 %token <metaNamePtr> PLUGIN
 %token <metaNamePtr> SERVERWIDE
 %token <metaNamePtr> INCREMENT
+%token <metaNamePtr> TRUSTED
 
 // precedence declarations for expression evaluation
 
@@ -697,6 +698,7 @@
 	Jrd::CreateAlterUserNode* createAlterUserNode;
 	Jrd::MappingNode* mappingNode;
 	Jrd::MappingNode::OP mappingOp;
+	Jrd::SetRoleNode* setRoleNode;
 }
 
 %include types.y
@@ -749,6 +751,7 @@
 	: set_transaction							{ $$ = $1; }
 	| commit									{ $$ = $1; }
 	| rollback									{ $$ = $1; }
+	| set_role									{ $$ = $1; }
 	;
 
 
@@ -4468,6 +4471,14 @@
 			{ $$ = $3; }
 	;
 
+%type <setRoleNode> set_role
+set_role
+	: SET ROLE valid_symbol_name
+		{ $$ = newNode<SetRoleNode>($3); }
+	| SET TRUSTED ROLE
+		{ $$ = newNode<SetRoleNode>(); }
+	;
+
 %type tran_option_list_opt(<setTransactionNode>)
 tran_option_list_opt($setTransactionNode)
 	: // nothing
@@ -7373,6 +7384,7 @@
 	| PLUGIN
 	| SERVERWIDE
 	| INCREMENT
+	| TRUSTED
 	;
 
 %%
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/include/gen/codetext.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -791,6 +791,8 @@
 	{"baddpb_temp_buffers", 335545087},
 	{"map_nodb", 335545088},
 	{"map_notable", 335545089},
+	{"miss_trusted_role", 335545090},
+	{"set_invalid_role", 335545091},
 	{"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-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/include/gen/iberror.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -825,6 +825,8 @@
 const ISC_STATUS isc_baddpb_temp_buffers              = 335545087L;
 const ISC_STATUS isc_map_nodb                         = 335545088L;
 const ISC_STATUS isc_map_notable                      = 335545089L;
+const ISC_STATUS isc_miss_trusted_role                = 335545090L;
+const ISC_STATUS isc_set_invalid_role                 = 335545091L;
 const ISC_STATUS isc_gfix_db_name                     = 335740929L;
 const ISC_STATUS isc_gfix_invalid_sw                  = 335740930L;
 const ISC_STATUS isc_gfix_incmp_sw                    = 335740932L;
@@ -1278,7 +1280,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                          = 1222;
+const ISC_STATUS isc_err_max                          = 1224;
 
 #else /* c definitions */
 
@@ -2073,6 +2075,8 @@
 #define isc_baddpb_temp_buffers              335545087L
 #define isc_map_nodb                         335545088L
 #define isc_map_notable                      335545089L
+#define isc_miss_trusted_role                335545090L
+#define isc_set_invalid_role                 335545091L
 #define isc_gfix_db_name                     335740929L
 #define isc_gfix_invalid_sw                  335740930L
 #define isc_gfix_incmp_sw                    335740932L
@@ -2526,7 +2530,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                          1222
+#define isc_err_max                          1224
 
 #endif
 
Modified: firebird/trunk/src/include/gen/msgs.h
===================================================================
--- firebird/trunk/src/include/gen/msgs.h	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/include/gen/msgs.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -794,6 +794,8 @@
 	{335545087, "Attempt to temporarily set number of buffers less than @1"},		/* baddpb_temp_buffers */
 	{335545088, "Global mapping is not available when database @1 is not present"},		/* map_nodb */
 	{335545089, "Global mapping is not available when table RDB$MAP is not present in database @1"},		/* map_notable */
+	{335545090, "Your attachment has no trusted role"},		/* miss_trusted_role */
+	{335545091, "Role @1 is invalid or unavailable"},		/* set_invalid_role */
 	{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-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/include/gen/sql_code.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -790,6 +790,8 @@
 	{335545087, -924}, /* 767 baddpb_temp_buffers */
 	{335545088, -901}, /* 768 map_nodb */
 	{335545089, -901}, /* 769 map_notable */
+	{335545090, -901}, /* 770 miss_trusted_role */
+	{335545091, -901}, /* 771 set_invalid_role */
 	{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-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/include/gen/sql_state.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -790,6 +790,8 @@
 	{335545087, "HY000"}, // 767 baddpb_temp_buffers
 	{335545088, "0A000"}, // 768 map_nodb
 	{335545089, "0A000"}, // 769 map_notable
+	{335545090, "0P000"}, // 770 miss_trusted_role
+	{335545091, "0P000"}, // 771 set_invalid_role
 	{335740929, "00000"}, //   1 gfix_db_name
 	{335740930, "00000"}, //   2 gfix_invalid_sw
 	{335740932, "00000"}, //   4 gfix_incmp_sw
Modified: firebird/trunk/src/isql/isql.epp
===================================================================
--- firebird/trunk/src/isql/isql.epp	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/isql/isql.epp	2014-04-30 15:12:12 UTC (rev 59508)
@@ -4918,7 +4918,7 @@
 //#ifdef DEV_BUILD
 			sqlda_display,
 //#endif
-			sql, warning, generator, statistics, heading, bail,
+			sql, warning, sqlCont, heading, bail,
 			bulk_insert, maxrows, wrong
 		};
 		SetOptions(const optionsMap* inmap, size_t insize, int wrongval)
@@ -4948,13 +4948,15 @@
 		{SetOptions::sql, "SQL", 0},
 		{SetOptions::warning, "WARNINGS", 7},
 		{SetOptions::warning, "WNG", 0},
-		{SetOptions::generator, "GENERATOR", 0},
-		{SetOptions::statistics, "STATISTICS", 0},
+		{SetOptions::sqlCont, "GENERATOR", 0},
+		{SetOptions::sqlCont, "STATISTICS", 0},
 		{SetOptions::heading, "HEADING", 0},
 		{SetOptions::bail, "BAIL", 0},
 		{SetOptions::bulk_insert, "BULK_INSERT", 0},
 		{SetOptions::maxrows, "ROWCOUNT", 0}, // legacy, compatible with FB2.5
 		{SetOptions::maxrows, "MAXROWS", 0},
+		{SetOptions::sqlCont, "ROLE", 0},
+		{SetOptions::sqlCont, "TRUSTED", 0},	// TRUSTED ROLE, will get DSQL error other case
 	};
 
 	// Display current set options
@@ -4965,6 +4967,10 @@
 	const SetOptions setoptions(options, FB_NELEM(options), SetOptions::wrong);
 	switch (setoptions.getCommand(parms[1]))
 	{
+	case SetOptions::sqlCont:
+		ret = CONT;
+		break;
+
 	case SetOptions::stat:
 		ret = do_set_command(parms[2], &Stats);
 		break;
@@ -5082,11 +5088,6 @@
 		ret = do_set_command (parms[2], &Warnings);
 		break;
 
-	case SetOptions::generator:
-	case SetOptions::statistics:
-		ret = CONT;
-		break;
-
 	case SetOptions::heading:
 		ret = do_set_command(parms[2], &Heading);
 		break;
Modified: firebird/trunk/src/jrd/irq.h
===================================================================
--- firebird/trunk/src/jrd/irq.h	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/jrd/irq.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -103,6 +103,8 @@
 	irq_c_trg_perm,			// check if trig can ignore perm. checks
 	irq_get_role_mem,		// get SQL role membership
 	irq_get_role_name,		// get SQL role name
+	irq_is_admin_role, 		// check is current role admin or not
+	irq_get_att_class,		// get security class for current attachment
 	irq_format6,			// make a new format for a record
 	irq_r_gen_id_num,		// lookup generator by ID.
 	irq_upd_gen_id_step,	// update the STEP of a generator (only for legacy code).
Modified: firebird/trunk/src/jrd/jrd.cpp
===================================================================
--- firebird/trunk/src/jrd/jrd.cpp	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/jrd/jrd.cpp	2014-04-30 15:12:12 UTC (rev 59508)
@@ -1223,6 +1223,87 @@
 	return getTransactionInterface(status, tra)->getHandle();
 }
 
+static void makeRoleName(Database* dbb, string& userIdRole, DatabaseOptions& options)
+{
+	if (userIdRole.hasData())
+	{
+		switch (options.dpb_sql_dialect)
+		{
+		case 0:
+			// V6 Client --> V6 Server, dummy client SQL dialect 0 was passed
+			// It means that client SQL dialect was not set by user
+			// and takes DB SQL dialect as client SQL dialect
+			if (dbb->dbb_flags & DBB_DB_SQL_dialect_3)
+			{
+				// DB created in IB V6.0 by client SQL dialect 3
+				options.dpb_sql_dialect = SQL_DIALECT_V6;
+			}
+			else
+			{
+				// old DB was gbaked in IB V6.0
+				options.dpb_sql_dialect = SQL_DIALECT_V5;
+			}
+			break;
+
+		case 99:
+			// V5 Client --> V6 Server, old client has no concept of dialect
+			options.dpb_sql_dialect = SQL_DIALECT_V5;
+			break;
+
+		default:
+			// V6 Client --> V6 Server, but client SQL dialect was set
+			// by user and was passed.
+			break;
+		}
+
+		CharSet* utf8CharSet = IntlUtil::getUtf8CharSet();
+
+		switch (options.dpb_sql_dialect)
+		{
+		case SQL_DIALECT_V5:
+			{
+				strip_quotes(userIdRole);
+				IntlUtil::toUpper(utf8CharSet, userIdRole);
+			}
+			break;
+
+		case SQL_DIALECT_V6_TRANSITION:
+		case SQL_DIALECT_V6:
+			{
+				if (userIdRole.hasData() && (userIdRole[0] == DBL_QUOTE || userIdRole[0] == SINGLE_QUOTE))
+				{
+					const char end_quote = userIdRole[0];
+					// remove the delimited quotes and escape quote
+					// from ROLE name
+					userIdRole.erase(0, 1);
+					for (string::iterator p = userIdRole.begin(); p < userIdRole.end(); ++p)
+					{
+						if (*p == end_quote)
+						{
+							if (++p < userIdRole.end() && *p == end_quote)
+							{
+								// skip the escape quote here
+								userIdRole.erase(p--);
+							}
+							else
+							{
+								// delimited done
+								userIdRole.erase(--p, userIdRole.end());
+							}
+						}
+					}
+				}
+				else
+					IntlUtil::toUpper(utf8CharSet, userIdRole);
+			}
+			break;
+
+		default:
+			break;
+		}
+	}
+}
+
 JAttachment* FB_CARG JProvider::attachDatabase(IStatus* user_status, const char* filename,
 	unsigned int dpb_length, const unsigned char* dpb)
 {
@@ -1505,83 +1586,9 @@
 						 Arg::Gds(isc_valid_client_dialects) << Arg::Str("1, 2 or 3"));
 			}
 
-			if (userId.usr_sql_role_name.hasData())
-			{
-				switch (options.dpb_sql_dialect)
-				{
-				case 0:
-					// V6 Client --> V6 Server, dummy client SQL dialect 0 was passed
-					// It means that client SQL dialect was not set by user
-					// and takes DB SQL dialect as client SQL dialect
-					if (dbb->dbb_flags & DBB_DB_SQL_dialect_3)
-					{
-						// DB created in IB V6.0 by client SQL dialect 3
-						options.dpb_sql_dialect = SQL_DIALECT_V6;
-					}
-					else
-					{
-						// old DB was gbaked in IB V6.0
-						options.dpb_sql_dialect = SQL_DIALECT_V5;
-					}
-					break;
-				case 99:
-					// V5 Client --> V6 Server, old client has no concept of dialect
-					options.dpb_sql_dialect = SQL_DIALECT_V5;
-					break;
-				default:
-					// V6 Client --> V6 Server, but client SQL dialect was set
-					// by user and was passed.
-					break;
-				}
+			makeRoleName(dbb, userId.usr_sql_role_name, options);
+			makeRoleName(dbb, userId.usr_trusted_role, options);
 
-				CharSet* utf8CharSet = IntlUtil::getUtf8CharSet();
-
-				switch (options.dpb_sql_dialect)
-				{
-				case SQL_DIALECT_V5:
-					{
-						strip_quotes(userId.usr_sql_role_name);
-						IntlUtil::toUpper(utf8CharSet, userId.usr_sql_role_name);
-					}
-					break;
-
-				case SQL_DIALECT_V6_TRANSITION:
-				case SQL_DIALECT_V6:
-					{
-						string& role = userId.usr_sql_role_name;
-						if (role.hasData() && (role[0] == DBL_QUOTE || role[0] == SINGLE_QUOTE))
-						{
-							const char end_quote = role[0];
-							// remove the delimited quotes and escape quote
-							// from ROLE name
-							role.erase(0, 1);
-							for (string::iterator p = role.begin(); p < role.end(); ++p)
-							{
-								if (*p == end_quote)
-								{
-									if (++p < role.end() && *p == end_quote)
-									{
-										// skip the escape quote here
-										role.erase(p--);
-									}
-									else
-									{
-										// delimited done
-										role.erase(--p, role.end());
-									}
-								}
-							}
-						}
-						else
-							IntlUtil::toUpper(utf8CharSet, role);
-					}
-					break;
-
-				default:
-					break;
-				}
-			}
-
 			options.dpb_sql_dialect = 0;
 
 			SCL_init(tdbb, false, userId);
@@ -7126,10 +7133,9 @@
 	{
 		user.usr_sql_role_name = options.dpb_role_name;
 	}
-	else if (trusted_role.hasData())
+	if (trusted_role.hasData())
 	{
-		user.usr_sql_role_name = trusted_role;
-		user.usr_flags |= USR_trole;
+		user.usr_trusted_role = trusted_role;
 	}
 }
 
Modified: firebird/trunk/src/jrd/scl.epp
===================================================================
--- firebird/trunk/src/jrd/scl.epp	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/jrd/scl.epp	2014-04-30 15:12:12 UTC (rev 59508)
@@ -804,6 +804,91 @@
 }
 
 
+bool SCL_role_granted(thread_db* tdbb, const UserId& usr, const TEXT* sql_role)
+{
+/**************************************
+ *
+ *	S C L _ r o l e _ g r a n t e d
+ *
+ **************************************
+ *
+ * Functional description
+ *	Check is sql_role granted to the user.
+ *
+ **************************************/
+	SET_TDBB(tdbb);
+	Jrd::Attachment* const attachment = tdbb->getAttachment();
+
+	if (!strcmp(sql_role, NULL_ROLE))
+	{
+		return true;
+	}
+
+	Firebird::string loginName(usr.usr_user_name);
+	loginName.upper();
+	const TEXT* login_name = loginName.c_str();
+
+	bool found = false;
+
+	AutoCacheRequest request(tdbb, irq_verify_role_name, IRQ_REQUESTS);
+
+	// CVC: The caller has hopefully uppercased the role or stripped quotes. Of course,
+	// uppercase-UPPER7 should only happen if the role wasn't enclosed in quotes.
+	// Shortsighted developers named the field rdb$relation_name instead of rdb$object_name.
+	// This request is not exactly the same than irq_get_role_mem, sorry, I can't reuse that.
+	// If you think that an unknown role cannot be granted, think again: someone made sure
+	// in DYN that SYSDBA can do almost anything, including invalid grants.
+
+	FOR (REQUEST_HANDLE request) FIRST 1 RR IN RDB$ROLES
+		CROSS UU IN RDB$USER_PRIVILEGES
+		WITH RR.RDB$ROLE_NAME        EQ sql_role
+		AND RR.RDB$ROLE_NAME         EQ UU.RDB$RELATION_NAME
+		AND UU.RDB$OBJECT_TYPE       EQ obj_sql_role
+		AND (UU.RDB$USER             EQ login_name
+			 OR UU.RDB$USER          EQ "PUBLIC")
+		AND UU.RDB$USER_TYPE         EQ obj_user
+		AND UU.RDB$PRIVILEGE         EQ "M"
+	{
+		if (!UU.RDB$USER.NULL)
+			found = true;
+	}
+	END_FOR
+
+	return found;
+}
+
+
+bool SCL_admin_role(thread_db* tdbb, const TEXT* sql_role)
+{
+/**************************************
+ *
+ *	S C L _ a d m i n _ r o l e
+ *
+ **************************************
+ *
+ * Functional description
+ *	Check is sql_role is an admin role.
+ *
+ **************************************/
+	SET_TDBB(tdbb);
+	Jrd::Attachment* const attachment = tdbb->getAttachment();
+
+	bool adminRole = false;
+
+	AutoCacheRequest request(tdbb, irq_is_admin_role, IRQ_REQUESTS);
+
+	FOR(REQUEST_HANDLE request) R IN RDB$ROLES
+		WITH R.RDB$ROLE_NAME EQ sql_role
+	{
+		if (R.RDB$SYSTEM_FLAG & ROLE_FLAG_DBO)
+			adminRole = true;
+	}
+	END_FOR
+
+	return adminRole;
+}
+
+
 void SCL_init(thread_db* tdbb, bool create, const UserId& tempId)
 {
 /**************************************
@@ -815,10 +900,8 @@
  * Functional description
  *	Check database access control list.
  *
- *	Checks the userinfo database to get the
- *	password and other stuff about the specified
- *	user.   Compares the password to that passed
- *	in, encrypting if necessary.
+ *	Finally fills UserId information
+ *	(role, flags, etc.).
  *
  **************************************/
 	SET_TDBB(tdbb);
@@ -826,17 +909,17 @@
 	Jrd::Attachment* const attachment = tdbb->getAttachment();
 
 	const TEXT* sql_role = tempId.usr_sql_role_name.nullStr();
-	Firebird::string loginName(tempId.usr_user_name);
-	loginName.upper();
-	const TEXT* login_name = loginName.c_str();
-	Firebird::MetaName role_name;
 
     // CVC: We'll verify the role and wipe it out when it doesn't exist
 
-	if (strlen(login_name) != 0)
+	if (tempId.usr_user_name.hasData())
 	{
 		if (!create)
 		{
+			Firebird::string loginName(tempId.usr_user_name);
+			loginName.upper();
+			const TEXT* login_name = loginName.c_str();
+
 			AutoCacheRequest request(tdbb, irq_get_role_name, IRQ_REQUESTS);
 
 			FOR(REQUEST_HANDLE request) X IN RDB$ROLES
@@ -851,51 +934,17 @@
     // CVC: If we aren't creating a db and sql_role was specified,
     // then verify it against rdb$roles and rdb$user_privileges
 
-    if (!create && sql_role && *sql_role && strcmp(sql_role, NULL_ROLE))
+    if (!create && sql_role && *sql_role)
     {
-        bool found = false;
+        if (!SCL_role_granted(tdbb, tempId, sql_role))
+            sql_role = NULL;
+    }
 
-        AutoCacheRequest request(tdbb, irq_verify_role_name, IRQ_REQUESTS);
+	if (!sql_role)
+		sql_role = tempId.usr_trusted_role.nullStr();
 
-        // CVC: The caller has hopefully uppercased the role or stripped quotes. Of course,
-        // uppercase-UPPER7 should only happen if the role wasn't enclosed in quotes.
-        // Shortsighted developers named the field rdb$relation_name instead of rdb$object_name.
-        // This request is not exactly the same than irq_get_role_mem, sorry, I can't reuse that.
-        // If you think that an unknown role cannot be granted, think again: someone made sure
-        // in DYN that SYSDBA can do almost anything, including invalid grants.
+	MetaName role_name(sql_role ? sql_role : NULL_ROLE);
 
-		if (!(tempId.usr_flags & USR_trole))
-		{
-			FOR (REQUEST_HANDLE request) FIRST 1 RR IN RDB$ROLES
-				CROSS UU IN RDB$USER_PRIVILEGES
-				WITH RR.RDB$ROLE_NAME        EQ sql_role
-				AND RR.RDB$ROLE_NAME         EQ UU.RDB$RELATION_NAME
-				AND UU.RDB$OBJECT_TYPE       EQ obj_sql_role
-				AND (UU.RDB$USER             EQ login_name
-					 OR UU.RDB$USER          EQ "PUBLIC")
-				AND UU.RDB$USER_TYPE         EQ obj_user
-				AND UU.RDB$PRIVILEGE         EQ "M"
-			{
-				if (!UU.RDB$USER.NULL)
-					found = true;
-			}
-			END_FOR
-		}
-		else
-			found = true;
-
-        if (!found)
-            role_name = NULL_ROLE;
-    }
-
-	if (sql_role)
-	{
-        if (role_name != NULL_ROLE)
-            role_name = sql_role;
-	}
-	else
-		role_name = NULL_ROLE;
-
 	MemoryPool& pool = *attachment->att_pool;
 	UserId* const user = FB_NEW(pool) UserId(pool, tempId);
 	user->usr_sql_role_name = role_name.c_str();
@@ -903,9 +952,9 @@
 
 	if (!create)
 	{
-		AutoRequest handle, handle1, handle2;
+		AutoCacheRequest request(tdbb, irq_get_att_class, IRQ_REQUESTS);
 
-		FOR(REQUEST_HANDLE handle) X IN RDB$DATABASE
+		FOR(REQUEST_HANDLE request) X IN RDB$DATABASE
 		{
 			if (!X.RDB$SECURITY_CLASS.NULL)
 				attachment->att_security_class = SCL_get_class(tdbb, X.RDB$SECURITY_CLASS);
@@ -914,7 +963,9 @@
 
 		if (dbb->dbb_owner.isEmpty())
 		{
-			FOR(REQUEST_HANDLE handle1)
+			AutoRequest request;
+
+			FOR(REQUEST_HANDLE request)
 				FIRST 1 REL IN RDB$RELATIONS
 				WITH REL.RDB$RELATION_NAME EQ "RDB$DATABASE"
 			{
@@ -927,13 +978,8 @@
 		if (dbb->dbb_owner == user->usr_user_name)
 			user->usr_flags |= USR_owner;
 
-		FOR(REQUEST_HANDLE handle2) R IN RDB$ROLES
-			WITH R.RDB$ROLE_NAME EQ role_name.c_str()
-		{
-			if (R.RDB$SYSTEM_FLAG & ROLE_FLAG_DBO)
-				user->usr_flags |= USR_dba;
-		}
-		END_FOR
+		if (sql_role && SCL_admin_role(tdbb, role_name.c_str()))
+			user->usr_flags |= USR_dba;
 	}
 	else
 	{
@@ -1294,6 +1340,8 @@
 				case id_sql_role:
 					if (!role_name || check_string(a, role_name))
 						hit = false;
+					else if (user.usr_sql_role_name == user.usr_trusted_role)
+						hit = true;
 					else
 					{
 						TEXT login_name[129];
Modified: firebird/trunk/src/jrd/scl.h
===================================================================
--- firebird/trunk/src/jrd/scl.h	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/jrd/scl.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -84,14 +84,13 @@
 const USHORT USR_locksmith	= 1;		// User has great karma
 const USHORT USR_dba		= 2;		// User has DBA privileges
 const USHORT USR_owner		= 4;		// User owns database
-const USHORT USR_trole		= 8;		// Role was set by trusted auth
 
-
 class UserId
 {
 public:
 	Firebird::string	usr_user_name;		// User name
 	Firebird::string	usr_sql_role_name;	// Role name
+	Firebird::string	usr_trusted_role;	// Trusted role if set
 	Firebird::string	usr_project_name;	// Project name
 	Firebird::string	usr_org_name;		// Organization name
 	Firebird::string	usr_auth_method;	// Authentication method
@@ -112,6 +111,7 @@
 	UserId(Firebird::MemoryPool& p, const UserId& ui)
 		: usr_user_name(p, ui.usr_user_name),
 		  usr_sql_role_name(p, ui.usr_sql_role_name),
+		  usr_trusted_role(p, ui.usr_trusted_role),
 		  usr_project_name(p, ui.usr_project_name),
 		  usr_org_name(p, ui.usr_org_name),
 		  usr_auth_method(p, ui.usr_auth_method),
@@ -126,6 +126,7 @@
 	UserId(const UserId& ui)
 		: usr_user_name(ui.usr_user_name),
 		  usr_sql_role_name(ui.usr_sql_role_name),
+		  usr_trusted_role(ui.usr_trusted_role),
 		  usr_project_name(ui.usr_project_name),
 		  usr_org_name(ui.usr_org_name),
 		  usr_auth_method(ui.usr_auth_method),
@@ -140,6 +141,7 @@
 	{
 		usr_user_name = ui.usr_user_name;
 		usr_sql_role_name = ui.usr_sql_role_name;
+		usr_trusted_role = ui.usr_trusted_role;
 		usr_project_name = ui.usr_project_name;
 		usr_org_name = ui.usr_org_name;
 		usr_auth_method = ui.usr_auth_method;
Modified: firebird/trunk/src/jrd/scl_proto.h
===================================================================
--- firebird/trunk/src/jrd/scl_proto.h	2014-04-30 12:20:59 UTC (rev 59507)
+++ firebird/trunk/src/jrd/scl_proto.h	2014-04-30 15:12:12 UTC (rev 59508)
@@ -51,6 +51,8 @@
 void SCL_init(Jrd::thread_db* tdbb, bool, const Jrd::UserId& tempId);
 Jrd::SecurityClass* SCL_recompute_class(Jrd::thread_db*, const TEXT*);
 void SCL_release_all(Jrd::SecurityClassList*&);
+bool SCL_role_granted(Jrd::thread_db* tdbb, const Jrd::UserId& usr, const TEXT* sql_role);
+bool SCL_admin_role(Jrd::thread_db* tdbb, const TEXT* sql_role);
 
 namespace Jrd {
 typedef Firebird::Array<UCHAR> Acl;
Modified: firebird/t...
 
[truncated message content] | 
| 
      
      
      From: <fir...@us...> - 2014-05-01 00:31:55
       | 
| Revision: 59510
          http://sourceforge.net/p/firebird/code/59510
Author:   firebirds
Date:     2014-05-01 00:31:52 +0000 (Thu, 01 May 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-04-30 15:38:29 UTC (rev 59509)
+++ firebird/trunk/ChangeLog	2014-05-01 00:31:52 UTC (rev 59510)
@@ -1,3 +1,64 @@
+ 2014-04-30 15:38  hvlad 
+   M src/jrd/Mapping.cpp
+Fixed event leak. Alex, please review.
+
+ 2014-04-30 15:12  alexpeshkoff 
+   M lang_helpers/gds_codes.ftn
+   M lang_helpers/gds_codes.pas
+   M src/dsql/StmtNodes.cpp
+   M src/dsql/StmtNodes.h
+   M src/dsql/dsql.cpp
+   M src/dsql/dsql.h
+   M src/dsql/parse.y
+   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/isql/isql.epp
+   M src/jrd/irq.h
+   M src/jrd/jrd.cpp
+   M src/jrd/scl.epp
+   M src/jrd/scl.h
+   M src/jrd/scl_proto.h
+   M src/msgs/facilities2.sql
+   M src/msgs/messages2.sql
+   M src/msgs/system_errors2.sql
+   M src/yvalve/keywords.cpp
+Implemented CORE-1377: Add an ability to change role without reconnecting to database
+
+ 2014-04-30 12:20  alexpeshkoff 
+   M src/jrd/svc.cpp
+Fixed unhandled exception in services brought my one of recent commits
+
+ 2014-04-30 11:09  hvlad 
+   M builds/win32/msvc10/common.vcxproj
+   M builds/win32/msvc10/engine.vcxproj
+   M builds/win32/msvc10/fbtrace.vcxproj
+   M builds/win32/msvc10/firebird2.props
+   M builds/win32/msvc10/gpre.vcxproj
+   M builds/win32/msvc10/gpre_common.vcxproj
+   M builds/win32/msvc10/intl.vcxproj
+   M builds/win32/msvc10/isql.vcxproj
+   M builds/win32/msvc10/legacy_auth.vcxproj
+   M builds/win32/msvc10/legacy_usermanager.vcxproj
+   M builds/win32/msvc10/srp.vcxproj
+   M builds/win32/msvc10/udr_engine.vcxproj
+   M builds/win32/msvc10/yvalve.vcxproj
+Fixed VC10 build - make all project use the same set of include directories.
+
+ 2014-04-30 09:20  mapopa 
+   M src/jrd/lck.cpp
+VMS lock cleanup
+
+ 2014-04-30 09:14  mapopa 
+   M src/common/classes/alloc.h
+VMS cleanup
+
+ 2014-04-30 09:08  mapopa 
+   D src/jrd/os/vms
+VMS cleanup 
+
  2014-04-28 12:51  alexpeshkoff 
    M src/yvalve/PluginManager.cpp
    M src/yvalve/why.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-04-30 15:38:29 UTC (rev 59509)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-01 00:31:52 UTC (rev 59510)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31082
+  FORMAL BUILD NUMBER:31089
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31082"
-#define FILE_VER_STRING "WI-T3.0.0.31082"
-#define LICENSE_VER_STRING "WI-T3.0.0.31082"
-#define FILE_VER_NUMBER 3, 0, 0, 31082
+#define PRODUCT_VER_STRING "3.0.0.31089"
+#define FILE_VER_STRING "WI-T3.0.0.31089"
+#define LICENSE_VER_STRING "WI-T3.0.0.31089"
+#define FILE_VER_NUMBER 3, 0, 0, 31089
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31082"
+#define FB_BUILD_NO "31089"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-04-30 15:38:29 UTC (rev 59509)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-01 00:31:52 UTC (rev 59510)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31082
+BuildNum=31089
 
 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-05-02 00:54:35
       | 
| Revision: 59523
          http://sourceforge.net/p/firebird/code/59523
Author:   firebirds
Date:     2014-05-02 00:54:31 +0000 (Fri, 02 May 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-05-01 19:55:06 UTC (rev 59522)
+++ firebird/trunk/ChangeLog	2014-05-02 00:54:31 UTC (rev 59523)
@@ -1,3 +1,28 @@
+ 2014-05-01 05:55  robocop 
+   M src/jrd/vio.cpp
+More sys tables protected.
+
+ 2014-05-01 05:51  robocop 
+   M src/burp/burpswi.h
+Misc.
+
+ 2014-05-01 05:30  robocop 
+   M src/jrd/scl.epp
+Avoid var shadowing.
+
+ 2014-05-01 05:29  robocop 
+   M src/burp/backup.epp
+   M src/burp/burp.h
+   M src/burp/restore.epp
+   M src/common/utils.cpp
+   M src/dsql/DdlNodes.epp
+   M src/isql/show.epp
+   M src/jrd/fields.h
+   M src/jrd/irq.h
+   M src/jrd/met.epp
+   M src/jrd/relations.h
+Misc.
+
  2014-04-30 15:38  hvlad 
    M src/jrd/Mapping.cpp
 Fixed event leak. Alex, please review.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-01 19:55:06 UTC (rev 59522)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-02 00:54:31 UTC (rev 59523)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31089
+  FORMAL BUILD NUMBER:31093
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31089"
-#define FILE_VER_STRING "WI-T3.0.0.31089"
-#define LICENSE_VER_STRING "WI-T3.0.0.31089"
-#define FILE_VER_NUMBER 3, 0, 0, 31089
+#define PRODUCT_VER_STRING "3.0.0.31093"
+#define FILE_VER_STRING "WI-T3.0.0.31093"
+#define LICENSE_VER_STRING "WI-T3.0.0.31093"
+#define FILE_VER_NUMBER 3, 0, 0, 31093
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31089"
+#define FB_BUILD_NO "31093"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-01 19:55:06 UTC (rev 59522)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-02 00:54:31 UTC (rev 59523)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31089
+BuildNum=31093
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ro...@us...> - 2014-05-03 00:27:51
       | 
| Revision: 59526
          http://sourceforge.net/p/firebird/code/59526
Author:   robocop
Date:     2014-05-03 00:27:47 +0000 (Sat, 03 May 2014)
Log Message:
-----------
Replace "unknown token" by specific messages.
Modified Paths:
--------------
    firebird/trunk/lang_helpers/gds_codes.ftn
    firebird/trunk/lang_helpers/gds_codes.pas
    firebird/trunk/src/dsql/pass1.cpp
    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-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/lang_helpers/gds_codes.ftn	2014-05-03 00:27:47 UTC (rev 59526)
@@ -2298,6 +2298,14 @@
       PARAMETER (GDS__dsql_create_generator_failed     = 336397324)
       INTEGER*4 GDS__dsql_set_generator_failed       
       PARAMETER (GDS__dsql_set_generator_failed        = 336397325)
+      INTEGER*4 GDS__dsql_wlock_simple               
+      PARAMETER (GDS__dsql_wlock_simple                = 336397326)
+      INTEGER*4 GDS__dsql_firstskip_rows             
+      PARAMETER (GDS__dsql_firstskip_rows              = 336397327)
+      INTEGER*4 GDS__dsql_wlock_aggregates           
+      PARAMETER (GDS__dsql_wlock_aggregates            = 336397328)
+      INTEGER*4 GDS__dsql_wlock_conflict             
+      PARAMETER (GDS__dsql_wlock_conflict              = 336397329)
       INTEGER*4 GDS__gsec_cant_open_db               
       PARAMETER (GDS__gsec_cant_open_db                = 336723983)
       INTEGER*4 GDS__gsec_switches_error             
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/lang_helpers/gds_codes.pas	2014-05-03 00:27:47 UTC (rev 59526)
@@ -1156,6 +1156,10 @@
 	gds_dsql_alter_sequence_failed       = 336397323;
 	gds_dsql_create_generator_failed     = 336397324;
 	gds_dsql_set_generator_failed        = 336397325;
+	gds_dsql_wlock_simple                = 336397326;
+	gds_dsql_firstskip_rows              = 336397327;
+	gds_dsql_wlock_aggregates            = 336397328;
+	gds_dsql_wlock_conflict              = 336397329;
 	gds_gsec_cant_open_db                = 336723983;
 	gds_gsec_switches_error              = 336723984;
 	gds_gsec_no_op_spec                  = 336723985;
Modified: firebird/trunk/src/dsql/pass1.cpp
===================================================================
--- firebird/trunk/src/dsql/pass1.cpp	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/src/dsql/pass1.cpp	2014-05-03 00:27:47 UTC (rev 59526)
@@ -1816,9 +1816,7 @@
 				(relation->rel_flags & (REL_view | REL_external))))
 		{
 			ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
-					  // Token unknown
-					  Arg::Gds(isc_token_err) <<
-					  Arg::Gds(isc_random) << Arg::Str("WITH LOCK"));
+					  Arg::Gds(isc_dsql_wlock_simple));
 		}
 	} // end scope block
 
@@ -1827,9 +1825,7 @@
 	if ((inputRse->dsqlFirst || inputRse->dsqlSkip) && rows)
 	{
 		ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
-				  // Token unknown
-				  Arg::Gds(isc_token_err) <<
-				  Arg::Gds(isc_random) << Arg::Str("ROWS"));
+				  Arg::Gds(isc_dsql_firstskip_rows));
 	}
 	else if (rows)
 		PASS1_limit(dsqlScratch, rows->length, rows->skip, rse);
@@ -1927,9 +1923,7 @@
 		if (updateLock)
 		{
 			ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
-					  // Token unknown
-					  Arg::Gds(isc_token_err) <<
-					  Arg::Gds(isc_random) << Arg::Str("WITH LOCK"));
+					  Arg::Gds(isc_dsql_wlock_aggregates));
 		}
 
 		parent_context = FB_NEW(*tdbb->getDefaultPool()) dsql_ctx(*tdbb->getDefaultPool());
@@ -1999,9 +1993,7 @@
 		if (updateLock)
 		{
 			ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
-					  // Token unknown
-					  Arg::Gds(isc_token_err) <<
-					  Arg::Gds(isc_random) << Arg::Str("WITH LOCK"));
+					  Arg::Gds(isc_dsql_wlock_conflict) << Arg::Str("DISTINCT"));
 		}
 
 		++dsqlScratch->inSelectList;
@@ -2583,9 +2575,7 @@
 		if (updateLock)
 		{
 			ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-104) <<
-					  // Token unknown
-					  Arg::Gds(isc_token_err) <<
-					  Arg::Gds(isc_random) << Arg::Str("WITH LOCK"));
+					  Arg::Gds(isc_dsql_wlock_conflict) << Arg::Str("UNION"));
 		}
 
 		unionRse->dsqlDistinct = union_items;
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/src/include/gen/codetext.h	2014-05-03 00:27:47 UTC (rev 59526)
@@ -1145,6 +1145,10 @@
 	{"dsql_alter_sequence_failed", 336397323},
 	{"dsql_create_generator_failed", 336397324},
 	{"dsql_set_generator_failed", 336397325},
+	{"dsql_wlock_simple", 336397326},
+	{"dsql_firstskip_rows", 336397327},
+	{"dsql_wlock_aggregates", 336397328},
+	{"dsql_wlock_conflict", 336397329},
 	{"gsec_cant_open_db", 336723983},
 	{"gsec_switches_error", 336723984},
 	{"gsec_no_op_spec", 336723985},
Modified: firebird/trunk/src/include/gen/iberror.h
===================================================================
--- firebird/trunk/src/include/gen/iberror.h	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/src/include/gen/iberror.h	2014-05-03 00:27:47 UTC (rev 59526)
@@ -1179,6 +1179,10 @@
 const ISC_STATUS isc_dsql_alter_sequence_failed       = 336397323L;
 const ISC_STATUS isc_dsql_create_generator_failed     = 336397324L;
 const ISC_STATUS isc_dsql_set_generator_failed        = 336397325L;
+const ISC_STATUS isc_dsql_wlock_simple                = 336397326L;
+const ISC_STATUS isc_dsql_firstskip_rows              = 336397327L;
+const ISC_STATUS isc_dsql_wlock_aggregates            = 336397328L;
+const ISC_STATUS isc_dsql_wlock_conflict              = 336397329L;
 const ISC_STATUS isc_gsec_cant_open_db                = 336723983L;
 const ISC_STATUS isc_gsec_switches_error              = 336723984L;
 const ISC_STATUS isc_gsec_no_op_spec                  = 336723985L;
@@ -1280,7 +1284,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                          = 1224;
+const ISC_STATUS isc_err_max                          = 1228;
 
 #else /* c definitions */
 
@@ -2429,6 +2433,10 @@
 #define isc_dsql_alter_sequence_failed       336397323L
 #define isc_dsql_create_generator_failed     336397324L
 #define isc_dsql_set_generator_failed        336397325L
+#define isc_dsql_wlock_simple                336397326L
+#define isc_dsql_firstskip_rows              336397327L
+#define isc_dsql_wlock_aggregates            336397328L
+#define isc_dsql_wlock_conflict              336397329L
 #define isc_gsec_cant_open_db                336723983L
 #define isc_gsec_switches_error              336723984L
 #define isc_gsec_no_op_spec                  336723985L
@@ -2530,7 +2538,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                          1224
+#define isc_err_max                          1228
 
 #endif
 
Modified: firebird/trunk/src/include/gen/msgs.h
===================================================================
--- firebird/trunk/src/include/gen/msgs.h	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/src/include/gen/msgs.h	2014-05-03 00:27:47 UTC (rev 59526)
@@ -1148,6 +1148,10 @@
 	{336397323, "ALTER SEQUENCE @1 failed"},		/* dsql_alter_sequence_failed */
 	{336397324, "CREATE GENERATOR @1 failed"},		/* dsql_create_generator_failed */
 	{336397325, "SET GENERATOR @1 failed"},		/* dsql_set_generator_failed */
+	{336397326, "WITH LOCK can be used only with a single physical table"},		/* dsql_wlock_simple */
+	{336397327, "FIRST/SKIP cannot be used with ROWS"},		/* dsql_firstskip_rows */
+	{336397328, "WITH LOCK cannot be used with aggregates"},		/* dsql_wlock_aggregates */
+	{336397329, "WITH LOCK cannot be used with @1"},		/* dsql_wlock_conflict */
 	{336723983, "unable to open database"},		/* gsec_cant_open_db */
 	{336723984, "error in switch specifications"},		/* gsec_switches_error */
 	{336723985, "no operation specified"},		/* gsec_no_op_spec */
Modified: firebird/trunk/src/include/gen/sql_code.h
===================================================================
--- firebird/trunk/src/include/gen/sql_code.h	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/src/include/gen/sql_code.h	2014-05-03 00:27:47 UTC (rev 59526)
@@ -1144,6 +1144,10 @@
 	{336397323, -901}, /* 1035 dsql_alter_sequence_failed */
 	{336397324, -901}, /* 1036 dsql_create_generator_failed */
 	{336397325, -901}, /* 1037 dsql_set_generator_failed */
+	{336397326, -104}, /* 1038 dsql_wlock_simple */
+	{336397327, -104}, /* 1039 dsql_firstskip_rows */
+	{336397328, -104}, /* 1040 dsql_wlock_aggregates */
+	{336397329, -104}, /* 1041 dsql_wlock_conflict */
 	{336723983, -901}, /*  15 gsec_cant_open_db */
 	{336723984, -901}, /*  16 gsec_switches_error */
 	{336723985, -901}, /*  17 gsec_no_op_spec */
Modified: firebird/trunk/src/include/gen/sql_state.h
===================================================================
--- firebird/trunk/src/include/gen/sql_state.h	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/src/include/gen/sql_state.h	2014-05-03 00:27:47 UTC (rev 59526)
@@ -1144,6 +1144,10 @@
 	{336397323, "42000"}, // 1035 dsql_alter_sequence_failed
 	{336397324, "42000"}, // 1036 dsql_create_generator_failed
 	{336397325, "42000"}, // 1037 dsql_set_generator_failed
+	{336397326, "42000"}, // 1038 dsql_wlock_simple
+	{336397327, "42000"}, // 1039 dsql_firstskip_rows
+	{336397328, "42000"}, // 1040 dsql_wlock_aggregates
+	{336397329, "42000"}, // 1041 dsql_wlock_conflict
 	{336723983, "00000"}, //  15 gsec_cant_open_db
 	{336723984, "00000"}, //  16 gsec_switches_error
 	{336723985, "00000"}, //  17 gsec_no_op_spec
Modified: firebird/trunk/src/msgs/facilities2.sql
===================================================================
--- firebird/trunk/src/msgs/facilities2.sql	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/src/msgs/facilities2.sql	2014-05-03 00:27:47 UTC (rev 59526)
@@ -10,7 +10,7 @@
 ('1996-11-07 13:39:40', 'INSTALL', 10, 1)
 ('1996-11-07 13:38:41', 'TEST', 11, 4)
 ('2014-04-25 18:59:33', 'GBAK', 12, 357)
-('2014-04-04 16:36:53', 'SQLERR', 13, 1038)
+('2014-05-02 19:19:51', 'SQLERR', 13, 1042)
 ('1996-11-07 13:38:42', 'SQLWARN', 14, 613)
 ('2006-09-10 03:04:31', 'JRD_BUGCHK', 15, 307)
 ('2014-04-08 14:23:23', 'ISQL', 17, 186)
Modified: firebird/trunk/src/msgs/messages2.sql
===================================================================
--- firebird/trunk/src/msgs/messages2.sql	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/src/msgs/messages2.sql	2014-05-03 00:27:47 UTC (rev 59526)
@@ -2584,6 +2584,10 @@
 ('dsql_alter_sequence_failed', 'putErrorPrefix', 'DdlNodes.h', NULL, 13, 1035, NULL, 'ALTER SEQUENCE @1 failed', NULL, NULL);
 ('dsql_create_generator_failed', 'putErrorPrefix', 'DdlNodes.h', NULL, 13, 1036, NULL, 'CREATE GENERATOR @1 failed', NULL, NULL);
 ('dsql_set_generator_failed', 'putErrorPrefix', 'DdlNodes.h', NULL, 13, 1037, NULL, 'SET GENERATOR @1 failed', NULL, NULL);
+('dsql_wlock_simple', 'pass1_rse_impl', 'pass1.cpp', NULL, 13, 1038, NULL, 'WITH LOCK can be used only with a single physical table', NULL, NULL);
+('dsql_firstskip_rows', 'pass1_rse_impl', 'pass1.cpp', NULL, 13, 1039, NULL, 'FIRST/SKIP cannot be used with ROWS', NULL, NULL);
+('dsql_wlock_aggregates', 'pass1_rse_impl', 'pass1.cpp', NULL, 13, 1040, NULL, 'WITH LOCK cannot be used with aggregates', NULL, NULL);
+('dsql_wlock_conflict', NULL, 'pass1.cpp', NULL, 13, 1041, NULL, 'WITH LOCK cannot be used with @1', NULL, NULL);
 -- SQLWARN
 (NULL, NULL, NULL, NULL, 14, 100, NULL, 'Row not found for fetch, update or delete, or the result of a query is an empty table.', NULL, NULL);
 (NULL, NULL, NULL, NULL, 14, 101, NULL, 'segment buffer length shorter than expected', NULL, NULL);
Modified: firebird/trunk/src/msgs/system_errors2.sql
===================================================================
--- firebird/trunk/src/msgs/system_errors2.sql	2014-05-02 03:04:56 UTC (rev 59525)
+++ firebird/trunk/src/msgs/system_errors2.sql	2014-05-03 00:27:47 UTC (rev 59526)
@@ -1138,6 +1138,10 @@
 (-901, '42', '000', 13, 1035, 'dsql_alter_sequence_failed', NULL, NULL)
 (-901, '42', '000', 13, 1036, 'dsql_create_generator_failed', NULL, NULL)
 (-901, '42', '000', 13, 1037, 'dsql_set_generator_failed', NULL, NULL)
+(-104, '42', '000', 13, 1038, 'dsql_wlock_simple', NULL, NULL)
+(-104, '42', '000', 13, 1039, 'dsql_firstskip_rows', NULL, NULL)
+(-104, '42', '000', 13, 1040, 'dsql_wlock_aggregates', NULL, NULL)
+(-104, '42', '000', 13, 1041, 'dsql_wlock_conflict', NULL, NULL)
 -- GSEC
 (-901, '00', '000', 18, 15, 'gsec_cant_open_db', NULL, NULL)
 (-901, '00', '000', 18, 16, 'gsec_switches_error', NULL, NULL)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2014-05-03 00:30:47
       | 
| Revision: 59527
          http://sourceforge.net/p/firebird/code/59527
Author:   firebirds
Date:     2014-05-03 00:30:45 +0000 (Sat, 03 May 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-05-03 00:27:47 UTC (rev 59526)
+++ firebird/trunk/ChangeLog	2014-05-03 00:30:45 UTC (rev 59527)
@@ -1,3 +1,12 @@
+ 2014-05-02 03:04  robocop 
+   M src/burp/backup.epp
+   M src/dsql/DdlNodes.epp
+In ODS12, rdb$system_flag is not nullable thus we can simplify some conditions.
+
+ 2014-05-02 03:01  robocop 
+   M src/jrd/vio.cpp
+1.- Don't let gbak delete more than the only table it might clean. 2.- Special case for rdb$types: user can insert records, provided that's locksmith and the records contain non-system types.
+
  2014-05-01 05:55  robocop 
    M src/jrd/vio.cpp
 More sys tables protected.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-03 00:27:47 UTC (rev 59526)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-03 00:30:45 UTC (rev 59527)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31093
+  FORMAL BUILD NUMBER:31095
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31093"
-#define FILE_VER_STRING "WI-T3.0.0.31093"
-#define LICENSE_VER_STRING "WI-T3.0.0.31093"
-#define FILE_VER_NUMBER 3, 0, 0, 31093
+#define PRODUCT_VER_STRING "3.0.0.31095"
+#define FILE_VER_STRING "WI-T3.0.0.31095"
+#define LICENSE_VER_STRING "WI-T3.0.0.31095"
+#define FILE_VER_NUMBER 3, 0, 0, 31095
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31093"
+#define FB_BUILD_NO "31095"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-03 00:27:47 UTC (rev 59526)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-03 00:30:45 UTC (rev 59527)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31093
+BuildNum=31095
 
 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-05-04 00:28:13
       | 
| Revision: 59528
          http://sourceforge.net/p/firebird/code/59528
Author:   firebirds
Date:     2014-05-04 00:28:10 +0000 (Sun, 04 May 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-05-03 00:30:45 UTC (rev 59527)
+++ firebird/trunk/ChangeLog	2014-05-04 00:28:10 UTC (rev 59528)
@@ -1,3 +1,17 @@
+ 2014-05-03 00:27  robocop 
+   M lang_helpers/gds_codes.ftn
+   M lang_helpers/gds_codes.pas
+   M src/dsql/pass1.cpp
+   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
+Replace "unknown token" by specific messages.
+
  2014-05-02 03:04  robocop 
    M src/burp/backup.epp
    M src/dsql/DdlNodes.epp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-03 00:30:45 UTC (rev 59527)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-04 00:28:10 UTC (rev 59528)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31095
+  FORMAL BUILD NUMBER:31096
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31095"
-#define FILE_VER_STRING "WI-T3.0.0.31095"
-#define LICENSE_VER_STRING "WI-T3.0.0.31095"
-#define FILE_VER_NUMBER 3, 0, 0, 31095
+#define PRODUCT_VER_STRING "3.0.0.31096"
+#define FILE_VER_STRING "WI-T3.0.0.31096"
+#define LICENSE_VER_STRING "WI-T3.0.0.31096"
+#define FILE_VER_NUMBER 3, 0, 0, 31096
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31095"
+#define FB_BUILD_NO "31096"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-03 00:30:45 UTC (rev 59527)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-04 00:28:10 UTC (rev 59528)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31095
+BuildNum=31096
 
 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-05-05 00:25:37
       | 
| Revision: 59532
          http://sourceforge.net/p/firebird/code/59532
Author:   firebirds
Date:     2014-05-05 00:25:33 +0000 (Mon, 05 May 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-05-04 07:43:49 UTC (rev 59531)
+++ firebird/trunk/ChangeLog	2014-05-05 00:25:33 UTC (rev 59532)
@@ -1,3 +1,19 @@
+ 2014-05-04 07:43  dimitr 
+   M src/dsql/pass1.cpp
+Fixed the issue with UNION ALL vs WITH LOCK reported by Claudio privately.
+
+ 2014-05-04 06:46  robocop 
+   M src/isql/isql.epp
+   M src/isql/isql.h
+   M src/msgs/facilities2.sql
+   M src/msgs/messages2.sql
+1.- Prevent special chars from disabling isql. 2.- Do not take offsets from null pointers.
+
+ 2014-05-04 05:40  robocop 
+   M src/isql/isql.epp
+   M src/isql/isql.h
+Group some global vars in isql (relative to the SET command).
+
  2014-05-03 00:27  robocop 
    M lang_helpers/gds_codes.ftn
    M lang_helpers/gds_codes.pas
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-04 07:43:49 UTC (rev 59531)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-05 00:25:33 UTC (rev 59532)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31096
+  FORMAL BUILD NUMBER:31099
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31096"
-#define FILE_VER_STRING "WI-T3.0.0.31096"
-#define LICENSE_VER_STRING "WI-T3.0.0.31096"
-#define FILE_VER_NUMBER 3, 0, 0, 31096
+#define PRODUCT_VER_STRING "3.0.0.31099"
+#define FILE_VER_STRING "WI-T3.0.0.31099"
+#define LICENSE_VER_STRING "WI-T3.0.0.31099"
+#define FILE_VER_NUMBER 3, 0, 0, 31099
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31096"
+#define FB_BUILD_NO "31099"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-04 07:43:49 UTC (rev 59531)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-05 00:25:33 UTC (rev 59532)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31096
+BuildNum=31099
 
 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-05-06 00:30:28
       | 
| Revision: 59536
          http://sourceforge.net/p/firebird/code/59536
Author:   firebirds
Date:     2014-05-06 00:30:24 +0000 (Tue, 06 May 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-05-05 15:28:10 UTC (rev 59535)
+++ firebird/trunk/ChangeLog	2014-05-06 00:30:24 UTC (rev 59536)
@@ -1,3 +1,16 @@
+ 2014-05-05 15:28  mapopa 
+   D lang_helpers/gds.pli
+   D lang_helpers/gds_vms.f
+cleanup VMS leftovers
+
+ 2014-05-05 14:58  alexpeshkoff 
+   M src/jrd/Mapping.cpp
+Use separate callback event per process - should make windows happy
+
+ 2014-05-05 10:07  alexpeshkoff 
+   M src/yvalve/why.cpp
+Corrected patch from Dmitry Sibiryakov
+
  2014-05-04 07:43  dimitr 
    M src/dsql/pass1.cpp
 Fixed the issue with UNION ALL vs WITH LOCK reported by Claudio privately.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-05 15:28:10 UTC (rev 59535)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-06 00:30:24 UTC (rev 59536)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31099
+  FORMAL BUILD NUMBER:31102
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31099"
-#define FILE_VER_STRING "WI-T3.0.0.31099"
-#define LICENSE_VER_STRING "WI-T3.0.0.31099"
-#define FILE_VER_NUMBER 3, 0, 0, 31099
+#define PRODUCT_VER_STRING "3.0.0.31102"
+#define FILE_VER_STRING "WI-T3.0.0.31102"
+#define LICENSE_VER_STRING "WI-T3.0.0.31102"
+#define FILE_VER_NUMBER 3, 0, 0, 31102
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31099"
+#define FB_BUILD_NO "31102"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-05 15:28:10 UTC (rev 59535)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-06 00:30:24 UTC (rev 59536)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31099
+BuildNum=31102
 
 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-05-07 00:52:01
       | 
| Revision: 59550
          http://sourceforge.net/p/firebird/code/59550
Author:   firebirds
Date:     2014-05-07 00:51:58 +0000 (Wed, 07 May 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-05-06 22:41:24 UTC (rev 59549)
+++ firebird/trunk/ChangeLog	2014-05-07 00:51:58 UTC (rev 59550)
@@ -1,3 +1,59 @@
+ 2014-05-06 22:41  robocop 
+   M src/common/utils.cpp
+   M src/common/utils_proto.h
+I need name_length_limit() for testing some isql functionality.
+
+ 2014-05-06 18:10  asfernandes 
+   M src/dsql/parse.y
+   M src/isql/show.epp
+   M src/jrd/constants.h
+Fixed CORE-4415 - Useless extraction of generic DDL trigger.
+
+ 2014-05-06 13:41  mapopa 
+   D generated
+Remove unused generated directory. Builds use the temporary 'gen' directory
+
+ 2014-05-06 12:37  alexpeshkoff 
+   M src/jrd/Mapping.cpp
+Turn off db triggers for mapping connections
+
+ 2014-05-06 12:25  alexpeshkoff 
+   M src/jrd/jrd.cpp
+   M src/jrd/svc.cpp
+Fixed a bug, privately reported by Pavel Zotov - segfault when closing trace
+
+ 2014-05-06 10:29  alexpeshkoff 
+   M src/jrd/Mapping.cpp
+Turn of forgotten debugging
+
+ 2014-05-06 10:07  alexpeshkoff 
+   M src/common/classes/Hash.h
+   M src/jrd/Mapping.cpp
+Fixed support of maps with same hash value
+
+ 2014-05-06 08:49  mapopa 
+   D lang_helpers/gds.vpas
+remove vax pascal 
+
+ 2014-05-06 08:34  mapopa 
+   M lang_helpers/gds.bas
+   M lang_helpers/gds.pas
+   M lang_helpers/gds.vpas
+   M lang_helpers/gds_aix.f
+   M lang_helpers/gds_hp.f
+   M lang_helpers/gds_sun.f
+remove PYXIS
+
+ 2014-05-06 07:49  mapopa 
+   M doc/emacros-cross_ref.html
+cleanup 
+
+ 2014-05-06 01:28  robocop 
+   M src/jrd/JrdStatement.h
+   M src/jrd/req.h
+   M src/jrd/vio.cpp
+Fix CORE-4418, using the property of special triggers that are marked "system" or "ignore_perm".
+
  2014-05-05 15:28  mapopa 
    D lang_helpers/gds.pli
    D lang_helpers/gds_vms.f
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-06 22:41:24 UTC (rev 59549)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-07 00:51:58 UTC (rev 59550)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31102
+  FORMAL BUILD NUMBER:31113
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31102"
-#define FILE_VER_STRING "WI-T3.0.0.31102"
-#define LICENSE_VER_STRING "WI-T3.0.0.31102"
-#define FILE_VER_NUMBER 3, 0, 0, 31102
+#define PRODUCT_VER_STRING "3.0.0.31113"
+#define FILE_VER_STRING "WI-T3.0.0.31113"
+#define LICENSE_VER_STRING "WI-T3.0.0.31113"
+#define FILE_VER_NUMBER 3, 0, 0, 31113
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31102"
+#define FB_BUILD_NO "31113"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-06 22:41:24 UTC (rev 59549)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-07 00:51:58 UTC (rev 59550)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31102
+BuildNum=31113
 
 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-05-08 00:26:27
       | 
| Revision: 59561
          http://sourceforge.net/p/firebird/code/59561
Author:   firebirds
Date:     2014-05-08 00:26:24 +0000 (Thu, 08 May 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-05-07 21:21:08 UTC (rev 59560)
+++ firebird/trunk/ChangeLog	2014-05-08 00:26:24 UTC (rev 59561)
@@ -1,3 +1,37 @@
+ 2014-05-07 15:14  mapopa 
+   M examples/include/align.h
+FB_ALIGN is always defined in src/include/types_pub.h ((n+b-1)&~(b-1))
+
+ 2014-05-07 15:11  mapopa 
+   M configure.ac
+FB_ALIGN is always defined in src/include/types_pub.h ((n+b-1)&~(b-1))
+
+ 2014-05-07 14:51  mapopa 
+   M examples/include/align.h
+cleanup VMS FB_ALIGN define
+
+ 2014-05-07 11:21  alexpeshkoff 
+   M src/jrd/JrdStatement.cpp
+   M src/jrd/scl.epp
+   M src/jrd/scl_proto.h
+   M src/jrd/vio.cpp
+Postfix for CORE-3242: somewhy when checking metadata access (like MODIFY or DROP) always checked that access from object itself. Strange at the first glance behavior, but let us do not change legacy (at least since FB1.0) when possible.
+
+ 2014-05-07 10:21  alexpeshkoff 
+   M src/burp/burp.cpp
+   M src/utilities/fbsvcmgr/fbsvcmgr.cpp
+   M src/utilities/fbtracemgr/traceMgrMain.cpp
+Fixed CORE-4398: Provide ability to specify extra-long name of log when doing gbak to avoid "attempt to store 256 bytes in a clumplet" message
+
+ 2014-05-07 09:18  alexpeshkoff 
+   M src/common/classes/Hash.h
+   M src/jrd/Mapping.cpp
+Change Hash duplicates control interface to avoid unexpected use - thanks to Claudio
+
+ 2014-05-07 08:58  robocop 
+   M src/jrd/vio.cpp
+Fix the problem with gbak restoring a db and lack of rights on sys tables that Philippe detected.
+
  2014-05-06 22:41  robocop 
    M src/common/utils.cpp
    M src/common/utils_proto.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-07 21:21:08 UTC (rev 59560)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-08 00:26:24 UTC (rev 59561)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31113
+  FORMAL BUILD NUMBER:31120
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31113"
-#define FILE_VER_STRING "WI-T3.0.0.31113"
-#define LICENSE_VER_STRING "WI-T3.0.0.31113"
-#define FILE_VER_NUMBER 3, 0, 0, 31113
+#define PRODUCT_VER_STRING "3.0.0.31120"
+#define FILE_VER_STRING "WI-T3.0.0.31120"
+#define LICENSE_VER_STRING "WI-T3.0.0.31120"
+#define FILE_VER_NUMBER 3, 0, 0, 31120
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31113"
+#define FB_BUILD_NO "31120"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-07 21:21:08 UTC (rev 59560)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-08 00:26:24 UTC (rev 59561)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31113
+BuildNum=31120
 
 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-05-09 00:26:59
       | 
| Revision: 59564
          http://sourceforge.net/p/firebird/code/59564
Author:   firebirds
Date:     2014-05-09 00:26:55 +0000 (Fri, 09 May 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-05-08 23:26:40 UTC (rev 59563)
+++ firebird/trunk/ChangeLog	2014-05-09 00:26:55 UTC (rev 59564)
@@ -1,3 +1,18 @@
+ 2014-05-08 23:26  asfernandes 
+   M src/jrd/JrdStatement.h
+   M src/jrd/Mapping.cpp
+   M src/jrd/ext.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/scl.epp
+   M src/jrd/svc.cpp
+   M src/jrd/vio.cpp
+Misc.
+
+ 2014-05-08 02:51  asfernandes 
+   M src/common/utils.cpp
+   M src/dsql/DdlNodes.epp
+Misc.
+
  2014-05-07 15:14  mapopa 
    M examples/include/align.h
 FB_ALIGN is always defined in src/include/types_pub.h ((n+b-1)&~(b-1))
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-08 23:26:40 UTC (rev 59563)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-09 00:26:55 UTC (rev 59564)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31120
+  FORMAL BUILD NUMBER:31122
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31120"
-#define FILE_VER_STRING "WI-T3.0.0.31120"
-#define LICENSE_VER_STRING "WI-T3.0.0.31120"
-#define FILE_VER_NUMBER 3, 0, 0, 31120
+#define PRODUCT_VER_STRING "3.0.0.31122"
+#define FILE_VER_STRING "WI-T3.0.0.31122"
+#define LICENSE_VER_STRING "WI-T3.0.0.31122"
+#define FILE_VER_NUMBER 3, 0, 0, 31122
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31120"
+#define FB_BUILD_NO "31122"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-08 23:26:40 UTC (rev 59563)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-09 00:26:55 UTC (rev 59564)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31120
+BuildNum=31122
 
 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-05-10 00:26:59
       | 
| Revision: 59569
          http://sourceforge.net/p/firebird/code/59569
Author:   firebirds
Date:     2014-05-10 00:26:56 +0000 (Sat, 10 May 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-05-09 20:26:01 UTC (rev 59568)
+++ firebird/trunk/ChangeLog	2014-05-10 00:26:56 UTC (rev 59569)
@@ -1,3 +1,19 @@
+ 2014-05-09 20:26  robocop 
+   M src/jrd/vio.cpp
+It seems it's possible to restrict gbak more on deletions. Thanks Vlad for hint on TDBB_dont_post_dfw.
+
+ 2014-05-09 11:38  mapopa 
+   D lang_helpers/gds.bas
+remove vms basic
+
+ 2014-05-09 09:23  mapopa 
+   M src/burp/burp.cpp
+Misc cleanup
+
+ 2014-05-09 09:01  mapopa 
+   M src/remote/protocol.h
+Cleanup dead platforms
+
  2014-05-08 23:26  asfernandes 
    M src/jrd/JrdStatement.h
    M src/jrd/Mapping.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-09 20:26:01 UTC (rev 59568)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-10 00:26:56 UTC (rev 59569)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31122
+  FORMAL BUILD NUMBER:31126
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31122"
-#define FILE_VER_STRING "WI-T3.0.0.31122"
-#define LICENSE_VER_STRING "WI-T3.0.0.31122"
-#define FILE_VER_NUMBER 3, 0, 0, 31122
+#define PRODUCT_VER_STRING "3.0.0.31126"
+#define FILE_VER_STRING "WI-T3.0.0.31126"
+#define LICENSE_VER_STRING "WI-T3.0.0.31126"
+#define FILE_VER_NUMBER 3, 0, 0, 31126
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31122"
+#define FB_BUILD_NO "31126"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-09 20:26:01 UTC (rev 59568)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-10 00:26:56 UTC (rev 59569)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31122
+BuildNum=31126
 
 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-05-11 00:27:21
       | 
| Revision: 59575
          http://sourceforge.net/p/firebird/code/59575
Author:   firebirds
Date:     2014-05-11 00:27:18 +0000 (Sun, 11 May 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-05-10 14:24:46 UTC (rev 59574)
+++ firebird/trunk/ChangeLog	2014-05-11 00:27:18 UTC (rev 59575)
@@ -1,3 +1,18 @@
+ 2014-05-10 14:24  robocop 
+   M src/qli/dtr.cpp
+   M src/qli/eval.cpp
+Misc.
+
+ 2014-05-10 14:23  robocop 
+   M src/burp/restore.epp
+   M src/msgs/facilities2.sql
+   M src/msgs/messages2.sql
+Add 4 more verbose messages when restoring and reorganize code.
+
+ 2014-05-10 14:17  robocop 
+   M src/jrd/vio.cpp
+Misplaced parentheses are unexpected invitees.
+
  2014-05-09 20:26  robocop 
    M src/jrd/vio.cpp
 It seems it's possible to restrict gbak more on deletions. Thanks Vlad for hint on TDBB_dont_post_dfw.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-10 14:24:46 UTC (rev 59574)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-11 00:27:18 UTC (rev 59575)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31126
+  FORMAL BUILD NUMBER:31129
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31126"
-#define FILE_VER_STRING "WI-T3.0.0.31126"
-#define LICENSE_VER_STRING "WI-T3.0.0.31126"
-#define FILE_VER_NUMBER 3, 0, 0, 31126
+#define PRODUCT_VER_STRING "3.0.0.31129"
+#define FILE_VER_STRING "WI-T3.0.0.31129"
+#define LICENSE_VER_STRING "WI-T3.0.0.31129"
+#define FILE_VER_NUMBER 3, 0, 0, 31129
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31126"
+#define FB_BUILD_NO "31129"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-10 14:24:46 UTC (rev 59574)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-11 00:27:18 UTC (rev 59575)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31126
+BuildNum=31129
 
 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-05-13 00:48:30
       | 
| Revision: 59583
          http://sourceforge.net/p/firebird/code/59583
Author:   firebirds
Date:     2014-05-13 00:48:25 +0000 (Tue, 13 May 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-05-12 09:44:51 UTC (rev 59582)
+++ firebird/trunk/ChangeLog	2014-05-13 00:48:25 UTC (rev 59583)
@@ -1,3 +1,11 @@
+ 2014-05-12 07:06  dimitr 
+   M src/dsql/pass1.cpp
+Fixed CORE-4422: FB crashes when using row_number()over( PARTITION BY x) in ORDER by clause. Adriano, please review.
+
+ 2014-05-12 06:04  dimitr 
+   M src/jrd/recsrc/RecordSource.h
+Fixed the issue privately reported by Claudio.
+
  2014-05-10 14:24  robocop 
    M src/qli/dtr.cpp
    M src/qli/eval.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-12 09:44:51 UTC (rev 59582)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-13 00:48:25 UTC (rev 59583)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31129
+  FORMAL BUILD NUMBER:31131
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31129"
-#define FILE_VER_STRING "WI-T3.0.0.31129"
-#define LICENSE_VER_STRING "WI-T3.0.0.31129"
-#define FILE_VER_NUMBER 3, 0, 0, 31129
+#define PRODUCT_VER_STRING "3.0.0.31131"
+#define FILE_VER_STRING "WI-T3.0.0.31131"
+#define LICENSE_VER_STRING "WI-T3.0.0.31131"
+#define FILE_VER_NUMBER 3, 0, 0, 31131
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31129"
+#define FB_BUILD_NO "31131"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-12 09:44:51 UTC (rev 59582)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-13 00:48:25 UTC (rev 59583)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31129
+BuildNum=31131
 
 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-05-14 00:29:03
       | 
| Revision: 59586
          http://sourceforge.net/p/firebird/code/59586
Author:   firebirds
Date:     2014-05-14 00:28:58 +0000 (Wed, 14 May 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-05-13 02:34:34 UTC (rev 59585)
+++ firebird/trunk/ChangeLog	2014-05-14 00:28:58 UTC (rev 59586)
@@ -1,3 +1,7 @@
+ 2014-05-13 01:47  asfernandes 
+   M src/jrd/dfw.epp
+Fixed CORE-4425 - User-collations based on UNICODE are not upgrade to newer ICU version on restore.
+
  2014-05-12 07:06  dimitr 
    M src/dsql/pass1.cpp
 Fixed CORE-4422: FB crashes when using row_number()over( PARTITION BY x) in ORDER by clause. Adriano, please review.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-13 02:34:34 UTC (rev 59585)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-14 00:28:58 UTC (rev 59586)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31131
+  FORMAL BUILD NUMBER:31132
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31131"
-#define FILE_VER_STRING "WI-T3.0.0.31131"
-#define LICENSE_VER_STRING "WI-T3.0.0.31131"
-#define FILE_VER_NUMBER 3, 0, 0, 31131
+#define PRODUCT_VER_STRING "3.0.0.31132"
+#define FILE_VER_STRING "WI-T3.0.0.31132"
+#define LICENSE_VER_STRING "WI-T3.0.0.31132"
+#define FILE_VER_NUMBER 3, 0, 0, 31132
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31131"
+#define FB_BUILD_NO "31132"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-13 02:34:34 UTC (rev 59585)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-14 00:28:58 UTC (rev 59586)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31131
+BuildNum=31132
 
 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-05-15 00:35:41
       | 
| Revision: 59590
          http://sourceforge.net/p/firebird/code/59590
Author:   firebirds
Date:     2014-05-15 00:35:37 +0000 (Thu, 15 May 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-05-14 09:22:16 UTC (rev 59589)
+++ firebird/trunk/ChangeLog	2014-05-15 00:35:37 UTC (rev 59590)
@@ -1,3 +1,17 @@
+ 2014-05-14 09:22  dimitr 
+   M src/jrd/sort.cpp
+   M src/jrd/sort.h
+Fixed CORE-4419: Server crashes while sorting records longer than 128KB.
+
+ 2014-05-14 08:28  dimitr 
+   M src/jrd/recsrc/HashJoin.cpp
+Slightly reworked the key processing in the hash join algorithm.
+
+ 2014-05-14 08:24  dimitr 
+   M src/jrd/recsrc/MergeJoin.cpp
+   M src/jrd/recsrc/RecordSource.h
+Fixed the accidentally broken merge join algorithm.
+
  2014-05-13 01:47  asfernandes 
    M src/jrd/dfw.epp
 Fixed CORE-4425 - User-collations based on UNICODE are not upgrade to newer ICU version on restore.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-14 09:22:16 UTC (rev 59589)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-15 00:35:37 UTC (rev 59590)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31132
+  FORMAL BUILD NUMBER:31135
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31132"
-#define FILE_VER_STRING "WI-T3.0.0.31132"
-#define LICENSE_VER_STRING "WI-T3.0.0.31132"
-#define FILE_VER_NUMBER 3, 0, 0, 31132
+#define PRODUCT_VER_STRING "3.0.0.31135"
+#define FILE_VER_STRING "WI-T3.0.0.31135"
+#define LICENSE_VER_STRING "WI-T3.0.0.31135"
+#define FILE_VER_NUMBER 3, 0, 0, 31135
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31132"
+#define FB_BUILD_NO "31135"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-14 09:22:16 UTC (rev 59589)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-15 00:35:37 UTC (rev 59590)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31132
+BuildNum=31135
 
 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-05-17 00:31:52
       | 
| Revision: 59602
          http://sourceforge.net/p/firebird/code/59602
Author:   firebirds
Date:     2014-05-17 00:31:50 +0000 (Sat, 17 May 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-05-16 13:21:16 UTC (rev 59601)
+++ firebird/trunk/ChangeLog	2014-05-17 00:31:50 UTC (rev 59602)
@@ -1,3 +1,34 @@
+ 2014-05-16 13:21  mapopa 
+   M src/remote/merge.cpp
+Cleanup convert function NOT_USED_OR_REPLACED
+
+ 2014-05-16 13:06  mapopa 
+   M src/remote/server/os/posix/inet_server.cpp
+Cleanup 
+
+ 2014-05-16 12:59  hvlad 
+   M src/jrd/validation.cpp
+Correct format specifiers
+
+ 2014-05-16 12:10  hvlad 
+   M src/jrd/GlobalRWLock.cpp
+Front ported fix for bug CORE-4433 : GlobalRWLock could not downgrade EX lock to SH if readers is present
+
+ 2014-05-16 12:07  hvlad 
+   M src/jrd/cch.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/nbak.cpp
+   M src/jrd/nbak.h
+Front ported:
+1. Improvement CORE-4431 : Reduce contention for allocation table lock while database is in stalled physical backup state
+2. Improvement CORE-4432 : Let attachments to not block others when allocation table is read first time
+3. On Windows, file can not be deleted while system writes cached data into it, even if file is not open by anyone.
+Therefore flush delta file implicitly before closing it.
+
+ 2014-05-16 10:53  hvlad 
+   M src/jrd/dpm.epp
+Front ported fix for bug CORE-4372 : Deadlock is possible when two data pages contains record fragments pointing to each other
+
  2014-05-14 09:22  dimitr 
    M src/jrd/sort.cpp
    M src/jrd/sort.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-16 13:21:16 UTC (rev 59601)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-17 00:31:50 UTC (rev 59602)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31135
+  FORMAL BUILD NUMBER:31141
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31135"
-#define FILE_VER_STRING "WI-T3.0.0.31135"
-#define LICENSE_VER_STRING "WI-T3.0.0.31135"
-#define FILE_VER_NUMBER 3, 0, 0, 31135
+#define PRODUCT_VER_STRING "3.0.0.31141"
+#define FILE_VER_STRING "WI-T3.0.0.31141"
+#define LICENSE_VER_STRING "WI-T3.0.0.31141"
+#define FILE_VER_NUMBER 3, 0, 0, 31141
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31135"
+#define FB_BUILD_NO "31141"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-16 13:21:16 UTC (rev 59601)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-17 00:31:50 UTC (rev 59602)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31135
+BuildNum=31141
 
 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-05-19 19:06:51
       | 
| Revision: 59606
          http://sourceforge.net/p/firebird/code/59606
Author:   asfernandes
Date:     2014-05-19 19:06:47 +0000 (Mon, 19 May 2014)
Log Message:
-----------
Feature CORE-4403 - Allow referencing cursors as record variables in PSQL.
Improvement CORE-4434 - Extend the use of colon prefix for read/assignment OLD/NEW fields and assignment to variables.
Modified Paths:
--------------
    firebird/trunk/lang_helpers/gds_codes.ftn
    firebird/trunk/lang_helpers/gds_codes.pas
    firebird/trunk/src/dsql/BlrDebugWriter.cpp
    firebird/trunk/src/dsql/BlrDebugWriter.h
    firebird/trunk/src/dsql/DdlNodes.epp
    firebird/trunk/src/dsql/ExprNodes.cpp
    firebird/trunk/src/dsql/ExprNodes.h
    firebird/trunk/src/dsql/Nodes.h
    firebird/trunk/src/dsql/StmtNodes.cpp
    firebird/trunk/src/dsql/dsql.h
    firebird/trunk/src/dsql/parse.y
    firebird/trunk/src/dsql/pass1.cpp
    firebird/trunk/src/dsql/pass1_proto.h
    firebird/trunk/src/include/consts_pub.h
    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/jrd/DebugInterface.cpp
    firebird/trunk/src/jrd/DebugInterface.h
    firebird/trunk/src/jrd/RecordSourceNodes.cpp
    firebird/trunk/src/jrd/exe.h
    firebird/trunk/src/jrd/filters.cpp
    firebird/trunk/src/jrd/recsrc/Cursor.h
    firebird/trunk/src/jrd/vio.cpp
    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-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/lang_helpers/gds_codes.ftn	2014-05-19 19:06:47 UTC (rev 59606)
@@ -1594,6 +1594,8 @@
       PARAMETER (GDS__miss_trusted_role                = 335545090)
       INTEGER*4 GDS__set_invalid_role                
       PARAMETER (GDS__set_invalid_role                 = 335545091)
+      INTEGER*4 GDS__cursor_not_positioned           
+      PARAMETER (GDS__cursor_not_positioned            = 335545092)
       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-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/lang_helpers/gds_codes.pas	2014-05-19 19:06:47 UTC (rev 59606)
@@ -804,6 +804,7 @@
 	gds_map_notable                      = 335545089;
 	gds_miss_trusted_role                = 335545090;
 	gds_set_invalid_role                 = 335545091;
+	gds_cursor_not_positioned            = 335545092;
 	gds_gfix_db_name                     = 335740929;
 	gds_gfix_invalid_sw                  = 335740930;
 	gds_gfix_incmp_sw                    = 335740932;
Modified: firebird/trunk/src/dsql/BlrDebugWriter.cpp
===================================================================
--- firebird/trunk/src/dsql/BlrDebugWriter.cpp	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/BlrDebugWriter.cpp	2014-05-19 19:06:47 UTC (rev 59606)
@@ -106,6 +106,19 @@
 	debugData.add(reinterpret_cast<const UCHAR*>(name), len);
 }
 
+void BlrDebugWriter::putDebugCursor(USHORT number, const MetaName& name)
+{
+	debugData.add(fb_dbg_map_curname);
+
+	debugData.add(number);
+	debugData.add(number >> 8);
+
+	USHORT len = MIN(name.length(), MAX_UCHAR);
+	debugData.add(len);
+
+	debugData.add(reinterpret_cast<const UCHAR*>(name.c_str()), len);
+}
+
 void BlrDebugWriter::putDebugSubFunction(DeclareSubFuncNode* subFuncNode)
 {
 	debugData.add(fb_dbg_subfunc);
Modified: firebird/trunk/src/dsql/BlrDebugWriter.h
===================================================================
--- firebird/trunk/src/dsql/BlrDebugWriter.h	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/BlrDebugWriter.h	2014-05-19 19:06:47 UTC (rev 59606)
@@ -47,6 +47,7 @@
 	void putDebugSrcInfo(ULONG, ULONG);
 	void putDebugVariable(USHORT, const Firebird::MetaName&);
 	void putDebugArgument(UCHAR, USHORT, const TEXT*);
+	void putDebugCursor(USHORT, const Firebird::MetaName&);
 	void putDebugSubFunction(DeclareSubFuncNode* subFuncNode);
 	void putDebugSubProcedure(DeclareSubProcNode* subProcNode);
 
Modified: firebird/trunk/src/dsql/DdlNodes.epp
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.epp	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/DdlNodes.epp	2014-05-19 19:06:47 UTC (rev 59606)
@@ -3173,7 +3173,7 @@
 			{
 				relationNode->alias = OLD_CONTEXT_NAME;
 				dsql_ctx* oldContext = PASS1_make_context(dsqlScratch, relationNode);
-				oldContext->ctx_flags |= CTX_system;
+				oldContext->ctx_flags |= CTX_system | CTX_cursor;
 			}
 			else
 				dsqlScratch->contextNumber++;
@@ -3182,7 +3182,7 @@
 			{
 				relationNode->alias = NEW_CONTEXT_NAME;
 				dsql_ctx* newContext = PASS1_make_context(dsqlScratch, relationNode);
-				newContext->ctx_flags |= CTX_system;
+				newContext->ctx_flags |= CTX_system | CTX_cursor;
 			}
 			else
 				dsqlScratch->contextNumber++;
Modified: firebird/trunk/src/dsql/ExprNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/ExprNodes.cpp	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/ExprNodes.cpp	2014-05-19 19:06:47 UTC (rev 59606)
@@ -33,6 +33,7 @@
 #include "../jrd/SysFunction.h"
 #include "../jrd/recsrc/RecordSource.h"
 #include "../jrd/Optimizer.h"
+#include "../jrd/recsrc/Cursor.h"
 #include "../jrd/blb_proto.h"
 #include "../jrd/cmp_proto.h"
 #include "../jrd/cvt_proto.h"
@@ -3990,6 +3991,8 @@
 			*i = copier.remap[*i];
 	}
 
+	fb_assert(!cursorNumber.specified);
+
 	return node;
 }
 
@@ -4032,11 +4035,33 @@
 	getDesc(tdbb, csb, &desc);
 	impureOffset = CMP_impure(csb, sizeof(impure_value));
 
+	// As all streams belongs to the same cursor, we use only the first.
+	cursorNumber = csb->csb_rpt[internalStreamList[0]].csb_cursor_number;
+
 	return this;
 }
 
 dsc* DerivedExprNode::execute(thread_db* tdbb, jrd_req* request) const
 {
+	if (cursorNumber.specified)
+	{
+		const Cursor* const cursor = request->req_cursors[cursorNumber.value];
+		const Cursor::Impure* const cursorImpure = request->getImpure<Cursor::Impure>(cursor->m_impure);
+
+		if (!cursorImpure->irsb_active)
+		{
+			// error: invalid cursor state
+			status_exception::raise(Arg::Gds(isc_cursor_not_open));
+		}
+
+		if (cursorImpure->irsb_state != Cursor::POSITIONED)
+		{
+			status_exception::raise(
+				Arg::Gds(isc_cursor_not_positioned) <<
+				Arg::Str(cursor->name));
+		}
+	}
+
 	dsc* value = NULL;
 
 	for (const StreamType* i = internalStreamList.begin(); i != internalStreamList.end(); ++i)
@@ -4492,7 +4517,8 @@
 	  fieldStream(0),
 	  format(NULL),
 	  fieldId(0),
-	  byId(false)
+	  byId(false),
+	  dsqlCursorField(false)
 {
 }
 
@@ -4506,7 +4532,8 @@
 	  fieldStream(stream),
 	  format(NULL),
 	  fieldId(id),
-	  byId(aById)
+	  byId(aById),
+	  dsqlCursorField(false)
 {
 }
 
@@ -4685,26 +4712,16 @@
 		return this;
 	}
 
-	if (dsqlScratch->isPsql())
+	if (dsqlScratch->isPsql() && !dsqlQualifier.hasData())
 	{
-		if (dsqlQualifier.hasData())
-		{
-			if (dsqlScratch->flags & DsqlCompilerScratch::FLAG_TRIGGER) // triggers only
-				return internalDsqlPass(dsqlScratch, NULL);
-
-			PASS1_field_unknown(NULL, NULL, this);
-		}
-
-
 		VariableNode* node = FB_NEW(getPool()) VariableNode(getPool());
 		node->line = line;
 		node->column = column;
 		node->dsqlName = dsqlName;
-
 		return node->dsqlPass(dsqlScratch);
 	}
-
-	return internalDsqlPass(dsqlScratch, NULL);
+	else
+		return internalDsqlPass(dsqlScratch, NULL);
 }
 
 // Resolve a field name to an available context.
@@ -4781,13 +4798,14 @@
 
 			for (DsqlContextStack::iterator stack(*dsqlScratch->context); stack.hasData(); ++stack)
 			{
-				// resolveContext() checks the type of the
-				// given context, so the cast to dsql_ctx* is safe.
-
 				dsql_ctx* context = stack.object();
 
-				if (context->ctx_scope_level != currentScopeLevel - 1)
+				if (context->ctx_scope_level != currentScopeLevel - 1 ||
+					((context->ctx_flags & CTX_cursor) && dsqlQualifier.isEmpty()) ||
+					(!(context->ctx_flags & CTX_cursor) && dsqlCursorField))
+				{
 					continue;
+				}
 
 				dsql_fld* field = resolveContext(dsqlScratch, dsqlQualifier, context, resolveByAlias);
 
@@ -5322,6 +5340,7 @@
 		stream = copier.remap[stream];
 	}
 
+	fb_assert(!cursorNumber.specified);
 	return PAR_gen_field(tdbb, stream, fldId, byId);
 }
 
@@ -5540,6 +5559,7 @@
 		format = CMP_format(tdbb, csb, fieldStream);
 
 	impureOffset = CMP_impure(csb, sizeof(impure_value_ex));
+	cursorNumber = csb->csb_rpt[fieldStream].csb_cursor_number;
 
 	return this;
 }
@@ -5548,6 +5568,25 @@
 {
 	impure_value* const impure = request->getImpure<impure_value>(impureOffset);
 
+	if (cursorNumber.specified)
+	{
+		const Cursor* const cursor = request->req_cursors[cursorNumber.value];
+		const Cursor::Impure* const cursorImpure = request->getImpure<Cursor::Impure>(cursor->m_impure);
+
+		if (!cursorImpure->irsb_active)
+		{
+			// error: invalid cursor state
+			status_exception::raise(Arg::Gds(isc_cursor_not_open));
+		}
+
+		if (cursorImpure->irsb_state != Cursor::POSITIONED)
+		{
+			status_exception::raise(
+				Arg::Gds(isc_cursor_not_positioned) <<
+				Arg::Str(cursor->name));
+		}
+	}
+
 	record_param& rpb = request->req_rpb[fieldStream];
 	Record* record = rpb.rpb_record;
 	jrd_rel* relation = rpb.rpb_relation;
Modified: firebird/trunk/src/dsql/ExprNodes.h
===================================================================
--- firebird/trunk/src/dsql/ExprNodes.h	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/ExprNodes.h	2014-05-19 19:06:47 UTC (rev 59606)
@@ -519,6 +519,7 @@
 public:
 	NestConst<ValueExprNode> arg;
 	Firebird::Array<StreamType> internalStreamList;
+	Nullable<USHORT> cursorNumber;
 };
 
 
@@ -647,6 +648,8 @@
 	const Format* format;
 	const USHORT fieldId;
 	const bool byId;
+	bool dsqlCursorField;
+	Nullable<USHORT> cursorNumber;
 };
 
 
Modified: firebird/trunk/src/dsql/Nodes.h
===================================================================
--- firebird/trunk/src/dsql/Nodes.h	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/Nodes.h	2014-05-19 19:06:47 UTC (rev 59606)
@@ -970,6 +970,7 @@
 	static const unsigned DFLAG_DERIVED					= 0x08;
 	static const unsigned DFLAG_DT_IGNORE_COLUMN_CHECK	= 0x10;
 	static const unsigned DFLAG_DT_CTE_USED				= 0x20;
+	static const unsigned DFLAG_CURSOR					= 0x40;
 
 	RecordSourceNode(Type aType, MemoryPool& pool)
 		: ExprNode(aType, pool, KIND_REC_SOURCE),
Modified: firebird/trunk/src/dsql/StmtNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/StmtNodes.cpp	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/StmtNodes.cpp	2014-05-19 19:06:47 UTC (rev 59606)
@@ -277,6 +277,13 @@
 	node->asgnFrom = doDsqlPass(dsqlScratch, asgnFrom);
 	node->asgnTo = doDsqlPass(dsqlScratch, asgnTo);
 
+	DerivedFieldNode* fieldNode = node->asgnTo->as<DerivedFieldNode>();
+	if (fieldNode && fieldNode->context &&
+		(fieldNode->context->ctx_flags & (CTX_system | CTX_cursor)) == CTX_cursor)
+	{
+		ERR_post(Arg::Gds(isc_read_only_field));
+	}
+
 	// Try to force asgnFrom to be same type as asgnTo eg: ? = FIELD case
 	PASS1_set_parameter_type(dsqlScratch, node->asgnFrom, node->asgnTo, false);
 
@@ -343,41 +350,44 @@
 	doPass1(tdbb, csb, missing.getAddress());
 	// ASF: No idea why we do not call pass1 for missing2.
 
-	// Perform any post-processing here.
+	return this;
+}
 
-	sub = asgnTo;
+AssignmentNode* AssignmentNode::pass2(thread_db* tdbb, CompilerScratch* csb)
+{
+	ExprNode::doPass2(tdbb, csb, asgnFrom.getAddress());
+	ExprNode::doPass2(tdbb, csb, asgnTo.getAddress());
+	ExprNode::doPass2(tdbb, csb, missing.getAddress());
+	ExprNode::doPass2(tdbb, csb, missing2.getAddress());
 
-	if ((fieldNode = sub->as<FieldNode>()))
+	FieldNode* fieldNode;
+
+	if ((fieldNode = asgnTo->as<FieldNode>()))
 	{
-		stream = fieldNode->fieldStream;
-		tail = &csb->csb_rpt[stream];
+		CompilerScratch::csb_repeat* tail = &csb->csb_rpt[fieldNode->fieldStream];
 
 		// Assignments to the OLD context are prohibited for all trigger types.
-		if ((tail->csb_flags & csb_trigger) && stream == OLD_CONTEXT_VALUE)
+		if ((tail->csb_flags & csb_trigger) && fieldNode->fieldStream == OLD_CONTEXT_VALUE)
 			ERR_post(Arg::Gds(isc_read_only_field));
 
 		// Assignments to the NEW context are prohibited for post-action triggers.
-		if ((tail->csb_flags & csb_trigger) && stream == NEW_CONTEXT_VALUE &&
+		if ((tail->csb_flags & csb_trigger) && fieldNode->fieldStream == NEW_CONTEXT_VALUE &&
 			(csb->csb_g_flags & csb_post_trigger))
 		{
 			ERR_post(Arg::Gds(isc_read_only_field));
 		}
+
+		// Assignment to cursor fields are always prohibited.
+		// But we cannot detect FOR cursors here. They are treated in dsqlPass.
+		if (fieldNode->cursorNumber.specified)
+			ERR_post(Arg::Gds(isc_read_only_field));
 	}
-	else if (!(sub->is<ParameterNode>() || sub->is<VariableNode>() || sub->is<NullNode>()))
+	else if (!(asgnTo->is<ParameterNode>() || asgnTo->is<VariableNode>() || asgnTo->is<NullNode>()))
 		ERR_post(Arg::Gds(isc_read_only_field));
 
 	return this;
 }
 
-AssignmentNode* AssignmentNode::pass2(thread_db* tdbb, CompilerScratch* csb)
-{
-	ExprNode::doPass2(tdbb, csb, asgnFrom.getAddress());
-	ExprNode::doPass2(tdbb, csb, asgnTo.getAddress());
-	ExprNode::doPass2(tdbb, csb, missing.getAddress());
-	ExprNode::doPass2(tdbb, csb, missing2.getAddress());
-	return this;
-}
-
 const StmtNode* AssignmentNode::execute(thread_db* tdbb, jrd_req* request, ExeState* /*exeState*/) const
 {
 	if (request->req_operation == jrd_req::req_evaluate)
@@ -1010,6 +1020,8 @@
 
 	// Assignment.
 
+	dsqlScratch->appendUChar(blr_begin);
+
 	if (dsqlIntoStmt)
 	{
 		ValueListNode* list = cursor->rse->dsqlSelectList;
@@ -1020,8 +1032,6 @@
 					  Arg::Gds(isc_dsql_count_mismatch));
 		}
 
-		dsqlScratch->appendUChar(blr_begin);
-
 		NestConst<ValueExprNode>* ptr = list->items.begin();
 		NestConst<ValueExprNode>* end = list->items.end();
 		NestConst<ValueExprNode>* ptr_to = dsqlIntoStmt->items.begin();
@@ -1032,9 +1042,9 @@
 			GEN_expr(dsqlScratch, *ptr++);
 			GEN_expr(dsqlScratch, *ptr_to++);
 		}
+	}
 
-		dsqlScratch->appendUChar(blr_end);
-	}
+	dsqlScratch->appendUChar(blr_end);
 }
 
 CursorStmtNode* CursorStmtNode::pass1(thread_db* tdbb, CompilerScratch* csb)
@@ -1177,18 +1187,19 @@
 	// Make sure the cursor doesn't exist.
 	PASS1_cursor_name(dsqlScratch, dsqlName, CUR_TYPE_ALL, false);
 
-	// Temporarily hide unnecessary contexts and process our RSE.
-	DsqlContextStack* const baseContext = dsqlScratch->context;
-	DsqlContextStack temp;
-	dsqlScratch->context = &temp;
-	rse = PASS1_rse(dsqlScratch, dsqlSelect->dsqlExpr, dsqlSelect->dsqlWithLock);
-	dsqlScratch->context->clear();
-	dsqlScratch->context = baseContext;
+	SelectExprNode* dt = FB_NEW(getPool()) SelectExprNode(getPool());
+	dt->dsqlFlags = RecordSourceNode::DFLAG_DERIVED | RecordSourceNode::DFLAG_CURSOR;
+	dt->querySpec = dsqlSelect->dsqlExpr;
+	dt->alias = dsqlName.c_str();
 
+	rse = PASS1_derived_table(dsqlScratch, dt, NULL, dsqlSelect->dsqlWithLock);
+
 	// Assign number and store in the dsqlScratch stack.
 	cursorNumber = dsqlScratch->cursorNumber++;
 	dsqlScratch->cursors.push(this);
 
+	dsqlScratch->putDebugCursor(cursorNumber, dsqlName);
+
 	return this;
 }
 
@@ -1239,12 +1250,19 @@
 
 	cursor = FB_NEW(*tdbb->getDefaultPool()) Cursor(csb, rsb, rse->rse_invariants,
 		(rse->flags & RseNode::FLAG_SCROLLABLE));
+	csb->csb_dbg_info->curIndexToName.get(cursorNumber, cursor->name);
 
 	if (cursorNumber >= csb->csb_cursors.getCount())
 		csb->csb_cursors.grow(cursorNumber + 1);
 
 	csb->csb_cursors[cursorNumber] = cursor;
 
+	StreamList cursorStreams;
+	cursor->getAccessPath()->findUsedStreams(cursorStreams);
+
+	for (StreamList::const_iterator i = cursorStreams.begin(); i != cursorStreams.end(); ++i)
+		csb->csb_rpt[*i].csb_cursor_number = cursorNumber;
+
 	return this;
 }
 
@@ -4315,16 +4333,30 @@
 	ForNode* node = FB_NEW(getPool()) ForNode(getPool());
 
 	node->dsqlCursor = dsqlCursor;
-	node->dsqlSelect = dsqlSelect->dsqlPass(dsqlScratch);
 
+	const DsqlContextStack::iterator base(*dsqlScratch->context);
+
 	if (dsqlCursor)
 	{
 		fb_assert(dsqlCursor->dsqlCursorType != DeclareCursorNode::CUR_TYPE_NONE);
 		PASS1_cursor_name(dsqlScratch, dsqlCursor->dsqlName, DeclareCursorNode::CUR_TYPE_ALL, false);
-		dsqlCursor->rse = node->dsqlSelect->dsqlRse;
+
+		SelectExprNode* dt = FB_NEW(getPool()) SelectExprNode(getPool());
+		dt->dsqlFlags = RecordSourceNode::DFLAG_DERIVED | RecordSourceNode::DFLAG_CURSOR;
+		dt->querySpec = dsqlSelect->dsqlExpr;
+		dt->alias = dsqlCursor->dsqlName.c_str();
+
+		node->rse = PASS1_derived_table(dsqlScratch, dt, NULL, dsqlSelect->dsqlWithLock);
+
+		dsqlCursor->rse = node->rse;
 		dsqlCursor->cursorNumber = dsqlScratch->cursorNumber++;
 		dsqlScratch->cursors.push(dsqlCursor);
+
+		// ASF: We cannot write this cursor name in debug info, as dsqlScratch->cursorNumber is
+		// decremented below. But for now we don't need it.
 	}
+	else
+		node->rse = dsqlSelect->dsqlPass(dsqlScratch)->dsqlRse;
 
 	node->dsqlInto = dsqlPassArray(dsqlScratch, dsqlInto);
 
@@ -4339,6 +4371,8 @@
 		dsqlScratch->labels.pop();
 	}
 
+	dsqlScratch->context->clear(base);
+
 	if (dsqlCursor)
 	{
 		dsqlScratch->cursorNumber--;
@@ -4370,12 +4404,12 @@
 	if (!statement || dsqlForceSingular)
 		dsqlScratch->appendUChar(blr_singular);
 
-	GEN_rse(dsqlScratch, dsqlSelect->dsqlRse);
+	GEN_rse(dsqlScratch, rse);
 	dsqlScratch->appendUChar(blr_begin);
 
 	// Build body of FOR loop
 
-	ValueListNode* list = dsqlSelect->dsqlRse->dsqlSelectList;
+	ValueListNode* list = rse->dsqlSelectList;
 
 	if (dsqlInto)
 	{
@@ -4425,6 +4459,9 @@
 
 	cursor = FB_NEW(*tdbb->getDefaultPool()) Cursor(csb, rsb, rse->rse_invariants,
 		(rse->flags & RseNode::FLAG_SCROLLABLE));
+	// ASF: We cannot define the name of the cursor here, but this is not a problem,
+	// as implicit cursors are always positioned in a valid record, and the name is
+	// only used to raise isc_cursor_not_positioned.
 
 	impureOffset = CMP_impure(csb, sizeof(SLONG));
 
@@ -4870,7 +4907,7 @@
 		forNode->dsqlForceSingular = true;
 
 	// Get the already processed relations.
-	RseNode* processedRse = forNode->dsqlSelect->dsqlRse->dsqlStreams->items[0]->as<RseNode>();
+	RseNode* processedRse = forNode->rse->dsqlStreams->items[0]->as<RseNode>();
 	source = processedRse->dsqlStreams->items[0];
 	target = processedRse->dsqlStreams->items[1]->as<RelationSourceNode>();
 
Modified: firebird/trunk/src/dsql/dsql.h
===================================================================
--- firebird/trunk/src/dsql/dsql.h	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/dsql.h	2014-05-19 19:06:47 UTC (rev 59606)
@@ -778,6 +778,7 @@
 const USHORT CTX_recursive				= 0x10;	// Context has secondary number (ctx_recursive) generated for recursive UNION
 const USHORT CTX_view_with_check_store	= 0x20;	// Context of WITH CHECK OPTION view's store trigger
 const USHORT CTX_view_with_check_modify	= 0x40;	// Context of WITH CHECK OPTION view's modify trigger
+const USHORT CTX_cursor					= 0x80;	// Context is a cursor
 
 //! Aggregate/union map block to map virtual fields to their base
 //! TMN: NOTE! This datatype should definitely be renamed!
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/parse.y	2014-05-19 19:06:47 UTC (rev 59606)
@@ -690,6 +690,7 @@
 	Jrd::MergeNode::NotMatched* mergeNotMatchedClause;
 	Jrd::MergeNode::Matched* mergeMatchedClause;
 	Jrd::SelectNode* selectNode;
+	Jrd::ForNode* forNode;
 	Jrd::SetTransactionNode* setTransactionNode;
 	Jrd::SetTransactionNode::RestrictionOption* setTransactionRestrictionClause;
 	Jrd::DeclareSubProcNode* declareSubProcNode;
@@ -2687,7 +2688,7 @@
 
 %type <stmtNode> simple_proc_statement
 simple_proc_statement
-	: assignment
+	: assignment_statement
 	| insert			{ $$ = $1; }
 	| merge				{ $$ = $1; }
 	| update
@@ -2709,12 +2710,18 @@
 	| RETURN value		{ $$ = newNode<ReturnNode>($2); }
 	;
 
+%type <stmtNode> assignment_statement
+assignment_statement
+	: assignment
+	| ':' assignment	{ $$ = $2; }
+	;
+
 %type <stmtNode> complex_proc_statement
 complex_proc_statement
 	: in_autonomous_transaction
 	| if_then_else
 	| while
-	| for_select
+	| for_select					{ $$ = $1; }
 	| for_exec_into					{ $$ = $1; }
 	;
 
@@ -2743,20 +2750,48 @@
 	: EXCEPTION		{ $$ = newNode<ExceptionNode>(); }
 	;
 
-%type <stmtNode> for_select
+%type <forNode> for_select
 for_select
-	: label_def_opt FOR select INTO variable_list cursor_def DO proc_block
+	: label_def_opt FOR select
+			{
+				ForNode* node = newNode<ForNode>();
+				node->dsqlLabelName = $1;
+				node->dsqlSelect = $3;
+				$$ = node;
+			}
+		for_select_into_cursor($4) DO proc_block
+			{
+				ForNode* node = $4;
+				node->statement = $7;
+				$$ = node;
+			}
+	;
+
+%type for_select_into_cursor(<forNode>)
+for_select_into_cursor($forNode)
+	: into_variable_list cursor_def_opt
 		{
-			ForNode* node = newNode<ForNode>();
-			node->dsqlLabelName = $1;
-			node->dsqlSelect = $3;
-			node->dsqlInto = $5;
-			node->dsqlCursor = $6;
-			node->statement = $8;
-			$$ = node;
+			$forNode->dsqlInto = $1;
+			$forNode->dsqlCursor = $2;
 		}
+	| into_variable_list_opt cursor_def
+		{
+			$forNode->dsqlInto = $1;
+			$forNode->dsqlCursor = $2;
+		}
 	;
 
+%type <valueListNode> into_variable_list_opt
+into_variable_list_opt
+	: /* nothing */			{ $$ = NULL; }
+	| into_variable_list
+	;
+
+%type <valueListNode> into_variable_list
+into_variable_list
+	: INTO variable_list	{ $$ = $2; }
+	;
+
 %type <execStatementNode> exec_sql
 exec_sql
 	: EXECUTE STATEMENT
@@ -2982,11 +3017,15 @@
 	| symbol_label_name
 	;
 
+%type <declCursorNode> cursor_def_opt
+cursor_def_opt
+	: /* nothing */		{ $$ = NULL; }
+	| cursor_def
+	;
+
 %type <declCursorNode> cursor_def
 cursor_def
-	: // nothing
-		{ $$ = NULL; }
-	| AS CURSOR symbol_cursor_name
+	: AS CURSOR symbol_cursor_name
 		{ $$ = newNode<DeclareCursorNode>(*$3, DeclareCursorNode::CUR_TYPE_FOR); }
 	;
 
@@ -3072,15 +3111,15 @@
 fetch_cursor
 	: FETCH
 			{ $<cursorStmtNode>$ = newNode<CursorStmtNode>(blr_cursor_fetch_scroll); }
-			fetch_scroll($<cursorStmtNode>2) FROM symbol_cursor_name INTO variable_list
+			fetch_scroll($<cursorStmtNode>2) FROM symbol_cursor_name into_variable_list_opt
 		{
 			CursorStmtNode* cursorStmt = $<cursorStmtNode>2;
 			cursorStmt->dsqlName = *$5;
-			cursorStmt->dsqlIntoStmt = $7;
+			cursorStmt->dsqlIntoStmt = $6;
 			$$ = cursorStmt;
 		}
-	| FETCH symbol_cursor_name INTO variable_list
-		{ $$ = newNode<CursorStmtNode>(blr_cursor_fetch, *$2, $4); }
+	| FETCH symbol_cursor_name into_variable_list_opt
+		{ $$ = newNode<CursorStmtNode>(blr_cursor_fetch, *$2, $3); }
 	;
 
 %type fetch_scroll(<cursorStmtNode>)
@@ -5624,6 +5663,14 @@
 			fieldNode->dsqlName = *$3;
 			$$ = fieldNode;
 		}
+	| ':' symbol_table_alias_name '.' symbol_column_name
+		{
+			FieldNode* fieldNode = newNode<FieldNode>();
+			fieldNode->dsqlQualifier = *$2;
+			fieldNode->dsqlName = *$4;
+			fieldNode->dsqlCursorField = true;
+			$$ = fieldNode;
+		}
 	;
 
 %type <fieldNode> simple_column_name
Modified: firebird/trunk/src/dsql/pass1.cpp
===================================================================
--- firebird/trunk/src/dsql/pass1.cpp	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/pass1.cpp	2014-05-19 19:06:47 UTC (rev 59606)
@@ -427,7 +427,12 @@
 	context->ctx_procedure = procedure;
 
 	if (selNode)
+	{
 		context->ctx_context = USHORT(MAX_UCHAR) + 1 + dsqlScratch->derivedContextNumber++;
+
+		if (selNode->dsqlFlags & RecordSourceNode::DFLAG_CURSOR)
+			context->ctx_flags |= CTX_cursor;
+	}
 	else
 		context->ctx_context = dsqlScratch->contextNumber++;
 
@@ -951,7 +956,7 @@
 
 // Process derived table which is part of a from clause.
 RseNode* PASS1_derived_table(DsqlCompilerScratch* dsqlScratch, SelectExprNode* input,
-	const char* cte_alias)
+	const char* cte_alias, bool updateLock)
 {
 	DEV_BLKCHK(dsqlScratch, dsql_type_req);
 
@@ -1051,7 +1056,7 @@
 			rse = pass1_union(dsqlScratch, unionExpr, NULL, NULL, false, 0);
 		}
 		else
-			rse = PASS1_rse(dsqlScratch, input, false);
+			rse = PASS1_rse(dsqlScratch, input, updateLock);
 
 		// Finish off by cleaning up contexts and put them into derivedContext
 		// so create view (ddl) can deal with it.
@@ -1213,7 +1218,7 @@
 		const string* const* saveCteAlias = dsqlScratch->currCteAlias;
 		dsqlScratch->resetCTEAlias(alias);
 
-		rse = PASS1_rse(dsqlScratch, input, false);
+		rse = PASS1_rse(dsqlScratch, input, updateLock);
 
 		if (saveCteAlias)
 			dsqlScratch->resetCTEAlias(**saveCteAlias);
Modified: firebird/trunk/src/dsql/pass1_proto.h
===================================================================
--- firebird/trunk/src/dsql/pass1_proto.h	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/dsql/pass1_proto.h	2014-05-19 19:06:47 UTC (rev 59606)
@@ -41,7 +41,7 @@
 void PASS1_check_unique_fields_names(Jrd::StrArray& names, const Jrd::CompoundStmtNode* fields);
 Jrd::BoolExprNode* PASS1_compose(Jrd::BoolExprNode*, Jrd::BoolExprNode*, UCHAR);
 Jrd::DeclareCursorNode* PASS1_cursor_name(Jrd::DsqlCompilerScratch*, const Firebird::MetaName&, USHORT, bool);
-Jrd::RseNode* PASS1_derived_table(Jrd::DsqlCompilerScratch*, Jrd::SelectExprNode*, const char*);
+Jrd::RseNode* PASS1_derived_table(Jrd::DsqlCompilerScratch*, Jrd::SelectExprNode*, const char*, bool);
 void PASS1_expand_select_node(Jrd::DsqlCompilerScratch*, Jrd::ExprNode*, Jrd::ValueListNode*, bool);
 void PASS1_field_unknown(const TEXT*, const TEXT*, const Jrd::ExprNode*);
 void PASS1_limit(Jrd::DsqlCompilerScratch*, NestConst<Jrd::ValueExprNode>,
Modified: firebird/trunk/src/include/consts_pub.h
===================================================================
--- firebird/trunk/src/include/consts_pub.h	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/include/consts_pub.h	2014-05-19 19:06:47 UTC (rev 59606)
@@ -673,6 +673,7 @@
 #define fb_dbg_map_argument			4
 #define fb_dbg_subproc				5
 #define fb_dbg_subfunc				6
+#define fb_dbg_map_curname			7
 
 // sub code for fb_dbg_map_argument
 #define fb_dbg_arg_input			0
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/include/gen/codetext.h	2014-05-19 19:06:47 UTC (rev 59606)
@@ -793,6 +793,7 @@
 	{"map_notable", 335545089},
 	{"miss_trusted_role", 335545090},
 	{"set_invalid_role", 335545091},
+	{"cursor_not_positioned", 335545092},
 	{"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-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/include/gen/iberror.h	2014-05-19 19:06:47 UTC (rev 59606)
@@ -827,6 +827,7 @@
 const ISC_STATUS isc_map_notable                      = 335545089L;
 const ISC_STATUS isc_miss_trusted_role                = 335545090L;
 const ISC_STATUS isc_set_invalid_role                 = 335545091L;
+const ISC_STATUS isc_cursor_not_positioned            = 335545092L;
 const ISC_STATUS isc_gfix_db_name                     = 335740929L;
 const ISC_STATUS isc_gfix_invalid_sw                  = 335740930L;
 const ISC_STATUS isc_gfix_incmp_sw                    = 335740932L;
@@ -1284,7 +1285,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                          = 1228;
+const ISC_STATUS isc_err_max                          = 1229;
 
 #else /* c definitions */
 
@@ -2081,6 +2082,7 @@
 #define isc_map_notable                      335545089L
 #define isc_miss_trusted_role                335545090L
 #define isc_set_invalid_role                 335545091L
+#define isc_cursor_not_positioned            335545092L
 #define isc_gfix_db_name                     335740929L
 #define isc_gfix_invalid_sw                  335740930L
 #define isc_gfix_incmp_sw                    335740932L
@@ -2538,7 +2540,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                          1228
+#define isc_err_max                          1229
 
 #endif
 
Modified: firebird/trunk/src/include/gen/msgs.h
===================================================================
--- firebird/trunk/src/include/gen/msgs.h	2014-05-19 14:54:20 UTC (rev 59605)
+++ firebird/trunk/src/include/gen/msgs.h	2014-05-19 19:06:47 UTC (rev 59606)
@@ -796,6 +796,7 @@
 	{335545089, "Global mapping is not available when table RDB$MAP is not present in database @1"},		/* map_notable */
 	{335545090, "Your attachment has no trusted role"},		/* miss_trusted_role */
 	{335545091, "Role @1 is invalid or unavailable"},		/* set_invalid_role */
+	{335545092, "Cursor @1 is not positioned in a valid record"},		/* cursor_not_positioned */
 	{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-05-19 14:54:20 UTC (rev 59605)
+++ firebird/t...
 
[truncated message content] | 
| 
      
      
      From: <fir...@us...> - 2014-05-20 00:39:03
       | 
| Revision: 59607
          http://sourceforge.net/p/firebird/code/59607
Author:   firebirds
Date:     2014-05-20 00:39:00 +0000 (Tue, 20 May 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-05-19 19:06:47 UTC (rev 59606)
+++ firebird/trunk/ChangeLog	2014-05-20 00:39:00 UTC (rev 59607)
@@ -1,3 +1,41 @@
+ 2014-05-19 19:06  asfernandes 
+   M lang_helpers/gds_codes.ftn
+   M lang_helpers/gds_codes.pas
+   M src/dsql/BlrDebugWriter.cpp
+   M src/dsql/BlrDebugWriter.h
+   M src/dsql/DdlNodes.epp
+   M src/dsql/ExprNodes.cpp
+   M src/dsql/ExprNodes.h
+   M src/dsql/Nodes.h
+   M src/dsql/StmtNodes.cpp
+   M src/dsql/dsql.h
+   M src/dsql/parse.y
+   M src/dsql/pass1.cpp
+   M src/dsql/pass1_proto.h
+   M src/include/consts_pub.h
+   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/jrd/DebugInterface.cpp
+   M src/jrd/DebugInterface.h
+   M src/jrd/RecordSourceNodes.cpp
+   M src/jrd/exe.h
+   M src/jrd/filters.cpp
+   M src/jrd/recsrc/Cursor.h
+   M src/jrd/vio.cpp
+   M src/msgs/facilities2.sql
+   M src/msgs/messages2.sql
+   M src/msgs/system_errors2.sql
+Feature CORE-4403 - Allow referencing cursors as record variables in PSQL.
+Improvement CORE-4434 - Extend the use of colon prefix for read/assignment OLD/NEW fields and assignment to variables.
+
+ 2014-05-19 14:54  dimitr 
+   M src/burp/backup.epp
+   M src/burp/restore.epp
+This should fix the restore issue with PSQL functions.
+
  2014-05-16 13:21  mapopa 
    M src/remote/merge.cpp
 Cleanup convert function NOT_USED_OR_REPLACED
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-19 19:06:47 UTC (rev 59606)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-20 00:39:00 UTC (rev 59607)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31141
+  FORMAL BUILD NUMBER:31143
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31141"
-#define FILE_VER_STRING "WI-T3.0.0.31141"
-#define LICENSE_VER_STRING "WI-T3.0.0.31141"
-#define FILE_VER_NUMBER 3, 0, 0, 31141
+#define PRODUCT_VER_STRING "3.0.0.31143"
+#define FILE_VER_STRING "WI-T3.0.0.31143"
+#define LICENSE_VER_STRING "WI-T3.0.0.31143"
+#define FILE_VER_NUMBER 3, 0, 0, 31143
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31141"
+#define FB_BUILD_NO "31143"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-19 19:06:47 UTC (rev 59606)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-20 00:39:00 UTC (rev 59607)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31141
+BuildNum=31143
 
 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-05-21 00:55:21
       | 
| Revision: 59609
          http://sourceforge.net/p/firebird/code/59609
Author:   firebirds
Date:     2014-05-21 00:55:12 +0000 (Wed, 21 May 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-05-20 08:05:16 UTC (rev 59608)
+++ firebird/trunk/ChangeLog	2014-05-21 00:55:12 UTC (rev 59609)
@@ -1,3 +1,10 @@
+ 2014-05-20 08:05  alexpeshkoff 
+   M src/common/MsgMetadata.h
+   M src/common/classes/InternalMessageBuffer.cpp
+   M src/jrd/PreparedStatement.cpp
+   M src/jrd/extds/InternalDS.cpp
+Fixed assertion reported by Pavel Zotov privately, took typical measures to avoid such behavior in the future
+
  2014-05-19 19:06  asfernandes 
    M lang_helpers/gds_codes.ftn
    M lang_helpers/gds_codes.pas
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-20 08:05:16 UTC (rev 59608)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-21 00:55:12 UTC (rev 59609)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31143
+  FORMAL BUILD NUMBER:31144
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31143"
-#define FILE_VER_STRING "WI-T3.0.0.31143"
-#define LICENSE_VER_STRING "WI-T3.0.0.31143"
-#define FILE_VER_NUMBER 3, 0, 0, 31143
+#define PRODUCT_VER_STRING "3.0.0.31144"
+#define FILE_VER_STRING "WI-T3.0.0.31144"
+#define LICENSE_VER_STRING "WI-T3.0.0.31144"
+#define FILE_VER_NUMBER 3, 0, 0, 31144
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31143"
+#define FB_BUILD_NO "31144"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-20 08:05:16 UTC (rev 59608)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-21 00:55:12 UTC (rev 59609)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31143
+BuildNum=31144
 
 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-05-22 00:27:59
       | 
| Revision: 59614
          http://sourceforge.net/p/firebird/code/59614
Author:   firebirds
Date:     2014-05-22 00:27:55 +0000 (Thu, 22 May 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-05-21 20:29:30 UTC (rev 59613)
+++ firebird/trunk/ChangeLog	2014-05-22 00:27:55 UTC (rev 59614)
@@ -1,3 +1,22 @@
+ 2014-05-21 17:11  asfernandes 
+   M doc/sql.extensions/README.identity_columns.txt
+Fixed DOC-92 - Values for rdb$identity_type not correct in release notes.
+
+ 2014-05-21 13:11  alexpeshkoff 
+   M src/burp/burp.cpp
+   M src/burp/burp.h
+   M src/burp/burpswi.h
+   M src/burp/mvol.cpp
+   M src/common/IntlParametersBlock.cpp
+   M src/common/UtilSvc.cpp
+   M src/common/UtilSvc.h
+   M src/include/consts_pub.h
+   M src/jrd/svc.cpp
+   M src/jrd/svc.h
+   M src/utilities/fbsvcmgr/fbsvcmgr.cpp
+   M src/utilities/nbackup/nbackup.cpp
+Fixed issues related to encoding of switch value in gbak/nbackup - thanks to Adriano. Added support for -SKIP_DATA to services.
+
  2014-05-20 08:05  alexpeshkoff 
    M src/common/MsgMetadata.h
    M src/common/classes/InternalMessageBuffer.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2014-05-21 20:29:30 UTC (rev 59613)
+++ firebird/trunk/src/jrd/build_no.h	2014-05-22 00:27:55 UTC (rev 59614)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31144
+  FORMAL BUILD NUMBER:31146
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31144"
-#define FILE_VER_STRING "WI-T3.0.0.31144"
-#define LICENSE_VER_STRING "WI-T3.0.0.31144"
-#define FILE_VER_NUMBER 3, 0, 0, 31144
+#define PRODUCT_VER_STRING "3.0.0.31146"
+#define FILE_VER_STRING "WI-T3.0.0.31146"
+#define LICENSE_VER_STRING "WI-T3.0.0.31146"
+#define FILE_VER_NUMBER 3, 0, 0, 31146
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31144"
+#define FB_BUILD_NO "31146"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Alpha 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2014-05-21 20:29:30 UTC (rev 59613)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2014-05-22 00:27:55 UTC (rev 59614)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31144
+BuildNum=31146
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |