Couch ignores use_index, and Pouch errors on use_index, and they both are choosing different indexes by default
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript
- Área
- databases
Línea de trabajo
Comienza comparando el comportamiento HTTP de _find y _explain en CouchDB 3.3.3 y PouchDB 8.0.1, centrándote en la selección predeterminada de índices y en el uso de la opción use_index. Reproduce los selectores y los índices proporcionados y, a continuación, determina el comportamiento compatible esperado y documenta o prueba el resultado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Issue
CouchDb and PouchDb choose different indexes for a _find query that does not specify any index.
Is any of this to be expected, or am I doing something wrong? Thanks in advance.
And when trying to force use_index, Couch ignores it and Pouch errors. Seems like ignoring is the better route?
Info
- For pouch, using
pouchdb-node8,0.1 - Platform: Chrome
- Server: Both CouchDB 3.3.3 and PouchDB 8.0.1
Reproduce
Use the above server versions and a TypeScript client that uses http _find calls as described below:
I have a note document type, that looks like this:
{
"_id": "note:609ed703-ee69-46ec-8be2-4c70d25ad44e",
"_rev": "9-e1f3a3d98d32cbe361bf4ec0665071f9",
"type": "note",
"journal_id": "djrn:c669a908-b345-4ee4-9095-84babc8aea66",
"title": "2024-08-25 note",
"body": "Some text stuff\n",
"created_at": "2024-08-25",
"updated_at": "2024-08-26",
"tags": []
}
And when I do a _find (by tag matches), using this:
{
"selector": {
"type": {
"$in": [
"note"
]
},
"tags": {
"$in": [
"asdfasdfasdf",
"ddddddddd"
]
}
},
"fields": [
"_id",
"title",
"tags",
"updated_at"
],
}
It works fine, but when I use _explain I see that Couch and Pouch are using different indexes:
- CouchDb is using
type-indexbut - PouchDb is using
tags-index.
(I tried adding use_index, but it seems CouchDb ignores this, and PouchDb errors out (~"could not find the index, or could not use it for this query").
Here is an example of what the indexes look like; they are almost identical in Couch and Pouch:
type-index from PouchDb (same index is in Couch, except for id, rev):
{
"_id": "_design/idx-bae76d56ce6ab639848d59c2a1d8b364",
"language": "query",
"views": {
"type-index": {
"map": {
"fields": {
"type": "asc"
}
},
"reduce": "_count",
"options": {
"def": {
"fields": [
"type"
]
}
}
}
},
"_rev": "1-dd74d6c53ea6e913934d836695512a07"
}
tags-index from CouchDb (same index is in Pouch, except for id, rev):
{
"_id": "_design/723268ced4323d1b517d25ade1287381c0147cef",
"_rev": "1-cc3ee54469dd17f10c535366c2e1f972",
"language": "query",
"views": {
"tags-index": {
"map": {
"fields": {
"tags": "asc"
},
"partial_filter_selector": {}
},
"reduce": "_count",
"options": {
"def": {
"fields": [
"tags"
]
}
}
}
}
}
- Lenguaje dominante
- JavaScript
- Estrellas
- 17.6k
- Forks
- 1.5k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 apache/pouchdb
-
elemMatch throws TypeError: value is null if array has null elementPosiblemente ocupada @henyanagar la tomó hace 143 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
unref event is not documentedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Validate database namesAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 22/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
Todos los issues de apache/pouchdb
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
ai-driven-fuzzing bug Cosmetic
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
linagora/cozy-client#1831 ·
Los mantenedores suelen responder en 1 día
-
ai-driven-fuzzing bug Major
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
Los mantenedores suelen responder en 1 día
-
[ordering-review] workshop order graph: 1 confirmed ordering problem, 3 cycles are false positivesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
githubnext/gh-aw-workshop#5331 ·
Los mantenedores suelen responder en 1 día
-
Remove: 21 SexturyAbiertochannels:remove check:passed
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
Los mantenedores suelen responder en 4 días