diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java index 70bc993f8b7e2..5dccd8fe10fda 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java @@ -537,7 +537,7 @@ private FragmentPlan prepareFragment(BaseQueryContext ctx, String jsonFragment) ); case EXPLAIN: - return executeExplain(qry, (ExplainPlan)plan); + return executeExplain((ExplainPlan)plan); case DDL: return executeDdl(qry, (DdlPlan)plan); @@ -883,7 +883,7 @@ private IgniteRel authorize(IgniteRel rel, IgniteTable.Operation op) { } /** */ - private FieldsQueryCursor> executeExplain(RootQuery qry, ExplainPlan plan) { + private FieldsQueryCursor> executeExplain(ExplainPlan plan) { QueryCursorImpl> cur = new QueryCursorImpl<>(singletonList(singletonList(plan.plan()))); cur.fieldsMeta(plan.fieldsMeta().queryFieldsMetadata(Commons.typeFactory())); diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/FragmentDescription.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/FragmentDescription.java index 7560be273c184..4cbb2f34faa62 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/FragmentDescription.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/FragmentDescription.java @@ -20,13 +20,12 @@ import java.util.List; import java.util.Map; import java.util.UUID; -import org.apache.ignite.IgniteCheckedException; -import org.apache.ignite.internal.MarshallableMessage; import org.apache.ignite.internal.Order; -import org.apache.ignite.marshaller.Marshaller; +import org.apache.ignite.plugin.extensions.communication.Message; +import org.jetbrains.annotations.Nullable; /** */ -public class FragmentDescription implements MarshallableMessage { +public class FragmentDescription implements Message { /** */ @Order(0) long fragmentId; @@ -41,7 +40,7 @@ public class FragmentDescription implements MarshallableMessage { /** */ @Order(3) - ColocationGroup target; + @Nullable ColocationGroup target; /** */ public FragmentDescription() { @@ -49,12 +48,14 @@ public FragmentDescription() { } /** */ - public FragmentDescription(long fragmentId, FragmentMapping mapping, ColocationGroup target, + public FragmentDescription(long fragmentId, FragmentMapping mapping, @Nullable ColocationGroup target, Map> remoteSources) { this.fragmentId = fragmentId; this.mapping = mapping; - this.target = target; this.remoteSources = remoteSources; + + if (target != null) + this.target = target.explicitMapping(); } /** */ @@ -73,7 +74,7 @@ public List nodeIds() { } /** */ - public ColocationGroup target() { + public @Nullable ColocationGroup target() { return target; } @@ -96,15 +97,4 @@ public FragmentMapping mapping() { public void mapping(FragmentMapping mapping) { this.mapping = mapping; } - - /** */ - @Override public void prepareMarshal(Marshaller marsh) throws IgniteCheckedException { - if (target != null) - target = target.explicitMapping(); - } - - /** */ - @Override public void finishUnmarshal(Marshaller marsh, ClassLoader clsLdr) throws IgniteCheckedException { - // No-op. - } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/ExecutionPlan.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/ExecutionPlan.java index 8a7058d7b09de..8338e731e6998 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/ExecutionPlan.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/ExecutionPlan.java @@ -30,6 +30,7 @@ import org.apache.ignite.internal.processors.query.calcite.rel.IgniteSender; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; +import org.jetbrains.annotations.Nullable; /** * @@ -72,7 +73,7 @@ public FragmentMapping mapping(Fragment fragment) { } /** */ - public ColocationGroup target(Fragment fragment) { + public @Nullable ColocationGroup target(Fragment fragment) { if (fragment.rootFragment()) return null;