void test_is_accessor(gconstpointer data) { const gchar *name; grn_obj *table; grn_obj *object; assert_send_command("table_create Users TABLE_HASH_KEY ShortText"); assert_send_command("column_create Users name COLUMN_SCALAR ShortText"); table = grn_ctx_get(context, "Users", -1); name = gcut_data_get_string(data, "name"); object = grn_obj_column(context, table, name, strlen(name)); if (gcut_data_get_string(data, "expected")) { cut_assert_true(grn_obj_is_accessor(context, object)); } else { cut_assert_false(grn_obj_is_accessor(context, object)); } }
static void mrn_query_expand_info_free(mrn::QueryExpandInfo *info) { MRN_DBUG_ENTER_FUNCTION(); if (!info) { DBUG_VOID_RETURN; } if (info->ctx) { GRN_OBJ_FIN(info->ctx, &(info->expanded_query)); if (grn_obj_is_accessor(info->ctx, info->expanded_term_column)) { grn_obj_unlink(info->ctx, info->expanded_term_column); } if (grn_obj_is_accessor(info->ctx, info->term_column)) { grn_obj_unlink(info->ctx, info->term_column); } mrn_context_pool->release(info->ctx); } my_free(info); DBUG_VOID_RETURN; }
grn_bool grn_obj_is_key_accessor(grn_ctx *ctx, grn_obj *obj) { grn_accessor *accessor; if (!grn_obj_is_accessor(ctx, obj)) { return GRN_FALSE; } accessor = (grn_accessor *)obj; if (accessor->next) { return GRN_FALSE; } return accessor->action == GRN_ACCESSOR_GET_KEY; }