Commit graph

5248 commits

Author SHA1 Message Date
svoj@mysql.com/june.mysql.com
5d1ccce58a BUG#31159 - fulltext search on ucs2 column crashes server
ucs2 doesn't provide required by fulltext ctype array. Crash
happens because fulltext attempts to use unitialized ctype
array.

Fixed by converting ucs2 fields to compatible utf8 analogue.
2007-10-24 16:09:30 +05:00
istruewing@stella.local
de7e0c9e73 Merge stella.local:/home/mydev/mysql-4.1-amain
into  stella.local:/home/mydev/mysql-4.1-axmrg
2007-09-14 10:10:29 +02:00
svoj@mysql.com/june.mysql.com
84a9e656e0 BUG#30590 - delete from memory table with composite btree primary key
DELETE query against memory table with btree index may remove
not all matching rows. This happens only when DELETE uses
index read method to find matching rows. E.g. for queries
like DELETE FROM t1 WHERE a=1.

Fixed by reverting fix for BUG9719 and applying proper solution.
2007-09-13 15:39:16 +05:00
sergefp@mysql.com
da04109de2 BUG#30385: Server crash when deleting with ORDER BY and LIMIT
in get_index_for_order(), don't walk over the end of the index key parts
when matching index description and needed ordering.
2007-09-10 16:26:51 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
288ab1aa41 Merge mysql.com:/home/hf/work/029717/my41-29717
into  mysql.com:/home/hf/work/29717/my41-29717
2007-07-31 11:00:19 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
f1ee2d0687 Bug #29717 INSERT INTO SELECT inserts values even if
SELECT statement itself returns empty.

As a result of this bug 'SELECT AGGREGATE_FUNCTION(fld) ... GROUP BY'
can return one row instead of an empty result set.

When GROUP BY only has fields of constant tables
(with a single row), the optimizer deletes the group_list.
After that we lose the information about whether we had an
GROUP BY statement. Though it's important
as SELECT min(x) from empty_table; and
   SELECT min(x) from empty_table GROUP BY y; have to return
different results - the first query should return one row,
second - an empty result set.
So here we add the 'group_optimized_away' flag to remember this case
when GROUP BY exists in the query and is removed
by the optimizer, and check this flag in end_send_group()
2007-07-31 10:46:04 +05:00
igor@olga.mysql.com
07e0cd2f4e Fixed bug #29911.
This bug manifested itself for join queries with GROUP BY and HAVING clauses
whose SELECT lists contained DISTINCT. It occurred when the optimizer could
deduce that the result set would have not more than one row.
The bug could lead to wrong result sets for queries of this type because
HAVING conditions were erroneously ignored in some cases in the function
remove_duplicates.
2007-07-20 22:56:19 -07:00
tsmith@sita.local
1106dddfa2 Merge sita.local:/Users/tsmith/m/bk/41
into  sita.local:/Users/tsmith/m/bk/maint/41
2007-07-09 01:21:22 -06:00
tsmith@maint1.mysql.com
8c8883aeb6 Merge maint1.mysql.com:/data/localhome/tsmith/bk/41
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/41
2007-07-04 21:22:35 +02:00
gshchepa/uchum@gleb.loc
1f85dac21c loaddata.result, loaddata.test:
Test case update for bug #29294.
2007-07-03 21:45:20 +05:00
gshchepa/uchum@gleb.loc
dbe4fb94ca Fixed bug #29294.
The `SELECT 'r' INTO OUTFILE ... FIELDS ENCLOSED BY 'r' ' statement
encoded the 'r' string to a 4 byte string of value x'725c7272'
(sequence of 4 characters: r\rr).
The LOAD DATA statement decoded this string to a 1 byte string of
value x'0d' (ASCII Carriage Return character) instead of the original
'r' character.
The same error also happened with the FIELDS ENCLOSED BY clause
followed by special characters: 'n', 't', 'r', 'b', '0', 'Z' and 'N'.

NOTE 1: This is a result of the undocumented feature: the LOAD DATA INFILE
recognises 2-byte input sequences like \n, \t, \r and \Z in addition
to documented 2-byte sequences: \0 and \N. This feature should be
documented (here backspace character is a default ESCAPED BY character,
in the real-life example it may be any ESCAPED BY character).

NOTE 2, changed behaviour:
Now the `SELECT INTO OUTFILE' statement with the `FIELDS ENCLOSED BY'
clause followed by one of: 'n', 't', 'r', 'b', '0', 'Z' or 'N' characters
encodes this special character itself by doubling it ('r' --> 'rr'),
not by prepending it with an escape character.
2007-07-03 19:37:46 +05:00
gshchepa/uchum@gleb.loc
f8bf427ba4 Fixed bug #29251.
Sometimes special 0 ENUM values was ALTERed to normal
empty string ENUM values.

Special 0 ENUM value has the same string representation
as normal ENUM value defined as '' (empty string).
The do_field_string function was used to convert
ENUM data at an ALTER TABLE request, but this
function doesn't care about numerical "indices" of
ENUM values, i.e. do_field_string doesn't distinguish
a special 0 value from an empty string value.

A new copy function called do_field_enum has been added to
copy special 0 ENUM values without conversion to an empty
string.
2007-06-27 03:41:50 +05:00
tsmith@maint1.mysql.com
2bfa624a52 Merge maint1.mysql.com:/data/localhome/tsmith/bk/41
into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/41
2007-06-26 23:56:56 +02:00
gkodinov/kgeorge@magare.gmz
91f3301c03 Bug #29116: Test "rpl_change_master" returns different
counters from relay

Updated the test to return columns vertically.
2007-06-19 13:19:20 +03:00
msvensson@pilot.(none)
e003d8ad3b Merge bk-internal:/home/bk/mysql-4.1-maint
into  pilot.(none):/data/msvensson/mysql/mysql-4.1-maint
2007-06-19 11:30:45 +02:00
msvensson@pilot.(none)
caebb719b2 WL#3232 mysqltest, enable --source $variables/<remaining_path_to_file>
- Add test case for this already existing feature
2007-06-19 11:06:02 +02:00
holyfoot/hf@mysql.com/hfmain.(none)
79062df3fb Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/d2/hf/mrg/mysql-4.1-opt
2007-06-14 16:35:46 +05:00
gluh@mysql.com/eagle.(none)
466da4ccf1 Bug#28553 mysqld crash in "purge master log before(select time from information_schema)"
forbid the use of subselect in PURGE LOGS BEFORE command
2007-06-06 18:29:15 +05:00
msvensson@pilot.(none)
92675afc77 Merge pilot.(none):/data/msvensson/mysql/bug28497/my41-bug28497-query_get_value
into  pilot.(none):/data/msvensson/mysql/mysql-4.1-maint
2007-06-01 14:35:30 +02:00
msvensson@pilot.(none)
09c5c03cb2 Bug#28497 wait_for_slave_to_stop can cause random replication mysql-test failures
- Add funtion "query_get_value to allow reading a fields value
   into a $variable
2007-06-01 12:01:42 +02:00
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
msvensson@pilot.blaudden
7bc79da2c8 Merge bk-internal:/home/bk/mysql-4.1-maint
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-05-18 12:58:11 +02:00
msvensson@pilot.blaudden
e05aa94353 WL#2247 mysqltest: add option for sorting results
- Final touchups
2007-05-18 12:50:23 +02: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
msvensson@pilot.blaudden
d5676f2feb WL#2247 mysqltest: add option for sorting results
- Change from "query_sorted <query>" to "sorted_results"
2007-05-16 17:19:36 +02: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
msvensson@pilot.blaudden
eeccd0de97 Merge pilot.blaudden:/home/msvensson/mysql/bug28193/my41-bug28193
into  pilot.blaudden:/home/msvensson/mysql/mysql-4.1-maint
2007-05-09 10:49:52 +02:00
msvensson@pilot.blaudden
6c0f90e921 Bug #28193 outfile fails randomly in pushbuild
- Change "exec rm" to "remove_file"
2007-05-09 10:49:11 +02: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
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
395d8751d5 Fix in comments. 2007-04-29 18:28:58 -07: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
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
gshchepa/uchum@gshchepa.loc
3322b3c0b9 Fixed bug #20710.
This bug occurs when error message length exceeds allowed limit: my_error()
function outputs "%s" sequences instead of long string arguments.

Formats like %-.64s are very common in errmsg.txt files, however my_error()
function simply ignores precision of those formats.
2007-04-29 00:50:33 +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
joerg@trift-lap.fambruehe
69d39592b9 Merge trift-lap.fambruehe:/MySQL/M41/mysql-4.1
into  trift-lap.fambruehe:/MySQL/M41/push-4.1
2007-04-26 16:09:19 +02: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
tsmith@quadxeon.mysql.com
12147d9553 Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/41
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/41
2007-04-23 21:36:46 +02:00
joerg@debian.(none)
e791812895 Merge debian.(none):/M41/mysql-4.1
into  debian.(none):/M41/push-4.1
2007-04-23 11:36:30 +02: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
svoj@mysql.com/june.mysql.com
aa432f0ffb Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG24342/mysql-4.1-engines
2007-04-18 16:16:58 +05:00