The GitHub Actions job "Required Checks" on 
texera.git/gh-readonly-queue/main/pr-5814-41123c0ad1ddfd3a805a562511d27660e4b14b73
 has failed.
Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).

Head commit for run:
e2e87d604edfef8b18d552dbf3652302f1833136 / Xinyuan Lin <[email protected]>
test(workflow-operator): add unit test coverage for row-count-shaping operator 
descriptors (#5814)

### What changes were proposed in this PR?

Pin behavior of three previously-untested descriptors that shape/reduce
output row counts in `common/workflow-operator/`. No production-code
changes.

| Spec | Source class | Tests |
| --- | --- | --- |
| `LimitOpDescSpec` | `LimitOpDesc` | 5 |
| `RandomKSamplingOpDescSpec` | `RandomKSamplingOpDesc` | 3 |
| `ReservoirSamplingOpDescSpec` | `ReservoirSamplingOpDesc` | 3 |

All three spec files follow the `<srcClassName>Spec.scala` one-to-one
convention.

**Behavior pinned — `LimitOpDesc`**

| Surface | Contract |
| --- | --- |
| `operatorInfo` | `Limit`, `CLEANING_GROUP`, 1-in/1-out,
`supportReconfiguration == true` |
| Polymorphic deserialize | `{"operatorType":"Limit","limit":N}` via
`classOf[LogicalOp]` yields a `LimitOpDesc` with `limit == N` |
| `getPhysicalOp` | non-parallelizable; wires `LimitOpExec`; ports
carried forward |
| `runtimeReconfiguration` | returns `Success` with a
`StateTransferFunc`; the func copies the running `count` from the old
`LimitOpExec` to the new one (exercised end-to-end with two real exec
instances) |

**Behavior pinned — `RandomKSamplingOpDesc`**

| Surface | Contract |
| --- | --- |
| `operatorInfo` | `Random K Sampling`, `UTILITY_GROUP`,
`supportReconfiguration == true` |
| `percentage` round-trip | serializes under the spaced wire-key `random
k sample percentage`; survives a polymorphic round-trip |
| `getPhysicalOp` | wires `RandomKSamplingOpExec`; ports carried forward
|

**Behavior pinned — `ReservoirSamplingOpDesc`**

| Surface | Contract |
| --- | --- |
| `operatorInfo` | `Reservoir Sampling`, `UTILITY_GROUP`,
`supportReconfiguration == false` (the intentional difference vs
RandomKSampling — pinned so a future "fix" that flips it is caught) |
| `k` round-trip | serializes under the wire-key `number of item sampled
in reservoir sampling` |
| `getPhysicalOp` | wires `ReservoirSamplingOpExec`; ports carried
forward |

### Any related issues, documentation, discussions?

Closes #5807.

### How was this PR tested?

Pure unit-test additions; verified locally with:

- `sbt "WorkflowOperator/testOnly
org.apache.texera.amber.operator.limit.LimitOpDescSpec
org.apache.texera.amber.operator.randomksampling.RandomKSamplingOpDescSpec
org.apache.texera.amber.operator.reservoirsampling.ReservoirSamplingOpDescSpec"`
— 11 tests, all green
- `sbt "WorkflowOperator/Test/scalafmtCheck"` and `sbt
"WorkflowOperator/Test/scalafix --check"` — clean
- CI to confirm

### Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (Opus 4.8 [1M context])

Report URL: https://github.com/apache/texera/actions/runs/27863593292

With regards,
GitHub Actions via GitBox

Reply via email to