~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/innobase/include/trx0trx.ic

MergeĀ fromĀ Jim

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
        return(trx->new_rec_locks[0] == index
97
97
               || trx->new_rec_locks[1] == index);
98
98
}
99
 
 
100
 
/********************************************************************
101
 
Retrieves the error_info field from a trx. */
102
 
UNIV_INLINE
103
 
const dict_index_t*
104
 
trx_get_error_info(
105
 
/*===============*/
106
 
                                /* out: the error info */
107
 
        const trx_t*    trx)    /* in: trx object */
108
 
{
109
 
        return(trx->error_info);
110
 
}
111
 
 
112
 
/***********************************************************************
113
 
Retrieves transacion's id, represented as unsigned long long. */
114
 
UNIV_INLINE
115
 
ullint
116
 
trx_get_id(
117
 
/*=======*/
118
 
                                /* out: transaction's id */
119
 
        const trx_t*    trx)    /* in: transaction */
120
 
{
121
 
        return((ullint)ut_conv_dulint_to_longlong(trx->id));
122
 
}
123
 
 
124
 
/***********************************************************************
125
 
Retrieves transaction's que state in a human readable string. The string
126
 
should not be free()'d or modified. */
127
 
UNIV_INLINE
128
 
const char*
129
 
trx_get_que_state_str(
130
 
/*==================*/
131
 
                                /* out: string in the data segment */
132
 
        const trx_t*    trx)    /* in: transaction */
133
 
{
134
 
        /* be sure to adjust TRX_QUE_STATE_STR_MAX_LEN if you change this */
135
 
        switch (trx->que_state) {
136
 
        case TRX_QUE_RUNNING:
137
 
                return("RUNNING");
138
 
        case TRX_QUE_LOCK_WAIT:
139
 
                return("LOCK WAIT");
140
 
        case TRX_QUE_ROLLING_BACK:
141
 
                return("ROLLING BACK");
142
 
        case TRX_QUE_COMMITTING:
143
 
                return("COMMITTING");
144
 
        default:
145
 
                return("UNKNOWN");
146
 
        }
147
 
}
148
 
 
149
 
/**************************************************************************
150
 
Determine if a transaction is a dictionary operation. */
151
 
UNIV_INLINE
152
 
enum trx_dict_op
153
 
trx_get_dict_operation(
154
 
/*===================*/
155
 
                                /* out: dictionary operation mode */
156
 
        const trx_t*    trx)    /* in: transaction */
157
 
{
158
 
        enum trx_dict_op op = (enum trx_dict_op) trx->dict_operation;
159
 
 
160
 
#ifdef UNIV_DEBUG
161
 
        switch (op) {
162
 
        case TRX_DICT_OP_NONE:
163
 
        case TRX_DICT_OP_TABLE:
164
 
        case TRX_DICT_OP_INDEX:
165
 
                return(op);
166
 
        }
167
 
        ut_error;
168
 
#endif /* UNIV_DEBUG */
169
 
        return((enum trx_dict_op) UNIV_EXPECT(op, TRX_DICT_OP_NONE));
170
 
}
171
 
/**************************************************************************
172
 
Flag a transaction a dictionary operation. */
173
 
UNIV_INLINE
174
 
void
175
 
trx_set_dict_operation(
176
 
/*===================*/
177
 
        trx_t*                  trx,    /* in/out: transaction */
178
 
        enum trx_dict_op        op)     /* in: operation, not
179
 
                                        TRX_DICT_OP_NONE */
180
 
{
181
 
#ifdef UNIV_DEBUG
182
 
        enum trx_dict_op        old_op = trx_get_dict_operation(trx);
183
 
 
184
 
        switch (op) {
185
 
        case TRX_DICT_OP_NONE:
186
 
                ut_error;
187
 
                break;
188
 
        case TRX_DICT_OP_TABLE:
189
 
                switch (old_op) {
190
 
                case TRX_DICT_OP_NONE:
191
 
                case TRX_DICT_OP_INDEX:
192
 
                case TRX_DICT_OP_TABLE:
193
 
                        goto ok;
194
 
                }
195
 
                ut_error;
196
 
                break;
197
 
        case TRX_DICT_OP_INDEX:
198
 
                ut_ad(old_op == TRX_DICT_OP_NONE);
199
 
                break;
200
 
        }
201
 
ok:
202
 
#endif /* UNIV_DEBUG */
203
 
 
204
 
        trx->dict_operation = op;
205
 
}