Conversation
noahmasri
left a comment
There was a problem hiding this comment.
El trabajo se encuentra aprobado. Está muy bien documentado, entendible, con muchos tests y cubre todos los casos que pedimos. Salvo por una prueba que no puedo entender por qué te falla, está perfecto (SELECT * FROM materias WHERE NOT nombre = 'Desarrollo' AND departamento = 71 OR codigo > 75;, me trae materias como 71,75,Desarrollo, que se llama desarrollo, por lo q no cumple la primera condicion, y además su codigo es 75, por lo que tampoco cumple la segunda). Tenés tests muy abarcativos por lo que lograste que nuestras pruebas no puedan romperlo. Incluso debo destacar que es el primer trabajo que corrijo que considera las comparaciones entre dos columnas una posibilidad. Felicitaciones y suerte en lo que resta de la materia!
| >```BASH | ||
| >cargo doc --open | ||
| >``` | ||
| > Alternativamente se puede visualizar por [github!](https://gabokatta.github.io/rustic-sql) |
There was a problem hiding this comment.
muy lindo quedó!
| /// | ||
| /// `DeleteBuilder` se encarga de construir una consulta de eliminación a partir | ||
| /// de una lista de tokens que representan la sintaxis de una consulta SQL. | ||
| pub struct DeleteBuilder { |
There was a problem hiding this comment.
parece que se encarga de eliminar un builderjsjsj
There was a problem hiding this comment.
JAJAJA tenes razon, pasa que el IDE me chillaba si el nombre del struct era redundante
Mas claro era DeleteQueryBuilder pero como ya inferia que estaba dentro del modulo Query me molestaba con eso 🤣
| /// | ||
| /// # Errores | ||
| /// | ||
| /// Retorna un error `Errored` si ocurre algún problema durante el análisis. |
There was a problem hiding this comment.
que significa errored?
There was a problem hiding this comment.
Es una palabra que he visto mucho en el laburo y en otros lugares/tutoriales, yo la entiendo como un termino que engloba todo lo que puede ser erroneo, no estoy 100% seguro si es ingles valido pero veo que se usa bastante y queria diferenciar mi Error generico del de std rust.
| _ => unexpected_token_in_stage("COLUMN", t)?, | ||
| } | ||
| } | ||
| Ok(fields) |
There was a problem hiding this comment.
y si pongo los valores pero desordenados? es mejor que vaya comparando de a uno, spliteando por las keywords en el orden en que deberían aparecer
There was a problem hiding this comment.
Noah, me podrias dar un ejemplito de un caso que rompa esto?
No lo estaria viendo el error :(
| } | ||
| delete_temp_file(&self.table_path, &temp_path)?; | ||
| Ok(()) | ||
| } |
There was a problem hiding this comment.
buenísimo, no cargas todo en memoria
| Insert => executor.run_insert(), | ||
| _ => errored!(Syntax, "unknown operation trying to be executed."), | ||
| } | ||
| } |
| pub conditions: ExpressionNode, | ||
| /// El criterio de ordenamiento para los resultados. | ||
| pub ordering: Vec<Ordering>, | ||
| } |
There was a problem hiding this comment.
quizas seria mejor separar por querys aca, que sea un enum, ya que hay campos que si son select van a estar vacios, como "updates" o "selects"
There was a problem hiding this comment.
muy buena observación! Lo considere en su momento pero creo que me dije a mi mismo "ehhhh capaz estoy haciendo todo muy parecido a como lo encararía en Java" (lenguaje que uso usualmente laburando) asi que descarte la idea, pero me lo llevo para el tp grupal
No description provided.