Filter `FieldName <-. [Nothing]` not finding expected results

Abierto
#1,473 6 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
haskell, postgresql, sqlite
Área
database

Línea de trabajo

Empieza ejecutando la reproducción completa de sqlite enlazada en el issue y compara sus resultados con los ejemplos de selectList indicados. Rastrea cómo Persistent construye filtros que contienen Nothing y comprueba después si se puede reproducir el mismo comportamiento con Postgres; estará hecho cuando selectList [PersonAge <-. [Nothing]] devuelva Jane sin romper los casos Just.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I'm running into some odd behaviour where the filter FieldName <-. [Just v, Nothing] finds rows where FieldName is either null or v, but FieldName <-. [Nothing] doesn't find any rows at all.

  _johnId <- insert $ Person "John Doe" $ Just 35
  _janeId <- insert $ Person "Jane Doe" Nothing

  selectList [] [] -- finds no one
  selectList [PersonAge <-. [Nothing, Just 35]] [] -- finds John and Jane
  selectList [PersonAge <-. [Just 35]] [] -- finds John
  selectList [PersonAge <-. [Nothing]] [] -- expected to find Jane, but finds no one

Here's a complete repro using sqlite, but I've also observed this in Postgres.

Lenguaje dominante
Haskell
Estrellas
486
Forks
307
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de yesodweb/persistent

Todos los issues de yesodweb/persistent

Issues similares

Más issues de Haskell

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.