1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00

This ChangeSet Introdices Item_equal.

The objects of this class represent multiple conjunctive equalities
in where conditions: =(f1,f2,...fn) <=> f1=f2 and f2= ... and =fn.
The objects are used to generate new possibale paths to access
the tables when executing a query.
They are also used to optimize the execution plan 
chosen by the optimizer for the query.  


sql/item.cc:
  Introduced Item_equal
sql/item.h:
  Introduced Item_equal.
  Added traverse method.
sql/item_cmpfunc.cc:
  Introduced Item_equal.
  Added traverse mehtod.
sql/item_cmpfunc.h:
  Itroduced Item_equal and Item_equal_iterator.
sql/item_func.cc:
  Added traverse method.
  Introduced Item_equal.
sql/item_func.h:
  Introduced Item_equal.
  Added traverse method.
sql/item_row.cc:
  Added traverse method.
sql/item_row.h:
  Added traverse method.
sql/item_strfunc.h:
  Added traverse method.
sql/opt_range.cc:
  Used Item_equal in range analysis.
sql/opt_sum.cc:
  Introduced Item_equal.
sql/sql_list.h:
  Added concat and disjoin methods to lists.
  Fixed remove method for lists.
sql/sql_select.cc:
  Introdiced Item_equal:
    created Item_equal;
    used Item_equal objects to generate new paths to access tables.
    used Item_equal objects to optimize the execution plan chosen by optimizer.
sql/sql_select.h:
  Introduced Item_equal.
This commit is contained in:
unknown
2003-11-26 17:23:52 -08:00
parent afe2186e3b
commit da566c16c0
14 changed files with 1394 additions and 106 deletions

View File

@@ -184,6 +184,7 @@ class JOIN :public Sql_alloc
ORDER *order, *group_list, *proc_param; //hold parameters of mysql_select
COND *conds; // ---"---
Item *conds_history; // store WHERE for explain
COND_EQUAL *cond_equal;
TABLE_LIST *tables_list; //hold 'tables' parameter of mysql_selec
SQL_SELECT *select; //created in optimisation phase
Item **ref_pointer_array; //used pointer reference for this select
@@ -243,6 +244,7 @@ class JOIN :public Sql_alloc
ref_pointer_array_size= 0;
zero_result_cause= 0;
optimized= 0;
cond_equal= 0;
fields_list= fields;
bzero((char*) &keyuse,sizeof(keyuse));