Commit graph

8815 commits

Author SHA1 Message Date
unknown
7aa26e2645 Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
It was possible that fetching a record by an exact key value 
(including the record pointer) could return a record with a 
different key value. This happened only if a concurrent insert 
added a record with the searched key value after the fetching 
statement locked the table for read.

The search succeded on the key value, but the record was
rejected as it was past the file length that was remembered
at start of the fetching statement. With other words it was 
rejected as being a concurrently inserted record.

The action to recover from this problem was to fetch the 
record that is pointed at by the next key of the index. 
This was repeated until a record below the file length was 
found.

I do now avoid this loop if an exact match was searched. 
If this match is beyond the file length, it is now treated 
as "key not found". There cannot be another key with the 
same record pointer.


myisam/mi_rkey.c:
  Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
  Added a check for exact key match before searching for
  the next key that was not concurrently inserted. If an
  exact key match finds a concurrently inserted row, this
  must be treated as "key not found".
sql/sql_class.cc:
  Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
  Fixed some DBUG_ENTER strings.
2006-06-28 18:55:30 +02:00
unknown
65fcdee56e mysql.spec.sh:
Always compile position independent


support-files/mysql.spec.sh:
  Always compile position independent
2006-05-20 22:47:20 +02:00
unknown
fa9b0268ab Many files:
Change mode to -rw-rw-r--
dbug_add_tags.pl:
  Change mode to -rwxrwxr--


dbug/dbug_add_tags.pl:
  Change mode to -rwxrwxr--
myisammrg/myrg_range.c:
  Change mode to -rw-rw-r--
mysql-test/r/innodb_handler.result:
  Change mode to -rw-rw-r--
mysql-test/r/repair.result:
  Change mode to -rw-rw-r--
mysql-test/std_data/master-bin.001:
  Change mode to -rw-rw-r--
mysql-test/std_data/trunc_binlog.001:
  Change mode to -rw-rw-r--
mysql-test/t/bulk_replace.test:
  Change mode to -rw-rw-r--
mysql-test/t/create_select_tmp.test:
  Change mode to -rw-rw-r--
mysql-test/t/ctype_tis620.test:
  Change mode to -rw-rw-r--
mysql-test/t/handler.test:
  Change mode to -rw-rw-r--
mysql-test/t/innodb_handler.test:
  Change mode to -rw-rw-r--
mysql-test/t/mix_innodb_myisam_binlog-master.opt:
  Change mode to -rw-rw-r--
mysql-test/t/repair.test:
  Change mode to -rw-rw-r--
mysql-test/t/rpl_commit_after_flush.test:
  Change mode to -rw-rw-r--
mysql-test/t/rpl_free_items-slave.opt:
  Change mode to -rw-rw-r--
mysql-test/t/rpl_free_items.test:
  Change mode to -rw-rw-r--
scripts/mysql_secure_installation.sh:
  Change mode to -rw-rw-r--
sql/sql_handler.cc:
  Change mode to -rw-rw-r--
support-files/mysql-multi.server.sh:
  Change mode to -rw-rw-r--
2006-05-12 17:51:37 +02:00
unknown
c982af51da configure.in:
Stepped up to 4.0.28


configure.in:
  Stepped up to 4.0.28
2006-05-11 19:48:57 +02:00
unknown
322ed9ccf4 Merge mysql.com:/home/mydev/mysql-4.0
into  mysql.com:/home/mydev/mysql-4.0-bug10405
2006-05-06 16:42:59 +02:00
unknown
b8984be3b6 .del-changelog-4.0.xml~8f56ee8a913e848b:
Delete: Docs/changelog-4.0.xml


BitKeeper/deleted/.del-changelog-4.0.xml~8f56ee8a913e848b:
  Delete: Docs/changelog-4.0.xml
2006-05-04 16:14:19 -05:00
unknown
9dd61750f4 small optimization of the previous bugfix
(based on the fact that packet is ALWAYS \0 terminated, see my_net_read)
2006-04-25 16:41:12 -07:00
unknown
b3a7131896 buffer overflow and information exposure bugs fixed
(reported by Stefano Di Paola)
2006-04-25 13:37:33 -07:00
unknown
259f8c7953 Merge mysql.com:/home/mydev/mysql-4.0
into  mysql.com:/home/mydev/mysql-4.0-bug5390
2006-04-11 18:55:24 +02:00
unknown
e0e74450d6 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-4.0
2006-04-11 10:03:53 +03:00
unknown
d943c58761 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into  mysql.com:/usr/home/ram/work/mysql-4.0
2006-04-11 10:46:21 +05:00
unknown
3d3595d66d Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0
into  sanja.is.com.ua:/home/bell/mysql/bk/work-4.0
2006-04-10 22:00:03 +03:00
unknown
4a2eef5c74 Avoid trying to include <asm/atomic.h> when it doesn't work in C++
code. (Bug )


configure.in:
  Test whether atomic_add() and atomic_sub() are available in C++
  code, since that is primarily where we will be using them.
2006-04-10 21:57:29 +03:00
unknown
d2f8564057 Bug#10405 - myisamchk damages auto_increment columns when changing character set
Whenever 'myisamchk' needed to recreate a table,
the auto increment information was lost.

Now the forgotten element of the table creation
information is set correctly.


myisam/mi_check.c:
  Bug#10405 - myisamchk damages auto_increment columns when changing character set
  Added some DBUG statements.
  Enabled 'with_auto_increment' in 'create_info'
  when recreating a table.
2006-04-10 13:38:56 +02:00
unknown
89af53f8c5 Check tinfo library presence and use it. (BUG#18912)
acinclude.m4:
  Check tinfo library presence and use it.
2006-04-08 23:19:52 +03:00
unknown
747f81c22c mysql-test/mysql-test-run.sh : Provide info about the options used.
mysql-test/mysql-test-run.sh:
  Provide info about the options used for this run to any evaluation tool.
2006-04-07 19:27:19 +02:00
unknown
ff85ba77be Backport of 5.1 test options "--with-ndbcluster" and "--with-ndbcluster-only" as dummies (ignored).
mysql-test/mysql-test-run.sh:
  Make "mysql-test-run.sh" accept (and ignore) the options "--with-ndbcluster" 
  and "--with-ndbcluster-only".
  This is necessary because newer build tools will issue them, and the test 
  script should tolerate that.
  Backport from 5.1 (Tomas Ulin, 2006-01-17)
2006-04-06 18:42:07 +02:00
unknown
e2b19a59d2 mysql_install_db.sh, MySQLEULA.txt, mysql_install_db.c:
Changed web address order.mysql.com to shop.mysql.com


netware/mysql_install_db.c:
  Changed web address order.mysql.com to shop.mysql.com
Docs/MySQLEULA.txt:
  Changed web address order.mysql.com to shop.mysql.com
scripts/mysql_install_db.sh:
  Changed web address order.mysql.com to shop.mysql.com
2006-04-03 03:37:43 +02:00
unknown
c19a6fc5c3 README:
Typo (bug#17167)


README:
  Typo (bug#17167)
2006-04-01 04:13:33 +02:00
unknown
35bb42d315 Merge snake-hub.snake.net:/src/extern/MySQL/bk/mysql-4.0
into  snake-hub.snake.net:/src/extern/MySQL/bk/mysql-4.0-r1.2173
2006-03-01 18:44:44 -06:00
unknown
aa9a497d7a README:
revise README.


mysql-test/README:
  revise README.
2006-03-01 18:37:41 -06:00
unknown
79faaddce7 README.gcov:
Revise README.gcov.


mysql-test/README.gcov:
  Revise README.gcov.
2006-03-01 17:55:10 -06:00
unknown
7526342706 README:
Revise mysql-test README.


mysql-test/README:
  Revise mysql-test README.
2006-03-01 17:37:07 -06:00
unknown
720e13d665 Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/M40/comment-4.0
2006-03-01 20:13:23 +01:00
unknown
6e0d2e41cc mysql-test/mysql-test-run.sh : Add a "--comment=<string>" option, to get it logged when the test is run.
mysql-test/mysql-test-run.sh:
  Add a "--comment=<string>" option, to get it logged when the test is run.
  The purpose is to allow a better analysis when generating the status page 
  ("gen-build-status-page").
  See "Do-compile" for how it is used.
2006-03-01 12:21:44 +01:00
unknown
4646cc587f BUG#5390 - problems with merge tables
This fix is necessary because thr_multi_lock()
reorderes the lock data references array.
2006-02-20 12:28:07 +01:00
unknown
cd93a5aafa make_binary_distribution.sh:
print => echo in shell script


scripts/make_binary_distribution.sh:
  print => echo in shell script
2006-02-12 01:33:43 +01:00
unknown
a73b7dc243 mysql-test-run.sh:
Bug#16780: Extend port range to make space for 5.1 NDBCLUSTER_PORT_SLAVE


mysql-test/mysql-test-run.sh:
  Bug#16780: Extend port range to make space for 5.1 NDBCLUSTER_PORT_SLAVE
2006-01-28 12:35:46 +01:00
unknown
e14c9c5d9c Fixed bug : Updating field named like '*name' caused server crash.
When setup_fields() function finds field named '*' it expands it to the list
of all table fields. It does so by checking that the first char of
field_name is '*', but it doesn't checks that the '* is the only char.
Due to this, when updating table with a field named like '*name', such field
is wrongly treated as '*' and expanded. This leads to making list of fields
to update being longer than list of the new values. Later, the fill_record() 
function crashes by dereferencing null when there is left fields to update,
but no more values.

Added check in the setup_fields() function which ensures that the field
expanding will be done only when '*' is the only char in the field name.


mysql-test/t/update.test:
  Added test case for bug#16510: Updating field named like '*name' caused server crash
mysql-test/r/update.result:
  Added test case for bug#16510: Updating field named like '*name' caused server crash
sql/sql_base.cc:
  Fixed bug : Updating field named like '*name' caused server crash.
  Added check in the setup_fields() function which ensures that the field
  expanding will be done only when '*' is the only char in the field name.
2006-01-23 21:51:32 +03:00
unknown
15ecf9228a BUG#5390 - problems with merge tables
After-fix optimizations proposed and finally
implemented by Monty.


mysql-test/r/lock.result:
  BUG#5390 - problems with merge tables
  After-fix optimizations proposed and finally
  implemented by Monty.
  Additional test results.
mysql-test/t/lock.test:
  BUG#5390 - problems with merge tables
  After-fix optimizations proposed and finally
  implemented by Monty.
  Additional tests.
sql/lock.cc:
  BUG#5390 - problems with merge tables
  After-fix optimizations proposed and finally
  implemented by Monty.
  get_lock_data() gets a flag for storing the lock
  positions in the new TABLE elements.
  mysql_lock_remove() can now remove a lock faster
  and more precisely as it has needed info in TABLE now.
  mysql_unlock_read_tables() and mysql_lock_merge() must 
  now adjust the new elements of TABLE when modifying locks.
  mysql_lock_have_duplicate() can now work faster on
  the existing lock as the positions in the lock
  arrays are known for each table.
  get_lock_data() assigns the new TABLE elements 
  on request of the new flag.
sql/table.h:
  BUG#5390 - problems with merge tables
  After-fix optimizations proposed and finally
  implemented by Monty.
  Additional elements of TABLE.
2006-01-23 19:12:29 +01:00
unknown
2845da017e Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/M40/mysql-4.0
2006-01-17 17:37:07 +01:00
unknown
7c269aff0f Merge bk-internal:/home/bk/mysql-4.0
into  neptunus.(none):/home/msvensson/mysql/bug6554/my40-bug6554
2006-01-16 12:48:16 +01:00
unknown
549d8c3d40 BUG#6554 Problem Building MySql on Fedora Core 3
- Remove the local static var


sql/ha_berkeley.cc:
  Remove local static var, make it local in file instead.
2006-01-16 12:17:30 +01:00
unknown
de4a3552e1 extra/comp_err.c + scripts/mysqld_multi.sh :
Copyright string fixes (bug#16106)


extra/comp_err.c:
  Ensure that the license spelling is as expected by the "mysql_copyright" tool.
  (bug#16106)
scripts/mysqld_multi.sh:
  The "mysql_copyright" tool will not change non-C files, so do not mention the license.
  (bug#16106)
2006-01-13 16:25:20 +01:00
unknown
2946f9a64f NetWare specific change to increase thread stack size.
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.
2006-01-12 15:10:12 +02:00
unknown
2dcedd9cbc Fixes during review of new pushed code:
Remove wrong fix for Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
Safety fix for bug  "select distinct with group by caused server crash"


client/mysqlimport.c:
  Remove not used variable
myisam/myisam_ftdump.c:
  Fixed compiler warning
sql/item_cmpfunc.cc:
  Removed compiler warning
sql/sql_handler.cc:
  Remove wrong fix for Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash.
  It's better to let mysql_lock_tables reopen the TABLE object in case of OPTIMIZE TABLE and fix items AFTER mysql_lock_table() instead of before
sql/sql_select.cc:
  Safety fix for bug  "select distinct with group by caused server crash"
  The previous patch only removed the symptomps, this fix removed the cause of the problem
  (Which was that not all hidden_fields was stored in the temporary table)
2006-01-06 21:42:17 +02:00
unknown
409a472905 Merge mysql.com:/home/mydev/mysql-4.0
into  mysql.com:/home/mydev/mysql-4.0-bug5390
2005-12-27 10:35:33 +01:00
unknown
e97a4a4a17 Makefile.am:
Adjusted listing of files to put into source TAR
2005-12-18 14:51:19 +01:00
unknown
2e8dc5fff4 Increased stack size for clients on Netware.
New libc suggests doing this.
2005-12-13 17:53:26 +02:00
unknown
a73c263386 Merge mysql.com:/home/mydev/mysql-4.0
into  mysql.com:/home/mydev/mysql-4.0-bug5390


sql/sql_parse.cc:
  Auto merged
2005-12-06 17:48:31 +01:00
unknown
835acc8675 - commit emails are now sent to commits@lists.mysql.com instead of
internals@lists.mysql.com to reduce the noise on the internals list.
2005-12-06 14:07:23 +01:00
unknown
60f2e7a9a4 A set of Netware related patches.
client/mysql.cc:
  Fixed option name.
client/mysqladmin.c:
  Fixed option name.
client/mysqlbinlog.cc:
  Fixed option name.
client/mysqlcheck.c:
  Fixed option name.
client/mysqldump.c:
  Fixed option name.
client/mysqlimport.c:
  Fixed option name.
client/mysqlshow.c:
  Fixed option name.
isam/isamchk.c:
  Fixed option name.
myisam/myisamchk.c:
  Fixed option name.
myisam/myisampack.c:
  Fixed option name.
sql/sql_parse.cc:
  Fix problem with kill connection on NetWare.
2005-12-04 15:02:06 +02:00
unknown
38b7ede9c6 BUG#5390 - problems with merge tables
Problem : INSERT...SELECT
INSERT ... SELECT with the same table on both sides (hidden
below a MERGE table) does now work by buffering the select result.
The duplicate detection works now after open_and_lock_tables() 
on the locks.
I did not find a test case that failed without the change in
sql_update.cc. I made the change anyway as it should in theory
fix a possible MERGE table problem with multi-table update.


mysql-test/r/create.result:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/r/merge.result:
  BUG#5390 - problems with merge tables
  Problem : INSERT...SELECT
  Added test results.
mysql-test/t/create.test:
  BUG#5390 - problems with merge tables
  Removed a duplicate test.
mysql-test/t/merge.test:
  BUG#5390 - problems with merge tables
  Problem : INSERT...SELECT
  Added tests.
sql/lock.cc:
  BUG#5390 - problems with merge tables
  Problem : INSERT...SELECT
  Added a new function to find a duplicate lock in a list of tables.
sql/mysql_priv.h:
  BUG#5390 - problems with merge tables
  Problem : INSERT...SELECT
  Added a declaration for the new function.
sql/sql_parse.cc:
  BUG#5390 - problems with merge tables
  Problem : INSERT...SELECT
  Changed the duplicate tables detection for INSERT ... SELECT
  to use the new function, which does also work for MERGE tables.
sql/sql_update.cc:
  BUG#5390 - problems with merge tables
  Changed the duplicate tables detection for UPDATE
  to use the new function, which does also work for MERGE tables.
2005-11-29 19:17:39 +01:00
unknown
0c04724579 Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.0
2005-11-29 11:52:43 +02:00
unknown
b3a67405c8 Merge abelkin@bk-internal.mysql.com:/home/bk/mysql-4.0
into  sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0


sql/mysql_priv.h:
  Auto merged
2005-11-22 10:55:06 +02:00
unknown
7f977814bf Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.0
into  a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.0
2005-11-22 10:35:34 +02:00
unknown
15062e97e9 Merge mysql.com:/home/mydev/mysql-4.0-bug14397
into  mysql.com:/home/mydev/mysql-4.0-4000
2005-11-15 16:47:15 +01:00
unknown
5412ee4f29 Bug#14616 - Freshly imported table returns error 124 when using LIMIT
Initialized usable_keys from table->keys_in_use instead of ~0
in test_if_skip_sort_order(). It was possible that a disabled
index was used for sorting.


mysql-test/r/myisam.result:
  Bug#14616 - Freshly imported table returns error 124 when using LIMIT
  The test result.
mysql-test/t/myisam.test:
  Bug#14616 - Freshly imported table returns error 124 when using LIMIT
  The test case.
2005-11-07 12:16:49 +01:00
unknown
d1a8ccc127 Fix for bug : BIT_COUNT with NULL values.
sql/item_func.cc:
  Fix for bug : BIT_COUNT with NULL values.
  Always set null_value.
2005-11-06 12:35:49 +04:00
unknown
7d183320b0 Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
Version for 4.0.
It fixes two problems:
1. The cause of the bug was that we did not check the table version for
   the HANDLER ... READ commands. We did not notice when a table was
   replaced by a new one. This can happen during ALTER TABLE, REPAIR
   TABLE, and OPTIMIZE TABLE (there might be more cases). I call the fix
   for this problem "the primary bug fix".
2. mysql_ha_flush() was not always called with a locked LOCK_open.
   Though the function comment clearly said it must.
   I changed the code so that the locking is done when required. I call
   the fix for this problem "the secondary fix".


mysql-test/r/handler.result:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  The test result.
mysql-test/t/handler.test:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  The test case.
sql/mysql_priv.h:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed a definition for the secondary fix.
sql/sql_base.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed function calls for the secondary fix.
sql/sql_class.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed a function call for the secondary fix.
sql/sql_handler.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  The first two diffs make the primary bug fix.
  The rest is for the secondary fix.
sql/sql_table.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed function calls for the secondary fix.
2005-11-03 18:24:12 +01:00