~gaul/percona-data-recovery-tool-for-innodb/prerequisites

« back to all changes in this revision

Viewing changes to mysql-source/innobase/include/dict0boot.ic

  • Committer: Aleksandr Kuzminsky
  • Date: 2010-01-14 13:05:06 UTC
  • mfrom: (1.1.1 page-signature-check)
  • Revision ID: aleksandr.kuzminsky@percona.com-20100114130506-72t6jxtll15gk3pp
Added InnoDB page signature check.
At the beginning of InnoDB page (type FIL_PAGE_INODE) there are infimum and supremum records.
They are located in fixed position depending on InnoDB page format(REDUNDANT (4.x and 5.x versions) or COMPACT(5.x only)).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/******************************************************
 
2
Data dictionary creation and booting
 
3
 
 
4
(c) 1996 Innobase Oy
 
5
 
 
6
Created 4/18/1996 Heikki Tuuri
 
7
*******************************************************/
 
8
 
 
9
/**************************************************************************
 
10
Writes the current value of the row id counter to the dictionary header file
 
11
page. */
 
12
 
 
13
void
 
14
dict_hdr_flush_row_id(void);
 
15
/*=======================*/
 
16
 
 
17
 
 
18
/**************************************************************************
 
19
Returns a new row id. */
 
20
UNIV_INLINE
 
21
dulint
 
22
dict_sys_get_new_row_id(void)
 
23
/*=========================*/
 
24
                        /* out: the new id */
 
25
{
 
26
        dulint  id;
 
27
 
 
28
        mutex_enter(&(dict_sys->mutex));
 
29
 
 
30
        id = dict_sys->row_id;
 
31
        
 
32
        if (0 == (ut_dulint_get_low(id) % DICT_HDR_ROW_ID_WRITE_MARGIN)) {
 
33
 
 
34
                dict_hdr_flush_row_id();
 
35
        }
 
36
 
 
37
        UT_DULINT_INC(dict_sys->row_id);
 
38
 
 
39
        mutex_exit(&(dict_sys->mutex));
 
40
 
 
41
        return(id);
 
42
}                       
 
43
 
 
44
/**************************************************************************
 
45
Reads a row id from a record or other 6-byte stored form. */
 
46
UNIV_INLINE
 
47
dulint
 
48
dict_sys_read_row_id(
 
49
/*=================*/
 
50
                        /* out: row id */
 
51
        byte*   field)  /* in: record field */
 
52
{
 
53
        ut_ad(DATA_ROW_ID_LEN == 6);
 
54
 
 
55
        return(mach_read_from_6(field));
 
56
}                               
 
57
 
 
58
/**************************************************************************
 
59
Writes a row id to a record or other 6-byte stored form. */
 
60
UNIV_INLINE
 
61
void
 
62
dict_sys_write_row_id(
 
63
/*==================*/
 
64
        byte*   field,  /* in: record field */
 
65
        dulint  row_id) /* in: row id */
 
66
{
 
67
        ut_ad(DATA_ROW_ID_LEN == 6);
 
68
 
 
69
        mach_write_to_6(field, row_id);
 
70
}                               
 
71
 
 
72