mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0
This commit is contained in:
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
strmov(extra_opt, option);
|
||||
}
|
||||
else
|
||||
/*
|
||||
Install an optional service as local service
|
||||
mysqld --install-manual mysqldopt --local-service
|
||||
*/
|
||||
if (strncmp(option, service, strlen(service)) == 0)
|
||||
if (strncmp(argv[index], "--local-service", 15) == 0)
|
||||
{
|
||||
account_name=(char*)malloc(27);
|
||||
strmov(account_name, "NT AUTHORITY\\LocalService\0");
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
@ -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':
|
||||
|
Reference in New Issue
Block a user