1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-17 14:41:26 +03:00

14463 Commits

Author SHA1 Message Date
unknown
f668665955 Fix for bug #30666: Incorrect order when using range conditions on 2
tables or more

The problem was that the optimizer used the join buffer in cases when
the result set is ordered by filesort. This resulted in the ORDER BY
clause being ignored, and the records being returned in the order
determined by the order of matching records in the last table in join.

Fixed by relaxing the condition in make_join_readinfo() to take
filesort-ordered result sets into account, not only index-ordered ones.


mysql-test/r/select.result:
  Added a test case for bug #30666.
mysql-test/t/select.test:
  Added a test case for bug #30666.
sql/sql_select.cc:
  Relaxed the condition to determine when the join buffer usage must be
  disabled. The condition is now true for cases when the result set is
  ordered by filesort, that is when 'join->order &&
  !join->skip_sort_order' is true.
2007-11-07 14:00:45 +03:00
unknown
c5df4b3092 BUG#31277 - myisamchk --unpack corrupts a table
With certain data sets (when compressed record length gets bigger than
uncompressed) myisamchk --unpack may corrupt data file.

Fixed that record length was wrongly restored from compressed table.


myisam/mi_check.c:
  With compressed tables compressed record length may be bigger than
  pack_reclength, thus we may allocate insufficient memory for record
  buffer.
  
  Let single function allocate record buffer, performing needed record
  length calculations.
  
  Still, it is not doable with parallel repair, as it allocates needed
  record buffers at once. For parellel repair added better record length
  calculation.
myisam/mi_open.c:
  When calculating record buffer size, take into account that compressed
  record length may be bigger than uncompressed.
myisam/mi_packrec.c:
  With certain data set share->max_pack_length (compressed record length)
  may be bigger than share->base.pack_reclength (packed record length).
  
  set_if_bigger(pack_reclength, max_pack_length) in this case causes
  myisamchk --unpack to write extra garbage, whereas pack_reclength
  remains the same in new index file. As a result we get unreadable
  table.
myisam/myisamchk.c:
  With compressed tables compressed record length may be bigger than
  pack_reclength, thus we may allocate insufficient memory for record
  buffer.
  
  Let single function allocate record buffer, performing needed record
  length calculations.
mysql-test/mysql-test-run.pl:
  Environment variables to execute myisamchk and myisampack.
mysql-test/r/myisampack.result:
  New BitKeeper file ``mysql-test/r/myisampack.result''
mysql-test/t/myisampack.test:
  New BitKeeper file ``mysql-test/t/myisampack.test''
2007-11-07 12:55:28 +04:00
unknown
6957e84ec6 Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug27571_asyn_killed_flags
2007-11-06 20:32:52 +02:00
unknown
0c1a085cca bug#27571
refining non-deterministic tests.
The new Bug@32148 is in the way. Adjuting the tests to be somehow useful.
 


mysql-test/r/binlog_killed.result:
  results changed
mysql-test/t/binlog_killed.test:
  refining the tests as killing is inherently non-deterministic;
  leaving todos.
2007-11-06 20:31:40 +02:00
unknown
0216fb0def Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug28597-log_name_upgrade
2007-11-06 17:12:56 +02:00
unknown
d8c4501b28 bug#27571
fixing tests


mysql-test/r/binlog_killed_simulate.result:
  the new tests' result
2007-11-06 16:25:32 +02:00
unknown
ff4b438be0 BUG#32111 - Security Breach via DATA/INDEX DIRECORY and RENAME TABLE
RENAME TABLE against a table with DATA/INDEX DIRECTORY overwrites
the file to which the symlink points.

This is security issue, because it is possible to create a table with
some name in some non-system database and set DATA/INDEX DIRECTORY
to mysql system database. Renaming this table to one of mysql system
tables (e.g. user, host) would overwrite the system table.

Return an error when the file to which the symlink points exist.


mysql-test/r/symlink.result:
  A test case for BUG#32111.
mysql-test/t/symlink.test:
  A test case for BUG#32111.
mysys/my_symlink2.c:
  Return an error when the file to which the symlink points exist.
2007-11-06 18:09:33 +04:00
unknown
86e07400b7 bug#27571
removing extra tests (on 5.1 that's been already done)


BitKeeper/deleted/.del-binlog_killed_bug27571-master.opt:
  Delete: mysql-test/t/binlog_killed_bug27571-master.opt
BitKeeper/deleted/.del-binlog_killed_bug27571.test:
  Delete: mysql-test/t/binlog_killed_bug27571.test
2007-11-06 15:11:59 +02:00
unknown
85425773e8 Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-06 13:56:15 +01:00
unknown
42829c61b6 Bug#4692 - DISABLE/ENABLE KEYS waste a space
Disabling and enabling indexes on a non-empty table grows the
index file.

Disabling indexes just sets a flag per non-unique index and does not
free the index blocks of the affected indexes. Re-enabling indexes
creates new indexes with new blocks. The old blocks remain unused
in the index file.

Fixed by dropping and re-creating all indexes if non-empty disabled
indexes exist when enabling indexes. Dropping all indexes resets
the internal end-of-file marker to the end of the index file header.
It also clears the root block pointers of every index and clears the
deleted blocks chains. This way all blocks are declared as free.


myisam/mi_check.c:
  Bug#4692 - DISABLE/ENABLE KEYS waste a space
  Added function mi_drop_all_indexes() to support drop of all indexes
  in case we want to re-enable non-empty disabled indexes.
  Changed mi_repair(), mi_repair_by_sort(), and mi_repair_parallel()
  to use the new function instead of duplicate drop index code.
mysql-test/r/myisam.result:
  Bug#4692 - DISABLE/ENABLE KEYS waste a space
  Added test result.
mysql-test/t/myisam.test:
  Bug#4692 - DISABLE/ENABLE KEYS waste a space
  Added test.
2007-11-06 13:41:32 +01:00
unknown
3cc49bbe74 bug#27571
commit is specific for 5.0 to eliminated non-deterministic tests.
Those tests run only in 5.1 env where there is a necessary devices such
as processlist table of info_schema.


mysql-test/r/binlog_killed.result:
  results changed
mysql-test/t/binlog_killed.test:
  removing non-deterministic part of the test
mysql-test/t/binlog_killed_simulate.test:
  adding the guard same as for 5.1 version
2007-11-06 13:53:26 +02:00
unknown
b4db3f3f0a Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug27571_asyn_killed_flags


sql/sql_insert.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
2007-11-06 13:27:48 +02:00
unknown
f7ee88253a ha_ndbcluster.h:
Bug #31956       auto increment bugs in MySQL Cluster: Added utility method and constant for internal prefetch default
ndb_auto_increment.result:
  BitKeeper file /home/marty/MySQL/mysql-5.0-ndb/mysql-test/r/ndb_auto_increment.result
mysqld.cc:
  Bug #25176  	Trying to set ndb_autoincrement_prefetch_sz always fails: Changed pointer to max value
  Bug #31956  	auto increment bugs in MySQL Cluster: Changed meaning of ndb_autoincrement_prefetch_sz to specify prefetch between statements, changed default to 1 (with internal prefetch to at least 32 inside a statement)
ndb_insert.test, ndb_insert.result:
  Moved auto_increment tests to ndb_auto_increment.test
ndb_auto_increment.test:
  BitKeeper file /home/marty/MySQL/mysql-5.0-ndb/mysql-test/t/ndb_auto_increment.test
ha_ndbcluster.cc:
  Bug #31956       auto increment bugs in MySQL Cluster: Changed meaning of ndb_autoincrement_prefetch_sz to specify prefetch between statements, changed default to 1 (with internal prefetch to at least 32 inside a statement), added handling of updates of pk/unique key with auto_increment
  Bug #32055  	Cluster does not handle auto inc correctly with insert ignore statement


sql/mysqld.cc:
  Bug #25176  	Trying to set ndb_autoincrement_prefetch_sz always fails: Changed pointer to max value
  Bug #31956  	auto increment bugs in MySQL Cluster: Changed meaning of ndb_autoincrement_prefetch_sz to specify prefetch between statements, changed default to 1 (with internal prefetch to at least 32 inside a statement)
sql/ha_ndbcluster.h:
  Bug #31956       auto increment bugs in MySQL Cluster: Added utility method and constant for internal prefetch default
sql/ha_ndbcluster.cc:
  Bug #31956       auto increment bugs in MySQL Cluster: Changed meaning of ndb_autoincrement_prefetch_sz to specify prefetch between statements, changed default to 1 (with internal prefetch to at least 32 inside a statement), added handling of updates of pk/unique key with auto_increment
  Bug #32055  	Cluster does not handle auto inc correctly with insert ignore statement
mysql-test/r/ndb_auto_increment.result:
  BitKeeper file /home/marty/MySQL/mysql-5.0-ndb/mysql-test/r/ndb_auto_increment.result
mysql-test/t/ndb_auto_increment.test:
  BitKeeper file /home/marty/MySQL/mysql-5.0-ndb/mysql-test/t/ndb_auto_increment.test
mysql-test/t/ndb_insert.test:
  Moved auto_increment tests to ndb_auto_increment.test
mysql-test/r/ndb_insert.result:
  Moved auto_increment tests to ndb_auto_increment.test
2007-11-05 20:18:22 +01:00
unknown
441b86087a Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-base
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-rt-merge
2007-11-05 09:50:09 -07:00
unknown
c0be4995f9 Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug28597-log_name_upgrade
2007-11-05 18:13:31 +02:00
unknown
b7cdb978d9 Bug #28597 Replication doesn't start after upgrading to 5.1.18
Since bug@20166, which replaced the binlog file name generating to base
on pidfile_name instead of the previous glob_hostname, the binlog file
name suddenly started to be stored solely in the absolute path format,
including a case when --log-bin option meant a relative path.
What's more serious, the path for binlog file can lead unrequestedly 
to pid-file directory so that after any proper fix for this bug
there might be similar to the bug report consequences for one who
upgrades from post-fix-bug@20166-pre-fix-bug@28597 to post-fix-bug@28597.

Fixed with preserving`pidfile_name' (intr.by bug@20166) but stripping
off its directory part. This restores the original logics of storing
the names in compatible with --log-bin option format and with the
requirement for --log-bin ralative path to corresond to the data directory.
Side effects for this fix:

effective fixing bug@27070, refining its test;
ensuring no overrun for buff can happen anymore (Bug#31836 
insufficient space reserved for the suffix of relay log file name);
bug#31837  --remove_file $MYSQLTEST_VARDIR/tmp/bug14157.sql missed
in rpl_temporary.test;
fixes Bug@28603  Invalid log-bin default location;


mysql-test/t/rpl_dual_pos_advance.test:
  After correcting the logics of log file name composing workaround for
  
    Bug #27070 server logs are created unrequested and in wrong directory
  
  is removed.
mysql-test/t/rpl_temporary.test:
  remaining temp file of the test removed
sql/log.cc:
  stripping off the directory part of `pidfile_name' for binlog name
  generating (which fixes two more bugs on wrong binlog file location);
  ensuring no overrun for buff can happen anymore (Bug #31836 
  insufficient space reserved for the suffix of relay log file name);
2007-11-05 17:20:10 +02:00
unknown
2a0f4e4faf Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/31758/my50-31758
2007-11-05 19:07:03 +04:00
unknown
462a6f7d1a merging 2007-11-05 18:23:55 +04:00
unknown
62617b09c3 Merge mysql.com:/home/hf/work/31758/my41-31758
into  mysql.com:/home/hf/work/31758/my50-31758


mysql-test/t/func_str.test:
  Auto merged
mysql-test/r/func_str.result:
  merging
sql/item_strfunc.h:
  merging
2007-11-05 18:12:42 +04:00
unknown
6f12c92439 Bug#32108 - subselect.test produces warnings files
Comment sign of -- at line begin in test files lead to warnings
from mysqltest.
  
Changed -- to #.


mysql-test/t/subselect.test:
  Bug#32108 - subselect.test produces warnings files
  Changed -- to # at comment begin to avoid warnings files.
2007-11-05 14:44:38 +01:00
unknown
abd6ff8622 Bug#32107 - ctype_uca.test produces warnings files
Comment sign of -- at line begin in test files lead to warnings
from mysqltest.
  
Changed -- to #.


mysql-test/t/ctype_uca.test:
  Bug#32107 - ctype_uca.test produces warnings files
  Changed -- to # at comment begin to avoid warnings files.
2007-11-05 14:37:00 +01:00
unknown
082bdc7eb1 Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb-merge


ndb/include/ndbapi/Ndb.hpp:
  Auto merged
2007-11-02 23:33:25 +01:00
unknown
e308ad708c Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.0-ndb-merge


sql/ha_ndbcluster.cc:
  Auto merged
2007-11-02 23:31:23 +01:00
unknown
e397a7b019 Merge polly.(none):/home/kaa/src/opt/bug26215/my50-bug26215
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt


client/mysql.cc:
  Auto merged
2007-11-02 17:23:12 +03:00
unknown
ef8781542e Merge stella.local:/home2/mydev/mysql-5.0-ateam
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-02 15:10:13 +01:00
unknown
ac9fea61e8 Merge stella.local:/home2/mydev/mysql-4.1-ateam
into  stella.local:/home2/mydev/mysql-4.1-axmrg
2007-11-02 14:48:36 +01:00
unknown
1daa54d697 Fix for:
bug #26215: mysql command line client should not strip comments
              from SQL statements
and
  bug #11230: Keeping comments when storing stored procedures

With the introduction of multiline comments support in the command line
client (mysql) in MySQL 4.1, it became impossible to preserve
client-side comments within single SQL statements or stored routines.
This feature was useful for monitoring tools and maintenance.

The patch adds a new option to the command line client
('--enable-comments', '-c') which allows to preserve SQL comments and
send them to the server for single SQL statements, and to keep comments
in the code for stored procedures / functions / triggers.

The patch is a modification of the contributed patch from bug #11230
with the following changes:
- code style changes to conform to the coding guidelines
- changed is_prefix() to my_strnncoll() to detect the DELIMITER
command, since the first one is case-sensitive and not charset-aware
- renamed t/comments-51.* to t/mysql_comments.*
- removed tests for comments in triggers since 5.0 does not have SHOW
CREATE TRIGGER (those tests will be added back in 5.1).

The test cases are only for bug #11230. No automated test case for bug
#26215 is possible due to the test suite deficiencies (though the cases
from the bug report were tested manually).


client/mysql.cc:
  Applied the contributed patch from bug11230 with the following changes:
  - code style changes to conform to the coding guidelines
  - changed is_prefix() to my_strnncoll() to detect the DELIMITER
  command, since the first one is case-sensitive and not charset-aware
  
  The patch adds a new option to the command line client which allows to
  preserve SQL comments and send them to the server to ensure better
  error reporting and to, keep comments in the code for stored procedures
  / functions / triggers.
mysql-test/r/mysql_comments.result:
  Added test cases for bug11230.
mysql-test/t/mysql_comments.sql:
  Added test cases for bug11230.
mysql-test/t/mysql_comments.test:
  Added test cases for bug11230.
2007-11-02 13:40:34 +03:00
unknown
9a6877f23b Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg


sql/item_func.cc:
  Auto merged
2007-11-02 10:14:26 +01:00
unknown
6f97c22925 Bug#31030 - rpl000015.test fails if $MYSQL_TCP_PORT != 3306
Preliminarily disabled test case
2007-11-02 10:11:26 +01:00
unknown
5c41118645 Merge mysql.com:/home/svoj/devel/mysql/BUG11392/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG11392/mysql-5.0-engines


mysql-test/r/fulltext.result:
  Auto merged
mysql-test/t/fulltext.test:
  Auto merged
myisam/ft_boolean_search.c:
  Use local.
2007-11-02 12:58:20 +04:00
unknown
2ebf8386a3 Merge four.local.lan:/WORK2/merge/mysql-5.0-31408
into  four.local.lan:/WORK/mysql-5.0-build/src-clean


mysql-test/t/type_datetime.test:
  Auto merged
2007-11-01 21:00:31 +01:00
unknown
775f84186a Bug#30630 mysql-test-run all tests fail with MySQL 5.0.41 & 5.0.45 on Mac OS X Server 10.5
mysql-test/mysql-test-run.pl:
  Also check for euid == 0
2007-11-01 19:40:27 +01:00
unknown
660eb5bb40 Bug #31794: no syntax error on SELECT id FROM t HAVING count(*)>2
The HAVING clause is subject to the same rules as the SELECT list
about using aggregated and non-aggregated columns.
But this was not enforced when processing implicit grouping from
using aggregate functions.
Fixed by performing the same checks for HAVING as for SELECT.


mysql-test/r/func_group.result:
  Bug #31794: test case
mysql-test/t/func_group.test:
  Bug #31794: test case
sql/sql_select.cc:
  Bug #31794: Check HAVING in addition to SELECT list
2007-11-01 18:36:24 +02:00
unknown
0704e39fb3 Merge bk-internal:/home/bk/mysql-5.0-maint
into  pilot.mysql.com:/data/msvensson/mysql/mysql-5.0-maint
2007-11-01 16:55:16 +01:00
unknown
2a415a2f9d Bug#31004 mysqltest needs a --mkdir command
- Add new mysqltest command "mkdir" and "rmdir"


client/CMakeLists.txt:
  Build mysys/my_mkdir.c with mysqltest
client/Makefile.am:
  Build mysys/my_mkdir.c with mysqltest
client/mysqltest.c:
  Add new mysqltest commands "mkdir" and "rmdir"
mysql-test/t/mysqltest.test:
  Add tests for "mkdir" and ""rmdir"
2007-11-01 15:42:19 +01:00
unknown
baa757d3e3 Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-01 15:07:00 +01:00
unknown
7b6b909ac0 Post-merge fix 2007-11-01 15:04:23 +01:00
unknown
d787eb9541 Bug#31909 - New gis.test creates warnings files
Comment sign of -- at line begin in test files lead to warnings
from mysqltest.

Changed -- to #.


mysql-test/include/gis_keys.inc:
  Bug#31909 - New gis.test creates warnings files
  Changed -- to # at comment begin to avoid warnings files.
2007-11-01 15:03:09 +01:00
unknown
74394b27fe Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-base
into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-rt-merge
2007-11-01 06:35:22 -06:00
unknown
8eb11f8405 Bug#27753 enable mysql-test-run.pl to ignore tests based on wildcard
- Fix problem in first implementation


mysql-test/lib/mtr_cases.pl:
  Prepend a ^ to the regex only if _all_ charactersin the pattern are normal
2007-11-01 11:02:28 +01:00
unknown
2cad3bb8da Backport mysqltests "change_user" command 2007-10-31 18:44:31 +01:00
unknown
6224001c4f Fix for
Bug#29290 type_datetime.test failure in 5.1


mysql-test/t/type_datetime.test:
  - If we are too close to midnight sleep till we reach 
    at least midnight + 1 second.
  - Replace error numbers with error names.
2007-10-31 17:40:29 +01:00
unknown
c4f35d7c23 Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg


mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
sql/item_func.cc:
  Auto merged
2007-10-31 12:31:36 +01:00
unknown
71f9931d60 Merge mysql.com:/home/ram/work/mysql-5.0-maint
into  mysql.com:/home/ram/work/b30654/b30654.5.0
2007-10-31 11:01:06 +04:00
unknown
967c06df13 Merge stella.local:/home2/mydev/mysql-4.1-amain
into  stella.local:/home2/mydev/mysql-4.1-axmrg
2007-10-31 00:50:03 +01:00
unknown
e3b246d6e8 Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-5.0-build
into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
2007-10-30 15:37:48 +01:00
unknown
b0bc908cbf bug#30630 2007-10-30 15:22:52 +01:00
unknown
95acd426eb Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B31884-5.0-opt
2007-10-30 16:18:56 +02:00
unknown
6bbdacae20 Bug #31884: Assertion + crash in subquery in the SELECT clause.
Item_in_subselect's only externally callable method is val_bool().
However the nullability in the wrapper class (Item_in_optimizer) is 
established by calling the "forbidden" method val_int().

Fixed to use the correct method (val_bool() ) to establish nullability 
of Item_in_subselect in Item_in_optimizer.


mysql-test/r/subselect.result:
  Bug #31884: test case
mysql-test/t/subselect.test:
  Bug #31884: test case
sql/item_subselect.h:
  Bug #31884: Use the correct method to establish nullability
2007-10-30 14:27:21 +02:00
unknown
b698b6fd94 BUG#11392 - fulltext search bug
Fulltext boolean mode phrase search may crash server on platforms
where size of pointer is not equal to size of unsigned integer
(in other words some 64-bit platforms).

The problem was integer overflow.

Affects 4.1 only.


myisam/ft_boolean_search.c:
  my_match_t::beg is unsigned int, that means type of expression
  (m[0].beg - 1) has unsigned type too. It may happen that instr()
  finds substring in the beggining of passed string, returning
  m[0].beg equal to 0. In this case value of expression (m[0].beg - 1)
  is equal to MAX_UINT.
  
  This is not a problem on platforms where sizeof(pointer) equals to
  sizeof(uint). That means ptr[(uint)-1] = ptr[(uint)MAX_UINT] = ptr - 1.
  
  On some 64-bit platforms where sizeof(pointer) is 8 and sizeof(uint)
  is 4, wrong address gets accessed. In other words ptr[(uint)-1] is
  equal to ptr + MAX_UINT.
mysql-test/r/fulltext.result:
  A test case for BUG#11392.
mysql-test/t/fulltext.test:
  A test case for BUG#11392.
2007-10-30 14:46:43 +04:00