i=0;
while ((i<header.cant) && (emufs_indice_es_menor(idx, claves[i].clave, clave))) i++;
if ((i<header.cant) && (emufs_indice_es_igual(idx, claves[i].clave, clave))) {
- /* CLAVE DUPLICADA! */
- return 0;
+ if (idx->tipo == IND_PRIMARIO) {
+ PERR("Indice primario no puede contener claves duplicadas!");
+ return 0;
+ }
+
+ /* TODO : Implementar carga de valor en clave duplicada! */
+
+ return 1;
} else {
if (i == 0) {
nodo = b_leer_nodo(idx, header.hijo_izquierdo);
B_NodoEntry *claves;
char *nodo, *tmp;
+ if (idx->tipo != IND_PRIMARIO) {
+ /* SOLO SE PUEDE BUSCAR CON CLAVE UNICA! */
+ ret.id = ret.bloque = -1;
+ return ret;
+ }
+
/* Leo la raiz */
nodo = b_leer_nodo(idx, 0);
while (nodo) {