diff --git a/community/cypher/cypher-compiler-3.4/LICENSES.txt b/community/cypher/cypher-compiler-3.4/LICENSES.txt
index dce524a961d91..ca47399b62729 100644
--- a/community/cypher/cypher-compiler-3.4/LICENSES.txt
+++ b/community/cypher/cypher-compiler-3.4/LICENSES.txt
@@ -4,6 +4,9 @@ libraries. For an overview of the licenses see the NOTICE.txt file.
------------------------------------------------------------------------------
Apache Software License, Version 2.0
Caffeine cache
+ Lucene Core
+ Lucene Memory
+ Netty/All-in-One
parboiled-core
parboiled-scala
------------------------------------------------------------------------------
@@ -284,4 +287,36 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+------------------------------------------------------------------------------
+Bouncy Castle License
+ Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
+ Bouncy Castle Provider
+------------------------------------------------------------------------------
+
+Please note: our license is an adaptation of the MIT X11 License and should be
+read as such.
+
+LICENSE
+
+Copyright (c) 2000 - 2011 The Legion Of The Bouncy Castle
+(http://www.bouncycastle.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 AUTHORS OR
+COPYRIGHT HOLDERS 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.
+
+
diff --git a/community/cypher/cypher-compiler-3.4/NOTICE.txt b/community/cypher/cypher-compiler-3.4/NOTICE.txt
index 38fc0e03c2951..45d4cffa01c69 100644
--- a/community/cypher/cypher-compiler-3.4/NOTICE.txt
+++ b/community/cypher/cypher-compiler-3.4/NOTICE.txt
@@ -27,6 +27,9 @@ Third-party licenses
Apache Software License, Version 2.0
Caffeine cache
+ Lucene Core
+ Lucene Memory
+ Netty/All-in-One
parboiled-core
parboiled-scala
@@ -36,3 +39,7 @@ BSD - Scala License
BSD License
Scala Compiler
+Bouncy Castle License
+ Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
+ Bouncy Castle Provider
+
diff --git a/community/cypher/cypher-compiler-3.4/pom.xml b/community/cypher/cypher-compiler-3.4/pom.xml
index 28acaba09c426..29748e846c511 100644
--- a/community/cypher/cypher-compiler-3.4/pom.xml
+++ b/community/cypher/cypher-compiler-3.4/pom.xml
@@ -108,6 +108,11 @@
neo4j-cypher-logical-plans-3.4
${project.version}
+
+ org.neo4j
+ neo4j-cypher-planner-spi-3.4
+ ${project.version}
+
@@ -126,6 +131,14 @@
test
+
+ org.neo4j
+ neo4j-cypher-expression-3.4
+ ${project.version}
+ test-jar
+ test
+
+
org.neo4j
neo4j-cypher-frontend-3.4
@@ -134,6 +147,14 @@
test
+
+ org.neo4j
+ neo4j-cypher-planner-spi-3.4
+ ${project.version}
+ test-jar
+ test
+
+
org.neo4j
neo4j-io
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/BoundOrdering.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/BoundOrdering.scala
deleted file mode 100644
index eeb40c6ee17ca..0000000000000
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/BoundOrdering.scala
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2002-2017 "Neo Technology,"
- * Network Engine for Objects in Lund AB [http://neotechnology.com]
- *
- * This file is part of Neo4j.
- *
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.neo4j.cypher.internal.compiler.v3_4
-
-import org.neo4j.cypher.internal.frontend.v3_4.Bound
-
-// Tested by SeekRangeTest
-final case class MinBoundOrdering[T](inner: Ordering[T]) extends Ordering[Bound[T]] {
- override def compare(x: Bound[T], y: Bound[T]): Int = {
- val cmp = inner.compare(x.endPoint, y.endPoint)
- if (cmp == 0)
- Ordering.Boolean.compare(x.isInclusive, y.isInclusive)
- else
- cmp
- }
-}
-
-// Tested by SeekRangeTest
-final case class MaxBoundOrdering[T](inner: Ordering[T]) extends Ordering[Bound[T]] {
- override def compare(x: Bound[T], y: Bound[T]): Int = {
- val cmp = inner.compare(x.endPoint, y.endPoint)
- if (cmp == 0)
- Ordering.Boolean.compare(y.isInclusive, x.isInclusive)
- else
- cmp
- }
-}
-
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ContextCreator.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ContextCreator.scala
index 5c937c2f78f27..23f1698d64adb 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ContextCreator.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ContextCreator.scala
@@ -22,10 +22,9 @@ package org.neo4j.cypher.internal.compiler.v3_4
import java.time.Clock
import org.neo4j.cypher.internal.util.v3_4.InputPosition
-import org.neo4j.cypher.internal.compiler.v3_4.phases.CompilerContext
-import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{ExpressionEvaluator, Metrics, MetricsFactory, QueryGraphSolver}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{ExpressionEvaluator, MetricsFactory, QueryGraphSolver}
import org.neo4j.cypher.internal.frontend.v3_4.phases.{BaseContext, CompilationPhaseTracer, InternalNotificationLogger, Monitors}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
trait ContextCreator[Context <: BaseContext] {
def create(tracer: CompilationPhaseTracer,
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherCompiler.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherCompiler.scala
index b75f1f4d196be..be63f5f689727 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherCompiler.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherCompiler.scala
@@ -30,6 +30,7 @@ import org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters.ASTRewriter
import org.neo4j.cypher.internal.frontend.v3_4.helpers.rewriting.RewriterStepSequencer
import org.neo4j.cypher.internal.frontend.v3_4.phases._
import org.neo4j.cypher.internal.ir.v3_4.UnionQuery
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IDPPlannerName, PlannerNameFor}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
case class CypherCompiler[Context <: CompilerContext](astRewriter: ASTRewriter,
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherCompilerFactory.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherCompilerFactory.scala
index b9822e727a6b0..13ac124b859df 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherCompilerFactory.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherCompilerFactory.scala
@@ -27,6 +27,7 @@ import org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters.ASTRewriter
import org.neo4j.cypher.internal.frontend.v3_4.helpers.rewriting.RewriterStepSequencer
import org.neo4j.cypher.internal.frontend.v3_4.phases.{Monitors, Transformer}
import org.neo4j.cypher.internal.frontend.v3_4.rewriters.IfNoParameter
+import org.neo4j.cypher.internal.planner.v3_4.spi.CostBasedPlannerName
class CypherCompilerFactory[C <: CompilerContext, T <: Transformer[C, LogicalPlanState, LogicalPlanState]] {
val monitorTag = "cypher3.3"
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/convert/plannerQuery/PlannerQueryBuilder.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/convert/plannerQuery/PlannerQueryBuilder.scala
index 3780bbef10d2d..5cbea2aea449c 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/convert/plannerQuery/PlannerQueryBuilder.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/convert/plannerQuery/PlannerQueryBuilder.scala
@@ -21,9 +21,9 @@ package org.neo4j.cypher.internal.compiler.v3_4.ast.convert.plannerQuery
import org.neo4j.cypher.internal.compiler.v3_4.helpers.ListSupport
import org.neo4j.cypher.internal.frontend.v3_4.ast.RelationshipStartItem
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.UnNamedNameGenerator
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.UnNamedNameGenerator
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
case class PlannerQueryBuilder(private val q: PlannerQuery, semanticTable: SemanticTable, returns: Seq[IdName] = Seq.empty)
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/phases/CompilerContext.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/phases/CompilerContext.scala
index 8e8aaadd38c8f..95d6e5b62e26d 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/phases/CompilerContext.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/phases/CompilerContext.scala
@@ -24,9 +24,9 @@ import java.time.Clock
import org.neo4j.cypher.internal.util.v3_4.{CypherException, InputPosition}
import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{Metrics, QueryGraphSolver}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.phases.{BaseContext, CompilationPhaseTracer, InternalNotificationLogger, Monitors}
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticErrorDef
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
class CompilerContext(val exceptionCreator: (String, InputPosition) => CypherException,
val tracer: CompilationPhaseTracer,
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/phases/RewriteProcedureCalls.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/phases/RewriteProcedureCalls.scala
index 31fa0ec0a2578..8270efbf82504 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/phases/RewriteProcedureCalls.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/phases/RewriteProcedureCalls.scala
@@ -20,13 +20,12 @@
package org.neo4j.cypher.internal.compiler.v3_4.phases
import org.neo4j.cypher.internal.util.v3_4.{Rewriter, bottomUp}
-import org.neo4j.cypher.internal.compiler.v3_4.ast.ResolvedFunctionInvocation
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.ast.conditions.{StatementCondition, containsNoNodesOfType}
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.CompilationPhase.AST_REWRITE
import org.neo4j.cypher.internal.frontend.v3_4.phases.{BaseState, Condition, Phase}
-import org.neo4j.cypher.internal.v3_4.logical.plans.ResolvedCall
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.v3_4.logical.plans.{ResolvedCall, ResolvedFunctionInvocation}
import org.neo4j.cypher.internal.v3_4.expressions.FunctionInvocation
// Given a way to lookup procedure signatures, this phase rewrites unresolved calls into resolved calls
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/ResolveTokens.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/ResolveTokens.scala
index 82ad27850dc86..6c2f50fb8ff5f 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/ResolveTokens.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/ResolveTokens.scala
@@ -20,12 +20,12 @@
package org.neo4j.cypher.internal.compiler.v3_4.planner
import org.neo4j.cypher.internal.compiler.v3_4.phases._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
import org.neo4j.cypher.internal.frontend.v3_4.ast.Query
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.CompilationPhase.AST_REWRITE
import org.neo4j.cypher.internal.frontend.v3_4.phases.{BaseState, VisitorPhase}
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId, RelTypeId}
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, PropertyKeyId, RelTypeId}
import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, PropertyKeyName, RelTypeName}
object ResolveTokens extends VisitorPhase[CompilerContext, BaseState] {
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CachedMetricsFactory.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CachedMetricsFactory.scala
index fb1c927efb4fd..1eee694388a50 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CachedMetricsFactory.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CachedMetricsFactory.scala
@@ -21,7 +21,7 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
import org.neo4j.cypher.internal.compiler.v3_4.helpers.CachedFunction
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.{CardinalityModel, QueryGraphCardinalityModel}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
case class CachedMetricsFactory(metricsFactory: MetricsFactory) extends MetricsFactory {
def newCardinalityEstimator(queryGraphCardinalityModel: QueryGraphCardinalityModel, evaluator: ExpressionEvaluator): CardinalityModel =
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalityCostModel.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalityCostModel.scala
index e51efc56609e3..779aefe74fa18 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalityCostModel.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalityCostModel.scala
@@ -22,6 +22,7 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics._
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, Cost, CostPerRow, Multiplier}
import org.neo4j.cypher.internal.v3_4.expressions.{HasLabels, Property}
object CardinalityCostModel extends CostModel {
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/LogicalPlanningContext.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/LogicalPlanningContext.scala
index c1b9a2b23c46c..4bc790b256e14 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/LogicalPlanningContext.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/LogicalPlanningContext.scala
@@ -22,10 +22,11 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
import org.neo4j.csv.reader.Configuration.DEFAULT_LEGACY_STYLE_QUOTING
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphSolverInput
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.LogicalPlanProducer
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, IdName, StrictnessMode}
+import org.neo4j.cypher.internal.ir.v3_4.{IdName, StrictnessMode}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.cypher.internal.v3_4.expressions.Variable
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/Metrics.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/Metrics.scala
index bad5a3fed617a..4afcb6598e0fc 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/Metrics.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/Metrics.scala
@@ -20,9 +20,10 @@
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.{CardinalityModel, CostModel, QueryGraphCardinalityModel}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4.{PlannerQuery, _}
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, Cost}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.cypher.internal.v3_4.expressions.{Expression, FunctionInvocation, LabelName, Parameter}
import org.neo4j.cypher.internal.v3_4.functions.{Rand, Timestamp}
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/QueryPlanner.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/QueryPlanner.scala
index 53c9af34d6346..3e68951b6e2dd 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/QueryPlanner.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/QueryPlanner.scala
@@ -24,7 +24,8 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.{CostMode
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.LogicalPlanProducer
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.CompilationPhase.LOGICAL_PLANNING
import org.neo4j.cypher.internal.frontend.v3_4.phases.Phase
-import org.neo4j.cypher.internal.ir.v3_4.{Cost, PeriodicCommit, PlannerQuery, UnionQuery}
+import org.neo4j.cypher.internal.ir.v3_4.{PeriodicCommit, PlannerQuery, UnionQuery}
+import org.neo4j.cypher.internal.util.v3_4.Cost
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, ProduceResult}
case class QueryPlanner(planSingleQuery: LogicalPlanningFunction1[PlannerQuery, LogicalPlan] = PlanSingleQuery()) extends Phase[CompilerContext, LogicalPlanState, LogicalPlanState] {
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/SimpleMetricsFactory.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/SimpleMetricsFactory.scala
index 185114fb00dd7..c92ac91824294 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/SimpleMetricsFactory.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/SimpleMetricsFactory.scala
@@ -21,7 +21,7 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.QueryGraphCardinalityModel
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
object SimpleMetricsFactory extends MetricsFactory {
def newCostModel(): CostModel = CardinalityCostModel
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/StatisticsBackedCardinalityModel.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/StatisticsBackedCardinalityModel.scala
index 52b70b9e8db92..66235d51b74ec 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/StatisticsBackedCardinalityModel.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/StatisticsBackedCardinalityModel.scala
@@ -22,9 +22,10 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
import org.neo4j.cypher.internal.compiler.v3_4.helpers.MapSupport._
import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.{CardinalityModel, QueryGraphCardinalityModel, QueryGraphSolverInput}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, Multiplier, Selectivity}
import org.neo4j.cypher.internal.v3_4.expressions.IntegerLiteral
import org.neo4j.values.storable.NumberValue
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/ExpressionSelectivityCalculator.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/ExpressionSelectivityCalculator.scala
index 7fce1357e9eea..7e94c26c9f098 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/ExpressionSelectivityCalculator.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/ExpressionSelectivityCalculator.scala
@@ -23,13 +23,13 @@ import java.math
import java.math.RoundingMode
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics._
-import org.neo4j.cypher.internal.compiler.v3_4.{IndexDescriptor, PrefixRange}
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, IdName, Selections, Selectivity}
+import org.neo4j.cypher.internal.ir.v3_4.{IdName, Selections}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, IndexDescriptor}
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics._
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, Selectivity}
import org.neo4j.cypher.internal.v3_4.expressions._
+import org.neo4j.cypher.internal.v3_4.logical.plans.PrefixRange
trait Expression2Selectivity {
def apply(exp: Expression)(implicit semanticTable: SemanticTable, selections: Selections): Selectivity
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/QueryGraphCardinalityModel.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/QueryGraphCardinalityModel.scala
index 8f7d59f19ef23..84226edb5ace5 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/QueryGraphCardinalityModel.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/QueryGraphCardinalityModel.scala
@@ -21,7 +21,7 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphCardinalityModel
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.assumeIndependence.AssumeIndependenceQueryGraphCardinalityModel
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
object QueryGraphCardinalityModel {
def default(statistics: GraphStatistics): QueryGraphCardinalityModel =
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityCombiner.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityCombiner.scala
index 9ea958b30a47b..2948d3adc3350 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityCombiner.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityCombiner.scala
@@ -21,7 +21,7 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality
import java.math
-import org.neo4j.cypher.internal.ir.v3_4.Selectivity
+import org.neo4j.cypher.internal.util.v3_4.Selectivity
trait SelectivityCombiner {
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityEstimator.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityEstimator.scala
index a0eb77960572d..9e548e8ee3658 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityEstimator.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityEstimator.scala
@@ -19,10 +19,11 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
import org.neo4j.cypher.internal.v3_4.expressions.Expression
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.ir.v3_4.{Selections, Selectivity}
+import org.neo4j.cypher.internal.ir.v3_4.Selections
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.Selectivity
trait SelectivityEstimator extends (Expression => Selectivity) {
self: SelectivityEstimator =>
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/TokenSpec.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/TokenSpec.scala
index 0232253958329..a965ba97b4a6b 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/TokenSpec.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/TokenSpec.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality
-import org.neo4j.cypher.internal.util.v3_4.InternalException
+import org.neo4j.cypher.internal.util.v3_4.{InternalException, LabelId, NameId, RelTypeId}
import org.neo4j.cypher.internal.frontend.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4.IdName
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/AssumeIndependenceQueryGraphCardinalityModel.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/AssumeIndependenceQueryGraphCardinalityModel.scala
index 4d30a692da0cb..17aca6bc356a3 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/AssumeIndependenceQueryGraphCardinalityModel.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/AssumeIndependenceQueryGraphCardinalityModel.scala
@@ -21,9 +21,10 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.assu
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.{QueryGraphCardinalityModel, QueryGraphSolverInput}
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.{ExpressionSelectivityCalculator, SelectivityCombiner}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4.{QueryGraph, _}
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, Selectivity}
import org.neo4j.cypher.internal.v3_4.expressions.LabelName
case class AssumeIndependenceQueryGraphCardinalityModel(stats: GraphStatistics, combiner: SelectivityCombiner)
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/PatternSelectivityCalculator.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/PatternSelectivityCalculator.scala
index 6005852a90925..1a10ceedc4bbe 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/PatternSelectivityCalculator.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/PatternSelectivityCalculator.scala
@@ -20,10 +20,10 @@
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.assumeIndependence
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
-import org.neo4j.cypher.internal.frontend.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4.{Selections, _}
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, RelTypeId, Selectivity}
import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, RelTypeName, SemanticDirection}
trait Pattern2Selectivity {
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/patternExpressionRewriter.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/patternExpressionRewriter.scala
index 00683cb9a0500..08e34c97d2bfb 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/patternExpressionRewriter.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/patternExpressionRewriter.scala
@@ -21,12 +21,12 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
import org.neo4j.cypher.internal.util.v3_4.Foldable._
import org.neo4j.cypher.internal.util.v3_4.{Rewriter, topDown}
-import org.neo4j.cypher.internal.compiler.v3_4.ast.NestedPlanExpression
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters.projectNamedPaths
import org.neo4j.cypher.internal.frontend.v3_4.{IdentityMap, ast}
import org.neo4j.cypher.internal.ir.v3_4.IdName
import org.neo4j.cypher.internal.v3_4.expressions._
+import org.neo4j.cypher.internal.v3_4.logical.plans.NestedPlanExpression
/*
Rewrite pattern expressions and pattern comprehensions to nested plan expressions by planning them using the given context.
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/Sargable.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/Sargable.scala
index 0abc0806e7f1d..abc8ea6bd8597 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/Sargable.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/Sargable.scala
@@ -19,10 +19,7 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans
-import org.neo4j.cypher.internal.compiler.v3_4._
-import org.neo4j.cypher.internal.compiler.v3_4.ast.{InequalitySeekRangeWrapper, PrefixSeekRangeWrapper}
import org.neo4j.cypher.internal.v3_4.logical.plans._
-import org.neo4j.cypher.internal.frontend.v3_4.{ExclusiveBound, InclusiveBound}
import org.neo4j.cypher.internal.v3_4.expressions._
import org.neo4j.cypher.internal.v3_4.functions
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/AbstractIndexSeekLeafPlanner.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/AbstractIndexSeekLeafPlanner.scala
index b4f86967b4a90..be8c68d7ffdce 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/AbstractIndexSeekLeafPlanner.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/AbstractIndexSeekLeafPlanner.scala
@@ -19,15 +19,15 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.LeafPlansForVariable.maybeLeafPlans
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{LeafPlanFromExpressions, LeafPlanner, LeafPlansForVariable, LogicalPlanningContext}
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.notification.IndexLookupUnfulfillableNotification
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4.{IdName, QueryGraph}
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.util.v3_4.LabelId
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/IndexSeekLeafPlanner.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/IndexSeekLeafPlanner.scala
index 0a8862d289d6f..7eedd1a0a12d1 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/IndexSeekLeafPlanner.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/IndexSeekLeafPlanner.scala
@@ -19,12 +19,12 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.ir.v3_4.IdName
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, QueryExpression}
-import org.neo4j.cypher.internal.v3_4.expressions.Expression
+import org.neo4j.cypher.internal.v3_4.expressions.{Expression, LabelToken, PropertyKeyToken}
object indexSeekLeafPlanner extends AbstractIndexSeekLeafPlanner {
protected def constructPlan(idName: IdName,
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/LogicalPlanProducer.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/LogicalPlanProducer.scala
index 2cef3038c74cb..cff40b345b44b 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/LogicalPlanProducer.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/LogicalPlanProducer.scala
@@ -188,8 +188,8 @@ case class LogicalPlanProducer(cardinalityModel: CardinalityModel) extends ListS
}
def planNodeIndexSeek(idName: IdName,
- label: ast.LabelToken,
- propertyKeys: Seq[ast.PropertyKeyToken],
+ label: LabelToken,
+ propertyKeys: Seq[PropertyKeyToken],
valueExpr: QueryExpression[Expression],
solvedPredicates: Seq[Expression] = Seq.empty,
solvedHint: Option[UsingIndexHint] = None,
@@ -204,8 +204,8 @@ case class LogicalPlanProducer(cardinalityModel: CardinalityModel) extends ListS
}
def planNodeIndexScan(idName: IdName,
- label: ast.LabelToken,
- propertyKey: ast.PropertyKeyToken,
+ label: LabelToken,
+ propertyKey: PropertyKeyToken,
solvedPredicates: Seq[Expression] = Seq.empty,
solvedHint: Option[UsingIndexHint] = None,
argumentIds: Set[IdName])(implicit context: LogicalPlanningContext): LogicalPlan = {
@@ -219,8 +219,8 @@ case class LogicalPlanProducer(cardinalityModel: CardinalityModel) extends ListS
}
def planNodeIndexContainsScan(idName: IdName,
- label: ast.LabelToken,
- propertyKey: ast.PropertyKeyToken,
+ label: LabelToken,
+ propertyKey: PropertyKeyToken,
solvedPredicates: Seq[Expression],
solvedHint: Option[UsingIndexHint],
valueExpr: Expression,
@@ -235,8 +235,8 @@ case class LogicalPlanProducer(cardinalityModel: CardinalityModel) extends ListS
}
def planNodeIndexEndsWithScan(idName: IdName,
- label: ast.LabelToken,
- propertyKey: ast.PropertyKeyToken,
+ label: LabelToken,
+ propertyKey: PropertyKeyToken,
solvedPredicates: Seq[Expression],
solvedHint: Option[UsingIndexHint],
valueExpr: Expression,
@@ -266,8 +266,8 @@ case class LogicalPlanProducer(cardinalityModel: CardinalityModel) extends ListS
}
def planNodeUniqueIndexSeek(idName: IdName,
- label: ast.LabelToken,
- propertyKeys: Seq[ast.PropertyKeyToken],
+ label: LabelToken,
+ propertyKeys: Seq[PropertyKeyToken],
valueExpr: QueryExpression[Expression],
solvedPredicates: Seq[Expression] = Seq.empty,
solvedHint: Option[UsingIndexHint] = None,
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/PatternExpressionSolver.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/PatternExpressionSolver.scala
index 5b13346848483..5d1a2cb8a49c4 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/PatternExpressionSolver.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/PatternExpressionSolver.scala
@@ -19,10 +19,9 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
-import org.neo4j.cypher.internal.util.v3_4.{Rewriter, topDown}
+import org.neo4j.cypher.internal.util.v3_4.{FreshIdNameGenerator, Rewriter, UnNamedNameGenerator, topDown}
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{LogicalPlanningContext, patternExpressionRewriter}
import org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters.{PatternExpressionPatternElementNamer, projectNamedPaths}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.{FreshIdNameGenerator, UnNamedNameGenerator}
import org.neo4j.cypher.internal.ir.v3_4.{IdName, QueryGraph}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/getDegreeRewriter.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/getDegreeRewriter.scala
index 0af4d8b3aeb02..1421365deab01 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/getDegreeRewriter.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/getDegreeRewriter.scala
@@ -20,10 +20,10 @@
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
import org.neo4j.cypher.internal.util.v3_4.{Rewriter, bottomUp}
-import org.neo4j.cypher.internal.compiler.v3_4.ast.NestedPlanExpression
import org.neo4j.cypher.internal.frontend.v3_4.helpers.calculateUsingGetDegree
import org.neo4j.cypher.internal.v3_4.expressions._
import org.neo4j.cypher.internal.v3_4.functions
+import org.neo4j.cypher.internal.v3_4.logical.plans.NestedPlanExpression
case object getDegreeRewriter extends Rewriter {
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/mergeUniqueIndexSeekLeafPlanner.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/mergeUniqueIndexSeekLeafPlanner.scala
index 4154b4a0eb641..3731bb8cfd08c 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/mergeUniqueIndexSeekLeafPlanner.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/mergeUniqueIndexSeekLeafPlanner.scala
@@ -19,12 +19,12 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{LeafPlansForVariable, LogicalPlanningContext}
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.ir.v3_4.{IdName, QueryGraph}
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, QueryExpression}
-import org.neo4j.cypher.internal.v3_4.expressions.Expression
+import org.neo4j.cypher.internal.v3_4.expressions.{Expression, LabelToken, PropertyKeyToken}
/*
* Plan the following type of plan
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/planShortestPaths.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/planShortestPaths.scala
index 1cafab82b3ff4..89c5024023c0f 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/planShortestPaths.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/planShortestPaths.scala
@@ -20,10 +20,9 @@
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.LogicalPlanningContext
-import org.neo4j.cypher.internal.util.v3_4.{ExhaustiveShortestPathForbiddenException, InternalException}
+import org.neo4j.cypher.internal.util.v3_4.{ExhaustiveShortestPathForbiddenException, FreshIdNameGenerator, InternalException}
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.idp.expandSolverStep
import org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters.projectNamedPaths
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.FreshIdNameGenerator
import org.neo4j.cypher.internal.frontend.v3_4.notification.ExhaustiveShortestPathForbiddenNotification
import org.neo4j.cypher.internal.ir.v3_4.{IdName, Predicate, ShortestPathPattern, _}
import org.neo4j.cypher.internal.v3_4.logical.plans.{Ascending, DoNotIncludeTies, IncludeTies, LogicalPlan}
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/selectPatternPredicates.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/selectPatternPredicates.scala
index de9f5fe303c5e..8e2d4c23f07d9 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/selectPatternPredicates.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/selectPatternPredicates.scala
@@ -21,8 +21,8 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical._
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.FreshIdNameGenerator
import org.neo4j.cypher.internal.ir.v3_4.{IdName, QueryGraph}
+import org.neo4j.cypher.internal.util.v3_4.FreshIdNameGenerator
import org.neo4j.cypher.internal.v3_4.expressions._
case object selectPatternPredicates extends CandidateGenerator[LogicalPlan] {
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/uniqueIndexSeekLeafPlanner.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/uniqueIndexSeekLeafPlanner.scala
index 1d8e7c1c99b88..283c33a99bd7d 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/uniqueIndexSeekLeafPlanner.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/uniqueIndexSeekLeafPlanner.scala
@@ -19,11 +19,11 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.LogicalPlanningContext
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken, UsingIndexHint}
+import org.neo4j.cypher.internal.frontend.v3_4.ast.UsingIndexHint
import org.neo4j.cypher.internal.ir.v3_4.IdName
-import org.neo4j.cypher.internal.v3_4.expressions.Expression
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.v3_4.expressions.{Expression, LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, QueryExpression}
object uniqueIndexSeekLeafPlanner extends AbstractIndexSeekLeafPlanner {
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/verifyBestPlan.scala b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/verifyBestPlan.scala
index 022a0b31e6ad2..a5c4d261ac845 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/verifyBestPlan.scala
+++ b/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/verifyBestPlan.scala
@@ -21,10 +21,10 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
import org.neo4j.cypher.internal.util.v3_4.{HintException, IndexHintException, InternalException, JoinHintException}
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{LogicalPlanningContext, PlanTransformer}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.notification.{IndexHintUnfulfillableNotification, JoinHintUnfulfillableNotification}
import org.neo4j.cypher.internal.ir.v3_4.PlannerQuery
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.cypher.internal.v3_4.expressions.LabelName
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/NotImplementedPlanContext.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/NotImplementedPlanContext.scala
index c9a242d9d38fa..987cecab5c783 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/NotImplementedPlanContext.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/NotImplementedPlanContext.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4
-import org.neo4j.cypher.internal.compiler.v3_4.spi._
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, IndexDescriptor, PlanContext}
import org.neo4j.cypher.internal.v3_4.logical.plans.{ProcedureSignature, QualifiedName, UserFunctionSignature}
class NotImplementedPlanContext extends PlanContext {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/SemanticStateTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/SemanticStateTest.scala
index 5b5e88cac37b1..9639937895f77 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/SemanticStateTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/SemanticStateTest.scala
@@ -21,10 +21,9 @@ package org.neo4j.cypher.internal.compiler.v3_4
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.semantics.{SemanticError, SemanticState}
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.v3_4.expressions.{Property, PropertyKeyName, Variable}
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, Property, PropertyKeyName, Variable}
class SemanticStateTest extends CypherFunSuite {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/rewriters/NamespacerTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/rewriters/NamespacerTest.scala
index f8dd2d184f3a9..2fb3f6c617b5f 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/rewriters/NamespacerTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/rewriters/NamespacerTest.scala
@@ -29,6 +29,7 @@ import org.neo4j.cypher.internal.frontend.v3_4.helpers.StatementHelper._
import org.neo4j.cypher.internal.frontend.v3_4.helpers.rewriting.RewriterStepSequencer
import org.neo4j.cypher.internal.frontend.v3_4.rewriters.Never
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticFeature
+import org.neo4j.cypher.internal.planner.v3_4.spi.IDPPlannerName
import org.neo4j.cypher.internal.util.v3_4.inSequence
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/CheckForUnresolvedTokensTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/CheckForUnresolvedTokensTest.scala
index 57f3a1f895265..c560de0906d20 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/CheckForUnresolvedTokensTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/CheckForUnresolvedTokensTest.scala
@@ -19,8 +19,7 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner
-import org.neo4j.cypher.internal.util.v3_4.InputPosition
-import org.neo4j.cypher.internal.compiler.v3_4.IDPPlannerName
+import org.neo4j.cypher.internal.util.v3_4.{InputPosition, LabelId, PropertyKeyId, RelTypeId}
import org.neo4j.cypher.internal.compiler.v3_4.phases.LogicalPlanState
import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.ContextHelper
import org.neo4j.cypher.internal.frontend.v3_4.ast.Query
@@ -29,6 +28,7 @@ import org.neo4j.cypher.internal.frontend.v3_4.phases.RecordingNotificationLogge
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.frontend.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
+import org.neo4j.cypher.internal.planner.v3_4.spi.IDPPlannerName
class CheckForUnresolvedTokensTest extends CypherFunSuite with AstRewritingTestSupport {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/DbStructureGraphStatistics.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/DbStructureGraphStatistics.scala
index 4cb919bb9947d..94922cb68bebe 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/DbStructureGraphStatistics.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/DbStructureGraphStatistics.scala
@@ -19,15 +19,13 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, NameId, RelTypeId}
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, Selectivity}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, IndexDescriptor}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, RelTypeId, Selectivity}
import org.neo4j.kernel.impl.util.dbstructure.DbStructureLookup
class DbStructureGraphStatistics(lookup: DbStructureLookup) extends GraphStatistics {
- import NameId._
+ import org.neo4j.cypher.internal.util.v3_4.NameId._
override def nodesWithLabelCardinality( label: Option[LabelId] ): Cardinality =
Cardinality(lookup.nodesWithLabelCardinality(label))
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/DbStructureLogicalPlanningConfiguration.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/DbStructureLogicalPlanningConfiguration.scala
index e675f1a4f57d9..5391059177ff2 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/DbStructureLogicalPlanningConfiguration.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/DbStructureLogicalPlanningConfiguration.scala
@@ -21,9 +21,9 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner
import java.util
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, StatisticsCompletingGraphStatistics}
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId, RelTypeId}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, StatisticsCompletingGraphStatistics}
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, PropertyKeyId, RelTypeId}
import org.neo4j.helpers.collection.{Pair, Visitable}
import org.neo4j.kernel.impl.util.dbstructure.{DbStructureCollector, DbStructureLookup, DbStructureVisitor}
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/HardcodedGraphStatistics.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/HardcodedGraphStatistics.scala
similarity index 82%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/HardcodedGraphStatistics.scala
rename to community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/HardcodedGraphStatistics.scala
index f589294b204ee..b4f95d9030553 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/HardcodedGraphStatistics.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/HardcodedGraphStatistics.scala
@@ -17,16 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
+package org.neo4j.cypher.internal.compiler.v3_4.planner
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, RelTypeId}
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, Selectivity}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, IndexDescriptor}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, RelTypeId, Selectivity}
-
-case object HardcodedGraphStatistics extends HardcodedGraphStatisticsValues
-
-class HardcodedGraphStatisticsValues extends GraphStatistics {
+case object HardcodedGraphStatistics extends GraphStatistics {
val NODES_CARDINALITY = Cardinality(10000)
val NODES_WITH_LABEL_SELECTIVITY = Selectivity.of(0.2).get
val NODES_WITH_LABEL_CARDINALITY = NODES_CARDINALITY * NODES_WITH_LABEL_SELECTIVITY
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningConfiguration.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningConfiguration.scala
index f118e4ea00ef6..b7f1c7082d666 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningConfiguration.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningConfiguration.scala
@@ -21,10 +21,10 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.ExpressionEvaluator
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId}
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, Cost, PlannerQuery, QueryGraph}
+import org.neo4j.cypher.internal.ir.v3_4.{PlannerQuery, QueryGraph}
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, Cost, LabelId, PropertyKeyId}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
trait LogicalPlanningConfiguration {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningTestSupport.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningTestSupport.scala
index 657a10065a136..62555b34ce277 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningTestSupport.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningTestSupport.scala
@@ -28,7 +28,6 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.idp._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.LogicalPlanProducer
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, PlanContext}
import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.ContextHelper
import org.neo4j.cypher.internal.frontend.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
@@ -42,6 +41,8 @@ import org.neo4j.cypher.internal.util.v3_4.test_helpers.{CypherFunSuite, CypherT
import org.neo4j.cypher.internal.frontend.v3_4.rewriters.Never
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.{CostBasedPlannerName, GraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, PropertyKeyId, RelTypeId}
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningTestSupport2.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningTestSupport2.scala
index acfdb1929ac93..eca21f1d91885 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningTestSupport2.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/LogicalPlanningTestSupport2.scala
@@ -29,9 +29,7 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.idp._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans.rewriter.unnestApply
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.LogicalPlanProducer
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{LogicalPlanningContext, _}
-import org.neo4j.cypher.internal.compiler.v3_4.spi._
import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.ContextHelper
-import org.neo4j.cypher.internal.frontend.v3_4.PropertyKeyId
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters._
import org.neo4j.cypher.internal.frontend.v3_4.helpers.fixedPoint
@@ -42,6 +40,8 @@ import org.neo4j.cypher.internal.frontend.v3_4.phases._
import org.neo4j.cypher.internal.frontend.v3_4.rewriters.Never
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, IDPPlannerName, IndexDescriptor}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, PropertyKeyId}
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, ProduceResult}
import org.neo4j.cypher.internal.v3_4.expressions.PatternExpression
import org.neo4j.helpers.collection.Visitable
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/RealLogicalPlanningConfiguration.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/RealLogicalPlanningConfiguration.scala
index ba442e8569252..f0357435892b3 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/RealLogicalPlanningConfiguration.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/RealLogicalPlanningConfiguration.scala
@@ -19,12 +19,12 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner
-import org.neo4j.cypher.internal.compiler.v3_4.HardcodedGraphStatistics
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.{CardinalityModel, QueryGraphCardinalityModel, QueryGraphSolverInput}
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{CardinalityCostModel, ExpressionEvaluator, Metrics, StatisticsBackedCardinalityModel}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, Cost, PlannerQuery, QueryGraph}
+import org.neo4j.cypher.internal.ir.v3_4.{PlannerQuery, QueryGraph}
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, Cost}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
case class RealLogicalPlanningConfiguration()
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/ResolveTokensTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/ResolveTokensTest.scala
index 26bd620a86794..a598d61a944c2 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/ResolveTokensTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/ResolveTokensTest.scala
@@ -21,10 +21,11 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner
import org.mockito.Mockito._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.ast.{Match, Query, SingleQuery, Where, _}
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, PropertyKeyId, RelTypeId}
import org.neo4j.cypher.internal.v3_4.expressions._
class ResolveTokensTest extends CypherFunSuite {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/StubbedLogicalPlanningConfiguration.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/StubbedLogicalPlanningConfiguration.scala
index 6b868bb3bf770..344921093442d 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/StubbedLogicalPlanningConfiguration.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/StubbedLogicalPlanningConfiguration.scala
@@ -21,10 +21,10 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.ExpressionEvaluator
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.{CardinalityModel, QueryGraphCardinalityModel, QueryGraphSolverInput}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, Cost, LabelId, Selectivity}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.cypher.internal.v3_4.expressions.{Expression, HasLabels}
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalityCostModelTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalityCostModelTest.scala
index 4b61bdc650477..74df84931239e 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalityCostModelTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalityCostModelTest.scala
@@ -23,7 +23,8 @@ import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphSolverInput
import org.neo4j.cypher.internal.frontend.v3_4.ast.AstConstructionTestSupport
-import org.neo4j.cypher.internal.ir.v3_4.{Cost, LazyMode}
+import org.neo4j.cypher.internal.ir.v3_4.LazyMode
+import org.neo4j.cypher.internal.util.v3_4.Cost
import org.neo4j.cypher.internal.v3_4.expressions.{HasLabels, LabelName, SemanticDirection}
import org.neo4j.cypher.internal.v3_4.logical.plans._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalitySupport.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalitySupport.scala
index 6503f50eb4b8a..a4ef59d328f38 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalitySupport.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/CardinalitySupport.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
-import org.neo4j.cypher.internal.ir.v3_4.Cardinality
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.scalautils.{Equality, Tolerance, TripleEquals}
object CardinalitySupport {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/DefaultQueryPlannerTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/DefaultQueryPlannerTest.scala
index fd429f84d8312..51ee5b9f23192 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/DefaultQueryPlannerTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/DefaultQueryPlannerTest.scala
@@ -26,11 +26,11 @@ import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphSolverInput
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.LogicalPlanProducer
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.ast.{ASTAnnotationMap, Hint}
import org.neo4j.cypher.internal.frontend.v3_4.phases.devNullLogger
import org.neo4j.cypher.internal.frontend.v3_4.semantics.{ExpressionTypeInfo, SemanticTable}
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, ProduceResult, Projection, SingleRow}
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/ExpandPlanningIntegrationTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/ExpandPlanningIntegrationTest.scala
index 18404b7818d7a..8d9c6db8f4f42 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/ExpandPlanningIntegrationTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/ExpandPlanningIntegrationTest.scala
@@ -23,8 +23,8 @@ import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.BeLikeMatcher._
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport2
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId}
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, IdName, PlannerQuery, RegularPlannerQuery}
+import org.neo4j.cypher.internal.ir.v3_4.{IdName, PlannerQuery, RegularPlannerQuery}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, PropertyKeyId}
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/LeafPlanningIntegrationTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/LeafPlanningIntegrationTest.scala
index 4bda11a91244d..658dd6f0d1cc1 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/LeafPlanningIntegrationTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/LeafPlanningIntegrationTest.scala
@@ -19,19 +19,16 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
-import org.neo4j.cypher.internal.compiler.v3_4._
-import org.neo4j.cypher.internal.compiler.v3_4.ast.{InequalitySeekRangeWrapper, PrefixSeekRangeWrapper}
+import org.neo4j.cypher.internal.util.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.symbols._
+import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.BeLikeMatcher._
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport2
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphSolverInput
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.frontend.v3_4.{ExclusiveBound, InclusiveBound, LabelId, PropertyKeyId}
-import org.neo4j.cypher.internal.ir.v3_4.{Cost, IdName}
-import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
-import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.v3_4.expressions._
+import org.neo4j.cypher.internal.ir.v3_4.IdName
import org.neo4j.cypher.internal.v3_4.logical.plans.{Union, _}
+import org.neo4j.cypher.internal.v3_4.expressions._
class LeafPlanningIntegrationTest extends CypherFunSuite with LogicalPlanningTestSupport2 with AstConstructionTestSupport {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/OptionalMatchPlanningIntegrationTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/OptionalMatchPlanningIntegrationTest.scala
index b3bedbe661f4e..da787d71a35de 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/OptionalMatchPlanningIntegrationTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/OptionalMatchPlanningIntegrationTest.scala
@@ -23,7 +23,8 @@ import org.neo4j.cypher.internal.util.v3_4.Foldable._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport2
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans.rewriter.unnestOptional
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, IdName, SimplePatternLength}
+import org.neo4j.cypher.internal.ir.v3_4.{IdName, SimplePatternLength}
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.expressions._
import org.neo4j.cypher.internal.v3_4.logical.plans.{Limit, _}
import org.neo4j.kernel.impl.util.dbstructure.DbStructureLargeOptionalMatchStructure
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PatternPredicatePlanningIntegrationTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PatternPredicatePlanningIntegrationTest.scala
index a5dcbbc7e8928..801c5eb055fed 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PatternPredicatePlanningIntegrationTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PatternPredicatePlanningIntegrationTest.scala
@@ -20,13 +20,12 @@
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.compiler.v3_4.ast.NestedPlanExpression
import org.neo4j.cypher.internal.compiler.v3_4.planner.BeLikeMatcher._
import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.ir.v3_4.{QueryGraph, RegularPlannerQuery}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection.OUTGOING
import org.neo4j.cypher.internal.v3_4.expressions._
-import org.neo4j.cypher.internal.v3_4.logical.plans._
+import org.neo4j.cypher.internal.v3_4.logical.plans.{NestedPlanExpression, _}
class PatternPredicatePlanningIntegrationTest extends CypherFunSuite with LogicalPlanningTestSupport2 {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PickBestPlanUsingHintsAndCostTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PickBestPlanUsingHintsAndCostTest.scala
index 9b7dc7b3187bc..fe828afa9f148 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PickBestPlanUsingHintsAndCostTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PickBestPlanUsingHintsAndCostTest.scala
@@ -24,7 +24,8 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSuppor
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.{LogicalPlanProducer, pickBestPlanUsingHintsAndCost}
import org.neo4j.cypher.internal.frontend.v3_4.ast.UsingIndexHint
import org.neo4j.cypher.internal.frontend.v3_4.phases.devNullLogger
-import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, Cost, PlannerQuery}
+import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, PlannerQuery}
+import org.neo4j.cypher.internal.util.v3_4.Cost
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, PropertyKeyName}
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PlanEventHorizonTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PlanEventHorizonTest.scala
index a642f60b0b773..15945a23487e6 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PlanEventHorizonTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/PlanEventHorizonTest.scala
@@ -19,14 +19,14 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical
-import org.neo4j.cypher.internal.util.v3_4.DummyPosition
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, DummyPosition}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.ProcedureCallProjection
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.LogicalPlanProducer
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, CardinalityEstimation, RegularPlannerQuery, RegularQueryProjection}
+import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, RegularPlannerQuery, RegularQueryProjection}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.v3_4.logical.plans.{ProcedureCall, Projection, ResolvedCall, SingleRow}
import org.neo4j.cypher.internal.v3_4.expressions.SignedDecimalIntegerLiteral
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/QueryGraphProducer.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/QueryGraphProducer.scala
index 74920d4c97a30..7bf3f3898e408 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/QueryGraphProducer.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/QueryGraphProducer.scala
@@ -29,6 +29,7 @@ import org.neo4j.cypher.internal.frontend.v3_4.ast.{Query, Statement}
import org.neo4j.cypher.internal.frontend.v3_4.phases.LateAstRewriting
import org.neo4j.cypher.internal.frontend.v3_4.semantics.{SemanticCheckResult, SemanticChecker, SemanticTable}
import org.neo4j.cypher.internal.ir.v3_4.{PlannerQuery, QueryGraph}
+import org.neo4j.cypher.internal.planner.v3_4.spi.IDPPlannerName
import org.scalatest.mock.MockitoSugar
trait QueryGraphProducer extends MockitoSugar {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/StatisticsBackedCardinalityModelTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/StatisticsBackedCardinalityModelTest.scala
index e55db439bab1a..412285123b054 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/StatisticsBackedCardinalityModelTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/StatisticsBackedCardinalityModelTest.scala
@@ -23,7 +23,7 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphCardinalityModel
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.CardinalityModelTestHelper
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.assumeIndependence.AssumeIndependenceQueryGraphCardinalityModel
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class StatisticsBackedCardinalityModelTest extends CypherFunSuite with LogicalPlanningTestSupport with CardinalityModelTestHelper {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/CardinalityModelTestHelper.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/CardinalityModelTestHelper.scala
index 1f485fac340fd..e6a96191716d9 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/CardinalityModelTestHelper.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/CardinalityModelTestHelper.scala
@@ -22,9 +22,9 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.ir.v3_4.Cardinality
trait CardinalityModelTestHelper extends CardinalityTestHelper {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/CardinalityTestHelper.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/CardinalityTestHelper.scala
index 1f3917d2bbc51..3db2c41f4bc88 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/CardinalityTestHelper.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/CardinalityTestHelper.scala
@@ -19,17 +19,16 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
import org.neo4j.cypher.internal.compiler.v3_4.helpers.MapSupport._
import org.neo4j.cypher.internal.compiler.v3_4.helpers.SemanticTableHelper
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.QueryGraphProducer
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId, RelTypeId}
-import org.neo4j.cypher.internal.ir.v3_4.Cardinality.NumericCardinality
+import org.neo4j.cypher.internal.util.v3_4.Cardinality.NumericCardinality
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, IndexDescriptor}
+import org.neo4j.cypher.internal.util.v3_4._
import org.neo4j.cypher.internal.v3_4.expressions.Variable
import org.scalatest.matchers.{MatchResult, Matcher}
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/ExpressionSelectivityCalculatorTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/ExpressionSelectivityCalculatorTest.scala
index a9008fb543ac7..738cea4621b2c 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/ExpressionSelectivityCalculatorTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/ExpressionSelectivityCalculatorTest.scala
@@ -22,13 +22,11 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality
import org.mockito.Mockito.when
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.util.v3_4.{InputPosition, NonEmptyList}
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId}
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, IndexDescriptor}
import org.neo4j.cypher.internal.v3_4.expressions._
class ExpressionSelectivityCalculatorTest extends CypherFunSuite with AstConstructionTestSupport {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityCombinerTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityCombinerTest.scala
index 5230f4d4a7325..850a71d8cdd1e 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityCombinerTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/SelectivityCombinerTest.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality
+import org.neo4j.cypher.internal.util.v3_4.Selectivity
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.ir.v3_4.Selectivity
class SelectivityCombinerTest extends CypherFunSuite {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/AssumeIndependenceQueryGraphCardinalityModelTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/AssumeIndependenceQueryGraphCardinalityModelTest.scala
index a481bf58baaa3..710bf56ac3704 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/AssumeIndependenceQueryGraphCardinalityModelTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/AssumeIndependenceQueryGraphCardinalityModelTest.scala
@@ -21,8 +21,8 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.assu
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphCardinalityModel
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.{ABCDCardinalityData, RandomizedCardinalityModelTestSuite}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
import org.neo4j.cypher.internal.ir.v3_4.IdName
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
class AssumeIndependenceQueryGraphCardinalityModelTest extends RandomizedCardinalityModelTestSuite with ABCDCardinalityData {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/PatternSelectivityCalculatorTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/PatternSelectivityCalculatorTest.scala
index bfede3af9eed5..764f1eac63ed9 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/PatternSelectivityCalculatorTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/cardinality/assumeIndependence/PatternSelectivityCalculatorTest.scala
@@ -26,11 +26,11 @@ import org.mockito.stubbing.Answer
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanConstructionTestSupport
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.cardinality.IndependenceCombiner
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
import org.neo4j.cypher.internal.frontend.v3_4.ast.AstConstructionTestSupport
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4.{VarPatternLength, _}
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, Selectivity}
import org.neo4j.cypher.internal.v3_4.expressions.{HasLabels, LabelName, SemanticDirection}
import scala.collection.mutable
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/CartesianProductsOrValueJoinsTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/CartesianProductsOrValueJoinsTest.scala
index 694f2213370d3..9cc5ee5de0f1e 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/CartesianProductsOrValueJoinsTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/CartesianProductsOrValueJoinsTest.scala
@@ -24,6 +24,7 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.frontend.v3_4.ast.AstConstructionTestSupport
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.expressions.Equals
class CartesianProductsOrValueJoinsTest
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/ExpandSolverStepTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/ExpandSolverStepTest.scala
index cf2b32f22740e..5c5fd0d6a39c6 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/ExpandSolverStepTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/ExpandSolverStepTest.scala
@@ -25,12 +25,13 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanConstructionTe
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.CardinalityModel
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.LogicalPlanProducer
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{LogicalPlanningContext, Metrics, QueryGraphSolver}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
import org.neo4j.cypher.internal.v3_4.logical.plans.{Expand, ExpandAll, ExpandInto, LogicalPlan}
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
class ExpandSolverStepTest extends CypherFunSuite with LogicalPlanConstructionTestSupport with AstConstructionTestSupport {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/IDPQueryGraphSolverTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/IDPQueryGraphSolverTest.scala
index 18aad571f39b5..1afaa482bd874 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/IDPQueryGraphSolverTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/IDPQueryGraphSolverTest.scala
@@ -24,6 +24,7 @@ import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport2
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection.OUTGOING
import org.neo4j.cypher.internal.v3_4.expressions._
import org.scalatest.exceptions.TestFailedException
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/JoinSolverStepTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/JoinSolverStepTest.scala
index 309673e7dac2f..68ea5a543579f 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/JoinSolverStepTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/JoinSolverStepTest.scala
@@ -25,10 +25,11 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.CardinalityModel
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.LogicalPlanProducer
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{LogicalPlanningContext, Metrics, QueryGraphSolver}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, NodeHashJoin}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/SingleComponentPlannerTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/SingleComponentPlannerTest.scala
index 4639f5506a0cc..2b4bb9f890486 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/SingleComponentPlannerTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/idp/SingleComponentPlannerTest.scala
@@ -21,9 +21,9 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.idp
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.ir.v3_4.{IdName, PatternRelationship, QueryGraph, SimplePatternLength}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions.{PropertyKeyName, SemanticDirection}
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/patternExpressionRewriterTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/patternExpressionRewriterTest.scala
index 18e7a6a515492..523f252122630 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/patternExpressionRewriterTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/patternExpressionRewriterTest.scala
@@ -23,12 +23,11 @@ import org.mockito.Mockito.{verify, verifyNoMoreInteractions, when}
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.compiler.v3_4.ast.NestedPlanExpression
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport
import org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters.PatternExpressionPatternElementNamer
import org.neo4j.cypher.internal.ir.v3_4.IdName
import org.neo4j.cypher.internal.v3_4.expressions._
-import org.neo4j.cypher.internal.v3_4.logical.plans.{AllNodesScan, LogicalPlan, Selection}
+import org.neo4j.cypher.internal.v3_4.logical.plans.{AllNodesScan, LogicalPlan, NestedPlanExpression, Selection}
class patternExpressionRewriterTest extends CypherFunSuite with LogicalPlanningTestSupport {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/IdSeekLeafPlannerTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/IdSeekLeafPlannerTest.scala
index 1e7d5dbce0208..066a1d965a51f 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/IdSeekLeafPlannerTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/IdSeekLeafPlannerTest.scala
@@ -20,14 +20,13 @@
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.util.v3_4.symbols
+import org.neo4j.cypher.internal.util.v3_4.{Cost, RelTypeId, symbols}
import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.ExpressionEvaluator
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphSolverInput
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.idSeekLeafPlanner
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.RelTypeId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.{ExpressionTypeInfo, SemanticTable}
import org.neo4j.cypher.internal.ir.v3_4._
import org.neo4j.cypher.internal.v3_4.logical.plans._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/InequalityRangeSeekableTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/InequalityRangeSeekableTest.scala
index b2c46093f2c80..a7e6e6cf85908 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/InequalityRangeSeekableTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/InequalityRangeSeekableTest.scala
@@ -20,11 +20,10 @@
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans
import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
-import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.{Bound, ExclusiveBound, InclusiveBound}
import org.neo4j.cypher.internal.v3_4.expressions._
+import org.neo4j.cypher.internal.v3_4.logical.plans._
class InequalityRangeSeekableTest extends CypherFunSuite with AstConstructionTestSupport {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/LabelScanLeafPlannerTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/LabelScanLeafPlannerTest.scala
index f79e45f7c81a2..ab158e7b540a5 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/LabelScanLeafPlannerTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/LabelScanLeafPlannerTest.scala
@@ -21,14 +21,13 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans
import org.mockito.Mockito._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.compiler.v3_4.HardcodedGraphStatistics
import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.ExpressionEvaluator
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphSolverInput
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps.labelScanLeafPlanner
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.{Cost, LabelId}
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, NodeByLabelScan}
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/LogicalPlanAssignedIdTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/LogicalPlanAssignedIdTest.scala
index 5cec6e5adbdef..c54228db84b12 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/LogicalPlanAssignedIdTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/LogicalPlanAssignedIdTest.scala
@@ -19,10 +19,9 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans
-import org.neo4j.cypher.internal.compiler.v3_4.ast.NestedPlanExpression
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport2
import org.neo4j.cypher.internal.ir.v3_4.IdName
-import org.neo4j.cypher.internal.v3_4.logical.plans._
+import org.neo4j.cypher.internal.v3_4.logical.plans.{NestedPlanExpression, _}
import org.neo4j.cypher.internal.util.v3_4.{CypherException, Rewriter, topDown}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/SargableTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/SargableTest.scala
index 635629c353657..8c99d43dbbd15 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/SargableTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/SargableTest.scala
@@ -20,9 +20,8 @@
package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans
import org.mockito.Mockito
-import org.neo4j.cypher.internal.compiler.v3_4.PrefixRange
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.v3_4.logical.plans.{ManySeekableArgs, SingleSeekableArg}
+import org.neo4j.cypher.internal.v3_4.logical.plans.{ManySeekableArgs, PrefixRange, SingleSeekableArg}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/rewriter/PredicateRemovalThroughJoinsTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/rewriter/PredicateRemovalThroughJoinsTest.scala
index a48c84ebe54b1..ed4a90f00d400 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/rewriter/PredicateRemovalThroughJoinsTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/plans/rewriter/PredicateRemovalThroughJoinsTest.scala
@@ -22,6 +22,7 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.plans.rewriter
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.expressions.{Equals, Expression, SignedDecimalIntegerLiteral}
import org.neo4j.cypher.internal.v3_4.logical.plans.{NodeHashJoin, Selection}
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/ExtractBestPlanTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/ExtractBestPlanTest.scala
index 6c642e937f6fe..5e10d7de178dc 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/ExtractBestPlanTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/ExtractBestPlanTest.scala
@@ -22,15 +22,13 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.neo4j.cypher.internal.util.v3_4.{HintException, IndexHintException, InternalException, JoinHintException}
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
import org.neo4j.cypher.internal.compiler.v3_4.planner._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
-import org.neo4j.cypher.internal.frontend.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.notification.{IndexHintUnfulfillableNotification, JoinHintUnfulfillableNotification}
import org.neo4j.cypher.internal.frontend.v3_4.phases.RecordingNotificationLogger
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.ir.v3_4.{IdName, PatternRelationship, VarPatternLength, _}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IndexDescriptor, PlanContext}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, PatternExpression, PropertyKeyName, SemanticDirection}
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/OuterHashJoinTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/OuterHashJoinTest.scala
index 4d1180884b0b8..fa6eff30647c8 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/OuterHashJoinTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/OuterHashJoinTest.scala
@@ -26,6 +26,7 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.ExpressionEvaluat
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphSolverInput
import org.neo4j.cypher.internal.v3_4.logical.plans.{AllNodesScan, LogicalPlan, OuterHashJoin}
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.Cost
import org.neo4j.cypher.internal.v3_4.expressions.{PatternExpression, SemanticDirection}
class OuterHashJoinTest extends CypherFunSuite with LogicalPlanningTestSupport {
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/ProjectionTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/ProjectionTest.scala
index b9ee06e1ebf3f..f2cc47aa9053a 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/ProjectionTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/ProjectionTest.scala
@@ -25,6 +25,7 @@ import org.neo4j.cypher.internal.frontend.v3_4.ast
import org.neo4j.cypher.internal.frontend.v3_4.ast.AscSortItem
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.expressions._
import org.neo4j.cypher.internal.v3_4.logical.plans.{Ascending, ColumnOrder, LogicalPlan, Projection}
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/SelectPatternPredicatesTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/SelectPatternPredicatesTest.scala
index 12d974ec1b8c3..68a883bc83c75 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/SelectPatternPredicatesTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/SelectPatternPredicatesTest.scala
@@ -27,6 +27,7 @@ import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGrap
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/SortSkipAndLimitTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/SortSkipAndLimitTest.scala
index 6116f22044be7..f7a93374793ca 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/SortSkipAndLimitTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/SortSkipAndLimitTest.scala
@@ -25,6 +25,7 @@ import org.neo4j.cypher.internal.frontend.v3_4.ast
import org.neo4j.cypher.internal.frontend.v3_4.ast.AscSortItem
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/TriadicSelectionFinderTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/TriadicSelectionFinderTest.scala
index 637e5640ea6c6..87d1f89076e7d 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/TriadicSelectionFinderTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/TriadicSelectionFinderTest.scala
@@ -22,8 +22,8 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.QueryGraphProducer
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.ir.v3_4.{IdName, QueryGraph}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection.{INCOMING, OUTGOING}
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/countStorePlannerTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/countStorePlannerTest.scala
index 90171e5fb57d1..b75a28e3e1b25 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/countStorePlannerTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/planner/logical/steps/countStorePlannerTest.scala
@@ -22,11 +22,11 @@ package org.neo4j.cypher.internal.compiler.v3_4.planner.logical.steps
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{LogicalPlanningContext, Metrics, QueryGraphProducer, QueryGraphSolver}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.ast.AstConstructionTestSupport
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4.{AggregatingQueryProjection, IdName}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.v3_4.expressions.{FunctionInvocation, FunctionName, Variable}
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, NodeCountFromCountStore, RelationshipCountFromCountStore}
import org.scalatest.matchers.{MatchResult, Matcher}
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/GraphStatisticsSnapshotTest.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/GraphStatisticsSnapshotTest.scala
index bc3c709ff54ba..5396a5dd89187 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/GraphStatisticsSnapshotTest.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/GraphStatisticsSnapshotTest.scala
@@ -19,10 +19,9 @@
*/
package org.neo4j.cypher.internal.compiler.v3_4.spi
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
+import org.neo4j.cypher.internal.planner.v3_4.spi._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId, RelTypeId}
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, Selectivity}
+import org.neo4j.cypher.internal.util.v3_4._
import scala.language.reflectiveCalls
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/ContextHelper.scala b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/ContextHelper.scala
index eda64f80c1f4d..1a29ea25cd6f2 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/ContextHelper.scala
+++ b/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/ContextHelper.scala
@@ -25,9 +25,9 @@ import org.neo4j.cypher.internal.util.v3_4.{CypherException, InputPosition, Inte
import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.compiler.v3_4.phases.CompilerContext
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{Metrics, QueryGraphSolver}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.NO_TRACING
import org.neo4j.cypher.internal.frontend.v3_4.phases.{CompilationPhaseTracer, InternalNotificationLogger, Monitors, devNullLogger}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
import org.scalatest.mock.MockitoSugar
object ContextHelper extends MockitoSugar {
diff --git a/community/cypher/cypher-logical-plans-3.4/pom.xml b/community/cypher/cypher-logical-plans-3.4/pom.xml
index ea40337116e99..77527b17ba066 100644
--- a/community/cypher/cypher-logical-plans-3.4/pom.xml
+++ b/community/cypher/cypher-logical-plans-3.4/pom.xml
@@ -57,6 +57,12 @@
+
+ org.neo4j
+ neo4j-graphdb-api
+ ${project.version}
+
+
org.neo4j
neo4j-cypher-frontend-3.4
@@ -77,6 +83,14 @@
test
+
+ org.neo4j
+ neo4j-cypher-util-3.4
+ ${project.version}
+ test-jar
+ test
+
+
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/DynamicIterable.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/Bound.scala
similarity index 55%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/DynamicIterable.scala
rename to community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/Bound.scala
index f97edee9fb708..dd4f2b5d1b4cb 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/DynamicIterable.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/Bound.scala
@@ -17,25 +17,29 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.v3_4.logical.plans
-import java.lang.{Iterable => JIterable}
-import java.util.{Iterator => JIterator}
+sealed trait Bound[+V] {
+ def endPoint: V
+ def inequalitySignSuffix: String
-import scala.collection.JavaConverters._
+ def map[P](f: V => P): Bound[P]
-object DynamicIterable {
- def apply[T](f: => Iterator[T]) = new Iterable[T] {
- override def iterator = f
- }
+ def isInclusive: Boolean
}
-object DynamicJavaIterable {
- def apply[T](f: => Iterator[T]) = new JIterable[T] {
- override def iterator = f.asJava
- }
+final case class InclusiveBound[+V](endPoint: V) extends Bound[V] {
+ val inequalitySignSuffix = "="
- def apply[T](iterable: Iterable[T]) = new JIterable[T] {
- override def iterator: JIterator[T] = iterable.iterator.asJava
- }
+ override def map[P](f: V => P): InclusiveBound[P] = copy(endPoint = f(endPoint))
+
+ def isInclusive: Boolean = true
+}
+
+final case class ExclusiveBound[+V](endPoint: V) extends Bound[V] {
+ val inequalitySignSuffix = ""
+
+ override def map[P](f: V => P): ExclusiveBound[P] = copy(endPoint = f(endPoint))
+
+ def isInclusive: Boolean = false
}
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/NestedPlanExpression.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NestedPlanExpression.scala
similarity index 93%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/NestedPlanExpression.scala
rename to community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NestedPlanExpression.scala
index 4e4459e6b49e7..625afbaa019b8 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/NestedPlanExpression.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NestedPlanExpression.scala
@@ -17,14 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.ast
+package org.neo4j.cypher.internal.v3_4.logical.plans
+import org.neo4j.cypher.internal.frontend.v3_4.SemanticCheck
+import org.neo4j.cypher.internal.frontend.v3_4.semantics.{SemanticCheckResult, SemanticCheckableExpression}
import org.neo4j.cypher.internal.util.v3_4.InputPosition
-import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.cypher.internal.v3_4.expressions.Expression
import org.neo4j.cypher.internal.v3_4.expressions.Expression.SemanticContext
-import org.neo4j.cypher.internal.frontend.v3_4.SemanticCheck
-import org.neo4j.cypher.internal.frontend.v3_4.semantics.{SemanticCheckResult, SemanticCheckableExpression}
case class NestedPlanExpression(
plan: LogicalPlan,
diff --git a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexContainsScan.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexContainsScan.scala
index e2143ddc0742f..aea247455f0fa 100644
--- a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexContainsScan.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexContainsScan.scala
@@ -19,9 +19,8 @@
*/
package org.neo4j.cypher.internal.v3_4.logical.plans
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery}
-import org.neo4j.cypher.internal.v3_4.expressions.Expression
+import org.neo4j.cypher.internal.v3_4.expressions.{Expression, LabelToken, PropertyKeyToken}
/**
* This operator does a full scan of an index, producing rows for all entries that contain a string value
diff --git a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexEndsWithScan.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexEndsWithScan.scala
index b86b6cb064dbf..12b785f6b41e7 100644
--- a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexEndsWithScan.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexEndsWithScan.scala
@@ -19,9 +19,8 @@
*/
package org.neo4j.cypher.internal.v3_4.logical.plans
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery}
-import org.neo4j.cypher.internal.v3_4.expressions.Expression
+import org.neo4j.cypher.internal.v3_4.expressions.{Expression, LabelToken, PropertyKeyToken}
/**
* This operator does a full scan of an index, producing rows for all entries that end with a string value
diff --git a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexScan.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexScan.scala
index 5826481d90958..76ad2d11eb88f 100644
--- a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexScan.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexScan.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.v3_4.logical.plans
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery}
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelToken, PropertyKeyToken}
/**
* This operator does a full scan of an index, producing one row per entry.
diff --git a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexSeek.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexSeek.scala
index b1003a0df5a3c..56cc1bbb6372b 100644
--- a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexSeek.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeIndexSeek.scala
@@ -19,9 +19,8 @@
*/
package org.neo4j.cypher.internal.v3_4.logical.plans
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery}
-import org.neo4j.cypher.internal.v3_4.expressions.Expression
+import org.neo4j.cypher.internal.v3_4.expressions.{Expression, LabelToken, PropertyKeyToken}
/**
* For every node with the given label and property values, produces one row with that node.
diff --git a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeUniqueIndexSeek.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeUniqueIndexSeek.scala
index 335e91a511c75..8f3f5d062f248 100644
--- a/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeUniqueIndexSeek.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NodeUniqueIndexSeek.scala
@@ -19,9 +19,8 @@
*/
package org.neo4j.cypher.internal.v3_4.logical.plans
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery}
-import org.neo4j.cypher.internal.v3_4.expressions.Expression
+import org.neo4j.cypher.internal.v3_4.expressions.{Expression, LabelToken, PropertyKeyToken}
/**
* Produces one or zero rows containing the node with the given label and property values.
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/ResolvedFunctionInvocation.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/ResolvedFunctionInvocation.scala
similarity index 97%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/ResolvedFunctionInvocation.scala
rename to community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/ResolvedFunctionInvocation.scala
index 4aa20b5cc0bd1..d589a10675496 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/ResolvedFunctionInvocation.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/ResolvedFunctionInvocation.scala
@@ -17,13 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.ast
+package org.neo4j.cypher.internal.v3_4.logical.plans
-import org.neo4j.cypher.internal.util.v3_4.InputPosition
import org.neo4j.cypher.internal.frontend.v3_4._
-import org.neo4j.cypher.internal.v3_4.logical.plans.{QualifiedName, UserFunctionSignature}
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticCheckResult._
import org.neo4j.cypher.internal.frontend.v3_4.semantics._
+import org.neo4j.cypher.internal.util.v3_4.InputPosition
import org.neo4j.cypher.internal.v3_4.expressions.Expression.SemanticContext
import org.neo4j.cypher.internal.v3_4.expressions.{CoerceTo, Expression, FunctionInvocation}
import org.neo4j.cypher.internal.v3_4.functions.UserDefinedFunctionInvocation
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/SeekRange.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/SeekRange.scala
similarity index 83%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/SeekRange.scala
rename to community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/SeekRange.scala
index d77b52827f416..67bcd4f02f12d 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/SeekRange.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/SeekRange.scala
@@ -17,9 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
-
-import org.neo4j.cypher.internal.frontend.v3_4.{Bound, Bounds}
+package org.neo4j.cypher.internal.v3_4.logical.plans
/*
Seek ranges describe intervals. In practice they are used to summarize all inequalities over the
@@ -181,3 +179,61 @@ final case class PrefixRange[T](prefix: T) extends SeekRange[T] {
override def toString: String = prefix.toString
}
+
+final case class MinBoundOrdering[T](inner: Ordering[T]) extends Ordering[Bound[T]] {
+ override def compare(x: Bound[T], y: Bound[T]): Int = {
+ val cmp = inner.compare(x.endPoint, y.endPoint)
+ if (cmp == 0)
+ Ordering.Boolean.compare(x.isInclusive, y.isInclusive)
+ else
+ cmp
+ }
+}
+
+final case class MaxBoundOrdering[T](inner: Ordering[T]) extends Ordering[Bound[T]] {
+ override def compare(x: Bound[T], y: Bound[T]): Int = {
+ val cmp = inner.compare(x.endPoint, y.endPoint)
+ if (cmp == 0)
+ Ordering.Boolean.compare(y.isInclusive, x.isInclusive)
+ else
+ cmp
+ }
+}
+
+case class MinMaxOrdering[T](ordering: Ordering[T]) {
+
+ import MinMaxOrdering._
+
+ val forMin = ordering.withNullsFirst
+ val forMax = ordering.withNullsLast
+}
+
+object MinMaxOrdering {
+
+ implicit class NullOrdering[T](ordering: Ordering[T]) {
+ def withNullsFirst = new Ordering[T] {
+ override def compare(x: T, y: T): Int = {
+ if (x == null) {
+ if (y == null) 0 else -1
+ } else if (y == null) {
+ +1
+ } else {
+ ordering.compare(x, y)
+ }
+ }
+ }
+
+ def withNullsLast = new Ordering[T] {
+ override def compare(x: T, y: T): Int = {
+ if (x == null) {
+ if (y == null) 0 else +1
+ } else if (y == null) {
+ -1
+ } else {
+ ordering.compare(x, y)
+ }
+ }
+ }
+ }
+
+}
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/SeekRangeWrapper.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/SeekRangeWrapper.scala
similarity index 93%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/SeekRangeWrapper.scala
rename to community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/SeekRangeWrapper.scala
index e1a11d47463ca..692987ab85a06 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/ast/SeekRangeWrapper.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/SeekRangeWrapper.scala
@@ -17,14 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.ast
+package org.neo4j.cypher.internal.v3_4.logical.plans
+import org.neo4j.cypher.internal.frontend.v3_4.SemanticCheck
+import org.neo4j.cypher.internal.frontend.v3_4.semantics.{SemanticCheckResult, SemanticCheckableExpression}
import org.neo4j.cypher.internal.util.v3_4.InputPosition
-import org.neo4j.cypher.internal.compiler.v3_4.{InequalitySeekRange, PrefixRange}
import org.neo4j.cypher.internal.v3_4.expressions.Expression
import org.neo4j.cypher.internal.v3_4.expressions.Expression.SemanticContext
-import org.neo4j.cypher.internal.frontend.v3_4.SemanticCheck
-import org.neo4j.cypher.internal.frontend.v3_4.semantics.{SemanticCheckResult, SemanticCheckableExpression}
case class PrefixSeekRangeWrapper(
range: PrefixRange[Expression]
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/UserDefinedAggregator.scala b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/package.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/UserDefinedAggregator.scala
rename to community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/package.scala
index a7f76e89f33aa..a00cc6b071f45 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/UserDefinedAggregator.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/logical/plans/package.scala
@@ -17,9 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.v3_4.logical
-trait UserDefinedAggregator {
- def update(args: IndexedSeq[Any]): Unit
- def result: Any
+import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
+
+package object plans {
+ type Bounds[+V] = NonEmptyList[Bound[V]]
}
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/NullOrderingTest.scala b/community/cypher/cypher-logical-plans-3.4/src/test/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NullOrderingTest.scala
similarity index 63%
rename from community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/NullOrderingTest.scala
rename to community/cypher/cypher-logical-plans-3.4/src/test/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NullOrderingTest.scala
index 59d35948aa882..e8a22211bc05b 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/NullOrderingTest.scala
+++ b/community/cypher/cypher-logical-plans-3.4/src/test/scala/org/neo4j/cypher/internal/v3_4/logical/plans/NullOrderingTest.scala
@@ -17,26 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
+package org.neo4j.cypher.internal.v3_4.logical.plans
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.kernel.impl.api.PropertyValueComparison
class NullOrderingTest extends CypherFunSuite {
- import org.neo4j.cypher.internal.compiler.v3_4.MinMaxOrdering._
+ import MinMaxOrdering._
- val orderingForNumbers = Ordering.comparatorToOrdering(PropertyValueComparison.COMPARE_NUMBERS)
-
- test("Should be able to put nulls first in a numeric sequence") {
- Seq[Number](null, 4.0d, -3, null, 12).sorted(orderingForNumbers.withNullsFirst) should equal(Seq[Number](null, null, -3, 4.0d, 12))
- }
-
- test("Should be able to put nulls last in a numeric sequence") {
- Seq[Number](null, 4.0d, -3, null, 12).sorted(orderingForNumbers.withNullsLast) should equal(Seq[Number](-3, 4.0d, 12, null, null))
- }
-
- val orderingForStrings = Ordering.comparatorToOrdering(PropertyValueComparison.COMPARE_STRINGS)
+ val orderingForStrings: Ordering[String] = Ordering.String
test("Should be able to put nulls first in a string sequence") {
Seq[String](null, "Annie", "", null, "Xavier").sorted(orderingForStrings.withNullsFirst) should equal(Seq[String](null, null, "", "Annie", "Xavier"))
diff --git a/community/cypher/cypher/pom.xml b/community/cypher/cypher/pom.xml
index af62bcd6b821c..b43e108abce9b 100644
--- a/community/cypher/cypher/pom.xml
+++ b/community/cypher/cypher/pom.xml
@@ -300,6 +300,24 @@
${project.version}
+
+ org.neo4j
+ neo4j-cypher-planner-spi-3.4
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-cypher-runtime-util
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-cypher-interpreted-runtime
+ ${project.version}
+
+
@@ -326,6 +344,22 @@
test
+
+ org.neo4j
+ neo4j-cypher-runtime-util
+ ${project.version}
+ test-jar
+ test
+
+
+
+ org.neo4j
+ neo4j-cypher-interpreted-runtime
+ ${project.version}
+ test-jar
+ test
+
+
diff --git a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/codegen/ParameterConverter.java b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/codegen/ParameterConverter.java
index 2f8402b94b187..e0a137406aa5a 100644
--- a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/codegen/ParameterConverter.java
+++ b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/codegen/ParameterConverter.java
@@ -28,8 +28,8 @@
import java.util.Iterator;
import java.util.List;
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.CartesianPoint;
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.GeographicPoint;
+import org.neo4j.cypher.internal.runtime.CartesianPoint;
+import org.neo4j.cypher.internal.runtime.GeographicPoint;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Path;
import org.neo4j.graphdb.PropertyContainer;
@@ -516,14 +516,12 @@ public Object value()
if ( crs.code() == CoordinateReferenceSystem.WGS84.code() )
{
return new GeographicPoint( coordinates[0], coordinates[1],
- new org.neo4j.cypher.internal.compatibility.v3_4.runtime.CRS( crs.name, crs.code,
- crs.href ) );
+ new org.neo4j.cypher.internal.runtime.CRS( crs.name, crs.code, crs.href ) );
}
else if ( crs.code() == CoordinateReferenceSystem.Cartesian.code() )
{
return new CartesianPoint( coordinates[0], coordinates[1],
- new org.neo4j.cypher.internal.compatibility.v3_4.runtime.CRS( crs.name, crs.code,
- crs.href ) );
+ new org.neo4j.cypher.internal.runtime.CRS( crs.name, crs.code, crs.href ) );
}
else
{
diff --git a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/CommunityCypherEngineProvider.java b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/CommunityCypherEngineProvider.java
index 5d462402ba3dc..49ce291166d03 100644
--- a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/CommunityCypherEngineProvider.java
+++ b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/CommunityCypherEngineProvider.java
@@ -20,7 +20,6 @@
package org.neo4j.cypher.internal.javacompat;
import org.neo4j.cypher.internal.CommunityCompatibilityFactory;
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService;
import org.neo4j.graphdb.DependencyResolver;
import org.neo4j.helpers.Service;
import org.neo4j.kernel.api.KernelAPI;
diff --git a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/ExecutionResult.java b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/ExecutionResult.java
index 0c5b49894d91c..3544c8a073d58 100644
--- a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/ExecutionResult.java
+++ b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/ExecutionResult.java
@@ -28,7 +28,7 @@
import java.util.stream.Stream;
import org.neo4j.cypher.CypherException;
-import org.neo4j.cypher.internal.InternalExecutionResult;
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult;
import org.neo4j.cypher.result.QueryResult;
import org.neo4j.graphdb.ExecutionPlanDescription;
import org.neo4j.graphdb.Notification;
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CypherExecutionMode.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherExecutionMode.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CypherExecutionMode.scala
rename to community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherExecutionMode.scala
index 7c10d40184780..551ea61a11c59 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CypherExecutionMode.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherExecutionMode.scala
@@ -17,9 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal
-
-import org.neo4j.cypher.{CypherOptionCompanion, CypherOption}
+package org.neo4j.cypher
sealed abstract class CypherExecutionMode(modeName: String) extends CypherOption(modeName)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherUpdateStrategy.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherUpdateStrategy.scala
index 8e67033a29d72..8153c860a39b0 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherUpdateStrategy.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherUpdateStrategy.scala
@@ -19,7 +19,6 @@
*/
package org.neo4j.cypher
-
sealed abstract class CypherUpdateStrategy(plannerName: String) extends CypherOption(plannerName)
case object CypherUpdateStrategy extends CypherOptionCompanion[CypherUpdateStrategy] {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompilerEngineDelegator.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompilerEngineDelegator.scala
index 81d7cc5166e9d..b72f9a96a05e2 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompilerEngineDelegator.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompilerEngineDelegator.scala
@@ -22,11 +22,10 @@ package org.neo4j.cypher.internal
import java.time.Clock
import org.neo4j.cypher.internal.util.v3_4.InputPosition
-import org.neo4j.cypher.internal.compatibility.v3_4.exceptionHandler
import org.neo4j.cypher.internal.compiler.v3_4.CypherCompilerConfiguration
import org.neo4j.cypher.internal.frontend.v3_4.helpers.fixedPoint
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer
-import org.neo4j.cypher.{InvalidArgumentException, SyntaxException, _}
+import org.neo4j.cypher.{InvalidArgumentException, SyntaxException, exceptionHandler, _}
import org.neo4j.graphdb.factory.GraphDatabaseSettings
import org.neo4j.graphdb.impl.notification.NotificationCode.{CREATE_UNIQUE_UNAVAILABLE_FALLBACK, RULE_PLANNER_UNAVAILABLE_FALLBACK, START_DEPRECATED, START_UNAVAILABLE_FALLBACK}
import org.neo4j.graphdb.impl.notification.NotificationDetail.Factory.startDeprecated
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CypherStatementWithOptions.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CypherStatementWithOptions.scala
index 7bc04609f176e..cedecee37d1fd 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CypherStatementWithOptions.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CypherStatementWithOptions.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.cypher.internal
-import org.neo4j.cypher._
+import org.neo4j.cypher.{CypherExecutionMode, _}
import org.neo4j.cypher.internal.util.v3_4.InputPosition
import scala.annotation.tailrec
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionEngine.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionEngine.scala
index 457baea797953..218d0b5fc4107 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionEngine.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionEngine.scala
@@ -23,10 +23,10 @@ import java.util.{Map => JavaMap}
import org.neo4j.cypher._
import org.neo4j.cypher.internal.compatibility.v3_4._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{RuntimeJavaValueConverter, RuntimeScalaValueConverter, ValueConversion}
import org.neo4j.cypher.internal.compiler.v3_4.prettifier.Prettifier
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer
-import org.neo4j.cypher.internal.spi.v3_4.TransactionalContextWrapper
+import org.neo4j.cypher.internal.runtime.interpreted.{LastCommittedTxIdProvider, TransactionalContextWrapper, ValueConversion}
+import org.neo4j.cypher.internal.runtime.{RuntimeJavaValueConverter, RuntimeScalaValueConverter, isGraphKernelResultValue}
import org.neo4j.cypher.internal.tracing.{CompilationTracer, TimingCompilationTracer}
import org.neo4j.graphdb.Result
import org.neo4j.graphdb.config.Setting
@@ -206,7 +206,7 @@ class ExecutionEngine(val queryService: GraphDatabaseQueryService,
tc.close(success = true)
} else {
tc.cleanForReuse()
- tc.notifyPlanningCompleted(plan)
+ tc.notifyPlanningCompleted(plan.plannerInfo)
return (PreparedPlanExecution(plan, executionMode, extractedParameters), tc)
}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionPlan.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionPlan.scala
index cc208a0edb28d..5edd992fdb7d1 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionPlan.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionPlan.scala
@@ -19,7 +19,8 @@
*/
package org.neo4j.cypher.internal
-import org.neo4j.cypher.internal.spi.v3_4.TransactionalContextWrapper
+import org.neo4j.cypher.CypherExecutionMode
+import org.neo4j.cypher.internal.runtime.interpreted.{LastCommittedTxIdProvider, TransactionalContextWrapper}
import org.neo4j.graphdb.Result
import org.neo4j.kernel.api.query.PlannerInfo
import org.neo4j.values.virtual.MapValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ParsedQuery.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ParsedQuery.scala
index 3416f71a956fc..03edf74da981f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ParsedQuery.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ParsedQuery.scala
@@ -20,7 +20,7 @@
package org.neo4j.cypher.internal
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer
-import org.neo4j.cypher.internal.spi.v3_4.TransactionalContextWrapper
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionalContextWrapper
import scala.util.Try
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/PreparedPlanExecution.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/PreparedPlanExecution.scala
index a732e24aace55..ca27a87c8a298 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/PreparedPlanExecution.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/PreparedPlanExecution.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ValueConversion
-import org.neo4j.cypher.internal.spi.v3_4.TransactionalContextWrapper
+import org.neo4j.cypher.CypherExecutionMode
+import org.neo4j.cypher.internal.runtime.interpreted.{TransactionalContextWrapper, ValueConversion}
import org.neo4j.graphdb.Result
import org.neo4j.values.virtual.{MapValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/ClosingExecutionResult.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/ClosingExecutionResult.scala
index 91f44ae49837e..4412282a45974 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/ClosingExecutionResult.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/ClosingExecutionResult.scala
@@ -21,10 +21,9 @@ package org.neo4j.cypher.internal.compatibility
import java.io.PrintWriter
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionMode
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.InternalQueryType
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.exceptionHandler.RunSafely
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, InternalExecutionResult, InternalQueryType}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.result.QueryResult.QueryResultVisitor
import org.neo4j.graphdb
import org.neo4j.graphdb.Result.ResultVisitor
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/RunSafely.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/RunSafely.scala
index 8b7108310982c..ceec0c95b23fc 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/RunSafely.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/RunSafely.scala
@@ -19,6 +19,4 @@
*/
package org.neo4j.cypher.internal.compatibility
-trait RunSafely {
- def apply[T](body: => T)(implicit f: ExceptionHandler = ExceptionHandler.default): T
-}
+
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/Compatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/Compatibility.scala
index 0d9b5bf4342b0..0c4d62e4bbab3 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/Compatibility.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/Compatibility.scala
@@ -22,6 +22,7 @@ package org.neo4j.cypher.internal.compatibility.v2_3
import java.util.Collections.emptyList
import java.util.function.BiConsumer
+import org.neo4j.cypher.CypherExecutionMode
import org.neo4j.cypher.internal._
import org.neo4j.cypher.internal.compatibility._
import org.neo4j.cypher.internal.compiler.v2_3
@@ -31,8 +32,8 @@ import org.neo4j.cypher.internal.compiler.v2_3.tracing.rewriters.RewriterStepSeq
import org.neo4j.cypher.internal.compiler.v2_3.{InfoLogger, ExplainMode => ExplainModev2_3, NormalMode => NormalModev2_3, ProfileMode => ProfileModev2_3, _}
import org.neo4j.cypher.internal.frontend.v3_4
import org.neo4j.cypher.internal.javacompat.ExecutionResult
+import org.neo4j.cypher.internal.runtime.interpreted.{LastCommittedTxIdProvider, TransactionalContextWrapper}
import org.neo4j.cypher.internal.spi.v2_3.{TransactionBoundGraphStatistics, TransactionBoundPlanContext, TransactionBoundQueryContext}
-import org.neo4j.cypher.internal.spi.v3_4.TransactionalContextWrapper
import org.neo4j.graphdb.{Node, Relationship, Result}
import org.neo4j.kernel.GraphDatabaseQueryService
import org.neo4j.kernel.api.KernelAPI
@@ -78,7 +79,7 @@ trait Compatibility {
Some(as2_3(preParsedQuery.offset)), tracer))
new ParsedQuery {
def plan(transactionalContext: TransactionalContextWrapper,
- tracer: v3_4.phases.CompilationPhaseTracer): (org.neo4j.cypher.internal.ExecutionPlan, Map[String, Any]) = exceptionHandler
+ tracer: v3_4.phases.CompilationPhaseTracer): (ExecutionPlan, Map[String, Any]) = exceptionHandler
.runSafely {
val planContext: PlanContext = new TransactionBoundPlanContext(transactionalContext)
val (planImpl, extractedParameters) = compiler
@@ -95,7 +96,7 @@ trait Compatibility {
}
class ExecutionPlanWrapper(inner: ExecutionPlan_v2_3, preParsingNotifications: Set[org.neo4j.graphdb.Notification], offSet: frontend.v2_3.InputPosition)
- extends org.neo4j.cypher.internal.ExecutionPlan {
+ extends ExecutionPlan {
private def queryContext(transactionalContext: TransactionalContextWrapper): QueryContext =
new ExceptionTranslatingQueryContext(new TransactionBoundQueryContext(transactionalContext))
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/CostCompatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/CostCompatibility.scala
index e1c3dc8a0b37d..9d7f3bae377e5 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/CostCompatibility.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/CostCompatibility.scala
@@ -20,7 +20,7 @@
package org.neo4j.cypher.internal.compatibility.v2_3
import org.neo4j.cypher.internal.compiler.v2_3._
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.cypher.{CypherPlanner, CypherRuntime}
import org.neo4j.helpers.Clock
import org.neo4j.kernel.GraphDatabaseQueryService
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/ExecutionResultWrapper.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/ExecutionResultWrapper.scala
index 752c2fd6db926..7a4424da58538 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/ExecutionResultWrapper.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/ExecutionResultWrapper.scala
@@ -22,22 +22,23 @@ package org.neo4j.cypher.internal.compatibility.v2_3
import java.io.PrintWriter
import java.util
-import org.neo4j.cypher._
+import org.neo4j.cypher.{internal, _}
import org.neo4j.cypher.internal.compatibility._
import org.neo4j.cypher.internal.compatibility.v2_3.ExecutionResultWrapper.asKernelNotification
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.{LegacyPlanDescription, Argument => Argument3_4, InternalPlanDescription => InternalPlanDescription3_4}
+import org.neo4j.cypher.internal.runtime.planDescription.{LegacyPlanDescription, Argument => Argument3_4, InternalPlanDescription => InternalPlanDescription3_4}
import org.neo4j.cypher.internal.compiler.v2_3.executionplan.InternalExecutionResult
import org.neo4j.cypher.internal.compiler.v2_3.planDescription.InternalPlanDescription.Arguments
import org.neo4j.cypher.internal.compiler.v2_3.planDescription.InternalPlanDescription.Arguments._
import org.neo4j.cypher.internal.compiler.v2_3.planDescription.{Argument, InternalPlanDescription}
-import org.neo4j.cypher.internal.compiler.v2_3.{PlannerName, _}
+import org.neo4j.cypher.internal.compiler.v2_3.{PlannerName, ExecutionMode => ExecutionMode2_3, _}
import org.neo4j.cypher.internal.frontend.v2_3.SemanticDirection.{BOTH, INCOMING, OUTGOING}
import org.neo4j.cypher.internal.frontend.v2_3.notification.{InternalNotification, LegacyPlannerNotification, PlannerUnsupportedNotification, RuntimeUnsupportedNotification, _}
import org.neo4j.cypher.internal.frontend.v2_3.{InputPosition => InternalInputPosition}
import org.neo4j.cypher.internal.frontend.v2_3
import org.neo4j.cypher.internal.v3_4
-import org.neo4j.cypher.internal.{QueryStatistics, compatibility}
+import org.neo4j.cypher.internal.runtime.{SCHEMA_WRITE, _}
+import org.neo4j.cypher.internal.runtime.QueryStatistics
+import org.neo4j.cypher.internal.runtime.planDescription.LegacyPlanDescription
import org.neo4j.cypher.result.QueryResult
import org.neo4j.cypher.result.QueryResult.Record
import org.neo4j.graphdb.Result.ResultVisitor
@@ -105,7 +106,7 @@ object ExecutionResultWrapper {
class ExecutionResultWrapper(val inner: InternalExecutionResult, val planner: PlannerName, val runtime: RuntimeName,
preParsingNotifications: Set[org.neo4j.graphdb.Notification],
offset : Option[v2_3.InputPosition])
- extends org.neo4j.cypher.internal.InternalExecutionResult {
+ extends internal.runtime.InternalExecutionResult {
override def planDescriptionRequested: Boolean = inner.planDescriptionRequested
@@ -137,7 +138,7 @@ class ExecutionResultWrapper(val inner: InternalExecutionResult, val planner: Pl
override def javaColumnAs[T](column: String): ResourceIterator[T] = inner.javaColumnAs(column)
- def executionPlanDescription(): InternalPlanDescription3_4 =
+ def executionPlanDescription(): internal.runtime.planDescription.InternalPlanDescription =
convert(inner.executionPlanDescription().
addArgument(Version("CYPHER 2.3")).
addArgument(Planner(planner.toTextOutput)).
@@ -145,11 +146,11 @@ class ExecutionResultWrapper(val inner: InternalExecutionResult, val planner: Pl
addArgument(Runtime(runtime.toTextOutput)).
addArgument(RuntimeImpl(runtime.name)))
- private def convert(i: InternalPlanDescription): InternalPlanDescription3_4 = exceptionHandler.runSafely {
+ private def convert(i: InternalPlanDescription): internal.runtime.planDescription.InternalPlanDescription = exceptionHandler.runSafely {
LegacyPlanDescription(i.name, convert(i.arguments), Set.empty, i.toString)
}
- private def convert(args: Seq[Argument]): Seq[Argument3_4] = args.collect {
+ private def convert(args: Seq[Argument]): Seq[internal.runtime.planDescription.Argument] = args.collect {
case Arguments.LabelName(label) => InternalPlanDescription3_4.Arguments.LabelName(label)
case Arguments.ColumnsLeft(value) => InternalPlanDescription3_4.Arguments.ColumnsLeft(value)
case Arguments.DbHits(value) => InternalPlanDescription3_4.Arguments.DbHits(value)
@@ -192,14 +193,14 @@ class ExecutionResultWrapper(val inner: InternalExecutionResult, val planner: Pl
override def accept[EX <: Exception](visitor: ResultVisitor[EX]): Unit = inner.accept(visitor)
- override def executionMode: compatibility.v3_4.runtime.ExecutionMode = {
+ override def executionMode: ExecutionMode = {
val et = inner.executionType
- if (et.isExplained) compatibility.v3_4.runtime.ExplainMode
- else if (et.isProfiled) compatibility.v3_4.runtime.ProfileMode
- else compatibility.v3_4.runtime.NormalMode
+ if (et.isExplained) internal.runtime.ExplainMode
+ else if (et.isProfiled) internal.runtime.ProfileMode
+ else internal.runtime.NormalMode
}
- override def withNotifications(notification: Notification*): internal.InternalExecutionResult =
+ override def withNotifications(notification: Notification*): internal.runtime.InternalExecutionResult =
new ExecutionResultWrapper(inner, planner, runtime, preParsingNotifications ++ notification, offset)
override def fieldNames(): Array[String] = inner.columns.toArray
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/RuleCompatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/RuleCompatibility.scala
index f5f13a560a65d..618e53eace320 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/RuleCompatibility.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/RuleCompatibility.scala
@@ -20,7 +20,7 @@
package org.neo4j.cypher.internal.compatibility.v2_3
import org.neo4j.cypher.internal.compiler.v2_3.{CypherCompilerConfiguration, CypherCompilerFactory}
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.helpers.Clock
import org.neo4j.kernel.GraphDatabaseQueryService
import org.neo4j.kernel.api.KernelAPI
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/exceptionHandler.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/exceptionHandler.scala
index d6fd5774bdc88..e0a8ceb708aa1 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/exceptionHandler.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/exceptionHandler.scala
@@ -20,6 +20,7 @@
package org.neo4j.cypher.internal.compatibility.v2_3
import org.neo4j.cypher._
+import org.neo4j.cypher.exceptionHandler.RunSafely
import org.neo4j.cypher.internal.compatibility._
import org.neo4j.cypher.internal.frontend.v2_3.spi.MapToPublicExceptions
import org.neo4j.cypher.internal.frontend.v2_3.{CypherException => InternalCypherException}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/Compatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/Compatibility.scala
index f3bb4737d0292..91796d3bb74fe 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/Compatibility.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/Compatibility.scala
@@ -22,6 +22,7 @@ package org.neo4j.cypher.internal.compatibility.v3_1
import java.util.Collections.emptyList
import java.util.function.BiConsumer
+import org.neo4j.cypher.CypherExecutionMode
import org.neo4j.cypher.internal.compatibility._
import org.neo4j.cypher.internal.compatibility.v3_1.helpers._
import org.neo4j.cypher.internal.compiler.v3_1
@@ -29,9 +30,10 @@ import org.neo4j.cypher.internal.compiler.v3_1.executionplan.{ExecutionPlan => E
import org.neo4j.cypher.internal.compiler.v3_1.tracing.rewriters.RewriterStepSequencer
import org.neo4j.cypher.internal.compiler.v3_1.{CompilationPhaseTracer, InfoLogger, ExplainMode => ExplainModev3_1, NormalMode => NormalModev3_1, ProfileMode => ProfileModev3_1, _}
import org.neo4j.cypher.internal.javacompat.ExecutionResult
+import org.neo4j.cypher.internal.runtime.interpreted.LastCommittedTxIdProvider
import org.neo4j.cypher.internal.spi.v3_1.TransactionBoundQueryContext.IndexSearchMonitor
import org.neo4j.cypher.internal.spi.v3_1.{TransactionalContextWrapper => TransactionalContextWrapperV3_1, _}
-import org.neo4j.cypher.internal.spi.v3_4.{TransactionalContextWrapper => TransactionalContextWrapperV3_4}
+import org.neo4j.cypher.internal.runtime.interpreted.{TransactionalContextWrapper => TransactionalContextWrapperV3_4}
import org.neo4j.cypher.internal.{frontend, _}
import org.neo4j.graphdb.Result
import org.neo4j.kernel.GraphDatabaseQueryService
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/ExecutionResultWrapper.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/ExecutionResultWrapper.scala
index 91cdb101e1dee..46ec25f2496b0 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/ExecutionResultWrapper.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/ExecutionResultWrapper.scala
@@ -22,12 +22,11 @@ package org.neo4j.cypher.internal.compatibility.v3_1
import java.io.PrintWriter
import java.util
-import org.neo4j.cypher._
+import org.neo4j.cypher.{internal, _}
import org.neo4j.cypher.internal._
import org.neo4j.cypher.internal.compatibility._
import org.neo4j.cypher.internal.compatibility.v3_1.ExecutionResultWrapper.asKernelNotification
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.{LegacyPlanDescription, Argument => Argument3_3, InternalPlanDescription => InternalPlanDescription3_3}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, ExplainMode, NormalMode, ProfileMode}
+import org.neo4j.cypher.internal.runtime.planDescription.{InternalPlanDescription => InternalPlanDescription3_4}
import org.neo4j.cypher.internal.compiler.v3_1.executionplan.{InternalExecutionResult, _}
import org.neo4j.cypher.internal.compiler.v3_1.planDescription.InternalPlanDescription.Arguments
import org.neo4j.cypher.internal.compiler.v3_1.planDescription.InternalPlanDescription.Arguments._
@@ -36,6 +35,9 @@ import org.neo4j.cypher.internal.compiler.v3_1.spi.{InternalResultRow, InternalR
import org.neo4j.cypher.internal.compiler.v3_1.{PlannerName, ExplainMode => ExplainModev3_1, NormalMode => NormalModev3_1, ProfileMode => ProfileModev3_1, _}
import org.neo4j.cypher.internal.frontend.v3_1.SemanticDirection.{BOTH, INCOMING, OUTGOING}
import org.neo4j.cypher.internal.frontend.v3_1.notification.{DeprecatedPlannerNotification, InternalNotification, PlannerUnsupportedNotification, RuntimeUnsupportedNotification, _}
+import org.neo4j.cypher.internal.runtime.{ExplainMode, NormalMode, ProfileMode}
+import org.neo4j.cypher.internal.runtime.QueryStatistics
+import org.neo4j.cypher.internal.runtime.planDescription.LegacyPlanDescription
import org.neo4j.cypher.internal.v3_4.expressions
import org.neo4j.cypher.result.QueryResult
import org.neo4j.cypher.result.QueryResult.Record
@@ -51,7 +53,7 @@ import scala.collection.JavaConverters._
class ExecutionResultWrapper(val inner: InternalExecutionResult, val planner: PlannerName, val runtime: RuntimeName,
preParsingNotification: Set[org.neo4j.graphdb.Notification],
offset : Option[frontend.v3_1.InputPosition])
- extends org.neo4j.cypher.internal.InternalExecutionResult {
+ extends internal.runtime.InternalExecutionResult {
override def planDescriptionRequested: Boolean = inner.planDescriptionRequested
override def javaIterator: ResourceIterator[util.Map[String, Any]] = inner.javaIterator
@@ -80,7 +82,7 @@ class ExecutionResultWrapper(val inner: InternalExecutionResult, val planner: Pl
override def javaColumnAs[T](column: String): ResourceIterator[T] = inner.javaColumnAs(column)
- override def executionPlanDescription(): InternalPlanDescription3_3 =
+ override def executionPlanDescription(): internal.runtime.planDescription.InternalPlanDescription =
convert(
inner.executionPlanDescription().
addArgument(Version("CYPHER 3.1")).
@@ -90,45 +92,45 @@ class ExecutionResultWrapper(val inner: InternalExecutionResult, val planner: Pl
addArgument(RuntimeImpl(runtime.name))
)
- private def convert(i: InternalPlanDescription): InternalPlanDescription3_3 = exceptionHandler.runSafely {
+ private def convert(i: InternalPlanDescription): internal.runtime.planDescription.InternalPlanDescription = exceptionHandler.runSafely {
LegacyPlanDescription(i.name, convert(i.arguments), Set.empty, i.toString)
}
- private def convert(args: Seq[Argument]): Seq[Argument3_3] = args.collect {
- case Arguments.LabelName(label) => InternalPlanDescription3_3.Arguments.LabelName(label)
- case Arguments.ColumnsLeft(value) => InternalPlanDescription3_3.Arguments.ColumnsLeft(value)
- case Arguments.DbHits(value) => InternalPlanDescription3_3.Arguments.DbHits(value)
- case Arguments.EstimatedRows(value) => InternalPlanDescription3_3.Arguments.EstimatedRows(value)
+ private def convert(args: Seq[Argument]): Seq[internal.runtime.planDescription.Argument] = args.collect {
+ case Arguments.LabelName(label) => InternalPlanDescription3_4.Arguments.LabelName(label)
+ case Arguments.ColumnsLeft(value) => InternalPlanDescription3_4.Arguments.ColumnsLeft(value)
+ case Arguments.DbHits(value) => InternalPlanDescription3_4.Arguments.DbHits(value)
+ case Arguments.EstimatedRows(value) => InternalPlanDescription3_4.Arguments.EstimatedRows(value)
case Arguments.ExpandExpression(from, relName, relTypes, to, direction, min, max) =>
val dir3_3 = direction match {
case INCOMING => expressions.SemanticDirection.INCOMING
case OUTGOING => expressions.SemanticDirection.OUTGOING
case BOTH => expressions.SemanticDirection.BOTH
}
- InternalPlanDescription3_3.Arguments.ExpandExpression(from, relName,relTypes,to, dir3_3, min, max)
-
- case Arguments.Index(label, propertyKey) => InternalPlanDescription3_3.Arguments.Index(label, Seq(propertyKey))
- case Arguments.LegacyIndex(value) => InternalPlanDescription3_3.Arguments.ExplicitIndex(value)
- case Arguments.InequalityIndex(label, propertyKey, bounds) => InternalPlanDescription3_3.Arguments.InequalityIndex(label, propertyKey, bounds)
- case Arguments.Planner(value) => InternalPlanDescription3_3.Arguments.Planner(value)
- case Arguments.PlannerImpl(value) => InternalPlanDescription3_3.Arguments.PlannerImpl(value)
- case Arguments.Runtime(value) => InternalPlanDescription3_3.Arguments.Runtime(value)
- case Arguments.RuntimeImpl(value) => InternalPlanDescription3_3.Arguments.RuntimeImpl(value)
- case Arguments.KeyNames(keys) => InternalPlanDescription3_3.Arguments.KeyNames(keys)
- case Arguments.MergePattern(start) => InternalPlanDescription3_3.Arguments.MergePattern(start)
- case Arguments.Version(value) => InternalPlanDescription3_3.Arguments.Version(value)
+ InternalPlanDescription3_4.Arguments.ExpandExpression(from, relName,relTypes,to, dir3_3, min, max)
+
+ case Arguments.Index(label, propertyKey) => InternalPlanDescription3_4.Arguments.Index(label, Seq(propertyKey))
+ case Arguments.LegacyIndex(value) => InternalPlanDescription3_4.Arguments.ExplicitIndex(value)
+ case Arguments.InequalityIndex(label, propertyKey, bounds) => InternalPlanDescription3_4.Arguments.InequalityIndex(label, propertyKey, bounds)
+ case Arguments.Planner(value) => InternalPlanDescription3_4.Arguments.Planner(value)
+ case Arguments.PlannerImpl(value) => InternalPlanDescription3_4.Arguments.PlannerImpl(value)
+ case Arguments.Runtime(value) => InternalPlanDescription3_4.Arguments.Runtime(value)
+ case Arguments.RuntimeImpl(value) => InternalPlanDescription3_4.Arguments.RuntimeImpl(value)
+ case Arguments.KeyNames(keys) => InternalPlanDescription3_4.Arguments.KeyNames(keys)
+ case Arguments.MergePattern(start) => InternalPlanDescription3_4.Arguments.MergePattern(start)
+ case Arguments.Version(value) => InternalPlanDescription3_4.Arguments.Version(value)
}
override def hasNext: Boolean = inner.hasNext
override def next(): Map[String, Any] = inner.next()
override def close(): Unit = inner.close()
- override def queryType: compatibility.v3_4.runtime.executionplan.InternalQueryType = inner.executionType match {
- case READ_ONLY => compatibility.v3_4.runtime.executionplan.READ_ONLY
- case READ_WRITE => compatibility.v3_4.runtime.executionplan.READ_WRITE
- case WRITE => compatibility.v3_4.runtime.executionplan.WRITE
- case SCHEMA_WRITE => compatibility.v3_4.runtime.executionplan.SCHEMA_WRITE
- case DBMS => compatibility.v3_4.runtime.executionplan.DBMS
+ override def queryType: internal.runtime.InternalQueryType = inner.executionType match {
+ case READ_ONLY => internal.runtime.READ_ONLY
+ case READ_WRITE => internal.runtime.READ_WRITE
+ case WRITE => internal.runtime.WRITE
+ case SCHEMA_WRITE => internal.runtime.SCHEMA_WRITE
+ case DBMS => internal.runtime.DBMS
}
override def notifications: Iterable[Notification] = inner.notifications.map(asKernelNotification(offset)) ++ preParsingNotification
@@ -149,13 +151,13 @@ class ExecutionResultWrapper(val inner: InternalExecutionResult, val planner: Pl
override def getString(key: String): String = row.getString(key)
}
- override def executionMode: ExecutionMode = inner.executionMode match {
+ override def executionMode: internal.runtime.ExecutionMode = inner.executionMode match {
case ExplainModev3_1 => ExplainMode
case ProfileModev3_1 => ProfileMode
case NormalModev3_1 => NormalMode
}
- override def withNotifications(notification: Notification*): internal.InternalExecutionResult =
+ override def withNotifications(notification: Notification*): internal.runtime.InternalExecutionResult =
new ExecutionResultWrapper(inner, planner, runtime, preParsingNotification ++ notification, offset)
override def fieldNames(): Array[String] = inner.columns.toArray
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/exceptionHandler.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/exceptionHandler.scala
index 3aadffca6d67e..4a2f5988bbb04 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/exceptionHandler.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/exceptionHandler.scala
@@ -20,6 +20,7 @@
package org.neo4j.cypher.internal.compatibility.v3_1
import org.neo4j.cypher._
+import org.neo4j.cypher.exceptionHandler.RunSafely
import org.neo4j.cypher.internal.compatibility.{ExceptionHandler, _}
import org.neo4j.cypher.internal.frontend.v3_1.spi.MapToPublicExceptions
import org.neo4j.cypher.internal.frontend.v3_1.{CypherException => InternalCypherException}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/Compatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/Compatibility.scala
index 1610afc898c7c..2f659debb966b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/Compatibility.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/Compatibility.scala
@@ -21,6 +21,7 @@ package org.neo4j.cypher.internal.compatibility.v3_4
import java.time.Clock
+import org.neo4j.cypher.{CypherExecutionMode, exceptionHandler}
import org.neo4j.cypher.internal._
import org.neo4j.cypher.internal.util.v3_4.InputPosition
import org.neo4j.cypher.internal.compatibility._
@@ -34,13 +35,14 @@ import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.compiler.v3_4.phases.{CompilationContains, LogicalPlanState}
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.idp._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{CachedMetricsFactory, QueryGraphSolver, SimpleMetricsFactory}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.ast.Statement
import org.neo4j.cypher.internal.frontend.v3_4.helpers.rewriting.RewriterStepSequencer
import org.neo4j.cypher.internal.frontend.v3_4.phases._
import org.neo4j.cypher.internal.javacompat.ExecutionResult
-import org.neo4j.cypher.internal.spi.v3_4.TransactionBoundQueryContext.IndexSearchMonitor
-import org.neo4j.cypher.internal.spi.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.{CostBasedPlannerName, DPPlannerName, IDPPlannerName, PlanContext}
+import org.neo4j.cypher.internal.runtime.{ExplainMode, InternalExecutionResult, NormalMode, ProfileMode}
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor
+import org.neo4j.cypher.internal.runtime.interpreted._
import org.neo4j.cypher.internal.v3_4.logical.plans.{ExplicitNodeIndexUsage, ExplicitRelationshipIndexUsage, SchemaIndexScanUsage, SchemaIndexSeekUsage}
import org.neo4j.graphdb.Result
import org.neo4j.kernel.api.KernelAPI
@@ -85,7 +87,7 @@ trait Compatibility[CONTEXT <: CommunityRuntimeContext,
def createExecPlan: Transformer[CONTEXT, LogicalPlanState, CompilationState] = {
ProcedureCallOrSchemaCommandExecutionPlanBuilder andThen
If((s: CompilationState) => s.maybeExecutionPlan.isEmpty)(
- runtimeBuilder.create(maybeRuntimeName, config.useErrorsOverWarnings).adds(CompilationContains[ExecutionPlan])
+ runtimeBuilder.create(maybeRuntimeName, config.useErrorsOverWarnings).adds(CompilationContains[ExecutionPlan_v3_4])
)
}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CompatibilityPlanDescription.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CompatibilityPlanDescription.scala
index e6cef546ad25b..902ad92d83969 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CompatibilityPlanDescription.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CompatibilityPlanDescription.scala
@@ -20,11 +20,11 @@
package org.neo4j.cypher.internal.compatibility.v3_4
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.RuntimeName
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, PageCacheHits, PageCacheMisses, Rows}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.{Argument, InternalPlanDescription, PlanDescriptionArgumentSerializer}
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
import org.neo4j.cypher.internal.javacompat.{PlanDescription, ProfilerStatistics}
-import org.neo4j.cypher.{CypherVersion, InternalException}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, PageCacheHits, PageCacheMisses, Rows}
+import org.neo4j.cypher.internal.runtime.planDescription.{Argument, InternalPlanDescription, PlanDescriptionArgumentSerializer}
+import org.neo4j.cypher.{CypherVersion, InternalException, exceptionHandler}
import scala.collection.JavaConverters._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CostCompatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CostCompatibility.scala
index 72c7bc0ae8b61..12e3dab343b1c 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CostCompatibility.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CostCompatibility.scala
@@ -28,6 +28,7 @@ import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.compiler.v3_4.phases.LogicalPlanState
import org.neo4j.cypher.internal.frontend.v3_4.ast.Statement
import org.neo4j.cypher.internal.frontend.v3_4.phases.{BaseState, Monitors, Transformer}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{CostBasedPlannerName, DPPlannerName, IDPPlannerName}
import org.neo4j.cypher.{CypherPlanner, CypherRuntime, CypherUpdateStrategy}
import org.neo4j.kernel.api.KernelAPI
import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/ExceptionTranslatingPlanContext.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslatingPlanContext.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/ExceptionTranslatingPlanContext.scala
rename to community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslatingPlanContext.scala
index 7278dabdad239..fc7538c4186e9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/ExceptionTranslatingPlanContext.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslatingPlanContext.scala
@@ -17,11 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.compatibility.v3_4
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.compiler.v3_4.spi._
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, IndexDescriptor, PlanContext}
import org.neo4j.cypher.internal.v3_4.logical.plans.{ProcedureSignature, QualifiedName, UserFunctionSignature}
class ExceptionTranslatingPlanContext(inner: PlanContext) extends PlanContext with ExceptionTranslationSupport {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslatingQueryContext.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslatingQueryContext.scala
index dc2bc6a2d72b3..0b444f3d303df 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslatingQueryContext.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslatingQueryContext.scala
@@ -22,10 +22,10 @@ package org.neo4j.cypher.internal.compatibility.v3_4
import java.net.URL
import org.neo4j.collection.primitive.PrimitiveLongIterator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expander, KernelPredicate, UserDefinedAggregator}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.PatternNode
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.spi.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.matching.PatternNode
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.runtime.interpreted.{DelegatingOperations, DelegatingQueryTransactionalContext}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName
import org.neo4j.graphdb.{Node, Path, PropertyContainer, Relationship}
@@ -232,8 +232,8 @@ class ExceptionTranslatingQueryContext(val inner: QueryContext) extends QueryCon
override def asObject(value: AnyValue) =
translateException(inner.asObject(value))
- override def variableLengthPathExpand(node: PatternNode, realNode: Long, minHops: Option[Int], maxHops: Option[Int], direction: SemanticDirection, relTypes: Seq[String]) =
- translateException(inner.variableLengthPathExpand(node, realNode, minHops, maxHops, direction, relTypes))
+ override def variableLengthPathExpand(realNode: Long, minHops: Option[Int], maxHops: Option[Int], direction: SemanticDirection, relTypes: Seq[String]) =
+ translateException(inner.variableLengthPathExpand(realNode, minHops, maxHops, direction, relTypes))
override def singleShortestPath(left: Long, right: Long, depth: Int, expander: Expander, pathPredicate: KernelPredicate[Path], filters: Seq[KernelPredicate[PropertyContainer]]) =
translateException(inner.singleShortestPath(left, right, depth, expander, pathPredicate, filters))
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/ExceptionTranslationSupport.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslationSupport.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/ExceptionTranslationSupport.scala
rename to community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslationSupport.scala
index 44005c7dbfc02..0f9360fafe63a 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/ExceptionTranslationSupport.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ExceptionTranslationSupport.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.compatibility.v3_4
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
import org.neo4j.cypher.{ConstraintValidationException, CypherExecutionException}
import org.neo4j.graphdb.{ConstraintViolationException => KernelConstraintViolationException}
import org.neo4j.internal.kernel.api.TokenNameLookup
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/BuildInterpretedExecutionPlan.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/BuildInterpretedExecutionPlan.scala
index 0919511baca5e..dad7d8da5e781 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/BuildInterpretedExecutionPlan.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/BuildInterpretedExecutionPlan.scala
@@ -19,21 +19,21 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime
-import org.neo4j.cypher.internal.InternalExecutionResult
import org.neo4j.cypher.internal.util.v3_4.PeriodicCommitInOpenTransactionException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.phases.CompilationState
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.Pipe
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.profiler.Profiler
import org.neo4j.cypher.internal.compiler.v3_4.CypherCompilerConfiguration
import org.neo4j.cypher.internal.compiler.v3_4.phases._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, PlanContext}
import org.neo4j.cypher.internal.frontend.v3_4.notification.InternalNotification
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.CompilationPhase.PIPE_BUILDING
import org.neo4j.cypher.internal.frontend.v3_4.phases.{InternalNotificationLogger, Phase}
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, UpdateCountingQueryContext}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.runtime.interpreted.UpdateCountingQueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.Pipe
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, InternalExecutionResult, ProfileMode, QueryContext}
import org.neo4j.cypher.internal.v3_4.logical.plans.IndexUsage
import org.neo4j.values.virtual.MapValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/CommunityPipeBuilder.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/CommunityPipeBuilder.scala
index 36be18161617a..ee7adb1bb064f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/CommunityPipeBuilder.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/CommunityPipeBuilder.scala
@@ -19,20 +19,20 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime
-import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.ExpressionConverters
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.PatternConverters._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{AggregationExpression, Literal}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Predicate, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan._
+import org.neo4j.cypher.internal.util.v3_4.{Eagerly, InternalException}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.builders.prepare.KeyTokenResolver
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly
import org.neo4j.cypher.internal.frontend.v3_4.phases.Monitors
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.v3_4.expressions.{Expression => ASTExpression, Equals => ASTEquals, _}
+import org.neo4j.cypher.internal.v3_4.expressions.{Equals => ASTEquals, Expression => ASTExpression, _}
import org.neo4j.cypher.internal.ir.v3_4.{IdName, VarPatternLength}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.runtime.ProcedureCallMode
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.ExpressionConverters
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.PatternConverters._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{AggregationExpression, Literal}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Predicate, True}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
import org.neo4j.cypher.internal.v3_4.logical.plans
import org.neo4j.cypher.internal.v3_4.logical.plans.{ColumnOrder, Limit => LimitPlan, LoadCSV => LoadCSVPlan, Skip => SkipPlan, _}
import org.neo4j.values.AnyValue
@@ -412,8 +412,8 @@ case class CommunityPipeBuilder(monitors: Monitors, recurse: LogicalPlan => Pipe
expressionConverters.toCommandPredicate(rewrittenExpr).rewrite(KeyTokenResolver.resolveExpressions(_, planContext)).asInstanceOf[Predicate]
}
- private def translateColumnOrder(s: ColumnOrder): pipes.ColumnOrder = s match {
- case plans.Ascending(IdName(name)) => pipes.Ascending(name)
- case plans.Descending(IdName(name)) => pipes.Descending(name)
+ private def translateColumnOrder(s: ColumnOrder): org.neo4j.cypher.internal.runtime.interpreted.pipes.ColumnOrder = s match {
+ case plans.Ascending(IdName(name)) => org.neo4j.cypher.internal.runtime.interpreted.pipes.Ascending(name)
+ case plans.Descending(IdName(name)) => org.neo4j.cypher.internal.runtime.interpreted.pipes.Descending(name)
}
}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/CommunityRuntimeContext.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/CommunityRuntimeContext.scala
index ccdd48bb64663..449b3822d5cfb 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/CommunityRuntimeContext.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/CommunityRuntimeContext.scala
@@ -25,9 +25,9 @@ import org.neo4j.cypher.internal.util.v3_4.{CypherException, InputPosition}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{PlanFingerprint, PlanFingerprintReference}
import org.neo4j.cypher.internal.compiler.v3_4.phases.CompilerContext
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{ExpressionEvaluator, Metrics, MetricsFactory, QueryGraphSolver}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.compiler.v3_4.{ContextCreator, CypherCompilerConfiguration, SyntaxExceptionCreator, UpdateStrategy}
import org.neo4j.cypher.internal.frontend.v3_4.phases.{CompilationPhaseTracer, InternalNotificationLogger, Monitors}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
class CommunityRuntimeContext(override val exceptionCreator: (String, InputPosition) => CypherException,
override val tracer: CompilationPhaseTracer,
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionResultDumper.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionResultDumper.scala
index 28b8d66670b4d..b2c0982bd8dbf 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionResultDumper.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionResultDumper.scala
@@ -21,10 +21,9 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime
import java.io.{PrintWriter, StringWriter}
-import org.neo4j.cypher.internal.QueryStatistics
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
import org.neo4j.cypher.internal.compiler.v3_4.helpers.IsList
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.runtime.{QueryContext, QueryStatistics}
import org.neo4j.graphdb.{Node, PropertyContainer, Relationship}
import scala.collection.Map
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExplainExecutionResult.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExplainExecutionResult.scala
index bf29900acb35d..de940e4d828f1 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExplainExecutionResult.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExplainExecutionResult.scala
@@ -23,9 +23,9 @@ import java.io.PrintWriter
import java.util
import java.util.Collections
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.InternalQueryType
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.{InternalExecutionResult, QueryStatistics}
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, ExplainMode, InternalExecutionResult, InternalQueryType}
+import org.neo4j.cypher.internal.runtime.QueryStatistics
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.result.QueryResult.QueryResultVisitor
import org.neo4j.graphdb.Result.ResultVisitor
import org.neo4j.graphdb.{Notification, ResourceIterator}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeBuilderFactory.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeBuilderFactory.scala
index 1918989ba69b0..e20a397a7c080 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeBuilderFactory.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeBuilderFactory.scala
@@ -20,12 +20,11 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime
import org.neo4j.cypher.internal.util.v3_4.{Rewriter, bottomUp}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.ExpressionConverters
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{NestedPipeExpression, Pipe}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
-import org.neo4j.cypher.internal.compiler.v3_4.{ast => compilerAst}
import org.neo4j.cypher.internal.frontend.v3_4.phases.Monitors
-import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.ExpressionConverters
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{NestedPipeExpression, Pipe}
+import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, NestedPlanExpression}
import org.neo4j.cypher.internal.v3_4.{expressions => frontEndAst}
trait PipeBuilderFactory {
@@ -41,7 +40,7 @@ trait PipeBuilderFactory {
val buildPipeExpressions = new Rewriter {
private val instance = bottomUp(Rewriter.lift {
- case expr@compilerAst.NestedPlanExpression(patternPlan, expression) =>
+ case expr@NestedPlanExpression(patternPlan, expression) =>
val pipe = recurse(patternPlan)
val result = NestedPipeExpression(pipe, expression)(expr.position)
result
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilder.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilder.scala
index 469cdd2884afb..4874b17044b73 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilder.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilder.scala
@@ -22,12 +22,12 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime
import java.time.Clock
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.ExpressionConverters
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{InstrumentedGraphStatistics, PlanContext}
import org.neo4j.cypher.internal.frontend.v3_4.phases.Monitors
import org.neo4j.cypher.internal.ir.v3_4.PeriodicCommit
+import org.neo4j.cypher.internal.planner.v3_4.spi.{InstrumentedGraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.ExpressionConverters
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.Pipe
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, Limit => LimitPlan, LoadCSV => LoadCSVPlan, Skip => SkipPlan}
import scala.collection.mutable
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionResult.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionResult.scala
index 98016879efc65..80ebcdf6b19ed 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionResult.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionResult.scala
@@ -22,14 +22,12 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime
import java.io.PrintWriter
import java.util
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.InternalQueryType
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{MapBasedRow, RuntimeJavaValueConverter, RuntimeScalaValueConverter}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.Version
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly.immutableMapValues
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.MapBasedRow
+import org.neo4j.cypher.internal.util.v3_4.Eagerly.immutableMapValues
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.Version
import org.neo4j.cypher.result.QueryResult
import org.neo4j.cypher.result.QueryResult.QueryResultVisitor
import org.neo4j.graphdb.Result.ResultVisitor
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ResultIterator.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ResultIterator.scala
index fcc2641543c7b..868142b20305b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ResultIterator.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ResultIterator.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime
-import org.neo4j.cypher.internal.util.v3_4.CypherException
+import org.neo4j.cypher.internal.util.v3_4.{CypherException, TaskCloser}
import org.neo4j.values.AnyValue
import scala.collection.immutable
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForLoadCsvAndMatchOnLargeLabel.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForLoadCsvAndMatchOnLargeLabel.scala
index 98b4bcbf631f0..60011217d3f70 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForLoadCsvAndMatchOnLargeLabel.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForLoadCsvAndMatchOnLargeLabel.scala
@@ -19,11 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
import org.neo4j.cypher.internal.frontend.v3_4.notification.{InternalNotification, LargeLabelWithLoadCsvNotification}
-import org.neo4j.cypher.internal.ir.v3_4.Cardinality
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{LoadCSVPipe, NodeByLabelScanPipe, Pipe}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId}
case class CheckForLoadCsvAndMatchOnLargeLabel(planContext: PlanContext, nonIndexedLabelWarningThreshold: Long) extends (Pipe => Option[InternalNotification]) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/DefaultExecutionResultBuilderFactory.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/DefaultExecutionResultBuilderFactory.scala
index 97693e269d275..02ec9b23f148b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/DefaultExecutionResultBuilderFactory.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/DefaultExecutionResultBuilderFactory.scala
@@ -19,15 +19,15 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.util.v3_4.{CypherException, ProfilerStatisticsNotReadyException}
+import org.neo4j.cypher.internal.util.v3_4.{CypherException, ProfilerStatisticsNotReadyException, TaskCloser}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.InternalWrapping._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{Runtime, RuntimeImpl}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.{InternalPlanDescription, LogicalPlan2PlanDescription}
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
-import org.neo4j.cypher.internal.spi.v3_4.{CSVResources, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.runtime.{InternalExecutionResult, _}
+import org.neo4j.cypher.internal.runtime.interpreted.{CSVResources, ExecutionContext}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{Runtime, RuntimeImpl}
+import org.neo4j.cypher.internal.runtime.planDescription.{InternalPlanDescription, LogicalPlan2PlanDescription}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.values.virtual.MapValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionPlan.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionPlan.scala
index 5f14e792f11ec..37c282c366930 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionPlan.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionPlan.scala
@@ -19,12 +19,11 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, RuntimeName}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.RuntimeName
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
import org.neo4j.cypher.internal.frontend.v3_4.notification.InternalNotification
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, InternalExecutionResult, QueryContext}
import org.neo4j.cypher.internal.v3_4.logical.plans.IndexUsage
import org.neo4j.values.virtual.MapValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionPlanBuilder.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionPlanBuilder.scala
index 2953dece2fea8..6e15bb1af5f95 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionPlanBuilder.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionPlanBuilder.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.Pipe
import org.neo4j.cypher.internal.compiler.v3_4.planner.CantCompileQueryException
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.Pipe
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
case class PipeInfo(pipe: Pipe,
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionResultBuilder.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionResultBuilder.scala
index 3d1f32178c0f5..e402ac9c624f3 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionResultBuilder.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionResultBuilder.scala
@@ -19,12 +19,11 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
-import org.neo4j.cypher.internal.InternalExecutionResult
import org.neo4j.cypher.internal.util.v3_4.CypherException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.PipeDecorator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, RuntimeName}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.RuntimeName
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.PipeDecorator
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, InternalExecutionResult, QueryContext}
import org.neo4j.values.virtual.MapValue
trait ExecutionResultBuilder {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/LoadCsvPeriodicCommitObserver.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/LoadCsvPeriodicCommitObserver.scala
index 8a458c36d1af4..073e07574c555 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/LoadCsvPeriodicCommitObserver.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/LoadCsvPeriodicCommitObserver.scala
@@ -21,9 +21,9 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
import java.net.URL
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.ExternalCSVResource
import org.neo4j.cypher.internal.util.v3_4.{CypherException, LoadCsvStatusWrapCypherException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.ExternalCSVResource
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
class LoadCsvPeriodicCommitObserver(batchRowCount: Long, resources: ExternalCSVResource, queryContext: QueryContext)
extends ExternalCSVResource with ((CypherException) => CypherException) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/MatchPattern.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/MatchPattern.scala
deleted file mode 100644
index 474bdbceddcff..0000000000000
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/MatchPattern.scala
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2002-2017 "Neo Technology,"
- * Network Engine for Objects in Lund AB [http://neotechnology.com]
- *
- * This file is part of Neo4j.
- *
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
-
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands._
-
-import scala.collection.mutable
-
-object MatchPattern {
-
- type TUPLE = (Seq[String], Seq[MatchRelationship])
-
- def apply (patterns:Seq[Pattern]) : MatchPattern = if(patterns.isEmpty) {
- MatchPattern(Seq(), Seq())
- } else {
- def tuple(name:Option[String], from: String, to: String): TUPLE = {
- Seq(from, to) -> Seq(MatchRelationship(name, from, to))
- }
-
- val theThings: Seq[TUPLE] = patterns.map {
- case SingleNode(n, _, _) => Seq(n) -> Seq()
- case RelatedTo(from, to, r, _, _, _) => tuple(Some(r), from.name, to.name)
- case ShortestPath(_, from, to, _, _, _, _, _, _) => tuple(None, from.name, to.name)
- case VarLengthRelatedTo(_, from, to, _, _, _, _, _, _) => tuple(None, from.name, to.name)
- }
-
- val (nodes, rels) = theThings.reduce( (a,b) => {
- val ((aNodes,aRels),(bNodes,bRels)) = (a,b)
- ( aNodes ++ bNodes, aRels ++ bRels )
- })
-
- new MatchPattern(nodes, rels)
- }
-}
-
-case class MatchRelationship(name:Option[String], from:String, to:String) {
- def contains(node: String):Boolean = from == node || to == node
-}
-
-case class MatchPattern(nodes:Seq[String], relationships:Seq[MatchRelationship]) {
- def isEmpty: Boolean = nodes.isEmpty && relationships.isEmpty
- def nonEmpty : Boolean = !isEmpty
-
- def possibleStartNodes : Seq[String] = nodes
-
- def disconnectedPatternsWithout(variables: Seq[String]): Seq[MatchPattern] =
- disconnectedPatterns.
- filterNot( _.containsVariableNamed( variables ) ).
- filter(_.nonEmpty)
-
- def containsVariableNamed(variables: Seq[String]): Boolean =
- nodes.exists(variables.contains) ||
- relationships.flatMap(_.name).exists(variables.contains)
-
- def disconnectedPatterns : Seq[MatchPattern] = if (nodes.isEmpty) {
- Seq(this)
- } else {
-
- val result = mutable.ListBuffer[MatchPattern]()
- var nodesLeft = nodes.toSet
- var relationshipsLeft = relationships.toSet
-
- var currentNodes= mutable.ListBuffer[String]()
- var currentRels = mutable.ListBuffer[MatchRelationship]()
-
- def popNextNode() {
- var current = nodesLeft.head
- nodesLeft -= current
- currentNodes += current
- }
-
- popNextNode()
-
- while(nodesLeft.nonEmpty) {
-
- // Find relationships that our nodes are involved in
- val (interesting, temp) = relationshipsLeft.partition( (r) => currentNodes.exists(r.contains) )
- relationshipsLeft = temp
-
- if(interesting.nonEmpty) {
-
- currentRels ++= interesting
-
- // Now find nodes that our new rels are connected to, that we haven't added yet
- val (interestingNodes, tempNodes) =
- nodesLeft.partition( node => currentRels.exists( r => r.contains(node)) )
- nodesLeft = tempNodes
-
- currentNodes ++= interestingNodes
- } else {
- // Done finding a disjoint subgraph, save it off and clear space for the next one
- result += MatchPattern(currentNodes.toIndexedSeq, currentRels.toIndexedSeq)
- currentNodes.clear()
- currentRels.clear()
-
- popNextNode()
- }
- }
-
- // Add last graph
- result += MatchPattern(currentNodes.toIndexedSeq, currentRels.toIndexedSeq)
- result.toIndexedSeq
- }
-
-}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/PlanFingerprint.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/PlanFingerprint.scala
index 7932c887bda5c..fb390da0f85a5 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/PlanFingerprint.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/PlanFingerprint.scala
@@ -21,7 +21,7 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
import java.time.Clock
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, GraphStatisticsSnapshot}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, GraphStatisticsSnapshot}
case class PlanFingerprint(creationTimeMillis: Long, txId: Long, snapshot: GraphStatisticsSnapshot)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/StandardInternalExecutionResult.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/StandardInternalExecutionResult.scala
index 577acc5ca7614..11df15f2d6471 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/StandardInternalExecutionResult.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/StandardInternalExecutionResult.scala
@@ -23,17 +23,15 @@ import java.io.{PrintWriter, StringWriter}
import java.util
import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{MapBasedRow, RuntimeScalaValueConverter, RuntimeTextValueConverter}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{Planner, PlannerImpl, Runtime, RuntimeImpl}
-import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
-import org.neo4j.cypher.internal.{InternalExecutionResult, QueryStatistics}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{MapBasedRow, RuntimeTextValueConverter}
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.util.v3_4.{Eagerly, TaskCloser}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{Runtime, RuntimeImpl}
import org.neo4j.cypher.result.QueryResult
import org.neo4j.cypher.result.QueryResult.QueryResultVisitor
+import org.neo4j.graphdb.{NotFoundException, Notification, ResourceIterator}
import org.neo4j.graphdb.Result.{ResultRow, ResultVisitor}
-import org.neo4j.graphdb._
import scala.collection.{Map, mutable}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/prepare/KeyTokenResolver.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/prepare/KeyTokenResolver.scala
index 8c3b41a6ed2e0..9b4e6b3cd8264 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/prepare/KeyTokenResolver.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/prepare/KeyTokenResolver.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.builders.prepare
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
object KeyTokenResolver {
/*this is what you should use!*/
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/checkForEagerLoadCsv.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/checkForEagerLoadCsv.scala
index 6d41305d05020..93f237a60de56 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/checkForEagerLoadCsv.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/checkForEagerLoadCsv.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{EagerPipe, LoadCSVPipe, Pipe}
import org.neo4j.cypher.internal.frontend.v3_4.notification.{EagerLoadCsvNotification, InternalNotification}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{EagerPipe, LoadCSVPipe, Pipe}
object checkForEagerLoadCsv extends (Pipe => Option[InternalNotification]) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/formatOutput.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/formatOutput.scala
index 2248759bcbb85..3957f8e7cd994 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/formatOutput.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/formatOutput.scala
@@ -21,7 +21,7 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
import java.io.PrintWriter
-import org.neo4j.cypher.internal.QueryStatistics
+import org.neo4j.cypher.internal.runtime.QueryStatistics
import scala.collection.Map
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallExecutionPlan.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallExecutionPlan.scala
index 7fc7b155001f4..19e5adb460257 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallExecutionPlan.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallExecutionPlan.scala
@@ -20,23 +20,21 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.procs
import org.neo4j.cypher.CypherVersion
-import org.neo4j.cypher.internal.InternalExecutionResult
import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.ExpressionConverters
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{ExecutionPlan, ProcedureCallMode}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.Counter
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{ExternalCSVResource, QueryState}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.{Argument, NoChildren, PlanDescriptionImpl}
-import org.neo4j.cypher.internal.compiler.v3_4.ProcedurePlannerName
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.ExecutionPlan
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.Expression
import org.neo4j.cypher.internal.frontend.v3_4.notification.InternalNotification
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, PlanContext, ProcedurePlannerName}
import org.neo4j.cypher.internal.util.v3_4.symbols.CypherType
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, PlanContext}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.ExpressionConverters
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Expression => CommandExpression}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{ExternalCSVResource, QueryState}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
+import org.neo4j.cypher.internal.runtime.planDescription.{Argument, NoChildren, PlanDescriptionImpl}
+import org.neo4j.cypher.internal.util.v3_4.TaskCloser
import org.neo4j.cypher.internal.v3_4.logical.plans.ProcedureSignature
import org.neo4j.graphdb.Notification
import org.neo4j.values.virtual.MapValue
@@ -66,7 +64,7 @@ case class ProcedureCallExecutionPlan(signature: ProcedureSignature,
(r._1, r._2, resultSymbols(i)._2)
})
- private val argExprCommands: Seq[expressions.Expression] = argExprs.map(converter.toCommandExpression) ++
+ private val argExprCommands: Seq[CommandExpression] = argExprs.map(converter.toCommandExpression) ++
signature.inputSignature.drop(argExprs.size).flatMap(_.default).map(o => Literal(o.value))
override def run(ctx: QueryContext, planType: ExecutionMode, params: MapValue): InternalExecutionResult = {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallOrSchemaCommandExecutionPlanBuilder.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallOrSchemaCommandExecutionPlanBuilder.scala
index 40ba19259e031..4ce5d2d0f6f21 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallOrSchemaCommandExecutionPlanBuilder.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallOrSchemaCommandExecutionPlanBuilder.scala
@@ -20,17 +20,17 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.procs
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.CommunityRuntimeContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{ExecutionPlan, SCHEMA_WRITE}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.ExecutionPlan
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.InternalWrapping._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.phases.CompilationState
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
import org.neo4j.cypher.internal.compiler.v3_4.phases._
-import org.neo4j.cypher.internal.frontend.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.CompilationPhase
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.CompilationPhase.PIPE_BUILDING
import org.neo4j.cypher.internal.frontend.v3_4.phases.{Condition, Phase}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.runtime.{QueryContext, SCHEMA_WRITE}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, PropertyKeyId}
import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, PropertyKeyName, RelTypeName}
import org.neo4j.cypher.internal.v3_4.logical.plans._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureExecutionResult.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureExecutionResult.scala
index 9af7a239cac5f..24098522dc96f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureExecutionResult.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureExecutionResult.scala
@@ -21,15 +21,14 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.procs
import java.util
-import org.neo4j.cypher.internal.util.v3_4.ProfilerStatisticsNotReadyException
+import org.neo4j.cypher.internal.util.v3_4.{ProfilerStatisticsNotReadyException, TaskCloser}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{InternalQueryType, ProcedureCallMode, StandardInternalExecutionResult}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{Runtime, RuntimeImpl}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.StandardInternalExecutionResult
import org.neo4j.cypher.internal.util.v3_4.symbols.{CypherType, _}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName
-import org.neo4j.cypher.internal.{InternalExecutionResult, QueryStatistics}
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{Runtime, RuntimeImpl}
import org.neo4j.cypher.result.QueryResult.{QueryResultVisitor, Record}
import org.neo4j.graphdb.Notification
import org.neo4j.graphdb.spatial.{Geometry, Point}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/PureSideEffectExecutionPlan.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/PureSideEffectExecutionPlan.scala
index 3b9c57595d37b..5069a8caa3217 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/PureSideEffectExecutionPlan.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/PureSideEffectExecutionPlan.scala
@@ -20,16 +20,16 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.procs
import org.neo4j.cypher.CypherVersion
-import org.neo4j.cypher.internal.InternalExecutionResult
import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{ExecutionPlan, InternalQueryType, SCHEMA_WRITE}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.{NoChildren, PlanDescriptionImpl}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.ExecutionPlan
import org.neo4j.cypher.internal.compiler.v3_4._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, PlanContext}
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
import org.neo4j.cypher.internal.frontend.v3_4.notification.InternalNotification
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, UpdateCountingQueryContext}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, PlanContext, ProcedurePlannerName}
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.runtime.interpreted.UpdateCountingQueryContext
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
+import org.neo4j.cypher.internal.runtime.planDescription.{NoChildren, PlanDescriptionImpl}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.virtual.MapValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/PureSideEffectInternalExecutionResult.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/PureSideEffectInternalExecutionResult.scala
index 6681195a2fbff..384cb763f28d2 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/PureSideEffectInternalExecutionResult.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/PureSideEffectInternalExecutionResult.scala
@@ -21,11 +21,10 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.procs
import java.io.PrintWriter
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{InternalQueryType, StandardInternalExecutionResult}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, ProcedureRuntimeName}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
-import org.neo4j.cypher.internal.{InternalExecutionResult, QueryStatistics}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.StandardInternalExecutionResult
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ProcedureRuntimeName
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.result.QueryResult.QueryResultVisitor
import org.neo4j.graphdb.Notification
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeTextValueConverter.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeTextValueConverter.scala
index 24845a05e1b5e..88eb8cfbb714b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeTextValueConverter.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeTextValueConverter.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.{QueryContext, RuntimeScalaValueConverter}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
import org.neo4j.graphdb.{Entity, Node, Path, Relationship}
import scala.collection.Map
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/simpleExpressionEvaluator.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/simpleExpressionEvaluator.scala
index d212117f4a34f..0fe1ceb3852d6 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/simpleExpressionEvaluator.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/simpleExpressionEvaluator.scala
@@ -20,10 +20,10 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
import org.neo4j.cypher.internal.util.v3_4.{CypherException => InternalCypherException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{NullPipeDecorator, QueryState}
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.ExpressionEvaluator
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{NullPipeDecorator, QueryState}
import org.neo4j.cypher.internal.v3_4.expressions.Expression
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/profiler/Profiler.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/profiler/Profiler.scala
index 323a0a6d2628b..41b24b2fcb0b3 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/profiler/Profiler.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/profiler/Profiler.scala
@@ -20,12 +20,12 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.profiler
import org.neo4j.collection.primitive.PrimitiveLongIterator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.PrimitiveLongHelper
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeDecorator, QueryState}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments
-import org.neo4j.cypher.internal.spi.v3_4.{DelegatingOperations, DelegatingQueryContext, Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.{DelegatingOperations, DelegatingQueryContext, ExecutionContext}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeDecorator, QueryState}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.graphdb.{Node, PropertyContainer, Relationship}
import org.neo4j.helpers.MathUtil
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/TransactionBoundPlanContext.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/TransactionBoundPlanContext.scala
index 0cc4229af0a45..4584af9f90668 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/TransactionBoundPlanContext.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/TransactionBoundPlanContext.scala
@@ -23,7 +23,7 @@ import org.neo4j.cypher.MissingIndexException
import org.neo4j.cypher.internal.compiler.v2_3.pipes.EntityProducer
import org.neo4j.cypher.internal.compiler.v2_3.pipes.matching.ExpanderStep
import org.neo4j.cypher.internal.compiler.v2_3.spi._
-import org.neo4j.cypher.internal.spi.v3_4.TransactionalContextWrapper
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionalContextWrapper
import org.neo4j.graphdb.Node
import org.neo4j.internal.kernel.api.exceptions.KernelException
import org.neo4j.kernel.api.index.InternalIndexState
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/TransactionBoundQueryContext.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/TransactionBoundQueryContext.scala
index d59491b302851..c9a894678e419 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/TransactionBoundQueryContext.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/TransactionBoundQueryContext.scala
@@ -35,9 +35,8 @@ import org.neo4j.cypher.internal.compiler.v2_3.helpers.JavaConversionSupport._
import org.neo4j.cypher.internal.compiler.v2_3.pipes.matching.PatternNode
import org.neo4j.cypher.internal.compiler.v2_3.spi._
import org.neo4j.cypher.internal.frontend.v2_3.{Bound, EntityNotFoundException, FailedIndexException, SemanticDirection}
-import org.neo4j.cypher.internal.spi.BeansAPIRelationshipIterator
-import org.neo4j.cypher.internal.spi.v3_4.TransactionalContextWrapper
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.interpreted.{BeansAPIRelationshipIterator, TransactionalContextWrapper}
import org.neo4j.graphalgo.impl.path.ShortestPath
import org.neo4j.graphalgo.impl.path.ShortestPath.ShortestPathPredicate
import org.neo4j.graphdb.RelationshipType._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundPlanContext.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundPlanContext.scala
index c8e98e4663ac9..1ae9b0b469f0f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundPlanContext.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundPlanContext.scala
@@ -22,7 +22,6 @@ package org.neo4j.cypher.internal.spi.v3_1
import java.util.Optional
import org.neo4j.cypher.MissingIndexException
-import org.neo4j.cypher.internal.LastCommittedTxIdProvider
import org.neo4j.cypher.internal.compiler.v3_1.InternalNotificationLogger
import org.neo4j.cypher.internal.compiler.v3_1.pipes.EntityProducer
import org.neo4j.cypher.internal.compiler.v3_1.pipes.matching.ExpanderStep
@@ -30,6 +29,7 @@ import org.neo4j.cypher.internal.compiler.v3_1.spi.SchemaTypes.{IndexDescriptor,
import org.neo4j.cypher.internal.compiler.v3_1.spi._
import org.neo4j.cypher.internal.frontend.v3_1.symbols.CypherType
import org.neo4j.cypher.internal.frontend.v3_1.{CypherExecutionException, symbols}
+import org.neo4j.cypher.internal.runtime.interpreted.LastCommittedTxIdProvider
import org.neo4j.graphdb.Node
import org.neo4j.internal.kernel.api.exceptions.KernelException
import org.neo4j.kernel.api.index.InternalIndexState
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundQueryContext.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundQueryContext.scala
index 84e29f31dff75..400f655436dd8 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundQueryContext.scala
+++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundQueryContext.scala
@@ -36,9 +36,9 @@ import org.neo4j.cypher.internal.compiler.v3_1.pipes.matching.PatternNode
import org.neo4j.cypher.internal.compiler.v3_1.spi.SchemaTypes.{IndexDescriptor, NodePropertyExistenceConstraint, RelationshipPropertyExistenceConstraint, UniquenessConstraint}
import org.neo4j.cypher.internal.compiler.v3_1.spi._
import org.neo4j.cypher.internal.frontend.v3_1.{Bound, EntityNotFoundException, FailedIndexException, SemanticDirection}
-import org.neo4j.cypher.internal.spi.BeansAPIRelationshipIterator
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.interpreted.BeansAPIRelationshipIterator
import org.neo4j.cypher.internal.spi.v3_1.TransactionBoundQueryContext.IndexSearchMonitor
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.cypher.{InternalException, internal}
import org.neo4j.graphalgo.impl.path.ShortestPath
import org.neo4j.graphalgo.impl.path.ShortestPath.ShortestPathPredicate
@@ -657,7 +657,7 @@ final class TransactionBoundQueryContext(txContext: TransactionalContextWrapper)
call(kn, toArray)
}
- override def isGraphKernelResultValue(v: Any): Boolean = internal.isGraphKernelResultValue(v)
+ override def isGraphKernelResultValue(v: Any): Boolean = v.isInstanceOf[PropertyContainer] || v.isInstanceOf[Path]
private def buildPathFinder(depth: Int, expander: expressions.Expander, pathPredicate: KernelPredicate[Path],
filters: Seq[KernelPredicate[PropertyContainer]]): ShortestPath = {
diff --git a/community/cypher/cypher/src/test/java/org/neo4j/cypher/ManyMergesStressTest.java b/community/cypher/cypher/src/test/java/org/neo4j/cypher/ManyMergesStressTest.java
index 5192f2f324be8..2832359c8cc21 100644
--- a/community/cypher/cypher/src/test/java/org/neo4j/cypher/ManyMergesStressTest.java
+++ b/community/cypher/cypher/src/test/java/org/neo4j/cypher/ManyMergesStressTest.java
@@ -26,7 +26,7 @@
import java.util.Random;
import java.util.concurrent.TimeUnit;
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService;
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Label;
import org.neo4j.graphdb.Result;
diff --git a/community/cypher/cypher/src/test/java/org/neo4j/cypher/QueryExecutionMonitorTest.scala b/community/cypher/cypher/src/test/java/org/neo4j/cypher/QueryExecutionMonitorTest.scala
index 15447d890d24c..b478180bb9728 100644
--- a/community/cypher/cypher/src/test/java/org/neo4j/cypher/QueryExecutionMonitorTest.scala
+++ b/community/cypher/cypher/src/test/java/org/neo4j/cypher/QueryExecutionMonitorTest.scala
@@ -23,17 +23,16 @@ import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.neo4j.cypher.ExecutionEngineHelper.createEngine
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.helpers.GraphIcing
-import org.neo4j.cypher.internal.{ExecutionEngine}
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.ExecutionEngine
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.graphdb.Result
import org.neo4j.graphdb.Result.{ResultRow, ResultVisitor}
import org.neo4j.kernel.GraphDatabaseQueryService
import org.neo4j.kernel.api.query.ExecutingQuery
import org.neo4j.kernel.impl.query.{QueryExecutionMonitor, TransactionalContext}
import org.neo4j.test.TestGraphDatabaseFactory
-import scala.collection.JavaConverters._
+import scala.collection.JavaConverters._
import scala.collection.immutable.Map
import scala.language.implicitConversions
diff --git a/community/cypher/cypher/src/test/java/org/neo4j/cypher/internal/javacompat/ExecutionEngineTest.java b/community/cypher/cypher/src/test/java/org/neo4j/cypher/internal/javacompat/ExecutionEngineTest.java
index 1174fd0b0dc6b..1dca601e9ff96 100644
--- a/community/cypher/cypher/src/test/java/org/neo4j/cypher/internal/javacompat/ExecutionEngineTest.java
+++ b/community/cypher/cypher/src/test/java/org/neo4j/cypher/internal/javacompat/ExecutionEngineTest.java
@@ -27,7 +27,6 @@
import java.util.Map;
import org.neo4j.cypher.internal.CommunityCompatibilityFactory;
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService;
import org.neo4j.graphdb.Result;
import org.neo4j.kernel.GraphDatabaseQueryService;
import org.neo4j.kernel.api.KernelAPI;
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/TestSuites.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineFunSuite.scala
similarity index 97%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/TestSuites.scala
rename to community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineFunSuite.scala
index 114005c2b1da2..6c54de104961e 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/TestSuites.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineFunSuite.scala
@@ -26,8 +26,6 @@ import org.scalatest.matchers.{MatchResult, Matcher}
import scala.collection.JavaConverters._
-abstract class GraphDatabaseFunSuite extends CypherFunSuite with GraphDatabaseTestSupport
-
abstract class ExecutionEngineFunSuite
extends CypherFunSuite with GraphDatabaseTestSupport with ExecutionEngineTestSupport with QueryPlanTestSupport {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineIT.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineIT.scala
index 941b1a7ed4ef1..f2d8f0e44efec 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineIT.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineIT.scala
@@ -20,10 +20,9 @@
package org.neo4j.cypher
import org.neo4j.cypher.internal.ExecutionEngine
-import org.neo4j.cypher.internal.compiler.v3_4.CostBasedPlannerName
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.helpers.GraphIcing
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.planner.v3_4.spi.CostBasedPlannerName
import org.neo4j.graphdb.factory.GraphDatabaseSettings
import org.neo4j.graphdb.{ExecutionPlanDescription, GraphDatabaseService, Result}
import org.neo4j.test.TestGraphDatabaseFactory
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTestSupport.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTestSupport.scala
index c1e4ff4407e3c..e46e33195d929 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTestSupport.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTestSupport.scala
@@ -19,17 +19,15 @@
*/
package org.neo4j.cypher
-import java.util
import java.util.concurrent.TimeUnit
import org.hamcrest.CoreMatchers._
import org.junit.Assert._
import org.neo4j.cypher.ExecutionEngineHelper.createEngine
import org.neo4j.cypher.internal.util.v3_4.test_helpers.{CypherFunSuite, CypherTestSupport}
-import org.neo4j.cypher.internal.helpers.GraphIcing
import org.neo4j.cypher.internal._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.RuntimeScalaValueConverter
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.{InternalExecutionResult, RuntimeScalaValueConverter}
import org.neo4j.graphdb.{GraphDatabaseService, Result}
import org.neo4j.kernel.GraphDatabaseQueryService
import org.neo4j.kernel.api.KernelAPI
@@ -37,7 +35,6 @@ import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors}
import org.neo4j.logging.{LogProvider, NullLogProvider}
import scala.collection.JavaConverters._
-import scala.collection.mutable
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration.Duration
import scala.concurrent.{Await, Future}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/HttpServerTestSupport.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/HttpServerTestSupport.scala
index 0db2f6612a0c4..48b861147c23f 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/HttpServerTestSupport.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/HttpServerTestSupport.scala
@@ -24,7 +24,6 @@ import java.net.{InetAddress, InetSocketAddress}
import java.io.IOException
import java.util.concurrent.Executors
import scala.collection.mutable
-import scala.collection.mutable.HashMap
trait HttpServerTestSupport {
def boundInfo: InetSocketAddress
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/IndexOpAcceptanceTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/IndexOpAcceptanceTest.scala
index f1cb150895725..f3d6734c37847 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/IndexOpAcceptanceTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/IndexOpAcceptanceTest.scala
@@ -23,10 +23,9 @@ import java.io.{File, FileOutputStream}
import java.util.concurrent.TimeUnit
import org.neo4j.cypher.ExecutionEngineHelper.createEngine
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.graphdb.GraphDatabaseService
import org.neo4j.kernel.api.exceptions.schema.{DropIndexFailureException, NoSuchIndexException}
-import org.neo4j.kernel.impl.api.index.SchemaIndexProviderMap
import org.neo4j.test.TestGraphDatabaseFactory
import org.neo4j.kernel.api.impl.schema.NativeLuceneFusionSchemaIndexProviderFactory
import org.neo4j.kernel.api.impl.schema.LuceneSchemaIndexProviderFactory
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/QueryPlanTestSupport.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/QueryPlanTestSupport.scala
index e8a55794356fe..4823a0d189db9 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/QueryPlanTestSupport.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/QueryPlanTestSupport.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.cypher
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.KeyNames
import org.neo4j.cypher.internal.frontend.v3_4.helpers.StringHelper._
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.KeyNames
import org.neo4j.cypher.internal.v3_4.logical.plans.NodeHashJoin
import org.scalatest.matchers.{MatchResult, Matcher}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/QueryStatisticsTestSupport.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/QueryStatisticsTestSupport.scala
index 29e828a36a88f..b0c8cb9d45679 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/QueryStatisticsTestSupport.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/QueryStatisticsTestSupport.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.cypher
-import org.neo4j.cypher.internal.{InternalExecutionResult, QueryStatistics}
+import org.neo4j.cypher.internal.runtime.{InternalExecutionResult, QueryStatistics}
import org.neo4j.kernel.api.query.ExecutingQuery
import org.neo4j.kernel.impl.query.QueryExecutionMonitor
import org.scalatest.Assertions
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/RootPlanAcceptanceTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/RootPlanAcceptanceTest.scala
index 2a3b8c01d97c4..c2a8d75862f86 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/RootPlanAcceptanceTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/RootPlanAcceptanceTest.scala
@@ -20,9 +20,9 @@
package org.neo4j.cypher
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{InterpretedRuntimeName, RuntimeName}
-import org.neo4j.cypher.internal.compiler.v3_4.CostBasedPlannerName
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
import org.neo4j.cypher.internal.javacompat.PlanDescription
+import org.neo4j.cypher.internal.planner.v3_4.spi.CostBasedPlannerName
import org.neo4j.graphdb.ExecutionPlanDescription
class RootPlanAcceptanceTest extends ExecutionEngineFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/RunWithConfigTestSupport.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/RunWithConfigTestSupport.scala
index 083d519ac9d78..f4b1e1d49dae6 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/RunWithConfigTestSupport.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/RunWithConfigTestSupport.scala
@@ -22,7 +22,7 @@ package org.neo4j.cypher
import java.io.File
import java.util
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.graphdb.config.Setting
import org.neo4j.test.TestGraphDatabaseFactory
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/TxCountsTrackingTestSupport.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/TxCountsTrackingTestSupport.scala
index e239260856212..51bc42ddfde40 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/TxCountsTrackingTestSupport.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/TxCountsTrackingTestSupport.scala
@@ -19,9 +19,8 @@
*/
package org.neo4j.cypher
-import org.neo4j.cypher.internal.InternalExecutionResult
import org.neo4j.cypher.internal.util.v3_4.test_helpers.{CypherFunSuite, CypherTestSupport}
-import org.neo4j.cypher.internal.helpers.TxCounts
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
trait TxCountsTrackingTestSupport extends CypherTestSupport {
self: CypherFunSuite with GraphDatabaseTestSupport with ExecutionEngineTestSupport =>
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/RewindableExecutionResult.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/RewindableExecutionResult.scala
index ba6178ef23f9b..c93e723d277fa 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/RewindableExecutionResult.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/RewindableExecutionResult.scala
@@ -21,22 +21,22 @@ package org.neo4j.cypher.internal
import java.io.PrintWriter
-import org.neo4j.cypher.internal.util.v3_4.{InputPosition, symbols}
+import org.neo4j.cypher.exceptionHandler
import org.neo4j.cypher.internal.compatibility.ClosingExecutionResult
import org.neo4j.cypher.internal.compatibility.v2_3.{ExecutionResultWrapper => ExecutionResultWrapperFor2_3, exceptionHandler => exceptionHandlerFor2_3}
import org.neo4j.cypher.internal.compatibility.v3_1.{ExecutionResultWrapper => ExecutionResultWrapperFor3_1, exceptionHandler => exceptionHandlerFor3_1}
-import org.neo4j.cypher.internal.compatibility.v3_4.exceptionHandler
import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription._
-import org.neo4j.cypher.internal.compiler.v3_4.CostBasedPlannerName
import org.neo4j.cypher.internal.compiler.{v2_3, v3_1}
import org.neo4j.cypher.internal.frontend.v2_3.{SemanticDirection => SemanticDirection2_3, notification => notification_2_3}
import org.neo4j.cypher.internal.frontend.v3_1.{SemanticDirection => SemanticDirection3_1, notification => notification_3_1, symbols => symbols3_1}
import org.neo4j.cypher.internal.javacompat.ExecutionResult
-import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlanId, QualifiedName}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments
+import org.neo4j.cypher.internal.runtime.planDescription.{PlanDescriptionImpl, SingleChild, TwoChildren, _}
+import org.neo4j.cypher.internal.runtime.{DBMS, QueryStatistics, SCHEMA_WRITE, _}
+import org.neo4j.cypher.internal.util.v3_4.{InputPosition, symbols}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection.{BOTH, INCOMING, OUTGOING}
+import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlanId, QualifiedName}
import org.neo4j.cypher.result.QueryResult.QueryResultVisitor
import org.neo4j.graphdb.Result.ResultVisitor
import org.neo4j.graphdb.{Notification, QueryExecutionType, ResourceIterator, Result}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/CypherCompilerAstCacheAcceptanceTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/CypherCompilerAstCacheAcceptanceTest.scala
index 7d4bcd3bcdb3d..92637542ae002 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/CypherCompilerAstCacheAcceptanceTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/CypherCompilerAstCacheAcceptanceTest.scala
@@ -31,8 +31,8 @@ import org.neo4j.cypher.internal.compiler.v3_4.phases.LogicalPlanState
import org.neo4j.cypher.internal.frontend.v3_4.ast.Statement
import org.neo4j.cypher.internal.frontend.v3_4.phases.{CompilationPhaseTracer, Transformer}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.TransactionalContextWrapper
-import org.neo4j.cypher.internal.{CypherExecutionMode, PreParsedQuery}
+import org.neo4j.cypher.internal.PreParsedQuery
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionalContextWrapper
import org.neo4j.graphdb.config.Setting
import org.neo4j.graphdb.factory.GraphDatabaseSettings
import org.neo4j.logging.AssertableLogProvider.inLog
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ClosingIteratorTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ClosingIteratorTest.scala
index f884d43ce7306..5572c03245caa 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ClosingIteratorTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ClosingIteratorTest.scala
@@ -21,7 +21,7 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime
import org.mockito.ArgumentMatchers.anyBoolean
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.util.v3_4.CypherException
+import org.neo4j.cypher.internal.util.v3_4.{CypherException, TaskCloser}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values.intValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilderIT.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilderIT.scala
index 570fe9dc58844..05a442af1412f 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilderIT.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilderIT.scala
@@ -23,21 +23,21 @@ import java.time.Clock
import org.mockito.Mockito.{atLeastOnce, verify, when}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.True
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken.Resolved
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{expressions => legacy}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.True
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken.Resolved
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{expressions => legacy}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.PipeInfo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
import org.neo4j.cypher.internal.compiler.v3_4.planner._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.Metrics.QueryGraphSolverInput
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
-import org.neo4j.cypher.internal.frontend.v3_4.RelTypeId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4._
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, RelTypeId}
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilderTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilderTest.scala
index e8bd5f5339bef..e82878597fbe8 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilderTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/PipeExecutionPlanBuilderTest.scala
@@ -19,12 +19,13 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{FakePipe, Pipe}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{FakePipe, Pipe}
import org.neo4j.cypher.internal.frontend.v3_4.phases.Monitors
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, CardinalityEstimation, PlannerQuery}
+import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, PlannerQuery}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.time.Clocks
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/MatchPatternTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/MatchPatternTest.scala
deleted file mode 100644
index ee80fdf0ace93..0000000000000
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/MatchPatternTest.scala
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2002-2017 "Neo Technology,"
- * Network Engine for Objects in Lund AB [http://neotechnology.com]
- *
- * This file is part of Neo4j.
- *
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
-
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{MatchPattern, MatchRelationship}
-import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-
-class MatchPatternTest extends CypherFunSuite {
-
- test("should find disjoint graph with single nodes") {
- // Given
- val pattern = new MatchPattern(Seq("A", "B"), Seq())
-
- // When and then
- pattern.disconnectedPatterns should equal(Seq(
- new MatchPattern(Seq("A"), Seq()),
- new MatchPattern(Seq("B"), Seq()))
- )
- }
-
- test("should be non empty if it contains a node") {
- // When and then
- new MatchPattern(Seq("A"), Seq()).nonEmpty should equal(true)
- }
-
- test("should find single graph for simple rel") {
- // Given
- val pattern = new MatchPattern(Seq("A", "B"), Seq(MatchRelationship(None, "A", "B")))
-
- // When and then
- pattern.disconnectedPatterns should equal(Seq(pattern))
- }
-
- test("should find deeply nested disjoint graphs") {
- // Given
- val pattern = new MatchPattern(Seq("A", "B", "C", "D"),
- Seq(MatchRelationship(None, "A", "B"), MatchRelationship(None, "B", "D")))
-
- // When and then
- pattern.disconnectedPatterns should equal(Seq(
- new MatchPattern(Seq("A", "B", "D"), Seq(MatchRelationship(None, "A", "B"), MatchRelationship(None, "B", "D"))),
- new MatchPattern(Seq("C"), Seq()))
- )
- }
-
- test("should list subgraphs without specified points") {
- // Given
- val pattern = new MatchPattern(Seq("A", "B", "C"), Seq(MatchRelationship(None, "A", "B")))
-
- // When and then
- pattern.disconnectedPatternsWithout(Seq("B")) should equal(Seq(
- new MatchPattern(Seq("C"), Seq()))
- )
- }
-
- test("should not consider patterns bound by relationships as unbounded") {
- // Given
- val pattern = new MatchPattern(Seq("A", "B"), Seq(MatchRelationship(Some("r"), "A", "B")))
-
- // When and then
- pattern.disconnectedPatternsWithout(Seq("r")) should equal(Seq.empty)
- }
-}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForEagerLoadCsvTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForEagerLoadCsvTest.scala
index 45eb21a6b2a9c..9badc3a4947ac 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForEagerLoadCsvTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForEagerLoadCsvTest.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{AllNodesScanPipe, EagerPipe, LoadCSVPipe}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{AllNodesScanPipe, EagerPipe, LoadCSVPipe}
import org.neo4j.cypher.internal.frontend.v3_4.notification.EagerLoadCsvNotification
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.ir.v3_4.HasHeaders
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForLoadCsvAndMatchOnLargeLabelTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForLoadCsvAndMatchOnLargeLabelTest.scala
index aedc07954534b..4c4a2987bd936 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForLoadCsvAndMatchOnLargeLabelTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/CheckForLoadCsvAndMatchOnLargeLabelTest.scala
@@ -23,13 +23,13 @@ import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, PlanContext}
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
import org.neo4j.cypher.internal.frontend.v3_4.notification.LargeLabelWithLoadCsvNotification
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, HasHeaders}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
+import org.neo4j.cypher.internal.ir.v3_4.HasHeaders
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId}
class CheckForLoadCsvAndMatchOnLargeLabelTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionWorkflowBuilderTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionWorkflowBuilderTest.scala
index c280a7ce03a91..c1fa156bfa5e2 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionWorkflowBuilderTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ExecutionWorkflowBuilderTest.scala
@@ -21,13 +21,15 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.Pipe
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.Pipe
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{EagerResultIterator, _}
import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.phases.devNullLogger
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, CardinalityEstimation, PlannerQuery}
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, QueryTransactionalContext}
+import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, PlannerQuery}
+import org.neo4j.cypher.internal.planner.v3_4.spi.IDPPlannerName
+import org.neo4j.cypher.internal.runtime.{ExplainMode, NormalMode, QueryContext, QueryTransactionalContext}
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.logical.plans.SingleRow
import org.neo4j.values.virtual.VirtualValues.EMPTY_MAP
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/LoadCsvPeriodicCommitObserverTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/LoadCsvPeriodicCommitObserverTest.scala
index 8aa127dc375d5..9066f34b9d4cf 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/LoadCsvPeriodicCommitObserverTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/LoadCsvPeriodicCommitObserverTest.scala
@@ -24,9 +24,9 @@ import java.net.URL
import org.mockito.ArgumentMatchers
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.ExternalCSVResource
+import org.neo4j.cypher.internal.runtime.{QueryContext, QueryTransactionalContext}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.ExternalCSVResource
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, QueryTransactionalContext}
class LoadCsvPeriodicCommitObserverTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/PlanFingerprintReferenceTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/PlanFingerprintReferenceTest.scala
index 9f0a0feba6336..90bf420aeecb4 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/PlanFingerprintReferenceTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/PlanFingerprintReferenceTest.scala
@@ -22,8 +22,8 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
import java.util.concurrent.TimeUnit.{MILLISECONDS, SECONDS}
import org.mockito.Mockito.when
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, GraphStatisticsSnapshot, NodesWithLabelCardinality}
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, GraphStatisticsSnapshot, NodesWithLabelCardinality}
+import org.neo4j.cypher.internal.util.v3_4.LabelId
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.time.Clocks
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/PatternGraphBuilderTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/PatternGraphBuilderTest.scala
index 124cc2b39f119..c9c707b013ed8 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/PatternGraphBuilderTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/PatternGraphBuilderTest.scala
@@ -19,8 +19,9 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.builders
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.RelatedTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
+import org.neo4j.cypher.internal.runtime.interpreted.commands.RelatedTo
+import org.neo4j.cypher.internal.runtime.interpreted.PatternGraphBuilder
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallExecutionPlanTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallExecutionPlanTest.scala
index 0b76cd6e59751..87f8fa279f875 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallExecutionPlanTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/procs/ProcedureCallExecutionPlanTest.scala
@@ -24,11 +24,10 @@ import org.mockito.Mockito.when
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.NormalMode
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.{NormalMode, QueryContext, QueryTransactionalContext}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, QueryTransactionalContext}
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions._
import org.neo4j.values.storable.LongValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RowIteratorVisitationTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RowIteratorVisitationTest.scala
index 4ee4b06830ea5..62ccb3e8ee05f 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RowIteratorVisitationTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RowIteratorVisitationTest.scala
@@ -20,6 +20,7 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
import org.mockito.Mockito.verifyZeroInteractions
+import org.neo4j.cypher.internal.runtime.RuntimeJavaValueConverter
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.result.QueryResult.{QueryResultVisitor, Record}
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/profiler/ProfilerTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/profiler/ProfilerTest.scala
index 59a693434a6e3..89b6bf711c2bc 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/profiler/ProfilerTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/profiler/ProfilerTest.scala
@@ -21,15 +21,15 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.profiler
import org.mockito.ArgumentMatchers.any
import org.mockito.Mockito.when
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{NestedPipeExpression, ProjectedPath}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{NestedPipeExpression, ProjectedPath}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.planner.v3_4.spi.{EmptyKernelStatisticProvider, KernelStatisticProvider}
+import org.neo4j.cypher.internal.runtime.{QueryContext, QueryTransactionalContext}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{EmptyKernelStatisticProvider, KernelStatisticProvider}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
+import org.neo4j.cypher.internal.runtime.planDescription.{PlanDescriptionImpl, _}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, QueryTransactionalContext}
import org.neo4j.kernel.impl.factory.DatabaseInfo
import org.neo4j.values.storable.Values.NO_VALUE
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/pipes/ActualCostCalculationTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ActualCostCalculationTest.scala
similarity index 92%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/pipes/ActualCostCalculationTest.scala
rename to community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ActualCostCalculationTest.scala
index 109c418aa1a85..3eebdee2e5027 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/pipes/ActualCostCalculationTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ActualCostCalculationTest.scala
@@ -17,25 +17,25 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.pipes
+package org.neo4j.cypher.internal.compiler.v3_4
import java.io.File
import java.nio.file.Files
import java.util.concurrent.TimeUnit
import org.apache.commons.math3.stat.regression.{OLSMultipleLinearRegression, SimpleRegression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Literal, Property, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Equals
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
import org.neo4j.cypher.internal.frontend.v3_4.phases.devNullLogger
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Property, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Equals
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.{TransactionBoundPlanContext, TransactionBoundQueryContext, TransactionalContextWrapper}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId, ast}
-import org.neo4j.cypher.internal.spi.v3_4.TransactionBoundQueryContext.IndexSearchMonitor
-import org.neo4j.cypher.internal.spi.v3_4.{TransactionBoundPlanContext, TransactionBoundQueryContext, TransactionalContextWrapper}
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, PropertyKeyId}
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelToken, PropertyKeyToken, SemanticDirection}
import org.neo4j.cypher.internal.v3_4.logical.plans.SingleQueryExpression
-import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.graphdb._
import org.neo4j.kernel.GraphDatabaseQueryService
import org.neo4j.kernel.api.KernelTransaction
@@ -310,8 +310,8 @@ class ActualCostCalculationTest extends CypherFunSuite {
val labelId = ctx.getOptLabelId(LABEL.name()).get
val propKeyId = ctx.getOptPropertyKeyId(PROPERTY).get
- val labelToken = ast.LabelToken(LABEL.name(), LabelId(labelId))
- val propertyKeyToken = Seq(ast.PropertyKeyToken(PROPERTY, PropertyKeyId(propKeyId)))
+ val labelToken = LabelToken(LABEL.name(), LabelId(labelId))
+ val propertyKeyToken = Seq(PropertyKeyToken(PROPERTY, PropertyKeyId(propKeyId)))
NodeIndexSeekPipe(LABEL.name(), labelToken, propertyKeyToken, SingleQueryExpression(literal), IndexSeek)()
}
@@ -324,8 +324,8 @@ class ActualCostCalculationTest extends CypherFunSuite {
val labelId = ctx.getOptLabelId(LABEL.name()).get
val propKeyId = ctx.getOptPropertyKeyId(PROPERTY).get
- val labelToken = ast.LabelToken(LABEL.name(), LabelId(labelId))
- val propertyKeyToken = ast.PropertyKeyToken(PROPERTY, PropertyKeyId(propKeyId))
+ val labelToken = LabelToken(LABEL.name(), LabelId(labelId))
+ val propertyKeyToken = PropertyKeyToken(PROPERTY, PropertyKeyId(propKeyId))
NodeIndexScanPipe(LABEL.name(), labelToken, propertyKeyToken)()
}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PathExpressionTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PathExpressionTest.scala
index 308d1f817032d..77b930dda6a56 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PathExpressionTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PathExpressionTest.scala
@@ -20,12 +20,12 @@
package org.neo4j.cypher.internal.compiler.v3_4
import org.neo4j.cypher.GraphDatabaseFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.ShortestPathExpression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{NonEmpty, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.UnresolvedLabel
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.ShortestPathExpression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{NonEmpty, True}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.UnresolvedLabel
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, QueryStateTestSupport}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.kernel.impl.util.ValueUtils.fromNodeProxy
import org.neo4j.values.storable.Values.{FALSE, TRUE}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PatternMatchingTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PatternMatchingTest.scala
index 139de382db848..ce9ef5da611ea 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PatternMatchingTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PatternMatchingTest.scala
@@ -20,16 +20,15 @@
package org.neo4j.cypher.internal.compiler.v3_4
import org.neo4j.cypher.ExecutionEngineFunSuite
-import org.neo4j.cypher.ValueComparisonHelper.beEquivalentTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.RelatedTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Variable
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.HasLabel
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.UnresolvedLabel
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.builders.PatternGraphBuilder
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.PatternMatchingBuilder
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper.beEquivalentTo
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.RelatedTo
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Variable
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.HasLabel
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.UnresolvedLabel
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.matching.PatternMatchingBuilder
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, PatternGraphBuilder, QueryStateTestSupport}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PatternNodeTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PatternNodeTest.scala
index 96591fbb3cbf3..5c9d6caef2469 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PatternNodeTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PatternNodeTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.cypher.internal.compiler.v3_4
import org.neo4j.cypher.GraphDatabaseFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.{MatchingPair, PatternNode}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.matching.{MatchingPair, PatternNode}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
class PatternNodeTest extends GraphDatabaseFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PipeLazynessTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PipeLazynessTest.scala
index aaf0784b79e01..f2a87558655d6 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PipeLazynessTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/PipeLazynessTest.scala
@@ -21,10 +21,11 @@ package org.neo4j.cypher.internal.compiler.v3_4
import org.mockito.Mockito._
import org.neo4j.cypher.GraphDatabaseFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Variable
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.True
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{ShortestPath, SingleNode, SortItem}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{ShortestPath, SingleNode, SortItem}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Variable
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.True
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.QueryStateTestSupport
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb._
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ScalaPatternMatchingTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ScalaPatternMatchingTest.scala
index 2b17628bb1b24..e030497b9cb08 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ScalaPatternMatchingTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/ScalaPatternMatchingTest.scala
@@ -20,17 +20,15 @@
package org.neo4j.cypher.internal.compiler.v3_4
import org.neo4j.cypher.ExecutionEngineFunSuite
-import org.neo4j.cypher.ValueComparisonHelper.beEquivalentTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.RelatedTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.builders.PatternGraphBuilder
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.PatternMatchingBuilder
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper.beEquivalentTo
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.RelatedTo
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.matching.PatternMatchingBuilder
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, PatternGraphBuilder, QueryStateTestSupport}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
-import org.neo4j.values.AnyValue
class ScalaPatternMatchingTest extends ExecutionEngineFunSuite with PatternGraphBuilder with QueryStateTestSupport {
val symbols = SymbolTable(Map("a" -> CTNode))
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/TriadicIntegrationTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/TriadicIntegrationTest.scala
index 2b7d81b157140..d0e352aa7baef 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/TriadicIntegrationTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/TriadicIntegrationTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.cypher.internal.compiler.v3_4
import org.neo4j.cypher.ExecutionEngineFunSuite
-import org.neo4j.cypher.internal.InternalExecutionResult
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
class TriadicIntegrationTest extends ExecutionEngineFunSuite {
private val QUERY: String = """MATCH (p1:Person)-[:FRIEND]-()-[:FRIEND]-(p2:Person)
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/ConstraintCreator.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/ConstraintCreator.scala
index b6f26a5cfb3d3..d08d27adc8aa4 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/ConstraintCreator.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/ConstraintCreator.scala
@@ -19,7 +19,8 @@
*/
package org.neo4j.cypher.internal.helpers
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.GraphIcing
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
trait ConstraintCreator extends GraphIcing {
def createConstraint(graph: GraphDatabaseCypherService, label: String, property: String)
@@ -49,4 +50,4 @@ object NodeKeyConstraintCreator extends ConstraintCreator {
override def other = UniquenessConstraintCreator
def typeName = "NODE_KEY"
-}
\ No newline at end of file
+}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/CaseExpressionTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/CaseExpressionTest.scala
index e489ff1cd0ad6..527e1d1b9e828 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/CaseExpressionTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/CaseExpressionTest.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.parser
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Equals, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{predicates, expressions => legacy}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Equals, True}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{predicates, expressions => legacy}
import org.neo4j.cypher.internal.v3_4.{expressions => ast}
import org.neo4j.cypher.internal.frontend.v3_4.parser.{Expressions, ParserTest}
import org.parboiled.scala._
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/ExpressionsTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/ExpressionsTest.scala
index 1d7c6737fcda6..7a1784694361b 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/ExpressionsTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/ExpressionsTest.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.cypher.internal.parser
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Equals, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{predicates, expressions => legacy}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Equals, True}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{predicates, expressions => legacy}
import org.neo4j.cypher.internal.v3_4.{expressions => ast}
import org.neo4j.cypher.internal.frontend.v3_4.parser.{Expressions, ParserTest}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/ListComprehensionTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/ListComprehensionTest.scala
index a98f20a7bdbd1..b87d82825ecf0 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/ListComprehensionTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/ListComprehensionTest.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.cypher.internal.parser
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.GreaterThan
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{expressions => legacy}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.GreaterThan
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{expressions => legacy}
import org.neo4j.cypher.internal.v3_4.{expressions => ast}
import org.neo4j.cypher.internal.frontend.v3_4.parser.{Expressions, ParserTest}
import org.parboiled.scala._
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/MapLiteralTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/MapLiteralTest.scala
index 189a6300acf89..bb4bc5ebaf862 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/MapLiteralTest.scala
+++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/parser/MapLiteralTest.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.parser
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{expressions => legacy}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{expressions => legacy}
import org.neo4j.cypher.internal.v3_4.{expressions => ast}
import org.neo4j.cypher.internal.frontend.v3_4.parser.{Expressions, ParserTest}
import org.parboiled.scala._
diff --git a/community/cypher/expressions-3.4/pom.xml b/community/cypher/expressions-3.4/pom.xml
index df52cde5a6d99..fcbb2078186d5 100644
--- a/community/cypher/expressions-3.4/pom.xml
+++ b/community/cypher/expressions-3.4/pom.xml
@@ -55,6 +55,14 @@
${project.version}
+
+ org.neo4j
+ neo4j-cypher-util-3.4
+ ${project.version}
+ test-jar
+ test
+
+
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/NameToken.scala b/community/cypher/expressions-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/expressions/NameToken.scala
similarity index 85%
rename from community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/NameToken.scala
rename to community/cypher/expressions-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/expressions/NameToken.scala
index 932a0defd90fe..d165ec0d37da5 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/NameToken.scala
+++ b/community/cypher/expressions-3.4/src/main/scala/org/neo4j/cypher/internal/v3_4/expressions/NameToken.scala
@@ -14,10 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.neo4j.cypher.internal.frontend.v3_4.ast
+package org.neo4j.cypher.internal.v3_4.expressions
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, NameId, PropertyKeyId}
-import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, PropertyKeyName}
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, NameId, PropertyKeyId}
sealed abstract class NameToken[I <: NameId] {
def name: String
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/Bound.scala b/community/cypher/expressions-3.4/src/test/scala/org/neo4j/cypher/internal/v3_4/expressions/DummyExpression.scala
similarity index 51%
rename from community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/Bound.scala
rename to community/cypher/expressions-3.4/src/test/scala/org/neo4j/cypher/internal/v3_4/expressions/DummyExpression.scala
index 3e2fa4cc43d67..5eff22a2e7cf7 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/Bound.scala
+++ b/community/cypher/expressions-3.4/src/test/scala/org/neo4j/cypher/internal/v3_4/expressions/DummyExpression.scala
@@ -14,29 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.neo4j.cypher.internal.frontend.v3_4
+package org.neo4j.cypher.internal.v3_4.expressions
-sealed trait Bound[+V] {
- def endPoint: V
- def inequalitySignSuffix: String
+import org.neo4j.cypher.internal.util.v3_4.symbols.TypeSpec
+import org.neo4j.cypher.internal.util.v3_4.{DummyPosition, InputPosition}
- def map[P](f: V => P): Bound[P]
-
- def isInclusive: Boolean
-}
-
-final case class InclusiveBound[+V](endPoint: V) extends Bound[V] {
- val inequalitySignSuffix = "="
-
- override def map[P](f: V => P): InclusiveBound[P] = copy(endPoint = f(endPoint))
-
- def isInclusive: Boolean = true
-}
-
-final case class ExclusiveBound[+V](endPoint: V) extends Bound[V] {
- val inequalitySignSuffix = ""
-
- override def map[P](f: V => P): ExclusiveBound[P] = copy(endPoint = f(endPoint))
-
- def isInclusive: Boolean = false
-}
+case class DummyExpression(
+ possibleTypes: TypeSpec,
+ position: InputPosition = DummyPosition(0)
+ ) extends Expression
diff --git a/community/cypher/frontend-3.4/pom.xml b/community/cypher/frontend-3.4/pom.xml
index 0280e376fe388..c00809bda70e2 100644
--- a/community/cypher/frontend-3.4/pom.xml
+++ b/community/cypher/frontend-3.4/pom.xml
@@ -69,6 +69,14 @@
test
+
+ org.neo4j
+ neo4j-cypher-expression-3.4
+ ${project.version}
+ test-jar
+ test
+
+
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/ASTAnnotationMap.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/ASTAnnotationMap.scala
index a136345103000..3fcab13af628d 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/ASTAnnotationMap.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/ASTAnnotationMap.scala
@@ -16,8 +16,7 @@
*/
package org.neo4j.cypher.internal.frontend.v3_4.ast
-import org.neo4j.cypher.internal.util.v3_4.{ASTNode, InputPosition}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly
+import org.neo4j.cypher.internal.util.v3_4.{ASTNode, Eagerly, InputPosition}
object ASTAnnotationMap {
def empty[K <: ASTNode, V]: ASTAnnotationMap[K, V] = new ASTAnnotationMap(Map.empty[(K, InputPosition), V])
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/PatternExpressionPatternElementNamer.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/PatternExpressionPatternElementNamer.scala
index aa3ccd819cac1..2fc719c7f45a5 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/PatternExpressionPatternElementNamer.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/PatternExpressionPatternElementNamer.scala
@@ -16,9 +16,8 @@
*/
package org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters
-import org.neo4j.cypher.internal.util.v3_4.{ASTNode, Rewriter, topDown}
+import org.neo4j.cypher.internal.util.v3_4.{ASTNode, Rewriter, UnNamedNameGenerator, topDown}
import org.neo4j.cypher.internal.frontend.v3_4.IdentityMap
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.UnNamedNameGenerator
import org.neo4j.cypher.internal.v3_4.expressions._
object PatternExpressionPatternElementNamer {
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/PropertyPredicateNormalizer.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/PropertyPredicateNormalizer.scala
index b6f751dd5bc1f..11986fbceda86 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/PropertyPredicateNormalizer.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/PropertyPredicateNormalizer.scala
@@ -16,8 +16,7 @@
*/
package org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters
-import org.neo4j.cypher.internal.util.v3_4.InputPosition
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.FreshIdNameGenerator
+import org.neo4j.cypher.internal.util.v3_4.{FreshIdNameGenerator, InputPosition}
import org.neo4j.cypher.internal.v3_4.expressions._
object PropertyPredicateNormalizer extends MatchPredicateNormalizer {
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/isolateAggregation.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/isolateAggregation.scala
index 489818b577565..9304976c6d7d9 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/isolateAggregation.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/isolateAggregation.scala
@@ -16,10 +16,10 @@
*/
package org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters
-import org.neo4j.cypher.internal.util.v3_4.{InternalException, Rewriter, bottomUp}
+import org.neo4j.cypher.internal.util.v3_4.{AggregationNameGenerator, InternalException, Rewriter, bottomUp}
import org.neo4j.cypher.internal.v3_4.expressions._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.{AggregationNameGenerator, fixedPoint}
+import org.neo4j.cypher.internal.frontend.v3_4.helpers.fixedPoint
/**
* This rewriter makes sure that aggregations are on their own in RETURN/WITH clauses, so
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/nameAllPatternElements.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/nameAllPatternElements.scala
index 47ebb3dbe347f..034e7a411efd0 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/nameAllPatternElements.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/nameAllPatternElements.scala
@@ -16,8 +16,7 @@
*/
package org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters
-import org.neo4j.cypher.internal.util.v3_4.{Rewriter, bottomUp}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.UnNamedNameGenerator
+import org.neo4j.cypher.internal.util.v3_4.{Rewriter, UnNamedNameGenerator, bottomUp}
import org.neo4j.cypher.internal.v3_4.expressions.{NodePattern, RelationshipPattern, Variable}
case object nameAllPatternElements extends Rewriter {
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeGraphReturnItems.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeGraphReturnItems.scala
index abf4669a5cea0..f26354050588e 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeGraphReturnItems.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeGraphReturnItems.scala
@@ -16,9 +16,8 @@
*/
package org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters
-import org.neo4j.cypher.internal.util.v3_4.{Rewriter, bottomUp}
+import org.neo4j.cypher.internal.util.v3_4.{FreshIdNameGenerator, Rewriter, bottomUp}
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.FreshIdNameGenerator
import org.neo4j.cypher.internal.v3_4.expressions.{Expression, Variable}
case object normalizeGraphReturnItems extends Rewriter {
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeReturnClauses.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeReturnClauses.scala
index c10edc3b7e272..43cc23636b899 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeReturnClauses.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeReturnClauses.scala
@@ -18,7 +18,6 @@ package org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters
import org.neo4j.cypher.internal.util.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.FreshIdNameGenerator
import org.neo4j.cypher.internal.v3_4.expressions.{Expression, Variable}
/**
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeWithClauses.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeWithClauses.scala
index 7e1421d89192e..328002e204984 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeWithClauses.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/rewriters/normalizeWithClauses.scala
@@ -18,8 +18,6 @@ package org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters
import org.neo4j.cypher.internal.util.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.FreshIdNameGenerator
-import org.neo4j.cypher.internal.frontend.v3_4._
import org.neo4j.cypher.internal.v3_4.expressions.{Expression, Variable}
/**
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/package.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/package.scala
index 7d33ccc8e0931..3f29ce6f9ece4 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/package.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/package.scala
@@ -16,14 +16,12 @@
*/
package org.neo4j.cypher.internal.frontend
-import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
import org.neo4j.cypher.internal.frontend.v3_4.semantics._
import org.neo4j.cypher.internal.util.v3_4.symbols.TypeSpec
import scala.language.implicitConversions
package object v3_4 {
- type Bounds[+V] = NonEmptyList[Bound[V]]
type SemanticCheck = SemanticState => SemanticCheckResult
type TypeGenerator = SemanticState => TypeSpec
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticTable.scala b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticTable.scala
index 06a0657630f55..5b9db3db2306a 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticTable.scala
+++ b/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticTable.scala
@@ -17,9 +17,8 @@
package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.util.v3_4.{ASTNode, InternalException}
+import org.neo4j.cypher.internal.util.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.ast.ASTAnnotationMap
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId, RelTypeId}
import org.neo4j.cypher.internal.v3_4.expressions._
import scala.collection.mutable
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/ExpressionCallTypeCheckerTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/ExpressionCallTypeCheckerTest.scala
index 23dd545811864..571098112699b 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/ExpressionCallTypeCheckerTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/ExpressionCallTypeCheckerTest.scala
@@ -20,7 +20,7 @@ import org.neo4j.cypher.internal.util.v3_4.InputPosition
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.frontend.v3_4.semantics.{SemanticCheckResult, SemanticExpressionCheck, SemanticState}
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.v3_4.expressions.{Expression, TypeSignature}
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, Expression, TypeSignature}
class ExpressionCallTypeCheckerTest extends CypherFunSuite with AstConstructionTestSupport {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/SetClauseTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/SetClauseTest.scala
index e2ed6589c0c4e..714efdd5952dc 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/SetClauseTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/SetClauseTest.scala
@@ -19,7 +19,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.ast
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.frontend.v3_4.semantics.{SemanticFunSuite, SemanticState}
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.v3_4.expressions.{Property, PropertyKeyName}
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, Property, PropertyKeyName}
class SetClauseTest extends SemanticFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/DummyExpression.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/TestExpression.scala
similarity index 89%
rename from community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/DummyExpression.scala
rename to community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/TestExpression.scala
index 7796556c28a3c..7375fbf9767e7 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/DummyExpression.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/ast/TestExpression.scala
@@ -16,17 +16,12 @@
*/
package org.neo4j.cypher.internal.frontend.v3_4.ast
-import org.neo4j.cypher.internal.util.v3_4.{DummyPosition, InputPosition}
import org.neo4j.cypher.internal.frontend.v3_4.SemanticCheck
-import org.neo4j.cypher.internal.v3_4.expressions.Expression.SemanticContext
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticError
import org.neo4j.cypher.internal.util.v3_4.symbols.TypeSpec
+import org.neo4j.cypher.internal.util.v3_4.{DummyPosition, InputPosition}
import org.neo4j.cypher.internal.v3_4.expressions.Expression
-
-case class DummyExpression(
- possibleTypes: TypeSpec,
- position: InputPosition = DummyPosition(0)
- ) extends Expression
+import org.neo4j.cypher.internal.v3_4.expressions.Expression.SemanticContext
case class ErrorExpression(
error: SemanticError,
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ContainerIndexTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ContainerIndexTest.scala
index 9b31d7ba75a7d..0af7a0a4858b8 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ContainerIndexTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ContainerIndexTest.scala
@@ -19,7 +19,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.v3_4.expressions.{ContainerIndex, DecimalDoubleLiteral, SignedDecimalIntegerLiteral}
+import org.neo4j.cypher.internal.v3_4.expressions.{ContainerIndex, DecimalDoubleLiteral, DummyExpression, SignedDecimalIntegerLiteral}
class ContainerIndexTest extends SemanticFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/FilterExpressionTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/FilterExpressionTest.scala
index 5687841085237..c91f173d870cf 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/FilterExpressionTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/FilterExpressionTest.scala
@@ -19,7 +19,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.v3_4.expressions.{FilterExpression, True}
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, FilterExpression, True}
class FilterExpressionTest extends SemanticFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/FilteringExpressionTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/FilteringExpressionTest.scala
index 27bc0ac1e7ce6..50596ebe4c934 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/FilteringExpressionTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/FilteringExpressionTest.scala
@@ -18,7 +18,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.v3_4.expressions.ListComprehension
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, ListComprehension}
class FilteringExpressionTest extends SemanticFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/InfixExpressionTestBase.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/InfixExpressionTestBase.scala
index 657d0e83140b7..a44362ca8be65 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/InfixExpressionTestBase.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/InfixExpressionTestBase.scala
@@ -16,9 +16,8 @@
*/
package org.neo4j.cypher.internal.frontend.v3_4.semantics
-import org.neo4j.cypher.internal.frontend.v3_4.ast.DummyExpression
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.v3_4.expressions.Expression
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, Expression}
abstract class InfixExpressionTestBase(ctr: (Expression, Expression) => Expression) extends SemanticFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ListComprehensionTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ListComprehensionTest.scala
index e2ccf4095e4d1..7f1e0d2648d5a 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ListComprehensionTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ListComprehensionTest.scala
@@ -19,7 +19,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.v3_4.expressions.{ListComprehension, Variable}
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, ListComprehension, Variable}
class ListComprehensionTest extends SemanticFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ListSliceTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ListSliceTest.scala
index 4ee542658cd2a..abce736d45e50 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ListSliceTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ListSliceTest.scala
@@ -19,7 +19,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.v3_4.expressions.{DecimalDoubleLiteral, ListSlice, SignedDecimalIntegerLiteral}
+import org.neo4j.cypher.internal.v3_4.expressions.{DecimalDoubleLiteral, DummyExpression, ListSlice, SignedDecimalIntegerLiteral}
class ListSliceTest extends SemanticFunSuite {
val dummyList = DummyExpression(
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ReduceExpressionTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ReduceExpressionTest.scala
index af07cc1c59d62..e38d2f08a6a19 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ReduceExpressionTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/ReduceExpressionTest.scala
@@ -19,7 +19,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.v3_4.expressions.{ReduceExpression, Variable}
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, ReduceExpression, Variable}
class ReduceExpressionTest extends SemanticFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticAnalysisToolingTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticAnalysisToolingTest.scala
index 7cc41f0d3031f..86b833004f068 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticAnalysisToolingTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticAnalysisToolingTest.scala
@@ -19,6 +19,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.util.v3_4.symbols._
+import org.neo4j.cypher.internal.v3_4.expressions.DummyExpression
class SemanticAnalysisToolingTest extends CypherFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticCaseExpressionTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticCaseExpressionTest.scala
index e6043142b8942..2e7222a7f7d1b 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticCaseExpressionTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticCaseExpressionTest.scala
@@ -19,7 +19,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.v3_4.expressions.CaseExpression
+import org.neo4j.cypher.internal.v3_4.expressions.{CaseExpression, DummyExpression}
class SemanticCaseExpressionTest extends SemanticFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticExtractExpressionTest.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticExtractExpressionTest.scala
index 2301dc132b97b..f23cdd5bb1bc9 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticExtractExpressionTest.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticExtractExpressionTest.scala
@@ -18,8 +18,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.frontend.v3_4.ast.DummyExpression
-import org.neo4j.cypher.internal.v3_4.expressions.{ExtractExpression, True, Variable}
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, ExtractExpression, True, Variable}
class SemanticExtractExpressionTest extends SemanticFunSuite {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticFunSuite.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticFunSuite.scala
index bdea011d8d146..db5876cb2e68c 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticFunSuite.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/SemanticFunSuite.scala
@@ -18,7 +18,7 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{CustomExpression, DummyExpression, ErrorExpression}
+import org.neo4j.cypher.internal.frontend.v3_4.ast.{CustomExpression, ErrorExpression}
import org.neo4j.cypher.internal.v3_4.expressions._
class SemanticFunSuite extends CypherFunSuite with SemanticAnalysisTooling {
diff --git a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/functions/FunctionTestBase.scala b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/functions/FunctionTestBase.scala
index cacf9d9f545bf..a0b765ccddee4 100644
--- a/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/functions/FunctionTestBase.scala
+++ b/community/cypher/frontend-3.4/src/test/scala/org/neo4j/cypher/internal/frontend/v3_4/semantics/functions/FunctionTestBase.scala
@@ -18,10 +18,9 @@ package org.neo4j.cypher.internal.frontend.v3_4.semantics.functions
import org.neo4j.cypher.internal.util.v3_4.DummyPosition
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.frontend.v3_4.ast.DummyExpression
import org.neo4j.cypher.internal.frontend.v3_4.semantics.{SemanticCheckResult, SemanticExpressionCheck, SemanticFunSuite, SemanticState}
import org.neo4j.cypher.internal.v3_4.expressions.Expression.SemanticContext
-import org.neo4j.cypher.internal.v3_4.expressions.{FunctionInvocation, FunctionName}
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, FunctionInvocation, FunctionName}
abstract class FunctionTestBase(funcName: String) extends SemanticFunSuite {
diff --git a/community/cypher/interpreted-runtime/LICENSES.txt b/community/cypher/interpreted-runtime/LICENSES.txt
new file mode 100644
index 0000000000000..0ee24e11c3cc1
--- /dev/null
+++ b/community/cypher/interpreted-runtime/LICENSES.txt
@@ -0,0 +1,322 @@
+This file contains the full license text of the included third party
+libraries. For an overview of the licenses see the NOTICE.txt file.
+
+------------------------------------------------------------------------------
+Apache Software License, Version 2.0
+ Apache Commons Lang
+ Lucene Core
+ Lucene Memory
+ Netty/All-in-One
+ parboiled-core
+ parboiled-scala
+------------------------------------------------------------------------------
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+------------------------------------------------------------------------------
+BSD - Scala License
+ Scala Library
+------------------------------------------------------------------------------
+
+SCALA LICENSE
+
+Copyright (c) 2002-2012 EPFL, Lausanne, unless otherwise specified.
+All rights reserved.
+
+This software was developed by the Programming Methods Laboratory of the
+Swiss Federal Institute of Technology (EPFL), Lausanne, Switzerland.
+
+Permission to use, copy, modify, and distribute this software in source
+or binary form for any purpose with or without fee is hereby granted,
+provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of the EPFL nor the names of its contributors
+ may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+
+------------------------------------------------------------------------------
+BSD License
+ Scala Compiler
+------------------------------------------------------------------------------
+
+Copyright (c) ,
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+------------------------------------------------------------------------------
+Bouncy Castle License
+ Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
+ Bouncy Castle Provider
+------------------------------------------------------------------------------
+
+Please note: our license is an adaptation of the MIT X11 License and should be
+read as such.
+
+LICENSE
+
+Copyright (c) 2000 - 2011 The Legion Of The Bouncy Castle
+(http://www.bouncycastle.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 AUTHORS OR
+COPYRIGHT HOLDERS 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.
+
+
+
diff --git a/community/cypher/interpreted-runtime/NOTICE.txt b/community/cypher/interpreted-runtime/NOTICE.txt
new file mode 100644
index 0000000000000..49d2002309ff1
--- /dev/null
+++ b/community/cypher/interpreted-runtime/NOTICE.txt
@@ -0,0 +1,45 @@
+Neo4j
+Copyright © 2002-2017 Network Engine for Objects in Lund AB (referred to
+in this notice as "Neo Technology")
+ [http://neotechnology.com]
+
+This product includes software ("Software") developed by Neo Technology.
+
+The copyright in the bundled Neo4j graph database (including the
+Software) is owned by Neo Technology. The Software developed and owned
+by Neo Technology is licensed under the GNU GENERAL PUBLIC LICENSE
+Version 3 (http://www.fsf.org/licensing/licenses/gpl-3.0.html) ("GPL")
+to all third parties and that license, as required by the GPL, is
+included in the LICENSE.txt file.
+
+However, if you have executed an End User Software License and Services
+Agreement or an OEM Software License and Support Services Agreement, or
+another commercial license agreement with Neo Technology or one of its
+affiliates (each, a "Commercial Agreement"), the terms of the license in
+such Commercial Agreement will supersede the GPL and you may use the
+software solely pursuant to the terms of the relevant Commercial
+Agreement.
+
+Full license texts are found in LICENSES.txt.
+
+Third-party licenses
+--------------------
+
+Apache Software License, Version 2.0
+ Apache Commons Lang
+ Lucene Core
+ Lucene Memory
+ Netty/All-in-One
+ parboiled-core
+ parboiled-scala
+
+BSD - Scala License
+ Scala Library
+
+BSD License
+ Scala Compiler
+
+Bouncy Castle License
+ Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
+ Bouncy Castle Provider
+
diff --git a/community/cypher/interpreted-runtime/pom.xml b/community/cypher/interpreted-runtime/pom.xml
new file mode 100644
index 0000000000000..d472a942f38e8
--- /dev/null
+++ b/community/cypher/interpreted-runtime/pom.xml
@@ -0,0 +1,173 @@
+
+
+
+ org.neo4j
+ cypher-parent
+ 3.4.0-SNAPSHOT
+ ../
+
+
+ 4.0.0
+ neo4j-cypher-interpreted-runtime
+ jar
+ 3.4.0-SNAPSHOT
+ Neo4j - Cypher Interpreted Runtime
+
+ The traditional cypher interpreted runtime
+ http://components.neo4j.org/${project.artifactId}/${project.version}
+
+
+ scm:git:git://github.com/neo4j/neo4j.git
+ scm:git:git@github.com:neo4j/neo4j.git
+ https://github.com/neo4j/neo4j
+
+
+
+
+ GNU General Public License, Version 3
+ http://www.gnu.org/licenses/gpl-3.0-standalone.html
+ The software ("Software") developed and owned by Network Engine for
+ Objects in Lund AB (referred to in this notice as "Neo Technology") is
+ licensed under the GNU GENERAL PUBLIC LICENSE Version 3 to all third
+ parties and that license is included below.
+
+ However, if you have executed an End User Software License and Services
+ Agreement or an OEM Software License and Support Services Agreement, or
+ another commercial license agreement with Neo Technology or one of its
+ affiliates (each, a "Commercial Agreement"), the terms of the license in
+ such Commercial Agreement will supersede the GNU GENERAL PUBLIC LICENSE
+ Version 3 and you may use the Software solely pursuant to the terms of
+ the relevant Commercial Agreement.
+
+
+
+
+
+
+
+ org.scalastyle
+ scalastyle-maven-plugin
+
+
+
+
+
+
+
+
+
+
+
+ org.neo4j
+ neo4j-cypher-logical-plans-3.4
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-cypher-planner-spi-3.4
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-cypher-runtime-util
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-values
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-graphdb-api
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-graph-algo
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-kernel
+ ${project.version}
+
+
+
+
+
+ org.scala-lang
+ scala-library
+
+
+
+ org.scala-lang
+ scala-reflect
+
+
+
+
+
+ org.scalatest
+ scalatest_2.11
+ test
+
+
+ scala-library
+ org.scala-lang
+
+
+
+
+ org.scalacheck
+ scalacheck_2.11
+ test
+
+
+
+
+
+ org.parboiled
+ parboiled-scala_2.11
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+ org.neo4j
+ neo4j-cypher-util-3.4
+ ${project.version}
+ test-jar
+ test
+
+
+
+ org.neo4j
+ neo4j-cypher-runtime-util
+ ${project.version}
+ test-jar
+ test
+
+
+
+ org.neo4j
+ neo4j-kernel
+ ${project.version}
+ test-jar
+ test
+
+
+
+
+
diff --git a/community/cypher/cypher/src/main/java/org/neo4j/cypher/javacompat/internal/GraphDatabaseCypherService.java b/community/cypher/interpreted-runtime/src/main/java/org/neo4j/cypher/internal/javacompat/GraphDatabaseCypherService.java
similarity index 98%
rename from community/cypher/cypher/src/main/java/org/neo4j/cypher/javacompat/internal/GraphDatabaseCypherService.java
rename to community/cypher/interpreted-runtime/src/main/java/org/neo4j/cypher/internal/javacompat/GraphDatabaseCypherService.java
index 762d03a05a223..257e320187078 100644
--- a/community/cypher/cypher/src/main/java/org/neo4j/cypher/javacompat/internal/GraphDatabaseCypherService.java
+++ b/community/cypher/interpreted-runtime/src/main/java/org/neo4j/cypher/internal/javacompat/GraphDatabaseCypherService.java
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.javacompat.internal;
+package org.neo4j.cypher.internal.javacompat;
import java.net.URL;
import java.util.concurrent.TimeUnit;
diff --git a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/ValueToObjectSerializer.java b/community/cypher/interpreted-runtime/src/main/java/org/neo4j/cypher/internal/javacompat/ValueToObjectSerializer.java
similarity index 84%
rename from community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/ValueToObjectSerializer.java
rename to community/cypher/interpreted-runtime/src/main/java/org/neo4j/cypher/internal/javacompat/ValueToObjectSerializer.java
index f59a6b9ad40d0..09e273a1f6bc1 100644
--- a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/ValueToObjectSerializer.java
+++ b/community/cypher/interpreted-runtime/src/main/java/org/neo4j/cypher/internal/javacompat/ValueToObjectSerializer.java
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.javacompat;
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.CartesianPoint;
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.GeographicPoint;
+import org.neo4j.cypher.internal.runtime.CartesianPoint;
+import org.neo4j.cypher.internal.runtime.GeographicPoint;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.spatial.Point;
@@ -52,13 +52,13 @@ protected Relationship newRelationshipProxyById( long id )
protected Point newGeographicPoint( double longitude, double latitude, String name, int code, String href )
{
return new GeographicPoint( longitude, latitude,
- new org.neo4j.cypher.internal.compatibility.v3_4.runtime.CRS( name, code, href ) );
+ new org.neo4j.cypher.internal.runtime.CRS( name, code, href ) );
}
@Override
protected Point newCartesianPoint( double x, double y, String name, int code, String href )
{
return new CartesianPoint( x, y,
- new org.neo4j.cypher.internal.compatibility.v3_4.runtime.CRS( name, code, href ) );
+ new org.neo4j.cypher.internal.runtime.CRS( name, code, href ) );
}
}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/BeansAPIRelationshipIterator.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/BeansAPIRelationshipIterator.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/BeansAPIRelationshipIterator.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/BeansAPIRelationshipIterator.scala
index ea5a9b7bd721c..c117e5533d3e9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/BeansAPIRelationshipIterator.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/BeansAPIRelationshipIterator.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.graphdb.Relationship
import org.neo4j.kernel.impl.api.RelationshipVisitor
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/CSVResources.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/CSVResources.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/CSVResources.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/CSVResources.scala
index 574be7e8fdc96..33cf1f882b593 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/CSVResources.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/CSVResources.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import java.io._
import java.net.{CookieHandler, CookieManager, CookiePolicy, URL}
@@ -26,9 +26,8 @@ import java.nio.file.Paths
import java.util.zip.{GZIPInputStream, InflaterInputStream}
import org.neo4j.csv.reader._
-import org.neo4j.cypher.internal.util.v3_4.LoadExternalResourceException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.TaskCloser
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.ExternalCSVResource
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.ExternalCSVResource
+import org.neo4j.cypher.internal.util.v3_4.{LoadExternalResourceException, TaskCloser}
import sun.net.www.protocol.http.HttpURLConnection
import scala.collection.mutable.ArrayBuffer
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/CastSupport.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/CastSupport.scala
similarity index 99%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/CastSupport.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/CastSupport.scala
index 1cebfd6cae883..220c79efe1a8a 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/CastSupport.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/CastSupport.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
import org.neo4j.values.storable.{ArrayValue, _}
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherOrdering.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/CypherOrdering.scala
similarity index 61%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherOrdering.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/CypherOrdering.scala
index 05ceabb976724..f827185d02f9c 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/CypherOrdering.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/CypherOrdering.scala
@@ -17,51 +17,21 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import java.util.Comparator
-import org.neo4j.cypher.internal.compiler.v3_4.MinMaxOrdering._
+import org.neo4j.cypher.internal.v3_4.logical.plans.MinMaxOrdering
import org.neo4j.kernel.impl.api.PropertyValueComparison
object CypherOrdering {
- val DEFAULT = Ordering.comparatorToOrdering(PropertyValueComparison.COMPARE_VALUES.asInstanceOf[Comparator[Any]]).withNullsLast
-}
-case class MinMaxOrdering[T](ordering: Ordering[T]) {
- val forMin = ordering.withNullsFirst
- val forMax = ordering.withNullsLast
-}
+ import MinMaxOrdering._
+
+ val DEFAULT = Ordering.comparatorToOrdering(PropertyValueComparison.COMPARE_VALUES.asInstanceOf[Comparator[Any]]).withNullsLast
-object MinMaxOrdering {
val BY_VALUE = MinMaxOrdering(Ordering.comparatorToOrdering(PropertyValueComparison.COMPARE_VALUES.asInstanceOf[Comparator[Any]]))
val BY_NUMBER = MinMaxOrdering(Ordering.comparatorToOrdering(PropertyValueComparison.COMPARE_NUMBERS))
val BY_STRING = MinMaxOrdering(Ordering.comparatorToOrdering(PropertyValueComparison.COMPARE_STRINGS))
-
- implicit class NullOrdering[T](ordering: Ordering[T]) {
- def withNullsFirst = new Ordering[T] {
- override def compare(x: T, y: T): Int = {
- if (x == null) {
- if (y == null) 0 else -1
- } else if (y == null) {
- +1
- } else {
- ordering.compare(x, y)
- }
- }
- }
-
- def withNullsLast = new Ordering[T] {
- override def compare(x: T, y: T): Int = {
- if (x == null) {
- if (y == null) 0 else +1
- } else if (y == null) {
- -1
- } else {
- ordering.compare(x, y)
- }
- }
- }
- }
}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/DelegatingQueryContext.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/DelegatingQueryContext.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/DelegatingQueryContext.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/DelegatingQueryContext.scala
index 840497e50287c..942f7443f5c48 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/DelegatingQueryContext.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/DelegatingQueryContext.scala
@@ -17,15 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import java.net.URL
import org.neo4j.collection.primitive.PrimitiveLongIterator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expander, KernelPredicate, UserDefinedAggregator}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.PatternNode
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.compiler.v3_4.spi.KernelStatisticProvider
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IndexDescriptor, KernelStatisticProvider}
+import org.neo4j.cypher.internal.runtime._
import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.{Node, Path, PropertyContainer, Relationship}
@@ -181,13 +179,12 @@ class DelegatingQueryContext(val inner: QueryContext) extends QueryContext {
override def nodeIsDense(node: Long): Boolean = singleDbHit(inner.nodeIsDense(node))
- override def variableLengthPathExpand(node: PatternNode,
- realNode: Long,
+ override def variableLengthPathExpand(realNode: Long,
minHops: Option[Int],
maxHops: Option[Int],
direction: SemanticDirection,
relTypes: Seq[String]): Iterator[Path] =
- manyDbHits(inner.variableLengthPathExpand(node, realNode, minHops, maxHops, direction, relTypes))
+ manyDbHits(inner.variableLengthPathExpand(realNode, minHops, maxHops, direction, relTypes))
override def isLabelSetOnNode(label: Int, node: Long): Boolean = singleDbHit(inner.isLabelSetOnNode(label, node))
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionContext.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ExecutionContext.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionContext.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ExecutionContext.scala
index 3b71697c9d9fc..8509ab464755d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionContext.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ExecutionContext.scala
@@ -17,10 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.MutableMaps
import org.neo4j.values.AnyValue
import scala.collection.mutable.{Map => MutableMap}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/GraphElementPropertyFunctions.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/GraphElementPropertyFunctions.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/GraphElementPropertyFunctions.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/GraphElementPropertyFunctions.scala
index 7c988aa896bbd..c0f58213bcfa2 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/GraphElementPropertyFunctions.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/GraphElementPropertyFunctions.scala
@@ -17,10 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation
+package org.neo4j.cypher.internal.runtime.interpreted
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import scala.collection.Map
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/IndexDescriptorCompatibility.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/IndexDescriptorCompatibility.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/IndexDescriptorCompatibility.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/IndexDescriptorCompatibility.scala
index e4066c1f69207..654d6ce255eaa 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/IndexDescriptorCompatibility.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/IndexDescriptorCompatibility.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
-import org.neo4j.cypher.internal.compiler.v3_4.{IndexDescriptor => CypherIndexDescriptor}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IndexDescriptor => CypherIndexDescriptor}
import org.neo4j.kernel.api.schema.index.{IndexDescriptorFactory, IndexDescriptor => KernelIndexDescriptor}
import org.neo4j.kernel.api.schema.{LabelSchemaDescriptor, SchemaDescriptorFactory}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/JavaConversionSupport.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/JavaConversionSupport.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/JavaConversionSupport.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/JavaConversionSupport.scala
index 83db09e670092..4bcb0baf48f0d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/JavaConversionSupport.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/JavaConversionSupport.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.collection.primitive.{PrimitiveIntIterator, PrimitiveLongIterator}
import org.neo4j.cypher.internal.util.v3_4.EntityNotFoundException
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/LastCommittedTxIdProvider.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/LastCommittedTxIdProvider.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/LastCommittedTxIdProvider.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/LastCommittedTxIdProvider.scala
index a4eccb00ba5d2..e9ae0abba47d8 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/LastCommittedTxIdProvider.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/LastCommittedTxIdProvider.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.kernel.GraphDatabaseQueryService
import org.neo4j.kernel.impl.transaction.log.TransactionIdStore
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ListSupport.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ListSupport.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ListSupport.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ListSupport.scala
index 57982a41b48e9..1d180086e803d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ListSupport.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ListSupport.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{ArrayValue, Values}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/MapSupport.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/MapSupport.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/MapSupport.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/MapSupport.scala
index 82856e81ebca2..bacacd220498c 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/MapSupport.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/MapSupport.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime.interpreted
import java.util
import java.util.Map
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
import org.neo4j.graphdb.PropertyContainer
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.{EdgeValue, MapValue, NodeValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/MutableMaps.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/MutableMaps.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/MutableMaps.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/MutableMaps.scala
index 9b10b93418584..bc235b78229d6 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/MutableMaps.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/MutableMaps.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/PatternGraphBuilder.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/PatternGraphBuilder.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/PatternGraphBuilder.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/PatternGraphBuilder.scala
index abaaee9fc60fe..72e3b24b11208 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/builders/PatternGraphBuilder.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/PatternGraphBuilder.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.builders
+package org.neo4j.cypher.internal.runtime.interpreted
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{Pattern, RelatedTo, VarLengthRelatedTo}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.matching.{PatternGraph, PatternNode, PatternRelationship}
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
import org.neo4j.cypher.internal.util.v3_4.SyntaxException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{Pattern, RelatedTo, VarLengthRelatedTo}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.{PatternGraph, PatternNode, PatternRelationship}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
import scala.collection.mutable
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ProfileKernelStatisticProvider.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ProfileKernelStatisticProvider.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ProfileKernelStatisticProvider.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ProfileKernelStatisticProvider.scala
index 8263229e4ef77..adc24ee12d64b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/ProfileKernelStatisticProvider.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ProfileKernelStatisticProvider.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
-import org.neo4j.cypher.internal.compiler.v3_4.spi.KernelStatisticProvider
+import org.neo4j.cypher.internal.planner.v3_4.spi.KernelStatisticProvider
import org.neo4j.kernel.impl.query.statistic.StatisticProvider
class ProfileKernelStatisticProvider(statisticProvider: StatisticProvider) extends KernelStatisticProvider {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundGraphStatistics.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundGraphStatistics.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundGraphStatistics.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundGraphStatistics.scala
index a69e0893cf9eb..8287b3632d1c1 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundGraphStatistics.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundGraphStatistics.scala
@@ -17,12 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, StatisticsCompletingGraphStatistics}
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, NameId, RelTypeId}
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, Selectivity}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, IndexDescriptor, StatisticsCompletingGraphStatistics}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, RelTypeId, Selectivity}
import org.neo4j.kernel.api.ReadOperations
import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException
@@ -31,8 +29,6 @@ object TransactionBoundGraphStatistics {
private class BaseTransactionBoundGraphStatistics(operations: ReadOperations) extends GraphStatistics with IndexDescriptorCompatibility {
- import NameId._
-
def indexSelectivity(index: IndexDescriptor): Option[Selectivity] =
try {
val labeledNodes = operations.countsForNodeWithoutTxState( index.label ).toDouble
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundPlanContext.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundPlanContext.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundPlanContext.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundPlanContext.scala
index ecd207ed261d9..cc9903c082e30 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundPlanContext.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundPlanContext.scala
@@ -17,18 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import java.util.Optional
import org.neo4j.cypher.MissingIndexException
-import org.neo4j.cypher.internal.LastCommittedTxIdProvider
-import org.neo4j.cypher.internal.util.v3_4.{CypherExecutionException, symbols}
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.compiler.v3_4.spi._
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
+import org.neo4j.cypher.internal.planner.v3_4.spi._
+import org.neo4j.cypher.internal.util.v3_4.CypherExecutionException
+import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.logical.plans._
-import org.neo4j.cypher.internal.util.v3_4.symbols.CypherType
import org.neo4j.internal.kernel.api.exceptions.KernelException
import org.neo4j.kernel.api.index.InternalIndexState
import org.neo4j.kernel.api.proc.Neo4jTypes.AnyType
@@ -177,19 +175,19 @@ class TransactionBoundPlanContext(tc: TransactionalContextWrapper, logger: Inter
asCypherType(neo4jValue.neo4jType()))
private def asCypherType(neoType: AnyType): CypherType = neoType match {
- case Neo4jTypes.NTString => symbols.CTString
- case Neo4jTypes.NTInteger => symbols.CTInteger
- case Neo4jTypes.NTFloat => symbols.CTFloat
- case Neo4jTypes.NTNumber => symbols.CTNumber
- case Neo4jTypes.NTBoolean => symbols.CTBoolean
- case l: Neo4jTypes.ListType => symbols.CTList(asCypherType(l.innerType()))
- case Neo4jTypes.NTPoint => symbols.CTPoint
- case Neo4jTypes.NTNode => symbols.CTNode
- case Neo4jTypes.NTRelationship => symbols.CTRelationship
- case Neo4jTypes.NTPath => symbols.CTPath
- case Neo4jTypes.NTGeometry => symbols.CTGeometry
- case Neo4jTypes.NTMap => symbols.CTMap
- case Neo4jTypes.NTAny => symbols.CTAny
+ case Neo4jTypes.NTString => CTString
+ case Neo4jTypes.NTInteger => CTInteger
+ case Neo4jTypes.NTFloat => CTFloat
+ case Neo4jTypes.NTNumber => CTNumber
+ case Neo4jTypes.NTBoolean => CTBoolean
+ case l: Neo4jTypes.ListType => CTList(asCypherType(l.innerType()))
+ case Neo4jTypes.NTPoint => CTPoint
+ case Neo4jTypes.NTNode => CTNode
+ case Neo4jTypes.NTRelationship => CTRelationship
+ case Neo4jTypes.NTPath => CTPath
+ case Neo4jTypes.NTGeometry => CTGeometry
+ case Neo4jTypes.NTMap => CTMap
+ case Neo4jTypes.NTAny => CTAny
}
override def notificationLogger(): InternalNotificationLogger = logger
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundQueryContext.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundQueryContext.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala
index a5905ade3e9cc..24427d7d6a7d7 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundQueryContext.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContext.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import java.net.URL
import java.util.function.Predicate
@@ -26,23 +26,18 @@ import org.neo4j.collection.RawIterator
import org.neo4j.collection.primitive.PrimitiveLongIterator
import org.neo4j.collection.primitive.base.Empty.EMPTY_PRIMITIVE_LONG_COLLECTION
import org.neo4j.cypher.internal.util.v3_4.{EntityNotFoundException, FailedIndexException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.DirectionConverter.toGraphDb
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{KernelPredicate, OnlyDirectionExpander, TypeAndDirectionExpander, UserDefinedAggregator}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.JavaConversionSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.JavaConversionSupport._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.PatternNode
-import org.neo4j.cypher.internal.compiler.v3_4.MinMaxOrdering._
-import org.neo4j.cypher.internal.compiler.v3_4.{IndexDescriptor, _}
-import org.neo4j.cypher.internal.frontend.v3_4._
-import org.neo4j.cypher.internal.javacompat.ValueToObjectSerializer
-import org.neo4j.cypher.internal.spi.BeansAPIRelationshipIterator
-import org.neo4j.cypher.internal.spi.v3_4.TransactionBoundQueryContext.IndexSearchMonitor
-import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName
-import org.neo4j.cypher.internal.spi.BeansAPIRelationshipIterator
-import org.neo4j.cypher.internal.spi.v3_4.TransactionBoundQueryContext.IndexSearchMonitor
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.DirectionConverter.toGraphDb
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{OnlyDirectionExpander, TypeAndDirectionExpander}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.matching.PatternNode
+import org.neo4j.cypher.internal.javacompat.{GraphDatabaseCypherService, ValueToObjectSerializer}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IdempotentResult, IndexDescriptor}
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.runtime.interpreted.CypherOrdering.{BY_NUMBER, BY_STRING, BY_VALUE}
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor
+import org.neo4j.cypher.internal.runtime.interpreted._
+import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.cypher.{InternalException, internal}
import org.neo4j.graphalgo.impl.path.ShortestPath
import org.neo4j.graphalgo.impl.path.ShortestPath.ShortestPathPredicate
@@ -290,16 +285,16 @@ final class TransactionBoundQueryContext(val transactionalContext: Transactional
}
override def indexScan(index: IndexDescriptor) =
- mapToScalaENFXSafe(indexScanPrimitive(index))(nodeOps.getById)
+ JavaConversionSupport.mapToScalaENFXSafe(indexScanPrimitive(index))(nodeOps.getById)
override def indexScanPrimitive(index: IndexDescriptor) =
transactionalContext.statement.readOperations().indexQuery(index, IndexQuery.exists(index.property))
override def indexScanByContains(index: IndexDescriptor, value: String) =
- mapToScalaENFXSafe(transactionalContext.statement.readOperations().indexQuery(index, IndexQuery.stringContains(index.property, value)))(nodeOps.getById)
+ JavaConversionSupport.mapToScalaENFXSafe(transactionalContext.statement.readOperations().indexQuery(index, IndexQuery.stringContains(index.property, value)))(nodeOps.getById)
override def indexScanByEndsWith(index: IndexDescriptor, value: String) =
- mapToScalaENFXSafe(transactionalContext.statement.readOperations().indexQuery(index, IndexQuery.stringSuffix(index.property, value)))(nodeOps.getById)
+ JavaConversionSupport.mapToScalaENFXSafe(transactionalContext.statement.readOperations().indexQuery(index, IndexQuery.stringSuffix(index.property, value)))(nodeOps.getById)
override def lockingUniqueIndexSeek(index: IndexDescriptor, values: Seq[Any]): Option[Node] = {
indexSearchMonitor.lockingUniqueIndexSeek(index, values)
@@ -435,7 +430,7 @@ final class TransactionBoundQueryContext(val transactionalContext: Transactional
}
override def propertyKeyIds(id: Long): Iterator[Int] = try {
- asScalaENFXSafe(transactionalContext.statement.readOperations().relationshipGetPropertyKeys(id))
+ JavaConversionSupport.asScalaENFXSafe(transactionalContext.statement.readOperations().relationshipGetPropertyKeys(id))
} catch {
case _: exceptions.EntityNotFoundException => Iterator.empty
}
@@ -617,8 +612,7 @@ final class TransactionBoundQueryContext(val transactionalContext: Transactional
private lazy val tokenNameLookup = new StatementTokenNameLookup(transactionalContext.statement.readOperations())
// Legacy dependency between kernel and compiler
- override def variableLengthPathExpand(node: PatternNode,
- realNode: Long,
+ override def variableLengthPathExpand(realNode: Long,
minHops: Option[Int],
maxHops: Option[Int],
direction: SemanticDirection,
@@ -664,7 +658,7 @@ final class TransactionBoundQueryContext(val transactionalContext: Transactional
override def lockRelationships(relIds: Long*) =
relIds.sorted.foreach(transactionalContext.statement.readOperations().acquireExclusive(ResourceTypes.RELATIONSHIP, _))
- override def singleShortestPath(left: Long, right: Long, depth: Int, expander: expressions.Expander,
+ override def singleShortestPath(left: Long, right: Long, depth: Int, expander: Expander,
pathPredicate: KernelPredicate[Path],
filters: Seq[KernelPredicate[PropertyContainer]]): Option[Path] = {
val pathFinder = buildPathFinder(depth, expander, pathPredicate, filters)
@@ -673,7 +667,7 @@ final class TransactionBoundQueryContext(val transactionalContext: Transactional
Option(pathFinder.findSinglePath(entityAccessor.newNodeProxyById(left), entityAccessor.newNodeProxyById(right)))
}
- override def allShortestPath(left: Long, right: Long, depth: Int, expander: expressions.Expander,
+ override def allShortestPath(left: Long, right: Long, depth: Int, expander: Expander,
pathPredicate: KernelPredicate[Path],
filters: Seq[KernelPredicate[PropertyContainer]]): scala.Iterator[Path] = {
val pathFinder = buildPathFinder(depth, expander, pathPredicate, filters)
@@ -772,9 +766,9 @@ final class TransactionBoundQueryContext(val transactionalContext: Transactional
}
}
- override def isGraphKernelResultValue(v: Any): Boolean = internal.isGraphKernelResultValue(v)
+ override def isGraphKernelResultValue(v: Any): Boolean = v.isInstanceOf[PropertyContainer] || v.isInstanceOf[Path]
- private def buildPathFinder(depth: Int, expander: expressions.Expander, pathPredicate: KernelPredicate[Path],
+ private def buildPathFinder(depth: Int, expander: Expander, pathPredicate: KernelPredicate[Path],
filters: Seq[KernelPredicate[PropertyContainer]]): ShortestPath = {
val startExpander = expander match {
case OnlyDirectionExpander(_, _, dir) =>
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundTokenContext.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundTokenContext.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundTokenContext.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundTokenContext.scala
index a15ba86fea447..f956380304aeb 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundTokenContext.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundTokenContext.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
import org.neo4j.kernel.api.Statement
import org.neo4j.kernel.api.exceptions.{LabelNotFoundKernelException, PropertyKeyNotFoundException, RelationshipTypeNotFoundException}
import org.neo4j.kernel.impl.api.operations.KeyReadOperations
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionalContextWrapper.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionalContextWrapper.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionalContextWrapper.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionalContextWrapper.scala
index fa11c62351ea7..faf7672552493 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionalContextWrapper.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionalContextWrapper.scala
@@ -17,15 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
-import org.neo4j.cypher.internal.ExecutionPlan
-import org.neo4j.cypher.internal.compatibility.v3_4.ProfileKernelStatisticProvider
-import org.neo4j.cypher.internal.compiler.v3_4.spi.KernelStatisticProvider
+import org.neo4j.cypher.internal.planner.v3_4.spi.KernelStatisticProvider
+import org.neo4j.cypher.internal.runtime.QueryTransactionalContext
import org.neo4j.graphdb.{Lock, PropertyContainer}
import org.neo4j.kernel.GraphDatabaseQueryService
import org.neo4j.kernel.api.KernelTransaction.Revertable
import org.neo4j.kernel.api.dbms.DbmsOperations
+import org.neo4j.kernel.api.query.PlannerInfo
import org.neo4j.kernel.api.security.SecurityContext
import org.neo4j.kernel.api.txstate.TxStateHolder
import org.neo4j.kernel.api.{ReadOperations, Statement}
@@ -67,7 +67,7 @@ case class TransactionalContextWrapper(tc: TransactionalContext) extends QueryTr
def securityContext: SecurityContext = tc.securityContext
- def notifyPlanningCompleted(plan: ExecutionPlan): Unit = tc.executingQuery().planningCompleted(plan.plannerInfo)
+ def notifyPlanningCompleted(plannerInfo: PlannerInfo): Unit = tc.executingQuery().planningCompleted(plannerInfo)
def kernelStatisticProvider: KernelStatisticProvider = new ProfileKernelStatisticProvider(tc.kernelStatisticProvider())
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/UpdateCountingQueryContext.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContext.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/UpdateCountingQueryContext.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContext.scala
index 0706883a2133a..dee855a00671f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/UpdateCountingQueryContext.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContext.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import java.util.concurrent.atomic.AtomicInteger
-import org.neo4j.cypher.internal.QueryStatistics
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext, QueryStatistics}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.{Node, PropertyContainer, Relationship}
import org.neo4j.values.storable.Value
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ValueConversion.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ValueConversion.scala
similarity index 71%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ValueConversion.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ValueConversion.scala
index 83aa4d76b8fa5..954eb25f36426 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ValueConversion.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/ValueConversion.scala
@@ -17,11 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime.interpreted
-import org.neo4j.cypher.internal.util.v3_4.symbols
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly
-import org.neo4j.cypher.internal.util.v3_4.symbols.CypherType
+import org.neo4j.cypher.internal.util.v3_4.Eagerly
+import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.graphdb.spatial.{Geometry, Point}
import org.neo4j.graphdb.{Node, Path, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils
@@ -36,19 +35,19 @@ import scala.collection.JavaConverters._
object ValueConversion {
def getValueConverter(cType: CypherType): Any => AnyValue = {
val converter: Any => AnyValue = cType match {
- case symbols.CTNode => n => ValueUtils.fromNodeProxy(n.asInstanceOf[Node])
- case symbols.CTRelationship => r => ValueUtils.fromRelationshipProxy(r.asInstanceOf[Relationship])
- case symbols.CTBoolean => b => Values.booleanValue(b.asInstanceOf[Boolean])
- case symbols.CTFloat => d => Values.doubleValue(d.asInstanceOf[Double])
- case symbols.CTInteger => l => Values.longValue(l.asInstanceOf[Long])
- case symbols.CTNumber => l => Values.numberValue(l.asInstanceOf[Number])
- case symbols.CTString => l => Values.stringValue(l.asInstanceOf[String])
- case symbols.CTPath => p => ValueUtils.asPathValue(p.asInstanceOf[Path])
- case symbols.CTMap => m => ValueUtils.asMapValue(m.asInstanceOf[java.util.Map[String, AnyRef]])
- case symbols.ListType(_) => l => ValueUtils.asListValue(l.asInstanceOf[java.util.Collection[_]])
- case symbols.CTAny => o => ValueUtils.of(o)
- case symbols.CTPoint => o => ValueUtils.asPointValue(o.asInstanceOf[Point])
- case symbols.CTGeometry => o => ValueUtils.asPointValue(o.asInstanceOf[Geometry])
+ case CTNode => n => ValueUtils.fromNodeProxy(n.asInstanceOf[Node])
+ case CTRelationship => r => ValueUtils.fromRelationshipProxy(r.asInstanceOf[Relationship])
+ case CTBoolean => b => Values.booleanValue(b.asInstanceOf[Boolean])
+ case CTFloat => d => Values.doubleValue(d.asInstanceOf[Double])
+ case CTInteger => l => Values.longValue(l.asInstanceOf[Long])
+ case CTNumber => l => Values.numberValue(l.asInstanceOf[Number])
+ case CTString => l => Values.stringValue(l.asInstanceOf[String])
+ case CTPath => p => ValueUtils.asPathValue(p.asInstanceOf[Path])
+ case CTMap => m => ValueUtils.asMapValue(m.asInstanceOf[java.util.Map[String, AnyRef]])
+ case ListType(_) => l => ValueUtils.asListValue(l.asInstanceOf[java.util.Collection[_]])
+ case CTAny => o => ValueUtils.of(o)
+ case CTPoint => o => ValueUtils.asPointValue(o.asInstanceOf[Point])
+ case CTGeometry => o => ValueUtils.asPointValue(o.asInstanceOf[Geometry])
}
(v) => if (v == null) Values.NO_VALUE else converter(v)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AstNode.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AstNode.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AstNode.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AstNode.scala
index 1d2752b82b0f1..65026d555ebf4 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AstNode.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AstNode.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import scala.reflect.ClassTag
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/InList.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/InList.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/InList.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/InList.scala
index fff0c0275f21d..56f4eacd00521 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/InList.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/InList.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Closure, Expression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Closure, Expression}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.ListValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/IndexOperation.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/IndexOperation.scala
similarity index 98%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/IndexOperation.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/IndexOperation.scala
index 5c1fab75e0780..cb5c9f7c4b37d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/IndexOperation.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/IndexOperation.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
sealed abstract class IndexOperation extends AbstractQuery {
val label: String
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PathExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PathExpression.scala
similarity index 81%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PathExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PathExpression.scala
index 5cdb024c3c0ec..776c70deee9b0 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PathExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PathExpression.scala
@@ -17,16 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.builders.PatternGraphBuilder
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.MatchingContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.UnNamedNameGenerator.isNamed
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.PatternGraphBuilder
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.matching.MatchingContext
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
+import org.neo4j.cypher.internal.util.v3_4.UnNamedNameGenerator.isNamed
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PathExtractor.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PathExtractor.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PathExtractor.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PathExtractor.scala
index fb94136e46ff7..7cfc9308869e2 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PathExtractor.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PathExtractor.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.{EdgeValue, NodeValue, PathValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/Pattern.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/Pattern.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/Pattern.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/Pattern.scala
index 6d35ec15df456..35f1b3ff0338e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/Pattern.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/Pattern.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
-
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.True
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.GraphElementPropertyFunctions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.TypeSafe
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.UnNamedNameGenerator
+package org.neo4j.cypher.internal.runtime.interpreted.commands
+
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.True
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.runtime.interpreted.GraphElementPropertyFunctions
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.TypeSafe
+import org.neo4j.cypher.internal.util.v3_4.UnNamedNameGenerator
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection.{INCOMING, OUTGOING}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/Query.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/Query.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/Query.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/Query.scala
index fadc3bbcd7f6e..f538f1d20defd 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/Query.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/Query.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
trait AbstractQuery {
def queryString: QueryString
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/QueryString.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/QueryString.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/QueryString.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/QueryString.scala
index 3dcdc82eee25e..68f629d89bab8 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/QueryString.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/QueryString.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
object QueryString {
lazy val empty = QueryString("")
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ReturnItem.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ReturnItem.scala
similarity index 81%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ReturnItem.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ReturnItem.scala
index ff8eba667bf3a..294a07db9a1ba 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ReturnItem.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ReturnItem.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.UnNamedNameGenerator.isNamed
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
+import org.neo4j.cypher.internal.util.v3_4.UnNamedNameGenerator.isNamed
import scala.collection.Map
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SortItem.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SortItem.scala
similarity index 80%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SortItem.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SortItem.scala
index 2bf9467068ff0..646853773362a 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SortItem.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SortItem.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import org.neo4j.cypher.internal.util.v3_4.PatternException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
case class SortItem(expression: Expression, ascending: Boolean) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/TypeSafeMathSupport.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/TypeSafeMathSupport.scala
similarity index 99%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/TypeSafeMathSupport.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/TypeSafeMathSupport.scala
index e1dd10410f44c..47c6f7d095697 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/TypeSafeMathSupport.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/TypeSafeMathSupport.scala
@@ -17,10 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.InternalException
-import org.neo4j.cypher.internal.util.v3_4.ArithmeticException
+import org.neo4j.cypher.internal.util.v3_4.{ArithmeticException, InternalException}
import org.neo4j.values.AnyValue
import org.neo4j.values.storable._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/coerce.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/coerce.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/coerce.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/coerce.scala
index 6c30b32b32817..65cf233492cf7 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/coerce.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/coerce.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.{IsList, IsMap}
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{IsList, IsMap}
import org.neo4j.cypher.internal.util.v3_4.symbols._
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.values._
import org.neo4j.values.storable._
import org.neo4j.values.virtual._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/CommunityExpressionConverter.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/CommunityExpressionConverter.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/CommunityExpressionConverter.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/CommunityExpressionConverter.scala
index d20c380990035..c1bc0c5afc3ef 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/CommunityExpressionConverter.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/CommunityExpressionConverter.scala
@@ -17,20 +17,20 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert
+package org.neo4j.cypher.internal.runtime.interpreted.commands.convert
import org.neo4j.cypher.internal.util.v3_4.{InternalException, NonEmptyList}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{InequalitySeekRangeExpression, Expression => CommandExpression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.UnresolvedRelType
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{PathExtractorExpression, predicates, expressions => commandexpressions, values => commandvalues}
-import org.neo4j.cypher.internal.compiler.v3_4.ast._
+import org.neo4j.cypher.internal.runtime.interpreted._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{InequalitySeekRangeExpression, Expression => CommandExpression}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.UnresolvedRelType
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{PathExtractorExpression, predicates, expressions => commandexpressions, values => commandvalues}
import org.neo4j.cypher.internal.v3_4.functions._
import org.neo4j.cypher.internal.v3_4.functions
import org.neo4j.cypher.internal.v3_4.{expressions => ast}
import org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters.DesugaredMapProjection
+import org.neo4j.cypher.internal.v3_4.logical.plans.{InequalitySeekRangeWrapper, NestedPlanExpression, PrefixSeekRangeWrapper, ResolvedFunctionInvocation}
object CommunityExpressionConverter extends ExpressionConverter {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/ExpressionConverters.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/ExpressionConverters.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/ExpressionConverters.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/ExpressionConverters.scala
index 3dc24426b43b5..1284e96d18714 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/ExpressionConverters.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/ExpressionConverters.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert
+package org.neo4j.cypher.internal.runtime.interpreted.commands.convert
import org.neo4j.cypher.internal.util.v3_4._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.ProjectedPath._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{ProjectedPath, Expression => CommandExpression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{ManySeekArgs, SeekArgs, SingleSeekArg}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.ProjectedPath._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{ProjectedPath, Expression => CommandExpression}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{ManySeekArgs, SeekArgs, SingleSeekArg}
import org.neo4j.cypher.internal.v3_4.{expressions => ast}
import org.neo4j.cypher.internal.v3_4.expressions.{SemanticDirection, Variable}
import org.neo4j.cypher.internal.v3_4.logical.plans.{ManySeekableArgs, SeekableArgs, SingleSeekableArg}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/PatternConverters.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/PatternConverters.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/PatternConverters.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/PatternConverters.scala
index 72bc841418042..81e3b22fc9c18 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/PatternConverters.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/PatternConverters.scala
@@ -17,14 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert
+package org.neo4j.cypher.internal.runtime.interpreted.commands.convert
-import org.neo4j.cypher.internal.util.v3_4.SyntaxException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression => CommandExpression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{Pattern, SingleNode, values => commandvalues}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.UnNamedNameGenerator
+import org.neo4j.cypher.internal.util.v3_4.{SyntaxException, UnNamedNameGenerator}
+import org.neo4j.cypher.internal.runtime.interpreted._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression => CommandExpression}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{Pattern, SingleNode, values => commandvalues}
import org.neo4j.cypher.internal.v3_4.{expressions => ast}
object PatternConverters {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Add.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Add.scala
similarity index 90%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Add.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Add.scala
index 7b9b33b06fc59..26ea64f8a57c9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Add.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Add.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{IsList, TypeSafeMathSupport}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, IsList}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.TypeSafeMathSupport
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.values._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/AggregationExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/AggregationExpression.scala
similarity index 83%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/AggregationExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/AggregationExpression.scala
index a3f8fc855ae04..fee8dcdc222a6 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/AggregationExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/AggregationExpression.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.SyntaxException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.AggregationFunction
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.AggregationFunction
import org.neo4j.cypher.internal.util.v3_4.symbols.CypherType
abstract class AggregationExpression extends Expression {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/AggregationFunctionInvocation.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/AggregationFunctionInvocation.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/AggregationFunctionInvocation.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/AggregationFunctionInvocation.scala
index 41f684339256f..69ed87bdb4fa5 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/AggregationFunctionInvocation.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/AggregationFunctionInvocation.scala
@@ -17,12 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ValueConversion
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.AggregationFunction
+import org.neo4j.cypher.internal.runtime.UserDefinedAggregator
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ValueConversion
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.AggregationFunction
import org.neo4j.cypher.internal.v3_4.logical.plans.UserFunctionSignature
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Avg.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Avg.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Avg.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Avg.scala
index 1902842e66938..8894e06c3f403 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Avg.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Avg.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.AvgFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.AvgFunction
import org.neo4j.cypher.internal.util.v3_4.symbols._
case class Avg(anInner: Expression) extends AggregationWithInnerExpression(anInner) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Closure.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Closure.scala
similarity index 87%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Closure.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Closure.scala
index 59228b888c52e..14033dce159b0 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Closure.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Closure.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.TypeSafe
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.TypeSafe
trait Closure {
def symbolTableDependencies(collection:TypeSafe, closure:TypeSafe, id:String) = {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CoalesceFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CoalesceFunction.scala
similarity index 87%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CoalesceFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CoalesceFunction.scala
index 858dd4a39f441..1bd903ab47b4e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CoalesceFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CoalesceFunction.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CoerceTo.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CoerceTo.scala
similarity index 80%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CoerceTo.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CoerceTo.scala
index 5c8640674bbc9..36bcecbace21d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CoerceTo.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CoerceTo.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.coerce
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.coerce
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Collect.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Collect.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Collect.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Collect.scala
index aab778e88c18c..4d852f3d5de98 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Collect.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Collect.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.CollectFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.CollectFunction
import org.neo4j.cypher.internal.util.v3_4.symbols._
case class Collect(anInner: Expression) extends AggregationWithInnerExpression(anInner) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ContainerIndex.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ContainerIndex.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ContainerIndex.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ContainerIndex.scala
index 06f6db8f7075f..4087888015acb 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ContainerIndex.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ContainerIndex.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InvalidArgumentException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{CastSupport, IsList, IsMap, ListSupport}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.{CastSupport, IsList, IsMap, ListSupport}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values._
import org.neo4j.values.storable._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Count.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Count.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Count.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Count.scala
index 783e78c75b1dc..5e13d052811eb 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Count.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Count.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.CountFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.CountFunction
import org.neo4j.cypher.internal.util.v3_4.symbols._
case class Count(anInner: Expression) extends AggregationWithInnerExpression(anInner) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CountStar.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CountStar.scala
similarity index 85%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CountStar.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CountStar.scala
index 70fc47ced0103..ba0b1e8f0bc61 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CountStar.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CountStar.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.CountStarFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.CountStarFunction
case class CountStar() extends AggregationExpression {
def rewrite(f: (Expression) => Expression) = f(CountStar())
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/DesugaredMapProjection.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/DesugaredMapProjection.scala
similarity index 83%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/DesugaredMapProjection.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/DesugaredMapProjection.scala
index 171a9e41f836a..64fa4ebbb9650 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/DesugaredMapProjection.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/DesugaredMapProjection.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.GraphElementPropertyFunctions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.IsMap
+import org.neo4j.cypher.internal.runtime.interpreted.GraphElementPropertyFunctions
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/DistanceFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/DistanceFunction.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/DistanceFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/DistanceFunction.scala
index a6c5a4cddcf2d..0c4d8ece93b1a 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/DistanceFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/DistanceFunction.scala
@@ -17,13 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import java.lang.Math._
+import org.neo4j.cypher.internal.runtime.CRS
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CRS, ExecutionContext}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{DoubleValue, Values}
import org.neo4j.values.virtual.PointValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Distinct.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Distinct.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Distinct.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Distinct.scala
index 47269e9d41a00..9b9197345f522 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Distinct.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Distinct.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.DistinctFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.DistinctFunction
import org.neo4j.cypher.internal.util.v3_4.symbols._
case class Distinct(innerAggregator: AggregationExpression, expression: Expression) extends AggregationWithInnerExpression(expression) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Divide.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Divide.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Divide.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Divide.scala
index 1060a0fce4164..6ee619770a8a3 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Divide.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Divide.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.ArithmeticException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values._
import org.neo4j.values.storable._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Expression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Expression.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Expression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Expression.scala
index 28cf7dbe2dcc7..75fc23236ad8b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Expression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Expression.scala
@@ -17,15 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.TypeSafe
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InternalException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.AstNode
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{CoercedPredicate, Predicate}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.TypeSafeMathSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, QueryState}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.TypeSafe
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{AstNode, TypeSafeMathSupport}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{CoercedPredicate, Predicate}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, QueryState}
import org.neo4j.cypher.internal.util.v3_4.symbols.CypherType
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{NumberValue, Values}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ExtractFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ExtractFunction.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ExtractFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ExtractFunction.scala
index 3859866f6aa17..2888f90181d60 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ExtractFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ExtractFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.{ListValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/FilterFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/FilterFunction.scala
similarity index 80%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/FilterFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/FilterFunction.scala
index b83960fdad54e..5c85b81f08182 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/FilterFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/FilterFunction.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/FunctionInvocation.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/FunctionInvocation.scala
similarity index 80%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/FunctionInvocation.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/FunctionInvocation.scala
index eb7c8ccc33b82..740277e947f54 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/FunctionInvocation.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/FunctionInvocation.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ValueConversion
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.GraphElementPropertyFunctions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ValueConversion
+import org.neo4j.cypher.internal.runtime.interpreted.GraphElementPropertyFunctions
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.v3_4.logical.plans.UserFunctionSignature
import org.neo4j.values._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/GenericCase.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/GenericCase.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/GenericCase.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/GenericCase.scala
index 8dcb642f52aab..900c0e96304b7 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/GenericCase.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/GenericCase.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
case class GenericCase(alternatives: IndexedSeq[(Predicate, Expression)], default: Option[Expression]) extends Expression {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/GetDegree.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/GetDegree.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/GetDegree.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/GetDegree.scala
index 5d77cb3138680..5278249abe803 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/GetDegree.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/GetDegree.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/IdFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/IdFunction.scala
similarity index 87%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/IdFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/IdFunction.scala
index 01d657aea33c6..8426cf267d38d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/IdFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/IdFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.{EdgeValue, NodeValue}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/IndexedInclusiveLongRange.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/IndexedInclusiveLongRange.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/IndexedInclusiveLongRange.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/IndexedInclusiveLongRange.scala
index a66fbcdd7fc32..020aecbf2da83 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/IndexedInclusiveLongRange.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/IndexedInclusiveLongRange.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import scala.collection.immutable
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/InequalitySeekRangeExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/InequalitySeekRangeExpression.scala
similarity index 81%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/InequalitySeekRangeExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/InequalitySeekRangeExpression.scala
index d75f40de32d75..a6265d57c4260 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/InequalitySeekRangeExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/InequalitySeekRangeExpression.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compiler.v3_4.InequalitySeekRange
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.v3_4.logical.plans.InequalitySeekRange
import org.neo4j.values.AnyValue
case class InequalitySeekRangeExpression(range: InequalitySeekRange[Expression])
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/KeysFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/KeysFunction.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/KeysFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/KeysFunction.scala
index a691cdc20856a..d604871723789 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/KeysFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/KeysFunction.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.IsMap
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.ListValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LabelsFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LabelsFunction.scala
similarity index 87%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LabelsFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LabelsFunction.scala
index c2a33d7e73f61..5879e0fa1d5ea 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LabelsFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LabelsFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.ParameterWrongTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.{NodeValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LengthFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LengthFunction.scala
similarity index 83%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LengthFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LengthFunction.scala
index d0fde6e77c106..70bef7e5f1091 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LengthFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LengthFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{TextValue, Values}
import org.neo4j.values.virtual.PathValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ListLiteral.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ListLiteral.scala
similarity index 85%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ListLiteral.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ListLiteral.scala
index 2a21b6472d608..2c598e17e746f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ListLiteral.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ListLiteral.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ListSlice.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ListSlice.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ListSlice.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ListSlice.scala
index 66acda182af27..8a944357ae38b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ListSlice.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ListSlice.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{CastSupport, ListSupport}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.{CastSupport, ListSupport}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{NumberValue, Values}
import org.neo4j.values.virtual.{ListValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Literal.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Literal.scala
similarity index 78%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Literal.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Literal.scala
index d9f19512a0272..feb9516a7ba75 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Literal.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Literal.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ValueConversion.asValue
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ValueConversion.asValue
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
case class Literal(v: Any) extends Expression {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LiteralMap.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LiteralMap.scala
similarity index 81%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LiteralMap.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LiteralMap.scala
index 631c520a5605c..0931fef1b4315 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LiteralMap.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LiteralMap.scala
@@ -17,11 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.GraphElementPropertyFunctions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, GraphElementPropertyFunctions}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/MathFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/MathFunction.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/MathFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/MathFunction.scala
index e48734de39c45..faca5a79c9e2a 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/MathFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/MathFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InvalidArgumentException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.values._
import org.neo4j.values.storable._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Max.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Max.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Max.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Max.scala
index 0ad3ca4ccb8da..3e52263228bf9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Max.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Max.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.MaxFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.MaxFunction
import org.neo4j.cypher.internal.util.v3_4.symbols._
case class Max(anInner: Expression) extends AggregationWithInnerExpression(anInner) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Min.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Min.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Min.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Min.scala
index 9851362714acd..c1271f5844983 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Min.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Min.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.MinFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.MinFunction
import org.neo4j.cypher.internal.util.v3_4.symbols._
case class Min(anInner: Expression) extends AggregationWithInnerExpression(anInner) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Modulo.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Modulo.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Modulo.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Modulo.scala
index de2551b274fc5..2e0d657c2d7fe 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Modulo.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Modulo.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.values._
import org.neo4j.values.storable.{DoubleValue, FloatValue, NumberValue, Values}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Multiply.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Multiply.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Multiply.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Multiply.scala
index 99b6977ae3109..67971e10b08e7 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Multiply.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Multiply.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.NumberValue
@@ -28,4 +28,4 @@ case class Multiply(a: Expression, b: Expression) extends Arithmetics(a, b) {
def rewrite(f: (Expression) => Expression) = f(Multiply(a.rewrite(f), b.rewrite(f)))
def symbolTableDependencies = a.symbolTableDependencies ++ b.symbolTableDependencies
-}
\ No newline at end of file
+}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NestedPipeExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NestedPipeExpression.scala
similarity index 87%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NestedPipeExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NestedPipeExpression.scala
index c5c7d546050e2..721b4ccd573b8 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NestedPipeExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NestedPipeExpression.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, QueryState}
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NestedPlanExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NestedPlanExpression.scala
similarity index 85%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NestedPlanExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NestedPlanExpression.scala
index c735f79cf6829..c54187cbb174e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NestedPlanExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NestedPlanExpression.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NodesFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NodesFunction.scala
similarity index 85%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NodesFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NodesFunction.scala
index 88215d101484f..78b43862de916 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NodesFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NodesFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.SyntaxException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.{PathValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Null.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Null.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Null.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Null.scala
index 5c4fc95f9f988..166057b432d02 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Null.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Null.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.storable.Values
case class Null() extends Expression {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NullInNullOutExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NullInNullOutExpression.scala
similarity index 83%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NullInNullOutExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NullInNullOutExpression.scala
index 64eb3fb391b38..bd709b4867035 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/NullInNullOutExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/NullInNullOutExpression.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ParameterExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ParameterExpression.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ParameterExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ParameterExpression.scala
index 2c71f49826402..26eb02d5b2c2c 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ParameterExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ParameterExpression.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
case class ParameterExpression(parameterName: String) extends Expression {
def apply(ctx: ExecutionContext, state: QueryState) = state.getParam(parameterName)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathValueBuilder.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PathValueBuilder.scala
similarity index 98%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathValueBuilder.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PathValueBuilder.scala
index 33630a872d6d8..091cdfa55dc1f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathValueBuilder.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PathValueBuilder.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Percentile.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Percentile.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Percentile.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Percentile.scala
index 4a22a0877615b..f8f37603ab8d5 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Percentile.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Percentile.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.{PercentileContFunction, PercentileDiscFunction}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.{PercentileContFunction, PercentileDiscFunction}
import org.neo4j.cypher.internal.util.v3_4.symbols._
case class PercentileCont(anInner: Expression, percentile: Expression) extends AggregationWithInnerExpression(anInner) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PointFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PointFunction.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PointFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PointFunction.scala
index f24b9dfd5070f..b3e45bfbf1443 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PointFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PointFunction.scala
@@ -17,15 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import java.util.function.BiConsumer
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
import org.neo4j.kernel.impl.util.ValueUtils
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.IsMap
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.MapValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Pow.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Pow.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Pow.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Pow.scala
index 7611ad49c0523..2505ebbd02501 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Pow.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Pow.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.values.storable.{NumberValue, Values}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PrefixSeekRangeExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PrefixSeekRangeExpression.scala
similarity index 81%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PrefixSeekRangeExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PrefixSeekRangeExpression.scala
index 87196b5dacd4f..a761db1b3f99c 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PrefixSeekRangeExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PrefixSeekRangeExpression.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compiler.v3_4.PrefixRange
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.v3_4.logical.plans.PrefixRange
import org.neo4j.values.AnyValue
case class PrefixSeekRangeExpression(range: PrefixRange[Expression]) extends Expression {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ProjectedPath.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ProjectedPath.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ProjectedPath.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ProjectedPath.scala
index 87292d453bb46..da2b282619a24 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ProjectedPath.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ProjectedPath.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
object ProjectedPath {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PropertiesFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PropertiesFunction.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PropertiesFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PropertiesFunction.scala
index 8d2385c829941..0dcb34d2e7c41 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PropertiesFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PropertiesFunction.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.IsMap
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
case class PropertiesFunction(a: Expression) extends NullInNullOutExpression(a) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Property.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Property.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Property.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Property.scala
index 41273d2e3985c..31eebbaf666aa 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Property.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Property.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.runtime.interpreted.IsMap
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.{EdgeValue, NodeValue}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ReduceFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ReduceFunction.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ReduceFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ReduceFunction.scala
index 65f001c96082b..ae5b364d756ae 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ReduceFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ReduceFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipEndPoints.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipEndPoints.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipEndPoints.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipEndPoints.scala
index 2bdec67f058a6..6a37201490520 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipEndPoints.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipEndPoints.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.CastSupport.castOrFail
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.CastSupport.castOrFail
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.EdgeValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipFunction.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipFunction.scala
index 1ba63fbac4ebf..eb07226b1fa63 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.SyntaxException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.{PathValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipTypeFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipTypeFunction.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipTypeFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipTypeFunction.scala
index ba1d4043c61d7..53ee3c63d71c5 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipTypeFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipTypeFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.ParameterWrongTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.EdgeValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ReverseFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ReverseFunction.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ReverseFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ReverseFunction.scala
index 4c4df8f7702df..9c5163378d5fe 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ReverseFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ReverseFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{TextValue, Values}
import org.neo4j.values.virtual.{ListValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ShortestPathExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ShortestPathExpression.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ShortestPathExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ShortestPathExpression.scala
index 18eb67021311f..189d583cb2aac 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ShortestPathExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ShortestPathExpression.scala
@@ -17,16 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
+import org.neo4j.cypher.internal.runtime.{Expander, KernelPredicate}
import org.neo4j.cypher.internal.util.v3_4.{NonEmptyList, ShortestPathCommonEndNodesForbiddenException, SyntaxException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{Pattern, ShortestPath, SingleNode, _}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.RelationshipSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.graphdb.{Path, PropertyContainer}
import org.neo4j.kernel.impl.util.ValueUtils
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{Pattern, ShortestPath, SingleNode, _}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.graphdb.{Path, PropertyContainer, Relationship}
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.{NodeValue, VirtualValues}
@@ -81,12 +81,13 @@ case class ShortestPathExpression(shortestPathPattern: ShortestPath, predicates:
maybePredicate: Option[Predicate],
state: QueryState): KernelPredicate[Path] =
new KernelPredicate[Path] {
+
override def test(path: Path): Boolean = maybePredicate.forall {
predicate =>
incomingCtx += shortestPathPattern.pathName -> ValueUtils.asPathValue(path)
incomingCtx += shortestPathPattern.relIterator.get -> ValueUtils.asListOfEdges(path.relationships())
predicate.isTrue(incomingCtx, state)
- } && (!withFallBack || RelationshipSupport.areRelationshipsUnique(path.relationships.asScala.toList))
+ } && (!withFallBack || ShortestPathExpression.noDuplicates(path.relationships.asScala))
}
private def getEndPoint(m: Map[String, AnyValue], start: SingleNode): NodeValue = m.getOrElse(start.name,
@@ -176,9 +177,9 @@ case class ShortestPathExpression(shortestPathPattern: ShortestPath, predicates:
}
private def makeRelationshipTypeExpander(): Expander = if (shortestPathPattern.relTypes.isEmpty) {
- Expander.expanderForAllTypes(shortestPathPattern.dir)
+ Expanders.allTypes(shortestPathPattern.dir)
} else {
- shortestPathPattern.relTypes.foldLeft(Expander.typeDirExpander()) {
+ shortestPathPattern.relTypes.foldLeft(Expanders.typeDir()) {
case (e, t) => e.add(t, shortestPathPattern.dir)
}
}
@@ -214,3 +215,9 @@ case class ShortestPathExpression(shortestPathPattern: ShortestPath, predicates:
(predicate.symbolTableDependencies intersect pathVariables).isEmpty
}
}
+
+object ShortestPathExpression {
+ def noDuplicates(relationships: Iterable[Relationship]): Boolean = {
+ relationships.map(_.getId).toSet.size == relationships.size
+ }
+}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ShortestPathSPI.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ShortestPathSPI.scala
similarity index 80%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ShortestPathSPI.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ShortestPathSPI.scala
index b442302cd354c..7a2f0a032f664 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ShortestPathSPI.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ShortestPathSPI.scala
@@ -17,23 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
+import org.neo4j.cypher.internal.runtime.{Expander, KernelPredicate}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.{Node, Path, PropertyContainer}
-
-trait KernelPredicate[T] {
- def test(obj: T): Boolean
-}
-
-trait Expander {
- def addRelationshipFilter(newFilter: KernelPredicate[PropertyContainer]): Expander
- def addNodeFilter(newFilter: KernelPredicate[PropertyContainer]): Expander
- def nodeFilters: Seq[KernelPredicate[PropertyContainer]]
- def relFilters: Seq[KernelPredicate[PropertyContainer]]
-}
-
abstract class BaseExpander() extends Expander {
def addRelationshipFilter(newFilter: KernelPredicate[PropertyContainer]): Expander =
newWith(newRelFilters = relFilters :+ newFilter)
@@ -66,9 +55,9 @@ case class TypeAndDirectionExpander(nodeFilters: Seq[KernelPredicate[PropertyCon
copy(typDirs = typDirs :+ typ -> dir)
}
-object Expander {
- def typeDirExpander(): TypeAndDirectionExpander = TypeAndDirectionExpander(Seq.empty, Seq.empty, Seq.empty)
- def expanderForAllTypes(dir: SemanticDirection): Expander = OnlyDirectionExpander(Seq.empty, Seq.empty, dir)
+object Expanders {
+ def typeDir(): TypeAndDirectionExpander = TypeAndDirectionExpander(Seq.empty, Seq.empty, Seq.empty)
+ def allTypes(dir: SemanticDirection): Expander = OnlyDirectionExpander(Seq.empty, Seq.empty, dir)
}
trait ShortestPathAlgo {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SimpleCase.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SimpleCase.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SimpleCase.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SimpleCase.scala
index e8bbb388b1043..d1ddc9101ca46 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SimpleCase.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SimpleCase.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
case class SimpleCase(expression: Expression, alternatives: Seq[(Expression, Expression)], default: Option[Expression])
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SizeFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SizeFunction.scala
similarity index 83%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SizeFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SizeFunction.scala
index b1d6c5150fe6d..e09b845330b50 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SizeFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SizeFunction.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{TextValue, Values}
import org.neo4j.values.virtual.PathValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Stdev.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Stdev.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Stdev.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Stdev.scala
index 44d7027c77bd0..fc7ebaba6029f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Stdev.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Stdev.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.StdevFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.StdevFunction
import org.neo4j.cypher.internal.util.v3_4.symbols._
case class Stdev(anInner: Expression) extends AggregationWithInnerExpression(anInner) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/StringFunctions.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/StringFunctions.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/StringFunctions.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/StringFunctions.scala
index f3427f5e507bc..885165e50ae33 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/StringFunctions.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/StringFunctions.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, ParameterWrongTypeException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.values._
import org.neo4j.values.storable._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Subtract.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Subtract.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Subtract.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Subtract.scala
index fd7be23759ec4..6e63a1be9bf19 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Subtract.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Subtract.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.values.storable.NumberValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Sum.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Sum.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Sum.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Sum.scala
index 5a5159e161b30..42eb289ff7f0d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Sum.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Sum.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.SumFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.SumFunction
import org.neo4j.cypher.internal.util.v3_4.symbols._
case class Sum(anInner: Expression) extends AggregationWithInnerExpression(anInner) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/TimestampFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/TimestampFunction.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/TimestampFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/TimestampFunction.scala
index 5eb2e8c860193..79ad0e3ea01af 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/TimestampFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/TimestampFunction.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToBooleanFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToBooleanFunction.scala
similarity index 87%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToBooleanFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToBooleanFunction.scala
index ab9e04498bced..846b2f4137c0e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToBooleanFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToBooleanFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.ParameterWrongTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{BooleanValue, TextValue, Values}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToFloatFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToFloatFunction.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToFloatFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToFloatFunction.scala
index e59bd2aa38455..5ec8913cc213e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToFloatFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToFloatFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.ParameterWrongTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values._
import org.neo4j.values.storable.{DoubleValue, NumberValue, TextValue, Values}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToIntegerFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToIntegerFunction.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToIntegerFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToIntegerFunction.scala
index 57cb86945d81a..90889455c2374 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToIntegerFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToIntegerFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, ParameterWrongTypeException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values._
import org.neo4j.values.storable.{LongValue, NumberValue, TextValue, Values}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Variable.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Variable.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Variable.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Variable.scala
index e3c793d92de11..79f73f34dc1a8 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/Variable.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/Variable.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.graphdb.NotFoundException
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/indexQuery.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/indexQuery.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/indexQuery.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/indexQuery.scala
index c86ba81f76486..a6a9d00bed6b9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/indexQuery.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/indexQuery.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InternalException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, InequalitySeekRangeExpression, PrefixSeekRangeExpression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsList
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.{GraphElementPropertyFunctions, makeValueNeoSafe}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, InequalitySeekRangeExpression, PrefixSeekRangeExpression}
+import org.neo4j.cypher.internal.runtime.interpreted.IsList
+import org.neo4j.cypher.internal.runtime.interpreted.{GraphElementPropertyFunctions, makeValueNeoSafe}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.frontend.v3_4.helpers.SeqCombiner.combine
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.graphdb.Node
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Ands.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Ands.scala
similarity index 90%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Ands.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Ands.scala
index 0f6941690abe7..611592286b016 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Ands.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Ands.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
+package org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, Property, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, Property, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
case class Ands(predicates: NonEmptyList[Predicate]) extends CompositeBooleanPredicate {
override def shouldExitWhen = false
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Checker.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Checker.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Checker.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Checker.scala
index 64b57fabfb9bf..ec3b3dfa2b926 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Checker.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Checker.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
+package org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
import java.util
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/ComparablePredicate.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/ComparablePredicate.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/ComparablePredicate.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/ComparablePredicate.scala
index 4d9aacc9a675e..1c0d21ce68b81 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/ComparablePredicate.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/ComparablePredicate.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
+package org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, Literal, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, Literal, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValues
import org.neo4j.values.storable._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/ConstantCachedIn.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/ConstantCachedIn.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/ConstantCachedIn.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/ConstantCachedIn.scala
index 5a9a90fcf9843..a2009c6fe09f4 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/ConstantCachedIn.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/ConstantCachedIn.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
+package org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Ors.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Ors.scala
similarity index 83%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Ors.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Ors.scala
index a81266aff8282..37d45dcde48eb 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Ors.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Ors.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
+package org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
case class Ors(predicates: NonEmptyList[Predicate]) extends CompositeBooleanPredicate {
def shouldExitWhen = true
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Predicate.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Predicate.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Predicate.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Predicate.scala
index 32105d1c8b2e6..2a986387e9e3d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/Predicate.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/Predicate.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
+package org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, NonEmptyList}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, Literal}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{CastSupport, IsList, IsMap}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, Literal}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.runtime.interpreted.{CastSupport, IsList, IsMap}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.storable.{BooleanValue, TextValue, Value, Values}
import org.neo4j.values.virtual.{EdgeValue, NodeValue}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/groupInequalityPredicatesForLegacy.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/groupInequalityPredicatesForLegacy.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/groupInequalityPredicatesForLegacy.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/groupInequalityPredicatesForLegacy.scala
index 349038751c0bf..86950467d9def 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/groupInequalityPredicatesForLegacy.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/groupInequalityPredicatesForLegacy.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
+package org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Property, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Property, Variable}
// This transforms
//
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/values/KeyToken.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/values/KeyToken.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/values/KeyToken.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/values/KeyToken.scala
index 18e71d232cf8f..332b862863e68 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/values/KeyToken.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/values/KeyToken.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values
+package org.neo4j.cypher.internal.runtime.interpreted.commands.values
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
/*
KeyTokens are things with name and id. KeyTokens makes it possible to look up the id
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/values/TokenType.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/values/TokenType.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/values/TokenType.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/values/TokenType.scala
index 0f215a9ac6cad..2d876e785a3ed 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/values/TokenType.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/values/TokenType.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values
+package org.neo4j.cypher.internal.runtime.interpreted.commands.values
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.runtime.QueryContext
object TokenType extends Enumeration {
case object Label extends TokenType {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/makeValueNeoSafe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/makeValueNeoSafe.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/makeValueNeoSafe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/makeValueNeoSafe.scala
index 3f1b495e014bd..0521781c5a26d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/makeValueNeoSafe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/makeValueNeoSafe.scala
@@ -17,10 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{CastSupport, IsList, ListSupport}
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{ArrayValue, Value, Values}
import org.neo4j.values.virtual.ListValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/AllNodesScanPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AllNodesScanPipe.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/AllNodesScanPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AllNodesScanPipe.scala
index fb837613af0c5..3a1e3146bd2d0 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/AllNodesScanPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AllNodesScanPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ApplyPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ApplyPipe.scala
similarity index 90%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ApplyPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ApplyPipe.scala
index c07a685ffc9ee..d6ca1e7ac79b9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ApplyPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ApplyPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class ApplyPipe(source: Pipe, inner: Pipe)(val id: LogicalPlanId = LogicalPlanId.DEFAULT) extends PipeWithSource(source) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ArgumentPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ArgumentPipe.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ArgumentPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ArgumentPipe.scala
index e7bf40786d9d1..ae70d87c14c44 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ArgumentPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ArgumentPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class ArgumentPipe()(val id: LogicalPlanId = LogicalPlanId.DEFAULT) extends Pipe {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/AssertSameNodePipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AssertSameNodePipe.scala
similarity index 90%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/AssertSameNodePipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AssertSameNodePipe.scala
index 32ba2744fac9b..c83105fd7ad56 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/AssertSameNodePipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AssertSameNodePipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.MergeConstraintConflictException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.CastSupport
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.CastSupport
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.virtual.NodeValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CachingExpandInto.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CachingExpandInto.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CachingExpandInto.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CachingExpandInto.scala
index 96ed504164e96..c5cce050a278b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CachingExpandInto.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CachingExpandInto.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.helpers.collection.PrefetchingIterator
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CartesianProductPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CartesianProductPipe.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CartesianProductPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CartesianProductPipe.scala
index 567e640d0f416..06bef5d11a047 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CartesianProductPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CartesianProductPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class CartesianProductPipe(lhs: Pipe, rhs: Pipe)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ConditionalApplyPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ConditionalApplyPipe.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ConditionalApplyPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ConditionalApplyPipe.scala
index 970c11d9ce007..52c35b4235b4b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ConditionalApplyPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ConditionalApplyPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ConstraintOperationPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ConstraintOperationPipe.scala
similarity index 85%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ConstraintOperationPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ConstraintOperationPipe.scala
index 52beefac3f2c1..640b115e2513d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ConstraintOperationPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ConstraintOperationPipe.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
class ConstraintOperationPipe(op: PropertyConstraintOperation, keyToken: KeyToken, propertyKey: KeyToken)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CreateNodePipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CreateNodePipe.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CreateNodePipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CreateNodePipe.scala
index 0a859c329c8ab..db899cf6568d9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CreateNodePipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CreateNodePipe.scala
@@ -17,17 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.util.function.BiConsumer
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InvalidSemanticsException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.{GraphElementPropertyFunctions, makeValueNeoSafe}
+import org.neo4j.cypher.internal.runtime.interpreted._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.kernel.impl.util.ValueUtils
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CreateRelationshipPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CreateRelationshipPipe.scala
similarity index 90%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CreateRelationshipPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CreateRelationshipPipe.scala
index 1e31972f2bb62..2efe9bfe13b10 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/CreateRelationshipPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/CreateRelationshipPipe.scala
@@ -17,17 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.util.function.BiConsumer
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InternalException, InvalidSemanticsException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.{GraphElementPropertyFunctions, makeValueNeoSafe}
+import org.neo4j.cypher.internal.runtime.interpreted._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.kernel.impl.util.ValueUtils
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DeletePipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DeletePipe.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DeletePipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DeletePipe.scala
index 31b221b82938d..a161728ae9124 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DeletePipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DeletePipe.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.GraphElementPropertyFunctions
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.GraphElementPropertyFunctions
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.{EdgeValue, NodeValue, PathValue}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DirectedRelationshipByIdSeekPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DirectedRelationshipByIdSeekPipe.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DirectedRelationshipByIdSeekPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DirectedRelationshipByIdSeekPipe.scala
index 93373d1f00c46..d7da3771e4987 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DirectedRelationshipByIdSeekPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DirectedRelationshipByIdSeekPipe.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.lang
import java.util.function
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DistinctPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DistinctPipe.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DistinctPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DistinctPipe.scala
index 8450f5e600a65..1475b83e1cf3f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DistinctPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DistinctPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, MapExecutionContext}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, MapExecutionContext}
+import org.neo4j.cypher.internal.util.v3_4.Eagerly
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerAggregationPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerAggregationPipe.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerAggregationPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerAggregationPipe.scala
index 6c8edb7258e67..178736ca6ac3b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerAggregationPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerAggregationPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{AggregationExpression, Expression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.AggregationFunction
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, MutableMaps}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{AggregationExpression, Expression}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.AggregationFunction
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.{ListValue, MapValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerPipe.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerPipe.scala
index 87efb89d65a91..4168b529aeab9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class EagerPipe(src: Pipe)(val id: LogicalPlanId = LogicalPlanId.DEFAULT)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EmptyResultPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EmptyResultPipe.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EmptyResultPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EmptyResultPipe.scala
index dcb0c88beeb4a..be35ff0c1f314 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EmptyResultPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EmptyResultPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class EmptyResultPipe(source: Pipe)(val id: LogicalPlanId = LogicalPlanId.DEFAULT) extends PipeWithSource(source) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EntityProducer.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EntityProducer.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EntityProducer.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EntityProducer.scala
index fd021dd33121f..38feca693afcc 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EntityProducer.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EntityProducer.scala
@@ -17,11 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compiler.v3_4._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.Argument
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.planDescription.Argument
import org.neo4j.graphdb.PropertyContainer
trait EntityProducer[T <: PropertyContainer] extends ((ExecutionContext, QueryState) => Iterator[T]) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ErrorPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ErrorPipe.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ErrorPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ErrorPipe.scala
index 8137f92f07b5c..4bbba1dcbc797 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ErrorPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ErrorPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class ErrorPipe(source: Pipe, exception: Exception)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandAllPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandAllPipe.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandAllPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandAllPipe.scala
index a0439bb6a8fb7..2230af5c5a521 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandAllPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandAllPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.Relationship
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandIntoPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandIntoPipe.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandIntoPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandIntoPipe.scala
index 09010a28366e7..c0e3f7ea06058 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandIntoPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandIntoPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExternalCSVResource.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExternalCSVResource.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExternalCSVResource.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExternalCSVResource.scala
index 6ff1a3373c60b..0185f42003aa9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExternalCSVResource.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExternalCSVResource.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.net.URL
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/FilterPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FilterPipe.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/FilterPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FilterPipe.scala
index 49c75ff055436..670bb6a096426 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/FilterPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FilterPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class FilterPipe(source: Pipe, predicate: Predicate)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ForeachPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ForeachPipe.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ForeachPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ForeachPipe.scala
index 9aefe2f86b820..e785412ec8975 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ForeachPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ForeachPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.ListSupport
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import scala.collection.JavaConverters._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/FullPruningVarLengthExpandPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FullPruningVarLengthExpandPipe.scala
similarity index 98%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/FullPruningVarLengthExpandPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FullPruningVarLengthExpandPipe.scala
index f0f1683e606f8..97468ae40cdbd 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/FullPruningVarLengthExpandPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FullPruningVarLengthExpandPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.collection.primitive.{Primitive, PrimitiveLongObjectMap}
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/IdSeekIterator.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/IdSeekIterator.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/IdSeekIterator.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/IdSeekIterator.scala
index 6921191d30d8b..0b465304c5fec 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/IdSeekIterator.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/IdSeekIterator.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.NumericHelper
-import org.neo4j.cypher.internal.spi.v3_4.Operations
+import org.neo4j.cypher.internal.runtime.Operations
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.NumericHelper
import org.neo4j.graphdb.{Node, PropertyContainer, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/IndexOperationPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/IndexOperationPipe.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/IndexOperationPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/IndexOperationPipe.scala
index b220b740bd342..4523c23a1667e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/IndexOperationPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/IndexOperationPipe.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
import org.neo4j.cypher.internal.util.v3_4.SyntaxException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{CreateIndex, DropIndex, IndexOperation}
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{CreateIndex, DropIndex, IndexOperation}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class IndexOperationPipe(indexOp: IndexOperation)(val id: LogicalPlanId = LogicalPlanId.DEFAULT) extends Pipe {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/IndexSeekMode.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/IndexSeekMode.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/IndexSeekMode.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/IndexSeekMode.scala
index 37e8987a0d9d6..45adcc269f15b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/IndexSeekMode.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/IndexSeekMode.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.IndexSeekMode.{MultipleValueQuery, assertSingleValue}
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.IndexSeekMode.{MultipleValueQuery, assertSingleValue}
import org.neo4j.cypher.internal.v3_4.logical.plans.{QueryExpression, RangeQueryExpression}
import org.neo4j.graphdb.Node
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyLabel.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyLabel.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyLabel.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyLabel.scala
index 5a5795c275899..28ff97c045df0 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyLabel.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyLabel.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.util.v3_4.LabelId
import org.neo4j.cypher.internal.v3_4.expressions.LabelName
case class LazyLabel(name: String) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyPropertyKey.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyPropertyKey.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyPropertyKey.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyPropertyKey.scala
index 7922316e01fe2..f10b28a025598 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyPropertyKey.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyPropertyKey.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
-import org.neo4j.cypher.internal.frontend.v3_4.PropertyKeyId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.util.v3_4.PropertyKeyId
import org.neo4j.cypher.internal.v3_4.expressions.PropertyKeyName
case class LazyPropertyKey(name: String) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyType.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyType.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyType.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyType.scala
index fe170be6b41b3..b1b1d8e98fd2e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyType.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyType.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.v3_4.expressions.RelTypeName
case class LazyType(name: String) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyTypes.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyTypes.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyTypes.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyTypes.scala
index f05e7cb654ad5..934fae920f43c 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyTypes.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyTypes.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.v3_4.expressions.RelTypeName
final class LazyTypes(val names: Array[String]) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSelectOrSemiApplyPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSelectOrSemiApplyPipe.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSelectOrSemiApplyPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSelectOrSemiApplyPipe.scala
index 6e23d8ce0cf1f..a1866f1039fdd 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSelectOrSemiApplyPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSelectOrSemiApplyPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSemiApplyPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSemiApplyPipe.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSemiApplyPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSemiApplyPipe.scala
index 67d833815063f..085c264c7ba95 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSemiApplyPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSemiApplyPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LimitPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LimitPipe.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LimitPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LimitPipe.scala
index 5e04b41824ee6..7697083bff3f9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LimitPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LimitPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, NumericHelper}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, NumericHelper}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class LimitPipe(source: Pipe, exp: Expression)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LoadCSVPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LoadCSVPipe.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LoadCSVPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LoadCSVPipe.scala
index ec7d95ff738bc..5fb2eefeab5f1 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LoadCSVPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LoadCSVPipe.scala
@@ -17,17 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.net.URL
import org.neo4j.cypher.internal.util.v3_4.LoadExternalResourceException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ArrayBackedMap
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.ir.v3_4.{CSVFormat, HasHeaders, NoHeaders}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.{ArrayBackedMap, QueryContext}
import org.neo4j.values._
import org.neo4j.values.storable.{TextValue, Value, Values}
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LockNodesPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LockNodesPipe.scala
similarity index 90%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LockNodesPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LockNodesPipe.scala
index 0a0ebf935be43..730a091cf5427 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LockNodesPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LockNodesPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.virtual.NodeValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NestedPipeExpression.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NestedPipeExpression.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NestedPipeExpression.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NestedPipeExpression.scala
index 90a99a7de9287..fd406025498c3 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NestedPipeExpression.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NestedPipeExpression.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.InputPosition
import org.neo4j.cypher.internal.frontend.v3_4.SemanticCheck
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByIdSeekPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByIdSeekPipe.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByIdSeekPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByIdSeekPipe.scala
index 6f9096b480d19..b51ef519ccd91 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByIdSeekPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByIdSeekPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsList
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.IsList
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.virtual.{ListValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByLabelScanPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByLabelScanPipe.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByLabelScanPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByLabelScanPipe.scala
index 327255e3b5c95..1db07be485d15 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByLabelScanPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByLabelScanPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeCountFromCountStorePipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeCountFromCountStorePipe.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeCountFromCountStorePipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeCountFromCountStorePipe.scala
index 48086237f5c5d..db3ccfbb876bb 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeCountFromCountStorePipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeCountFromCountStorePipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.frontend.v3_4.NameId
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.util.v3_4.NameId
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeHashJoinPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeHashJoinPipe.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeHashJoinPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeHashJoinPipe.scala
index 3ac8ad928f65f..13ff30d0f4e72 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeHashJoinPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeHashJoinPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.NodeValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexContainsScanPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexContainsScanPipe.scala
similarity index 90%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexContainsScanPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexContainsScanPipe.scala
index 1819fbfda27e3..2af841f28913b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexContainsScanPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexContainsScanPipe.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelToken, PropertyKeyToken}
import org.neo4j.graphdb.Node
import org.neo4j.kernel.impl.util.ValueUtils
import org.neo4j.values.storable.{TextValue, Values}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexScanPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexScanPipe.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexScanPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexScanPipe.scala
index 8f8a074373701..0c6d49fe42ed7 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexScanPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexScanPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compiler.v3_4._
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexSeekPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexSeekPipe.scala
similarity index 81%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexSeekPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexSeekPipe.scala
index 7b563d0436077..4410f975af048 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexSeekPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexSeekPipe.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.indexQuery
-import org.neo4j.cypher.internal.compiler.v3_4._
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.indexQuery
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlanId, QueryExpression}
import org.neo4j.kernel.impl.util.ValueUtils.fromNodeProxy
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeOuterHashJoinPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeOuterHashJoinPipe.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeOuterHashJoinPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeOuterHashJoinPipe.scala
index ec9a4d5939254..1186e505f955a 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeOuterHashJoinPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeOuterHashJoinPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandAllPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandAllPipe.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandAllPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandAllPipe.scala
index 9d4ec2ec40543..bf3474072c95d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandAllPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandAllPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandIntoPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandIntoPipe.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandIntoPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandIntoPipe.scala
index a4da8bc9b4eda..926e705a1ff76 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandIntoPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandIntoPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalPipe.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalPipe.scala
index 7ed70d283325e..e494fbf2c1490 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/Pipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/Pipe.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/Pipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/Pipe.scala
index 6f8028165403c..350d51fe85006 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/Pipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/Pipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
/**
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/PipeDecorator.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PipeDecorator.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/PipeDecorator.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PipeDecorator.scala
index 27ca2a1b94a07..e640ebd180bc2 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/PipeDecorator.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PipeDecorator.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
/*
A PipeDecorator is used to instrument calls between Pipes, and between a Pipe and the graph
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProcedureCallPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProcedureCallPipe.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProcedureCallPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProcedureCallPipe.scala
index bd2ccab59877a..e7624112bf7bd 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProcedureCallPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProcedureCallPipe.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.ProcedureCallMode
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ValueConversion
+import org.neo4j.cypher.internal.runtime.ProcedureCallMode
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.ValueConversion
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.logical.plans.ProcedureSignature
import org.neo4j.cypher.internal.util.v3_4.symbols.CypherType
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProduceResultsPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProduceResultsPipe.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProduceResultsPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProduceResultsPipe.scala
index 605c183d3eb59..618b882a1db3c 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProduceResultsPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProduceResultsPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, MutableMaps}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class ProduceResultsPipe(source: Pipe, columns: Seq[String])
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProjectEndpointsPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProjectEndpointsPipe.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProjectEndpointsPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProjectEndpointsPipe.scala
index 4d3764418b250..56bfa174236d3 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProjectEndpointsPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProjectEndpointsPipe.scala
@@ -17,11 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, ListSupport}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.virtual.VirtualValues.reverse
import org.neo4j.values.virtual.{EdgeValue, ListValue, NodeValue}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProjectionPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProjectionPipe.scala
similarity index 85%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProjectionPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProjectionPipe.scala
index 11eeebf5ca742..7dba003e636c5 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProjectionPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProjectionPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class ProjectionPipe(source: Pipe, expressions: Map[String, Expression])
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/PruningVarLengthExpandPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PruningVarLengthExpandPipe.scala
similarity index 98%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/PruningVarLengthExpandPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PruningVarLengthExpandPipe.scala
index 395942d9318ca..07a1b4368a99a 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/PruningVarLengthExpandPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PruningVarLengthExpandPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.collection.primitive.{Primitive, PrimitiveLongObjectMap}
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/QueryState.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/QueryState.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/QueryState.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/QueryState.scala
index e2a0cbb437656..7df89d21d6d88 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/QueryState.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/QueryState.scala
@@ -17,17 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.util.UUID
import org.neo4j.collection.primitive.PrimitiveLongSet
-import org.neo4j.cypher.internal.QueryStatistics
+import org.neo4j.cypher.internal.runtime.{QueryContext, QueryStatistics}
import org.neo4j.cypher.internal.util.v3_4.ParameterNotFoundException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.PathValueBuilder
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{InCheckContainer, SingleThreadedLRUCache}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.PathValueBuilder
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{InCheckContainer, SingleThreadedLRUCache}
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.MapValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RelationshipCountFromCountStorePipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RelationshipCountFromCountStorePipe.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RelationshipCountFromCountStorePipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RelationshipCountFromCountStorePipe.scala
index e3f69ac9b2568..65ed181cf4c9c 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RelationshipCountFromCountStorePipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RelationshipCountFromCountStorePipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.frontend.v3_4.NameId
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.util.v3_4.NameId
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RemoveLabelsPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RemoveLabelsPipe.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RemoveLabelsPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RemoveLabelsPipe.scala
index a98587022ca41..35f5f7d66cc34 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RemoveLabelsPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RemoveLabelsPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.CastSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.GraphElementPropertyFunctions
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.CastSupport
+import org.neo4j.cypher.internal.runtime.interpreted.GraphElementPropertyFunctions
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.NodeValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RollUpApplyPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RollUpApplyPipe.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RollUpApplyPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RollUpApplyPipe.scala
index 70a36086337af..742cc0dffbbfd 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RollUpApplyPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RollUpApplyPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values.NO_VALUE
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SeekRhs.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SeekRhs.scala
new file mode 100644
index 0000000000000..3f3de7850855d
--- /dev/null
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SeekRhs.scala
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2002-2017 "Neo Technology,"
+ * Network Engine for Objects in Lund AB [http://neotechnology.com]
+ *
+ * This file is part of Neo4j.
+ *
+ * Neo4j is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
+
+import org.neo4j.cypher.internal.v3_4.logical.plans.{ManyQueryExpression, QueryExpression, SingleQueryExpression}
+import org.neo4j.cypher.internal.v3_4.expressions._
+
+object Seek {
+ def unapply(v: Any) = v match {
+ case Equals(lhs, rhs) => Some(lhs -> SingleSeekRhs(rhs))
+ case In(lhs, rhs) => Some(lhs -> MultiSeekRhs(rhs))
+ case _ => None
+ }
+}
+
+trait SeekRhs {
+ def expr: Expression
+ def sizeHint: Option[Int]
+
+ def map(f: Expression => Expression): SeekRhs
+
+ def asQueryExpression: QueryExpression[Expression]
+}
+
+case class SingleSeekRhs(expr: Expression) extends SeekRhs {
+ def sizeHint = None
+
+ override def map(f: Expression => Expression): SingleSeekRhs = copy(f(expr))
+
+ def asQueryExpression: SingleQueryExpression[Expression] =
+ SingleQueryExpression(expr)
+}
+
+case class MultiSeekRhs(expr: Expression) extends SeekRhs {
+ val sizeHint = expr match {
+ case coll: ListLiteral => Some(coll.expressions.size)
+ case _ => None
+ }
+
+ override def map(f: Expression => Expression) = expr match {
+ case coll: ListLiteral => copy(expr = coll.map(f))
+ case _ => copy(expr = f(expr))
+ }
+
+ def asQueryExpression: ManyQueryExpression[Expression] =
+ ManyQueryExpression(expr)
+}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SelectOrSemiApplyPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SelectOrSemiApplyPipe.scala
similarity index 87%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SelectOrSemiApplyPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SelectOrSemiApplyPipe.scala
index b0732c275d8ee..b30a550a26151 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SelectOrSemiApplyPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SelectOrSemiApplyPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class SelectOrSemiApplyPipe(source: Pipe, inner: Pipe, predicate: Predicate, negated: Boolean)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SemiApplyPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SemiApplyPipe.scala
similarity index 90%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SemiApplyPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SemiApplyPipe.scala
index 6fa1e36098244..894a672b8c83b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SemiApplyPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SemiApplyPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class SemiApplyPipe(source: Pipe, inner: Pipe, negated: Boolean)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SetOperation.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SetOperation.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SetOperation.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SetOperation.scala
index 08bc441cd3b52..48c3ba4460869 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SetOperation.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SetOperation.scala
@@ -17,16 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.util.function.BiConsumer
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InvalidArgumentException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.{CastSupport, IsMap}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.makeValueNeoSafe
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.graphdb.{Node, PropertyContainer, Relationship}
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SetPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SetPipe.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SetPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SetPipe.scala
index 0da3bf734f1e5..8ea3a2d7db51c 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SetPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SetPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class SetPipe(src: Pipe, setOperation: SetOperation)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ShortestPathPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ShortestPathPipe.scala
similarity index 85%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ShortestPathPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ShortestPathPipe.scala
index f4979c0de855d..7fc29a3adca85 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ShortestPathPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ShortestPathPipe.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.ShortestPath
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.ShortestPathExpression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.ShortestPath
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.ShortestPathExpression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.{ListValue, PathValue, VirtualValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SkipPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SkipPipe.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SkipPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SkipPipe.scala
index 2ee66d46d5106..5017c03194ea6 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SkipPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SkipPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, NumericHelper}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, NumericHelper}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class SkipPipe(source: Pipe, exp: Expression)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SortPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SortPipe.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SortPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SortPipe.scala
index 6b3a1fa7f0163..c7e16611e84cd 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SortPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SortPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.util.Comparator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.{AnyValue, AnyValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TopPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TopPipe.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TopPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TopPipe.scala
index 063948bf2e671..e194a283c17ff 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TopPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TopPipe.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.util.Comparator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.NumberValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TriadicSelectionPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TriadicSelectionPipe.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TriadicSelectionPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TriadicSelectionPipe.scala
index 1eeaaf8636b80..0fbcc93110796 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TriadicSelectionPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TriadicSelectionPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.collection.primitive.{Primitive, PrimitiveLongSet}
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.NodeValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UndirectedRelationshipByIdSeekPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UndirectedRelationshipByIdSeekPipe.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UndirectedRelationshipByIdSeekPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UndirectedRelationshipByIdSeekPipe.scala
index e8b8bba1bed25..49a7040127fa7 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UndirectedRelationshipByIdSeekPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UndirectedRelationshipByIdSeekPipe.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import java.lang
import java.util.function
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnionIterator.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnionIterator.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnionIterator.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnionIterator.scala
index bc0401c1e15cf..42f616a8518af 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnionIterator.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnionIterator.scala
@@ -17,10 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
class UnionIterator(in: Seq[Pipe], state: QueryState) extends Iterator[ExecutionContext] {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnionPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnionPipe.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnionPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnionPipe.scala
index 76bf57a0e05df..f42e104c2fa8e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnionPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnionPipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class UnionPipe(l: Pipe, r: Pipe)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnwindPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnwindPipe.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnwindPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnwindPipe.scala
index 29f7d0097cf7f..85e436eb6051c 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnwindPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnwindPipe.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.ListSupport
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ValueHashJoinPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ValueHashJoinPipe.scala
similarity index 90%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ValueHashJoinPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ValueHashJoinPipe.scala
index b0a030b79b764..77104aad9e38b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ValueHashJoinPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ValueHashJoinPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/VarLengthExpandPipe.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/VarLengthExpandPipe.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/VarLengthExpandPipe.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/VarLengthExpandPipe.scala
index af00c78b9b2aa..6ef81cf2ae2cc 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/VarLengthExpandPipe.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/VarLengthExpandPipe.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AggregationFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AggregationFunction.scala
similarity index 84%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AggregationFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AggregationFunction.scala
index 5c97dc31102be..540b338b81b21 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AggregationFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AggregationFunction.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
/**
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AvgFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AvgFunction.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AvgFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AvgFunction.scala
index ce2f3f3f0bf01..67383c373faf3 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AvgFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AvgFunction.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
import org.neo4j.cypher.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.TypeSafeMathSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.TypeSafeMathSupport
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.storable._
/**
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CollectFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CollectFunction.scala
similarity index 80%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CollectFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CollectFunction.scala
index f8513693b9259..52994920a1289 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CollectFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CollectFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.VirtualValues
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CountFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CountFunction.scala
similarity index 78%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CountFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CountFunction.scala
index d409a72bf800c..30879ce893372 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CountFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CountFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CountStarFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CountStarFunction.scala
similarity index 82%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CountStarFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CountStarFunction.scala
index e5fb80698a30f..96f65fc317e98 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CountStarFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CountStarFunction.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/DistinctFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/DistinctFunction.scala
similarity index 81%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/DistinctFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/DistinctFunction.scala
index 80f609087ff50..f631fa1ddc7d7 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/DistinctFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/DistinctFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
class DistinctFunction(value: Expression, inner: AggregationFunction) extends AggregationFunction {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/MaxFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/MaxFunction.scala
similarity index 85%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/MaxFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/MaxFunction.scala
index 52efd081402fd..24994a7c681e6 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/MaxFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/MaxFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.storable.Values
import org.neo4j.values.{AnyValue, AnyValues}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/NumericExpressionOnly.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/NumericExpressionOnly.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/NumericExpressionOnly.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/NumericExpressionOnly.scala
index 2bd5e40c9e714..4cddd65c2b095 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/NumericExpressionOnly.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/NumericExpressionOnly.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{NumberValue, Values}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/PercentileFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/PercentileFunction.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/PercentileFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/PercentileFunction.scala
index 7e27aa5805adc..711fda2cfa7d4 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/PercentileFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/PercentileFunction.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
import org.neo4j.cypher.internal.util.v3_4.InvalidArgumentException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, NumericHelper}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, NumericHelper}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/StdevFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/StdevFunction.scala
similarity index 86%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/StdevFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/StdevFunction.scala
index 72bb4d56fc714..136b78d0caa35 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/StdevFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/StdevFunction.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, NumericHelper}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, NumericHelper}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/SumFunction.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/SumFunction.scala
similarity index 75%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/SumFunction.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/SumFunction.scala
index f101225000069..1489bc6ea017e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/SumFunction.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/SumFunction.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.TypeSafeMathSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.TypeSafeMathSupport
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.AnyValue
class SumFunction(val value: Expression)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/GraphRelationship.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/GraphRelationship.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/GraphRelationship.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/GraphRelationship.scala
index d24ae2f46cdfa..dadf79ba4f29b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/GraphRelationship.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/GraphRelationship.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
import org.neo4j.values.virtual._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/History.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/History.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/History.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/History.scala
index 38ebf0e2af986..b05da6f6ee424 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/History.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/History.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.{EdgeValue, ListValue, NodeValue}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/MatchingContext.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/MatchingContext.scala
similarity index 85%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/MatchingContext.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/MatchingContext.scala
index 1eb262441545e..4c1a795099e26 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/MatchingContext.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/MatchingContext.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
import org.neo4j.cypher.internal.util.v3_4.symbols._
import scala.collection.immutable
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/MatchingPair.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/MatchingPair.scala
similarity index 91%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/MatchingPair.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/MatchingPair.scala
index 94ea73678c7b6..f91df4de9923b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/MatchingPair.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/MatchingPair.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.virtual.{EdgeValue, NodeValue}
import scala.collection.Map
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternElement.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternElement.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternElement.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternElement.scala
index 78d74f893bdf2..21f10c25a2cd4 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternElement.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternElement.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
abstract class PatternElement(val key: String) {
def traverse[T](shouldFollow: (PatternElement) => Boolean,
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternGraph.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternGraph.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternGraph.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternGraph.scala
index 4d5b3ec5a1e81..1d2fa4bfd5679 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternGraph.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternGraph.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
import org.neo4j.cypher.internal.util.v3_4.PatternException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{Pattern, RelatedTo}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.Pattern
case class PatternGraph(patternNodes: Map[String, PatternNode],
patternRels: Map[String, Seq[PatternRelationship]],
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternMatcher.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternMatcher.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternMatcher.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternMatcher.scala
index 8b2961449f549..d21fd204862d9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternMatcher.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternMatcher.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.values.virtual.{EdgeValue, NodeValue}
import scala.collection.Map
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternMatchingBuilder.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternMatchingBuilder.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternMatchingBuilder.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternMatchingBuilder.scala
index 0e8efe10430c1..7ea187a87222e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternMatchingBuilder.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternMatchingBuilder.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.{EdgeValue, NodeValue}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternNode.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternNode.scala
similarity index 88%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternNode.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternNode.scala
index e1c52adda6bfa..7ba56064f1f91 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternNode.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternNode.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
-
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.{KeyToken, UnresolvedProperty}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{RelatedTo, SingleNode}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
+
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.{KeyToken, UnresolvedProperty}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{RelatedTo, SingleNode}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.values.virtual.NodeValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternRelationship.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternRelationship.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternRelationship.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternRelationship.scala
index 9d519bd8a8c72..dffa96e2a1a0f 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternRelationship.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternRelationship.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{LazyTypes, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{LazyTypes, QueryState}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection.{BOTH, INCOMING, OUTGOING}
@@ -141,7 +141,7 @@ class VariableLengthPatternRelationship(pathName: String,
key -> CTList(CTRelationship)) ++ relIterable.map(_ -> CTList(CTRelationship)).toMap
override def getGraphRelationships(node: PatternNode, realNode: NodeValue, state: QueryState, f: => ExecutionContext): Seq[GraphRelationship] = {
- val matchedPaths: Iterator[Path] = state.query.variableLengthPathExpand(node, realNode.id(), minHops, maxHops, getDirection(node), relType)
+ val matchedPaths: Iterator[Path] = state.query.variableLengthPathExpand(realNode.id(), minHops, maxHops, getDirection(node), relType)
val filteredPaths = if (properties.isEmpty) {
matchedPaths
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RelationshipSupport.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/TraversalMatcher.scala
similarity index 64%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RelationshipSupport.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/TraversalMatcher.scala
index 21667e9d721c3..268b50657e9cd 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RelationshipSupport.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/TraversalMatcher.scala
@@ -17,17 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
-import org.neo4j.graphdb.Relationship
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.planDescription.Argument
+import org.neo4j.graphdb.Path
-import scala.annotation.tailrec
-
-object RelationshipSupport {
- @tailrec
- def areRelationshipsUnique(relationships: List[Relationship]): Boolean = relationships match {
- case List() => true
- case head :: Nil => true
- case head :: tail => !tail.contains(head) && areRelationshipsUnique(tail)
- }
+trait TraversalMatcher {
+ def findMatchingPaths(state: QueryState, context: ExecutionContext): Iterator[Path]
+ def arguments: Seq[Argument]
}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/symbols/SymbolTable.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/symbols/SymbolTable.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/symbols/SymbolTable.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/symbols/SymbolTable.scala
index dc7ced7e2c30b..e987db011175a 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/symbols/SymbolTable.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/internal/runtime/interpreted/symbols/SymbolTable.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols
+package org.neo4j.cypher.internal.runtime.interpreted.symbols
import org.neo4j.cypher.internal.util.v3_4.{CypherException, CypherTypeException, SyntaxException}
import org.neo4j.cypher.internal.util.v3_4.symbols._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/HardcodedGraphStatistics.scala b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/package.scala
similarity index 74%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/HardcodedGraphStatistics.scala
rename to community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/package.scala
index dcd6ef016865b..45891a8476d4e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/HardcodedGraphStatistics.scala
+++ b/community/cypher/interpreted-runtime/src/main/scala/org/neo4j/cypher/package.scala
@@ -17,9 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j
-//This class should live here, but until we have to touch
-//disk, let's have it in the compiler. Convenient.
-case object HardcodedGraphStatistics
- extends org.neo4j.cypher.internal.compiler.v3_4.HardcodedGraphStatisticsValues
+package object cypher {
+ type ExceptionHandler = Throwable => Unit
+
+ object ExceptionHandler {
+ object default extends ExceptionHandler {
+ def apply(v: Throwable): Unit = {}
+ }
+ }
+}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/CSVResourcesTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/CSVResourcesTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/CSVResourcesTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/CSVResourcesTest.scala
index b6f4cb87a2a50..1b8e541187eaa 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/CSVResourcesTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/CSVResourcesTest.scala
@@ -17,15 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import java.net.URL
import org.apache.commons.lang3.SystemUtils
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.TaskCloser
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.CreateTempFileTestSupport
+import org.neo4j.cypher.internal.runtime.CreateTempFileTestSupport
+import org.neo4j.cypher.internal.util.v3_4.TaskCloser
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.io.fs.FileUtils
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/CastSupportTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/CastSupportTest.scala
similarity index 72%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/CastSupportTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/CastSupportTest.scala
index 390876eb9738c..70be36419c0fe 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/CastSupportTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/CastSupportTest.scala
@@ -17,12 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.helpers
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.CastSupport
-import org.neo4j.cypher.internal.compiler.v3_4.helpers
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class CastSupportTest extends CypherFunSuite {
@@ -35,30 +32,30 @@ class CastSupportTest extends CypherFunSuite {
test("siftComplexTest") {
val given = Seq[Any](1, 2, List("a"), 3, "b", 42, List("z"))
- val then = runtime.helpers.CastSupport.sift[List[String]](given)
+ val then = CastSupport.sift[List[String]](given)
then should equal(Seq(List("a"), List("z")))
}
test("downcastPfMatchTest") {
val given: Any = Seq(1)
- val fun: PartialFunction[Any, Seq[Int]] = runtime.helpers.CastSupport.erasureCast[Seq[Int]]
+ val fun: PartialFunction[Any, Seq[Int]] = CastSupport.erasureCast[Seq[Int]]
val then = fun(given)
then should equal(Seq(1))
}
test("downcastPfMismatchTest") {
val given: Any = "Hallo"
- val fun: PartialFunction[Any, Seq[Long]] = runtime.helpers.CastSupport.erasureCast[Seq[Long]]
+ val fun: PartialFunction[Any, Seq[Long]] = CastSupport.erasureCast[Seq[Long]]
fun.isDefinedAt(given) should equal(false)
}
test("downcastAppMatchTest") {
val given: Any = 1
- runtime.helpers.CastSupport.castOrFail[java.lang.Integer](given) should equal(1)
+ CastSupport.castOrFail[java.lang.Integer](given) should equal(1)
}
test("downcastAppMismatchTest") {
val given: Any = Seq(1)
- intercept[CypherTypeException](runtime.helpers.CastSupport.castOrFail[Int](given))
+ intercept[CypherTypeException](CastSupport.castOrFail[Int](given))
}
}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/GraphElementPropertyFunctionsTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/GraphElementPropertyFunctionsTest.scala
similarity index 97%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/GraphElementPropertyFunctionsTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/GraphElementPropertyFunctionsTest.scala
index 31ded89ea7c5c..ed5e3516260c1 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/GraphElementPropertyFunctionsTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/GraphElementPropertyFunctionsTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/ImplicitDummyPos.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/ImplicitDummyPos.scala
new file mode 100644
index 0000000000000..6f9ed322de890
--- /dev/null
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/ImplicitDummyPos.scala
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2002-2017 "Neo Technology,"
+ * Network Engine for Objects in Lund AB [http://neotechnology.com]
+ *
+ * This file is part of Neo4j.
+ *
+ * Neo4j is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.neo4j.cypher.internal.runtime.interpreted
+
+import org.neo4j.cypher.internal.util.v3_4.{DummyPosition, InputPosition}
+import scala.language.implicitConversions
+
+trait ImplicitDummyPos {
+ protected val pos = DummyPosition(0)
+
+ implicit def withPos[T](expr: InputPosition => T): T = expr(pos)
+}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/LastCommittedTxIdProviderTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/LastCommittedTxIdProviderTest.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/LastCommittedTxIdProviderTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/LastCommittedTxIdProviderTest.scala
index a0f324dad5c15..1a1f9366af17d 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/LastCommittedTxIdProviderTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/LastCommittedTxIdProviderTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal
+package org.neo4j.cypher.internal.runtime.interpreted
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.kernel.NeoStoreDataSource
import org.neo4j.kernel.api.KernelTransaction
import org.neo4j.kernel.api.security.AnonymousContext
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/MakeValuesNeoSafeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/MakeValuesNeoSafeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/MakeValuesNeoSafeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/MakeValuesNeoSafeTest.scala
index 240bb27f59b60..da28f5deba423 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/mutation/MakeValuesNeoSafeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/MakeValuesNeoSafeTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/MatchingContextTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/MatchingContextTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/MatchingContextTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/MatchingContextTest.scala
index fe78b1ca8f071..a42a663d8c2fa 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/MatchingContextTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/MatchingContextTest.scala
@@ -17,22 +17,19 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.GraphDatabaseFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Literal, Property, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Equals, Predicate}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{Pattern, RelatedTo, SingleNode, VarLengthRelatedTo}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.builders.PatternGraphBuilder
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.MatchingContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
-import org.neo4j.cypher.internal.compiler.v3_4.QueryStateTestSupport
+import org.neo4j.kernel.impl.util.ValueUtils
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Property, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Equals, Predicate}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{Pattern, RelatedTo, SingleNode, VarLengthRelatedTo}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.matching.MatchingContext
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
-import org.neo4j.kernel.impl.util.ValueUtils
import org.neo4j.values.AnyValue
import scala.collection.Map
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/QueryContextAdaptation.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryContextAdaptation.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/QueryContextAdaptation.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryContextAdaptation.scala
index 3f3fb290e2d58..decde50c3b4d7 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/QueryContextAdaptation.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryContextAdaptation.scala
@@ -17,16 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import java.net.URL
import org.neo4j.collection.primitive.PrimitiveLongIterator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expander, KernelPredicate, UserDefinedAggregator}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.PatternNode
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IdempotentResult, IndexDescriptor}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.matching.PatternNode
+import org.neo4j.cypher.internal.runtime._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
+import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName
import org.neo4j.graphdb.{Node, Path, PropertyContainer, Relationship}
import org.neo4j.kernel.impl.api.store.RelationshipIterator
import org.neo4j.values.AnyValue
@@ -73,7 +73,7 @@ trait QueryContextAdaptation {
override def withAnyOpenQueryContext[T](work: (QueryContext) => T): T = ???
// Legacy dependency between kernel and compiler
- override def variableLengthPathExpand(node: PatternNode, realNode: Long, minHops: Option[Int], maxHops: Option[Int], direction: SemanticDirection, relTypes: Seq[String]): scala.Iterator[Path] = ???
+ override def variableLengthPathExpand(realNode: Long, minHops: Option[Int], maxHops: Option[Int], direction: SemanticDirection, relTypes: Seq[String]): scala.Iterator[Path] = ???
override def nodeGetDegree(node: Long, dir: SemanticDirection): Int = ???
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/QueryStateHelper.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryStateHelper.scala
similarity index 87%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/QueryStateHelper.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryStateHelper.scala
index 1cdf8a511d83b..6e630ab5994d6 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/QueryStateHelper.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryStateHelper.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{ExternalCSVResource, NullPipeDecorator, PipeDecorator, QueryState}
-import org.neo4j.cypher.internal.spi.v3_4.TransactionBoundQueryContext.IndexSearchMonitor
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, TransactionBoundQueryContext, TransactionalContextWrapper, UpdateCountingQueryContext}
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{ExternalCSVResource, NullPipeDecorator, PipeDecorator, QueryState}
import org.neo4j.kernel.GraphDatabaseQueryService
import org.neo4j.kernel.impl.coreapi.{InternalTransaction, PropertyContainerLocker}
import org.neo4j.kernel.impl.query.Neo4jTransactionalContextFactory
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/QueryStateTestSupport.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryStateTestSupport.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/QueryStateTestSupport.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryStateTestSupport.scala
index 4943406872ef7..861a6f0cfcf09 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/QueryStateTestSupport.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/QueryStateTestSupport.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.GraphDatabaseTestSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.kernel.api.KernelTransaction
import org.neo4j.kernel.api.security.SecurityContext.AUTH_DISABLED
import org.neo4j.values.virtual.VirtualValues.EMPTY_MAP
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SeekRangeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/SeekRangeTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SeekRangeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/SeekRangeTest.scala
index 5b5d91f44f15b..47aa6242798d4 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SeekRangeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/SeekRangeTest.scala
@@ -17,17 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
-import org.neo4j.cypher.internal.compiler.v3_4.{MinMaxOrdering, RangeBetween, RangeGreaterThan, RangeLessThan}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.{ExclusiveBound, InclusiveBound}
+import org.neo4j.cypher.internal.v3_4.logical.plans._
class SeekRangeTest extends CypherFunSuite {
test("Computes correct limit for numerical less than") {
- implicit val ordering = MinMaxOrdering.BY_NUMBER
+ implicit val ordering = CypherOrdering.BY_NUMBER
RangeLessThan[Number](NonEmptyList(InclusiveBound(3), InclusiveBound(4))).limit should equal(Some(InclusiveBound(3)))
RangeLessThan[Number](NonEmptyList(InclusiveBound(3), ExclusiveBound(4))).limit should equal(Some(InclusiveBound(3)))
@@ -38,7 +37,7 @@ class SeekRangeTest extends CypherFunSuite {
}
test("Computes inclusion for numerical less than") {
- implicit val ordering = MinMaxOrdering.BY_NUMBER
+ implicit val ordering = CypherOrdering.BY_NUMBER
RangeLessThan[Number](NonEmptyList(InclusiveBound(3))).includes[Number](2) should be(right = true)
RangeLessThan[Number](NonEmptyList(ExclusiveBound(3))).includes[Number](2) should be(right = true)
@@ -56,7 +55,7 @@ class SeekRangeTest extends CypherFunSuite {
}
test("Computes correct limit for numerical greater than") {
- implicit val ordering = MinMaxOrdering.BY_NUMBER
+ implicit val ordering = CypherOrdering.BY_NUMBER
RangeGreaterThan[Number](NonEmptyList(InclusiveBound(3), InclusiveBound(4))).limit should equal(Some(InclusiveBound(4)))
RangeGreaterThan[Number](NonEmptyList(InclusiveBound(3), ExclusiveBound(4))).limit should equal(Some(ExclusiveBound(4)))
@@ -67,7 +66,7 @@ class SeekRangeTest extends CypherFunSuite {
}
test("Computes inclusion for numerical greater than") {
- implicit val ordering = MinMaxOrdering.BY_NUMBER
+ implicit val ordering = CypherOrdering.BY_NUMBER
RangeGreaterThan[Number](NonEmptyList(InclusiveBound(3))).includes[Number](2) should be(right = false)
RangeGreaterThan[Number](NonEmptyList(ExclusiveBound(3))).includes[Number](2) should be(right = false)
@@ -85,7 +84,7 @@ class SeekRangeTest extends CypherFunSuite {
}
test("Computes inclusion for numerical range between") {
- implicit val ordering = MinMaxOrdering.BY_NUMBER
+ implicit val ordering = CypherOrdering.BY_NUMBER
val range = RangeBetween(
RangeGreaterThan[Number](NonEmptyList(InclusiveBound(3))),
@@ -112,7 +111,7 @@ class SeekRangeTest extends CypherFunSuite {
}
test("Computes correct limit for string less than") {
- implicit val ordering = MinMaxOrdering.BY_STRING
+ implicit val ordering = CypherOrdering.BY_STRING
RangeLessThan[AnyRef](NonEmptyList(InclusiveBound(""), InclusiveBound("4"))).limit should equal(Some(InclusiveBound("")))
RangeLessThan[AnyRef](NonEmptyList(ExclusiveBound(""), InclusiveBound("4"))).limit should equal(Some(ExclusiveBound("")))
@@ -125,7 +124,7 @@ class SeekRangeTest extends CypherFunSuite {
}
test("Computes inclusion for string less than") {
- implicit val ordering = MinMaxOrdering.BY_STRING
+ implicit val ordering = CypherOrdering.BY_STRING
RangeLessThan[AnyRef](NonEmptyList(InclusiveBound(""))).includes[AnyRef]("") should be(right = true)
RangeLessThan[AnyRef](NonEmptyList(InclusiveBound(""))).includes[AnyRef]("2") should be(right = false)
@@ -146,7 +145,7 @@ class SeekRangeTest extends CypherFunSuite {
}
test("Computes correct limit for string greater than") {
- implicit val ordering = MinMaxOrdering.BY_STRING
+ implicit val ordering = CypherOrdering.BY_STRING
RangeGreaterThan[AnyRef](NonEmptyList(InclusiveBound(""), InclusiveBound("4"))).limit should equal(Some(InclusiveBound("4")))
RangeGreaterThan[AnyRef](NonEmptyList(ExclusiveBound(""), InclusiveBound("4"))).limit should equal(Some(InclusiveBound("4")))
@@ -159,7 +158,7 @@ class SeekRangeTest extends CypherFunSuite {
}
test("Computes inclusion for string greater than") {
- implicit val ordering = MinMaxOrdering.BY_STRING
+ implicit val ordering = CypherOrdering.BY_STRING
RangeGreaterThan[AnyRef](NonEmptyList(InclusiveBound(""))).includes[AnyRef]("") should be(right = true)
@@ -182,7 +181,7 @@ class SeekRangeTest extends CypherFunSuite {
}
test("Computes inclusion for string range between") {
- implicit val ordering = MinMaxOrdering.BY_STRING
+ implicit val ordering = CypherOrdering.BY_STRING
val range = RangeBetween(
RangeGreaterThan[AnyRef](NonEmptyList(InclusiveBound("3"))),
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/TestableIterator.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TestableIterator.scala
similarity index 94%
rename from community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/TestableIterator.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TestableIterator.scala
index eee8c63fa8937..4f3a058542780 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/TestableIterator.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TestableIterator.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.test_helpers
+package org.neo4j.cypher.internal.runtime.interpreted
class TestableIterator[A](inner: Iterator[A]) extends Iterator[A] {
var fetched = 0
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundPlanContextTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundPlanContextTest.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundPlanContextTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundPlanContextTest.scala
index 30b3dfe49c7dc..237c4e8afdaa1 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundPlanContextTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundPlanContextTest.scala
@@ -17,13 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import org.neo4j.cypher.internal.frontend.v3_4.phases.devNullLogger
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, RelTypeId}
-import org.neo4j.cypher.internal.ir.v3_4.Cardinality
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, RelTypeId}
import org.neo4j.graphdb.GraphDatabaseService
import org.neo4j.kernel.api.KernelTransaction.Type._
import org.neo4j.kernel.api.security.SecurityContext.AUTH_DISABLED
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundQueryContextTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContextTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundQueryContextTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContextTest.scala
index 1f730f0bfcee6..49421ff121403 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/TransactionBoundQueryContextTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/TransactionBoundQueryContextTest.scala
@@ -17,18 +17,18 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import java.net.URL
+import java.util.Iterator
import org.hamcrest.Matchers.greaterThan
import org.junit.Assert.assertThat
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.DynamicIterable
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.TransactionBoundQueryContext.IndexSearchMonitor
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.graphdb._
import org.neo4j.graphdb.config.Setting
import org.neo4j.graphdb.factory.GraphDatabaseSettings
@@ -123,14 +123,15 @@ class TransactionBoundQueryContextTest extends CypherFunSuite {
val context = new TransactionBoundQueryContext(transactionalContext)(indexSearchMonitor)
// WHEN
- val iterable = DynamicIterable(context.getRelationshipsForIds(node.getId, SemanticDirection.BOTH, None))
+ val iteratorA = context.getRelationshipsForIds(node.getId, SemanticDirection.BOTH, None)
+ val iteratorB = context.getRelationshipsForIds(node.getId, SemanticDirection.BOTH, None)
// THEN
- val iteratorA: Iterator[Relationship] = iterable.iterator
- val iteratorB: Iterator[Relationship] = iterable.iterator
iteratorA should not equal iteratorB
- iteratorA.toList should equal(iteratorB.toList)
- 2 should equal(iterable.size)
+ val listA = iteratorA.toList
+ val listB = iteratorB.toList
+ listA should equal(listB)
+ listA.size should equal(2)
transactionalContext.close(true)
tx.success()
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/UpdateCountingQueryContextTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContextTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/UpdateCountingQueryContextTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContextTest.scala
index 9ebe14921c900..fef0b239adac6 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/spi/v3_4/UpdateCountingQueryContextTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/UpdateCountingQueryContextTest.scala
@@ -17,17 +17,17 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito.when
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.internal.QueryStatistics
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IdempotentResult, IndexDescriptor}
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext, QueryStatistics}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.graphdb.{Node, Relationship}
+import org.neo4j.values.storable.Values
class UpdateCountingQueryContextTest extends CypherFunSuite {
@@ -98,7 +98,7 @@ class UpdateCountingQueryContextTest extends CypherFunSuite {
}
test("set_property") {
- context.nodeOps.setProperty(nodeAId, 1, "value")
+ context.nodeOps.setProperty(nodeAId, 1, Values.stringValue("value"))
context.getStatistics should equal(QueryStatistics(propertiesSet = 1))
}
@@ -110,7 +110,7 @@ class UpdateCountingQueryContextTest extends CypherFunSuite {
}
test("set_property_relationship") {
- context.relationshipOps.setProperty(relId, 1, "value")
+ context.relationshipOps.setProperty(relId, 1, Values.stringValue("value"))
context.getStatistics should equal(QueryStatistics(propertiesSet = 1))
}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ValueComparisonHelper.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/ValueComparisonHelper.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/ValueComparisonHelper.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/ValueComparisonHelper.scala
index 95b820b8982a4..c5c0704582016 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ValueComparisonHelper.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/ValueComparisonHelper.scala
@@ -17,9 +17,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher
+package org.neo4j.cypher.internal.runtime.interpreted
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values.stringValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AddTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AddTest.scala
similarity index 87%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AddTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AddTest.scala
index 85ef0ca121c32..f102ac3dc81cc 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AddTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AddTest.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import java.nio.charset.StandardCharsets
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Add, Literal, ParameterExpression}
-import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Add, Literal, ParameterExpression}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.StringValue.UTF8StringValue
@@ -76,7 +76,7 @@ class AddTest extends CypherFunSuite {
val hello = "hello".getBytes(StandardCharsets.UTF_8)
val world = "world".getBytes(StandardCharsets.UTF_8)
val params: Map[String, AnyValue] = Map("p1" -> utf8Value(hello), "p2" -> utf8Value(world))
- val state = QueryStateHelper.newWith(params = VirtualValues.map(params.asJava))
+ val state = QueryStateHelper.emptyWith(params = VirtualValues.map(params.asJava))
// When
val result = Add(ParameterExpression("p1"), ParameterExpression("p2"))(m,state)
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AllVariablesTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AllVariablesTest.scala
similarity index 86%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AllVariablesTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AllVariablesTest.scala
index 0edeb7876d7f6..b48bc8f1da994 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AllVariablesTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AllVariablesTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Variable
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Variable
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AndsTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AndsTest.scala
similarity index 86%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AndsTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AndsTest.scala
index c4b97ce590e37..b5869b0ff2691 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/AndsTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/AndsTest.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Ands, Not, Predicate, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Ands, Not, Predicate, True}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class AndsTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/CoalesceTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/CoalesceTest.scala
similarity index 83%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/CoalesceTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/CoalesceTest.scala
index 9d9dace2ed0dc..8372c514cb8a4 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/CoalesceTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/CoalesceTest.scala
@@ -17,12 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{CoalesceFunction, Expression, Literal, Null}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{CoalesceFunction, Expression, Literal, Null}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{QueryState, QueryStateHelper}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values
import org.neo4j.values.storable.Values.stringValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/CoercedPredicateTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/CoercedPredicateTest.scala
similarity index 81%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/CoercedPredicateTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/CoercedPredicateTest.scala
index 3f2bfd081ba44..de6f8be3a6c83 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/CoercedPredicateTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/CoercedPredicateTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{ListLiteral, Literal}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{CoercedPredicate, Not, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{QueryState, QueryStateHelper}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{ListLiteral, Literal}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{CoercedPredicate, Not, True}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{QueryState, QueryStateHelper}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class CoercedPredicateTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ComparablePredicateTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ComparablePredicateTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ComparablePredicateTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ComparablePredicateTest.scala
index 587de5af5cc49..49be2ad9828e3 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ComparablePredicateTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ComparablePredicateTest.scala
@@ -17,13 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
-import org.neo4j.cypher.internal.compiler.v3_4.CypherOrdering
+import org.neo4j.cypher.internal.runtime.interpreted.{CypherOrdering, ExecutionContext}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates._
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.scalatest.matchers.{MatchResult, Matcher}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ExtractTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ExtractTest.scala
similarity index 76%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ExtractTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ExtractTest.scala
index 5b8b9addb81ca..bc1f6170ee14d 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ExtractTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ExtractTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{ExtractFunction, SizeFunction, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{ExtractFunction, SizeFunction, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.intValue
import org.neo4j.values.virtual.VirtualValues.list
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/HasLabelTests.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/HasLabelTests.scala
similarity index 72%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/HasLabelTests.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/HasLabelTests.scala
index 3aba73ca29376..f5537137fc08b 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/HasLabelTests.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/HasLabelTests.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.HasLabel
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.{KeyToken, TokenType}
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.HasLabel
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.{KeyToken, TokenType}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class HasLabelTests extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/LengthFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/LengthFunctionTest.scala
similarity index 82%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/LengthFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/LengthFunctionTest.scala
index 1e1c0b67dbac9..94ea8b419a739 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/LengthFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/LengthFunctionTest.scala
@@ -17,12 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{LengthFunction, PathImpl, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.PathImpl
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{LengthFunction, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ListLiteralTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ListLiteralTest.scala
similarity index 87%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ListLiteralTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ListLiteralTest.scala
index b9e79bd0d9f40..0452cb1438d76 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ListLiteralTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ListLiteralTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, Literal, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{CoercedPredicate, Predicate}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, Literal, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{CoercedPredicate, Predicate}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{FALSE, NO_VALUE, TRUE}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/MathFunctionsTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/MathFunctionsTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/MathFunctionsTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/MathFunctionsTest.scala
index 0fef9ec287c99..afc57d9e6b9d3 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/MathFunctionsTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/MathFunctionsTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions._
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions._
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.LongValue
import org.neo4j.values.storable.Values.{doubleValue, longValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/OrsTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/OrsTest.scala
similarity index 86%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/OrsTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/OrsTest.scala
index b51e90edb0eb5..74b6616f8e126 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/OrsTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/OrsTest.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Not, Ors, Predicate, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Not, Ors, Predicate, True}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class OrsTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PatternComprehensionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PatternComprehensionTest.scala
similarity index 82%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PatternComprehensionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PatternComprehensionTest.scala
index 9fd14f5818843..15aaae5eb437c 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PatternComprehensionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PatternComprehensionTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Variable
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.True
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Variable
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.True
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.values.storable.Values.NO_VALUE
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PropertyValueComparisonTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PropertyValueComparisonTest.scala
similarity index 76%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PropertyValueComparisonTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PropertyValueComparisonTest.scala
index 744099c291f9e..696ac4bc6a2f7 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/PropertyValueComparisonTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/PropertyValueComparisonTest.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Property, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Property, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.NO_VALUE
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ReduceTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ReduceTest.scala
similarity index 82%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ReduceTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ReduceTest.scala
index 34fd3dcbda54f..6f9f07cc918ed 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/ReduceTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/ReduceTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions._
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions._
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values
import org.neo4j.values.storable.Values.longValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/RegularExpressionPredicateTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/RegularExpressionPredicateTest.scala
similarity index 87%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/RegularExpressionPredicateTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/RegularExpressionPredicateTest.scala
index e7f8d374365f1..6574c64c12da3 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/RegularExpressionPredicateTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/RegularExpressionPredicateTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Literal, Null}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{LiteralRegularExpression, RegularExpression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Null}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{LiteralRegularExpression, RegularExpression}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class RegularExpressionPredicateTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SizeFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SizeFunctionTest.scala
similarity index 82%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SizeFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SizeFunctionTest.scala
index 7192340811fc7..467473abd6a6b 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SizeFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SizeFunctionTest.scala
@@ -17,13 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{PathImpl, SizeFunction, Variable}
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.PathImpl
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{SizeFunction, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.values.storable.Values.longValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SplittingPredicateTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SplittingPredicateTest.scala
similarity index 86%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SplittingPredicateTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SplittingPredicateTest.scala
index c9f4d1683c2d9..7a266690ffc70 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SplittingPredicateTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SplittingPredicateTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class SplittingPredicateTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SubtractTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SubtractTest.scala
similarity index 85%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SubtractTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SubtractTest.scala
index 2409574b3cc5b..c1f4a98f45389 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/SubtractTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/SubtractTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Literal, Subtract}
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Subtract}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.longValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/PathExpressionConversionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/PathExpressionConversionTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/PathExpressionConversionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/PathExpressionConversionTest.scala
index 941f1424b3893..3f2f83de444c3 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/convert/PathExpressionConversionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/convert/PathExpressionConversionTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert
+package org.neo4j.cypher.internal.runtime.interpreted.commands.convert
import org.neo4j.cypher.internal.util.v3_4.{DummyPosition, InputPosition}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.ProjectedPath
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.ProjectedPath._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.ProjectedPath
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.ProjectedPath._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CoerceToTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CoerceToTest.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CoerceToTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CoerceToTest.scala
index f632367618e6a..a274e5e17c3fd 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/CoerceToTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/CoerceToTest.scala
@@ -17,17 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import java.util.{ArrayList => JavaList, HashMap => JavaMap}
+import org.neo4j.cypher.internal.runtime.{Counter, QueryContext}
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.Counter
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{QueryState, QueryStateHelper}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{QueryState, QueryStateHelper}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values._
import org.neo4j.values.virtual.PointValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ContainerIndexTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ContainerIndexTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ContainerIndexTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ContainerIndexTest.scala
index 257e0a16d3a20..298af8210811a 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ContainerIndexTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ContainerIndexTest.scala
@@ -17,16 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InvalidArgumentException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values.longValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/DivideTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/DivideTest.scala
similarity index 85%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/DivideTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/DivideTest.scala
index 7be10c7b3a81f..7da06e889c685 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/DivideTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/DivideTest.scala
@@ -17,12 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.ArithmeticException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compiler.v3_4._
-import org.neo4j.cypher.internal.frontend.v3_4
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class DivideTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ExpressionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ExpressionTest.scala
similarity index 88%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ExpressionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ExpressionTest.scala
index dee3f60b097b0..3e860e5879811 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ExpressionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ExpressionTest.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.ReturnItem
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{CoercedPredicate, Not, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.ReturnItem
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{CoercedPredicate, Not, True}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/FakeEntityTestSupport.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/FakeEntityTestSupport.scala
similarity index 97%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/FakeEntityTestSupport.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/FakeEntityTestSupport.scala
index ba9dc34dfe54e..e8f8c0cb86cb9 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/FakeEntityTestSupport.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/FakeEntityTestSupport.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import java.lang.Iterable
import java.util
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/GenericCaseTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/GenericCaseTest.scala
similarity index 89%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/GenericCaseTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/GenericCaseTest.scala
index 2d981bfaf0700..6d76e12558dd7 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/GenericCaseTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/GenericCaseTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{CoercedPredicate, Equals, Predicate}
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{CoercedPredicate, Equals, Predicate}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{NO_VALUE, stringValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/IndexedInclusiveLongRangeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/IndexedInclusiveLongRangeTest.scala
similarity index 97%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/IndexedInclusiveLongRangeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/IndexedInclusiveLongRangeTest.scala
index b5f1eec09d4a3..474a1b98afb16 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/IndexedInclusiveLongRangeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/IndexedInclusiveLongRangeTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/KeysFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/KeysFunctionTest.scala
similarity index 87%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/KeysFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/KeysFunctionTest.scala
index e8cbb76e90d6a..e641ada6eb809 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/KeysFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/KeysFunctionTest.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
import org.neo4j.graphdb.Node
import org.neo4j.values.storable.Values.stringValue
import org.neo4j.values.virtual.VirtualValues.{EMPTY_LIST, list}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LabelsFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LabelsFunctionTest.scala
similarity index 80%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LabelsFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LabelsFunctionTest.scala
index 4bcd7419faebb..2d126d4aa29f5 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/LabelsFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LabelsFunctionTest.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.graphdb.Node
import org.neo4j.values.storable.Values.stringValue
import org.neo4j.values.virtual.VirtualValues.list
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ListSliceTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ListSliceTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ListSliceTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ListSliceTest.scala
index b20d4f052d3f2..90b424e537531 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ListSliceTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ListSliceTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values
import org.neo4j.values.storable.Values.longValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/commands/expressions/LiteralMapTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LiteralMapTest.scala
similarity index 81%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/commands/expressions/LiteralMapTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LiteralMapTest.scala
index 58c70c7d5438c..ab680231e2f7d 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/commands/expressions/LiteralMapTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/LiteralMapTest.scala
@@ -17,10 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{CountStar, LiteralMap, Property, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.UnresolvedProperty
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.UnresolvedProperty
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class LiteralMapTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ModuloTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ModuloTest.scala
similarity index 89%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ModuloTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ModuloTest.scala
index 1e47bb9b32fa0..3216b34818d4b 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ModuloTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ModuloTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{doubleValue, longValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathImplTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PathImplTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathImplTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PathImplTest.scala
index ee94ee67c3103..99e00ce03dc1e 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathImplTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PathImplTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+import org.neo4j.cypher.internal.runtime.PathImpl
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.graphdb._
@@ -45,7 +45,7 @@ class PathImplTest extends CypherFunSuite with FakeEntityTestSupport {
val nodA = new FakeNode
val nodB = new FakeNode
val rel = new FakeRel(nodA, nodB, typ)
- val path = new expressions.PathImpl(nodA, rel, nodB)
+ val path = new PathImpl(nodA, rel, nodB)
path.length() should equal(1)
path.startNode() should equal(nodA)
@@ -67,7 +67,7 @@ class PathImplTest extends CypherFunSuite with FakeEntityTestSupport {
Seq(rel1)
)
- badPaths.foreach(p => intercept[IllegalArgumentException](new expressions.PathImpl(p:_*)))
+ badPaths.foreach(p => intercept[IllegalArgumentException](new PathImpl(p:_*)))
}
test("retrieveLastRelationshipOnLongPath") {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathValueBuilderTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PathValueBuilderTest.scala
similarity index 97%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathValueBuilderTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PathValueBuilderTest.scala
index 8ebe46cdfc56b..336e31b7fc042 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathValueBuilderTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PathValueBuilderTest.scala
@@ -17,10 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.mockito.Mockito
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.PathImpl
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.graphdb.{Node, Relationship, RelationshipType}
import org.neo4j.kernel.impl.util.ValueUtils.asPathValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PropertiesFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PropertiesFunctionTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PropertiesFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PropertiesFunctionTest.scala
index 69571b2edfef8..e959fdc3d0792 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PropertiesFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/PropertiesFunctionTest.scala
@@ -17,16 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import java.util
import org.mockito.Mockito
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.values.storable.Values.{NO_VALUE, stringValue}
import org.neo4j.values.virtual.VirtualValues.map
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RangeFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RangeFunctionTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RangeFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RangeFunctionTest.scala
index 261894588aaa1..b0600114ca629 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RangeFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RangeFunctionTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values
import org.neo4j.values.virtual.ListValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipTypeFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipTypeFunctionTest.scala
similarity index 87%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipTypeFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipTypeFunctionTest.scala
index be55571bfbe0c..866fefafe8ecf 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/RelationshipTypeFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/RelationshipTypeFunctionTest.scala
@@ -17,15 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.mockito.ArgumentMatchers.any
import org.mockito.Mockito._
import org.neo4j.cypher.internal.util.v3_4.ParameterWrongTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
import org.neo4j.graphdb.{Relationship, RelationshipType}
import org.neo4j.values.storable.Values.stringValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RelationshipSupportTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ShortestPathNoDuplicatesTest.scala
similarity index 66%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RelationshipSupportTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ShortestPathNoDuplicatesTest.scala
index 22629d1aeeb38..50b65432c0564 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RelationshipSupportTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ShortestPathNoDuplicatesTest.scala
@@ -17,21 +17,21 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.graphdb.Relationship
import org.neo4j.kernel.impl.core.RelationshipProxy
import org.neo4j.kernel.impl.core.RelationshipProxy.RelationshipActions
-class RelationshipSupportTest extends CypherFunSuite {
+class ShortestPathNoDuplicatesTest extends CypherFunSuite {
test("Should handle empty list") {
- RelationshipSupport.areRelationshipsUnique(List.empty) should be(true)
+ ShortestPathExpression.noDuplicates(List.empty) should be(true)
}
test("Should handle lists of one") {
- RelationshipSupport.areRelationshipsUnique(List(mock[Relationship])) should be(true)
+ ShortestPathExpression.noDuplicates(List(mock[Relationship])) should be(true)
}
test("Should handle lists of length two") {
@@ -40,9 +40,9 @@ class RelationshipSupportTest extends CypherFunSuite {
val b = new RelationshipProxy(actions, 2)
val a1 = new RelationshipProxy(actions, 1)
- RelationshipSupport.areRelationshipsUnique(List(a, b)) should be(true)
- RelationshipSupport.areRelationshipsUnique(List(a, a)) should be(false)
- RelationshipSupport.areRelationshipsUnique(List(a, a1)) should be(false)
+ ShortestPathExpression.noDuplicates(List(a, b)) should be(true)
+ ShortestPathExpression.noDuplicates(List(a, a)) should be(false)
+ ShortestPathExpression.noDuplicates(List(a, a1)) should be(false)
}
test("Should handle lists of length three") {
@@ -51,10 +51,10 @@ class RelationshipSupportTest extends CypherFunSuite {
val b = new RelationshipProxy(actions, 2)
val c = new RelationshipProxy(actions, 3)
- RelationshipSupport.areRelationshipsUnique(List(a, b, c)) should be(true)
- RelationshipSupport.areRelationshipsUnique(List(a, a, b)) should be(false)
- RelationshipSupport.areRelationshipsUnique(List(a, b, b)) should be(false)
- RelationshipSupport.areRelationshipsUnique(List(a, b, a)) should be(false)
+ ShortestPathExpression.noDuplicates(List(a, b, c)) should be(true)
+ ShortestPathExpression.noDuplicates(List(a, a, b)) should be(false)
+ ShortestPathExpression.noDuplicates(List(a, b, b)) should be(false)
+ ShortestPathExpression.noDuplicates(List(a, b, a)) should be(false)
}
test("Should handle long lists") {
@@ -70,14 +70,14 @@ class RelationshipSupportTest extends CypherFunSuite {
val i = new RelationshipProxy(actions, 9)
val l0 = List(a, b, c, d, e, f, g, h, i)
- RelationshipSupport.areRelationshipsUnique(l0) should be(true)
+ ShortestPathExpression.noDuplicates(l0) should be(true)
val l1 = List(a, a, c, d, e, f, g, h, i)
- RelationshipSupport.areRelationshipsUnique(l1) should be(false)
+ ShortestPathExpression.noDuplicates(l1) should be(false)
val l2 = List(a, b, c, d, d, f, g, h, i)
- RelationshipSupport.areRelationshipsUnique(l2) should be(false)
+ ShortestPathExpression.noDuplicates(l2) should be(false)
val l3 = List(a, b, c, d, e, f, g, h, h)
- RelationshipSupport.areRelationshipsUnique(l3) should be(false)
+ ShortestPathExpression.noDuplicates(l3) should be(false)
val l4 = List(a, b, c, d, e, f, g, h, a)
- RelationshipSupport.areRelationshipsUnique(l4) should be(false)
+ ShortestPathExpression.noDuplicates(l4) should be(false)
}
}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SimpleCaseTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SimpleCaseTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SimpleCaseTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SimpleCaseTest.scala
index 59b9fa18053c4..168e8a8010357 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SimpleCaseTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SimpleCaseTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{NO_VALUE, stringValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SplitFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SplitFunctionTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SplitFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SplitFunctionTest.scala
index 4a79293cae9a4..7b2cf86c83648 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/SplitFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/SplitFunctionTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values._
import org.neo4j.values.virtual.VirtualValues.list
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/StringFunctionsTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/StringFunctionsTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/StringFunctionsTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/StringFunctionsTest.scala
index 86e925746344d..95862d23a2507 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/StringFunctionsTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/StringFunctionsTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values
import org.neo4j.values.storable.Values.{EMPTY_STRING, stringValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToBooleanFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToBooleanFunctionTest.scala
similarity index 89%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToBooleanFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToBooleanFunctionTest.scala
index d0a4de9d80482..85cce645f82e9 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToBooleanFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToBooleanFunctionTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.ParameterWrongTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values._
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToFloatFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToFloatFunctionTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToFloatFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToFloatFunctionTest.scala
index f410d31d0dff2..f3078138203ba 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToFloatFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToFloatFunctionTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.ParameterWrongTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{NO_VALUE, doubleValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToIntegerFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToIntegerFunctionTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToIntegerFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToIntegerFunctionTest.scala
index de28901d485e5..d0597fd4b12fb 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToIntegerFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToIntegerFunctionTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, ParameterWrongTypeException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{NO_VALUE, longValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToStringFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToStringFunctionTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToStringFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToStringFunctionTest.scala
index aa852d049b826..b3378cb03dc93 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/ToStringFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/ToStringFunctionTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
import org.neo4j.cypher.internal.util.v3_4.ParameterWrongTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{NO_VALUE, stringValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/TypeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/TypeTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/TypeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/TypeTest.scala
index b5cbbc4ec947f..0de50a0c94685 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/TypeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/expressions/TypeTest.scala
@@ -17,10 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime
+package org.neo4j.cypher.internal.runtime.interpreted.commands.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, QueryStateHelper}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.{DoubleValue, LongValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/groupInequalityPredicatesForLegacyTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/groupInequalityPredicatesForLegacyTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/groupInequalityPredicatesForLegacyTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/groupInequalityPredicatesForLegacyTest.scala
index 4284c23c1df4b..84d234a4ad747 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/groupInequalityPredicatesForLegacyTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/groupInequalityPredicatesForLegacyTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands
+package org.neo4j.cypher.internal.runtime.interpreted.commands
import org.neo4j.cypher.internal.util.v3_4.NonEmptyList
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, Literal, Property, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, Literal, Property, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class GroupInequalityPredicatesForLegacyTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/CheckerTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/CheckerTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/CheckerTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/CheckerTest.scala
index 145eefd5ebb23..5833f02d8ce6c 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/CheckerTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/CheckerTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
+package org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ValueConversion
+import org.neo4j.cypher.internal.runtime.interpreted.ValueConversion
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/ConstantCachedInTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/ConstantCachedInTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/ConstantCachedInTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/ConstantCachedInTest.scala
index 97830a8968d92..2033c383391ee 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/ConstantCachedInTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/ConstantCachedInTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
+package org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, ListLiteral, Literal, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, ListLiteral, Literal, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values._
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/EquivalentTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/EquivalentTest.scala
similarity index 100%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/predicates/EquivalentTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/predicates/EquivalentTest.scala
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/values/KeyTokenTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/values/KeyTokenTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/values/KeyTokenTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/values/KeyTokenTest.scala
index dfc4926b26bdc..dac14d1906583 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/values/KeyTokenTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/commands/values/KeyTokenTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values
+package org.neo4j.cypher.internal.runtime.interpreted.commands.values
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
class KeyTokenTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/AllNodesScanPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AllNodesScanPipeTest.scala
similarity index 86%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/AllNodesScanPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AllNodesScanPipeTest.scala
index 58b7206fbc700..d716613fde859 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/AllNodesScanPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AllNodesScanPipeTest.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito
-import org.neo4j.cypher.ValueComparisonHelper._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper._
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
import org.neo4j.graphdb.Node
class AllNodesScanPipeTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/AllShortestPathsPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AllShortestPathsPipeTest.scala
similarity index 88%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/AllShortestPathsPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AllShortestPathsPipeTest.scala
index f154d42fcf467..f90ed6e866b3e 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/AllShortestPathsPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/AllShortestPathsPipeTest.scala
@@ -17,12 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.GraphDatabaseFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{ShortestPath, SingleNode}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{FakePipe, ShortestPathPipe}
-import org.neo4j.cypher.internal.compiler.v3_4.QueryStateHelper.withQueryState
+import org.neo4j.cypher.internal.runtime.interpreted.QueryStateHelper.withQueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{ShortestPath, SingleNode}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.Node
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ApplyPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ApplyPipeTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ApplyPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ApplyPipeTest.scala
index 8c0dc85d52a46..99629571a65da 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ApplyPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ApplyPipeTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.ValueComparisonHelper._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.util.v3_4.symbols.CTNumber
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DirectedDirectedRelationshipByIdSeekPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DirectedDirectedRelationshipByIdSeekPipeTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DirectedDirectedRelationshipByIdSeekPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DirectedDirectedRelationshipByIdSeekPipeTest.scala
index 7b5b49b4b0d2a..e124aba531d09 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DirectedDirectedRelationshipByIdSeekPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DirectedDirectedRelationshipByIdSeekPipeTest.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito
-import org.neo4j.cypher.ValueComparisonHelper._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{ListLiteral, Literal}
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{ListLiteral, Literal}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
import org.neo4j.graphdb.{Node, Relationship}
class DirectedDirectedRelationshipByIdSeekPipeTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DistinctPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DistinctPipeTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DistinctPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DistinctPipeTest.scala
index e0c2c4eaedccd..ffe84dd455730 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/DistinctPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/DistinctPipeTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.ValueComparisonHelper._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, Literal, Multiply, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, Literal, Multiply, Variable}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.stringArray
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerAggregationPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerAggregationPipeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerAggregationPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerAggregationPipeTest.scala
index f02d5f164e924..8fe7146024879 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerAggregationPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerAggregationPipeTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerPipeTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerPipeTest.scala
index 5ea4fbe1f79a8..0d083ae1b96d2 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/EagerPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/EagerPipeTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class EagerPipeTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ErrorPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ErrorPipeTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ErrorPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ErrorPipeTest.scala
index 1c826f613d7b2..49c12400c7552 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ErrorPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ErrorPipeTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandAllPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandAllPipeTest.scala
similarity index 97%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandAllPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandAllPipeTest.scala
index d35c21d5e5b25..b2f507c9584c3 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandAllPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandAllPipeTest.scala
@@ -17,16 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandIntoPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandIntoPipeTest.scala
similarity index 99%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandIntoPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandIntoPipeTest.scala
index bf2ef7947c1e1..a6cbf6403d296 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ExpandIntoPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ExpandIntoPipeTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers.{eq => mockEq, _}
import org.mockito.Mockito._
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/FakePipe.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FakePipe.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/FakePipe.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FakePipe.scala
index 6398ba8d18322..270c1d2b188c0 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/FakePipe.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FakePipe.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.util.v3_4.symbols.CypherType
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/pipes/FullPruningVarLengthExpandPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FullPruningVarLengthExpandPipeTest.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/pipes/FullPruningVarLengthExpandPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FullPruningVarLengthExpandPipeTest.scala
index 5a1db213fd2be..2415a6aec7dce 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/pipes/FullPruningVarLengthExpandPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/FullPruningVarLengthExpandPipeTest.scala
@@ -17,16 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.GraphDatabaseFunSuite
-import org.neo4j.cypher.ValueComparisonHelper._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Literal, Property, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Equals, Predicate, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.UnresolvedProperty
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
-import org.neo4j.cypher.internal.compiler.v3_4.QueryStateHelper.withQueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.QueryStateHelper.withQueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Property, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Equals, Predicate, True}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.UnresolvedProperty
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.Node
import org.neo4j.kernel.api.KernelTransaction.Type
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyGroupingIteratorTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyGroupingIteratorTest.scala
similarity index 98%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyGroupingIteratorTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyGroupingIteratorTest.scala
index a6d4446c9eb50..dc57a72b198a7 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyGroupingIteratorTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyGroupingIteratorTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.collection.primitive.{PrimitiveLongIterable, PrimitiveLongSet}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyIterator.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyIterator.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyIterator.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyIterator.scala
index 5eb6324335c2d..e76b253d6223c 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyIterator.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyIterator.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.kernel.GraphDatabaseQueryService
import org.scalatest.Assertions
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyPropertyKeyTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyPropertyKeyTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyPropertyKeyTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyPropertyKeyTest.scala
index 8dea30ea936b8..5d4d444d8075e 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyPropertyKeyTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyPropertyKeyTest.scala
@@ -17,14 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.util.v3_4.DummyPosition
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.util.v3_4.{DummyPosition, PropertyKeyId}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.PropertyKeyId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
import org.neo4j.cypher.internal.v3_4.expressions.PropertyKeyName
import scala.collection.mutable
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyTypesTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyTypesTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyTypesTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyTypesTest.scala
index 2ebe3888f19f3..91f7185b04e93 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LazyTypesTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LazyTypesTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito._
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
class LazyTypesTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSelectOrSemiApplyPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSelectOrSemiApplyPipeTest.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSelectOrSemiApplyPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSelectOrSemiApplyPipeTest.scala
index 20db48884d5ba..f7095e9494bb5 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSelectOrSemiApplyPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSelectOrSemiApplyPipeTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Literal, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Equals, Not, True}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Equals, Not, True}
import org.neo4j.cypher.internal.util.v3_4.symbols.CTNumber
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{FALSE, TRUE, intValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSemiApplyPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSemiApplyPipeTest.scala
similarity index 98%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSemiApplyPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSemiApplyPipeTest.scala
index de45808979127..ff95db9ead48f 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LetSemiApplyPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LetSemiApplyPipeTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.symbols.CTNumber
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LimitPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LimitPipeTest.scala
similarity index 88%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LimitPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LimitPipeTest.scala
index 1f9c55bd80c48..a8c79eee9961d 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/LimitPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/LimitPipeTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito._
import org.mockito.internal.stubbing.defaultanswers.ReturnsMocks
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByIdSeekPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByIdSeekPipeTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByIdSeekPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByIdSeekPipeTest.scala
index 610b9e4035abb..df1dbaaad9d2f 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByIdSeekPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByIdSeekPipeTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{ListLiteral, Literal}
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{ListLiteral, Literal}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
import org.neo4j.graphdb.Node
import org.neo4j.kernel.impl.util.ValueUtils.fromNodeProxy
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByLabelScanPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByLabelScanPipeTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByLabelScanPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByLabelScanPipeTest.scala
index caee51746d30d..249cb23e37842 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeByLabelScanPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeByLabelScanPipeTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.util.v3_4.LabelId
import org.neo4j.cypher.internal.v3_4.expressions.LabelName
import org.neo4j.graphdb.Node
import org.neo4j.kernel.impl.util.ValueUtils.fromNodeProxy
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeCountFromCountStorePipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeCountFromCountStorePipeTest.scala
similarity index 87%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeCountFromCountStorePipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeCountFromCountStorePipeTest.scala
index 8f03911a63118..724326d518d33 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeCountFromCountStorePipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeCountFromCountStorePipeTest.scala
@@ -17,24 +17,24 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.ast.AstConstructionTestSupport
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, NameId}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ImplicitDummyPos
+import org.neo4j.cypher.internal.util.v3_4.{InputPosition, LabelId, NameId}
import org.neo4j.cypher.internal.v3_4.expressions.LabelName
import org.neo4j.values.storable.Values.longValue
-class NodeCountFromCountStorePipeTest extends CypherFunSuite with AstConstructionTestSupport {
+class NodeCountFromCountStorePipeTest extends CypherFunSuite with ImplicitDummyPos {
test("should return a count for nodes with a label") {
implicit val table = new SemanticTable()
table.resolvedLabelNames.put("A", LabelId(12))
- val pipe = NodeCountFromCountStorePipe("count(n)", List(Some(LazyLabel(LabelName("A") _))))()
+ val pipe = NodeCountFromCountStorePipe("count(n)", List(Some(LazyLabel(LabelName("A")_))))()
val queryState = QueryStateHelper.emptyWith(
query = when(mock[QueryContext].nodeCountByCountStore(12)).thenReturn(42L).getMock[QueryContext]
@@ -45,7 +45,7 @@ class NodeCountFromCountStorePipeTest extends CypherFunSuite with AstConstructio
test("should return zero if label is missing") {
implicit val table = new SemanticTable()
- val pipe = NodeCountFromCountStorePipe("count(n)", List(Some(LazyLabel(LabelName("A") _))))()
+ val pipe = NodeCountFromCountStorePipe("count(n)", List(Some(LazyLabel(LabelName("A")_))))()
val mockedContext: QueryContext = mock[QueryContext]
when(mockedContext.nodeCountByCountStore(12)).thenReturn(42L)
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeHashJoinPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeHashJoinPipeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeHashJoinPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeHashJoinPipeTest.scala
index fb093e00ca05f..f79e58c9994f8 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeHashJoinPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeHashJoinPipeTest.scala
@@ -17,15 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.TestableIterator
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, TestableIterator}
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.graphdb.Node
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexScanPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexScanPipeTest.scala
similarity index 80%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexScanPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexScanPipeTest.scala
index 658a8e0c3a0bb..3bbd3d27d3ce8 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexScanPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexScanPipeTest.scala
@@ -17,20 +17,20 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers.any
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken, _}
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ImplicitDummyPos
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
-import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, PropertyKeyName}
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, PropertyKeyId}
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, LabelToken, PropertyKeyName, PropertyKeyToken}
import org.neo4j.graphdb.Node
import org.neo4j.kernel.impl.util.ValueUtils.fromNodeProxy
-class NodeIndexScanPipeTest extends CypherFunSuite with AstConstructionTestSupport {
+class NodeIndexScanPipeTest extends CypherFunSuite with ImplicitDummyPos {
private val label = LabelToken(LabelName("LabelName")_, LabelId(11))
private val propertyKey = PropertyKeyToken(PropertyKeyName("PropertyName")_, PropertyKeyId(10))
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexSeekPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexSeekPipeTest.scala
similarity index 92%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexSeekPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexSeekPipeTest.scala
index ea28924739227..48b06ed959df5 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeIndexSeekPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeIndexSeekPipeTest.scala
@@ -17,26 +17,25 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers
import org.mockito.ArgumentMatchers.any
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
+import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, LabelId, PropertyKeyId}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.{CypherFunSuite, WindowsStringSafe}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{ListLiteral, Literal, Variable}
-import org.neo4j.cypher.internal.compiler.v3_4._
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, ImplicitDummyPos}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{ListLiteral, Literal, Variable}
import org.neo4j.cypher.internal.frontend.v3_4.ast._
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.v3_4.logical.plans.{CompositeQueryExpression, ManyQueryExpression, SingleQueryExpression}
-import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, PropertyKeyName}
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, LabelToken, PropertyKeyName, PropertyKeyToken}
import org.neo4j.graphdb.Node
import org.neo4j.kernel.impl.util.ValueUtils.fromNodeProxy
import org.neo4j.values.storable.Values.stringValue
-class NodeIndexSeekPipeTest extends CypherFunSuite with AstConstructionTestSupport {
+class NodeIndexSeekPipeTest extends CypherFunSuite with ImplicitDummyPos {
implicit val windowsSafe = WindowsStringSafe
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeOuterHashJoinPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeOuterHashJoinPipeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeOuterHashJoinPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeOuterHashJoinPipeTest.scala
index 2da216ab2058d..a5edbf77b76e0 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/NodeOuterHashJoinPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/NodeOuterHashJoinPipeTest.scala
@@ -17,13 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.TestableIterator
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, TestableIterator}
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.graphdb.Node
import org.neo4j.kernel.impl.util.ValueUtils.fromNodeProxy
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandAllPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandAllPipeTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandAllPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandAllPipeTest.scala
index 765c24ab74b17..1e4a63d38c37b 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandAllPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandAllPipeTest.scala
@@ -17,17 +17,17 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Not, Predicate, True}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Not, Predicate, True}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils.{fromNodeProxy, fromRelationshipProxy}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandIntoPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandIntoPipeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandIntoPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandIntoPipeTest.scala
index ad2c96deaf64a..db1dae4cb91d7 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalExpandIntoPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalExpandIntoPipeTest.scala
@@ -17,17 +17,17 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Not, Predicate, True}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Not, Predicate, True}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils.{fromNodeProxy, fromRelationshipProxy}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalPipeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalPipeTest.scala
index c46726e75dfcc..357bd2db5729e 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/OptionalPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/OptionalPipeTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.symbols.CTNumber
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/PipeTestSupport.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PipeTestSupport.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/PipeTestSupport.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PipeTestSupport.scala
index 0991031ff868b..85507d64873e2 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/PipeTestSupport.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PipeTestSupport.scala
@@ -17,17 +17,17 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.util.v3_4.symbols.{CypherType, _}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherTestSupport
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProcedureCallPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProcedureCallPipeTest.scala
similarity index 88%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProcedureCallPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProcedureCallPipeTest.scala
index 099f7057d408e..db01235e7f4dd 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProcedureCallPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProcedureCallPipeTest.scala
@@ -17,17 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
-
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Variable
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{EagerReadWriteCallMode, LazyReadOnlyCallMode}
-import org.neo4j.cypher.internal.frontend.v3_4.ast.AstConstructionTestSupport
-import org.neo4j.cypher.internal.frontend.v3_4.symbols
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
+
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, ImplicitDummyPos, QueryContextAdaptation}
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Variable
+import org.neo4j.cypher.internal.runtime.{EagerReadWriteCallMode, LazyReadOnlyCallMode, QueryContext}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, QueryContextAdaptation}
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.{IntValue, LongValue}
@@ -35,7 +32,7 @@ import org.neo4j.values.storable.{IntValue, LongValue}
class ProcedureCallPipeTest
extends CypherFunSuite
with PipeTestSupport
- with AstConstructionTestSupport {
+ with ImplicitDummyPos {
val procedureName = QualifiedName(List.empty, "foo")
val signature = ProcedureSignature(procedureName, IndexedSeq.empty, Some(IndexedSeq(FieldSignature("foo", CTAny))), None, ProcedureReadOnlyAccess(Array.empty))
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProduceResultsPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProduceResultsPipeTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProduceResultsPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProduceResultsPipeTest.scala
index 5e08a610d38ee..caa6014c60148 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProduceResultsPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProduceResultsPipeTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{FALSE, TRUE, intValue, stringValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProjectEndpointsPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProjectEndpointsPipeTest.scala
similarity index 97%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProjectEndpointsPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProjectEndpointsPipeTest.scala
index 69e1b23ef5395..522bb367b6997 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ProjectEndpointsPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ProjectEndpointsPipeTest.scala
@@ -17,17 +17,17 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.ValueComparisonHelper.beEquivalentTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper.beEquivalentTo
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils.{asListOfEdges, fromNodeProxy}
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/pipes/PruningVarLengthExpandPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PruningVarLengthExpandPipeTest.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/pipes/PruningVarLengthExpandPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PruningVarLengthExpandPipeTest.scala
index 22cb75157efb5..dbf9187e76e5c 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/pipes/PruningVarLengthExpandPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/PruningVarLengthExpandPipeTest.scala
@@ -17,15 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.GraphDatabaseFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Literal, Property, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Equals, Predicate, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.UnresolvedProperty
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
-import org.neo4j.cypher.internal.compiler.v3_4.QueryStateHelper.withQueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.QueryStateHelper.withQueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Property, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Equals, Predicate, True}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.UnresolvedProperty
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.Node
import org.neo4j.kernel.api.KernelTransaction.Type
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/QueryStateHelper.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/QueryStateHelper.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/QueryStateHelper.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/QueryStateHelper.scala
index 6595f60a6d261..a83965a08d8b2 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/QueryStateHelper.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/QueryStateHelper.scala
@@ -17,13 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
import org.mockito.{ArgumentMatchers, Mockito}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.graphdb.spatial.Point
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.kernel.impl.util.BaseToObjectValueWriter
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/QueryStateTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/QueryStateTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/QueryStateTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/QueryStateTest.scala
index 898ca84f5658c..da8e6b7e1158c 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/QueryStateTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/QueryStateTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RelationshipCountFromCountStorePipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RelationshipCountFromCountStorePipeTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RelationshipCountFromCountStorePipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RelationshipCountFromCountStorePipeTest.scala
index caf0b105708e5..1e4abab4b6061 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RelationshipCountFromCountStorePipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RelationshipCountFromCountStorePipeTest.scala
@@ -17,19 +17,19 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.NameId._
-import org.neo4j.cypher.internal.frontend.v3_4.ast.AstConstructionTestSupport
+import org.neo4j.cypher.internal.util.v3_4.NameId._
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, RelTypeId}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.ImplicitDummyPos
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, RelTypeId}
import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, RelTypeName}
import org.neo4j.values.storable.Values.longValue
-class RelationshipCountFromCountStorePipeTest extends CypherFunSuite with AstConstructionTestSupport {
+class RelationshipCountFromCountStorePipeTest extends CypherFunSuite with ImplicitDummyPos {
test("should return a count for relationships without a type or any labels") {
val pipe = RelationshipCountFromCountStorePipe("count(r)", None, LazyTypes.empty, None)()
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RollUpApplyPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RollUpApplyPipeTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RollUpApplyPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RollUpApplyPipeTest.scala
index 16329d599103d..e3d4e1e3c23ce 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/RollUpApplyPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/RollUpApplyPipeTest.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.ValueComparisonHelper.beEquivalentTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper.beEquivalentTo
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SelectOrSemiApplyPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SelectOrSemiApplyPipeTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SelectOrSemiApplyPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SelectOrSemiApplyPipeTest.scala
index 159b2506d53d9..cffad045a611e 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SelectOrSemiApplyPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SelectOrSemiApplyPipeTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.ValueComparisonHelper.beEquivalentTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Literal, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Equals, Not, True}
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper.beEquivalentTo
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Equals, Not, True}
import org.neo4j.cypher.internal.util.v3_4.symbols.CTNumber
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.intValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SemiApplyPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SemiApplyPipeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SemiApplyPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SemiApplyPipeTest.scala
index cefc7de1b752d..f3b0daf08d044 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SemiApplyPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SemiApplyPipeTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.ValueComparisonHelper.beEquivalentTo
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper.beEquivalentTo
import org.neo4j.cypher.internal.util.v3_4.symbols.CTNumber
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.intValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SetPropertyPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SetPropertyPipeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SetPropertyPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SetPropertyPipeTest.scala
index ee8c6c116e3d8..aebb9b94423bb 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SetPropertyPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SetPropertyPipeTest.scala
@@ -17,17 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers.{anyInt, anyLong}
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.util.v3_4.InputPosition
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.{KeyToken, TokenType}
+import org.neo4j.cypher.internal.util.v3_4.{InputPosition, PropertyKeyId}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.{KeyToken, TokenType}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.frontend.v3_4.PropertyKeyId
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
import org.neo4j.cypher.internal.v3_4.expressions.PropertyKeyName
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/SingleShortestPathPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SingleShortestPathPipeTest.scala
similarity index 88%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/SingleShortestPathPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SingleShortestPathPipeTest.scala
index eea3bfab7535d..49d6326fa01ed 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/SingleShortestPathPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SingleShortestPathPipeTest.scala
@@ -17,12 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.GraphDatabaseFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{ShortestPath, SingleNode}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{FakePipe, ShortestPathPipe}
-import org.neo4j.cypher.internal.compiler.v3_4.QueryStateHelper.withQueryState
+import org.neo4j.cypher.internal.runtime.interpreted.QueryStateHelper.withQueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{ShortestPath, SingleNode}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.Node
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SkipPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SkipPipeTest.scala
similarity index 86%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SkipPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SkipPipeTest.scala
index 3d9e97d5f831c..cab8e0123836e 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SkipPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SkipPipeTest.scala
@@ -17,12 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito.{never, verify, when}
import org.mockito.internal.stubbing.defaultanswers.ReturnsMocks
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class SkipPipeTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SortPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SortPipeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SortPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SortPipeTest.scala
index e0d8dc09a15ba..bcb30edcab940 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/SortPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/SortPipeTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.junit.Assert._
-import org.neo4j.cypher.ValueComparisonHelper._
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper._
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/Top1WithTiesPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/Top1WithTiesPipeTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/Top1WithTiesPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/Top1WithTiesPipeTest.scala
index 10e643881c61d..3ed20374e151b 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/Top1WithTiesPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/Top1WithTiesPipeTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.ValueComparisonHelper.beEquivalentTo
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper.beEquivalentTo
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TopPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TopPipeTest.scala
similarity index 98%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TopPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TopPipeTest.scala
index b3bdb5533f8c2..31100e12ff6b6 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TopPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TopPipeTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TriadicSelectionPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TriadicSelectionPipeTest.scala
similarity index 98%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TriadicSelectionPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TriadicSelectionPipeTest.scala
index 0a13f6406b27a..c74ad8f75d22c 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/TriadicSelectionPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/TriadicSelectionPipeTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.collection.primitive.PrimitiveLongIterable
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.kernel.impl.core.NodeProxy
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UndirectedDirectedRelationshipByIdSeekPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UndirectedDirectedRelationshipByIdSeekPipeTest.scala
similarity index 91%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UndirectedDirectedRelationshipByIdSeekPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UndirectedDirectedRelationshipByIdSeekPipeTest.scala
index 89767738fb595..7968dfd790e16 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UndirectedDirectedRelationshipByIdSeekPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UndirectedDirectedRelationshipByIdSeekPipeTest.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.Mockito
-import org.neo4j.cypher.ValueComparisonHelper.beEquivalentTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{ListLiteral, Literal}
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper.beEquivalentTo
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{ListLiteral, Literal}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils.{fromNodeProxy, fromRelationshipProxy}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnionIteratorTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnionIteratorTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnionIteratorTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnionIteratorTest.scala
index 869aa7024add1..465c515df7c38 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnionIteratorTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnionIteratorTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.intValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnwindPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnwindPipeTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnwindPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnwindPipeTest.scala
index 9511565678feb..83a5c62d7d772 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/UnwindPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/UnwindPipeTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Variable
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Variable
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.intValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ValueHashJoinPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ValueHashJoinPipeTest.scala
similarity index 92%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ValueHashJoinPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ValueHashJoinPipeTest.scala
index 04c6778976499..738a392697461 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/ValueHashJoinPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/ValueHashJoinPipeTest.scala
@@ -17,15 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers._
-import org.neo4j.cypher.ValueComparisonHelper.beEquivalentTo
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Variable
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.TestableIterator
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper.beEquivalentTo
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, TestableIterator}
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Variable
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/VarLengthExpandPipeTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/VarLengthExpandPipeTest.scala
similarity index 99%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/VarLengthExpandPipeTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/VarLengthExpandPipeTest.scala
index 6a8501725a109..baa42acf2c689 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/VarLengthExpandPipeTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/VarLengthExpandPipeTest.scala
@@ -17,19 +17,19 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes
+package org.neo4j.cypher.internal.runtime.interpreted.pipes
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.ValueComparisonHelper._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ImplicitValueConversion._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.symbols.SymbolTable
+import org.neo4j.cypher.internal.runtime.interpreted.ValueComparisonHelper._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.ImplicitValueConversion._
+import org.neo4j.cypher.internal.runtime.interpreted.symbols.SymbolTable
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AggregateTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AggregateTest.scala
similarity index 77%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AggregateTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AggregateTest.scala
index ee099442eaae2..25424d94de1f9 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AggregateTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AggregateTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.values.AnyValue
trait AggregateTest {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AvgFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AvgFunctionTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AvgFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AvgFunctionTest.scala
index 92a39a7a83374..59411e6751626 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/AvgFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/AvgFunctionTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{NO_VALUE, doubleValue, intValue, longValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CollectFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CollectFunctionTest.scala
similarity index 89%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CollectFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CollectFunctionTest.scala
index c27decd1a3cd2..03388d6e56ed3 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CollectFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CollectFunctionTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{NO_VALUE, intValue}
import org.neo4j.values.virtual.VirtualValues.{EMPTY_LIST, list}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CountTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CountTest.scala
similarity index 88%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CountTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CountTest.scala
index f70eb87e79cc5..7edc09132f547 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/CountTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/CountTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.LongValue
import org.neo4j.values.storable.Values.{NO_VALUE, intValue, stringValue}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/MaxFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/MaxFunctionTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/MaxFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/MaxFunctionTest.scala
index 75b351581fa52..fc6f4112b44e3 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/MaxFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/MaxFunctionTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{doubleValue, intValue, stringValue}
import org.neo4j.values.storable.{DoubleValue, IntValue, Values}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/MinFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/MinFunctionTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/MinFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/MinFunctionTest.scala
index 6e3cfb1c1ea92..beed0a6ba1e23 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/MinFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/MinFunctionTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.{doubleValue, intValue, stringValue}
import org.neo4j.values.storable.{IntValue, Values}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/PercentileFunctionsTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/PercentileFunctionsTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/PercentileFunctionsTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/PercentileFunctionsTest.scala
index 4372818972f14..5ef609bedd4e3 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/PercentileFunctionsTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/PercentileFunctionsTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, Literal, NumericHelper, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, Literal, NumericHelper, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.kernel.impl.util.ValueUtils
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/StdevFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/StdevFunctionTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/StdevFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/StdevFunctionTest.scala
index 10c4357f9ae7f..05773fb508da4 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/StdevFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/StdevFunctionTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, NumericHelper, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, NumericHelper, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.kernel.impl.util.ValueUtils
import org.neo4j.values.storable.DoubleValue
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/SumFunctionTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/SumFunctionTest.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/SumFunctionTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/SumFunctionTest.scala
index 6c7263047cdae..c4fc3508a8ad0 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/aggregation/SumFunctionTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/aggregation/SumFunctionTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation
import org.neo4j.cypher.internal.util.v3_4.CypherTypeException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values._
import org.neo4j.values.storable.{DoubleValue, LongValue, Values}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/HistoryTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/HistoryTest.scala
similarity index 93%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/HistoryTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/HistoryTest.scala
index 3d74aa4cb4de3..e028cb16b2d31 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/HistoryTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/HistoryTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.{Relationship, RelationshipType}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternRelationshipTest.scala b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternRelationshipTest.scala
similarity index 92%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternRelationshipTest.scala
rename to community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternRelationshipTest.scala
index 11bab2f60fa1e..df04e82f24a39 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/pipes/matching/PatternRelationshipTest.scala
+++ b/community/cypher/interpreted-runtime/src/test/scala/org/neo4j/cypher/internal/runtime/interpreted/pipes/matching/PatternRelationshipTest.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching
+package org.neo4j.cypher.internal.runtime.interpreted.pipes.matching
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
diff --git a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/PlannerQuery.scala b/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/PlannerQuery.scala
index 1531f604589fa..7e48c7fe28ea6 100644
--- a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/PlannerQuery.scala
+++ b/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/PlannerQuery.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.cypher.internal.ir.v3_4
-import org.neo4j.cypher.internal.util.v3_4.InternalException
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, InternalException}
import org.neo4j.cypher.internal.frontend.v3_4.ast.Hint
import org.neo4j.cypher.internal.v3_4.expressions.{LabelName, Variable}
diff --git a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/helpers/ExpressionConverters.scala b/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/helpers/ExpressionConverters.scala
index 5608bdde23aba..a810d77e4aaeb 100644
--- a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/helpers/ExpressionConverters.scala
+++ b/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/helpers/ExpressionConverters.scala
@@ -22,7 +22,7 @@ package org.neo4j.cypher.internal.ir.v3_4.helpers
import org.neo4j.cypher.internal.util.v3_4.{Rewriter, topDown}
import org.neo4j.cypher.internal.frontend.v3_4.ast.rewriters.{LabelPredicateNormalizer, MatchPredicateNormalizerChain, PropertyPredicateNormalizer, addUniquenessPredicates}
import org.neo4j.cypher.internal.v3_4.expressions.{Ands, Expression, HasLabels, Not, Ors, PatternComprehension, PatternExpression, RelationshipChain, Variable}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.UnNamedNameGenerator._
+import org.neo4j.cypher.internal.util.v3_4.UnNamedNameGenerator._
import org.neo4j.cypher.internal.ir.v3_4._
import org.neo4j.cypher.internal.ir.v3_4.helpers.PatternConverters._
import org.neo4j.cypher.internal.ir.v3_4.QueryGraph
diff --git a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/helpers/PatternConverters.scala b/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/helpers/PatternConverters.scala
index 4767e61779267..f54edd430ecd0 100644
--- a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/helpers/PatternConverters.scala
+++ b/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/helpers/PatternConverters.scala
@@ -19,8 +19,7 @@
*/
package org.neo4j.cypher.internal.ir.v3_4.helpers
-import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.FreshIdNameGenerator
+import org.neo4j.cypher.internal.util.v3_4.{FreshIdNameGenerator, InternalException}
import org.neo4j.cypher.internal.ir.v3_4.helpers.ExpressionConverters._
import org.neo4j.cypher.internal.ir.v3_4.{IdName, PatternRelationship, ShortestPathPattern}
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/community/cypher/ir-3.4/src/test/scala/org/neo4j/cypher/internal/ir/v3_4/SelectivityTest.scala b/community/cypher/ir-3.4/src/test/scala/org/neo4j/cypher/internal/ir/v3_4/SelectivityTest.scala
index 8125815d083f3..fda12063abf7b 100644
--- a/community/cypher/ir-3.4/src/test/scala/org/neo4j/cypher/internal/ir/v3_4/SelectivityTest.scala
+++ b/community/cypher/ir-3.4/src/test/scala/org/neo4j/cypher/internal/ir/v3_4/SelectivityTest.scala
@@ -19,6 +19,7 @@
*/
package org.neo4j.cypher.internal.ir.v3_4
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, Selectivity}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
class SelectivityTest extends CypherFunSuite {
diff --git a/community/cypher/planner-spi-3.4/.gitignore b/community/cypher/planner-spi-3.4/.gitignore
new file mode 100644
index 0000000000000..a93ff4661d930
--- /dev/null
+++ b/community/cypher/planner-spi-3.4/.gitignore
@@ -0,0 +1,5 @@
+*.iml
+*.ipr
+*.iws
+target
+.DS_Store
diff --git a/community/cypher/planner-spi-3.4/LICENSE.txt b/community/cypher/planner-spi-3.4/LICENSE.txt
new file mode 100644
index 0000000000000..8057bca2f9d3d
--- /dev/null
+++ b/community/cypher/planner-spi-3.4/LICENSE.txt
@@ -0,0 +1,695 @@
+NOTICE
+This package contains software licensed under different
+licenses, please refer to the NOTICE.txt file for further
+information and LICENSES.txt for full license texts.
+
+The software ("Software") developed and owned by Network Engine for
+Objects in Lund AB (referred to in this notice as "Neo Technology") is
+licensed under the GNU GENERAL PUBLIC LICENSE Version 3 to all third
+parties and that license is included below.
+
+However, if you have executed an End User Software License and Services
+Agreement or an OEM Software License and Support Services Agreement, or
+another commercial license agreement with Neo Technology or one of its
+affiliates (each, a "Commercial Agreement"), the terms of the license in
+such Commercial Agreement will supersede the GNU GENERAL PUBLIC LICENSE
+Version 3 and you may use the Software solely pursuant to the terms of
+the relevant Commercial Agreement.
+
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
+
diff --git a/community/cypher/planner-spi-3.4/LICENSES.txt b/community/cypher/planner-spi-3.4/LICENSES.txt
new file mode 100644
index 0000000000000..0ee24e11c3cc1
--- /dev/null
+++ b/community/cypher/planner-spi-3.4/LICENSES.txt
@@ -0,0 +1,322 @@
+This file contains the full license text of the included third party
+libraries. For an overview of the licenses see the NOTICE.txt file.
+
+------------------------------------------------------------------------------
+Apache Software License, Version 2.0
+ Apache Commons Lang
+ Lucene Core
+ Lucene Memory
+ Netty/All-in-One
+ parboiled-core
+ parboiled-scala
+------------------------------------------------------------------------------
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+------------------------------------------------------------------------------
+BSD - Scala License
+ Scala Library
+------------------------------------------------------------------------------
+
+SCALA LICENSE
+
+Copyright (c) 2002-2012 EPFL, Lausanne, unless otherwise specified.
+All rights reserved.
+
+This software was developed by the Programming Methods Laboratory of the
+Swiss Federal Institute of Technology (EPFL), Lausanne, Switzerland.
+
+Permission to use, copy, modify, and distribute this software in source
+or binary form for any purpose with or without fee is hereby granted,
+provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of the EPFL nor the names of its contributors
+ may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+
+------------------------------------------------------------------------------
+BSD License
+ Scala Compiler
+------------------------------------------------------------------------------
+
+Copyright (c) ,
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+------------------------------------------------------------------------------
+Bouncy Castle License
+ Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
+ Bouncy Castle Provider
+------------------------------------------------------------------------------
+
+Please note: our license is an adaptation of the MIT X11 License and should be
+read as such.
+
+LICENSE
+
+Copyright (c) 2000 - 2011 The Legion Of The Bouncy Castle
+(http://www.bouncycastle.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 AUTHORS OR
+COPYRIGHT HOLDERS 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.
+
+
+
diff --git a/community/cypher/planner-spi-3.4/NOTICE.txt b/community/cypher/planner-spi-3.4/NOTICE.txt
new file mode 100644
index 0000000000000..49d2002309ff1
--- /dev/null
+++ b/community/cypher/planner-spi-3.4/NOTICE.txt
@@ -0,0 +1,45 @@
+Neo4j
+Copyright © 2002-2017 Network Engine for Objects in Lund AB (referred to
+in this notice as "Neo Technology")
+ [http://neotechnology.com]
+
+This product includes software ("Software") developed by Neo Technology.
+
+The copyright in the bundled Neo4j graph database (including the
+Software) is owned by Neo Technology. The Software developed and owned
+by Neo Technology is licensed under the GNU GENERAL PUBLIC LICENSE
+Version 3 (http://www.fsf.org/licensing/licenses/gpl-3.0.html) ("GPL")
+to all third parties and that license, as required by the GPL, is
+included in the LICENSE.txt file.
+
+However, if you have executed an End User Software License and Services
+Agreement or an OEM Software License and Support Services Agreement, or
+another commercial license agreement with Neo Technology or one of its
+affiliates (each, a "Commercial Agreement"), the terms of the license in
+such Commercial Agreement will supersede the GPL and you may use the
+software solely pursuant to the terms of the relevant Commercial
+Agreement.
+
+Full license texts are found in LICENSES.txt.
+
+Third-party licenses
+--------------------
+
+Apache Software License, Version 2.0
+ Apache Commons Lang
+ Lucene Core
+ Lucene Memory
+ Netty/All-in-One
+ parboiled-core
+ parboiled-scala
+
+BSD - Scala License
+ Scala Library
+
+BSD License
+ Scala Compiler
+
+Bouncy Castle License
+ Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
+ Bouncy Castle Provider
+
diff --git a/community/cypher/planner-spi-3.4/pom.xml b/community/cypher/planner-spi-3.4/pom.xml
new file mode 100644
index 0000000000000..25e1cb464ab9c
--- /dev/null
+++ b/community/cypher/planner-spi-3.4/pom.xml
@@ -0,0 +1,122 @@
+
+
+
+ org.neo4j
+ cypher-parent
+ 3.4.0-SNAPSHOT
+ ../
+
+
+ 4.0.0
+ neo4j-cypher-planner-spi-3.4
+ jar
+ 3.4.0-SNAPSHOT
+ Neo4j - Cypher Planner SPI 3.4
+
+ Cypher planner SPI
+ http://components.neo4j.org/${project.artifactId}/${project.version}
+
+
+ scm:git:git://github.com/neo4j/neo4j.git
+ scm:git:git@github.com:neo4j/neo4j.git
+ https://github.com/neo4j/neo4j
+
+
+
+
+ GNU General Public License, Version 3
+ http://www.gnu.org/licenses/gpl-3.0-standalone.html
+ The software ("Software") developed and owned by Network Engine for
+ Objects in Lund AB (referred to in this notice as "Neo Technology") is
+ licensed under the GNU GENERAL PUBLIC LICENSE Version 3 to all third
+ parties and that license is included below.
+
+ However, if you have executed an End User Software License and Services
+ Agreement or an OEM Software License and Support Services Agreement, or
+ another commercial license agreement with Neo Technology or one of its
+ affiliates (each, a "Commercial Agreement"), the terms of the license in
+ such Commercial Agreement will supersede the GNU GENERAL PUBLIC LICENSE
+ Version 3 and you may use the Software solely pursuant to the terms of
+ the relevant Commercial Agreement.
+
+
+
+
+
+
+
+ org.scalastyle
+ scalastyle-maven-plugin
+
+
+
+
+
+
+
+
+
+
+
+ org.neo4j
+ neo4j-cypher-util-3.4
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-cypher-logical-plans-3.4
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-kernel
+ ${project.version}
+
+
+
+
+
+ org.scala-lang
+ scala-library
+
+
+
+ scala-reflect
+ org.scala-lang
+
+
+
+
+
+ org.scalatest
+ scalatest_2.11
+ test
+
+
+ scala-library
+ org.scala-lang
+
+
+
+
+ org.scalacheck
+ scalacheck_2.11
+ test
+
+
+
+
+
+ org.parboiled
+ parboiled-scala_2.11
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/GraphStatistics.scala b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/GraphStatistics.scala
similarity index 93%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/GraphStatistics.scala
rename to community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/GraphStatistics.scala
index f24bb003d6960..a756247ddfea4 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/GraphStatistics.scala
+++ b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/GraphStatistics.scala
@@ -17,11 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.spi
+package org.neo4j.cypher.internal.planner.v3_4.spi
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, RelTypeId}
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, Selectivity}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, RelTypeId, Selectivity}
object GraphStatistics {
val DEFAULT_RANGE_SELECTIVITY = Selectivity.of(0.3).get
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/IdempotentResult.scala b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/IdempotentResult.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/IdempotentResult.scala
rename to community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/IdempotentResult.scala
index aef2a8d3e8c84..3c733aa89345d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/IdempotentResult.scala
+++ b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/IdempotentResult.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.planner.v3_4.spi
final case class IdempotentResult[T](value: T, wasCreated: Boolean = true) {
def ifCreated[R](f: => R): Option[R] = if (wasCreated) Some(f) else None
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/IndexDescriptor.scala b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/IndexDescriptor.scala
similarity index 93%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/IndexDescriptor.scala
rename to community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/IndexDescriptor.scala
index 6b7f1f6b6c03d..b64d9319d3907 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/IndexDescriptor.scala
+++ b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/IndexDescriptor.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
+package org.neo4j.cypher.internal.planner.v3_4.spi
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId}
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, PropertyKeyId}
object IndexDescriptor {
def apply(label: Int, property: Int): IndexDescriptor = IndexDescriptor(LabelId(label), Seq(PropertyKeyId(property)))
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/InstrumentedGraphStatistics.scala b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/InstrumentedGraphStatistics.scala
similarity index 94%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/InstrumentedGraphStatistics.scala
rename to community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/InstrumentedGraphStatistics.scala
index bc8c33705fd3c..cd204fa406837 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/InstrumentedGraphStatistics.scala
+++ b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/InstrumentedGraphStatistics.scala
@@ -17,13 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.spi
+package org.neo4j.cypher.internal.planner.v3_4.spi
import java.lang.Math.{abs, max}
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, RelTypeId}
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, Selectivity}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, LabelId, RelTypeId, Selectivity}
import scala.collection.mutable
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/KernelStatisticProvider.scala b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/KernelStatisticProvider.scala
similarity index 96%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/KernelStatisticProvider.scala
rename to community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/KernelStatisticProvider.scala
index 5addabea56381..0a90e09bc123d 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/KernelStatisticProvider.scala
+++ b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/KernelStatisticProvider.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.spi
+package org.neo4j.cypher.internal.planner.v3_4.spi
/**
* Expose various query execution kernel statistics
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/PlanContext.scala b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/PlanContext.scala
similarity index 95%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/PlanContext.scala
rename to community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/PlanContext.scala
index a7efc3c6751f2..03d1a16ff324f 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/PlanContext.scala
+++ b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/PlanContext.scala
@@ -17,9 +17,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.spi
+package org.neo4j.cypher.internal.planner.v3_4.spi
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
import org.neo4j.cypher.internal.frontend.v3_4.phases.InternalNotificationLogger
import org.neo4j.cypher.internal.v3_4.logical.plans.{ProcedureSignature, QualifiedName, UserFunctionSignature}
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/PlannerName.scala b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/PlannerName.scala
similarity index 97%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/PlannerName.scala
rename to community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/PlannerName.scala
index 49970002c4c1b..e7e9c7be8928b 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/PlannerName.scala
+++ b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/PlannerName.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4
+package org.neo4j.cypher.internal.planner.v3_4.spi
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
diff --git a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/TokenContext.scala b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/TokenContext.scala
similarity index 95%
rename from community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/TokenContext.scala
rename to community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/TokenContext.scala
index 42dba3be00a88..bfbbe79901337 100644
--- a/community/cypher/cypher-compiler-3.4/src/main/scala/org/neo4j/cypher/internal/compiler/v3_4/spi/TokenContext.scala
+++ b/community/cypher/planner-spi-3.4/src/main/scala/org/neo4j/cypher/internal/planner/v3_4/spi/TokenContext.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.spi
+package org.neo4j.cypher.internal.planner.v3_4.spi
trait TokenContext {
def getLabelName(id: Int): String
diff --git a/community/cypher/pom.xml b/community/cypher/pom.xml
index 67f5299b34c0c..85884cc275a0c 100644
--- a/community/cypher/pom.xml
+++ b/community/cypher/pom.xml
@@ -41,9 +41,12 @@
util-3.4
ir-3.4
cypher-compiler-3.4
+ planner-spi-3.4
expressions-3.4
cypher
cypher-logical-plans-3.4
+ runtime-util
+ interpreted-runtime
diff --git a/community/cypher/runtime-util/LICENSES.txt b/community/cypher/runtime-util/LICENSES.txt
new file mode 100644
index 0000000000000..0ee24e11c3cc1
--- /dev/null
+++ b/community/cypher/runtime-util/LICENSES.txt
@@ -0,0 +1,322 @@
+This file contains the full license text of the included third party
+libraries. For an overview of the licenses see the NOTICE.txt file.
+
+------------------------------------------------------------------------------
+Apache Software License, Version 2.0
+ Apache Commons Lang
+ Lucene Core
+ Lucene Memory
+ Netty/All-in-One
+ parboiled-core
+ parboiled-scala
+------------------------------------------------------------------------------
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+------------------------------------------------------------------------------
+BSD - Scala License
+ Scala Library
+------------------------------------------------------------------------------
+
+SCALA LICENSE
+
+Copyright (c) 2002-2012 EPFL, Lausanne, unless otherwise specified.
+All rights reserved.
+
+This software was developed by the Programming Methods Laboratory of the
+Swiss Federal Institute of Technology (EPFL), Lausanne, Switzerland.
+
+Permission to use, copy, modify, and distribute this software in source
+or binary form for any purpose with or without fee is hereby granted,
+provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of the EPFL nor the names of its contributors
+ may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+
+------------------------------------------------------------------------------
+BSD License
+ Scala Compiler
+------------------------------------------------------------------------------
+
+Copyright (c) ,
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+------------------------------------------------------------------------------
+Bouncy Castle License
+ Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
+ Bouncy Castle Provider
+------------------------------------------------------------------------------
+
+Please note: our license is an adaptation of the MIT X11 License and should be
+read as such.
+
+LICENSE
+
+Copyright (c) 2000 - 2011 The Legion Of The Bouncy Castle
+(http://www.bouncycastle.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 AUTHORS OR
+COPYRIGHT HOLDERS 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.
+
+
+
diff --git a/community/cypher/runtime-util/NOTICE.txt b/community/cypher/runtime-util/NOTICE.txt
new file mode 100644
index 0000000000000..49d2002309ff1
--- /dev/null
+++ b/community/cypher/runtime-util/NOTICE.txt
@@ -0,0 +1,45 @@
+Neo4j
+Copyright © 2002-2017 Network Engine for Objects in Lund AB (referred to
+in this notice as "Neo Technology")
+ [http://neotechnology.com]
+
+This product includes software ("Software") developed by Neo Technology.
+
+The copyright in the bundled Neo4j graph database (including the
+Software) is owned by Neo Technology. The Software developed and owned
+by Neo Technology is licensed under the GNU GENERAL PUBLIC LICENSE
+Version 3 (http://www.fsf.org/licensing/licenses/gpl-3.0.html) ("GPL")
+to all third parties and that license, as required by the GPL, is
+included in the LICENSE.txt file.
+
+However, if you have executed an End User Software License and Services
+Agreement or an OEM Software License and Support Services Agreement, or
+another commercial license agreement with Neo Technology or one of its
+affiliates (each, a "Commercial Agreement"), the terms of the license in
+such Commercial Agreement will supersede the GPL and you may use the
+software solely pursuant to the terms of the relevant Commercial
+Agreement.
+
+Full license texts are found in LICENSES.txt.
+
+Third-party licenses
+--------------------
+
+Apache Software License, Version 2.0
+ Apache Commons Lang
+ Lucene Core
+ Lucene Memory
+ Netty/All-in-One
+ parboiled-core
+ parboiled-scala
+
+BSD - Scala License
+ Scala Library
+
+BSD License
+ Scala Compiler
+
+Bouncy Castle License
+ Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs
+ Bouncy Castle Provider
+
diff --git a/community/cypher/runtime-util/pom.xml b/community/cypher/runtime-util/pom.xml
new file mode 100644
index 0000000000000..e0b5c61803e62
--- /dev/null
+++ b/community/cypher/runtime-util/pom.xml
@@ -0,0 +1,161 @@
+
+
+
+ org.neo4j
+ cypher-parent
+ 3.4.0-SNAPSHOT
+ ../
+
+
+ 4.0.0
+ neo4j-cypher-runtime-util
+ jar
+ 3.4.0-SNAPSHOT
+ Neo4j - Cypher Runtime Utilities
+
+ Cypher runtime utilities
+ http://components.neo4j.org/${project.artifactId}/${project.version}
+
+
+ scm:git:git://github.com/neo4j/neo4j.git
+ scm:git:git@github.com:neo4j/neo4j.git
+ https://github.com/neo4j/neo4j
+
+
+
+
+ GNU General Public License, Version 3
+ http://www.gnu.org/licenses/gpl-3.0-standalone.html
+ The software ("Software") developed and owned by Network Engine for
+ Objects in Lund AB (referred to in this notice as "Neo Technology") is
+ licensed under the GNU GENERAL PUBLIC LICENSE Version 3 to all third
+ parties and that license is included below.
+
+ However, if you have executed an End User Software License and Services
+ Agreement or an OEM Software License and Support Services Agreement, or
+ another commercial license agreement with Neo Technology or one of its
+ affiliates (each, a "Commercial Agreement"), the terms of the license in
+ such Commercial Agreement will supersede the GNU GENERAL PUBLIC LICENSE
+ Version 3 and you may use the Software solely pursuant to the terms of
+ the relevant Commercial Agreement.
+
+
+
+
+
+
+
+ org.scalastyle
+ scalastyle-maven-plugin
+
+
+
+
+
+
+
+
+
+
+
+ org.neo4j
+ neo4j-cypher-logical-plans-3.4
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-cypher-planner-spi-3.4
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-values
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-graphdb-api
+ ${project.version}
+
+
+
+ org.neo4j
+ neo4j-kernel
+ ${project.version}
+
+
+
+
+
+ org.scala-lang
+ scala-library
+
+
+
+ org.scala-lang
+ scala-reflect
+
+
+
+
+
+ org.scalatest
+ scalatest_2.11
+ test
+
+
+ scala-library
+ org.scala-lang
+
+
+
+
+ org.scalacheck
+ scalacheck_2.11
+ test
+
+
+
+
+
+ org.parboiled
+ parboiled-scala_2.11
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+ org.neo4j
+ neo4j-cypher-util-3.4
+ ${project.version}
+ test-jar
+ test
+
+
+
+ org.neo4j
+ neo4j-cypher-expression-3.4
+ ${project.version}
+ test-jar
+ test
+
+
+
+ org.neo4j
+ neo4j-kernel
+ ${project.version}
+ test-jar
+ test
+
+
+
+
+
diff --git a/community/cypher/runtime-util/src/main/java/org/neo4j/cypher/internal/javacompat/GraphDatabaseCypherService.java b/community/cypher/runtime-util/src/main/java/org/neo4j/cypher/internal/javacompat/GraphDatabaseCypherService.java
new file mode 100644
index 0000000000000..257e320187078
--- /dev/null
+++ b/community/cypher/runtime-util/src/main/java/org/neo4j/cypher/internal/javacompat/GraphDatabaseCypherService.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2002-2017 "Neo Technology,"
+ * Network Engine for Objects in Lund AB [http://neotechnology.com]
+ *
+ * This file is part of Neo4j.
+ *
+ * Neo4j is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.neo4j.cypher.internal.javacompat;
+
+import java.net.URL;
+import java.util.concurrent.TimeUnit;
+
+import org.neo4j.graphdb.DependencyResolver;
+import org.neo4j.graphdb.GraphDatabaseService;
+import org.neo4j.graphdb.Label;
+import org.neo4j.graphdb.Node;
+import org.neo4j.graphdb.Relationship;
+import org.neo4j.graphdb.security.URLAccessValidationError;
+import org.neo4j.kernel.GraphDatabaseQueryService;
+import org.neo4j.kernel.api.KernelTransaction;
+import org.neo4j.kernel.api.dbms.DbmsOperations;
+import org.neo4j.kernel.api.security.SecurityContext;
+import org.neo4j.kernel.impl.coreapi.InternalTransaction;
+import org.neo4j.kernel.impl.factory.GraphDatabaseFacade;
+
+public class GraphDatabaseCypherService implements GraphDatabaseQueryService
+{
+ private final GraphDatabaseFacade graph;
+ private final DbmsOperations dbmsOperations;
+
+ public GraphDatabaseCypherService( GraphDatabaseService graph )
+ {
+ this.graph = (GraphDatabaseFacade) graph;
+ this.dbmsOperations = getDependencyResolver().resolveDependency( DbmsOperations.class );
+ }
+
+ @Override
+ public DependencyResolver getDependencyResolver()
+ {
+ return graph.getDependencyResolver();
+ }
+
+ @Override
+ public Node createNode()
+ {
+ return graph.createNode();
+ }
+
+ @Override
+ public Long createNodeId()
+ {
+ return graph.createNodeId();
+ }
+
+ @Override
+ public Node createNode( Label... labels )
+ {
+ return graph.createNode( labels );
+ }
+
+ @Override
+ public Node getNodeById( long id )
+ {
+ return graph.getNodeById( id );
+ }
+
+ @Override
+ public Relationship getRelationshipById( long id )
+ {
+ return graph.getRelationshipById( id );
+ }
+
+ @Override
+ public InternalTransaction beginTransaction( KernelTransaction.Type type, SecurityContext securityContext )
+ {
+ return graph.beginTransaction( type, securityContext );
+ }
+
+ @Override
+ public InternalTransaction beginTransaction( KernelTransaction.Type type, SecurityContext securityContext,
+ long timeout, TimeUnit unit )
+ {
+ return graph.beginTransaction( type, securityContext, timeout, unit );
+ }
+
+ @Override
+ public URL validateURLAccess( URL url ) throws URLAccessValidationError
+ {
+ return graph.validateURLAccess( url );
+ }
+
+ @Override
+ public DbmsOperations getDbmsOperations()
+ {
+ return dbmsOperations;
+ }
+
+ // This provides backwards compatibility to the older API for places that cannot (yet) stop using it.
+ // TODO: Remove this when possible (remove RULE, remove older compilers)
+ public GraphDatabaseFacade getGraphDatabaseService()
+ {
+ return graph;
+ }
+}
diff --git a/community/cypher/runtime-util/src/main/java/org/neo4j/cypher/internal/javacompat/ValueToObjectSerializer.java b/community/cypher/runtime-util/src/main/java/org/neo4j/cypher/internal/javacompat/ValueToObjectSerializer.java
new file mode 100644
index 0000000000000..85d5808c0bde5
--- /dev/null
+++ b/community/cypher/runtime-util/src/main/java/org/neo4j/cypher/internal/javacompat/ValueToObjectSerializer.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2002-2017 "Neo Technology,"
+ * Network Engine for Objects in Lund AB [http://neotechnology.com]
+ *
+ * This file is part of Neo4j.
+ *
+ * Neo4j is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.neo4j.cypher.internal.javacompat;
+
+import org.neo4j.cypher.internal.runtime.CartesianPoint;
+import org.neo4j.cypher.internal.runtime.GeographicPoint;
+import org.neo4j.graphdb.Node;
+import org.neo4j.graphdb.Relationship;
+import org.neo4j.graphdb.spatial.Point;
+import org.neo4j.kernel.impl.core.NodeManager;
+import org.neo4j.kernel.impl.util.BaseToObjectValueWriter;
+
+public class ValueToObjectSerializer extends BaseToObjectValueWriter
+{
+ private final NodeManager nodeManager;
+ public ValueToObjectSerializer( NodeManager nodeManager )
+ {
+ super();
+ this.nodeManager = nodeManager;
+ }
+
+ @Override
+ protected Node newNodeProxyById( long id )
+ {
+ return nodeManager.newNodeProxyById( id );
+ }
+
+ @Override
+ protected Relationship newRelationshipProxyById( long id )
+ {
+ return nodeManager.newRelationshipProxyById( id );
+ }
+
+ @Override
+ protected Point newGeographicPoint( double longitude, double latitude, String name, int code, String href )
+ {
+ return new GeographicPoint( longitude, latitude,
+ new org.neo4j.cypher.internal.runtime.CRS( name, code, href ) );
+ }
+
+ @Override
+ protected Point newCartesianPoint( double x, double y, String name, int code, String href )
+ {
+ return new CartesianPoint( x, y,
+ new org.neo4j.cypher.internal.runtime.CRS( name, code, href ) );
+ }
+}
diff --git a/community/cypher/cypher/src/main/java/org/neo4j/cypher/result/QueryResult.java b/community/cypher/runtime-util/src/main/java/org/neo4j/cypher/result/QueryResult.java
similarity index 97%
rename from community/cypher/cypher/src/main/java/org/neo4j/cypher/result/QueryResult.java
rename to community/cypher/runtime-util/src/main/java/org/neo4j/cypher/result/QueryResult.java
index 23c03a30af862..99c98b8782118 100644
--- a/community/cypher/cypher/src/main/java/org/neo4j/cypher/result/QueryResult.java
+++ b/community/cypher/runtime-util/src/main/java/org/neo4j/cypher/result/QueryResult.java
@@ -25,6 +25,9 @@
import org.neo4j.graphdb.QueryStatistics;
import org.neo4j.values.AnyValue;
+/**
+ * The public Result API of Cypher
+ */
public interface QueryResult
{
String[] fieldNames();
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherException.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/CypherException.scala
similarity index 99%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherException.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/CypherException.scala
index 58e4615f87cb2..7f98f90cb10d0 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/CypherException.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/CypherException.scala
@@ -83,8 +83,8 @@ class MissingConstraintException(cause: Throwable) extends CypherException("Cons
class NodeStillHasRelationshipsException(val nodeId: Long, cause: Throwable)
extends CypherException("Node with id " + nodeId + " still has relationships, and cannot be deleted.", cause) {
- val status = Status.Schema.ConstraintValidationFailed
-}
+ val status = Status.Schema.ConstraintValidationFailed
+ }
class ProfilerStatisticsNotReadyException(cause: Throwable) extends CypherException("This result has not been materialised yet. Iterate over it to get profiler stats.", cause) {
val status = Status.Statement.ExecutionFailed
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/SyntaxException.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/SyntaxException.scala
similarity index 100%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/SyntaxException.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/SyntaxException.scala
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/exceptionHandler.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/exceptionHandler.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/exceptionHandler.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/exceptionHandler.scala
index c5137f1f59a68..1e38093e8ccad 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/exceptionHandler.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/exceptionHandler.scala
@@ -17,11 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4
+package org.neo4j.cypher
-import org.neo4j.cypher._
import org.neo4j.cypher.internal.util.v3_4.spi.MapToPublicExceptions
-import org.neo4j.cypher.internal.compatibility.{ExceptionHandler, _}
import org.neo4j.cypher.internal.util.v3_4.{CypherException => InternalCypherException}
object exceptionHandler extends MapToPublicExceptions[CypherException] {
@@ -99,4 +97,8 @@ object exceptionHandler extends MapToPublicExceptions[CypherException] {
}
}
}
+
+ trait RunSafely {
+ def apply[T](body: => T)(implicit f: ExceptionHandler = ExceptionHandler.default): T
+ }
}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ArrayBackedMap.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/ArrayBackedMap.scala
similarity index 98%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ArrayBackedMap.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/ArrayBackedMap.scala
index bdd530085097e..b919be7d5a6ea 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ArrayBackedMap.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/ArrayBackedMap.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime
import scala.reflect._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/Counter.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/Counter.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/Counter.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/Counter.scala
index d28f37a606762..daf0df8e89ed5 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/Counter.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/Counter.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime
object Counter {
def apply(initialCount: Long = 0) = new Counter(initialCount)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionMode.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/ExecutionMode.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionMode.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/ExecutionMode.scala
index d42cf011b122a..a7e2de58774e9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ExecutionMode.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/ExecutionMode.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime
+package org.neo4j.cypher.internal.runtime
import org.neo4j.cypher.internal.util.v3_4.InvalidSemanticsException
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/Geometry.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/Geometry.scala
similarity index 98%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/Geometry.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/Geometry.scala
index a49551c9108a6..2e9dadc6bac28 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/Geometry.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/Geometry.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime
+package org.neo4j.cypher.internal.runtime
import java.util.Collections
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/InternalExecutionResult.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/InternalExecutionResult.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/InternalExecutionResult.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/InternalExecutionResult.scala
index db86369ec53b6..a10e8ac052cd7 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/InternalExecutionResult.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/InternalExecutionResult.scala
@@ -17,14 +17,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal
+package org.neo4j.cypher.internal.runtime
import java.io.PrintWriter
import java.lang
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, ExplainMode, NormalMode, ProfileMode}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.result.QueryResult
import org.neo4j.graphdb.Result.ResultVisitor
import org.neo4j.graphdb._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/InternalQueryType.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/InternalQueryType.scala
similarity index 89%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/InternalQueryType.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/InternalQueryType.scala
index dff58f6275f68..2ea24a75680ca 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/InternalQueryType.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/InternalQueryType.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
+package org.neo4j.cypher.internal.runtime
sealed trait InternalQueryType
@@ -29,4 +29,4 @@ case object WRITE extends InternalQueryType
case object SCHEMA_WRITE extends InternalQueryType
-case object DBMS extends InternalQueryType
\ No newline at end of file
+case object DBMS extends InternalQueryType
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/JavaListWrapper.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/JavaListWrapper.scala
similarity index 95%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/JavaListWrapper.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/JavaListWrapper.scala
index 07ee5e7fbe868..7e478536f618b 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/JavaListWrapper.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/JavaListWrapper.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime
import scala.collection.immutable.IndexedSeq
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ProcedureCallMode.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/ProcedureCallMode.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ProcedureCallMode.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/ProcedureCallMode.scala
index f31af8991fb2e..80cae6c58c6ae 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/executionplan/ProcedureCallMode.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/ProcedureCallMode.scala
@@ -17,9 +17,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan
+package org.neo4j.cypher.internal.runtime
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.cypher.internal.v3_4.logical.plans._
import scala.collection.mutable.ArrayBuffer
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/QueryContext.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryContext.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/QueryContext.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryContext.scala
index a92ab4a1ff4a5..68e8517b68f14 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/QueryContext.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryContext.scala
@@ -17,18 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_4
+package org.neo4j.cypher.internal.runtime
import java.net.URL
import org.neo4j.collection.primitive.PrimitiveLongIterator
-import org.neo4j.cypher.internal.QueryStatistics
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expander, KernelPredicate, UserDefinedAggregator}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.matching.PatternNode
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.compiler.v3_4.spi._
-import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IdempotentResult, IndexDescriptor, KernelStatisticProvider, TokenContext}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
+import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName
import org.neo4j.graphdb.{Node, Path, PropertyContainer, Relationship}
import org.neo4j.kernel.impl.api.store.RelationshipIterator
import org.neo4j.kernel.impl.factory.DatabaseInfo
@@ -163,8 +159,7 @@ trait QueryContext extends TokenContext {
def asObject(value: AnyValue): Any
// Legacy dependency between kernel and compiler
- def variableLengthPathExpand(node: PatternNode,
- realNode: Long,
+ def variableLengthPathExpand(realNode: Long,
minHops: Option[Int],
maxHops: Option[Int],
direction: SemanticDirection,
@@ -260,3 +255,19 @@ trait QueryTransactionalContext {
def databaseInfo: DatabaseInfo
}
+trait KernelPredicate[T] {
+ def test(obj: T): Boolean
+}
+
+trait Expander {
+ def addRelationshipFilter(newFilter: KernelPredicate[PropertyContainer]): Expander
+ def addNodeFilter(newFilter: KernelPredicate[PropertyContainer]): Expander
+ def nodeFilters: Seq[KernelPredicate[PropertyContainer]]
+ def relFilters: Seq[KernelPredicate[PropertyContainer]]
+}
+
+trait UserDefinedAggregator {
+ def update(args: IndexedSeq[Any]): Unit
+ def result: Any
+}
+
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/QueryStatistics.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryStatistics.scala
similarity index 98%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/QueryStatistics.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryStatistics.scala
index aff655d04cb79..5409d28b43556 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/QueryStatistics.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/QueryStatistics.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal
+package org.neo4j.cypher.internal.runtime
import scala.beans.BeanProperty
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeJavaValueConverter.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/RuntimeJavaValueConverter.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeJavaValueConverter.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/RuntimeJavaValueConverter.scala
index 49d6029b94a4e..90948d6571a0d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeJavaValueConverter.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/RuntimeJavaValueConverter.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime
import java.util.{List => JavaList, Map => JavaMap}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly.immutableMapValues
+import org.neo4j.cypher.internal.util.v3_4.Eagerly.immutableMapValues
import org.neo4j.cypher.result.QueryResult.{QueryResultVisitor, Record}
import org.neo4j.values.AnyValue
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeScalaValueConverter.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/RuntimeScalaValueConverter.scala
similarity index 93%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeScalaValueConverter.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/RuntimeScalaValueConverter.scala
index 53d6301f33e62..0d9c053e0034d 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeScalaValueConverter.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/RuntimeScalaValueConverter.scala
@@ -17,14 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime
import java.lang.{Iterable => JavaIterable}
import java.util
import java.util.{Map => JavaMap}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly.immutableMapValues
-import org.neo4j.values.{AnyValue, AnyValues}
+import org.neo4j.cypher.internal.util.v3_4.Eagerly.immutableMapValues
import scala.collection.JavaConverters._
import scala.collection.immutable
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/isGraphKernelResultValue.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/isGraphKernelResultValue.scala
similarity index 96%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/isGraphKernelResultValue.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/isGraphKernelResultValue.scala
index 3830d3a93e459..63e40684dc320 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/isGraphKernelResultValue.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/isGraphKernelResultValue.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal
+package org.neo4j.cypher.internal.runtime
import org.neo4j.graphdb.{Path, PropertyContainer}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/InternalPlanDescription.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/InternalPlanDescription.scala
similarity index 98%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/InternalPlanDescription.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/InternalPlanDescription.scala
index c90744c731bae..752413c550537 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/InternalPlanDescription.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/InternalPlanDescription.scala
@@ -17,16 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
import java.util
+import org.neo4j.cypher.exceptionHandler
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.exceptionHandler
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
-import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlanId, QualifiedName, SeekableArgs}
import org.neo4j.cypher.internal.util.v3_4.symbols.CypherType
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
+import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlanId, QualifiedName, SeekableArgs}
import org.neo4j.cypher.internal.v3_4.{expressions => ast}
import org.neo4j.graphdb.ExecutionPlanDescription
import org.neo4j.graphdb.ExecutionPlanDescription.ProfilerStatistics
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/LogicalPlan2PlanDescription.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/LogicalPlan2PlanDescription.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/LogicalPlan2PlanDescription.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/LogicalPlan2PlanDescription.scala
index 076810111d39a..8178875db5b11 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/LogicalPlan2PlanDescription.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/LogicalPlan2PlanDescription.scala
@@ -17,18 +17,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
-import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
-import org.neo4j.cypher.internal.compiler.v3_4._
-import org.neo4j.cypher.internal.compiler.v3_4.ast.{InequalitySeekRangeWrapper, PrefixSeekRangeWrapper}
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.ir.v3_4.IdName
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
+import org.neo4j.cypher.internal.util.v3_4.InternalException
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelToken, PropertyKeyToken, Expression => ASTExpression}
import org.neo4j.cypher.internal.v3_4.logical.plans
import org.neo4j.cypher.internal.v3_4.logical.plans._
-import org.neo4j.cypher.internal.v3_4.expressions.{Expression => ASTExpression}
object LogicalPlan2PlanDescription extends ((LogicalPlan, PlannerName) => InternalPlanDescription) {
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/PlanDescriptionArgumentSerializer.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/PlanDescriptionArgumentSerializer.scala
similarity index 94%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/PlanDescriptionArgumentSerializer.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/PlanDescriptionArgumentSerializer.scala
index 79279810b07e9..bc2e1d3e2ddd9 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/PlanDescriptionArgumentSerializer.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/PlanDescriptionArgumentSerializer.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.UnNamedNameGenerator._
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
+import org.neo4j.cypher.internal.util.v3_4.UnNamedNameGenerator._
import org.neo4j.cypher.internal.frontend.v3_4.prettifier.ExpressionStringifier
import org.neo4j.cypher.internal.v3_4.expressions
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/renderAsTreeTable.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/renderAsTreeTable.scala
similarity index 98%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/renderAsTreeTable.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/renderAsTreeTable.scala
index eec8a57e990b2..153dbb141fb67 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/renderAsTreeTable.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/renderAsTreeTable.scala
@@ -17,9 +17,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
import scala.collection.{Map, mutable}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/renderSummary.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/renderSummary.scala
similarity index 92%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/renderSummary.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/renderSummary.scala
index b71dabcfda169..1f16c38703fcf 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/renderSummary.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/internal/runtime/planDescription/renderSummary.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
object renderSummary extends (InternalPlanDescription => String) {
def apply(plan: InternalPlanDescription): String =
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/HardcodedGraphStatistics.scala b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/package.scala
similarity index 74%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/HardcodedGraphStatistics.scala
rename to community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/package.scala
index 494c5d96a6b1b..45891a8476d4e 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v2_3/HardcodedGraphStatistics.scala
+++ b/community/cypher/runtime-util/src/main/scala/org/neo4j/cypher/package.scala
@@ -17,9 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v2_3
+package org.neo4j
-//This class should live here, but until we have to touch
-//disk, let's have it in the compiler. Convenient.
-case object HardcodedGraphStatistics
- extends org.neo4j.cypher.internal.compiler.v3_4.HardcodedGraphStatisticsValues
+package object cypher {
+ type ExceptionHandler = Throwable => Unit
+
+ object ExceptionHandler {
+ object default extends ExceptionHandler {
+ def apply(v: Throwable): Unit = {}
+ }
+ }
+}
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/HardcodedGraphStatistics.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseFunSuite.scala
similarity index 74%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/HardcodedGraphStatistics.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseFunSuite.scala
index a51eed4c8268c..1e331ed63c9a1 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/HardcodedGraphStatistics.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseFunSuite.scala
@@ -17,9 +17,8 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.spi.v3_1
+package org.neo4j.cypher
-//This class should live here, but until we have to touch
-//disk, let's have it in the compiler. Convenient.
-case object HardcodedGraphStatistics
- extends org.neo4j.cypher.internal.compiler.v3_1.HardcodedGraphStatisticsValues
+import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
+
+abstract class GraphDatabaseFunSuite extends CypherFunSuite with GraphDatabaseTestSupport
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala
similarity index 84%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala
index af2100a93470a..570cda12150e0 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala
@@ -19,16 +19,8 @@
*/
package org.neo4j.cypher
-import org.mockito.Mockito.when
-import org.neo4j.cypher.internal.compiler.v3_4.CypherCompilerConfiguration
-import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.idp.DefaultIDPSolverConfig
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
-import org.neo4j.cypher.internal.frontend.v3_4.phases.devNullLogger
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.cypher.internal.util.v3_4.test_helpers.{CypherFunSuite, CypherTestSupport}
-import org.neo4j.cypher.internal.helpers.GraphIcing
-import org.neo4j.cypher.internal.spi.v3_4.TransactionBoundQueryContext.IndexSearchMonitor
-import org.neo4j.cypher.internal.spi.v3_4.{TransactionBoundPlanContext, TransactionalContextWrapper}
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.graphdb._
import org.neo4j.graphdb.config.Setting
import org.neo4j.kernel.api.proc._
@@ -261,29 +253,6 @@ trait GraphDatabaseTestSupport extends CypherTestSupport with GraphIcing {
def kernelAPI = graph.getDependencyResolver.resolveDependency(classOf[KernelAPI])
- def planContext(statement: Statement): PlanContext = {
- val tc = mock[TransactionalContextWrapper]
- when(tc.statement).thenReturn(statement)
- when(tc.readOperations).thenReturn(statement.readOperations())
- when(tc.graph).thenReturn(graph)
- new TransactionBoundPlanContext(tc, devNullLogger)
- }
-
- def indexSearchMonitor = kernelMonitors.newMonitor(classOf[IndexSearchMonitor])
-
- val config = CypherCompilerConfiguration(
- queryCacheSize = 100,
- statsDivergenceThreshold = 0.5,
- queryPlanTTL = 1000,
- useErrorsOverWarnings = false,
- nonIndexedLabelWarningThreshold = 10000,
- idpMaxTableSize = DefaultIDPSolverConfig.maxTableSize,
- idpIterationDuration = DefaultIDPSolverConfig.iterationDurationLimit,
- errorIfShortestPathFallbackUsedAtRuntime = false,
- errorIfShortestPathHasCommonNodesAtRuntime = true,
- legacyCsvQuoteEscaping = false
- )
-
case class haveConstraints(expectedConstraints: String*) extends Matcher[GraphDatabaseQueryService] {
def apply(graph: GraphDatabaseQueryService): MatchResult = {
graph.inTx {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/GraphIcing.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphIcing.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/GraphIcing.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphIcing.scala
index cb478af6188b6..ce2b75f4e008a 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/helpers/GraphIcing.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphIcing.scala
@@ -17,14 +17,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.helpers
+package org.neo4j.cypher
import java.util
import java.util.concurrent.TimeUnit
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.RuntimeJavaValueConverter
-import org.neo4j.cypher.internal.isGraphKernelResultValue
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.{RuntimeJavaValueConverter, isGraphKernelResultValue}
import org.neo4j.graphdb.Label._
import org.neo4j.graphdb._
import org.neo4j.kernel.GraphDatabaseQueryService
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ArrayBackedMapTest.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/ArrayBackedMapTest.scala
similarity index 98%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ArrayBackedMapTest.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/ArrayBackedMapTest.scala
index 3d6c8681bbab2..287c8541bff95 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/ArrayBackedMapTest.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/ArrayBackedMapTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/CounterTest.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/CounterTest.scala
similarity index 96%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/CounterTest.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/CounterTest.scala
index 81501d5574f6c..42637cc747d93 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/CounterTest.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/CounterTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/CreateTempFileTestSupport.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/CreateTempFileTestSupport.scala
similarity index 98%
rename from community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/CreateTempFileTestSupport.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/CreateTempFileTestSupport.scala
index eb92a98ece886..eeca5c8096957 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/test_helpers/CreateTempFileTestSupport.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/CreateTempFileTestSupport.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compiler.v3_4.test_helpers
+package org.neo4j.cypher.internal.runtime
import java.io.{FileOutputStream, OutputStreamWriter, PrintWriter}
import java.nio.file.{Files, Path}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ImplicitValueConversion.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/ImplicitValueConversion.scala
similarity index 94%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ImplicitValueConversion.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/ImplicitValueConversion.scala
index d5fab914fd187..9d0c6fb879035 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/ImplicitValueConversion.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/ImplicitValueConversion.scala
@@ -17,15 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime
+package org.neo4j.cypher.internal.runtime
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.PathImpl
import org.neo4j.graphdb.{Node, Path, Relationship}
import org.neo4j.kernel.impl.util.ValueUtils
import org.neo4j.values._
import org.neo4j.values.storable.Values._
import org.neo4j.values.storable._
-import org.neo4j.values.virtual.VirtualValues._
+import org.neo4j.values.virtual.VirtualValues.list
import org.neo4j.values.virtual._
import scala.collection.JavaConverters._
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathImpl.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/PathImpl.scala
similarity index 97%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathImpl.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/PathImpl.scala
index 0a5b033e23b2b..bee657bf71615 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/commands/expressions/PathImpl.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/PathImpl.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions
+package org.neo4j.cypher.internal.runtime
import java.lang.{Iterable => JavaIterable}
import java.util.{Iterator => JavaIterator}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeJavaValueConverterTest.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/RuntimeJavaValueConverterTest.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeJavaValueConverterTest.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/RuntimeJavaValueConverterTest.scala
index 8205dd13dfa27..ae4d47cfacd9a 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeJavaValueConverterTest.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/RuntimeJavaValueConverterTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeScalaValueConverterTest.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/RuntimeScalaValueConverterTest.scala
similarity index 97%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeScalaValueConverterTest.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/RuntimeScalaValueConverterTest.scala
index 6b52b41859710..43584670427bd 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/helpers/RuntimeScalaValueConverterTest.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/RuntimeScalaValueConverterTest.scala
@@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers
+package org.neo4j.cypher.internal.runtime
import java.util
import java.util.Arrays.asList
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/CompactedPlanDescriptionTest.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/CompactedPlanDescriptionTest.scala
similarity index 95%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/CompactedPlanDescriptionTest.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/CompactedPlanDescriptionTest.scala
index 96270b41a645b..ba80dc61c9010 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/CompactedPlanDescriptionTest.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/CompactedPlanDescriptionTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, Rows, Time}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, Rows, Time}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.scalatest.mock.MockitoSugar
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/InternalPlanDescriptionTest.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/InternalPlanDescriptionTest.scala
similarity index 97%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/InternalPlanDescriptionTest.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/InternalPlanDescriptionTest.scala
index 9e0b1b92e181c..9f2126162001f 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/InternalPlanDescriptionTest.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/InternalPlanDescriptionTest.scala
@@ -17,10 +17,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
-import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
+import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
class InternalPlanDescriptionTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/LogicalPlan2PlanDescriptionTest.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/LogicalPlan2PlanDescriptionTest.scala
similarity index 85%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/LogicalPlan2PlanDescriptionTest.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/LogicalPlan2PlanDescriptionTest.scala
index 84281231699a7..d82aff784dd91 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/LogicalPlan2PlanDescriptionTest.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/LogicalPlan2PlanDescriptionTest.scala
@@ -17,16 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
+import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery}
+import org.neo4j.cypher.internal.planner.v3_4.spi.IDPPlannerName
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
+import org.neo4j.cypher.internal.util.v3_4._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.util.v3_4.{DummyPosition, InputPosition}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
-import org.neo4j.cypher.internal.compiler.v3_4.IDPPlannerName
-import org.neo4j.cypher.internal.frontend.v3_4._
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.v3_4.expressions.{SemanticDirection, LabelName => AstLabelName, _}
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, CardinalityEstimation, IdName, PlannerQuery}
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.scalatest.prop.TableDrivenPropertyChecks
@@ -68,11 +66,11 @@ class LogicalPlan2PlanDescriptionTest extends CypherFunSuite with TableDrivenPro
, Expand(lhsLP, IdName("a"), SemanticDirection.OUTGOING, Seq.empty, IdName("b"), IdName("r1"), ExpandAll)(95) ->
PlanDescriptionImpl(id, "Expand(All)", SingleChild(lhsPD), Seq(ExpandExpression("a", "r1", Seq.empty, "b", SemanticDirection.OUTGOING, 1, Some(1)),
- EstimatedRows(95), Version("CYPHER 3.4"), Planner("COST"), PlannerImpl("IDP")), Set("a", "r1", "b"))
+ EstimatedRows(95), Version("CYPHER 3.4"), Planner("COST"), PlannerImpl("IDP")), Set("a", "r1", "b"))
, Expand(lhsLP, IdName("a"), SemanticDirection.OUTGOING, Seq.empty, IdName("a"), IdName("r1"), ExpandInto)(113) ->
PlanDescriptionImpl(id, "Expand(Into)", SingleChild(lhsPD), Seq(ExpandExpression("a", "r1", Seq.empty, "a", SemanticDirection.OUTGOING, 1, Some(1)),
- EstimatedRows(113), Version("CYPHER 3.4"), Planner("COST"), PlannerImpl("IDP")), Set("a", "r1"))
+ EstimatedRows(113), Version("CYPHER 3.4"), Planner("COST"), PlannerImpl("IDP")), Set("a", "r1"))
, NodeHashJoin(Set(IdName("a")), lhsLP, rhsLP)(2345) ->
PlanDescriptionImpl(id, "NodeHashJoin", TwoChildren(lhsPD, rhsPD), Seq(KeyNames(Seq("a")), EstimatedRows(2345), Version("CYPHER 3.4"), Planner("COST"), PlannerImpl("IDP")), Set("a", "b"))
@@ -97,7 +95,7 @@ class LogicalPlan2PlanDescriptionTest extends CypherFunSuite with TableDrivenPro
expectedPlanDescription.children should equal(NoChildren)
case SingleChild(child) =>
shouldBeEqual(child, lhsPD)
- case TwoChildren(l,r) =>
+ case TwoChildren(l, r) =>
shouldBeEqual(l, lhsPD)
shouldBeEqual(r, rhsPD)
}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/PlanDescriptionArgumentSerializerTests.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/PlanDescriptionArgumentSerializerTests.scala
similarity index 82%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/PlanDescriptionArgumentSerializerTests.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/PlanDescriptionArgumentSerializerTests.scala
index c60b20816ba6e..3f87520cd7907 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/PlanDescriptionArgumentSerializerTests.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/PlanDescriptionArgumentSerializerTests.scala
@@ -17,18 +17,16 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
-import org.neo4j.cypher.internal.util.v3_4.DummyPosition
+import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, PlannerQuery}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
+import org.neo4j.cypher.internal.runtime.planDescription.PlanDescriptionArgumentSerializer.serialize
import org.neo4j.cypher.internal.util.v3_4.symbols.{CTBoolean, CTList, CTNode, CTString}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.PlanDescriptionArgumentSerializer.serialize
-import org.neo4j.cypher.internal.compiler.v3_4.ast.NestedPlanExpression
-import org.neo4j.cypher.internal.frontend.v3_4.ast.DummyExpression
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, CardinalityEstimation, PlannerQuery}
-import org.neo4j.cypher.internal.v3_4.expressions.{SemanticDirection, SignedDecimalIntegerLiteral}
-import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, Argument => LPArgument}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, DummyPosition}
+import org.neo4j.cypher.internal.v3_4.expressions.{DummyExpression, SemanticDirection, SignedDecimalIntegerLiteral}
+import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, NestedPlanExpression, Argument => LPArgument}
class PlanDescriptionArgumentSerializerTests extends CypherFunSuite {
val solved = CardinalityEstimation.lift(PlannerQuery.empty, Cardinality(1))
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/RenderSummaryTest.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/RenderSummaryTest.scala
similarity index 90%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/RenderSummaryTest.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/RenderSummaryTest.scala
index c99070af26501..e64edd4a05919 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/RenderSummaryTest.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/RenderSummaryTest.scala
@@ -17,11 +17,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, Rows}
-import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, Rows}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
+import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
class RenderSummaryTest extends CypherFunSuite {
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/RenderTreeTableTest.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/RenderTreeTableTest.scala
similarity index 99%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/RenderTreeTableTest.scala
rename to community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/RenderTreeTableTest.scala
index 637f84cc84486..680bc6845080f 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/planDescription/RenderTreeTableTest.scala
+++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/internal/runtime/planDescription/RenderTreeTableTest.scala
@@ -17,14 +17,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription
+package org.neo4j.cypher.internal.runtime.planDescription
import java.util.Locale
-import org.neo4j.cypher.internal.util.v3_4.DummyPosition
+import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.{CypherFunSuite, WindowsStringSafe}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments._
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, CardinalityEstimation, IdName, PlannerQuery}
+import org.neo4j.cypher.internal.util.v3_4.{Cardinality, DummyPosition}
import org.neo4j.cypher.internal.v3_4.expressions.{Expression => ASTExpression, LabelName => ASTLabelName, Range => ASTRange, _}
import org.neo4j.cypher.internal.v3_4.logical.plans.{Expand, ExpandAll, LogicalPlanId, SingleRow}
import org.scalatest.BeforeAndAfterAll
diff --git a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/Cardinality.scala b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/Cardinality.scala
similarity index 84%
rename from community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/Cardinality.scala
rename to community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/Cardinality.scala
index a6aff09a15dd3..cf4864dfc9cf6 100644
--- a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/Cardinality.scala
+++ b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/Cardinality.scala
@@ -2,22 +2,19 @@
* Copyright (c) 2002-2017 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
- * This file is part of Neo4j.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
-package org.neo4j.cypher.internal.ir.v3_4
+package org.neo4j.cypher.internal.util.v3_4
case class Cardinality(amount: Double) extends Ordered[Cardinality] {
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/helpers/Eagerly.scala b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/Eagerly.scala
similarity index 96%
rename from community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/helpers/Eagerly.scala
rename to community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/Eagerly.scala
index 7df41c0eb1546..eb9f89aa806e1 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/helpers/Eagerly.scala
+++ b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/Eagerly.scala
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.neo4j.cypher.internal.frontend.v3_4.helpers
+package org.neo4j.cypher.internal.util.v3_4
import scala.collection.{immutable, mutable}
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/NameId.scala b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/NameId.scala
similarity index 95%
rename from community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/NameId.scala
rename to community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/NameId.scala
index ea6b31f707512..5b11c68ee2951 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/NameId.scala
+++ b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/NameId.scala
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.neo4j.cypher.internal.frontend.v3_4
+package org.neo4j.cypher.internal.util.v3_4
sealed trait NameId {
def id: Int
diff --git a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/helpers/PrefixNameGenerator.scala b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/PrefixNameGenerator.scala
similarity index 92%
rename from community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/helpers/PrefixNameGenerator.scala
rename to community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/PrefixNameGenerator.scala
index fc1ed57368166..e39080d5ab764 100644
--- a/community/cypher/frontend-3.4/src/main/scala/org/neo4j/cypher/internal/frontend/v3_4/helpers/PrefixNameGenerator.scala
+++ b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/PrefixNameGenerator.scala
@@ -14,9 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.neo4j.cypher.internal.frontend.v3_4.helpers
-
-import org.neo4j.cypher.internal.util.v3_4.InputPosition
+package org.neo4j.cypher.internal.util.v3_4
object FreshIdNameGenerator extends PrefixNameGenerator("FRESHID")
diff --git a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/Selectivity.scala b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/Selectivity.scala
similarity index 60%
rename from community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/Selectivity.scala
rename to community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/Selectivity.scala
index 2edf216f5aa8e..ff31a2ec3ac79 100644
--- a/community/cypher/ir-3.4/src/main/scala/org/neo4j/cypher/internal/ir/v3_4/Selectivity.scala
+++ b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/Selectivity.scala
@@ -2,22 +2,19 @@
* Copyright (c) 2002-2017 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
- * This file is part of Neo4j.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
-package org.neo4j.cypher.internal.ir.v3_4
+package org.neo4j.cypher.internal.util.v3_4
case class Selectivity private(factor: Double) extends Ordered[Selectivity] {
assert(factor >= 0 && factor <= 1.0)
diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/TaskCloser.scala b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/TaskCloser.scala
similarity index 52%
rename from community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/TaskCloser.scala
rename to community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/TaskCloser.scala
index d7f4973c8cc86..256d6eab70015 100644
--- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/TaskCloser.scala
+++ b/community/cypher/util-3.4/src/main/scala/org/neo4j/cypher/internal/util/v3_4/TaskCloser.scala
@@ -2,22 +2,19 @@
* Copyright (c) 2002-2017 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
- * This file is part of Neo4j.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime
+package org.neo4j.cypher.internal.util.v3_4
import scala.collection.mutable.ListBuffer
diff --git a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/helpers/EagerlyTest.scala b/community/cypher/util-3.4/src/test/scala/org/neo4j/cypher/internal/util/v3_4/EagerlyTest.scala
similarity index 70%
rename from community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/helpers/EagerlyTest.scala
rename to community/cypher/util-3.4/src/test/scala/org/neo4j/cypher/internal/util/v3_4/EagerlyTest.scala
index 871d606934dd9..0793915b46212 100644
--- a/community/cypher/cypher-compiler-3.4/src/test/scala/org/neo4j/cypher/internal/compiler/v3_4/helpers/EagerlyTest.scala
+++ b/community/cypher/util-3.4/src/test/scala/org/neo4j/cypher/internal/util/v3_4/EagerlyTest.scala
@@ -2,25 +2,20 @@
* Copyright (c) 2002-2017 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
- * This file is part of Neo4j.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
-package org.neo4j.cypher.internal.compiler.v3_4.helpers
-
+package org.neo4j.cypher.internal.util.v3_4
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import scala.collection.{immutable, mutable}
diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/TaskCloserTest.scala b/community/cypher/util-3.4/src/test/scala/org/neo4j/cypher/internal/util/v3_4/TaskCloserTest.scala
similarity index 73%
rename from community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/TaskCloserTest.scala
rename to community/cypher/util-3.4/src/test/scala/org/neo4j/cypher/internal/util/v3_4/TaskCloserTest.scala
index ac44ff285deaa..ac13d9b4111fc 100644
--- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/TaskCloserTest.scala
+++ b/community/cypher/util-3.4/src/test/scala/org/neo4j/cypher/internal/util/v3_4/TaskCloserTest.scala
@@ -2,22 +2,19 @@
* Copyright (c) 2002-2017 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
- * This file is part of Neo4j.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
- * Neo4j is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
-package org.neo4j.cypher.internal.compatibility.v3_4.runtime
+package org.neo4j.cypher.internal.util.v3_4
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.scalatest.BeforeAndAfter
diff --git a/community/neo4j/src/test/java/org/neo4j/locking/QueryExecutionLocksIT.java b/community/neo4j/src/test/java/org/neo4j/locking/QueryExecutionLocksIT.java
index f633414fc049f..3d8a50226fd0b 100644
--- a/community/neo4j/src/test/java/org/neo4j/locking/QueryExecutionLocksIT.java
+++ b/community/neo4j/src/test/java/org/neo4j/locking/QueryExecutionLocksIT.java
@@ -38,7 +38,7 @@
import org.neo4j.collection.primitive.PrimitiveIntIterator;
import org.neo4j.collection.primitive.PrimitiveLongIterator;
import org.neo4j.cursor.Cursor;
-import org.neo4j.cypher.internal.javacompat.ExecutionEngine;
+//import org.neo4j.cypher.internal.javacompat.ExecutionEngine;
import org.neo4j.graphdb.Direction;
import org.neo4j.graphdb.Label;
import org.neo4j.graphdb.Lock;
@@ -80,6 +80,7 @@
import org.neo4j.kernel.impl.coreapi.PropertyContainerLocker;
import org.neo4j.kernel.impl.locking.ResourceTypes;
import org.neo4j.kernel.impl.query.Neo4jTransactionalContextFactory;
+import org.neo4j.kernel.impl.query.QueryExecutionEngine;
import org.neo4j.kernel.impl.query.QueryExecutionKernelException;
import org.neo4j.kernel.impl.query.TransactionalContext;
import org.neo4j.kernel.impl.query.TransactionalContextFactory;
@@ -202,7 +203,7 @@ private List traceQueryLocks( String query, LockOperationLi
throws QueryExecutionKernelException
{
GraphDatabaseQueryService graph = databaseRule.resolveDependency( GraphDatabaseQueryService.class );
- ExecutionEngine executionEngine = databaseRule.resolveDependency( ExecutionEngine.class );
+ QueryExecutionEngine executionEngine = databaseRule.resolveDependency( QueryExecutionEngine.class );
try ( InternalTransaction tx = graph
.beginTransaction( KernelTransaction.Type.implicit, SecurityContext.AUTH_DISABLED ) )
{
diff --git a/enterprise/cypher/acceptance-spec-suite/pom.xml b/enterprise/cypher/acceptance-spec-suite/pom.xml
index 0b1e92e9cccaf..be7a9c0133c44 100644
--- a/enterprise/cypher/acceptance-spec-suite/pom.xml
+++ b/enterprise/cypher/acceptance-spec-suite/pom.xml
@@ -174,6 +174,14 @@
test-jar
+
+ org.neo4j
+ neo4j-cypher-runtime-util
+ ${project.version}
+ test-jar
+ test
+
+
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/AggregationAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/AggregationAcceptanceTest.scala
index b8501c6fe94ef..ae70c73cec47d 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/AggregationAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/AggregationAcceptanceTest.scala
@@ -23,6 +23,7 @@ import org.neo4j.cypher.ExecutionEngineFunSuite
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport._
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.Versions.V2_3
+
class AggregationAcceptanceTest extends ExecutionEngineFunSuite with CypherComparisonSupport {
// Non-deterministic query -- needs TCK design
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CartesianProductNotificationAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CartesianProductNotificationAcceptanceTest.scala
index 33b15ec80c236..06ded29ab8c64 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CartesianProductNotificationAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CartesianProductNotificationAcceptanceTest.scala
@@ -31,8 +31,11 @@ import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{CachedMetricsFactory, SimpleMetricsFactory}
import org.neo4j.cypher.internal.frontend.v3_4.helpers.rewriting.RewriterStepSequencer
import org.neo4j.cypher.internal.frontend.v3_4.notification.CartesianProductNotification
-import org.neo4j.cypher.internal.frontend.v3_4.phases.{CompilationPhaseTracer, InternalNotificationLogger}
+import org.neo4j.cypher.internal.frontend.v3_4.phases.{CompilationPhaseTracer, InternalNotificationLogger, devNullLogger}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IDPPlannerName, PlanContext}
+import org.neo4j.cypher.internal.runtime.interpreted.{TransactionBoundPlanContext, TransactionalContextWrapper}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
+import org.neo4j.kernel.api.Statement
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge
class CartesianProductNotificationAcceptanceTest extends CypherFunSuite with GraphDatabaseTestSupport {
@@ -136,4 +139,12 @@ class CartesianProductNotificationAcceptanceTest extends CypherFunSuite with Gra
contextCreator = CommunityRuntimeContextCreator
)
}
+
+ private def planContext(statement: Statement): PlanContext = {
+ val tc = mock[TransactionalContextWrapper]
+ when(tc.statement).thenReturn(statement)
+ when(tc.readOperations).thenReturn(statement.readOperations())
+ when(tc.graph).thenReturn(graph)
+ new TransactionBoundPlanContext(tc, devNullLogger)
+ }
}
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CompositeNodeKeyConstraintAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CompositeNodeKeyConstraintAcceptanceTest.scala
index 534e7196da465..0a8b9555d4c15 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CompositeNodeKeyConstraintAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CompositeNodeKeyConstraintAcceptanceTest.scala
@@ -21,7 +21,7 @@ package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher._
import org.neo4j.cypher.internal.frontend.v3_4.helpers.StringHelper._
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.graphdb.ConstraintViolationException
import org.neo4j.graphdb.config.Setting
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport._
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CompositeUniquenessConstraintAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CompositeUniquenessConstraintAcceptanceTest.scala
index e3a8a241d4c74..f326a34cd8b54 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CompositeUniquenessConstraintAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CompositeUniquenessConstraintAcceptanceTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher._
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.graphdb.config.Setting
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.Versions.{Default, v3_4}
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport._
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CreateAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CreateAcceptanceTest.scala
index 9afcbf1f1ba46..1afa86a7d9118 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CreateAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CreateAcceptanceTest.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.internal.cypher.acceptance
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.CreateTempFileTestSupport
+import org.neo4j.cypher.internal.runtime.CreateTempFileTestSupport
import org.neo4j.cypher.{ExecutionEngineFunSuite, QueryStatisticsTestSupport}
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.Configs
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CypherComparisonSupport.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CypherComparisonSupport.scala
index 59ac65ced2904..20f576a1b6820 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CypherComparisonSupport.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/CypherComparisonSupport.scala
@@ -20,19 +20,18 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher._
-import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherTestSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{Planner => IPDPlanner, Runtime => IPDRuntime, Version => IPDVersion}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CRS, CartesianPoint, GeographicPoint}
+import org.neo4j.cypher.internal.RewindableExecutionResult
import org.neo4j.cypher.internal.compiler.v3_1.{CartesianPoint => CartesianPointv3_1, GeographicPoint => GeographicPointv3_1}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly
-import org.neo4j.cypher.internal.{InternalExecutionResult, RewindableExecutionResult}
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{Planner => IPDPlanner, Runtime => IPDRuntime, Version => IPDVersion}
+import org.neo4j.cypher.internal.runtime.{CRS, CartesianPoint, GeographicPoint, InternalExecutionResult}
+import org.neo4j.cypher.internal.util.v3_4.Eagerly
+import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherTestSupport
import org.neo4j.graphdb.Result
import org.neo4j.graphdb.config.Setting
import org.neo4j.graphdb.factory.GraphDatabaseSettings
import org.neo4j.test.TestEnterpriseGraphDatabaseFactory
-import org.scalacheck.Prop.True
import org.scalatest.Assertions
import org.scalatest.matchers.{MatchResult, Matcher}
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/EagerizationAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/EagerizationAcceptanceTest.scala
index 4662e93f2b126..da2cfbf9c44a3 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/EagerizationAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/EagerizationAcceptanceTest.scala
@@ -20,10 +20,8 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.collection.RawIterator
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.Counter
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.CreateTempFileTestSupport
+import org.neo4j.cypher.internal.runtime.{Counter, CreateTempFileTestSupport, InternalExecutionResult}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.{ExecutionEngineFunSuite, QueryStatisticsTestSupport}
import org.neo4j.graphdb.{Direction, Node}
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport._
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LdbcAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LdbcAcceptanceTest.scala
index 3ddbbedebfa29..0aa6b5d0631dd 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LdbcAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LdbcAcceptanceTest.scala
@@ -20,8 +20,8 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher.ExecutionEngineFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.EstimatedRows
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.EstimatedRows
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
/**
* Runs the 14 LDBC queries and checks so that the result is what is expected.
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvAcceptanceTest.scala
index 610623ca86e97..e24d8190590c3 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvAcceptanceTest.scala
@@ -24,8 +24,8 @@ import java.net.{URL, URLConnection, URLStreamHandler, URLStreamHandlerFactory}
import java.util.Collections.emptyMap
import org.neo4j.cypher._
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.CreateTempFileTestSupport
import org.neo4j.cypher.internal.frontend.v3_4.helpers.StringHelper.RichString
+import org.neo4j.cypher.internal.runtime.CreateTempFileTestSupport
import org.neo4j.cypher.internal.v3_4.logical.plans.NodeIndexSeek
import org.neo4j.graphdb.QueryExecutionException
import org.neo4j.graphdb.config.Configuration
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvAcceptanceUserAgentTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvAcceptanceUserAgentTest.scala
index d4796d0a2b08f..bac7854a1b15c 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvAcceptanceUserAgentTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvAcceptanceUserAgentTest.scala
@@ -21,7 +21,7 @@ package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher._
import org.neo4j.cypher.internal.frontend.v3_4.helpers.StringHelper.RichString
-import org.neo4j.cypher.internal.spi.v3_4.CSVResources
+import org.neo4j.cypher.internal.runtime.interpreted.CSVResources
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.{Configs, TestConfiguration}
import org.scalatest.BeforeAndAfterAll
import sun.net.www.protocol.http.HttpURLConnection
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvWithQuotesAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvWithQuotesAcceptanceTest.scala
index d800307f716e0..901c505e9baae 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvWithQuotesAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/LoadCsvWithQuotesAcceptanceTest.scala
@@ -22,9 +22,9 @@ package org.neo4j.internal.cypher.acceptance
import java.io.PrintWriter
import org.neo4j.csv.reader.MissingEndQuoteException
-import org.neo4j.cypher.internal.{InternalExecutionResult, RewindableExecutionResult}
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.CreateTempFileTestSupport
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.RewindableExecutionResult
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.{CreateTempFileTestSupport, InternalExecutionResult}
import org.neo4j.cypher.{ExecutionEngineFunSuite, ExecutionEngineHelper, RunWithConfigTestSupport}
import org.neo4j.graphdb.factory.GraphDatabaseSettings
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchAcceptanceTest.scala
index 3649240c5b2dc..85c9968291555 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchAcceptanceTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.PathImpl
+import org.neo4j.cypher.internal.runtime.PathImpl
import org.neo4j.graphdb._
import org.neo4j.helpers.collection.Iterators.single
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.Configs
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchAggregationsBackedByCountStoreAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchAggregationsBackedByCountStoreAcceptanceTest.scala
index 7d54cc69ff31c..b09cdc6d3d821 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchAggregationsBackedByCountStoreAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchAggregationsBackedByCountStoreAcceptanceTest.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.internal.cypher.acceptance
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.{ExecutionEngineFunSuite, QueryPlanTestSupport, QueryStatisticsTestSupport}
import org.scalatest.matchers.{MatchResult, Matcher}
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.{ComparePlansWithAssertion, Configs, TestConfiguration}
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchLongPatternAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchLongPatternAcceptanceTest.scala
index fdfff878b41cf..6cfc8d95679d1 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchLongPatternAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchLongPatternAcceptanceTest.scala
@@ -23,10 +23,10 @@ import java.io.File
import java.util
import org.neo4j.cypher._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.idp.IDPSolverMonitor
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.internal.{CommunityCompatibilityFactory, ExecutionEngine}
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.graphdb.config.Setting
import org.neo4j.graphdb.factory.GraphDatabaseSettings
import org.neo4j.graphdb.factory.GraphDatabaseSettings.{cypher_idp_solver_duration_threshold, cypher_idp_solver_table_threshold}
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MergeIntoPlanningAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MergeIntoPlanningAcceptanceTest.scala
index a3661284471c9..9e5be3de64269 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MergeIntoPlanningAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MergeIntoPlanningAcceptanceTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher.ExecutionEngineFunSuite
-import org.neo4j.cypher.internal.InternalExecutionResult
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
class MergeIntoPlanningAcceptanceTest extends ExecutionEngineFunSuite{
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MergeNodeCompatibilityAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MergeNodeCompatibilityAcceptanceTest.scala
index d3b0c3b54d3a0..b1c523e51de8c 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MergeNodeCompatibilityAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MergeNodeCompatibilityAcceptanceTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher.internal.helpers.{NodeKeyConstraintCreator, UniquenessConstraintCreator}
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.cypher.{ExecutionEngineFunSuite, MergeConstraintConflictException, QueryStatisticsTestSupport}
import org.neo4j.graphdb.Node
import org.neo4j.graphdb.config.Setting
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/NodeIndexSeekByRangeAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/NodeIndexSeekByRangeAcceptanceTest.scala
index b59205a83da3c..55d8e3eba1ec6 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/NodeIndexSeekByRangeAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/NodeIndexSeekByRangeAcceptanceTest.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.internal.cypher.acceptance
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{IndexSeekByRange, UniqueIndexSeekByRange}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{IndexSeekByRange, UniqueIndexSeekByRange}
import org.neo4j.cypher.{ExecutionEngineFunSuite, SyntaxException}
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport._
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PatternComprehensionAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PatternComprehensionAcceptanceTest.scala
index 0880774d0e3cc..f677276b8e67f 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PatternComprehensionAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PatternComprehensionAcceptanceTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher.ExecutionEngineFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.PathImpl
+import org.neo4j.cypher.internal.runtime.PathImpl
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.Versions.V3_1
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport._
import org.neo4j.kernel.impl.proc.Procedures
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PatternExpressionImplementationAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PatternExpressionImplementationAcceptanceTest.scala
index 428da46f8baee..e35642a1a11e3 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PatternExpressionImplementationAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PatternExpressionImplementationAcceptanceTest.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.internal.cypher.acceptance
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.PathImpl
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{EstimatedRows, ExpandExpression}
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.cypher.ExecutionEngineFunSuite
+import org.neo4j.cypher.internal.runtime.PathImpl
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{EstimatedRows, ExpandExpression}
import org.neo4j.graphdb.Node
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport._
import org.scalatest.Matchers
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PeriodicCommitAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PeriodicCommitAcceptanceTest.scala
index 4ce3147a131f5..b2c957c1368b8 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PeriodicCommitAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PeriodicCommitAcceptanceTest.scala
@@ -22,10 +22,9 @@ package org.neo4j.internal.cypher.acceptance
import java.io.PrintWriter
import org.neo4j.cypher._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{PageCacheHits, PageCacheMisses, Planner, PlannerImpl}
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.CreateTempFileTestSupport
import org.neo4j.cypher.internal.frontend.v3_4.helpers.StringHelper.RichString
-import org.neo4j.cypher.internal.helpers.TxCounts
+import org.neo4j.cypher.internal.runtime.CreateTempFileTestSupport
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{PageCacheHits, PageCacheMisses, PlannerImpl}
import org.neo4j.graphdb.Node
import org.neo4j.kernel.api.KernelTransaction
import org.neo4j.kernel.impl.transaction.log.TransactionIdStore
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PreParsingAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PreParsingAcceptanceTest.scala
index ee09de2abf159..4903440014bb6 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PreParsingAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/PreParsingAcceptanceTest.scala
@@ -20,10 +20,10 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher.ExecutionEngineFunSuite
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments
-import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
+import org.neo4j.cypher.internal.planner.v3_4.spi.{DPPlannerName, IDPPlannerName}
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments
import org.scalatest.matchers.{MatchResult, Matcher}
class PreParsingAcceptanceTest extends ExecutionEngineFunSuite {
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ProfilerAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ProfilerAcceptanceTest.scala
index 10b8662f3208d..52ccdd72b59cd 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ProfilerAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ProfilerAcceptanceTest.scala
@@ -19,16 +19,14 @@
*/
package org.neo4j.internal.cypher.acceptance
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, EstimatedRows, Rows, Signature}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.{Argument, InternalPlanDescription}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.CreateTempFileTestSupport
import org.neo4j.cypher.internal.frontend.v3_4.helpers.StringHelper.RichString
-import org.neo4j.cypher.internal.helpers.TxCounts
+import org.neo4j.cypher.internal.planner.v3_4.spi.GraphStatistics
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, EstimatedRows, Rows, Signature}
import org.neo4j.cypher.internal.util.v3_4.symbols._
+import org.neo4j.cypher.internal.runtime.{CreateTempFileTestSupport, InternalExecutionResult}
+import org.neo4j.cypher.internal.runtime.planDescription.{Argument, InternalPlanDescription}
import org.neo4j.cypher.internal.v3_4.logical.plans.QualifiedName
-import org.neo4j.cypher.{ExecutionEngineFunSuite, ProfilerStatisticsNotReadyException}
+import org.neo4j.cypher.{ExecutionEngineFunSuite, ProfilerStatisticsNotReadyException, TxCounts}
import org.neo4j.graphdb.QueryExecutionException
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.{Configs, TestConfiguration}
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/QueryPlanCompatibilityTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/QueryPlanCompatibilityTest.scala
index 0bfac868e5f55..0f509270c1919 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/QueryPlanCompatibilityTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/QueryPlanCompatibilityTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher.ExecutionEngineFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.{ComparePlansWithAssertion, Configs}
class QueryPlanCompatibilityTest extends ExecutionEngineFunSuite with CypherComparisonSupport {
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathAcceptanceTest.scala
index f45a5e4cc63a1..1e02a2ef98706 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathAcceptanceTest.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.internal.cypher.acceptance
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.PathImpl
-import org.neo4j.cypher.{ExecutionEngineFunSuite}
+import org.neo4j.cypher.ExecutionEngineFunSuite
+import org.neo4j.cypher.internal.runtime.PathImpl
import org.neo4j.graphdb.factory.GraphDatabaseSettings
import org.neo4j.graphdb.{Node, Path}
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport._
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathLongerAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathLongerAcceptanceTest.scala
index b2f88cd0e0815..ba61e1c12a98d 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathLongerAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathLongerAcceptanceTest.scala
@@ -22,11 +22,12 @@ package org.neo4j.internal.cypher.acceptance
import java.util
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.{InternalExecutionResult, RewindableExecutionResult}
+import org.neo4j.cypher.internal.RewindableExecutionResult
import org.neo4j.cypher.internal.compatibility.ClosingExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.Rows
import org.neo4j.cypher.ExecutionEngineFunSuite
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.Rows
import org.neo4j.graphalgo.impl.path.ShortestPath
import org.neo4j.graphalgo.impl.path.ShortestPath.DataMonitor
import org.neo4j.graphdb.factory.GraphDatabaseSettings
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathSameNodeAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathSameNodeAcceptanceTest.scala
index 187d6c77562d7..2e692e6521c92 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathSameNodeAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/ShortestPathSameNodeAcceptanceTest.scala
@@ -19,8 +19,9 @@
*/
package org.neo4j.internal.cypher.acceptance
-import org.neo4j.cypher.internal.{CompatibilityFactory, ExecutionEngine, InternalExecutionResult, RewindableExecutionResult}
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
+import org.neo4j.cypher.internal.{CompatibilityFactory, ExecutionEngine, RewindableExecutionResult}
import org.neo4j.cypher.{ExecutionEngineFunSuite, RunWithConfigTestSupport, ShortestPathCommonEndNodesForbiddenException}
import org.neo4j.graphdb.RelationshipType
import org.neo4j.graphdb.factory.GraphDatabaseSettings
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/SpatialFunctionsAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/SpatialFunctionsAcceptanceTest.scala
index 3292de660bc24..511677bfff101 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/SpatialFunctionsAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/SpatialFunctionsAcceptanceTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher.ExecutionEngineFunSuite
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CRS, CartesianPoint, GeographicPoint}
+import org.neo4j.cypher.internal.runtime.{CRS, CartesianPoint, GeographicPoint}
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.Versions.V3_1
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport._
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/StartsWithImplementationAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/StartsWithImplementationAcceptanceTest.scala
index 4a3038bda6991..8863334572bf4 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/StartsWithImplementationAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/StartsWithImplementationAcceptanceTest.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.internal.cypher.acceptance
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.IndexSeekByRange
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.IndexSeekByRange
import org.neo4j.cypher.{ExecutionEngineFunSuite, QueryStatisticsTestSupport}
import org.neo4j.graphdb.{Node, ResourceIterator}
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.Configs
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/UniqueIndexAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/UniqueIndexAcceptanceTest.scala
index 359d286dc5e3d..8a99c7942900e 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/UniqueIndexAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/UniqueIndexAcceptanceTest.scala
@@ -20,7 +20,7 @@
package org.neo4j.internal.cypher.acceptance
import org.neo4j.cypher.internal.helpers.{NodeKeyConstraintCreator, UniquenessConstraintCreator}
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.cypher.{ExecutionEngineFunSuite, NewPlannerTestSupport}
import org.neo4j.graphdb.config.Setting
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.{ComparePlansWithAssertion, Configs}
diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/UniqueIndexUsageAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/UniqueIndexUsageAcceptanceTest.scala
index fae5fd48bf3c5..728245ea4c826 100644
--- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/UniqueIndexUsageAcceptanceTest.scala
+++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/UniqueIndexUsageAcceptanceTest.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.internal.cypher.acceptance
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.spi.v3_4.TransactionBoundQueryContext.IndexSearchMonitor
import org.neo4j.cypher.ExecutionEngineFunSuite
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor
import org.neo4j.internal.cypher.acceptance.CypherComparisonSupport.{ComparePlansWithAssertion, Configs}
class UniqueIndexUsageAcceptanceTest extends ExecutionEngineFunSuite with CypherComparisonSupport {
diff --git a/enterprise/cypher/cypher/pom.xml b/enterprise/cypher/cypher/pom.xml
index fe2f1ffd4882b..d52da562c95bc 100644
--- a/enterprise/cypher/cypher/pom.xml
+++ b/enterprise/cypher/cypher/pom.xml
@@ -305,6 +305,14 @@
test
+
+ org.neo4j
+ neo4j-cypher-runtime-util
+ ${project.version}
+ test-jar
+ test
+
+
diff --git a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/EnterpriseCypherEngineProvider.java b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/EnterpriseCypherEngineProvider.java
index 5aeade0631f1b..3444ad18ea9aa 100644
--- a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/EnterpriseCypherEngineProvider.java
+++ b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/EnterpriseCypherEngineProvider.java
@@ -21,7 +21,6 @@
import org.neo4j.cypher.internal.CommunityCompatibilityFactory;
import org.neo4j.cypher.internal.EnterpriseCompatibilityFactory;
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService;
import org.neo4j.graphdb.DependencyResolver;
import org.neo4j.helpers.Service;
import org.neo4j.kernel.api.KernelAPI;
diff --git a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/codegen/profiling/ProfilingTracer.java b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/codegen/profiling/ProfilingTracer.java
index d561ab83645ee..b03f9c8fc71c0 100644
--- a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/codegen/profiling/ProfilingTracer.java
+++ b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/codegen/profiling/ProfilingTracer.java
@@ -23,7 +23,7 @@
import java.util.Map;
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.QueryExecutionEvent;
-import org.neo4j.cypher.internal.compiler.v3_4.spi.KernelStatisticProvider;
+import org.neo4j.cypher.internal.planner.v3_4.spi.KernelStatisticProvider;
import org.neo4j.cypher.internal.v3_4.codegen.QueryExecutionTracer;
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId;
import org.neo4j.helpers.MathUtil;
diff --git a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/executionplan/GeneratedQuery.java b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/executionplan/GeneratedQuery.java
index 92a024210f3da..d279989cf220b 100644
--- a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/executionplan/GeneratedQuery.java
+++ b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/executionplan/GeneratedQuery.java
@@ -19,11 +19,11 @@
*/
package org.neo4j.cypher.internal.v3_4.executionplan;
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionMode;
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.TaskCloser;
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.Provider;
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription;
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext;
+import org.neo4j.cypher.internal.runtime.ExecutionMode;
+import org.neo4j.cypher.internal.runtime.QueryContext;
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription;
+import org.neo4j.cypher.internal.util.v3_4.TaskCloser;
import org.neo4j.cypher.internal.v3_4.codegen.QueryExecutionTracer;
import org.neo4j.values.virtual.MapValue;
diff --git a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/executionplan/GeneratedQueryExecution.java b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/executionplan/GeneratedQueryExecution.java
index 38b659db568f8..47e4ee1661622 100644
--- a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/executionplan/GeneratedQueryExecution.java
+++ b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/v3_4/executionplan/GeneratedQueryExecution.java
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.v3_4.executionplan;
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionMode;
+import org.neo4j.cypher.internal.runtime.ExecutionMode;
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.Completable;
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription;
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription;
import org.neo4j.cypher.result.QueryResult;
public interface GeneratedQueryExecution
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/BuildSlottedExecutionPlan.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/BuildSlottedExecutionPlan.scala
index 37b2c98c965c4..07d971b290f58 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/BuildSlottedExecutionPlan.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/BuildSlottedExecutionPlan.scala
@@ -21,22 +21,22 @@ package org.neo4j.cypher.internal
import org.neo4j.cypher.internal.util.v3_4.CypherException
import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.EnterpriseRuntimeContext
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.phases.CompilationState
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.Pipe
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.Pipe
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.SlottedPipeBuilder
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions.SlottedExpressionConverters
import org.neo4j.cypher.internal.compiler.v3_4.CypherCompilerConfiguration
import org.neo4j.cypher.internal.compiler.v3_4.phases.{CompilationContains, LogicalPlanState}
import org.neo4j.cypher.internal.compiler.v3_4.planner.CantCompileQueryException
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, PlanContext}
import org.neo4j.cypher.internal.frontend.v3_4.notification.InternalNotification
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.CompilationPhase.PIPE_BUILDING
import org.neo4j.cypher.internal.frontend.v3_4.phases.{CompilationPhaseTracer, Monitors, Phase}
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, InternalExecutionResult, QueryContext, interpreted}
import org.neo4j.cypher.internal.v3_4.logical.plans.{IndexUsage, LogicalPlan, LogicalPlanId}
import org.neo4j.values.virtual.MapValue
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/BuildCompiledExecutionPlan.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/BuildCompiledExecutionPlan.scala
index 77643662f8c23..a0ecd38ade69a 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/BuildCompiledExecutionPlan.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/BuildCompiledExecutionPlan.scala
@@ -19,23 +19,23 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled
-import org.neo4j.cypher.internal.InternalExecutionResult
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.ExecutionPlanBuilder.DescriptionProvider
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.InternalWrapping.asKernelNotification
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.phases.CompilationState
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{TaskCloser, _}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
import org.neo4j.cypher.internal.compiler.v3_4.phases.LogicalPlanState
import org.neo4j.cypher.internal.compiler.v3_4.planner.CantCompileQueryException
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{GraphStatistics, PlanContext}
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
import org.neo4j.cypher.internal.frontend.v3_4.notification.InternalNotification
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.CompilationPhase.CODE_GENERATION
import org.neo4j.cypher.internal.frontend.v3_4.phases.Phase
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.{GraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.util.v3_4.TaskCloser
import org.neo4j.cypher.internal.v3_4.codegen.profiling.ProfilingTracer
import org.neo4j.cypher.internal.v3_4.logical.plans.IndexUsage
import org.neo4j.values.virtual.MapValue
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/CompiledExecutionResult.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/CompiledExecutionResult.scala
index 8cad51922ec49..c04d8e82135a9 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/CompiledExecutionResult.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/CompiledExecutionResult.scala
@@ -19,14 +19,13 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled
-import org.neo4j.cypher.internal.util.v3_4.ProfilerStatisticsNotReadyException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{InternalQueryType, Provider, READ_ONLY, StandardInternalExecutionResult}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{Runtime, RuntimeImpl}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CompiledRuntimeName, ExecutionMode, TaskCloser}
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.util.v3_4.{ProfilerStatisticsNotReadyException, TaskCloser}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{Provider, StandardInternalExecutionResult}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.CompiledRuntimeName
import org.neo4j.cypher.internal.v3_4.executionplan.GeneratedQueryExecution
-import org.neo4j.cypher.internal.{InternalExecutionResult, QueryStatistics}
+import org.neo4j.cypher.internal.runtime._
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{Runtime, RuntimeImpl}
import org.neo4j.cypher.result.QueryResult.QueryResultVisitor
import org.neo4j.graphdb.Notification
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/EnterpriseRuntimeContext.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/EnterpriseRuntimeContext.scala
index bd5223ddf3378..6faad20a851a7 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/EnterpriseRuntimeContext.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/EnterpriseRuntimeContext.scala
@@ -25,9 +25,9 @@ import org.neo4j.cypher.internal.util.v3_4.{CypherException, InputPosition}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.CommunityRuntimeContext
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.spi.CodeStructure
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{ExpressionEvaluator, Metrics, MetricsFactory, QueryGraphSolver}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.compiler.v3_4.{ContextCreator, CypherCompilerConfiguration, SyntaxExceptionCreator, UpdateStrategy}
import org.neo4j.cypher.internal.frontend.v3_4.phases.{CompilationPhaseTracer, InternalNotificationLogger, Monitors}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.v3_4.executionplan.GeneratedQuery
class EnterpriseRuntimeContext(override val exceptionCreator: (String, InputPosition) => CypherException,
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/ExecutionPlanBuilder.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/ExecutionPlanBuilder.scala
index d0b6d9592cc8d..ecba455277029 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/ExecutionPlanBuilder.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/ExecutionPlanBuilder.scala
@@ -19,14 +19,15 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled
-import org.neo4j.cypher.internal.InternalExecutionResult
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.ExecutionPlanBuilder.DescriptionProvider
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{PeriodicCommitInfo, PlanFingerprint, Provider}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CompiledRuntimeName, ExecutionMode, ProfileMode, TaskCloser}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.CompiledRuntimeName
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, InternalExecutionResult, ProfileMode, QueryContext}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments
+import org.neo4j.cypher.internal.spi.v3_4
+import org.neo4j.cypher.internal.util.v3_4.TaskCloser
import org.neo4j.cypher.internal.v3_4.codegen.QueryExecutionTracer
import org.neo4j.cypher.internal.v3_4.codegen.profiling.ProfilingTracer
import org.neo4j.cypher.internal.v3_4.logical.plans.IndexUsage
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/CodeGenerator.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/CodeGenerator.scala
index 8ad577321ae41..e88a981b17400 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/CodeGenerator.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/CodeGenerator.scala
@@ -22,21 +22,20 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen
import java.time.Clock
import java.util
-import org.neo4j.cypher.internal.InternalExecutionResult
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.ExecutionPlanBuilder.DescriptionProvider
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.ir._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.spi.{CodeStructure, CodeStructureResult}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.{CompiledExecutionResult, CompiledPlan, RunnablePlan}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{PlanFingerprint, Provider}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{Runtime, RuntimeImpl}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.{InternalPlanDescription, LogicalPlan2PlanDescription}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CompiledRuntimeName, ExecutionMode, TaskCloser}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.CompiledRuntimeName
import org.neo4j.cypher.internal.compiler.v3_4.planner.CantCompileQueryException
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{InstrumentedGraphStatistics, PlanContext}
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.{InstrumentedGraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{Runtime, RuntimeImpl}
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, InternalExecutionResult, QueryContext}
+import org.neo4j.cypher.internal.runtime.planDescription.{InternalPlanDescription, LogicalPlan2PlanDescription}
+import org.neo4j.cypher.internal.util.v3_4.{Eagerly, TaskCloser}
import org.neo4j.cypher.internal.v3_4.codegen.QueryExecutionTracer
import org.neo4j.cypher.internal.v3_4.executionplan.{GeneratedQuery, GeneratedQueryExecution}
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, LogicalPlanId, ProduceResult}
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/LogicalPlanConverter.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/LogicalPlanConverter.scala
index e7b2b113a84ad..2e0c2645e519f 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/LogicalPlanConverter.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/LogicalPlanConverter.scala
@@ -29,7 +29,7 @@ import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.spi
import org.neo4j.cypher.internal.compiler.v3_4.planner.CantCompileQueryException
import org.neo4j.cypher.internal.util.v3_4.Foldable._
import org.neo4j.cypher.internal.v3_4.expressions.Expression
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly.immutableMapValues
+import org.neo4j.cypher.internal.util.v3_4.Eagerly.immutableMapValues
import org.neo4j.cypher.internal.v3_4.{expressions => ast}
import org.neo4j.cypher.internal.ir.v3_4.IdName
import org.neo4j.cypher.internal.v3_4.logical.plans
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/spi/CodeStructureResult.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/spi/CodeStructureResult.scala
index 3663ecb5e7e1c..fbb58819ac321 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/spi/CodeStructureResult.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/codegen/spi/CodeStructureResult.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.spi
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.Argument
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{ByteCode, SourceCode}
+import org.neo4j.cypher.internal.runtime.planDescription.Argument
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{ByteCode, SourceCode}
trait CodeStructureResult[T] {
def query: T
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/helpers/LiteralTypeSupport.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/helpers/LiteralTypeSupport.scala
index 7449cd332ef86..2453726516cf6 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/helpers/LiteralTypeSupport.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/compiled/helpers/LiteralTypeSupport.scala
@@ -21,8 +21,8 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.helpers
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.ir.expressions
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.ir.expressions.{BoolType, CypherCodeGenType, ListReferenceType, LongType, ReferenceType, RepresentationType}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
import org.neo4j.cypher.internal.compiler.v3_4.helpers.IsList
+import org.neo4j.cypher.internal.runtime.interpreted.IsMap
import org.neo4j.cypher.internal.util.v3_4.symbols._
object LiteralTypeSupport {
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/GeneratedMethodStructure.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/GeneratedMethodStructure.scala
index 2bc2019917542..4fcaae2ce8255 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/GeneratedMethodStructure.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/GeneratedMethodStructure.scala
@@ -33,7 +33,7 @@ import org.neo4j.cypher.internal.util.v3_4.{ParameterNotFoundException, symbols}
import org.neo4j.cypher.internal.util.v3_4.symbols.{CTInteger, CTNode, CTRelationship, ListType}
import org.neo4j.cypher.internal.codegen.CompiledConversionUtils.CompositeKey
import org.neo4j.cypher.internal.codegen._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.DirectionConverter.toGraphDb
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.DirectionConverter.toGraphDb
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.ir.expressions.{BoolType, CodeGenType, CypherCodeGenType, FloatType, ListReferenceType, LongType, ReferenceType, RepresentationType, Parameter => _}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.spi._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.{CodeGenContext, QueryExecutionEvent}
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/GeneratedQueryStructure.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/GeneratedQueryStructure.scala
index 73e93536c85b1..96f78fc54dcfb 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/GeneratedQueryStructure.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/GeneratedQueryStructure.scala
@@ -29,18 +29,17 @@ import org.neo4j.codegen.bytecode.ByteCode.{BYTECODE, VERIFY_GENERATED_BYTECODE}
import org.neo4j.codegen.source.SourceCode.SOURCECODE
import org.neo4j.codegen.source.{SourceCode, SourceVisitor}
import org.neo4j.codegen.{CodeGenerator, Parameter, _}
-import org.neo4j.cypher.internal.util.v3_4.symbols
+import org.neo4j.cypher.internal.util.v3_4.{TaskCloser, symbols}
import org.neo4j.cypher.internal.codegen.{PrimitiveNodeStream, PrimitiveRelationshipStream}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.ir.expressions._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.spi.{CodeStructure, CodeStructureResult, MethodStructure}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{Completable, Provider}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, TaskCloser}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.frontend.v3_4.helpers.using
import org.neo4j.cypher.internal.javacompat.ResultRecord
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, QueryContext}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.internal.v3_4.codegen.QueryExecutionTracer
import org.neo4j.cypher.internal.v3_4.executionplan.{GeneratedQuery, GeneratedQueryExecution}
import org.neo4j.cypher.result.QueryResult.QueryResultVisitor
diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/Templates.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/Templates.scala
index 0d4351f8cf5b4..f78e7899200bb 100644
--- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/Templates.scala
+++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_4/codegen/Templates.scala
@@ -29,14 +29,13 @@ import org.neo4j.codegen.MethodDeclaration.Builder
import org.neo4j.codegen.MethodReference._
import org.neo4j.codegen._
import org.neo4j.collection.primitive.{Primitive, PrimitiveLongIntMap, PrimitiveLongObjectMap}
-import org.neo4j.cypher.internal.util.v3_4.CypherExecutionException
+import org.neo4j.cypher.internal.util.v3_4.{CypherExecutionException, TaskCloser}
import org.neo4j.cypher.internal.codegen.{PrimitiveNodeStream, PrimitiveRelationshipStream}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{Completable, Provider}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, TaskCloser}
import org.neo4j.cypher.internal.frontend.v3_4.helpers.using
import org.neo4j.cypher.internal.javacompat.ResultRowImpl
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, QueryTransactionalContext}
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, QueryContext, QueryTransactionalContext}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.internal.v3_4.codegen.QueryExecutionTracer
import org.neo4j.graphdb.Direction
import org.neo4j.internal.kernel.api.TokenNameLookup
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/CloseTransactionTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/CloseTransactionTest.scala
index ba4df60ca7c02..9ce5007bccaf4 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/CloseTransactionTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/CloseTransactionTest.scala
@@ -25,9 +25,8 @@ import org.neo4j.collection.RawIterator
import org.neo4j.collection.primitive.PrimitiveLongCollections
import org.neo4j.cypher.ExecutionEngineHelper.createEngine
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.helpers.GraphIcing
import org.neo4j.cypher.internal.ExecutionEngine
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.graphdb.{GraphDatabaseService, Result}
import org.neo4j.graphdb.Result.{ResultRow, ResultVisitor}
import org.neo4j.kernel.GraphDatabaseQueryService
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/CypherCompatibilityTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/CypherCompatibilityTest.scala
index 01645c5656676..e72c3f200a371 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/CypherCompatibilityTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/CypherCompatibilityTest.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.cypher
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.graphdb.QueryExecutionException
import org.neo4j.graphdb.factory.GraphDatabaseSettings
import org.neo4j.kernel.api.exceptions.Status
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineIT.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineIT.scala
index b9d6e9aa82c99..310af0e508a9f 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineIT.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineIT.scala
@@ -23,9 +23,8 @@ import java.util
import org.neo4j.collection.RawIterator
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.helpers.GraphIcing
import org.neo4j.cypher.internal.ExecutionEngine
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.graphdb.{ExecutionPlanDescription, Result}
import org.neo4j.graphdb.Result.{ResultRow, ResultVisitor}
import org.neo4j.kernel.api.Statement
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTest.scala
index e6efda1f74a50..9acc4e4914537 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTest.scala
@@ -23,11 +23,11 @@ import java.io.{File, PrintWriter}
import org.neo4j.cypher.ExecutionEngineHelper.createEngine
import org.neo4j.cypher.internal.ExecutionEngine
-import org.neo4j.cypher.internal.compiler.v3_4.test_helpers.CreateTempFileTestSupport
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.CompilationPhase
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.runtime.CreateTempFileTestSupport
import org.neo4j.cypher.internal.tracing.TimingCompilationTracer
import org.neo4j.cypher.internal.tracing.TimingCompilationTracer.QueryEvent
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.graphdb._
import org.neo4j.graphdb.config.Setting
import org.neo4j.graphdb.factory.GraphDatabaseSettings
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/NewPlannerTestSupport.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/NewPlannerTestSupport.scala
index 0b3bc813475cb..921c16915581b 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/NewPlannerTestSupport.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/NewPlannerTestSupport.scala
@@ -22,21 +22,17 @@ package org.neo4j.cypher
import org.neo4j.cypher.NewPlannerMonitor.{NewPlannerMonitorCall, UnableToHandleQuery}
import org.neo4j.cypher.NewRuntimeMonitor.{NewPlanSeen, NewRuntimeMonitorCall, UnableToCompileQuery}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.NewRuntimeSuccessRateMonitor
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CRS, CartesianPoint, GeographicPoint}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.NewRuntimeSuccessRateMonitor
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CRS, CartesianPoint, GeographicPoint}
import org.neo4j.cypher.internal.compiler.v3_1.{CartesianPoint => CartesianPointv3_1, GeographicPoint => GeographicPointv3_1}
import org.neo4j.cypher.internal.compiler.v3_4.planner.CantCompileQueryException
-import org.neo4j.cypher.internal.frontend.v3_4.helpers.Eagerly
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlan
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherTestSupport
-import org.neo4j.cypher.internal.{InternalExecutionResult, RewindableExecutionResult}
+import org.neo4j.cypher.internal.RewindableExecutionResult
+import org.neo4j.cypher.internal.runtime.{CRS, CartesianPoint, GeographicPoint, InternalExecutionResult}
+import org.neo4j.cypher.internal.util.v3_4.Eagerly
import org.neo4j.graphdb.Result
import org.neo4j.graphdb.config.Setting
import org.neo4j.graphdb.factory.GraphDatabaseSettings
import org.neo4j.helpers.Exceptions
-import org.scalatest.matchers.{MatchResult, Matcher}
import scala.util.{Failure, Success, Try}
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/RootPlanAcceptanceTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/RootPlanAcceptanceTest.scala
index e12622be3fbd9..75446440de752 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/RootPlanAcceptanceTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/RootPlanAcceptanceTest.scala
@@ -19,9 +19,10 @@
*/
package org.neo4j.cypher
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CompiledRuntimeName, SlottedRuntimeName, InterpretedRuntimeName, RuntimeName}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{CompiledRuntimeName, InterpretedRuntimeName, RuntimeName, SlottedRuntimeName}
import org.neo4j.cypher.internal.compiler.v3_4._
import org.neo4j.cypher.internal.frontend.v3_4.PlannerName
+import org.neo4j.cypher.internal.planner.v3_4.spi.{CostBasedPlannerName, DPPlannerName, IDPPlannerName}
import org.neo4j.graphdb.ExecutionPlanDescription
class RootPlanAcceptanceTest extends ExecutionEngineFunSuite {
@@ -114,7 +115,7 @@ class RootPlanAcceptanceTest extends ExecutionEngineFunSuite {
!code.isEmpty
case _ => false
}) {
- fail("no $argument present: " + planDescription)
+ fail(s"no $argument present: $planDescription")
}
}
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/VarLengthPlanningTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/VarLengthPlanningTest.scala
index 80e15b124cd0d..c3822f8dd15a5 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/VarLengthPlanningTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/VarLengthPlanningTest.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.internal.v3_4.expressions.NoneIterablePredicate
import org.neo4j.graphdb.Direction._
import org.neo4j.graphdb.{Direction, Node}
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/SlottedPipeBuilderTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/SlottedPipeBuilderTest.scala
index f1140ca789334..caa6ae576582a 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/SlottedPipeBuilderTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/SlottedPipeBuilderTest.scala
@@ -23,25 +23,24 @@ import org.mockito.Mockito._
import org.neo4j.cypher.internal.BuildSlottedExecutionPlan.EnterprisePipeBuilderFactory
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Literal, Property, Variable}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.KeyToken
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.values.TokenType.PropertyKey
+import org.neo4j.cypher.internal.runtime.interpreted.commands
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{CommunityExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Literal, Property, Variable}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.KeyToken
+import org.neo4j.cypher.internal.runtime.interpreted.commands.values.TokenType.PropertyKey
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.EnterpriseRuntimeContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.{pipes => slottedPipes}
import org.neo4j.cypher.internal.compiled_runtime.v3_4.codegen.CompiledRuntimeContextHelper
-import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport2
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
-import org.neo4j.cypher.internal.compiler.v3_4.{HardcodedGraphStatistics, IDPPlannerName}
-import org.neo4j.cypher.internal.frontend.v3_4.ast._
+import org.neo4j.cypher.internal.compiler.v3_4.planner.{HardcodedGraphStatistics, LogicalPlanningTestSupport2}
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.util.v3_4.symbols.{CTAny, CTList, CTNode, CTRelationship}
-import org.neo4j.cypher.internal.frontend.v3_4.{LabelId, PropertyKeyId, ast}
import org.neo4j.cypher.internal.ir.v3_4.{IdName, VarPatternLength}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{IDPPlannerName, PlanContext}
+import org.neo4j.cypher.internal.util.v3_4.{LabelId, PropertyKeyId}
import org.neo4j.cypher.internal.v3_4.logical.plans
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/spi/v3_4/GeneratedMethodStructureTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/spi/v3_4/GeneratedMethodStructureTest.scala
index 02d359dc7e070..8ffab3dd35834 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/spi/v3_4/GeneratedMethodStructureTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/spi/v3_4/GeneratedMethodStructureTest.scala
@@ -29,12 +29,11 @@ import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.Cod
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.ir.expressions.{CodeGenType, CypherCodeGenType, ReferenceType}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.spi._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{Completable, Provider}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, TaskCloser}
import org.neo4j.cypher.internal.frontend.v3_4.helpers._
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.util.v3_4.symbols
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, QueryContext}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
+import org.neo4j.cypher.internal.util.v3_4.{TaskCloser, symbols}
import org.neo4j.cypher.internal.spi.v3_4.codegen.GeneratedQueryStructure.typeRef
import org.neo4j.cypher.internal.spi.v3_4.codegen.{GeneratedMethodStructure, Methods, _}
import org.neo4j.cypher.internal.v3_4.codegen.QueryExecutionTracer
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/BuildCompiledExecutionPlanTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/BuildCompiledExecutionPlanTest.scala
index edd1fa5215bf5..2fdd425ac0f49 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/BuildCompiledExecutionPlanTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/BuildCompiledExecutionPlanTest.scala
@@ -23,12 +23,12 @@ import org.neo4j.cypher.internal.compatibility.v3_4.WrappedMonitors
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.BuildCompiledExecutionPlan
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.NewRuntimeSuccessRateMonitor
import org.neo4j.cypher.internal.compiler.v3_4.phases.LogicalPlanState
-import org.neo4j.cypher.internal.compiler.v3_4.planner.CantCompileQueryException
-import org.neo4j.cypher.internal.compiler.v3_4.spi.GraphStatistics
-import org.neo4j.cypher.internal.compiler.v3_4.{CostBasedPlannerName, HardcodedGraphStatistics, NotImplementedPlanContext}
+import org.neo4j.cypher.internal.compiler.v3_4.planner.{CantCompileQueryException, HardcodedGraphStatistics}
+import org.neo4j.cypher.internal.compiler.v3_4.NotImplementedPlanContext
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, QueryGraph, RegularPlannerQuery}
+import org.neo4j.cypher.internal.planner.v3_4.spi.{CostBasedPlannerName, GraphStatistics}
import org.neo4j.cypher.internal.spi.v3_4.codegen.GeneratedQueryStructure
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, ProduceResult, SingleRow}
import org.neo4j.kernel.monitoring.Monitors
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/TypeConversionTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/TypeConversionTest.scala
index f67a1bb555fd8..8b6e8947932a8 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/TypeConversionTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/TypeConversionTest.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.cypher.internal.compiled_runtime.v3_4
-import org.neo4j.cypher.internal.InternalExecutionResult
+import org.neo4j.cypher.internal.runtime.InternalExecutionResult
import org.neo4j.cypher.{CypherTypeException, ExecutionEngineFunSuite}
class TypeConversionTest extends ExecutionEngineFunSuite {
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CodeGeneratorTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CodeGeneratorTest.scala
index f7418f06e41bb..236a7c1c15c10 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CodeGeneratorTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CodeGeneratorTest.scala
@@ -27,22 +27,20 @@ import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
import org.neo4j.collection.primitive.PrimitiveLongIterator
-import org.neo4j.cypher.internal.InternalExecutionResult
-import org.neo4j.cypher.internal.util.v3_4.ParameterNotFoundException
+import org.neo4j.cypher.internal.util.v3_4.{ParameterNotFoundException, PropertyKeyId, TaskCloser}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.ExecutionPlanBuilder.tracer
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.{ByteCodeMode, CodeGenConfiguration, CodeGenerator, SourceCodeMode}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{NormalMode, TaskCloser}
-import org.neo4j.cypher.internal.compiler.v3_4.CostBasedPlannerName
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport
-import org.neo4j.cypher.internal.frontend.v3_4.PropertyKeyId
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.frontend.v3_4.ast
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.ir.v3_4.IdName
+import org.neo4j.cypher.internal.planner.v3_4.spi.CostBasedPlannerName
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionalContextWrapper
+import org.neo4j.cypher.internal.runtime.{InternalExecutionResult, NormalMode, QueryContext}
import org.neo4j.cypher.internal.spi.v3_4.codegen.GeneratedQueryStructure
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, TransactionalContextWrapper}
import org.neo4j.cypher.internal.v3_4.logical.plans
import org.neo4j.cypher.internal.v3_4.logical.plans.{Ascending, Descending, _}
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CompiledExecutionResultTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CompiledExecutionResultTest.scala
index 014108353b944..5ba21d6af3b6d 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CompiledExecutionResultTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CompiledExecutionResultTest.scala
@@ -28,11 +28,11 @@ import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.CompiledExecutionResult
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.Completable
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, NormalMode, TaskCloser}
import org.neo4j.cypher.internal.javacompat.ResultRecord
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, NormalMode, QueryContext}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
+import org.neo4j.cypher.internal.util.v3_4.TaskCloser
import org.neo4j.cypher.internal.v3_4.executionplan.GeneratedQueryExecution
import org.neo4j.cypher.result.QueryResult.QueryResultVisitor
import org.neo4j.graphdb.NotFoundException
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CompiledRuntimeContextHelper.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CompiledRuntimeContextHelper.scala
index 2cc2eb2b33f77..fa8317ee5e8c4 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CompiledRuntimeContextHelper.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/CompiledRuntimeContextHelper.scala
@@ -26,10 +26,10 @@ import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.EnterpriseR
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.spi.CodeStructure
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.{PlanFingerprint, PlanFingerprintReference}
import org.neo4j.cypher.internal.compiler.v3_4.planner.logical.{Metrics, QueryGraphSolver}
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.compiler.v3_4.{CypherCompilerConfiguration, NotImplementedPlanContext, UpdateStrategy}
import org.neo4j.cypher.internal.frontend.v3_4.phases.CompilationPhaseTracer.NO_TRACING
import org.neo4j.cypher.internal.frontend.v3_4.phases.{CompilationPhaseTracer, InternalNotificationLogger, Monitors, devNullLogger}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.v3_4.executionplan.GeneratedQuery
import org.scalatest.mock.MockitoSugar
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/BuildProbeTableInstructionsTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/BuildProbeTableInstructionsTest.scala
index fc20002382fc9..0287682c13322 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/BuildProbeTableInstructionsTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/BuildProbeTableInstructionsTest.scala
@@ -34,7 +34,8 @@ import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.{Co
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, TransactionalContextWrapper}
+import org.neo4j.cypher.internal.runtime.QueryContext
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionalContextWrapper
import org.neo4j.graphdb.Node
import org.neo4j.kernel.api.ReadOperations
import org.neo4j.kernel.impl.core.{NodeManager, NodeProxy}
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/CodeGenSugar.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/CodeGenSugar.scala
index 0aa3fffc490ae..99a9a9db22e4e 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/CodeGenSugar.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/CodeGenSugar.scala
@@ -22,20 +22,19 @@ package org.neo4j.cypher.internal.compiled_runtime.v3_4.codegen.ir
import java.util.concurrent.atomic.AtomicInteger
import org.mockito.Mockito._
-import org.neo4j.cypher.internal.InternalExecutionResult
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.ExecutionPlanBuilder.tracer
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.ir.Instruction
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.{CompiledExecutionResult, CompiledPlan}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.Provider
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionMode, NormalMode, TaskCloser}
-import org.neo4j.cypher.internal.compiler.v3_4.CostBasedPlannerName
-import org.neo4j.cypher.internal.compiler.v3_4.spi._
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
-import org.neo4j.cypher.internal.spi.v3_4.TransactionBoundQueryContext.IndexSearchMonitor
+import org.neo4j.cypher.internal.planner.v3_4.spi.{CostBasedPlannerName, GraphStatistics, PlanContext}
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor
+import org.neo4j.cypher.internal.runtime.interpreted.{TransactionBoundQueryContext, TransactionalContextWrapper}
+import org.neo4j.cypher.internal.runtime.{ExecutionMode, InternalExecutionResult, NormalMode, QueryContext}
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription
import org.neo4j.cypher.internal.spi.v3_4.codegen.GeneratedQueryStructure
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, TransactionBoundQueryContext, TransactionalContextWrapper}
+import org.neo4j.cypher.internal.util.v3_4.TaskCloser
import org.neo4j.cypher.internal.v3_4.codegen.QueryExecutionTracer
import org.neo4j.cypher.internal.v3_4.executionplan.{GeneratedQuery, GeneratedQueryExecution}
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, LogicalPlanId}
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/CompiledProfilingTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/CompiledProfilingTest.scala
index 7ab51cbce1eb1..f51768b247970 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/CompiledProfilingTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compiled_runtime/v3_4/codegen/ir/CompiledProfilingTest.scala
@@ -22,22 +22,23 @@ package org.neo4j.cypher.internal.compiled_runtime.v3_4.codegen.ir
import org.mockito.ArgumentMatchers._
import org.mockito.Mockito._
import org.neo4j.collection.primitive.PrimitiveLongIterator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ProfileMode
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.Variable
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.ir.expressions.{CodeGenType, NodeProjection}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.compiled.codegen.ir.{AcceptVisitor, ScanAllNodes, WhileLoop}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.Provider
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, Rows}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.planDescription._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.KernelStatisticProvider
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, CardinalityEstimation, IdName, PlannerQuery}
-import org.neo4j.cypher.internal.spi.v3_4.{QueryContext, QueryTransactionalContext, TransactionalContextWrapper}
+import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery}
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
+import org.neo4j.cypher.internal.planner.v3_4.spi.KernelStatisticProvider
+import org.neo4j.cypher.internal.runtime.{ProfileMode, QueryContext, QueryTransactionalContext}
+import org.neo4j.cypher.internal.runtime.interpreted.TransactionalContextWrapper
+import org.neo4j.cypher.internal.runtime.planDescription.InternalPlanDescription.Arguments.{DbHits, Rows}
+import org.neo4j.cypher.internal.runtime.planDescription.{InternalPlanDescription, NoChildren, PlanDescriptionImpl, SingleChild}
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.codegen.profiling.ProfilingTracer
import org.neo4j.cypher.internal.v3_4.logical.plans._
import org.neo4j.cypher.internal.v3_4.logical.plans
import org.neo4j.cypher.internal.v3_4.expressions.SignedDecimalIntegerLiteral
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.io.pagecache.tracing.cursor.DefaultPageCursorTracer
import org.neo4j.kernel.api._
import org.neo4j.kernel.api.security.AnonymousContext
diff --git a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/v3_4/codegen/profiling/ProfilingTracerTest.scala b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/v3_4/codegen/profiling/ProfilingTracerTest.scala
index c4cd908175d0f..b28314f778503 100644
--- a/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/v3_4/codegen/profiling/ProfilingTracerTest.scala
+++ b/enterprise/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/v3_4/codegen/profiling/ProfilingTracerTest.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.v3_4.codegen.profiling
+import org.neo4j.cypher.internal.planner.v3_4.spi.{EmptyKernelStatisticProvider, KernelStatisticProvider}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
-import org.neo4j.cypher.internal.compiler.v3_4.spi.{EmptyKernelStatisticProvider, KernelStatisticProvider}
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.io.pagecache.tracing.cursor.DefaultPageCursorTracer
diff --git a/enterprise/cypher/physical-planning/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlottedRewriter.scala b/enterprise/cypher/physical-planning/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlottedRewriter.scala
index 71a8b57a1c4d6..0286b958f7839 100644
--- a/enterprise/cypher/physical-planning/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlottedRewriter.scala
+++ b/enterprise/cypher/physical-planning/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlottedRewriter.scala
@@ -21,11 +21,10 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime
import org.neo4j.cypher.internal.util.v3_4.{InternalException, Rewriter, topDown}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ast._
-import org.neo4j.cypher.internal.compiler.v3_4.ast.NestedPlanExpression
import org.neo4j.cypher.internal.compiler.v3_4.planner.CantCompileQueryException
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
import org.neo4j.cypher.internal.util.v3_4.Foldable._
-import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, LogicalPlanId, Projection, VarExpand, _}
+import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlan, LogicalPlanId, NestedPlanExpression, Projection, VarExpand, _}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.{functions => frontendFunctions}
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/enterprise/cypher/physical-planning/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlotAllocationTest.scala b/enterprise/cypher/physical-planning/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlotAllocationTest.scala
index 1fd3bb60e7292..ecd0b9c9c57d9 100644
--- a/enterprise/cypher/physical-planning/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlotAllocationTest.scala
+++ b/enterprise/cypher/physical-planning/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlotAllocationTest.scala
@@ -20,12 +20,11 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime
import org.neo4j.cypher.internal.compiler.v3_4.planner.LogicalPlanningTestSupport2
-import org.neo4j.cypher.internal.frontend.v3_4.LabelId
-import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery, VarPatternLength}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.cypher.internal.v3_4.expressions._
+import org.neo4j.cypher.internal.util.v3_4.LabelId
import org.neo4j.cypher.internal.v3_4.logical.plans.{Ascending, _}
import org.neo4j.cypher.internal.v3_4.logical.{plans => logicalPlans}
diff --git a/enterprise/cypher/physical-planning/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlottedRewriterTest.scala b/enterprise/cypher/physical-planning/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlottedRewriterTest.scala
index e34db77fb2c0f..f14b16d26d080 100644
--- a/enterprise/cypher/physical-planning/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlottedRewriterTest.scala
+++ b/enterprise/cypher/physical-planning/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/SlottedRewriterTest.scala
@@ -21,11 +21,12 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime
import org.mockito.Mockito._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ast._
-import org.neo4j.cypher.internal.compiler.v3_4.spi.TokenContext
import org.neo4j.cypher.internal.frontend.v3_4.ast._
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.ir.v3_4.{Cardinality, CardinalityEstimation, IdName, PlannerQuery}
+import org.neo4j.cypher.internal.ir.v3_4.{CardinalityEstimation, IdName, PlannerQuery}
+import org.neo4j.cypher.internal.planner.v3_4.spi.TokenContext
+import org.neo4j.cypher.internal.util.v3_4.Cardinality
import org.neo4j.cypher.internal.v3_4.logical.plans.{AllNodesScan, ProduceResult, Selection, _}
import org.neo4j.cypher.internal.v3_4.expressions._
diff --git a/enterprise/cypher/slotted-runtime/pom.xml b/enterprise/cypher/slotted-runtime/pom.xml
index 2cea5af15f85f..d828f635da50a 100644
--- a/enterprise/cypher/slotted-runtime/pom.xml
+++ b/enterprise/cypher/slotted-runtime/pom.xml
@@ -300,6 +300,14 @@
test
+
+ org.neo4j
+ neo4j-cypher-interpreted-runtime
+ ${project.version}
+ test-jar
+ test
+
+
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/PrimitiveExecutionContext.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/PrimitiveExecutionContext.scala
index 16686030cffa4..c4eb8e6562220 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/PrimitiveExecutionContext.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/PrimitiveExecutionContext.scala
@@ -19,9 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.util.v3_4.InternalException
import org.neo4j.kernel.impl.util.ValueUtils
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.AnyValue
object PrimitiveExecutionContext {
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/SlottedPipeBuilder.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/SlottedPipeBuilder.scala
index adcf1826fadd2..c4009455245e8 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/SlottedPipeBuilder.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/SlottedPipeBuilder.scala
@@ -19,21 +19,21 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.ExpressionConverters
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{AggregationExpression, Expression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.{Predicate, True}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{expressions => commandExpressions}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.builders.prepare.KeyTokenResolver
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{ColumnOrder => _, _}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.SlottedPipeBuilder.computeUnionMapping
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.ExpressionConverters
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.AggregationExpression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.{Predicate, True}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{expressions => commandExpressions}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{ColumnOrder => _, _}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.{expressions => slottedExpressions}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{LongSlot, PipeBuilder, PipeExecutionBuilderContext, PipelineInformation, _}
import org.neo4j.cypher.internal.compiler.v3_4.planner.CantCompileQueryException
-import org.neo4j.cypher.internal.compiler.v3_4.spi.PlanContext
import org.neo4j.cypher.internal.frontend.v3_4.phases.Monitors
import org.neo4j.cypher.internal.frontend.v3_4.semantics.SemanticTable
import org.neo4j.cypher.internal.ir.v3_4.{IdName, VarPatternLength}
+import org.neo4j.cypher.internal.planner.v3_4.spi.PlanContext
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.util.v3_4.InternalException
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.v3_4.expressions.SignedDecimalIntegerLiteral
@@ -357,7 +357,9 @@ class SlottedPipeBuilder(fallback: PipeBuilder,
case Union(_, _) =>
val lhsInfo = pipelines(lhs.id)
val rhsInfo = pipelines(rhs.id)
- UnionSlottedPipe(lhs, rhs, computeUnionMapping(lhsInfo, pipeline), computeUnionMapping(rhsInfo, pipeline))(id = id)
+ UnionSlottedPipe(lhs, rhs,
+ SlottedPipeBuilder.computeUnionMapping(lhsInfo, pipeline),
+ SlottedPipeBuilder.computeUnionMapping(rhsInfo, pipeline))(id = id)
case _ => throw new CantCompileQueryException(s"Unsupported logical plan operator: $plan")
}
@@ -365,7 +367,9 @@ class SlottedPipeBuilder(fallback: PipeBuilder,
}
object SlottedPipeBuilder {
- private def createProjectionsForResult(columns: Seq[String], pipelineInformation1: PipelineInformation): Seq[(String, Expression)] = {
+ private def createProjectionsForResult(columns: Seq[String],
+ pipelineInformation1: PipelineInformation
+ ): Seq[(String, commandExpressions.Expression)] = {
val runtimeColumns: Seq[(String, commandExpressions.Expression)] = columns map {
k =>
pipelineInformation1(k) match {
@@ -418,7 +422,7 @@ object SlottedPipeBuilder {
}.flatten.toIndexedSeq
//projections contains methods for turning longslots to refslots
- val projections: Seq[Expression] = createProjectionsForResult(slots.map(_.name), in).map(_._2)
+ val projections: Seq[commandExpressions.Expression] = createProjectionsForResult(slots.map(_.name), in).map(_._2)
//ZIP [slot1, slot2,...] with [e1, e2, ...] to get a mapping from slot to expression
val expressions = slots.zip(projections).toMap
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/GetDegreePrimitive.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/GetDegreePrimitive.scala
index 34de47cd56516..020e753aa0c2e 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/GetDegreePrimitive.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/GetDegreePrimitive.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/IdFromSlot.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/IdFromSlot.scala
index 86e0fdf1da941..4e9b3c5ed8e87 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/IdFromSlot.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/IdFromSlot.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values.longValue
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NodeFromSlot.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NodeFromSlot.scala
index f52181f8276c2..7fe95ba73bcc4 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NodeFromSlot.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NodeFromSlot.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
import org.neo4j.kernel.impl.util.ValueUtils.fromNodeProxy
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.virtual.NodeValue
case class NodeFromSlot(offset: Int) extends Expression with SlottedExpression {
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NodeProperty.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NodeProperty.scala
index 6e9f627de36d9..734542171a202 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NodeProperty.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NodeProperty.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NullCheck.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NullCheck.scala
index 86bc9ec80a1ab..cde3d4955740d 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NullCheck.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/NullCheck.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.helpers.NullChecker.nodeIsNull
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/PrimitiveEquals.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/PrimitiveEquals.scala
index 375c45c96d9dc..92d27c933c385 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/PrimitiveEquals.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/PrimitiveEquals.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
case class PrimitiveEquals(a: Expression, b: Expression) extends Predicate with SlottedExpression {
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/ReferenceFromSlot.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/ReferenceFromSlot.scala
index bca07ca1d84e5..d41d28a1bac98 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/ReferenceFromSlot.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/ReferenceFromSlot.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.AnyValue
case class ReferenceFromSlot(offset: Int) extends Expression with SlottedExpression {
@@ -29,4 +29,4 @@ case class ReferenceFromSlot(offset: Int) extends Expression with SlottedExpress
override def apply(ctx: ExecutionContext, state: QueryState): AnyValue =
ctx.getRefAt(offset)
-}
\ No newline at end of file
+}
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/RelationshipFromSlot.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/RelationshipFromSlot.scala
index 65732b978150e..18d0204a89b65 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/RelationshipFromSlot.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/RelationshipFromSlot.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
import org.neo4j.kernel.impl.util.ValueUtils
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.virtual.EdgeValue
case class RelationshipFromSlot(offset: Int) extends Expression with SlottedExpression {
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/RelationshipProperty.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/RelationshipProperty.scala
index 6dfb36005d828..091e8282bebe3 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/RelationshipProperty.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/RelationshipProperty.scala
@@ -19,10 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedExpression.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedExpression.scala
index 86ddcecd728b0..74df3d8b8b6f6 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedExpression.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedExpression.scala
@@ -19,7 +19,7 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
trait SlottedExpression {
self: Expression =>
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedExpressionConverters.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedExpressionConverters.scala
index 72b5289e4744d..f48ec413f2994 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedExpressionConverters.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedExpressionConverters.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.convert.{ExpressionConverter, ExpressionConverters}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.{expressions => commands}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.convert.{ExpressionConverter, ExpressionConverters}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.{expressions => commands}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions.SlottedProjectedPath._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.{expressions => runtimeExpression}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ast => runtimeAst}
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedProjectedPath.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedProjectedPath.scala
index 9c2620806bf37..1ad8cf44a7a99 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedProjectedPath.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/expressions/SlottedProjectedPath.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{Expression, PathValueBuilder}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{Expression, PathValueBuilder}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryState
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.values.virtual.{EdgeValue, ListValue, NodeValue}
object SlottedProjectedPath {
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/AllNodesScanSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/AllNodesScanSlottedPipe.scala
index fb6d707744cfb..7bc162b6e1f0a 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/AllNodesScanSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/AllNodesScanSlottedPipe.scala
@@ -19,10 +19,11 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.PrimitiveLongHelper
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, QueryState}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class AllNodesScanSlottedPipe(ident: String, pipelineInformation: PipelineInformation)
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ApplySlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ApplySlottedPipe.scala
index 14732c5c0c2d3..b1ac0c70f2ffa 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ApplySlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ApplySlottedPipe.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class ApplySlottedPipe(lhs: Pipe, rhs: Pipe)
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ArgumentSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ArgumentSlottedPipe.scala
index 1af35abd2cea2..163db9c6753ea 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ArgumentSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ArgumentSlottedPipe.scala
@@ -19,9 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class ArgumentSlottedPipe(pipelineInformation: PipelineInformation)
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/BaseRelationshipSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/BaseRelationshipSlottedPipe.scala
index ccea5431f3823..13eb437ddfcfb 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/BaseRelationshipSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/BaseRelationshipSlottedPipe.scala
@@ -21,14 +21,13 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import java.util.function.BiConsumer
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InvalidSemanticsException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.makeValueNeoSafe
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{LazyType, Pipe, PipeWithSource, QueryState}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{LazyType, Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, IsMap, makeValueNeoSafe}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.MapValue
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/CartesianProductSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/CartesianProductSlottedPipe.scala
index fe5ffc468b41c..248c735f76901 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/CartesianProductSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/CartesianProductSlottedPipe.scala
@@ -19,9 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class CartesianProductSlottedPipe(lhs: Pipe, rhs: Pipe,
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ConditionalApplySlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ConditionalApplySlottedPipe.scala
index f7032ee5d766c..cd1ab7577f2db 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ConditionalApplySlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ConditionalApplySlottedPipe.scala
@@ -19,10 +19,11 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.helpers.NullChecker
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/CreateNodeSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/CreateNodeSlottedPipe.scala
index bd4f8bf90ee55..bb6e976d949e9 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/CreateNodeSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/CreateNodeSlottedPipe.scala
@@ -21,14 +21,13 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import java.util.function.BiConsumer
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.util.v3_4.{CypherTypeException, InvalidSemanticsException}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.IsMap
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.mutation.makeValueNeoSafe
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{LazyLabel, Pipe, PipeWithSource, QueryState}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{LazyLabel, Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, IsMap, makeValueNeoSafe}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.graphdb.{Node, Relationship}
import org.neo4j.values.AnyValue
import org.neo4j.values.storable.Values
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/DistinctSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/DistinctSlottedPipe.scala
index 0617c9cc3ea16..eec8f6cc84894 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/DistinctSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/DistinctSlottedPipe.scala
@@ -19,10 +19,11 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.VirtualValues
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerAggregationSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerAggregationSlottedPipe.scala
index 148b4ae7aedd1..0a66c7151c14b 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerAggregationSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerAggregationSlottedPipe.scala
@@ -19,11 +19,12 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.{AggregationExpression, Expression}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.AggregationFunction
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.{AggregationExpression, Expression}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.AggregationFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
import org.neo4j.values.virtual.{ListValue, MapValue, VirtualValues}
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerAggregationWithoutGroupingSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerAggregationWithoutGroupingSlottedPipe.scala
index 8e19bee2c2d3c..012baa32a1bea 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerAggregationWithoutGroupingSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerAggregationWithoutGroupingSlottedPipe.scala
@@ -19,11 +19,12 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.AggregationExpression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.aggregation.AggregationFunction
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.AggregationExpression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.aggregation.AggregationFunction
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
/*
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerSlottedPipe.scala
index 01726411e8a48..208cc2e3ff167 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/EagerSlottedPipe.scala
@@ -19,9 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class EagerSlottedPipe(source: Pipe, pipelineInformation: PipelineInformation)(val id: LogicalPlanId = LogicalPlanId.DEFAULT)
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ExpandAllSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ExpandAllSlottedPipe.scala
index 457ae43b42f8f..7a8a8822217e0 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ExpandAllSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ExpandAllSlottedPipe.scala
@@ -19,12 +19,13 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.util.v3_4.InternalException
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.PrimitiveLongHelper
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.helpers.NullChecker.nodeIsNull
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.helpers.NullChecker
+import org.neo4j.cypher.internal.util.v3_4.InternalException
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.kernel.impl.api.RelationshipVisitor
@@ -44,7 +45,7 @@ case class ExpandAllSlottedPipe(source: Pipe,
(inputRow: ExecutionContext) =>
val fromNode = inputRow.getLongAt(fromOffset)
- if (nodeIsNull(fromNode))
+ if (NullChecker.nodeIsNull(fromNode))
Iterator.empty
else {
val relationships: RelationshipIterator = state.query.getRelationshipsForIdsPrimitive(fromNode, dir, types.types(state.query))
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ExpandIntoSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ExpandIntoSlottedPipe.scala
index 316fd0cab998e..0e0d2ed56434d 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ExpandIntoSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ExpandIntoSlottedPipe.scala
@@ -20,11 +20,12 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import org.neo4j.collection.primitive.PrimitiveLongIterator
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.PrimitiveLongHelper
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.helpers.NullChecker.nodeIsNull
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodeIndexScanSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodeIndexScanSlottedPipe.scala
index 91abe40b456f4..f7203d4bda5ed 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodeIndexScanSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodeIndexScanSlottedPipe.scala
@@ -19,12 +19,13 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.PrimitiveLongHelper
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class NodeIndexScanSlottedPipe(ident: String,
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodeIndexSeekSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodeIndexSeekSlottedPipe.scala
index bed683323108f..7c2633f3e02d2 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodeIndexSeekSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodeIndexSeekSlottedPipe.scala
@@ -19,13 +19,14 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.indexQuery
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
-import org.neo4j.cypher.internal.compiler.v3_4.IndexDescriptor
-import org.neo4j.cypher.internal.frontend.v3_4.ast.{LabelToken, PropertyKeyToken}
+import org.neo4j.cypher.internal.planner.v3_4.spi.IndexDescriptor
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.commands.indexQuery
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.v3_4.expressions.{LabelToken, PropertyKeyToken}
import org.neo4j.cypher.internal.v3_4.logical.plans.{LogicalPlanId, QueryExpression}
case class NodeIndexSeekSlottedPipe(ident: String,
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodesByLabelScanSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodesByLabelScanSlottedPipe.scala
index eae3a945dbc4a..c449231f76ad9 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodesByLabelScanSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/NodesByLabelScanSlottedPipe.scala
@@ -19,10 +19,11 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.PrimitiveLongHelper
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{LazyLabel, Pipe, QueryState}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{LazyLabel, Pipe, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class NodesByLabelScanSlottedPipe(ident: String, label: LazyLabel, pipelineInformation: PipelineInformation)
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalExpandAllSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalExpandAllSlottedPipe.scala
index a6e18ba33344b..94c034ebdf178 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalExpandAllSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalExpandAllSlottedPipe.scala
@@ -19,13 +19,14 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.PrimitiveLongHelper
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.helpers.NullChecker.nodeIsNull
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.helpers.NullChecker
+import org.neo4j.cypher.internal.util.v3_4.InternalException
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.kernel.impl.api.RelationshipVisitor
@@ -46,7 +47,7 @@ case class OptionalExpandAllSlottedPipe(source: Pipe,
(inputRow: ExecutionContext) =>
val fromNode = inputRow.getLongAt(fromOffset)
- if (nodeIsNull(fromNode)) {
+ if (NullChecker.nodeIsNull(fromNode)) {
Iterator(withNulls(inputRow))
} else {
val relationships: RelationshipIterator = state.query.getRelationshipsForIdsPrimitive(fromNode, dir, types.types(state.query))
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalExpandIntoSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalExpandIntoSlottedPipe.scala
index 0c59e4cdae10e..2154a46293868 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalExpandIntoSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalExpandIntoSlottedPipe.scala
@@ -20,12 +20,13 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import org.neo4j.collection.primitive.PrimitiveLongIterator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.PrimitiveLongHelper
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.helpers.NullChecker.nodeIsNull
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalSlottedPipe.scala
index 7a546e242900f..f3206aeca1854 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/OptionalSlottedPipe.scala
@@ -19,9 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class OptionalSlottedPipe(source: Pipe, nullableOffsets: Seq[Int],
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/PrimitiveCachingExpandInto.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/PrimitiveCachingExpandInto.scala
index fd6a1e362bc68..16b226cc57811 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/PrimitiveCachingExpandInto.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/PrimitiveCachingExpandInto.scala
@@ -20,8 +20,8 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import org.neo4j.collection.primitive.PrimitiveLongIterator
+import org.neo4j.cypher.internal.runtime.QueryContext
import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.spi.v3_4.QueryContext
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.kernel.impl.api.RelationshipVisitor
import org.neo4j.kernel.impl.api.store.RelationshipIterator
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ProduceResultSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ProduceResultSlottedPipe.scala
index 07f74a227ea21..0f1035ba48f8f 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ProduceResultSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ProduceResultSlottedPipe.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, MutableMaps}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class ProduceResultSlottedPipe(source: Pipe, columns: Seq[(String, Expression)])
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ProjectionSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ProjectionSlottedPipe.scala
index f878d9e236589..147ad69cc2177 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ProjectionSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/ProjectionSlottedPipe.scala
@@ -19,9 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, LongSlot, RefSlot, Slot}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{LongSlot, RefSlot, Slot}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
/*
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/RollUpApplySlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/RollUpApplySlottedPipe.scala
index 1ace4ba85faf8..8762cd35043b1 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/RollUpApplySlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/RollUpApplySlottedPipe.scala
@@ -19,9 +19,10 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{LongSlot, PipelineInformation, RefSlot}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.Values.NO_VALUE
import org.neo4j.values.virtual.VirtualValues
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/SingleRowSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/SingleRowSlottedPipe.scala
index a327b27ec7a0e..62a914bc63b0b 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/SingleRowSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/SingleRowSlottedPipe.scala
@@ -20,8 +20,8 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, QueryState}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, QueryState}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class SingleRowSlottedPipe(pipelineInformation: PipelineInformation)(val id: LogicalPlanId = LogicalPlanId.DEFAULT) extends Pipe {
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/SortSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/SortSlottedPipe.scala
index 28fac2a37be73..27a21b8b82383 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/SortSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/SortSlottedPipe.scala
@@ -21,8 +21,9 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import java.util.Comparator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime._
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{LongSlot, PipelineInformation, RefSlot, Slot}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.{AnyValue, AnyValues}
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/TopSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/TopSlottedPipe.scala
index e22edaebb2daf..f06840c529c30 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/TopSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/TopSlottedPipe.scala
@@ -21,10 +21,10 @@ package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import java.util.Comparator
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.DefaultComparatorTopTable
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.storable.NumberValue
@@ -139,4 +139,4 @@ case class Top1WithTiesSlottedPipe(source: Pipe, orderBy: List[ColumnOrder])
builder += first
builder
}
-}
\ No newline at end of file
+}
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnionSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnionSlottedPipe.scala
index d106ff4c91922..6c246d9814544 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnionSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnionSlottedPipe.scala
@@ -19,9 +19,9 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.ExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, QueryState}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.SlottedPipeBuilder.RowMapping
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, QueryState}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
case class UnionSlottedPipe(lhs: Pipe, rhs: Pipe,
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnwindSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnwindSlottedPipe.scala
index fd72e7f1c4c6f..74421e413b425 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnwindSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnwindSlottedPipe.scala
@@ -19,11 +19,11 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Expression
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ListSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Expression
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.{ExecutionContext, ListSupport}
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.values.AnyValue
diff --git a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/VarLengthExpandSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/VarLengthExpandSlottedPipe.scala
index 8f73466603051..704dd0fd2f6a5 100644
--- a/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/VarLengthExpandSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/VarLengthExpandSlottedPipe.scala
@@ -19,11 +19,12 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.util.v3_4.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.predicates.Predicate
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{LazyTypes, Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.util.v3_4.InternalException
+import org.neo4j.cypher.internal.runtime.interpreted.commands.predicates.Predicate
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{LazyTypes, Pipe, PipeWithSource, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.neo4j.cypher.internal.v3_4.expressions.SemanticDirection
import org.neo4j.graphdb.Relationship
diff --git a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/PrimitiveExecutionContextTest.scala b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/PrimitiveExecutionContextTest.scala
index 9bc433513eb87..d341545e926f0 100644
--- a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/PrimitiveExecutionContextTest.scala
+++ b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/PrimitiveExecutionContextTest.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted
-import org.neo4j.cypher.internal.util.v3_4.InternalException
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
+import org.neo4j.cypher.internal.util.v3_4.InternalException
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.stringValue
diff --git a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/FakeSlottedPipe.scala b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/FakeSlottedPipe.scala
index 4f2382da18df5..624f4052da11c 100644
--- a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/FakeSlottedPipe.scala
+++ b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/FakeSlottedPipe.scala
@@ -19,10 +19,11 @@
*/
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.helpers.ValueConversion.asValue
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, QueryState}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{LongSlot, PipelineInformation, RefSlot}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, LongSlot, PipelineInformation, RefSlot}
+import org.neo4j.cypher.internal.runtime.interpreted.ValueConversion.asValue
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, QueryState}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
import org.neo4j.cypher.internal.v3_4.logical.plans.LogicalPlanId
import org.scalatest.mock.MockitoSugar
diff --git a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/RollUpApplyPipeTest.scala b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/RollUpApplyPipeTest.scala
index 77dcb3386f3ad..eba363cf79245 100644
--- a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/RollUpApplyPipeTest.scala
+++ b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/RollUpApplyPipeTest.scala
@@ -24,13 +24,14 @@ import org.mockito.Mockito
import org.mockito.Mockito._
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.FakeEntityTestSupport
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, PipeTestSupport, QueryState, QueryStateHelper}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions.{NodeFromSlot, ReferenceFromSlot}
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{ExecutionContext, PipelineInformation}
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, PipeTestSupport, QueryState, QueryStateHelper}
+import org.neo4j.cypher.internal.runtime.interpreted.ExecutionContext
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.FakeEntityTestSupport
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
import org.neo4j.graphdb.Node
import org.neo4j.kernel.impl.util.ValueUtils
import org.neo4j.values.storable.Values
diff --git a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/TopSlottedPipeTest.scala b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/TopSlottedPipeTest.scala
index 6446f5ccf7e73..2bbcedbf40bf2 100644
--- a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/TopSlottedPipeTest.scala
+++ b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/TopSlottedPipeTest.scala
@@ -20,11 +20,11 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import org.neo4j.cypher.InternalException
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.commands.expressions.Literal
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes.{Pipe, QueryStateHelper}
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes.TopSlottedPipeTestSupport._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{LongSlot, PipelineInformation, RefSlot}
+import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes.TopSlottedPipeTestSupport._
+import org.neo4j.cypher.internal.runtime.interpreted.commands.expressions.Literal
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.{Pipe, QueryStateHelper}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.kernel.impl.util.ValueUtils
diff --git a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnionSlottedPipeTest.scala b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnionSlottedPipeTest.scala
index fc054d44e41ba..11eba10a721e2 100644
--- a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnionSlottedPipeTest.scala
+++ b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnionSlottedPipeTest.scala
@@ -23,11 +23,11 @@ import org.mockito.ArgumentMatchers.any
import org.mockito.Mockito.when
import org.mockito.invocation.InvocationOnMock
import org.mockito.stubbing.Answer
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.SlottedPipeBuilder.computeUnionMapping
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.{LongSlot, PipelineInformation}
-import org.neo4j.cypher.internal.spi.v3_4.{Operations, QueryContext}
+import org.neo4j.cypher.internal.runtime.interpreted.pipes.QueryStateHelper
+import org.neo4j.cypher.internal.runtime.{Operations, QueryContext}
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.graphdb.{Node, Relationship}
diff --git a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnwindSlottedPipeTest.scala b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnwindSlottedPipeTest.scala
index c6408c4e5ae6f..8c776a6d70cfb 100644
--- a/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnwindSlottedPipeTest.scala
+++ b/enterprise/cypher/slotted-runtime/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/runtime/slotted/pipes/UnwindSlottedPipeTest.scala
@@ -20,9 +20,9 @@
package org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.pipes
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.PipelineInformation
-import org.neo4j.cypher.internal.compatibility.v3_4.runtime.pipes._
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.PrimitiveExecutionContext
import org.neo4j.cypher.internal.compatibility.v3_4.runtime.slotted.expressions.ReferenceFromSlot
+import org.neo4j.cypher.internal.runtime.interpreted.pipes._
import org.neo4j.cypher.internal.util.v3_4.symbols._
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
import org.neo4j.values.storable.Values.intValue
diff --git a/enterprise/kernel/src/test/scala/org/neo4j/cypher/EnterpriseGraphDatabaseTestSupport.scala b/enterprise/kernel/src/test/scala/org/neo4j/cypher/EnterpriseGraphDatabaseTestSupport.scala
index 5b6fa014aed89..14ad7f9385127 100644
--- a/enterprise/kernel/src/test/scala/org/neo4j/cypher/EnterpriseGraphDatabaseTestSupport.scala
+++ b/enterprise/kernel/src/test/scala/org/neo4j/cypher/EnterpriseGraphDatabaseTestSupport.scala
@@ -19,8 +19,8 @@
*/
package org.neo4j.cypher
+import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService
import org.neo4j.cypher.internal.util.v3_4.test_helpers.CypherFunSuite
-import org.neo4j.cypher.javacompat.internal.GraphDatabaseCypherService
import org.neo4j.graphdb.config.Setting
import org.neo4j.test.TestEnterpriseGraphDatabaseFactory