summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-10-13 15:50:30 +0300
committerunknown <monty@mashka.mysql.fi>2003-10-13 15:50:30 +0300
commit3974119b5f1a735d4087105eb8c07f241a70f64b (patch)
tree9b5d0d5098c97ae49c22be860572ba78e7471faa /sql/sql_select.cc
parent0cdddbf144de80d1c4da00ee681632bc0ac6c7c9 (diff)
parent74ea459412f9a479ea1385a72cc27b4245c06435 (diff)
downloadmariadb-git-3974119b5f1a735d4087105eb8c07f241a70f64b.tar.gz
merge with 4.0 for more memory allocation variables.
configure.in: Auto merged mysql-test/r/variables.result: Auto merged mysql-test/t/variables.test: Auto merged sql/ha_berkeley.cc: Auto merged sql/mysql_priv.h: Auto merged sql/opt_range.h: Auto merged sql/sql_acl.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_test.cc: Auto merged sql/sql_udf.cc: Auto merged sql/sql_update.cc: Auto merged sql/table.cc: Auto merged scripts/Makefile.am: merge sql/log_event.cc: merge sql/mysqld.cc: merge sql/opt_range.cc: merge sql/set_var.cc: merge sql/sql_class.h: merge sql/sql_delete.cc: merge sql/sql_parse.cc: merge
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc19
1 files changed, 11 insertions, 8 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 96b80f89bda..89aae95c951 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -1574,7 +1574,8 @@ err:
Approximate how many records will be used in each table
*****************************************************************************/
-static ha_rows get_quick_record_count(SQL_SELECT *select,TABLE *table,
+static ha_rows get_quick_record_count(THD *thd, SQL_SELECT *select,
+ TABLE *table,
key_map keys,ha_rows limit)
{
int error;
@@ -1583,7 +1584,7 @@ static ha_rows get_quick_record_count(SQL_SELECT *select,TABLE *table,
{
select->head=table;
table->reginfo.impossible_range=0;
- if ((error=select->test_quick_select(keys,(table_map) 0,limit))
+ if ((error=select->test_quick_select(thd, keys,(table_map) 0,limit))
== 1)
DBUG_RETURN(select->quick->records);
if (error == -1)
@@ -1866,8 +1867,8 @@ make_join_statistics(JOIN *join,TABLE_LIST *tables,COND *conds,
found_const_table_map,
s->on_expr ? s->on_expr : conds,
&error);
- records= get_quick_record_count(select,s->table, s->const_keys,
- join->row_limit);
+ records= get_quick_record_count(join->thd, select, s->table,
+ s->const_keys, join->row_limit);
s->quick=select->quick;
s->needed_reg=select->needed_reg;
select->quick=0;
@@ -3377,7 +3378,7 @@ make_join_select(JOIN *join,SQL_SELECT *select,COND *cond)
/* Join with outer join condition */
COND *orig_cond=sel->cond;
sel->cond=and_conds(sel->cond,tab->on_expr);
- if (sel->test_quick_select(tab->keys,
+ if (sel->test_quick_select(join->thd, tab->keys,
used_tables & ~ current_map,
(join->select_options &
OPTION_FOUND_ROWS ?
@@ -3390,7 +3391,7 @@ make_join_select(JOIN *join,SQL_SELECT *select,COND *cond)
*/
sel->cond=orig_cond;
if (!tab->on_expr ||
- sel->test_quick_select(tab->keys,
+ sel->test_quick_select(join->thd, tab->keys,
used_tables & ~ current_map,
(join->select_options &
OPTION_FOUND_ROWS ?
@@ -5828,7 +5829,8 @@ test_if_quick_select(JOIN_TAB *tab)
{
delete tab->select->quick;
tab->select->quick=0;
- return tab->select->test_quick_select(tab->keys,(table_map) 0,HA_POS_ERROR);
+ return tab->select->test_quick_select(tab->join->thd, tab->keys,
+ (table_map) 0, HA_POS_ERROR);
}
@@ -6921,7 +6923,8 @@ create_sort_index(THD *thd, JOIN *join, ORDER *order,
For impossible ranges (like when doing a lookup on NULL on a NOT NULL
field, quick will contain an empty record set.
*/
- if (!(select->quick=get_ft_or_quick_select_for_ref(table, tab)))
+ if (!(select->quick=get_ft_or_quick_select_for_ref(tab->join->thd,
+ table, tab)))
goto err;
}
}