| 
      
      
      From: <asf...@us...> - 2015-03-18 21:38:55
       | 
| Revision: 61008
          http://sourceforge.net/p/firebird/code/61008
Author:   asfernandes
Date:     2015-03-18 21:38:52 +0000 (Wed, 18 Mar 2015)
Log Message:
-----------
Feature CORE-4714 - Aggregate statistical functions stddev_pop, stddev_samp, var_pop and var_samp - contributed by Hajime Nakagami.
Modified Paths:
--------------
    firebird/trunk/src/dsql/AggNodes.cpp
    firebird/trunk/src/dsql/AggNodes.h
    firebird/trunk/src/dsql/parse.y
    firebird/trunk/src/jrd/blp.h
    firebird/trunk/src/jrd/blr.h
    firebird/trunk/src/jrd/val.h
    firebird/trunk/src/yvalve/keywords.cpp
Added Paths:
-----------
    firebird/trunk/doc/sql.extensions/README.statistical_functions.txt
Added: firebird/trunk/doc/sql.extensions/README.statistical_functions.txt
===================================================================
--- firebird/trunk/doc/sql.extensions/README.statistical_functions.txt	                        (rev 0)
+++ firebird/trunk/doc/sql.extensions/README.statistical_functions.txt	2015-03-18 21:38:52 UTC (rev 61008)
@@ -0,0 +1,26 @@
+---------------------
+Statistical Functions
+---------------------
+
+By the SQL specification, some statistical functions are defined.
+Function about variance and standard deviation are bellow.
+
+VAR_POP: return the population variance.
+VAR_SAMP: return  the sample variance.
+STDDEV_SAMP: return the sample standard deviation .
+STDDEV_POP: return the population standard deviation.
+
+VAR_POP(<expr>) is equivalent to (SUM(<expr> ^ 2) - SUM(<expr>) ^ 2 / COUNT(<expr>)) / COUNT(<expr>).
+VAR_SAMP(<expr>) is equivalent to (SUM(<expr> ^ 2) - SUM(<expr>) ^ 2 / COUNT(<expr>)) / (COUNT(<expr>) - 1).
+STDDEV_POP(<expr>) is equivalent to SQRT(VAR_POP(<expr>)).
+STDDEV_SAMP(<expr>) is equivalent to SQRT(VAR_SAMP(<expr)).
+
+Author:
+    Hajime Nakagami <nak...@gm...>
+
+Syntax:
+    <statistical function> ::= <statistical function name>(<expr>)
+    <statistical function name> := { VAR_POP | VAR_SAMP | STDDEV_POP | STDDEV_SAMP }
+
+Example:
+    SELECT STDDEV_SAMP(salary) FROM employees;
Property changes on: firebird/trunk/doc/sql.extensions/README.statistical_functions.txt
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: firebird/trunk/src/dsql/AggNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/AggNodes.cpp	2015-03-18 19:48:56 UTC (rev 61007)
+++ firebird/trunk/src/dsql/AggNodes.cpp	2015-03-18 21:38:52 UTC (rev 61008)
@@ -40,6 +40,7 @@
 #include "../dsql/pass1_proto.h"
 #include "../dsql/utld_proto.h"
 #include "../jrd/DataTypeUtil.h"
+#include <math.h>
 
 using namespace Firebird;
 using namespace Jrd;
@@ -1169,4 +1170,147 @@
 }
 
 
+//--------------------
+
+
+static AggNode::Register<StdDevAggNode> stdDevSampAggInfo("STDDEV_SAMP", blr_agg_stddev_samp);
+static AggNode::Register<StdDevAggNode> stdDevPopAggInfo("STDDEV_POP", blr_agg_stddev_pop);
+static AggNode::Register<StdDevAggNode> varSampAggInfo("VAR_SAMP", blr_agg_var_samp);
+static AggNode::Register<StdDevAggNode> varPopAggInfo("VAR_POP", blr_agg_var_pop);
+
+StdDevAggNode::StdDevAggNode(MemoryPool& pool, StdDevType aType, ValueExprNode* aArg)
+	: AggNode(pool,
+		(aType == StdDevAggNode::TYPE_STDDEV_SAMP ? stdDevSampAggInfo :
+		 aType == StdDevAggNode::TYPE_STDDEV_POP ? stdDevPopAggInfo :
+		 aType == StdDevAggNode::TYPE_VAR_SAMP ? varSampAggInfo :
+		 varPopAggInfo),
+		false, false, aArg),
+	  type(aType),
+	  impure2Offset(0)
+{
+}
+
+void StdDevAggNode::aggPostRse(thread_db* tdbb, CompilerScratch* csb)
+{
+	AggNode::aggPostRse(tdbb, csb);
+	impure2Offset = CMP_impure(csb, sizeof(StdDevImpure));
+}
+
+DmlNode* StdDevAggNode::parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp)
+{
+	StdDevType type;
+
+	switch (blrOp)
+	{
+		case blr_agg_stddev_samp:
+			type = TYPE_STDDEV_SAMP;
+			break;
+
+		case blr_agg_stddev_pop:
+			type = TYPE_STDDEV_POP;
+			break;
+
+		case blr_agg_var_samp:
+			type = TYPE_VAR_SAMP;
+			break;
+
+		case blr_agg_var_pop:
+			type = TYPE_VAR_POP;
+			break;
+
+		default:
+			fb_assert(false);
+	}
+
+	return FB_NEW(pool) StdDevAggNode(pool, type, PAR_parse_value(tdbb, csb));
+}
+
+void StdDevAggNode::make(DsqlCompilerScratch* dsqlScratch, dsc* desc)
+{
+	desc->makeDouble();
+	desc->setNullable(true);
+}
+
+void StdDevAggNode::getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc)
+{
+	desc->makeDouble();
+}
+
+ValueExprNode* StdDevAggNode::copy(thread_db* tdbb, NodeCopier& copier) const
+{
+	StdDevAggNode* node = FB_NEW(*tdbb->getDefaultPool()) StdDevAggNode(*tdbb->getDefaultPool(), type);
+	node->nodScale = nodScale;
+	node->arg = copier.copy(tdbb, arg);
+	return node;
+}
+
+void StdDevAggNode::aggInit(thread_db* tdbb, jrd_req* request) const
+{
+	AggNode::aggInit(tdbb, request);
+
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	impure->make_double(0);
+
+	StdDevImpure* impure2 = request->getImpure<StdDevImpure>(impure2Offset);
+	impure2->x = impure2->x2 = 0.0;
+}
+
+void StdDevAggNode::aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const
+{
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	++impure->vlux_count;
+
+	const double d = MOV_get_double(desc);
+
+	StdDevImpure* impure2 = request->getImpure<StdDevImpure>(impure2Offset);
+	impure2->x += d;
+	impure2->x2 += d * d;
+}
+
+dsc* StdDevAggNode::aggExecute(thread_db* tdbb, jrd_req* request) const
+{
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	StdDevImpure* impure2 = request->getImpure<StdDevImpure>(impure2Offset);
+	double d;
+
+	switch (type)
+	{
+		case TYPE_STDDEV_SAMP:
+		case TYPE_VAR_SAMP:
+			if (impure->vlux_count < 2)
+				return NULL;
+
+			d = (impure2->x2 - impure2->x * impure2->x / impure->vlux_count) /
+				(impure->vlux_count - 1);
+
+			if (type == TYPE_STDDEV_SAMP)
+				d = sqrt(d);
+			break;
+
+		case TYPE_STDDEV_POP:
+		case TYPE_VAR_POP:
+			if (impure->vlux_count == 0)
+				return NULL;
+
+			d = (impure2->x2 - impure2->x * impure2->x / impure->vlux_count) /
+				impure->vlux_count;
+
+			if (type == TYPE_STDDEV_POP)
+				d = sqrt(d);
+			break;
+	}
+
+	dsc temp;
+	temp.makeDouble(&d);
+	EVL_make_value(tdbb, &temp, impure);
+
+	return &impure->vlu_desc;
+}
+
+AggNode* StdDevAggNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/
+{
+	return FB_NEW(getPool()) StdDevAggNode(getPool(), type, doDsqlPass(dsqlScratch, arg));
+}
+
+
 }	// namespace Jrd
Modified: firebird/trunk/src/dsql/AggNodes.h
===================================================================
--- firebird/trunk/src/dsql/AggNodes.h	2015-03-18 19:48:56 UTC (rev 61007)
+++ firebird/trunk/src/dsql/AggNodes.h	2015-03-18 21:38:52 UTC (rev 61008)
@@ -153,7 +153,45 @@
 	const MaxMinType type;
 };
 
+class StdDevAggNode : public AggNode
+{
+public:
+	enum StdDevType
+	{
+		TYPE_STDDEV_SAMP,
+		TYPE_STDDEV_POP,
+		TYPE_VAR_SAMP,
+		TYPE_VAR_POP
+	};
 
+	struct StdDevImpure
+	{
+		double x, x2;
+	};
+
+	explicit StdDevAggNode(MemoryPool& pool, StdDevType aType, ValueExprNode* aArg = NULL);
+	virtual void aggPostRse(thread_db* tdbb, CompilerScratch* csb);
+
+	static DmlNode* parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp);
+
+	virtual void make(DsqlCompilerScratch* dsqlScratch, dsc* desc);
+	virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
+	virtual ValueExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+
+	virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
+	virtual void aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const;
+	virtual dsc* aggExecute(thread_db* tdbb, jrd_req* request) const;
+
+protected:
+	virtual AggNode* dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/;
+
+public:
+	const StdDevType type;
+
+private:
+	ULONG impure2Offset;
+};
+
 } // namespace
 
 #endif // DSQL_AGG_NODES_H
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y	2015-03-18 19:48:56 UTC (rev 61007)
+++ firebird/trunk/src/dsql/parse.y	2015-03-18 21:38:52 UTC (rev 61008)
@@ -572,6 +572,10 @@
 %token <metaNamePtr> TRUSTED
 %token <metaNamePtr> ROW
 %token <metaNamePtr> OFFSET
+%token <metaNamePtr> STDDEV_SAMP
+%token <metaNamePtr> STDDEV_POP
+%token <metaNamePtr> VAR_SAMP
+%token <metaNamePtr> VAR_POP
 
 // precedence declarations for expression evaluation
 
@@ -3819,8 +3823,12 @@
 	| ROW
 	| SCROLL
 	| SQLSTATE
+	| STDDEV_SAMP
+	| STDDEV_POP
 	| KW_TRUE
 	| UNKNOWN
+	| VAR_SAMP
+	| VAR_POP
 	;
 
 col_opt
@@ -6789,6 +6797,14 @@
 		{ $$ = newNode<ListAggNode>(false, $4, $5); }
 	| LIST '(' DISTINCT value delimiter_opt ')'
 		{ $$ = newNode<ListAggNode>(true, $4, $5); }
+	| STDDEV_SAMP '(' value ')'
+		{ $$ = newNode<StdDevAggNode>(StdDevAggNode::TYPE_STDDEV_SAMP, $3); }
+	| STDDEV_POP '(' value ')'
+		{ $$ = newNode<StdDevAggNode>(StdDevAggNode::TYPE_STDDEV_POP, $3); }
+	| VAR_SAMP '(' value ')'
+		{ $$ = newNode<StdDevAggNode>(StdDevAggNode::TYPE_VAR_SAMP, $3); }
+	| VAR_POP '(' value ')'
+		{ $$ = newNode<StdDevAggNode>(StdDevAggNode::TYPE_VAR_POP, $3); }
 	;
 
 %type <aggNode> window_function
Modified: firebird/trunk/src/jrd/blp.h
===================================================================
--- firebird/trunk/src/jrd/blp.h	2015-03-18 19:48:56 UTC (rev 61007)
+++ firebird/trunk/src/jrd/blp.h	2015-03-18 21:38:52 UTC (rev 61008)
@@ -241,5 +241,9 @@
 	{"subfunc", function},
 	{"record_version2", byte_line},
 	{"gen_id2", gen_id2}, // 210
+	{"agg_stddev_samp", one},
+	{"agg_stddev_pop", one},
+	{"agg_var_samp", one},
+	{"agg_var_pop", one},
 	{0, 0}
 };
Modified: firebird/trunk/src/jrd/blr.h
===================================================================
--- firebird/trunk/src/jrd/blr.h	2015-03-18 19:48:56 UTC (rev 61007)
+++ firebird/trunk/src/jrd/blr.h	2015-03-18 21:38:52 UTC (rev 61008)
@@ -407,4 +407,9 @@
 #define blr_record_version2			(unsigned char) 209
 #define blr_gen_id2					(unsigned char) 210 // NEXT VALUE FOR generator
 
+#define blr_agg_stddev_samp			(unsigned char) 211
+#define blr_agg_stddev_pop			(unsigned char) 212
+#define blr_agg_var_samp			(unsigned char) 213
+#define blr_agg_var_pop				(unsigned char) 214
+
 #endif // JRD_BLR_H
Modified: firebird/trunk/src/jrd/val.h
===================================================================
--- firebird/trunk/src/jrd/val.h	2015-03-18 19:48:56 UTC (rev 61007)
+++ firebird/trunk/src/jrd/val.h	2015-03-18 21:38:52 UTC (rev 61008)
@@ -93,6 +93,7 @@
 
 	void make_long(const SLONG val, const signed char scale = 0);
 	void make_int64(const SINT64 val, const signed char scale = 0);
+	void make_double(const double val);
 };
 
 // Do not use these methods where dsc_sub_type is not explicitly set to zero.
@@ -116,12 +117,23 @@
 	this->vlu_desc.dsc_address = reinterpret_cast<UCHAR*>(&this->vlu_misc.vlu_int64);
 }
 
+inline void impure_value::make_double(const double val)
+{
+	this->vlu_misc.vlu_double = val;
+	this->vlu_desc.dsc_dtype = DEFAULT_DOUBLE;
+	this->vlu_desc.dsc_length = sizeof(double);
+	this->vlu_desc.dsc_scale = 0;
+	this->vlu_desc.dsc_sub_type = 0;
+	this->vlu_desc.dsc_address = reinterpret_cast<UCHAR*>(&this->vlu_misc.vlu_double);
+}
+
 struct impure_value_ex : public impure_value
 {
 	SINT64 vlux_count;
 	blb* vlu_blob;
 };
 
+
 const int VLU_computed	= 1;	// An invariant sub-query has been computed
 const int VLU_null		= 2;	// An invariant sub-query computed to null
 const int VLU_checked	= 4;	// Constraint already checked in first read or assignment to argument/variable
Modified: firebird/trunk/src/yvalve/keywords.cpp
===================================================================
--- firebird/trunk/src/yvalve/keywords.cpp	2015-03-18 19:48:56 UTC (rev 61007)
+++ firebird/trunk/src/yvalve/keywords.cpp	2015-03-18 21:38:52 UTC (rev 61008)
@@ -389,6 +389,8 @@
 	{STARTING, "STARTS", 1, false},	// Alias of STARTING
 	{STATEMENT, "STATEMENT", 2, true},
 	{STATISTICS, "STATISTICS", 1, false},
+	{STDDEV_POP, "STDDEV_POP", 2, false},
+	{STDDEV_SAMP, "STDDEV_SAMP", 2, false},
 	{SUBSTRING,	"SUBSTRING", 2, true},
 	{SUB_TYPE, "SUB_TYPE", 1, false},
 	{SUM, "SUM", 1, false},
@@ -426,6 +428,8 @@
 	{UUID_TO_CHAR, "UUID_TO_CHAR", 2, false},
 	{KW_VALUE, "VALUE", 1, false},
 	{VALUES, "VALUES", 1, false},
+	{VAR_POP, "VAR_POP", 2, false},
+	{VAR_SAMP, "VAR_SAMP", 2, false},
 	{VARCHAR, "VARCHAR", 1, false},
 	{VARIABLE, "VARIABLE", 1, false},
 	{VARYING, "VARYING", 1, false},
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-19 00:14:40
       | 
| Revision: 61009
          http://sourceforge.net/p/firebird/code/61009
Author:   firebirds
Date:     2015-03-19 00:14:37 +0000 (Thu, 19 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-18 21:38:52 UTC (rev 61008)
+++ firebird/trunk/ChangeLog	2015-03-19 00:14:37 UTC (rev 61009)
@@ -1,3 +1,33 @@
+ 2015-03-18 21:38  asfernandes 
+   A doc/sql.extensions/README.statistical_functions.txt
+   M src/dsql/AggNodes.cpp
+   M src/dsql/AggNodes.h
+   M src/dsql/parse.y
+   M src/jrd/blp.h
+   M src/jrd/blr.h
+   M src/jrd/val.h
+   M src/yvalve/keywords.cpp
+Feature CORE-4714 - Aggregate statistical functions stddev_pop, stddev_samp, var_pop and var_samp - contributed by Hajime Nakagami.
+
+ 2015-03-18 17:28  dimitr 
+   M src/burp/restore.epp
+Complement my recent changes in this module.
+
+ 2015-03-18 17:26  hvlad 
+   M src/jrd/vio.cpp
+Fixed bug CORE-4713 : "BLOB not found" error at rollback after insert into table with expression index
+
+ 2015-03-18 17:22  dimitr 
+   M doc/WhatsNew
+Updated the docs for Beta 2.
+
+ 2015-03-18 02:03  asfernandes 
+   M src/include/firebird/FirebirdInterface.idl
+   M src/include/firebird/IdlFbInterfaces.h
+   M src/yvalve/YObjects.h
+   M src/yvalve/utl.cpp
+Added IUtil::formatStatus.
+
  2015-03-17 21:44  asfernandes 
    M src/auth/SecurityDatabase/LegacyManagement.epp
    M src/auth/SecurityDatabase/LegacyServer.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-18 21:38:52 UTC (rev 61008)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-19 00:14:37 UTC (rev 61009)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31714
+  FORMAL BUILD NUMBER:31719
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31714"
-#define FILE_VER_STRING "WI-T3.0.0.31714"
-#define LICENSE_VER_STRING "WI-T3.0.0.31714"
-#define FILE_VER_NUMBER 3, 0, 0, 31714
+#define PRODUCT_VER_STRING "3.0.0.31719"
+#define FILE_VER_STRING "WI-T3.0.0.31719"
+#define LICENSE_VER_STRING "WI-T3.0.0.31719"
+#define FILE_VER_NUMBER 3, 0, 0, 31719
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31714"
+#define FB_BUILD_NO "31719"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-18 21:38:52 UTC (rev 61008)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-19 00:14:37 UTC (rev 61009)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31714
+BuildNum=31719
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ego...@us...> - 2015-03-19 11:34:07
       | 
| Revision: 61014
          http://sourceforge.net/p/firebird/code/61014
Author:   egorpugin
Date:     2015-03-19 11:34:04 +0000 (Thu, 19 Mar 2015)
Log Message:
-----------
[build] [cmake] Add some iOS ifdefs. Hide wrong include dir during crosscompiling.
Modified Paths:
--------------
    firebird/trunk/CMakeLists.txt
    firebird/trunk/builds/cmake/Configure.cmake
    firebird/trunk/src/isql/InputDevices.cpp
    firebird/trunk/src/yvalve/config/os/darwin/config_root.cpp
Modified: firebird/trunk/CMakeLists.txt
===================================================================
--- firebird/trunk/CMakeLists.txt	2015-03-19 07:09:49 UTC (rev 61013)
+++ firebird/trunk/CMakeLists.txt	2015-03-19 11:34:04 UTC (rev 61014)
@@ -228,8 +228,8 @@
 if (APPLE)
     set(OS_DIR darwin)
 
-    include_directories(/opt/local/include)
     if (NOT CMAKE_CROSSCOMPILING)
+        include_directories(/opt/local/include)
         link_directories(/opt/local/lib)
     endif()
 
Modified: firebird/trunk/builds/cmake/Configure.cmake
===================================================================
--- firebird/trunk/builds/cmake/Configure.cmake	2015-03-19 07:09:49 UTC (rev 61013)
+++ firebird/trunk/builds/cmake/Configure.cmake	2015-03-19 11:34:04 UTC (rev 61014)
@@ -66,7 +66,7 @@
 endif()
 
 if (IOS)
-    set(CMAKE_SYSTEM_PROCESSOR "arm") # armv7 ?
+    set(CMAKE_SYSTEM_PROCESSOR "armv7")
     add_definitions(-D__arm__)
 endif()
 
Modified: firebird/trunk/src/isql/InputDevices.cpp
===================================================================
--- firebird/trunk/src/isql/InputDevices.cpp	2015-03-19 07:09:49 UTC (rev 61013)
+++ firebird/trunk/src/isql/InputDevices.cpp	2015-03-19 11:34:04 UTC (rev 61014)
@@ -22,7 +22,7 @@
  */
 
 #include "firebird.h"
-#ifdef DARWIN
+#if defined(DARWIN) && !defined(IOS)
 #if defined(i386) || defined(__x86_64__)
 #include <architecture/i386/io.h>
 #else
Modified: firebird/trunk/src/yvalve/config/os/darwin/config_root.cpp
===================================================================
--- firebird/trunk/src/yvalve/config/os/darwin/config_root.cpp	2015-03-19 07:09:49 UTC (rev 61013)
+++ firebird/trunk/src/yvalve/config/os/darwin/config_root.cpp	2015-03-19 11:34:04 UTC (rev 61014)
@@ -37,7 +37,9 @@
 #include "../common/os/path_utils.h"
 #include "../common/file_params.h"
 
+#ifndef IOS
 #include <CoreServices/CoreServices.h>
+#endif
 #include <CoreFoundation/CFBundle.h>
 #include <CoreFoundation/CFURL.h>
 #include <mach-o/dyld.h>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-20 00:14:34
       | 
| Revision: 61030
          http://sourceforge.net/p/firebird/code/61030
Author:   firebirds
Date:     2015-03-20 00:14:26 +0000 (Fri, 20 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-19 20:56:03 UTC (rev 61029)
+++ firebird/trunk/ChangeLog	2015-03-20 00:14:26 UTC (rev 61030)
@@ -1,3 +1,15 @@
+ 2015-03-19 11:34  egorpugin 
+   M CMakeLists.txt
+   M builds/cmake/Configure.cmake
+   M src/isql/InputDevices.cpp
+   M src/yvalve/config/os/darwin/config_root.cpp
+[build] [cmake] Add some iOS ifdefs. Hide wrong include dir during crosscompiling.
+
+ 2015-03-19 07:09  dimitr 
+   M doc/WhatsNew
+   A doc/sql.extensions/README.scrollable_cursors.txt
+Updated the docs.
+
  2015-03-18 21:38  asfernandes 
    A doc/sql.extensions/README.statistical_functions.txt
    M src/dsql/AggNodes.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-19 20:56:03 UTC (rev 61029)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-20 00:14:26 UTC (rev 61030)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31719
+  FORMAL BUILD NUMBER:31721
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31719"
-#define FILE_VER_STRING "WI-T3.0.0.31719"
-#define LICENSE_VER_STRING "WI-T3.0.0.31719"
-#define FILE_VER_NUMBER 3, 0, 0, 31719
+#define PRODUCT_VER_STRING "3.0.0.31721"
+#define FILE_VER_STRING "WI-T3.0.0.31721"
+#define LICENSE_VER_STRING "WI-T3.0.0.31721"
+#define FILE_VER_NUMBER 3, 0, 0, 31721
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31719"
+#define FB_BUILD_NO "31721"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-19 20:56:03 UTC (rev 61029)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-20 00:14:26 UTC (rev 61030)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31719
+BuildNum=31721
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-21 00:15:36
       | 
| Revision: 61035
          http://sourceforge.net/p/firebird/code/61035
Author:   firebirds
Date:     2015-03-21 00:15:33 +0000 (Sat, 21 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-20 18:03:51 UTC (rev 61034)
+++ firebird/trunk/ChangeLog	2015-03-21 00:15:33 UTC (rev 61035)
@@ -1,3 +1,97 @@
+ 2015-03-20 18:03  alexpeshkoff 
+   A src/common/SimpleStatusVector.h
+Oops - added forgotten file
+
+ 2015-03-20 18:02  alexpeshkoff 
+   M src/auth/AuthDbg.cpp
+   M src/auth/SecureRemotePassword/Message.h
+   M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+   M src/auth/SecureRemotePassword/server/SrpServer.cpp
+   M src/auth/SecurityDatabase/LegacyServer.cpp
+   A src/common/DynamicStrings.cpp
+   A src/common/DynamicStrings.h
+   M src/common/MsgMetadata.cpp
+   M src/common/StatementMetadata.cpp
+   M src/common/StatusArg.cpp
+   M src/common/StatusArg.h
+   M src/common/StatusHolder.cpp
+   M src/common/StatusHolder.h
+   M src/common/UtilSvc.cpp
+   M src/common/UtilSvc.h
+   M src/common/classes/GetPlugins.h
+   M src/common/fb_exception.cpp
+   M src/common/isc.cpp
+   M src/common/isc_proto.h
+   M src/common/sdl.cpp
+   M src/common/sdl_proto.h
+   M src/common/utils.cpp
+   M src/common/utils_proto.h
+   M src/dsql/DdlNodes.h
+   M src/dsql/StmtNodes.cpp
+   M src/dsql/dsql.cpp
+   M src/dsql/errd.cpp
+   M src/dsql/errd_proto.h
+   M src/dsql/utld.cpp
+   M src/dsql/utld_proto.h
+   M src/include/fb_exception.h
+   M src/include/fb_types.h
+   M src/include/firebird/FirebirdInterface.idl
+   M src/include/firebird/IdlFbInterfaces.h
+   M src/include/firebird/Interface.h
+   M src/isql/isql.epp
+   M src/jrd/CryptoManager.cpp
+   M src/jrd/CryptoManager.h
+   M src/jrd/Database.cpp
+   M src/jrd/DbCreators.cpp
+   M src/jrd/ExtEngineManager.cpp
+   M src/jrd/GlobalRWLock.cpp
+   M src/jrd/Mapping.cpp
+   M src/jrd/Routine.cpp
+   M src/jrd/blob_filter.cpp
+   M src/jrd/cch.cpp
+   M src/jrd/cch_proto.h
+   M src/jrd/dfw.epp
+   M src/jrd/err.cpp
+   M src/jrd/err_proto.h
+   M src/jrd/exe.cpp
+   M src/jrd/exe.h
+   M src/jrd/extds/ExtDS.cpp
+   M src/jrd/extds/ExtDS.h
+   M src/jrd/extds/InternalDS.cpp
+   M src/jrd/extds/InternalDS.h
+   M src/jrd/extds/IscDS.cpp
+   M src/jrd/extds/IscDS.h
+   M src/jrd/fun.epp
+   M src/jrd/idx.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/jrd.h
+   M src/jrd/nbak.cpp
+   M src/jrd/nbak.h
+   M src/jrd/os/pio_proto.h
+   M src/jrd/os/posix/unix.cpp
+   M src/jrd/os/win32/winnt.cpp
+   M src/jrd/pag.cpp
+   M src/jrd/par.cpp
+   D src/jrd/status.cpp
+   M src/jrd/status.h
+   M src/jrd/svc.cpp
+   M src/jrd/svc.h
+   M src/jrd/tra.cpp
+   M src/jrd/trace/TraceConfigStorage.cpp
+   M src/jrd/trace/TraceManager.cpp
+   M src/jrd/trace/TraceObjects.cpp
+   M src/jrd/trace/TraceObjects.h
+   M src/jrd/validation.cpp
+   M src/jrd/vio.cpp
+   M src/plugins/udr_engine/UdrEngine.cpp
+   M src/remote/client/BlrFromMessage.cpp
+   M src/remote/client/interface.cpp
+   M src/remote/inet.cpp
+   M src/remote/server/server.cpp
+   M src/yvalve/PluginManager.cpp
+   M src/yvalve/utl.cpp
+Avoid limits on size of status vector in engine. Ensure that status is always clean on entry to interface methods.
+
  2015-03-19 11:34  egorpugin 
    M CMakeLists.txt
    M builds/cmake/Configure.cmake
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-20 18:03:51 UTC (rev 61034)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-21 00:15:33 UTC (rev 61035)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31721
+  FORMAL BUILD NUMBER:31723
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31721"
-#define FILE_VER_STRING "WI-T3.0.0.31721"
-#define LICENSE_VER_STRING "WI-T3.0.0.31721"
-#define FILE_VER_NUMBER 3, 0, 0, 31721
+#define PRODUCT_VER_STRING "3.0.0.31723"
+#define FILE_VER_STRING "WI-T3.0.0.31723"
+#define LICENSE_VER_STRING "WI-T3.0.0.31723"
+#define FILE_VER_NUMBER 3, 0, 0, 31723
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31721"
+#define FB_BUILD_NO "31723"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-20 18:03:51 UTC (rev 61034)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-21 00:15:33 UTC (rev 61035)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31721
+BuildNum=31723
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-22 00:12:38
       | 
| Revision: 61048
          http://sourceforge.net/p/firebird/code/61048
Author:   firebirds
Date:     2015-03-22 00:12:30 +0000 (Sun, 22 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-21 18:39:06 UTC (rev 61047)
+++ firebird/trunk/ChangeLog	2015-03-22 00:12:30 UTC (rev 61048)
@@ -1,3 +1,25 @@
+ 2015-03-21 18:39  asfernandes 
+   M src/common/DynamicStrings.h
+Fix clang build.
+
+ 2015-03-21 18:38  asfernandes 
+   M src/jrd/extds/ExtDS.cpp
+   M src/jrd/extds/IscDS.cpp
+   M src/jrd/status.h
+   M src/jrd/trace/TraceObjects.h
+Corrections.
+
+ 2015-03-21 05:15  dimitr 
+   M doc/sql.extensions/README.scrollable_cursors.txt
+Fixed a mistake.
+
+ 2015-03-21 03:01  robocop 
+   M builds/win32/msvc10/common.vcxproj
+   M builds/win32/msvc10/common.vcxproj.filters
+   M builds/win32/msvc10/engine.vcxproj
+   M builds/win32/msvc10/engine.vcxproj.filters
+Modified the MSVC10 build according to Alex's changes but still can't compile.
+
  2015-03-20 18:03  alexpeshkoff 
    A src/common/SimpleStatusVector.h
 Oops - added forgotten file
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-21 18:39:06 UTC (rev 61047)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-22 00:12:30 UTC (rev 61048)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31723
+  FORMAL BUILD NUMBER:31727
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31723"
-#define FILE_VER_STRING "WI-T3.0.0.31723"
-#define LICENSE_VER_STRING "WI-T3.0.0.31723"
-#define FILE_VER_NUMBER 3, 0, 0, 31723
+#define PRODUCT_VER_STRING "3.0.0.31727"
+#define FILE_VER_STRING "WI-T3.0.0.31727"
+#define LICENSE_VER_STRING "WI-T3.0.0.31727"
+#define FILE_VER_NUMBER 3, 0, 0, 31727
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31723"
+#define FB_BUILD_NO "31727"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-21 18:39:06 UTC (rev 61047)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-22 00:12:30 UTC (rev 61048)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31723
+BuildNum=31727
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-23 00:12:46
       | 
| Revision: 61057
          http://sourceforge.net/p/firebird/code/61057
Author:   firebirds
Date:     2015-03-23 00:12:39 +0000 (Mon, 23 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-22 22:43:12 UTC (rev 61056)
+++ firebird/trunk/ChangeLog	2015-03-23 00:12:39 UTC (rev 61057)
@@ -1,3 +1,38 @@
+ 2015-03-22 22:43  hvlad 
+   M src/jrd/os/win32/winnt.cpp
+   M src/remote/SockAddr.h
+   M src/remote/os/win32/wnet.cpp
+Fixed Windows build
+
+ 2015-03-22 22:42  hvlad 
+   M builds/win32/msvc10/qli.vcxproj
+   M builds/win32/msvc10/qli.vcxproj.filters
+Update MSVC10 build after recent changes
+
+ 2015-03-22 22:40  hvlad 
+   M builds/win32/msvc12/common.vcxproj
+   M builds/win32/msvc12/common.vcxproj.filters
+   M builds/win32/msvc12/engine.vcxproj
+   M builds/win32/msvc12/engine.vcxproj.filters
+   M builds/win32/msvc12/qli.vcxproj
+   M builds/win32/msvc12/qli.vcxproj.filters
+Update MSVC12 build after recent changes
+
+ 2015-03-22 14:27  mkubecek 
+   M src/common/config/config.cpp
+fix default security database location
+
+ 2015-03-22 14:26  mkubecek 
+   M src/remote/SockAddr.h
+class SockAddr code cleanup
+
+ 2015-03-22 00:23  robocop 
+   M src/include/firebird/Interface.h
+   M src/jrd/Routine.cpp
+   M src/jrd/extds/IscDS.cpp
+   M src/jrd/svc.cpp
+Misc.
+
  2015-03-21 18:39  asfernandes 
    M src/common/DynamicStrings.h
 Fix clang build.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-22 22:43:12 UTC (rev 61056)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-23 00:12:39 UTC (rev 61057)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31727
+  FORMAL BUILD NUMBER:31733
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31727"
-#define FILE_VER_STRING "WI-T3.0.0.31727"
-#define LICENSE_VER_STRING "WI-T3.0.0.31727"
-#define FILE_VER_NUMBER 3, 0, 0, 31727
+#define PRODUCT_VER_STRING "3.0.0.31733"
+#define FILE_VER_STRING "WI-T3.0.0.31733"
+#define LICENSE_VER_STRING "WI-T3.0.0.31733"
+#define FILE_VER_NUMBER 3, 0, 0, 31733
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31727"
+#define FB_BUILD_NO "31733"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-22 22:43:12 UTC (rev 61056)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-23 00:12:39 UTC (rev 61057)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31727
+BuildNum=31733
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <asf...@us...> - 2015-03-23 02:55:44
       | 
| Revision: 61059
          http://sourceforge.net/p/firebird/code/61059
Author:   asfernandes
Date:     2015-03-23 02:55:42 +0000 (Mon, 23 Mar 2015)
Log Message:
-----------
Feature CORE-4717 - Aggregate statistical functions COVAR_SAMP, COVAR_POP and CORR - contributed by Hajime Nakagami.
Modified Paths:
--------------
    firebird/trunk/doc/WhatsNew
    firebird/trunk/doc/sql.extensions/README.statistical_functions.txt
    firebird/trunk/src/dsql/AggNodes.cpp
    firebird/trunk/src/dsql/AggNodes.h
    firebird/trunk/src/dsql/parse.y
    firebird/trunk/src/jrd/blp.h
    firebird/trunk/src/jrd/blr.h
    firebird/trunk/src/yvalve/keywords.cpp
Modified: firebird/trunk/doc/WhatsNew
===================================================================
--- firebird/trunk/doc/WhatsNew	2015-03-23 00:20:24 UTC (rev 61058)
+++ firebird/trunk/doc/WhatsNew	2015-03-23 02:55:42 UTC (rev 61059)
@@ -291,6 +291,14 @@
       Contributor(s):
         Alex Peshkov <peshkoff at mail.ru>
 
+    * New feature CORE-4717
+        Aggregate statistical functions COVAR_SAMP, COVAR_POP and CORR
+      See also:
+        /doc/sql.extensions/README.statistical_functions.txt
+      Contributor(s):
+        Hajime Nakagami <nakagami at gmail.com>
+        Adriano dos Santos Fernandes <adrianosf at gmail.com>
+
     * New feature CORE-4714
         Aggregate statistical functions STDDEV_POP, STDDEV_SAMP, VAR_POP and VAR_SAMP
       See also:
Modified: firebird/trunk/doc/sql.extensions/README.statistical_functions.txt
===================================================================
--- firebird/trunk/doc/sql.extensions/README.statistical_functions.txt	2015-03-23 00:20:24 UTC (rev 61058)
+++ firebird/trunk/doc/sql.extensions/README.statistical_functions.txt	2015-03-23 02:55:42 UTC (rev 61059)
@@ -5,22 +5,40 @@
 By the SQL specification, some statistical functions are defined.
 Function about variance and standard deviation are bellow.
 
+VAR_SAMP: return  the sample variance.
+  eq. (SUM(<expr> ^ 2) - SUM(<expr>) ^ 2 / COUNT(<expr>)) / (COUNT(<expr>) - 1)
+
 VAR_POP: return the population variance.
-VAR_SAMP: return  the sample variance.
-STDDEV_SAMP: return the sample standard deviation .
+  eq. (SUM(<expr> ^ 2) - SUM(<expr>) ^ 2 / COUNT(<expr>)) / COUNT(<expr>)
+
+STDDEV_SAMP: return the sample standard deviation.
+  eq. SQRT(VAR_SAMP(<expr))
+
 STDDEV_POP: return the population standard deviation.
+  eq. SQRT(VAR_POP(<expr>))
 
-VAR_POP(<expr>) is equivalent to (SUM(<expr> ^ 2) - SUM(<expr>) ^ 2 / COUNT(<expr>)) / COUNT(<expr>).
-VAR_SAMP(<expr>) is equivalent to (SUM(<expr> ^ 2) - SUM(<expr>) ^ 2 / COUNT(<expr>)) / (COUNT(<expr>) - 1).
-STDDEV_POP(<expr>) is equivalent to SQRT(VAR_POP(<expr>)).
-STDDEV_SAMP(<expr>) is equivalent to SQRT(VAR_SAMP(<expr)).
+COVAR_SAMP: return the sample population.
+  eq. (SUM(<expr1> * <expr2>) - SUM(<expr1>) * SUM(<expr2>) / COUNT(*)) / (COUNT(*) - 1)
 
+COVAR_POP: return the population covariance.
+  eq. (SUM(<expr1> * <expr2>) - SUM(<expr1>) * SUM(<expr2>) / COUNT(*)) / COUNT(*)
+
+CORR: returns the coefficient of correlation.
+  eq. COVAR_POP(<expr1>, <expr2>) / (STDDEV_POP(<expr2>) * STDDEV_POP(<expr1>))
+
 Author:
     Hajime Nakagami <nak...@gm...>
 
 Syntax:
-    <statistical function> ::= <statistical function name>(<expr>)
-    <statistical function name> := { VAR_POP | VAR_SAMP | STDDEV_POP | STDDEV_SAMP }
+    <single param statistical function> ::= <single param statistical function name>(<expr>)
+    <single param statistical function name> := { VAR_POP | VAR_SAMP | STDDEV_POP | STDDEV_SAMP }
 
+    <dual param statistical function> ::= <dual param statistical function name>(<expr1>, <expr2>)
+    <dual param statistical function name> := { COVAR_POP | COVAR_SAMP | CORR }
+
+Note:
+    If VAR_SAMP, STDDEV_SAMP, COVAR_SAMP and result count is 0 or 1, return NULL.
+    If VAR_POP, STDDEV_POP, COVAR_POP, CORR and result count is 0, return NULL.
+
 Example:
     SELECT STDDEV_SAMP(salary) FROM employees;
Modified: firebird/trunk/src/dsql/AggNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/AggNodes.cpp	2015-03-23 00:20:24 UTC (rev 61058)
+++ firebird/trunk/src/dsql/AggNodes.cpp	2015-03-23 02:55:42 UTC (rev 61059)
@@ -1313,4 +1313,179 @@
 }
 
 
+//--------------------
+
+
+static AggNode::Register<CorrAggNode> coVarSampAggInfo("COVAR_SAMP", blr_agg_covar_samp);
+static AggNode::Register<CorrAggNode> coVarPopAggInfo("COVAR_POP", blr_agg_covar_pop);
+static AggNode::Register<CorrAggNode> corrAggInfo("CORR", blr_agg_corr);
+
+CorrAggNode::CorrAggNode(MemoryPool& pool, CorrType aType, ValueExprNode* aArg, ValueExprNode* aArg2)
+	: AggNode(pool,
+		(aType == CorrAggNode::TYPE_COVAR_SAMP ? coVarSampAggInfo :
+		 aType == CorrAggNode::TYPE_COVAR_POP ? coVarPopAggInfo :
+		 corrAggInfo),
+		false, false, aArg),
+	  type(aType),
+	  arg2(aArg2),
+	  impure2Offset(0)
+{
+	addChildNode(arg2, arg2);
+}
+
+void CorrAggNode::aggPostRse(thread_db* tdbb, CompilerScratch* csb)
+{
+	AggNode::aggPostRse(tdbb, csb);
+	impure2Offset = CMP_impure(csb, sizeof(CorrImpure));
+}
+
+DmlNode* CorrAggNode::parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp)
+{
+	CorrType type;
+
+	switch (blrOp)
+	{
+		case blr_agg_covar_samp:
+			type = TYPE_COVAR_SAMP;
+			break;
+
+		case blr_agg_covar_pop:
+			type = TYPE_COVAR_POP;
+			break;
+
+		case blr_agg_corr:
+			type = TYPE_CORR;
+			break;
+
+		default:
+			fb_assert(false);
+	}
+
+	ValueExprNode* a1 = PAR_parse_value(tdbb, csb);
+	ValueExprNode* a2 = PAR_parse_value(tdbb, csb);
+	return FB_NEW(pool) CorrAggNode(pool, type, a1, a2);
+}
+
+void CorrAggNode::make(DsqlCompilerScratch* dsqlScratch, dsc* desc)
+{
+	desc->makeDouble();
+	desc->setNullable(true);
+}
+
+void CorrAggNode::getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc)
+{
+	desc->makeDouble();
+}
+
+ValueExprNode* CorrAggNode::copy(thread_db* tdbb, NodeCopier& copier) const
+{
+	CorrAggNode* node = FB_NEW(*tdbb->getDefaultPool()) CorrAggNode(*tdbb->getDefaultPool(), type);
+	node->nodScale = nodScale;
+	node->arg = copier.copy(tdbb, arg);
+	node->arg2 = copier.copy(tdbb, arg2);
+	return node;
+}
+
+void CorrAggNode::aggInit(thread_db* tdbb, jrd_req* request) const
+{
+	AggNode::aggInit(tdbb, request);
+
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	impure->make_double(0);
+
+	CorrImpure* impure2 = request->getImpure<CorrImpure>(impure2Offset);
+	impure2->x = impure2->x2 = impure2->y = impure2->y2 = impure2->xy = 0.0;
+}
+
+bool CorrAggNode::aggPass(thread_db* tdbb, jrd_req* request) const
+{
+	dsc* desc = NULL;
+	dsc* desc2 = NULL;
+
+	desc = EVL_expr(tdbb, request, arg);
+	if (request->req_flags & req_null)
+		return false;
+
+	desc2 = EVL_expr(tdbb, request, arg2);
+	if (request->req_flags & req_null)
+		return false;
+
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	++impure->vlux_count;
+
+	const double y = MOV_get_double(desc);
+	const double x = MOV_get_double(desc2);
+
+	CorrImpure* impure2 = request->getImpure<CorrImpure>(impure2Offset);
+	impure2->x += x;
+	impure2->x2 += x * x;
+	impure2->y += y;
+	impure2->y2 += y * y;
+	impure2->xy += x * y;
+
+	return true;
+}
+
+void CorrAggNode::aggPass(thread_db* /*tdbb*/, jrd_req* /*request*/, dsc* /*desc*/) const
+{
+	fb_assert(false);
+}
+
+dsc* CorrAggNode::aggExecute(thread_db* tdbb, jrd_req* request) const
+{
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	CorrImpure* impure2 = request->getImpure<CorrImpure>(impure2Offset);
+	double d;
+
+	switch (type)
+	{
+		case TYPE_COVAR_SAMP:
+			if (impure->vlux_count < 2)
+				return NULL;
+			d = (impure2->xy - impure2->y * impure2->x / impure->vlux_count) / (impure->vlux_count - 1);
+			break;
+
+		case TYPE_COVAR_POP:
+			if (impure->vlux_count == 0)
+				return NULL;
+			d = (impure2->xy - impure2->y * impure2->x / impure->vlux_count) / impure->vlux_count;
+			break;
+
+		case TYPE_CORR:
+		{
+			// COVAR_POP(Y, X) / (STDDEV_POP(X) * STDDEV_POP(Y))
+			if (impure->vlux_count == 0)
+				return NULL;
+
+			const double covarPop = (impure2->xy - impure2->y * impure2->x / impure->vlux_count) /
+				impure->vlux_count;
+			const double varPopX = (impure2->x2 - impure2->x * impure2->x / impure->vlux_count) /
+				impure->vlux_count;
+			const double varPopY = (impure2->y2 - impure2->y * impure2->y / impure->vlux_count) /
+				impure->vlux_count;
+			const double divisor = sqrt(varPopX) * sqrt(varPopY);
+
+			if (divisor == 0.0)
+				return NULL;
+
+			d = covarPop / divisor;
+			break;
+		}
+	}
+
+	dsc temp;
+	temp.makeDouble(&d);
+
+	EVL_make_value(tdbb, &temp, impure);
+
+	return &impure->vlu_desc;
+}
+
+AggNode* CorrAggNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/
+{
+	return FB_NEW(getPool()) CorrAggNode(getPool(), type,
+		doDsqlPass(dsqlScratch, arg), doDsqlPass(dsqlScratch, arg2));
+}
+
+
 }	// namespace Jrd
Modified: firebird/trunk/src/dsql/AggNodes.h
===================================================================
--- firebird/trunk/src/dsql/AggNodes.h	2015-03-23 00:20:24 UTC (rev 61058)
+++ firebird/trunk/src/dsql/AggNodes.h	2015-03-23 02:55:42 UTC (rev 61059)
@@ -192,6 +192,48 @@
 	ULONG impure2Offset;
 };
 
+class CorrAggNode : public AggNode
+{
+public:
+	enum CorrType
+	{
+		TYPE_COVAR_SAMP,
+		TYPE_COVAR_POP,
+		TYPE_CORR
+	};
+
+	struct CorrImpure
+	{
+		double x, x2, y, y2, xy;
+	};
+
+	explicit CorrAggNode(MemoryPool& pool, CorrType aType,
+		ValueExprNode* aArg = NULL, ValueExprNode* aArg2 = NULL);
+
+	virtual void aggPostRse(thread_db* tdbb, CompilerScratch* csb);
+
+	static DmlNode* parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp);
+
+	virtual void make(DsqlCompilerScratch* dsqlScratch, dsc* desc);
+	virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
+	virtual ValueExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+
+	virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
+	virtual bool aggPass(thread_db* tdbb, jrd_req* request) const;
+	virtual void aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const;
+	virtual dsc* aggExecute(thread_db* tdbb, jrd_req* request) const;
+
+protected:
+	virtual AggNode* dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/;
+
+public:
+	const CorrType type;
+	NestConst<ValueExprNode> arg2;
+
+private:
+	ULONG impure2Offset;
+};
+
 } // namespace
 
 #endif // DSQL_AGG_NODES_H
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y	2015-03-23 00:20:24 UTC (rev 61058)
+++ firebird/trunk/src/dsql/parse.y	2015-03-23 02:55:42 UTC (rev 61059)
@@ -576,6 +576,9 @@
 %token <metaNamePtr> STDDEV_POP
 %token <metaNamePtr> VAR_SAMP
 %token <metaNamePtr> VAR_POP
+%token <metaNamePtr> COVAR_SAMP
+%token <metaNamePtr> COVAR_POP
+%token <metaNamePtr> CORR
 
 // precedence declarations for expression evaluation
 
@@ -3814,6 +3817,9 @@
 	| START
 	| SIMILAR				// added in FB 2.5
 	| KW_BOOLEAN			// added in FB 3.0
+	| CORR
+	| COVAR_POP
+	| COVAR_SAMP
 	| DETERMINISTIC
 	| KW_FALSE
 	| OFFSET
@@ -6805,6 +6811,12 @@
 		{ $$ = newNode<StdDevAggNode>(StdDevAggNode::TYPE_VAR_SAMP, $3); }
 	| VAR_POP '(' value ')'
 		{ $$ = newNode<StdDevAggNode>(StdDevAggNode::TYPE_VAR_POP, $3); }
+	| COVAR_SAMP '(' value ',' value ')'
+		{ $$ = newNode<CorrAggNode>(CorrAggNode::TYPE_COVAR_SAMP, $3, $5); }
+	| COVAR_POP '(' value ',' value ')'
+		{ $$ = newNode<CorrAggNode>(CorrAggNode::TYPE_COVAR_POP, $3, $5); }
+	| CORR '(' value ',' value ')'
+		{ $$ = newNode<CorrAggNode>(CorrAggNode::TYPE_CORR, $3, $5); }
 	;
 
 %type <aggNode> window_function
Modified: firebird/trunk/src/jrd/blp.h
===================================================================
--- firebird/trunk/src/jrd/blp.h	2015-03-23 00:20:24 UTC (rev 61058)
+++ firebird/trunk/src/jrd/blp.h	2015-03-23 02:55:42 UTC (rev 61059)
@@ -245,5 +245,8 @@
 	{"agg_stddev_pop", one},
 	{"agg_var_samp", one},
 	{"agg_var_pop", one},
+	{"agg_covar_samp", two},
+	{"agg_covar_pop", two},
+	{"agg_corr", two},
 	{0, 0}
 };
Modified: firebird/trunk/src/jrd/blr.h
===================================================================
--- firebird/trunk/src/jrd/blr.h	2015-03-23 00:20:24 UTC (rev 61058)
+++ firebird/trunk/src/jrd/blr.h	2015-03-23 02:55:42 UTC (rev 61059)
@@ -411,5 +411,8 @@
 #define blr_agg_stddev_pop			(unsigned char) 212
 #define blr_agg_var_samp			(unsigned char) 213
 #define blr_agg_var_pop				(unsigned char) 214
+#define blr_agg_covar_samp			(unsigned char) 215
+#define blr_agg_covar_pop			(unsigned char) 216
+#define blr_agg_corr				(unsigned char) 217
 
 #endif // JRD_BLR_H
Modified: firebird/trunk/src/yvalve/keywords.cpp
===================================================================
--- firebird/trunk/src/yvalve/keywords.cpp	2015-03-23 00:20:24 UTC (rev 61058)
+++ firebird/trunk/src/yvalve/keywords.cpp	2015-03-23 02:55:42 UTC (rev 61059)
@@ -129,10 +129,13 @@
 	{CONSTRAINT, "CONSTRAINT", 1, false},
 	{CONTAINING, "CONTAINING", 1, false},
 	{CONTINUE, "CONTINUE", 2, true},
+	{CORR, "CORR", 2, false},
 	{COS, "COS", 2, false},
 	{COSH, "COSH", 2, false},
 	{COT, "COT", 2, false},
 	{COUNT, "COUNT", 1, false},
+	{COVAR_POP, "COVAR_POP", 2, false},
+	{COVAR_SAMP, "COVAR_SAMP", 2, false},
 	{CREATE, "CREATE", 1, false},
 	{CROSS, "CROSS", 2, false},
 	{CSTRING, "CSTRING", 1, false},
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-24 00:12:47
       | 
| Revision: 61071
          http://sourceforge.net/p/firebird/code/61071
Author:   firebirds
Date:     2015-03-24 00:12:40 +0000 (Tue, 24 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-23 15:52:30 UTC (rev 61070)
+++ firebird/trunk/ChangeLog	2015-03-24 00:12:40 UTC (rev 61071)
@@ -1,3 +1,55 @@
+ 2015-03-23 15:52  alexpeshkoff 
+   M src/remote/remot_proto.h
+   M src/remote/remote.cpp
+Cleanup
+
+ 2015-03-23 11:06  alexpeshkoff 
+   M src/dsql/dsql.cpp
+   M src/jrd/CryptoManager.cpp
+   M src/jrd/DbCreators.cpp
+   M src/jrd/Mapping.cpp
+   M src/jrd/cch.cpp
+   M src/jrd/dfw.epp
+   M src/jrd/exe.cpp
+   M src/jrd/extds/ExtDS.cpp
+   M src/jrd/extds/InternalDS.cpp
+   M src/jrd/extds/IscDS.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/jrd.h
+   M src/jrd/nbak.cpp
+   M src/jrd/pag.cpp
+   M src/jrd/status.h
+   M src/jrd/svc.cpp
+   M src/jrd/svc.h
+   M src/jrd/vio.cpp
+Cleanup - avoid automatic type conversion in FbLocalStatus as suggested by Claudio
+
+ 2015-03-23 09:06  alexpeshkoff 
+   M src/common/DynamicStrings.cpp
+   M src/common/DynamicStrings.h
+   M src/common/StatusHolder.h
+   M src/common/fb_exception.cpp
+Misc
+
+ 2015-03-23 08:17  alexpeshkoff 
+   M src/common/StatusArg.cpp
+Fixed potential BOF - thanks to Claudio
+
+ 2015-03-23 04:29  robocop 
+   M src/remote/SockAddr.h
+Misc.
+
+ 2015-03-23 02:55  asfernandes 
+   M doc/WhatsNew
+   M doc/sql.extensions/README.statistical_functions.txt
+   M src/dsql/AggNodes.cpp
+   M src/dsql/AggNodes.h
+   M src/dsql/parse.y
+   M src/jrd/blp.h
+   M src/jrd/blr.h
+   M src/yvalve/keywords.cpp
+Feature CORE-4717 - Aggregate statistical functions COVAR_SAMP, COVAR_POP and CORR - contributed by Hajime Nakagami.
+
  2015-03-22 22:43  hvlad 
    M src/jrd/os/win32/winnt.cpp
    M src/remote/SockAddr.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-23 15:52:30 UTC (rev 61070)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-24 00:12:40 UTC (rev 61071)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31733
+  FORMAL BUILD NUMBER:31739
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31733"
-#define FILE_VER_STRING "WI-T3.0.0.31733"
-#define LICENSE_VER_STRING "WI-T3.0.0.31733"
-#define FILE_VER_NUMBER 3, 0, 0, 31733
+#define PRODUCT_VER_STRING "3.0.0.31739"
+#define FILE_VER_STRING "WI-T3.0.0.31739"
+#define LICENSE_VER_STRING "WI-T3.0.0.31739"
+#define FILE_VER_NUMBER 3, 0, 0, 31739
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31733"
+#define FB_BUILD_NO "31739"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-23 15:52:30 UTC (rev 61070)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-24 00:12:40 UTC (rev 61071)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31733
+BuildNum=31739
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-25 00:12:44
       | 
| Revision: 61077
          http://sourceforge.net/p/firebird/code/61077
Author:   firebirds
Date:     2015-03-25 00:12:42 +0000 (Wed, 25 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-24 13:18:04 UTC (rev 61076)
+++ firebird/trunk/ChangeLog	2015-03-25 00:12:42 UTC (rev 61077)
@@ -1,3 +1,7 @@
+ 2015-03-24 01:30  robocop 
+   M src/jrd/vio.cpp
+Misc.
+
  2015-03-23 15:52  alexpeshkoff 
    M src/remote/remot_proto.h
    M src/remote/remote.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-24 13:18:04 UTC (rev 61076)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-25 00:12:42 UTC (rev 61077)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31739
+  FORMAL BUILD NUMBER:31740
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31739"
-#define FILE_VER_STRING "WI-T3.0.0.31739"
-#define LICENSE_VER_STRING "WI-T3.0.0.31739"
-#define FILE_VER_NUMBER 3, 0, 0, 31739
+#define PRODUCT_VER_STRING "3.0.0.31740"
+#define FILE_VER_STRING "WI-T3.0.0.31740"
+#define LICENSE_VER_STRING "WI-T3.0.0.31740"
+#define FILE_VER_NUMBER 3, 0, 0, 31740
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31739"
+#define FB_BUILD_NO "31740"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-24 13:18:04 UTC (rev 61076)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-25 00:12:42 UTC (rev 61077)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31739
+BuildNum=31740
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <asf...@us...> - 2015-03-25 17:52:02
       | 
| Revision: 61081
          http://sourceforge.net/p/firebird/code/61081
Author:   asfernandes
Date:     2015-03-25 17:51:54 +0000 (Wed, 25 Mar 2015)
Log Message:
-----------
Feature CORE-4722 - Aggregate linear regression functions.
Modified Paths:
--------------
    firebird/trunk/doc/WhatsNew
    firebird/trunk/src/dsql/AggNodes.cpp
    firebird/trunk/src/dsql/AggNodes.h
    firebird/trunk/src/dsql/parse.y
    firebird/trunk/src/jrd/blp.h
    firebird/trunk/src/jrd/blr.h
    firebird/trunk/src/yvalve/keywords.cpp
Added Paths:
-----------
    firebird/trunk/doc/sql.extensions/README.regr_functions.txt
Modified: firebird/trunk/doc/WhatsNew
===================================================================
--- firebird/trunk/doc/WhatsNew	2015-03-25 11:15:20 UTC (rev 61080)
+++ firebird/trunk/doc/WhatsNew	2015-03-25 17:51:54 UTC (rev 61081)
@@ -291,6 +291,14 @@
       Contributor(s):
         Alex Peshkov <peshkoff at mail.ru>
 
+    * New feature CORE-4722
+        Aggregate linear regression functions
+      See also:
+        /doc/sql.extensions/README.regr_functions.txt
+      Contributor(s):
+        Hajime Nakagami <nakagami at gmail.com>
+        Adriano dos Santos Fernandes <adrianosf at gmail.com>
+
     * New feature CORE-4717
         Aggregate statistical functions COVAR_SAMP, COVAR_POP and CORR
       See also:
Added: firebird/trunk/doc/sql.extensions/README.regr_functions.txt
===================================================================
--- firebird/trunk/doc/sql.extensions/README.regr_functions.txt	                        (rev 0)
+++ firebird/trunk/doc/sql.extensions/README.regr_functions.txt	2015-03-25 17:51:54 UTC (rev 61081)
@@ -0,0 +1,38 @@
+---------------------------
+Linear Regression Functions
+---------------------------
+
+REGR_* functions analyze relationshitp of the 2 numeric set of data.
+These functions calculate with records that both of 2 set are not NULL.
+
+Syntax:
+
+    <regr function> ::= <function name>(<expr1>, <expr2>)
+    <function name> := { REGR_AVGX | REGR_AVGY | REGR_COUNT | REGR_INTERCEPT |
+                         REGR_R2 | REGR_SLOPE | REGR_SXX | REGR_SXY | REGR_SYY }
+
+Formula use bellow variable.
+
+Y: <expr1> (<expr1> IS NOT NULL AND <expr2> IS NOT NULL).
+X: <expr2> (<expr1> IS NOT NULL AND <expr2> IS NOT NULL).
+N: COUNT of recordset except <expr1> IS NULL OR <expr2> IS NULL.
+
+Formula:
+
+    REGR_AVGX(Y, X) = SUM(X) / N
+    REGR_AVGY(Y, X) = SUM(Y) / N
+    REGR_COUNT(Y, X) = N
+    REGR_INTERCEPT(Y, X) = REGR_AVGY(Y, X) - REGR_SLOPE(Y, X) * REGR_AVG_X(Y, X)
+    REGR_R2(Y, X) = POWER(CORR(Y, X),2)
+    REGR_SLOPE(Y, X) = COVAR_POP(Y, X)
+    REGR_SXX(Y, X) = N * VAR_POP(X)
+    REGR_SXY(Y, X) = N * COVAR_POP(Y, X)
+    REGR_SYY(Y, X) = N * VAR_POP(Y)
+
+Author:
+
+    Hajime Nakagami <nak...@gm...>
+
+Note:
+
+    Function return NULL if N = 0 except of REGR_COUNT().
Property changes on: firebird/trunk/doc/sql.extensions/README.regr_functions.txt
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: firebird/trunk/src/dsql/AggNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/AggNodes.cpp	2015-03-25 11:15:20 UTC (rev 61080)
+++ firebird/trunk/src/dsql/AggNodes.cpp	2015-03-25 17:51:54 UTC (rev 61081)
@@ -1220,6 +1220,7 @@
 
 		default:
 			fb_assert(false);
+			return NULL;
 	}
 
 	return FB_NEW(pool) StdDevAggNode(pool, type, PAR_parse_value(tdbb, csb));
@@ -1359,6 +1360,7 @@
 
 		default:
 			fb_assert(false);
+			return NULL;
 	}
 
 	ValueExprNode* a1 = PAR_parse_value(tdbb, csb);
@@ -1488,4 +1490,322 @@
 }
 
 
+//--------------------
+
+static AggNode::Register<RegrAggNode> regrAvgxAggInfo("REGR_AVGX", blr_agg_regr_avgx);
+static AggNode::Register<RegrAggNode> regrAvgyAggInfo("REGR_AVGY", blr_agg_regr_avgy);
+static AggNode::Register<RegrAggNode> regrInterceptAggInfo("REGR_INTERCEPT", blr_agg_regr_intercept);
+static AggNode::Register<RegrAggNode> regrR2AggInfo("REGR_R2", blr_agg_regr_r2);
+static AggNode::Register<RegrAggNode> regrSlopeAggInfo("REGR_SLOPE", blr_agg_regr_slope);
+static AggNode::Register<RegrAggNode> regrSxxAggInfo("REGR_SXX", blr_agg_regr_sxx);
+static AggNode::Register<RegrAggNode> regrSxyAggInfo("REGR_SXY", blr_agg_regr_sxy);
+static AggNode::Register<RegrAggNode> regrSyyAggInfo("REGR_SYY", blr_agg_regr_syy);
+
+RegrAggNode::RegrAggNode(MemoryPool& pool, RegrType aType, ValueExprNode* aArg, ValueExprNode* aArg2)
+	: AggNode(pool,
+		(aType == RegrAggNode::TYPE_REGR_AVGX ? regrAvgxAggInfo :
+		 aType == RegrAggNode::TYPE_REGR_AVGY ? regrAvgyAggInfo :
+		 aType == RegrAggNode::TYPE_REGR_INTERCEPT ? regrInterceptAggInfo :
+		 aType == RegrAggNode::TYPE_REGR_R2 ? regrR2AggInfo :
+		 aType == RegrAggNode::TYPE_REGR_SLOPE ? regrSlopeAggInfo :
+		 aType == RegrAggNode::TYPE_REGR_SXX ? regrSxxAggInfo :
+		 aType == RegrAggNode::TYPE_REGR_SXY ? regrSxyAggInfo :
+		 aType == RegrAggNode::TYPE_REGR_SYY ? regrSyyAggInfo :
+		 regrSyyAggInfo),
+		false, false, aArg),
+	  type(aType),
+	  arg2(aArg2),
+	  impure2Offset(0)
+{
+	addChildNode(arg2, arg2);
+}
+
+void RegrAggNode::aggPostRse(thread_db* tdbb, CompilerScratch* csb)
+{
+	AggNode::aggPostRse(tdbb, csb);
+	impure2Offset = CMP_impure(csb, sizeof(RegrImpure));
+}
+
+DmlNode* RegrAggNode::parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp)
+{
+	RegrType type;
+
+	switch (blrOp)
+	{
+		case blr_agg_regr_avgx:
+			type = TYPE_REGR_AVGX;
+			break;
+
+		case blr_agg_regr_avgy:
+			type = TYPE_REGR_AVGY;
+			break;
+
+		case blr_agg_regr_intercept:
+			type = TYPE_REGR_INTERCEPT;
+			break;
+
+		case blr_agg_regr_r2:
+			type = TYPE_REGR_R2;
+			break;
+
+		case blr_agg_regr_slope:
+			type = TYPE_REGR_SLOPE;
+			break;
+
+		case blr_agg_regr_sxx:
+			type = TYPE_REGR_SXX;
+			break;
+
+		case blr_agg_regr_sxy:
+			type = TYPE_REGR_SXY;
+			break;
+
+		case blr_agg_regr_syy:
+			type = TYPE_REGR_SYY;
+			break;
+
+		default:
+			fb_assert(false);
+			return NULL;
+	}
+
+	ValueExprNode* a1 = PAR_parse_value(tdbb, csb);
+	ValueExprNode* a2 = PAR_parse_value(tdbb, csb);
+	return FB_NEW(pool) RegrAggNode(pool, type, a1, a2);
+}
+
+void RegrAggNode::make(DsqlCompilerScratch* dsqlScratch, dsc* desc)
+{
+	desc->makeDouble();
+	desc->setNullable(true);
+}
+
+void RegrAggNode::getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc)
+{
+	desc->makeDouble();
+}
+
+ValueExprNode* RegrAggNode::copy(thread_db* tdbb, NodeCopier& copier) const
+{
+	RegrAggNode* node = FB_NEW(*tdbb->getDefaultPool()) RegrAggNode(*tdbb->getDefaultPool(), type);
+	node->nodScale = nodScale;
+	node->arg = copier.copy(tdbb, arg);
+	node->arg2 = copier.copy(tdbb, arg2);
+	return node;
+}
+
+void RegrAggNode::aggInit(thread_db* tdbb, jrd_req* request) const
+{
+	AggNode::aggInit(tdbb, request);
+
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	impure->make_double(0);
+
+	RegrImpure* impure2 = request->getImpure<RegrImpure>(impure2Offset);
+	impure2->x = impure2->x2 = impure2->y = impure2->y2 = impure2->xy = 0.0;
+}
+
+bool RegrAggNode::aggPass(thread_db* tdbb, jrd_req* request) const
+{
+	dsc* desc = NULL;
+	dsc* desc2 = NULL;
+
+	desc = EVL_expr(tdbb, request, arg);
+	if (request->req_flags & req_null)
+		return false;
+
+	desc2 = EVL_expr(tdbb, request, arg2);
+	if (request->req_flags & req_null)
+		return false;
+
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	++impure->vlux_count;
+
+	const double y = MOV_get_double(desc);
+	const double x = MOV_get_double(desc2);
+
+	RegrImpure* impure2 = request->getImpure<RegrImpure>(impure2Offset);
+	impure2->x += x;
+	impure2->x2 += x * x;
+	impure2->y += y;
+	impure2->y2 += y * y;
+	impure2->xy += x * y;
+
+	return true;
+}
+
+void RegrAggNode::aggPass(thread_db* /*tdbb*/, jrd_req* /*request*/, dsc* /*desc*/) const
+{
+	fb_assert(false);
+}
+
+dsc* RegrAggNode::aggExecute(thread_db* tdbb, jrd_req* request) const
+{
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	RegrImpure* impure2 = request->getImpure<RegrImpure>(impure2Offset);
+
+	if (impure->vlux_count == 0)
+		return NULL;
+
+	const double varPopX = (impure2->x2 - impure2->x * impure2->x / impure->vlux_count) / impure->vlux_count;
+	const double varPopY = (impure2->y2 - impure2->y * impure2->y / impure->vlux_count) / impure->vlux_count;
+	const double covarPop = (impure2->xy - impure2->y * impure2->x / impure->vlux_count) / impure->vlux_count;
+	const double avgX = impure2->x / impure->vlux_count;
+	const double avgY = impure2->y / impure->vlux_count;
+	const double slope = covarPop / varPopX;
+	const double sq = sqrt(varPopX) * sqrt(varPopY);
+	const double corr = covarPop / sq;
+
+	double d;
+
+	switch (type)
+	{
+		case TYPE_REGR_AVGX:
+			d = avgX;
+			break;
+
+		case TYPE_REGR_AVGY:
+			d = avgY;
+			break;
+
+		case TYPE_REGR_INTERCEPT:
+			if (varPopX == 0.0)
+				return NULL;
+			else
+				d = avgY - slope * avgX;
+			break;
+
+		case TYPE_REGR_R2:
+			if (varPopX == 0.0)
+				return NULL;
+			else if (varPopY == 0.0)
+				d = 1.0;
+			else if (sq == 0.0)
+				return NULL;
+			else
+				d = corr * corr;
+			break;
+
+		case TYPE_REGR_SLOPE:
+			if (varPopX == 0.0)
+				return NULL;
+			else
+				d = covarPop / varPopX;
+			break;
+
+		case TYPE_REGR_SXX:
+			d = impure->vlux_count * varPopX;
+			break;
+
+		case TYPE_REGR_SXY:
+			d = impure->vlux_count * covarPop;
+			break;
+
+		case TYPE_REGR_SYY:
+			d = impure->vlux_count * varPopY;
+			break;
+	}
+
+	dsc temp;
+	temp.makeDouble(&d);
+
+	EVL_make_value(tdbb, &temp, impure);
+
+	return &impure->vlu_desc;
+}
+
+AggNode* RegrAggNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/
+{
+	return FB_NEW(getPool()) RegrAggNode(getPool(), type,
+		doDsqlPass(dsqlScratch, arg), doDsqlPass(dsqlScratch, arg2));
+}
+
+
+//--------------------
+
+
+static AggNode::Register<RegrCountAggNode> regrCountAggInfo("REGR_COUNT", blr_agg_regr_count);
+
+RegrCountAggNode::RegrCountAggNode(MemoryPool& pool, ValueExprNode* aArg, ValueExprNode* aArg2)
+	: AggNode(pool, regrCountAggInfo, false, false, aArg),
+	  arg2(aArg2)
+{
+	addChildNode(arg2, arg2);
+}
+
+DmlNode* RegrCountAggNode::parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp)
+{
+	ValueExprNode* a1 = PAR_parse_value(tdbb, csb);
+	ValueExprNode* a2 = PAR_parse_value(tdbb, csb);
+	return FB_NEW(pool) RegrCountAggNode(pool, a1, a2);
+}
+
+void RegrCountAggNode::make(DsqlCompilerScratch* dsqlScratch, dsc* desc)
+{
+	desc->makeInt64(0);
+}
+
+void RegrCountAggNode::getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc)
+{
+	desc->makeInt64(0);
+}
+
+ValueExprNode* RegrCountAggNode::copy(thread_db* tdbb, NodeCopier& copier) const
+{
+	RegrCountAggNode* node = FB_NEW(*tdbb->getDefaultPool()) RegrCountAggNode(*tdbb->getDefaultPool());
+	node->nodScale = nodScale;
+	node->arg = copier.copy(tdbb, arg);
+	node->arg2 = copier.copy(tdbb, arg2);
+	return node;
+}
+
+void RegrCountAggNode::aggInit(thread_db* tdbb, jrd_req* request) const
+{
+	AggNode::aggInit(tdbb, request);
+
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	impure->make_int64(0);
+}
+
+bool RegrCountAggNode::aggPass(thread_db* tdbb, jrd_req* request) const
+{
+	dsc* desc = NULL;
+	dsc* desc2 = NULL;
+
+	desc = EVL_expr(tdbb, request, arg);
+	if (request->req_flags & req_null)
+		return false;
+
+	desc2 = EVL_expr(tdbb, request, arg2);
+	if (request->req_flags & req_null)
+		return false;
+
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+	++impure->vlu_misc.vlu_int64;
+
+	return true;
+}
+
+void RegrCountAggNode::aggPass(thread_db* /*tdbb*/, jrd_req* /*request*/, dsc* /*desc*/) const
+{
+	fb_assert(false);
+}
+
+dsc* RegrCountAggNode::aggExecute(thread_db* tdbb, jrd_req* request) const
+{
+	impure_value_ex* impure = request->getImpure<impure_value_ex>(impureOffset);
+
+	if (!impure->vlu_desc.dsc_dtype)
+		return NULL;
+
+	return &impure->vlu_desc;
+}
+
+AggNode* RegrCountAggNode::dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/
+{
+	return FB_NEW(getPool()) RegrCountAggNode(getPool(),
+		doDsqlPass(dsqlScratch, arg), doDsqlPass(dsqlScratch, arg2));
+}
+
+
 }	// namespace Jrd
Modified: firebird/trunk/src/dsql/AggNodes.h
===================================================================
--- firebird/trunk/src/dsql/AggNodes.h	2015-03-25 11:15:20 UTC (rev 61080)
+++ firebird/trunk/src/dsql/AggNodes.h	2015-03-25 17:51:54 UTC (rev 61081)
@@ -234,6 +234,77 @@
 	ULONG impure2Offset;
 };
 
+class RegrAggNode : public AggNode
+{
+public:
+	enum RegrType
+	{
+		TYPE_REGR_AVGX,
+		TYPE_REGR_AVGY,
+		TYPE_REGR_INTERCEPT,
+		TYPE_REGR_R2,
+		TYPE_REGR_SLOPE,
+		TYPE_REGR_SXX,
+		TYPE_REGR_SXY,
+		TYPE_REGR_SYY
+	};
+
+	struct RegrImpure
+	{
+		double x, x2, y, y2, xy;
+	};
+
+	explicit RegrAggNode(MemoryPool& pool, RegrType aType,
+		ValueExprNode* aArg = NULL, ValueExprNode* aArg2 = NULL);
+
+	virtual void aggPostRse(thread_db* tdbb, CompilerScratch* csb);
+
+	static DmlNode* parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp);
+
+	virtual void make(DsqlCompilerScratch* dsqlScratch, dsc* desc);
+	virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
+	virtual ValueExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+
+	virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
+	virtual bool aggPass(thread_db* tdbb, jrd_req* request) const;
+	virtual void aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const;
+	virtual dsc* aggExecute(thread_db* tdbb, jrd_req* request) const;
+
+protected:
+	virtual AggNode* dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/;
+
+public:
+	const RegrType type;
+	NestConst<ValueExprNode> arg2;
+
+private:
+	ULONG impure2Offset;
+};
+
+class RegrCountAggNode : public AggNode
+{
+public:
+	explicit RegrCountAggNode(MemoryPool& pool,
+		ValueExprNode* aArg = NULL, ValueExprNode* aArg2 = NULL);
+
+	static DmlNode* parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* csb, const UCHAR blrOp);
+
+	virtual void make(DsqlCompilerScratch* dsqlScratch, dsc* desc);
+	virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
+	virtual ValueExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+
+	virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
+	virtual bool aggPass(thread_db* tdbb, jrd_req* request) const;
+	virtual void aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const;
+	virtual dsc* aggExecute(thread_db* tdbb, jrd_req* request) const;
+
+protected:
+	virtual AggNode* dsqlCopy(DsqlCompilerScratch* dsqlScratch) /*const*/;
+
+public:
+	NestConst<ValueExprNode> arg2;
+};
+
 } // namespace
 
 #endif // DSQL_AGG_NODES_H
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y	2015-03-25 11:15:20 UTC (rev 61080)
+++ firebird/trunk/src/dsql/parse.y	2015-03-25 17:51:54 UTC (rev 61081)
@@ -579,6 +579,15 @@
 %token <metaNamePtr> COVAR_SAMP
 %token <metaNamePtr> COVAR_POP
 %token <metaNamePtr> CORR
+%token <metaNamePtr> REGR_AVGX
+%token <metaNamePtr> REGR_AVGY
+%token <metaNamePtr> REGR_COUNT
+%token <metaNamePtr> REGR_INTERCEPT
+%token <metaNamePtr> REGR_R2
+%token <metaNamePtr> REGR_SLOPE
+%token <metaNamePtr> REGR_SXX
+%token <metaNamePtr> REGR_SXY
+%token <metaNamePtr> REGR_SYY
 
 // precedence declarations for expression evaluation
 
@@ -3824,6 +3833,15 @@
 	| KW_FALSE
 	| OFFSET
 	| OVER
+	| REGR_AVGX
+	| REGR_AVGY
+	| REGR_COUNT
+	| REGR_INTERCEPT
+	| REGR_R2
+	| REGR_SLOPE
+	| REGR_SXX
+	| REGR_SXY
+	| REGR_SYY
 	| RETURN
 	| RDB_RECORD_VERSION
 	| ROW
@@ -6817,6 +6835,24 @@
 		{ $$ = newNode<CorrAggNode>(CorrAggNode::TYPE_COVAR_POP, $3, $5); }
 	| CORR '(' value ',' value ')'
 		{ $$ = newNode<CorrAggNode>(CorrAggNode::TYPE_CORR, $3, $5); }
+	| REGR_AVGX '(' value ',' value ')'
+		{ $$ = newNode<RegrAggNode>(RegrAggNode::TYPE_REGR_AVGX, $3, $5); }
+	| REGR_AVGY '(' value ',' value ')'
+		{ $$ = newNode<RegrAggNode>(RegrAggNode::TYPE_REGR_AVGY, $3, $5); }
+	| REGR_COUNT '(' value ',' value ')'
+		{ $$ = newNode<RegrCountAggNode>($3, $5); }
+	| REGR_INTERCEPT '(' value ',' value ')'
+		{ $$ = newNode<RegrAggNode>(RegrAggNode::TYPE_REGR_INTERCEPT, $3, $5); }
+	| REGR_R2 '(' value ',' value ')'
+		{ $$ = newNode<RegrAggNode>(RegrAggNode::TYPE_REGR_R2, $3, $5); }
+	| REGR_SLOPE '(' value ',' value ')'
+		{ $$ = newNode<RegrAggNode>(RegrAggNode::TYPE_REGR_SLOPE, $3, $5); }
+	| REGR_SXX '(' value ',' value ')'
+		{ $$ = newNode<RegrAggNode>(RegrAggNode::TYPE_REGR_SXX, $3, $5); }
+	| REGR_SXY '(' value ',' value ')'
+		{ $$ = newNode<RegrAggNode>(RegrAggNode::TYPE_REGR_SXY, $3, $5); }
+	| REGR_SYY '(' value ',' value ')'
+		{ $$ = newNode<RegrAggNode>(RegrAggNode::TYPE_REGR_SYY, $3, $5); }
 	;
 
 %type <aggNode> window_function
Modified: firebird/trunk/src/jrd/blp.h
===================================================================
--- firebird/trunk/src/jrd/blp.h	2015-03-25 11:15:20 UTC (rev 61080)
+++ firebird/trunk/src/jrd/blp.h	2015-03-25 17:51:54 UTC (rev 61081)
@@ -248,5 +248,14 @@
 	{"agg_covar_samp", two},
 	{"agg_covar_pop", two},
 	{"agg_corr", two},
+	{"blr_agg_regr_avgx", two},
+	{"blr_agg_regr_avgy", two},
+	{"blr_agg_regr_count", two},
+	{"blr_agg_regr_intercept", two},
+	{"blr_agg_regr_r2", two},
+	{"blr_agg_regr_slope", two},
+	{"blr_agg_regr_sxx", two},
+	{"blr_agg_regr_sxy", two},
+	{"blr_agg_regr_syy", two},
 	{0, 0}
 };
Modified: firebird/trunk/src/jrd/blr.h
===================================================================
--- firebird/trunk/src/jrd/blr.h	2015-03-25 11:15:20 UTC (rev 61080)
+++ firebird/trunk/src/jrd/blr.h	2015-03-25 17:51:54 UTC (rev 61081)
@@ -414,5 +414,14 @@
 #define blr_agg_covar_samp			(unsigned char) 215
 #define blr_agg_covar_pop			(unsigned char) 216
 #define blr_agg_corr				(unsigned char) 217
+#define blr_agg_regr_avgx			(unsigned char) 218
+#define blr_agg_regr_avgy			(unsigned char) 219
+#define blr_agg_regr_count			(unsigned char) 220
+#define blr_agg_regr_intercept		(unsigned char) 221
+#define blr_agg_regr_r2				(unsigned char) 222
+#define blr_agg_regr_slope			(unsigned char) 223
+#define blr_agg_regr_sxx			(unsigned char) 224
+#define blr_agg_regr_sxy			(unsigned char) 225
+#define blr_agg_regr_syy			(unsigned char) 226
 
 #endif // JRD_BLR_H
Modified: firebird/trunk/src/yvalve/keywords.cpp
===================================================================
--- firebird/trunk/src/yvalve/keywords.cpp	2015-03-25 11:15:20 UTC (rev 61080)
+++ firebird/trunk/src/yvalve/keywords.cpp	2015-03-25 17:51:54 UTC (rev 61081)
@@ -333,6 +333,15 @@
 	{RECREATE, "RECREATE", 2, false},
 	{RECURSIVE, "RECURSIVE", 2, false},
 	{REFERENCES, "REFERENCES", 1, false},
+	{REGR_AVGX, "REGR_AVGX", 2, false},
+	{REGR_AVGY, "REGR_AVGY", 2, false},
+	{REGR_COUNT, "REGR_COUNT", 2, false},
+	{REGR_INTERCEPT, "REGR_INTERCEPT", 2, false},
+	{REGR_R2, "REGR_R2", 2, false},
+	{REGR_SLOPE, "REGR_SLOPE", 2, false},
+	{REGR_SXX, "REGR_SXX", 2, false},
+	{REGR_SXY, "REGR_SXY", 2, false},
+	{REGR_SYY, "REGR_SYY", 2, false},
 	{KW_RELATIVE, "RELATIVE", 2, true},
 	{RELEASE, "RELEASE", 2, false},
 	{REPLACE, "REPLACE", 2, false},
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-26 00:13:10
       | 
| Revision: 61087
          http://sourceforge.net/p/firebird/code/61087
Author:   firebirds
Date:     2015-03-26 00:13:01 +0000 (Thu, 26 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-25 20:16:02 UTC (rev 61086)
+++ firebird/trunk/ChangeLog	2015-03-26 00:13:01 UTC (rev 61087)
@@ -1,3 +1,23 @@
+ 2015-03-25 17:52  asfernandes 
+   M src/dsql/AggNodes.cpp
+   M src/dsql/AggNodes.h
+   M src/dsql/Nodes.h
+   M src/dsql/WinNodes.cpp
+   M src/jrd/blp.h
+   M src/jrd/blr.h
+Rework new aggregate functions so that they use the single blr_agg_function BLR verb.
+
+ 2015-03-25 17:51  asfernandes 
+   M doc/WhatsNew
+   A doc/sql.extensions/README.regr_functions.txt
+   M src/dsql/AggNodes.cpp
+   M src/dsql/AggNodes.h
+   M src/dsql/parse.y
+   M src/jrd/blp.h
+   M src/jrd/blr.h
+   M src/yvalve/keywords.cpp
+Feature CORE-4722 - Aggregate linear regression functions.
+
  2015-03-24 01:30  robocop 
    M src/jrd/vio.cpp
 Misc.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-25 20:16:02 UTC (rev 61086)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-26 00:13:01 UTC (rev 61087)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31740
+  FORMAL BUILD NUMBER:31742
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31740"
-#define FILE_VER_STRING "WI-T3.0.0.31740"
-#define LICENSE_VER_STRING "WI-T3.0.0.31740"
-#define FILE_VER_NUMBER 3, 0, 0, 31740
+#define PRODUCT_VER_STRING "3.0.0.31742"
+#define FILE_VER_STRING "WI-T3.0.0.31742"
+#define LICENSE_VER_STRING "WI-T3.0.0.31742"
+#define FILE_VER_NUMBER 3, 0, 0, 31742
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31740"
+#define FB_BUILD_NO "31742"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-25 20:16:02 UTC (rev 61086)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-26 00:13:01 UTC (rev 61087)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31740
+BuildNum=31742
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-28 00:14:58
       | 
| Revision: 61120
          http://sourceforge.net/p/firebird/code/61120
Author:   firebirds
Date:     2015-03-28 00:14:56 +0000 (Sat, 28 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-27 22:10:02 UTC (rev 61119)
+++ firebird/trunk/ChangeLog	2015-03-28 00:14:56 UTC (rev 61120)
@@ -1,3 +1,132 @@
+ 2015-03-27 17:51  alexpeshkoff 
+   M src/alice/alice.cpp
+   M src/alice/main/aliceMain.cpp
+   M src/auth/SecurityDatabase/LegacyServer.cpp
+   M src/burp/burp.cpp
+   M src/burp/main/burpMain.cpp
+   M src/common/IntlParametersBlock.cpp
+   M src/common/SimpleStatusVector.h
+   M src/common/StatusArg.h
+   M src/common/StatusHolder.cpp
+   M src/common/classes/init.cpp
+   M src/common/fb_exception.cpp
+   M src/common/isc.cpp
+   M src/common/unicode_util.cpp
+   M src/common/utils.cpp
+   M src/common/utils_proto.h
+   M src/dsql/ExprNodes.cpp
+   M src/dsql/StmtNodes.cpp
+   M src/include/fb_exception.h
+   M src/jrd/CryptoManager.cpp
+   M src/jrd/Function.epp
+   M src/jrd/JrdStatement.cpp
+   M src/jrd/TempSpace.cpp
+   M src/jrd/btr.cpp
+   M src/jrd/cch.cpp
+   M src/jrd/cmp.cpp
+   M src/jrd/dfw.epp
+   M src/jrd/err.cpp
+   M src/jrd/exe.cpp
+   M src/jrd/extds/ExtDS.cpp
+   M src/jrd/fun.epp
+   M src/jrd/jrd.cpp
+   M src/jrd/met.epp
+   M src/jrd/nbak.cpp
+   M src/jrd/sdw.cpp
+   M src/jrd/svc.cpp
+   M src/jrd/tra.cpp
+   M src/jrd/trace/TraceService.cpp
+   M src/jrd/validation.cpp
+   M src/jrd/vio.cpp
+   M src/lock/print.cpp
+   M src/remote/client/interface.cpp
+   M src/remote/protocol.cpp
+   M src/remote/remote.cpp
+   M src/remote/server/os/posix/inet_server.cpp
+   M src/remote/server/server.cpp
+   M src/utilities/fbsvcmgr/fbsvcmgr.cpp
+   M src/utilities/fbtracemgr/traceMgrMain.cpp
+   M src/utilities/gsec/gsec.cpp
+   M src/utilities/gsec/main/gsecMain.cpp
+   M src/utilities/gstat/dba.epp
+   M src/utilities/gstat/main/gstatMain.cpp
+   M src/utilities/nbackup/nbackup.cpp
+   M src/utilities/ntrace/TracePluginImpl.cpp
+   M src/yvalve/user_dsql.cpp
+   M src/yvalve/utl.cpp
+   M src/yvalve/why.cpp
+Be more consistent putting IStatus into fast inline wrapper. Also some syntax sugar as suggested by Dmitry
+
+ 2015-03-27 15:41  hvlad 
+   M src/jrd/os/win32/ibinitdll.cpp
+   M src/remote/server/os/win32/srvr_w32.cpp
+Fixed Windows build
+
+ 2015-03-27 14:36  alexpeshkoff 
+   M src/alice/alice.cpp
+   M src/alice/exe.cpp
+   M src/alice/main/aliceMain.cpp
+   M src/auth/SecurityDatabase/LegacyServer.cpp
+   M src/burp/burp.cpp
+   M src/burp/canonical.cpp
+   M src/burp/main/burpMain.cpp
+   M src/common/SimpleStatusVector.h
+   M src/common/StatusArg.cpp
+   M src/common/StatusArg.h
+   M src/common/StatusHolder.cpp
+   M src/common/StatusHolder.h
+   M src/common/classes/init.cpp
+   M src/common/fb_exception.cpp
+   M src/common/isc.cpp
+   M src/common/isc_proto.h
+   M src/common/isc_s_proto.h
+   M src/common/isc_sync.cpp
+   M src/common/sdl.cpp
+   M src/common/sdl_proto.h
+   M src/common/utils.cpp
+   M src/dsql/ExprNodes.cpp
+   M src/dsql/Nodes.h
+   M src/dsql/StmtNodes.cpp
+   M src/gpre/boot/gpre_meta_boot.cpp
+   M src/include/fb_exception.h
+   M src/include/firebird/FirebirdInterface.idl
+   M src/include/firebird/IdlFbInterfaces.h
+   M src/include/firebird/Interface.h
+   M src/jrd/Function.epp
+   M src/jrd/Monitoring.cpp
+   M src/jrd/TempSpace.cpp
+   M src/jrd/event.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/lck.cpp
+   M src/jrd/met.epp
+   M src/jrd/status.h
+   M src/jrd/svc.cpp
+   M src/jrd/trace/TraceService.cpp
+   M src/lock/lock.cpp
+   M src/lock/lock_proto.h
+   M src/lock/print.cpp
+   M src/remote/protocol.cpp
+   M src/remote/server/os/posix/inet_server.cpp
+   M src/utilities/fbsvcmgr/fbsvcmgr.cpp
+   M src/utilities/fbtracemgr/traceMgrMain.cpp
+   M src/utilities/gsec/gsec.cpp
+   M src/utilities/gsec/main/gsecMain.cpp
+   M src/utilities/gstat/dba.epp
+   M src/utilities/gstat/main/gstatMain.cpp
+   M src/utilities/nbackup/nbackup.cpp
+   M src/utilities/ntrace/TracePluginImpl.cpp
+   M src/yvalve/MasterImplementation.cpp
+   M src/yvalve/MasterImplementation.h
+   M src/yvalve/alt.cpp
+   M src/yvalve/preparse.cpp
+   M src/yvalve/user_dsql.cpp
+   M src/yvalve/utl.cpp
+   M src/yvalve/utl_proto.h
+   M src/yvalve/why.cpp
+Use status interface instead plain status vector when working with exceptions.
+Avoid use of circullar allocation for strings in status vector (except when unavoidable for ISC API backward compatibility).
+Use TLS for circullar allocation buffer instead manually working with threads' list.
+
  2015-03-25 17:52  asfernandes 
    M src/dsql/AggNodes.cpp
    M src/dsql/AggNodes.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-27 22:10:02 UTC (rev 61119)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-28 00:14:56 UTC (rev 61120)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31742
+  FORMAL BUILD NUMBER:31745
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31742"
-#define FILE_VER_STRING "WI-T3.0.0.31742"
-#define LICENSE_VER_STRING "WI-T3.0.0.31742"
-#define FILE_VER_NUMBER 3, 0, 0, 31742
+#define PRODUCT_VER_STRING "3.0.0.31745"
+#define FILE_VER_STRING "WI-T3.0.0.31745"
+#define LICENSE_VER_STRING "WI-T3.0.0.31745"
+#define FILE_VER_NUMBER 3, 0, 0, 31745
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31742"
+#define FB_BUILD_NO "31745"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-27 22:10:02 UTC (rev 61119)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-28 00:14:56 UTC (rev 61120)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31742
+BuildNum=31745
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-29 00:13:05
       | 
| Revision: 61128
          http://sourceforge.net/p/firebird/code/61128
Author:   firebirds
Date:     2015-03-29 00:13:03 +0000 (Sun, 29 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-28 22:34:04 UTC (rev 61127)
+++ firebird/trunk/ChangeLog	2015-03-29 00:13:03 UTC (rev 61128)
@@ -1,3 +1,52 @@
+ 2015-03-28 15:02  mapopa 
+   M builds/posix/Makefile.in
+Cleanup comments
+
+ 2015-03-28 13:55  mapopa 
+   M builds/posix/Makefile.in.examples
+Sync code with firebird 2.5.x tree and libreoffice patch , even if is commented 
+
+ 2015-03-28 00:40  asfernandes 
+   M doc/sql.extensions/README.regr_functions.txt
+Corrections, thanks to Simonov Denis.
+
+ 2015-03-28 00:36  asfernandes 
+   M src/auth/SecureRemotePassword/Message.h
+   M src/auth/SecureRemotePassword/server/SrpServer.cpp
+   M src/auth/SecurityDatabase/LegacyManagement.epp
+   M src/common/DynamicStrings.cpp
+   M src/common/SimpleStatusVector.h
+   M src/common/StatusHolder.h
+   M src/common/fb_exception.cpp
+   M src/common/utils.cpp
+   M src/dsql/dsql.cpp
+   M src/include/fb_exception.h
+   M src/jrd/CryptoManager.cpp
+   M src/jrd/err.cpp
+   M src/jrd/exe.cpp
+   M src/jrd/extds/ExtDS.cpp
+   M src/jrd/extds/IscDS.cpp
+   M src/jrd/extds/IscDS.h
+   M src/jrd/idx.cpp
+   M src/jrd/jrd.cpp
+   M src/jrd/nbak.cpp
+   M src/jrd/status.h
+   M src/jrd/svc.cpp
+   M src/jrd/trace/TraceConfigStorage.cpp
+   M src/jrd/val.h
+   M src/jrd/vio.cpp
+   M src/remote/client/interface.cpp
+   M src/remote/inet.cpp
+   M src/remote/os/win32/wnet.cpp
+   M src/remote/os/win32/xnet.cpp
+   M src/remote/server/server.cpp
+   M src/utilities/nbackup/nbackup.cpp
+   M src/utilities/ntrace/TracePluginImpl.cpp
+   M src/yvalve/PluginManager.cpp
+   M src/yvalve/utl.cpp
+   M src/yvalve/utl_proto.h
+Misc.
+
  2015-03-27 17:51  alexpeshkoff 
    M src/alice/alice.cpp
    M src/alice/main/aliceMain.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-28 22:34:04 UTC (rev 61127)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-29 00:13:03 UTC (rev 61128)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31745
+  FORMAL BUILD NUMBER:31749
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31745"
-#define FILE_VER_STRING "WI-T3.0.0.31745"
-#define LICENSE_VER_STRING "WI-T3.0.0.31745"
-#define FILE_VER_NUMBER 3, 0, 0, 31745
+#define PRODUCT_VER_STRING "3.0.0.31749"
+#define FILE_VER_STRING "WI-T3.0.0.31749"
+#define LICENSE_VER_STRING "WI-T3.0.0.31749"
+#define FILE_VER_NUMBER 3, 0, 0, 31749
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31745"
+#define FB_BUILD_NO "31749"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-28 22:34:04 UTC (rev 61127)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-29 00:13:03 UTC (rev 61128)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31745
+BuildNum=31749
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-30 00:11:56
       | 
| Revision: 61149
          http://sourceforge.net/p/firebird/code/61149
Author:   firebirds
Date:     2015-03-30 00:11:49 +0000 (Mon, 30 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-29 22:32:25 UTC (rev 61148)
+++ firebird/trunk/ChangeLog	2015-03-30 00:11:49 UTC (rev 61149)
@@ -1,3 +1,52 @@
+ 2015-03-29 19:25  mapopa 
+   M builds/install/posix-common/posixLibrary.sh.in
+Cleanup editors battle comment
+
+ 2015-03-29 19:11  mapopa 
+   M builds/install/posix-common/preinstall.sh.in
+Cleanup preinstall script
+
+ 2015-03-29 18:19  mapopa 
+   M builds/posix/Makefile.in
+Cleanup comments gds*f and gds*ada header files are in the old cvs tree
+
+ 2015-03-29 18:08  mapopa 
+   M builds/posix/Makefile.in
+Cleanup old comments, GDSLIB_OBJECTS are no more
+
+ 2015-03-29 16:44  mapopa 
+   M extern/editline/ChangeLog
+   M extern/editline/src/chared.c
+   M extern/editline/src/chared.h
+   M extern/editline/src/chartype.c
+   M extern/editline/src/chartype.h
+   M extern/editline/src/el.c
+   M extern/editline/src/eln.c
+   M extern/editline/src/filecomplete.c
+   M extern/editline/src/hist.h
+   M extern/editline/src/histedit.h
+   M extern/editline/src/history.c
+   M extern/editline/src/map.c
+   M extern/editline/src/map.h
+   M extern/editline/src/parse.c
+   M extern/editline/src/read.c
+   M extern/editline/src/readline.c
+   M extern/editline/src/tty.c
+   M extern/editline/src/tty.h
+   M extern/editline/src/unvis.c
+   M extern/editline/src/vi.c
+   M extern/editline/src/vis.c
+   M extern/editline/src/vis.h
+Update libedit
+
+ 2015-03-29 15:07  alexpeshkoff 
+   M src/isql/isql.epp
+Fixed CORE-4719:  Message "Statement failed, SQLSTATE = 00000 + unknown ISC error 0" appears when issuing REVOKE ALL ON ALL FROM <existing_user>
+
+ 2015-03-29 12:01  mapopa 
+   M src/include/fb_types.h
+cleanup comments : old bad SCHAR definition
+
  2015-03-28 15:02  mapopa 
    M builds/posix/Makefile.in
 Cleanup comments
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-29 22:32:25 UTC (rev 61148)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-30 00:11:49 UTC (rev 61149)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31749
+  FORMAL BUILD NUMBER:31756
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31749"
-#define FILE_VER_STRING "WI-T3.0.0.31749"
-#define LICENSE_VER_STRING "WI-T3.0.0.31749"
-#define FILE_VER_NUMBER 3, 0, 0, 31749
+#define PRODUCT_VER_STRING "3.0.0.31756"
+#define FILE_VER_STRING "WI-T3.0.0.31756"
+#define LICENSE_VER_STRING "WI-T3.0.0.31756"
+#define FILE_VER_NUMBER 3, 0, 0, 31756
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31749"
+#define FB_BUILD_NO "31756"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-29 22:32:25 UTC (rev 61148)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-30 00:11:49 UTC (rev 61149)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31749
+BuildNum=31756
 
 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...> - 2015-03-30 11:12:29
       | 
| Revision: 61155
          http://sourceforge.net/p/firebird/code/61155
Author:   alexpeshkoff
Date:     2015-03-30 11:12:27 +0000 (Mon, 30 Mar 2015)
Log Message:
-----------
Added check for SOCK_CLOEXEC
Modified Paths:
--------------
    firebird/trunk/configure.ac
    firebird/trunk/src/remote/inet.cpp
Modified: firebird/trunk/configure.ac
===================================================================
--- firebird/trunk/configure.ac	2015-03-30 10:39:06 UTC (rev 61154)
+++ firebird/trunk/configure.ac	2015-03-30 11:12:27 UTC (rev 61155)
@@ -726,7 +726,6 @@
 AC_CHECK_HEADERS(aio.h)
 AC_CHECK_HEADERS(mntent.h mnttab.h sys/mntent.h sys/mnttab.h)
 AC_CHECK_HEADERS(sys/ipc.h sys/file.h)
-AC_CHECK_HEADERS(socket.h sys/socket.h sys/sockio.h winsock2.h)
 AC_CHECK_HEADERS(sys/resource.h)
 AC_CHECK_HEADERS(sys/sem.h)
 AC_CHECK_HEADERS(semaphore.h)
@@ -739,6 +738,22 @@
 AC_CHECK_HEADERS(libio.h)
 AC_CHECK_HEADERS(linux/falloc.h)
 
+AC_CHECK_HEADERS(socket.h sys/socket.h sys/sockio.h winsock2.h)
+AC_CHECK_DECLS(SOCK_CLOEXEC,,,[[
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_SOCKET_H
+#include <socket.h>
+#endif
+#ifdef HAVE_SYS_SOCKIO_H
+#include <sys/sockio.h>
+#endif
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+]])
+
 dnl check for compression
 if test "$COMPRESSION" = "Y"; then
 	AC_CHECK_HEADERS(zlib.h,,AC_MSG_ERROR(zlib header not found - please install development zlib package))
Modified: firebird/trunk/src/remote/inet.cpp
===================================================================
--- firebird/trunk/src/remote/inet.cpp	2015-03-30 10:39:06 UTC (rev 61154)
+++ firebird/trunk/src/remote/inet.cpp	2015-03-30 11:12:27 UTC (rev 61155)
@@ -3058,11 +3058,13 @@
 	return ::socket(domain, type, protocol);
 #else
 	int fd;
+#if HAVE_DECL_SOCK_CLOEXEC
 	do {
 		fd = ::socket(domain, type | SOCK_CLOEXEC, protocol);
 	} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
 
 	if (fd < 0 && errno == EINVAL)	// probably O_CLOEXEC not accepted
+#endif
 	{
 		do {
 			fd = ::socket(domain, type, protocol);
@@ -3081,20 +3083,18 @@
 	return ::accept(sockfd, addr, addrlen);
 #else
 	int fd;
-#ifdef HAVE_ACCEPT4
+#if defined(HAVE_ACCEPT4) && HAVE_DECL_SOCK_CLOEXEC
 	do {
 		fd = ::accept4(sockfd, addr, addrlen, SOCK_CLOEXEC);
 	} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
 
 	if (fd < 0 && errno == EINVAL)	// probably O_CLOEXEC not accepted
+#endif
 	{
-#endif
 		do {
 			fd = ::accept(sockfd, addr, addrlen);
 		} while (fd < 0 && SYSCALL_INTERRUPTED(errno));
-#ifdef HAVE_ACCEPT4
 	}
-#endif
 
 	setCloseOnExec(fd);
 	return fd;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ego...@us...> - 2015-03-30 14:34:35
       | 
| Revision: 61162
          http://sourceforge.net/p/firebird/code/61162
Author:   egorpugin
Date:     2015-03-30 14:34:28 +0000 (Mon, 30 Mar 2015)
Log Message:
-----------
[build] [cmake] Search for accept4 and SOCK_CLOEXEC symbols during configuration step.
Modified Paths:
--------------
    firebird/trunk/builds/cmake/Configure.cmake
    firebird/trunk/src/include/gen/autoconfig.h.in
Modified: firebird/trunk/builds/cmake/Configure.cmake
===================================================================
--- firebird/trunk/builds/cmake/Configure.cmake	2015-03-30 13:49:30 UTC (rev 61161)
+++ firebird/trunk/builds/cmake/Configure.cmake	2015-03-30 14:34:28 UTC (rev 61162)
@@ -47,7 +47,20 @@
 endfunction(check_type_alignment)
 
 #######################################
+# FUNCTION check_symbol
+#######################################
+function(check_symbol symbol var)
+    foreach(f ${ARGN})
+        if (NOT ${var})
+            unset(${var} CACHE)
+            message(STATUS "Looking for ${symbol} - ${f}")
+            check_symbol_exists(${symbol} ${f} ${var})
+        endif()
+    endforeach()
+endfunction(check_symbol)
 
+#######################################
+
 include(CheckCSourceCompiles)
 include(CheckCSourceRuns)
 include(CheckCXXSourceCompiles)
@@ -181,6 +194,7 @@
 #fi
 
 set(functions_list
+    accept4
     AO_compare_and_swap_full
     clock_gettime
     dirname
@@ -259,6 +273,7 @@
 test_big_endian(WORDS_BIGENDIAN)
 check_symbol_exists(INFINITY math.h HAVE_INFINITY)
 check_symbol_exists(va_copy stdarg.h HAVE_VA_COPY)
+check_symbol(SOCK_CLOEXEC HAVE_DECL_SOCK_CLOEXEC socket.h sys/socket.h)
 
 set(CMAKE_EXTRA_INCLUDE_FILES Windows.h)
 check_type_size("char[MAX_PATH]" MAXPATHLEN)
Modified: firebird/trunk/src/include/gen/autoconfig.h.in
===================================================================
--- firebird/trunk/src/include/gen/autoconfig.h.in	2015-03-30 13:49:30 UTC (rev 61161)
+++ firebird/trunk/src/include/gen/autoconfig.h.in	2015-03-30 14:34:28 UTC (rev 61162)
@@ -393,6 +393,9 @@
  * Functions
  *
  ******************************************************************************/
+ 
+/* Define to 1 if you have the `accept4' function. */
+#cmakedefine HAVE_ACCEPT4 1
 
 /* Define to 1 if you have the `AO_compare_and_swap_full' function. */
 #cmakedefine HAVE_AO_COMPARE_AND_SWAP_FULL 1
@@ -624,6 +627,9 @@
 /* Define this if va_copy() is defined in stdarg.h */
 #cmakedefine HAVE_VA_COPY 1
 
+/* Define this if SOCK_CLOEXEC is defined in socket.h */
+#cmakedefine HAVE_DECL_SOCK_CLOEXEC 1
+
 /* Number of bits in a file offset, on hosts where this is settable. */
 #cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-03-31 00:14:45
       | 
| Revision: 61176
          http://sourceforge.net/p/firebird/code/61176
Author:   firebirds
Date:     2015-03-31 00:14:42 +0000 (Tue, 31 Mar 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-30 20:18:18 UTC (rev 61175)
+++ firebird/trunk/ChangeLog	2015-03-31 00:14:42 UTC (rev 61176)
@@ -1,3 +1,34 @@
+ 2015-03-30 17:39  alexpeshkoff 
+   M src/common/unicode_util.cpp
+Fixed CORE-4583: FB 3 embedded tries to load ICU DLLs from PATH folders
+
+ 2015-03-30 14:35  egorpugin 
+   M src/jrd/jrd.cpp
+[build] Fix duplicate symbol error on AppleClang while building for iOS.
+
+ 2015-03-30 14:34  egorpugin 
+   M builds/cmake/Configure.cmake
+   M src/include/gen/autoconfig.h.in
+[build] [cmake] Search for accept4 and SOCK_CLOEXEC symbols during configuration step.
+
+ 2015-03-30 13:49  alexpeshkoff 
+   M src/auth/SecurityDatabase/LegacyServer.cpp
+Fixed CORE-4712: Messages "Error in isc_release_request() ... when working with legacy security database" appear in firebird.log for CLASSIC server when connecting with legacy auth
+
+ 2015-03-30 12:03  alexpeshkoff 
+   M src/common/isc_s_proto.h
+   M src/common/isc_sync.cpp
+Fixed compilation on Mac
+
+ 2015-03-30 11:12  alexpeshkoff 
+   M configure.ac
+   M src/remote/inet.cpp
+Added check for SOCK_CLOEXEC
+
+ 2015-03-30 09:34  alexpeshkoff 
+   M src/remote/inet.cpp
+Use better flag name for sockets
+
  2015-03-29 19:25  mapopa 
    M builds/install/posix-common/posixLibrary.sh.in
 Cleanup editors battle comment
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-30 20:18:18 UTC (rev 61175)
+++ firebird/trunk/src/jrd/build_no.h	2015-03-31 00:14:42 UTC (rev 61176)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31756
+  FORMAL BUILD NUMBER:31763
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31756"
-#define FILE_VER_STRING "WI-T3.0.0.31756"
-#define LICENSE_VER_STRING "WI-T3.0.0.31756"
-#define FILE_VER_NUMBER 3, 0, 0, 31756
+#define PRODUCT_VER_STRING "3.0.0.31763"
+#define FILE_VER_STRING "WI-T3.0.0.31763"
+#define LICENSE_VER_STRING "WI-T3.0.0.31763"
+#define FILE_VER_NUMBER 3, 0, 0, 31763
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31756"
+#define FB_BUILD_NO "31763"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-30 20:18:18 UTC (rev 61175)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-03-31 00:14:42 UTC (rev 61176)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31756
+BuildNum=31763
 
 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...> - 2015-03-31 02:10:45
       | 
| Revision: 61178
          http://sourceforge.net/p/firebird/code/61178
Author:   robocop
Date:     2015-03-31 02:10:38 +0000 (Tue, 31 Mar 2015)
Log Message:
-----------
Misc.
Modified Paths:
--------------
    firebird/trunk/doc/sql.extensions/README.regr_functions.txt
    firebird/trunk/src/common/StatusHolder.h
    firebird/trunk/src/common/unicode_util.cpp
    firebird/trunk/src/isql/isql.epp
Modified: firebird/trunk/doc/sql.extensions/README.regr_functions.txt
===================================================================
--- firebird/trunk/doc/sql.extensions/README.regr_functions.txt	2015-03-31 00:21:15 UTC (rev 61177)
+++ firebird/trunk/doc/sql.extensions/README.regr_functions.txt	2015-03-31 02:10:38 UTC (rev 61178)
@@ -11,7 +11,7 @@
     <function name> := { REGR_AVGX | REGR_AVGY | REGR_COUNT | REGR_INTERCEPT |
                          REGR_R2 | REGR_SLOPE | REGR_SXX | REGR_SXY | REGR_SYY }
 
-Formula use bellow variable.
+Formula use below variable.
 
 Y: <expr1> (<expr1> IS NOT NULL AND <expr2> IS NOT NULL).
 X: <expr2> (<expr1> IS NOT NULL AND <expr2> IS NOT NULL).
Modified: firebird/trunk/src/common/StatusHolder.h
===================================================================
--- firebird/trunk/src/common/StatusHolder.h	2015-03-31 00:21:15 UTC (rev 61177)
+++ firebird/trunk/src/common/StatusHolder.h	2015-03-31 02:10:38 UTC (rev 61178)
@@ -124,7 +124,7 @@
 		return SimpleStatusVector<S>::begin();
 	}
 
-	const unsigned length() const
+	unsigned length() const
 	{
 		return SimpleStatusVector<S>::getCount();
 	}
Modified: firebird/trunk/src/common/unicode_util.cpp
===================================================================
--- firebird/trunk/src/common/unicode_util.cpp	2015-03-31 00:21:15 UTC (rev 61177)
+++ firebird/trunk/src/common/unicode_util.cpp	2015-03-31 02:10:38 UTC (rev 61178)
@@ -1131,7 +1131,7 @@
 		if ((convIcu = ImplementConversionICU::create(favMaj, favMin)))
 			return *convIcu;
 	}
-	catch (const Exception& ex)
+	catch (const Exception&)
 	{ }
 
 	// Do a regular search
Modified: firebird/trunk/src/isql/isql.epp
===================================================================
--- firebird/trunk/src/isql/isql.epp	2015-03-31 00:21:15 UTC (rev 61177)
+++ firebird/trunk/src/isql/isql.epp	2015-03-31 02:10:38 UTC (rev 61178)
@@ -8214,11 +8214,11 @@
 			if (!setValues.global_Cols.find(var.alias, &pad[i]) && setValues.global_Col_default)
 				pad[i] = setValues.global_Col_default;
 			disp_length = pad[i];
+
+			if (var.charSet == 4)
+				disp_length *= 4;
 		}
 
-		if ((type == SQL_TEXT || type == SQL_VARYING) && var.charSet == 4)
-			disp_length *= 4;
-
 		// The total line length
 		linelength += disp_length + 1;
 	}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-04-01 00:14:08
       | 
| Revision: 61194
          http://sourceforge.net/p/firebird/code/61194
Author:   firebirds
Date:     2015-04-01 00:14:05 +0000 (Wed, 01 Apr 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-03-31 21:47:59 UTC (rev 61193)
+++ firebird/trunk/ChangeLog	2015-04-01 00:14:05 UTC (rev 61194)
@@ -1,3 +1,22 @@
+ 2015-03-31 17:22  alexpeshkoff 
+   M src/include/gen/ids.h
+   M src/jrd/Monitoring.cpp
+   M src/jrd/fields.h
+   M src/jrd/names.h
+   M src/jrd/relations.h
+Fixed CORE-4729: Add a flag to mon$database helping to decide what type of security database is used - default, self or other
+
+ 2015-03-31 09:57  mapopa 
+   M src/common/common.h
+Comments cleanup
+
+ 2015-03-31 02:10  robocop 
+   M doc/sql.extensions/README.regr_functions.txt
+   M src/common/StatusHolder.h
+   M src/common/unicode_util.cpp
+   M src/isql/isql.epp
+Misc.
+
  2015-03-30 17:39  alexpeshkoff 
    M src/common/unicode_util.cpp
 Fixed CORE-4583: FB 3 embedded tries to load ICU DLLs from PATH folders
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-03-31 21:47:59 UTC (rev 61193)
+++ firebird/trunk/src/jrd/build_no.h	2015-04-01 00:14:05 UTC (rev 61194)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31763
+  FORMAL BUILD NUMBER:31766
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31763"
-#define FILE_VER_STRING "WI-T3.0.0.31763"
-#define LICENSE_VER_STRING "WI-T3.0.0.31763"
-#define FILE_VER_NUMBER 3, 0, 0, 31763
+#define PRODUCT_VER_STRING "3.0.0.31766"
+#define FILE_VER_STRING "WI-T3.0.0.31766"
+#define LICENSE_VER_STRING "WI-T3.0.0.31766"
+#define FILE_VER_NUMBER 3, 0, 0, 31766
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31763"
+#define FB_BUILD_NO "31766"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-03-31 21:47:59 UTC (rev 61193)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-04-01 00:14:05 UTC (rev 61194)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31763
+BuildNum=31766
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-04-02 00:14:21
       | 
| Revision: 61203
          http://sourceforge.net/p/firebird/code/61203
Author:   firebirds
Date:     2015-04-02 00:14:14 +0000 (Thu, 02 Apr 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-04-01 20:15:41 UTC (rev 61202)
+++ firebird/trunk/ChangeLog	2015-04-02 00:14:14 UTC (rev 61203)
@@ -1,3 +1,7 @@
+ 2015-04-01 15:10  alexpeshkoff 
+   M src/jrd/vio.cpp
+Fixes assertion in DFW, caused by uninitialized descriptor
+
  2015-03-31 17:22  alexpeshkoff 
    M src/include/gen/ids.h
    M src/jrd/Monitoring.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-04-01 20:15:41 UTC (rev 61202)
+++ firebird/trunk/src/jrd/build_no.h	2015-04-02 00:14:14 UTC (rev 61203)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31766
+  FORMAL BUILD NUMBER:31767
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31766"
-#define FILE_VER_STRING "WI-T3.0.0.31766"
-#define LICENSE_VER_STRING "WI-T3.0.0.31766"
-#define FILE_VER_NUMBER 3, 0, 0, 31766
+#define PRODUCT_VER_STRING "3.0.0.31767"
+#define FILE_VER_STRING "WI-T3.0.0.31767"
+#define LICENSE_VER_STRING "WI-T3.0.0.31767"
+#define FILE_VER_NUMBER 3, 0, 0, 31767
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31766"
+#define FB_BUILD_NO "31767"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-04-01 20:15:41 UTC (rev 61202)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-04-02 00:14:14 UTC (rev 61203)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31766
+BuildNum=31767
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <asf...@us...> - 2015-04-02 02:26:54
       | 
| Revision: 61204
          http://sourceforge.net/p/firebird/code/61204
Author:   asfernandes
Date:     2015-04-02 02:26:46 +0000 (Thu, 02 Apr 2015)
Log Message:
-----------
Changes related to CORE-1180: change syntax and semantics to the standard SQL, and also manage RDB$RELATION_CONSTRAINTS records correctly.
Modified Paths:
--------------
    firebird/trunk/doc/sql.extensions/README.ddl.txt
    firebird/trunk/src/dsql/DdlNodes.epp
    firebird/trunk/src/dsql/parse.y
Modified: firebird/trunk/doc/sql.extensions/README.ddl.txt
===================================================================
--- firebird/trunk/doc/sql.extensions/README.ddl.txt	2015-04-02 00:14:14 UTC (rev 61203)
+++ firebird/trunk/doc/sql.extensions/README.ddl.txt	2015-04-02 02:26:46 UTC (rev 61204)
@@ -357,9 +357,9 @@
 
 Nullability of a table field or a domain can now be changed with the ALTER command. Syntax:
 
-ALTER TABLE <table name> ALTER <field name> [NOT] NULL
+ALTER TABLE <table name> ALTER <field name> {DROP | SET} NOT NULL
 
-ALTER DOMAIN <domain name> [NOT] NULL
+ALTER DOMAIN <domain name> {DROP | SET} NOT NULL
 
 A change in a table from NULL to NOT NULL is subject to a full data validation on the table.
 A change in a domain changes and validates all the tables using the domain.
Modified: firebird/trunk/src/dsql/DdlNodes.epp
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.epp	2015-04-02 00:14:14 UTC (rev 61203)
+++ firebird/trunk/src/dsql/DdlNodes.epp	2015-04-02 02:26:46 UTC (rev 61204)
@@ -7159,10 +7159,6 @@
 					const AlterColNullClause* clause =
 						static_cast<const AlterColNullClause*>(i->getObject());
 
-					//// FIXME: This clause allows inconsistencies like setting a field with a
-					//// not null CONSTRAINT as nullable, or setting a field based on a not null
-					//// domain as nullable (while ISQL shows it as not null).
-
 					AutoRequest request;
 					bool found = false;
 
@@ -7174,13 +7170,44 @@
 						found = true;
 
 						MODIFY RFL
+						{
 							if (!clause->notNullFlag && !RFL.RDB$GENERATOR_NAME.NULL)
 							{
 								// msg 274: Identity column @1 of table @2 cannot be changed to NULLable
 								status_exception::raise(Arg::PrivateDyn(274) << clause->name << name);
 							}
 
-							RFL.RDB$NULL_FLAG = SSHORT(clause->notNullFlag);
+							if (clause->notNullFlag)
+							{
+								RFL.RDB$NULL_FLAG.NULL = FALSE;
+								RFL.RDB$NULL_FLAG = TRUE;
+
+								Constraint nullConstraint(*tdbb->getDefaultPool());
+								nullConstraint.type = Constraint::TYPE_NOT_NULL;
+								nullConstraint.columns.add(clause->name);
+								defineConstraint(tdbb, dsqlScratch, transaction, nullConstraint);
+							}
+							else
+							{
+								RFL.RDB$NULL_FLAG.NULL = TRUE;
+
+								AutoRequest request2;
+
+								FOR(REQUEST_HANDLE request2 TRANSACTION_HANDLE transaction)
+									RCL IN RDB$RELATION_CONSTRAINTS CROSS
+									CHK IN RDB$CHECK_CONSTRAINTS
+									WITH RCL.RDB$RELATION_NAME EQ name.c_str() AND
+										 RCL.RDB$CONSTRAINT_TYPE EQ NOT_NULL_CNSTRT AND
+										 CHK.RDB$CONSTRAINT_NAME EQ RCL.RDB$CONSTRAINT_NAME AND
+										 CHK.RDB$TRIGGER_NAME EQ clause->name.c_str()
+								{
+									// ASF: Record in RDB$CHECK_CONSTRAINTS is deleted by a
+									// system trigger.
+									ERASE RCL;
+								}
+								END_FOR
+							}
+						}
 						END_MODIFY
 					}
 					END_FOR
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y	2015-04-02 00:14:14 UTC (rev 61203)
+++ firebird/trunk/src/dsql/parse.y	2015-04-02 02:26:46 UTC (rev 61204)
@@ -3647,10 +3647,10 @@
 		{ setClause($alterDomainNode->dropDefault, "DOMAIN DROP DEFAULT"); }
 	| DROP CONSTRAINT
 		{ setClause($alterDomainNode->dropConstraint, "DOMAIN DROP CONSTRAINT"); }
-	| KW_NULL
-		{ setClause($alterDomainNode->notNullFlag, "[NOT] NULL", false); }
-	| NOT KW_NULL
-		{ setClause($alterDomainNode->notNullFlag, "[NOT] NULL", true); }
+	| DROP NOT KW_NULL
+		{ setClause($alterDomainNode->notNullFlag, "{SET | DROP} NOT NULL", false); }
+	| SET NOT KW_NULL
+		{ setClause($alterDomainNode->notNullFlag, "{SET | DROP} NOT NULL", true); }
 	| TO symbol_column_name
 		{ setClause($alterDomainNode->renameTo, "DOMAIN NAME", *$2); }
 	| KW_TYPE non_array_type
@@ -3700,14 +3700,14 @@
 			clause->toName = *$4;
 			$relationNode->clauses.add(clause);
 		}
-	| col_opt alter_column_name KW_NULL
+	| col_opt alter_column_name DROP NOT KW_NULL
 		{
 			RelationNode::AlterColNullClause* clause = newNode<RelationNode::AlterColNullClause>();
 			clause->name = *$2;
 			clause->notNullFlag = false;
 			$relationNode->clauses.add(clause);
 		}
-	| col_opt alter_column_name NOT KW_NULL
+	| col_opt alter_column_name SET NOT KW_NULL
 		{
 			RelationNode::AlterColNullClause* clause = newNode<RelationNode::AlterColNullClause>();
 			clause->name = *$2;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-04-03 00:14:12
       | 
| Revision: 61218
          http://sourceforge.net/p/firebird/code/61218
Author:   firebirds
Date:     2015-04-03 00:14:05 +0000 (Fri, 03 Apr 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-04-02 20:51:42 UTC (rev 61217)
+++ firebird/trunk/ChangeLog	2015-04-03 00:14:05 UTC (rev 61218)
@@ -1,3 +1,9 @@
+ 2015-04-02 02:26  asfernandes 
+   M doc/sql.extensions/README.ddl.txt
+   M src/dsql/DdlNodes.epp
+   M src/dsql/parse.y
+Changes related to CORE-1180: change syntax and semantics to the standard SQL, and also manage RDB$RELATION_CONSTRAINTS records correctly.
+
  2015-04-01 15:10  alexpeshkoff 
    M src/jrd/vio.cpp
 Fixes assertion in DFW, caused by uninitialized descriptor
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-04-02 20:51:42 UTC (rev 61217)
+++ firebird/trunk/src/jrd/build_no.h	2015-04-03 00:14:05 UTC (rev 61218)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31767
+  FORMAL BUILD NUMBER:31768
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31767"
-#define FILE_VER_STRING "WI-T3.0.0.31767"
-#define LICENSE_VER_STRING "WI-T3.0.0.31767"
-#define FILE_VER_NUMBER 3, 0, 0, 31767
+#define PRODUCT_VER_STRING "3.0.0.31768"
+#define FILE_VER_STRING "WI-T3.0.0.31768"
+#define LICENSE_VER_STRING "WI-T3.0.0.31768"
+#define FILE_VER_NUMBER 3, 0, 0, 31768
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31767"
+#define FB_BUILD_NO "31768"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-04-02 20:51:42 UTC (rev 61217)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-04-03 00:14:05 UTC (rev 61218)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31767
+BuildNum=31768
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <asf...@us...> - 2015-04-03 01:31:22
       | 
| Revision: 61219
          http://sourceforge.net/p/firebird/code/61219
Author:   asfernandes
Date:     2015-04-03 01:31:15 +0000 (Fri, 03 Apr 2015)
Log Message:
-----------
Fixed (again) CORE-3373 - It is possible to store string with lenght 31 chars into column varchar(25).
Modified Paths:
--------------
    firebird/trunk/doc/WhatsNew
    firebird/trunk/src/jrd/intl.cpp
Modified: firebird/trunk/doc/WhatsNew
===================================================================
--- firebird/trunk/doc/WhatsNew	2015-04-03 00:14:05 UTC (rev 61218)
+++ firebird/trunk/doc/WhatsNew	2015-04-03 01:31:15 UTC (rev 61219)
@@ -231,6 +231,11 @@
       Contributor(s):
         Alex Peshkov <peshkoff at mail.ru>
 
+    * Bugfix CORE-3373
+        It is possible to store string with lenght 31 chars into column VARCHAR(25)
+      Contributor(s):
+        Adriano dos Santos Fernandes <adrianosf at gmail.com>
+
     * Bugfix CORE-2848
         Page-level "lock conversion denied" or "lock denied" errors
       Contributor(s):
@@ -1512,11 +1517,6 @@
       Contributor(s):
         Adriano dos Santos Fernandes <adrianosf at gmail.com>
 
-    * Bugfix CORE-3373
-        It is possible to store string with lenght 31 chars into column VARCHAR(25)
-      Contributor(s):
-        Adriano dos Santos Fernandes <adrianosf at gmail.com>
-
     * Bugfix CORE-3338
         Regression: code changes disabled support for expression indexes with COALESCE, CASE and DECODE
       Contributor(s):
Modified: firebird/trunk/src/jrd/intl.cpp
===================================================================
--- firebird/trunk/src/jrd/intl.cpp	2015-04-03 00:14:05 UTC (rev 61218)
+++ firebird/trunk/src/jrd/intl.cpp	2015-04-03 01:31:15 UTC (rev 61219)
@@ -955,7 +955,6 @@
 
 	if (toCharSet->isMultiByte() &&
 		!(toCharSet->getFlags() & CHARSET_LEGACY_SEMANTICS) &&
-		toLength != 31 &&	// allow non CHARSET_LEGACY_SEMANTICS to be used as connection charset
 		src_len > dest_len)
 	{
 		err(Arg::Gds(isc_arith_except) << Arg::Gds(isc_string_truncation) <<
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <fir...@us...> - 2015-04-04 00:13:15
       | 
| Revision: 61232
          http://sourceforge.net/p/firebird/code/61232
Author:   firebirds
Date:     2015-04-04 00:13:08 +0000 (Sat, 04 Apr 2015)
Log Message:
-----------
nightly update
Modified Paths:
--------------
    firebird/trunk/ChangeLog
    firebird/trunk/src/jrd/build_no.h
    firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog	2015-04-03 19:25:32 UTC (rev 61231)
+++ firebird/trunk/ChangeLog	2015-04-04 00:13:08 UTC (rev 61232)
@@ -1,3 +1,16 @@
+ 2015-04-03 10:25  mapopa 
+   D extern/btyacc/makefile.dos
+Dos file not needed
+
+ 2015-04-03 03:07  asfernandes 
+   M doc/WhatsNew
+Misc.
+
+ 2015-04-03 01:31  asfernandes 
+   M doc/WhatsNew
+   M src/jrd/intl.cpp
+Fixed (again) CORE-3373 - It is possible to store string with lenght 31 chars into column varchar(25).
+
  2015-04-02 02:26  asfernandes 
    M doc/sql.extensions/README.ddl.txt
    M src/dsql/DdlNodes.epp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h	2015-04-03 19:25:32 UTC (rev 61231)
+++ firebird/trunk/src/jrd/build_no.h	2015-04-04 00:13:08 UTC (rev 61232)
@@ -3,16 +3,16 @@
                *** DO NOT EDIT ***
   TO CHANGE ANY INFORMATION IN HERE PLEASE
   EDIT src/misc/writeBuildNum.sh
-  FORMAL BUILD NUMBER:31768
+  FORMAL BUILD NUMBER:31771
 */
 
-#define PRODUCT_VER_STRING "3.0.0.31768"
-#define FILE_VER_STRING "WI-T3.0.0.31768"
-#define LICENSE_VER_STRING "WI-T3.0.0.31768"
-#define FILE_VER_NUMBER 3, 0, 0, 31768
+#define PRODUCT_VER_STRING "3.0.0.31771"
+#define FILE_VER_STRING "WI-T3.0.0.31771"
+#define LICENSE_VER_STRING "WI-T3.0.0.31771"
+#define FILE_VER_NUMBER 3, 0, 0, 31771
 #define FB_MAJOR_VER "3"
 #define FB_MINOR_VER "0"
 #define FB_REV_NO "0"
-#define FB_BUILD_NO "31768"
+#define FB_BUILD_NO "31771"
 #define FB_BUILD_TYPE "T"
 #define FB_BUILD_SUFFIX "Firebird 3.0 Beta 2"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh	2015-04-03 19:25:32 UTC (rev 61231)
+++ firebird/trunk/src/misc/writeBuildNum.sh	2015-04-04 00:13:08 UTC (rev 61232)
@@ -9,7 +9,7 @@
 MajorVer=3
 MinorVer=0
 RevNo=0
-BuildNum=31768
+BuildNum=31771
 
 NowAt=`pwd`
 cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |