Lines Matching refs:result

32 MYSQLND_METHOD(mysqlnd_result_unbuffered, free_result)(MYSQLND_RES_UNBUFFERED * const result, MYSQL…  in MYSQLND_METHOD()
37 if (result->row_packet) { in MYSQLND_METHOD()
38 PACKET_FREE(result->row_packet); in MYSQLND_METHOD()
39 mnd_efree(result->row_packet); in MYSQLND_METHOD()
40 result->row_packet = NULL; in MYSQLND_METHOD()
47 static void mysqlnd_result_free_prev_data(MYSQLND_RES *result) in mysqlnd_result_free_prev_data() argument
49 if (result->free_row_data) { in mysqlnd_result_free_prev_data()
50 for (unsigned i = 0; i < result->field_count; ++i) { in mysqlnd_result_free_prev_data()
51 zval_ptr_dtor_nogc(&result->row_data[i]); in mysqlnd_result_free_prev_data()
53 result->free_row_data = 0; in mysqlnd_result_free_prev_data()
79 MYSQLND_METHOD(mysqlnd_res, free_result_buffers)(MYSQLND_RES * result) in MYSQLND_METHOD()
82 DBG_INF_FMT("%s", result->unbuf? "unbuffered":(result->stored_data? "buffered":"unknown")); in MYSQLND_METHOD()
84 mysqlnd_result_free_prev_data(result); in MYSQLND_METHOD()
86 if (result->meta) { in MYSQLND_METHOD()
87 ZEND_ASSERT(zend_arena_contains(result->memory_pool->arena, result->meta)); in MYSQLND_METHOD()
88 result->meta->m->free_metadata(result->meta); in MYSQLND_METHOD()
89 result->meta = NULL; in MYSQLND_METHOD()
92 if (result->unbuf) { in MYSQLND_METHOD()
93 result->unbuf->m.free_result(result->unbuf, result->conn? result->conn->stats : NULL); in MYSQLND_METHOD()
94 result->unbuf = NULL; in MYSQLND_METHOD()
95 } else if (result->stored_data) { in MYSQLND_METHOD()
96 result->stored_data->m.free_result(result->stored_data); in MYSQLND_METHOD()
97 result->stored_data = NULL; in MYSQLND_METHOD()
100 mysqlnd_mempool_restore_state(result->memory_pool); in MYSQLND_METHOD()
101 mysqlnd_mempool_save_state(result->memory_pool); in MYSQLND_METHOD()
110 void MYSQLND_METHOD(mysqlnd_res, free_result_contents_internal)(MYSQLND_RES * result) in MYSQLND_METHOD()
114 result->m.free_result_buffers(result); in MYSQLND_METHOD()
116 if (result->conn) { in MYSQLND_METHOD()
117 result->conn->m->free_reference(result->conn); in MYSQLND_METHOD()
118 result->conn = NULL; in MYSQLND_METHOD()
121 mysqlnd_mempool_destroy(result->memory_pool); in MYSQLND_METHOD()
130 MYSQLND_METHOD(mysqlnd_res, read_result_metadata)(MYSQLND_RES * result, MYSQLND_CONN_DATA * conn) in MYSQLND_METHOD()
140 if (result->meta) { in MYSQLND_METHOD()
141 result->meta->m->free_metadata(result->meta); in MYSQLND_METHOD()
142 result->meta = NULL; in MYSQLND_METHOD()
145 result->meta = result->m.result_meta_init(result, result->field_count); in MYSQLND_METHOD()
150 if (FAIL == result->meta->m->read_metadata(result->meta, conn, result)) { in MYSQLND_METHOD()
151 result->meta->m->free_metadata(result->meta); in MYSQLND_METHOD()
152 result->meta = NULL; in MYSQLND_METHOD()
248 MYSQLND_RES * result; in mysqlnd_query_read_result_set_header() local
264 result = conn->current_result = conn->m->result_init(rset_header.field_count); in mysqlnd_query_read_result_set_header()
266 if (!stmt->result) { in mysqlnd_query_read_result_set_header()
273 result = stmt->result = conn->m->result_init(rset_header.field_count); in mysqlnd_query_read_result_set_header()
287 if (rset_header.field_count != stmt->result->field_count) { in mysqlnd_query_read_result_set_header()
288 stmt->result->m.free_result(stmt->result, TRUE); in mysqlnd_query_read_result_set_header()
289 stmt->result = conn->m->result_init(rset_header.field_count); in mysqlnd_query_read_result_set_header()
291 result = stmt->result; in mysqlnd_query_read_result_set_header()
294 if (!result) { in mysqlnd_query_read_result_set_header()
300 if (FAIL == (ret = result->m.read_result_metadata(result, conn))) { in mysqlnd_query_read_result_set_header()
314 result->m.free_result_contents(result); in mysqlnd_query_read_result_set_header()
318 stmt->result = NULL; in mysqlnd_query_read_result_set_header()
368 MYSQLND_METHOD(mysqlnd_result_buffered, fetch_lengths)(const MYSQLND_RES_BUFFERED * const result) in MYSQLND_METHOD()
372 if (result->current_row > result->row_count || result->current_row == 0) { in MYSQLND_METHOD()
377 DBG_RETURN(result->lengths); in MYSQLND_METHOD()
384 …SQLND_METHOD(mysqlnd_result_unbuffered, fetch_lengths)(const MYSQLND_RES_UNBUFFERED * const result) in MYSQLND_METHOD()
387 return (result->last_row_buffer.ptr || result->eof_reached)? result->lengths : NULL; in MYSQLND_METHOD()
394 MYSQLND_METHOD(mysqlnd_res, fetch_lengths)(const MYSQLND_RES * const result) in MYSQLND_METHOD()
398 ret = result->stored_data && result->stored_data->m.fetch_lengths ? in MYSQLND_METHOD()
399 result->stored_data->m.fetch_lengths(result->stored_data) : in MYSQLND_METHOD()
400 (result->unbuf && result->unbuf->m.fetch_lengths ? in MYSQLND_METHOD()
401 result->unbuf->m.fetch_lengths(result->unbuf) : in MYSQLND_METHOD()
411 MYSQLND_METHOD(mysqlnd_result_unbuffered, fetch_row)(MYSQLND_RES * result, zval **row_ptr, const un… in MYSQLND_METHOD()
414 MYSQLND_PACKET_ROW *row_packet = result->unbuf->row_packet; in MYSQLND_METHOD()
415 const MYSQLND_RES_METADATA * const meta = result->meta; in MYSQLND_METHOD()
416 MYSQLND_RES_UNBUFFERED *set = result->unbuf; in MYSQLND_METHOD()
417 MYSQLND_CONN_DATA * const conn = result->conn; in MYSQLND_METHOD()
436 checkpoint = result->memory_pool->checkpoint; in MYSQLND_METHOD()
437 mysqlnd_mempool_save_state(result->memory_pool); in MYSQLND_METHOD()
450 *row_ptr = result->row_data; in MYSQLND_METHOD()
452 &set->last_row_buffer, result->row_data, field_count, in MYSQLND_METHOD()
455 mysqlnd_mempool_restore_state(result->memory_pool); in MYSQLND_METHOD()
456 result->memory_pool->checkpoint = checkpoint; in MYSQLND_METHOD()
463 zval *data = &result->row_data[i]; in MYSQLND_METHOD()
501 mysqlnd_mempool_restore_state(result->memory_pool); in MYSQLND_METHOD()
502 result->memory_pool->checkpoint = checkpoint; in MYSQLND_METHOD()
512 MYSQLND_METHOD(mysqlnd_res, use_result)(MYSQLND_RES * const result, MYSQLND_STMT_DATA *stmt) in MYSQLND_METHOD()
514 MYSQLND_CONN_DATA * const conn = result->conn; in MYSQLND_METHOD()
520 result->type = MYSQLND_RES_NORMAL; in MYSQLND_METHOD()
522 result->type = MYSQLND_RES_PS_UNBUF; in MYSQLND_METHOD()
525 result->unbuf = mysqlnd_result_unbuffered_init(result, result->field_count, stmt); in MYSQLND_METHOD()
537 row_packet->result_set_memory_pool = result->unbuf->result_set_memory_pool; in MYSQLND_METHOD()
538 row_packet->field_count = result->field_count; in MYSQLND_METHOD()
540 row_packet->fields_metadata = result->meta->fields; in MYSQLND_METHOD()
542 result->unbuf->row_packet = row_packet; in MYSQLND_METHOD()
545 DBG_RETURN(result); in MYSQLND_METHOD()
552 MYSQLND_METHOD(mysqlnd_result_buffered, fetch_row)(MYSQLND_RES * result, zval **row_ptr, const unsi… in MYSQLND_METHOD()
554 MYSQLND_RES_BUFFERED *set = result->stored_data; in MYSQLND_METHOD()
561 const MYSQLND_RES_METADATA * const meta = result->meta; in MYSQLND_METHOD()
563 MYSQLND_CONN_DATA * const conn = result->conn; in MYSQLND_METHOD()
565 zval *current_row = result->row_data; in MYSQLND_METHOD()
566 *row_ptr = result->row_data; in MYSQLND_METHOD()
567 rc = result->stored_data->m.row_decoder(&set->row_buffers[set->current_row], in MYSQLND_METHOD()
605 MYSQLND_METHOD(mysqlnd_res, fetch_row)(MYSQLND_RES *result, zval **row_ptr, const unsigned int flag… in MYSQLND_METHOD()
608 result->stored_data ? result->stored_data->m.fetch_row : in MYSQLND_METHOD()
609 result->unbuf ? result->unbuf->m.fetch_row : NULL; in MYSQLND_METHOD()
611 return f(result, row_ptr, flags, fetched_anything); in MYSQLND_METHOD()
621 …_METHOD(mysqlnd_res, store_result_fetch_data)(MYSQLND_CONN_DATA * const conn, MYSQLND_RES * result, in MYSQLND_METHOD()
629 MYSQLND_RES_BUFFERED * set = result->stored_data; in MYSQLND_METHOD()
643 row_packet.result_set_memory_pool = result->stored_data->result_set_memory_pool; in MYSQLND_METHOD()
745 MYSQLND_METHOD(mysqlnd_res, store_result)(MYSQLND_RES * result, in MYSQLND_METHOD()
756 result->conn = conn->m->get_reference(conn); in MYSQLND_METHOD()
757 result->type = MYSQLND_RES_NORMAL; in MYSQLND_METHOD()
761result->stored_data = (MYSQLND_RES_BUFFERED *) mysqlnd_result_buffered_init(result, result->field_… in MYSQLND_METHOD()
762 row_buffers = &result->stored_data->row_buffers; in MYSQLND_METHOD()
764 ret = result->m.store_result_fetch_data(conn, result, result->meta, row_buffers, stmt != NULL); in MYSQLND_METHOD()
767 if (result->stored_data) { in MYSQLND_METHOD()
768 COPY_CLIENT_ERROR(conn->error_info, result->stored_data->error_info); in MYSQLND_METHOD()
774 result->stored_data->current_row = 0; in MYSQLND_METHOD()
778 UPSERT_STATUS_SET_AFFECTED_ROWS(conn->upsert_status, result->stored_data->row_count); in MYSQLND_METHOD()
780 DBG_RETURN(result); in MYSQLND_METHOD()
787 MYSQLND_METHOD(mysqlnd_res, skip_result)(MYSQLND_RES * const result) in MYSQLND_METHOD()
797 if (result->unbuf && !result->unbuf->eof_reached) { in MYSQLND_METHOD()
798 MYSQLND_CONN_DATA * const conn = result->conn; in MYSQLND_METHOD()
802 result->type == MYSQLND_RES_NORMAL? STAT_FLUSHED_NORMAL_SETS: in MYSQLND_METHOD()
805 …while ((PASS == result->m.fetch_row(result, NULL, 0, &fetched_anything)) && fetched_anything == TR… in MYSQLND_METHOD()
807 result->type == MYSQLND_RES_NORMAL in MYSQLND_METHOD()
818 MYSQLND_METHOD(mysqlnd_res, free_result)(MYSQLND_RES * result, const bool implicit) in MYSQLND_METHOD()
822 MYSQLND_INC_CONN_STATISTIC(result->conn? result->conn->stats : NULL, in MYSQLND_METHOD()
826 result->m.skip_result(result); in MYSQLND_METHOD()
827 result->m.free_result_contents(result); in MYSQLND_METHOD()
835 MYSQLND_METHOD(mysqlnd_res, data_seek)(MYSQLND_RES * const result, const uint64_t row) in MYSQLND_METHOD()
840 DBG_RETURN(result->stored_data? result->stored_data->m.data_seek(result->stored_data, row) : FAIL); in MYSQLND_METHOD()
847 MYSQLND_METHOD(mysqlnd_result_buffered, data_seek)(MYSQLND_RES_BUFFERED * const result, const uint6… in MYSQLND_METHOD()
852 if (row >= result->row_count) { in MYSQLND_METHOD()
853 result->current_row = result->row_count; in MYSQLND_METHOD()
855 result->current_row = row; in MYSQLND_METHOD()
864 MYSQLND_METHOD(mysqlnd_result_unbuffered, num_rows)(const MYSQLND_RES_UNBUFFERED * const result) in MYSQLND_METHOD()
867 return result->eof_reached? result->row_count : 0; in MYSQLND_METHOD()
874 MYSQLND_METHOD(mysqlnd_result_buffered, num_rows)(const MYSQLND_RES_BUFFERED * const result) in MYSQLND_METHOD()
876 return result->row_count; in MYSQLND_METHOD()
883 MYSQLND_METHOD(mysqlnd_res, num_rows)(const MYSQLND_RES * const result) in MYSQLND_METHOD()
885 return result->stored_data? in MYSQLND_METHOD()
886 result->stored_data->m.num_rows(result->stored_data) : in MYSQLND_METHOD()
887 (result->unbuf? result->unbuf->m.num_rows(result->unbuf) : 0); in MYSQLND_METHOD()
894 MYSQLND_METHOD(mysqlnd_res, num_fields)(const MYSQLND_RES * const result) in MYSQLND_METHOD()
896 return result->field_count; in MYSQLND_METHOD()
903 MYSQLND_METHOD(mysqlnd_res, fetch_field)(MYSQLND_RES * const result) in MYSQLND_METHOD()
907 if (result->meta) { in MYSQLND_METHOD()
908 DBG_RETURN(result->meta->m->fetch_field(result->meta)); in MYSQLND_METHOD()
918 MYSQLND_METHOD(mysqlnd_res, fetch_field_direct)(MYSQLND_RES * const result, const MYSQLND_FIELD_OFF… in MYSQLND_METHOD()
922 if (result->meta) { in MYSQLND_METHOD()
923 DBG_RETURN(result->meta->m->fetch_field_direct(result->meta, fieldnr)); in MYSQLND_METHOD()
934 MYSQLND_METHOD(mysqlnd_res, fetch_fields)(MYSQLND_RES * const result) in MYSQLND_METHOD()
938 if (result->meta) { in MYSQLND_METHOD()
939 DBG_RETURN(result->meta->m->fetch_fields(result->meta)); in MYSQLND_METHOD()
949 MYSQLND_METHOD(mysqlnd_res, field_seek)(MYSQLND_RES * const result, const MYSQLND_FIELD_OFFSET fiel… in MYSQLND_METHOD()
951 return result->meta? result->meta->m->field_seek(result->meta, field_offset) : 0; in MYSQLND_METHOD()
958 MYSQLND_METHOD(mysqlnd_res, field_tell)(const MYSQLND_RES * const result) in MYSQLND_METHOD()
960 return result->meta? result->meta->m->field_tell(result->meta) : 0; in MYSQLND_METHOD()
967 MYSQLND_METHOD(mysqlnd_res, fetch_into)(MYSQLND_RES * result, const unsigned int flags, in MYSQLND_METHOD()
974 if (FAIL == result->m.fetch_row(result, &row_data, flags, &fetched_anything)) { in MYSQLND_METHOD()
982 const MYSQLND_RES_METADATA * const meta = result->meta; in MYSQLND_METHOD()
1024 MYSQLND_METHOD(mysqlnd_res, fetch_row_c)(MYSQLND_RES * result) in MYSQLND_METHOD()
1031 mysqlnd_result_free_prev_data(result); in MYSQLND_METHOD()
1032 if (result->m.fetch_row(result, &row_data, 0, &fetched_anything) == PASS && fetched_anything) { in MYSQLND_METHOD()
1033 unsigned field_count = result->field_count; in MYSQLND_METHOD()
1034 MYSQLND_FIELD *field = result->meta->fields; in MYSQLND_METHOD()
1046 result->free_row_data = 1; in MYSQLND_METHOD()
1136 mysqlnd_result_unbuffered_init(MYSQLND_RES *result, const unsigned int field_count, MYSQLND_STMT_DA… in mysqlnd_result_unbuffered_init() argument
1139 MYSQLND_MEMORY_POOL * pool = result->memory_pool; in mysqlnd_result_unbuffered_init()
1171 mysqlnd_result_buffered_init(MYSQLND_RES * result, const unsigned int field_count, MYSQLND_STMT_DAT… in mysqlnd_result_buffered_init() argument
1174 MYSQLND_MEMORY_POOL * pool = result->memory_pool; in mysqlnd_result_buffered_init()