summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
c0c4be3)
* BUGFIX : PasarClaveDerecha estaba actualizando mal un puntero
b_leer_header(der, &der_h);
padre_entries = b_leer_claves(padre, &padre_h);
/* Inserto en el hijo derecho la clave del padre */
b_leer_header(der, &der_h);
padre_entries = b_leer_claves(padre, &padre_h);
/* Inserto en el hijo derecho la clave del padre */
+ PERR("PASAR CLAVE DERECHA");
b_insertar_en_nodo_con_lugar(idx, padre_entries[padre_pos].clave, padre_entries[padre_pos].dato,
der_id, der, der_h.hijo_izquierdo, entry.hijo_derecho);
/* Reemplazo clave del padre por clave nueva */
b_insertar_en_nodo_con_lugar(idx, padre_entries[padre_pos].clave, padre_entries[padre_pos].dato,
der_id, der, der_h.hijo_izquierdo, entry.hijo_derecho);
/* Reemplazo clave del padre por clave nueva */
/* Busco al mi padre, perdido en un maremoto hace mucho,muchos
* años
*/
/* Busco al mi padre, perdido en un maremoto hace mucho,muchos
* años
*/
if (header.padre == -1) {
if (header.padre == -1) {
+ if (nodo_id == 0) {
+ /* Bien, son el nodo raiz y aca tendria que ir hacia mi hijo
+ * derecho
+ */
+ nodo = b_leer_nodo(idx, claves[header.cant-1].hijo_derecho);
+ free(tmp);
+ b_leer_header(nodo, &header);
+ claves = b_leer_claves(nodo, &header);
+
+ salida = claves[0].clave;
+ }
nodo = b_leer_nodo(idx, header.padre);
b_leer_header(nodo, &header);
claves = b_leer_claves(nodo, &header);
nodo = b_leer_nodo(idx, header.padre);
b_leer_header(nodo, &header);
claves = b_leer_claves(nodo, &header);
/* la paso a la derecha */
b_pasar_clave_a_derecha(idx, der, der_id, padre, nodo_header.padre, pos_padre, a_pasar);
/* la paso a la derecha */
b_pasar_clave_a_derecha(idx, der, der_id, padre, nodo_header.padre, pos_padre, a_pasar);
- /* XXX TODO Liberar memoria y GUARDAR*/
+ /* Dejo en nodo las claves que corresponden */
+ memcpy(claves, buffer, nodo_header.cant*sizeof(B_NodoEntry));
b_grabar_nodo(idx, der_id, der);
b_grabar_nodo(idx, nodo_header.padre, padre);
b_grabar_nodo(idx, nodo_id, nodo);
free(buffer);
b_grabar_nodo(idx, der_id, der);
b_grabar_nodo(idx, nodo_header.padre, padre);
b_grabar_nodo(idx, nodo_id, nodo);
free(buffer);
+ free(nodo);
+ free(der);
+ free(padre);
b_grabar_nodo(idx, nodo_header.padre, padre);
b_grabar_nodo(idx, nodo_id, nodo);
free(buffer);
b_grabar_nodo(idx, nodo_header.padre, padre);
b_grabar_nodo(idx, nodo_id, nodo);
free(buffer);
+ free(nodo);
+ free(izq);
+ free(padre);
return;
}
/* Tengo que partir, tengo que sacar una clave del padre y mandarla al partir */
clave_que_sale = padre_claves[pos_padre];
return;
}
/* Tengo que partir, tengo que sacar una clave del padre y mandarla al partir */
clave_que_sale = padre_claves[pos_padre];
+ clave_que_sale.hijo_derecho = -1;
for(i=pos_padre; i<padre_header.cant-1; i++)
padre_claves[i] = padre_claves[i+1];
padre_header.cant--;
for(i=pos_padre; i<padre_header.cant-1; i++)
padre_claves[i] = padre_claves[i+1];
padre_header.cant--;
hasta_codigo = mayor.i_clave;
fprintf(stderr, "k.i_clave = %d -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
while ((k.i_clave != -1) && (k.i_clave <= hasta_codigo)) {
hasta_codigo = mayor.i_clave;
fprintf(stderr, "k.i_clave = %d -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
while ((k.i_clave != -1) && (k.i_clave <= hasta_codigo)) {
+ PERR("BUSCO ARTICULO");
articulo = art_obtener(lst_articulos, k.i_clave, &dummy);
articulo = art_obtener(lst_articulos, k.i_clave, &dummy);
+ PERR("AGREGO A LA LISTA");
+ fprintf(stderr, "%d - %s\n", articulo->numero, articulo->desc);
lista_agregar_fila(lista,
articulo->numero,
articulo->desc,
lista_agregar_fila(lista,
articulo->numero,
articulo->desc,
+ PERR("OBTENGO SIGUIENTE CLAVE");
k = idx->obtener_sig_clave(idx, k);
fprintf(stderr, "k.i_clave = %d -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
}
k = idx->obtener_sig_clave(idx, k);
fprintf(stderr, "k.i_clave = %d -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
}
/* Para cada columna, leo el dato y lo agrego en la fila */
i = 0;
while (col) {
/* Para cada columna, leo el dato y lo agrego en la fila */
i = 0;
while (col) {
- fprintf(stderr, "Dato en columnas %d\n", i);
switch (col->tipo) {
case DATO_INT:
nueva->datos[i].i_dato = va_arg(args, int);
switch (col->tipo) {
case DATO_INT:
nueva->datos[i].i_dato = va_arg(args, int);
/* Para cada columna, leo el dato y lo agrego en la fila */
i = 0;
while (col) {
/* Para cada columna, leo el dato y lo agrego en la fila */
i = 0;
while (col) {
- fprintf(stderr, "Dato en columnas %d\n", i);
switch (col->tipo) {
case DATO_INT:
nueva->datos[i].i_dato = va_arg(args, int);
switch (col->tipo) {
case DATO_INT:
nueva->datos[i].i_dato = va_arg(args, int);