support add multi edge instance

This commit is contained in:
wenchengyao 2024-04-29 15:26:05 +08:00
parent e80ebf08f7
commit a6e9198bb5
4 changed files with 5 additions and 5 deletions

View File

@ -206,7 +206,7 @@ class OpenSPGDslParser extends ParserInterface {
predicate.source, predicate.source,
predicate.target, predicate.target,
attrFields.toMap, attrFields.toMap,
predicate.direction))) ++ ddlInfo._2, predicate.direction), isDefine = true)) ++ ddlInfo._2,
List.apply(depBlk)) List.apply(depBlk))
case _ => DDLBlock(Set.apply(ddlBlockOp) ++ ddlInfo._2, List.apply(ruleBlock)) case _ => DDLBlock(Set.apply(ddlBlockOp) ++ ddlInfo._2, List.apply(ruleBlock))
} }

View File

@ -1016,7 +1016,7 @@ class OpenSPGDslParserTest extends AnyFunSpec {
.predicate .predicate
.label equals ("belongTo") .label equals ("belongTo")
val text = val text =
"""└─DDLBlock(ddlOp=Set(AddPredicate(PredicateElement(belongTo,p,(s:User,BinaryOpExpr(name=BEqual)),EntityElement(cardUser,accountQueryCrowd,o),Map(__to_id_type__->VString(value=accountQueryCrowd/cardUser),__to_id__->VString(value=cardUser),__from_id__->UnaryOpExpr(name=GetField(id)),__from_id_type__->VString(value=User)),OUT)))) """└─DDLBlock(ddlOp=Set(AddPredicate(PredicateElement(belongTo,p,(s:User,BinaryOpExpr(name=BEqual)),EntityElement(cardUser,accountQueryCrowd,o),Map(__to_id_type__->VString(value=accountQueryCrowd/cardUser),__to_id__->VString(value=cardUser),__from_id__->UnaryOpExpr(name=GetField(id)),__from_id_type__->VString(value=User)),OUT),true)))
* └─FilterBlock(rules=LogicRule(R5,智信确权,BinaryOpExpr(name=BEqual))) * └─FilterBlock(rules=LogicRule(R5,智信确权,BinaryOpExpr(name=BEqual)))
* └─FilterBlock(rules=LogicRule(R4,绑定数目,BinaryOpExpr(name=BGreaterThan))) * └─FilterBlock(rules=LogicRule(R4,绑定数目,BinaryOpExpr(name=BGreaterThan)))
* └─AggregationBlock(aggregations=Aggregations(Map(IRVariable(BindNum) -> AggOpExpr(name=Sum))), group=List(IRNode(s,Set(zhixin)))) * └─AggregationBlock(aggregations=Aggregations(Map(IRVariable(BindNum) -> AggOpExpr(name=Sum))), group=List(IRNode(s,Set(zhixin))))
@ -1048,7 +1048,7 @@ class OpenSPGDslParserTest extends AnyFunSpec {
val block = parser.parse(dsl) val block = parser.parse(dsl)
print(block.pretty) print(block.pretty)
val text = """└─DDLBlock(ddlOp=Set(AddProperty((s:CustFundKG.Account),aggTransAmountNumByDay,KTBoolean))) val text = """└─DDLBlock(ddlOp=Set(AddProperty((s:CustFundKG.Account),aggTransAmountNumByDay,KTBoolean,true)))
| └─ProjectBlock(projects=ProjectFields(Map(IRProperty(s,aggTransAmountNumByDay) -> ProjectRule(IRProperty(s,aggTransAmountNumByDay),Ref(refName=o))))) | └─ProjectBlock(projects=ProjectFields(Map(IRProperty(s,aggTransAmountNumByDay) -> ProjectRule(IRProperty(s,aggTransAmountNumByDay),Ref(refName=o)))))
| └─AggregationBlock(aggregations=Aggregations(Map(IRVariable(o) -> AggOpExpr(name=AggUdf(groupByAttrDoCount,List(VString(value=tranDate), VLong(value=50)))))), group=List(IRNode(s,Set()))) | └─AggregationBlock(aggregations=Aggregations(Map(IRVariable(o) -> AggOpExpr(name=AggUdf(groupByAttrDoCount,List(VString(value=tranDate), VLong(value=50)))))), group=List(IRNode(s,Set())))
| └─FilterBlock(rules=LogicRule(R1,当月交易,BinaryOpExpr(name=BNotSmallerThan))) | └─FilterBlock(rules=LogicRule(R1,当月交易,BinaryOpExpr(name=BNotSmallerThan)))

View File

@ -1038,10 +1038,8 @@ public class LocalRDG extends RDG<LocalRDG> {
shuffleAndGroup(alias, isLast); shuffleAndGroup(alias, isLast);
} else { } else {
if (isLast) {
this.kgGraphList = doMerge(this.kgGraphList, this.kgGraphSchema); this.kgGraphList = doMerge(this.kgGraphList, this.kgGraphSchema);
} }
}
for (KgGraph<IVertexId> kgGraph : this.kgGraphList) { for (KgGraph<IVertexId> kgGraph : this.kgGraphList) {
IVertex<IVertexId, IProperty> vertex = kgGraph.getVertex(alias).get(0); IVertex<IVertexId, IProperty> vertex = kgGraph.getVertex(alias).get(0);

View File

@ -1515,6 +1515,8 @@ public class TransitiveOptionalTest {
LocalReasonerRunner runner = new LocalReasonerRunner(); LocalReasonerRunner runner = new LocalReasonerRunner();
LocalReasonerResult result = runner.run(task); LocalReasonerResult result = runner.run(task);
Assert.assertEquals(2, result.getRows().size()); Assert.assertEquals(2, result.getRows().size());
Assert.assertEquals("6", result.getRows().get(0)[3]);
Assert.assertEquals("100", result.getRows().get(0)[4]);
} }
public static class GangGraphLoader extends AbstractLocalGraphLoader { public static class GangGraphLoader extends AbstractLocalGraphLoader {