Scan Select rules and the Query ALL_PROJECTED_ATTRIBUTES rule answer without the "1 validation error detected: " prefix

Abierto Apto para principiantes
#832 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 4 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
64/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust
Área
backend

Línea de trabajo

Empieza con validate_select_projection en crates/core/src/validation/mod.rs y compara cómo se manejan los prefijos para Scan y Query según las reglas de Select y proyección enumeradas. Usa los casos de solicitud medidos del issue para comprobar el texto de la respuesta; el trabajo estará terminado cuando las respuestas afectadas de Scan y Query coincidan con el comportamiento de DynamoDB indicado y las reglas que ya se habían señalado como coincidentes sigan siendo correctas.

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

Descripción

Scan answers the three Select rules without the 1 validation error detected: prefix the service sends, and Query answers the ALL_PROJECTED_ATTRIBUTES rule without it.

Measured against Amazon DynamoDB in us-east-1 on 4 November 2026, each request twice, both answers identical, on tables created for the run (pk S HASH and sk S RANGE; the same with an LSI lsi1; pk N HASH). ExtendDB answers are from a SQLite server built from main 25ee109bf, each request twice, both answers identical.

Request Service ExtendDB main 25ee109bf
Scan, "Select": "SPECIFIC_ATTRIBUTES" and no AttributesToGet or ProjectionExpression 1 validation error detected: Must specify the AttributesToGet or ProjectionExpression when choosing to get SPECIFIC_ATTRIBUTES Must specify the AttributesToGet or ProjectionExpression when choosing to get SPECIFIC_ATTRIBUTES
Scan, "Select": "ALL_ATTRIBUTES" with a ProjectionExpression 1 validation error detected: Cannot specify the ProjectionExpression when choosing to get ALL_ATTRIBUTES the same text without the prefix
Scan, "Select": "COUNT" with a ProjectionExpression 1 validation error detected: Cannot specify the ProjectionExpression when choosing to get only the Count the same text without the prefix
Scan of the LSI table, "Select": "ALL_PROJECTED_ATTRIBUTES", "IndexName": "lsi1" and a ProjectionExpression 1 validation error detected: Cannot specify the ProjectionExpression when choosing to get ALL_PROJECTED_ATTRIBUTES the same text without the prefix
Scan, "Select": "ALL_PROJECTED_ATTRIBUTES" and no IndexName 1 validation error detected: ALL_PROJECTED_ATTRIBUTES can be used only when Querying using an IndexName the same text without the prefix
Query pk = :p, "Select": "ALL_PROJECTED_ATTRIBUTES" and no IndexName the same as the row above the same text without the prefix

The SPECIFIC_ATTRIBUTES row was also sent on Scan beside a valid ExclusiveStartKey, beside a malformed and a wrong-typed one, beside "Limit": 1, beside a FilterExpression, and on the N hash key table: the service sends the prefix in all six, and ExtendDB leaves it out in all six.

On Query the service and ExtendDB agree on the other rules: SPECIFIC_ATTRIBUTES alone and beside a valid ExclusiveStartKey, and ALL_ATTRIBUTES and COUNT with a ProjectionExpression, all with the prefix.

Where the answer comes from

validate_select_projection in crates/core/src/validation/mod.rs adds the prefix when is_query is set and leaves it out for Scan, for the SPECIFIC_ATTRIBUTES rule and the rule for a Select that cannot carry a ProjectionExpression. A comment there cites measurements of 24 August 2026 for the split. The ALL_PROJECTED_ATTRIBUTES rule returns its text without the prefix for both operations.

Lenguaje dominante
Rust
Estrellas
517
Forks
60
Merge medio
5 d 4 h
PR fusionados (30 d)
76

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 ExtendDB/extenddb

Todos los issues de ExtendDB/extenddb

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.