Lines Matching refs:result
224 struct sql_result *result =
227 return result;
374 void sql_result_ref(struct sql_result *result)
376 result->refcount++;
379 void sql_result_unref(struct sql_result *result)
381 i_assert(result->refcount > 0);
382 if (--result->refcount > 0)
385 i_free(result->map);
386 result->v.free(result);
402 sql_result_build_map(struct sql_result *result,
409 count = sql_result_get_fields_count(result);
411 result->map_size = count;
412 result->map = i_new(struct sql_field_map, result->map_size);
414 name = sql_result_get_field_name(result, i);
417 result->map[i].type = def->type;
418 result->map[i].offset = def->offset;
435 result->map[i].offset = (size_t)-1;
440 void sql_result_setup_fetch(struct sql_result *result,
444 if (result->map == NULL)
445 sql_result_build_map(result, fields, dest_size);
446 result->fetch_dest = dest;
447 result->fetch_dest_size = dest_size;
450 static void sql_result_fetch(struct sql_result *result)
456 memset(result->fetch_dest, 0, result->fetch_dest_size);
457 count = result->map_size;
459 if (result->map[i].offset == (size_t)-1)
462 value = sql_result_get_field_value(result, i);
463 ptr = STRUCT_MEMBER_P(result->fetch_dest,
464 result->map[i].offset);
466 switch (result->map[i].type) {
492 int sql_result_next_row(struct sql_result *result)
496 if ((ret = result->v.next_row(result)) <= 0)
499 if (result->fetch_dest != NULL)
500 sql_result_fetch(result);
505 void sql_result_more(struct sql_result **result,
508 i_assert((*result)->v.more != NULL);
510 (*result)->v.more(result, TRUE, callback, context);
514 sql_result_more_sync_callback(struct sql_result *result, void *context)
518 *dest_result = result;
521 void sql_result_more_s(struct sql_result **result)
523 i_assert((*result)->v.more != NULL);
525 (*result)->v.more(result, FALSE, sql_result_more_sync_callback, result);
527 i_assert(*result != NULL);
530 unsigned int sql_result_get_fields_count(struct sql_result *result)
532 return result->v.get_fields_count(result);
535 const char *sql_result_get_field_name(struct sql_result *result,
538 return result->v.get_field_name(result, idx);
541 int sql_result_find_field(struct sql_result *result, const char *field_name)
543 return result->v.find_field(result, field_name);
546 const char *sql_result_get_field_value(struct sql_result *result,
549 return result->v.get_field_value(result, idx);
553 sql_result_get_field_value_binary(struct sql_result *result,
556 return result->v.get_field_value_binary(result, idx, size_r);
559 const char *sql_result_find_field_value(struct sql_result *result,
562 return result->v.find_field_value(result, field_name);
565 const char *const *sql_result_get_values(struct sql_result *result)
567 return result->v.get_values(result);
570 const char *sql_result_get_error(struct sql_result *result)
572 return result->v.get_error(result);
575 enum sql_result_error_type sql_result_get_error_type(struct sql_result *result)
577 return result->error_type;
581 sql_result_not_connected_free(struct sql_result *result ATTR_UNUSED)
586 sql_result_not_connected_next_row(struct sql_result *result ATTR_UNUSED)
592 sql_result_not_connected_get_error(struct sql_result *result ATTR_UNUSED)