Cypher on SQL stores: a node given by coalesce() or CASE isn't a node, so MATCH (x)-->(d) from it, or labels(x), is refused (port of drivine4j#440)
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
Rechercherichtung
Start in drivine/cypher/sql/sql_cypher_compiler.py, reading the coalesce handling around line 4830, pattern variable handling around lines 1657 and 2441, and labels() around line 4802. Use TCK Match7 #22 and the two proposed queries from the issue to guide the behavior and tests. Done means node-valued coalesce and CASE expressions work as pattern inputs and with labels(), while a null node used as a pattern matches nothing.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Port of liberation-data/drivine4j#440.
What happens. A node given by coalesce() or CASE is no longer a node in compiled Cypher. A pattern that starts from it, as in TCK Match7 #22's WITH coalesce(b, c) AS x MATCH (x)-->(d) RETURN d, is refused with "x is not a node, and is used as one in a pattern.", and labels(x) with "labels() takes a node.". Neo4j runs both. x.num works.
Where. coalesce always gives JSON, whatever its arguments (drivine/cypher/sql/sql_cypher_compiler.py:4830). A pattern accepts only a node value for a variable in scope (drivine/cypher/sql/sql_cypher_compiler.py:1657, and :2441 for writes). labels() takes only a node (drivine/cypher/sql/sql_cypher_compiler.py:4802). Read at drivine-python origin/main (7e2998e).
The fix. drivine4j has no fix yet. It proposes that a coalesce or CASE of nodes (or null literals) give a node value whose nid, labels, props and stamp are each the COALESCE or CASE of the arguments' columns, so a pattern from a null node matches nothing.
Tests to port. TCK Match7 #22, and from drivine4j#440: MATCH (a:Single) OPTIONAL MATCH (a)-->(c:NonExistent) WITH coalesce(c, a) AS x MATCH (x)-->(y) RETURN y.num and WITH CASE WHEN true THEN b ELSE a END AS x MATCH (x)-->(d) RETURN labels(d).
- Vorherrschende Sprache
- Python
- Sterne
- 1
- Forks
- 0
- Ø Merge
- 1 Std. 29 Min.
- Gemergte PRs (30 T.)
- 136
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus liberation-data/drivine-python
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
liberation-data/drivine-python#250 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
liberation-data/drivine-python#209 ·
Maintainer antworten meist innerhalb von 1 Tag
-
CI: three Oracle-only tests in test_cypher_compiled.py never run, as -k oracle doesn't select themOffen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
liberation-data/drivine-python#178 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
liberation-data/drivine-python#297 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
liberation-data/drivine-python#295 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in liberation-data/drivine-python
Ähnliche Issues
-
_chunk_scan_fwd launches its Triton kernel without a device guard: NaN when a model is split across GPUsEvtl. vergeben @toddwbucy hat das heute übernommen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
state-spaces/mamba#1072 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
loopj/aiovantage#414 ·
Maintainer antworten meist innerhalb von 1 Tag
-
power_mismatch_deline docstring: the rear-to-total RMAD conversion has an extra bifaciality factorOffen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
pvlib/pvlib-python#2929 ·
Maintainer antworten meist innerhalb von 1 Tag
-
data good first issue launch-day unverified
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
BradGroux/wow-forever-mission-control#8 ·
Maintainer antworten meist innerhalb von 1 Tag
-
check bilibili falsely reports read/subtitle as broken: live_test fixture BV1GJ411x7h7 is gone (404)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Panniantong/Agent-Reach#889 ·
Maintainer antworten meist innerhalb von 2 Tagen