round() with a precision read from data below 0 gives a value, where Neo4j fails
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 54/100
Piste de recherche
Read the existing round handling and per-store expression code, then compare it with the referenced drivine4j fix and its CypherQueryCrossEngineTest cases. Port the failure expression for each supported store and guard precision values read from rows; update the spec to v0.6.4. Done when the new spec case and the ported cross-engine cases pass, including the WHERE, aggregate, filtered-row, and compiler-constant cases.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Port of liberation-data/drivine4j#265 (PR liberation-data/drivine4j#275).
Neo4j fails round(x, p) when p, read from a row, is below 0 (22N03). A written or bound precision is refused when compiling (once #120 lands). One read from data can't be, and Postgres, Oracle and SQLite give a value instead: 1200 for round(1234.5, -2), or 1235 on SQLite, whose ROUND reads a negative precision as 0.
The fix in drivine4j:
- A
failure(message, value)per store: an expression that fails the statement when it is worked out. It reads the row's value, so the store can't work it out ahead.- Postgres: a cast of text to an integer.
- Oracle:
TO_NUMBERof text. - SQLite: a registered
drivine_fail.
round()'s precision from data is guarded:CASE WHEN TRUNC(p) < 0 THEN <failure> ELSE CAST(TRUNC(p) AS INTEGER) END.
Port it, and move to spec v0.6.4, whose round case reads a precision from data. drivine4j's CypherQueryCrossEngineTest round tests are also worth porting. They cover a WHERE, an aggregate, a filtered row, and constants the compiler doesn't read as given.
This follows #120, the port of drivine4j#233.
- Langage dominant
- Python
- Étoiles
- 1
- Forks
- 0
- Merge moyen
- 1 h 19 min
- PR mergées (30 j)
- 122
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de liberation-data/drivine-python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
liberation-data/drivine-python#252 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
liberation-data/drivine-python#250 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
liberation-data/drivine-python#209 ·
Les mainteneurs répondent en général sous 1 jour
-
CI: three Oracle-only tests in test_cypher_compiled.py never run, as -k oracle doesn't select themOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
liberation-data/drivine-python#178 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 58/100
liberation-data/drivine-python#243 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de liberation-data/drivine-python
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 4 jours
-
Add alembic upgrade predeployOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
ClockGU/clockwork-backend#169 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
aws-samples/sample-per-model-bedrock#616 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
chnm/teachinghistory-hugo#47 ·
-
good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
pandas-dev/pandas-stubs#2047 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour