Commit graph

22060 commits

Author SHA1 Message Date
unknown
365bbf9814 Fix for bug #29980: 5.1.20 ate my table
Problem: trying to repair an old (e.g. with "old" varstring fields) corrupted 
table with use_frm option we don't actually repair the table, just altering it
which may couse data loss.

Fix: if use_frm repair option is set, do repair instead of altering even 
if the table needs upgrade.


sql/sql_table.cc:
  Fix for bug #29980: 5.1.20 ate my table
2007-07-26 13:07:01 +05:00
unknown
85af6ba9e3 fix pushbuild failures
sql/ha_federated.cc:
  remote_error_number is set to -1 when an error was already reported
  with my_error(). ER(-1) will also cause a crash on 64bit arch and only
  worked on 32bit arch by luck
2007-07-25 17:22:52 -07:00
unknown
217a35d64f Merge gleb.loc:/home/uchum/work/bk/5.1
into  gleb.loc:/home/uchum/work/bk/5.1-opt


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/create.result:
  Merge with 5.1 (main).
2007-07-26 05:13:32 +05:00
unknown
ddd7289908 table.cc, sql_select.cc:
Post-merge fix.


sql/sql_select.cc:
  Post-merge fix.
sql/table.cc:
  Post-merge fix.
2007-07-26 04:41:48 +05:00
unknown
c59488321d sql_select.cc:
Post-merge fix.


sql/sql_select.cc:
  Post-merge fix.
2007-07-26 04:08:58 +05:00
unknown
2df3b7b0ea Merge gleb.loc:/home/uchum/work/bk/5.0
into  gleb.loc:/home/uchum/work/bk/5.0-opt


mysql-test/t/create.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/create.result:
  Merge with 5.0 (main).
2007-07-26 03:33:43 +05:00
unknown
37b6be0806 tmp_table_size is not about user-created temporary tables, only
internal ones (like those of GROUP BY): fixing the --help text.


sql/mysqld.cc:
  tmp_table_size is not about user-created temporary tables, only
  internal ones (like those of GROUP BY)
2007-07-25 22:29:53 +02:00
unknown
21b83ab756 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt


mysql-test/r/having.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
mysql-test/t/having.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/include/mix1.inc:
  Merge with 5.0-opt.
mysql-test/r/create.result:
  Merge with 5.0-opt.
mysql-test/r/innodb_mysql.result:
  Merge with 5.0-opt.
mysql-test/r/type_enum.result:
  Merge with 5.0-opt.
mysql-test/t/type_enum.test:
  Merge with 5.0-opt.
sql/filesort.cc:
  Merge with 5.0-opt.
sql/sql_base.cc:
  Merge with 5.0-opt.
sql/table.cc:
  Merge with 5.0-opt.
storage/innobase/handler/ha_innodb.cc:
  Merge with 5.0-opt.
2007-07-26 01:23:39 +05:00
unknown
b42247bca8 Bug#25679
"Federated Denial of Service"
  Federated storage engine used to attempt to open connections within
  the ::create() and ::open() methods which are invoked while LOCK_open
  mutex is being held by mysqld. As a result, no other client sessions
  can open tables while Federated is attempting to open a connection.
  Long DNS lookup times would stall mysqld's operation and a rogue
  connection string which connects to a remote server which simply
  stalls during handshake can stall mysqld for a much longer period of
  time.
  This patch moves the opening of the connection much later, when the
  federated actually issues queries, by which time the LOCK_open mutex is
  no longer being held.


mysql-test/r/federated.result:
  change of test/results due to patch for bug25679
mysql-test/t/federated.test:
  change of test/results due to patch for bug25679
sql/ha_federated.cc:
  bug25679
    remove function check_foreign_fata_source()
    ha_federated::open() no longer opens the federated connection.
    ha_federated::create() no longer opens and tests connection.
    ha_federated::real_connect() opens connection and tests presence of table.
    ha_federated::real_query() sends query, calling real_connect() if neccessary.
sql/ha_federated.h:
  bug25679
    new methods real_query() and real_connect()
2007-07-25 12:23:24 -07:00
unknown
34864af8fd Merge mysql.com:/home/svoj/devel/bk/mysql-5.1-engines
into  mysql.com:/home/svoj/devel/mysql/BUG29806/mysql-5.1-engines


sql/ha_ndbcluster.cc:
  Auto merged
sql/lock.cc:
  Auto merged
2007-07-25 19:58:18 +05:00
unknown
4537a0c9e9 BUG#29806 - binlog_innodb.test creates a server log
Stopping mysql server could result in an entry in mysql error
file: "InnoDB: Error: MySQL is freeing a thd".

This happened because InnoDB assumes that the server will never
call external_lock(F_UNLCK) in case external_lock(READ/WRITE)
failed.

Prior to this patch we haven't had strict definition whether
external_lock(F_UNLCK) must be called in case external_lock(READ/WRITE)
fails.

This patch states that we never call external_lock(F_UNLCK) in case
external_lock(READ/WRITE) fails.


mysql-test/suite/binlog/t/disabled.def:
  Re-enabled binlog_innodb and binlog_killed tests.
sql/ha_ndbcluster.cc:
  Restore handler state in case external_lock() failed.
sql/ha_partition.cc:
  Do not call external_lock(F_UNLCK) in case external_lock(READ/WRITE) failed.
sql/lock.cc:
  Do not call external_lock(F_UNLCK) in case external_lock(READ/WRITE) failed.
storage/myisammrg/myrg_locking.c:
  Restore handler state in case external_lock() failed.
2007-07-25 19:56:17 +05:00
unknown
48e879f9ac Allow mysql.proc to have extra (unknown) fields.
This allows 5.0 to work with 5.1 databases.
2007-07-25 18:38:52 +04:00
unknown
cf81182cd0 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-29959
2007-07-25 07:57:47 -06:00
unknown
3232f483a1 Merge adventure.(none):/home/thek/Development/cpp/bug28641/my51-bug28641
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime


mysql-test/r/events_bugs.result:
  Auto merged
2007-07-25 09:47:03 +02:00
unknown
cfdd203549 Bug#28641 CREATE EVENT with '2038.01.18 03:00:00' let server crash.
Creating an EVENT to be executed at a time close to the end of the allowed
range (2038.01.19 03:14:07 UTC) would cause the server to crash. The
expected behavior is to accept all calendar times within the interval and
reject all other values without crashing.

This patch replaces the function 'sec_to_epoch_TIME' with a Time_zone API call.
This function was broken because it invoked the internal function 'sec_to_epoch'
without respecting the restrictions on the function parameters (and this caused
assertion failure). It also was used as a reverse function to
Time_zone_utc::gmt_sec_to_TIME which it isn't.


mysql-test/r/events_bugs.result:
  Added test case
mysql-test/t/events_bugs.test:
  Added test case
sql/event_data_objects.cc:
  Replaced function 'sec_since_epoch_TIME' since it was implemented as
  a wrapper around 'sec_since_epoch' without taking parameter restrictions
  into account. The function was used to load information about event
  execution time from mysql.events table. Further more, the function wasn't
  the inverse function of Time_zone_utc::gmt_sec_to_TIME() which was used
  by events code to store information about event execution time.
sql/event_db_repository.cc:
  Replaced my_tz_UTC object with my_tz_OFFSET0 object because the first one
  doesn't supply us with a bijective MYSQL_TIME<->my_time_t translation. Instead
  the function sec_since_epoch_TIME was used as a reverse function to the method
  my_tz_UTC::gmt_sec_to_TIME.
sql/event_queue.cc:
  Replaced my_tz_UTC object with my_tz_OFFSET0 object because the first one
  doesn't supply us with a bijective MYSQL_TIME<->my_time_t translation. Instead
  the function sec_since_epoch_TIME was used as a reverse function to the method
  my_tz_UTC::gmt_sec_to_TIME.
sql/tztime.cc:
  * Remove function 'sec_since_epoch_TIME' since it was implemented as
  a wrapper around 'sec_since_epoch' without taking parameter restrictions
  into account. The function was used to load information about event
  execution time from mysql.events table. Further more, the function wasn't
  the inverse function of Time_zone_utc::gmt_sec_to_TIME() which was used
  by events code to store information about event execution time.
  
  * Added static Time_zone object for UTC+0 time zone.
sql/tztime.h:
  Include extern pointer to static Time_zone object.
2007-07-25 09:43:49 +02:00
unknown
e716c2bc6d Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/jul24/51


mysql-test/r/innodb_mysql.result:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/include/mix1.inc:
  Manual merge
2007-07-24 16:16:16 -06:00
unknown
1370b325c6 Merge ramayana.hindu.god:/home/tsmith/m/bk/50
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/jul24/50


sql/sql_table.cc:
  Auto merged
2007-07-24 16:12:23 -06:00
unknown
8ed01f838e Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
2007-07-24 23:01:05 +04:00
unknown
2a7d20308f Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
2007-07-24 22:58:05 +04:00
unknown
607ab14cf7 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
2007-07-24 22:57:26 +04:00
unknown
c4d53e31b0 Bug#15130: CREATE .. SELECT was denied to use advantages of the SQL_BIG_RESULT.
When the SQL_BIG_RESULT flag is specified SELECT should store items from the
select list in the filesort data and use them when sending to a client.
The get_addon_fields function is responsible for creating necessary structures
for that. But this function was allowed to do so only for SELECT and
INSERT .. SELECT queries. This makes the SQL_BIG_RESULT useless for
the CREATE .. SELECT queries.

Now the get_addon_fields allows storing select list items in the filesort
data for the CREATE .. SELECT queries.


mysql-test/t/create.test:
  Added a test case for the bug#15130: CREATE .. SELECT was denied to use
  advantages of the SQL_BIG_RESULT.
mysql-test/r/create.result:
  Added a test case for the bug#15130: CREATE .. SELECT was denied to use
  advantages of the SQL_BIG_RESULT.
sql/filesort.cc:
  Bug#15130: CREATE .. SELECT was denied to use advantages of the SQL_BIG_RESULT.
  Now the get_addon_fields allows storing select list items in the filesort
  data for the CREATE .. SELECT queries.
2007-07-24 18:15:44 +04:00
unknown
594d71a449 Merge xiphis.org:/anubis/antony/work/p2-bug25714.1
into  xiphis.org:/anubis/antony/work/p2-bug25714.1.merge-5.0
2007-07-23 23:57:50 -07:00
unknown
0f85ae9f2c Bug#25714
"getGeneratedKeys() does not work with FEDERATED table"
  mysql_insert() expected the storage engine to update the row data
  during the write_row() operation with the value of the new auto-
  increment field. The field must be updated when only one row has
  been inserted as mysql_insert() would ignore the thd->last_insert.
  This patch implements HA_STATUS_AUTO support in ha_federated::info()
  and ensures that ha_federated::write_row() does update the row's
  auto-increment value.
  The test case was written in C as the protocol's 'id' value is
  accessible through libmysqlclient and not via SQL statements.
  mysql-test-run.pl was extended to enable running the test binary.


mysql-test/mysql-test-run.pl:
  bug25714
    implement support to run C test for bug25714
sql/ha_federated.cc:
  bug25714
    The storage engine instance property auto_increment_value was not
    being set.
    mysql_insert() requires that the storage engine updates the row with
    the auto-increment value, especially when only inserting one row.
    Implement support for ha_federated::info(HA_STATUS_AUTO)
tests/Makefile.am:
  bug25714
    build C test for bug
mysql-test/include/have_bug25714.inc:
  New BitKeeper file ``mysql-test/include/have_bug25714.inc''
mysql-test/r/federated_bug_25714.result:
  New BitKeeper file ``mysql-test/r/federated_bug_25714.result''
mysql-test/r/have_bug25714.require:
  New BitKeeper file ``mysql-test/r/have_bug25714.require''
mysql-test/t/federated_bug_25714.test:
  New BitKeeper file ``mysql-test/t/federated_bug_25714.test''
tests/bug25714.c:
  New BitKeeper file ``tests/bug25714.c''
2007-07-23 23:35:43 -07:00
unknown
20b9d9bb2f Bug#29993 (Default value of log_output should be 'FILE', not 'TABLE')
Changed the default location of the log output to LOG_FILE,
for backward compatibility with MySQL 5.0


mysql-test/r/log_state.result:
  Changed the default location of the log output to LOG_FILE,
  for backward compatibility with MySQL 5.0
sql/set_var.cc:
  Changed the default location of the log output to LOG_FILE,
  for backward compatibility with MySQL 5.0
2007-07-23 22:01:22 -06:00
unknown
04fc8b71d6 Bug#29959 (Non-standard bison syntax in sql_yacc.yy)
In sql/sql_yacc.yy, use the %prec construct at the end of rule join_table


sql/sql_yacc.yy:
  In sql/sql_yacc.yy, use the %prec construct at the end of rule join_table
2007-07-23 16:23:35 -06:00
unknown
54cebc4764 Many files:
Put back old code to check stack direction at configure time


config/ac-macros/misc.m4:
  Put back old code to check stack direction at configure time
configure.in:
  Put back old code to check stack direction at configure time
include/config-netware.h:
  Put back old code to check stack direction at configure time
include/config-win.h:
  Put back old code to check stack direction at configure time
include/my_global.h:
  Put back old code to check stack direction at configure time
sql/sql_parse.cc:
  Put back old code to check stack direction at configure time
2007-07-23 23:54:55 +02:00
unknown
54c9742922 coding style fix : Index_hint 2007-07-23 19:09:48 +03:00
unknown
c29002a5b6 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B29644-5.0-opt


sql/ha_innodb.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  5.0-opt merge
mysql-test/t/innodb_mysql.test:
  5.0-opt merge
2007-07-23 17:07:29 +03:00
unknown
f76d006ae4 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-07-22 23:07:59 -07:00
unknown
c38fa3f3ac table.cc, sql_select.cc:
Limit the fix for bug 28591 to InnoDB only


sql/sql_select.cc:
  Limit the fix for bug 28591 to InnoDB only
sql/table.cc:
  Limit the fix for bug 28591 to InnoDB only
2007-07-23 06:26:57 +03:00
unknown
d50caace5f Fixed bug #29611.
If a primary key is defined over column c of enum type then 
the EXPLAIN command for a look-up query of the form
  SELECT * FROM t WHERE c=0
said that the query was with an impossible where condition though the
query correctly returned non-empty result set when the table indeed 
contained rows with error empty strings for column c. 

This kind of misbehavior was due to a bug in the function 
Field_enum::store(longlong,bool) that erroneously returned 1 if
the the value to be stored was equal to 0. 
Note that the method 
Field_enum::store(const char *from,uint length,CHARSET_INFO *cs)
correctly returned 0 if a value of the error empty string 
was stored. 


mysql-test/r/type_enum.result:
  Added a test case for bug #29661.
mysql-test/t/type_enum.test:
  Added a test case for bug #29661.
sql/field.cc:
  Fixed bug #29611.
  If a primary key was defined over column c of enum type then 
  the EXPLAIN command for a look-up query of the form
    SELECT * FROM t WHERE c=0
  said that the query was with an impossible where condition though the
  query correctly returned non-empty result set when the table indeed 
  contained rows with error empty strings for column c. 
  
  This kind of misbehavior was due to a bug in the function 
  Field_enum::store(longlong,bool) that erroneously returned 1 if
  the the value to be stored was equal to 0. 
  Note that the method 
  Field_enum::store(const char *from,uint length,CHARSET_INFO *cs)
  correctly returned 0 if a value of the error empty string 
  was stored.
2007-07-22 18:26:16 -07:00
unknown
1fa1806ebc Merge chilla.local:/home/mydev/mysql-5.1-amain
into  chilla.local:/home/mydev/mysql-5.1-axmrg
2007-07-22 21:04:53 +02:00
unknown
0a6543687c Merge chilla.local:/home/mydev/mysql-5.0-amain
into  chilla.local:/home/mydev/mysql-5.0-axmrg


sql/sql_table.cc:
  Auto merged
2007-07-22 19:08:25 +02:00
unknown
240bb90ef1 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B28951-5.0-opt


mysql-test/t/innodb_mysql.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  merge of 5.0-opt
2007-07-22 19:23:29 +03:00
unknown
7507cbaaf0 Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29911
2007-07-21 13:36:33 -07:00
unknown
5ad9525672 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt


sql/item_func.h:
  Auto merged
mysql-test/r/sp.result:
  Merge with 5.0-opt.
mysql-test/t/sp.test:
  Merge with 5.0-opt.
sql/item_func.cc:
  Merge with 5.0-opt.
2007-07-22 00:53:01 +05:00
unknown
aed9a5fee3 Merge gleb.loc:/home/uchum/work/bk/5.0-opt-29338
into  gleb.loc:/home/uchum/work/bk/5.0-opt


mysql-test/r/sp.result:
  Merge with local tree
mysql-test/t/sp.test:
  Merge with local tree
2007-07-22 00:40:14 +05:00
unknown
3520da5b25 Merge olga.mysql.com:/home/igor/dev-opt/mysql-4.1-opt-bug29911
into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug29911


mysql-test/t/having.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/having.result:
  SCCS merged
2007-07-21 12:34:18 -07:00
unknown
6085445736 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.(none):/opt/local/work/mysql-5.1-runtime


mysql-test/r/create.result:
  Auto merged
mysql-test/r/innodb.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
mysql-test/t/innodb.test:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
2007-07-21 17:54:23 +04:00
unknown
be7b4043b9 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.(none):/opt/local/work/mysql-5.0-runtime


mysql-test/r/create.result:
  Auto merged
mysql-test/t/create.test:
  Auto merged
sql/sql_class.h:
  Auto merged
2007-07-21 17:52:16 +04:00
unknown
72c6c789cf 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.   


mysql-test/r/having.result:
  Added a test case for bug #29911.
mysql-test/t/having.test:
  Added a test case for bug #29911.
2007-07-20 22:56:19 -07:00
unknown
3da32da0d2 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  chilla.local:/home/mydev/mysql-5.1-axmrg


mysql-test/t/disabled.def:
  Auto merged
sql/sql_table.cc:
  Auto merged
2007-07-21 03:13:59 +02:00
unknown
e0f1176ad9 Merge chilla.local:/home/mydev/mysql-5.1-amain
into  chilla.local:/home/mydev/mysql-5.1-axmrg


mysql-test/t/disabled.def:
  Auto merged
2007-07-21 03:12:35 +02:00
unknown
36b431d869 Merge chilla.local:/home/mydev/mysql-5.1-ateam
into  chilla.local:/home/mydev/mysql-5.1-axmrg


sql/sql_table.cc:
  Auto merged
2007-07-21 03:10:23 +02:00
unknown
47507276aa Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/kent/bk/tmp3/mysql-5.0-build


libmysql/libmysql.c:
  Auto merged
scripts/make_binary_distribution.sh:
  Auto merged
sql/field.cc:
  Auto merged
2007-07-21 01:53:19 +02:00
unknown
066d97ba09 Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/kent/bk/tmp3/mysql-5.1-build


libmysql/libmysql.c:
  Auto merged
scripts/make_binary_distribution.sh:
  Auto merged
sql/field.cc:
  Auto merged
2007-07-21 01:52:15 +02:00
unknown
524a40a982 Merge chilla.local:/home/mydev/mysql-5.0-amain
into  chilla.local:/home/mydev/mysql-5.0-axmrg
2007-07-21 01:34:55 +02:00
unknown
4ae56e219d Merge chilla.local:/home/mydev/mysql-5.0-ateam
into  chilla.local:/home/mydev/mysql-5.0-axmrg
2007-07-21 01:33:25 +02:00
unknown
d9bad2acc0 Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt


mysql-test/r/cast.result:
  Auto merged
mysql-test/t/cast.test:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
2007-07-21 02:25:39 +05:00
unknown
95a8c6c327 Bug #28591: MySQL need not sort the records in case of
ORDER BY primary_key on InnoDB table

Queries that use an InnoDB secondary index to retrieve
data don't need to sort in case of ORDER BY primary key
if the secondary index is compared to constant(s).
They can also skip sorting if ORDER BY contains both the
the secondary key parts and the primary key parts (in
that order).
This is because InnoDB returns the rows in order of the
primary key for rows with the same values of the secondary
key columns.
Fixed by preventing temp table sort for the qualifying 
queries.


mysql-test/r/innodb_mysql.result:
  Bug #28591: test case
mysql-test/t/innodb_mysql.test:
  Bug #28591: test case
sql/sql_select.cc:
  Bug #28591: Use the primary key as suffix when testing
  if the key can be used for ORDER BY on supporting engines.
sql/table.cc:
  Bug #28591: can use the primary key
  as a suffix for the secondary keys
2007-07-20 21:05:29 +03:00