Commit graph

20799 commits

Author SHA1 Message Date
unknown
8462d3a46a Bug : Subselect with index for both WHERE and ORDER BY produces empty result
Reseting subqueries with "quick" access methods was incomplete.
 Partially backported the correct reseting of QUICK_SELECTs from 5.x.


mysql-test/r/subselect.result:
  Bug : Subselect with index for both WHERE and ORDER BY produces empty result
   - test case
mysql-test/t/subselect.test:
  Bug : Subselect with index for both WHERE and ORDER BY produces empty result
   - test case
sql/opt_range.cc:
  Bug : Subselect with index for both WHERE and ORDER BY produces empty result
   - partially backported the correct reseting of QUICK_SELECTs from 5.x.
sql/opt_range.h:
  Bug : Subselect with index for both WHERE and ORDER BY produces empty result
   - partially backported the correct reseting of QUICK_SELECTs from 5.x.
2006-08-03 19:20:30 +03:00
unknown
84ece59cef Merge moonbone.local:/work/tmp_merge-4.1
into  moonbone.local:/work/tmp_merge-4.1-opt-mysql


sql/item_strfunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-08-02 16:10:52 +04:00
unknown
66716f0984 Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0
into  mysql.com:/Users/kent/mysql/bk/mysql-4.1


configure.in:
  Auto merged
2006-07-29 17:26:06 +02:00
unknown
189a687971 configure.in:
Corrected typo


configure.in:
  Corrected typo
2006-07-29 17:24:48 +02:00
unknown
04d60b3897 Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0
into  mysql.com:/Users/kent/mysql/bk/mysql-4.1


configure.in:
  Auto merged
scripts/make_binary_distribution.sh:
  Auto merged
support-files/mysql.spec.sh:
  SCCS merged
2006-07-28 23:40:05 +02:00
unknown
d1fde0f7f5 Makefile.am, configure.in:
Man page for mysqld command move to section 8 (bug#21220)


configure.in:
  Man page for mysqld command move to section 8 (bug#21220)
man/Makefile.am:
  Man page for mysqld command move to section 8 (bug#21220)
2006-07-28 23:12:40 +02:00
unknown
6f65bffebd make_binary_distribution.sh:
Man page for "mysqld" command move to section 8 (bug#21220)


scripts/make_binary_distribution.sh:
  Man page for "mysqld" command move to section 8 (bug#21220)
2006-07-28 23:06:49 +02:00
unknown
a811cc0a88 mysql.spec.sh:
Man page for "mysqld" command move to section 8 (bug#21220)


support-files/mysql.spec.sh:
  Man page for "mysqld" command move to section 8 (bug#21220)
2006-07-28 22:57:57 +02:00
unknown
9c7a329eba Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B20792-4.1-opt


sql/sql_select.cc:
  Auto merged
2006-07-27 10:06:37 +03:00
unknown
bb81f6ac2d Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B20792-4.1-opt


sql/sql_select.cc:
  Auto merged
2006-07-26 19:55:33 +03:00
unknown
6b75e24b73 * Bug : Incorrect results from aggregate subquery
When processing aggregate functions all tables values are reset
to NULLs at the end of each group. 
When doing that if there are no rows found for a group
the const tables must not be reset as they are not recalculated 
by do_select()/sub_select() for each group.


mysql-test/r/subselect2.result:
  * Bug : Incorrect results from aggregate subquery
   - test suite for the bug. This is dependent on InnoDB despite
     the fact that the bug and the fix are not InnoDB specific.
     This is because of the table flag HA_NOT_EXACT_COUNT.
     When this flag is off (as in MyISAM) both t2 and t3 become of
     join type 'system' as they are estimated to have 1 record and
     and this statistics can be trusted (according to the absence of
     HA_NOT_EXACT_COUNT).
mysql-test/t/subselect2.test:
  * Bug : Incorrect results from aggregate subquery
   - test suite for the bug
sql/sql_select.cc:
  * Bug : Incorrect results from aggregate subquery
   - when clearing results if there are not rows found for group
     the const tables must not be reset as they are not recalculated
     for each group.
2006-07-26 19:19:30 +03:00
unknown
70d27b3503 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  rakia.(none):/home/kgeorge/mysql/autopush/B21019-4.1-opt


sql/sql_select.cc:
  Auto merged
mysql-test/r/select.result:
  SCCS merged
mysql-test/t/select.test:
  SCCS merged
2006-07-26 18:49:26 +03:00
unknown
35945019ea BUG#21206: memory corruption when too many cursors are opened at once
Too many cursors (more than 1024) could lead to memory corruption.
This affects both, stored routines and C API cursors, and the
threshold is per-server, not per-connection.  Similarly, the
corruption could happen when the server was under heavy load
(executing more than 1024 simultaneous complex queries), and this is
the reason why this bug is fixed in 4.1, which doesn't support
cursors.

The corruption was caused by a bug in the temporary tables code, when
an attempt to create a table could lead to a write beyond allocated
space.  Note, that only internal tables were affected (the tables
created internally by the server to resolve the query), not tables
created with CREATE TEMPORARY TABLE.  Another pre-condition for the
bug is TRUE value of --temp-pool startup option, which, however, is a
default.

The cause of a bug was that random memory was overwritten in
bitmap_set_next() due to out-of-bound memory access.


mysys/my_bitmap.c:
  Local 'bitmap_size' is measured in bytes, no need to multiply it by 8.
sql/sql_select.cc:
  Clear the temp_pool_slot bit only if we have set it previously.
2006-07-26 16:23:07 +04:00
unknown
5ca1ee5eea Bug : 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.


mysql-test/r/select.result:
  Bug : First result of SELECT COUNT(*) different than consecutive runs
   - test case
mysql-test/t/select.test:
  Bug : First result of SELECT COUNT(*) different than consecutive runs
   - test case. 
     Note that ALTER TABLE is important here : it happens to
     leave the Field instance for t1.b set to NULL, witch is vital for
     demonstrating the problem fixed by this changeset.
sql/sql_select.cc:
  Bug : First result of SELECT COUNT(*) different than consecutive runs
   - check whether a value is null taking into account its table dependency.
2006-07-26 13:32:28 +03:00
unknown
03fc0a8fb1 Merge tkatchaounov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  lamia.home:/home/tkatchaounov/autopush/4.1-bug-20954


mysql-test/r/subselect.result:
  Auto merged
2006-07-26 01:21:35 +03:00
unknown
585b5bbc92 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.


mysql-test/r/func_group.result:
  BUG#20954 - test result adjustment.
  Adjusted the test result of bug 12882 which was not preperly fixed.
  The current patch corrects the problem that was fully corrected by the
  patch for 12882.
  
  The problem was that opt_sum_query() indicated that the optimizer may
  remove all tables because all MIN/MAX/COUNT functions are constants,
  but this lead to an empty result instead of NULL because the WHERE
  clause was still evaluated.
  
  The current fix removes all conjuncts in the where clause that
  reference the removed tables, and thus corrects the problem.
mysql-test/r/select.result:
  BUG#20954 - added test
mysql-test/r/subselect.result:
  BUG#20954 - test result adjustment.
  
  The fix removes those conditions in a where clause that refer to
  tables optimized away by MIN/MAX optimization (opt_sum_query()).
mysql-test/t/select.test:
  BUG#20954 - added test
sql/sql_select.cc:
  Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set
  
  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
unknown
c939a8d7e5 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
unknown
75220954bf Merge trift2.:/M41/clone-4.1
into  trift2.:/M41/push-4.1


sql/field.cc:
  Auto merged
sql/sql_locale.cc:
  Changes were already present (and even better) == Null-merge == "ul".
2006-07-24 19:18:30 +02:00
unknown
def55c5219 Bug#21218 Test "mysqlbinlog" fails to execute another program on Windows
- Send confusing output to /dev/null


mysql-test/t/mysqlbinlog.test:
  Send confusing error messages to /dev/null so they don't appear in erro log if test case fails
2006-07-24 18:12:57 +02:00
unknown
394fe01f7f 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
unknown
ea123dacfd mwasmnlm, mwccnlm, mwldnlm:
Filter out strange control characters, messes up logs


netware/BUILD/mwasmnlm:
  Filter out strange control characters, messes up logs
netware/BUILD/mwccnlm:
  Filter out strange control characters, messes up logs
netware/BUILD/mwldnlm:
  Filter out strange control characters, messes up logs
2006-07-24 10:55:26 +02:00
unknown
9d5b76eba9 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/usr/home/ram/work/4.1.b16327


sql/field.cc:
  Auto merged
mysql-test/r/func_time.result:
  merging
mysql-test/t/func_time.test:
  merging
2006-07-23 14:17:01 +05:00
unknown
9d432f0dae Add missing "DROP TABLE" clause 2006-07-22 02:36:17 +04:00
unknown
68698c04ab BUG#20975: Incorrect query result for NOT (subquery):
Add implementations of Item_func_{nop,not}_all::neg_transformer


mysql-test/r/subselect.result:
  BUG#20975: testcase
mysql-test/t/subselect.test:
  BUG#20975: testcase
sql/mysql_priv.h:
  Make chooser_compare_func_creator visible in item.h
2006-07-21 03:04:04 +04:00
unknown
c988ef942f Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/home/hf/work/mysql-4.1.19983


libmysqld/lib_sql.cc:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
2006-07-20 16:03:21 +05:00
unknown
6ec7976df9 Fixed bug : 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


mysql-test/r/func_str.result:
  Added a test case for bug : uncorrect print method
  for class Item_func_trim.
mysql-test/t/func_str.test:
  Added a test case for bug : incorrect print method
  for class Item_func_trim.
sql/item_strfunc.cc:
  Fixed bug : incorrect print method
  for class Item_func_trim.
      
  Added an implementation for the virtual function print
  in the class Item_func_trim.
  The implementation takes into account the fact the TRIM
  function takes the arguments in the following forms:
    [{BOTH | LEADING | TRAILING} [remstr] FROM] str) |
    [remstr FROM] str
sql/item_strfunc.h:
  Fixed bug : incorrect print method
  for class Item_func_trim.
      
  Added an implementation for the virtual function print
  in the class Item_func_trim.
  Declared a virtual method to return the mode of the TRIM 
  function: LEADING, TRAILING or BOTH.
  Added implementations of this method for Item_func_trim and
  its descendants Item_func_ltrim and Item_func_rtrim.
2006-07-19 12:36:55 -07:00
unknown
d7c0c66706 Bug Crash in test "func_time"
- backport patch from 5.0
 - "table" can be NULL in temporary fields used for type conversion


sql/field.cc:
  table can be NULL in temporary fields used for type conversion.
  Store value in field as if db_low_byte_first was set.
sql/field.h:
  table can be NULL in temporary fields used for type conversion.
  Store value in field as if db_low_byte_first was set.
2006-07-19 15:55:04 +02:00
unknown
b53e47a1ec mysql.spec.sh:
Added new "mysql_explain_log" man page
  Added missing install of "myisam_ftdump" man page
  Added missing install of "mysqlman" man page


support-files/mysql.spec.sh:
  Added new "mysql_explain_log" man page
  Added missing install of "myisam_ftdump" man page
  Added missing install of "mysqlman" man page
2006-07-19 02:46:48 +02:00
unknown
6abe1c7158 Merge moonbone.local:/home/evgen/bk-trees/mysql-4.1
into  moonbone.local:/work/tmp_merge-4.1-opt-mysql


mysql-test/r/date_formats.result:
  Auto merged
mysql-test/t/date_formats.test:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
2006-07-18 23:30:09 +04:00
unknown
5a77e566ab Merge moonbone.local:/work/mysql-4.1
into  moonbone.local:/work/tmp_merge-4.1-opt-mysql


mysql-test/r/date_formats.result:
  Auto merged
mysql-test/t/date_formats.test:
  Auto merged
2006-07-18 21:30:26 +04:00
unknown
d39e85320f Backporting Kostja's changes made for 5.0 into 4.1.
Please use "ul" when merging this changeset to 5.0.


sql/item_timefunc.cc:
  Fix a valgrind warning in type_date test.
sql/sql_locale.cc:
  Fix a Windows build failure:  "false" -> FALSE
2006-07-18 15:53:12 +05:00
unknown
7332854435 Changes to make "sql/sql_locale.cc" compile + link on Windows:
1) When initializing a boolean variable, do not use string representations '"false"' and '"true"' 
    but rather the boolean values 'false' and 'true'.
2) Add the module to the various Windows description files.


VC++Files/libmysqld/libmysqld.dsp:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/libmysqld/libmysqld.vcproj:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/libmysqld/libmysqld_ia64.dsp:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/mysqldemb/mysqldemb.dsp:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/mysqldemb/mysqldemb.vcproj:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/mysqldemb/mysqldemb_ia64.dsp:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/sql/mysqld.dsp:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/sql/mysqld.vcproj:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/sql/mysqld_ia64.dsp:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/sql/mysqldmax.dsp:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
VC++Files/sql/mysqldmax_ia64.dsp:
  Add "sql/sql_locale.cpp" with similar settings as the other files.
sql/sql_locale.cc:
  When initializing a boolean variable, do not use stringrepresentations '"false"' and '"true"' 
  but rather the boolean values 'false' and 'true'.
2006-07-17 20:40:41 +02:00
unknown
e732d3527f strings/strtod.c : Ensure the definition of "EOVERFLOW" is available.
In 5.0, this is already solved, so that is a null-merge ("ul").


strings/strtod.c:
  This file needs the definition of "EOVERFLOW",
  which is on some platforms (Windows, OpenBSD) provided only by "my_base.h".
  As this in turn includes "my_global.h", the include file name can be changed.
2006-07-17 19:38:46 +02:00
unknown
6067045823 Merge orca.ndb.mysql.com:/space_old/pekka/ndb/version/my41
into  orca.ndb.mysql.com:/space_old/pekka/ndb/version/my41-1.2461
2006-07-15 21:54:47 +02:00
unknown
7830197bcc mysql.spec.sh:
Command "ndb_mgm" is an optional tool, and should only be in "ndb-tools" package (bug#21058)


support-files/mysql.spec.sh:
  Command "ndb_mgm" is an optional tool, and should only be in "ndb-tools" package (bug#21058)
2006-07-15 00:24:35 +02:00
unknown
8f3aa7ef02 Increment the version number to 4.1.22, as 4.1.21 is cloned. 2006-07-14 17:55:34 +02:00
unknown
e7ea49dc0d 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
unknown
39f9adfa84 --{skip-}merge option added which allows the user to disable merge engine and
to avoid the potential security problem.
(see bug : Security Breach with MERGE table)
2006-07-14 16:26:58 +05:00
unknown
e71cf7c457 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
unknown
ae3d1248ef Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.1
into  mysql.com:/home/hf/work/mysql-4.1.16017
2006-07-14 00:21:13 +05:00
unknown
d9992cc79e Merge bk@192.168.21.1:mysql-4.1
into  mysql.com:/home/hf/work/mysql-4.1.16017


include/sql_common.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/sql_parse.cc:
  Auto merged
libmysqld/libmysqld.c:
  merging
2006-07-13 22:32:18 +05:00
unknown
3c2bdb59bc Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into  zippy.(none):/home/cmiller/work/mysql/m41-maint--07AB5
2006-07-13 13:10:59 -04:00
unknown
5392be95ec 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
unknown
4bdc42514c 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
unknown
7621597785 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.


client/mysql.cc:
  Bug#20432: mysql client interprets commands in comments
mysql-test/r/mysql_client.result:
  Bug#20432: mysql client interprets commands in comments
  test client-side parsing of comments and client-specific commands
mysql-test/t/mysql_client.test:
  Bug#20432: mysql client interprets commands in comments
  test client-side parsing of comments and client-specific commands
2006-07-13 09:04:06 +02:00
unknown
1787072458 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
unknown
4144543006 Bug 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.


mysql-test/r/innodb_mysql.result:
  Bug  results not sorted correctly by ORDER BY when using index
    * Test suite for the bug
mysql-test/t/innodb_mysql.test:
  Bug  results not sorted correctly by ORDER BY when using index
    * Test suite for the bug
sql/sql_select.cc:
  Bug  results not sorted correctly by ORDER BY when using index
    * don't use join cache when the incoming data set is already sorted
2006-07-12 10:57:38 +03:00
unknown
0f7258e0f7 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
unknown
e2c448fb5c Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  moonbone.local:/work/16302-bug-4.1-opt-mysql


mysql-test/r/subselect.result:
  SCCS merged
mysql-test/t/subselect.test:
  SCCS merged
2006-07-12 06:12:59 +04:00
unknown
03dbc2190d Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt
into  moonbone.local:/work/18503-bug-4.1-mysql


sql/sql_select.cc:
  Auto merged
2006-07-12 02:52:29 +04:00