…standardized columns
PropertyGroup.getData appends requested properties to a fixed base
projection without checking them against the aliases that same select
already emits (id / property_group on vertices, src / dst / weight on
edges). The duplicate survives into QueryExecutor.renameAll, which maps
both copies to the same prefixed name, so the ambiguity reaches Spark.
The suite documents the expected behavior -- a.id is the raw key
property, distinct from the masked graph id getData derives from it.
It includes two non-colliding controls plus the two aggravated shapes:
a colliding property carried by a predicate (breaks the adjacency join
rather than the terminal join-back) and a colliding property on an
undirected group (fails inside getData's two-orientation union).
Currently red: 2 of 9 pass. The failures are COLUMN_ALREADY_EXISTS from
renameAll and AMBIGUOUS_REFERENCE from the undirected union -- the bug
these tests describe is not yet fixed.
Also reflow a GraphStatistics scaladoc paragraph to satisfy scalafmt.
PropertyGroup.getData appends requested properties to a fixed base projection without checking them against the aliases that same select already emits (id / property_group on vertices, src / dst / weight on edges). The duplicate survives into QueryExecutor.renameAll, which maps both copies to the same prefixed name, so the ambiguity reaches Spark.
The suite documents the expected behavior -- a.id is the raw key property, distinct from the masked graph id getData derives from it. It includes two non-colliding controls plus the two aggravated shapes: a colliding property carried by a predicate (breaks the adjacency join rather than the terminal join-back) and a colliding property on an undirected group (fails inside getData's two-orientation union).
Currently red: 2 of 9 pass. The failures are COLUMN_ALREADY_EXISTS from renameAll and AMBIGUOUS_REFERENCE from the undirected union -- the bug these tests describe is not yet fixed.
Also reflow a GraphStatistics scaladoc paragraph to satisfy scalafmt.