Commit graph

22838 commits

Author SHA1 Message Date
tnurnberg@white.intern.koehntopp.de
4bd91d2b27 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/scratch/tnurnberg/31700/51-31700
2007-11-10 21:52:18 +01:00
kaa@polly.(none)
ed2ae869d9 Merge polly.(none):/home/kaa/src/opt/bug32202/my51-bug26215
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt
2007-11-10 22:48:17 +03:00
kaa@polly.(none)
9e829a56d4 Merge polly.(none):/home/kaa/src/opt/bug32202/my50-bug26215
into  polly.(none):/home/kaa/src/opt/bug32202/my51-bug26215
2007-11-10 22:27:34 +03:00
holyfoot/hf@hfmain.(none)
0fe103f90f Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/31893/my51-31893
2007-11-10 23:17:39 +04:00
tnurnberg@white.intern.koehntopp.de
82e112bd5e Merge mysql.com:/misc/mysql/31700/50-31700
into  mysql.com:/misc/mysql/31700/51-31700
2007-11-10 18:44:40 +01:00
tnurnberg@mysql.com/white.intern.koehntopp.de
8a5e621ff2 Bug#31700: thd->examined_row_count not incremented for 'const' type queries
UNIQUE (eq-ref) lookups result in table being considered as a "constant" table.
Queries that consist of only constant tables are processed in do_select() in a
special way that doesn't invoke evaluate_join_record(), and therefore doesn't
increase the counters join->examined_rows and join->thd->row_count.

The patch increases these counters in this special case.

NOTICE:
This behavior seems to contradict what the documentation says in Sect. 5.11.4:
"Queries handled by the query cache are not added to the slow query log, nor
are queries that would not benefit from the presence of an index because the
table has zero rows or one row."

No test case in 5.0 as issue shows only in slow query log, and other counters
can give subtly different values (with regard to counting in create_sort_index(),
synthetic rows in ROLLUP, etc.).
2007-11-10 18:29:13 +01:00
tnurnberg@white.intern.koehntopp.de
d4dc2c3aa0 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/31800/51-31800
2007-11-10 13:36:40 +01:00
tnurnberg@white.intern.koehntopp.de
83849fd171 Merge mysql.com:/misc/mysql/31800/50-31800
into  mysql.com:/misc/mysql/31800/51-31800
2007-11-10 13:34:12 +01:00
tnurnberg@mysql.com/white.intern.koehntopp.de
dd7452c280 Bug#31800: Date comparison fails with timezone and slashes for greater than comparison
BETWEEN was more lenient with regard to what it accepted as a DATE/DATETIME
in comparisons than greater-than and less-than were. ChangeSet makes < >
comparisons similarly robust with regard to trailing garbage (" GMT-1")
and "missing" leading zeros. Now all three comparators behave similarly
in that they throw a warning for "junk" at the end of the data, but then
proceed anyway if possible. Before < > fell back on a string- (rather than
date-) comparison when a warning-condition was raised in the string-to-date
conversion. Now the fallback only happens on actual errors, while warning-
conditions still result in a warning being to delivered to the client.
2007-11-10 13:33:42 +01:00
tnurnberg@white.intern.koehntopp.de
05b41fdae9 Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/misc/mysql/31990/51-31990
2007-11-10 03:14:50 +01:00
tnurnberg@white.intern.koehntopp.de
80a3f89ea4 Merge mysql.com:/misc/mysql/31990/50-31990
into  mysql.com:/misc/mysql/31990/51-31990
2007-11-10 03:11:18 +01:00
kaa@polly.(none)
8c19367881 Fix for bug #32202: ORDER BY not working with GROUP BY
The bug is a regression introduced by the fix for bug30596. The problem
was that in cases when groups in GROUP BY correspond to only one row,
and there is ORDER BY, the GROUP BY was removed and the ORDER BY
rewritten to ORDER BY <group_by_columns> without checking if the
columns in GROUP BY and ORDER BY are compatible. This led to
incorrect ordering of the result set as it was sorted using the
GROUP BY columns. Additionaly, the code discarded ASC/DESC modifiers
from ORDER BY even if its columns were compatible with the GROUP BY
ones.

This patch fixes the regression by checking if ORDER BY columns form a
prefix of the GROUP BY ones, and rewriting ORDER BY only in that case,
preserving the ASC/DESC modifiers. That check is sufficient, since the
GROUP BY columns contain a unique index.
2007-11-09 19:12:12 +03:00
kaa@polly.(none)
5ab2d821d1 Merge polly.(none):/home/kaa/src/opt/bug32020/my51-bug31445
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt
2007-11-09 13:43:42 +03:00
kaa@polly.(none)
ccd8710958 Merge polly.(none):/home/kaa/src/opt/bug32020/my50-bug31445
into  polly.(none):/home/kaa/src/opt/bug32020/my51-bug31445
2007-11-09 13:31:48 +03:00
kaa@polly.(none)
e703c6a78c Fix for bug #32020: loading udfs while --skip-grant-tables is enabled
causes out of memory errors

The code in mysql_create_function() and mysql_drop_function() assumed
that the only reason for UDFs being uninitialized at that point is an
out-of-memory error during initialization. However, another possible 
reason for that is the --skip-grant-tables option in which case UDF 
initialization is skipped and UDFs are unavailable.

The solution is to check whether mysqld is running with
--skip-grant-tables and issue a proper error in such a case.
2007-11-09 13:29:43 +03:00
kaa@polly.(none)
ce6098bd66 Merge polly.(none):/home/kaa/src/opt/bug32103/my51-bug26215
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt
2007-11-08 12:10:36 +03:00
kaa@polly.(none)
7fb8943807 Merge polly.(none):/home/kaa/src/opt/bug32103/my50-bug26215
into  polly.(none):/home/kaa/src/opt/bug32103/my51-bug26215
2007-11-08 11:50:26 +03:00
kaa@polly.(none)
8efd7ef146 Merge polly.(none):/home/kaa/src/opt/bug32103/my41-bug26215
into  polly.(none):/home/kaa/src/opt/bug32103/my50-bug26215
2007-11-08 11:46:58 +03:00
tnurnberg@mysql.com/white.intern.koehntopp.de
5a5ed2a509 Bug#31990: MINUTE() and SECOND() return bogus results when used on a DATE
HOUR(), MINUTE(), ... returned spurious results when used on a DATE-cast.
This happened because DATE-cast object did not overload get_time() method
in superclass Item. The default method was inappropriate here and
misinterpreted the data.

Patch adds missing method; get_time() on DATE-casts now returns SQL-NULL
on NULL input, 0 otherwise. This coincides with the way DATE-columns
behave.
2007-11-08 06:08:44 +01:00
kaa@polly.(none)
f1a3c36403 Fix for bug #32103: optimizer crash when join on int and mediumint with
variable in where clause.

Problem: the new_item() method of Item_uint used an incorrect
constructor. "new Item_uint(name, max_length)" calls
Item_uint::Item_uint(const char *str_arg, uint length) which assumes the
first argument to be the string representation of the value, not the
item's name. This could result in either a server crash or incorrect
results depending on usage scenarios.

Fixed by using the correct constructor in new_item():
Item_uint::Item_uint(const char *str_arg, longlong i, uint length).
2007-11-07 18:45:04 +03:00
kaa@polly.(none)
2045fdb593 Merge polly.(none):/home/kaa/src/opt/bug25421/my51-bug31445
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt
2007-11-07 15:26:21 +03:00
kaa@polly.(none)
3ebb915d71 Fix for bug #25421: MySQL threads don't respond to the kill command
Calculating the estimated number of records for a range scan may take a
significant time, and it was impossible for a user to interrupt that
process by killing the connection or the query.

Fixed by checking the thread's 'killed' status in check_quick_keys() and
interrupting the calculation process if it is set to a non-zero value.
2007-11-07 15:08:50 +03:00
sergefp@mysql.com
9f6febf933 Better comments 2007-11-06 21:57:51 +03:00
holyfoot/hf@hfmain.(none)
fc6a31f38c Merge bk@192.168.21.1:mysql-5.1-opt
into  mysql.com:/home/hf/work/31758/my51-31758
2007-11-05 19:10:18 +04:00
holyfoot/hf@hfmain.(none)
439a50a1f0 Merge mysql.com:/home/hf/work/31758/my50-31758
into  mysql.com:/home/hf/work/31758/my51-31758
2007-11-05 18:27:17 +04:00
holyfoot/hf@hfmain.(none)
9f40b1dae3 Merge mysql.com:/home/hf/work/31758/my41-31758
into  mysql.com:/home/hf/work/31758/my50-31758
2007-11-05 18:12:42 +04:00
gluh@eagle.(none)
606e269d91 Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-11-02 13:01:10 +04:00
gluh@mysql.com/eagle.(none)
4198c2bcf5 Bug#31630 debug assert with explain extended select ... from i_s
added 'in_rows' column value for 'describe extended' for the case 
when 'describe' handles I_S table
2007-11-02 12:39:14 +04:00
gkodinov/kgeorge@magare.gmz
f5c9e63472 Merge magare.gmz:/home/kgeorge/mysql/work/B31794-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B31794-5.1-opt
2007-11-01 18:49:45 +02:00
gkodinov/kgeorge@magare.gmz
92a5605d43 Bug #31794: no syntax error on SELECT id FROM t HAVING count(*)>2
The HAVING clause is subject to the same rules as the SELECT list
about using aggregated and non-aggregated columns.
But this was not enforced when processing implicit grouping from
using aggregate functions.
Fixed by performing the same checks for HAVING as for SELECT.
2007-11-01 18:36:24 +02:00
gkodinov/kgeorge@magare.gmz
e0e6547296 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B31866-5.1-opt
2007-11-01 14:44:30 +02:00
gkodinov/kgeorge@magare.gmz
447eff2d98 Bug #31866: MySQL Server crashes on SHOW CREATE TRIGGER statement
SHOW CREATE TRIGGER was not checking for detected errors 
opening/reading the trigger file. 
Fixed to return the already generated error.
2007-11-01 14:42:14 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
edbf4120f6 Bug #31893 Partitions: crash if subpartitions and engine change.
The new default database engine for altered table was reassigned to
the old one. That's wrong thing by itself, and (as the engine
for a subpartition gets that new value) leads to DBUG_ASSERTION
in mysql_unpack_partition()
2007-10-31 16:01:29 +04:00
gkodinov/kgeorge@magare.gmz
a9e65c8940 Merge magare.gmz:/home/kgeorge/mysql/work/B31884-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B31884-5.1-opt
2007-10-30 16:21:17 +02:00
gkodinov/kgeorge@magare.gmz
f370e4b3d4 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B31884-5.0-opt
2007-10-30 16:18:56 +02:00
gkodinov/kgeorge@magare.gmz
01fe24cd68 Bug #31884: Assertion + crash in subquery in the SELECT clause.
Item_in_subselect's only externally callable method is val_bool().
However the nullability in the wrapper class (Item_in_optimizer) is 
established by calling the "forbidden" method val_int().

Fixed to use the correct method (val_bool() ) to establish nullability 
of Item_in_subselect in Item_in_optimizer.
2007-10-30 14:27:21 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
e93574e9d1 Bug #31758 inet_ntoa, oct crashes server with null+filesort
Item_func_inet_ntoa and Item_func_conv inherit 'maybe_null' flag from an
argument, which is wrong.
Both can be NULL with notnull arguments, so that's fixed.
2007-10-30 12:35:03 +04:00
gluh@eagle.(none)
61bdbf8a90 Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-10-29 15:40:41 +04:00
gluh@mysql.com/eagle.(none)
6b92ec4acb Bug#30889: filesort and order by with float/numeric crashes server
There are two problems with ROUND(X, D) on an exact numeric 
(DECIMAL, NUMERIC type) field of a table:
1) The implementation of the ROUND function would change the number of decimal
places regardless of the value decided upon in fix_length_and_dec. When the
number of decimal places is not constant, this would cause an inconsistent
state where the number of digits was less than the number of decimal places,
which crashes filesort.

Fixed by not allowing the ROUND operation to add any more decimal places than
was decided in fix_length_and_dec.

2) fix_length_and_dec would allow the number of decimals to be greater than
the maximium configured value for constant values of D. This led to the same 
crash as in (1).

Fixed by not allowing the above in fix_length_and_dec.
2007-10-29 15:39:56 +04:00
gluh@eagle.(none)
a2fa8f724a Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-10-29 14:53:42 +04:00
gluh@mysql.com/eagle.(none)
b943d8cf3c Bug#30897 GROUP_CONCAT returns extra comma on empty fields
The fix is a copy of Martin Friebe's suggestion.
added testing for no_appended which will be false if anything,
including the empty string is in result
2007-10-29 14:53:10 +04:00
kaa@polly.(none)
76bf63ba4b Fixed compile warnings introduced by the patch for bug #29131. 2007-10-29 11:52:44 +03:00
kaa@polly.(none)
7518ea2e01 Merge polly.(none):/home/kaa/src/opt/bug29131/my51-bug29131
into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt
2007-10-29 10:31:26 +03:00
kaa@polly.(none)
42c2ef0f02 Merge polly.(none):/home/kaa/src/opt/bug29131/my50-bug29131
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
2007-10-29 10:25:48 +03:00
gshchepa/uchum@gleb.loc
c8a4b86e6c Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-10-28 01:23:54 +05:00
gshchepa/uchum@gleb.loc
46283f72aa Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-10-28 01:19:20 +05:00
gkodinov/kgeorge@magare.gmz
b0558ed25c Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30715-merged-5.1-opt
2007-10-27 10:21:02 +03:00
gkodinov/kgeorge@magare.gmz
022f2334d1 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30715-merged-5.0-opt
2007-10-27 10:20:12 +03:00
gshchepa/uchum@gleb.loc
30f8c35bca Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-10-26 18:05:46 +05:00
gshchepa/uchum@gleb.loc
9bcd2fb0a6 Merge gleb.loc:/home/uchum/work/bk/PA/5.0-opt-31663
into  gleb.loc:/home/uchum/work/bk/5.0-opt
2007-10-26 17:55:16 +05:00