Commit graph

14927 commits

Author SHA1 Message Date
jimw@rama.(none)
c2d8b605f2 Bug #17608: String literals lost during INSERT query on FEDERATED table
The Federated storage engine used Field methods that had arbitrary limits on
  the amount of data they could process, which caused problems with data
  over that limit (4K). By removing those Field methods and just using
  features of the String class, we can avoid this problem.
2006-07-12 16:33:29 -07:00
jimw@rama.(none)
30d7290c21 Bug #17903: cast to char results in binary
The character set was not being properly initialized in CAST() with
  a type like "CHAR(2) BINARY", which resulted in incorrect results or
  even a crash.
2006-07-12 13:22:38 -07:00
kostja@bodhi.local
b823c2f601 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime
2006-07-12 22:16:50 +04:00
kostja@bodhi.local
bd183d42dc Fix a valgrind warning in type_date test. 2006-07-12 19:19:43 +04:00
mkindahl@dl145k.mysql.com
8e7754c9b2 Merge dl145k.mysql.com:/data0/mkindahl/bkroot/mysql-5.0
into  dl145k.mysql.com:/data0/mkindahl/bk/mysql-5.0-rpl
2006-07-12 10:05:55 +02:00
mkindahl@dl145k.mysql.com
0f070b0b32 Merge dl145k.mysql.com:/data0/mkindahl/bkroot/mysql-4.1
into  dl145k.mysql.com:/data0/mkindahl/bk/mysql-4.1-rpl
2006-07-12 10:04:40 +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
cmiller@maint1.mysql.com
f83ad34329 Merge cmiller@bk-internal.mysql.com:/home/bk/mysql-4.1
into  maint1.mysql.com:/data/localhome/cmiller/mysql-4.1
2006-07-12 05:34:56 +02: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
jimw@rama.(none)
14ae9590dd Merge bk-internal:/home/bk/mysql-5.0-engines
into  rama.(none):/home/jimw/my/mysql-5.0-17766
2006-07-11 17:29:36 -07:00
jimw@rama.(none)
005c2a05d4 Bug #17766: The server accepts to create MERGE tables which cannot work
Changed the error reporting (and a crash) when inserting data into a
 MERGE table that has no underlying tables or no INSERT_METHOD specified
 by reporting that it is read-only.
2006-07-11 17:28:50 -07: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
kostja@bodhi.local
15a76619c7 Post-merge fixes for Bug#19399 "Stored Procedures 'Lost Connection'
when dropping/creating tables"
2006-07-11 23:39:51 +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
kostja@bodhi.local
e4598dae1f Merge bodhi.local:/opt/local/work/tmp_merge
into  bodhi.local:/opt/local/work/mysql-5.0-runtime-merge-41
2006-07-11 21:19:57 +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
kostja@bodhi.local
fbf54f8d72 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime-merge-41
2006-07-11 17:04:27 +04:00
cmiller@zippy.(none)
faa575645f Merge zippy.(none):/home/cmiller/work/mysql/mysql-4.0__bug19006
into  zippy.(none):/home/cmiller/work/mysql/merge/mysql-4.1
2006-07-11 07:24:59 -04:00
ingo/mydev@chilla.local
50b630ba7c Merge chilla.local:/home/mydev/mysql-5.0-release
into  chilla.local:/home/mydev/mysql-5.0-amerge
2006-07-11 13:01:27 +02:00
jimw@rama.(none)
9c18b5752c Bug #18539: uncompress(d) is null: impossible?
The UNCOMPRESS() function was not marked as maybe_null, even though
  it returns NULL on invalid data. This confused the optimizer.
2006-07-10 19:50:40 -07:00
kostja@bodhi.local
4f3636dd5a Fix yet another Windows build failure: "true" -> TRUE 2006-07-11 01:46:44 +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
kostja@bodhi.local
171bcbf339 Fix a Windows build failure. 2006-07-10 23:58:36 +04:00
ingo/mydev@chilla.local
dfaa3c78f6 Revoking patch for Bug#10952 on behalf of Brian. 2006-07-10 20:46:05 +02:00
guilhem@gbichot3.local
02c17dfb17 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  gbichot3.local:/home/mysql_src/mysql-5.0
2006-07-10 17:06:19 +02:00
gkodinov/kgeorge@macbook.gmz
8f71e47a0d Merge macbook.gmz:/Users/kgeorge/mysql/work/B14553-4.1-opt
into  macbook.gmz:/Users/kgeorge/mysql/work/B14553-5.0-opt
2006-07-10 16:44:05 +03: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
msvensson@neptunus.(none)
0efd88bd25 Merge bk-internal:/home/bk/mysql-5.0-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
2006-07-10 12:48:09 +02:00
aelkin/elkin@dsl-hkigw8-feb1fb00-100.dhcp.inet.fi
64d096f988 Merge dsl-hkigw8-feb1fb00-100.dhcp.inet.fi:/usr_rh9/home/elkin.rh9/MySQL/TEAM/BARE/4.1
into  dsl-hkigw8-feb1fb00-100.dhcp.inet.fi:/usr_rh9/home/elkin.rh9/MySQL/TEAM/FIXES/5.0/20919_temp_nlog
2006-07-10 13:11:29 +03:00
aelkin/elkin@dsl-hkigw8-feb1fb00-100.dhcp.inet.fi
fadbdf27c3 BUG#20919 temp tables closing fails when binlog is off
closing temp tables through end_thread
had a flaw in binlog-off branch of close_temporary_tables where
next table to close was reset via table->next
 for (table= thd->temporary_tables; table; table= table->next)
which was wrong since the current table instance got destoyed at
	close_temporary(table, 1);

The fix adapts binlog-on branch method to engage the loop's internal 'next' variable which holds table->next prior table's destoying.
2006-07-10 00:26:26 +03:00
kostja@bodhi.local
2ab1e065e4 Fix compiler warnings in sql_udf.h: ISO C++ forbids casting
between pointer to function and pointer to object.
2006-07-09 13:03:51 +04:00
kostja@bodhi.local
f1d949a856 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime-merge-41
2006-07-08 21:45:02 +04:00
ingo/mydev@chilla.local
065cdb030a Merge chilla.local:/home/mydev/mysql-4.1-bug14400
into  chilla.local:/home/mydev/mysql-4.1-amerge
2006-07-08 19:25:01 +02:00
kostja@bodhi.local
ff1947da1e A post-merge fix. 2006-07-08 04:07:43 +04:00
kostja@bodhi.local
a2c0cdd75b Merge bodhi.local:/opt/local/work/tmp_merge
into  bodhi.local:/opt/local/work/mysql-5.0-runtime-merge-41
2006-07-08 02:30:07 +04:00
kostja@bodhi.local
7bf73ac3e5 Merge bodhi.local:/opt/local/work/mysql-5.0-root
into  bodhi.local:/opt/local/work/mysql-5.0-runtime
2006-07-07 22:09:43 +04:00
kroki/tomash@mysql.com/moonlight.intranet
a81c1b27e5 Bug#19207: Final parenthesis omitted for CREATE INDEX in Stored Procedure
Wrong criteria was used to distinguish the case when there was no
lookahead performed in the parser.  Bug affected only statements
ending in one-character token without any optional tail, like CREATE
INDEX and CALL.
2006-07-07 21:24:54 +04:00
bar@myoffice.izhnet.ru
eec0355de2 func_str.result, func_str.test:
Adding test case.
item_strfunc.cc:
  bug#11728 string function LEFT, strange undocumented behaviour
  Fixing LEFT and RIGHT return NULL if the second
  argument is NULL.
2006-07-07 17:06:30 +05: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
igor@olga.mysql.com
f6d6ac1e0f Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2006-07-06 13:40:08 -07: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
ingo@chilla.local
b900484346 Merge chilla.local:/home/mydev/mysql-5.0
into  chilla.local:/home/mydev/mysql-5.0-amerge
2006-07-06 21:59:48 +02: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
igor@olga.mysql.com
6e1c8ad830 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  olga.mysql.com:/home/igor/mysql-4.1-opt
2006-07-06 11:38:48 -07: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