~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/row/row0undo.c

Merge initial InnoDB+ import.

This was applied by generating a patch between MySQL 5.1.50 InnoDB plugin and
the just-merged innodb+ from mysql-trunk revision-id: vasil.dimov@oracle.com-20100422110752-1zowoqxel5xx3z2e

Then, some manual merge resolving and it worked. This should make it much
easier to merge the rest of InnoDB 1.1 and 1.2 from the mysql tree using
my bzr-reapply script.

This takes us to InnoDB 1.1.1(ish).

Show diffs side-by-side

added added

removed removed

Lines of Context:
199
199
 
200
200
                ret = FALSE;
201
201
        } else {
202
 
                row_ext_t**     ext;
203
 
 
204
 
                if (dict_table_get_format(node->table) >= DICT_TF_FORMAT_ZIP) {
205
 
                        /* In DYNAMIC or COMPRESSED format, there is
206
 
                        no prefix of externally stored columns in the
207
 
                        clustered index record. Build a cache of
208
 
                        column prefixes. */
209
 
                        ext = &node->ext;
210
 
                } else {
211
 
                        /* REDUNDANT and COMPACT formats store a local
212
 
                        768-byte prefix of each externally stored
213
 
                        column. No cache is needed. */
214
 
                        ext = NULL;
215
 
                        node->ext = NULL;
216
 
                }
217
 
 
218
202
                node->row = row_build(ROW_COPY_DATA, clust_index, rec,
219
 
                                      offsets, NULL, ext, node->heap);
 
203
                                      offsets, NULL, &node->ext, node->heap);
220
204
                if (node->update) {
221
205
                        node->undo_row = dtuple_copy(node->row, node->heap);
222
206
                        row_upd_replace(node->undo_row, &node->undo_ext,
313
297
 
314
298
        if (locked_data_dict) {
315
299
 
316
 
                row_mysql_freeze_data_dictionary(trx);
 
300
                row_mysql_lock_data_dictionary(trx);
317
301
        }
318
302
 
319
303
        if (node->state == UNDO_NODE_INSERT) {
328
312
 
329
313
        if (locked_data_dict) {
330
314
 
331
 
                row_mysql_unfreeze_data_dictionary(trx);
 
315
                row_mysql_unlock_data_dictionary(trx);
332
316
        }
333
317
 
334
318
        /* Do some cleanup */
357
341
 
358
342
        ut_ad(thr);
359
343
 
360
 
        srv_activity_count++;
 
344
        srv_inc_activity_count();
361
345
 
362
346
        trx = thr_get_trx(thr);
363
347