GFQL Cypher: numeric operator conformance + expression-lane typing (round-004 umbrella)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start with the probe report in scratchpad probe-expr/ and the cited comments in lazy/engine/polars/row_pipeline.py:90 and row_pipeline.py:1353; compare the column arithmetic path with literal constant-folding behavior. The issue lists several independent conformance gaps and leaves one behavior awaiting a decision, so first confirm which finding is in scope. Done means the selected behavior matches the stated openCypher expectation and is covered by probes for both engines.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Round-004 expression/predicate probe (~85 hand-oracled queries × both engines @ d044e3e84). Headline: TVL/null core is FULLY conformant (full AND/OR/XOR truth table, IN-list nulls, string predicates, ORDER BY null placement); debt concentrates in numerics — findings 1-3 share one root: column arithmetic lowers to raw pandas/polars ops without the Cypher numeric-tower wrap the const-folder applies to literals.
SILENT-WRONG (both engines):
- Modulo is Python-floored, openCypher is truncated:
-7 % 3→ 2 (oc -1); column path identical; breadcrumb comment at lazy/engine/polars/row_pipeline.py:90 confirms the known gap. - Column int division is true-division:
n.rank / 2(int64) → floats; literal5 / 2→ 2 correctly (const-folder toInteger wrap) — only the column lane skips it. - Column int div-by-zero → inf silently; openCypher mandates error.
- Simple CASE
WHEN nullmatches null subjects (deliberate per row/pipeline.py:1353 comment, but contradicts openCypher/Neo4j: simple CASE uses '=', null never matches). - bool-vs-int comparison coerces (
WHERE n.flag > 0matches) instead of null semantics; the numeric-vs-string guard exists but bool-vs-int slips past.
Typed gaps / form defects: missing property in WHERE is GFQLSchemaError (makes IS NULL unusable for schema-optional props; RETURN n.absent correctly nulls); ORDER BY restricted to projected columns; col-vs-col STARTS WITH raises RAW ValueError (untyped); 1 + null pandas typed-errors while polars correctly nulls (parity broken in the conforming direction); toInteger('x1') errors vs null; select-lane errors all mislabeled invalid-node-reference. Entity fns labels()/properties() return display strings not structured values.
Swept clean: extensive TVL/string/CASE/ORDER-BY/SKIP-LIMIT inventory in probe report (scratchpad probe-expr/). Fix order: 1-3 (one numeric-tower root) → 5 → 4 (needs decision: keep documented deviation or conform) → error-typing polish.
- Lingua principale
- Python
- Stelle
- 2.6k
- Fork
- 229
- Merge medio
- 1g 5h
- PR unite (30g)
- 99
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di graphistry/pygraphistry
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
graphistry/pygraphistry#2171 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
graphistry/pygraphistry#1965 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
graphistry/pygraphistry#1208 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
graphistry/pygraphistry#966 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
graphistry/pygraphistry#824 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di graphistry/pygraphistry
Issue simili
-
cost:cheap practicality:seen-in-the-wild severity:medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
fairagro/m4.2_advanced_middleware_api#620 ·
I maintainer di solito rispondono entro 1 giorno
-
area:security effort:S priority:P2 provider:local-libvirt status:ready type:docs
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
randomparity/kdive#3495 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
microsoft/markitdown#2820 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni