|
From: <asf...@us...> - 2010-08-09 15:49:01
|
Revision: 51418
http://firebird.svn.sourceforge.net/firebird/?rev=51418&view=rev
Author: asfernandes
Date: 2010-08-09 15:48:51 +0000 (Mon, 09 Aug 2010)
Log Message:
-----------
Const correction for EVL, EXE and they subsystems. Adjustments to CMP and OPT.
Modified Paths:
--------------
firebird/trunk/builds/win32/msvc10/common.vcxproj
firebird/trunk/builds/win32/msvc10/common.vcxproj.filters
firebird/trunk/builds/win32/msvc10/common_classic.vcxproj
firebird/trunk/builds/win32/msvc10/common_classic.vcxproj.filters
firebird/trunk/builds/win32/msvc10/common_static.vcxproj
firebird/trunk/builds/win32/msvc10/common_static.vcxproj.filters
firebird/trunk/builds/win32/msvc8/common.vcproj
firebird/trunk/builds/win32/msvc8/common_classic.vcproj
firebird/trunk/builds/win32/msvc8/common_static.vcproj
firebird/trunk/builds/win32/msvc9/common.vcproj
firebird/trunk/builds/win32/msvc9/common_classic.vcproj
firebird/trunk/builds/win32/msvc9/common_static.vcproj
firebird/trunk/src/dsql/AggNodes.cpp
firebird/trunk/src/dsql/AggNodes.h
firebird/trunk/src/dsql/ExprNodes.cpp
firebird/trunk/src/dsql/ExprNodes.h
firebird/trunk/src/dsql/Nodes.h
firebird/trunk/src/dsql/StmtNodes.cpp
firebird/trunk/src/dsql/StmtNodes.h
firebird/trunk/src/dsql/WinNodes.cpp
firebird/trunk/src/dsql/WinNodes.h
firebird/trunk/src/jrd/ExtEngineManager.cpp
firebird/trunk/src/jrd/ExtEngineManager.h
firebird/trunk/src/jrd/Function.epp
firebird/trunk/src/jrd/Function.h
firebird/trunk/src/jrd/Optimizer.cpp
firebird/trunk/src/jrd/Optimizer.h
firebird/trunk/src/jrd/SysFunction.cpp
firebird/trunk/src/jrd/SysFunction.h
firebird/trunk/src/jrd/blb.cpp
firebird/trunk/src/jrd/blb_proto.h
firebird/trunk/src/jrd/btr.cpp
firebird/trunk/src/jrd/btr_proto.h
firebird/trunk/src/jrd/cmp.cpp
firebird/trunk/src/jrd/evl.cpp
firebird/trunk/src/jrd/evl_proto.h
firebird/trunk/src/jrd/exe.cpp
firebird/trunk/src/jrd/exe.h
firebird/trunk/src/jrd/exe_proto.h
firebird/trunk/src/jrd/execute_statement.cpp
firebird/trunk/src/jrd/execute_statement.h
firebird/trunk/src/jrd/extds/ExtDS.cpp
firebird/trunk/src/jrd/extds/ExtDS.h
firebird/trunk/src/jrd/fun.epp
firebird/trunk/src/jrd/fun_proto.h
firebird/trunk/src/jrd/met.epp
firebird/trunk/src/jrd/opt.cpp
firebird/trunk/src/jrd/par.cpp
firebird/trunk/src/jrd/recsrc/AggregatedStream.cpp
firebird/trunk/src/jrd/recsrc/Cursor.cpp
firebird/trunk/src/jrd/recsrc/Cursor.h
firebird/trunk/src/jrd/recsrc/FilteredStream.cpp
firebird/trunk/src/jrd/recsrc/HashJoin.cpp
firebird/trunk/src/jrd/recsrc/MergeJoin.cpp
firebird/trunk/src/jrd/recsrc/ProcedureScan.cpp
firebird/trunk/src/jrd/recsrc/RecordSource.h
firebird/trunk/src/jrd/recsrc/RecursiveStream.cpp
firebird/trunk/src/jrd/recsrc/SortedStream.cpp
firebird/trunk/src/jrd/recsrc/Union.cpp
firebird/trunk/src/jrd/recsrc/WindowedStream.cpp
firebird/trunk/src/jrd/req.h
firebird/trunk/src/jrd/trace/TraceJrdHelpers.h
Added Paths:
-----------
firebird/trunk/src/common/classes/NestConst.h
Modified: firebird/trunk/builds/win32/msvc10/common.vcxproj
===================================================================
--- firebird/trunk/builds/win32/msvc10/common.vcxproj 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc10/common.vcxproj 2010-08-09 15:48:51 UTC (rev 51418)
@@ -199,6 +199,7 @@
<ClInclude Include="..\..\..\src\common\classes\GenericMap.h" />
<ClInclude Include="..\..\..\src\common\classes\MetaName.h" />
<ClInclude Include="..\..\..\src\common\classes\MsgPrint.h" />
+ <ClInclude Include="..\..\..\src\common\classes\NestConst.h" />
<ClInclude Include="..\..\..\src\common\classes\SafeArg.h" />
<ClInclude Include="..\..\..\src\common\StatusArg.h" />
<ClInclude Include="..\..\..\src\common\StatusHolder.h" />
Modified: firebird/trunk/builds/win32/msvc10/common.vcxproj.filters
===================================================================
--- firebird/trunk/builds/win32/msvc10/common.vcxproj.filters 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc10/common.vcxproj.filters 2010-08-09 15:48:51 UTC (rev 51418)
@@ -180,6 +180,9 @@
<ClInclude Include="..\..\..\src\common\classes\MsgPrint.h">
<Filter>Header files</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\src\common\classes\NestConst.h">
+ <Filter>Header files</Filter>
+ </ClInclude>
<ClInclude Include="..\..\..\src\common\classes\SafeArg.h">
<Filter>Header files</Filter>
</ClInclude>
Modified: firebird/trunk/builds/win32/msvc10/common_classic.vcxproj
===================================================================
--- firebird/trunk/builds/win32/msvc10/common_classic.vcxproj 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc10/common_classic.vcxproj 2010-08-09 15:48:51 UTC (rev 51418)
@@ -198,6 +198,7 @@
<ClInclude Include="..\..\..\src\common\classes\GenericMap.h" />
<ClInclude Include="..\..\..\src\common\classes\MetaName.h" />
<ClInclude Include="..\..\..\src\common\classes\MsgPrint.h" />
+ <ClInclude Include="..\..\..\src\common\classes\NestConst.h" />
<ClInclude Include="..\..\..\src\common\classes\SafeArg.h" />
<ClInclude Include="..\..\..\src\common\StatusArg.h" />
<ClInclude Include="..\..\..\src\common\StatusHolder.h" />
Modified: firebird/trunk/builds/win32/msvc10/common_classic.vcxproj.filters
===================================================================
--- firebird/trunk/builds/win32/msvc10/common_classic.vcxproj.filters 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc10/common_classic.vcxproj.filters 2010-08-09 15:48:51 UTC (rev 51418)
@@ -177,6 +177,9 @@
<ClInclude Include="..\..\..\src\common\classes\MsgPrint.h">
<Filter>Header files</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\src\common\classes\NestConst.h">
+ <Filter>Header files</Filter>
+ </ClInclude>
<ClInclude Include="..\..\..\src\common\classes\SafeArg.h">
<Filter>Header files</Filter>
</ClInclude>
Modified: firebird/trunk/builds/win32/msvc10/common_static.vcxproj
===================================================================
--- firebird/trunk/builds/win32/msvc10/common_static.vcxproj 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc10/common_static.vcxproj 2010-08-09 15:48:51 UTC (rev 51418)
@@ -193,6 +193,7 @@
<ClInclude Include="..\..\..\src\common\classes\init.h" />
<ClInclude Include="..\..\..\src\common\classes\MetaName.h" />
<ClInclude Include="..\..\..\src\common\classes\MsgPrint.h" />
+ <ClInclude Include="..\..\..\src\common\classes\NestConst.h" />
<ClInclude Include="..\..\..\src\common\classes\SafeArg.h" />
<ClInclude Include="..\..\..\src\common\StatusArg.h" />
<ClInclude Include="..\..\..\src\common\StatusHolder.h" />
Modified: firebird/trunk/builds/win32/msvc10/common_static.vcxproj.filters
===================================================================
--- firebird/trunk/builds/win32/msvc10/common_static.vcxproj.filters 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc10/common_static.vcxproj.filters 2010-08-09 15:48:51 UTC (rev 51418)
@@ -156,6 +156,9 @@
<ClInclude Include="..\..\..\src\common\classes\MsgPrint.h">
<Filter>Header files</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\src\common\classes\NestConst.h">
+ <Filter>Header files</Filter>
+ </ClInclude>
<ClInclude Include="..\..\..\src\common\classes\SafeArg.h">
<Filter>Header files</Filter>
</ClInclude>
Modified: firebird/trunk/builds/win32/msvc8/common.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc8/common.vcproj 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc8/common.vcproj 2010-08-09 15:48:51 UTC (rev 51418)
@@ -501,6 +501,10 @@
>
</File>
<File
+ RelativePath="..\..\..\src\common\classes\NestConst.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\common\classes\SafeArg.h"
>
</File>
Modified: firebird/trunk/builds/win32/msvc8/common_classic.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc8/common_classic.vcproj 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc8/common_classic.vcproj 2010-08-09 15:48:51 UTC (rev 51418)
@@ -497,6 +497,10 @@
>
</File>
<File
+ RelativePath="..\..\..\src\common\classes\NestConst.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\common\classes\SafeArg.h"
>
</File>
Modified: firebird/trunk/builds/win32/msvc8/common_static.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc8/common_static.vcproj 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc8/common_static.vcproj 2010-08-09 15:48:51 UTC (rev 51418)
@@ -470,6 +470,10 @@
>
</File>
<File
+ RelativePath="..\..\..\src\common\classes\NestConst.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\common\classes\SafeArg.h"
>
</File>
Modified: firebird/trunk/builds/win32/msvc9/common.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc9/common.vcproj 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc9/common.vcproj 2010-08-09 15:48:51 UTC (rev 51418)
@@ -502,6 +502,10 @@
>
</File>
<File
+ RelativePath="..\..\..\src\common\classes\NestConst.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\common\classes\SafeArg.h"
>
</File>
Modified: firebird/trunk/builds/win32/msvc9/common_classic.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc9/common_classic.vcproj 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc9/common_classic.vcproj 2010-08-09 15:48:51 UTC (rev 51418)
@@ -498,6 +498,10 @@
>
</File>
<File
+ RelativePath="..\..\..\src\common\classes\NestConst.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\common\classes\SafeArg.h"
>
</File>
Modified: firebird/trunk/builds/win32/msvc9/common_static.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc9/common_static.vcproj 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/builds/win32/msvc9/common_static.vcproj 2010-08-09 15:48:51 UTC (rev 51418)
@@ -471,6 +471,10 @@
>
</File>
<File
+ RelativePath="..\..\..\src\common\classes\NestConst.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\common\classes\SafeArg.h"
>
</File>
Added: firebird/trunk/src/common/classes/NestConst.h
===================================================================
--- firebird/trunk/src/common/classes/NestConst.h (rev 0)
+++ firebird/trunk/src/common/classes/NestConst.h 2010-08-09 15:48:51 UTC (rev 51418)
@@ -0,0 +1,52 @@
+/*
+ * The contents of this file are subject to the Initial
+ * Developer's Public License Version 1.0 (the "License");
+ * you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at
+ * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
+ *
+ * Software distributed under the License is distributed AS IS,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied.
+ * See the License for the specific language governing rights
+ * and limitations under the License.
+ *
+ * The Original Code was created by Adriano dos Santos Fernandes
+ * for the Firebird Open Source RDBMS project.
+ *
+ * Copyright (c) 2010 Adriano dos Santos Fernandes <adr...@gm...>
+ * and all contributors signed below.
+ *
+ * All Rights Reserved.
+ * Contributor(s): ______________________________________.
+ */
+
+#ifndef COMMON_NEST_CONST_H
+#define COMMON_NEST_CONST_H
+
+// Encloses a pointer to cascade parent object constness.
+template <typename T>
+class NestConst
+{
+public:
+ NestConst(T* aPtr = NULL)
+ : ptr(aPtr)
+ {
+ }
+
+ NestConst<T>& operator =(T* aPtr)
+ {
+ ptr = aPtr;
+ return *this;
+ }
+
+ operator T*() { return ptr; }
+ operator const T*() const { return ptr; }
+
+ T* operator ->() { return ptr; }
+ const T* operator ->() const { return ptr; }
+
+private:
+ T* ptr;
+};
+
+#endif // COMMON_NEST_CONST_H
Property changes on: firebird/trunk/src/common/classes/NestConst.h
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Modified: firebird/trunk/src/dsql/AggNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/AggNodes.cpp 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/dsql/AggNodes.cpp 2010-08-09 15:48:51 UTC (rev 51418)
@@ -553,7 +553,7 @@
}
}
-ExprNode* AvgAggNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* AvgAggNode::copy(thread_db* tdbb, NodeCopier& copier)
{
AvgAggNode* node = FB_NEW(*tdbb->getDefaultPool()) AvgAggNode(*tdbb->getDefaultPool(),
distinct, dialect1);
@@ -679,7 +679,7 @@
desc->makeBlob(desc->getBlobSubType(), desc->getTextType());
}
-ExprNode* ListAggNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* ListAggNode::copy(thread_db* tdbb, NodeCopier& copier)
{
ListAggNode* node = FB_NEW(*tdbb->getDefaultPool()) ListAggNode(*tdbb->getDefaultPool(),
distinct);
@@ -805,7 +805,7 @@
desc->dsc_flags = 0;
}
-ExprNode* CountAggNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* CountAggNode::copy(thread_db* tdbb, NodeCopier& copier)
{
CountAggNode* node = FB_NEW(*tdbb->getDefaultPool()) CountAggNode(*tdbb->getDefaultPool(),
distinct);
@@ -1040,7 +1040,7 @@
ERR_post(Arg::Gds(isc_datype_notsup)); // data type not supported for arithmetic
}
-ExprNode* SumAggNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* SumAggNode::copy(thread_db* tdbb, NodeCopier& copier)
{
SumAggNode* node = FB_NEW(*tdbb->getDefaultPool()) SumAggNode(*tdbb->getDefaultPool(),
distinct, dialect1);
@@ -1123,7 +1123,7 @@
CMP_get_desc(tdbb, csb, arg, desc);
}
-ExprNode* MaxMinAggNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* MaxMinAggNode::copy(thread_db* tdbb, NodeCopier& copier)
{
MaxMinAggNode* node = FB_NEW(*tdbb->getDefaultPool()) MaxMinAggNode(*tdbb->getDefaultPool(),
type);
Modified: firebird/trunk/src/dsql/AggNodes.h
===================================================================
--- firebird/trunk/src/dsql/AggNodes.h 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/dsql/AggNodes.h 2010-08-09 15:48:51 UTC (rev 51418)
@@ -39,7 +39,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual ExprNode* pass2(thread_db* tdbb, CompilerScratch* csb);
virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
@@ -65,7 +65,7 @@
virtual bool setParameterType(DsqlCompilerScratch* dsqlScratch,
dsql_nod* node, bool forceVarChar) const;
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual void checkOrderedWindowCapable() const
{
@@ -84,7 +84,7 @@
private:
dsql_nod* dsqlDelimiter;
- jrd_nod* delimiter;
+ NestConst<jrd_nod> delimiter;
};
class CountAggNode : public AggNode
@@ -97,7 +97,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void genBlr();
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
virtual void aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const;
@@ -116,7 +116,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
virtual void aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const;
@@ -141,7 +141,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
virtual void aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const;
Modified: firebird/trunk/src/dsql/ExprNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/ExprNodes.cpp 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/dsql/ExprNodes.cpp 2010-08-09 15:48:51 UTC (rev 51418)
@@ -57,9 +57,15 @@
reinterpret_cast<ExprNode*>(node->nod_arg[0]) : NULL;
}
-ExprNode* ExprNode::fromLegacy(const jrd_nod* node)
+const ExprNode* ExprNode::fromLegacy(const jrd_nod* node)
{
return node->nod_type == nod_class_exprnode_jrd ?
+ reinterpret_cast<const ExprNode*>(node->nod_arg[0]) : NULL;
+}
+
+ExprNode* ExprNode::fromLegacy(jrd_nod* node)
+{
+ return node->nod_type == nod_class_exprnode_jrd ?
reinterpret_cast<ExprNode*>(node->nod_arg[0]) : NULL;
}
@@ -111,14 +117,14 @@
ExprNode* ExprNode::pass1(thread_db* tdbb, CompilerScratch* csb)
{
- for (jrd_nod*** i = jrdChildNodes.begin(); i != jrdChildNodes.end(); ++i)
+ for (NestConst<jrd_nod>** i = jrdChildNodes.begin(); i != jrdChildNodes.end(); ++i)
**i = CMP_pass1(tdbb, csb, **i);
return this;
}
ExprNode* ExprNode::pass2(thread_db* tdbb, CompilerScratch* csb)
{
- for (jrd_nod*** i = jrdChildNodes.begin(); i != jrdChildNodes.end(); ++i)
+ for (NestConst<jrd_nod>** i = jrdChildNodes.begin(); i != jrdChildNodes.end(); ++i)
**i = CMP_pass2(tdbb, csb, **i, node);
return this;
}
@@ -127,7 +133,7 @@
{
bool ret = false;
- for (jrd_nod*** i = jrdChildNodes.begin(); i != jrdChildNodes.end(); ++i)
+ for (NestConst<jrd_nod>** i = jrdChildNodes.begin(); i != jrdChildNodes.end(); ++i)
ret |= visitor.visit(**i);
return ret;
@@ -203,7 +209,7 @@
DataTypeUtil(tdbb).makeConcatenate(desc, &desc1, &desc2);
}
-ExprNode* ConcatenateNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* ConcatenateNode::copy(thread_db* tdbb, NodeCopier& copier)
{
ConcatenateNode* node = FB_NEW(*tdbb->getDefaultPool()) ConcatenateNode(*tdbb->getDefaultPool());
node->arg1 = copier.copy(tdbb, arg1);
@@ -591,7 +597,7 @@
fb_assert(false);
}
-ExprNode* OverNode::copy(thread_db* /*tdbb*/, NodeCopier& /*copier*/) const
+ExprNode* OverNode::copy(thread_db* /*tdbb*/, NodeCopier& /*copier*/)
{
fb_assert(false);
return NULL;
@@ -687,7 +693,7 @@
CMP_get_desc(tdbb, csb, escape, &tempDesc);
}
-ExprNode* SubstringSimilarNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* SubstringSimilarNode::copy(thread_db* tdbb, NodeCopier& copier)
{
SubstringSimilarNode* node = FB_NEW(*tdbb->getDefaultPool()) SubstringSimilarNode(
*tdbb->getDefaultPool());
@@ -947,7 +953,7 @@
delete *pArgs;
}
-ExprNode* SysFuncCallNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* SysFuncCallNode::copy(thread_db* tdbb, NodeCopier& copier)
{
SysFuncCallNode* node = FB_NEW(*tdbb->getDefaultPool()) SysFuncCallNode(
*tdbb->getDefaultPool(), name);
@@ -1169,7 +1175,7 @@
desc->clear();
}
-ExprNode* UdfCallNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* UdfCallNode::copy(thread_db* tdbb, NodeCopier& copier)
{
UdfCallNode* node = FB_NEW(*tdbb->getDefaultPool()) UdfCallNode(*tdbb->getDefaultPool(), name);
node->args = copier.copy(tdbb, args);
Modified: firebird/trunk/src/dsql/ExprNodes.h
===================================================================
--- firebird/trunk/src/dsql/ExprNodes.h 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/dsql/ExprNodes.h 2010-08-09 15:48:51 UTC (rev 51418)
@@ -47,7 +47,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual ExprNode* pass2(thread_db* tdbb, CompilerScratch* csb);
virtual dsc* execute(thread_db* tdbb, jrd_req* request) const;
@@ -57,8 +57,8 @@
public:
dsql_nod* dsqlArg1;
dsql_nod* dsqlArg2;
- jrd_nod* arg1;
- jrd_nod* arg2;
+ NestConst<jrd_nod> arg1;
+ NestConst<jrd_nod> arg2;
};
@@ -83,7 +83,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual dsc* execute(thread_db* tdbb, jrd_req* request) const;
protected:
@@ -112,7 +112,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual ExprNode* pass1(thread_db* tdbb, CompilerScratch* csb);
virtual ExprNode* pass2(thread_db* tdbb, CompilerScratch* csb);
virtual dsc* execute(thread_db* tdbb, jrd_req* request) const;
@@ -124,9 +124,9 @@
dsql_nod* dsqlExpr;
dsql_nod* dsqlPattern;
dsql_nod* dsqlEscape;
- jrd_nod* expr;
- jrd_nod* pattern;
- jrd_nod* escape;
+ NestConst<jrd_nod> expr;
+ NestConst<jrd_nod> pattern;
+ NestConst<jrd_nod> escape;
};
@@ -144,7 +144,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual bool dsqlMatch(const ExprNode* other, bool ignoreMapCast) const;
virtual ExprNode* pass2(thread_db* tdbb, CompilerScratch* csb);
virtual dsc* execute(thread_db* tdbb, jrd_req* request) const;
@@ -156,7 +156,7 @@
Firebird::MetaName name;
dsql_nod* dsqlArgs;
bool dsqlSpecialSyntax;
- jrd_nod* args;
+ NestConst<jrd_nod> args;
const SysFunction* function;
};
@@ -175,7 +175,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual bool dsqlMatch(const ExprNode* other, bool ignoreMapCast) const;
virtual ExprNode* pass1(thread_db* tdbb, CompilerScratch* csb);
virtual ExprNode* pass2(thread_db* tdbb, CompilerScratch* csb);
@@ -187,7 +187,7 @@
public:
Firebird::QualifiedName name;
dsql_nod* dsqlArgs;
- jrd_nod* args;
+ NestConst<jrd_nod> args;
/*const*/ Function* function;
private:
Modified: firebird/trunk/src/dsql/Nodes.h
===================================================================
--- firebird/trunk/src/dsql/Nodes.h 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/dsql/Nodes.h 2010-08-09 15:48:51 UTC (rev 51418)
@@ -28,7 +28,7 @@
#include "../dsql/node.h"
#include "../dsql/Visitors.h"
#include "../common/classes/array.h"
-//#include "../common/classes/ByteChunk.h"
+#include "../common/classes/NestConst.h"
namespace Jrd {
@@ -199,7 +199,7 @@
virtual DmlNode* pass2(thread_db* tdbb, CompilerScratch* csb) = 0;
protected:
- jrd_nod* node;
+ NestConst<jrd_nod> node;
};
@@ -273,7 +273,8 @@
}
static ExprNode* fromLegacy(const dsql_nod* node);
- static ExprNode* fromLegacy(const jrd_nod* node);
+ static const ExprNode* fromLegacy(const jrd_nod* node);
+ static ExprNode* fromLegacy(jrd_nod* node);
virtual bool dsqlAggregateFinder(AggregateFinder& visitor)
{
@@ -341,7 +342,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement) = 0;
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc) = 0;
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const = 0;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) = 0;
virtual dsc* execute(thread_db* tdbb, jrd_req* request) const = 0;
protected:
@@ -349,7 +350,7 @@
virtual bool dsqlVisit(NonConstDsqlNodeVisitor& visitor);
virtual bool jrdVisit(JrdNodeVisitor& visitor);
- void addChildNode(dsql_nod*& dsqlNode, jrd_nod*& jrdNode)
+ void addChildNode(dsql_nod*& dsqlNode, NestConst<jrd_nod>& jrdNode)
{
dsqlChildNodes.add(&dsqlNode);
jrdChildNodes.add(&jrdNode);
@@ -364,7 +365,7 @@
const Type type;
const char* dsqlCompatDialectVerb;
Firebird::Array<dsql_nod**> dsqlChildNodes;
- Firebird::Array<jrd_nod**> jrdChildNodes;
+ Firebird::Array<NestConst<jrd_nod>*> jrdChildNodes;
};
class AggNode : public TypedNode<ExprNode, ExprNode::TYPE_AGGREGATE>
@@ -487,7 +488,7 @@
bool distinct;
bool dialect1;
dsql_nod* dsqlArg;
- jrd_nod* arg;
+ NestConst<jrd_nod> arg;
const AggregateSort* asb;
bool indexed;
};
@@ -553,7 +554,7 @@
{
}
- virtual jrd_nod* execute(thread_db* tdbb, jrd_req* request) const = 0;
+ virtual const jrd_nod* execute(thread_db* tdbb, jrd_req* request) const = 0;
};
@@ -580,7 +581,7 @@
return this;
}
- jrd_nod* execute(thread_db* /*tdbb*/, jrd_req* /*request*/) const
+ const jrd_nod* execute(thread_db* /*tdbb*/, jrd_req* /*request*/) const
{
fb_assert(false);
return NULL;
Modified: firebird/trunk/src/dsql/StmtNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/StmtNodes.cpp 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/dsql/StmtNodes.cpp 2010-08-09 15:48:51 UTC (rev 51418)
@@ -441,7 +441,7 @@
}
-jrd_nod* IfNode::execute(thread_db* tdbb, jrd_req* request) const
+const jrd_nod* IfNode::execute(thread_db* tdbb, jrd_req* request) const
{
if (request->req_operation == jrd_req::req_evaluate)
{
@@ -530,7 +530,7 @@
}
-jrd_nod* InAutonomousTransactionNode::execute(thread_db* tdbb, jrd_req* request) const
+const jrd_nod* InAutonomousTransactionNode::execute(thread_db* tdbb, jrd_req* request) const
{
Jrd::Attachment* attachment = request->req_attachment;
SLONG* savNumber = request->getImpure<SLONG>(savNumberOffset);
@@ -1090,7 +1090,7 @@
}
-jrd_nod* ExceptionNode::execute(thread_db* tdbb, jrd_req* request) const
+const jrd_nod* ExceptionNode::execute(thread_db* tdbb, jrd_req* request) const
{
if (request->req_operation == jrd_req::req_evaluate)
{
@@ -1428,7 +1428,7 @@
return this;
}
-jrd_nod* ForNode::execute(thread_db* tdbb, jrd_req* request) const
+const jrd_nod* ForNode::execute(thread_db* tdbb, jrd_req* request) const
{
switch (request->req_operation)
{
@@ -1453,7 +1453,7 @@
case jrd_req::req_unwind:
{
- jrd_nod* parent = node->nod_parent;
+ const jrd_nod* parent = node->nod_parent;
if (parent && parent->nod_type == nod_label &&
request->req_label == (USHORT)(IPTR) parent->nod_arg[e_lbl_label] &&
@@ -1549,7 +1549,7 @@
}
-jrd_nod* PostEventNode::execute(thread_db* tdbb, jrd_req* request) const
+const jrd_nod* PostEventNode::execute(thread_db* tdbb, jrd_req* request) const
{
jrd_tra* transaction = request->req_transaction;
@@ -1654,7 +1654,7 @@
}
-jrd_nod* SavepointNode::execute(thread_db* tdbb, jrd_req* request) const
+const jrd_nod* SavepointNode::execute(thread_db* tdbb, jrd_req* request) const
{
jrd_tra* transaction = request->req_transaction;
@@ -1833,7 +1833,7 @@
// Execute a SEND statement.
-jrd_nod* SuspendNode::execute(thread_db* /*tdbb*/, jrd_req* request) const
+const jrd_nod* SuspendNode::execute(thread_db* /*tdbb*/, jrd_req* request) const
{
switch (request->req_operation)
{
Modified: firebird/trunk/src/dsql/StmtNodes.h
===================================================================
--- firebird/trunk/src/dsql/StmtNodes.h 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/dsql/StmtNodes.h 2010-08-09 15:48:51 UTC (rev 51418)
@@ -60,15 +60,15 @@
virtual void genBlr();
virtual IfNode* pass1(thread_db* tdbb, CompilerScratch* csb);
virtual IfNode* pass2(thread_db* tdbb, CompilerScratch* csb);
- virtual jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
+ virtual const jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
public:
dsql_nod* dsqlCondition;
dsql_nod* dsqlTrueAction;
dsql_nod* dsqlFalseAction;
- jrd_nod* condition;
- jrd_nod* trueAction;
- jrd_nod* falseAction;
+ NestConst<jrd_nod> condition;
+ NestConst<jrd_nod> trueAction;
+ NestConst<jrd_nod> falseAction;
};
@@ -94,11 +94,11 @@
virtual void genBlr();
virtual InAutonomousTransactionNode* pass1(thread_db* tdbb, CompilerScratch* csb);
virtual InAutonomousTransactionNode* pass2(thread_db* tdbb, CompilerScratch* csb);
- virtual jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
+ virtual const jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
public:
dsql_nod* dsqlAction;
- jrd_nod* action;
+ NestConst<jrd_nod> action;
SLONG savNumberOffset;
};
@@ -160,7 +160,7 @@
virtual void genBlr();
virtual ExceptionNode* pass1(thread_db* tdbb, CompilerScratch* csb);
virtual ExceptionNode* pass2(thread_db* tdbb, CompilerScratch* csb);
- virtual jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
+ virtual const jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
private:
void setError(thread_db* tdbb) const;
@@ -169,8 +169,8 @@
Firebird::MetaName name;
dsql_nod* dsqlMessageExpr;
dsql_nod* dsqlParameters;
- jrd_nod* messageExpr;
- jrd_nod* parameters;
+ NestConst<jrd_nod> messageExpr;
+ NestConst<jrd_nod> parameters;
PsqlException* exception;
};
@@ -222,11 +222,11 @@
virtual void pass2Cursor(RecordSelExpr*& rsePtr, Cursor**& cursorPtr)
{
- rsePtr = (RecordSelExpr*) rse;
+ rsePtr = (RecordSelExpr*)(jrd_nod*) rse;
cursorPtr = &cursor;
}
- virtual jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
+ virtual const jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
public:
dsql_nod* dsqlSelect;
@@ -235,9 +235,9 @@
dsql_nod* dsqlAction;
dsql_nod* dsqlLabel;
bool dsqlForceSingular;
- jrd_nod* stall;
- jrd_nod* rse;
- jrd_nod* statement;
+ NestConst<jrd_nod> stall;
+ NestConst<jrd_nod> rse;
+ NestConst<jrd_nod> statement;
Cursor* cursor;
};
@@ -265,13 +265,13 @@
virtual void genBlr();
virtual PostEventNode* pass1(thread_db* tdbb, CompilerScratch* csb);
virtual PostEventNode* pass2(thread_db* tdbb, CompilerScratch* csb);
- virtual jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
+ virtual const jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
public:
dsql_nod* dsqlEvent;
dsql_nod* dsqlArgument;
- jrd_nod* event;
- jrd_nod* argument;
+ NestConst<jrd_nod> event;
+ NestConst<jrd_nod> argument;
};
@@ -306,7 +306,7 @@
virtual void genBlr();
virtual SavepointNode* pass1(thread_db* tdbb, CompilerScratch* csb);
virtual SavepointNode* pass2(thread_db* tdbb, CompilerScratch* csb);
- virtual jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
+ virtual const jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
public:
Command command;
@@ -336,12 +336,12 @@
virtual void genBlr();
virtual SuspendNode* pass1(thread_db* tdbb, CompilerScratch* csb);
virtual SuspendNode* pass2(thread_db* tdbb, CompilerScratch* csb);
- virtual jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
+ virtual const jrd_nod* execute(thread_db* tdbb, jrd_req* request) const;
public:
BlockNode* blockNode;
- jrd_nod* message;
- jrd_nod* statement;
+ NestConst<jrd_nod> message;
+ NestConst<jrd_nod> statement;
};
Modified: firebird/trunk/src/dsql/WinNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/WinNodes.cpp 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/dsql/WinNodes.cpp 2010-08-09 15:48:51 UTC (rev 51418)
@@ -74,7 +74,7 @@
if (count != 0)
{
- jrd_nod*** arg = node->jrdChildNodes.begin();
+ NestConst<jrd_nod>** arg = node->jrdChildNodes.begin();
do
{
**arg++ = PAR_parse_node(tdbb, csb, VALUE);
@@ -108,7 +108,7 @@
desc->makeInt64(0);
}
-ExprNode* DenseRankWinNode::copy(thread_db* tdbb, NodeCopier& /*copier*/) const
+ExprNode* DenseRankWinNode::copy(thread_db* tdbb, NodeCopier& /*copier*/)
{
DenseRankWinNode* node = FB_NEW(*tdbb->getDefaultPool()) DenseRankWinNode(*tdbb->getDefaultPool());
return node;
@@ -163,7 +163,7 @@
desc->makeInt64(0);
}
-ExprNode* RankWinNode::copy(thread_db* tdbb, NodeCopier& /*copier*/) const
+ExprNode* RankWinNode::copy(thread_db* tdbb, NodeCopier& /*copier*/)
{
RankWinNode* node = FB_NEW(*tdbb->getDefaultPool()) RankWinNode(*tdbb->getDefaultPool());
return node;
@@ -235,7 +235,7 @@
desc->makeInt64(0);
}
-ExprNode* RowNumberWinNode::copy(thread_db* tdbb, NodeCopier& /*copier*/) const
+ExprNode* RowNumberWinNode::copy(thread_db* tdbb, NodeCopier& /*copier*/)
{
RowNumberWinNode* node = FB_NEW(*tdbb->getDefaultPool()) RowNumberWinNode(*tdbb->getDefaultPool());
return node;
@@ -359,7 +359,7 @@
{
}
-ExprNode* LagWinNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* LagWinNode::copy(thread_db* tdbb, NodeCopier& copier)
{
LagWinNode* node = FB_NEW(*tdbb->getDefaultPool()) LagWinNode(*tdbb->getDefaultPool());
node->arg = copier.copy(tdbb, arg);
@@ -387,7 +387,7 @@
{
}
-ExprNode* LeadWinNode::copy(thread_db* tdbb, NodeCopier& copier) const
+ExprNode* LeadWinNode::copy(thread_db* tdbb, NodeCopier& copier)
{
LeadWinNode* node = FB_NEW(*tdbb->getDefaultPool()) LeadWinNode(*tdbb->getDefaultPool());
node->arg = copier.copy(tdbb, arg);
Modified: firebird/trunk/src/dsql/WinNodes.h
===================================================================
--- firebird/trunk/src/dsql/WinNodes.h 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/dsql/WinNodes.h 2010-08-09 15:48:51 UTC (rev 51418)
@@ -38,7 +38,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
virtual void aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const;
@@ -56,7 +56,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual ExprNode* pass2(thread_db* tdbb, CompilerScratch* csb);
virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
@@ -78,7 +78,7 @@
virtual void make(dsc* desc, dsql_nod* nullReplacement);
virtual void getDesc(thread_db* tdbb, CompilerScratch* csb, dsc* desc);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
virtual void aggInit(thread_db* tdbb, jrd_req* request) const;
virtual void aggPass(thread_db* tdbb, jrd_req* request, dsc* desc) const;
@@ -120,8 +120,8 @@
const int direction;
dsql_nod* dsqlRows;
dsql_nod* dsqlOutExpr;
- jrd_nod* rows;
- jrd_nod* outExpr;
+ NestConst<jrd_nod> rows;
+ NestConst<jrd_nod> outExpr;
};
// LAG function.
@@ -131,7 +131,7 @@
explicit LagWinNode(MemoryPool& pool, dsql_nod* aArg = NULL, dsql_nod* aRows = NULL,
dsql_nod* aOutExpr = NULL);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
protected:
virtual AggNode* dsqlCopy() const;
@@ -144,7 +144,7 @@
explicit LeadWinNode(MemoryPool& pool, dsql_nod* aArg = NULL, dsql_nod* aRows = NULL,
dsql_nod* aOutExpr = NULL);
- virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier) const;
+ virtual ExprNode* copy(thread_db* tdbb, NodeCopier& copier);
protected:
virtual AggNode* dsqlCopy() const;
Modified: firebird/trunk/src/jrd/ExtEngineManager.cpp
===================================================================
--- firebird/trunk/src/jrd/ExtEngineManager.cpp 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/jrd/ExtEngineManager.cpp 2010-08-09 15:48:51 UTC (rev 51418)
@@ -388,7 +388,7 @@
}
-void ExtEngineManager::Function::execute(thread_db* tdbb, jrd_nod* args, impure_value* impure)
+void ExtEngineManager::Function::execute(thread_db* tdbb, const jrd_nod* args, impure_value* impure)
{
EngineAttachmentInfo* attInfo = extManager->getEngineAttachment(tdbb, engine);
ContextManager<ExternalFunction> ctxManager(tdbb, attInfo, function,
Modified: firebird/trunk/src/jrd/ExtEngineManager.h
===================================================================
--- firebird/trunk/src/jrd/ExtEngineManager.h 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/jrd/ExtEngineManager.h 2010-08-09 15:48:51 UTC (rev 51418)
@@ -130,7 +130,7 @@
const Jrd::Function* aUdf);
~Function();
- void execute(thread_db* tdbb, jrd_nod* args, impure_value* impure);
+ void execute(thread_db* tdbb, const jrd_nod* args, impure_value* impure);
private:
ExtEngineManager* extManager;
Modified: firebird/trunk/src/jrd/Function.epp
===================================================================
--- firebird/trunk/src/jrd/Function.epp 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/jrd/Function.epp 2010-08-09 15:48:51 UTC (rev 51418)
@@ -657,7 +657,7 @@
}
}
-dsc* Function::execute(thread_db* tdbb, jrd_nod* args, impure_value* value) const
+dsc* Function::execute(thread_db* tdbb, const jrd_nod* args, impure_value* value) const
{
if (isUndefined())
{
Modified: firebird/trunk/src/jrd/Function.h
===================================================================
--- firebird/trunk/src/jrd/Function.h 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/jrd/Function.h 2010-08-09 15:48:51 UTC (rev 51418)
@@ -52,7 +52,7 @@
USHORT incrementAlterCount();
- dsc* execute(thread_db* tdbb, jrd_nod* args, impure_value* value) const;
+ dsc* execute(thread_db* tdbb, const jrd_nod* args, impure_value* value) const;
void releaseLocks(thread_db* tdbb);
void remove(thread_db* tdbb);
ULONG allocateImpure(CompilerScratch* csb);
Modified: firebird/trunk/src/jrd/Optimizer.cpp
===================================================================
--- firebird/trunk/src/jrd/Optimizer.cpp 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/jrd/Optimizer.cpp 2010-08-09 15:48:51 UTC (rev 51418)
@@ -55,7 +55,7 @@
namespace Jrd {
-bool OPT_computable(CompilerScratch* csb, const jrd_nod* node, SSHORT stream,
+bool OPT_computable(CompilerScratch* csb, jrd_nod* node, SSHORT stream,
const bool idx_use, const bool allowOnlyCurrentStream)
{
/**************************************
@@ -99,11 +99,11 @@
{
case nod_procedure:
{
- const jrd_nod* const inputs = node->nod_arg[e_prc_inputs];
+ jrd_nod* inputs = node->nod_arg[e_prc_inputs];
if (inputs)
{
fb_assert(inputs->nod_type == nod_asn_list);
- const jrd_nod* const* ptr = inputs->nod_arg;
+ jrd_nod* const* ptr = inputs->nod_arg;
for (const jrd_nod* const* const end = ptr + inputs->nod_count; ptr < end; ptr++)
{
if (!OPT_computable(csb, *ptr, stream, idx_use, allowOnlyCurrentStream)) {
@@ -116,8 +116,8 @@
case nod_union:
{
- const jrd_nod* const clauses = node->nod_arg[e_uni_clauses];
- const jrd_nod* const* ptr = clauses->nod_arg;
+ jrd_nod* clauses = node->nod_arg[e_uni_clauses];
+ jrd_nod* const* ptr = clauses->nod_arg;
for (const jrd_nod* const* const end = ptr + clauses->nod_count; ptr < end; ptr += 2)
{
if (!OPT_computable(csb, *ptr, stream, idx_use, allowOnlyCurrentStream)) {
@@ -129,9 +129,9 @@
case nod_class_exprnode_jrd:
{
- const ExprNode* exprNode = reinterpret_cast<const ExprNode*>(node->nod_arg[0]);
+ ExprNode* exprNode = reinterpret_cast<ExprNode*>(node->nod_arg[0]);
- for (const jrd_nod* const* const* i = exprNode->jrdChildNodes.begin();
+ for (NestConst<jrd_nod>** i = exprNode->jrdChildNodes.begin();
i != exprNode->jrdChildNodes.end(); ++i)
{
if (!OPT_computable(csb, **i, stream, idx_use, allowOnlyCurrentStream))
@@ -143,7 +143,7 @@
default:
{
- const jrd_nod* const* ptr = node->nod_arg;
+ jrd_nod* const* ptr = node->nod_arg;
for (const jrd_nod* const* const end = ptr + node->nod_count; ptr < end; ptr++)
{
if (!OPT_computable(csb, *ptr, stream, idx_use, allowOnlyCurrentStream)) {
@@ -155,8 +155,8 @@
}
RecordSelExpr* rse;
- const jrd_nod* sub;
- const jrd_nod* value;
+ jrd_nod* sub;
+ jrd_nod* value;
USHORT n;
switch (node->nod_type)
@@ -266,7 +266,7 @@
}
// Set sub-streams of rse active
- const jrd_nod* const* ptr;
+ jrd_nod* const* ptr;
const jrd_nod* const* end;
for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++)
@@ -430,8 +430,8 @@
{
ExprNode* exprNode1 = reinterpret_cast<ExprNode*>(node1->nod_arg[0]);
ExprNode* exprNode2 = reinterpret_cast<ExprNode*>(node2->nod_arg[0]);
- Array<jrd_nod**>& children1 = exprNode1->jrdChildNodes;
- Array<jrd_nod**>& children2 = exprNode2->jrdChildNodes;
+ Array<NestConst<jrd_nod>*>& children1 = exprNode1->jrdChildNodes;
+ Array<NestConst<jrd_nod>*>& children2 = exprNode2->jrdChildNodes;
if (exprNode1->type != exprNode2->type || children1.getCount() != children2.getCount())
return false;
@@ -462,7 +462,7 @@
case ExprNode::TYPE_CONCATENATE:
case ExprNode::TYPE_SUBSTRING_SIMILAR:
- for (jrd_nod*** i = children1.begin(), ***j = children2.begin();
+ for (NestConst<jrd_nod>* const* i = children1.begin(), * const* j = children2.begin();
i != children1.end(); ++i, ++j)
{
if (!OPT_expression_equal2(tdbb, csb, **i, **j, stream))
@@ -640,8 +640,8 @@
case nod_list:
{
- jrd_nod** ptr1 = node1->nod_arg;
- jrd_nod** ptr2 = node2->nod_arg;
+ jrd_nod* const* ptr1 = node1->nod_arg;
+ jrd_nod* const* ptr2 = node2->nod_arg;
if (node1->nod_count != node2->nod_count)
{
@@ -1067,8 +1067,7 @@
return OPT_make_binary_node(node_type, node1, node2, false);
}
-void OptimizerRetrieval::findDependentFromStreams(const jrd_nod* node,
- SortedStreamList* streamList) const
+void OptimizerRetrieval::findDependentFromStreams(jrd_nod* node, SortedStreamList* streamList) const
{
/**************************************
*
@@ -1084,11 +1083,11 @@
if (node->nod_type == nod_procedure)
{
- const jrd_nod* const inputs = node->nod_arg[e_prc_inputs];
+ jrd_nod* const inputs = node->nod_arg[e_prc_inputs];
if (inputs)
{
fb_assert(inputs->nod_type == nod_asn_list);
- const jrd_nod* const* ptr = inputs->nod_arg;
+ jrd_nod* const* ptr = inputs->nod_arg;
for (const jrd_nod* const* const end = ptr + inputs->nod_count; ptr < end; ptr++)
{
findDependentFromStreams(*ptr, streamList);
@@ -1097,8 +1096,8 @@
}
else if (node->nod_type == nod_union)
{
- const jrd_nod* const clauses = node->nod_arg[e_uni_clauses];
- const jrd_nod* const* ptr = clauses->nod_arg;
+ jrd_nod* const clauses = node->nod_arg[e_uni_clauses];
+ jrd_nod* const* ptr = clauses->nod_arg;
for (const jrd_nod* const* const end = ptr + clauses->nod_count; ptr < end; ptr += 2)
{
findDependentFromStreams(*ptr, streamList);
@@ -1106,9 +1105,9 @@
}
else if (node->nod_type == nod_class_exprnode_jrd)
{
- const ExprNode* exprNode = reinterpret_cast<const ExprNode*>(node->nod_arg[0]);
+ ExprNode* exprNode = reinterpret_cast<ExprNode*>(node->nod_arg[0]);
- for (const jrd_nod* const* const* i = exprNode->jrdChildNodes.begin();
+ for (NestConst<jrd_nod>* const* i = exprNode->jrdChildNodes.begin();
i != exprNode->jrdChildNodes.end(); ++i)
{
findDependentFromStreams(**i, streamList);
@@ -1116,7 +1115,7 @@
}
else
{
- const jrd_nod* const* ptr = node->nod_arg;
+ jrd_nod* const* ptr = node->nod_arg;
for (const jrd_nod* const* const end = ptr + node->nod_count; ptr < end; ptr++)
{
findDependentFromStreams(*ptr, streamList);
@@ -1229,7 +1228,7 @@
findDependentFromStreams(sub, streamList);
}
- const jrd_nod* const* ptr;
+ jrd_nod* const* ptr;
const jrd_nod* const* end;
for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++)
{
@@ -1480,7 +1479,7 @@
bool usableIndex = true;
index_desc::idx_repeat* idx_tail = idx->idx_rpt;
- jrd_nod** ptr = sortPtr->nod_arg;
+ jrd_nod* const* ptr = sortPtr->nod_arg;
for (const jrd_nod* const* const end = ptr + sortPtr->nod_count; ptr < end; ptr++, idx_tail++)
{
jrd_nod* node = *ptr;
Modified: firebird/trunk/src/jrd/Optimizer.h
===================================================================
--- firebird/trunk/src/jrd/Optimizer.h 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/jrd/Optimizer.h 2010-08-09 15:48:51 UTC (rev 51418)
@@ -73,7 +73,7 @@
class IndexTableScan;
class River;
-bool OPT_computable(CompilerScratch*, const jrd_nod*, SSHORT, const bool, const bool);
+bool OPT_computable(CompilerScratch*, jrd_nod*, SSHORT, const bool, const bool);
bool OPT_expression_equal(thread_db*, CompilerScratch*, const index_desc*, jrd_nod*, USHORT);
bool OPT_expression_equal2(thread_db*, CompilerScratch*, jrd_nod*, jrd_nod*, USHORT);
double OPT_getRelationCardinality(thread_db*, jrd_rel*, const Format*);
@@ -184,7 +184,7 @@
protected:
jrd_nod* composeInversion(jrd_nod* node1, jrd_nod* node2, nod_t node_type) const;
- void findDependentFromStreams(const jrd_nod* node, SortedStreamList* streamList) const;
+ void findDependentFromStreams(jrd_nod* node, SortedStreamList* streamList) const;
const Firebird::string& getAlias();
InversionCandidate* generateInversion(IndexTableScan** rsb);
IndexTableScan* generateNavigation();
Modified: firebird/trunk/src/jrd/SysFunction.cpp
===================================================================
--- firebird/trunk/src/jrd/SysFunction.cpp 2010-08-09 14:50:11 UTC (rev 51417)
+++ firebird/trunk/src/jrd/SysFunction.cpp 2010-08-09 15:48:51 UTC (rev 51418)
@@ -147,44 +147,44 @@
void makeUuidToChar(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
// generic stdmath function
-dsc* evlStdMath(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
+dsc* evlStdMath(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
// specific evl functions
-dsc* evlAbs(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlAsciiChar(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlAsciiVal(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlAtan2(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlBin(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlBinShift(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlCeil(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlCharToUuid(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlDateAdd(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlDateDiff(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlExp(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlFloor(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlGenUuid(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlGetContext(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlSetContext(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlHash(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlLeft(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlLnLog10(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlLog(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlMaxMinValue(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlMod(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlOverlay(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlPad(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlPi(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlPosition(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlPower(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlRand(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlReplace(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlReverse(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlRight(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlRound(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlSign(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlSqrt(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlTrunc(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
-dsc* evlUuidToChar(thread_db* tdbb, const SysFunction* function, jrd_nod* args, impure_value* impure);
+dsc* evlAbs(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlAsciiChar(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlAsciiVal(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlAtan2(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlBin(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlBinShift(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlCeil(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlCharToUuid(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlDateAdd(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlDateDiff(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlExp(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlFloor(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlGenUuid(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlGetContext(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlSetContext(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlHash(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlLeft(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlLnLog10(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlLog(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlMaxMinValue(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlMod(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlOverlay(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlPad(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlPi(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlPosition(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlPower(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlRand(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlReplace(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlReverse(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlRight(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlRound(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlSign(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlSqrt(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlTrunc(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
+dsc* evlUuidToChar(thread_db* tdbb, const SysFunction* function, const jrd_nod* args, impure_value* impure);
const char
@@ -1038,7 +1038,7 @@
}
-dsc* evlStdMath(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlStdMath(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -1139,7 +1139,7 @@
}
-dsc* evlAbs(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlAbs(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -1185,7 +1185,7 @@
}
-dsc* evlAsciiChar(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlAsciiChar(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -1207,7 +1207,7 @@
}
-dsc* evlAsciiVal(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlAsciiVal(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -1233,7 +1233,7 @@
}
-dsc* evlAtan2(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlAtan2(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 2);
@@ -1255,7 +1255,7 @@
}
-dsc* evlBin(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlBin(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count >= 1);
@@ -1304,7 +1304,7 @@
}
-dsc* evlBinShift(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlBinShift(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 2);
@@ -1362,7 +1362,7 @@
}
-dsc* evlCeil(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlCeil(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -1425,7 +1425,7 @@
}
-dsc* evlCharToUuid(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlCharToUuid(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -1530,7 +1530,7 @@
}
-dsc* evlDateAdd(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlDateAdd(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 3);
@@ -1727,7 +1727,7 @@
}
-dsc* evlDateDiff(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlDateDiff(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 3);
@@ -1940,7 +1940,7 @@
}
-dsc* evlExp(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlExp(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -1964,7 +1964,7 @@
}
-dsc* evlFloor(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlFloor(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -2019,7 +2019,7 @@
}
-dsc* evlGenUuid(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlGenUuid(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 0);
@@ -2037,7 +2037,7 @@
}
-dsc* evlGetContext(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlGetContext(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 2);
@@ -2183,7 +2183,7 @@
}
-dsc* evlSetContext(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlSetContext(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 3);
@@ -2284,7 +2284,7 @@
}
-dsc* evlHash(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlHash(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -2346,7 +2346,7 @@
}
-dsc* evlLeft(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlLeft(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 2);
@@ -2369,7 +2369,7 @@
}
-dsc* evlLnLog10(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlLnLog10(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 1);
@@ -2411,7 +2411,7 @@
}
-dsc* evlLog(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlLog(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 2);
@@ -2450,7 +2450,7 @@
}
-dsc* evlMaxMinValue(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlMaxMinValue(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value*)
{
fb_assert(args->nod_count >= 1);
@@ -2491,7 +2491,7 @@
}
-dsc* evlMod(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evlMod(thread_db* tdbb, const SysFunction*, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count == 2);
@@ -2540,7 +2540,7 @@
}
-dsc* evlOverlay(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlOverlay(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count >= 3);
@@ -2724,7 +2724,7 @@
}
-dsc* evlPad(thread_db* tdbb, const SysFunction* function, jrd_nod* args,
+dsc* evlPad(thread_db* tdbb, const SysFunction* function, const jrd_nod* args,
impure_value* impure)
{
fb_assert(args->nod_count >= 2);
@@ -2887,7 +2887,7 @@
}
-dsc* evlPi(thread_db* tdbb, const SysFunction*, jrd_nod* args,
+dsc* evl...
[truncated message content] |