Opened 16 years ago
Closed 16 years ago
#608 closed defect (fixed)
BinGroup error
Reported by: | jgarcia | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | SetAlgebra | Version: | head |
Severity: | blocker | Keywords: | |
Cc: |
Description
BinGroup function crash if Set param is an EvalSet as following example
TimeSet falla = BinGroup("Union", EvalSet(SetOfSerie(SubSer(CalInd(WD(7), Diario), y2008, y2009)), TimeSet(Serie sr)
{ SerTms(Not(IsUnknown(sr))) }));
If Set param is defined before BinGroup works perfectly
Set s = EvalSet(SetOfSerie(SubSer(CalInd(WD(7), Diario), y2008, y2009)), TimeSet(Serie sr)
{ SerTms(Not(IsUnknown(sr))) });
TimeSet falla = BinGroup("Union", s );
Change History (2)
comment:1 Changed 16 years ago by
Owner: | changed from Jorge to Víctor de Buen Remiro |
---|
comment:2 Changed 16 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
At first note that Union is not a binary operator as "+", but a n-ary one. So you should use Group("Union",...) that is more efficient that BinGroup("+",...). Even so, TOL should work fine and do not crash.
Problem was that BinGroup stores partial results using internal method CopyContens that was not implemented for TimeSet due it's imposible to make a copy of a pure virtual object. In order to avoid this problem CopyContens is implemented as a reference copy for TimeSet.
Problem has been fixed in HEAD
We are working about this bug
Thanks for reporting