Open sebaterrazas opened 3 months ago
Record no es una clase pensada para generar una copia de si misma. Para que el compilador no te deje generar copias sin darte cuenta puedes añadir en la clase Record:
// src/relational_model/record.h
Record(std::vector<DataType>&& types);
Record(const Record& other) = delete; // new line
~Record();
Por lo tanto no vas a poder meter los records en un vector. Pero no es necesario para el vacuum que metas los records a un vector.
Hola, he estado atascado en cómo implementar la función
vacuum
. Entiendo lo que hay que hacer, y creo tener todo listo, pero no he podido hacer una lista de Record, en el cual guardo los Record que deben estar presentes en la nueva página. Sin querer mostrar mucho mi código por aquí, básicamente creo una lista auxiliarstd::vector<Record> array;
en la cuál voy agregando los Records pertinentesarray.push_back(record);
. Mi problema es que después del segundo record que agrego (el primero se agrega bien), me salta este error:Entiendo que probablemente este problema sea de referencia, al agregar un Record al array, el cual en otra parte se libera. Lo que no entiendo es como agregar a este array una copia del Record, o evitar que se libere.