/* * return -1 in case of failure * size of allocation in case of success */ static int anbtr_check_init(ai_nbtr *anbtr, uchar pktyp) { bool create_arr = false; bool create_nbtr = false; if (anbtr->is_btree) { if (anbtr->u.nbtr) { create_nbtr = false; } else { create_nbtr = true; } } else { if (anbtr->u.arr) { create_arr = false; } else { if (g_use_arr) { create_arr = true; } else { create_nbtr = true; } } } // create array or btree if (create_arr) { anbtr->u.arr = ai_arr_new(); if (!anbtr->u.arr) { return -1; } return ai_arr_size(anbtr->u.arr); } else if (create_nbtr) { anbtr->u.nbtr = createIndexNode(pktyp, COL_TYPE_NONE); if (!anbtr->u.nbtr) { return -1; } anbtr->is_btree = true; return anbtr->u.nbtr->msize; } else { if (!anbtr->u.arr && !anbtr->u.nbtr) { cf_warning(AS_SINDEX, "Something wrong!!!"); return -1; } } return 0; }
/* * return -1 in case of failure * size of allocation in case of success */ static int anbtr_check_init(ai_nbtr *anbtr, col_type_t sktype) { bool create_arr = false; bool create_nbtr = false; if (anbtr->is_btree) { if (anbtr->u.nbtr) { create_nbtr = false; } else { create_nbtr = true; } } else { if (anbtr->u.arr) { create_arr = false; } else { if (g_use_arr) { create_arr = true; } else { create_nbtr = true; } } } // create array or btree if (create_arr) { anbtr->u.arr = ai_arr_new(); return ai_arr_size(anbtr->u.arr); } else if (create_nbtr) { anbtr->u.nbtr = createNBT(sktype); if (!anbtr->u.nbtr) { return -1; } anbtr->is_btree = true; return anbtr->u.nbtr->msize; } else { if (!anbtr->u.arr && !anbtr->u.nbtr) { cf_warning(AS_SINDEX, "Something wrong!!!"); return -1; } } return 0; }