Commit 8947628c authored by unknown's avatar unknown
Browse files

Merge bk-internal.mysql.com:/home/bk/mysql-5.0

into mysql.com:/home/my/mysql-5.0

parents a332242e 2eeaddeb
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -386,4 +386,18 @@ p mask example
20	\\\\%	\\\\%
20	\\\\%	\\\\_
DROP TABLE t1;
SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
a\\b	a\\\"b	a'\\b	a'\\\"b
a\\b	a\\\"b	a'\\b	a'\\\"b
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
a\\b	a\\\'b	a"\\b	a"\\\'b
a\\b	a\\\'b	a"\\b	a"\\\'b
SET @@SQL_MODE='';
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
a\b	a\"b	a'\b	a'\"b
a\b	a\"b	a'\b	a'\"b
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";
a\b	a\'b	a"\b	a"\'b
a\b	a\'b	a"\b	a"\'b
SET @@SQL_MODE=@OLD_SQL_MODE;
+10 −0
Original line number Diff line number Diff line
@@ -174,4 +174,14 @@ order by masks.p, example;

DROP TABLE t1;

# Bug #6368: Make sure backslashes mixed with doubled quotes are handled
# correctly in NO_BACKSLASH_ESCAPES mode
SET @@SQL_MODE='NO_BACKSLASH_ESCAPES';
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";

SET @@SQL_MODE='';
SELECT 'a\\b', 'a\\\"b', 'a''\\b', 'a''\\\"b';
SELECT "a\\b", "a\\\'b", "a""\\b", "a""\\\'b";

SET @@SQL_MODE=@OLD_SQL_MODE;
+26 −0
Original line number Diff line number Diff line
@@ -23,6 +23,29 @@ case "$1" in
      ;;
esac

usage () {
        cat <<EOF
Usage: $0 [OPTIONS]
  --no-defaults              Don't read the system defaults file
  --defaults-file=FILE       Use the specified defaults file
  --defaults-extra-file=FILE Also use defaults from the specified file
  --ledir=DIRECTORY          Look for mysqld in the specified directory
  --log-error=FILE           Log errors to the specified log file
  --open-files-limit=LIMIT   Limit the number of open files
  --core-file-size=LIMIT     Limit core files to the specified size
  --timezone=TZ              Set the system timezone
  --mysqld=FILE              Use the specified file as mysqld
  --mysqld-version=VERSION   Use "mysqld-VERSION" as mysqld
  --nice=NICE                Set the scheduling priority of mysqld
  --skip-kill-mysqld         Don't try to kill stray mysqld processes

All other options are passed to the mysqld program.

EOF
        exit 1
}


parse_arguments() {
  # We only need to pass arguments through to the server if we don't
  # handle them here.  So, we collect unrecognized options (passed on
@@ -67,6 +90,9 @@ parse_arguments() {
	fi
	;;
      --nice=*) niceness=`echo "$arg" | sed -e "s;--nice=;;"` ;;
      --help)
        usage
        ;;
      *)
        if test -n "$pick_args"
        then
+16 −21
Original line number Diff line number Diff line
@@ -3376,37 +3376,32 @@ int main(int argc, char **argv)
	return 0;
      }
    }
    else if (argc >= 4)
    else if (argc == 4 || argc == 5)
    {
      const char *defaults_file = "--defaults-file";
      const char *service = "--local-service";
      char extra_opt[FN_REFLEN] = "";  
      /*
        This may seem strange, because we handle --local-service while
        preserving 4.1's behavior of allowing any one other argument that is
        passed to the service on startup. (The assumption is that this is
        --defaults-file=file, but that was not enforced in 4.1, so we don't
        enforce it here.)
      */
      char *extra_opt= NULL;
      char *account_name = NULL;
      char *option;
      int index;
      for (index = 3; index < argc; index++)
      {
        option= argv[index];
        /* 
          Install an optional service with optional config file
          mysqld --install-manual mysqldopt --defaults-file=c:\miguel\my.ini
        */
        if (strncmp(option, defaults_file, strlen(defaults_file)) == 0)
        if (strncmp(argv[index], "--local-service", 15) == 0)
        {
          strmov(extra_opt, option);	  
          account_name=(char*)malloc(27);
          strmov(account_name, "NT AUTHORITY\\LocalService\0");
        }
        else
        /* 
          Install an optional service as local service
          mysqld --install-manual mysqldopt --local-service
        */
        if (strncmp(option, service, strlen(service)) == 0)
        {
          account_name=(char*)malloc(27);
          strmov(account_name, "NT AUTHORITY\\LocalService\0");
          extra_opt= argv[index];
        }
      }

      if (argc != 5 || account_name)
        if (!default_service_handling(argv, argv[2], argv[2], file_path, extra_opt, account_name))
          return 0;
    }
+2 −1
Original line number Diff line number Diff line
@@ -337,7 +337,8 @@ static char *get_text(LEX *lex)
	      continue;
	  }
#endif
	  if (*str == '\\' && str+1 != end)
	  if (!(lex->thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) &&
              *str == '\\' && str+1 != end)
	  {
	    switch(*++str) {
	    case 'n':