Commit graph

5185 commits

Author SHA1 Message Date
svoj@mysql.com/april.(none)
f92ae8d6c1 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG23404/mysql-4.1-engines
2006-12-13 15:53:37 +04:00
igor@olga.mysql.com
53d97a7d72 Fixed bug #24670: optimizations that are legal only for subqueries without tables
and no WHERE condition were applied for any subquery without tables.
2006-12-11 18:57:23 -08:00
Kristofer.Pettersson@naruto.
119afb19c3 Merge naruto.:C:/cpp/bug17489/my41-bug17489
into  naruto.:C:/cpp/mysql-4.1-maint
2006-12-11 13:06:59 +01:00
gluh@mysql.com/gluh.(none)
f0f4d3c0bd Merge mysql.com:/home/gluh/MySQL/Merge/4.1
into  mysql.com:/home/gluh/MySQL/Merge/4.1-opt
2006-12-11 15:32:07 +04:00
lars@mysql.com/black.(none)
587330f125 Merge mysql.com:/home/bkroot/mysql-4.1-rpl
into  mysql.com:/home/bk/MERGE/mysql-4.1-merge
2006-12-08 23:33:15 +01:00
msvensson@neptunus.(none)
9636ead18d Bug#19410 Test 'kill' fails on Windows + SCO 2006-12-08 17:09:07 +01:00
msvensson@neptunus.(none)
8b6e5d4dfa Backport fix for mysqladmin on windows test failure 2006-12-08 13:37:40 +01:00
holyfoot/hf@mysql.com/deer.(none)
f83bedabed Merge bk@192.168.21.1:mysql-4.1-opt
into  mysql.com:/home/hf/work/embt/my41-embt
2006-12-08 15:15:33 +04: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
mskold/marty@mysql.com/linux.site
072133459f Merge mysql.com:/windows/Linux_space/MySQL/mysql-4.1
into  mysql.com:/windows/Linux_space/MySQL/mysql-4.1-ndb
2006-12-07 15:59:15 +01:00
mskold/marty@mysql.com/linux.site
93fda180d1 Bug#24818 CREATE UNIQUE INDEX (...) USING HASH on a NDB table crashes mysqld: Added test case 2006-12-07 15:49:59 +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
holyfoot/hf@mysql.com/deer.(none)
e83c682fb7 bug #22372 (LOAD DATA crashes the table with the geometry field)
The problem is that the GEOMETRY NOT NULL can't automatically set
any value as a default one. We always tried to complete LOAD DATA
command even if there's not enough data in file. That doesn't work
for GEOMETRY NOT NULL. Now Field_*::reset() returns an error sign
and it's checked in mysql_load()
2006-12-06 21:45:57 +04:00
ramil/ram@mysql.com/myoffice.izhnet.ru
0b5696b82b Fix for bug #22533: Traditional: Too-long bit value not rejected.
Problem: storing >=8 byte hexadecimal values we don't check data.
Fix: check if the data fits the {u}longlong range.
2006-12-06 16:32:12 +04: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
iggy@rolltop.ignatz42.dyndns.org
e0eed3a34b Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/bug20836/my41-bug20836
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint
2006-12-04 15:33:53 -05:00
msvensson@neptunus.(none)
33c248eee5 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
2006-12-04 19:06:42 +01:00
msvensson@neptunus.(none)
a9f4f4ed11 Merge bk-internal:/home/bk/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
2006-12-04 19:01:31 +01:00
ramil/ram@mysql.com/myoffice.izhnet.ru
c99556d5d4 fix for bug #23938: ISNULL on DATE AND CAST AS DATE returns false for null values
Set null_value in case of wrong data.
2006-12-04 17:06:25 +04:00
andrey@example.com
b275089b66 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  example.com:/work/bug24395-v2/my41
2006-12-01 23:11:44 +01:00
msvensson@neptunus.(none)
fb2ffbf203 Merge neptunus.(none):/home/msvensson/mysql/bug10608/my41-bug10608
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
2006-11-30 11:58:23 +01:00
msvensson@neptunus.(none)
a743e17d8c Add "chmod" command to mysqltest 2006-11-30 10:54:50 +01:00
kostja@bodhi.local
bf3fbb44ae Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  bodhi.local:/opt/local/work/mysql-4.1-runtime
2006-11-29 02:39:17 +03:00
iggy@rolltop.ignatz42.dyndns.org
761a88ee0d Bug#20836 Selecting into variables results in wrong results being returned
This error is displayed anytime the SELECT statement needs a temp table to
return correct results because the object (select_dumpvar) that represents
variables named in the INTO clause stored the results before the temp
table was considered.  The problem was fixed by creating the necessary
Item_func_set_user_var objects once the correct data is ready.
2006-11-28 17:21:39 -05:00
msvensson@neptunus.(none)
cc747a02b3 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
2006-11-28 21:11:05 +01:00
andrey@example.com
100dd45ec4 Fix for bug#24395:
ALTER TABLE DISABLE KEYS doesn't work when modifying the table
  
ENABLE|DISABLE KEYS combined with another ALTER TABLE option, different
than RENAME TO did nothing. Also, if the table had disabled keys
and was ALTER-ed then the end table was with enabled keys.
  
Fixed by checking whether the table had disabled keys and enabling them
in the copied table.
2006-11-28 18:27:32 +01:00
msvensson@neptunus.(none)
86f0d1bb03 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
2006-11-24 12:12:25 +01:00
ramil/ram@mysql.com/myoffice.izhnet.ru
c6e856de10 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  mysql.com:/usr/home/ram/work/bug22029/my41-bug22029
2006-11-22 10:30:46 +04:00
kroki/tomash@moonlight.intranet
0a36a6f382 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug23159
2006-11-21 17:37:25 +03:00
kroki/tomash@moonlight.intranet
0d588f8882 BUG#23159: prepared_stmt_count should be status variable
Make Prepared_stmt_count a global status variable, accessible via
SHOW STATUS LIKE 'Prepared_stmt_count';.  Documentation should be
updated.
2006-11-21 16:49:18 +03:00
bar@mysql.com/bar.intranet.mysql.r18.ru
fb419c4241 BUG#13926: --order-by-primary fails if PKEY contains quote character.
Backporting from 5.0
2006-11-21 11:09:33 +04:00
bar@mysql.com/bar.intranet.mysql.r18.ru
a363599a81 Merge mysql.com:/usr/home/bar/mysql-4.1.b22646
into  mysql.com:/usr/home/bar/mysql-4.1-rpl
2006-11-20 18:08:46 +04:00
holyfoot/hf@mysql.com/deer.(none)
db5db841a9 Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/home/hf/work/mysql-4.1-mrg
2006-11-16 20:44:37 +04:00
andrey@example.com
2e13117808 Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  example.com:/work/bug24219/my41
2006-11-16 16:29:06 +01:00
andrey@example.com
de904f54bf Fix for bug#24219 ALTER TABLE ... RENAME TO ... , DISABLE KEYS leads to crash
There was an improper order of doing chained operations.

To the documentor: ENABLE|DISABLE KEYS combined with RENAME TO, and no other
ALTER TABLE clause, leads to server crash independent of the presence of
indices and data in the table.
2006-11-16 13:18:37 +01:00
kroki/tomash@moonlight.intranet
690cb27d05 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug17047
2006-11-16 14:15:56 +03:00
kroki/tomash@moonlight.intranet
b8d5451565 BUG#17047: CHAR() and IN() can return NULL without signaling NULL result
The problem was that some functions (namely IN() starting with 4.1, and
CHAR() starting with 5.0) were returning NULL in certain conditions,
while they didn't set their maybe_null flag.  Because of that there could
be some problems with 'IS NULL' check, and statements that depend on the
function value domain, like CREATE TABLE t1 SELECT 1 IN (2, NULL);.

The fix is to set maybe_null correctly.
2006-11-16 13:21:38 +03:00
aelkin/elkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi
5235785b2e bug#19402 SQL close to the size of the max_allowed_packet fails on the slave
mending windows test.
2006-11-15 12:53:07 +02:00
holyfoot/hf@mysql.com/deer.(none)
c5f375f6bf delayed.test fixed 2006-11-13 18:12:15 +04:00
gkodinov/kgeorge@rakia.gmz
e347eb1995 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rakia.gmz:/home/kgeorge/mysql/autopush/B19216-4.1-opt
2006-11-13 15:40:19 +02:00
lars@mysql.com/black.(none)
de01754c19 Merge mysql.com:/home/bkroot/mysql-4.1-rpl
into  mysql.com:/home/bk/MERGE/mysql-4.1-merge
2006-11-13 12:44:24 +01:00
gkodinov/kgeorge@macbook.gmz
9a41822bdd Bug #19216: Client crashes on long SELECT
The server sends a number of columns to the client.
 It uses a limited "fast" function for that instead of the
 general one. This fast function cannot send numbers larger 
 than 2 bytes. 
 This causes the client to expect smaller number of columns. 
 The client writes outside of the allocated memory buffer 
 as a result.
 Fixed the server to use the general function to send column
 count.
 Fixed the client to check the column count before writing
 column data.
2006-11-13 12:28:55 +02:00
holyfoot/hf@mysql.com/deer.(none)
6e0045ed20 embedded-mode tests fixed 2006-11-13 10:39:15 +04:00
msvensson@neptunus.(none)
7c935a9964 Bug#10608 mysqladmin breaks on "database" variable in my.cnf
- Add printout of "Warning" or "Note" for non error messages in default_reporter
 - Add test for the above in new mysqladmin.test
2006-11-10 13:25:10 +01:00
petr/cps@outpost.site
e06f74f9f9 Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  outpost.site:/home/cps/mysql/trees/4.1-runtime-bug9191
2006-11-10 15:05:38 +03:00
ramil/ram@mysql.com/myoffice.izhnet.ru
4b823e045f Fix for bug #23653: Crash if last_day('0000-00-00')
As get_arg0_date() in the Item_func_last_day::get_date() returns 
0000-00-00 date sometimes, we have to check ltime->month for 0 after the call.
2006-11-09 16:17:50 +04:00
bar@mysql.com/bar.intranet.mysql.r18.ru
bd2529d0a1 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-4.1-rpl
into  mysql.com:/usr/home/bar/mysql-4.1.b23451v2
2006-11-08 22:03:08 +04:00
aelkin/elkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi
37c78abf24 bug#19402 SQL close to the size of the max_allowed_packet fails on slave
fixing a flow of the test
2006-11-08 17:17:28 +02:00
bar@mysql.com/bar.intranet.mysql.r18.ru
413d18658f Bug#22646 LC_TIME_NAMES: Assignment to non-UTF8 target fails
Problem: After introducing of LC_TIME_NAMES variable,  the 
function date_format() can return international non-ascii
characters in month and weekday names. Thus, it cannot return
a binary string anymore, because inserting a result of date_format()
into a column with non-utf8 character set produces garbage.
Fix: date_format() now returns a character string, using
"collation_connection" to detect character set and collation
for the returned value. This allows to insert
results of date_format() properly into columns with
various character sets.
2006-11-08 15:37:54 +04:00