1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-13 21:42:58 +03:00
Commit Graph

270 Commits

Author SHA1 Message Date
unknown
68c2a008a1 Merge mysql.com:/usr/home/ram/work/bug20732/my41-bug20732
into  mysql.com:/usr/home/ram/work/bug20732/my50-bug20732


sql/opt_range.cc:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.cc:
  Auto merged
mysql-test/r/range.result:
  SCCS merged
mysql-test/t/range.test:
  SCCS merged
2006-10-19 16:15:30 +05:00
ramil/ram@mysql.com/myoffice.izhnet.ru
f6ea36c3a5 Merge mysql.com:/usr/home/ram/work/bug20732/my41-bug20732
into  mysql.com:/usr/home/ram/work/bug20732/my50-bug20732
2006-10-19 16:15:30 +05:00
unknown
da7af481cd Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
We miss some records sometimes using RANGE method if we have
partial key segments.
Example:
  Create table t1(a char(2), key(a(1)));
  insert into t1 values ('a'), ('xx');
  select a from t1 where a > 'x';
We call index_read() passing 'x' key and HA_READ_AFTER_KEY flag
in the handler::read_range_first() wich is wrong because we have
a partial key segment for the field and might miss records like 'xx'.

Fix: don't use open segments in such a case.


mysql-test/r/range.result:
  Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
    - test result.
mysql-test/t/range.test:
  Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
    - test case.
sql/opt_range.cc:
  Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
    - check if we have a partial key segment for a Item_func::GT_FUNC;
      if so, don't set NEAR_MIN flag in order to use HA_READ_KEY_OR_NEXT
      instead of HA_READ_AFTER_KEY.
sql/opt_range.h:
  Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
    - key segment 'flag' slot added.
sql/sql_select.cc:
  Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
    - test (HA_PART_KEY_SEG | HA_NULL_PART) as we split it in the sql/table.cc
sql/table.cc:
  Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
    - set HA_NULL_PART flag instead of HA_PART_KEY_SEG in order not to mix them.
2006-10-19 12:52:37 +05:00
ramil/ram@mysql.com/myoffice.izhnet.ru
0027b6e4b7 Fix for bug #20732: Partial index and long sjis search with '>' fails sometimes
We miss some records sometimes using RANGE method if we have
partial key segments.
Example:
  Create table t1(a char(2), key(a(1)));
  insert into t1 values ('a'), ('xx');
  select a from t1 where a > 'x';
We call index_read() passing 'x' key and HA_READ_AFTER_KEY flag
in the handler::read_range_first() wich is wrong because we have
a partial key segment for the field and might miss records like 'xx'.

Fix: don't use open segments in such a case.
2006-10-19 12:52:37 +05:00
unknown
d752b1a8da Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/psergey/mysql-5.1-bug22393


mysql-test/t/range.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/range.result:
  Manual merge
2006-09-19 21:14:37 +04:00
sergefp@pylon.mylan
fb077c0efd Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/psergey/mysql-5.1-bug22393
2006-09-19 21:14:37 +04:00
unknown
5e34af3240 BUG#22393: Very wrong E(#rows(ref(const)) for key with skewed distribution
- Check if we have E(#rows) for 'range' access on the smaller interval 
  on the same index. If yes, adjust the estimate.


mysql-test/r/range.result:
  BUG#22393: Testcase
mysql-test/t/range.test:
  BUG#22393: Testcase
2006-09-18 14:49:54 +04:00
sergefp@mysql.com
13901802bc BUG#22393: Very wrong E(#rows(ref(const)) for key with skewed distribution
- Check if we have E(#rows) for 'range' access on the smaller interval 
  on the same index. If yes, adjust the estimate.
2006-09-18 14:49:54 +04:00
unknown
fba86d2b7e Merge maint2.mysql.com:/data/localhome/tsmith/bk/mrg50/50
into  maint2.mysql.com:/data/localhome/tsmith/bk/mrg50/51


BUILD/SETUP.sh:
  Auto merged
client/Makefile.am:
  Auto merged
dbug/Makefile.am:
  Auto merged
include/mysql_com.h:
  Auto merged
libmysql/Makefile.am:
  Auto merged
mysql-test/lib/mtr_cases.pl:
  Auto merged
mysql-test/lib/mtr_match.pl:
  Auto merged
mysql-test/lib/mtr_misc.pl:
  Auto merged
mysql-test/r/ctype_ucs.result:
  Auto merged
mysql-test/r/ctype_utf8.result:
  Auto merged
mysql-test/r/func_time.result:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/r/query_cache.result:
  Auto merged
mysql-test/r/range.result:
  Auto merged
mysql-test/t/ctype_ucs.test:
  Auto merged
mysql-test/t/ctype_utf8.test:
  Auto merged
mysql-test/t/func_time.test:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
mysql-test/t/range.test:
  Auto merged
mysql-test/t/system_mysql_db_fix.test:
  Auto merged
mysys/my_seek.c:
  Auto merged
regex/Makefile.am:
  Auto merged
scripts/Makefile.am:
  Auto merged
server-tools/instance-manager/Makefile.am:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_strfunc.h:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/slave.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_repl.h:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/stacktrace.c:
  Auto merged
sql-common/client.c:
  Auto merged
sql/stacktrace.h:
  Auto merged
storage/innobase/Makefile.am:
  Auto merged
support-files/mysql.spec.sh:
  Auto merged
tests/Makefile.am:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
BitKeeper/deleted/.del-mytest.c:
  Delete: libmysql/mytest.c
BitKeeper/deleted/.del-make_win_bin_dist:
  Delete: scripts/make_win_bin_dist
BitKeeper/deleted/.del-message.mc~1:
  Delete: sql/message.mc
Makefile.am:
  Manual merge (use local)
configure.in:
  Manual merge (use local)
BitKeeper/deleted/.del-Makefile.in:
  Manual merge (use local)
client/mysqlbinlog.cc:
  Manual merge (use local)
extra/Makefile.am:
  Manual merge (use local)
extra/comp_err.c:
  Manual merge (use local)
extra/yassl/Makefile.am:
  Manual merge (use local)
extra/yassl/taocrypt/Makefile.am:
  Manual merge (use local)
include/my_dbug.h:
  Manual merge (use local)
mysql-test/mysql-test-run.pl:
  Manual merge (use local)
mysql-test/lib/mtr_process.pl:
  Manual merge (use local)
mysys/Makefile.am:
  Manual merge (use local)
server-tools/Makefile.am:
  Manual merge (use local)
sql/Makefile.am:
  Manual merge (use local)
sql/sp.cc:
  Manual merge
sql/sp_head.cc:
  Manual merge
sql/sql_class.h:
  Manual merge (use local)
sql/sql_select.cc:
  SCCS merged
sql/table.cc:
  Manual merge
storage/archive/ha_archive.cc:
  Manual merge
storage/heap/Makefile.am:
  Manual merge (use local)
storage/myisam/Makefile.am:
  Manual merge (use local)
storage/myisammrg/Makefile.am:
  Manual merge (use local)
strings/Makefile.am:
  Manual merge (use local)
vio/Makefile.am:
  Manual merge (use local)
zlib/Makefile.am:
  Manual merge (use local)
2006-09-13 09:03:52 +02:00
tsmith@maint2.mysql.com
6a31ec2cad Merge maint2.mysql.com:/data/localhome/tsmith/bk/mrg50/50
into  maint2.mysql.com:/data/localhome/tsmith/bk/mrg50/51
2006-09-13 09:03:52 +02:00
unknown
c4c36e17ac Fixed bug #16249: different results for a range with an without index
when a range condition use an invalid DATETIME constant.
Now we do not use invalid DATETIME constants to form end keys for
range intervals: range analysis just ignores predicates with such
constants.  


mysql-test/r/query_cache.result:
  Adjusted result warnings when adding a fix for bug #16249.
mysql-test/r/range.result:
  Added a test case for bug #16249.
mysql-test/t/range.test:
  Added a test case for bug #16249.
2006-08-31 07:27:34 -07:00
igor@rurik.mysql.com
c0389e7b0c Fixed bug #16249: different results for a range with an without index
when a range condition use an invalid DATETIME constant.
Now we do not use invalid DATETIME constants to form end keys for
range intervals: range analysis just ignores predicates with such
constants.
2006-08-31 07:27:34 -07:00
unknown
f57382196b Merge moonbone.local:/work/tmp_merge-5.0-mysql
into  moonbone.local:/work/tmp_merge-5.1-opt-mysql


BUILD/check-cpu:
  Auto merged
include/config-netware.h:
  Auto merged
mysql-test/r/func_time.result:
  Auto merged
mysql-test/r/group_by.result:
  Auto merged
mysql-test/r/join_outer.result:
  Auto merged
mysql-test/r/ndb_condition_pushdown.result:
  Auto merged
mysql-test/r/range.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/type_datetime.result:
  Auto merged
mysql-test/r/user_var.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/func_time.test:
  Auto merged
mysql-test/t/range.test:
  Auto merged
mysql-test/t/select.test:
  Auto merged
mysql-test/t/type_datetime.test:
  Auto merged
mysql-test/t/view.test:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
storage/innobase/btr/btr0btr.c:
  Auto merged
storage/innobase/buf/buf0buf.c:
  Auto merged
storage/innobase/dict/dict0dict.c:
  Auto merged
storage/innobase/fil/fil0fil.c:
  Auto merged
storage/innobase/fsp/fsp0fsp.c:
  Auto merged
storage/innobase/include/buf0buf.ic:
  Auto merged
storage/innobase/log/log0log.c:
  Auto merged
storage/innobase/log/log0recv.c:
  Auto merged
storage/innobase/os/os0file.c:
  Auto merged
storage/innobase/row/row0sel.c:
  Auto merged
storage/innobase/srv/srv0start.c:
  Auto merged
storage/innobase/ut/ut0dbg.c:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
client/mysqltest.c:
  Manual merge
mysql-test/r/innodb_mysql.result:
  Manual merge
mysql-test/t/innodb_mysql.test:
  Manual merge
mysql-test/t/join_outer.test:
  Manual merge
sql/item_cmpfunc.cc:
  Manual merge
sql/mysql_priv.h:
  Manual merge
sql/opt_range.cc:
  Manual merge
sql/sql_base.cc:
  Manual merge
storage/innobase/include/btr0cur.ic:
  Manual merge
storage/innobase/row/row0mysql.c:
  Manual merge
2006-08-29 18:58:50 +04:00
evgen@moonbone.local
8cf9781717 Merge moonbone.local:/work/tmp_merge-5.0-mysql
into  moonbone.local:/work/tmp_merge-5.1-opt-mysql
2006-08-29 18:58:50 +04:00
unknown
c8cafde703 Fixed bug #18165.
Made [NOT]BETWEEN predicates SARGable in respect to the second and 
the third arguments.


mysql-test/r/range.result:
  Added a test case to bug #18165.
mysql-test/t/range.test:
  Added a test case to bug #18165.
sql/opt_range.cc:
  Fixed bug #18165.
  Made [NOT]BETWEEN predicates SARGable in respect to the second and 
  the third arguments.
  Put in a separate function called get_full_func_mm_tree the functionality
  that builds a conjunction of all SEL_TREEs for a simple predicate of the
  form (f op c), where f was a field and c was a constant, applying different
  equalities f=f' with f' being another field.
2006-08-16 09:37:19 -07:00
igor@rurik.mysql.com
067d6fdfca Fixed bug #18165.
Made [NOT]BETWEEN predicates SARGable in respect to the second and 
the third arguments.
2006-08-16 09:37:19 -07:00
unknown
9cf4750ec3 BUG#21282: Incorrect query results for "t.key NOT IN (<big const list>)
In fix for BUG#15872, a condition of type "t.key NOT IN (c1, .... cN)"
where N>1000, was incorrectly converted to
  (-inf < X < c_min) OR (c_max < X)
Now this conversion is removed, we dont produce any range lists for such
conditions.


mysql-test/r/range.result:
  BUG#21282: Testcase
mysql-test/t/range.test:
  BUG#21282: Testcase
sql/opt_range.cc:
  BUG#21282: Incorrect query results for "t.key NOT IN (<big const list>) 
  In fix for BUG#15872, a condition of type "t.key NOT IN (c1, .... cN)"
  where N>1000, was incorrectly converted to 
    (-inf < X < c_min) OR (c_max < X)
  Now this conversion is removed, we dont produce any range lists for such
  conditions.
2006-08-15 21:08:22 +04:00
sergefp@mysql.com
1230f3ad38 BUG#21282: Incorrect query results for "t.key NOT IN (<big const list>)
In fix for BUG#15872, a condition of type "t.key NOT IN (c1, .... cN)"
where N>1000, was incorrectly converted to
  (-inf < X < c_min) OR (c_max < X)
Now this conversion is removed, we dont produce any range lists for such
conditions.
2006-08-15 21:08:22 +04:00
unknown
906cd90d93 Merge mysql.com:/home/psergey/tmp_merge-2
into  mysql.com:/home/psergey/mysql-5.1-merge-2


mysql-test/r/range.result:
  Auto merged
mysql-test/t/range.test:
  Auto merged
sql/opt_range.cc:
  Auto merged
2006-07-14 19:10:54 +04:00
sergefp@pylon.mylan
2834bc1eae Merge mysql.com:/home/psergey/tmp_merge-2
into  mysql.com:/home/psergey/mysql-5.1-merge-2
2006-07-14 19:10:54 +04:00
unknown
047e2be28c Post-merge fix 2006-07-01 09:28:41 +04:00
sergefp@mysql.com
775ec4fb85 Post-merge fix 2006-07-01 09:28:41 +04:00
unknown
c1fa66c3a9 Merge mysql.com:/home/psergey/mysql-4.1-bug16168-push
into  mysql.com:/home/psergey/mysql-5.0-bug16168-merge


mysql-test/t/range.test:
  Auto merged
mysql-test/r/range.result:
  SCCS merged
sql/opt_range.cc:
  SCCS merged
2006-07-01 01:25:59 +04:00
sergefp@mysql.com
784b3118a5 Merge mysql.com:/home/psergey/mysql-4.1-bug16168-push
into  mysql.com:/home/psergey/mysql-5.0-bug16168-merge
2006-07-01 01:25:59 +04:00
unknown
633cbfb571 BUG#16168: Wrong results from range optimizer, "Use_count: Wrong count for key ..." warnings:
- Added comments.
 - Make SEL_ARG::clone() set SEL_ARG::elements in the created copy.


mysql-test/r/range.result:
  BUG#16168: Testcase
mysql-test/t/range.test:
  BUG#16168: Testcase
2006-06-30 09:05:12 +04:00
sergefp@mysql.com
611e20d8e1 BUG#16168: Wrong results from range optimizer, "Use_count: Wrong count for key ..." warnings:
- Added comments.
 - Make SEL_ARG::clone() set SEL_ARG::elements in the created copy.
2006-06-30 09:05:12 +04:00
unknown
ddc2569826 Bug#19066 (DELETE FROM inconsistency for NDB):
Under row-based replication, DELETE FROM will now always be
replicated as individual row deletions, while TRUNCATE TABLE will
always be replicated as a statement.


mysql-test/extra/rpl_tests/rpl_ddl.test:
  Using --echo instead of SELECT to print message.
mysql-test/r/binlog_row_mix_innodb_myisam.result:
  Result change.
mysql-test/r/federated.result:
  Result change.
mysql-test/r/range.result:
  Result change.
mysql-test/r/rpl_sp_effects.result:
  Result change.
mysql-test/r/show_check.result:
  Result change.
mysql-test/r/sp-error.result:
  Result change.
mysql-test/r/sp.result:
  Result change.
mysql-test/r/timezone2.result:
  Result change.
mysql-test/r/trigger-grant.result:
  Result change.
mysql-test/r/type_datetime.result:
  Result change.
mysql-test/r/type_ranges.result:
  Result change.
mysql-test/r/type_timestamp.result:
  Result change.
mysql-test/r/view.result:
  Result change.
mysql-test/t/archive.test:
  Test contain statements that only works for statement-based logging.
mysql-test/t/disabled.def:
  Disabling test due to reported bug.
mysql-test/t/federated.test:
  Adding ORDER BY clause to SELECT statements
mysql-test/t/range.test:
  Adding ORDER BY clause to SELECT (sub-)statement
mysql-test/t/rpl_sp_effects.test:
  Adding ORDER BY clause to SELECT statement.
mysql-test/t/show_check.test:
  Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/sp-error.test:
  Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/sp.test:
  Adding ORDER BY clause to SELECT statement.
mysql-test/t/timezone2.test:
  Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/trigger-grant.test:
  Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/type_datetime.test:
  Adding ORDER BY clause to SELECT statement.
mysql-test/t/type_ranges.test:
  Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/type_timestamp.test:
  Replacing DELETE FROM without WHERE with TRUNCATE TABLE.
mysql-test/t/view.test:
  Adding ORDER BY clause to SELECT statement.
sql/sql_class.h:
  Adding member function to set replication to statement-based.
sql/sql_delete.cc:
  When row-based replication is used, DELETE FROM will always delete the
  contents of the table row-by-row and not use delete_all_rows().
mysql-test/extra/rpl_tests/rpl_truncate.test:
  New BitKeeper file ``mysql-test/extra/rpl_tests/rpl_truncate.test''
mysql-test/extra/rpl_tests/rpl_truncate_helper.inc:
  New BitKeeper file ``mysql-test/extra/rpl_tests/rpl_truncate_helper.inc''
mysql-test/r/rpl_truncate_2myisam.result:
  New BitKeeper file ``mysql-test/r/rpl_truncate_2myisam.result''
mysql-test/r/rpl_truncate_3innodb.result:
  New BitKeeper file ``mysql-test/r/rpl_truncate_3innodb.result''
mysql-test/r/rpl_truncate_7ndb.result:
  New BitKeeper file ``mysql-test/r/rpl_truncate_7ndb.result''
mysql-test/t/rpl_truncate_2myisam.test:
  New BitKeeper file ``mysql-test/t/rpl_truncate_2myisam.test''
mysql-test/t/rpl_truncate_3innodb.test:
  New BitKeeper file ``mysql-test/t/rpl_truncate_3innodb.test''
mysql-test/t/rpl_truncate_7ndb.test:
  New BitKeeper file ``mysql-test/t/rpl_truncate_7ndb.test''
2006-06-01 11:53:27 +02:00
mats@mysql.com
321d9d842f Bug#19066 (DELETE FROM inconsistency for NDB):
Under row-based replication, DELETE FROM will now always be
replicated as individual row deletions, while TRUNCATE TABLE will
always be replicated as a statement.
2006-06-01 11:53:27 +02:00
unknown
6bf7a0f3c9 select.result, mysqldump-max.result:
after merge fix.
range.result:
  fixing result accordingly
  ,
cast.result:
  after merge fix
range.test:
  Avoid SELECT'ing of BINARY column not to output 0x00 bytes.


mysql-test/t/range.test:
  Avoid SELECT'ing of BINARY column not to output 0x00 bytes.
mysql-test/r/cast.result:
  after merge fix
mysql-test/r/mysqldump-max.result:
  after merge fix.
mysql-test/r/range.result:
  fixing result accordingly
  ,
mysql-test/r/select.result:
  after merge fix.
2005-10-13 21:28:44 +05:00
bar@mysql.com
bf1a3bc030 select.result, mysqldump-max.result:
after merge fix.
range.result:
  fixing result accordingly
  ,
cast.result:
  after merge fix
range.test:
  Avoid SELECT'ing of BINARY column not to output 0x00 bytes.
2005-10-13 21:28:44 +05:00
unknown
0ce12f70ed Reviewing new pushed code
- CHAR() now returns binary string as default
- CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
- Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
  (Some old systems returns ETIME and it's safer to test for both values
   than to try to write a wrapper for each old system)
- Fixed new introduced bug in NOT BETWEEN X and X
- Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
- Use octet2hex() for all conversion of string to hex
- Simplify and optimize code


client/mysqldump.c:
  Simple optimizations of new code
  Indentation fixes
client/mysqltest.c:
  Removed not needed variable
include/mysql_com.h:
  Made octec2hex() more usable
mysql-test/r/ctype_utf8.result:
  CHAR() now returns binary string as default
mysql-test/r/func_str.result:
  CHAR() now returns binary string as default
mysql-test/r/range.result:
  Added test to verify new introduced bug in NOT BETWEEN X and X
mysql-test/r/user_var-binlog.result:
  CHAR() now returns binary string as default
mysql-test/r/view.result:
  More tests of view rename
mysql-test/t/ctype_utf8.test:
  CHAR() now returns binary string as default
mysql-test/t/func_str.test:
  CHAR() now returns binary string as default
mysql-test/t/range.test:
  Added test to verify new introduced bug in NOT BETWEEN X and X
mysql-test/t/view.test:
  More tests of view rename
mysys/mf_keycache.c:
  Indentation changes
  Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
mysys/my_os2cond.c:
  Fix to MySQL coding style
  Optimized functions
mysys/thr_lock.c:
  Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
mysys/thr_mutex.c:
  Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
server-tools/instance-manager/instance.cc:
  Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
server-tools/instance-manager/thread_registry.cc:
  Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
sql/ha_federated.cc:
  Use octet2hex()
sql/ha_ndbcluster.cc:
  Removed not used variable
sql/handler.cc:
  Simplify code
  Use *NONE* instead of 'none' for not existing storage engine
  Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
sql/item.h:
  Remove not needed test for *ref.  (If ref is set, it should never point at 0)
sql/item_func.cc:
  Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
  Simplify code
  More comments
  Require that last argument to find_and_check_access() is given
  (Made code shorter and faster)
sql/item_strfunc.cc:
  Changed CHAR() to return result in binary collation
  CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
  
  Bar will shortly add the following syntax:
  CHAR(.... USING character_set)
  and ensure that
  CONVERT(CHAR(....) USING utf8) cuts not legal utf8 strings
  Use ocet2hex()
sql/item_strfunc.h:
  CHAR() now returns a binary string
sql/log_event.cc:
  Use octet2hex()
  Simplify code
sql/parse_file.cc:
  Indentation fixes
  Use for() instead of while()
sql/password.c:
  Make octet2hex() more generally usable by returning pointer to end 0
sql/slave.cc:
  Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
sql/sql_base.cc:
  Indentation fixes
sql/sql_insert.cc:
  Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
sql/sql_manager.cc:
  Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
sql/sql_parse.cc:
  Don't check thd->db when checking for function privileges
sql/sql_prepare.cc:
  Fixed wrong merge
sql/sql_select.cc:
  Fixed new bug for NOT BETWEEN X and X
sql/sql_show.cc:
  Removed not used variable
sql/sql_table.cc:
  Indentation fixed
  Removed DBUG_PRINT that is obvious from context
sql/sql_view.cc:
  Simplify code
sql/unireg.cc:
  Use octet2hex()
2005-10-12 00:58:22 +03:00
monty@mysql.com
f5fdf3e87a Reviewing new pushed code
- CHAR() now returns binary string as default
- CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
- Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
  (Some old systems returns ETIME and it's safer to test for both values
   than to try to write a wrapper for each old system)
- Fixed new introduced bug in NOT BETWEEN X and X
- Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
- Use octet2hex() for all conversion of string to hex
- Simplify and optimize code
2005-10-12 00:58:22 +03:00
unknown
8bdb41ab87 Fix for BUG#13455: Make "ref" optimizer able to make this inference:
"t.key BETWEEN c1 AND c2" and c1 = c2 -> can access table t using "t.key = c1".


mysql-test/r/heap.result:
  BUG#13455: updated test results
mysql-test/r/innodb.result:
  BUG#13455: updated test results
mysql-test/r/myisam.result:
  BUG#13455: updated test results
mysql-test/r/range.result:
  Testcase for BUG#13455
mysql-test/t/range.test:
  Testcase for BUG#13455
2005-09-30 01:34:19 +04:00
sergefp@mysql.com
71d8990f8e Fix for BUG#13455: Make "ref" optimizer able to make this inference:
"t.key BETWEEN c1 AND c2" and c1 = c2 -> can access table t using "t.key = c1".
2005-09-30 01:34:19 +04:00
unknown
0004c431db Fix for BUG#13317: Make range optimizer able to produce ranges for "view.field IN (c1,c2)"
and "view.field BETWEEN c1 AND c2"


mysql-test/r/range.result:
  Testcase for BUG#13317
mysql-test/t/range.test:
  Testcase for BUG#13317
2005-09-21 21:36:15 +04:00
sergefp@mysql.com
7aca974fc8 Fix for BUG#13317: Make range optimizer able to produce ranges for "view.field IN (c1,c2)"
and "view.field BETWEEN c1 AND c2"
2005-09-21 21:36:15 +04:00
unknown
f8f1c01675 Added option --valgrind-mysqltest to mysql-test-run
Added flag to Field::store(longlong) to specify if value is unsigned.
This fixes bug #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0)
Fixed warning from valgrind in CREATE ... SELECT
Fixed double free of mysql.options if reconnect failed


mysql-test/mysql-test-run.sh:
  Added option --valgrind-mysqltest to allow one to run mysqltest with valgrind
mysql-test/r/bigint.result:
  Update results after fix for Field::store(longlong)
mysql-test/r/range.result:
  Update results after fix for Field::store(longlong)
mysql-test/r/strict.result:
  Update results after fix for Field::store(longlong)
  (This fixes some wrong results when storing things into bigint columns)
mysql-test/r/type_ranges.result:
  Update results after fix for Field::store(longlong)
mysql-test/t/bigint.test:
  Added testing for #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0)
mysql-test/t/innodb.test:
  Removed comments affected by this bug fix
mysql-test/t/mysqldump.test:
  Fixed result to not depend on existing config files
mysql-test/t/range.test:
  0xff numbers are now unsigned
mysql-test/t/strict.test:
  Added errors for things that previously (wrongly) succeeded
sql-common/client.c:
  Fixed double free of mysql.options if reconnect failed
sql/field.cc:
  Added flag to Field::store(longlong) to specify if value is unsigned
sql/field.h:
  Added flag to Field::store(longlong) to specify if value is unsigned
sql/field_conv.cc:
  Fixed calls to Field::store(longlong,flag)
sql/ha_ndbcluster.cc:
  Fixed calls to Field::store(longlong,flag)
sql/handler.cc:
  Fixed calls to Field::store(longlong,flag)
sql/item.cc:
  Fixed calls to Field::store(longlong,flag)
sql/item_sum.cc:
  Fixed calls to Field::store(longlong,flag)
sql/sp.cc:
  Fixed calls to Field::store(longlong,flag)
sql/sql_acl.cc:
  Fixed calls to Field::store(longlong,flag)
sql/sql_help.cc:
  Fixed calls to Field::store(longlong,flag)
sql/sql_show.cc:
  Fixed calls to Field::store(longlong,flag)
sql/sql_table.cc:
  Fixed varning from valgrind
sql/sql_udf.cc:
  Fixed calls to Field::store(longlong,flag)
sql/tztime.cc:
  Fixed calls to Field::store(longlong,flag)
sql/unireg.cc:
  Fixed calls to Field::store(longlong,flag)
2005-09-14 01:41:44 +03:00
monty@mishka.mysql.fi
f348f62cc3 Added option --valgrind-mysqltest to mysql-test-run
Added flag to Field::store(longlong) to specify if value is unsigned.
This fixes bug #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0)
Fixed warning from valgrind in CREATE ... SELECT
Fixed double free of mysql.options if reconnect failed
2005-09-14 01:41:44 +03:00
unknown
36b6bf2ef3 Merge mysql.com:/home/my/mysql-4.1
into  mysql.com:/home/my/mysql-5.0


BitKeeper/etc/ignore:
  auto-union
BitKeeper/deleted/.del-ctype_cp932.test:
  Auto merged
BitKeeper/deleted/.del-isam.test~834fb0ee8196c445:
  Auto merged
include/thr_lock.h:
  Auto merged
mysql-test/t/alias.test:
  Auto merged
mysql-test/t/alter_table.test:
  Auto merged
mysql-test/t/archive.test:
  Auto merged
mysql-test/t/backup.test:
  Auto merged
mysql-test/t/bool.test:
  Auto merged
mysql-test/t/connect.test:
  Auto merged
mysql-test/t/count_distinct2.test:
  Auto merged
mysql-test/t/create.test:
  Auto merged
mysql-test/t/ctype_many.test:
  Auto merged
mysql-test/t/ctype_ucs_binlog.test:
  Auto merged
mysql-test/t/date_formats.test:
  Auto merged
mysql-test/t/delayed.test:
  Auto merged
mysql-test/t/derived.test:
  Auto merged
mysql-test/t/distinct.test:
  Auto merged
mysql-test/t/drop.test:
  Auto merged
mysql-test/t/endspace.test:
  Auto merged
mysql-test/t/flush.test:
  Auto merged
mysql-test/t/fulltext.test:
  Auto merged
mysql-test/t/fulltext_order_by.test:
  Auto merged
mysql-test/t/func_compress.test:
  Auto merged
mysql-test/t/func_concat.test:
  Auto merged
mysql-test/t/func_date_add.test:
  Auto merged
mysql-test/t/func_equal.test:
  Auto merged
mysql-test/t/func_if.test:
  Auto merged
mysql-test/t/func_sapdb.test:
  Auto merged
mysql-test/t/func_set.test:
  Auto merged
mysql-test/t/func_str.test:
  Auto merged
mysql-test/t/gis-rtree.test:
  Auto merged
mysql-test/t/gis.test:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
mysql-test/t/grant2.test:
  Auto merged
mysql-test/t/grant_cache.test:
  Auto merged
mysql-test/t/heap.test:
  Auto merged
mysql-test/t/heap_btree.test:
  Auto merged
mysql-test/t/heap_hash.test:
  Auto merged
mysql-test/t/init_connect.test:
  Auto merged
mysql-test/t/insert_select.test:
  Auto merged
mysql-test/t/insert_update.test:
  Auto merged
mysql-test/t/key.test:
  Auto merged
mysql-test/t/keywords.test:
  Auto merged
mysql-test/t/limit.test:
  Auto merged
mysql-test/t/lock.test:
  Auto merged
mysql-test/t/lowercase_table.test:
  Auto merged
mysql-test/t/lowercase_table3.test:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
mysql-test/t/mix_innodb_myisam_binlog.test:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
mysql-test/t/mysqlbinlog2.test:
  Auto merged
mysql-test/t/ndb_alter_table.test:
  Auto merged
mysql-test/t/ndb_autodiscover.test:
  Auto merged
mysql-test/t/ndb_charset.test:
  Auto merged
mysql-test/t/ndb_grant.later:
  Auto merged
mysql-test/t/ndb_index_ordered.test:
  Auto merged
mysql-test/t/ndb_index_unique.test:
  Auto merged
mysql-test/t/ndb_restore.test:
  Auto merged
mysql-test/t/ndb_types.test:
  Auto merged
mysql-test/t/ndb_update.test:
  Auto merged
mysql-test/t/null.test:
  Auto merged
mysql-test/t/null_key.test:
  Auto merged
mysql-test/t/olap.test:
  Auto merged
mysql-test/t/openssl_1.test:
  Auto merged
mysql-test/t/order_by.test:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
mysql-test/t/ps_1general.test:
  Auto merged
mysql-test/t/ps_4heap.test:
  Auto merged
mysql-test/t/ps_5merge.test:
  Auto merged
mysql-test/t/query_cache.test:
  Auto merged
mysql-test/t/replace.test:
  Auto merged
mysql-test/t/row.test:
  Auto merged
mysql-test/t/rpl000001.test:
  Auto merged
mysql-test/t/rpl000015.test:
  Auto merged
mysql-test/t/rpl000017.test:
  Auto merged
mysql-test/t/rpl000018.test:
  Auto merged
mysql-test/t/rpl_EE_error.test:
  Auto merged
mysql-test/t/rpl_change_master.test:
  Auto merged
mysql-test/t/rpl_charset.test:
  Auto merged
mysql-test/t/rpl_create_database.test:
  Auto merged
mysql-test/t/rpl_ddl.test:
  Auto merged
mysql-test/t/rpl_deadlock.test:
  Auto merged
mysql-test/t/rpl_empty_master_crash.test:
  Auto merged
mysql-test/t/rpl_error_ignored_table.test:
  Auto merged
mysql-test/t/rpl_flush_log_loop.test:
  Auto merged
mysql-test/t/rpl_flush_tables.test:
  Auto merged
mysql-test/t/rpl_get_lock.test:
  Auto merged
mysql-test/t/rpl_heap.test:
  Auto merged
mysql-test/t/rpl_loaddata.test:
  Auto merged
mysql-test/t/rpl_loaddata_rule_m.test:
  Auto merged
mysql-test/t/rpl_log.test:
  Auto merged
mysql-test/t/rpl_log_pos.test:
  Auto merged
mysql-test/t/rpl_max_relay_size.test:
  Auto merged
mysql-test/t/rpl_multi_query.test:
  Auto merged
mysql-test/t/rpl_openssl.test:
  Auto merged
mysql-test/t/rpl_redirect.test:
  Auto merged
mysql-test/t/rpl_relayrotate.test:
  Auto merged
mysql-test/t/rpl_replicate_do.test:
  Auto merged
mysql-test/t/rpl_reset_slave.test:
  Auto merged
mysql-test/t/rpl_server_id2.test:
  Auto merged
mysql-test/t/rpl_temporary.test:
  Auto merged
mysql-test/t/rpl_timezone.test:
  Auto merged
mysql-test/t/rpl_user_variables.test:
  Auto merged
mysql-test/t/show_check.test:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
mysql-test/t/synchronization.test:
  Auto merged
mysql-test/t/system_mysql_db.test:
  Auto merged
mysql-test/t/system_mysql_db_fix.test:
  Auto merged
mysql-test/t/temp_table.test:
  Auto merged
mysql-test/t/timezone2.test:
  Auto merged
mysql-test/t/timezone_grant.test:
  Auto merged
mysql-test/t/type_float.test:
  Auto merged
mysql-test/t/type_ranges.test:
  Auto merged
mysql-test/t/type_timestamp.test:
  Auto merged
mysql-test/t/union.test:
  Auto merged
mysql-test/t/update.test:
  Auto merged
mysql-test/t/user_var-binlog.test:
  Auto merged
mysql-test/t/warnings.test:
  Auto merged
mysys/thr_lock.c:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
support-files/mysql.spec.sh:
  Auto merged
BitKeeper/deleted/.del-rpl_trunc_binlog.test~961b1f6ac73d37c8:
  Simple merge
mysql-test/r/ps_grant.result:
  Simple merge
mysql-test/t/analyse.test:
  Simple merge
mysql-test/t/auto_increment.test:
  Simple merge
mysql-test/t/bdb.test:
  Simple merge
mysql-test/t/bigint.test:
  Simple merge
mysql-test/t/case.test:
  Simple merge
mysql-test/t/cast.test:
  Simple merge
mysql-test/t/check.test:
  Simple merge
mysql-test/t/count_distinct.test:
  Simple merge
mysql-test/t/ctype_latin1_de.test:
  Simple merge
mysql-test/t/ctype_uca.test:
  Simple merge
mysql-test/t/ctype_ucs.test:
  Simple merge
mysql-test/t/ctype_utf8.test:
  Simple merge
mysql-test/t/delete.test:
  Simple merge
mysql-test/t/flush_block_commit.test:
  Simple merge
mysql-test/t/func_default.test:
  Simple merge
mysql-test/t/func_gconcat.test:
  Simple merge
mysql-test/t/func_group.test:
  Aligned code with 4.1
mysql-test/t/func_in.test:
  Simple merge
mysql-test/t/func_math.test:
  Simple merge
mysql-test/t/func_misc.test:
  Simple merge
mysql-test/t/func_test.test:
  Simple merge
mysql-test/t/func_time.test:
  Simple merge
mysql-test/t/group_by.test:
  Simple merge
mysql-test/t/having.test:
  Simple merge
mysql-test/t/innodb.test:
  Simple merge
mysql-test/t/insert.test:
  Simple merge
mysql-test/t/join_outer.test:
  Simple merge
mysql-test/t/kill.test:
  Simple merge
mysql-test/t/loaddata.test:
  Simple merge
mysql-test/t/lock_multi.test:
  Simple merge
mysql-test/t/multi_update.test:
  Simple merge
mysql-test/t/mysqlbinlog.test:
  Simple merge
mysql-test/t/mysqldump.test:
  Aligned code with 4.1
mysql-test/t/mysqltest.test:
  Simple merge
mysql-test/t/ndb_basic.test:
  Simple merge
mysql-test/t/ndb_cache.test:
  Simple merge
mysql-test/t/ndb_subquery.test:
  Simple merge
mysql-test/t/ps_grant.test:
  Simple merge
mysql-test/t/range.test:
  Simple merge
mysql-test/t/rpl_drop_temp.test:
  Simple merge
mysql-test/t/rpl_loaddata_rule_s.test:
  Simple merge
mysql-test/t/rpl_loaddatalocal.test:
  Simple merge
mysql-test/t/rpl_rotate_logs.test:
  Simple merge
mysql-test/t/rpl_until.test:
  Simple merge
mysql-test/t/rpl_variables.test:
  Simple merge
mysql-test/t/select.test:
  Simple merge
mysql-test/t/sql_mode.test:
  Simple merge
mysql-test/t/type_blob.test:
  Simple merge
mysql-test/t/type_decimal.test:
  Simple merge
mysql-test/t/user_var.test:
  Simple merge
mysql-test/t/variables.test:
  Simple merge
sql/lock.cc:
  Simple optimization
sql/mysql_priv.h:
  Simple merge
sql/sql_table.cc:
  Simple merge
sql/table.cc:
  Simple merge
sql/unireg.cc:
  Simple merge
2005-07-28 17:09:54 +03:00
monty@mysql.com
15d48525af Merge mysql.com:/home/my/mysql-4.1
into  mysql.com:/home/my/mysql-5.0
2005-07-28 17:09:54 +03:00
unknown
167fb5f170 Added end marker for tests to make future merges easier
mysql-test/t/alias.test:
  Added end marker for test to make future merges easier
mysql-test/t/alter_table.test:
  Added end marker for test to make future merges easier
mysql-test/t/analyse.test:
  Added end marker for test to make future merges easier
mysql-test/t/analyze.test:
  Added end marker for test to make future merges easier
  Fixed length of comment lines
mysql-test/t/ansi.test:
  Added end marker for test to make future merges easier
mysql-test/t/archive.test:
  Added end marker for test to make future merges easier
mysql-test/t/auto_increment.test:
  Added end marker for test to make future merges easier
mysql-test/t/backup.test:
  Added end marker for test to make future merges easier
mysql-test/t/bdb-alter-table-1.test:
  Added end marker for test to make future merges easier
mysql-test/t/bdb-alter-table-2.test:
  Added end marker for test to make future merges easier
mysql-test/t/bdb-crash.test:
  Added end marker for test to make future merges easier
mysql-test/t/bdb-deadlock.test:
  Added end marker for test to make future merges easier
mysql-test/t/bdb-deadlock.tminus:
  Added end marker for test to make future merges easier
mysql-test/t/bdb.test:
  Added end marker for test to make future merges easier
mysql-test/t/bdb_cache.test:
  Added end marker for test to make future merges easier
mysql-test/t/bench_count_distinct.test:
  Added end marker for test to make future merges easier
mysql-test/t/bigint.test:
  Added end marker for test to make future merges easier
mysql-test/t/binary.test:
  Added end marker for test to make future merges easier
mysql-test/t/blackhole.test:
  Added end marker for test to make future merges easier
mysql-test/t/bool.test:
  Added end marker for test to make future merges easier
mysql-test/t/bulk_replace.test:
  Added end marker for test to make future merges easier
mysql-test/t/case.test:
  Added end marker for test to make future merges easier
mysql-test/t/cast.test:
  Added end marker for test to make future merges easier
mysql-test/t/check.test:
  Added end marker for test to make future merges easier
mysql-test/t/comments.test:
  Added end marker for test to make future merges easier
mysql-test/t/compare.test:
  Added end marker for test to make future merges easier
mysql-test/t/connect.test:
  Added end marker for test to make future merges easier
mysql-test/t/consistent_snapshot.test:
  Added end marker for test to make future merges easier
mysql-test/t/constraints.test:
  Added end marker for test to make future merges easier
mysql-test/t/count_distinct.test:
  Added end marker for test to make future merges easier
mysql-test/t/count_distinct2.test:
  Added end marker for test to make future merges easier
mysql-test/t/count_distinct3.test:
  Added end marker for test to make future merges easier
mysql-test/t/create.test:
  Added end marker for test to make future merges easier
mysql-test/t/create_select_tmp.test:
  Added end marker for test to make future merges easier
mysql-test/t/csv.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_big5.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_collate.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_cp1250_ch.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_cp1251.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_cp932.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_create.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_gbk.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_latin1.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_latin1_de.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_latin2.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_many.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_mb.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_recoding.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_sjis.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_tis620.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_uca.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_ucs.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_ucs_binlog.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_ujis.test:
  Added end marker for test to make future merges easier
mysql-test/t/ctype_utf8.test:
  Added end marker for test to make future merges easier
mysql-test/t/date_formats.test:
  Added end marker for test to make future merges easier
mysql-test/t/delayed.test:
  Added end marker for test to make future merges easier
mysql-test/t/delete.test:
  Added end marker for test to make future merges easier
mysql-test/t/derived.test:
  Added end marker for test to make future merges easier
mysql-test/t/dirty_close.test:
  Added end marker for test to make future merges easier
mysql-test/t/distinct.test:
  Added end marker for test to make future merges easier
mysql-test/t/drop.test:
  Added end marker for test to make future merges easier
mysql-test/t/drop_temp_table.test:
  Added end marker for test to make future merges easier
mysql-test/t/empty_table.test:
  Added end marker for test to make future merges easier
mysql-test/t/endspace.test:
  Added end marker for test to make future merges easier
mysql-test/t/errors.test:
  Added end marker for test to make future merges easier
mysql-test/t/exampledb.test:
  Added end marker for test to make future merges easier
mysql-test/t/explain.test:
  Added end marker for test to make future merges easier
mysql-test/t/flush.test:
  Added end marker for test to make future merges easier
mysql-test/t/flush_block_commit.test:
  Added end marker for test to make future merges easier
mysql-test/t/flush_table.test:
  Added end marker for test to make future merges easier
mysql-test/t/foreign_key.test:
  Added end marker for test to make future merges easier
mysql-test/t/fulltext.test:
  Added end marker for test to make future merges easier
mysql-test/t/fulltext2.test:
  Added end marker for test to make future merges easier
mysql-test/t/fulltext_cache.test:
  Added end marker for test to make future merges easier
mysql-test/t/fulltext_distinct.test:
  Added end marker for test to make future merges easier
mysql-test/t/fulltext_left_join.test:
  Added end marker for test to make future merges easier
mysql-test/t/fulltext_multi.test:
  Added end marker for test to make future merges easier
mysql-test/t/fulltext_order_by.test:
  Added end marker for test to make future merges easier
mysql-test/t/fulltext_update.test:
  Added end marker for test to make future merges easier
mysql-test/t/fulltext_var.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_compress.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_concat.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_crypt.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_date_add.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_default.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_des_encrypt.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_encrypt.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_encrypt_nossl.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_equal.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_gconcat.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_group.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_if.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_in.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_isnull.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_like.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_math.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_misc.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_op.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_regexp.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_sapdb.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_set.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_str.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_system.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_test.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_time.test:
  Added end marker for test to make future merges easier
mysql-test/t/func_timestamp.test:
  Added end marker for test to make future merges easier
mysql-test/t/gcc296.test:
  Added end marker for test to make future merges easier
mysql-test/t/gis-rtree.test:
  Added end marker for test to make future merges easier
mysql-test/t/gis.test:
  Added end marker for test to make future merges easier
mysql-test/t/grant.test:
  Added end marker for test to make future merges easier
mysql-test/t/grant2.test:
  Added end marker for test to make future merges easier
mysql-test/t/grant_cache.test:
  Added end marker for test to make future merges easier
mysql-test/t/group_by.test:
  Added end marker for test to make future merges easier
mysql-test/t/handler.test:
  Added end marker for test to make future merges easier
mysql-test/t/having.test:
  Added end marker for test to make future merges easier
mysql-test/t/heap.test:
  Added end marker for test to make future merges easier
mysql-test/t/heap_auto_increment.test:
  Added end marker for test to make future merges easier
mysql-test/t/heap_btree.test:
  Added end marker for test to make future merges easier
mysql-test/t/heap_hash.test:
  Added end marker for test to make future merges easier
mysql-test/t/help.test:
  Added end marker for test to make future merges easier
mysql-test/t/init_connect.test:
  Added end marker for test to make future merges easier
mysql-test/t/init_file.test:
  Added end marker for test to make future merges easier
mysql-test/t/innodb-deadlock.test:
  Added end marker for test to make future merges easier
mysql-test/t/innodb-lock.test:
  Added end marker for test to make future merges easier
mysql-test/t/innodb-replace.test:
  Added end marker for test to make future merges easier
mysql-test/t/innodb.test:
  Added end marker for test to make future merges easier
mysql-test/t/innodb_cache.test:
  Added end marker for test to make future merges easier
mysql-test/t/innodb_handler.test:
  Added end marker for test to make future merges easier
mysql-test/t/insert.test:
  Added end marker for test to make future merges easier
mysql-test/t/insert_select-binlog.test:
  Added end marker for test to make future merges easier
mysql-test/t/insert_select.test:
  Added end marker for test to make future merges easier
mysql-test/t/insert_update.test:
  Added end marker for test to make future merges easier
mysql-test/t/isam.test:
  Added end marker for test to make future merges easier
mysql-test/t/join.test:
  Added end marker for test to make future merges easier
mysql-test/t/join_crash.test:
  Added end marker for test to make future merges easier
mysql-test/t/join_outer.test:
  Added end marker for test to make future merges easier
mysql-test/t/key.test:
  Added end marker for test to make future merges easier
mysql-test/t/key_cache.test:
  Added end marker for test to make future merges easier
mysql-test/t/key_diff.test:
  Added end marker for test to make future merges easier
mysql-test/t/key_primary.test:
  Added end marker for test to make future merges easier
mysql-test/t/keywords.test:
  Added end marker for test to make future merges easier
mysql-test/t/kill.test:
  Added end marker for test to make future merges easier
mysql-test/t/limit.test:
  Added end marker for test to make future merges easier
mysql-test/t/loaddata.test:
  Added end marker for test to make future merges easier
mysql-test/t/lock.test:
  Added end marker for test to make future merges easier
mysql-test/t/lock_multi.test:
  Added end marker for test to make future merges easier
mysql-test/t/lock_tables_lost_commit.test:
  Added end marker for test to make future merges easier
mysql-test/t/lowercase_table.test:
  Added end marker for test to make future merges easier
mysql-test/t/lowercase_table2.test:
  Added end marker for test to make future merges easier
mysql-test/t/lowercase_table3.test:
  Added end marker for test to make future merges easier
mysql-test/t/lowercase_table_grant.test:
  Added end marker for test to make future merges easier
mysql-test/t/lowercase_table_qcache.test:
  Added end marker for test to make future merges easier
mysql-test/t/merge.test:
  Added end marker for test to make future merges easier
mysql-test/t/metadata.test:
  Added end marker for test to make future merges easier
mysql-test/t/mix_innodb_myisam_binlog.test:
  Added end marker for test to make future merges easier
mysql-test/t/multi_statement.test:
  Added end marker for test to make future merges easier
mysql-test/t/multi_update.test:
  Added end marker for test to make future merges easier
mysql-test/t/myisam-blob.test:
  Added end marker for test to make future merges easier
mysql-test/t/myisam.test:
  Added end marker for test to make future merges easier
mysql-test/t/mysql_client_test.test:
  Added end marker for test to make future merges easier
mysql-test/t/mysql_protocols.test:
  Added end marker for test to make future merges easier
mysql-test/t/mysqlbinlog.test:
  Added end marker for test to make future merges easier
mysql-test/t/mysqlbinlog2.test:
  Added end marker for test to make future merges easier
mysql-test/t/mysqldump.test:
  Added end marker for test to make future merges easier
mysql-test/t/mysqltest.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_alter_table.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_autodiscover.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_autodiscover2.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_basic.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_blob.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_cache.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_charset.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_config.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_database.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_grant.later:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_index.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_index_ordered.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_index_unique.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_insert.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_limit.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_lock.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_minmax.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_multi.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_replace.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_restore.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_subquery.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_transaction.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_truncate.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_types.test:
  Added end marker for test to make future merges easier
mysql-test/t/ndb_update.test:
  Added end marker for test to make future merges easier
mysql-test/t/negation_elimination.test:
  Added end marker for test to make future merges easier
mysql-test/t/not_embedded_server.test:
  Added end marker for test to make future merges easier
mysql-test/t/null.test:
  Added end marker for test to make future merges easier
mysql-test/t/null_key.test:
  Added end marker for test to make future merges easier
mysql-test/t/odbc.test:
  Added end marker for test to make future merges easier
mysql-test/t/olap.test:
  Added end marker for test to make future merges easier
mysql-test/t/openssl_1.test:
  Added end marker for test to make future merges easier
mysql-test/t/order_by.test:
  Added end marker for test to make future merges easier
mysql-test/t/order_fill_sortbuf.test:
  Added end marker for test to make future merges easier
mysql-test/t/outfile.test:
  Added end marker for test to make future merges easier
mysql-test/t/overflow.test:
  Added end marker for test to make future merges easier
mysql-test/t/packet.test:
  Added end marker for test to make future merges easier
mysql-test/t/preload.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_10nestset.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_11bugs.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_1general.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_2myisam.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_3innodb.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_4heap.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_5merge.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_6bdb.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_7ndb.test:
  Added end marker for test to make future merges easier
mysql-test/t/ps_grant.test:
  Added end marker for test to make future merges easier
mysql-test/t/query_cache.test:
  Added end marker for test to make future merges easier
mysql-test/t/query_cache_merge.test:
  Added end marker for test to make future merges easier
mysql-test/t/raid.test:
  Added end marker for test to make future merges easier
mysql-test/t/range.test:
  Added end marker for test to make future merges easier
mysql-test/t/rename.test:
  Added end marker for test to make future merges easier
mysql-test/t/repair.test:
  Added end marker for test to make future merges easier
mysql-test/t/replace.test:
  Added end marker for test to make future merges easier
mysql-test/t/rollback.test:
  Added end marker for test to make future merges easier
mysql-test/t/row.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000001.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000002.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000004.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000005.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000006.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000008.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000009.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000010.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000011.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000012.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000013.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000015.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000017.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl000018.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_EE_error.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_alter.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_chain_temp_table.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_change_master.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_charset.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_commit_after_flush.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_create_database.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_ddl.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_deadlock.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_delete_all.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_do_grant.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_drop.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_drop_temp.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_empty_master_crash.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_error_ignored_table.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_failed_optimize.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_failsafe.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_flush_log_loop.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_flush_tables.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_free_items.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_get_lock.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_heap.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_ignore_grant.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_init_slave.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_innodb.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_insert_id.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_insert_ignore.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_loaddata.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_loaddata_rule_m.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_loaddata_rule_s.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_loaddatalocal.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_log.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_log_pos.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_many_optimize.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_master_pos_wait.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_max_relay_size.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_misc_functions.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_multi_delete.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_multi_delete2.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_multi_query.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_multi_update.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_multi_update2.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_multi_update3.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_mystery22.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_openssl.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_optimize.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_ps.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_redirect.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_relayrotate.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_relayspace.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_replicate_do.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_reset_slave.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_rewrite_db.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_rotate_logs.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_server_id1.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_server_id2.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_set_charset.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_skip_error.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_sporadic_master.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_start_stop_slave.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_temporary.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_timezone.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_trunc_binlog.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_until.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_user_variables.test:
  Added end marker for test to make future merges easier
mysql-test/t/rpl_variables.test:
  Added end marker for test to make future merges easier
mysql-test/t/select.test:
  Added end marker for test to make future merges easier
mysql-test/t/select_found.test:
  Added end marker for test to make future merges easier
mysql-test/t/select_safe.test:
  Added end marker for test to make future merges easier
mysql-test/t/show_check.test:
  Added end marker for test to make future merges easier
mysql-test/t/skip_name_resolve.test:
  Added end marker for test to make future merges easier
mysql-test/t/sql_mode.test:
  Added end marker for test to make future merges easier
mysql-test/t/status.test:
  Added end marker for test to make future merges easier
mysql-test/t/subselect.test:
  Added end marker for test to make future merges easier
mysql-test/t/subselect2.test:
  Added end marker for test to make future merges easier
mysql-test/t/subselect_gis.test:
  Added end marker for test to make future merges easier
mysql-test/t/subselect_innodb.test:
  Added end marker for test to make future merges easier
mysql-test/t/symlink.test:
  Added end marker for test to make future merges easier
mysql-test/t/synchronization.test:
  Added end marker for test to make future merges easier
mysql-test/t/system_mysql_db.test:
  Added end marker for test to make future merges easier
mysql-test/t/system_mysql_db_fix.test:
  Added end marker for test to make future merges easier
mysql-test/t/system_mysql_db_refs.test:
  Added end marker for test to make future merges easier
mysql-test/t/tablelock.test:
  Added end marker for test to make future merges easier
mysql-test/t/temp_table.test:
  Added end marker for test to make future merges easier
mysql-test/t/timezone.test:
  Added end marker for test to make future merges easier
mysql-test/t/timezone2.test:
  Added end marker for test to make future merges easier
mysql-test/t/timezone3.test:
  Added end marker for test to make future merges easier
mysql-test/t/timezone_grant.test:
  Added end marker for test to make future merges easier
mysql-test/t/truncate.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_blob.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_date.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_datetime.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_decimal.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_enum.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_float.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_nchar.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_ranges.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_set.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_time.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_timestamp.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_uint.test:
  Added end marker for test to make future merges easier
mysql-test/t/type_year.test:
  Added end marker for test to make future merges easier
mysql-test/t/union.test:
  Added end marker for test to make future merges easier
mysql-test/t/update.test:
  Added end marker for test to make future merges easier
mysql-test/t/user_var-binlog.test:
  Added end marker for test to make future merges easier
mysql-test/t/user_var.test:
  Added end marker for test to make future merges easier
mysql-test/t/varbinary.test:
  Added end marker for test to make future merges easier
mysql-test/t/variables.test:
  Added end marker for test to make future merges easier
mysql-test/t/warnings.test:
  Added end marker for test to make future merges easier
2005-07-28 03:22:47 +03:00
monty@mysql.com
3c12d0ae54 Added end marker for tests to make future merges easier 2005-07-28 03:22:47 +03:00
unknown
e2bd74015c opt_range.cc:
Fixed bug #11853.
  Corrected the code of the range optimization for
  NOT IN and NOT BETWEEN.
range.test, range.result:
  Fixed bug #11853.


mysql-test/t/range.test:
  Fixed bug #11853.
sql/opt_range.cc:
  Fixed bug #11853.
  Corrected the code of the range optimization for
  NOT IN and NOT BETWEEN.
2005-07-16 08:19:20 -07:00
igor@rurik.mysql.com
6ea960c8d6 opt_range.cc:
Fixed bug #11853.
  Corrected the code of the range optimization for
  NOT IN and NOT BETWEEN.
range.test, range.result:
  Fixed bug #11853.
2005-07-16 08:19:20 -07:00
unknown
1031b871e7 range.result, range.test:
Added a test case for bug #10031.
opt_range.cc:
  Fixed bug #10031: range condition was not used with
  views. Range analyzer did not take into account that
  view columns were always referred through Item_ref.


sql/opt_range.cc:
  Fixed bug #10031: range condition was not used with
  views. Range analyzer did not take into account that
  view columns were always referred through Item_ref.
mysql-test/t/range.test:
  Added a test case for bug #10031.
mysql-test/r/range.result:
  Added a test case for bug #10031.
2005-06-28 07:27:00 -07:00
igor@rurik.mysql.com
451faae3c9 range.result, range.test:
Added a test case for bug #10031.
opt_range.cc:
  Fixed bug #10031: range condition was not used with
  views. Range analyzer did not take into account that
  view columns were always referred through Item_ref.
2005-06-28 07:27:00 -07:00
unknown
1a8c334b30 Fix for BUG#11185.
The source of the problem is in Field_longlong::cmp. If 'this' is
  an unsigned number, the method casts both the current value, and
  the constant that we compare with to an unsigned number. As a
  result if the constant we compare with is a negative number, it
  wraps to some unsigned number, and the comparison is incorrect.
  
  When the optimizer chooses the "range" access method, this problem
  causes handler::read_range_next to reject the current key when the
  upper bound key is a negative number because handler::compare_key
  incorrectly considers the positive and negative keys to be equal.
  
  The current patch does not correct the source of the problem in
  Field_longlong::cmp because it is not easy to propagate sign
  information about the constant at query execution time. Instead
  the patch changes the range optimizer so that it never compares
  unsiged fields with negative constants. As an added benefit,
  queries that do such comparisons will execute faster because
  the range optimizer replaces conditions like:
  (a) (unsigned_int [< | <=] negative_constant) == FALSE
  (b) (unsigned_int [> | >=] negative_constant) == TRUE
  with the corresponding constants.
  In some cases this may even result in constant time execution.


mysql-test/r/range.result:
  - Added test for BUG#11185
  - Added missing test from 4.1. This test also tests the fix for BUG#11185.
mysql-test/t/range.test:
  - Added test for BUG#11185
  - Added missing test from 4.1. This test also tests the fix for BUG#11185.
sql/opt_range.cc:
  Added a new optimization to the range optimizer where we detect that
  an UNSIGNED field is compared with a negative constant. Depending on
  the comparison operator, we know directly that the result of the
  comparison is either TRUE or FALSE for all input values, and we need
  not check each value.
      
  This optimization is also necessary so that the index range access
  method produces correct results when comparing unsigned fields with
  negative constants.
2005-06-23 12:08:56 +03:00
timour@mysql.com
b3acc7fe39 Fix for BUG#11185.
The source of the problem is in Field_longlong::cmp. If 'this' is
  an unsigned number, the method casts both the current value, and
  the constant that we compare with to an unsigned number. As a
  result if the constant we compare with is a negative number, it
  wraps to some unsigned number, and the comparison is incorrect.
  
  When the optimizer chooses the "range" access method, this problem
  causes handler::read_range_next to reject the current key when the
  upper bound key is a negative number because handler::compare_key
  incorrectly considers the positive and negative keys to be equal.
  
  The current patch does not correct the source of the problem in
  Field_longlong::cmp because it is not easy to propagate sign
  information about the constant at query execution time. Instead
  the patch changes the range optimizer so that it never compares
  unsiged fields with negative constants. As an added benefit,
  queries that do such comparisons will execute faster because
  the range optimizer replaces conditions like:
  (a) (unsigned_int [< | <=] negative_constant) == FALSE
  (b) (unsigned_int [> | >=] negative_constant) == TRUE
  with the corresponding constants.
  In some cases this may even result in constant time execution.
2005-06-23 12:08:56 +03:00
unknown
e4296f5868 Fix for BUG#11185.
The source of the problem is in Field_longlong::cmp. If 'this' is
an unsigned number, the method casts both the current value, and
the constant that we compare with to an unsigned number. As a
result if the constant we compare with is a negative number, it
wraps to some unsigned number, and the comparison is incorrect.

When the optimizer chooses the "range" access method, this problem
causes handler::read_range_next to reject the current key when the
upper bound key is a negative number because handler::compare_key
incorrectly considers the positive and negative keys to be equal.

The current patch does not correct the source of the problem in
Field_longlong::cmp because it is not easy to propagate sign
information about the constant at query execution time. Instead
the patch changes the range optimizer so that it never compares
unsiged fields with negative constants. As an added benefit,
queries that do such comparisons will execute faster because
the range optimizer replaces conditions like:
(a) (unsigned_int [< | <=] negative_constant) == FALSE
(b) (unsigned_int [> | >=] negative_constant) == TRUE
with the corresponding constants.
In some cases this may even result in constant time execution.


mysql-test/r/range.result:
  - Changed incorrect result of an old test
  - Added new results for BUG#11185
mysql-test/t/range.test:
  - Added new tests for BUG#11185
  - Deleted an old comment because now the problem is fixed
sql/opt_range.cc:
  Added a new optimization to the range optimizer where we detect that
  an UNSIGNED field is compared with a negative constant. Depending on
  the comparison operator, we know directly that the result of the
  comparison is either TRUE or FALSE for all input values, and we need
  not check each value.
  
  This optimization is also necessary so that the index range access
  method produces correct results when comparing unsigned fields with
  negative constants.
2005-06-23 10:56:44 +03:00
timour@mysql.com
294498e203 Fix for BUG#11185.
The source of the problem is in Field_longlong::cmp. If 'this' is
an unsigned number, the method casts both the current value, and
the constant that we compare with to an unsigned number. As a
result if the constant we compare with is a negative number, it
wraps to some unsigned number, and the comparison is incorrect.

When the optimizer chooses the "range" access method, this problem
causes handler::read_range_next to reject the current key when the
upper bound key is a negative number because handler::compare_key
incorrectly considers the positive and negative keys to be equal.

The current patch does not correct the source of the problem in
Field_longlong::cmp because it is not easy to propagate sign
information about the constant at query execution time. Instead
the patch changes the range optimizer so that it never compares
unsiged fields with negative constants. As an added benefit,
queries that do such comparisons will execute faster because
the range optimizer replaces conditions like:
(a) (unsigned_int [< | <=] negative_constant) == FALSE
(b) (unsigned_int [> | >=] negative_constant) == TRUE
with the corresponding constants.
In some cases this may even result in constant time execution.
2005-06-23 10:56:44 +03:00