Commit graph

9945 commits

Author SHA1 Message Date
svoj@mysql.com/june.mysql.com
a4ddc22621 Merge mysql.com:/home/svoj/devel/bk/mysql-4.1
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
2007-05-23 12:38:34 +05:00
tsmith@quadxeon.mysql.com
2c3bebc570 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/41
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/41
2007-05-21 20:49:24 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
38c8951d11 Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-05-18 20:01:49 +05:00
tsmith@siva.hindu.god
81adc6a5ff Merge siva.hindu.god:/home/tsmith/m/bk/41
into  siva.hindu.god:/home/tsmith/m/bk/maint/41
2007-05-17 14:16:33 -06:00
kostja@vajra.(none)
21c137dbf1 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  vajra.(none):/opt/local/work/mysql-4.1-runtime
2007-05-15 13:39:24 +04:00
igor@olga.mysql.com
268be06874 Fixed bug #28272: crash that occurs when running an EXPLAIN command
for a query over an empty table right after its creation. 
The crash is the result of an attempt made by JOIN::optimize to evaluate
the WHERE condition when no records have been actually read.
The added test case can reproduce the crash only with InnoDB tables and
only with 5.0.x.
2007-05-14 23:55:18 -07:00
igor@olga.mysql.com
d71043b889 Fixed bug #27937: crash for the the second execution of a prepared
statement from a UNION query with ORDER BY an expression containing
RAND().
The crash happened because the global order by list in the union query
was not re-initialized for execution.
(Local order by lists were re-initialized though).
2007-05-14 16:41:09 -07:00
thek@adventure.(none)
4ea05eae31 Bug #27792 query cache returns wrong result, with certain system variables
- Queries in the query cache are identified by the individual 
   characters in the query statement, the current database and 
   the current environment expressed as a set of system variable
   flags.
 - Since the set of environment flags didn't properly describe the
   current environment unexpected results were returned from the 
   query cache.
 - Query cache is now cleared when the variable ft_boolean_syntax is 
   updated.
 - An identification flag for the variable default_week_format is 
   added to the query cache record.
 
Thanks to Martin Friebe who has supplied significant parts of this patch.
2007-05-08 09:09:25 +02:00
cmiller@zippy.cornsilk.net
e5ee6a74ff Bug #27173: "Enabling keys got errno ..." does not say which table
Warnings may show up in the error log that complain about a table, yet
don't tell us which table.

Add the database and table names to the message.
2007-05-04 13:17:07 -04:00
gkodinov/kgeorge@magare.gmz
d11e1f248b Bug #27531: the 4.1 fix.
When checking for applicability of join cache
we must disable its usage only if there is no
temp table in use.
When a temp table is used we can use join
cache (and it will not make the result-set 
unordered) to fill the temp table. The filesort() 
operation is then applied to the data in the temp 
table and hence is not affected by join cache
usage.
Fixed by narrowing the condition for disabling 
join cache to exclude the case where temp table
is used.
2007-05-04 16:43:29 +03:00
evgen@moonbone.local
7f9411c156 Bug#23656: Wrong conversion result of a DATETIME to integer using CAST function.
The generic string to int conversion was used by the Item_func_signed and
the Item_func_unsigned classes to convert DATE/DATETIME values to the
SIGNED/UNSIGNED type. But this conversion produces wrong results for such
values.

Now if the item which result has to be converted can return its result as
longlong then the item->val_int() method is used to allow the item to carry
out the conversion itself and return the correct result.
This condition is checked in the Item_func_signed::val_int() and the
Item_func_unsigned::val_int() functions.
2007-05-04 00:53:37 +04:00
igor@olga.mysql.com
ce0be732d0 Fixed bug #24856: the result set of a ROLLUP query with DISTINCT could lack
some rollup rows (rows with NULLs for grouping attributes) if GROUP BY
list contained constant expressions.

This happened because the results of constant expressions were not put
in the temporary table used for duplicate elimination. In fact a constant
item from the GROUP BY list of a ROLLUP query can be replaced for an
Item_null_result object when a rollup row is produced . 

Now the JOIN::rollup_init function wraps any constant item referenced in
the GROYP BY list of a ROLLUP query into an Item_func object of a special
class that is never detected as constant item. This ensures creation of
fields for such  constant items in temporary tables and guarantees right
results when the result of the rollup operation first has to be written
into a temporary table, e.g. in the cases when duplicate elimination is
required.
2007-04-29 16:04:43 -07:00
holyfoot/hf@mysql.com/hfmain.(none)
2d8037610c Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-04-29 18:39:45 +05:00
gshchepa/uchum@gshchepa.loc
fbed482689 Patch to eliminate compilation errors under VC after bug #13191 fix. 2007-04-29 11:56:23 +05:00
gshchepa/uchum@gshchepa.loc
87c6ef4c30 Merge gshchepa.loc:/home/uchum/work/bk-trees/mysql-4.1-opt
into  gshchepa.loc:/home/uchum/work/bk-trees/mysql-4.1-opt-13191
2007-04-29 05:31:53 +05:00
gshchepa/uchum@gshchepa.loc
3adcb94ede Fixed bug #13191.
INSERT...ON DUPLICATE KEY UPDATE may cause error 1032: 
"Can't find record in ..." if we are inserting into
InnoDB table unique index of partial key with
underlying UTF-8 string field.

This error occurs because INSERT...ON DUPLICATE uses a wrong
procedure to copy string fields of multi-byte character sets
for index search.
2007-04-29 04:16:17 +05:00
svoj@mysql.com/june.mysql.com
0c7631e763 BUG#27998 - mysqld crashed when executing INSERT DELAYED
on a BLACKHOLE table

Using INSERT DELAYED on BLACKHOLE tables could lead to server
crash.

This happens because delayed thread wants to upgrade a lock,
but BLACKHOLE tables do not have locks at all.

This patch rejects attempts to use INSERT DELAYED on MERGE
tables.
2007-04-28 14:37:40 +05:00
svoj@mysql.com/april.(none)
f698977298 Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1-build
into  mysql.com:/home/svoj/devel/mysql/merge/mysql-4.1-engines
2007-04-27 00:32:51 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
1d0f9bed85 Merge mysql.com:/home/ram/work/mysql-4.1-maint
into  mysql.com:/home/ram/work/b27515/b27515.4.1
2007-04-24 14:33:15 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
250ae972e7 Merge mysql.com:/home/ram/work/mysql-4.1-maint
into  mysql.com:/home/ram/work/b27515/b27515.4.1
2007-04-24 14:20:28 +05:00
gshchepa/uchum@gshchepa.loc
f5a229b3d1 Bug#27704: incorrect comparison of rows with NULL components
Support for NULL components was incomplete for row comparison,
fixed.  Added support for abort_on_null at compare_row() like
in 5.x
2007-04-20 15:14:09 +05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
f4060b4b81 Fix for bug #27515: DROP previlege is not required anymore for RENAME TABLE
Added missed DROP privilege check on the original table for RENAME TABLE command.
2007-04-17 16:52:50 +05:00
svoj@mysql.com/april.(none)
005d8c5284 BUG#25951 - ignore/use index does not work with fulltext
IGNORE/USE/FORCE INDEX hints were honored when choosing FULLTEXT
index.

With this fix these hints are ignored. For regular indexes we may
perform table scan instead of index lookup when IGNORE INDEX was
specified. We cannot do this for FULLTEXT in NLQ mode.
2007-04-13 02:31:34 +05:00
igor@olga.mysql.com
520b144007 Fixed bug #27484: a crash when incompatible row expressions with nested rows
are used as arguments of the IN predicate.
Added a function to check compatibility of row expressions. Made sure that this
function to be called for Item_func_in objects by fix_length_and_dec().
2007-04-11 11:41:12 -07:00
holyfoot/hf@mysql.com/hfmain.(none)
df913ae06a Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-04-07 11:35:14 +05:00
igor@olga.mysql.com
90aa05d276 Fixed bug #27532: wrong results with ORDER/GROUP BY queries containing
IN/BETWEEN predicates in sorting expressions.
Wrong results may occur when the select list contains an expression
with IN/BETWEEN predicate that differs from a sorting expression by
an additional NOT only.
 
Added the method Item_func_opt_neg::eq to compare correctly expressions
containing [NOT] IN/BETWEEN.
The eq method inherited from the Item_func returns TRUE when comparing
'a IN (1,2)' with 'a NOT IN (1,2)' that is not, of course, correct.
2007-04-03 14:32:16 -07:00
msvensson@pilot.blaudden
252e3f03c7 Merge pilot.blaudden:/home/msvensson/mysql/mysql-4.1
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-04-02 10:48:11 +02:00
msvensson@pilot.blaudden
c731bad918 Cset exclude: tsmith@siva.hindu.god|ChangeSet|20070328212513|13373 2007-04-02 10:39:23 +02:00
ibabaev@bk-internal.mysql.com
466586472b Merge bk-internal.mysql.com:/data0/bk/mysql-4.1
into  bk-internal.mysql.com:/data0/bk/mysql-4.1-opt
2007-03-31 09:52:18 +02:00
sergefp@mysql.com
dcb2551347 BUG#26624: high mem usage (crash) in range optimizer
Pushbuild fixes: 
 - Make MAX_SEL_ARGS smaller (even 16K records_in_range() calls is 
   more than it makes sense to do in typical cases)
 - Don't call sel_arg->test_use_count() if we've already allocated 
   more than MAX_SEL_ARGs elements. The test will succeed but will take
   too much time for the test suite (and not provide much value).
2007-03-31 00:29:18 +04:00
kent@mysql.com/kent-amd64.(none)
2d0da97164 Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/kent/bk/tmp/mysql-4.1-build
2007-03-30 22:26:06 +02:00
msvensson@pilot.blaudden
79b2bd53b2 Merge pilot.blaudden:/home/msvensson/mysql/bug25482/my41-bug25482-alt2
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-03-29 14:33:50 +02:00
msvensson@pilot.blaudden
a71d195183 Bug#25482 GRANT statements are not replicated if you use "replicate-ignore-table"
- GRANT and REVOKE statments didn't have the "updating" flag set and
   thus statements with a table specified would not replicate if
   slave filtering rules where turned on.
   For example "GRANT ... ON test.t1 TO ..." would not replicate.
2007-03-29 14:12:32 +02:00
sergefp@mysql.com
9939b3b75e BUG#26624: high mem usage (crash) in range optimizer
- Post-review fixes
2007-03-29 10:27:58 +04:00
tsmith@siva.hindu.god
ecd22993cf Bug #26642: create index corrupts table definition in .frm
Thanks to Martin Friebe for finding and submitting a fix for this bug!

A table with maximum number of key segments and maximum length key name
would have a corrupted .frm file, due to an incorrect calculation of the
complete key length.  Now the key length is computed correctly (I hope) :-)

MyISAM would reject a table with the maximum number of keys and the maximum
number of key segments in all keys.  It would allow one less than this total
maximum.  Now MyISAM accepts a table defined with the maximum.  (This is a
very minor issue.)
2007-03-28 15:25:13 -06:00
sergefp@mysql.com
264697e83b Merge mysql.com:/home/psergey/mysql-4.1-bug26625
into  mysql.com:/home/psergey/mysql-4.1-bug26624-r2
2007-03-28 20:31:13 +04:00
sergefp@mysql.com
a8d439728f BUG#26624: high mem usage (crash) in range optimizer
- Added PARAM::alloced_sel_args where we count the # of SEL_ARGs
  created by SEL_ARG tree cloning operations.
- Made the range analyzer to shortcut and not do any more cloning 
  if we've already created MAX_SEL_ARGS SEL_ARG objects in cloning.
- Added comments about space complexity of SEL_ARG-graph 
  representation.
2007-03-28 20:16:01 +04:00
sergefp@mysql.com
ce28ca336b Delete: sql/mysqld.cc.rej 2007-03-28 19:05:30 +04:00
sergefp@mysql.com
ce3f182604 BUG#26625: crash in range optimizer (out of mem)
- Define Sql_alloc::operator new() as thow() so that C++ compiler
  handles NULL return values
(there is no testcase as there is no portable way to set limit on the 
amount of memory that a process can allocate)
2007-03-28 18:38:42 +04:00
istruewing@chilla.local
fd8ebd5657 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  chilla.local:/home/mydev/mysql-4.1-axmrg
2007-03-28 08:59:30 +02:00
istruewing@chilla.local
bba96f35c8 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  chilla.local:/home/mydev/mysql-4.1-bug24985
2007-03-28 08:51:12 +02:00
istruewing@chilla.local
8934e4f3cc Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
causes incorrect duplicate entries

Keys for BTREE indexes on ENUM and SET columns of MEMORY tables
with character set UTF8 were computed incorrectly. Many
different column values got the same key value.

Apart of possible performance problems, it made unique indexes
of this type unusable because it rejected many different
values as duplicates.

The problem was that multibyte character detection was tried
on the internal numeric column value. Many values were not
identified as characters. Their key value became blank filled.

Thanks to Alexander Barkov and Ramil Kalimullin for the patch,
which sets the character set of ENUM and SET key segments to
the pseudo binary character set.
2007-03-27 10:49:48 +02:00
gkodinov/kgeorge@magare.gmz[kgeorge]
e6d81ad338 Bug #27164: not reseting the data pointer
to 0 causes wrong (large) length to be read
 from the row in _mi_calc_blob_length() when 
 storing NULL values in (e.g) POINT columns.
 This large length is then used to allocate
 a block of memory that (on some OSes) causes
 trouble.
 Fixed by calling the base class's 
 Field_blob::reset() from Field_geom::reset()
 that is called when storing a NULL value into
 the column.
2007-03-26 13:17:40 +03:00
serg@sergbook.mysql.com
18a01e7261 nptl: typo fixed. sigaddset restored 2007-03-24 14:03:27 +02:00
serg@sergbook.mysql.com
d2d72bfc58 reverted linuxthreads thr_client_alarm fix (not future-proof)
fixed differently: wake up select_thread with THR_SERVER_ALARM instead
2007-03-23 20:37:20 +02:00
serg@sergbook.mysql.com
b37c197512 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1
2007-03-23 14:57:55 +02:00
serg@sergbook.mysql.com
e2dd5743b9 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.1
2007-03-23 14:47:51 +02:00
serg@sergbook.mysql.com
2220fe2774 move thr_client_alarm initialization to mysqld.cc
(in thr_alarm.cc it happened too late).
2007-03-23 13:38:42 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
1d0efa1757 Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/home/hf/work/mrg/mysql-4.1-opt
2007-03-22 23:45:37 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
e0f0507f99 bug #16546 (DATETIME + 0 not always coerced in the same way)
fix for cast( AS DATETIME) + 0 operation.
  I just implemented Item_datetime_typecast::val() method
  as it is usually done in other classes.
  Should be fixed more radically in 5.0
2007-03-22 12:24:56 +04:00