You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Combinations of globalEdges/globalEntities/globalElements and properties/groupBy/predicates do not work as intended when no explicit element definition is included.
Returns all edges and entities without aggregation (adding allEdges/allEntities params makes no difference).
However, inheritance from global definitions does appear to work. If an explicit edge or entity is defined in the view then it will inherit from the global.
Returns <example_edge> edges with only the "count" property (as expected from the explicit edge definition) but those edges are aggregated in line with the globalEdge groubBy.
Thanks for reporting this. I just tested this against the Accumulo Store and it seems global elements were working as expected when no element definitions were supplied. Therefore is caused by the same underlying flaw as the all_edges issue. I will move this to Gaffer as that seems to be where the bug resides
I've been having a look at this and wanted to leave some interim notes here:
I think the cause here - certainly when run via FederatedStore, is that expandGlobalDefinitions in View gets run (at least) twice, both times from _execute in Graph. The first time is for the federated store, second and subsequent times for substores. Running this on the federated store should be a noop, but it isn't because expandGlobalDefinitions explicitly sets global[Edges|Elements|Entities] to null.
This means that by the time the operation is delegated down to a substore, the global* element of the view has been removed. It's NOT been translated into individual elements of the view like you might expect, because the very first time it was run was on a store with no schema (the federated store) so expanding the global was a noop, except for the fact globalElements was then set to null as above.
Ugly workaround is to only set global[Elements|Edges|Entities] to null if the schema is non-empty, but I want to think about a better way of resolving this issue.
ETA - there may also be a seperate issue with ensuring any pre and post aggregagation filters in the global* are copied into the relevant edges and entities
Combinations of globalEdges/globalEntities/globalElements and properties/groupBy/predicates do not work as intended when no explicit element definition is included.
For example:
Returns all edges and entities without aggregation (adding allEdges/allEntities params makes no difference).
However, inheritance from global definitions does appear to work. If an explicit edge or entity is defined in the view then it will inherit from the global.
For example:
Returns <example_edge> edges with only the "count" property (as expected from the explicit edge definition) but those edges are aggregated in line with the globalEdge groubBy.
Tested on a Federated Graph setup.
Could be linked to #2290
The text was updated successfully, but these errors were encountered: