Make Prepared_stmt_count a global status variable, accessible via
SHOW STATUS LIKE 'Prepared_stmt_count';. Documentation should be
updated.
mysql-test/r/ps.result:
Update result for bug#16365: Prepared Statements: DoS with too many
open statements, according to bug#23159: prepared_stmt_count should be
status variable.
mysql-test/t/ps.test:
Update test case for bug#16365: Prepared Statements: DoS with too many
open statements, according to bug#23159: prepared_stmt_count should be
status variable.
sql/mysqld.cc:
Add Prepared_stmt_count as global status variable.
sql/set_var.cc:
Remove prepared_stmt_count as system variable.
into bodhi.local:/opt/local/work/mysql-4.1-runtime
mysql-test/r/ps.result:
Auto merged
mysql-test/t/func_gconcat.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_sum.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_update.cc:
Auto merged
If the user has specified --max-connections=N or --table-open-cache=M
options to the server, a warning could be given that some values were
recalculated, and table-open-cache could be assigned greater value.
Note that both warning and increase of table-open-cache were totally
harmless.
This patch fixes recalculation code to ensure that table-open-cache will
be never increased automatically and that a warning will be given only if
some values had to be decreased due to operating system limits.
No test case is provided because we neither can't predict nor control
operating system limits for maximal number of open files.
sql/mysql_priv.h:
Add constants for table_cache minimum and default values.
sql/mysqld.cc:
Fix max_connections and table_cache_size re-computation.
into rama.(none):/home/jimw/my/mysql-4.1-clean
include/my_global.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/mysqld.cc:
Resolve conflict
Fix OPT_MYISAM_STATS_METHOD case, where the NULLS_EQUAL and NULLS_NOT_EQUAL methods were mixed up
sql/mysqld.cc:
Fix OPT_MYISAM_STATS_METHOD case, bug #21054
Fix when __attribute__() is stubbed out, add ATTRIBUTE_FORMAT() for specifying
__attribute__((format(...))) safely, make more use of the format attribute,
and fix some of the warnings that this turns up (plus a bonus unrelated one).
include/m_ctype.h:
Add ATTRIBUTE_FORMAT to printf-like functions.
include/m_string.h:
Add ATTRIBUTE_FORMAT to my_snprintf() declaration.
include/my_global.h:
Fix neutering of __attribute__() on old versions of GCC and non-GCC compilers.
Add ATTRIBUTE_FORMAT() macro for setting __attribute_((format(...)), since it
is available from different versions of gcc and g++.
include/my_sys.h:
Add ATTRIBUTE_FORMAT() to my_printf_error declaration
sql/item_subselect.cc:
Silence warning about members being initialized out-of-order
sql/item_timefunc.cc:
Fix format specifier in snprintf() calls with milliseconds
sql/mysql_priv.h:
Add ATTRIBUTE_FORMAT to printf-like functions.
sql/mysqld.cc:
Fix various format specifiers
Make sure that method_conv is always set by myisam_stats_method
sql/opt_range.cc:
Cast pointers to correct type for %lx
sql/set_var.cc:
Fix __attribute__((unused)) (missing inner set of parens)
sql/slave.cc:
Fix format specifier
sql/slave.h:
Add ATTRIBUTE_FORMAT to slave_print_error() declaration.
sql/sql_acl.cc:
Fix number of arguments passed for formatting, and fix acl_host_or_ip being
passed instead of just the hostname.
sql/sql_class.h:
Add ATTRIBUTE_FORMAT to MYSQL_LOG::write().
didn't work as expected: collation_server was set not to xxx,
but to the default collation of character set "yyy".
With different argument order it worked as expected:
mysqld --character-set-server=yyy --collation-server=yyy
Fix:
initializate default_collation_name to 0
when processing --character-set-server
only if --collation-server has not been specified
in command line.
mysql-test/r/ctype_ucs2_def.result:
Adding test cast
mysql-test/t/ctype_ucs2_def-master.opt:
Adding test case
mysql-test/t/ctype_ucs2_def.test:
Adding test case
sql/mysqld.cc:
Don't clear default_collation_name when processing
--character-set-server if collation has already
been specified using --collation-server
- A segfault occured when the function 'kill_server' called
'my_sigset' with signal number 0. 'my_sigset' is a macro which
uses 'sigaction' to install the signal handler with an invalid
signal number will on most platforms return EINVAL but yields
a segfauilt on IRIX 6.5
- The server crash was detected by mysqld_safe and it was restarted although
a shutdown was requested.
- Semantics of kill_server(0) is not known, leaving it intact
include/my_pthread.h:
Check return value from sigaction with a DBUG_ASSERT
Also DBUG_ASSERT if signal number 0 is passed
sql/mysqld.cc:
Don't call my_sigset if signo is 0
too many open statements". The patch adds a new global variable
@@max_prepared_stmt_count. This variable limits the total number
of prepared statements in the server. The default value of
@@max_prepared_stmt_count is 16382. 16382 small statements
(a select against 3 tables with GROUP, ORDER and LIMIT) consume
100MB of RAM. Once this limit has been reached, the server will
refuse to prepare a new statement and return ER_UNKNOWN_ERROR
(unfortunately, we can't add new errors to 4.1 without breaking 5.0). The limit is changeable after startup
and can accept any value from 0 to 1 million. In case
the new value of the limit is less than the current
statement count, no new statements can be added, while the old
still can be used. Additionally, the current count of prepared
statements is now available through a global read-only variable
@@prepared_stmt_count.
mysql-test/r/ps.result:
Test results fixed (a test case for Bug#16365)
mysql-test/t/ps.test:
A test case for Bug#16365 "Prepared Statements: DoS with too many
open statements". Also fix statement leaks in other tests.
sql/mysql_priv.h:
Add declarations for new global variables.
sql/mysqld.cc:
Add definitions of max_prepared_stmt_count, prepared_stmt_count.
sql/set_var.cc:
Implement support for @@prepared_stmt_count and
@@max_prepared_stmt_count. Currently these variables are queried
without acquiring LOCK_prepared_stmt_count due to limitations of
the set_var/sys_var class design. Updates are, however, protected
with a lock.
sql/set_var.h:
New declarations to add support for @@max_prepared_stmt_count.
Implement a new class, where the lock to be used when updating
a variable is a parameter.
sql/sql_class.cc:
Add accounting of the total number of prepared statements in the
server to the methods of Statement_map.
sql/sql_class.h:
Add accounting of the total number of prepared statements in the
server to the methods of Statement_map.
sql/sql_prepare.cc:
Statement_map::insert will now send a message in case of an
error.
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1
include/config-netware.h:
Auto merged
innobase/os/os0thread.c:
Auto merged
netware/mysqld_safe.c:
Merge from 4.0 to 4.1
sql/mysqld.cc:
Merge from 4.0 to 4.1
Changes to Netware specific mysqld_safe.c
include/config-netware.h:
NetWare specific change to increase thread stack size.
innobase/os/os0thread.c:
NetWare specific change to increase thread stack size.
netware/mysqld_safe.c:
NetWare specific change to make multiple mysqld_safe instances
work when called through a NCF file.
sql/mysqld.cc:
NetWare specific change to increase thread stack size.
Bug#14960, reverted code to make symdir work on Windows
symlink.test:
Disabled test case on Windows
mysql-test/t/symlink.test:
Disabled test case on Windows
sql/mysqld.cc:
Bug#14960, reverted code to make symdir work on Windows
because they are used by net_printf() and push_warning(), which can be called if check_connection() fails.
sql/mysqld.cc:
not needed anymore
sql/repl_failsafe.cc:
not needed anymore
sql/slave.cc:
not needed anymore
sql/sql_class.cc:
query_id needs to be inited early (already fixed in 5.0 by Konstantin) and so does client_capabilities (not fixed in 5.0);
because they are used by net_printf() and push_warning(), which may be called if check_connection() fails.
signal handlers are set up, the blocking flags for sockets are set,
and which thread-related functions are used. (Bug #8731)
configure.in:
Fix flags for Darwin 6 and later. Simplify Darwin 7-9 blocks to simply
be a catch-all for *darwin* so that future Darwin releases get the
latest flags.
include/config-win.h:
Define my_sigset() instead of sigset().
include/my_pthread.h:
Define my_sigset() instead of trying to monkey with sigset(), and favor
an implementation based on sigaction().
mysys/my_pthread.c:
Remove pthread_signal(), which is identical to the new my_sigset() macro.
mysys/thr_alarm.c:
Use my_sigset() instead of sigset().
sql/mysqld.cc:
Use my_sigset() instead of signal() and sigset(), remove unnecessary
definition of sigset on __amiga__. Remove unused THREAD_SPECIFIC_SIGPIPE
code.
A future improvement would be to re-assess the use of sigaction() here
and convert its usage to use my_sigset().
vio/vio.c:
Always call fcntl() to initialize flags of socket in initialization to
avoid problems on systems that don't report the flags on a socket
correctly right after it has been returned from accept(), such as
FreeBSD, Mac OS X, and possibly other BSD-derived systems.
vio/viosocket.c:
If fcntl() fails in vio_blocking(), restore the flags stored in the
vio struct.
mysql-test/r/wait_timeout.result:
New BitKeeper file ``mysql-test/r/wait_timeout.result''
mysql-test/t/wait_timeout-master.opt:
New BitKeeper file ``mysql-test/t/wait_timeout-master.opt''
mysql-test/t/wait_timeout.test:
New BitKeeper file ``mysql-test/t/wait_timeout.test''
The fix is needed to perform locking on shared data structures
This is modification of patch proposed by Leandro Santi
(see http://webs.sinectis.com.ar/lesanti/misc/mysql-4.0.23a-openssl_locking.patch)
sql/mysqld.cc:
Fix for bug#9270 multiple SSL race conditions (for 5.0 tree)
The fix is needed to perform locking on shared data structures
mysql-test/r/variables.result:
Add new results
mysql-test/t/variables.test:
Add new regression test
sql/mysqld.cc:
Fix minimum value of query_prealloc_size to be the same as its default.
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
my_regex.h:
Rename: regex/regex.h -> regex/my_regex.h
client/mysqltest.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
os2/MySQL-Source.icc:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/Makefile.am:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/debug.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/debug.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/engine.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/engine.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/main.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/main.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regcomp.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regerror.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regerror.ih:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/my_regex.h:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regexec.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/regfree.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
regex/reginit.c:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
sql/item_cmpfunc.cc:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
sql/item_cmpfunc.h:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
sql/mysqld.cc:
Prefix regex functions/types with "my_" as our
library is not compatible with normal regex lib.
statistics (like 4.0 did) (patch #3, with review #1 & #2 feedback addressed)
include/myisam.h:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
myisam/mi_check.c:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
myisam/myisamchk.c:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
mysql-test/r/myisam.result:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
mysql-test/t/myisam.test:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/ha_myisam.cc:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/handler.h:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/mysqld.cc:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/set_var.cc:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/sql_class.h:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
that dump free list allocation per connection
sql/ha_ndbcluster.cc:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/ha_ndbcluster.h:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/mysqld.cc:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/sql_lex.h:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/sql_parse.cc:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/sql_yacc.yy:
imlp. show engine ndb status;
that dump free list allocation per connection
After merge fix.
include/keycache.h:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Status variables moved into KEY_CACHE in 4.1.
Enlarging them there.
include/my_sys.h:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Status variables moved into KEY_CACHE in 4.1.
Removed unused global variables.
myisam/mi_test2.c:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Status variables moved into KEY_CACHE in 4.1.
Changed to print default key cache status.
mysys/mf_keycache.c:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Status variables moved into KEY_CACHE in 4.1.
Changed their debug printout.
sql/mysqld.cc:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Changed to print full value.
sql/sql_show.cc:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Added a branch for long long values.
sql/sql_test.cc:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
changed to print full values.
sql/structs.h:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Added a branch for long long keycache values.
sql/mysql_priv.h:
initialisation moved to mysqld.cc
sql/mysqld.cc:
initialisation moved to mysqld.cc
sql/sql_cache.cc:
support of concurent query cache resizing:
- resizing made atomic
- check stack size after each quard mutex lock
sql/sql_cache.h:
initialisation moved to mysqld.cc
removed uneed parameter (now it is always under guard mutex protection or called from destruction)
bug#9948
changed client-charset behavior in 4.1.x libmysql, which issue BC prob
after review fixes
sql/mysql_priv.h:
bug#9948
changed client-charset behavior in 4.1.x libmysql, which issue BC prob
after review fixes
sql/mysqld.cc:
bug#9948
changed client-charset behavior in 4.1.x libmysql, which issue BC prob
after review fixes
into mysql.com:/home/dlenev/src/mysql-4.1-bg12423
sql/mysqld.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
mysql-test/r/grant2.result:
Manual merge.
mysql-test/t/grant2.test:
Manual merge.
multi-threaded environment".
To avoid deadlocks between several simultaneously run account management
commands (particularly between FLUSH PRIVILEGES/SET PASSWORD and GRANT
commands) we should always take table and internal locks during their
execution in the same order. In other words we should first open and lock
privilege tables and only then obtain acl_cache::lock/LOCK_grant locks.
mysql-test/r/grant2.result:
Added test for bug #12423 "Deadlock when doing FLUSH PRIVILEGES and GRANT in
multi-threaded environment".
mysql-test/t/grant2.test:
Added test for bug #12423 "Deadlock when doing FLUSH PRIVILEGES and GRANT in
multi-threaded environment".
sql/mysqld.cc:
acl_init/grant_init() are now used only at server start up so they always
allocate temporary THD object and don't need argument for passing pointer
to it.
sql/sql_acl.cc:
To avoid deadlocks between several simultaneously run account management
commands (particularly between FLUSH PRIVILEGES/SET PASSWORD and GRANT
commands) we should always take table and internal locks during their
execution in the same order. In other words we should first open and lock
privilege tables and only then obtain acl_cache::lock/LOCK_grant locks.
Changed acl_reload()/grant_reload() and change_password()/update_user_table()
in such way that they obey this principle. Now in acl_reload()/grant_reload()/
change_password() we open and lock privilege tables, then obtain internal
locks and then call acl_load()/grant_load()/update_user_table() functions to
do actual loading or updating.
sql/sql_acl.h:
acl_init/grant_init() are now used only at server start up so they always
allocate temporary THD object and don't need argument for passing pointer
to it. acl_reload()/grant_reload() now are able to report about their
success or failure through return value.
sql/sql_parse.cc:
If reload_acl_and_cache() is called from SIGHUP handler we have to
allocate temporary THD for execution of acl_reload()/grant_reload().
sql_parse.cc:
mysqld.cc:
Added --skip-client-character-set-handshake.
When this option is activated, client side character set
(which is sent in handshake) is ignored, and server side
default-character-set value is used for character_set_client
and character_set_results, thus reprodicing 4.0 behaviour.
sql/mysqld.cc:
bug#9948 changed client-charset behavior in 4.1.x libmysql, which issue BC prob
Added --skip-client-character-set-handshake,
to reproduce 4.0 behaviour.
sql/sql_parse.cc:
bug#9948 changed client-charset behavior in 4.1.x libmysql, which issue BC prob
Added --skip-client-character-set-handshake,
to reproduce 4.0 behaviour.
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
client/mysqlcheck.c:
Auto merged
client/mysqlimport.c:
Auto merged
client/mysqltest.c:
Auto merged
extra/my_print_defaults.c:
Auto merged
extra/perror.c:
Auto merged
extra/resolve_stack_dump.c:
Auto merged
include/help_end.h:
Auto merged
include/help_start.h:
Auto merged
isam/isamchk.c:
Auto merged
isam/pack_isam.c:
Auto merged
myisam/myisamlog.c:
Auto merged
netware/myisamchk.def:
Auto merged
netware/mysql.def:
Auto merged
netware/mysqladmin.def:
Auto merged
netware/mysqlbinlog.def:
Auto merged
netware/mysqlcheck.def:
Auto merged
netware/mysqldump.def:
Auto merged
netware/mysqlimport.def:
Auto merged
netware/mysqlshow.def:
Auto merged
client/client_priv.h:
Merged from 4.0.
client/mysql.cc:
Merged from 4.0.
client/mysqladmin.cc:
Merged from 4.0.
client/mysqlbinlog.cc:
Merged from 4.0.
client/mysqldump.c:
Merged from 4.0.
client/mysqlshow.c:
Merged from 4.0.
myisam/myisamchk.c:
Merged from 4.0.
myisam/myisampack.c:
Merged from 4.0.
netware/mysql_test_run.c:
Merged from 4.0.
netware/mysqld_safe.c:
Merged from 4.0.
sql/mysqld.cc:
Merged from 4.0.
client/client_priv.h:
Added option auto close for Netware.
client/mysql.cc:
Added option auto close for Netware.
client/mysqladmin.c:
Added option auto close for Netware.
client/mysqlbinlog.cc:
Added option auto close for Netware.
client/mysqlcheck.c:
Added option auto close for Netware.
client/mysqldump.c:
Added option auto close for Netware.
client/mysqlimport.c:
Added option auto close for Netware.
client/mysqlshow.c:
Added option auto close for Netware.
client/mysqltest.c:
Fixed help messages for Netware.
extra/my_print_defaults.c:
Fixed help messages for Netware.
extra/perror.c:
Fixed help messages for Netware.
extra/resolve_stack_dump.c:
Fixed help messages for Netware.
include/help_end.h:
Fixed help messages for Netware.
include/help_start.h:
Fixed help messages for Netware.
isam/isamchk.c:
Added auto close of window for Netware
isam/pack_isam.c:
Added auto close of window for Netware
myisam/myisamchk.c:
Added auto close of window for Netware
myisam/myisamlog.c:
Added help for Netware.
myisam/myisampack.c:
Added auto close for Netware.
netware/myisamchk.def:
Scrollable screen patch.
netware/mysql.def:
Scrollable screen patch.
netware/mysql_test_run.c:
Fixed strindex for Netware.
netware/mysqladmin.def:
Scrollable screen patch.
netware/mysqlbinlog.def:
Scrollable screen patch.
netware/mysqlcheck.def:
Scrollable screen patch.
netware/mysqld_safe.c:
Removed debug message for Netware.
netware/mysqldump.def:
Scrollable screen patch.
netware/mysqlimport.def:
Scrollable screen patch.
netware/mysqlshow.def:
Scrollable screen patch.
sql/mysqld.cc:
Abnormal end patch when shutting down and volume not ready.