diff options
author | unknown <tomas@poseidon.ndb.mysql.com> | 2004-11-18 22:06:51 +0000 |
---|---|---|
committer | unknown <tomas@poseidon.ndb.mysql.com> | 2004-11-18 22:06:51 +0000 |
commit | be7d46a962fa4da6171531927653794627abcdff (patch) | |
tree | 04952ee00159cf23220c356b161a4e0e83bb5b17 | |
parent | 18f12ee494d96a7e2caf6ab5d725fe6d371f9cba (diff) | |
parent | 1af6e72e4ebb65a392658a2dab795fda68564af0 (diff) | |
download | mariadb-git-be7d46a962fa4da6171531927653794627abcdff.tar.gz |
Merge
client/Makefile.am:
Auto merged
client/mysqladmin.cc:
Auto merged
configure.in:
Auto merged
ndb/src/mgmclient/CommandInterpreter.cpp:
Auto merged
ndb/src/mgmclient/ndb_mgmclient.hpp:
Auto merged
ndb/src/mgmclient/ndb_mgmclient.h:
Auto merged
ndb/tools/restore/restore_main.cpp:
SCCS merged
-rw-r--r-- | client/Makefile.am | 1 | ||||
-rw-r--r-- | innobase/fil/fil0fil.c | 19 | ||||
-rw-r--r-- | innobase/include/fil0fil.h | 2 | ||||
-rw-r--r-- | ndb/include/Makefile.am | 1 | ||||
-rw-r--r-- | ndb/src/mgmclient/CommandInterpreter.cpp | 7 | ||||
-rw-r--r-- | ndb/tools/Makefile.am | 2 | ||||
-rw-r--r-- | ndb/tools/restore/restore_main.cpp (renamed from ndb/tools/restore/main.cpp) | 6 | ||||
-rw-r--r-- | tests/client_test.c | 22 |
8 files changed, 49 insertions, 11 deletions
diff --git a/client/Makefile.am b/client/Makefile.am index 07167d97df5..f59395ae026 100644 --- a/client/Makefile.am +++ b/client/Makefile.am @@ -27,6 +27,7 @@ bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \ mysqldump mysqlimport mysqltest mysqlbinlog mysqlmanagerc mysqlmanager-pwgen noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \ client_priv.h +mysqladmin_SOURCES = mysqladmin.cc mysql_SOURCES = mysql.cc readline.cc sql_string.cc completion_hash.cc mysqladmin_SOURCES = mysqladmin.cc mysql_LDADD = @readline_link@ @TERMCAP_LIB@ $(LDADD) $(CXXLDFLAGS) diff --git a/innobase/fil/fil0fil.c b/innobase/fil/fil0fil.c index 7d57468f632..de528355182 100644 --- a/innobase/fil/fil0fil.c +++ b/innobase/fil/fil0fil.c @@ -106,7 +106,7 @@ struct fil_node_struct { device or a raw disk partition */ ulint size; /* size of the file in database pages, 0 if not known yet; the possible last incomplete - megabyte is ignored if space == 0 */ + megabyte may be ignored if space == 0 */ ulint n_pending; /* count of pending i/o's on this file; closing of the file is not allowed if @@ -160,7 +160,9 @@ struct fil_space_struct { UT_LIST_BASE_NODE_T(fil_node_t) chain; /* base node for the file chain */ ulint size; /* space size in pages; 0 if a single-table - tablespace whose size we do not know yet */ + tablespace whose size we do not know yet; + last incomplete megabytes in data files may be + ignored if space == 0 */ ulint n_reserved_extents; /* number of reserved free extents for ongoing operations like B-tree page split */ @@ -3255,7 +3257,7 @@ fil_extend_space_to_desired_size( ulint* actual_size, /* out: size of the space after extension; if we ran out of disk space this may be lower than the desired size */ - ulint space_id, /* in: space id, must be != 0 */ + ulint space_id, /* in: space id */ ulint size_after_extend)/* in: desired size in pages after the extension; if the current space size is bigger than this already, the function does nothing */ @@ -3352,6 +3354,17 @@ fil_extend_space_to_desired_size( fil_node_complete_io(node, system, OS_FILE_WRITE); *actual_size = space->size; + + if (space_id == 0) { + ulint pages_per_mb = (1024 * 1024) / UNIV_PAGE_SIZE; + + /* Keep the last data file size info up to date, rounded to + full megabytes */ + + srv_data_file_sizes[srv_n_data_files - 1] = + (node->size / pages_per_mb) * pages_per_mb; + } + /* printf("Extended %s to %lu, actual size %lu pages\n", space->name, size_after_extend, *actual_size); */ diff --git a/innobase/include/fil0fil.h b/innobase/include/fil0fil.h index 5a5db77073a..43327aab9d2 100644 --- a/innobase/include/fil0fil.h +++ b/innobase/include/fil0fil.h @@ -478,7 +478,7 @@ fil_extend_space_to_desired_size( ulint* actual_size, /* out: size of the space after extension; if we ran out of disk space this may be lower than the desired size */ - ulint space_id, /* in: space id, must be != 0 */ + ulint space_id, /* in: space id */ ulint size_after_extend);/* in: desired size in pages after the extension; if the current space size is bigger than this already, the function does nothing */ diff --git a/ndb/include/Makefile.am b/ndb/include/Makefile.am index 7b3f80b5560..ca2e8152352 100644 --- a/ndb/include/Makefile.am +++ b/ndb/include/Makefile.am @@ -28,6 +28,7 @@ ndbapi/NdbIndexScanOperation.hpp \ ndbapi/ndberror.h mgmapiinclude_HEADERS = \ +mgmapi/LocalConfig.hpp \ mgmapi/mgmapi.h \ mgmapi/mgmapi_debug.h diff --git a/ndb/src/mgmclient/CommandInterpreter.cpp b/ndb/src/mgmclient/CommandInterpreter.cpp index 00e0a8c1919..54beaa49d3f 100644 --- a/ndb/src/mgmclient/CommandInterpreter.cpp +++ b/ndb/src/mgmclient/CommandInterpreter.cpp @@ -1374,7 +1374,7 @@ void CommandInterpreter::executeDumpState(int processId, const char* parameters, bool all) { - if(parameters == 0 || strlen(parameters) == 0){ + if(emptyString(parameters)){ ndbout << "Expected argument" << endl; return; } @@ -1794,6 +1794,10 @@ CommandInterpreter::executeEventReporting(int processId, const char* parameters, bool all) { + if (emptyString(parameters)) { + ndbout << "Expected argument" << endl; + return; + } connect(); BaseString tmp(parameters); @@ -1894,6 +1898,7 @@ void CommandInterpreter::executeAbortBackup(char* parameters) { connect(); + strtok(parameters, " "); struct ndb_mgm_reply reply; char* id = strtok(NULL, "\0"); diff --git a/ndb/tools/Makefile.am b/ndb/tools/Makefile.am index 9c086d665c1..7a61a9b1be5 100644 --- a/ndb/tools/Makefile.am +++ b/ndb/tools/Makefile.am @@ -26,7 +26,7 @@ ndb_select_all_SOURCES = select_all.cpp \ ../test/src/NDBT_ResultRow.cpp \ $(tools_common_sources) ndb_select_count_SOURCES = select_count.cpp $(tools_common_sources) -ndb_restore_SOURCES = restore/main.cpp \ +ndb_restore_SOURCES = restore/restore_main.cpp \ restore/consumer.cpp \ restore/consumer_restore.cpp \ restore/consumer_printer.cpp \ diff --git a/ndb/tools/restore/main.cpp b/ndb/tools/restore/restore_main.cpp index 064fbad43a3..c43791c6723 100644 --- a/ndb/tools/restore/main.cpp +++ b/ndb/tools/restore/restore_main.cpp @@ -123,15 +123,17 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), case 'n': if (ga_nodeId == 0) { - printf("Error in --nodeid|-n setting, see --help\n"); + printf("Error in --nodeid,-n setting, see --help\n"); exit(1); } + break; case 'b': if (ga_backupId == 0) { - printf("Error in --backupid|-b setting, see --help\n"); + printf("Error in --backupid,-b setting, see --help\n"); exit(1); } + break; case '?': usage(); exit(0); diff --git a/tests/client_test.c b/tests/client_test.c index 2f28da6d00d..0ada98d44b0 100644 --- a/tests/client_test.c +++ b/tests/client_test.c @@ -635,12 +635,15 @@ static void verify_prepare_field(MYSQL_RES *result, unsigned long length, const char *def) { MYSQL_FIELD *field; + CHARSET_INFO *cs; if (!(field= mysql_fetch_field_direct(result, no))) { fprintf(stdout, "\n *** ERROR: FAILED TO GET THE RESULT ***"); exit(1); } + cs= get_charset(field->charsetnr, 0); + DIE_UNLESS(cs); if (!opt_silent) { fprintf(stdout, "\n field[%d]:", no); @@ -654,7 +657,7 @@ static void verify_prepare_field(MYSQL_RES *result, field->org_table, org_table); fprintf(stdout, "\n database :`%s`\t(expected: `%s`)", field->db, db); fprintf(stdout, "\n length :`%ld`\t(expected: `%ld`)", - field->length, length); + field->length, length * cs->mbmaxlen); fprintf(stdout, "\n maxlength:`%ld`", field->max_length); fprintf(stdout, "\n charsetnr:`%d`", field->charsetnr); fprintf(stdout, "\n default :`%s`\t(expected: `%s`)", @@ -663,11 +666,24 @@ static void verify_prepare_field(MYSQL_RES *result, } DIE_UNLESS(strcmp(field->name, name) == 0); DIE_UNLESS(strcmp(field->org_name, org_name) == 0); - DIE_UNLESS(field->type == type); + /* + XXX: silent column specification change works based on number of + bytes a column occupies. So CHAR -> VARCHAR upgrade is possible even + for CHAR(2) column if its character set is multibyte. + VARCHAR -> CHAR downgrade won't work for VARCHAR(3) as one would + expect. + */ + if (cs->mbmaxlen == 1) + DIE_UNLESS(field->type == type); DIE_UNLESS(strcmp(field->table, table) == 0); DIE_UNLESS(strcmp(field->org_table, org_table) == 0); DIE_UNLESS(strcmp(field->db, db) == 0); - DIE_UNLESS(field->length == length); + /* + Character set should be taken into account for multibyte encodings, such + as utf8. Field length is calculated as number of characters * maximum + number of bytes a character can occupy. + */ + DIE_UNLESS(field->length == length * cs->mbmaxlen); if (def) DIE_UNLESS(strcmp(field->def, def) == 0); } |