aglinxinyuan opened a new issue, #5438:
URL: https://github.com/apache/texera/issues/5438
`amber/src/main/scala/org/apache/texera/workflow/LogicalPlan.scala` is the
case class describing the user-facing logical workflow graph (operators +
links). It exposes graph queries used by the compiler and persists into saved
workflows, but has no unit test today.
| Surface | Behavior to pin |
| --- | --- |
| Construction | `LogicalPlan(operators, links)` exposes both fields
verbatim; case-class equality across the two fields. |
| `LogicalPlan.apply(LogicalPlanPojo)` companion factory | Lifts a POJO's
operators + links into a `LogicalPlan` (drops the POJO-only `opsToViewResult` /
`opsToReuseResult` fields). |
| `getTopologicalOpIds` | Returns operator ids in JGraphT topological order
— pinned with a chain `A → B → C` and a fan-out `A → {B, C}`. |
| `getOperator` | Map lookup that returns the operator with the given
identifier; missing id throws `NoSuchElementException`. |
| `getTerminalOperatorIds` | Returns the set of operators with out-degree 0;
pinned for a single sink, multiple sinks, and an empty plan. |
| `getUpstreamLinks` | Returns every `LogicalLink` whose `toOpId` matches
the argument; preserves construction order. |
| `resolveScanSourceOpFileName` | `Some(errorList)` collects failures
per-operator; `None` re-throws. (Spec uses a `ScanSourceOpDesc` test fixture
with both a resolvable and a deliberately-unresolvable file path.) |
### Priority
P3 - Low
### Task Type
- [x] Testing / QA
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]