6 #include "indice_bplus.h"
9 char* cargar_registro(char* texto_ini,int len_ini, CLAVE clave, char *texto_fin, int len_fin)
12 reg = (char*)malloc(len_ini+sizeof(CLAVE)+len_fin+1); /* +1 para el \0 */
13 memcpy(reg, texto_ini, len_ini);
14 memcpy(reg+len_ini, &clave, sizeof(CLAVE));
15 strcpy(reg+len_ini+sizeof(CLAVE), texto_fin);
20 void imprimir_reg(char* reg, int off, int len)
24 memcpy(&clave, reg+off, sizeof(CLAVE));
25 printf("CLAVE = %d\n", clave);
27 for(i=0; i<len; i++) printf("%c",reg[i]);
29 printf("TAMANIO REGISTRO = %d\n\n", len);
34 int main (int argc,char* argv[])
40 int tam_nodo = SIZE_B_PLUS_HEADER + sizeof(CLAVE)*5 + sizeof(CLAVE)*6;
44 texto = "PARTE COSNSTANTE, clave =";
45 texto2= "FIN DE REGISTRO DE LONG CONSTANTE";
46 emu = emufs_crear("test",T1,512,strlen(texto2));
47 emufs_agregar_indice(emu,"claveidx",IND_PRIMARIO,IND_B_PLUS,IDX_INT,strlen(texto),tam_nodo);
52 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
53 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
54 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
55 emufs_tipo3_insertar_ordenado(emu, r, len, &err);
56 PERR("REGISTRO 1 GRABADO");
61 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
62 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
63 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
64 emufs_tipo3_insertar_ordenado(emu, r, len, &err);
65 PERR("REGISTRO 2 GRABADO");
70 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
71 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
72 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
73 emufs_tipo3_insertar_ordenado(emu, r, len, &err);
74 PERR("REGISTRO 3 GRABADO");
79 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
80 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
81 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
82 emufs_tipo3_insertar_ordenado(emu, r, len, &err);
87 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
88 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
89 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
90 emufs_tipo3_insertar_ordenado(emu, r, len, &err);
91 PERR("REGISTRO 5 GRABADO");
96 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
97 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
98 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
99 emufs_tipo3_insertar_ordenado(emu, r, len, &err);
100 PERR("REGISTRO 6 GRABADO");
105 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
106 imprimir_reg(r, strlen(texto), strlen(texto)+strlen(texto2)+sizeof(CLAVE));
107 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
108 emufs_tipo3_insertar_ordenado(emu, r, len, &err);
109 PERR("REGISTRO 7 GRABADO");
112 for ( i=0; i<10000; i++){
114 clave.i_clave = random();
115 r = cargar_registro(texto, strlen(texto), clave, texto2, strlen(texto2));
116 len = strlen(texto)+strlen(texto2)+sizeof(CLAVE);
117 emufs_tipo3_insertar_ordenado(emu, r, len, &err);