Commit 30278aed authored by unknown's avatar unknown
Browse files

Merge neptunus.(none):/home/msvensson/mysql/bug19731/my50-bug19731

into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
sql/handler.cc:
  Auto merged
client/mysqltest.c:
  Manual merge
parents 66466ddf 8e0614c8
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
@@ -271,6 +271,7 @@ enum enum_commands {
  Q_DISABLE_PARSING, Q_ENABLE_PARSING,
  Q_REPLACE_REGEX, Q_REMOVE_FILE, Q_FILE_EXIST,
  Q_WRITE_FILE, Q_COPY_FILE, Q_PERL, Q_DIE, Q_EXIT,
  Q_CHMOD_FILE,

  Q_UNKNOWN,			       /* Unknown command.   */
  Q_COMMENT,			       /* Comments, ignored. */
@@ -351,8 +352,10 @@ const char *command_names[]=
  "copy_file",
  "perl",
  "die",
               
  /* Don't execute any more commands, compare result */
  "exit",
  "chmod",
  0
};

@@ -1807,6 +1810,48 @@ void do_copy_file(struct st_command *command)
}


/*
  SYNOPSIS
  do_chmod_file
  command	command handle

  DESCRIPTION
  chmod  <octal>  <file>
  Change file permission of <file>

  NOTE!  Simplified version, only supports +r, -r, +w, -w
*/

void do_chmod_file(struct st_command *command)
{
  mode_t mode= 0;
  static DYNAMIC_STRING ds_mode;
  static DYNAMIC_STRING ds_file;
  const struct command_arg chmod_file_args[] = {
    "mode", ARG_STRING, TRUE, &ds_mode, "Mode of file",
    "file", ARG_STRING, TRUE, &ds_file, "Filename of file to modify"
  };
  DBUG_ENTER("do_chmod_file");

  check_command_args(command, command->first_argument,
                     chmod_file_args,
                     sizeof(chmod_file_args)/sizeof(struct command_arg),
                     ' ');

  /* Parse what mode to set */
  if (ds_mode.length != 4)
    die("You must write a 4 digit octal number for mode");

  str2int(ds_mode.str, 8, 0, INT_MAX, (long*)&mode);

  DBUG_PRINT("info", ("chmod %o %s", mode, ds_file.str));
  handle_command_error(command, chmod(ds_file.str, mode));
  dynstr_free(&ds_mode);
  dynstr_free(&ds_file);
  DBUG_VOID_RETURN;
}


/*
  SYNOPSIS
  do_file_exists
@@ -5692,6 +5737,7 @@ int main(int argc, char **argv)
      case Q_FILE_EXIST: do_file_exist(command); break;
      case Q_WRITE_FILE: do_write_file(command); break;
      case Q_COPY_FILE: do_copy_file(command); break;
      case Q_CHMOD_FILE: do_chmod_file(command); break;
      case Q_PERL: do_perl(command); break;
      case Q_DELIMITER:
        do_delimiter(command);
+6 −0
Original line number Diff line number Diff line
@@ -512,6 +512,12 @@ mysqltest: At line 1: End of line junk detected: "write_file filename ";
mysqltest: At line 1: Missing required argument 'filename' to command 'file_exists'
mysqltest: At line 1: Missing required argument 'from_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'to_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'mode' to command 'chmod'
mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: Missing required argument 'file' to command 'chmod'
mysqltest: At line 1: command "chmod" failed with error -1
mysqltest: At line 1: You must write a 4 digit octal number for mode
hello
hello
hello
+52 −0
Original line number Diff line number Diff line
@@ -26,3 +26,55 @@ select x,xx from t1;
x	xx
1	2
drop table t1;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` varbinary(255) default NULL,
  `b` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select length(a), length(b) from t1;
length(a)	length(b)
255	3
255	3
CHECK TABLE t1 FOR UPGRADE;
Table	Op	Msg_type	Msg_text
test.t1	check	error	Table upgrade required. Please do "REPAIR TABLE `t1`" to fix it!
REPAIR TABLE t1;
Table	Op	Msg_type	Msg_text
test.t1	repair	status	OK
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` varbinary(255) default NULL,
  `b` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select length(a), length(b) from t1;
length(a)	length(b)
3	3
3	3
insert into t1 values("ccc", "ddd");
select length(a), length(b) from t1;
length(a)	length(b)
3	3
3	3
3	3
select hex(a), hex(b) from t1;
hex(a)	hex(b)
616161	636363
626262	646464
636363	646464
select concat("'", a, "'"), concat("'", b, "'") from t1;
concat("'", a, "'")	concat("'", b, "'")
'aaa'	'ccc'
'bbb'	'ddd'
'ccc'	'ddd'
drop table t1;
create table t1(a varbinary(255));
insert into t1 values("aaa   ");
select length(a) from t1;
length(a)
6
alter table t1 modify a varchar(255);
select length(a) from t1;
length(a)
6
+40 B

File added.

Preview suppressed by a .gitattributes entry or the file's encoding is unsupported.

+1 KiB

File added.

Preview suppressed by a .gitattributes entry or the file's encoding is unsupported.

Loading