DBG_ENTER("mysqlnd_result_buffered_c::initialize_result_set_rest");
if (result->initialized_rows < row_count) {
- zend_uchar * initialized = ((MYSQLND_RES_BUFFERED_C *) result)->initialized;
- zval * current_row = mnd_emalloc(field_count * sizeof(zval));
-
- if (!current_row) {
- DBG_RETURN(FAIL);
- }
+ zend_uchar *initialized = ((MYSQLND_RES_BUFFERED_C *) result)->initialized;
+ zval *current_row = mnd_emalloc(field_count * sizeof(zval));
for (row = 0; row < result->row_count; row++) {
/* (row / 8) & the_bit_for_row*/
}
result->meta = result->m.result_meta_init(result, result->field_count);
- if (!result->meta) {
- SET_OOM_ERROR(conn->error_info);
- DBG_RETURN(FAIL);
- }
/* 1. Read all fields metadata */
}
{
*row = mnd_malloc(field_count * sizeof(char *));
- if (*row) {
- MYSQLND_FIELD * field = meta->fields;
- size_t * lengths = result->unbuf->lengths;
+ MYSQLND_FIELD * field = meta->fields;
+ size_t * lengths = result->unbuf->lengths;
- for (i = 0; i < field_count; i++, field++) {
- zval * data = &result->unbuf->last_row_data[i];
- const size_t len = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
+ for (i = 0; i < field_count; i++, field++) {
+ zval * data = &result->unbuf->last_row_data[i];
+ const size_t len = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
/* BEGIN difference between normal normal fetch and _c */
- if (Z_TYPE_P(data) != IS_NULL) {
- convert_to_string(data);
- (*row)[i] = Z_STRVAL_P(data);
- } else {
- (*row)[i] = NULL;
- }
+ if (Z_TYPE_P(data) != IS_NULL) {
+ convert_to_string(data);
+ (*row)[i] = Z_STRVAL_P(data);
+ } else {
+ (*row)[i] = NULL;
+ }
/* END difference between normal normal fetch and _c */
- if (lengths) {
- lengths[i] = len;
- }
+ if (lengths) {
+ lengths[i] = len;
+ }
- if (field->max_length < len) {
- field->max_length = len;
- }
+ if (field->max_length < len) {
+ field->max_length = len;
}
- } else {
- SET_OOM_ERROR(conn->error_info);
}
}
}
}
result->unbuf = mysqlnd_result_unbuffered_init(result, result->field_count, ps);
- if (!result->unbuf) {
- goto oom;
- }
/*
Will be freed in the mysqlnd_internal_free_result_contents() called
}
DBG_RETURN(result);
-oom:
- SET_OOM_ERROR(conn->error_info);
- DBG_RETURN(NULL);
}
/* }}} */
}
/* BEGIN difference between normal normal fetch and _c */
- /* there is no conn handle in this function thus we can't set OOM in error_info */
*row = mnd_malloc(field_count * sizeof(char *));
- if (*row) {
- for (i = 0; i < field_count; ++i) {
- zval * data = ¤t_row[i];
+ for (i = 0; i < field_count; ++i) {
+ zval * data = ¤t_row[i];
- set->lengths[i] = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
+ set->lengths[i] = (Z_TYPE_P(data) == IS_STRING)? Z_STRLEN_P(data) : 0;
- if (Z_TYPE_P(data) != IS_NULL) {
- convert_to_string(data);
- (*row)[i] = Z_STRVAL_P(data);
- } else {
- (*row)[i] = NULL;
- }
+ if (Z_TYPE_P(data) != IS_NULL) {
+ convert_to_string(data);
+ (*row)[i] = Z_STRVAL_P(data);
+ } else {
+ (*row)[i] = NULL;
}
- set->data_cursor += field_count;
- MYSQLND_INC_GLOBAL_STATISTIC(STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_BUF);
- } else {
- SET_OOM_ERROR(conn->error_info);
}
+ set->data_cursor += field_count;
+ MYSQLND_INC_GLOBAL_STATISTIC(STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_BUF);
/* END difference between normal normal fetch and _c */
*fetched_anything = *row? TRUE:FALSE;
unsigned int i;
current_row = mnd_emalloc(field_count * sizeof(zval));
- if (!current_row) {
- SET_OOM_ERROR(conn->error_info);
- DBG_RETURN(FAIL);
- }
-
rc = result->stored_data->m.row_decoder(&result->stored_data->row_buffers[set->current_row],
current_row,
field_count,
} else {
new_row_buffers = mnd_emalloc((size_t)(total_allocated_rows * sizeof(MYSQLND_ROW_BUFFER)));
}
- if (!new_row_buffers) {
- SET_OOM_ERROR(conn->error_info);
- ret = FAIL;
- goto free_end;
- }
*row_buffers = new_row_buffers;
}
free_rows--;
MYSQLND_RES_METADATA *ret;
DBG_ENTER("mysqlnd_result_meta_init");
- do {
- ret = result->memory_pool->get_chunk(result->memory_pool, alloc_size);
- memset(ret, 0, alloc_size);
- ret->m = & mysqlnd_mysqlnd_res_meta_methods;
-
- ret->field_count = field_count;
- /* +1 is to have empty marker at the end */
- alloc_size = (field_count + 1) * sizeof(MYSQLND_FIELD);
- ret->fields = result->memory_pool->get_chunk(result->memory_pool, alloc_size);
- memset(ret->fields, 0, alloc_size);
- DBG_INF_FMT("meta=%p", ret);
- DBG_RETURN(ret);
- } while (0);
- DBG_RETURN(NULL);
+ ret = result->memory_pool->get_chunk(result->memory_pool, alloc_size);
+ memset(ret, 0, alloc_size);
+ ret->m = & mysqlnd_mysqlnd_res_meta_methods;
+
+ ret->field_count = field_count;
+ /* +1 is to have empty marker at the end */
+ alloc_size = (field_count + 1) * sizeof(MYSQLND_FIELD);
+ ret->fields = result->memory_pool->get_chunk(result->memory_pool, alloc_size);
+ memset(ret->fields, 0, alloc_size);
+ DBG_INF_FMT("meta=%p", ret);
+ DBG_RETURN(ret);
}
/* }}} */