Merge sita.local:/Users/tsmith/m/bk/50
into sita.local:/Users/tsmith/m/bk/maint/50
This commit is contained in:
commit
5aba321046
@ -673,9 +673,14 @@ static struct my_option my_long_options[] =
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||
0},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &opt_mysql_port,
|
||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"prompt", OPT_PROMPT, "Set the mysql prompt to this value.",
|
||||
(gptr*) ¤t_prompt, (gptr*) ¤t_prompt, 0, GET_STR_ALLOC,
|
||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
@ -88,8 +88,13 @@ static struct my_option my_long_options[]=
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0,
|
||||
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"port", 'P', "Port number to use for connection.", 0,
|
||||
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"protocol", OPT_MYSQL_PROTOCOL,
|
||||
"The protocol of connection (tcp,socket,pipe,memory).",
|
||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
@ -159,7 +159,13 @@ static struct my_option my_long_options[] =
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"port", 'P', "Port number to use for connection.", (gptr*) &tcp_port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &tcp_port,
|
||||
(gptr*) &tcp_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
@ -687,9 +687,14 @@ static struct my_option my_long_options[] =
|
||||
0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"password", 'p', "Password to connect to remote server.",
|
||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Use port to connect to the remote server.",
|
||||
(gptr*) &port, (gptr*) &port, 0, GET_INT, REQUIRED_ARG, 0, 0, 0,
|
||||
0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &port, (gptr*) &port, 0, GET_INT, REQUIRED_ARG,
|
||||
0, 0, 0, 0, 0, 0},
|
||||
{"position", 'j', "Deprecated. Use --start-position instead.",
|
||||
(gptr*) &start_position, (gptr*) &start_position, 0, GET_ULL,
|
||||
REQUIRED_ARG, BIN_LOG_HEADER_SIZE, BIN_LOG_HEADER_SIZE,
|
||||
|
@ -123,7 +123,13 @@ static struct my_option my_long_options[] =
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &opt_mysql_port,
|
||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||
0},
|
||||
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
||||
|
@ -361,7 +361,13 @@ static struct my_option my_long_options[] =
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &opt_mysql_port,
|
||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||
0},
|
||||
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
||||
|
@ -119,7 +119,13 @@ static struct my_option my_long_options[] =
|
||||
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
|
||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &opt_mysql_port,
|
||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||
0},
|
||||
{"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).",
|
||||
|
@ -49,7 +49,12 @@ static struct my_option my_long_options[] =
|
||||
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"password", 'p', "Password to use when connecting to server.",
|
||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection.", (gptr*) &port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").", (gptr*) &port,
|
||||
(gptr*) &port, 0, GET_UINT, REQUIRED_ARG, MYSQL_MANAGER_PORT, 0, 0, 0, 0,
|
||||
0},
|
||||
{"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG,
|
||||
|
@ -188,7 +188,13 @@ static struct my_option my_long_options[] =
|
||||
{"password", 'p',
|
||||
"Password to use when connecting to server. If password is not given it's asked from the tty.",
|
||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &opt_mysql_port,
|
||||
(gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0,
|
||||
0},
|
||||
#ifdef __WIN__
|
||||
|
@ -4947,7 +4947,13 @@ static struct my_option my_long_options[] =
|
||||
GET_INT, REQUIRED_ARG, 500, 1, 10000, 0, 0, 0},
|
||||
{"password", 'p', "Password to use when connecting to server.",
|
||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &opt_port,
|
||||
(gptr*) &opt_port, 0, GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"ps-protocol", OPT_PS_PROTOCOL, "Use prepared statements protocol for communication",
|
||||
(gptr*) &ps_protocol, (gptr*) &ps_protocol, 0,
|
||||
|
29
configure.in
29
configure.in
@ -718,7 +718,34 @@ AC_ARG_WITH(tcp-port,
|
||||
[ --with-tcp-port=port-number
|
||||
Which port to use for MySQL services (default 3306)],
|
||||
[ MYSQL_TCP_PORT=$withval ],
|
||||
[ MYSQL_TCP_PORT=$MYSQL_TCP_PORT_DEFAULT ]
|
||||
[ MYSQL_TCP_PORT=$MYSQL_TCP_PORT_DEFAULT
|
||||
# if we actually defaulted (as opposed to the pathological case of
|
||||
# --with-tcp-port=<MYSQL_TCP_PORT_DEFAULT> which might in theory
|
||||
# happen if whole batch of servers was built from a script), set
|
||||
# the default to zero to indicate that; we don't lose information
|
||||
# that way, because 0 obviously indicates that we can get the
|
||||
# default value from MYSQL_TCP_PORT. this seems really evil, but
|
||||
# testing for MYSQL_TCP_PORT==MYSQL_TCP_PORT_DEFAULT would make a
|
||||
# a port of MYSQL_TCP_PORT_DEFAULT magic even if the builder did not
|
||||
# intend it to mean "use the default, in fact, look up a good default
|
||||
# from /etc/services if you can", but really, really meant 3306 when
|
||||
# they passed in 3306. When they pass in a specific value, let them
|
||||
# have it; don't second guess user and think we know better, this will
|
||||
# just make people cross. this makes the the logic work like this
|
||||
# (which is complicated enough):
|
||||
#
|
||||
# - if a port was set during build, use that as a default.
|
||||
#
|
||||
# - otherwise, try to look up a port in /etc/services; if that fails,
|
||||
# use MYSQL_TCP_PORT_DEFAULT (at the time of this writing 3306)
|
||||
#
|
||||
# - allow the MYSQL_TCP_PORT environment variable to override that.
|
||||
#
|
||||
# - allow command-line parameters to override all of the above.
|
||||
#
|
||||
# the top-most MYSQL_TCP_PORT_DEFAULT is read from win/configure.js,
|
||||
# so don't mess with that.
|
||||
MYSQL_TCP_PORT_DEFAULT=0 ]
|
||||
)
|
||||
AC_SUBST(MYSQL_TCP_PORT)
|
||||
# We might want to document the assigned port in the manual.
|
||||
|
@ -15,6 +15,7 @@
|
||||
#define FRM_VER @DOT_FRM_VERSION@
|
||||
#define MYSQL_VERSION_ID @MYSQL_VERSION_ID@
|
||||
#define MYSQL_PORT @MYSQL_TCP_PORT@
|
||||
#define MYSQL_PORT_DEFAULT @MYSQL_TCP_PORT_DEFAULT@
|
||||
#define MYSQL_UNIX_ADDR "@MYSQL_UNIX_ADDR@"
|
||||
#define MYSQL_CONFIG_NAME "my"
|
||||
#define MYSQL_COMPILATION_COMMENT "@COMPILATION_COMMENT@"
|
||||
|
@ -133,10 +133,23 @@ int STDCALL mysql_server_init(int argc __attribute__((unused)),
|
||||
{
|
||||
struct servent *serv_ptr;
|
||||
char *env;
|
||||
if ((serv_ptr = getservbyname("mysql", "tcp")))
|
||||
mysql_port = (uint) ntohs((ushort) serv_ptr->s_port);
|
||||
if ((env = getenv("MYSQL_TCP_PORT")))
|
||||
mysql_port =(uint) atoi(env);
|
||||
|
||||
/*
|
||||
if builder specifically requested a default port, use that
|
||||
(even if it coincides with our factory default).
|
||||
only if they didn't do we check /etc/services (and, failing
|
||||
on that, fall back to the factory default of 3306).
|
||||
either default can be overridden by the environment variable
|
||||
MYSQL_TCP_PORT, which in turn can be overridden with command
|
||||
line options.
|
||||
*/
|
||||
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
if ((serv_ptr = getservbyname("mysql", "tcp")))
|
||||
mysql_port = (uint) ntohs((ushort) serv_ptr->s_port);
|
||||
#endif
|
||||
if ((env = getenv("MYSQL_TCP_PORT")))
|
||||
mysql_port =(uint) atoi(env);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -139,6 +139,7 @@ SUFFIXES = .sh
|
||||
-e 's!@''PERL''@!@PERL@!' \
|
||||
-e 's!@''VERSION''@!@VERSION@!' \
|
||||
-e 's!@''MYSQL_TCP_PORT''@!@MYSQL_TCP_PORT@!' \
|
||||
-e 's!@''MYSQL_TCP_PORT_DEFAULT''@!@MYSQL_TCP_PORT_DEFAULT@!' \
|
||||
-e 's!@''MYSQL_BASE_VERSION''@!@MYSQL_BASE_VERSION@!' \
|
||||
-e 's!@''MYSQL_UNIX_ADDR''@!@MYSQL_UNIX_ADDR@!' \
|
||||
-e 's!@''MYSQL_TCP_PORT''@!@MYSQL_TCP_PORT@!' \
|
||||
|
@ -17,7 +17,16 @@ USE_MANAGER=0
|
||||
MY_TZ=GMT-3
|
||||
TZ=$MY_TZ; export TZ # for UNIX_TIMESTAMP tests to work
|
||||
LOCAL_SOCKET=@MYSQL_UNIX_ADDR@
|
||||
MYSQL_TCP_PORT=@MYSQL_TCP_PORT@
|
||||
|
||||
if [ -z "$MYSQL_TCP_PORT" ]; then
|
||||
MYSQL_TCP_PORT=@MYSQL_TCP_PORT@
|
||||
if [ @MYSQL_TCP_PORT_DEFAULT@ -eq 0 ]; then
|
||||
ESP=`getent services mysql/tcp`
|
||||
if [ $? -eq 0 ]; then
|
||||
MYSQL_TCP_PORT=`echo "$ESP"|sed -e's-^[a-z]*[ ]*\([0-9]*\)/[a-z]*$-\1-g'`
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
umask 022
|
||||
|
||||
|
@ -3708,6 +3708,11 @@ sub mysqld_arguments ($$$$) {
|
||||
mtr_add_arg($args, "%s--language=%s", $prefix, $path_language);
|
||||
mtr_add_arg($args, "%s--tmpdir=$opt_tmpdir", $prefix);
|
||||
|
||||
# Increase default connect_timeout to avoid intermittent
|
||||
# disconnects when test servers are put under load
|
||||
# see BUG#28359
|
||||
mtr_add_arg($args, "%s--connect-timeout=60", $prefix);
|
||||
|
||||
if ( $opt_valgrind_mysqld )
|
||||
{
|
||||
mtr_add_arg($args, "%s--skip-safemalloc", $prefix);
|
||||
|
@ -11123,10 +11123,11 @@ auto fld1 companynr fld3 fld4 fld5 fld6
|
||||
SELECT COUNT(auto) FROM t2;
|
||||
COUNT(auto)
|
||||
1213
|
||||
INSERT DELAYED INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
|
||||
INSERT DELAYED INTO t2 VALUES (99999,011403,37,'the','delayed','insert','');
|
||||
INSERT INTO t2 VALUES (100000,000001,00,'after','delayed','insert','');
|
||||
SELECT COUNT(auto) FROM t2;
|
||||
COUNT(auto)
|
||||
1214
|
||||
1215
|
||||
ALTER TABLE t2 DROP COLUMN fld6;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
@ -11138,7 +11139,7 @@ t2 CREATE TABLE `t2` (
|
||||
`fld4` char(35) NOT NULL default '',
|
||||
`fld5` char(35) NOT NULL default ''
|
||||
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
|
||||
SELECT * from t2;
|
||||
SELECT * from t2 WHERE auto != 100000;
|
||||
auto fld1 companynr fld3 fld4 fld5
|
||||
1 000001 00 Omaha teethe neat
|
||||
2 011401 37 breaking dreaded Steinberg
|
||||
@ -12353,7 +12354,7 @@ auto fld1 companynr fld3 fld4 fld5
|
||||
2 011401 37 breaking dreaded Steinberg
|
||||
3 011402 37 Romans scholastics jarring
|
||||
4 011403 37 intercepted audiology tinily
|
||||
4 011403 37 intercepted audiology tinily
|
||||
99999 011403 37 the delayed insert
|
||||
drop table t1, t2, t4;
|
||||
create table t1 (i int) engine=archive;
|
||||
insert into t1 values (1);
|
||||
|
@ -296,4 +296,28 @@ Qcache_queries_in_cache 0
|
||||
drop table t1;
|
||||
drop function metaphon;
|
||||
set GLOBAL query_cache_size=default;
|
||||
CREATE TABLE const_len_bug (
|
||||
str_const varchar(4000),
|
||||
result1 varchar(4000),
|
||||
result2 varchar(4000)
|
||||
);
|
||||
CREATE TRIGGER check_const_len_trigger BEFORE INSERT ON const_len_bug FOR EACH ROW BEGIN
|
||||
set NEW.str_const = 'bar';
|
||||
set NEW.result2 = check_const_len(NEW.str_const);
|
||||
END |
|
||||
CREATE PROCEDURE check_const_len_sp (IN str_const VARCHAR(4000))
|
||||
BEGIN
|
||||
DECLARE result VARCHAR(4000);
|
||||
SET result = check_const_len(str_const);
|
||||
insert into const_len_bug values(str_const, result, "");
|
||||
END |
|
||||
CREATE FUNCTION check_const_len RETURNS string SONAME "UDF_EXAMPLE_LIB";
|
||||
CALL check_const_len_sp("foo");
|
||||
SELECT * from const_len_bug;
|
||||
str_const result1 result2
|
||||
bar Correct length Correct length
|
||||
DROP FUNCTION check_const_len;
|
||||
DROP PROCEDURE check_const_len_sp;
|
||||
DROP TRIGGER check_const_len_trigger;
|
||||
DROP TABLE const_len_bug;
|
||||
End of 5.0 tests.
|
||||
|
@ -1347,8 +1347,16 @@ SELECT * FROM t2;
|
||||
|
||||
# Test INSERT DELAYED and wait until the table has one more record
|
||||
SELECT COUNT(auto) FROM t2;
|
||||
INSERT DELAYED INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
|
||||
while (`SELECT COUNT(auto)!=1214 FROM t2`)
|
||||
INSERT DELAYED INTO t2 VALUES (99999,011403,37,'the','delayed','insert','');
|
||||
|
||||
# Insert another record since in Archive delayed values are only
|
||||
# guaranteed to materialize based on either:
|
||||
# 1) A new row showing up from a normal insert
|
||||
# 2) A flush table has occurred.
|
||||
INSERT INTO t2 VALUES (100000,000001,00,'after','delayed','insert','');
|
||||
|
||||
# Wait for the delayed insert to appear
|
||||
while (`SELECT COUNT(auto)!=1215 FROM t2`)
|
||||
{
|
||||
sleep 0.1;
|
||||
}
|
||||
@ -1357,7 +1365,7 @@ SELECT COUNT(auto) FROM t2;
|
||||
# Adding test for alter table
|
||||
ALTER TABLE t2 DROP COLUMN fld6;
|
||||
SHOW CREATE TABLE t2;
|
||||
SELECT * from t2;
|
||||
SELECT * from t2 WHERE auto != 100000;
|
||||
#
|
||||
# Cleanup, test is over
|
||||
#
|
||||
|
@ -312,4 +312,40 @@ drop function metaphon;
|
||||
set GLOBAL query_cache_size=default;
|
||||
|
||||
|
||||
#
|
||||
# Bug #29804 UDF parameters don't contain correct string length
|
||||
#
|
||||
|
||||
CREATE TABLE const_len_bug (
|
||||
str_const varchar(4000),
|
||||
result1 varchar(4000),
|
||||
result2 varchar(4000)
|
||||
);
|
||||
|
||||
DELIMITER |;
|
||||
CREATE TRIGGER check_const_len_trigger BEFORE INSERT ON const_len_bug FOR EACH ROW BEGIN
|
||||
set NEW.str_const = 'bar';
|
||||
set NEW.result2 = check_const_len(NEW.str_const);
|
||||
END |
|
||||
|
||||
CREATE PROCEDURE check_const_len_sp (IN str_const VARCHAR(4000))
|
||||
BEGIN
|
||||
DECLARE result VARCHAR(4000);
|
||||
SET result = check_const_len(str_const);
|
||||
insert into const_len_bug values(str_const, result, "");
|
||||
END |
|
||||
DELIMITER ;|
|
||||
|
||||
--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
|
||||
eval CREATE FUNCTION check_const_len RETURNS string SONAME "$UDF_EXAMPLE_LIB";
|
||||
|
||||
CALL check_const_len_sp("foo");
|
||||
|
||||
SELECT * from const_len_bug;
|
||||
|
||||
DROP FUNCTION check_const_len;
|
||||
DROP PROCEDURE check_const_len_sp;
|
||||
DROP TRIGGER check_const_len_trigger;
|
||||
DROP TABLE const_len_bug;
|
||||
|
||||
--echo End of 5.0 tests.
|
||||
|
@ -1170,7 +1170,8 @@ void setup(char *file)
|
||||
setenv("MYSQL_BINLOG", file_path, 1);
|
||||
setenv("MASTER_MYPORT", "9306", 1);
|
||||
setenv("SLAVE_MYPORT", "9307", 1);
|
||||
setenv("MYSQL_TCP_PORT", "3306", 1);
|
||||
snprintf(file_path, PATH_MAX*2, "%d", MYSQL_PORT);
|
||||
setenv("MYSQL_TCP_PORT", file_path, 1);
|
||||
snprintf(file_path, PATH_MAX*2, "%s/mysql_client_test --no-defaults --testcase--user=root --port=%u ", bin_dir, master_port);
|
||||
setenv("MYSQL_CLIENT_TEST",file_path,1);
|
||||
snprintf(file_path, PATH_MAX*2, "%s/mysql --no-defaults --user=root --port=%u ", bin_dir, master_port);
|
||||
|
@ -189,7 +189,7 @@ void start_defaults(int argc, char *argv[])
|
||||
snprintf(address, PATH_MAX, "0.0.0.0");
|
||||
|
||||
// port
|
||||
snprintf(port, PATH_MAX, "3306");
|
||||
snprintf(port, PATH_MAX, "%d", MYSQL_PORT);
|
||||
|
||||
// default option
|
||||
default_option[0]= NULL;
|
||||
|
@ -174,6 +174,7 @@ SUFFIXES = .sh
|
||||
-e 's!@''MYSQLD_DEFAULT_SWITCHES''@!@MYSQLD_DEFAULT_SWITCHES@!' \
|
||||
-e 's!@''MYSQL_UNIX_ADDR''@!@MYSQL_UNIX_ADDR@!' \
|
||||
-e 's!@''MYSQL_TCP_PORT''@!@MYSQL_TCP_PORT@!' \
|
||||
-e 's!@''MYSQL_TCP_PORT_DEFAULT''@!@MYSQL_TCP_PORT_DEFAULT@!' \
|
||||
-e 's!@''TARGET_LINUX''@!@TARGET_LINUX@!' \
|
||||
-e "s!@""CONF_COMMAND""@!@CONF_COMMAND@!" \
|
||||
-e 's!@''MYSQLD_USER''@!@MYSQLD_USER@!' \
|
||||
|
@ -92,9 +92,14 @@ fix_path pkgincludedir include/mysql include
|
||||
|
||||
version='@VERSION@'
|
||||
socket='@MYSQL_UNIX_ADDR@'
|
||||
port='@MYSQL_TCP_PORT@'
|
||||
ldflags='@LDFLAGS@'
|
||||
|
||||
if [ @MYSQL_TCP_PORT_DEFAULT@ -eq 0 ]; then
|
||||
port=0
|
||||
else
|
||||
port=@MYSQL_TCP_PORT@
|
||||
fi
|
||||
|
||||
# Create options
|
||||
# We intentionally add a space to the beginning and end of lib strings, simplifies replace later
|
||||
libs=" $ldflags -L$pkglibdir -lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
|
||||
|
@ -25,6 +25,7 @@ sql_only=0
|
||||
basedir="@prefix@"
|
||||
verbose=0
|
||||
args=""
|
||||
# no elaborate fallback here; with no argument, it will happen in "mysql"
|
||||
port=""
|
||||
socket=""
|
||||
database="mysql"
|
||||
|
@ -66,7 +66,7 @@ fi
|
||||
echo "Starting mysqld demon with databases from $DATADIR"
|
||||
|
||||
#Default communication ports
|
||||
#MYSQL_TCP_PORT=3306
|
||||
#MYSQL_TCP_PORT=@MYSQL_TCP_PORT@
|
||||
if test -z "$MYSQL_UNIX_PORT"
|
||||
then
|
||||
MYSQL_UNIX_PORT="/tmp/mysql.sock"
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "my_pthread.h"
|
||||
|
||||
/* IM-wide platform-independent defines */
|
||||
#define SERVER_DEFAULT_PORT 3306
|
||||
#define SERVER_DEFAULT_PORT MYSQL_PORT
|
||||
#define DEFAULT_MONITORING_INTERVAL 20
|
||||
#define DEFAULT_PORT 2273
|
||||
/* three-week timeout should be enough */
|
||||
|
@ -2924,7 +2924,8 @@ udf_handler::fix_fields(THD *thd, Item_result_field *func,
|
||||
String *res= arguments[i]->val_str(&buffers[i]);
|
||||
if (arguments[i]->null_value)
|
||||
continue;
|
||||
f_args.args[i]= (char*) res->ptr();
|
||||
f_args.args[i]= (char*) res->c_ptr();
|
||||
f_args.lengths[i]= res->length();
|
||||
break;
|
||||
}
|
||||
case INT_RESULT:
|
||||
|
@ -245,8 +245,13 @@ MY_LOCALE *my_locale_by_number(uint number);
|
||||
#define PRECISION_FOR_DOUBLE 53
|
||||
#define PRECISION_FOR_FLOAT 24
|
||||
|
||||
/*
|
||||
Default time to wait before aborting a new client connection
|
||||
that does not respond to "initial server greeting" timely
|
||||
*/
|
||||
#define CONNECT_TIMEOUT 10
|
||||
|
||||
/* The following can also be changed from the command line */
|
||||
#define CONNECT_TIMEOUT 5 // Do not wait long for connect
|
||||
#define DEFAULT_CONCURRENCY 10
|
||||
#define DELAYED_LIMIT 100 /* pause after xxx inserts */
|
||||
#define DELAYED_QUEUE_SIZE 1000
|
||||
|
@ -1300,8 +1300,21 @@ static void set_ports()
|
||||
{ // Get port if not from commandline
|
||||
struct servent *serv_ptr;
|
||||
mysqld_port= MYSQL_PORT;
|
||||
|
||||
/*
|
||||
if builder specifically requested a default port, use that
|
||||
(even if it coincides with our factory default).
|
||||
only if they didn't do we check /etc/services (and, failing
|
||||
on that, fall back to the factory default of 3306).
|
||||
either default can be overridden by the environment variable
|
||||
MYSQL_TCP_PORT, which in turn can be overridden with command
|
||||
line options.
|
||||
*/
|
||||
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
if ((serv_ptr= getservbyname("mysql", "tcp")))
|
||||
mysqld_port= ntohs((u_short) serv_ptr->s_port); /* purecov: inspected */
|
||||
#endif
|
||||
if ((env = getenv("MYSQL_TCP_PORT")))
|
||||
mysqld_port= (uint) atoi(env); /* purecov: inspected */
|
||||
}
|
||||
@ -5400,7 +5413,13 @@ Disable with --skip-ndbcluster (will save memory).",
|
||||
{"pid-file", OPT_PID_FILE, "Pid file used by safe_mysqld.",
|
||||
(gptr*) &pidfile_name_ptr, (gptr*) &pidfile_name_ptr, 0, GET_STR,
|
||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection.", (gptr*) &mysqld_port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &mysqld_port,
|
||||
(gptr*) &mysqld_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port-open-timeout", OPT_PORT_OPEN_TIMEOUT,
|
||||
"Maximum time in seconds to wait for the port to become free. "
|
||||
|
@ -13066,7 +13066,8 @@ static int
|
||||
join_init_cache(THD *thd,JOIN_TAB *tables,uint table_count)
|
||||
{
|
||||
reg1 uint i;
|
||||
uint length,blobs,size;
|
||||
uint length, blobs;
|
||||
size_t size;
|
||||
CACHE_FIELD *copy,**blob_ptr;
|
||||
JOIN_CACHE *cache;
|
||||
JOIN_TAB *join_tab;
|
||||
@ -13182,7 +13183,7 @@ store_record_in_cache(JOIN_CACHE *cache)
|
||||
length=cache->length;
|
||||
if (cache->blobs)
|
||||
length+=used_blob_length(cache->blob_ptr);
|
||||
if ((last_record=(length+cache->length > (uint) (cache->end - pos))))
|
||||
if ((last_record= (length + cache->length > (size_t) (cache->end - pos))))
|
||||
cache->ptr_record=cache->records;
|
||||
|
||||
/*
|
||||
@ -13228,7 +13229,7 @@ store_record_in_cache(JOIN_CACHE *cache)
|
||||
}
|
||||
}
|
||||
cache->pos=pos;
|
||||
return last_record || (uint) (cache->end -pos) < cache->length;
|
||||
return last_record || (size_t) (cache->end - pos) < cache->length;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1106,4 +1106,39 @@ char * is_const(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
|
||||
}
|
||||
|
||||
|
||||
|
||||
my_bool check_const_len_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
|
||||
{
|
||||
if (args->arg_count != 1)
|
||||
{
|
||||
strmov(message, "CHECK_CONST_LEN accepts only one argument");
|
||||
return 1;
|
||||
}
|
||||
if (args->args[0] == 0)
|
||||
{
|
||||
initid->ptr= (char*)"Not constant";
|
||||
}
|
||||
else if(strlen(args->args[0]) == args->lengths[0])
|
||||
{
|
||||
initid->ptr= (char*)"Correct length";
|
||||
}
|
||||
else
|
||||
{
|
||||
initid->ptr= (char*)"Wrong length";
|
||||
}
|
||||
initid->max_length = 100;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char * check_const_len(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
|
||||
char *result, unsigned long *length,
|
||||
char *is_null, char *error __attribute__((unused)))
|
||||
{
|
||||
strmov(result, initid->ptr);
|
||||
*length= strlen(result);
|
||||
*is_null= 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
#endif /* HAVE_DLOPEN */
|
||||
|
@ -23,3 +23,5 @@ EXPORTS
|
||||
avgcost
|
||||
is_const
|
||||
is_const_init
|
||||
check_const_len
|
||||
check_const_len_init
|
||||
|
@ -15881,7 +15881,13 @@ static struct my_option client_test_long_options[] =
|
||||
{"password", 'p',
|
||||
"Password to use when connecting to server. If password is not given it's asked from the tty.",
|
||||
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection", (char **) &opt_port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(char **) &opt_port,
|
||||
(char **) &opt_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"server-arg", 'A', "Send embedded server this as a parameter.",
|
||||
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
@ -44,7 +44,7 @@ int main(int argc, char **argv)
|
||||
"../SSL/MySQL-client-cert.pem",
|
||||
"../SSL/MySQL-ca-cert.pem", 0, 0);
|
||||
#endif
|
||||
if (!(sock = mysql_real_connect(&mysql,"127.0.0.1",0,0,argv[1],3306,NULL,0)))
|
||||
if (!(sock = mysql_real_connect(&mysql,"127.0.0.1",0,0,argv[1],MYSQL_PORT,NULL,0)))
|
||||
{
|
||||
fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql));
|
||||
perror("");
|
||||
|
@ -103,7 +103,13 @@ static struct my_option my_long_options[] =
|
||||
(gptr*) &verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"query", 'Q', "Query to execute in each threads", (gptr*) &query,
|
||||
(gptr*) &query, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"port", 'P', "Port number to use for connection", (gptr*) &tcp_port,
|
||||
{"port", 'P', "Port number to use for connection or 0 for default to, in "
|
||||
"order of preference, my.cnf, $MYSQL_TCP_PORT, "
|
||||
#if MYSQL_PORT_DEFAULT == 0
|
||||
"/etc/services, "
|
||||
#endif
|
||||
"built-in default (" STRINGIFY_ARG(MYSQL_PORT) ").",
|
||||
(gptr*) &tcp_port,
|
||||
(gptr*) &tcp_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0, 0},
|
||||
{"socket", 'S', "Socket file to use for connection", (gptr*) &unix_socket,
|
||||
(gptr*) &unix_socket, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
@ -31,6 +31,7 @@ try
|
||||
configureInTS.Close();
|
||||
var default_comment = "Source distribution";
|
||||
var default_port = GetValue(configureIn, "MYSQL_TCP_PORT_DEFAULT");
|
||||
var actual_port = 0;
|
||||
|
||||
var configfile = fso.CreateTextFile("win\\configure.data", true);
|
||||
for (i=0; i < args.Count(); i++)
|
||||
@ -58,10 +59,41 @@ try
|
||||
default_comment = parts[1];
|
||||
break;
|
||||
case "MYSQL_TCP_PORT":
|
||||
default_port = parts[1];
|
||||
actual_port = parts[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (actual_port == 0)
|
||||
{
|
||||
// if we actually defaulted (as opposed to the pathological case of
|
||||
// --with-tcp-port=<MYSQL_TCP_PORT_DEFAULT> which might in theory
|
||||
// happen if whole batch of servers was built from a script), set
|
||||
// the default to zero to indicate that; we don't lose information
|
||||
// that way, because 0 obviously indicates that we can get the
|
||||
// default value from MYSQL_TCP_PORT. this seems really evil, but
|
||||
// testing for MYSQL_TCP_PORT==MYSQL_TCP_PORT_DEFAULT would make a
|
||||
// a port of MYSQL_TCP_PORT_DEFAULT magic even if the builder did not
|
||||
// intend it to mean "use the default, in fact, look up a good default
|
||||
// from /etc/services if you can", but really, really meant 3306 when
|
||||
// they passed in 3306. When they pass in a specific value, let them
|
||||
// have it; don't second guess user and think we know better, this will
|
||||
// just make people cross. this makes the the logic work like this
|
||||
// (which is complicated enough):
|
||||
//
|
||||
// - if a port was set during build, use that as a default.
|
||||
//
|
||||
// - otherwise, try to look up a port in /etc/services; if that fails,
|
||||
// use MYSQL_TCP_PORT_DEFAULT (at the time of this writing 3306)
|
||||
//
|
||||
// - allow the MYSQL_TCP_PORT environment variable to override that.
|
||||
//
|
||||
// - allow command-line parameters to override all of the above.
|
||||
//
|
||||
// the top-most MYSQL_TCP_PORT_DEFAULT is read from win/configure.js,
|
||||
// so don't mess with that.
|
||||
actual_port = default_port;
|
||||
default_port = 0;
|
||||
}
|
||||
|
||||
configfile.WriteLine("SET (COMPILATION_COMMENT \"" +
|
||||
default_comment + "\")");
|
||||
@ -70,7 +102,8 @@ try
|
||||
GetValue(configureIn, "PROTOCOL_VERSION") + "\")");
|
||||
configfile.WriteLine("SET (DOT_FRM_VERSION \"" +
|
||||
GetValue(configureIn, "DOT_FRM_VERSION") + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_TCP_PORT \"" + default_port + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_TCP_PORT_DEFAULT \"" + default_port + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_TCP_PORT \"" + actual_port + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_UNIX_ADDR \"" +
|
||||
GetValue(configureIn, "MYSQL_UNIX_ADDR_DEFAULT") + "\")");
|
||||
var version = GetVersion(configureIn);
|
||||
|
Loading…
x
Reference in New Issue
Block a user