The GitHub Actions job "Required Checks" on 
texera.git/backport/6878-qualify-the-asterixdb-from-clause-add-as-v1.2 has 
failed.
Run started by GitHub user Yicong-Huang (triggered by Yicong-Huang).

Head commit for run:
8c51b83277b75c692d052d281e105d46e8727e1c / Xinyuan Lin <[email protected]>
fix(workflow-operator): qualify the AsterixDB FROM clause; add 
AsterixDBSourceOpExec unit tests (#6878)

### What changes were proposed in this PR?

**Source fix.** `AsterixDBSourceOpExec.addBaseSelect` built its query
with

```scala
s"... FROM $desc.database.$desc.table WHERE 1 = 1 "
```

In Scala that interpolates the `desc` **object** and then appends the
literal text `.database` / `.table`, so the generated FROM clause was
malformed and the operator's main query could never run. Line 288 of the
same file already does it correctly (`desc.database + "." +
desc.table`), confirming the intent. Fixed to
`${desc.database}.${desc.table}`.

The bug surfaced while writing tests for this file, which had **0%
coverage**. A reviewer rightly pointed out the first draft pinned the
buggy string; the spec now asserts the corrected clause instead.

**Tests.** Adds `AsterixDBSourceOpExecSpec` (47 tests) covering the
SQL++ string-building surface (no JDBC in this class):
- `addFilterConditions` and each branch it dispatches to —
`addKeywordSearch` (ftcontains; `IllegalArgumentException` on a
non-STRING column), `addRegexSearch`, `addGeoSearch` (create_rectangle
for 2 corners, create_polygon beyond that, OR-joined spatial_intersect,
`NumberFormatException` on a malformed point),
`addGeneralFilterCondition`;
- the skip paths for every toggle-off / missing-input case, and the
composed keyword→regex→geo→general ordering;
- schema derivation from the AsterixDB datatype, and the
base-select/limit/offset fragments.

**Test-infra fix.** `AsterixDBConnUtilSpec` now removes only its own
keys from the JVM-wide `AsterixDBConnUtil.asterixDBVersionMapping`
singleton instead of calling `clear()`: sbt runs suites in parallel
within one JVM, so a blanket clear could evict the new suite's cached
entry mid-run. Both suites also now call `super.beforeAll`/`beforeEach`
and wrap `afterAll` teardown in try/finally.

### Any related issues, documentation, discussions?

Closes #6875.

### How was this PR tested?

`sbt -java-home <jbr-17> "WorkflowOperator/testOnly *AsterixDB*"` -> 84
succeeded, 0 failed (across `AsterixDBSourceOpExecSpec`,
`AsterixDBConnUtilSpec`, `AsterixDBSourceOpDescSpec`).
`Test/scalafmtCheck`, `scalafmtCheck`, `Test/scalafix --check` and
`scalafix --check` all clean.

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

(backported from commit 52584a80cef1c9b9ee67b8083b617bf654be806e)

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

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

With regards,
GitHub Actions via GitBox

Reply via email to