I am trying to create my own MAL aggregate function.
I have implemented main function and it works OK:
function group_concat(b:bat[:oid, :str],s:bat[:oid, :str]):str;
sep := "";
barrier (h, t) := iterator.new(s);
sep := t;
exit (h, t);
value := nil:str;
barrier (h, t) := iterator.new(b);
barrier bnormal := value;
value := value + sep;
value := value + t;
exit bnormal;
barrier bnil := calc.isnil(value);
value := t;
exit bnil;
redo (h, t) := iterator.next(b);
exit (h, t);
return value;
end group_concat;
Now I need to implemented subfunction with following definition:
function subgroup_concat(b:bat[:oid,:str],s:bat[:oid,:str],g:bat[:oid,:oid],e:bat[:oid,:any_2],skip_nils:bit) :bat[:oid,:str];
I can iterate over all groups g, but I can't find correct MAL function to get all values (b,s) for this specific group.
Which MAL function would return list of oid for specific group g entry ?
Gatis