mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
d1485aad0e
Multiple tablespaces for InnoDB sql_table.cc: Tell explicitly that InnoDB should retrieve all columns in CHECKSUM TABLE sql_update.cc, sql_select.cc, my_base.h: More descriptive flag name HA_EXTRA_RETRIEVE_ALL_COLS include/my_base.h: More descriptive flag name HA_EXTRA_RETRIEVE_ALL_COLS sql/sql_select.cc: More descriptive flag name HA_EXTRA_RETRIEVE_ALL_COLS sql/sql_update.cc: More descriptive flag name HA_EXTRA_RETRIEVE_ALL_COLS sql/sql_table.cc: Tell explicitly that InnoDB should retrieve all columns in CHECKSUM TABLE sql/sql_db.cc: Multiple tablespaces for InnoDB sql/ha_innodb.cc: Multiple tablespaces for InnoDB sql/mysqld.cc: Multiple tablespaces for InnoDB sql/set_var.cc: Multiple tablespaces for InnoDB sql/sql_cache.cc: Multiple tablespaces for InnoDB sql/ha_innodb.h: Multiple tablespaces for InnoDB innobase/include/btr0btr.ic: Multiple tablespaces for InnoDB innobase/include/btr0pcur.ic: Multiple tablespaces for InnoDB innobase/include/data0type.ic: Multiple tablespaces for InnoDB innobase/include/dyn0dyn.ic: Multiple tablespaces for InnoDB innobase/include/fut0lst.ic: Multiple tablespaces for InnoDB innobase/include/log0log.ic: Multiple tablespaces for InnoDB innobase/include/mach0data.ic: Multiple tablespaces for InnoDB innobase/include/mtr0log.ic: Multiple tablespaces for InnoDB innobase/include/rem0rec.ic: Multiple tablespaces for InnoDB innobase/include/ut0byte.ic: Multiple tablespaces for InnoDB innobase/include/ut0ut.ic: Multiple tablespaces for InnoDB innobase/include/buf0buf.h: Multiple tablespaces for InnoDB innobase/include/buf0lru.h: Multiple tablespaces for InnoDB innobase/include/buf0rea.h: Multiple tablespaces for InnoDB innobase/include/data0type.h: Multiple tablespaces for InnoDB innobase/include/db0err.h: Multiple tablespaces for InnoDB innobase/include/dict0boot.h: Multiple tablespaces for InnoDB innobase/include/dict0dict.h: Multiple tablespaces for InnoDB innobase/include/dict0load.h: Multiple tablespaces for InnoDB innobase/include/dict0mem.h: Multiple tablespaces for InnoDB innobase/include/fil0fil.h: Multiple tablespaces for InnoDB innobase/include/fsp0fsp.h: Multiple tablespaces for InnoDB innobase/include/ibuf0ibuf.h: Multiple tablespaces for InnoDB innobase/include/lock0lock.h: Multiple tablespaces for InnoDB innobase/include/log0log.h: Multiple tablespaces for InnoDB innobase/include/log0recv.h: Multiple tablespaces for InnoDB innobase/include/os0file.h: Multiple tablespaces for InnoDB innobase/include/page0page.h: Multiple tablespaces for InnoDB innobase/include/que0types.h: Multiple tablespaces for InnoDB innobase/include/rem0rec.h: Multiple tablespaces for InnoDB innobase/include/srv0srv.h: Multiple tablespaces for InnoDB innobase/include/srv0start.h: Multiple tablespaces for InnoDB innobase/include/sync0sync.h: Multiple tablespaces for InnoDB innobase/include/trx0sys.h: Multiple tablespaces for InnoDB innobase/include/ut0byte.h: Multiple tablespaces for InnoDB innobase/include/univ.i: Multiple tablespaces for InnoDB innobase/btr/btr0cur.c: Multiple tablespaces for InnoDB innobase/btr/btr0sea.c: Multiple tablespaces for InnoDB innobase/buf/buf0buf.c: Multiple tablespaces for InnoDB innobase/buf/buf0flu.c: Multiple tablespaces for InnoDB innobase/buf/buf0lru.c: Multiple tablespaces for InnoDB innobase/buf/buf0rea.c: Multiple tablespaces for InnoDB innobase/data/data0type.c: Multiple tablespaces for InnoDB innobase/dict/dict0boot.c: Multiple tablespaces for InnoDB innobase/dict/dict0crea.c: Multiple tablespaces for InnoDB innobase/dict/dict0dict.c: Multiple tablespaces for InnoDB innobase/dict/dict0load.c: Multiple tablespaces for InnoDB innobase/dict/dict0mem.c: Multiple tablespaces for InnoDB innobase/fil/fil0fil.c: Multiple tablespaces for InnoDB innobase/fsp/fsp0fsp.c: Multiple tablespaces for InnoDB innobase/ha/ha0ha.c: Multiple tablespaces for InnoDB innobase/ibuf/ibuf0ibuf.c: Multiple tablespaces for InnoDB innobase/log/log0log.c: Multiple tablespaces for InnoDB innobase/log/log0recv.c: Multiple tablespaces for InnoDB innobase/mach/mach0data.c: Multiple tablespaces for InnoDB innobase/mem/mem0dbg.c: Multiple tablespaces for InnoDB innobase/mem/mem0pool.c: Multiple tablespaces for InnoDB innobase/mtr/mtr0log.c: Multiple tablespaces for InnoDB innobase/os/os0file.c: Multiple tablespaces for InnoDB innobase/os/os0proc.c: Multiple tablespaces for InnoDB innobase/page/page0cur.c: Multiple tablespaces for InnoDB innobase/que/que0que.c: Multiple tablespaces for InnoDB innobase/row/row0ins.c: Multiple tablespaces for InnoDB innobase/row/row0mysql.c: Multiple tablespaces for InnoDB innobase/row/row0sel.c: Multiple tablespaces for InnoDB innobase/row/row0upd.c: Multiple tablespaces for InnoDB innobase/srv/srv0srv.c: Multiple tablespaces for InnoDB innobase/srv/srv0start.c: Multiple tablespaces for InnoDB innobase/sync/sync0rw.c: Multiple tablespaces for InnoDB innobase/sync/sync0sync.c: Multiple tablespaces for InnoDB innobase/trx/trx0sys.c: Multiple tablespaces for InnoDB innobase/trx/trx0trx.c: Multiple tablespaces for InnoDB innobase/trx/trx0undo.c: Multiple tablespaces for InnoDB innobase/ut/ut0byte.c: Multiple tablespaces for InnoDB innobase/ut/ut0ut.c: Multiple tablespaces for InnoDB
119 lines
2.3 KiB
C
119 lines
2.3 KiB
C
/**********************************************************************
|
|
Utilities for converting data from the database file
|
|
to the machine format.
|
|
|
|
(c) 1995 Innobase Oy
|
|
|
|
Created 11/28/1995 Heikki Tuuri
|
|
***********************************************************************/
|
|
|
|
#include "mach0data.h"
|
|
|
|
#ifdef UNIV_NONINL
|
|
#include "mach0data.ic"
|
|
#endif
|
|
|
|
/*************************************************************
|
|
Reads a ulint in a compressed form if the log record fully contains it. */
|
|
|
|
byte*
|
|
mach_parse_compressed(
|
|
/*==================*/
|
|
/* out: pointer to end of the stored field, NULL if
|
|
not complete */
|
|
byte* ptr, /* in: pointer to buffer from where to read */
|
|
byte* end_ptr,/* in: pointer to end of the buffer */
|
|
ulint* val) /* out: read value (< 2^32) */
|
|
{
|
|
ulint flag;
|
|
|
|
ut_ad(ptr && end_ptr && val);
|
|
|
|
if (ptr >= end_ptr) {
|
|
|
|
return(NULL);
|
|
}
|
|
|
|
flag = mach_read_from_1(ptr);
|
|
|
|
if (flag < 0x80UL) {
|
|
*val = flag;
|
|
return(ptr + 1);
|
|
|
|
} else if (flag < 0xC0UL) {
|
|
if (end_ptr < ptr + 2) {
|
|
return(NULL);
|
|
}
|
|
|
|
*val = mach_read_from_2(ptr) & 0x7FFFUL;
|
|
|
|
return(ptr + 2);
|
|
|
|
} else if (flag < 0xE0UL) {
|
|
if (end_ptr < ptr + 3) {
|
|
return(NULL);
|
|
}
|
|
|
|
*val = mach_read_from_3(ptr) & 0x3FFFFFUL;
|
|
|
|
return(ptr + 3);
|
|
} else if (flag < 0xF0UL) {
|
|
if (end_ptr < ptr + 4) {
|
|
return(NULL);
|
|
}
|
|
|
|
*val = mach_read_from_4(ptr) & 0x1FFFFFFFUL;
|
|
|
|
return(ptr + 4);
|
|
} else {
|
|
ut_ad(flag == 0xF0UL);
|
|
|
|
if (end_ptr < ptr + 5) {
|
|
return(NULL);
|
|
}
|
|
|
|
*val = mach_read_from_4(ptr + 1);
|
|
return(ptr + 5);
|
|
}
|
|
}
|
|
|
|
/*************************************************************
|
|
Reads a dulint in a compressed form if the log record fully contains it. */
|
|
|
|
byte*
|
|
mach_dulint_parse_compressed(
|
|
/*=========================*/
|
|
/* out: pointer to end of the stored field, NULL if
|
|
not complete */
|
|
byte* ptr, /* in: pointer to buffer from where to read */
|
|
byte* end_ptr,/* in: pointer to end of the buffer */
|
|
dulint* val) /* out: read value */
|
|
{
|
|
ulint high;
|
|
ulint low;
|
|
ulint size;
|
|
|
|
ut_ad(ptr && end_ptr && val);
|
|
|
|
if (end_ptr < ptr + 5) {
|
|
|
|
return(NULL);
|
|
}
|
|
|
|
high = mach_read_compressed(ptr);
|
|
|
|
size = mach_get_compressed_size(high);
|
|
|
|
ptr += size;
|
|
|
|
if (end_ptr < ptr + 4) {
|
|
|
|
return(NULL);
|
|
}
|
|
|
|
low = mach_read_from_4(ptr);
|
|
|
|
*val = ut_dulint_create(high, low);
|
|
|
|
return(ptr + 4);
|
|
}
|