void VirtualTable::Row::write_number(Uint32 val) { DBUG_ENTER("write_number"); DBUG_PRINT("enter", ("val: %u", val)); assert(check_data_type(NdbInfo::Column::Number)); const unsigned col_idx = m_col_counter++; if (!m_owner->m_recAttrs.is_requested(col_idx)) DBUG_VOID_RETURN; const size_t clen = sizeof(Uint32); if (!check_buffer_space(clen)) return; // setup RecAttr m_owner->m_recAttrs.set_recattr(col_idx, m_curr, clen); // copy value to buffer memcpy(m_curr, &val, clen); m_curr+=clen; DBUG_VOID_RETURN; }
void VirtualTable::Row::write_string(const char* str) { DBUG_ENTER("write_string"); DBUG_PRINT("enter", ("str: %s", str)); assert(check_data_type(NdbInfo::Column::String)); const unsigned col_idx = m_col_counter++; if (!m_owner->m_recAttrs.is_requested(col_idx)) DBUG_VOID_RETURN; const size_t clen = strlen(str) + 1; // length including terminator if (!check_buffer_space(clen)) return; // setup RecAttr m_owner->m_recAttrs.set_recattr(col_idx, m_curr, clen); // copy string to buffer memcpy(m_curr, str, clen); m_curr+=clen; DBUG_VOID_RETURN; }
void buffer_write_char(buffer_t *b, unsigned char n) { check_buffer_space(b, sizeof(n)); *b->last++ = n; }
void buffer_write_bytes(buffer_t *b, const char *bytes, size_t len) { check_buffer_space(b, len); memcpy(b->last, bytes, len); b->last += len; }