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