Commit graph

38658 commits

Author SHA1 Message Date
unknown
a5799544cd Merge gleb.loc:/work/bk/5.0-opt-32403
into  gleb.loc:/work/bk/5.0-opt


sql/opt_range.cc:
  Auto merged
2007-11-27 19:28:27 +04:00
unknown
6288fde222 Merge stella.local:/home2/mydev/mysql-5.0-amain
into  stella.local:/home2/mydev/mysql-5.0-axmrg


sql/item_cmpfunc.cc:
  Auto merged
2007-11-27 16:24:44 +01:00
unknown
d0bfc6c131 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B30355-5.0-opt
2007-11-27 17:21:36 +02:00
unknown
63b6516953 Bug #30355: Incorrect ordering of UDF results
There's currently no way of knowing the determinicity of an UDF.
And the optimizer and the sequence() UDFs were making wrong
assumptions about what the is_const member means.
Plus there was no implementation of update_system_tables()
causing the optimizer to overwrite the information returned by
the <udf>_init function.

Fixed by equating the assumptions about the semantics of 
is_const and providing a implementation of update_used_tables().
Added a TODO item for the UDF API change needed to make a better 
implementation.


include/mysql_com.h:
  Bug #30355: comment added
mysql-test/r/udf.result:
  Bug #30355: test case
mysql-test/t/udf.test:
  Bug #30355: test case
sql/item_func.cc:
  Bug #30355: keep const_item_cache and used_tables_cache in sync
sql/item_func.h:
  Bug #30355: 
   - a better implementation of update_used_tables()
   - keep const_item_cache and used_tables_cache in sync
sql/udf_example.c:
  Bug #30355: Wrong value for const_item fixed.
2007-11-27 17:16:52 +02:00
unknown
d068dd1aab Fixed bug #32403: query causes a crash due to stack and
memory corruptions.

The right pointer field of the SEL_ARG structure was not
initialized in the constructor and sometimes that led to
server crashes.

There is no testcase because the bug occurs only when
uninitialized memory has particular values, which can't be
re-created in the test suite.


sql/opt_range.cc:
  Fixed bug #32403.
  
  The eq_tree function requires that SEL_ARG::left and
  SEL_ARG::right are equal to null pointer if SEL_ARG
  type is MAYBE_KEY, but SEL_ARG::right was not initialized
  and contained garbage.
2007-11-27 19:14:48 +04:00
unknown
e7a7957553 Merge hh-nb.hhunger:/work/trees/mysql-5.0-build-src-clean
into  hh-nb.hhunger:/work/merge/mysql-5.0-build
2007-11-27 13:02:40 +01:00
unknown
51e24c026d Merge mysql.com:/home/ram/work/mysql-5.0-engines
into  mysql.com:/home/ram/work/b30495/b30495.5.0
2007-11-27 15:15:28 +04:00
unknown
ba974f8371 Fix for bug #32559: connection hangs on query with name_const
Problem: passing a non-constant name to the NAME_CONST function results in a crash.

Fix: check the NAME_CONST name argument; return fake item type if we got
non-constant argument(s).


mysql-test/r/func_misc.result:
  Fix for bug #32559: connection hangs on query with name_const
    - test result.
mysql-test/t/func_misc.test:
  Fix for bug #32559: connection hangs on query with name_const
    - test case.
sql/item.cc:
  Fix for bug #32559: connection hangs on query with name_const
    - Item_name_const::type() now returns NULL_ITEM if non-constant arguments 
      were used to create the item to avoid wrong type casting.
sql/item.h:
  Fix for bug #32559: connection hangs on query with name_const
    - NAME_CONST name argument checked for invariability.
2007-11-27 09:36:43 +04:00
unknown
77f59b989c patch for bug#32496 (2nd) with ansi conformant and Mysql test case.
BitKeeper/etc/ignore:
  Added scripts/make_win_src_distribution_old server-tools/instance-manager/net_serv.cc to the ignore list
2007-11-26 21:28:01 +01:00
unknown
7917c7c060 Merge pilot.mysql.com:/data/msvensson/mysql/bug32429/my50-bug32429
into  pilot.mysql.com:/data/msvensson/mysql/mysql-5.0-runtime
2007-11-26 20:08:32 +01:00
unknown
6cbb7d2f76 Bug#20830 - INSERT DELAYED does not honour SET INSERT_ID
Bug#20627 - INSERT DELAYED does not honour auto_increment_* variables
Fixed wrong variable assignment.
2007-11-26 19:16:23 +01:00
unknown
29cdc47ecd Merge polly.(none):/home/kaa/src/opt/bug28837/my50-bug29131
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt


sql/ha_myisam.cc:
  Auto merged
mysql-test/r/merge.result:
  Manual merge.
mysql-test/r/myisam.result:
  Manual merge.
mysql-test/t/merge.test:
  Manual merge.
mysql-test/t/myisam.test:
  Manual merge.
2007-11-26 19:35:08 +03:00
unknown
2823d879fc Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime
2007-11-26 17:21:15 +01:00
unknown
b8a19c228c Bug#29592 SQL Injection issue
Remove the mysql_odbc_escape_string() function. The function
has multi-byte character escaping issues, doesn't honor the
NO_BACKSLASH_ESCAPES mode and is not used anymore by the
Connector/ODBC as of 3.51.17.


include/mysql.h:
  Remove mysql_odbc_escape_string() prototype.
include/mysql_h.ic:
  Update abi check file, mostly line changes and mysql_odbc_escape_string
  removal.
libmysql/libmysql.c:
  Remove mysql_odbc_escape_string() body.
libmysql/libmysql.def:
  Remove mysql_odbc_escape_string()
libmysqld/libmysqld.def:
  Remove mysql_odbc_escape_string()
2007-11-26 14:09:37 -02:00
unknown
67bf39f241 Fix for bug #28837: MyISAM storage engine error (134) doing delete with
self-join

When doing DELETE with self-join on a MyISAM or MERGE table, it could
happen that a record being retrieved in join_read_next_same() has
already been deleted by previous iterations. That caused the engine's
index_next_same() method to fail with HA_ERR_RECORD_DELETED error and
the whole DELETE query to be aborted with an error.

Fixed by suppressing the HA_ERR_RECORD_DELETED error in
hy_myisam::index_next_same() and ha_myisammrg::index_next_same(). Since
HA_ERR_RECORD_DELETED can only be returned by MyISAM, there is no point
in filtering this error in the SQL layer.


mysql-test/r/merge.result:
  Added a test case for bug #28837.
mysql-test/r/myisam.result:
  Added a test case for bug #28837.
mysql-test/t/merge.test:
  Added a test case for bug #28837.
mysql-test/t/myisam.test:
  Added a test case for bug #28837.
sql/ha_myisam.cc:
  Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same().
sql/ha_myisammrg.cc:
  Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same().
2007-11-26 18:58:54 +03:00
unknown
1836b73600 5.0 version of the fix for bug #9481: mysql_insert_id() returns 0 after
insert ... select.

The 5.0 manual page for mysql_insert_id() does not mention anything
about INSERT ... SELECT, though its current behavior is incosistent
with what the manual says about the plain INSERT.

Fixed by changing the AUTO_INCREMENT and mysql_insert_id() handling
logic in INSERT ... SELECT to be consistent with the INSERT behavior,
the manual, and the changes in 5.1 introduced by WL3146:


- mysql_insert_id() now returns the first automatically generated
AUTO_INCREMENT value that was successfully inserted by INSERT ... SELECT

-  if an INSERT ... SELECT statement is executed, and no automatically
generated value is successfully inserted, mysql_insert_id() now returns
the ID of the last inserted row.


sql/sql_class.h:
  Replaced last_insert_id with autoinc_value_of_last_inserted_row to be
  consistent with 5.1 code.
sql/sql_insert.cc:
  Revised the AUTO_INCREMENT and mysql_insert_id() handling logic in
  INSERT ... SELECT to be consistent with INSERT behavior, the manual, and
  changes in 5.1 introduced by WL3146:
  
  - mysql_insert_id() now returns the first automatically generated
  AUTO_INCREMENT value that was successfully inserted;
  
  -  if an INSERT ... SELECT statement is executed, and no automatically
  generated value is successfully inserted, mysql_insert_id() now returns
  the ID of the last inserted row.
tests/mysql_client_test.c:
  Backported the test cases related to INSERT ... SELECT and
  mysql_insert_id() from WL3146 patch to 5.0.
2007-11-26 18:36:05 +03:00
unknown
5e54e5b73b Merge adventure.(none):/home/thek/Development/cpp/bug32436/my50-bug32436
into  adventure.(none):/home/thek/Development/cpp/mysql-5.0-runtime


sql/item_func.cc:
  Auto merged
2007-11-26 15:58:06 +01:00
unknown
fea1524dbf Bug #32436 KILL QUERY completely deadlocks mysqld
Sending several "KILL QUERY" statements to target a connection running
"SELECT SLEEP" could freeze the server.

The locking order in Item_func_sleep was wrong and this could lead to a
dead lock.

This patch solves the issue by resolving the locking order properly.


sql/item_func.cc:
  - Moved LOCK_user_locks critical region so that it doesn't share space with
    mysys_var->mutex region; this can lead to deadlock.
2007-11-26 15:44:05 +01:00
unknown
c81eb57b92 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B32036-5.0-opt
2007-11-26 15:57:47 +02:00
unknown
af34d3577e Bug#32357 - ndb_backup_print test fails sometimes in pushbuild
Disabled test case
2007-11-26 14:49:41 +01:00
unknown
0e758d9d7e BUG#31277 - myisamchk --unpack corrupts a table
Another try to fix a compiler warning on win64.
2007-11-26 14:48:49 +01:00
unknown
7257ed0e10 Bug #31900 Wrong confusing comment in mysql_com.h header file.
comment fixed as we truly need const_item to be 1 to mark
constant function


include/mysql_com.h:
  Bug #31900 Wrong confusing comment in mysql_com.h header file.
  
  comment fixed
2007-11-26 16:25:18 +04:00
unknown
cf84ca46ba Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B32036-5.0-opt


mysql-test/r/subselect.result:
  merge of fix for bug 32036 to 5.0-opt
mysql-test/t/subselect.test:
  merge of fix for bug 32036 to 5.0-opt
2007-11-26 14:02:02 +02:00
unknown
f3f9855d13 Bug #32036: EXISTS within a WHERE clause with a UNION
crashes MySQL 5.122
There was a difference in how UNIONs are handled
on top level and when in sub-query.
Because the rules for sub-queries were syntactically
allowing cases that are not currently supported by
the server we had crashes (this bug) or wrong results
(bug 32051).
Fixed by making the syntax rules for UNIONs match the 
ones at top level.

These rules however do not support nesting UNIONs, e.g.
(SELECT a FROM t1 UNION ALL SELECT b FROM t2) 
 UNION
(SELECT c FROM t3 UNION ALL SELECT d FROM t4)
Supports for statements with nested UNIONs will be
added in a future version.


mysql-test/r/subselect.result:
  Bug #32036: test case
mysql-test/t/subselect.test:
  Bug #32036: test case
sql/sql_yacc.yy:
  Bug #32036: Make the syntax rules for UNIONs in subqueries the same
  as for top level UNIONs.
2007-11-26 13:36:24 +02:00
unknown
8fd43262dc Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B32268-5.0-opt


sql/sql_select.cc:
  Auto merged
2007-11-26 13:35:38 +02:00
unknown
503755256d Fix for bug #32676: insert delayed crash with wrong column and function specified
Problem: using wrong local lock type value in the mysql_insert() results in a crash. 

Fix: use a proper value.


mysql-test/r/delayed.result:
  Fix for bug #32676: insert delayed crash with wrong column and function specified
    - test result.
mysql-test/t/delayed.test:
  Fix for bug #32676: insert delayed crash with wrong column and function specified
    - test case.
sql/sql_insert.cc:
  Fix for bug #32676: insert delayed crash with wrong column and function specified
    - the local lock_type var assigment displaced just after the line 
      where the table_list->lock_type is filnally defined in the mysql_insert() 
      to avoid using its old value.
2007-11-26 13:29:26 +04:00
unknown
1c72446ef6 Bug#31752: check strmake() bounds
strmake() called with wrong parameters:
5.0-specific fixes.


client/mysql.cc:
  In debug-mode, strmake() fills unused part of buffer with
  a test-pattern. This overwrites our previous extra '\0'
  (from previous bzero()).
sql/sp.cc:
  off-by-one buffer-size.
2007-11-26 09:13:23 +01:00
unknown
fe280afa26 Merge mysql.com:/misc/mysql/31752_/41-31752_
into  mysql.com:/misc/mysql/31752_/50-31752_


sql/log.cc:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
strings/strmake.c:
  Auto merged
sql/sql_show.cc:
  manually merged
sql/unireg.cc:
  manual merge
2007-11-26 09:00:41 +01:00
unknown
a905ac34b5 Bug#31752: check strmake() bounds
strmake() calls are easy to get wrong. Add checks in extra
debug mode to identify possible exploits.

Remove some dead code.

Remove some off-by-one errors identified with new checks.


sql/log.cc:
  fix off-by-one buffer-length argument to prevent stack smashing
sql/repl_failsafe.cc:
  fix off-by-one buffer-length argument to prevent stack smashing
sql/set_var.cc:
  fix off-by-one buffer-length argument to prevent stack smashing
  (already approved, backports #31588)
sql/sql_show.cc:
  misdimensioned buffers: functions further down the callstack
  expect bufsize of FN_REFLEN
sql/unireg.cc:
  When EXTRA_DEBUG is enabled, strmake() will write funny patterns to
  buffers it operates on to identify possibly overflows. This leads to
  badness in mysql_create_frm(), so we explicitly put any unused bytes
  (back) into a defined state. Not a bug-fix, but part of the strmake()
  bug detector.
strings/strmake.c:
  strmake() takes maximum string length rather than buffer-length
  (string length + 1 to accomodate \0 terminator) as argument.
  Since this is easy to get wrong, add extra debug code to identify
  off-by-ones so we can prevent stack smashing.
  
  Alternative "BAD_STRING_COMPILER" removed after checking
  with Monty.
2007-11-26 08:20:40 +01:00
unknown
f53f88680c Merge stella.local:/home2/mydev/mysql-5.0-ateam
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-25 14:14:52 +01:00
unknown
d5ab58861b Merge mysql.com:/home/hf/work/30284/my41-30284
into  mysql.com:/home/hf/work/30284/my50-30284


mysql-test/r/gis.result:
  merging
mysql-test/t/gis.test:
  merging
2007-11-24 15:05:24 +04:00
unknown
c58de28410 Merge bk@192.168.21.1:mysql-5.0-opt
into  mysql.com:/home/hf/work/30284/my50-30284


mysql-test/r/gis.result:
  merging
mysql-test/t/gis.test:
  merging
2007-11-24 15:02:29 +04:00
unknown
6facf554bd Merge bk@192.168.21.1:mysql-4.1-opt
into  mysql.com:/home/hf/work/30284/my41-30284


mysql-test/r/gis.result:
  merging
mysql-test/t/gis.test:
  merging
2007-11-24 14:59:48 +04:00
unknown
e4dc9a8e6e merging fix
mysql-test/r/gis.result:
  result fixed
mysql-test/t/gis.test:
  test fixed
2007-11-24 14:57:09 +04:00
unknown
d04f74b775 Merge mysql.com:/home/hf/work/30284/my41-30284
into  mysql.com:/home/hf/work/30284/my50-30284


myisam/mi_check.c:
  Auto merged
mysql-test/t/gis.test:
  Auto merged
mysql-test/r/gis.result:
  SCCS merged
2007-11-24 14:47:32 +04:00
unknown
10c1aa796a Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B32400-5.0-opt


tests/mysql_client_test.c:
  Auto merged
mysql-test/r/subselect.result:
  SCCS merged
mysql-test/t/subselect.test:
  SCCS merged
2007-11-23 15:30:16 +02:00
unknown
3f91e01f1d Merge mysql.com:/home/ram/work/mysql-5.0-engines
into  mysql.com:/home/ram/work/b32560/b32560.5.0
2007-11-23 17:24:54 +04:00
unknown
1f57bfb8d1 Fix for bug #32560: crash with interval function and count(*)
Problem: INTERVAL function implementation doesn't handle NULL range values.

Fix: skip NULL ranges looking for a proper one.


mysql-test/r/func_set.result:
  Fix for bug #32560: crash with interval function and count(*)
    - test result.
mysql-test/t/func_set.test:
  Fix for bug #32560: crash with interval function and count(*)
    - test case.
sql/item_cmpfunc.cc:
  Fix for bug #32560: crash with interval function and count(*)
    - skip NULL ranges calculating INTERVAL(...).
2007-11-23 16:30:06 +04:00
unknown
1be2f0fa2b Merge stella.local:/home2/mydev/mysql-5.0-ateam
into  stella.local:/home2/mydev/mysql-5.0-axmrg
2007-11-23 13:09:01 +01:00
unknown
7ae4cfaf37 Bug#32654: rpl_view.test fails randomly
Disabled test case
2007-11-23 13:03:38 +01:00
unknown
a5761be26a Bug#32653 - rpl_log.test fails randomly
Disabled test case
2007-11-23 12:54:05 +01:00
unknown
4d9f4895c6 BUG#31277 - myisamchk --unpack corrupts a table
Fixed a compiler warning on win64. Backport from 5.1.
2007-11-23 12:52:29 +01:00
unknown
e5a17f5c30 Bug#32651 - grant_cache.test fails
Disabled test case
2007-11-23 12:06:55 +01:00
unknown
8c1b544b6e Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/kent/bk/docs-cleanup/mysql-5.0-build
2007-11-23 10:22:19 +01:00
unknown
50f5ba451f Merge mysql.com:/home/ram/work/mysql-5.0-engines
into  mysql.com:/home/ram/work/b32558/b32558.5.0
2007-11-23 13:04:13 +04:00
unknown
a197c4e95d opt_range.cc:
Fix for the bug#31048 for 64bit platforms.
subselect.test, subselect.result:
  Corrected text case for the bug#31048.


mysql-test/t/subselect.test:
  Corrected text case for the bug#31048.
mysql-test/r/subselect.result:
  Corrected text case for the bug#31048.
sql/opt_range.cc:
  Fix for the bug#31048 for 64bit platforms.
2007-11-23 00:16:17 +03:00
unknown
fff22e0903 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl
into  capulet.kindahl.net:/home/bk/mysql-5.0-rpl
2007-11-22 21:59:36 +01:00
unknown
0270449126 Merge gleb.loc:/work/bk/PA/5.0-opt-32556
into  gleb.loc:/work/bk/5.0-opt
2007-11-22 22:03:36 +04:00
unknown
c6f0c29acb Makefile.am, configure.in:
Include "manual.chm" in source TAR if it exists


configure.in:
  Include "manual.chm" in source TAR if it exists
Docs/Makefile.am:
  Include "manual.chm" in source TAR if it exists
2007-11-22 17:48:40 +01:00
unknown
3d550b757d Merge polly.(none):/home/kaa/src/opt/bug32221/my50-bug31445
into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
2007-11-22 17:24:08 +03:00