1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-07 17:42:39 +03:00
Commit Graph

20732 Commits

Author SHA1 Message Date
Tor Didriksen
6dbd633bd3 local merge 2011-09-26 14:29:27 +02:00
Tor Didriksen
a151d14453 Bug#12985030 SIMPLE QUERY WITH DECIMAL NUMBERS LEAKS MEMORY
Re-write the test, to make pushbuild green.
Workaraound for broken pow() function on:
SunOS tyr40 5.10 Generic_127112-05 i86pc i386 i86pc

(dbx) where
current thread: t@1
=>[1] Item_func_pow::val_real(this = 0x238af20) (optimized), at 0xaa8d13 (line ~1980) in "item_func.cc"

(dbx) print pow(1.01, 1.0)
pow(1.01, 1) = 1.01
(dbx) print pow(1.01, 10.0)
pow(1.01, 10) = 1.1046221254112
(dbx) print pow(1.01, 100.0)
pow(1.01, 100) = 2.7048138294215
(dbx) print pow(1.01, 1000.0)
pow(1.01, 1000) = 20959.155637814
(dbx) print pow(1.01, 10000.0)
pow(1.01, 10000) = 1.635828711189e+43
(dbx) print pow(1.01, 100000.0)
pow(1.01, 100000) = Infinity
(dbx) print pow(1.01, 1000000.0)
pow(1.01, 1000000) = Infinity
(dbx) print pow(1.01, 10000000.0)
pow(1.01, 10000000) = Infinity
(dbx) print pow(1.01, 100000000.0)
pow(1.01, 100000000) = Infinity
(dbx) print pow(1.01, 1000000000.0)
pow(1.01, 1000000000) = 0.0
(dbx) print pow(1.01, 10000000000.0)
pow(1.01, 10000000000) = 0.0

(dbx) print value
value = 1.0111111111111
(dbx) print val2
val2 = 8796093022207.0

(dbx) print pow(value, val2)
pow(value, val2) = 0.0

so it seems pow(1.01, y)
returns Infinity for large y, but then starts to return 0.0 for even larger values of y.
2011-09-26 14:21:28 +02:00
Bjorn Munch
d1eb81f6ab merge from 5.5 main 2011-09-26 10:27:54 +02:00
Bjorn Munch
1a937b184d merge from 5.1 main 2011-09-26 10:06:25 +02:00
Daniel Fischer
fe1b205d02 merge from 5.5.16 2011-09-21 12:40:41 +02:00
Bjorn Munch
8589a3e251 merge from 5.5 main 2011-09-20 12:14:35 +02:00
Tor Didriksen
929c97db61 Bug#12985030 SIMPLE QUERY WITH DECIMAL NUMBERS LEAKS MEMORY 2011-09-20 10:59:48 +02:00
Rafal Somla
76f3c250d4 Update of auth_rpl test.
For some reason the test authentication plugin accepted connection with arbitrary password. But the intention of the plugin is that password should equal to the authentication string and in the later versions of the server connection fails if password is wrong. So I have updated auth_rpl test to specify the correct password.
2011-09-16 14:35:25 +02:00
Sergey Vojtovich
d495f58024 Merge. 2011-09-16 16:21:05 +04:00
Sergey Vojtovich
9c454fa5cd Merge. 2011-09-16 16:03:08 +04:00
Sergey Vojtovich
1ebc1e0703 BUG#11761180 - 53646: MYISAMPACK CORRUPTS TABLES WITH
FULLTEXT INDEXES

myisamchk may create incorrect fulltext index for compressed
tables. Incorrect data pointer size was used while creating
fulltext index.
2011-09-16 15:30:31 +04:00
Mattias Jonsson
7d1cccae44 Bug#12696518: MEMORY LEAKS IN HA_PARTITION (VALGRIND TESTS ON TRUNK)
(also 5.5+ solution for bug#11766879/bug#60106)

The valgrind warning was due to an unused 'new handler_add_index(...)'
which was never freed.

The error handling did not work (fails as in bug#11766879) and
the implementation was not as transparant as it could, therefore I
made it a bit simpler and more transparant to the underlying handlers.

This way it follows the api better and the error handling works and
is also now tested.

Also added a debug test to verify the error handling.

Improved according to Jon Olavs review:
Added class ha_partition_add_index.
Also added base class Sql_alloc to handler_add_index.
Update 3.
2011-09-15 20:49:39 +02:00
Mattias Jonsson
a2cd617a4b merge into 5.1-sec of bug#11766879. 2011-09-15 19:26:38 +02:00
karen.langford@oracle.com
571a2eaf43 Merge from mysql-5.1.59-release 2011-09-15 18:48:54 +02:00
Bjorn Munch
a969632903 Some tests simplified after 12912120 2011-09-15 13:18:12 +02:00
Bjorn Munch
e08fa4affc upmerge 12793118,12912120 2011-09-15 13:09:24 +02:00
Rafal Somla
3b17a24eff Bug#12897501 REPLICATION DOES NOT SUPPORT WINDOWS AUTH PLUG-IN
Connection of slave to master using a replication account which authenticates
with an external plugin was not possible.

Fixed by making sure that the CLIENT_PLUGIN_AUTH capability is set when client connects using mysql_real_connect(). Also, a plugin-dir path used by client library to locate authentication plugins is set based on the analogous server setting. This is done in connect_to_master() function before a call to mysql_real_connect().
2011-09-14 16:10:18 +02:00
Bjorn Munch
d75f2a4a6b Bug #12793118 MYSQLTEST: --ERROR AND --DISABLE_ABORT_ON_ERROR DO NOT WORK FOR SQL IN COMMANDS
Call handle_error() instead of die() when evaluating these
  Must remember "current command" with link to errors to ignore
  Added test cases to mysqltest.test
2011-09-14 15:19:24 +02:00
Bjorn Munch
79b7d05c4c Bug #12956584 MYSQLTEST: --ENABLE_X OR --DISABLE_X APPLYING ONLY TO NEXT COMMAND/STMT
Added a keyword ONCE to add to those commands
  Some internal tables to keep track of which properties are
    temporarily overriden
  Added tests in mysqltest.test
  Updates to other tests will be done later
2011-09-14 15:15:36 +02:00
Chuck Bell
d10bddf0ed BUG#12929631 : Execute crashes with --verbose output (Windows)
This patch corrects an error encountered in PB where Windows machines
are built in release mode have an extraneous parameter added in place
of the --console option. This is caused by the insert of '(null' 
instead of an empty string. In non-debug mode, the string is explicitly
set to an empty string.

Patch also fixes a result mismatch on Windows machines.
2011-09-09 10:39:44 -04:00
Kristofer Pettersson
1a2b1ba6aa Bug11764310 - 57132: CONV FUNCTION CRASHES, NEGATIVE ARGUMENT TO MEMCPY
Failure to check the return state of a longlong2str() call
caused a crash. This could happen if a user executed the sql
function CONV() with certain parameters.

The patch fixes the issue by checking that the returned pointer
isn't NULL.
2011-09-06 09:42:14 +02:00
Bjorn Munch
5c1eb50244 new merge from 5.5 2011-08-30 11:34:12 +02:00
Norvald H. Ryeng
dd1f7eb13f Merge 5.1 => 5.5 2011-08-30 10:16:23 +02:00
Norvald H. Ryeng
d6f4a80e57 Bug#11765254 - 58200: ASSERTION FAILED: PARAM.SORT_LENGTH WHEN
GROUPING BY FUNCTIONS.... (PART

The bug was introduced in a patch for bug 49897.

Problem: The assertion inserted by the original patch to guard against
zero-lenght sort keys during merge phase triggers also when the whole
set fits in memory.

Fix: Move assert so that it does not trigger if the whole set is in
memory.
2011-08-30 09:56:07 +02:00
Bjorn Munch
d95e7b2ff3 merge from 5.5 main 2011-08-29 22:48:47 +02:00
Tor Didriksen
afba17f1db merge 5.1 => 5.5 2011-08-29 11:34:48 +02:00
Tor Didriksen
4bcf506530 BUG#12911710 - VALGRIND FAILURE IN ROW-DEBUG:PERFSCHEMA.SOCKET_SUMMARY_BY_INSTANCE_FUNC
Converting the number zero to binary and back yielded the number zero,
but with no digits, i.e. zero precision.
This made the multiply algorithm go haywire in various ways.
2011-08-29 11:24:36 +02:00
Sergey Vojtovich
4a0238b36a Merge. 2011-08-24 11:18:00 +04:00
Mattias Jonsson
e4fc9f6aa0 Bug#11766879/Bug#60106: DIFF BETWEEN # OF INDEXES IN MYSQL VS INNODB,
PARTITONING, ON INDEX CREATE

If the first partition succeeded in adding a index, but a successive partition failed,
then the first partition had still the new index.

The fix reverts the added indexes from previous partitions on failure.
2011-08-23 15:13:17 +02:00
Bjorn Munch
4ad7b28cd7 Bug #12793170 MYSQLTEST: PROVIDE ACCESS TO ERROR NAMES THROUGH NUMERIC CODES AND VICE VERSA
Added a second internal variable $mysql_errname
  This is set the same way as $mysql_errno
  Can be used like "if ($mysql_errname == ER_NO_SUCH_TABLE)...."
2011-08-22 13:58:49 +02:00
Tor Didriksen
af6f0876ad Backport from trunk of:
Bug#12532830 - SIGFPE OR ASSERTION (PRECISION <= ((9 * 9) - 8*2)) && (DEC <= 30)
2011-08-19 09:06:50 +02:00
Sergey Vojtovich
06fa1ef4f4 BUG#11763712 - 56458: KILLING A FLUSH TABLE FOR A MERGE/CHILD
CRASHES SERVER

Flushing of MERGE table or one of its child tables, which was
locked by flushing thread using LOCK TABLES, might have caused
crashes or assertion failures if the thread failed to reopen
child or parent table.
Particularly, this might have happened when another connection
killed this FLUSH TABLE statement/connection.
Also this problem might have occurred when we failed to reopen
MERGE table or one of its children when executing DDL statement
under LOCK TABLES.

The problem was caused by the fact that reopen_tables() might
have failed to reopen child table but still tried to reopen,
reattach children for and re-lock its parent. Vice versa it
might have failed to reopen parent but kept references from
children to parent around. Since reopen_tables() closes table
it has failed to reopen and therefore frees all associated
memory such dangling references led to crashes when followed.

This patch solves this problem by ensuring that we always close
parent table and all its children if we fail to reopen this
table or one of its children. Same happens if we fail to reattach
children to parent.

Affects 5.1 only.
2011-08-18 10:38:51 +04:00
Alexander Nozdrin
4af1e1545f Cherry-picking follow-up patch for WL 5710
from mysql-5.5 to mysql-5.5.16-release.

Original revision:
# revision-id: bjorn.munch@oracle.com-20110812104938-peswzao46f4lvm9p
# parent: dmitry.lenev@oracle.com-20110811155849-feyt3h7tj48padiu
# committer: Bjorn Munch <bjorn.munch@oracle.com>
# branch nick: main-55
# timestamp: Fri 2011-08-12 12:49:38 +0200
# message:
#   Small followup fix to WL 5710:
#     Test mysql_plugin failed if version string ended in -mN
2011-08-15 18:33:03 +04:00
Alexander Nozdrin
762dbbbad7 Cherry-picking a patch from Bug 12828477 from mysql-5.5
to mysql-5.5.16-release.

Original revision:
# revision-id: dmitry.lenev@oracle.com-20110811155849-feyt3h7tj48padiu
# parent: tatjana.nuernberg@oracle.com-20110811120945-c6x9a5d2du8s9oj2
# committer: Dmitry Lenev <Dmitry.Lenev@oracle.com>
# branch nick: mysql-5.5-12828477
# timestamp: Thu 2011-08-11 19:58:49 +0400
# message:
#   Fix for bug #12828477 - "MDL SUBSYSTEM CREATES BIG OVERHEAD 
#   FOR CERTAIN QUERIES TO INFORMATION_SCHEMA".
#   
#   The problem was that metadata locking subsystem introduced
#   too much overhead for queries to I_S which were processed by
#   opening only .FRM or .TRG files and had to scanned a lot of
#   tables (e.g. SELECT COUNT(*) FROM I_S.TRIGGERS was affected). 
#   The same effect was not observed for similar queries which 
#   performed full-blown table open in order to fill I_S table.
#   
#   The problem stemmed from the fact that in case when I_S 
#   implementation opened only .FRM or .TRG file for each table 
#   processed it didn't release metadata lock it has acquired on 
#   the table after finishing its processing. As result, list
#   of acquired metadata locks were growing until the end of 
#   statement. Since acquisition of each new lock required 
#   search in the list of already acquired locks performance
#   degraded.
#   
#   The same effect is not observed when I_S implementation
#   performs full-blown table open for each table being
#   processed, as in the latter cases metadata lock on the
#   table is released right after table processing.
#   
#   This fix addressed the problem by ensuring that I_S 
#   implementation releases metadata lock after processing
#   the table in both cases of full-blown table open and in 
#   case when only .FRM or .TRG file is read.
2011-08-15 18:31:45 +04:00
Alexander Nozdrin
11c20be47e Cherry-picking WL#5710 from mysql-5.5 to mysql-5.5.16-release.
Original revision id:
# revno: 3489 [merge]
# revision-id: tatjana.nuernberg@oracle.com-20110811120945-c6x9a5d2du8s9oj2
# parent: tatjana.nuernberg@oracle.com-20110811112736-so8r813hs8dmf7nr
# parent: chuck.bell@oracle.com-20110810183949-2s9uxcuoux2p668e
# committer: Tatjana Azundris Nuernberg <tatjana.nuernberg@oracle.com>
# branch nick: 55-9
# timestamp: Thu 2011-08-11 13:09:45 +0100
# message:
#   auto-merge

This merge revision also has a patch for Bug 12664445, which has been also
taken to 5.5.16.
2011-08-15 18:29:38 +04:00
Dmitry Shulga
28bed7d92b Fixed Bug#12621017 - CRASH IF A SP VARIABLE IS USED IN THE LIMIT CLAUSE OF A
SET STATEMENT.

Server built with debug asserts, without debug crashes if a user tries
to run a stored procedure that constains query with subquery that include
either LIMIT or LIMIT OFFSET clauses.

The problem was that Item::fix_fields() was not called for the items
representing LIMIT or OFFSET clauses.

The solution is to call Item::fix_fields() right before evaluation in
st_select_lex_unit::set_limit().
2011-08-13 13:34:00 +07:00
Georgi Kodinov
e60bbfff60 re-commit of bug #12818542: PAM: ADDING PASSWORD FOR AN ACCOUNT DISABLES
PAM AUTHENTICATION SETTINGS
to the release clone.
2011-08-12 15:55:04 +03:00
Georgi Kodinov
9226cfe453 Bug #12818542: PAM: ADDING PASSWORD FOR AN ACCOUNT DISABLES
PAM AUTHENTICATION SETTINGS

SET PASSWORD code on a account with plugin authentication was errorneously
resetting the in-memory plugin pointer for the user back to native password 
plugin despite the fact that it was sending a warning that the command has 
no immediate effect.
Fixed by not updating the user's plugin if it's already set to a non default value.
Note that the bug affected only the in-memory cache of the user definitions.
Any restart of the server will fix the problem.
Also the salt and the password has are still stored into the user tables (just as 
it's documented now).
Test case added.
One old test case result updated  to have the correct value.
2011-08-12 15:04:05 +03:00
Bjorn Munch
6099fc0e89 Small followup fix to WL 5710:
Test mysql_plugin failed if version string ended in -mN
2011-08-12 12:49:38 +02:00
Dmitry Lenev
5a57986384 Fix for bug #12828477 - "MDL SUBSYSTEM CREATES BIG OVERHEAD
FOR CERTAIN QUERIES TO INFORMATION_SCHEMA".

The problem was that metadata locking subsystem introduced
too much overhead for queries to I_S which were processed by
opening only .FRM or .TRG files and had to scanned a lot of
tables (e.g. SELECT COUNT(*) FROM I_S.TRIGGERS was affected). 
The same effect was not observed for similar queries which 
performed full-blown table open in order to fill I_S table.

The problem stemmed from the fact that in case when I_S 
implementation opened only .FRM or .TRG file for each table 
processed it didn't release metadata lock it has acquired on 
the table after finishing its processing. As result, list
of acquired metadata locks were growing until the end of 
statement. Since acquisition of each new lock required 
search in the list of already acquired locks performance
degraded.

The same effect is not observed when I_S implementation
performs full-blown table open for each table being
processed, as in the latter cases metadata lock on the
table is released right after table processing.

This fix addressed the problem by ensuring that I_S 
implementation releases metadata lock after processing
the table in both cases of full-blown table open and in 
case when only .FRM or .TRG file is read.
2011-08-11 19:58:49 +04:00
Tatjana Azundris Nuernberg
df14229c99 auto-merge 2011-08-11 13:09:45 +01:00
Chuck Bell
4869635b88 WL#5710 : enable and disable plugins
Merge with main prior to pushing to mysql-5.5.
2011-08-10 14:39:49 -04:00
Chuck Bell
916d7c9c51 WL#5710 : enable and disable plugins
This patch corrects an error in the test to ensure the proper path
is used for the --mysqld option.
2011-08-09 15:09:28 -04:00
Chuck Bell
bfefb55272 WL#5710 : enable and disable plugins
This patch corrects a problem found in PB. Some platforms have very
different locations for the mysql installation. The client was not
able to find either my_print_defaults or mysqld predictably.

The patch adds two new command options --mysqld and --my-print-defaults
which can be used to provide the location of mysqld and
my_print_defaults by providing the paths.

The patch also changes the concatenation of the soname extension to
fix a problem found on some Ubuntu systems.

The patch contains changes to the test to ensure it will run on all
platforms. A trap is set in the test to skip testing if the location
of mysqld, my_print_defaults, or the daemon_example.ini files cannot
be determined.
2011-08-09 08:58:18 -04:00
Ramil Kalimullin
dab1c8c4d0 Manual merge from mysql-5.5. 2011-08-09 12:03:29 +04:00
Ramil Kalimullin
c8c2daf15b Manual merge from mysql-5.1. 2011-08-09 11:42:07 +04:00
Tatjana Azundris Nuernberg
be6f501f47 manual merge 2011-08-08 17:45:43 +01:00
Tatjana Azundris Nuernberg
9f9dfff963 merge 2011-08-08 13:17:01 +01:00
Sergey Glukhov
6ac689fb4a 5.1 -> 5.5 merge 2011-08-02 11:54:35 +04:00
Sergey Glukhov
de3693a1cd Bug#11766594 59736: SELECT DISTINCT.. INCORRECT RESULT WITH DETERMINISTIC FUNCTION IN WHERE C
There is an optimization of DISTINCT in JOIN::optimize()
which depends on THD::used_tables value. Each SELECT statement
inside SP resets used_tables value(see mysql_select()) and it
leads to wrong result. The fix is to replace THD::used_tables
with LEX::used_tables.
2011-08-02 11:33:45 +04:00