37 #ifndef UNIV_HOTBACKUP
84 if (log_ptr == NULL) {
108 if (end_ptr < ptr + 1) {
118 if (end_ptr < ptr + 2) {
155 if (end_ptr < ptr + 2) {
163 if (offset >= UNIV_PAGE_SIZE) {
178 if (UNIV_LIKELY_NULL(page_zip)) {
198 if (UNIV_UNLIKELY(val > 0xFFUL)) {
202 if (UNIV_LIKELY_NULL(page_zip)) {
211 if (UNIV_UNLIKELY(val > 0xFFFFUL)) {
215 if (UNIV_LIKELY_NULL(page_zip)) {
225 if (UNIV_LIKELY_NULL(page_zip)) {
273 if (log_ptr == NULL) {
308 if (log_ptr == NULL) {
324 #ifndef UNIV_HOTBACKUP
338 ut_a(len < UNIV_PAGE_SIZE);
340 memcpy(ptr, str, len);
359 ut_ad(len <= UNIV_PAGE_SIZE);
364 if (log_ptr == NULL) {
400 if (end_ptr < ptr + 4) {
410 if (UNIV_UNLIKELY(offset >= UNIV_PAGE_SIZE)
411 || UNIV_UNLIKELY(len + offset > UNIV_PAGE_SIZE)) {
417 if (end_ptr < ptr + len) {
423 if (UNIV_LIKELY_NULL(page_zip)) {
427 memcpy(page + offset, ptr, len);
433 #ifndef UNIV_HOTBACKUP
450 const byte* log_start;
456 log_start = log_ptr =
mlog_open(mtr, 11 + size);
462 log_end = log_ptr + 11 + size;
467 ulint total = 11 + size + (n + 2) * 2;
473 log_start = log_ptr =
mlog_open(mtr, alloc);
477 log_end = log_ptr + alloc;
485 for (i = 0; i < n; i++) {
490 field = dict_index_get_nth_field(index, i);
495 && (col->
len > 255 || col->
mtype == DATA_BLOB)) {
500 if (col->
prtype & DATA_NOT_NULL) {
503 if (log_ptr + 2 > log_end) {
505 ut_a(total > (ulint) (log_ptr - log_start));
506 total -= log_ptr - log_start;
511 log_start = log_ptr =
mlog_open(mtr, alloc);
515 log_end = log_ptr + alloc;
524 }
else if (log_ptr + size > log_end) {
548 ut_ad(comp == FALSE || comp == TRUE);
551 if (end_ptr < ptr + 4) {
559 if (end_ptr < ptr + n * 2) {
565 table = dict_mem_table_create(
"LOG_DUMMY", DICT_HDR_SPACE, n,
567 ind = dict_mem_index_create(
"LOG_DUMMY",
"LOG_DUMMY",
568 DICT_HDR_SPACE, 0, n);
570 ind->
n_uniq = (
unsigned int) n_uniq;
572 ut_a(n_uniq + DATA_ROLL_PTR <= n);
576 for (i = 0; i < n; i++) {
582 dict_mem_table_add_col(
584 ((len + 1) & 0x7fff) <= 1
585 ? DATA_BINARY : DATA_FIXBINARY,
586 len & 0x8000 ? DATA_NOT_NULL : 0,
589 dict_index_add_col(ind, table,
590 dict_table_get_nth_col(table, i),
593 dict_table_add_system_columns(table, table->
heap);
599 ut_a(DATA_ROLL_PTR_LEN
602 ind->
fields[DATA_TRX_ID - 1 + n_uniq].
col
603 = &table->
cols[n + DATA_TRX_ID];
604 ind->
fields[DATA_ROLL_PTR - 1 + n_uniq].
col
605 = &table->
cols[n + DATA_ROLL_PTR];