~mysql/mysql-server/mysql-6.0

« back to all changes in this revision

Viewing changes to innobase/include/trx0rec.ic

  • Committer: monty at mysql
  • Date: 2001-02-17 12:19:19 UTC
  • mto: (554.1.1)
  • mto: This revision was merged to the branch mainline in revision 556.
  • Revision ID: sp1r-monty@donna.mysql.com-20010217121919-07904
Added Innobase to source distribution

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/******************************************************
 
2
Transaction undo log record
 
3
 
 
4
(c) 1996 Innobase Oy
 
5
 
 
6
Created 3/26/1996 Heikki Tuuri
 
7
*******************************************************/
 
8
 
 
9
/**************************************************************************
 
10
Reads from an undo log record the record type. */
 
11
UNIV_INLINE
 
12
ulint
 
13
trx_undo_rec_get_type(
 
14
/*==================*/
 
15
                                        /* out: record type */
 
16
        trx_undo_rec_t* undo_rec)       /* in: undo log record */
 
17
{
 
18
        return(mach_read_from_1(undo_rec + 2) & (TRX_UNDO_CMPL_INFO_MULT - 1));
 
19
}
 
20
 
 
21
/**************************************************************************
 
22
Reads from an undo log record the record compiler info. */
 
23
UNIV_INLINE
 
24
ulint
 
25
trx_undo_rec_get_cmpl_info(
 
26
/*=======================*/
 
27
                                        /* out: compiler info */
 
28
        trx_undo_rec_t* undo_rec)       /* in: undo log record */
 
29
{
 
30
        return(mach_read_from_1(undo_rec + 2) / TRX_UNDO_CMPL_INFO_MULT);
 
31
}
 
32
 
 
33
/**************************************************************************
 
34
Reads the undo log record number. */
 
35
UNIV_INLINE
 
36
dulint
 
37
trx_undo_rec_get_undo_no(
 
38
/*=====================*/
 
39
                                        /* out: undo no */
 
40
        trx_undo_rec_t* undo_rec)       /* in: undo log record */
 
41
{
 
42
        byte*   ptr;
 
43
 
 
44
        ptr = undo_rec + 3;
 
45
 
 
46
        return(mach_dulint_read_much_compressed(ptr));
 
47
}
 
48
 
 
49
/***************************************************************************
 
50
Copies the undo record to the heap. */
 
51
UNIV_INLINE
 
52
trx_undo_rec_t*
 
53
trx_undo_rec_copy(
 
54
/*==============*/
 
55
                                        /* out, own: copy of undo log record */
 
56
        trx_undo_rec_t* undo_rec,       /* in: undo log record */
 
57
        mem_heap_t*     heap)           /* in: heap where copied */
 
58
{
 
59
        ulint           len;
 
60
        trx_undo_rec_t* rec_copy;
 
61
 
 
62
        len = mach_read_from_2(undo_rec) + buf_frame_align(undo_rec)
 
63
                                                                - undo_rec;
 
64
        rec_copy = mem_heap_alloc(heap, len);
 
65
 
 
66
        ut_memcpy(rec_copy, undo_rec, len);
 
67
 
 
68
        return(rec_copy);
 
69
}