Commit graph

52 commits

Author SHA1 Message Date
stewart@willster.(none)
3ecc09e0e4 Merge willster.(none):/home/stewart/Documents/MySQL/4.1/main
into  willster.(none):/home/stewart/Documents/MySQL/4.1/bug19914-mk2
2006-09-25 14:48:39 +10:00
stewart@willster.(none)
9d2e6b8d23 BUG#19914 SELECT COUNT(*) sometimes returns MAX_INT on cluster tables
allow handler::info to return an error code (that will be returned to the user)
2006-08-10 22:55:20 +08:00
gkodinov/kgeorge@macbook.gmz
9ff33b5d93 Bug #16792 query with subselect, join, and group not returning proper values
Treat queries with no FROM and aggregate functions as normal queries,
so the aggregate function get correctly calculated as if there is 1 row. 
This means that they will be considered to have one row, so COUNT(*) will return
1 instead of 0. Other aggregates will behave in compatible manner.
2006-08-10 16:45:02 +03:00
svoj@may.pils.ru
e560564cfa Merge april:devel/BitKeeper/mysql-4.1
into  may.pils.ru:/home/svoj/devel/mysql/BUG20357/mysql-4.1
2006-06-21 17:51:16 +05:00
svoj@may.pils.ru
8b98be2844 BUG#20357 - Got error 124 from storage engine using MIN and MAX
functions in queries

Using MAX()/MIN() on table with disabled indexes (by ALTER TABLE)
results in error 124 (wrong index) from storage engine.

The problem was that optimizer use disabled index to optimize
MAX()/MIN(). Normally it must skip disabled index and perform
table scan.

This patch skips disabled indexes for min/max optimization.
2006-06-21 17:30:59 +05:00
igor@rurik.mysql.com
f1afd17821 Cleanup for the fix of bug 18206. 2006-06-02 19:15:32 -07:00
igor@rurik.mysql.com
37e049db01 Fixed bug #18206.
The bug report revealed two problems related to min/max optimization:
1. If the length of a constant key used in a SARGable condition for
for the MIN/MAX fields is greater than the length of the field an 
unwanted warning on key truncation is issued;
2. If MIN/MAX optimization is applied to a partial index, like INDEX(b(4))
than can lead to returning a wrong result set.
2006-06-02 14:14:57 -07:00
monty@mysql.com
ea6d5f9ec3 Fixed error found during review of new pushed code 2005-09-25 21:22:23 +03:00
timour@mysql.com
6ae8a56f72 Merge mysql.com:/home/timka/mysql/src/4.1-virgin
into  mysql.com:/home/timka/mysql/src/4.1-dbg
2005-09-21 09:53:42 +03:00
timour@mysql.com
633d118d01 Fix for BUG#12882 - min/max inconsistent on empty table.
The problem was in that the MIN/MAX optimization in opt_sum_query was
replacing MIN/MAX functions with their constant argument without
taking into account that a query has no result rows.
2005-09-21 09:49:19 +03:00
evgen@moonbone.local
afa8187fb7 Fix bug #13218: InnoDB: using a partial-field key prefix in search
This is backport from 5.0 of fix for bug #11039
2005-09-19 04:39:49 +04:00
igor@linux.local
6d7862aeaf logging_ok:
Logging to logging@openlogging.org accepted
func_group.result, func_group.test:
  Added a test case for bug #8893.
opt_sum.cc:
  A misplaced initialization for the returned parameter
  prefix_len in the function find_key_for_maxmin caused
  usage of a wrong key prefix by the min/max optimization
  in cases when the matching index was not the first index
  that contained the min/max field.
2005-03-04 20:24:13 -08:00
igor@rurik.mysql.com
cfbd2b7f7a opt_sum.cc:
Slightly improved the fix for bug #5406.
2004-09-15 23:52:46 -07:00
igor@rurik.mysql.com
7777f759cb func_group.test, func_group.result:
Added test case for bug #5406.
opt_sum.cc:
  Fixed bug #5406.
2004-09-07 19:46:09 -07:00
monty@mysql.com
db7efa2780 New handler::index_flags() definition to make it easy to check the full used key and a specific key part.
Added key part to optimize_range() to fix problems when using fields in key parts.
2004-07-08 15:45:25 +03:00
serg@serg.mylan
08738d2847 fowwlowup fixes for index_flags() 2004-06-30 10:40:15 +02:00
serg@serg.mylan
3f1c4ba745 handler interface cleanups:
more logical table/index_flags
  return  HA_ERR_WRONG_COMMAND instead of abstract methods where appropriate
  max_keys and other limits renamed to max_supported_keys/etc
  max_keys/etc are now wrappers to max_supported_keys/etc 
  ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to real {index,rnd}_{init,end} to enforce strict pairing
2004-06-23 12:29:05 +02:00
monty@mishka.local
314a8bf114 key_cmp -> key_cmp_if_same
New records_in_range() interface (similar to read_range())
Macros for faster bitmap handling
Simplify read_range() code (#WL1786)
New general key_cmp() function to compare keys
2004-05-16 14:48:32 +03:00
monty@mysql.com
7c6113a39f Merge key cache structures to one
Fixed compiler warnings (IRIX C compiler and VC++)
2003-11-20 22:06:25 +02:00
serg@serg.mylan
8cc3951c8f key_map with more that 64 bits width 2003-10-11 13:06:55 +02:00
monty@mashka.mysql.fi
6aa8929cf3 After merge fixes
Added initialization of all important global variables
2003-05-21 21:39:58 +03:00
monty@narttu.mysql.fi
dd2b7918cd Merge with 4.0.13 2003-05-19 16:35:49 +03:00
heikki@hundin.mysql.fi
ef6f91458d sql_select.cc, opt_sum.cc:
Fix bug: if MIN() or MAX() resulted in a deadlock or a lock wait timeout, MySQL did not return an error, but NULL as the function value
2003-05-07 19:01:45 +03:00
monty@narttu.mysql.fi
7410b6cbdf Fix problem where key_read was not cleaned up properly, which caused assert in innodb test. 2003-05-03 16:21:43 +03:00
igor@hundin.mysql.fi
3503d4797b func_group.result:
Added new tests for better coverage of
  min/max optimization code.
func_group.test:
  Added new tests for better coverage of 
  min/max optimization code.
opt_sum.cc:
  Fixed wrong previous manual merge.
  Fixed bugs concerning fields used in min/max
  functions for which there are conditions of
  the form field=const.
2003-02-28 08:53:54 +02:00
igor@hundin.mysql.fi
bab644a96c func_group.result, func_group.test:
Added tests for extended max/min optimization
opt_sum.cc:
  Extended min/max optimization
2003-02-27 10:01:50 +02:00
monty@narttu.mysql.fi
9a46698e1e Merge with 4.0.11 2003-02-26 01:03:47 +02:00
igor@hundin.mysql.fi
726e59827a opt_sum.cc:
Correction for min/max optimization of queries with outer joins
2003-02-23 04:27:03 +02:00
monty@mashka.mysql.fi
7388c5f161 merge 2003-02-08 01:12:58 +02:00
monty@mashka.mysql.fi
1b9b042654 Fix problem in MIN/MAX optimisation (from last patch)
Don't make OLD_PASSWORD() a reserved word
2003-02-07 17:57:07 +02:00
monty@mashka.mysql.fi
023d6dd39b Merge with 4.0.11 2003-02-04 21:52:14 +02:00
monty@mashka.mysql.fi
e3cd63521c Fix for MIN/MAX with empty tables
MIN(key_column) could in some cases return NULL on a column with NULL and other values.
MIN(key_column) and MAX(key_column) could in some cases return wrong values when used in OUTER JOIN.
2003-02-03 20:20:32 +02:00
monty@mashka.mysql.fi
76f146a175 Merge with 4.0.9 2003-01-18 03:13:37 +02:00
serg@serg.mysql.com
390982aaa3 bugfix for MERGE tables and MAX(key) 2003-01-17 12:48:23 +01:00
bar@bar.mysql.r18.ru
e5103ce714 Less "default_charset_info" 2002-12-19 15:27:46 +04:00
monty@mashka.mysql.fi
dac6498f9b Merge with 4.0 2002-11-21 15:56:48 +02:00
monty@hundin.mysql.fi
e08ed8a582 Fixed bug in MAX() optimization when used with JOIN and ON expressions 2002-11-09 09:51:03 +02:00
monty@narttu.mysql.fi
7134ffec21 Merge with 4.0.3
Some simple optimzations, more comments and indentation changes.
Add ` around database in 'use database' in binary log.
Moved max_error_count and max_warning_count to variables struct.
Removed SHOW_WARNS_COUNT and SHOW_ERRORS_COUNT calls.
Changed string functions to use character set of first string argument as default return characterset
(Each string function can change the above assumption if needed)
2002-08-30 12:40:40 +03:00
Sinisa@sinisa.nasamreza.org
a2356e3033 My previous patch was not good at all.
This one is better, but should not be final.

Better fix is to make some changes in ha_myisammrg::index_read

This patch also reverts my previous one ...
2002-06-17 20:58:09 +03:00
Sinisa@sinisa.nasamreza.org
138e5d57eb Fixed a bug in optimiser with MERGE tables with non-unique values
with aggregating functions.

This consistently crashed Mysql
2002-06-15 20:59:42 +03:00
monty@hundin.mysql.fi
b5a145d872 merge 2002-04-13 15:34:39 +03:00
monty@tik.mysql.fi
056175a1ce Update for BTREE keys in HEAP tables
Split handler->option_flag() to handler->table_flags() and handler->index_flags()
2002-04-12 21:35:46 +03:00
bar@gw.udmsearch.izhnet.ru
735b27d578 Added GIS extension 2002-02-22 15:24:42 +04:00
sasha@mysql.sashanet.com
b9637dae05 fixed wrong DBUG_ASSERT() in IO_CACHE
fixed apparent typo in opt_sum.cc
I will push this Changeset although it fails select test - failing select 
is better than the code that does not compile.
2002-01-31 16:17:24 -07:00
monty@hundin.mysql.fi
4000b036c0 Fixes for new getopt
Bug fix when using --no-deaults
Sets ref_length to right value (faster rnd_pos() handling in InnoDB).
Fixed problem with multi-table-delete and InnoDB
Fixed problem with truncate table, which required a COMMIT before.
Fixed multi-table-delete bug with InnoDB.
Remove not used index from EXPLAIN
2002-01-31 04:36:58 +02:00
monty@hundin.mysql.fi
b658662ae4 Update copyright
Fixed memory leak on shutdown (Affects the embedded version & MyODBC)
2001-12-06 14:10:51 +02:00
monty@hundin.mysql.fi
4c60b41954 Portability fix
Cleanup typos (like SKIPP -> SKIP)
2001-11-07 00:13:29 +02:00
monty@hundin.mysql.fi
5a14bb2a7e Integrated table->ref_primary_key into table->part_of_key
Fixed bug in UNION
2001-09-21 03:38:35 +03:00
monty@tik.mysql.fi
b13d453d50 Fix UNION
New faster list iterators
Change list code to be simpler and faster
Optimize count(distinct)
New error messages for UNION
Make create_tmp_table more general to be usable by UNION
2001-08-02 06:29:50 +03:00
monty@donna.mysql.fi
c1402e2d5c Fixed bug in MAX() optimizing for BDB tables 2001-03-10 17:05:10 +02:00