dbtsai opened a new pull request, #123:
URL: https://github.com/apache/spark-connect-rust/pull/123

   ### What changes were proposed in this pull request?
   
   Format ordinary Python DataFrame repr using the existing `dtypes` path: 
`DataFrame[id: bigint, name: string]`, including empty schemas and nested 
simple type strings. Preserve field order/names and propagate schema analysis 
errors. Add separate-process gRPC tests that also assert repr never executes 
rows.
   
   This is based directly on master and adds no schema cache or dependency on 
PR120. Eager row/HTML rendering and eagerEval configuration handling remain 
outside this change; the supported representation is the ordinary schema form.
   
   ### Why are the changes needed?
   
   [SPARK-60682](https://issues.apache.org/jira/browse/SPARK-60682): the 
current Rust-backed repr returns only `DataFrame`, omitting schema information 
shown by Python Connect's ordinary repr and failing all five frozen repr 
inspection cases.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes. For a DataFrame with one long field, `repr(df)` changes from 
`DataFrame` to `DataFrame[id: bigint]`; an empty schema becomes `DataFrame[]`. 
Repr now requests schema analysis and can raise its error, without fetching 
rows. It does not implement eager evaluation.
   
   ### How was this patch tested?
   
   - Release locked maturin build; default Rust member test executables 
compile; 392 Rust library tests pass; cargo fmt and git diff checks pass.
   - 12 new mock-protocol tests pass and all 12 fail on unchanged master. Six 
formatting expectations also checked independently against the frozen reference 
client.
   - All 274 existing Python offline tests pass on both baseline and candidate 
with `python -m pytest --rootdir=python --import-mode=importlib 
python/tests/test_dropin_offline.py -q`.
   - Unchanged frozen harness and validators, five fresh samples per 
case/client, 14 cases: candidate 70/70 valid, reference 70/70 valid, baseline 
45/70 valid. Its 25 failures are the expected five repr cases. All 135 samples 
for nine unrelated guards pass, with overlapping timing ranges. Candidate repr 
issues schema RPCs and zero ExecutePlan calls. No repr speedup is claimed 
against invalid baseline output.
   
   Client-only localhost fixtures; no live Spark server/JVM validation. Initial 
offline invocations without the Python root failed the same UDT module import 
on both clients; corrected invocation passes. Full workspace test compile also 
encountered an unrelated WASM example's missing `wasm32-unknown-unknown` 
target; default Rust members compile successfully.
   
   ### Was this patch authored or co-authored using generative AI tooling?
   
   Generated-by: OpenAI Codex (GPT-6)
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to