[@loopback/sequelize] Duplicate column names in relation queries
Los mantenedores suelen responder en 4 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- node.js, typescript
Línea de trabajo
Comienza con las pruebas de la extensión de Sequelize y los cambios de reproducción del commit 3c29d852b46f19f4805d556ae32aee49c79471f1. Inspecciona la configuración de la relación Patient y el manejo de keyFrom, keyTo y through antes de que la consulta llegue a Sequelize. La tarea estará completada cuando las relaciones sin todas las propiedades establecidas explícitamente ya no produzcan columnas duplicadas y las pruebas de la extensión incluyan cobertura de regresión.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
Repository queries with relations that do not explicitly set all the keyTo / keyFrom / through properties will lead to broken SQL queries that contain duplicated title case column names mixed in with the expected camelcase columns.
Example:
SELECT bookid as bookId, reader.id as readerId, ReaderId …
Relates to:
https://github.com/sequelize/sequelize/issues/9328
https://github.com/loopbackio/loopback-next/issues/9591
https://github.com/sourcefuse/loopback4-sequelize/issues/35
Logs
No response
Additional information
Workaround seems to be to go through all the Entity relations and explicitly set all the relation key names but that can be time-consuming and error-prone with a larger project. It seems like it might be possible to mitigate this at the loopback model to Sequelize relation layer.
Reproduction
With these changes, running the tests for the Sequelize extension will replicate the error:
https://github.com/KalleV/loopback-next/commit/3c29d852b46f19f4805d556ae32aee49c79471f1
Turns out it's necessary to define additional "belongsTo" relations in other entities before this happens. The extra relation is added to the "Patient" entity in this case. With this set up, I am seeing the following happen:
- The default relation properties are set by Loopback (i.e. I can see the "keyFrom" is populated as todoListId) but the "keyTo" is undefined:
- This leads to undefined being passed as the foreign key to sequelize:
- And then that causes Sequelize to assign a Title Case property through it's own default relation column logic leading to a duplicate column name in the database query:
- Lenguaje dominante
- TypeScript
- Estrellas
- 5.1k
- Forks
- 1.1k
- Merge medio
- 5 d 9 h
- PR fusionados (30 d)
- 27
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de loopbackio/loopback-next
-
Docs good first issue help wanted
Dificultad 1/5 1-3 horas Aptitud para principiantes 68/100
loopbackio/loopback-next#683 · 3 comentarios ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
loopbackio/loopback-next#11726 ·
Los mantenedores suelen responder en 4 días
-
bug
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
loopbackio/loopback-next#11500 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 4 días
-
@param.array throws INVALID_PARAMETER_VALUE:must be string if more than 20 elements are sentAbiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
loopbackio/loopback-next#11412 · 1 comentario ·
Los mantenedores suelen responder en 4 días
-
Query parameter array parsing broken for >20 items after qs upgrade (CVE fix side effect)Quizá libre de nuevo @KauanAfonso la tomó hace 122 días y no hay ningún pull request abierto. Abiertobug help wanted
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
loopbackio/loopback-next#11396 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 4 días
Todos los issues de loopbackio/loopback-next
Issues similares
-
bug cli service
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
create-element: same editorAlias silent-fallback bug as #201, not covered by that fixPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertogenerated-by-ai
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
umbraco/Umbraco-CMS-MCP-Editor#208 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Table: Space fires onActivate in single-selection mode — the reference doc and the JSDoc disagreeAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
sidorares/react-x11-components#764 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
backnotprop/plannotator#1840 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
JoviDeCroock/pracht#432 ·
Los mantenedores suelen responder en 1 día