From: <ag...@us...> - 2010-04-12 04:24:07
|
Revision: 1295 http://zoolib.svn.sourceforge.net/zoolib/?rev=1295&view=rev Author: agreen Date: 2010-04-12 04:23:59 +0000 (Mon, 12 Apr 2010) Log Message: ----------- Move ZRelHead out of main directory, intl zql. Implement GetRelHead by running a visitor over a tree, rather than as calls against virtual methods. Modified Paths: -------------- trunk/zoolib/source/cxx/more/zoolib/tql/ZTQLTest.cpp trunk/zoolib/source/cxx/more/zoolib/tql/ZTQL_Optimize.cpp trunk/zoolib/source/cxx/more/zoolib/tql/ZTQL_Optimize.h trunk/zoolib/source/cxx/more/zoolib/tql/ZUtil_TQLConvert.cpp trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase.cpp trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase.h trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_Any.cpp trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_SQLite.cpp trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_YadSeqR.cpp trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_YadSeqRPos.cpp trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Iterator.cpp trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Iterator.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Difference.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Difference.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Join.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Join.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Union.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Union.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Concrete.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Concrete.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Project.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Project.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Rename.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Rename.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Restrict_T.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Select.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Select.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Util_Strim_Rel.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Visitor_Expr_Rel_Binary_DoTransform.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Visitor_Expr_Rel_Binary_DoTransform.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Visitor_Expr_Rel_Unary_DoTransform.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Visitor_Expr_Rel_Unary_DoTransform.h trunk/zoolib/source/cxx/zoolib/ZExpr.cpp trunk/zoolib/source/cxx/zoolib/ZExpr.h trunk/zoolib/source/cxx/zoolib/ZExpr_Logic.cpp trunk/zoolib/source/cxx/zoolib/ZExpr_Logic.h trunk/zoolib/source/cxx/zoolib/ZExpr_Logic_ValCondition.h trunk/zoolib/source/cxx/zoolib/ZExpr_Logic_ValCondition_T.h trunk/zoolib/source/cxx/zoolib/ZUniSet_T.h trunk/zoolib/source/cxx/zoolib/ZUtil_Strim_ValCondition.cpp trunk/zoolib/source/cxx/zoolib/ZValCondition_T.h Added Paths: ----------- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.cpp trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_RelHead.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_RelHead.h trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Visitor_Expr_Rel_DoGetRelHead.cpp trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Visitor_Expr_Rel_DoGetRelHead.h Removed Paths: ------------- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.cpp trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.h trunk/zoolib/source/cxx/zoolib/ZRelHead.cpp trunk/zoolib/source/cxx/zoolib/ZRelHead.h trunk/zoolib/source/cxx/zoolib/ZUtil_Strim_RelHead.cpp trunk/zoolib/source/cxx/zoolib/ZUtil_Strim_RelHead.h Modified: trunk/zoolib/source/cxx/more/zoolib/tql/ZTQLTest.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/tql/ZTQLTest.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/tql/ZTQLTest.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -37,6 +37,7 @@ #include "zoolib/valbase/ZValBase_SQLite.h" #include "zoolib/sqlite/ZSQLite.h" #include "zoolib/sqlite/ZSQLite_YadSeqR_Iter.h" +#include "zoolib/zql/ZQL_Visitor_Expr_Rel_DoGetRelHead.h" NAMESPACE_ZOOLIB_USING @@ -48,19 +49,21 @@ typedef ZRef<ZExpr_Logic> Spec; typedef Rel Query; typedef ZMap_Expr Map; -typedef ZRelHead RelHead; typedef ZVal_Expr Val; typedef ZValCondition Condition; static ZYadOptions theYadOptions(true); -Query sAll(const ZRelHead& iRelHead) +RelHead spGetRelHead(ZRef<Expr_Rel> iExpr) + { return Visitor_Expr_Rel_DoGetRelHead().DoGetRelHead(iExpr); } + +Query sAll(const RelHead& iRelHead) { return ZValBase::sConcrete(iRelHead); } Query sAllID(const std::string& iIDName) - { return ZValBase::sConcrete(ZRelHead(true) | iIDName); } + { return ZValBase::sConcrete(RelHead(true) | iIDName); } -Query sAllID(const std::string& iIDName, const ZRelHead& iRelHead) +Query sAllID(const std::string& iIDName, const RelHead& iRelHead) { return ZValBase::sConcrete(iRelHead | iIDName); } // ================================================================================================= @@ -177,7 +180,7 @@ static Query badPassword2() { // return (A("authorID") & sBadAuthors()).Project("authorID"); - return A("authorID") & sBadAuthors() & ZRelHead("authorID"); + return A("authorID") & sBadAuthors() & RelHead("authorID"); } // S(A(@authorID), @Object == "author" & (@fnam == @pass | @lnam == @pass | @unam == @pass)); @@ -199,7 +202,7 @@ bool universal; set<string> theNames; - iQuery->GetRelHead().GetElems(universal, theNames); + spGetRelHead(iQuery).GetElems(universal, theNames); for (set<string>::iterator i = theNames.begin(); i != theNames.end(); ++i) { if (iIgnore.Contains(*i)) @@ -221,7 +224,7 @@ static Query sDrop(Query iQuery, const string& iTName) { - return iQuery & (ZRelHead(true) - iTName); + return iQuery & (RelHead(true) - iTName); // RelHead theRelHead = iQuery->GetRelHead(); // return iQuery & (theRelHead - iTName); // if (theRelHead.Contains(iTName)) @@ -301,7 +304,7 @@ static void sDumpQuery(const ZStrimW& s, Query iQuery) { Util_Strim_Rel::Options theOptions; -//## theOptions.fDebuggingOutput = true; + theOptions.fDebuggingOutput = true; Util_Strim_Rel::sToStrim(iQuery, theOptions, s); s << "\n"; @@ -394,7 +397,7 @@ return; Spec theSpec = CVar("TestVar1") == CConst(1) | CVar("TestVar2") == CConst(2); - Query theExp = sSelect(sAll(ZRelHead(true)), theSpec); + Query theExp = sSelect(sAll(RelHead(true)), theSpec); sDumpQuery(s, theExp); Modified: trunk/zoolib/source/cxx/more/zoolib/tql/ZTQL_Optimize.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/tql/ZTQL_Optimize.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/tql/ZTQL_Optimize.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -59,7 +59,7 @@ } } -void spGather(ZRef<ZExpr_Logic> iRep, CondUnion& oResult); +void spGather(ZRef<ZExpr_Logic> iExpr, CondUnion& oResult); class Gather : public virtual ZVisitor_Expr_Logic_DoTransform @@ -69,14 +69,14 @@ Gather(CondUnion& oResult); // From ZVisitor_Expr_Logic_DoTransform - virtual void Visit_Logic_True(ZRef<ZExpr_Logic_True> iRep); - virtual void Visit_Logic_False(ZRef<ZExpr_Logic_False> iRep); - virtual void Visit_Logic_Not(ZRef<ZExpr_Logic_Not> iRep); - virtual void Visit_Logic_And(ZRef<ZExpr_Logic_And> iRep); - virtual void Visit_Logic_Or(ZRef<ZExpr_Logic_Or> iRep); + virtual void Visit_Logic_True(ZRef<ZExpr_Logic_True> iExpr); + virtual void Visit_Logic_False(ZRef<ZExpr_Logic_False> iExpr); + virtual void Visit_Logic_Not(ZRef<ZExpr_Logic_Not> iExpr); + virtual void Visit_Logic_And(ZRef<ZExpr_Logic_And> iExpr); + virtual void Visit_Logic_Or(ZRef<ZExpr_Logic_Or> iExpr); // From ZVisitor_Expr_Logic_ValCondition - virtual void Visit_Logic_ValCondition(ZRef<ZExpr_Logic_ValCondition> iRep); + virtual void Visit_Logic_ValCondition(ZRef<ZExpr_Logic_ValCondition> iExpr); private: CondUnion& fResult; @@ -86,48 +86,48 @@ : fResult(oResult) {} -void Gather::Visit_Logic_True(ZRef<ZExpr_Logic_True> iRep) +void Gather::Visit_Logic_True(ZRef<ZExpr_Logic_True> iExpr) { fResult.resize(1); } -void Gather::Visit_Logic_False(ZRef<ZExpr_Logic_False> iRep) +void Gather::Visit_Logic_False(ZRef<ZExpr_Logic_False> iExpr) { ZAssert(fResult.empty()); // fResult.clear(); } -void Gather::Visit_Logic_Not(ZRef<ZExpr_Logic_Not> iRep) +void Gather::Visit_Logic_Not(ZRef<ZExpr_Logic_Not> iExpr) { ZUnimplemented(); } -void Gather::Visit_Logic_And(ZRef<ZExpr_Logic_And> iRep) +void Gather::Visit_Logic_And(ZRef<ZExpr_Logic_And> iExpr) { CondUnion left; - spGather(iRep->GetLHS(), left); + spGather(iExpr->GetLHS(), left); CondUnion right; - spGather(iRep->GetRHS(), right); + spGather(iExpr->GetRHS(), right); spCrossMultiply(left, right, fResult); } -void Gather::Visit_Logic_Or(ZRef<ZExpr_Logic_Or> iRep) +void Gather::Visit_Logic_Or(ZRef<ZExpr_Logic_Or> iExpr) { CondUnion left; - spGather(iRep->GetLHS(), left); + spGather(iExpr->GetLHS(), left); CondUnion right; - spGather(iRep->GetRHS(), right); + spGather(iExpr->GetRHS(), right); fResult.swap(left); fResult.insert(fResult.end(), right.begin(), right.end()); } -void Gather::Visit_Logic_ValCondition(ZRef<ZExpr_Logic_ValCondition> iRep) +void Gather::Visit_Logic_ValCondition(ZRef<ZExpr_Logic_ValCondition> iExpr) { fResult.resize(1); - fResult[0].push_back(iRep->GetValCondition()); + fResult[0].push_back(iExpr->GetValCondition()); } -void spGather(ZRef<ZExpr_Logic> iRep, CondUnion& oResult) +void spGather(ZRef<ZExpr_Logic> iExpr, CondUnion& oResult) { ZAssert(oResult.empty()); Gather theGather(oResult); - iRep->Accept(theGather); + iExpr->Accept(theGather); } ZRef<Expr_Rel> spConvertSelect( @@ -166,21 +166,21 @@ { public: // From Visitor_Expr_Rel_Concrete - virtual void Visit_Expr_Rel_Concrete(ZRef<Expr_Rel_Concrete> iRep); + virtual void Visit_Expr_Rel_Concrete(ZRef<Expr_Rel_Concrete> iExpr); // From Visitor_Expr_Rel_Unary_Select - virtual void Visit_Expr_Rel_Unary_Select(ZRef<Expr_Rel_Unary_Select> iRep); + virtual void Visit_Expr_Rel_Unary_Select(ZRef<Expr_Rel_Unary_Select> iExpr); }; -void Optimize::Visit_Expr_Rel_Concrete(ZRef<Expr_Rel_Concrete> iRep) - { fResult = iRep; } +void Optimize::Visit_Expr_Rel_Concrete(ZRef<Expr_Rel_Concrete> iExpr) + { fResult = iExpr; } -void Optimize::Visit_Expr_Rel_Unary_Select(ZRef<Expr_Rel_Unary_Select> iRep) +void Optimize::Visit_Expr_Rel_Unary_Select(ZRef<Expr_Rel_Unary_Select> iExpr) { - ZRef<Expr_Rel> newRep = - this->DoTransform(iRep->GetExpr_Rel()).DynamicCast<Expr_Rel>(); + ZRef<Expr_Rel> newExpr = + this->DoTransform(iExpr->GetExpr_Rel()).DynamicCast<Expr_Rel>(); - fResult = spConvertSelect(newRep, iRep->GetExpr_Logic()); + fResult = spConvertSelect(newExpr, iExpr->GetExpr_Logic()); } } // anonymous namespace @@ -191,8 +191,8 @@ namespace ZQL { -ZRef<Expr_Rel> sOptimize(ZRef<Expr_Rel> iRep) - { return Optimize().DoTransform(iRep).DynamicCast<Expr_Rel>(); } +ZRef<Expr_Rel> sOptimize(ZRef<Expr_Rel> iExpr) + { return Optimize().DoTransform(iExpr).DynamicCast<Expr_Rel>(); } } // namespace ZQL NAMESPACE_ZOOLIB_END Modified: trunk/zoolib/source/cxx/more/zoolib/tql/ZTQL_Optimize.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/tql/ZTQL_Optimize.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/tql/ZTQL_Optimize.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -32,7 +32,7 @@ namespace ZQL { -ZRef<Expr_Rel> sOptimize(ZRef<Expr_Rel> iRep); +ZRef<Expr_Rel> sOptimize(ZRef<Expr_Rel> iExpr); } // namespace ZTQL Modified: trunk/zoolib/source/cxx/more/zoolib/tql/ZUtil_TQLConvert.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/tql/ZUtil_TQLConvert.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/tql/ZUtil_TQLConvert.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -30,19 +30,18 @@ using std::vector; using namespace ZQL; -ZRef<Expr_Rel> sAll(const ZRelHead& iRelHead) +ZRef<Expr_Rel> sAll(const RelHead& iRelHead) { return ZValBase::sConcrete(); } ZRef<Expr_Rel> sAllID(const std::string& iIDName) { return ZValBase::sConcrete(); } -ZRef<Expr_Rel> sAllID(const std::string& iIDName, const ZRelHead& iRelHead) +ZRef<Expr_Rel> sAllID(const std::string& iIDName, const RelHead& iRelHead) { return ZValBase::sConcrete(); } typedef ZRef<ZExpr_Logic> Spec; typedef ZRef<Expr_Rel> Query; typedef ZMap_Expr Map; -typedef ZRelHead RelHead; typedef ZVal_Expr Val; typedef ZValCondition Condition; @@ -131,7 +130,7 @@ // except as a clause in a combo with a filter. ZAssert(iFilter); - const RelHead filterRelHead = sGetRelHead(*iFilter); + const RelHead filterRelHead = sGetNames(*iFilter); Query theQ; if (iName) @@ -254,7 +253,7 @@ // Get the referenced tuples and filter them if (iFilter) { - const RelHead filterRelHead = sGetRelHead(*iFilter); + const RelHead filterRelHead = sGetNames(*iFilter); if (iName) { theQ = sJoin(theQ, sSelect(sAllID(sIDName, filterRelHead | *iName), *iFilter)); @@ -286,7 +285,7 @@ { // Do nothing -- already have the IDs. if (iVerbose) - theQ = sProject(theQ, ZRelHead("$$FromSource$$")); + theQ = sProject(theQ, RelHead("$$FromSource$$")); } } return theQ; @@ -306,7 +305,7 @@ // Get tuples whose property 'thePropName' match the IDs and filter them if (iFilter) { - const RelHead filterRelHead = sGetRelHead(*iFilter); + const RelHead filterRelHead = sGetNames(*iFilter); if (iName) { theQ = sJoin(theQ, sAllID(sIDName, filterRelHead | *iName | thePropName)); Modified: trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -21,7 +21,7 @@ #include "zoolib/valbase/ZValBase.h" #include "zoolib/zqe/ZQE_Iterator_Any.h" #include "zoolib/zqe/ZQE_Result_Any.h" -#include "zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.h" +#include "zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.h" #include "zoolib/zql/ZQL_Expr_Rel_Concrete.h" #include "zoolib/zql/ZQL_Expr_Rel_Unary_Restrict.h" @@ -35,9 +35,6 @@ Expr_Rel_Concrete::Expr_Rel_Concrete() {} -ZRelHead Expr_Rel_Concrete::GetRelHead() - { return ZRelHead(true); } - // ================================================================================================= #pragma mark - #pragma mark * Visitor_DoMakeIterator @@ -45,42 +42,42 @@ namespace ZANONYMOUS { class Visitor_DoMakeIterator -: public virtual ZQE::Visitor_Expr_DoMakeIterator +: public virtual ZQE::Visitor_Expr_Rel_DoMakeIterator , public virtual ZQL::Visitor_Expr_Rel_Unary_Restrict , public virtual ZQL::Visitor_Expr_Rel_Concrete { public: -// Via ZQE::Visitor_Expr_DoMakeIterator +// Via ZQE::Visitor_Expr_Rel_DoMakeIterator virtual void Visit_Expr_Rel_Unary_Select( - ZRef<ZQL::Expr_Rel_Unary_Select> iRep); + ZRef<ZQL::Expr_Rel_Unary_Select> iExpr); // From ZQL::Visitor_Expr_Rel_Unary_Restrict virtual void Visit_Expr_Rel_Unary_Restrict( - ZRef<ZQL::Expr_Rel_Unary_Restrict> iRep); + ZRef<ZQL::Expr_Rel_Unary_Restrict> iExpr); // From ZQL::Visitor_Expr_Rel_Concrete - virtual void Visit_Expr_Rel_Concrete(ZRef<ZQL::Expr_Rel_Concrete> iRep); + virtual void Visit_Expr_Rel_Concrete(ZRef<ZQL::Expr_Rel_Concrete> iExpr); }; void Visitor_DoMakeIterator::Visit_Expr_Rel_Unary_Select( - ZRef<ZQL::Expr_Rel_Unary_Select> iRep) + ZRef<ZQL::Expr_Rel_Unary_Select> iExpr) { - if (ZRef<ZQE::Iterator> theIterator = this->DoMakeIterator(iRep->GetExpr_Rel())) - fIterator = new ZQE::Iterator_Any_Select(iRep->GetExpr_Logic(), theIterator); + if (ZRef<ZQE::Iterator> theIterator = this->DoMakeIterator(iExpr->GetExpr_Rel())) + fIterator = new ZQE::Iterator_Any_Select(iExpr->GetExpr_Logic(), theIterator); } void Visitor_DoMakeIterator::Visit_Expr_Rel_Unary_Restrict( - ZRef<ZQL::Expr_Rel_Unary_Restrict> iRep) + ZRef<ZQL::Expr_Rel_Unary_Restrict> iExpr) { - if (ZRef<ZQE::Iterator> theIterator = this->DoMakeIterator(iRep->GetExpr_Rel())) - fIterator = new ZQE::Iterator_Any_Restrict(iRep->GetValCondition(), theIterator); + if (ZRef<ZQE::Iterator> theIterator = this->DoMakeIterator(iExpr->GetExpr_Rel())) + fIterator = new ZQE::Iterator_Any_Restrict(iExpr->GetValCondition(), theIterator); } void Visitor_DoMakeIterator::Visit_Expr_Rel_Concrete( - ZRef<ZQL::Expr_Rel_Concrete> iRep) + ZRef<ZQL::Expr_Rel_Concrete> iExpr) { - if (ZRef<Expr_Rel_Concrete> theRep = iRep.DynamicCast<Expr_Rel_Concrete>()) - fIterator = theRep->MakeIterator(); + if (ZRef<Expr_Rel_Concrete> theExpr = iExpr.DynamicCast<Expr_Rel_Concrete>()) + fIterator = theExpr->MakeIterator(); } } // anonymous namespace @@ -92,20 +89,20 @@ class Expr_Rel_Concrete_Dummy : public ZQL::Expr_Rel_Concrete { public: - Expr_Rel_Concrete_Dummy(const ZRelHead& iRelHead); + Expr_Rel_Concrete_Dummy(const ZQL::RelHead& iRelHead); -// From Expr_Rel via Expr_Rel_Concrete - virtual ZRelHead GetRelHead(); +// From ZQL::Expr_Rel_Concrete + virtual ZQL::RelHead GetRelHead(); private: - ZRelHead fRelHead; + const ZQL::RelHead fRelHead; }; -Expr_Rel_Concrete_Dummy::Expr_Rel_Concrete_Dummy(const ZRelHead& iRelHead) +Expr_Rel_Concrete_Dummy::Expr_Rel_Concrete_Dummy(const ZQL::RelHead& iRelHead) : fRelHead(iRelHead) {} -ZRelHead Expr_Rel_Concrete_Dummy::GetRelHead() +ZQL::RelHead Expr_Rel_Concrete_Dummy::GetRelHead() { return fRelHead; } // ================================================================================================= @@ -115,10 +112,10 @@ ZRef<ZQL::Expr_Rel> sConcrete() { // Put this outside of ZValBase? Perhaps over in ZQL? - return sConcrete(ZRelHead(true)); + return sConcrete(ZQL::RelHead(true)); } -ZRef<ZQL::Expr_Rel> sConcrete(const ZRelHead& iRelHead) +ZRef<ZQL::Expr_Rel> sConcrete(const ZQL::RelHead& iRelHead) { return new Expr_Rel_Concrete_Dummy(iRelHead); } ZRef<ZQE::Iterator> sIterator(ZRef<ZQL::Expr_Rel> iExpr) Modified: trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -38,9 +38,6 @@ Expr_Rel_Concrete(); public: -// From Expr_Rel via Expr_Rel_Concrete - virtual ZRelHead GetRelHead(); - // Our protocol virtual ZRef<ZQE::Iterator> MakeIterator() = 0; }; @@ -50,7 +47,7 @@ #pragma mark * ZValBase pseudo constructors ZRef<ZQL::Expr_Rel> sConcrete(); -ZRef<ZQL::Expr_Rel> sConcrete(const ZRelHead& iRelHead); +ZRef<ZQL::Expr_Rel> sConcrete(const ZQL::RelHead& iRelHead); ZRef<ZQE::Iterator> sIterator(ZRef<ZQL::Expr_Rel> iExpr); Modified: trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_Any.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_Any.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_Any.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -79,6 +79,9 @@ public: Expr_Rel_Concrete(const ZSeq_Any& iSeq); +// From ZQL::Expr_Rel_Concrete via ZValBase::Expr_Rel_Concrete + virtual ZQL::RelHead GetRelHead(); + // From ZValBase::Expr_Rel_Concrete virtual ZRef<ZQE::Iterator> MakeIterator(); @@ -90,6 +93,9 @@ : fSeq(iSeq) {} +ZQL::RelHead Expr_Rel_Concrete::GetRelHead() + { return ZQL::RelHead(true); } + ZRef<ZQE::Iterator> Expr_Rel_Concrete::MakeIterator() { return new Iterator(fSeq); } Modified: trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_SQLite.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_SQLite.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_SQLite.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -83,8 +83,8 @@ public: Expr_Rel_Concrete(ZRef<ConcreteDomain> iConcreteDomain, ZRef<Iter> iIter); -// From ExprRel via ZValBase::Expr_Rel_Concrete - virtual ZRelHead GetRelHead(); +// From ZQL::Expr_Rel_Concrete via ZValBase::Expr_Rel_Concrete + virtual ZQL::RelHead GetRelHead(); // From ZValBase::Expr_Rel_Concrete virtual ZRef<ZQE::Iterator> MakeIterator(); @@ -99,9 +99,9 @@ , fIter(iIter) {} -ZRelHead Expr_Rel_Concrete::GetRelHead() +ZQL::RelHead Expr_Rel_Concrete::GetRelHead() { - ZRelHead result; + ZQL::RelHead result; for (size_t x = 0; x < fIter->Count(); ++x) result.Insert(fIter->NameOf(x)); return result; Modified: trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_YadSeqR.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_YadSeqR.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_YadSeqR.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -37,6 +37,9 @@ public: Expr_Rel_Concrete(ZRef<ZYadSeqR> iYadSeqR); +// From ZQL::Expr_Rel_Concrete via ZValBase::Expr_Rel_Concrete + virtual ZQL::RelHead GetRelHead(); + // From ZValBase::Expr_Rel_Concrete virtual ZRef<ZQE::Iterator> MakeIterator(); @@ -90,6 +93,9 @@ : fYadSeqR(iYadSeqR) {} +ZQL::RelHead Expr_Rel_Concrete::GetRelHead() + { return ZQL::RelHead(true); } + ZRef<ZQE::Iterator> Expr_Rel_Concrete::MakeIterator() { return new Iterator(this, 0); } Modified: trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_YadSeqRPos.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_YadSeqRPos.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/valbase/ZValBase_YadSeqRPos.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -70,6 +70,9 @@ public: Expr_Rel_Concrete(ZRef<ZYadSeqRPos> iYadSeqRPos); +// From ZQL::Expr_Rel_Concrete via ZValBase::Expr_Rel_Concrete + virtual ZQL::RelHead GetRelHead(); + // From ZValBase::Expr_Rel_Concrete virtual ZRef<ZQE::Iterator> MakeIterator(); @@ -81,6 +84,9 @@ : fYadSeqRPos(iYadSeqRPos) {} +ZQL::RelHead Expr_Rel_Concrete::GetRelHead() + { return ZQL::RelHead(true); } + ZRef<ZQE::Iterator> Expr_Rel_Concrete::MakeIterator() { return new Iterator(fYadSeqRPos); } Modified: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Iterator.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Iterator.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Iterator.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -90,8 +90,8 @@ } } -Iterator_Intersect::Iterator_Intersect(ZRef<Iterator> iIterator_LHS, - ZRef<Iterator> iIterator_RHS, ZRef<Iterator> iIterator_RHS_Model) +Iterator_Intersect::Iterator_Intersect(ZRef<Iterator> iIterator_LHS, ZRef<Iterator> iIterator_RHS, + ZRef<Iterator> iIterator_RHS_Model) : fIterator_LHS(iIterator_LHS) , fIterator_RHS(iIterator_RHS) , fIterator_RHS_Model(iIterator_RHS_Model) @@ -148,8 +148,8 @@ } } -Iterator_Join::Iterator_Join(ZRef<Iterator> iIterator_LHS, - ZRef<Iterator> iIterator_RHS, ZRef<Iterator> iIterator_RHS_Model) +Iterator_Join::Iterator_Join(ZRef<Iterator> iIterator_LHS, ZRef<Iterator> iIterator_RHS, + ZRef<Iterator> iIterator_RHS_Model) : fIterator_LHS(iIterator_LHS) , fIterator_RHS(iIterator_RHS) , fIterator_RHS_Model(iIterator_RHS_Model) Modified: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Iterator.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Iterator.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Iterator.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -58,8 +58,8 @@ virtual ZRef<Result> ReadInc(); private: - Iterator_Intersect(ZRef<Iterator> iIterator_LHS, - ZRef<Iterator> iIterator_RHS, ZRef<Iterator> iIterator_RHS_Model); + Iterator_Intersect(ZRef<Iterator> iIterator_LHS, ZRef<Iterator> iIterator_RHS, + ZRef<Iterator> iIterator_RHS_Model); ZRef<Iterator> fIterator_LHS; ZRef<Iterator> fIterator_RHS; @@ -80,8 +80,8 @@ virtual ZRef<Result> ReadInc(); private: - Iterator_Join(ZRef<Iterator> iIterator_LHS, - ZRef<Iterator> iIterator_RHS, ZRef<Iterator> iIterator_RHS_Model); + Iterator_Join(ZRef<Iterator> iIterator_LHS, ZRef<Iterator> iIterator_RHS, + ZRef<Iterator> iIterator_RHS_Model); ZRef<Iterator> fIterator_LHS; ZRef<Iterator> fIterator_RHS; Deleted: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -1,93 +0,0 @@ -/* ------------------------------------------------------------------------------------------------- -Copyright (c) 2010 Andrew Green -http://www.zoolib.org - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software -and associated documentation files (the "Software"), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, publish, distribute, -sublicense, and/or sell copies of the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING -BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------------------------- */ - -#include "zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.h" - -NAMESPACE_ZOOLIB_BEGIN -namespace ZQE { - -// ================================================================================================= -#pragma mark - -#pragma mark * Visitor_Expr_DoMakeIterator - -void Visitor_Expr_DoMakeIterator::Visit_Expr_Rel_Binary_Difference( - ZRef<ZQL::Expr_Rel_Binary_Difference> iRep) - {} - -void Visitor_Expr_DoMakeIterator::Visit_Expr_Rel_Binary_Intersect( - ZRef<ZQL::Expr_Rel_Binary_Intersect> iRep) - { - if (ZRef<Iterator> lhs = this->DoMakeIterator(iRep->GetLHS())) - { - if (ZRef<Iterator> rhs = this->DoMakeIterator(iRep->GetRHS())) - fIterator = new Iterator_Intersect(lhs, rhs); - } - } - -void Visitor_Expr_DoMakeIterator::Visit_Expr_Rel_Binary_Join(ZRef<ZQL::Expr_Rel_Binary_Join> iRep) - { - if (ZRef<Iterator> lhs = this->DoMakeIterator(iRep->GetLHS())) - { - if (ZRef<Iterator> rhs = this->DoMakeIterator(iRep->GetRHS())) - fIterator = new Iterator_Join(lhs, rhs); - } - } - -void Visitor_Expr_DoMakeIterator::Visit_Expr_Rel_Binary_Union( - ZRef<ZQL::Expr_Rel_Binary_Union> iRep) - { - if (ZRef<Iterator> lhs = this->DoMakeIterator(iRep->GetLHS())) - { - if (ZRef<Iterator> rhs = this->DoMakeIterator(iRep->GetRHS())) - fIterator = new Iterator_Union(lhs, rhs); - else - fIterator = lhs; - } - } - -void Visitor_Expr_DoMakeIterator::Visit_Expr_Rel_Unary_Project( - ZRef<ZQL::Expr_Rel_Unary_Project> iRep) - { - ZUnimplemented(); - } - -void Visitor_Expr_DoMakeIterator::Visit_Expr_Rel_Unary_Rename(ZRef<ZQL::Expr_Rel_Unary_Rename> iRep) - { - ZUnimplemented(); - } - -void Visitor_Expr_DoMakeIterator::Visit_Expr_Rel_Unary_Select(ZRef<ZQL::Expr_Rel_Unary_Select> iRep) - { - ZUnimplemented(); - } - -ZRef<Iterator> Visitor_Expr_DoMakeIterator::DoMakeIterator(ZRef<ZExpr> iExpr) - { - ZRef<Iterator> theIterator; - if (iExpr) - { - iExpr->Accept(*this); - theIterator.swap(fIterator); - } - return theIterator; - } - -} // namespace ZQE -NAMESPACE_ZOOLIB_END Deleted: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_DoMakeIterator.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -1,70 +0,0 @@ -/* ------------------------------------------------------------------------------------------------- -Copyright (c) 2010 Andrew Green -http://www.zoolib.org - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software -and associated documentation files (the "Software"), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, publish, distribute, -sublicense, and/or sell copies of the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING -BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------------------------- */ - -#ifndef __ZQE_Visitor_Expr_DoMakeIterator__ -#define __ZQE_Visitor_Expr_DoMakeIterator__ 1 -#include "zconfig.h" - -#include "zoolib/zqe/ZQE_Iterator.h" -#include "zoolib/zql/ZQL_Expr_Rel_Binary_Difference.h" -#include "zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.h" -#include "zoolib/zql/ZQL_Expr_Rel_Binary_Join.h" -#include "zoolib/zql/ZQL_Expr_Rel_Binary_Union.h" -#include "zoolib/zql/ZQL_Expr_Rel_Unary_Project.h" -#include "zoolib/zql/ZQL_Expr_Rel_Unary_Rename.h" -#include "zoolib/zql/ZQL_Expr_Rel_Unary_Select.h" - -NAMESPACE_ZOOLIB_BEGIN -namespace ZQE { - -// ================================================================================================= -#pragma mark - -#pragma mark * Visitor_Expr_DoMakeIterator - -class Visitor_Expr_DoMakeIterator -: public virtual ZQL::Visitor_Expr_Rel_Binary_Difference -, public virtual ZQL::Visitor_Expr_Rel_Binary_Intersect -, public virtual ZQL::Visitor_Expr_Rel_Binary_Join -, public virtual ZQL::Visitor_Expr_Rel_Binary_Union -, public virtual ZQL::Visitor_Expr_Rel_Unary_Project -, public virtual ZQL::Visitor_Expr_Rel_Unary_Rename -, public virtual ZQL::Visitor_Expr_Rel_Unary_Select - { -public: - virtual void Visit_Expr_Rel_Binary_Difference(ZRef<ZQL::Expr_Rel_Binary_Difference> iRep); - virtual void Visit_Expr_Rel_Binary_Intersect(ZRef<ZQL::Expr_Rel_Binary_Intersect> iRep); - virtual void Visit_Expr_Rel_Binary_Join(ZRef<ZQL::Expr_Rel_Binary_Join> iRep); - virtual void Visit_Expr_Rel_Binary_Union(ZRef<ZQL::Expr_Rel_Binary_Union> iRep); - - virtual void Visit_Expr_Rel_Unary_Project(ZRef<ZQL::Expr_Rel_Unary_Project> iRep); - virtual void Visit_Expr_Rel_Unary_Rename(ZRef<ZQL::Expr_Rel_Unary_Rename> iRep); - virtual void Visit_Expr_Rel_Unary_Select(ZRef<ZQL::Expr_Rel_Unary_Select> iRep); - -// Our protocol - ZRef<Iterator> DoMakeIterator(ZRef<ZExpr> iExpr); - -protected: - ZRef<Iterator> fIterator; - }; - -} // namespace ZQE -NAMESPACE_ZOOLIB_END - -#endif // __ZQE_Visitor_Expr_DoMakeIterator__ Added: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.cpp (rev 0) +++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -0,0 +1,96 @@ +/* ------------------------------------------------------------------------------------------------- +Copyright (c) 2010 Andrew Green +http://www.zoolib.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------------------------------- */ + +#include "zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.h" + +NAMESPACE_ZOOLIB_BEGIN +namespace ZQE { + +// ================================================================================================= +#pragma mark - +#pragma mark * Visitor_Expr_Rel_DoMakeIterator + +void Visitor_Expr_Rel_DoMakeIterator::Visit_Expr_Rel_Binary_Difference( + ZRef<ZQL::Expr_Rel_Binary_Difference> iExpr) + {} + +void Visitor_Expr_Rel_DoMakeIterator::Visit_Expr_Rel_Binary_Intersect( + ZRef<ZQL::Expr_Rel_Binary_Intersect> iExpr) + { + if (ZRef<Iterator> lhs = this->DoMakeIterator(iExpr->GetLHS())) + { + if (ZRef<Iterator> rhs = this->DoMakeIterator(iExpr->GetRHS())) + fIterator = new Iterator_Intersect(lhs, rhs); + } + } + +void Visitor_Expr_Rel_DoMakeIterator::Visit_Expr_Rel_Binary_Join( + ZRef<ZQL::Expr_Rel_Binary_Join> iExpr) + { + if (ZRef<Iterator> lhs = this->DoMakeIterator(iExpr->GetLHS())) + { + if (ZRef<Iterator> rhs = this->DoMakeIterator(iExpr->GetRHS())) + fIterator = new Iterator_Join(lhs, rhs); + } + } + +void Visitor_Expr_Rel_DoMakeIterator::Visit_Expr_Rel_Binary_Union( + ZRef<ZQL::Expr_Rel_Binary_Union> iExpr) + { + if (ZRef<Iterator> lhs = this->DoMakeIterator(iExpr->GetLHS())) + { + if (ZRef<Iterator> rhs = this->DoMakeIterator(iExpr->GetRHS())) + fIterator = new Iterator_Union(lhs, rhs); + else + fIterator = lhs; + } + } + +void Visitor_Expr_Rel_DoMakeIterator::Visit_Expr_Rel_Unary_Project( + ZRef<ZQL::Expr_Rel_Unary_Project> iExpr) + { + ZUnimplemented(); + } + +void Visitor_Expr_Rel_DoMakeIterator::Visit_Expr_Rel_Unary_Rename( + ZRef<ZQL::Expr_Rel_Unary_Rename> iExpr) + { + ZUnimplemented(); + } + +void Visitor_Expr_Rel_DoMakeIterator::Visit_Expr_Rel_Unary_Select( + ZRef<ZQL::Expr_Rel_Unary_Select> iExpr) + { + ZUnimplemented(); + } + +ZRef<Iterator> Visitor_Expr_Rel_DoMakeIterator::DoMakeIterator(ZRef<ZQL::Expr_Rel> iExpr) + { + ZRef<Iterator> theIterator; + if (iExpr) + { + iExpr->Accept(*this); + theIterator.swap(fIterator); + } + return theIterator; + } + +} // namespace ZQE +NAMESPACE_ZOOLIB_END Added: trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.h (rev 0) +++ trunk/zoolib/source/cxx/more/zoolib/zqe/ZQE_Visitor_Expr_Rel_DoMakeIterator.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -0,0 +1,70 @@ +/* ------------------------------------------------------------------------------------------------- +Copyright (c) 2010 Andrew Green +http://www.zoolib.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------------------------------- */ + +#ifndef __ZQE_Visitor_Expr_Rel_DoMakeIterator__ +#define __ZQE_Visitor_Expr_Rel_DoMakeIterator__ 1 +#include "zconfig.h" + +#include "zoolib/zqe/ZQE_Iterator.h" +#include "zoolib/zql/ZQL_Expr_Rel_Binary_Difference.h" +#include "zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.h" +#include "zoolib/zql/ZQL_Expr_Rel_Binary_Join.h" +#include "zoolib/zql/ZQL_Expr_Rel_Binary_Union.h" +#include "zoolib/zql/ZQL_Expr_Rel_Unary_Project.h" +#include "zoolib/zql/ZQL_Expr_Rel_Unary_Rename.h" +#include "zoolib/zql/ZQL_Expr_Rel_Unary_Select.h" + +NAMESPACE_ZOOLIB_BEGIN +namespace ZQE { + +// ================================================================================================= +#pragma mark - +#pragma mark * Visitor_Expr_Rel_DoMakeIterator + +class Visitor_Expr_Rel_DoMakeIterator +: public virtual ZQL::Visitor_Expr_Rel_Binary_Difference +, public virtual ZQL::Visitor_Expr_Rel_Binary_Intersect +, public virtual ZQL::Visitor_Expr_Rel_Binary_Join +, public virtual ZQL::Visitor_Expr_Rel_Binary_Union +, public virtual ZQL::Visitor_Expr_Rel_Unary_Project +, public virtual ZQL::Visitor_Expr_Rel_Unary_Rename +, public virtual ZQL::Visitor_Expr_Rel_Unary_Select + { +public: + virtual void Visit_Expr_Rel_Binary_Difference(ZRef<ZQL::Expr_Rel_Binary_Difference> iExpr); + virtual void Visit_Expr_Rel_Binary_Intersect(ZRef<ZQL::Expr_Rel_Binary_Intersect> iExpr); + virtual void Visit_Expr_Rel_Binary_Join(ZRef<ZQL::Expr_Rel_Binary_Join> iExpr); + virtual void Visit_Expr_Rel_Binary_Union(ZRef<ZQL::Expr_Rel_Binary_Union> iExpr); + + virtual void Visit_Expr_Rel_Unary_Project(ZRef<ZQL::Expr_Rel_Unary_Project> iExpr); + virtual void Visit_Expr_Rel_Unary_Rename(ZRef<ZQL::Expr_Rel_Unary_Rename> iExpr); + virtual void Visit_Expr_Rel_Unary_Select(ZRef<ZQL::Expr_Rel_Unary_Select> iExpr); + +// Our protocol + ZRef<Iterator> DoMakeIterator(ZRef<ZQL::Expr_Rel> iExpr); + +protected: + ZRef<Iterator> fIterator; + }; + +} // namespace ZQE +NAMESPACE_ZOOLIB_END + +#endif // __ZQE_Visitor_Expr_Rel_DoMakeIterator__ Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -50,8 +50,8 @@ #pragma mark - #pragma mark * Visitor_Expr_Rel -void Visitor_Expr_Rel::Visit_Expr_Rel(ZRef<Expr_Rel> iRep) - { ZVisitor_Expr::Visit_Expr(iRep); } +void Visitor_Expr_Rel::Visit_Expr_Rel(ZRef<Expr_Rel> iExpr) + { ZVisitor_Expr::Visit_Expr(iExpr); } } // namespace ZQL NAMESPACE_ZOOLIB_END Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -23,7 +23,6 @@ #include "zconfig.h" #include "zoolib/ZExpr.h" -#include "zoolib/ZRelHead.h" #include <string> @@ -47,8 +46,6 @@ // Our protocol virtual void Accept_Expr_Rel(Visitor_Expr_Rel& iVisitor); - - virtual ZRelHead GetRelHead() = 0; }; // ================================================================================================= @@ -58,7 +55,7 @@ class Visitor_Expr_Rel : public virtual ZVisitor_Expr { public: - virtual void Visit_Expr_Rel(ZRef<Expr_Rel> iRep); + virtual void Visit_Expr_Rel(ZRef<Expr_Rel> iExpr); }; // ================================================================================================= Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -66,12 +66,12 @@ #pragma mark * Visitor_Expr_Rel_Binary void Visitor_Expr_Rel_Binary::Visit_Expr_Rel_Binary( - ZRef<Expr_Rel_Binary> iRep) + ZRef<Expr_Rel_Binary> iExpr) { - if (ZRef<Expr_Rel> theRelation = iRep->GetLHS()) + if (ZRef<Expr_Rel> theRelation = iExpr->GetLHS()) theRelation->Accept(*this); - if (ZRef<Expr_Rel> theRelation = iRep->GetRHS()) + if (ZRef<Expr_Rel> theRelation = iExpr->GetRHS()) theRelation->Accept(*this); } Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -65,7 +65,7 @@ class Visitor_Expr_Rel_Binary : public virtual Visitor_Expr_Rel { public: - virtual void Visit_Expr_Rel_Binary(ZRef<Expr_Rel_Binary> iRep); + virtual void Visit_Expr_Rel_Binary(ZRef<Expr_Rel_Binary> iExpr); }; } // namespace ZQL Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Difference.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Difference.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Difference.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -34,9 +34,6 @@ : Expr_Rel_Binary(iLHS, iRHS) {} -ZRelHead Expr_Rel_Binary_Difference::GetRelHead() - { return this->GetLHS()->GetRelHead() | this->GetRHS()->GetRelHead(); } - void Expr_Rel_Binary_Difference::Accept_Expr_Rel_Binary( Visitor_Expr_Rel_Binary& iVisitor) { @@ -64,8 +61,8 @@ #pragma mark * Visitor_Expr_Rel_Binary_Difference void Visitor_Expr_Rel_Binary_Difference::Visit_Expr_Rel_Binary_Difference( - ZRef<Expr_Rel_Binary_Difference> iRep) - { Visitor_Expr_Rel_Binary::Visit_Expr_Rel_Binary(iRep); } + ZRef<Expr_Rel_Binary_Difference> iExpr) + { Visitor_Expr_Rel_Binary::Visit_Expr_Rel_Binary(iExpr); } } // namespace ZQL NAMESPACE_ZOOLIB_END Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Difference.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Difference.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Difference.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -39,9 +39,6 @@ Expr_Rel_Binary_Difference(ZRef<Expr_Rel> iLHS, ZRef<Expr_Rel> iRHS); virtual ~Expr_Rel_Binary_Difference(); -// From Expr_Rel via Expr_Rel_Binary - virtual ZRelHead GetRelHead(); - // From Expr_Rel_Binary virtual void Accept_Expr_Rel_Binary(Visitor_Expr_Rel_Binary& iVisitor); @@ -61,7 +58,7 @@ { public: virtual void Visit_Expr_Rel_Binary_Difference( - ZRef<Expr_Rel_Binary_Difference> iRep); + ZRef<Expr_Rel_Binary_Difference> iExpr); }; } // namespace ZQL Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -34,9 +34,6 @@ : Expr_Rel_Binary(iLHS, iRHS) {} -ZRelHead Expr_Rel_Binary_Intersect::GetRelHead() - { return this->GetLHS()->GetRelHead() | this->GetRHS()->GetRelHead(); } - void Expr_Rel_Binary_Intersect::Accept_Expr_Rel_Binary( Visitor_Expr_Rel_Binary& iVisitor) { @@ -64,8 +61,8 @@ #pragma mark * Visitor_Expr_Rel_Binary_Intersect void Visitor_Expr_Rel_Binary_Intersect::Visit_Expr_Rel_Binary_Intersect( - ZRef<Expr_Rel_Binary_Intersect> iRep) - { Visitor_Expr_Rel_Binary::Visit_Expr_Rel_Binary(iRep); } + ZRef<Expr_Rel_Binary_Intersect> iExpr) + { Visitor_Expr_Rel_Binary::Visit_Expr_Rel_Binary(iExpr); } // ================================================================================================= #pragma mark - Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Intersect.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -39,9 +39,6 @@ Expr_Rel_Binary_Intersect(ZRef<Expr_Rel> iLHS, ZRef<Expr_Rel> iRHS); virtual ~Expr_Rel_Binary_Intersect(); -// From Expr_Rel via Expr_Rel_Binary - virtual ZRelHead GetRelHead(); - // From Expr_Rel_Binary virtual void Accept_Expr_Rel_Binary(Visitor_Expr_Rel_Binary& iVisitor); @@ -61,7 +58,7 @@ { public: virtual void Visit_Expr_Rel_Binary_Intersect( - ZRef<Expr_Rel_Binary_Intersect> iRep); + ZRef<Expr_Rel_Binary_Intersect> iExpr); }; // ================================================================================================= Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Join.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Join.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Join.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -37,9 +37,6 @@ Expr_Rel_Binary_Join::~Expr_Rel_Binary_Join() {} -ZRelHead Expr_Rel_Binary_Join::GetRelHead() - { return this->GetLHS()->GetRelHead() | this->GetRHS()->GetRelHead(); } - void Expr_Rel_Binary_Join::Accept_Expr_Rel_Binary( Visitor_Expr_Rel_Binary& iVisitor) { @@ -67,8 +64,8 @@ #pragma mark * Visitor_Expr_Rel_Binary_Join void Visitor_Expr_Rel_Binary_Join::Visit_Expr_Rel_Binary_Join( - ZRef<Expr_Rel_Binary_Join> iRep) - { Visitor_Expr_Rel_Binary::Visit_Expr_Rel_Binary(iRep); } + ZRef<Expr_Rel_Binary_Join> iExpr) + { Visitor_Expr_Rel_Binary::Visit_Expr_Rel_Binary(iExpr); } // ================================================================================================= #pragma mark - Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Join.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Join.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Join.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -39,9 +39,6 @@ Expr_Rel_Binary_Join(ZRef<Expr_Rel> iLHS, ZRef<Expr_Rel> iRHS); virtual ~Expr_Rel_Binary_Join(); -// From Expr_Rel via Expr_Rel_Binary - virtual ZRelHead GetRelHead(); - // From Expr_Rel_Binary virtual void Accept_Expr_Rel_Binary(Visitor_Expr_Rel_Binary& iVisitor); @@ -60,7 +57,7 @@ class Visitor_Expr_Rel_Binary_Join : public virtual Visitor_Expr_Rel_Binary { public: - virtual void Visit_Expr_Rel_Binary_Join(ZRef<Expr_Rel_Binary_Join> iRep); + virtual void Visit_Expr_Rel_Binary_Join(ZRef<Expr_Rel_Binary_Join> iExpr); }; // ================================================================================================= Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Union.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Union.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Union.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -37,9 +37,6 @@ Expr_Rel_Binary_Union::~Expr_Rel_Binary_Union() {} -ZRelHead Expr_Rel_Binary_Union::GetRelHead() - { return this->GetLHS()->GetRelHead() | this->GetRHS()->GetRelHead(); } - void Expr_Rel_Binary_Union::Accept_Expr_Rel_Binary( Visitor_Expr_Rel_Binary& iVisitor) { @@ -67,8 +64,8 @@ #pragma mark * Visitor_Expr_Rel_Binary_Union void Visitor_Expr_Rel_Binary_Union::Visit_Expr_Rel_Binary_Union( - ZRef<Expr_Rel_Binary_Union> iRep) - { Visitor_Expr_Rel_Binary::Visit_Expr_Rel_Binary(iRep); } + ZRef<Expr_Rel_Binary_Union> iExpr) + { Visitor_Expr_Rel_Binary::Visit_Expr_Rel_Binary(iExpr); } // ================================================================================================= #pragma mark - Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Union.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Union.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Binary_Union.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -39,9 +39,6 @@ Expr_Rel_Binary_Union(ZRef<Expr_Rel> iLHS, ZRef<Expr_Rel> iRHS); virtual ~Expr_Rel_Binary_Union(); -// From Expr_Rel via Expr_Rel_Binary - virtual ZRelHead GetRelHead(); - // From Expr_Rel_Binary virtual void Accept_Expr_Rel_Binary(Visitor_Expr_Rel_Binary& iVisitor); @@ -60,7 +57,7 @@ class Visitor_Expr_Rel_Binary_Union : public virtual Visitor_Expr_Rel_Binary { public: - virtual void Visit_Expr_Rel_Binary_Union(ZRef<Expr_Rel_Binary_Union> iRep); + virtual void Visit_Expr_Rel_Binary_Union(ZRef<Expr_Rel_Binary_Union> iExpr); }; // ================================================================================================= Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Concrete.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Concrete.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Concrete.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -68,8 +68,8 @@ #pragma mark * Visitor_Expr_Rel_Concrete void Visitor_Expr_Rel_Concrete::Visit_Expr_Rel_Concrete( - ZRef<Expr_Rel_Concrete> iRep) - { ZVisitor_Expr::Visit_Expr(iRep); } + ZRef<Expr_Rel_Concrete> iExpr) + { ZVisitor_Expr::Visit_Expr(iExpr); } } // namespace ZQL NAMESPACE_ZOOLIB_END Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Concrete.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Concrete.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Concrete.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -23,6 +23,7 @@ #include "zconfig.h" #include "zoolib/zql/ZQL_Expr_Rel.h" +#include "zoolib/zql/ZQL_RelHead.h" NAMESPACE_ZOOLIB_BEGIN namespace ZQL { @@ -58,6 +59,7 @@ // Our protocol virtual void Accept_Expr_Rel_Concrete(Visitor_Expr_Rel_Concrete& iVisitor); + virtual RelHead GetRelHead() = 0; virtual ZRef<ConcreteDomain> GetConcreteDomain(); }; @@ -68,7 +70,7 @@ class Visitor_Expr_Rel_Concrete : public virtual Visitor_Expr_Rel { public: - virtual void Visit_Expr_Rel_Concrete(ZRef<Expr_Rel_Concrete> iRep); + virtual void Visit_Expr_Rel_Concrete(ZRef<Expr_Rel_Concrete> iExpr); }; } // namespace ZQL Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -59,9 +59,9 @@ #pragma mark - #pragma mark * Visitor_Expr_Rel_Unary -void Visitor_Expr_Rel_Unary::Visit_Expr_Rel_Unary(ZRef<Expr_Rel_Unary> iRep) +void Visitor_Expr_Rel_Unary::Visit_Expr_Rel_Unary(ZRef<Expr_Rel_Unary> iExpr) { - if (ZRef<Expr_Rel> theRelation = iRep->GetExpr_Rel()) + if (ZRef<Expr_Rel> theRelation = iExpr->GetExpr_Rel()) theRelation->Accept(*this); } Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -62,7 +62,7 @@ class Visitor_Expr_Rel_Unary : public virtual Visitor_Expr_Rel { public: - virtual void Visit_Expr_Rel_Unary(ZRef<Expr_Rel_Unary> iRep); + virtual void Visit_Expr_Rel_Unary(ZRef<Expr_Rel_Unary> iExpr); }; } // namespace ZQL Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Project.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Project.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Project.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -30,7 +30,7 @@ #pragma mark * Expr_Rel_Unary_Project Expr_Rel_Unary_Project::Expr_Rel_Unary_Project( - const ZRef<Expr_Rel>& iExpr_Rel, const ZRelHead& iRelHead) + const ZRef<Expr_Rel>& iExpr_Rel, const RelHead& iRelHead) : Expr_Rel_Unary(iExpr_Rel) , fRelHead(iRelHead) {} @@ -38,9 +38,6 @@ Expr_Rel_Unary_Project::~Expr_Rel_Unary_Project() {} -ZRelHead Expr_Rel_Unary_Project::GetRelHead() - { return this->GetExpr_Rel()->GetRelHead() & fRelHead; } - void Expr_Rel_Unary_Project::Accept_Expr_Rel_Unary( Visitor_Expr_Rel_Unary& iVisitor) { @@ -63,7 +60,7 @@ Visitor_Expr_Rel_Unary_Project& iVisitor) { iVisitor.Visit_Expr_Rel_Unary_Project(this); } -ZRelHead Expr_Rel_Unary_Project::GetProjectRelHead() +RelHead Expr_Rel_Unary_Project::GetRelHead() { return fRelHead; } // ================================================================================================= @@ -71,20 +68,20 @@ #pragma mark * Visitor_Expr_Rel_Unary_Project void Visitor_Expr_Rel_Unary_Project::Visit_Expr_Rel_Unary_Project( - ZRef<Expr_Rel_Unary_Project> iRep) - { Visitor_Expr_Rel_Unary::Visit_Expr_Rel_Unary(iRep); } + ZRef<Expr_Rel_Unary_Project> iExpr) + { Visitor_Expr_Rel_Unary::Visit_Expr_Rel_Unary(iExpr); } // ================================================================================================= #pragma mark - #pragma mark * Relational operators -ZRef<Expr_Rel_Unary_Project> sProject(const ZRef<Expr_Rel>& iExpr, const ZRelHead& iRelHead) +ZRef<Expr_Rel_Unary_Project> sProject(const ZRef<Expr_Rel>& iExpr, const RelHead& iRelHead) { return new Expr_Rel_Unary_Project(iExpr, iRelHead); } -ZRef<Expr_Rel_Unary_Project> operator&(const ZRef<Expr_Rel>& iExpr, const ZRelHead& iRelHead) +ZRef<Expr_Rel_Unary_Project> operator&(const ZRef<Expr_Rel>& iExpr, const RelHead& iRelHead) { return new Expr_Rel_Unary_Project(iExpr, iRelHead); } -ZRef<Expr_Rel_Unary_Project> operator&(const ZRelHead& iRelHead, const ZRef<Expr_Rel>& iExpr) +ZRef<Expr_Rel_Unary_Project> operator&(const RelHead& iRelHead, const ZRef<Expr_Rel>& iExpr) { return new Expr_Rel_Unary_Project(iExpr, iRelHead); } } // namespace ZQL Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Project.h =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Project.h 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Project.h 2010-04-12 04:23:59 UTC (rev 1295) @@ -23,6 +23,7 @@ #include "zconfig.h" #include "zoolib/zql/ZQL_Expr_Rel_Unary.h" +#include "zoolib/zql/ZQL_RelHead.h" NAMESPACE_ZOOLIB_BEGIN namespace ZQL { @@ -37,13 +38,10 @@ { public: Expr_Rel_Unary_Project( - const ZRef<Expr_Rel>& iExpr_Rel, const ZRelHead& iRelHead); + const ZRef<Expr_Rel>& iExpr_Rel, const RelHead& iRelHead); virtual ~Expr_Rel_Unary_Project(); -// From Expr_Rel via Expr_Rel_Unary - virtual ZRelHead GetRelHead(); - // From Expr_Rel_Unary virtual void Accept_Expr_Rel_Unary(Visitor_Expr_Rel_Unary& iVisitor); @@ -53,10 +51,10 @@ virtual void Accept_Expr_Rel_Unary_Project( Visitor_Expr_Rel_Unary_Project& iVisitor); - ZRelHead GetProjectRelHead(); + RelHead GetRelHead(); private: - const ZRelHead fRelHead; + const RelHead fRelHead; }; // ================================================================================================= @@ -66,18 +64,18 @@ class Visitor_Expr_Rel_Unary_Project : public virtual Visitor_Expr_Rel_Unary { public: - virtual void Visit_Expr_Rel_Unary_Project(ZRef<Expr_Rel_Unary_Project> iRep); + virtual void Visit_Expr_Rel_Unary_Project(ZRef<Expr_Rel_Unary_Project> iExpr); }; // ================================================================================================= #pragma mark - #pragma mark * Relational operators -ZRef<Expr_Rel_Unary_Project> sProject(const ZRef<Expr_Rel>& iExpr, const ZRelHead& iRelHead); +ZRef<Expr_Rel_Unary_Project> sProject(const ZRef<Expr_Rel>& iExpr, const RelHead& iRelHead); -ZRef<Expr_Rel_Unary_Project> operator&(const ZRef<Expr_Rel>& iExpr, const ZRelHead& iRelHead); +ZRef<Expr_Rel_Unary_Project> operator&(const ZRef<Expr_Rel>& iExpr, const RelHead& iRelHead); -ZRef<Expr_Rel_Unary_Project> operator&(const ZRelHead& iRelHead, const ZRef<Expr_Rel>& iExpr); +ZRef<Expr_Rel_Unary_Project> operator&(const RelHead& iRelHead, const ZRef<Expr_Rel>& iExpr); } // namespace ZQL NAMESPACE_ZOOLIB_END Modified: trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Rename.cpp =================================================================== --- trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Rename.cpp 2010-04-11 20:12:03 UTC (rev 1294) +++ trunk/zoolib/source/cxx/more/zoolib/zql/ZQL_Expr_Rel_Unary_Rename.cpp 2010-04-12 04:23:59 UTC (rev 1295) @@ -39,17 +39,6 @@ Expr_Rel_Unary_Rename::~Expr_Rel_Unary_Rename() {} -ZRelHead Expr_Rel_Unary_Rename::GetRelHead() - { - ZRelHead theRelHead = this->GetExpr_Rel()->GetRelHead(); - if (theRelHead.Contains(fOld)) - { - theRelHead -= fOld; - theRelHead |= fNew; - } - return theRelHead; - } - void Expr_Rel_Unary_Rename::Accept_Expr_Rel_Unary( Visitor_Expr_Rel_Unary& iVisitor) { @@ -83,8 +72,8 @@ #pragma mark * Visitor_Expr_Rel_Unary_Rename void Visitor_Expr_Rel_Unary_Rename::Visit_Expr_Rel_Unary_Rename( - ZRef<Expr_Rel_Unary_Rename> iRep) - { Visitor_Expr_Rel_Unary::Visit_Expr_Rel_Unary(iRep); } + ZRef<Expr_Rel_Unary_Rename> iExpr) + { Visitor_E... [truncated message content] |