mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 06:22:28 +01:00
branches/innodb+: Merge revisions 4063:4070 from branches/zip:
------------------------------------------------------------------------ r4070 | marko | 2009-01-30 12:58:56 +0200 (Fri, 30 Jan 2009) | 6 lines branches/zip: ibuf_use_t: Add the constant IBUF_USE_COUNT, to eliminate a gcc warning about an assertion that trivially holds. The warning was introduced in r4061, in the merge of branches/innodb+ -r4053. ibuf_insert(): Let an assertion fail if ibuf_use is unknown. ------------------------------------------------------------------------
This commit is contained in:
parent
9384b65fb7
commit
c3853fdade
3 changed files with 23 additions and 9 deletions
|
@ -188,7 +188,7 @@ bool nw_panic = FALSE;
|
|||
#endif
|
||||
|
||||
/** Allowed values of innodb_change_buffering */
|
||||
static const char* innobase_change_buffering_values[IBUF_USE_ALL + 1] = {
|
||||
static const char* innobase_change_buffering_values[IBUF_USE_COUNT] = {
|
||||
"none", /* IBUF_USE_NONE */
|
||||
"inserts", /* IBUF_USE_INSERT */
|
||||
"deletes", /* IBUF_USE_DELETE_MARK */
|
||||
|
@ -9432,7 +9432,7 @@ innodb_change_buffering_update(
|
|||
{
|
||||
ut_a(var_ptr != NULL);
|
||||
ut_a(save != NULL);
|
||||
ut_a((*(ibuf_use_t*) save) <= IBUF_USE_ALL);
|
||||
ut_a((*(ibuf_use_t*) save) < IBUF_USE_COUNT);
|
||||
|
||||
ibuf_use = *(const ibuf_use_t*) save;
|
||||
|
||||
|
|
|
@ -3533,6 +3533,8 @@ ibuf_insert(
|
|||
case IBUF_USE_INSERT:
|
||||
case IBUF_USE_INSERT_DELETE_MARK:
|
||||
case IBUF_USE_ALL:
|
||||
goto notify;
|
||||
case IBUF_USE_COUNT:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -3545,9 +3547,11 @@ ibuf_insert(
|
|||
case IBUF_USE_DELETE:
|
||||
case IBUF_USE_INSERT_DELETE_MARK:
|
||||
case IBUF_USE_ALL:
|
||||
ut_ad(!no_counter);
|
||||
goto notify;
|
||||
case IBUF_USE_COUNT:
|
||||
break;
|
||||
}
|
||||
ut_ad(!no_counter);
|
||||
break;
|
||||
case IBUF_OP_DELETE:
|
||||
switch (use) {
|
||||
|
@ -3558,14 +3562,20 @@ ibuf_insert(
|
|||
case IBUF_USE_DELETE_MARK:
|
||||
case IBUF_USE_DELETE:
|
||||
case IBUF_USE_ALL:
|
||||
ut_ad(!no_counter);
|
||||
goto skip_notify;
|
||||
case IBUF_USE_COUNT:
|
||||
break;
|
||||
}
|
||||
ut_ad(!no_counter);
|
||||
goto skip_notify;
|
||||
default:
|
||||
ut_error;
|
||||
break;
|
||||
case IBUF_OP_COUNT:
|
||||
break;
|
||||
}
|
||||
|
||||
/* unknown op or use */
|
||||
ut_error;
|
||||
|
||||
notify:
|
||||
/* If another thread buffers an insert on a page while
|
||||
the purge is in progress, the purge for the same page
|
||||
must not be buffered, because it could remove a record
|
||||
|
|
|
@ -28,14 +28,18 @@ typedef enum {
|
|||
IBUF_OP_COUNT = 3,
|
||||
} ibuf_op_t;
|
||||
|
||||
/** Combinations of operations that can be buffered. */
|
||||
/** Combinations of operations that can be buffered. Because the enum
|
||||
values are used for indexing innobase_change_buffering_values[], they
|
||||
should start at 0 and there should not be any gaps. */
|
||||
typedef enum {
|
||||
IBUF_USE_NONE = 0,
|
||||
IBUF_USE_INSERT, /* insert */
|
||||
IBUF_USE_DELETE_MARK, /* delete */
|
||||
IBUF_USE_INSERT_DELETE_MARK, /* insert+delete */
|
||||
IBUF_USE_DELETE, /* delete+purge */
|
||||
IBUF_USE_ALL /* insert+delete+purge */
|
||||
IBUF_USE_ALL, /* insert+delete+purge */
|
||||
|
||||
IBUF_USE_COUNT /* number of entries in ibuf_use_t */
|
||||
} ibuf_use_t;
|
||||
|
||||
/** Operations that can currently be buffered. */
|
||||
|
|
Loading…
Reference in a new issue