X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/74c6776ce0ae5ea218cf0363af040bf260b2c72b..8ed872279800f018aa1dfa690d646428d68820c1:/emufs/indice_b.c?ds=sidebyside diff --git a/emufs/indice_b.c b/emufs/indice_b.c index dfd4ff3..ef05112 100644 --- a/emufs/indice_b.c +++ b/emufs/indice_b.c @@ -105,8 +105,9 @@ int emufs_indice_b_insertar(INDICE *idx, CLAVE clave, INDICE_DATO dato) PERR(idx->nombre); return 0; } - - b_insertar_dup_en_pos(idx, claves[i].dato, dato); + + if ((idx->funcion == IND_SELECCION) && (!emufs_indice_es_clave_nula(idx, clave))) + b_insertar_dup_en_pos(idx, claves[i].dato, dato); if (idx->tipo_dato == IDX_STRING) { /* Tengo que sacar el texto repetido del archivo de textos */ @@ -132,6 +133,11 @@ int emufs_indice_b_insertar(INDICE *idx, CLAVE clave, INDICE_DATO dato) /* Agrego el DATO real al archivo de claves repetiras * y me guardo el ID para poner en el indice */ + if ((idx->funcion == IND_SELECCION) && (emufs_indice_es_clave_nula(idx, clave))) + /* UPS!, la clave que se va a insertar por primera vez es nula + * y soy un indice selectivo!, no lo puedo permitir, ciao!! + */ + return 1; dummy.id = -1; dato.id = b_insertar_dup_en_pos(idx, dummy, dato); }