Commit 81ebecff authored by Rich Prohaska's avatar Rich Prohaska

change the name of internal functions



git-svn-id: file:///svn/tokudb@67 c7de825b-a66e-492c-adef-691d508d4ae1
parent 3e13b14b
...@@ -38,3 +38,5 @@ int pmainternal_printpairs (struct pair *pairs, int N); ...@@ -38,3 +38,5 @@ int pmainternal_printpairs (struct pair *pairs, int N);
int pmainternal_make_space_at (PMA pma, int idx); int pmainternal_make_space_at (PMA pma, int idx);
int pmainternal_find (PMA pma, DBT *, DB*); // The DB is so the comparison fuction can be called. int pmainternal_find (PMA pma, DBT *, DB*); // The DB is so the comparison fuction can be called.
void print_pma (PMA pma); /* useful for debugging, so keep the name short. I.e., not pmainternal_print_pma() */ void print_pma (PMA pma); /* useful for debugging, so keep the name short. I.e., not pmainternal_print_pma() */
int pmainternal_init_array(PMA pma, int asksize);
struct pair *pmainternal_extract_pairs(PMA pma);
...@@ -636,8 +636,9 @@ void pma_tests (void) { ...@@ -636,8 +636,9 @@ void pma_tests (void) {
test_pma_split(0); memory_check_all_free(); test_pma_split(0); memory_check_all_free();
test_pma_split(1); memory_check_all_free(); test_pma_split(1); memory_check_all_free();
test_pma_split(2); memory_check_all_free(); test_pma_split(2); memory_check_all_free();
test_pma_split(4); memory_check_all_free();
test_pma_split(8); memory_check_all_free(); test_pma_split(8); memory_check_all_free();
test_pma_split(32); memory_check_all_free(); test_pma_split(9); memory_check_all_free();
test_pma_split_varkey(); memory_check_all_free(); test_pma_split_varkey(); memory_check_all_free();
} }
......
...@@ -265,36 +265,30 @@ int pmainternal_count_region (struct pair *pairs, int lo, int hi) { ...@@ -265,36 +265,30 @@ int pmainternal_count_region (struct pair *pairs, int lo, int hi) {
int pma_create (PMA *pma, int (*compare_fun)(DB*,const DBT*,const DBT*)) { int pma_create (PMA *pma, int (*compare_fun)(DB*,const DBT*,const DBT*)) {
TAGMALLOC(PMA, result); TAGMALLOC(PMA, result);
int i; int error;
if (result==0) return -1; if (result==0) return -1;
result->N = 4;
result->n_pairs_present = 0; result->n_pairs_present = 0;
MALLOC_N((1+result->N),result->pairs); result->pairs = 0;
result->pairs[result->N].key = (void*)0xdeadbeef;
//printf("pairs=%p (size=%d)\n", result->pairs,result->N*sizeof(*result->pairs));
if (result->pairs==0) {
toku_free(result);
return -1;
}
for (i=0; i<result->N; i++) {
result->pairs[i].key = 0;
result->pairs[i].keylen = 0;
result->pairs[i].val = 0;
result->pairs[i].vallen = 0;
}
pmainternal_calculate_parameters(result);
result->cursors_head = result->cursors_tail = 0; result->cursors_head = result->cursors_tail = 0;
result->compare_fun = compare_fun; result->compare_fun = compare_fun;
result->skey=0; result->skey=0;
result->sval = 0; result->sval = 0;
error = pmainternal_init_array(result, 4);
if (error) {
toku_free(result);
return -1;
}
*pma = result; *pma = result;
assert((unsigned long)result->pairs[result->N].key==0xdeadbeefL); assert((unsigned long)result->pairs[result->N].key==0xdeadbeefL);
return 0; return 0;
} }
int pma_init_array(PMA pma, int n) { int pmainternal_init_array(PMA pma, int asksize) {
int i; int i;
int twor; int n;
if (pma->pairs) { if (pma->pairs) {
toku_free(pma->pairs); toku_free(pma->pairs);
...@@ -302,12 +296,14 @@ int pma_init_array(PMA pma, int n) { ...@@ -302,12 +296,14 @@ int pma_init_array(PMA pma, int n) {
} }
/* find the smallest power of 2 >= n */ /* find the smallest power of 2 >= n */
twor = 4; n = 4;
while (twor < n) while (n < asksize)
twor *= 2; n *= 2;
pma->N = twor; pma->N = n;
MALLOC_N(1+pma->N, pma->pairs); MALLOC_N(1+pma->N, pma->pairs);
if (pma->pairs == 0)
return -1;
pma->pairs[pma->N].key = (void *) 0xdeadbeef; pma->pairs[pma->N].key = (void *) 0xdeadbeef;
for (i=0; i<pma->N; i++) { for (i=0; i<pma->N; i++) {
...@@ -320,7 +316,6 @@ int pma_init_array(PMA pma, int n) { ...@@ -320,7 +316,6 @@ int pma_init_array(PMA pma, int n) {
return 0; return 0;
} }
int pma_cursor (PMA pma, PMA_CURSOR *cursp) { int pma_cursor (PMA pma, PMA_CURSOR *cursp) {
PMA_CURSOR MALLOC(curs); PMA_CURSOR MALLOC(curs);
if (errno!=0) return errno; if (errno!=0) return errno;
...@@ -567,7 +562,7 @@ void pma_iterate (PMA pma, void(*f)(bytevec,ITEMLEN,bytevec,ITEMLEN, void*), voi ...@@ -567,7 +562,7 @@ void pma_iterate (PMA pma, void(*f)(bytevec,ITEMLEN,bytevec,ITEMLEN, void*), voi
} }
} }
struct pair *pma_extract_pairs(PMA pma) { struct pair *pmainternal_extract_pairs(PMA pma) {
int npairs; int npairs;
struct pair *pairs; struct pair *pairs;
int i; int i;
...@@ -613,10 +608,10 @@ int pma_split(PMA old, PMA *newa, PMA *newb, ...@@ -613,10 +608,10 @@ int pma_split(PMA old, PMA *newa, PMA *newb,
/* extract the pairs */ /* extract the pairs */
npairs = pma_n_entries(old); npairs = pma_n_entries(old);
pairs = pma_extract_pairs(old); pairs = pmainternal_extract_pairs(old);
old->n_pairs_present = 0; old->n_pairs_present = 0;
/* split the pairs in half by length */ /* split the pairs in half by length (TODO: combine sum with extract) */
sumlen = 0; sumlen = 0;
for (i=0; i<npairs; i++) for (i=0; i<npairs; i++)
sumlen += 4 + pairs[i].keylen + 4 + pairs[i].vallen; sumlen += 4 + pairs[i].keylen + 4 + pairs[i].vallen;
...@@ -630,13 +625,15 @@ int pma_split(PMA old, PMA *newa, PMA *newb, ...@@ -630,13 +625,15 @@ int pma_split(PMA old, PMA *newa, PMA *newb,
} }
spliti = i; spliti = i;
/* put the first 1/2 of pairs into newa */ /* put the first half of pairs into newa */
pma_init_array(*newa, 2 * spliti); error = pmainternal_init_array(*newa, 2 * spliti);
assert(error == 0);
distribute_data((*newa)->pairs, pma_index_limit(*newa), &pairs[0], spliti); distribute_data((*newa)->pairs, pma_index_limit(*newa), &pairs[0], spliti);
(*newa)->n_pairs_present = spliti; (*newa)->n_pairs_present = spliti;
/* put the second 1/2 of pairs into newb */ /* put the second half of pairs into newb */
pma_init_array(*newb, 2 * (npairs-spliti)); error = pmainternal_init_array(*newb, 2 * (npairs-spliti));
assert(error == 0);
distribute_data((*newb)->pairs, pma_index_limit(*newb), &pairs[spliti], npairs-spliti); distribute_data((*newb)->pairs, pma_index_limit(*newb), &pairs[spliti], npairs-spliti);
(*newb)->n_pairs_present = npairs-spliti; (*newb)->n_pairs_present = npairs-spliti;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment