Commit be7d46a9 authored by unknown's avatar unknown

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
parents 18f12ee4 1af6e72e
...@@ -27,6 +27,7 @@ bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \ ...@@ -27,6 +27,7 @@ bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \
mysqldump mysqlimport mysqltest mysqlbinlog mysqlmanagerc mysqlmanager-pwgen mysqldump mysqlimport mysqltest mysqlbinlog mysqlmanagerc mysqlmanager-pwgen
noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \ noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \
client_priv.h client_priv.h
mysqladmin_SOURCES = mysqladmin.cc
mysql_SOURCES = mysql.cc readline.cc sql_string.cc completion_hash.cc mysql_SOURCES = mysql.cc readline.cc sql_string.cc completion_hash.cc
mysqladmin_SOURCES = mysqladmin.cc mysqladmin_SOURCES = mysqladmin.cc
mysql_LDADD = @readline_link@ @TERMCAP_LIB@ $(LDADD) $(CXXLDFLAGS) mysql_LDADD = @readline_link@ @TERMCAP_LIB@ $(LDADD) $(CXXLDFLAGS)
......
...@@ -106,7 +106,7 @@ struct fil_node_struct { ...@@ -106,7 +106,7 @@ struct fil_node_struct {
device or a raw disk partition */ device or a raw disk partition */
ulint size; /* size of the file in database pages, 0 if ulint size; /* size of the file in database pages, 0 if
not known yet; the possible last incomplete not known yet; the possible last incomplete
megabyte is ignored if space == 0 */ megabyte may be ignored if space == 0 */
ulint n_pending; ulint n_pending;
/* count of pending i/o's on this file; /* count of pending i/o's on this file;
closing of the file is not allowed if closing of the file is not allowed if
...@@ -160,7 +160,9 @@ struct fil_space_struct { ...@@ -160,7 +160,9 @@ struct fil_space_struct {
UT_LIST_BASE_NODE_T(fil_node_t) chain; UT_LIST_BASE_NODE_T(fil_node_t) chain;
/* base node for the file chain */ /* base node for the file chain */
ulint size; /* space size in pages; 0 if a single-table 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; ulint n_reserved_extents;
/* number of reserved free extents for /* number of reserved free extents for
ongoing operations like B-tree page split */ ongoing operations like B-tree page split */
...@@ -3255,7 +3257,7 @@ fil_extend_space_to_desired_size( ...@@ -3255,7 +3257,7 @@ fil_extend_space_to_desired_size(
ulint* actual_size, /* out: size of the space after extension; ulint* actual_size, /* out: size of the space after extension;
if we ran out of disk space this may be lower if we ran out of disk space this may be lower
than the desired size */ 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 ulint size_after_extend)/* in: desired size in pages after the
extension; if the current space size is bigger extension; if the current space size is bigger
than this already, the function does nothing */ than this already, the function does nothing */
...@@ -3352,6 +3354,17 @@ fil_extend_space_to_desired_size( ...@@ -3352,6 +3354,17 @@ fil_extend_space_to_desired_size(
fil_node_complete_io(node, system, OS_FILE_WRITE); fil_node_complete_io(node, system, OS_FILE_WRITE);
*actual_size = space->size; *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, printf("Extended %s to %lu, actual size %lu pages\n", space->name,
size_after_extend, *actual_size); */ size_after_extend, *actual_size); */
......
...@@ -478,7 +478,7 @@ fil_extend_space_to_desired_size( ...@@ -478,7 +478,7 @@ fil_extend_space_to_desired_size(
ulint* actual_size, /* out: size of the space after extension; ulint* actual_size, /* out: size of the space after extension;
if we ran out of disk space this may be lower if we ran out of disk space this may be lower
than the desired size */ 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 ulint size_after_extend);/* in: desired size in pages after the
extension; if the current space size is bigger extension; if the current space size is bigger
than this already, the function does nothing */ than this already, the function does nothing */
......
...@@ -28,6 +28,7 @@ ndbapi/NdbIndexScanOperation.hpp \ ...@@ -28,6 +28,7 @@ ndbapi/NdbIndexScanOperation.hpp \
ndbapi/ndberror.h ndbapi/ndberror.h
mgmapiinclude_HEADERS = \ mgmapiinclude_HEADERS = \
mgmapi/LocalConfig.hpp \
mgmapi/mgmapi.h \ mgmapi/mgmapi.h \
mgmapi/mgmapi_debug.h mgmapi/mgmapi_debug.h
......
...@@ -1374,7 +1374,7 @@ void ...@@ -1374,7 +1374,7 @@ void
CommandInterpreter::executeDumpState(int processId, const char* parameters, CommandInterpreter::executeDumpState(int processId, const char* parameters,
bool all) bool all)
{ {
if(parameters == 0 || strlen(parameters) == 0){ if(emptyString(parameters)){
ndbout << "Expected argument" << endl; ndbout << "Expected argument" << endl;
return; return;
} }
...@@ -1794,6 +1794,10 @@ CommandInterpreter::executeEventReporting(int processId, ...@@ -1794,6 +1794,10 @@ CommandInterpreter::executeEventReporting(int processId,
const char* parameters, const char* parameters,
bool all) bool all)
{ {
if (emptyString(parameters)) {
ndbout << "Expected argument" << endl;
return;
}
connect(); connect();
BaseString tmp(parameters); BaseString tmp(parameters);
...@@ -1894,6 +1898,7 @@ void ...@@ -1894,6 +1898,7 @@ void
CommandInterpreter::executeAbortBackup(char* parameters) CommandInterpreter::executeAbortBackup(char* parameters)
{ {
connect(); connect();
strtok(parameters, " "); strtok(parameters, " ");
struct ndb_mgm_reply reply; struct ndb_mgm_reply reply;
char* id = strtok(NULL, "\0"); char* id = strtok(NULL, "\0");
......
...@@ -26,7 +26,7 @@ ndb_select_all_SOURCES = select_all.cpp \ ...@@ -26,7 +26,7 @@ ndb_select_all_SOURCES = select_all.cpp \
../test/src/NDBT_ResultRow.cpp \ ../test/src/NDBT_ResultRow.cpp \
$(tools_common_sources) $(tools_common_sources)
ndb_select_count_SOURCES = select_count.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.cpp \
restore/consumer_restore.cpp \ restore/consumer_restore.cpp \
restore/consumer_printer.cpp \ restore/consumer_printer.cpp \
......
...@@ -123,15 +123,17 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), ...@@ -123,15 +123,17 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case 'n': case 'n':
if (ga_nodeId == 0) if (ga_nodeId == 0)
{ {
printf("Error in --nodeid|-n setting, see --help\n"); printf("Error in --nodeid,-n setting, see --help\n");
exit(1); exit(1);
} }
break;
case 'b': case 'b':
if (ga_backupId == 0) if (ga_backupId == 0)
{ {
printf("Error in --backupid|-b setting, see --help\n"); printf("Error in --backupid,-b setting, see --help\n");
exit(1); exit(1);
} }
break;
case '?': case '?':
usage(); usage();
exit(0); exit(0);
......
...@@ -635,12 +635,15 @@ static void verify_prepare_field(MYSQL_RES *result, ...@@ -635,12 +635,15 @@ static void verify_prepare_field(MYSQL_RES *result,
unsigned long length, const char *def) unsigned long length, const char *def)
{ {
MYSQL_FIELD *field; MYSQL_FIELD *field;
CHARSET_INFO *cs;
if (!(field= mysql_fetch_field_direct(result, no))) if (!(field= mysql_fetch_field_direct(result, no)))
{ {
fprintf(stdout, "\n *** ERROR: FAILED TO GET THE RESULT ***"); fprintf(stdout, "\n *** ERROR: FAILED TO GET THE RESULT ***");
exit(1); exit(1);
} }
cs= get_charset(field->charsetnr, 0);
DIE_UNLESS(cs);
if (!opt_silent) if (!opt_silent)
{ {
fprintf(stdout, "\n field[%d]:", no); fprintf(stdout, "\n field[%d]:", no);
...@@ -654,7 +657,7 @@ static void verify_prepare_field(MYSQL_RES *result, ...@@ -654,7 +657,7 @@ static void verify_prepare_field(MYSQL_RES *result,
field->org_table, org_table); field->org_table, org_table);
fprintf(stdout, "\n database :`%s`\t(expected: `%s`)", field->db, db); fprintf(stdout, "\n database :`%s`\t(expected: `%s`)", field->db, db);
fprintf(stdout, "\n length :`%ld`\t(expected: `%ld`)", 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 maxlength:`%ld`", field->max_length);
fprintf(stdout, "\n charsetnr:`%d`", field->charsetnr); fprintf(stdout, "\n charsetnr:`%d`", field->charsetnr);
fprintf(stdout, "\n default :`%s`\t(expected: `%s`)", fprintf(stdout, "\n default :`%s`\t(expected: `%s`)",
...@@ -663,11 +666,24 @@ static void verify_prepare_field(MYSQL_RES *result, ...@@ -663,11 +666,24 @@ static void verify_prepare_field(MYSQL_RES *result,
} }
DIE_UNLESS(strcmp(field->name, name) == 0); DIE_UNLESS(strcmp(field->name, name) == 0);
DIE_UNLESS(strcmp(field->org_name, org_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->table, table) == 0);
DIE_UNLESS(strcmp(field->org_table, org_table) == 0); DIE_UNLESS(strcmp(field->org_table, org_table) == 0);
DIE_UNLESS(strcmp(field->db, db) == 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) if (def)
DIE_UNLESS(strcmp(field->def, def) == 0); DIE_UNLESS(strcmp(field->def, def) == 0);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment