예제 #1
0
void test_o_record_id_managment()
{
    struct o_record_id * id = o_record_id_new(10, 20);
    assert_true(o_record_id_cluster_id(id) == 10, "not the same cluster id of inserted");
    assert_true(o_record_id_record_id(id) == 20, "not the same record id of inserted");
    o_record_id_release(id);
}
void o_c_query_engine_record_listener(void * add_info, struct o_record_id *id, struct o_raw_buffer * buffer)
{
	struct o_internal_result_handler *result_handler = (struct o_internal_result_handler *) add_info;
	struct o_record * record = 0;
	if (buffer != 0)
		record = o_database_operation_context_record_from_content(result_handler->db, id, buffer);
	o_record_id_release(id);
	if (record != 0)
		result_handler->handler(result_handler->handler_add_info, record);
}
예제 #3
0
struct o_record * o_database_metadata(struct o_database * db)
{
	o_database_context_database_init(db);
	struct o_record * metadata = 0;
	try
	{
		struct o_record_id * rid = o_storage_get_metadata_rid(db->storage);
		metadata = o_database_load(db, rid);
		o_record_id_release(rid);
	}
	catch( struct o_exception, ex)
	{
		DB_ERROR_NOTIFY(db, o_exception_code(ex), o_exception_message(ex));
		o_exception_free(ex);
	}
	end_try;
	o_database_context_database_init(0);
	return metadata;
}
예제 #4
0
void test_o_record_id_new()
{
    struct o_record_id * id = o_record_id_new_empty();
    o_record_id_release(id);
}