Commit graph

31515 commits

Author SHA1 Message Date
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
evgen@moonbone.local
0a84eb5ff2 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/19862-bug-5.0-opt-mysql
2006-07-26 00:37:35 +04:00
evgen@moonbone.local
4ee2e07cc0 Fixed bug#19862: Sort with filesort by function evaluates function twice
When there is no index defined filesort is used to sort the result of a
query. If there is a function in the select list and the result set should be
ordered by it's value then this function will be evaluated twice. First time to
get the value of the sort key and second time to send its value to a user.
This happens because filesort when sorts a table remembers only values of its
fields but not values of functions.
All functions are affected. But taking into account that SP and UDF functions
can be both expensive and non-deterministic a temporary table should be used 
to store their results and then sort it to avoid twice SP evaluation and to 
get a correct result.

If an expression referenced in an ORDER clause contains a SP or UDF 
function, force the use of a temporary table.

A new Item_processor function called func_type_checker_processor is added
to check whether the expression contains a function of a particular type.
2006-07-26 00:31:29 +04:00
igor@olga.mysql.com
88e6b91096 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2006-07-25 12:47:01 -07:00
gkodinov/kgeorge@macbook.gmz
f5b0dd6a00 Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE clause is called
When executing INSERT over a view with calculated columns it was assuming all
  elements of the fields collection are actually Item_field instances.
  This may not be true when inserting into a view and that view has columns that are 
  such expressions that allow updating (like setting a collation for example).
  Corrected to access field information through the filed_for_view_update() function and 
  retrieve correctly the field info even for "update-friendly" non-Item_field items.
2006-07-25 18:42:49 +03:00
joerg@trift2.
367dcdf853 "mysql-test-run.pl" must write a "Logging:" line for the evaluation of RPM build tests.
(Re-apply a patch from the general tree to the clone.)
2006-07-25 12:56:23 +02:00
grog@eucla.lemis.com
f50d4caa95 slave.cc:
BUG#20850: Assert during slave shutdown in many rpl_* tests
      This patch has already been applied to 5.1.
2006-07-25 20:00:18 +09:30
gkodinov/kgeorge@rakia.(none)
9e9fb3e4e4 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B16712-5.0-opt
2006-07-25 11:56:22 +03:00
holyfoot/hf@mysql.com/deer.(none)
a9a345d9a5 Merge mysql.com:/home/hf/work/mysql-4.1.mrg
into  mysql.com:/home/hf/work/mysql-5.0.mrg
2006-07-25 13:50:17 +05:00
gkodinov/kgeorge@macbook.gmz
9380bb837f Bug#16712: group_concat returns odd srting insead of intended result
when calculating GROUP_CONCAT all blob fields are transformed
  to varchar when making the temp table.
  However a varchar has at max 2 bytes for length. 
  This fix makes the conversion only for blobs whose max length 
  is below that limit. 
  Otherwise blob field is created by make_string_field() call.
2006-07-25 11:45:10 +03:00
igor@olga.mysql.com
69856b29b2 Fixed bug #21231: wrong results for a simple query with a
a non-correlated single-row subquery over information schema.

The function get_all_tables filling all information schema
tables reset lex->sql_command to SQLCOM_SHOW_FIELDS. After
this the function could evaluate partial conditions related to
some columns. If these conditions contained a subquery over
information schema it led to a wrong evaluation and a wrong 
result set.
This bug was already fixed in 5.1.
This patch follows the way how it was done in 5.1 where
the value of lex->sql_command is set to SQLCOM_SHOW_FIELDS
in get_all_tables only for the calls of the function 
open_normal_and_derived_tables and is restored after these
calls.
2006-07-24 19:05:46 -07:00
joerg@trift2.
5e442de398 Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-4.1
into  trift2.:/M41/push-4.1
2006-07-24 19:27:01 +02:00
joerg@trift2.
b7cf8cefe9 Merge trift2.:/M41/clone-4.1
into  trift2.:/M41/push-4.1
2006-07-24 19:18:30 +02: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
joerg@trift2.
e31f8a662c Merge trift2.:/M41/clone-4.1
into  trift2.:/M50/merge-4.1-to-5.0
2006-07-24 16:30:31 +02:00
joerg@trift2.
1419b5c249 Merge trift2.:/M41/push-1-4.1
into  trift2.:/M50/merge-4.1-to-5.0
2006-07-24 16:04:40 +02:00
joerg@trift2.
37408ed0f3 Merge trift2.:/M41/tmp_merge
into  trift2.:/M50/merge-4.1-to-5.0
2006-07-24 15:47: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
joerg@trift2.
5ac44f14cb Merge trift2.:/M41/tmp_merge
into  trift2.:/M50/merge-4.1-to-5.0
2006-07-24 14:06:17 +02:00
kroki/tomash@moonlight.intranet
6d05e32d82 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug14702
2006-07-24 15:13:21 +04:00
kroki/tomash@moonlight.intranet
89ea3b01b5 BUG#14702: misleading error message when syntax error in
CREATE PROCEDURE

The bug was fixed already.  This changeset adds a test case.
2006-07-24 15:10:50 +04:00
kostja@bodhi.local
2ce1a07c89 A fix and a test case for Bug#15752 "Lost connection to MySQL server
when calling a SP from C API"

The bug was caused by lack of checks for misuse in mysql_real_query. 
A stored procedure always returns at least one result, which is the 
status of execution of the procedure itself.
This result, or so-called OK packet, is similar to a result
returned by INSERT/UPDATE/CREATE operations: it contains the overall
status of execution, the number of affected rows and the number of
warnings. The client test program attached to the bug did not read this 
result and ivnoked the next query. In turn, libmysql had no check for 
such scenario and mysql_real_query was simply trying to send that query 
without reading the pending response, thus messing up the communication
protocol.

The fix is to return an error from mysql_real_query when it's called
prior to retrieval of all pending results.
2006-07-24 14:56:53 +04:00
kent@mysql.com/c-4b4072d5.010-2112-6f72651.cust.bredbandsbolaget.se
38afcc3915 Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0
into  mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
2006-07-24 10:59:51 +02:00
kent@mysql.com/c-4b4072d5.010-2112-6f72651.cust.bredbandsbolaget.se
e22532fd80 mwasmnlm, mwccnlm, mwldnlm:
Filter out strange control characters, messes up logs
2006-07-24 10:55:26 +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
igor@olga.mysql.com
74438f31e4 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2006-07-22 12:45:45 -07:00
igor@olga.mysql.com
66ecb7df81 Fixed bug #18925: wrong results for queries with
subqueries on information schema that use MIN/MAX aggregation.

Execution of some correlated subqueries may set the value
of null_row to 1 for tables used in the subquery.
If the the subquery is on information schema it causes
rejection of any row for the following executions of
the subquery in the case when an optimization filtering
by some condition is applied.

The fix restores the value of the null_row flag for 
each execution of a subquery on information schema.
2006-07-22 12:44:54 -07:00
gkodinov/kgeorge@macbook.mshome.net
3cd6780241 Merge office:mysql/autopush/B20466-5.0-opt
into  macbook.mshome.net:/Users/kgeorge/mysql/work/B20466-5.0-opt
2006-07-22 15:18:30 +03:00
gkodinov/kgeorge@rakia.(none)
d45bd0ca9f Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B20868-5.0-opt
2006-07-22 15:18:29 +03:00
sergefp@mysql.com
305788527e Post-merge fixes 2006-07-22 16:18:28 +04:00
gkodinov/kgeorge@rakia.(none)
568712853d Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B20868-5.0-opt
2006-07-22 14:03:42 +03:00
sergefp@mysql.com
d7c1be4bb9 Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  mysql.com:/home/psergey/mysql-5.0-opt2
2006-07-22 15:03:41 +04:00
gkodinov/kgeorge@rakia.(none)
b539790f52 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B20868-5.0-opt
2006-07-22 09:11:50 +03:00
evgen@moonbone.local
edc2c4bb81 field.h:
Fixed typo.
2006-07-22 05:52:37 +04:00
kent@mysql.com/c-4b4072d5.010-2112-6f72651.cust.bredbandsbolaget.se
47a9da936c mysqlmanager.vcproj:
Place mysqlmanager 'pdb' file in 'client_debug' directory
mysys.vcproj:
  Removed define of __NT__ from 'Debug' target
mysqld.vcproj:
  Always generate 'pdb' and 'map' files
2006-07-22 02:00:33 +02:00
sergefp@mysql.com
964a4b5f95 Merge mysql.com:/home/psergey/mysql-4.1-opt
into  mysql.com:/home/psergey/mysql-5.0-opt2
2006-07-22 02:41:29 +04:00
sergefp@mysql.com
59dc5e8838 Add missing "DROP TABLE" clause 2006-07-22 02:36:17 +04:00
evgen@moonbone.local
8540557457 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/autopush/12185-bug-5.0-opt-mysql
2006-07-22 02:15:36 +04:00
evgen@moonbone.local
c875b8eb93 Fixed bug#12185: Data type aggregation may produce wrong result
The Item::tmp_table_field_from_field_type() function creates Field_datetime
object instead of Field_timestamp object for timestamp field thus always
changing data type is a tmp table is used.

The Field_blob object constructor which is used in the 
Item::tmp_table_field_from_field_type() is always setting packlength field of
newly created blob to 4. This leads to changing fields data type for example
from the blob to the longblob if a temporary table is used.

The Item::make_string_field() function always converts Field_string objects 
to Field_varstring objects. This leads to changing data type from the 
char/binary to varchar/varbinary.

Added appropriate Field_timestamp object constructor for using in the 
Item::tmp_table_field_from_field_type() function.

Added Field_blob object constructor which sets pack length according to
max_length argument.

The Item::tmp_table_field_from_field_type() function now creates
Field_timestamp object for a timestamp field.

The Item_type_holder::display_length() now returns correct NULL length NULL
length. 

The Item::make_string_field() function now doesn't change Field_string to
Field_varstring in the case of Item_type_holder. 

The Item::tmp_table_field_from_field_type() function now uses the Field_blob
constructor which sets packlength according to max_length.
2006-07-22 02:08:00 +04:00
kroki/tomash@moonlight.intranet
afb31714c5 Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0
into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug19207
2006-07-22 00:08:45 +04:00
sergefp@mysql.com
9024ed81c7 Merge mysql.com:/home/psergey/mysql-4.1-opt
into  mysql.com:/home/psergey/mysql-5.0-opt
2006-07-21 23:45:34 +04:00
gkodinov/kgeorge@macbook.mshome.net
0282028292 Bug #20466: a view is mixing data when there's a trigger on the table
When making a place to store field values at the start of each group
  the real item (not the reference) must be used when deciding which column
  to copy.
2006-07-21 20:44:35 +03:00
acurtis/antony@xiphis.org/ltantony.xiphis.org
95197805e2 Merge bk://anubis/mysql-5.0-engines
into  xiphis.org:/home/antony/work2/merge/mysql-5.0
2006-07-21 10:14:25 -07:00
gkodinov/kgeorge@rakia.(none)
98cd0a928f Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B20868-5.0-opt
2006-07-21 18:10:37 +03:00
gkodinov/kgeorge@macbook.gmz
3ef086d263 Bug #20868: Client connection is broken on SQL query error
An aggregate function reference was resolved incorrectly and
caused a crash in count_field_types.
 Must use real_item() to get to the real Item instance through
the reference
2006-07-21 17:59:52 +03:00
timour/tkatchaounov@lamia.home
bcf822841b Merge tkatchaounov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  lamia.home:/home/tkatchaounov/autopush/5.0-bug-21007
2006-07-21 13:04:40 +03:00
timour/timka@lamia.home
39ada21138 Fix for BUG#21007.
The problem was that store_top_level_join_columns() incorrectly assumed
that the left/right neighbor of a nested join table reference can be only
at the same level in the join tree.

The fix checks if the current nested join table reference has no immediate
left/right neighbor, and if so chooses the left/right neighbors of the
nearest upper level, where these references are != NULL.
2006-07-21 11:59:46 +03:00
tsmith@maint1.mysql.com
539ac78df2 Merge patch for bug #15195 from 5.0 -> 5.0-release (for 5.0.24) 2006-07-21 09:53:12 +02: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