diff --git a/mondrian/src/main/java/mondrian/calc/impl/package.html b/mondrian/src/main/java/mondrian/calc/impl/package.html deleted file mode 100644 index 6cdf50bc42..0000000000 --- a/mondrian/src/main/java/mondrian/calc/impl/package.html +++ /dev/null @@ -1,10 +0,0 @@ - - -
-At present, many of the parse tree expression types
-({@link mondrian.olap.Exp}, {@link mondrian.olap.Literal}, etc.) are
-in the mondrian.olap package, but they will be migrated
-in mondrian 1.3.
The evaluator's context is preserved. * *
Note that a MemberValueCalc with 0 member expressions is equivalent to a - * {@link org.eclipse.daanse.olap.calc.base.value.CurrentValueUnknownCalc}; see also {@link mondrian.calc.impl.TupleValueCalc}. + * {@link org.eclipse.daanse.olap.calc.base.value.CurrentValueUnknownCalc}; see also {@link org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleValueCalc}. * * @author jhyde * @since Sep 27, 2005 diff --git a/mondrian/src/main/java/mondrian/calc/impl/TupleCollections.java b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/TupleCollections.java similarity index 97% rename from mondrian/src/main/java/mondrian/calc/impl/TupleCollections.java rename to mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/TupleCollections.java index 79568be60b..8f6cb32509 100644 --- a/mondrian/src/main/java/mondrian/calc/impl/TupleCollections.java +++ b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/TupleCollections.java @@ -5,9 +5,24 @@ * You must accept the terms of that agreement to use this software. * * Copyright (c) 2002-2017 Hitachi Vantara.. All rights reserved. + * + * ---- All changes after Fork in 2023 ------------------------ + * + * Project: Eclipse daanse + * + * Copyright (c) 2023 Contributors to the Eclipse Foundation. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors after Fork in 2023: + * SmartCity Jena - initial */ -package mondrian.calc.impl; +package org.eclipse.daanse.olap.calc.base.type.tuplebase; import java.util.AbstractList; import java.util.ArrayList; diff --git a/mondrian/src/main/java/mondrian/calc/impl/TupleValueCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/TupleValueCalc.java similarity index 87% rename from mondrian/src/main/java/mondrian/calc/impl/TupleValueCalc.java rename to mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/TupleValueCalc.java index dc6a6a1684..4910be6723 100644 --- a/mondrian/src/main/java/mondrian/calc/impl/TupleValueCalc.java +++ b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/TupleValueCalc.java @@ -5,9 +5,24 @@ * You must accept the terms of that agreement to use this software. * * Copyright (c) 2002-2017 Hitachi Vantara.. All rights reserved. + * + * ---- All changes after Fork in 2023 ------------------------ + * + * Project: Eclipse daanse + * + * Copyright (c) 2023 Contributors to the Eclipse Foundation. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors after Fork in 2023: + * SmartCity Jena - initial */ -package mondrian.calc.impl; +package org.eclipse.daanse.olap.calc.base.type.tuplebase; import org.eclipse.daanse.olap.api.Evaluator; import org.eclipse.daanse.olap.api.calc.Calc; @@ -27,7 +42,7 @@ *
The evaluator's context is preserved.
*
* @see org.eclipse.daanse.olap.calc.base.value.CurrentValueUnknownCalc
- * @see mondrian.calc.impl.MemberValueCalc
+ * @see org.eclipse.daanse.olap.calc.base.type.tuplebase.MemberValueCalc
*
* @author jhyde
* @since Sep 27, 2005
diff --git a/mondrian/src/main/java/mondrian/calc/impl/UnaryTupleList.java b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/UnaryTupleList.java
similarity index 93%
rename from mondrian/src/main/java/mondrian/calc/impl/UnaryTupleList.java
rename to mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/UnaryTupleList.java
index fa73f68abd..71e185a7b1 100644
--- a/mondrian/src/main/java/mondrian/calc/impl/UnaryTupleList.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/UnaryTupleList.java
@@ -5,9 +5,24 @@
* You must accept the terms of that agreement to use this software.
*
* Copyright (c) 2002-2017 Hitachi Vantara.. All rights reserved.
+ *
+ * ---- All changes after Fork in 2023 ------------------------
+ *
+ * Project: Eclipse daanse
+ *
+ * Copyright (c) 2023 Contributors to the Eclipse Foundation.
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors after Fork in 2023:
+ * SmartCity Jena - initial
*/
-package mondrian.calc.impl;
+package org.eclipse.daanse.olap.calc.base.type.tuplebase;
import java.util.AbstractList;
import java.util.ArrayList;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/package-info.java b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/package-info.java
new file mode 100644
index 0000000000..8b40cf0345
--- /dev/null
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplebase/package-info.java
@@ -0,0 +1,17 @@
+/*
+* Copyright (c) 2023 Contributors to the Eclipse Foundation.
+*
+* This program and the accompanying materials are made
+* available under the terms of the Eclipse Public License 2.0
+* which is available at https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* SmartCity Jena - initial
+* Stefan Bischof (bipolis.org) - initial
+*/
+//TODO: RM EXPORT
+@org.osgi.annotation.bundle.Export
+@org.osgi.annotation.versioning.Version("0.0.1")
+package org.eclipse.daanse.olap.calc.base.type.tuplebase;
\ No newline at end of file
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplelist/TupleIteratableToTupleListCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplelist/TupleIteratableToTupleListCalc.java
index 63fad9ceeb..ab73426d25 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplelist/TupleIteratableToTupleListCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplelist/TupleIteratableToTupleListCalc.java
@@ -7,8 +7,7 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleIterable;
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.calc.base.nested.AbstractProfilingNestedTupleListCalc;
-
-import mondrian.calc.impl.TupleCollections;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
public class TupleIteratableToTupleListCalc extends AbstractProfilingNestedTupleListCalc {
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplelist/package-info.java b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplelist/package-info.java
new file mode 100644
index 0000000000..9bfbaf4abe
--- /dev/null
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/type/tuplelist/package-info.java
@@ -0,0 +1,17 @@
+/*
+* Copyright (c) 2023 Contributors to the Eclipse Foundation.
+*
+* This program and the accompanying materials are made
+* available under the terms of the Eclipse Public License 2.0
+* which is available at https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* SmartCity Jena - initial
+* Stefan Bischof (bipolis.org) - initial
+*/
+//TODO: RM EXPORT
+@org.osgi.annotation.bundle.Export
+@org.osgi.annotation.versioning.Version("0.0.1")
+package org.eclipse.daanse.olap.calc.base.type.tuplelist;
\ No newline at end of file
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/value/CurrentValueUnknownCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/value/CurrentValueUnknownCalc.java
index 662c98f173..bf3fff0395 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/value/CurrentValueUnknownCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/calc/base/value/CurrentValueUnknownCalc.java
@@ -34,7 +34,7 @@
* Expression which yields the value of the current member in the current
* dimensional context.
*
- * @see mondrian.calc.impl.MemberValueCalc
+ * @see org.eclipse.daanse.olap.calc.base.type.tuplebase.MemberValueCalc
*
* @author jhyde
* @since Sep 27, 2005
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/AbstractAggregateFunDef.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/AbstractAggregateFunDef.java
index a0eecad94f..2c081a6473 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/AbstractAggregateFunDef.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/AbstractAggregateFunDef.java
@@ -28,12 +28,12 @@
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.function.FunctionMetaData;
import org.eclipse.daanse.olap.api.query.component.Expression;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.DelegatingTupleList;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
import org.eclipse.daanse.olap.function.def.AbstractFunctionDefinition;
import org.eclipse.daanse.olap.function.def.cache.CacheFunDef;
import org.eclipse.daanse.olap.query.component.UnresolvedFunCallImpl;
-import mondrian.calc.impl.DelegatingTupleList;
-import mondrian.calc.impl.TupleCollections;
import mondrian.olap.ResourceLimitExceededException;
import mondrian.olap.SystemWideProperties;
import mondrian.olap.fun.FunUtil;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/AggregateCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/AggregateCalc.java
index 95e28a1299..4f0c716830 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/AggregateCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/AggregateCalc.java
@@ -37,13 +37,13 @@
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
import org.eclipse.daanse.olap.calc.base.nested.AbstractProfilingNestedUnknownCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.calc.base.util.HirarchyDependsChecker;
import org.eclipse.daanse.olap.function.def.crossjoin.CrossJoinFunDef;
import org.eclipse.daanse.rolap.aggregator.AbstractAggregator;
import org.eclipse.daanse.rolap.aggregator.AvgAggregator;
import org.eclipse.daanse.rolap.aggregator.DistinctCountAggregator;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.StandardProperty;
import mondrian.olap.SystemWideProperties;
import mondrian.olap.Util;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/children/AggregateChildrenCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/children/AggregateChildrenCalc.java
index 671181c2bb..0582854803 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/children/AggregateChildrenCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/aggregate/children/AggregateChildrenCalc.java
@@ -24,9 +24,9 @@
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
import org.eclipse.daanse.olap.calc.base.nested.AbstractProfilingNestedUnknownCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.calc.base.value.CurrentValueUnknownCalc;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.StandardProperty;
import mondrian.olap.fun.FunUtil;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/as/AsAliasCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/as/AsAliasCalc.java
index 822b8c401b..1b1a4a909f 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/as/AsAliasCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/as/AsAliasCalc.java
@@ -27,11 +27,10 @@
import org.eclipse.daanse.olap.api.calc.Calc;
import org.eclipse.daanse.olap.api.calc.todo.TupleIterable;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleIteratorCalc;
import org.eclipse.daanse.olap.query.component.QueryImpl.ScopedNamedSet;
-import mondrian.calc.impl.AbstractIterCalc;
-
-public class AsAliasCalc extends AbstractIterCalc {
+public class AsAliasCalc extends AbstractProfilingNestedTupleIteratorCalc {
private ScopedNamedSet scopedNamedSet;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/cache/CacheGenericListCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/cache/CacheGenericListCalc.java
index d4a88e14a1..0101f96821 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/cache/CacheGenericListCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/cache/CacheGenericListCalc.java
@@ -22,8 +22,7 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.type.Type;
import org.eclipse.daanse.olap.calc.base.nested.AbstractProfilingNestedTupleListCalc;
-
-import mondrian.calc.impl.TupleCollections;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
public class CacheGenericListCalc extends AbstractProfilingNestedTupleListCalc {
private final ExpCacheDescriptor cacheDescriptor;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/BaseListCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/BaseListCalc.java
index 199caed459..6fc4128d8e 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/BaseListCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/BaseListCalc.java
@@ -21,12 +21,12 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.CatalogReader;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
import mondrian.olap.Util;
-public abstract class BaseListCalc extends AbstractListCalc {
+public abstract class BaseListCalc extends AbstractProfilingNestedTupleListCalc {
ResolvedFunCall call;
private int ctag;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/CrossJoinFunDef.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/CrossJoinFunDef.java
index 24f3e1236d..97fdc01337 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/CrossJoinFunDef.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/CrossJoinFunDef.java
@@ -44,6 +44,8 @@
import org.eclipse.daanse.olap.api.type.SetType;
import org.eclipse.daanse.olap.api.type.TupleType;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.ListTupleList;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
import org.eclipse.daanse.olap.function.def.AbstractFunctionDefinition;
import org.eclipse.daanse.olap.function.def.set.SetListCalc;
import org.eclipse.daanse.olap.function.def.set.ExprIterCalc;
@@ -51,8 +53,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import mondrian.calc.impl.ListTupleList;
-import mondrian.calc.impl.TupleCollections;
import mondrian.olap.ResultStyleException;
import mondrian.olap.Util;
import mondrian.olap.fun.FunUtil;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/CrossJoinIterCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/CrossJoinIterCalc.java
index a65c47cece..6da74a090e 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/CrossJoinIterCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/CrossJoinIterCalc.java
@@ -27,15 +27,15 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleIteratorCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractTupleCursor;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractTupleIterable;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractIterCalc;
-import mondrian.calc.impl.AbstractTupleCursor;
-import mondrian.calc.impl.AbstractTupleIterable;
-import mondrian.calc.impl.TupleCollections;
import mondrian.server.LocusImpl;
import mondrian.util.CancellationChecker;
-public class CrossJoinIterCalc extends AbstractIterCalc {
+public class CrossJoinIterCalc extends AbstractProfilingNestedTupleIteratorCalc {
private ResolvedFunCall call;
private int ctag;
public CrossJoinIterCalc( ResolvedFunCall call, Calc[] calcs, int ctag ) {
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/ImmutableListCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/ImmutableListCalc.java
index 311244f385..d022057db7 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/ImmutableListCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/ImmutableListCalc.java
@@ -21,8 +21,8 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.DelegatingTupleList;
-import mondrian.calc.impl.DelegatingTupleList;
import mondrian.olap.Util;
import mondrian.util.CartesianProductList;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/MeasureVisitor.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/MeasureVisitor.java
index 298ac7cfda..8438fe4679 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/MeasureVisitor.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/MeasureVisitor.java
@@ -23,8 +23,8 @@
import org.eclipse.daanse.olap.api.query.component.ParameterExpression;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.query.component.MdxVisitorImpl;
-import mondrian.mdx.MdxVisitorImpl;
import mondrian.olap.fun.ResolvedFunCallFinder;
/**
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/MutableListCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/MutableListCalc.java
index 09ec70fc38..d4fd14294a 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/MutableListCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/crossjoin/MutableListCalc.java
@@ -20,8 +20,7 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
-
-import mondrian.calc.impl.ListTupleList;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.ListTupleList;
public class MutableListCalc extends BaseListCalc {
public MutableListCalc( ResolvedFunCall call, Calc[] calcs, int ctag ) {
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsByDepthCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsByDepthCalc.java
index 4d191fb321..16eff161e4 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsByDepthCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsByDepthCalc.java
@@ -23,12 +23,12 @@
import org.eclipse.daanse.olap.api.CatalogReader;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.fun.sort.Sorter;
-public class DescendantsByDepthCalc extends AbstractListCalc {
+public class DescendantsByDepthCalc extends AbstractProfilingNestedTupleListCalc {
private Flag flag;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsCalc.java
index 790ecf1fce..ddfc900cbf 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsCalc.java
@@ -25,12 +25,12 @@
import org.eclipse.daanse.olap.api.element.Level;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.fun.sort.Sorter;
-public class DescendantsCalc extends AbstractListCalc{
+public class DescendantsCalc extends AbstractProfilingNestedTupleListCalc{
private final Flag flag;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsLeavesByDepthCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsLeavesByDepthCalc.java
index 41073f876b..5ffc3d58ee 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsLeavesByDepthCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/descendants/DescendantsLeavesByDepthCalc.java
@@ -23,13 +23,13 @@
import org.eclipse.daanse.olap.api.CatalogReader;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.Util;
import mondrian.olap.fun.sort.Sorter;
-public class DescendantsLeavesByDepthCalc extends AbstractListCalc {
+public class DescendantsLeavesByDepthCalc extends AbstractProfilingNestedTupleListCalc {
public DescendantsLeavesByDepthCalc(Type type, MemberCalc memberCalc, IntegerCalc depthCalc) {
super(type, memberCalc, depthCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownlevel/DrilldownLevelCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownlevel/DrilldownLevelCalc.java
index 3c8ec70c43..7ad5af2538 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownlevel/DrilldownLevelCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownlevel/DrilldownLevelCalc.java
@@ -26,12 +26,12 @@
import org.eclipse.daanse.olap.api.element.Level;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.fun.FunUtil;
-public class DrilldownLevelCalc extends AbstractListCalc{
+public class DrilldownLevelCalc extends AbstractProfilingNestedTupleListCalc{
private final boolean includeCalcMembers;
public DrilldownLevelCalc(Type type, TupleListCalc tupleListCalc, LevelCalc levelCalc, final boolean includeCalcMembers) {
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownlevel/DrilldownLevelWithIndexCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownlevel/DrilldownLevelWithIndexCalc.java
index 0f0cd0900b..e60a23cc33 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownlevel/DrilldownLevelWithIndexCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownlevel/DrilldownLevelWithIndexCalc.java
@@ -23,11 +23,10 @@
import org.eclipse.daanse.olap.api.CatalogReader;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
-
-public class DrilldownLevelWithIndexCalc extends AbstractListCalc {
+public class DrilldownLevelWithIndexCalc extends AbstractProfilingNestedTupleListCalc {
private final int arity;
private final boolean includeCalcMembers;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownleveltopbottom/DrilldownLevelTopBottomCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownleveltopbottom/DrilldownLevelTopBottomCalc.java
index 81a3b28fba..79a0194fd5 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownleveltopbottom/DrilldownLevelTopBottomCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownleveltopbottom/DrilldownLevelTopBottomCalc.java
@@ -31,14 +31,14 @@
import org.eclipse.daanse.olap.api.function.FunctionMetaData;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.calc.base.util.HirarchyDependsChecker;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.fun.FunUtil;
import mondrian.olap.fun.sort.Sorter;
-public class DrilldownLevelTopBottomCalc extends AbstractListCalc {
+public class DrilldownLevelTopBottomCalc extends AbstractProfilingNestedTupleListCalc {
private final boolean top;
private final ResolvedFunCall call;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownmember/DrilldownMemberCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownmember/DrilldownMemberCalc.java
index 0a769087dd..b00f4c9275 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownmember/DrilldownMemberCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/drilldownmember/DrilldownMemberCalc.java
@@ -22,11 +22,10 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
-
-public class DrilldownMemberCalc extends AbstractListCalc {
+public class DrilldownMemberCalc extends AbstractProfilingNestedTupleListCalc {
private final boolean recursive;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/except/ExceptCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/except/ExceptCalc.java
index a30a383bed..3faa811b31 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/except/ExceptCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/except/ExceptCalc.java
@@ -22,11 +22,10 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.ArrayTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.ArrayTupleList;
-
-public class ExceptCalc extends AbstractListCalc {
+public class ExceptCalc extends AbstractProfilingNestedTupleListCalc {
public ExceptCalc(Type type, TupleListCalc listCalc0, TupleListCalc listCalc1) {
super(type, listCalc0, listCalc1);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/exists/ExistsCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/exists/ExistsCalc.java
index a049241b80..afb612bb2a 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/exists/ExistsCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/exists/ExistsCalc.java
@@ -22,12 +22,12 @@
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
import mondrian.olap.fun.FunUtil;
-public class ExistsCalc extends AbstractListCalc {
+public class ExistsCalc extends AbstractProfilingNestedTupleListCalc {
public ExistsCalc(Type type, TupleListCalc listCalc1, TupleListCalc listCalc2) {
super(type, listCalc1, listCalc2);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/generate/GenerateListCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/generate/GenerateListCalc.java
index a72d91271c..501ea3a8b6 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/generate/GenerateListCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/generate/GenerateListCalc.java
@@ -27,14 +27,14 @@
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
import org.eclipse.daanse.olap.calc.base.util.HirarchyDependsChecker;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
import mondrian.server.LocusImpl;
import mondrian.util.CancellationChecker;
-public class GenerateListCalc extends AbstractListCalc {
+public class GenerateListCalc extends AbstractProfilingNestedTupleListCalc {
private final int arityOut;
private final boolean all;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/headtail/HeadCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/headtail/HeadCalc.java
index 40520ee48a..114223ab1e 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/headtail/HeadCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/headtail/HeadCalc.java
@@ -18,11 +18,10 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
-
-public class HeadCalc extends AbstractListCalc {
+public class HeadCalc extends AbstractProfilingNestedTupleListCalc {
public HeadCalc(Type type, TupleListCalc tupleListCalc, IntegerCalc integerCalc) {
super(type, tupleListCalc, integerCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/headtail/TailCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/headtail/TailCalc.java
index 204e86af56..2d56fcf220 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/headtail/TailCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/headtail/TailCalc.java
@@ -18,11 +18,10 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
-
-public class TailCalc extends AbstractListCalc {
+public class TailCalc extends AbstractProfilingNestedTupleListCalc {
public TailCalc(Type type, TupleListCalc tupleListCalc, IntegerCalc integerCalc) {
super(type, tupleListCalc, integerCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/hierarchize/HierarchizeCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/hierarchize/HierarchizeCalc.java
index 99565780ea..15593657ae 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/hierarchize/HierarchizeCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/hierarchize/HierarchizeCalc.java
@@ -17,11 +17,11 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
-import mondrian.calc.impl.AbstractListCalc;
import mondrian.olap.fun.sort.Sorter;
-public class HierarchizeCalc extends AbstractListCalc{
+public class HierarchizeCalc extends AbstractProfilingNestedTupleListCalc{
private boolean post;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/intersect/IntersectCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/intersect/IntersectCalc.java
index cac06b0d85..6eef755f62 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/intersect/IntersectCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/intersect/IntersectCalc.java
@@ -23,12 +23,11 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
import org.eclipse.daanse.olap.function.def.visualtotals.VisualTotalMember;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
-
-public class IntersectCalc extends AbstractListCalc {
+public class IntersectCalc extends AbstractProfilingNestedTupleListCalc {
private final boolean all;
private final int arity;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/lastperiods/LastPeriodsCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/lastperiods/LastPeriodsCalc.java
index e6147ad94a..85f265e743 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/lastperiods/LastPeriodsCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/lastperiods/LastPeriodsCalc.java
@@ -23,11 +23,10 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
-
-public class LastPeriodsCalc extends AbstractListCalc {
+public class LastPeriodsCalc extends AbstractProfilingNestedTupleListCalc {
public LastPeriodsCalc(Type type, MemberCalc memberCalc, IntegerCalc indexValueCalc) {
super(type, memberCalc, indexValueCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsCalc.java
index 40f698a934..e62288b3c2 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsCalc.java
@@ -22,12 +22,12 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
import mondrian.olap.fun.FunUtil;
-public class AncestorsCalc extends AbstractListCalc {
+public class AncestorsCalc extends AbstractProfilingNestedTupleListCalc {
protected AncestorsCalc(Type type, final MemberCalc memberCalc, final IntegerCalc distanceCalc) {
super(type, memberCalc, distanceCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsCalcForLevelType.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsCalcForLevelType.java
index d53e3d8172..ff5b0754b3 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsCalcForLevelType.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsCalcForLevelType.java
@@ -23,12 +23,12 @@
import org.eclipse.daanse.olap.api.element.Level;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
import mondrian.olap.fun.FunUtil;
-public class AncestorsCalcForLevelType extends AbstractListCalc{
+public class AncestorsCalcForLevelType extends AbstractProfilingNestedTupleListCalc{
protected AncestorsCalcForLevelType(Type type, final MemberCalc memberCalc, final LevelCalc levelCalc ) {
super(type, memberCalc, levelCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsFunDef.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsFunDef.java
index e52e4e5a73..fd79313107 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsFunDef.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/member/AncestorsFunDef.java
@@ -28,9 +28,9 @@
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
import org.eclipse.daanse.olap.api.type.LevelType;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
import org.eclipse.daanse.olap.function.def.AbstractFunctionDefinition;
-import mondrian.calc.impl.TupleCollections;
import mondrian.olap.fun.FunUtil;
public class AncestorsFunDef extends AbstractFunctionDefinition {
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/nativizeset/AddFormulasVisitor.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/nativizeset/AddFormulasVisitor.java
index 49bf9a10ce..f56bf315fc 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/nativizeset/AddFormulasVisitor.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/nativizeset/AddFormulasVisitor.java
@@ -27,10 +27,9 @@
import org.eclipse.daanse.olap.api.query.component.Query;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
import org.eclipse.daanse.olap.query.component.FormulaImpl;
+import org.eclipse.daanse.olap.query.component.MdxVisitorImpl;
import org.eclipse.daanse.olap.query.component.UnresolvedFunCallImpl;
-import mondrian.mdx.MdxVisitorImpl;
-
public class AddFormulasVisitor extends MdxVisitorImpl {
private final Query query;
private final Collection Also, does not process high-cardinality dimensions specially.
*/
-public class SetListCalc extends AbstractListCalc {
+public class SetListCalc extends AbstractProfilingNestedTupleListCalc {
private TupleList result;
private final VoidCalc[] voidCalcs;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/SetMemberCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/SetMemberCalc.java
index bb9e079898..2f3362ba0c 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/SetMemberCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/SetMemberCalc.java
@@ -20,12 +20,11 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleIterable;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleIteratorCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractIterCalc;
-import mondrian.calc.impl.TupleCollections;
-import mondrian.calc.impl.UnaryTupleList;
-
-public class SetMemberCalc extends AbstractIterCalc {
+public class SetMemberCalc extends AbstractProfilingNestedTupleIteratorCalc {
public SetMemberCalc(Type type, MemberCalc memberCalc) {
super(type, memberCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/SetMutableCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/SetMutableCalc.java
index 6fc68e5aa1..0e3bc2aa2f 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/SetMutableCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/SetMutableCalc.java
@@ -22,10 +22,9 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleIteratorCalc;
-import mondrian.calc.impl.AbstractIterCalc;
-
-public class SetMutableCalc extends AbstractIterCalc {
+public class SetMutableCalc extends AbstractProfilingNestedTupleIteratorCalc {
private final TupleListCalc tupleListCalc;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/addcalculatedmembers/AddCalculatedMembersCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/addcalculatedmembers/AddCalculatedMembersCalc.java
index 9f26014c96..962d8a4ec5 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/addcalculatedmembers/AddCalculatedMembersCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/addcalculatedmembers/AddCalculatedMembersCalc.java
@@ -26,12 +26,12 @@
import org.eclipse.daanse.olap.api.element.Level;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.fun.MondrianEvaluationException;
-public class AddCalculatedMembersCalc extends AbstractListCalc {
+public class AddCalculatedMembersCalc extends AbstractProfilingNestedTupleListCalc {
protected AddCalculatedMembersCalc(Type type, final TupleListCalc tupleListCalc) {
super(type, tupleListCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/ascendants/AscendantsCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/ascendants/AscendantsCalc.java
index b888465d15..469756df89 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/ascendants/AscendantsCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/ascendants/AscendantsCalc.java
@@ -23,11 +23,10 @@
import org.eclipse.daanse.olap.api.CatalogReader;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
-
-public class AscendantsCalc extends AbstractListCalc {
+public class AscendantsCalc extends AbstractProfilingNestedTupleListCalc {
protected AscendantsCalc(Type type, final MemberCalc memberCalc) {
super(type, memberCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/children/ChildrenCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/children/ChildrenCalc.java
index a05b7e681d..22406abf8b 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/children/ChildrenCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/children/ChildrenCalc.java
@@ -19,12 +19,12 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.fun.FunUtil;
-public class ChildrenCalc extends AbstractListCalc {
+public class ChildrenCalc extends AbstractProfilingNestedTupleListCalc {
protected ChildrenCalc(Type type, final MemberCalc memberCalc) {
super(type, new Calc[] { memberCalc }, false);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/distinct/DistinctCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/distinct/DistinctCalc.java
index 3c0d2d6956..b4ea24d0e0 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/distinct/DistinctCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/distinct/DistinctCalc.java
@@ -23,10 +23,9 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
-import mondrian.calc.impl.AbstractListCalc;
-
-public class DistinctCalc extends AbstractListCalc {
+public class DistinctCalc extends AbstractProfilingNestedTupleListCalc {
private final TupleListCalc tupleListCalc;
public DistinctCalc(ResolvedFunCall call, TupleListCalc tupleListCalc) {
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/existing/ExistingCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/existing/ExistingCalc.java
index 4de90dfaa1..2e1b5e39d1 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/existing/ExistingCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/existing/ExistingCalc.java
@@ -24,12 +24,12 @@
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
import mondrian.olap.fun.FunUtil;
-public class ExistingCalc extends AbstractListCalc {
+public class ExistingCalc extends AbstractProfilingNestedTupleListCalc {
private Type myType;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/extract/ExtractCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/extract/ExtractCalc.java
index 2bf83627d7..eea0097893 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/extract/ExtractCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/extract/ExtractCalc.java
@@ -22,11 +22,10 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
-
-public class ExtractCalc extends AbstractListCalc{
+public class ExtractCalc extends AbstractProfilingNestedTupleListCalc{
private int outArity;
private int[] extractedOrdinals;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/BaseIterFilterCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/BaseIterFilterCalc.java
index 47cdc41021..3837f44363 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/BaseIterFilterCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/BaseIterFilterCalc.java
@@ -21,11 +21,10 @@
import org.eclipse.daanse.olap.api.CatalogReader;
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleIteratorCalc;
import org.eclipse.daanse.olap.calc.base.util.HirarchyDependsChecker;
-import mondrian.calc.impl.AbstractIterCalc;
-
-public abstract class BaseIterFilterCalc extends AbstractIterCalc {
+public abstract class BaseIterFilterCalc extends AbstractProfilingNestedTupleIteratorCalc {
private ResolvedFunCall call;
protected BaseIterFilterCalc(ResolvedFunCall call, Calc>[] calcs) {
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/BaseListFilterCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/BaseListFilterCalc.java
index 46350d5ea0..c433732001 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/BaseListFilterCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/BaseListFilterCalc.java
@@ -21,11 +21,10 @@
import org.eclipse.daanse.olap.api.CatalogReader;
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
import org.eclipse.daanse.olap.calc.base.util.HirarchyDependsChecker;
-import mondrian.calc.impl.AbstractListCalc;
-
-public abstract class BaseListFilterCalc extends AbstractListCalc {
+public abstract class BaseListFilterCalc extends AbstractProfilingNestedTupleListCalc {
private ResolvedFunCall call;
protected BaseListFilterCalc(ResolvedFunCall call, Calc>[] calcs) {
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/IterIterFilterCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/IterIterFilterCalc.java
index 7e7fccce43..f650db27fe 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/IterIterFilterCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/IterIterFilterCalc.java
@@ -24,9 +24,9 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleIteratorCalc;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractTupleCursor;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractTupleIterable;
-import mondrian.calc.impl.AbstractTupleCursor;
-import mondrian.calc.impl.AbstractTupleIterable;
import mondrian.server.LocusImpl;
import mondrian.util.CancellationChecker;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/MutableIterFilterCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/MutableIterFilterCalc.java
index 630b8a9ac4..5dc331a915 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/MutableIterFilterCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/filter/MutableIterFilterCalc.java
@@ -22,8 +22,8 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
-import mondrian.calc.impl.TupleCollections;
import mondrian.util.CancellationChecker;
public class MutableIterFilterCalc extends BaseIterFilterCalc {
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/hierarchy/AllMembersCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/hierarchy/AllMembersCalc.java
index 9fde92d9f4..3d471431fe 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/hierarchy/AllMembersCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/hierarchy/AllMembersCalc.java
@@ -18,11 +18,11 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
-import mondrian.calc.impl.AbstractListCalc;
import mondrian.olap.fun.FunUtil;
-public class AllMembersCalc extends AbstractListCalc {
+public class AllMembersCalc extends AbstractProfilingNestedTupleListCalc {
protected AllMembersCalc(Type type, final HierarchyCalc hierarchyCalc) {
super(type, hierarchyCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/level/AllMembersCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/level/AllMembersCalc.java
index e579d5bcf1..006a8476e4 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/level/AllMembersCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/level/AllMembersCalc.java
@@ -18,11 +18,11 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Level;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
-import mondrian.calc.impl.AbstractListCalc;
import mondrian.olap.fun.FunUtil;
-public class AllMembersCalc extends AbstractListCalc {
+public class AllMembersCalc extends AbstractProfilingNestedTupleListCalc {
protected AllMembersCalc(Type type, final LevelCalc levelCalc) {
super(type, levelCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/level/LevelMembersCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/level/LevelMembersCalc.java
index b19a576565..e666bd5d45 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/level/LevelMembersCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/level/LevelMembersCalc.java
@@ -18,11 +18,11 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Level;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
-import mondrian.calc.impl.AbstractListCalc;
import mondrian.olap.fun.FunUtil;
-public class LevelMembersCalc extends AbstractListCalc {
+public class LevelMembersCalc extends AbstractProfilingNestedTupleListCalc {
protected LevelMembersCalc(Type type, final LevelCalc levelCalc) {
super(type, levelCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/members/MembersCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/members/MembersCalc.java
index 3375a9a4e2..e53a1d7586 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/members/MembersCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/members/MembersCalc.java
@@ -18,11 +18,11 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
-import mondrian.calc.impl.AbstractListCalc;
import mondrian.olap.fun.FunUtil;
-public class MembersCalc extends AbstractListCalc {
+public class MembersCalc extends AbstractProfilingNestedTupleListCalc {
protected MembersCalc(Type type, final HierarchyCalc hierarchyCalc) {
super(type, hierarchyCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/range/RangeCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/range/RangeCalc.java
index 752deb17de..92fdac1fe4 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/range/RangeCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/range/RangeCalc.java
@@ -18,13 +18,13 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.TupleCollections;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.fun.FunUtil;
-public class RangeCalc extends AbstractListCalc {
+public class RangeCalc extends AbstractProfilingNestedTupleListCalc {
protected RangeCalc(Type type, MemberCalc... calcs) {
super(type, calcs);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/siblings/SiblingsCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/siblings/SiblingsCalc.java
index 2927f2abde..b8d1222281 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/siblings/SiblingsCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/siblings/SiblingsCalc.java
@@ -22,11 +22,10 @@
import org.eclipse.daanse.olap.api.CatalogReader;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
-
-public class SiblingsCalc extends AbstractListCalc {
+public class SiblingsCalc extends AbstractProfilingNestedTupleListCalc {
protected SiblingsCalc(Type type, final MemberCalc memberCalc) {
super(type, memberCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/stripcalculatedmembers/StripCalculatedMembersCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/stripcalculatedmembers/StripCalculatedMembersCalc.java
index 51c61c555c..1228883178 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/stripcalculatedmembers/StripCalculatedMembersCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/set/stripcalculatedmembers/StripCalculatedMembersCalc.java
@@ -17,11 +17,11 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.calc.todo.TupleListCalc;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
-import mondrian.calc.impl.AbstractListCalc;
import mondrian.olap.fun.FunUtil;
-public class StripCalculatedMembersCalc extends AbstractListCalc {
+public class StripCalculatedMembersCalc extends AbstractProfilingNestedTupleListCalc {
protected StripCalculatedMembersCalc(Type type, final TupleListCalc tupleListCalc) {
super(type, tupleListCalc);
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/strtoset/StrToSetHierarchyCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/strtoset/StrToSetHierarchyCalc.java
index 4de9270518..b0045dedf0 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/strtoset/StrToSetHierarchyCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/strtoset/StrToSetHierarchyCalc.java
@@ -18,13 +18,13 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
-import mondrian.calc.impl.AbstractListCalc;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.exceptions.EmptyExpressionWasSpecifiedException;
import mondrian.olap.fun.FunUtil;
-public class StrToSetHierarchyCalc extends AbstractListCalc {
+public class StrToSetHierarchyCalc extends AbstractProfilingNestedTupleListCalc {
private Hierarchy hierarchy;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/strtoset/StrToSetHierarchyListCalc.java b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/strtoset/StrToSetHierarchyListCalc.java
index 45d52e9259..8f88bde6ad 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/strtoset/StrToSetHierarchyListCalc.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/function/def/strtoset/StrToSetHierarchyListCalc.java
@@ -20,12 +20,12 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleListCalc;
-import mondrian.calc.impl.AbstractListCalc;
import mondrian.olap.exceptions.EmptyExpressionWasSpecifiedException;
import mondrian.olap.fun.FunUtil;
-public class StrToSetHierarchyListCalc extends AbstractListCalc {
+public class StrToSetHierarchyListCalc extends AbstractProfilingNestedTupleListCalc {
private List The method implementations just ask the child nodes to
+ *
+ * The method implementations just ask the child nodes to
* {@link Expression#accept(QueryComponentVisitor)} this visitor.
*
* @author jhyde
* @since Jul 21, 2006
*/
public class MdxVisitorImpl implements QueryComponentVisitor {
+
private boolean shouldVisitChildren = true;
@Override
- public boolean visitChildren() {
+ public boolean visitChildren() {
boolean returnValue = shouldVisitChildren;
turnOnVisitChildren();
return returnValue;
@@ -53,73 +70,67 @@ public void turnOffVisitChildren() {
}
@Override
- public Object visitQuery(Query query) {
+ public Object visitQuery(Query query) {
return null;
}
@Override
- public Object visitQueryAxis(QueryAxis queryAxis) {
+ public Object visitQueryAxis(QueryAxis queryAxis) {
return null;
}
@Override
- public Object visitFormula(Formula formula) {
+ public Object visitFormula(Formula formula) {
return null;
}
@Override
- public Object visitUnresolvedFunCall(UnresolvedFunCall call) {
+ public Object visitUnresolvedFunCall(UnresolvedFunCall call) {
return null;
}
@Override
- public Object visitResolvedFunCall(ResolvedFunCall call) {
+ public Object visitResolvedFunCall(ResolvedFunCall call) {
return null;
}
@Override
- public Object visitId(Id id) {
+ public Object visitId(Id id) {
return null;
}
@Override
- public Object visitParameterExpression(ParameterExpression parameterExpr) {
+ public Object visitParameterExpression(ParameterExpression parameterExpr) {
return null;
}
@Override
- public Object visitDimensionExpression(DimensionExpression dimensionExpr) {
- // do nothing
+ public Object visitDimensionExpression(DimensionExpression dimensionExpr) {
return null;
}
@Override
- public Object visitHierarchyExpression(HierarchyExpression hierarchyExpr) {
- // do nothing
+ public Object visitHierarchyExpression(HierarchyExpression hierarchyExpr) {
return null;
}
@Override
- public Object visitLevelExpression(LevelExpression levelExpr) {
- // do nothing
+ public Object visitLevelExpression(LevelExpression levelExpr) {
return null;
}
@Override
- public Object visitMemberExpression(MemberExpression memberExpr) {
- // do nothing
+ public Object visitMemberExpression(MemberExpression memberExpr) {
return null;
}
@Override
- public Object visitNamedSetExpression(NamedSetExpression namedSetExpr) {
- // do nothing
+ public Object visitNamedSetExpression(NamedSetExpression namedSetExpr) {
return null;
}
@Override
- public Object visitLiteral(Literal> literal) {
- // do nothing
+ public Object visitLiteral(Literal> literal) {
return null;
}
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/NamedSetExpressionImpl.java b/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/NamedSetExpressionImpl.java
index 93e83957da..1230c598d8 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/NamedSetExpressionImpl.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/NamedSetExpressionImpl.java
@@ -24,9 +24,9 @@
import org.eclipse.daanse.olap.api.query.component.NamedSetExpression;
import org.eclipse.daanse.olap.api.query.component.visit.QueryComponentVisitor;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractProfilingNestedTupleIteratorCalc;
import org.eclipse.daanse.olap.query.component.expression.AbstractExpression;
-import mondrian.calc.impl.AbstractIterCalc;
import mondrian.olap.Util;
/**
@@ -106,7 +106,7 @@ public Calc accept(ExpressionCompiler compiler) {
return null;
}
- return new AbstractIterCalc(getType(),
+ return new AbstractProfilingNestedTupleIteratorCalc(getType(),
new Calc[]{/* todo: compile namedSet.getExp() */})
{
@Override
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/ParameterExpressionImpl.java b/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/ParameterExpressionImpl.java
index f0752234c3..2933a8da83 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/ParameterExpressionImpl.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/ParameterExpressionImpl.java
@@ -27,7 +27,6 @@
import org.eclipse.daanse.olap.query.component.expression.AbstractExpression;
import org.eclipse.daanse.olap.util.type.TypeUtil;
-import mondrian.mdx.QueryPrintWriter;
import mondrian.olap.Util;
/**
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/QueryImpl.java b/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/QueryImpl.java
index 2133b004e4..e1c053a626 100644
--- a/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/QueryImpl.java
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/QueryImpl.java
@@ -93,7 +93,6 @@
import org.eclipse.daanse.olap.impl.IdentifierParser;
import org.eclipse.daanse.olap.util.type.TypeUtil;
-import mondrian.mdx.MdxVisitorImpl;
import mondrian.olap.AbstractQueryPart;
import mondrian.olap.DelegatingCatalogReader;
import mondrian.olap.ExecuteDurationUtil;
diff --git a/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/QueryPrintWriter.java b/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/QueryPrintWriter.java
new file mode 100644
index 0000000000..8142a9dc7d
--- /dev/null
+++ b/mondrian/src/main/java/org/eclipse/daanse/olap/query/component/QueryPrintWriter.java
@@ -0,0 +1,44 @@
+/*
+ * This software is subject to the terms of the Eclipse Public License v1.0
+ * Agreement, available at the following URL:
+ * http://www.eclipse.org/legal/epl-v10.html.
+ * You must accept the terms of that agreement to use this software.
+ *
+ * Copyright (c) 2002-2017 Hitachi Vantara.. All rights reserved.
+ *
+ * ---- All changes after Fork in 2023 ------------------------
+ *
+ * Project: Eclipse daanse
+ *
+ * Copyright (c) 2023 Contributors to the Eclipse Foundation.
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors after Fork in 2023:
+ * SmartCity Jena - initial
+ */
+package org.eclipse.daanse.olap.query.component;
+
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.daanse.olap.api.Parameter;
+
+/**
+ * PrintWriter used for unparsing queries. Remembers which parameters have been
+ * printed. The first time, they print themselves as "Parameter"; subsequent
+ * times as "ParamRef".
+ */
+public class QueryPrintWriter extends PrintWriter {
+ public final SetResultStyleCompiler can be used to assure that
diff --git a/mondrian/src/test/java/mondrian/olap/fun/UnionFunDefTest.java b/mondrian/src/test/java/mondrian/olap/fun/UnionFunDefTest.java
index d82c575d98..3330c82b2d 100644
--- a/mondrian/src/test/java/mondrian/olap/fun/UnionFunDefTest.java
+++ b/mondrian/src/test/java/mondrian/olap/fun/UnionFunDefTest.java
@@ -27,6 +27,8 @@
import org.eclipse.daanse.olap.api.function.FunctionDefinition;
import org.eclipse.daanse.olap.api.query.component.Expression;
import org.eclipse.daanse.olap.api.type.SetType;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.ArrayTupleList;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.function.def.crossjoin.CrossJoinFunDef;
import org.eclipse.daanse.olap.function.def.crossjoin.ImmutableListCalc;
import org.eclipse.daanse.olap.function.def.union.UnionCalc;
@@ -38,8 +40,6 @@
import org.opencube.junit5.dataloader.FastFoodmardDataLoader;
import org.opencube.junit5.propupdator.AppandFoodMartCatalog;
-import mondrian.calc.impl.ArrayTupleList;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.rolap.RolapMemberBase;
/**
diff --git a/mondrian/src/test/java/mondrian/olap/fun/sort/SorterTest.java b/mondrian/src/test/java/mondrian/olap/fun/sort/SorterTest.java
index 57a3613b88..4afdfad43a 100644
--- a/mondrian/src/test/java/mondrian/olap/fun/sort/SorterTest.java
+++ b/mondrian/src/test/java/mondrian/olap/fun/sort/SorterTest.java
@@ -37,6 +37,7 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Hierarchy;
import org.eclipse.daanse.olap.api.element.Member;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
import org.eclipse.daanse.olap.function.def.member.memberorderkey.MemberOrderKeyCalc;
import org.eclipse.daanse.olap.query.component.QueryImpl;
import org.junit.jupiter.api.BeforeEach;
@@ -46,7 +47,6 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import mondrian.calc.impl.TupleCollections;
import mondrian.rolap.RolapConnection;
import mondrian.server.ExecutionImpl;
diff --git a/mondrian/src/test/java/mondrian/rolap/CancellationTest.java b/mondrian/src/test/java/mondrian/rolap/CancellationTest.java
index 670b968980..e114f2c9fb 100644
--- a/mondrian/src/test/java/mondrian/rolap/CancellationTest.java
+++ b/mondrian/src/test/java/mondrian/rolap/CancellationTest.java
@@ -25,6 +25,7 @@
import org.eclipse.daanse.olap.api.query.component.ResolvedFunCall;
import org.eclipse.daanse.olap.api.result.Position;
import org.eclipse.daanse.olap.api.result.Result;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.function.def.crossjoin.CrossJoinFunDef;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -34,7 +35,6 @@
import org.opencube.junit5.dataloader.FastFoodmardDataLoader;
import org.opencube.junit5.propupdator.AppandFoodMartCatalog;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.SystemWideProperties;
import mondrian.olap.fun.CrossJoinTest;
import mondrian.server.ExecutionImpl;
diff --git a/mondrian/src/test/java/mondrian/rolap/ModulosTest.java b/mondrian/src/test/java/mondrian/rolap/ModulosTest.java
index 4701af1c19..5f0c3f2868 100644
--- a/mondrian/src/test/java/mondrian/rolap/ModulosTest.java
+++ b/mondrian/src/test/java/mondrian/rolap/ModulosTest.java
@@ -17,10 +17,9 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.result.Axis;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.junit.jupiter.api.Test;
-import mondrian.calc.impl.UnaryTupleList;
-
/**
* Test that the implementations of the Modulos interface are correct.
*
diff --git a/mondrian/src/test/java/mondrian/rolap/RolapAxisTest.java b/mondrian/src/test/java/mondrian/rolap/RolapAxisTest.java
index 197d2548a1..8afefba720 100644
--- a/mondrian/src/test/java/mondrian/rolap/RolapAxisTest.java
+++ b/mondrian/src/test/java/mondrian/rolap/RolapAxisTest.java
@@ -17,9 +17,9 @@
import org.eclipse.daanse.olap.api.calc.todo.TupleList;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.result.Position;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
import org.junit.jupiter.api.Test;
-import mondrian.calc.impl.TupleCollections;
import mondrian.olap.fun.TestMember;
/**
diff --git a/mondrian/src/test/java/mondrian/rolap/RolapCubeTest.java b/mondrian/src/test/java/mondrian/rolap/RolapCubeTest.java
index 6377b88300..f196c7fda8 100644
--- a/mondrian/src/test/java/mondrian/rolap/RolapCubeTest.java
+++ b/mondrian/src/test/java/mondrian/rolap/RolapCubeTest.java
@@ -33,6 +33,7 @@
import org.eclipse.daanse.olap.api.element.Cube;
import org.eclipse.daanse.olap.api.element.Dimension;
import org.eclipse.daanse.olap.api.element.Member;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.query.component.IdImpl;
import org.eclipse.daanse.rolap.mapping.pojo.CalculatedMemberMappingImpl;
import org.junit.jupiter.api.AfterEach;
@@ -43,7 +44,6 @@
import org.opencube.junit5.dataloader.FastFoodmardDataLoader;
import org.opencube.junit5.propupdator.AppandFoodMartCatalog;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.SystemWideProperties;
import mondrian.olap.Util;
diff --git a/mondrian/src/test/java/mondrian/rolap/SqlConstraintUtilsTest.java b/mondrian/src/test/java/mondrian/rolap/SqlConstraintUtilsTest.java
index ecb8da3c52..ec473cf0b8 100644
--- a/mondrian/src/test/java/mondrian/rolap/SqlConstraintUtilsTest.java
+++ b/mondrian/src/test/java/mondrian/rolap/SqlConstraintUtilsTest.java
@@ -54,6 +54,8 @@
import org.eclipse.daanse.olap.api.type.NullType;
import org.eclipse.daanse.olap.api.type.TupleType;
import org.eclipse.daanse.olap.api.type.Type;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.AbstractTupleCursor;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.function.def.aggregate.AggregateFunDef;
import org.eclipse.daanse.olap.function.def.parentheses.ParenthesesFunDef;
import org.eclipse.daanse.olap.query.component.MemberExpressionImpl;
@@ -65,8 +67,6 @@
import org.opencube.junit5.dataloader.FastFoodmardDataLoader;
import org.opencube.junit5.propupdator.AppandFoodMartCatalog;
-import mondrian.calc.impl.AbstractTupleCursor;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.fun.CrossJoinTest.NullFunDef;
import mondrian.olap.fun.TestMember;
import mondrian.rolap.aggmatcher.AggStar;
diff --git a/mondrian/src/test/java/mondrian/rolap/agg/AggregationOnDistinctCountMeasuresTest.java b/mondrian/src/test/java/mondrian/rolap/agg/AggregationOnDistinctCountMeasuresTest.java
index c26ac12df2..a8e139e06f 100644
--- a/mondrian/src/test/java/mondrian/rolap/agg/AggregationOnDistinctCountMeasuresTest.java
+++ b/mondrian/src/test/java/mondrian/rolap/agg/AggregationOnDistinctCountMeasuresTest.java
@@ -41,6 +41,8 @@
import org.eclipse.daanse.olap.api.element.Cube;
import org.eclipse.daanse.olap.api.element.Member;
import org.eclipse.daanse.olap.api.result.Result;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.ArrayTupleList;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.function.def.aggregate.AggregateCalc;
import org.eclipse.daanse.olap.function.def.crossjoin.CrossJoinFunDef;
import org.eclipse.daanse.olap.query.component.IdImpl;
@@ -92,8 +94,6 @@
import org.opencube.junit5.dataloader.FastFoodmardDataLoader;
import org.opencube.junit5.propupdator.AppandFoodMartCatalog;
-import mondrian.calc.impl.ArrayTupleList;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.enums.DatabaseProduct;
import mondrian.olap.ResultBase;
import mondrian.olap.SystemWideProperties;
diff --git a/mondrian/src/test/java/mondrian/test/TupleListTest.java b/mondrian/src/test/java/mondrian/test/TupleListTest.java
index 04f2a7744c..5b925d7b65 100644
--- a/mondrian/src/test/java/mondrian/test/TupleListTest.java
+++ b/mondrian/src/test/java/mondrian/test/TupleListTest.java
@@ -29,6 +29,10 @@
import org.eclipse.daanse.olap.api.CatalogReader;
import org.eclipse.daanse.olap.api.element.Cube;
import org.eclipse.daanse.olap.api.element.Member;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.ArrayTupleList;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.DelegatingTupleList;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.TupleCollections;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.api.element.Catalog;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
@@ -36,10 +40,6 @@
import org.opencube.junit5.dataloader.FastFoodmardDataLoader;
import org.opencube.junit5.propupdator.AppandFoodMartCatalog;
-import mondrian.calc.impl.ArrayTupleList;
-import mondrian.calc.impl.DelegatingTupleList;
-import mondrian.calc.impl.TupleCollections;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.olap.Util;
import mondrian.rolap.RolapConnection;
import mondrian.server.LocusImpl;
diff --git a/mondrian/src/test/java/org/opencube/junit5/TestUtil.java b/mondrian/src/test/java/org/opencube/junit5/TestUtil.java
index eb697724da..253b020edc 100644
--- a/mondrian/src/test/java/org/opencube/junit5/TestUtil.java
+++ b/mondrian/src/test/java/org/opencube/junit5/TestUtil.java
@@ -73,6 +73,7 @@
import org.eclipse.daanse.olap.api.result.Position;
import org.eclipse.daanse.olap.api.result.Result;
import org.eclipse.daanse.olap.calc.base.profile.SimpleCalculationProfileWriter;
+import org.eclipse.daanse.olap.calc.base.type.tuplebase.UnaryTupleList;
import org.eclipse.daanse.olap.impl.CoordinateIterator;
import org.eclipse.daanse.olap.impl.TraditionalCellSetFormatter;
import org.eclipse.daanse.olap.query.component.IdImpl;
@@ -82,7 +83,6 @@
import org.opencube.junit5.context.TestContext;
import org.opencube.junit5.context.TestContextImpl;
-import mondrian.calc.impl.UnaryTupleList;
import mondrian.enums.DatabaseProduct;
import mondrian.olap.SystemWideProperties;
import mondrian.olap.Util;
diff --git a/olap/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/execute/OlapExecuteService.java b/olap/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/execute/OlapExecuteService.java
index 3f6e3274d6..e040ec851e 100644
--- a/olap/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/execute/OlapExecuteService.java
+++ b/olap/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/execute/OlapExecuteService.java
@@ -393,7 +393,7 @@ private StatementResponse executeUpdate(Connection connection, StatementRequest
for (UpdateClause updateClause : update.getUpdateClauses()) {
if (updateClause instanceof UpdateClause updateClauseImpl) {
StringWriter sw = new StringWriter();
- PrintWriter pw = new mondrian.mdx.QueryPrintWriter(sw);
+ PrintWriter pw = new org.eclipse.daanse.olap.query.component.QueryPrintWriter(sw);
updateClause.getTupleExp().unparse(pw);
String tupleString = sw.toString();
@@ -412,7 +412,7 @@ private StatementResponse executeUpdate(Connection connection, StatementRequest
// Cell writeBackCell = cellSet.getCell(Arrays.asList(0));
sw = new StringWriter();
- pw = new mondrian.mdx.QueryPrintWriter(sw);
+ pw = new org.eclipse.daanse.olap.query.component.QueryPrintWriter(sw);
updateClause.getValueExp().unparse(pw);
String valueString = sw.toString();