mirror of
https://github.com/OpenSPG/openspg.git
synced 2025-06-27 03:20:10 +00:00
fix one hot expand with belongTo
This commit is contained in:
parent
0fde581e87
commit
67d8e514ef
@ -88,8 +88,16 @@ class SubQueryMerger(val dag: Dag[LogicalOperator])(implicit context: LogicalPla
|
|||||||
.filter(_.alias.equals(name))
|
.filter(_.alias.equals(name))
|
||||||
.filter(conn => {
|
.filter(conn => {
|
||||||
val types =
|
val types =
|
||||||
if (conn.direction == Direction.OUT) pattern.getNode(conn.target).typeNames
|
if (conn.direction == Direction.OUT) {
|
||||||
else pattern.getNode(conn.source).typeNames
|
pattern.getNode(conn.target).typeNames
|
||||||
|
}
|
||||||
|
else if (conn.direction == Direction.IN) {
|
||||||
|
pattern.getNode(conn.source).typeNames
|
||||||
|
} else {
|
||||||
|
pattern
|
||||||
|
.getNode(conn.source)
|
||||||
|
.typeNames ++ pattern.getNode(conn.target).typeNames
|
||||||
|
}
|
||||||
conn.relTypes.contains(spo.getP) && (types.contains(
|
conn.relTypes.contains(spo.getP) && (types.contains(
|
||||||
LabelTypeUtils.getMetaType(spo.getO)) || types.contains(spo.getO))
|
LabelTypeUtils.getMetaType(spo.getO)) || types.contains(spo.getO))
|
||||||
})
|
})
|
||||||
|
@ -22,7 +22,13 @@ import com.antgroup.openspg.reasoner.lube.Logging
|
|||||||
import com.antgroup.openspg.reasoner.lube.block._
|
import com.antgroup.openspg.reasoner.lube.block._
|
||||||
import com.antgroup.openspg.reasoner.lube.catalog.{Catalog, SemanticRule, TemplateSemanticRule}
|
import com.antgroup.openspg.reasoner.lube.catalog.{Catalog, SemanticRule, TemplateSemanticRule}
|
||||||
import com.antgroup.openspg.reasoner.lube.common.pattern.Pattern
|
import com.antgroup.openspg.reasoner.lube.common.pattern.Pattern
|
||||||
import com.antgroup.openspg.reasoner.lube.logical.{EdgeVar, NodeVar, RepeatPathVar, SolvedModel, Var}
|
import com.antgroup.openspg.reasoner.lube.logical.{
|
||||||
|
EdgeVar,
|
||||||
|
NodeVar,
|
||||||
|
RepeatPathVar,
|
||||||
|
SolvedModel,
|
||||||
|
Var
|
||||||
|
}
|
||||||
import com.antgroup.openspg.reasoner.lube.logical.operators._
|
import com.antgroup.openspg.reasoner.lube.logical.operators._
|
||||||
import com.antgroup.openspg.reasoner.lube.logical.planning.SubQueryPlanner.nodeName
|
import com.antgroup.openspg.reasoner.lube.logical.planning.SubQueryPlanner.nodeName
|
||||||
import com.antgroup.openspg.reasoner.lube.logical.validate.Dag
|
import com.antgroup.openspg.reasoner.lube.logical.validate.Dag
|
||||||
@ -148,8 +154,16 @@ class SubQueryPlanner(val dag: Dag[Block])(implicit context: LogicalPlannerConte
|
|||||||
.filter(_.alias.equals(name))
|
.filter(_.alias.equals(name))
|
||||||
.filter(conn => {
|
.filter(conn => {
|
||||||
val types =
|
val types =
|
||||||
if (conn.direction == Direction.OUT) pattern.getNode(conn.target).typeNames
|
if (conn.direction == Direction.OUT) {
|
||||||
else pattern.getNode(conn.source).typeNames
|
pattern.getNode(conn.target).typeNames
|
||||||
|
}
|
||||||
|
else if (conn.direction == Direction.IN) {
|
||||||
|
pattern.getNode(conn.source).typeNames
|
||||||
|
} else {
|
||||||
|
pattern
|
||||||
|
.getNode(conn.source)
|
||||||
|
.typeNames ++ pattern.getNode(conn.target).typeNames
|
||||||
|
}
|
||||||
conn.relTypes.contains(spo.getP) && (types.contains(
|
conn.relTypes.contains(spo.getP) && (types.contains(
|
||||||
LabelTypeUtils.getMetaType(spo.getO)) || types.contains(spo.getO))
|
LabelTypeUtils.getMetaType(spo.getO)) || types.contains(spo.getO))
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user