How to returns a ListAccum<tuple>

shema

CREATE VERTEX MACHINE (PRIMARY_ID ip STRING, ip STRING)CREATE VERTEX SERVICE (PRIMARY_ID name STRING, name STRING)CREATE DIRECTED EDGE TRAFFIC (FROM MACHINE, TO MACHINE, traffic_date STRING, app_proto STRING)CREATE DIRECTED EDGE TRAFFIC_TYPE (FROM MACHINE, TO SERVICE, traffic_date STRING)CREATE GRAPH traffic (MACHINE,SERVICE,TRAFFIC,TRAFFIC_TYPE)

query

CREATE QUERY GetAppProto(STRING traffic_date,UINT min_src) FOR GRAPH traffic returns (ListAccum<RESULT_TYPE>){ TYPEDEF tuple<STRING ip,STRING date,STRING app_proto> RESULT_TYPE; ListAccum<RESULT_TYPE> @@RESULTS; GroupByAccum<STRING ip,STRING date,STRING app_proto ,SumAccum<INT>num > @@DstAccum; #STRING d = datetime_format(now(),"%Y-%m-%d%"); machine = {MACHINE.*}; results = SELECT p FROM machine-(TRAFFIC:l)->:p WHERE l.traffic_date == traffic_date ACCUM @@DstAccum += (p.ip,l.traffic_date,l.app_proto->1); FOREACH d IN @@DstAccum DO IF d.num >= min_src THEN @@RESULTS += RESULT_TYPE(d.ip,d.date,d.app_proto); END; END; PRINT @@RESULTS; RETURN @@RESULTS;}

image

I’m nor sure it’s suitable to use it or how to fix it .

In order to return a list of tuple, please define your tuple from your schema instead of inside the query.

Thanks.