Commit graph

6384 commits

Author SHA1 Message Date
gkodinov/kgeorge@rakia.(none)
49f8ec4c99 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B21019-4.1-opt
2006-07-26 18:49:26 +03:00
gkodinov/kgeorge@macbook.gmz
6766cfcdf9 Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
When optimizing conditions like 'a = <some_val> OR a IS NULL' so that they're
 united into a single condition on the key and checked together the server must 
 check which value is the NULL value in a correct way : not only using ->is_null 
 but also check if the expression doesn't depend on any tables referenced in the 
 current statement. 
 This additional check must be performed because that optimization takes place 
 before the actual execution of the statement, so if the field was initialized 
 to NULL from a previous statement the optimization would be applied incorrectly.
2006-07-26 13:32:28 +03:00
msvensson@neptunus.(none)
e1b1ba54c6 Bug#21218 Test "mysqlbinlog" fails to execute another program on Windows
- Modify test case to workaround the test tool problem
 - (Null merge into 5.0)
2006-07-26 11:08:15 +02:00
timour/tkatchaounov@lamia.home
dd7ae38de4 Merge tkatchaounov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  lamia.home:/home/tkatchaounov/autopush/4.1-bug-20954
2006-07-26 01:21:35 +03:00
timour/timka@lamia.home
86ae2f3b06 Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set
The problem was in that opt_sum_query() replaced MIN/MAX functions
with the corresponding constant found in a key, but due to imprecise
representation of float numbers, when evaluating the where clause,
this comparison failed.

When MIN/MAX optimization detects that all tables can be removed,
also remove all conjuncts in a where clause that refer to these
tables. As a result of this fix, these conditions are not evaluated
twice, and in the case of float number comparisons we do not discard
result rows due to imprecise float representation.

As a side-effect this fix also corrects an unnoticed problem in
bug 12882.
2006-07-26 01:11:19 +03:00
holyfoot/hf@mysql.com/deer.(none)
1252cec249 Bug #15440 (handler.test hangs in embedded mode)
the old problem - mysqltest can't handle multiple connections in the
embedded server properly. So i disabled the test for the embedded mode
until mysqltest is fixed
2006-07-25 18:02:42 +05:00
bar@mysql.com/bar.intranet.mysql.r18.ru
d19cd9382e Bug#19741 segfault with cp1250 charset + like + primary key + 64bit os
LIKE craashed with a pattern having letters in the range 128..255
(e.g. A WITH ACUTE or C WITH CARON) because of wrong cast from
signed char to unsigned int.
2006-07-25 17:27:53 +05:00
msvensson@neptunus.(none)
d8151b6368 Bug#21218 Test "mysqlbinlog" fails to execute another program on Windows
- Send confusing output to /dev/null
2006-07-24 18:12:57 +02:00
msvensson@neptunus.(none)
d89f177377 Bug#21125 mysqldump: Problem with non-standard table names
- The mysql-test/std_data/bug15328.cnf file was not copied to install or dist dir.
2006-07-24 14:31:37 +02:00
ramil/ram@mysql.com/myoffice.izhnet.ru
694d4999ef Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b16327
2006-07-23 14:17:01 +05:00
sergefp@mysql.com
59dc5e8838 Add missing "DROP TABLE" clause 2006-07-22 02:36:17 +04:00
sergefp@mysql.com
bffd438de3 BUG#20975: Incorrect query result for NOT (subquery):
Add implementations of Item_func_{nop,not}_all::neg_transformer
2006-07-21 03:04:04 +04:00
bar@mysql.com/bar.intranet.mysql.r18.ru
2a664ff6c2 Bug#20471 LIKE search fails with indexed utf8 char column
The main problem was already fixed by Igor under terms of 16674.
Adding some additional minor fixes and tests.
2006-07-20 15:52:48 +05:00
iggy@rolltop.ignatz42.dyndns.org
36296d1bc9 Manual merge required. 2006-07-19 17:39:53 -04:00
iggy@rolltop.ignatz42.dyndns.org
2835ebdf63 Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint_bug20328
2006-07-19 17:00:39 -04:00
igor@olga.mysql.com
f201828dd8 Fixed bug #17526: incorrect print method
for class Item_func_trim. 
For 4.1 it caused wrong output for EXPLAIN EXTENDED commands
if expressions with the TRIM function of two arguments were used.
For 5.0 it caused an error message when trying to select
from a view with the TRIM function of two arguments.
This unexpected error message was due to the fact that the
print method for the class Item_func_trim was inherited from
the class Item_func. Yet the TRIM function does not take a list
of its arguments. Rather it takes the arguments in the form:
  [{BOTH | LEADING | TRAILING} [remstr] FROM] str) |
  [remstr FROM] str
2006-07-19 12:36:55 -07:00
iggy@rolltop.ignatz42.dyndns.org
79483c22bb Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint_bug16180
2006-07-19 13:09:11 -04:00
evgen@moonbone.local
6dd8772bfc Merge moonbone.local:/home/evgen/bk-trees/mysql-4.1
into  moonbone.local:/work/tmp_merge-4.1-opt-mysql
2006-07-18 23:30:09 +04:00
evgen@moonbone.local
a8d230c672 Merge moonbone.local:/work/mysql-4.1
into  moonbone.local:/work/tmp_merge-4.1-opt-mysql
2006-07-18 21:30:26 +04:00
ramil/ram@mysql.com/myoffice.izhnet.ru
0d15e5e340 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b15195
2006-07-14 16:58:51 +05:00
ramil/ram@mysql.com/myoffice.izhnet.ru
b57efe738a --{skip-}merge option added which allows the user to disable merge engine and
to avoid the potential security problem.
(see bug #15195: Security Breach with MERGE table)
2006-07-14 16:26:58 +05:00
gkodinov/kgeorge@rakia.(none)
f04ea13511 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B17212-4.1-opt
2006-07-14 12:49:14 +03:00
cmiller@zippy.(none)
fafc11205c Merge bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  zippy.(none):/home/cmiller/work/mysql/m41-maint--07AB5
2006-07-13 13:03:36 -04:00
igreenhoe/greenman@anubis.greendragongames.com
8e3d69d986 Merge igreenhoe@bk-internal.mysql.com:/home/bk/mysql-4.1-maint
into  anubis.greendragongames.com:/home/greenman/workspace-mysql/mysql/pending/bug-4.1-15977
2006-07-13 00:33:49 -07:00
tnurnberg@mysql.com/salvation.intern.azundris.com
4be51e1644 Bug#20432: mysql client interprets commands in comments
do not look for client-specific commands while inside a multi-line comment.
we will allow multi-comments pretty much anywhere within SQL-statements,
but client-specific commands (help, use, print, ...) must be the first token
in the input.
2006-07-13 09:04:06 +02:00
gkodinov/kgeorge@macbook.gmz
5079d5cf6a Bug #17212 results not sorted correctly by ORDER BY when using index
* don't use join cache when the incoming data set is already ordered
    for ORDER BY
    This choice must be made because join cache will effectively
    reverse the join order and the results will be sorted by the index
    of the table that uses join cache.
2006-07-12 10:57:38 +03:00
evgen@moonbone.local
363d14569e Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  moonbone.local:/work/16302-bug-4.1-opt-mysql
2006-07-12 06:12:59 +04:00
evgen@moonbone.local
5d4881b864 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  moonbone.local:/work/18503-bug-4.1-mysql
2006-07-12 02:52:29 +04:00
evgen@moonbone.local
8ffda481c9 Fixed bug#18503: Queries with a quantified subquery returning empty set
may return a wrong result.

An Item_sum_hybrid object has the was_values flag which indicates whether any
values were added to the sum function. By default it is set to true and reset
to false on any no_rows_in_result() call. This method is called only in
return_zero_rows() function. An ALL/ANY subquery can be optimized by MIN/MAX
optimization. The was_values flag is used to indicate whether the subquery
has returned at least one row. This bug occurs because return_zero_rows() is
called only when we know that the select will return zero rows before
starting any scans but often such information is not known.
In the reported case the return_zero_rows() function is not called and
the was_values flag is not reset to false and yet the subquery return no rows
Item_func_not_all and Item_func_nop_all functions return a wrong
comparison result.

The end_send_group() function now calls no_rows_in_result() for each item
in the fields_list if there is no rows were found for the (sub)query.
2006-07-12 01:52:18 +04:00
cmiller@zippy.(none)
f12bc24ac6 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  zippy.(none):/home/cmiller/work/mysql/m41-maint--07AB5
2006-07-11 14:25:42 -04:00
cmiller@zippy.(none)
22485908ce Bug#20729: Bad date_format() call makes mysql server crash
The problem is that the author used the wrong function to send a warning to the 
user about truncation of data.  push_warning() takes a constant string and 
push_warning_printf() takes a format and variable arguments to fill it.

Since the string we were complaining about contains percent characters, the 
printf() code interprets the "%Y" et c. that the user sends.  That's wrong, and
often causes a crash, especially if the date mentions seconds, "%s".

A alternate fix would be to use  push_warning_printf(..., "%s", warn_buff) .
2006-07-11 13:06:29 -04:00
evgen@moonbone.local
ff3ffe5c39 Merge moonbone.local:/work/allany-4.1-mysql
into  moonbone.local:/work/16302-bug-4.1-opt-mysql
2006-07-11 17:48:33 +04:00
evgen@moonbone.local
a65bf3bf90 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  moonbone.local:/home/evgen/bk-trees/mysql-4.1-opt
2006-07-11 17:35:36 +04:00
evgen@moonbone.local
4235ab7e1c Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  moonbone.local:/work/allany-4.1-mysql
2006-07-11 00:36:14 +04:00
evgen@moonbone.local
d34189715e Fixed bug#16302: Quantified subquery without any tables gives wrong results
The ALL/ANY subqueries are the subject of MIN/MAX optimization. The matter
of this optimization is to embed MIN() or MAX() function into the subquery
in order to get only one row by which we can tell whether the expression
with ALL/ANY subquery is true or false.
But when it is applied to a subquery like 'select a_constant' the reported bug
occurs. As no tables are specified in the subquery the do_select() function 
isn't called for the optimized subquery and thus no values have been added 
to a MIN()/MAX() function and it returns NULL instead of a_constant.
This leads to a wrong query result.

For the subquery like 'select a_constant' there is no reason to apply
MIN/MAX optimization because the subquery anyway will return at most one row.
Thus the Item_maxmin_subselect class is more appropriate for handling such
subqueries.

The Item_in_subselect::single_value_transformer() function now checks
whether tables are specified for the subquery. If no then this subselect is
handled like a UNION using an Item_maxmin_subselect object.
2006-07-11 00:34:37 +04:00
gkodinov/kgeorge@macbook.gmz
893e92761f Merge rakia:mysql/4.1/B14553
into  macbook.gmz:/Users/kgeorge/mysql/work/B14553-4.1-opt
2006-07-10 16:27:04 +03:00
gkodinov/kgeorge@mysql.com/rakia.(none)
2c9f5cc706 BUG#14553: NULL in WHERE resets LAST_INSERT_ID
To make MySQL compatible with some ODBC applications, you can find
the AUTO_INCREMENT value for the last inserted row with the following query:
 SELECT * FROM tbl_name WHERE auto_col IS NULL.
This is done with a special code that replaces 'auto_col IS NULL' with
'auto_col = LAST_INSERT_ID'.
However this also resets the LAST_INSERT_ID to 0 as it uses it for a flag
so as to ensure that only the first SELECT ... WHERE auto_col IS NULL
after an INSERT has this special behaviour.
In order to avoid resetting the LAST_INSERT_ID a special flag is introduced
in the THD class. This flag is used to restrict the second and subsequent
SELECTs instead of LAST_INSERT_ID.
2006-07-10 16:27:03 +03:00
ingo/mydev@chilla.local
d341ca941f Merge chilla.local:/home/mydev/mysql-4.1-bug17877
into  chilla.local:/home/mydev/mysql-4.1-amerge
2006-07-08 19:26:18 +02:00
bar@mysql.com
2303077238 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/bar/mysql-4.1.b17647
2006-07-07 12:17:00 +05:00
konstantin@bodhi.netgear
0db71aaf98 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  bodhi.netgear:/opt/local/work/mysql-4.1-19399
2006-07-07 00:01:05 +04:00
konstantin@bodhi.netgear
8e735d2c11 A fix and a test case for Bug#19399 "res 'Lost Connection' when
dropping/creating tables".

The bug could lead to a crash when multi-delete statements were
prepared and used with temporary tables.

The bug was caused by lack of clean-up of multi-delete tables before
re-execution of a prepared statement. In a statement like
DELETE t1 FROM t1, t2 WHERE ... the first table list (t1) is
moved to lex->auxilliary_table_list and excluded from lex->query_tables
or select_lex->tables. Thus it was unaccessible to reinit_stmt_before_use
and not cleaned up before re-execution of a prepared statement.
2006-07-06 23:59:04 +04:00
iggy@rolltop.ignatz42.dyndns.org
1fe4159026 Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1_bug20328
2006-07-06 15:13:25 -04:00
iggy@rolltop.ignatz42.dyndns.org
646dd6e65c Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint
into  rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1_bug16180
2006-07-06 15:00:31 -04:00
igor@olga.mysql.com
0e3d2dafd6 Fixed bug #18243.
The implementation of the method Item_func_reverse::val_str
for the REVERSE function modified the argument of the function.
This led to wrong results for expressions that contained
REVERSE(ref) if ref occurred somewhere else in the expressions.
2006-07-06 11:11:49 -07:00
acurtis@xiphis.org
86132d5d8f Bug#8706
"temporary table with data directory option fails"
  myisam should not use user-specified table name when creating
  temporary tables and use generated connection specific real name.
  Test included.
2006-07-05 17:18:59 -07:00
bar@mysql.com
3855520138 WL#2928 Date Translation NRE
(implemented by by Josh Chamas)
2006-07-04 17:40:40 +05:00
holyfoot@deer.(none)
6e11fcacee bug 20317 (test fails in embedded for different number of threads is
running)

I decided to make ps_1general test independent from actual number of
threads running
2006-07-03 14:54:09 +05:00
sergefp@mysql.com
61348cac0c Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/psergey/mysql-4.1-bug16168-push
2006-07-01 01:55:43 +04:00
monty@mysql.com
445dfdc3a7 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/my/mysql-4.1
2006-06-30 19:15:17 +03:00
monty@mysql.com
2bec1b86bb Reverted wrong bug fix (Bug#11228) 2006-06-30 18:29:27 +03:00