diff options
author | unknown <serg@janus.mylan> | 2008-01-09 18:51:05 +0100 |
---|---|---|
committer | unknown <serg@janus.mylan> | 2008-01-09 18:51:05 +0100 |
commit | 8116e16e556e6477ace80970be39302de72cbb6c (patch) | |
tree | 95a14cc67bf81eb462c0ebd184091c49e5358416 | |
parent | b8416bce47af1a5559df24fad647c025b2724400 (diff) | |
download | mariadb-git-8116e16e556e6477ace80970be39302de72cbb6c.tar.gz |
ignore 'moved' state in maria_open() if requested
storage/maria/ma_pagecache.c:
Change mode to -rw-rw-r--
storage/maria/ma_open.c:
ignore 'moved' state if requested
storage/maria/maria_pack.c:
ignore 'moved' state in maria_open()
storage/maria/unittest/ma_test_all-t:
avoid a warning if $output is undefined
-rw-r--r-- | storage/maria/ma_open.c | 4 | ||||
-rw-r--r--[-rwxr-xr-x] | storage/maria/ma_pagecache.c | 0 | ||||
-rw-r--r-- | storage/maria/maria_def.h | 3 | ||||
-rw-r--r-- | storage/maria/maria_pack.c | 2 | ||||
-rwxr-xr-x | storage/maria/unittest/ma_test_all-t | 2 |
5 files changed, 8 insertions, 3 deletions
diff --git a/storage/maria/ma_open.c b/storage/maria/ma_open.c index 2acaa3db01d..97f0b57064e 100644 --- a/storage/maria/ma_open.c +++ b/storage/maria/ma_open.c @@ -396,7 +396,9 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags) goto err; } - if (memcmp(share->base.uuid, maria_uuid, MY_UUID_SIZE)) + if (share->state.changed & STATE_NOT_MOVABLE && + !(open_flags & HA_OPEN_IGNORE_MOVED_STATE) && + memcmp(share->base.uuid, maria_uuid, MY_UUID_SIZE)) { if (open_flags & HA_OPEN_FOR_REPAIR) share->state.changed|= STATE_MOVED; diff --git a/storage/maria/ma_pagecache.c b/storage/maria/ma_pagecache.c index 4b0dada3a6b..4b0dada3a6b 100755..100644 --- a/storage/maria/ma_pagecache.c +++ b/storage/maria/ma_pagecache.c diff --git a/storage/maria/maria_def.h b/storage/maria/maria_def.h index 05a1dbe2d56..c4ffc36f47d 100644 --- a/storage/maria/maria_def.h +++ b/storage/maria/maria_def.h @@ -41,6 +41,9 @@ #define MAX_NONMAPPED_INSERTS 1000 #define MARIA_MAX_TREE_LEVELS 32 +/* maria_open() flag, specific for maria_pack */ +#define HA_OPEN_IGNORE_MOVED_STATE (1U << 30) + struct st_transaction; /* undef map from my_nosys; We need test-if-disk full */ diff --git a/storage/maria/maria_pack.c b/storage/maria/maria_pack.c index dc0afdd4b64..734687de9cf 100644 --- a/storage/maria/maria_pack.c +++ b/storage/maria/maria_pack.c @@ -406,7 +406,7 @@ static MARIA_HA *open_isam_file(char *name,int mode) MARIA_SHARE *share; DBUG_ENTER("open_isam_file"); - if (!(isam_file=maria_open(name,mode, + if (!(isam_file=maria_open(name, mode, HA_OPEN_IGNORE_MOVED_STATE | (opt_wait ? HA_OPEN_WAIT_IF_LOCKED : HA_OPEN_ABORT_IF_LOCKED)))) { diff --git a/storage/maria/unittest/ma_test_all-t b/storage/maria/unittest/ma_test_all-t index 8bb7435f070..03f17273315 100755 --- a/storage/maria/unittest/ma_test_all-t +++ b/storage/maria/unittest/ma_test_all-t @@ -461,7 +461,7 @@ sub ok print "not ok"; print " ]" if ($verbose); print "\n"; - if ($verbose && length($output)) + if ($verbose && defined($output) && length($output)) { print "$output\n"; } |