Commit graph

2415 commits

Author SHA1 Message Date
lars@mysql.com/black.(none)
e2e3f0e5c3 Merge mysql.com:/home/bkroot/mysql-5.0-rpl
into  mysql.com:/home/bk/MERGE/mysql-5.0-merge
2006-12-08 23:33:39 +01:00
rafal@quant.(none)
fe2d5c59c2 Merge quant.(none):/ext/mysql/bkroot/mysql-5.0-rpl
into  quant.(none):/ext/mysql/bk/mysql-5.0-bug24507
2006-12-08 11:47:48 +01:00
kostja@bodhi.local
90072e69b3 A fix and test cases for
Bug#4968 "Stored procedure crash if cursor opened on altered table"
Bug#19733 "Repeated alter, or repeated create/drop, fails"
Bug#19182 "CREATE TABLE bar (m INT) SELECT n FROM foo; doesn't work from 
stored procedure."
Bug#6895 "Prepared Statements: ALTER TABLE DROP COLUMN does nothing"
Bug#22060 "ALTER TABLE x AUTO_INCREMENT=y in SP crashes server"

Test cases for bugs 4968, 19733, 6895 will be added in 5.0.

Re-execution of CREATE DATABASE, CREATE TABLE and ALTER TABLE 
statements in stored routines or as prepared statements caused
incorrect results (and crashes in versions prior to 5.0.25).
In 5.1 the problem occured only for CREATE DATABASE, CREATE TABLE
SELECT and CREATE TABLE with INDEX/DATA DIRECTOY options).

The problem of bugs 4968, 19733, 19282 and 6895 was that functions
mysql_prepare_table, mysql_create_table and mysql_alter_table were not
re-execution friendly: during their operation they used to modify contents
of LEX (members create_info, alter_info, key_list, create_list),
thus making the LEX unusable for the next execution.
In particular, these functions removed processed columns and keys from
create_list, key_list and drop_list. Search the code in sql_table.cc 
for drop_it.remove() and similar patterns to find evidence.

The fix is to supply to these functions a usable copy of each of the
above structures at every re-execution of an SQL statement. 

To simplify memory management, LEX::key_list and LEX::create_list
were added to LEX::alter_info, a fresh copy of which is created for
every execution.

The problem of crashing bug 22060 stemmed from the fact that the above 
metnioned functions were not only modifying HA_CREATE_INFO structure in 
LEX, but also were changing it to point to areas in volatile memory of 
the execution memory root.
 
The patch solves this problem by creating and using an on-stack
copy of HA_CREATE_INFO (note that code in 5.1 already creates and
uses a copy of this structure in mysql_create_table()/alter_table(),
but this approach didn't work well for CREATE TABLE SELECT statement).
2006-12-08 02:20:09 +03:00
Kristofer.Pettersson@naruto.
ecbb4eb987 Bug#17498 failed to put data file in custom directory use "data directory" option
- Using DATA/INDEX DIRECTORY option on Windows put data/index file into
  default directory because the OS doesn't support readlink().
- The procedure for changing data/index file directory is 
  different under Windows.
- With this fix we report a warning if DATA/INDEX option is used,
  but OS doesn't support readlink().
2006-12-07 17:01:00 +01:00
svoj@mysql.com/april.(none)
e17d7bce00 BUG#23404 - ROW_FORMAT=FIXED option is lost is an index is added to the
table

ROW_FORMAT option is lost during CREATE/DROP INDEX.

This fix forces CREATE/DROP INDEX to retain ROW_FORMAT by instructing
mysql_alter_table() that ROW_FORMAT is not used during creating/dropping
indexes.
2006-12-07 18:32:40 +04:00
bar@bar.intranet.mysql.r18.ru
293a356277 Merge mysql.com:/usr/home/bar/mysql-5.0.b22645
into  mysql.com:/usr/home/bar/mysql-5.1.b22645
2006-12-05 16:09:27 +04:00
bar@mysql.com/bar.intranet.mysql.r18.ru
58149eaf61 Merge mysql.com:/usr/home/bar/mysql-4.1.b22645
into  mysql.com:/usr/home/bar/mysql-5.0.b22645
2006-12-05 14:08:19 +04:00
msvensson@neptunus.(none)
23a059b224 Merge bk-internal:/home/bk/mysql-5.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-maint
2006-12-05 10:54:17 +01:00
bar@mysql.com/bar.intranet.mysql.r18.ru
224660d14a Bug#22645 LC_TIME_NAMES: Statement not replicated
Problem: replication of LC_TIME_NAMES didn't work.
Thus, INSERTS or UPDATES using date_format() always
worked with en_US on the slave side.
Fix: adding ONE_SHOT implementation for LC_TIME_NAMES.
2006-12-05 13:45:21 +04:00
msvensson@neptunus.(none)
971c783f7d Merge neptunus.(none):/home/msvensson/mysql/mysql-5.1
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-maint
2006-12-04 19:11:55 +01:00
andrey@example.com
44656a234c Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  example.com:/work/bug22369-v2/my51
2006-12-04 18:31:24 +01:00
andrey@example.com
e6a4727779 Fix for bug#22369: Alter table rename combined
with other alterations causes lost tables

Using RENAME clause combined with other clauses of ALTER TABLE led to
data loss (the data was there but not accessible). This could happen if the
changes do not change the table much. Adding and droppping of fields and
indices was safe. Renaming a column with MODIFY or CHANGE was unsafe operation,
if the actual column didn't change (changing from int to int, which is a noop)
  
Depending on the storage engine (SE) the behavior is different:
1)MyISAM/MEMORY - the ALTER TABLE statement completes
  without any error but next SELECT against the new table fails.
2)InnoDB (and every other transactional table) - The ALTER TABLE statement
  fails. There are the the following files in the db dir -
  `new_table_name.frm` and a temporary table's frm. If the SE is file
  based, then the data and index files will be present but with the old
  names. What happens is that for InnoDB the table is not renamed in the
  internal DDIC.

Fixed by adding additional call to mysql_rename_table() method, which should
not include FRM file rename, because it has been already done during file
names juggling.
2006-12-04 18:22:38 +01:00
Kristofer.Pettersson@naruto.
f91e48c762 Merge naruto.:C:/cpp/bug17733/my50-bug17733
into  naruto.:C:/cpp/mysql-5.0-maint
2006-12-04 14:43:34 +01:00
Kristofer.Pettersson@naruto.
be5da5a152 Merge naruto.:C:/cpp/bug17733/my51-bug17733
into  naruto.:C:/cpp/mysql-5.1-maint
2006-12-04 14:34:56 +01:00
baker@bk-internal.mysql.com
dbe5f0acc5 Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-arch
2006-12-03 21:19:35 +01:00
brian@zim.(none)
31d67280f7 This finishes the work (someone) started to remove FIELD_ types and use the Enum MYSQL types. The second part to this is to actually deprecate the FIELD defines in mysql_com.h 2006-12-01 17:26:52 -08:00
patg@radha.tangent.org
a3e85cce4e WL# 3031
Backport of functionality in private 5.2 tree. 

Added new language to parser, new mysql.servers table and associated code
to be used by the federated storage engine to allow central connection information
per WL entry.
2006-12-01 19:47:45 -05:00
thek@kpdesk.mysql.com
f74e1d2696 Merge kpdesk.mysql.com:/home/thek/dev/bug22043/my51-bug22043
into  kpdesk.mysql.com:/home/thek/dev/mysql-5.1-maint
2006-12-01 18:08:47 +01:00
thek@kpdesk.mysql.com
94b48caf2e Merge kpdesk.mysql.com:/home/thek/dev/bug22043/my50-bug22043
into  kpdesk.mysql.com:/home/thek/dev/mysql-5.0-maint
2006-12-01 18:00:45 +01:00
thek@kpdesk.mysql.com
46de7157bd Merge kpdesk.mysql.com:/home/thek/dev/bug22043/my50-bug22043
into  kpdesk.mysql.com:/home/thek/dev/bug22043/my51-bug22043
2006-12-01 17:23:12 +01:00
thek@kpdesk.mysql.com
b201d4ef93 Bug#22043 MySQL don't add "USE <DATABASE>" before "DROP PROCEDURE IF EXISTS"
- Refactoring of duplicate code
- Modified bad test cases
- Changed expected error when operating on information_schema.
2006-12-01 12:50:57 +01:00
Kristofer.Pettersson@naruto.
70c450a18a Merge naruto.:C:/cpp/bug17733/my50-bug17733
into  naruto.:C:/cpp/bug17733/my51-bug17733
2006-12-01 11:17:34 +01:00
Kristofer.Pettersson@naruto.
6c8d7ea894 Bug#17733 Flushing logs causes daily server crash
Server crashes if a flush commmand is issued and binlog is closed.
- added check to prevent binlog access when binlog file isn't opened.
2006-12-01 09:49:19 +01:00
msvensson@neptunus.(none)
b9d696099a check_db_name know takes LEX_STRING* 2006-11-30 09:13:09 +01:00
monty@mysql.com/narttu.mysql.fi
3a35c30027 Fixed compiler warnings (Mostly VC++):
- Removed not used variables
- Changed some ulong parameters/variables to ulonglong (possible serious bug)
- Added casts to get rid of safe assignment from longlong to long (and similar)
- Added casts to function parameters
- Fixed signed/unsigned compares
- Added some constructores to structures
- Removed some not portable constructs

Better fix for bug Bug #21428 "skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
(Added new parameter to net_clear() to define when we want the communication buffer to be emptied)
2006-11-30 03:40:42 +02:00
msvensson@neptunus.(none)
b5603af7d5 Merge 192.168.0.5:mysql/mysql-5.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-maint
2006-11-29 23:53:07 +01:00
monty@narttu.mysql.fi
2e8d2e3ef9 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/my/mysql-5.1
2006-11-29 22:54:11 +02:00
monty@mysql.com/narttu.mysql.fi
23263db66e Added back sql-bench directory, so that one can more easily run benchmarks on a server and add new benchmarks for new optimizations
Fixed memory leak in _db_set() (Bug#24497 Valgrind warning: get_one_option)
Don't call net_clear() on COM_QUIT. This avoids a warning from net_clear() after shutdown: "skipped ## bytes from file"
BUG#21428: skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
2006-11-29 22:51:09 +02:00
msvensson@shellback.(none)
7ddc43e305 Merge shellback.(none):/home/msvensson/mysql/mysql-5.1
into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
2006-11-29 15:44:09 +01:00
thek@kpdesk.mysql.com
a17c01ff5c Merge kpdesk.mysql.com:/home/thek/dev/bug22043/my51-bug22043
into  kpdesk.mysql.com:/home/thek/dev/mysql-5.1-maint
2006-11-29 13:07:50 +01:00
thek@kpdesk.mysql.com
4debf85521 Merge kpdesk.mysql.com:/home/thek/dev/bug22043/my50-bug22043
into  kpdesk.mysql.com:/home/thek/dev/mysql-5.0-maint
2006-11-29 12:57:43 +01:00
gkodinov@dl145s.mysql.com
40684173ad Merge bk-internal:/home/bk/mysql-5.1
into  dl145s.mysql.com:/data0/bk/team_tree_merge/MERGE/mysql-5.1-opt
2006-11-29 10:21:13 +01:00
msvensson@shellback.(none)
284413154d Merge bk-internal:/home/bk/mysql-5.1-maint
into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
2006-11-29 07:55:22 +01:00
msvensson@neptunus.(none)
04d5a42bbf Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-11-28 20:59:57 +01:00
kostja@bodhi.local
9de58810eb Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.local:/opt/local/work/mysql-5.1-24486
2006-11-28 21:58:08 +03:00
kostja@bodhi.local
8263dc2dd1 A fix for Bug#24486 "Valgrind warnings: sp_head(),
deadlock_innodb:events_grant". This was a memory leak introduced by 
the patch for Bug 22830.
Post-review fixes.
2006-11-28 21:35:20 +03:00
thek@kpdesk.mysql.com
81420d5e38 Merge kpdesk.mysql.com:/home/thek/dev/bug22043/my50-bug22043
into  kpdesk.mysql.com:/home/thek/dev/bug22043/my51-bug22043
2006-11-28 17:34:03 +01:00
gkodinov@dl145s.mysql.com
32c9e11df9 Merge bk-internal:/home/bk/mysql-5.1
into  dl145s.mysql.com:/data0/bk/team_tree_merge/MERGE/mysql-5.1-opt
2006-11-28 17:14:16 +01:00
thek@kpdesk.mysql.com
294cb8432f Bug#22043 MySQL don't add "USE <DATABASE>" before "DROP PROCEDURE EXISTS"
- CREATE PROCEDURE stores database name based on query context instead
  of 'current database' as set by 'USE' according to manual.
  The bug reporter interpret the filtering statements as bug for
   DROP PROCEDURE based on this behavior.
- Removed the code which changes db context.
- Added code to check that a valid db was supplied.
2006-11-28 16:03:53 +01:00
gkodinov@dl145s.mysql.com
e74c9add47 Merge bk-internal:/home/bk/mysql-5.0
into  dl145s.mysql.com:/data0/bk/team_tree_merge/MERGE/mysql-5.0-opt
2006-11-27 16:25:52 +01:00
monty@nosik.monty.fi
313f23a93a Merge bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
into  mysql.com:/home/my/mysql-5.1
2006-11-27 14:07:52 +02:00
msvensson@neptunus.(none)
1bd6e4f66a Merge bk-internal:/home/bk/mysql-5.1-new-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
2006-11-27 10:39:40 +01:00
monty@mysql.com/nosik.monty.fi
fa81a82e7f Fixed a LOT of compiler warnings
Added missing DBUG_RETURN statements (in mysqldump.c)
Added missing enums
Fixed a lot of wrong DBUG_PRINT() statements, some of which could cause crashes
Removed usage of %lld and %p in printf strings as these are not portable or produces different results on different systems.
2006-11-27 01:47:38 +02:00
kaa@polly.local
332afaa7b6 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into  polly.local:/home/kaa/src/maint/mysql-5.1-maint
2006-11-24 23:45:31 +03:00
kaa@polly.local
699898c82c Merge polly.local:/tmp/maint/bug22077/my50-bug22077
into  polly.local:/home/kaa/src/maint/mysql-5.0-maint
2006-11-24 17:01:43 +03:00
kaa@polly.local
9ff59261bd Merge polly.local:/tmp/maint/bug22077/my50-bug22077
into  polly.local:/tmp/maint/bug22077/my51-bug22077
2006-11-24 16:23:40 +03:00
msvensson@neptunus.(none)
0e4d97edf0 Merge neptunus.(none):/home/msvensson/mysql/mysql-5.1
into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
2006-11-23 18:38:27 +01:00
monty@nosik.monty.fi
89570bf966 Merge mysql.com:/home/my/mysql-5.0
into  mysql.com:/home/my/mysql-5.1
2006-11-22 14:11:36 +02:00
msvensson@shellback.(none)
71767fc952 Merge shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
2006-11-21 12:00:19 +01:00
msvensson@shellback.(none)
0b89340a0b Updates for gethostname and gethostbyname_r usage 2006-11-21 11:59:25 +01:00